@charset "utf-8";


/* ---------------------------------------------------------
 * common
** --------------------------------------------------------- */
html {
	font-size: 62.5%;
}
body {
	background-color: #eee;
	color: #3C3C43;
	font-size: 1.6rem;
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;/*normal*/
	line-height: 1.8;
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
	body {
	}
}

:root {
	--vw: 1vw;
}


/* --------------- .wrapper --------------- */
.wrapper {
	max-width: 1400px;
	width: 100%;
	padding: 0 20px;
	margin: 0 auto;
}
.wrapper.n {
	max-width: 1220px;
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
}


/* --------------- Web Fonts --------------- */
/*.poppins {
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	font-style: italic;
}*/
.noto-regular {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;/*normal*/
}
.noto-medium {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 500;
}
.noto-bold {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 700;/*bold*/
}
.termina {
	font-family: "termina", sans-serif;
	font-weight: 700;
}


/* --------------- nav --------------- */
nav {
}
nav ul {
	display: flex;
	gap: 30px;
}
nav li {
}
nav li a.current {
	font-weight: bold;
}
nav li a:not(.current) {
	color: rgba(255, 255, 255, 0.8);
}
nav li a img {
	margin-top: -2px;
	margin-left: 5px;
	vertical-align: middle;
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
}


/* --------------- .en --------------- */
.en {
}
.en span {
	position: relative;
	display: inline-block;
	padding-left: 40px;
	color: #D61500;
	font-size: 2.4rem;
	font-family: "termina", sans-serif;
	font-weight: 700;
}
.en span::before,
.en span::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	display: block;
	margin-top: auto;
	margin-bottom: auto;
	background-color: #D61500;
}
.en span::before {
	left: 0;
	width: 7px;
	height: 7px;
	border-radius: 10px;
}
.en span::after {
	left: 1px;
	width: 28px;
	height: 1px;
}

/* .w */
.en.w span {
	color: #fff;
}
.en.w span::before,
.en.w span::after {
	background-color: #fff;
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
	.en span {
		padding-left: 30px;
		font-size: 2.0rem;
	}
	.en span::after {
		width: 18px;
	}
	.en span::before,
	.en span::after {
		bottom: 4px;
	}
}


/* --------------- .btn --------------- */
.btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 275px;
	height: 60px;
	background: #5F34BB linear-gradient(90deg, #EB1700 0%, #5F34BB 100%);
	background-repeat: no-repeat;
	box-shadow: 0px 3px 11px 0px rgba(156, 158, 216, 0.15);
	border-radius: 7px;
	color: #fff;
	font-size: 1.8rem;
	font-weight: bold;
	transition: all ease 0.3s;
}
.btn:hover {
	background-position: right 100px center;
}
.btn .arr {
	margin-left: 10px;
	transition: all ease 0.3s;
}
.btn:hover .arr {
	transform: translateX(10px);
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
}


/* --------------- .lower_fv --------------- */
.lower_fv {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 460px;
	padding: 0 20px;
	background-color: #000;
	background-image: url("../img/lower_fv_bg.png");
	background-size: cover;
	background-position: center;
	color: #fff;
	text-align: center;
	overflow: hidden;
}
.lower_fv .ttl {
	display: block;
	font-size: 7.2rem;
	line-height: 1;
	letter-spacing: -2px;
}
.lower_fv .ttl:first-letter {
	font-size: 10.0rem;
}
.lower_fv .ja {
	display: block;
}
.lower_fv .ja span {
	position: relative;
	display: inline-block;
	padding: 0 20px;
	font-size: 2.0rem;
	font-weight: bold;
}
.lower_fv .ja span::before,
.lower_fv .ja span::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 110px;
	height: 2px;
	margin-top: auto;
	margin-bottom: auto;
	background-color: #fff;
}
.lower_fv .ja span::before {
	left: 100%;
}
.lower_fv .ja span::after {
	right: 100%;
}
@media (max-width: 959px) {
	.lower_fv .ttl {
		font-size: 5.4rem;
	}
	.lower_fv .ttl:first-letter {
		font-size: 7.2rem;
	}
	.lower_fv .ja span::before,
	.lower_fv .ja span::after {
		width: 80px;
	}
}
@media (max-width: 519px) {
	.lower_fv .ttl {
		font-size: 5.0rem;
	}
	.lower_fv .ttl:first-letter {
		font-size: 6.8rem;
	}
	.lower_fv .ja {
		font-size: 1.8rem;
	}
	.lower_fv .ja span::before,
	.lower_fv .ja span::after {
		width: 50px;
	}
}




