@charset "UTF-8";

.ttl_sec {
	flex-direction: column;
	align-items: center;
}

.ttl_sec .txt_en {
	font-size: 4.6rem;
	line-height: 1.13;
}

.ttl_sec .txt_ja {
	margin-top: 1em;
	padding-left: 0;
}

@media screen and (max-width: 768px){
	.ttl_sec .txt_en {
		font-size: calc( 46 / var(--rate_sp));
	}

	.ttl_sec .txt_ja {
		font-size: calc( 18 / var(--rate_sp));
	}
}

/* ----------------------------------------------------------------------------------------------------
*  sec_head
* --------------------------------------------------------------------------------------------------*/
.sec_head {
	padding-top: 60px;
}

.sec_head .flex_head {
	display: flex;
	justify-content: center;
	align-items: center;
}

.sec_head .flex_head .box_txt {
	width: 415px;
}

.sec_head .flex_head .box_txt .txt {
	font-weight: 300;
	font-size: 1.6rem;
	line-height: 1.75;
}

.sec_head .flex_head .box_figure {
	margin-left: 50px;
	width: 464px;
}

@media screen and (max-width: 768px){
	.sec_head {
		padding: calc( 80 / var(--rate_sp)) 0 calc( 90 / var(--rate_sp));
	}

	.sec_head .flex_head {
		flex-direction: column;
		align-items: flex-start;
	}

	.sec_head .flex_head .box_txt {
		width: 100%;
	}

	.sec_head .flex_head .box_txt .txt {
		font-size: calc( 18 / var(--rate_sp));
		line-height: 1.77;
	}

	.sec_head .flex_head .box_figure {
		margin: calc( 40 / var(--rate_sp)) 0 0;
		width: 100%;
	}
}
/* ----------------------------------------------------------------------------------------------------
*  sec_contents
* --------------------------------------------------------------------------------------------------*/
.sec_contents {
	padding: 110px 0 190px;
	position: relative;
}

.sec_contents .inner{
	position: relative;
	z-index: 10;
}

.sec_contents::before {
	content: "";
	background: var(--color_light_gray01);
	position: absolute;
	top: -60px;
	left: 50%;
	transform: translateX(-50%) skewY(18deg);
	transform-origin: left top;
	width: 100%;
	height: 1480px;
}

.sec_contents::after {
	content: "";
	background: var(--color_light_gray01);
	position: absolute;
	bottom: 13px;
	left: 50%;
	transform: translateX(-50%) skewY(-18deg);
	transform-origin: left top;
	width: 100%;
	height: 1440px;
}

.sec_contents .ttl_sec {
	margin-bottom: 100px;
}

.sec_contents .item_contents {
	background: #fff;
	position: relative;
	display: flex;
}

.sec_contents .item_contents:nth-child(n+2) {
	margin-top: 100px;
}

.sec_contents .item_contents:nth-child(odd) {
	margin-left: 20px;
	flex-direction: row-reverse;
}

.sec_contents .item_contents:nth-child(even) {
	margin-right: 20px;
}

.sec_contents .item_contents .ttl_num {
	font-weight: 700;
	font-size: 1.8rem;
	letter-spacing: 0.05em;
	line-height: 1.66;
	position: absolute;
	top: -10px;
}

.sec_contents .item_contents:nth-child(odd) .ttl_num {
	left: -20px;
}

.sec_contents .item_contents:nth-child(even) .ttl_num {
	text-align: right;
	right: -20px;
}

.sec_contents .item_contents .ttl_num .num {
	font-size: 3.6rem;
	letter-spacing: 0;
	line-height: 1;
	display: block;
}

.sec_contents .item_contents .ttl_num::after {
	content: "";
	background: var(--color_gray);
	position: absolute;
	left: 150px;
	top: 0;
	transform: rotate(45deg);
	transform-origin: left top;
	width: 1px;
	height: 212px;
}

.sec_contents .item_contents:nth-child(even) .ttl_num::after {
	left: auto;
	right: 150px;
	transform: rotate(-45deg);
}

