@charset "UTF-8";

/*-----------------------------------

	headline

-----------------------------------*/
#headline {
	background-image: url(../img/company/headline_bg.jpg);
}
#headline h1::after {
	content: "Campany";
}
/*-----------------------------------

	common

-----------------------------------*/
#contents section.company:not(#block01){
	padding-top: 80px;
}
#contents #block07{
	padding: 180px 0 80px!important;
	margin-top: -100px;
}
#contents section.company h2 {
	font-size: 30px;
	font-weight: 700;
	color: #114C98;
	padding: 0 0 15px 20px;
	border-bottom: 1px solid #ACACAC;
	margin-bottom: 50px;
	position: relative;
}
#contents section.company h2::before {
	content: "";
	width: 4px;
	height: 32px;
	background: #68B8F2;
	background: linear-gradient(0deg, rgba(104, 184, 242, 1) 0%, rgba(104, 184, 242, 1) 50%, rgba(17, 76, 152, 1) 50%, rgba(17, 76, 152, 1) 100%);
	position: absolute;
	left: 0;
	top: 0;
}
#contents section.company h2 span {
	font-size: 16px;
	font-weight: 500;
	color: #000;
	display: block;
	position: absolute;
	top: 5px;
	right: 0;
}
#contents section.company dl {
	display: flex;
	flex-wrap: wrap;
}
#contents section.company dl dt {
	width: 260px;
	padding-left: 20px;
	position: relative;
	margin-bottom: 50px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.45;
}
#contents section.company dl dt::before {
	content: "";
	width: 10px;
	height: 10px;
	border: 2px solid #114C98;
	border-radius: 50%;
	position: absolute;
	top: 10px;
	left: 0;
}
#contents section.company dl dd {
	width: calc(100% - 260px);
	margin-bottom: 50px;
}
@media screen and (max-width: 1100px) {
	#contents section.company dl dt {
		width: 180px;
	}
	#contents section.company dl dd {
		width: calc(100% - 180px);
	}
}
@media screen and (max-width: 840px) {
	#contents section.company dl dt {
		width: 100%;
		margin-bottom: 10px;
	}
	#contents section.company dl dd {
		width: 100%;
	}
}
@media screen and (max-width: 640px) {
	#contents section.company:not(#block01){
		padding-top: 40px;
	}
	#contents #block07{
		padding: 100px 0 40px!important;
		margin-top: -60px;
	}
	#contents section.company h2 {
		font-size: 18px;
		padding: 0 0 10px 15px;
		margin-bottom: 30px;
	}
	#contents section.company h2::before {
		width: 3px;
		height: 20px;
	}
	#contents section.company h2 span {
		font-size: 13px;
		top: 2px;
	}
	#contents section.company dl dt {
		padding-left: 15px;
		font-size: 16px;
		margin-bottom: 5px;
	}
	#contents section.company dl dt::before {
		width: 8px;
		height: 8px;
		top: 8px;
	}
	#contents section.company dl dd {
		margin-bottom: 30px;
	}
}
/*-----------------------------------

	block01

-----------------------------------*/
#block01 .inner {
	background: url(../img/company/block01_bg.jpg) no-repeat center center/ cover;
	padding: 60px;
	font-size: 24px;
	font-weight: 700;
}
#block01 .inner ul li {
	margin-top: 15px;
	line-height: 1.4;
	counter-increment: number01;
	padding-left: calc(1em + 10px);
	text-indent: calc(-1em + -10px);
}
#block01 .inner ul li::before {
	content: counter(number01)".";
	color: #006BB9;
	margin-right: 10px;
}
@media screen and (max-width: 840px) {
	#block01 .inner {
		padding: 40px;
	}
}
@media screen and (max-width: 640px) {
	#block01 .inner {
		padding: 25px;
		font-size: 16px;
	}
	#block01 .inner ul li {
		margin-top: 10px;
		padding-left: calc(1em + 5px);
		text-indent: calc(-1em + -5px);
	}
	#block01 .inner ul li::before {
		margin-right: 5px;
	}
}
/*-----------------------------------

	block02

-----------------------------------*/
#block02 .inner {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: 90px 1fr;
	grid-column-gap: 0px;
	grid-row-gap: 0px;
	font-size: 24px;
	font-weight: 500;
	text-align: center;
	background: #E2E9F3;
}
#block02 .inner .box01 { 
	grid-area: 1 / 1 / 2 / 5;
	background: #114C98;
	color: #FFF;
	font-weight: 700;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1em;
	position: relative;
}
#block02 .inner .box01::before {
	content: "";
	width: 72px;
	height: 19px;
	background: #114C98; 
	clip-path: polygon(100% 0, 0 0, 50% 100%);
	position: absolute;
	top: calc(100% - 2px);
	left: calc(50% - 36px);
	z-index: 10;
}
#block02 .inner > *:not(:first-of-type) {
	padding: 40px 0;
	line-height: 1.46;
	position: relative;
}
#block02 .inner > *:not(:first-of-type):not(:last-of-type)::after {
	content: "";
	width: 1px;
	height: calc(100% - 80px);
	background: #B0C4DD;
	position: absolute;
	top: 40px;
	right: 0;
}
#block02 .inner .box02 { grid-area: 2 / 1 / 3 / 2; }
#block02 .inner .box03 { grid-area: 2 / 2 / 3 / 3; }
#block02 .inner .box04 { grid-area: 2 / 3 / 3 / 4; }
#block02 .inner .box05 { grid-area: 2 / 4 / 3 / 5; }
@media screen and (max-width: 840px) {
	#block02 .inner {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: 70px repeat(2, 1fr);
		font-size: 20px;
	}
	#block02 .inner > *:not(:first-of-type) {
		padding: 30px 0;
	}
	#block02 .inner > *:not(:first-of-type):not(:last-of-type)::after {
		width: 0;
		height: 0;
		top: auto;
	}
	#block02 .inner > *:nth-of-type(2n)::after,
	#block02 .inner > *:nth-of-type(2)::before,
	#block02 .inner > *:nth-of-type(3)::before {
		content: "";
		background: #B0C4DD;
		position: absolute;
		z-index: 5;
	}
	#block02 .inner > *:nth-of-type(2n)::after {
		width: 1px !important;
		height: calc(100% - 60px) !important;
		top: 30px !important;
		right: 0;
	}
	#block02 .inner > *:nth-of-type(2)::before,
	#block02 .inner > *:nth-of-type(3)::before {
		width: calc(100% - 60px) !important;
		height: 1px !important;
		top: 100%;
		left: 30px;
	}
	#block02 .inner .box01 { grid-area: 1 / 1 / 2 / 5; }
	#block02 .inner .box02 { grid-area: 2 / 1 / 3 / 2; }
	#block02 .inner .box03 { grid-area: 2 / 2 / 3 / 3; }
	#block02 .inner .box04 { grid-area: 3 / 1 / 4 / 2; }
	#block02 .inner .box05 { grid-area: 3 / 2 / 4 / 3; }
}
@media screen and (max-width: 640px) {
	#block02 .inner {
		grid-template-rows: 50px repeat(2, 1fr);
		font-size: 16px;
	}
	#block02 .inner .box01::before {
		width: 40px;
		height: 11px;
		top: calc(100% - 1px);
		left: calc(50% - 20px);
	}
	#block02 .inner > *:not(:first-of-type) {
		padding: 20px 0;
	}
	#block02 .inner > *:nth-of-type(2n)::after {
		height: calc(100% - 40px) !important;
		top: 20px !important;
	}
	#block02 .inner > *:nth-of-type(2)::before,
	#block02 .inner > *:nth-of-type(3)::before {
		width: calc(100% - 40px) !important;
		left: 20px;
	}
}
/*-----------------------------------

	block03

-----------------------------------*/
#block03 p {
	font-weight: 500;
	line-height: 2;
}
#block03 ul {
	border-top: 1px solid #ACACAC;
	margin: 15px 0;
}
#block03 ul li {
	border-bottom: 1px solid #ACACAC;
	padding: 30px 0 30px 48px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.45;
	counter-increment: number02;
	text-indent: -48px;
}
#block03 ul li::before {
	content: counter(number02, decimal-leading-zero);
	font-size: 15px;
	font-weight: 600;
	font-family: "poppins", sans-serif;
	color: #68B8F2;
	margin-right: 30px;
}
@media screen and (max-width: 1100px) {
	#block03 ul li {
		padding-left: 33px;
		text-indent: -33px;
	}
	#block03 ul li::before {
		margin-right: 15px;
	}
}
@media screen and (max-width: 640px) {
	#block03 ul {
		margin: 10px 0;
	}
	#block03 ul li {
		padding: 15px 0 15px 28px;
		font-size: 15px;
		text-indent: -28px;
	}
	#block03 ul li::before {
		font-size: 13px;
	}
	#block03 ul li br {
		display: none;
	}
}
/*-----------------------------------

	block04

-----------------------------------*/
#block04 table {
	width: 100%;
	line-height: 2;
	margin-bottom: 30px;
}
#block04 table tr:nth-child(2n + 1) > * {
	background: #F7F7F7;
}
#block04 table th {
	width: 190px;
	padding: 20px 30px;
	text-align: left;
	vertical-align: middle;
	font-weight: 500;
}
#block04 table td {
	width: calc(100% - 190px);
	padding: 20px 30px 20px 0;
}
#block04 a.more {
	width: 280px;
	background: #114C98;
	color: #FFF;
	font-weight: 700;
	text-align: center;
	padding: 23px 0;
	background-image: url(../img/company/icon_arrow.svg);
	background-repeat: no-repeat;
	background-position:  calc(100% - 25px) center;
	background-size: 14px;
	transition: 0.5s;
	margin: 0 auto;
}
#block04 a.more:hover {
	opacity: 1;
	background-position:  calc(100% - 20px) center;
}
@media screen and (max-width: 640px) {
	#block04 table {
		margin-bottom: 15px;
	}
	#block04 table th {
		display: block;
		width: 100%;
		padding: 10px 10px 0 10px;
	}
	#block04 table td {
		display: block;
		width: 100%;
		padding: 0 10px 10px 10px;
	}
	#block04 a.more {
		width: 220px;
		padding: 18px 0;
		background-position:  calc(100% - 15px) center;
	}
}
/*-----------------------------------

	block05

-----------------------------------*/
#block05 dd {
	display: flex;
	justify-content: space-between;
}
#block05 table {
	width: 48%;
	line-height: 1.45;
	border-top: 1px solid #ACACAC;
}
#block05 table tr {
	border-bottom: 1px solid #ACACAC;
}
#block05 table tr > * {
	padding: 20px 10px;
}
#block05 table th {
	text-align: left;
	font-weight: 500;
	background: #F7F7F7;
	width: 260px;
}
#block05 table td {
	text-align: right;
	font-weight: 500;
	width: calc(100% - 260px);
}
@media screen and (max-width: 1100px) {
	#block05 table th {
		width: 230px;
	}
	#block05 table td {
		width: calc(100% - 230px);
	}
}
@media screen and (max-width: 640px) {
	#block05 dd {
		flex-wrap: wrap;
	}
	#block05 table {
		width: 100%;
	}
	#block05 table:last-child {
		border-top: none;
	}
	#block05 table th {
		width: 210px;
	}
	#block05 table td {
		width: calc(100% - 210px);
	}
}
/*-----------------------------------

	block06

-----------------------------------*/
#block06 table {
	width: 100%;
	line-height: 1.45;
	border-top: 1px solid #ACACAC;
}
#block06 table tr {
	border-bottom: 1px solid #ACACAC;
}
#block06 table tr > * {
	padding: 20px 10px;
}
#block06 table th {
	text-align: left;
	font-weight: 500;
	background: #F7F7F7;
	width: 450px;
	vertical-align: middle;
}
#block06 table td {
	text-align: right;
	font-weight: 500;
	width: calc(100% - 450px);
	vertical-align: middle;
}
@media screen and (max-width: 640px) {
	#block06 table th {
		width: 210px;
	}
	#block06 table td {
		width: calc(100% - 210px);
	}
}