/* ---------------------------------------------------------
 * header
** --------------------------------------------------------- */
#header {
	position: absolute;
	left: 0;
	top: 0;
	display: flex;
	justify-content: space-between;
	width: 100%;
	height: 0;
	padding: 30px 60px 0 75px;
	background-color: #000;
	pointer-events: none;
}
#header .h_logo {
	width: 431px;
	pointer-events: initial;
}
#header .h_logo a {
	display: block;
	color: #fff;
}
#header .h_logo a img {
	width: 100%;
	vertical-align: middle;
}
#header .h_right {
	padding-top: 5px;
	pointer-events: initial;
	color: #fff;
}
#header .h_right li a {
	display: inline-block;
	padding-bottom: 5px;
	background-image: linear-gradient(to top, #fff 1px, transparent 1px);
	background-repeat: no-repeat;
	background-size: 0% 100%;
	background-position: right bottom;
	line-height: 1.5;
	transition: background-size ease 0.3s;
}
#header .h_right li a:hover {
	background-size: 100% 100%;
	background-position: left bottom;
}
@media (max-width: 1239px) {
	#header {
		padding: 30px 30px 0 30px;
	}
	#header .h_logo {
		width: 300px;
	}
	#header .h_right {
		padding-top: 2px;
	}
}
@media (max-width: 999px) {
	#header {
		padding: 20px 20px 0 20px;
	}
	#header .h_logo {
		max-width: calc(100% - 80px);
	}
	#header .h_right {
		position: relative;
		padding-top: 0;
	}
	#header .h_right .gnavi {
		position: absolute;
		top: 60px;
		right: -20px;
		opacity: 0;
		pointer-events: none;
		transition: all ease 0.3s;
	}
	#header .h_right .gnavi.active,
	#header .h_right .gnavi:has(a:focus, a:active, a:focus-within, a:focus-visible) {
		opacity: 1;
		pointer-events: initial;
	}
	#header .h_right ul {
		display: block;
		width: 220px;
		padding: 20px;
		background-color: rgba(0, 0, 0, 0.9);
/*		text-align: right;*/
	}
	#header .h_right li:not(:first-child) {
		margin-top: 10px;
	}
}
@media (max-width: 519px) {
}

/* gnavi_btn */
.gnavi_btn {
	position: relative;
	z-index: 520;
	height: 40px;
	padding: 10px;
/*	background-color: #fff;*/
	transition: all 0.4s ease;
	cursor: pointer;
}
.gnavi_btn.open {
}
.menu-trigger,
.menu-trigger span {
	display: inline-block;
	transition: all 0.3s ease;
	box-sizing: border-box;
}
.menu-trigger {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 34px;
	height: 100%;
}
.menu-trigger span {
	position: relative;
	width: 100%;
	height: 2px;
	background-color: #fff;
}
.gnavi_btn .menu-trigger span:nth-of-type(1) {
	top: 0%;
}
.gnavi_btn .menu-trigger span:nth-of-type(3) {
	bottom: 0%;
}
.gnavi_btn.open .menu-trigger span:nth-of-type(1) {
	top: 50%;
	transform-origin: center;
	transform: translateY(-50%) rotate(-45deg);
}
.gnavi_btn.open .menu-trigger span:nth-of-type(2) {
	opacity: 0;
}
.gnavi_btn.open .menu-trigger span:nth-of-type(3) {
	bottom: 50%;
	transform-origin: center;
	transform: translateY(50%) rotate(45deg);
}
@media (max-width: 999px) {
	.gnavi_btn {
		display: block !important;
	}
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
}