.sec_contents .item_contents .ttl_contents {
	font-weight: 500;
	font-size: 2.4rem;
	letter-spacing: 0.2em;
	line-height: 2;
	position: absolute;
	top: 90px;
	left: 50px;
}

.sec_contents .item_contents:nth-child(even) .ttl_contents {
	margin-left: 620px;
}

.sec_contents .item_contents .box_txt {
	padding: 145px 50px 50px;
	width: calc( 100% - 620px );
	height: 400px;
}

.sec_contents .item_contents .box_txt > .txt {
	margin-bottom: 23px;
	font-weight: 300;
	font-size: 1.6rem;
	line-height: 2.25;
}

.sec_contents .item_contents .btn_more {
	padding-left: 30px;
	position: relative;
	z-index: 10;
	display: flex;
	align-items: center;
	width: 290px;
	height: 60px;
	transition: all 0.3s;
}

.sec_contents .item_contents .btn_more::before,
.sec_contents .item_contents .btn_more::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}

.sec_contents .item_contents .btn_more::before {
	background: var(--color_gray);
	z-index: -1;
	width: 100%;
	height: 100%;
}

.sec_contents .item_contents .btn_more::after {
	background: #fff;
	margin-left: 0;
	z-index: -1;
	width: calc( 100% - 1px );
	height: calc( 100% - 1px );
	transition: all 0.3s;
}

.gecko .sec_contents .item_contents .btn_more::after {
	width: calc( 100% - 2px );
	height: calc( 100% - 2px );
}

.sec_contents .item_contents .btn_more .txt {
	font-weight: 700;
	font-size: 1.4rem;
}

.sec_contents .item_contents .btn_more .txt::after {
	content: "\002192";
	padding-left: 1em;
	font-weight: 400;
	font-family: 'Noto Sans JP', "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", Arial, Verdana, sans-serif;
	font-size: 1.4rem;
}

.sec_contents .item_contents .btn_more.link_blank .txt::before {
	content: "";
	background: url(../img/common/ico_blank_black.svg) no-repeat 50% 50% / contain;
	position: absolute;
	top: 6px;
	right: 7px;
	width: 9px;
	height: 9px;
}

.sec_contents .item_contents .btn_more:hover::after {
	background: var(--color_gray);
}

.sec_contents .item_contents .btn_more:hover .txt {
	color: #fff;
}

.sec_contents .item_contents .btn_more.link_blank:hover .txt::before {
	background-image: url(../img/common/ico_blank.svg);
}

.sec_contents .item_contents figure {
	width: 800px;
	height: 400px;
}

.sec_contents .item_contents:nth-child(odd) figure {
	margin-right: -180px;
}

.sec_contents .item_contents:nth-child(even) figure {
	margin-left: -180px;
}

