@charset "UTF-8";

/*-----------------------------------

	headline

-----------------------------------*/
#headline {
	background-image: url(../img/contact/headline_bg.jpg);
}
#headline h1::after {
	content: "Contact";
}
/*-----------------------------------

	reset(form用)

-----------------------------------*/
input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none;
}
textarea {
  resize: vertical;
}
input[type='checkbox'],
input[type='radio'] {
  display: none;
}
input[type='submit'],
input[type='button'],
label,
button,
select {
  cursor: pointer;
}
select::-ms-expand {
  display: none;
}
/*-----------------------------------

	contact

-----------------------------------*/
#contact {
	padding-bottom: 100px;
}
#contact h2 {
	font-size: 30px;
	font-weight: 700;
	color: #114C98;
	padding: 0 0 15px 20px;
	border-bottom: 1px solid #ACACAC;
	margin-bottom: 50px;
	position: relative;
}
#contact 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;
}
#contact p {
	text-align: center;
	line-height: 2;	
	margin-bottom: 40px;
}
#contact table {
	width: 100%;
	border-top: 1px solid #ACACAC;
	margin-bottom: 40px;
	line-height: 2;
}
#contact table tr {
	border-bottom: 1px solid #ACACAC;
}
#contact table th {
	width: 300px;
	background: #F7F7F7;
	padding: 20px;
	text-align: left;
	font-weight: 500;
	vertical-align: middle;
}
#contact table th span {
	font-size: 14px;
	margin-left: 20px;
	color: #DB2B2B;
}
#contact table td {
	width: calc(100% - 300px);
	padding: 20px;
	word-break: break-all;
}
#contact table td input,
#contact table td textarea {
	border: 1px solid #ACACAC;
	padding: 10px;
	width: min(400px, 100%);
}
#contact table td textarea {
	height: 200px;
}
#contact table td .wFull {
	width: 100% !important;
}
#contact .btnArea {
	display: flex;
	justify-content: center;
	gap: 30px;
}
#contact .btnArea input {
	width: min(260px,calc(50% - 15px));
	font-weight: 700;
	text-align: center;
	padding: 20px 0;
	border: 1px solid #114C98;
}
#contact .btnArea input.submit {
	background: #114C98;
	color: #FFF;
}
#contact .btnArea input.back {
	background: #FFF;
	color: #114C98;
}
@media screen and (max-width: 1100px) {
}
@media screen and (max-width: 840px) {
	#contact table th {
		display: block;
		width: 100%;
	}
	#contact table td {
		display: block;
		width: 100%;
	}
}
@media screen and (max-width: 640px) {
	#contact {
		padding-bottom: 50px;
	}
	#contact h2 {
		font-size: 18px;
		padding: 0 0 10px 15px;
		margin-bottom: 30px;
	}
	#contact h2::before {
		width: 3px;
		height: 20px;
	}
	#contact table {
		margin-bottom: 20px;
	}
	#contact table th {
		padding: 15px;
	}
	#contact table td {
		padding: 15px;
	}
	#contact table td textarea {
		height: 150px;
	}
	#contact .btnArea {
		flex-direction: column;
		align-items: center;
		gap: 15px;
	}
	#contact .btnArea input {
		width: min(260px,100%);
		padding: 15px 0;
	}
}
/*-----------------------------------

	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);
	}
}