/* ---------------------------------------------------------
 * footer
** --------------------------------------------------------- */
#footer {
}
/* .contact */
#footer .contact {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: calc(20000% / 1500);
	padding: 95px 20px;
	background-image: url("../img/footer_bg.jpg");
	color: #fff;
}
#footer .left {
	margin-left: 20px;
}
#footer .en {
}
#footer .ttl {
	margin-top: 20px;
	font-size: 4.8rem;
	font-weight: bold;
	line-height: 1;
}
#footer .left p {
	margin-top: 45px;
}
#footer .btn_area {
	margin-right: 20px;
}
#footer .btn_area a {
	width: 455px;
	height: 80px;
	font-size: 2.2rem;
}
#footer .btn_area a .mail {
	margin-right: 10px;
	margin-bottom: -5px;
}
#footer .btn_area a .arr {
	width: 18px;
	height: 17px;
	margin-bottom: -5px;
}
@media (max-width: 959px) {
	#footer .contact {
		display: block;
		text-align: center;
	}
	#footer .left {
		margin-left: 0;
	}
	#footer .ttl {
		font-size: 3.6rem;
	}
	#footer .btn_area {
		margin-top: 20px;
		margin-right: 0;
	}
	#footer .btn_area a {
		max-width: 100%;
		width: 350px;
		height: 60px;
		font-size: 1.8rem;
	}
}
@media (max-width: 519px) {
	#footer .contact {
		padding: 50px 20px;
	}
	#footer .ttl {
		font-size: 3.0rem;
	}
}

/* .main */
#footer .main {
	padding: 70px 20px 20px;
	background-color: #171717;
	color: #fff;
	text-align: center;
}
#footer .logo {
	display: block;
	width: 495px;
	margin-left: auto;
	margin-right: auto;
}
#footer .logo img {
	width: 100%;
}
#footer .main p {
	margin-top: 20px;
	font-size: 1.4rem;
}
#footer nav {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 680px;
	height: 70px;
	margin-top: 30px;
	margin-left: auto;
	margin-right: auto;
	background-color: rgba(255, 255, 255, 0.04);
	border-radius: 100px;
}
#footer .copy {
	padding-top: 20px;
	margin-top: 70px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	color: rgba(255, 255, 255, 0.6);
	font-size: 1.2rem;
}
@media (max-width: 719px) {
	#footer .logo {
		max-width: 100%;
		width: 350px;
	}
	#footer nav {
		max-width: 100%;
		width: 100%;
		height: 60px;
	}
	#footer nav ul {
		font-size: 1.4rem;
		gap: 15px;
	}
}
@media (max-width: 619px) {
	#footer nav {
		height: auto;
		padding: 15px;
		border-radius: 10px;
	}
	#footer nav ul {
		display: block;
	}
}
@media (max-width: 519px) {
	#footer .main {
		padding: 40px 20px 20px;
	}
	#footer .copy {
		margin-top: 40px;
	}
}




/* ---------------------------------------------------------
 * index.html
** --------------------------------------------------------- */
/* ---------- #fv ---------- */
#fv {
	display: flex;
	justify-content: center;
	align-items: center;
/*	height: 900px;*/
	height: 100vh;
	background-color: #000;
	background-image: url("../img/fv_bg.jpg");
	background-size: cover;
	background-position: center;
	color: #fff;
}
#fv picture {
	max-width: 80%;
}
#fv picture img {
	max-width: 100%;
}
@media (max-width: 959px) {
}
@media (max-width: 519px) {
	#fv {
		height: calc(152000vw / 900);
		background-image: url("../img/fv_bg_sp.jpg");
	}
	#fv picture {
		max-width: calc(80000% / 900);
	}
}


