@charset "UTF-8";
/*----------------------------------------

	index CSS

	- common
	- block01

-----------------------------------------*/

/*----------------------------------------
	common
-----------------------------------------*/
#headline {
	overflow: hidden;
	position: relative;
	height: calc(100vh - 68px - 60px);
	background-image: url("../../img/reason/headline_bg01s.jpg");
}
#headline::before,
#headline::after {
	content: '';
	display: block;
	position: absolute;
	z-index: 100;
	height: 240px;
	transform: skewX(-27deg);
}
#headline::before {
	top: 0;
	left: 0;
	width: 70px;
	background: #f3f3f3;
	transform-origin: left top;
}
#headline::after {
	bottom: 0;
	right: 0;
	width: 120px;
	background: #f56600;
	transform-origin: right bottom;
}
#headline .headline-inner {
	background: none;
}
#headline h1 div {
	width: 100%;
	font-size: 6.2rem;
	letter-spacing: 0.1em;
}
#headline h1 div > span {
	display: inline-block;
}
#headline h1 div > span:nth-child(1) {
	color: #fff;
}
#headline h1 div > span:nth-child(2) {
	color: #4c555a;
	text-shadow: rgba(255,255,255,1) 1px 1px 0px,
				 rgba(255,255,255,1) -1px 1px 0px,
				 rgba(255,255,255,1) 1px -1px 0px,
				 rgba(255,255,255,1) -1px -1px 0px;
}
#headline .bar::before,
#headline .bar::after {
	content: '';
	position: absolute;
	background: #999999;
}
#headline .bar::before {
	bottom: 0;
	left: 50%;
	width: 1px;
	height: 110px;
}
#headline .bar::after {
	bottom: 110px;
	left: calc(50% - 4px);
	width: 9px;
	height: 9px;
	border-radius: 50%;
}
#contentBody {
	padding-top: 0;
}
@supports (-webkit-text-stroke: 1px #fff) {
	#headline h1 div > span:nth-child(2) {
		color: transparent;
		-webkit-text-stroke: 1px #fff;
		text-shadow: none;
	}
}
@media print, screen and (min-width:768px) {
	#headline {
		background-image: url("../../img/reason/headline_bg01.jpg");
	}
	#headline::before,
	#headline::after {
		height: 300px;
	}
	#headline::before {
		width: 135px;
	}
	#headline::after {
		width: 150px;
	}
	#headline h1 div {
		width: 80%;
		margin: 0 auto;
		font-size: 10.5rem;
	}
	#breadcrumb {
		display: none;
	}
	#headline .bar::before {
		height: 30px;
	}
	#headline .bar::after {
		bottom: 30px;
		left: calc(50% - 1px);
		width: 3px;
		height: 3px;
	}
}
@media print, screen and (min-width:768px) {
	#headline {
		height: calc(100vh - 90px);
	}
}
@media print, screen and (max-width:374px) {
	#headline h1 div {
		font-size: 5.0rem;
	}
}