@media screen and (max-width: 768px){
	.sec_contents {
		background: var(--color_light_gray01);
		padding: calc( 20 / var(--rate_sp)) 0 calc( 80 / var(--rate_sp));
	}

	.sec_contents::before {
		border-style: solid;
		border-width: 0 calc( 480 / var(--rate_sp)) calc( 156 / var(--rate_sp)) 0;
		border-color: transparent #fff transparent transparent;
		background: transparent;
		top: 0;
		transform: translateX(-50%);
		width: 0;
		height: 0;
	}

	.sec_contents::after {
		background: #fff;
		bottom: 0;
		transform: translateX(-50%);
		width: 100%;
		height: calc( 230 / var(--rate_sp));
	}

	.sec_contents .ttl_sec {
		margin-bottom: calc( 80 / var(--rate_sp));
	}

	.sec_contents .list_contents {
		position: relative;
	}

	.sec_contents .list_contents::after {
		content: "";
		border-style: solid;
		border-width: 0 0 calc( 150 / var(--rate_sp)) calc( 480 / var(--rate_sp));
		border-color: transparent transparent #fff transparent;
		position: absolute;
		left: 50%;
		bottom: calc( 150 / var(--rate_sp));
		transform: translateX(-50%);
		z-index: -1;
		width: 0;
		height: 0;
	}

	.sec_contents .item_contents,
	.sec_contents .item_contents:nth-child(odd),
	.sec_contents .item_contents:nth-child(even) {
		margin-left: 0;
		background: transparent;
		flex-direction: column;
	}

	.sec_contents .item_contents:nth-child(n+2) {
		margin-top: calc( 80 / var(--rate_sp));
	}

	.sec_contents .item_contents .ttl_num,
	.sec_contents .item_contents:nth-child(odd) .ttl_num,
	.sec_contents .item_contents:nth-child(even) .ttl_num {
		font-size: calc( 18 / var(--rate_sp));
		text-align: left;
		position: relative;
		top: 0;
		left: 0;
		right: auto;
		height: calc( 60 / var(--rate_sp));
	}

	.sec_contents .item_contents .ttl_num .num {
		font-size: calc( 36 / var(--rate_sp));
	}

	.sec_contents .item_contents .ttl_num::after,
	.sec_contents .item_contents:nth-child(even) .ttl_num::after {
		left: calc( 150 / var(--rate_sp));
		right: auto;
    	transform: rotate(45deg);
		height: calc( 212 / var(--rate_sp));
	}

	.sec_contents .item_contents .ttl_contents,
	.sec_contents .item_contents:nth-child(even) .ttl_contents {
		margin-left: 0;
		font-size: calc( 24 / var(--rate_sp));
		letter-spacing: 0.1em;
		top: calc( 15 / var(--rate_sp));
		left: calc( 100 / var(--rate_sp));
		display: flex;
		align-items: flex-end;
		height: 4em;
	}

	.sec_contents .item_contents:nth-child(5) .ttl_contents {
		left: calc( 150 / var(--rate_sp));
	}

	.sec_contents .item_contents .box_txt {
		margin: calc( -35 / var(--rate_sp)) calc( -30 / var(--rate_sp)) 0 0;
		padding: calc( 35 / var(--rate_sp)) calc( 40 / var(--rate_sp));
		background: #fff;
		width: calc( 450 / var(--rate_sp));
		height: auto;
	}

	.sec_contents .item_contents .box_txt > .txt {
		margin-bottom: calc( 30 / var(--rate_sp));
		font-size: calc( 18 / var(--rate_sp));
		line-height: 2;
	}

	.sec_contents .item_contents .btn_more {
		margin-left: auto;
		padding-left: 0;
		justify-content: center;
		width: calc( 250 / var(--rate_sp));
		height: calc( 60 / var(--rate_sp));
	}

	.sec_contents .item_contents .btn_more .txt,
	.sec_contents .item_contents .btn_more .txt::after {
		font-size: calc( 14 / var(--rate_sp));
	}

	.sec_contents .item_contents .btn_more.link_blank .txt::before {
		top: calc( 6 / var(--rate_sp));
		right: calc( 7 / var(--rate_sp));
		width: calc( 9 / var(--rate_sp));
		height: calc( 9 / var(--rate_sp));
	}

	.sec_contents .item_contents figure,
	.sec_contents .item_contents:nth-child(odd) figure,
	.sec_contents .item_contents:nth-child(even) figure {
		margin: calc( 70 / var(--rate_sp)) 0 0 calc( -30 / var(--rate_sp));
		width: calc( 450 / var(--rate_sp));
		height: calc( 225 / var(--rate_sp));
	}

}

/* ----------------------------------------------------------------------------------------------------
*  sec_strength
* --------------------------------------------------------------------------------------------------*/
.sec_strength {
	padding-top: 115px;
}

.sec_strength .ttl_strength {
	margin-bottom: 50px;
	font-weight: 500;
	font-size: 3.2rem;
	letter-spacing: 0.2em;
}

.sec_strength .list_strength .item_strength {
	position: relative;
	display: flex;
	align-items: center;
	height: 500px;
}