/* ---------- #about ---------- */
#about {
}
/* .lead */
#about .lead {
	padding: 120px 0;
	background-image: url("../img/top_lead_img.png");
	background-repeat: no-repeat;
	background-position: right center;
}
#about .lead .content {
	max-width: calc(100% - calc(32000% / 1500));
/*	width: calc(67500% / 1500);*/
	width: 675px;
	margin-left: calc(16000% / 1500);
}
#about .lead h2 {
	font-size: 4.6rem;
	font-weight: bold;
	line-height: 1.5;
	text-decoration: underline;
}
#about .lead p {
	margin-top: 50px;
	color: #000;
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 2;
}
#about .lead .btn_area {
	margin-top: 40px;
}
#about .lead .btn_area a {
}
@media (max-width: 1499px) {
	#about .lead {
		background-position: left 730px center;
	}
}
@media (max-width: 959px) {
	#about .lead h2 {
		font-size: 3.4rem;
	}
}
@media (max-width: 519px) {
	#about .lead {
		padding: 60px 0;
	}
	#about .lead .content {
		max-width: 100%;
		width: 100%;
		margin-left: 0;
		padding-left: 20px;
		padding-right: 20px;
	}
	#about .lead h2 {
		font-size: 3.0rem;
	}
	#about .lead p {
		margin-top: 30px;
		font-size: 1.6rem;
	}
}

/* section */
#about .bg {
	padding: 100px 0 140px;
	background-color: #000;
	background-image: url("../img/top_about_bg.jpg");
	background-size: cover;
	background-position: center;
}
#about section {
	display: flex;
	align-items: center;
	gap: calc(9000% / 1500);
}
#about section .content {
	width: calc(68000% / 1500);
	padding-top: 10px;
	background-repeat: no-repeat;
	background-size: auto 94px;
	background-position: right top;
}
#about section h3 {
	color: #fff;
	font-size: 3.6rem;
	font-weight: bold;
}
#about section h3::before {
	content: "";
	display: inline-block;
	width: 5px;
	height: 48px;
	margin-top: -6px;
	margin-right: 15px;
	background: linear-gradient(342deg, #5C34B3 3.85%, #EB1700 78.58%);
	vertical-align: middle;
}
#about section p {
	margin-top: 30px;
	color: #fff;
}
#about section .img {
	width: calc(64000% / 1500);
}
#about section .img img {
	max-width: 100%;
}
#about section .img img + p {
	width: 1px;
	height: 1px;
	margin: 0;
	overflow: hidden;
	font-size: 0%;
}
#about01 {
}
#about01 .content {
	background-image: url("../img/top_about_num01.png");
	order: 2;
}
#about01 h3 {
}
#about01 .img {
}
#about01 .img img {
}
#about02 {
	justify-content: flex-end;
	margin-top: 80px;
}
#about02 .content {
	background-image: url("../img/top_about_num02.png");
}
#about02 h3 {
}
#about02 .img {
	padding: 35px 30px 50px;
	background-color: #212121;
	text-align: center;
}
#about02 .img img {
}
@media (max-width: 959px) {
	#about section {
		display: block;
		padding-left: 20px;
		padding-right: 20px;
	}
	#about section .content {
		width: 100%;
		background-size: auto 73.5px;
	}
	#about section h3 {
		font-size: 2.7rem;
	}
	#about section .img {
		max-width: 640px;
		width: 100%;
		margin-top: 20px;
		margin-left: auto;
		margin-right: auto;
	}
	#about section .img img {
	}
}
@media (max-width: 519px) {
	#about .bg {
		padding: 50px 0 60px;
	}
	#about section h3 {
		font-size: 2.4rem;
	}
	#about02 .img {
		padding: 15px 15px 20px;
		background-color: #212121;
		text-align: center;
	}
}