/*----------------------------------------
	block01
-----------------------------------------*/
.block01 {
	position: relative;
	padding: 100px 0 115px;
	background: url("../../img/cmn/c_box_bg01.png") center top repeat;
	background-size: 62px 62px;
}
.block01::before,
.block01::after {
	content: '';
	position: absolute;
	background: #999999;
}
.block01::before {
	top: 0;
	left: 50%;
	width: 1px;
	height: 30px;
}
.block01::after {
	top: 30px;
	left: calc(50% - 4px);
	width: 9px;
	height: 9px;
	border-radius: 50%;
}
.block01 .box01 {
	margin: 0 0 108px;
	padding: 45px 0 20px;
	background: #f3f3f3;
}
.block01 .box01 h2 {
	margin: 0 0 15px;
	line-height: 1.8;
}
.block01 .box01 .txt {
	margin: 0 25px;
}
.block01 .box01 .txt p {
	margin: 0 0 30px;
	line-height: 2.7;
}
.block01 .box02 h3 {
	margin: 0 0 54px;
}
.block01 .box02 h3 > span {
	position: relative;
	padding: 8px 35px 2px;
}
.block01 .box02 h3 > span::before,
.block01 .box02 h3 > span::after {
	content: '';
	display: block;
	position: absolute;
	width: 20px;
	height: 28px;
	border-style: solid;
}
.block01 .box02 h3 > span::before {
	top: 0;
	left: 0;
	border-width: 1px 0 0 1px;
	border-color: #f56600 transparent transparent #f56600;
}
.block01 .box02 h3 > span::after {
	bottom: 0;
	right: 0;
	border-width: 0 1px 1px 0;
	border-color: transparent #f56600 #f56600 transparent;
}
.block01 .box02 > ul > li {
	margin: 0 0 30px;
}
.block01 .box02 > ul > li > a {
	display: block;
	position: relative;
	z-index: 1;
	padding: 40px 0;
}
.block01 .box02 > ul > li > a > figure {
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.block01 .box02 > ul > li > a > .t01 {
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: -21px;
	left: calc(50% - 21px);
	width: 42px;
	height: 42px;
	border: 2px solid #fff;
	border-radius: 50%;
	background: #f56600;
}
.block01 .box02 > ul > li > a > .t02 > span {
	position: relative;
	padding: 0 30px;
}
.block01 .box02 > ul > li > a > .t02 > span::after {
	right: 2px;
	border-color: #fff #fff transparent transparent;
}
@media print, screen and (min-width:768px) {
	.block01 {
		padding-bottom: 110px;
	}
	.block01::after {
		left: calc(50% - 1px);
		width: 3px;
		height: 3px;
	}
	.block01 .box01 {
		padding: 52px 25px 26px;
	}
	.block01 .box01 h2 {
		margin: 0 0 20px;
		line-height: 1.4;
	}
	.block01 .box02 h3 {
		margin: 0 0 75px;
	}
	.block01 .box02 > ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.block01 .box02 > ul > li {
		width: calc(50% - 10px);
	}
	.block01 .box02 > ul > li > a > figure {
		overflow: hidden;
	}
	.block01 .box02 > ul > li > a > figure img {
		transition: transform 0.2s;
	}
	body.pc .block01 .box02 > ul > li > a:hover > figure img {
		transform: scale(1.1);
	}
}
@media print, screen and (min-width:960px) {
	.block01 .box02 > ul > li {
		width: calc(25% - 15px);
	}
}

/*----------------------------------------
	block02
-----------------------------------------*/
.block02 > section {
	margin-top: -68px;
	padding-top: 68px;
}
.block02 > section > figure {
	margin: 0 -58.645%;
}
.block02 > section .box01 {
	position: relative;
	margin-bottom: 160px;
	padding: 50px 0 55px;
	background: #fff;
	box-shadow: 2px 0 17px 0 rgba(34,34,34,0.1);
}
.block02 > section .box01::before {
	content: attr(data-text);
	position: absolute;
	top: calc(100% + 10px);
	left: 50%;
	z-index: -1;
	color: #f3f4f5;
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 14.0rem;
	font-weight: 700;
	line-height: 0;
	transform: translateX(-50%);
	white-space: nowrap;
}
.block02 > section .box01 p.white01 {
	position: absolute;
	bottom: 100%;
	padding: 0 10px 30px;
}
.block02 > section .box01 p.white01 > span > span {
	display: table;
	position: relative;
	z-index: 1;
	margin: 0 0 10px;
	padding: 3px 45px;
	white-space: nowrap;
}
.block02 > section .box01 p.white01 > span > span::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: #f56600;
	transform: skewX(-20deg);
}
.block02 > section .box01 .txt > h4 {
	margin: 0 0 15px;
}
.block02 > section .box01 .txt > p {
	line-height: 1.8;
}
.block02 > section .box02 {
	position: relative;
	padding: 110px 0 90px;
	background: #f3f4f5 url("../../img/reason/i_02_bg01.svg") 0 0 no-repeat;
	background-size: 100% auto;
}
.block02 > section .box02::before {
	content: '';
	position: absolute;
	top: -1px;
	left: calc(50% - 82px);
	border-width: 44px 82px 0 82px;
	border-style: solid;
	border-color: #fff transparent transparent transparent;
}
.block02 > section .box02 ul {
	margin: 0 0 40px;
}
.block02 > section .box02 ul > li {
	background: #fff;
	box-shadow: 2px 0 17px 0 rgba(34,34,34,0.1);
}
.block02 > section .box02 ul > li:not(:last-child) {
	margin: 0 0 70px;
}
.block02 > section .box02 ul > li > dl {
	position: relative;
}
.block02 > section .box02 ul > li > dl::before,
.block02 > section .box02 ul > li > dl::after {
	content: '';
	position: absolute;
	z-index: 100;
	box-sizing: border-box;
}
.block02 > section .box02 ul > li > dl::before {
	top: -28px;
	left: calc(50% - 28px);
	width: 56px;
	height: 56px;
	border: 4px solid #fff;
	border-radius: 50%;
	background: #f56600;
}
.block02 > section .box02 ul > li > dl::after {
	top: -9px;
	left: calc(50% - 13px);
	width: 26px;
	height: 12px;
	border-width: 0 0 4px 4px;
	border-style: solid;
	border-color: transparent transparent #fff #fff;
	transform: rotate(-45deg);
}
.block02 > section .box02 ul > li > dl > dt {
	position: relative;
	padding: 40px 0 22px;
	background: #f56600;
}
.block02 > section .box02 ul > li > dl > dt::before {
	content: '';
	position: absolute;
	bottom: -12px;
	left: calc(50% - 16px);
	border-width: 14px 16px 0 16px;
	border-style: solid;
	border-color: #f56600 transparent transparent transparent;
}
.block02 > section .box02 ul > li > dl > dd {
	padding: 25px 30px 35px;
	line-height: 1.8;
}
.block02 > section .box02 ul > li > dl > dd > p {
	margin: 0 0 8px;
}
.block02 > section .box02 .c-btn01 {
	margin: 0 auto;
}
@media print, screen and (min-width:768px) {
	.block02 > section {
		margin-top: -90px;
		padding-top: 90px;
	}
	.block02 > section > figure {
		height: 514px;
		margin: 0;
	}
	.block02 > section .box01 {
		width: calc(100% - 90px);
		max-width: 1200px;
		margin: -210px auto 185px;
		padding: 50px 25px 55px;
	}
	.block02 > section .box01::before {
		font-size: 22.0rem;
	}
	.block02 > section .box01 .txt {
		padding-right: 30px;
	}
	.block02 > section .box01 p.white01 {
		margin-left: -35px;
		padding: 0 0 35px;
	}
	.block02 > section .box01 p.white01 > span {
		display: table;
		position: relative;
		z-index: 1;
		margin: 0 0 10px;
		padding: 3px 50px;
	}
	.block02 > section .box01 p.white01 > span::before {
		content: '';
		position: absolute;
		top: 0;
		left: 0;
		z-index: -1;
		width: 100%;
		height: 100%;
		background: #f56600;
		transform: skewX(-20deg);
	}
	.block02 > section .box01 p.white01 > span > span {
		display: inline;
		position: static;
		margin: 0;
		padding: 0;
	}
	.block02 > section .box01 p.white01 > span > span::before {
		content: none;
	}
	.block02 > section .box02 ul {
		display: flex;
		justify-content: space-between;
	}
	.block02 > section .box02 ul > li {
		width: calc(33.3333% - 12px);
	}
	.block02 > section .box02 ul > li:not(:last-child) {
		margin: 0;
	}
}
@media print, screen and (min-width:960px) {
	.block02 > section .box01 {
		width: calc(100% - 180px);
		padding: 50px 75px 55px;
	}
	.block02 > section .box01 p.white01 {
		margin-left: -85px;
	}
}

/*----------------------------------------
	block03
-----------------------------------------*/
.block03 {
}
@media print, screen and (min-width:768px) {
}