.sec_strength .list_strength .item_strength:nth-child(n+2) {
	margin-top: 50px;
}

.sec_strength .list_strength .item_strength:nth-child(odd) {
	padding-right: 58%;
}

.sec_strength .list_strength .item_strength:nth-child(even) {
	padding-left: 58%;
}

.sec_strength .list_strength .item_strength::before {
	content: "";
	background: var(--color_light_gray01);
	position: absolute;
	bottom: -50px;
	width: 900px;
	height: 380px;
}

.sec_strength .list_strength .item_strength:nth-child(odd)::before {
	right: -180px;
}

.sec_strength .list_strength .item_strength:nth-child(even)::before {
	left: -180px;
}

.sec_strength .list_strength .item_strength::after {
	content: "";
	background: #fff;
	position: absolute;
	top: 0;
	width: calc( 100% - 140px );
	height: 100%;
}

.sec_strength .list_strength .item_strength:nth-child(odd)::after {
	left: 0;
}

.sec_strength .list_strength .item_strength:nth-child(even)::after {
	right: 0;
}

.sec_strength .list_strength .item_strength .box_txt {
	position: relative;
	z-index: 10;
	text-align: right;
}

.sec_strength .list_strength .item_strength .box_txt .ttl_num {
	margin-bottom: -0.4em;
	color: var(--color_light_gray01);
	font-weight: 700;
	font-size: 5.923rem;
	letter-spacing: 0.05em;
	text-align: left;
}

.sec_strength .list_strength .item_strength .box_txt .ttl_num:first-letter {
	color: var(--color_gray);
}

.sec_strength .list_strength .item_strength:nth-child(odd) .box_txt .ttl_num {
	margin-left: -0.55em;
}

.sec_strength .list_strength .item_strength .box_txt .ttl {
	margin-bottom: 40px;
	font-weight: 500;
	font-size: 2.4rem;
	letter-spacing: 0.1em;
	line-height: 1.5;
	position: relative;
	display: inline-block;
}

.sec_strength .list_strength .item_strength .box_txt .ttl::before {
	content: "";
	background: var(--color_gray);
	position: absolute;
	top: -13px;
	left: -27px;
	transform: rotate(37deg);
	width: 1px;
	height: 47px;
}

.sec_strength .list_strength .item_strength:nth-child(even) .box_txt .ttl {
	margin-right: -42px;
}

.sec_strength .list_strength .item_strength .box_txt .txt {
	font-weight: 300;
	font-size: 1.6rem;
	text-align: justify;
	line-height: 2;
}

.sec_strength .list_strength .item_strength .box_txt .txt_cover {
	display: flex;
	flex-direction: column-reverse;
}

.sec_strength .list_strength .item_strength .box_txt .qr {
	margin-left: auto;
	display: block;
	width: 100px;
}

.sec_strength .list_strength .item_strength figure {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 50;
	width: 700px;
	height: 400px;
}

.sec_strength .list_strength .item_strength:nth-child(odd) figure {
	right: -100px;
}

.sec_strength .list_strength .item_strength:nth-child(even) figure {
	left: -100px;
}