/* ---------- #law ---------- */
#law {
	padding-top: 145px;
	background-image: url("../img/top_law_bg_lt.png");
	background-repeat: no-repeat;
	background-size: 512px auto;
	background-position: left top;
}
#law .lead {
	text-align: center;
}
#law .en {
}
#law h2 {
	font-size: 4.2rem;
	font-weight: bold;
}
#law .lead p {
	margin-top: 30px;
}
#law .summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 55px;
	padding: 60px 100px 60px 120px;
	background-color: #fff;
}
#law .summary .content {
	width: calc(67500% / 1140);
}
#law .ttl {
	font-size: 3.2rem;
	font-weight: bold;
}
#law .ttl::before {
	content: "";
	display: inline-block;
	width: 5px;
	height: 40px;
	margin-top: -8px;
	margin-right: 15px;
	background: linear-gradient(342deg, #5C34B3 3.85%, #EB1700 78.58%);
	vertical-align: middle;
}
#law .ttl + p {
	margin-top: 20px;
}
#law ol {
	margin-top: 20px;
}
#law li {
	display: flex;
	margin-top: 3px;
	padding: 20px;
	background-color: #F4F4F4;
	font-size: 1.8rem;
	font-weight: bold;
	line-height: 1.4;
}
#law li span {
	flex-shrink: 0;
	display: inline-block;
	color: #D61500;
}
#law li span::after {
	content: "";
	display: inline-block;
	width: 17px;
	height: 2px;
	margin: -4px 10px 0;
	background-color: #D61500;
	vertical-align: middle;
}
#law .note {
	margin-top: 20px;
	padding-left: 1em;
	font-size: 1.4rem;
	text-indent: -1em;
}
#law .summary .img {
	width: calc(38500% / 1140);
}
#law .summary .img img {
	max-width: 100%;
}
@media (max-width: 1499px) {
	#law .summary {
		padding: 40px 80px 40px 90px;
	}
}
@media (max-width: 1239px) {
	#law .summary {
		padding: 30px 50px 30px 50px;
	}
	#law .summary .content {
		width: calc(70000% / 1140);
	}
}
@media (max-width: 959px) {
	#law h2 {
		font-size: 3.1rem;
	}
	#law .summary {
		display: block;
		padding: 30px;
	}
	#law .summary .content {
		width: 100%;
	}
	#law .ttl {
		font-size: 2.4rem;
	}
	#law .summary .img {
		width: 100%;
		margin-top: 20px;
		text-align: center;
	}
	#law .summary .img img {
		width: 385px;
	}
}
@media (max-width: 519px) {
	#law {
		padding-top: 60px;
	}
	#law h2 {
		font-size: 2.6rem;
	}
	#law .summary {
		display: block;
		padding: 20px;
	}
	#law .ttl {
		font-size: 2.0rem;
	}
	#law li {
		font-size: 1.6rem;
	}
}

/* section */
#law section {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 1260px;
	margin-top: 80px;
	margin-left: auto;
	margin-right: auto;
}
#law section .content {
	order: 2;
	width: calc(67000% / 1260);
}
#law .num {
	position: relative;
	display: inline-block;
	color: #D61500;
	font-size: 3.0rem;
}
#law .num::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 5px;
	width: 100%;
	height: 3px;
	background-color: #D61500;
}
#law h3 {
	margin-top: 10px;
	font-size: 3.6rem;
	font-weight: bold;
}
#law section p {
	margin-top: 20px;
}
#law section .img {
	width: calc(54000% / 1260);
}
#law section .img img {
	max-width: 100%;
}
@media (max-width: 959px) {
	#law section {
		display: block;
	}
	#law section .content {
		width: 100%;
	}
	#law .num {
		font-size: 2.2rem;
	}
	#law h3 {
		font-size: 2.7rem;
	}
	#law section .img {
		width: 100%;
		margin-top: 20px;
		text-align: center;
	}
}
@media (max-width: 519px) {
	#law section {
		margin-top: 40px;
	}
	#law h3 {
		font-size: 2.2rem;
	}
}


/* ---------- #top_accident ---------- */
#top_accident {
	margin-top: 100px;
	padding-bottom: 100px;
	background-image: url("../img/top_law_bg_rb.png");
	background-repeat: no-repeat;
	background-size: 495px auto;
	background-position: right bottom;
}
#top_accident .inner {
	display: flex;
	justify-content: flex-end;
	padding-top: 55px;
	margin-right: 100px;
	background-image: url("../img/top_accident_img.jpg");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: left top;
}
#top_accident .content {
	padding: 60px 40px 50px;
	margin-right: -100px;
	background-color: #171717;
	color: #fff;
	text-align: center;
}
#top_accident .en span {
	font-size: 2.2rem;
}
#top_accident h2 {
	font-size: 4.2rem;
	font-weight: bold;
	line-height: 1.5;
}
#top_accident p {
	margin-top: 20px;
	color: rgba(255, 255, 255, 0.9);
}
#top_accident .btn_area {
	margin-top: 40px;
}
#top_accident .btn_area a {
}
@media (max-width: 959px) {
	#top_accident .inner {
		display: flex;
		justify-content: center;
		padding-top: 55px;
		margin-right: 0;
		background-position: center bottom;
	}
	#top_accident .content {
		position: relative;
		top: -100px;
		padding: 40px 30px 40px;
		margin-right: 0;
	}
	#top_accident .en span {
		font-size: 1.8rem;
	}
	#top_accident h2 {
		font-size: 3.1rem;
	}
}
@media (max-width: 519px) {
	#top_accident {
		margin-top: 50px;
		padding-bottom: 50px;
	}
	#top_accident .inner {
		background-image: none;
	}
	#top_accident .content {
		top: 0;
		padding: 40px 20px 40px;
	}
}




/* ---------------------------------------------------------
 * project.html
** --------------------------------------------------------- */
#project {
	background-image: url("../img/project_bg.png"), url("../img/top_law_bg_lt.png");
	background-repeat: no-repeat;
	background-position: left top 70px, left top;
	background-size: 320px auto, 512px auto;
}
/* ---------- .lead ---------- */
#project .lead {
	padding-top: 120px;
	padding-bottom: 80px;
}
#project .lead .en {
	text-align: center;
}
#project .lead h2 {
	font-size: 4.2rem;
	font-weight: bold;
	text-align: center;
}
#project .lead p {
	margin-top: 40px;
}
#project .lead .graph {
	margin-top: 60px;
	padding: 50px;
	background-image: url("../img/project_accident_bg.png");
	background-size: cover;
	background-position: center;
	text-align: center;
}
#project .lead .graph picture,
#project .lead .graph picture img {
	max-width: 100%;
}
#project .lead .graph picture + p {
	width: 1px;
	height: 1px;
	margin: 0;
	overflow: hidden;
	font-size: 0%;
}
#project .lead .scroll {
	position: relative;
	overflow: auto;
	white-space: nowrap;
	max-height: calc(100dvh - 40px);
	margin-top: 70px;
}
#project .lead .scroll::before {
	content: "左右にスクロールできます";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 200px;
	height: 40px;
	margin: auto;
	padding: 5px 10px;
	background-color: rgba(0, 0, 0, 0.3);
	border-radius: 5px;
	color: #fff;
	font-size: 1.4rem;
	opacity: 1;
	transition: all 0.3s ease;
	pointer-events: none;
}
#project .lead .scroll.scrolled::before {
	opacity: 0;
}
#project .lead table {
	width: 100%;
}
#project .lead th {
	padding: 15px 70px;
	background-color: #3F3F3F;
	color: #fff;
	font-size: 1.8rem;
	text-align: center;
	vertical-align: middle;
}
#project .lead th:last-child {
	border-left: 1px solid #eee;
}
#project .lead tr:first-child th {
	background-color: #000;
}
#project .lead td {
	padding: 30px 40px;
	border-left: 1px solid #eee;
	background-color: #F4F4F4;
	line-height: 1.4;
	vertical-align: middle;
}
#project .lead td:last-child {
	background-color: #fff;
}
#project .lead tr:not(:first-child) th,
#project .lead tr:not(:first-child) td {
	border-top: 1px solid #eee;
}
@media (max-width: 959px) {
	#project .lead h2 {
		font-size: 3.1rem;
	}
	#project .lead th {
		padding: 10px 40px;
	}
	#project .lead td {
		padding: 25px 30px;
	}
}
@media (max-width: 699px) {
	#project .lead .graph {
		padding: 30px;
	}
}
@media (max-width: 519px) {
	#project .lead {
		padding-top: 60px;
		padding-bottom: 50px;
	}
	#project .lead h2 {
		font-size: 2.8rem;
	}
	#project .lead .graph {
		padding: 20px;
	}
	#project .lead ol {
		margin-top: 20px;
	}
	#project .lead li {
		display: flex;
		align-items: center;
		margin-top: 4px;
		padding: 10px 15px;
		background-color: #fff;
		line-height: 1.4;
	}
	#project .lead li .num {
		flex-shrink: 0;
		display: flex;
		justify-content: center;
		align-items: center;
		width: 28px;
		height: 28px;
		margin-right: 10px;
		padding-bottom: 2px;
		background-color: #D61500;
		border-radius: 50px;
		color: #fff;
		font-weight: bold;
	}
	#project .lead li .note {
		font-size: 1.4rem;
	}
	#project .lead .scroll {
		margin-top: 30px;
	}
	#project .lead th {
		padding: 10px 30px;
	}
	#project .lead td {
		padding: 15px 20px;
	}
}