.sec_strength .list_strength .item_strength figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media screen and (max-width: 768px){
	.sec_strength {
		padding-top: calc( 80 / var(--rate_sp));
	}

	.sec_strength .ttl_strength {
		font-size: calc( 31 / var(--rate_sp));
	}

	.sec_strength .list_strength .item_strength {
		background: #fff;
		align-items: flex-start;
		flex-direction: column;
		height: auto;
	}

	.sec_strength .list_strength .item_strength:nth-child(n+2) {
		margin-top: calc( 130 / var(--rate_sp));
	}

	.sec_strength .list_strength .item_strength:nth-child(odd),
	.sec_strength .list_strength .item_strength:nth-child(even) {
		padding: 0 calc( 30 / var(--rate_sp)) calc( 40 / var(--rate_sp));
	}

	.sec_strength .list_strength .item_strength::before,
	.sec_strength .list_strength .item_strength:nth-child(odd)::before,
	.sec_strength .list_strength .item_strength:nth-child(even)::before {
		right: calc( -30 / var(--rate_sp));
		left: auto;
		bottom: calc( -43 / var(--rate_sp));
		width: calc( 360 / var(--rate_sp));
		height: calc( 330 / var(--rate_sp));
	}

	.sec_strength .list_strength .item_strength::after {
		width: 100%;
	}

	.sec_strength .list_strength .item_strength .box_txt {
		width: 100%;
	}

	.sec_strength .list_strength .item_strength .box_txt .ttl_num,
	.sec_strength .list_strength .item_strength:nth-child(odd) .box_txt .ttl_num {
		margin: 0 0 0 calc( -42 / var(--rate_sp));
		font-size: calc( 54 / var(--rate_sp));
		white-space: nowrap;
	}

	.sec_strength .list_strength .item_strength .box_txt .ttl,
	.sec_strength .list_strength .item_strength:nth-child(even) .box_txt .ttl {
		margin: calc( 5 / var(--rate_sp)) calc( -30 / var(--rate_sp)) calc( 35 / var(--rate_sp)) 0;
		font-size: calc( 21 / var(--rate_sp));
	}

	.sec_strength .list_strength .item_strength .box_txt .ttl::before {
		top: calc( 0 / var(--rate_sp));
		left: calc( -14 / var(--rate_sp));
		width: calc( 0.5 / var(--rate_sp));
		height: calc( 30 / var(--rate_sp));
	}

	.sec_strength .list_strength .item_strength .box_txt .txt {
		font-size: calc( 18 / var(--rate_sp));
	}

	.sec_strength .list_strength .item_strength .box_txt .txt_cover {
		display: block;
		overflow: hidden;
	}

	.sec_strength .list_strength .item_strength .box_txt .txt_cover .float_space{
	    float: right;
	    width: 1px;
	    height: calc( 110 / var(--rate_sp));
	}

	.sec_strength .list_strength .item_strength .box_txt .qr {
	    clear: both;
	    float: right;
	    margin: calc( 7.5 / var(--rate_sp)) 0 0 calc( 20 / var(--rate_sp));
	    width: calc( 100 / var(--rate_sp));
	}

	.sec_strength .list_strength .item_strength figure {
		margin-top: calc( 40 / var(--rate_sp));
		position: static;
		transform: translateY(0);
		width: 100%;
		height: calc( 205 / var(--rate_sp));
	}
}

/* ----------------------------------------------------------------------------------------------------
*  sec_list
* --------------------------------------------------------------------------------------------------*/
.sec_list {
	padding: 120px 0 180px;
}

.sec_list .ttl_sec {
	margin-bottom: 60px;
	flex-direction: column;
}