/* ---------- section ---------- */
#project section {
	padding: 80px 0;
	background-color: #fff;
}
#project section .ttl {
	display: flex;
}
#project section .ttl .num {
	width: 54px;
	margin-right: 15px;
	border-bottom: 3px solid #D61500;
	color: #D61500;
	font-size: 3.0rem;
	line-height: 1.2;
	text-align: center;
}
#project section h3 {
	font-size: 3.6rem;
	font-weight: bold;
	line-height: 1;
}
#project section .content {
	display: flex;
	justify-content: space-between;
/*	gap: calc(8000% / 1360);*/
	gap: 6%;
	margin-top: 40px;
}
#project section .left,
#project section .right {
	width: 47%;
}
#project section ol,
#project section ul {
}
#project section ol {
	margin-top: 10px;
	margin-bottom: 10px;
}
#project section ul {
	margin-top: 20px;
}
#project section li {
	margin-top: 4px;
	padding: 10px 15px;
	background-color: #F4F4F4;
}
#project section li span {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 28px;
	height: 28px;
	margin-right: 10px;
	padding-bottom: 2px;
	background-color: #D61500;
	border-radius: 50px;
	vertical-align: middle;
	color: #fff;
	font-weight: bold;
}
#project section ul li {
}
#project section ul li::before {
	content: '';
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-top: -4px;
	margin-right: 10px;
	background-color: #EB1700;
	border-radius: 10px;
	vertical-align: middle;
}
#project section .subttl {
	margin-bottom: 10px;
	font-size: 2.4rem;
	font-weight: bold;
}
#project section .subttl img {
	width: 20px;
	margin-top: -4px;
	margin-right: 10px;
	vertical-align: middle;
}
#project #project01 {
}
#project #project02 {
	background-color: transparent;
}
#project #project02 li {
	background-color: #fff;
}
#project #project03 {
	background-image: url("../img/project_accident_03_bg.png");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: right center;
}
@media (max-width: 959px) {
	#project section .ttl .num {
		width: 44px;
		font-size: 2.2rem;
	}
	#project section h3 {
		font-size: 2.7rem;
	}
	#project section .content {
		display: block;
	}
	#project section .left,
	#project section .right {
		width: 100%;
	}
	#project section .right {
		margin-top: 20px;
	}
	#project section .subttl {
		font-size: 2.0rem;
	}
	#project #project03 {
		background-image: none;
	}
}
@media (max-width: 519px) {
	#project section {
		padding: 50px 0;
	}
	#project section h3 {
		font-size: 2.2rem;
	}
	#project section .content {
		margin-top: 20px;
	}
	#project section .subttl {
		font-size: 1.8rem;
	}
}