.sec_list .list_business {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

.sec_list .list_business .item_business {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 285px;
	height: 214px;
}

.sec_list .list_business .item_business .link_business {
	position: relative;
	overflow: hidden;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
}

.sec_list .list_business .item_business .link_business::before {
	content: "";
	border-right: 1px solid #fff;
	border-bottom: 1px solid #fff;
	position: absolute;
	left: 50%;
	bottom: 15px;
	transform: translateX(-50%) rotate(45deg);
	z-index: 50;
	width: 10px;
	height: 10px;
}

.sec_list .list_business .item_business .link_business.link_blank::after {
	margin: 0;
	position: absolute;
	right: 10px;
	top: 10px;
	z-index: 10;
}

.sec_list .list_business .item_business .link_business picture {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

.sec_list .list_business .item_business .link_business picture::before {
    content: "";
    background: rgba(0, 0, 0, 0);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    -webkit-transition: background-color 500ms cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: background-color 500ms cubic-bezier(0.165, 0.84, 0.44, 1);
}

.sec_list .list_business .item_business .link_business:hover picture::before {
    -webkit-transition: background-color 100ms cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: background-color 100ms cubic-bezier(0.165, 0.84, 0.44, 1);
    background: rgba(0, 0, 0, 0.25);
}

.sec_list .list_business .item_business .link_business picture img {
	width: 100%;
	height: 100%;
	object-fit: cover;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -webkit-transition: -webkit-transform 3600ms cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: -webkit-transform 3600ms cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 3600ms cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 3600ms cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 3600ms cubic-bezier(0.165, 0.84, 0.44, 1);
}

.sec_list .list_business .item_business .link_business:hover picture img {
    -webkit-transform: translate3d(0, 0, 0) scale(1.04);
    transform: translate3d(0, 0, 0) scale(1.04);
    -webkit-transition: -webkit-transform 3600ms cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: -webkit-transform 3600ms cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 3600ms cubic-bezier(0.165, 0.84, 0.44, 1);
    transition: transform 3600ms cubic-bezier(0.165, 0.84, 0.44, 1), -webkit-transform 3600ms cubic-bezier(0.165, 0.84, 0.44, 1);
}

.sec_list .list_business .item_business .link_business .box_txt {
	padding-top: 20px;
	color: #fff;
	display: block;
}

.sec_list .list_business .item_business .link_business .box_txt .ttl_num {
	font-weight: 700;
	font-size: 1.4rem;
	letter-spacing: 0.05em;
	line-height: 1;
	position: absolute;
	z-index: 10;
	top: 65px;
	left: 0;
	display: block;
	width: 100%;
}

.sec_list .list_business .item_business .link_business .box_txt .ttl {
	font-size: 1.6rem;
	letter-spacing: 0.1em;
	line-height: 1.625;
	position: relative;
	z-index: 10;
	display: block;
}

.sec_list .list_business .item_business .btn_more::after {
	content: "\002192";
	margin-left: 1em;
	font-family: 'Noto Sans JP', "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", Arial, Verdana, sans-serif;
	font-size: 1.6rem;
    vertical-align: middle;
	display: inline-block;
    transition: .6s cubic-bezier(.215,.61,.355,1);
}

.sec_list .list_business .item_business .btn_more:hover::after {
	transform: translateX(13px);
}

.sec_list .list_business .item_business .btn_more .txt {
	font-size: 1.6rem;
	vertical-align: middle;
}

@media screen and (min-width: 769px){
	.sec_list .list_business .item_business:nth-child(4n-2) {
    	transition-delay: .1s;
	}

	.sec_list .list_business .item_business:nth-child(4n-1) {
		transition-delay: .2s;
	}

	.sec_list .list_business .item_business:nth-child(4n) {
		transition-delay: .3s;
	}
}

@media screen and (max-width: 768px){
	.sec_list {
		padding: calc( 85 / var(--rate_sp)) 0 calc( 60 / var(--rate_sp));
	}

	.sec_list .ttl_sec {
		margin-bottom: calc( 45 / var(--rate_sp));
	}

	.sec_list .list_business {
		flex-direction: column;
	}

	.sec_list .list_business .item_business {
		width: 100%;
		height: calc( 200 / var(--rate_sp));
	}

	.sec_list .list_business .item_business:nth-child(n+2) {
		margin-top: calc( 10 / var(--rate_sp));
	}

	.sec_list .list_business .item_business .link_business::before {
		bottom: calc( 20 / var(--rate_sp));
		width: calc( 10 / var(--rate_sp));
		height: calc( 10 / var(--rate_sp));
	}

	.sec_list .list_business .item_business .link_business.link_blank::after {
		right: calc( 15 / var(--rate_sp));
		top: calc( 13 / var(--rate_sp));
	}

	.sec_list .list_business .item_business .link_business .box_txt {
		padding-top: calc( 20 / var(--rate_sp));
	}

	.sec_list .list_business .item_business .link_business .box_txt .ttl_num {
		font-size: calc( 18 / var(--rate_sp));
		top: calc( 50 / var(--rate_sp));
	}

	.sec_list .list_business .item_business .link_business .box_txt .ttl {
		font-size: calc( 20 / var(--rate_sp));
		line-height: 1.6;
	}

}