/* ---------------------------------------------------------
 * privacy.html
** --------------------------------------------------------- */
/* ---------- #privacy ---------- */
#privacy {
	padding: 120px 0 100px;
	background-image: url("../img/top_law_bg_lt.png"), url("../img/top_law_bg_rb.png");
	background-repeat: no-repeat;
	background-size: 512px auto, 495px auto;
	background-position: left top, right bottom;
}
#privacy .en {
	text-align: center;
}
#privacy h2 {
	margin-bottom: 80px;
	font-size: 4.2rem;
	font-weight: bold;
	text-align: center;
}
#privacy section {
	margin-top: 50px;
}
#privacy h3 {
	position: relative;
	margin-bottom: 30px;
	font-size: 2.8rem;
	font-weight: bold;
}
#privacy h3::before,
#privacy h3::after {
	content: "";
	position: absolute;
	display: block;
}
#privacy h3::before {
	left: 0;
	bottom: -1px;
	width: 40px;
	height: 3px;
	background-color: #EB1700;
}
#privacy h3::after {
	left: 40px;
	bottom: 0;
	width: calc(100% - 40px);
	height: 1px;
	background-color: #ccc;
}
#privacy h3 span {
	display: inline-block;
	width: 40px;
	margin-right: 10px;
	text-align: center;
}
#privacy h3 + div {
}
#privacy ul {
	margin-top: 20px;
}
#privacy li {
	margin-top: 5px;
}
#privacy li::before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 10px;
	background-color: #EB1700;
	border-radius: 10px;
	vertical-align: middle;
}
#privacy a {
	color: #134798;
	text-decoration: underline;
}
#privacy a img {
	margin-top: -2px;
	margin-left: 5px;
	vertical-align: middle;
}
#privacy .subttl {
	margin-top: 40px;
	margin-bottom: 10px;
	font-size: 2.4rem;
	font-weight: bold;
}
#privacy .subttl img {
	width: 20px;
	margin-right: 10px;
	vertical-align: middle;
}
#privacy dt {
	margin-top: 25px;
	margin-bottom: 10px;
}
#privacy dd {
	padding-left: 20px;
}
#privacy dd ul {
	margin-top: 0;
}
#privacy .sns {
	margin-top: 30px;
	padding-top: 15px;
	border-top: 1px dashed #ccc;
}
#privacy aside {
	margin-top: 40px;
	padding: 40px;
	background-color: #171717;
	border-radius: 5px;
	color: #fff;
	text-align: center;
}
#privacy aside h4 {
	font-size: 2.2rem;
	font-weight: bold;
}
#privacy aside p {
	margin-top: 20px;
}
@media (max-width: 959px) {
	#privacy h2 {
		font-size: 3.1rem;
	}
	#privacy h3 {
		font-size: 2.4rem;
	}
	#privacy .subttl {
		font-size: 2.0rem;
	}
}
@media (max-width: 519px) {
	#privacy h2 {
		font-size: 2.6rem;
	}
	#privacy h3 {
		font-size: 2.2rem;
	}
	#privacy .subttl {
		font-size: 1.8rem;
	}
	#privacy aside {
		padding: 20px;
	}
	#privacy aside h4 {
		font-size: 1.8rem;
	}
}