@charset "utf-8";

.sp {
	display: none !important;
}

.tablet {
	display: none !important;
}

/*commonスタイル*/

img{
    width: 100%;
    height: auto;
}

.flexBet{
	display: flex;
	justify-content: space-between;
}
.flexStart{
	display: flex;
	justify-content: flex-start;
}
.order1{
	order: 1;
}
.order2{
	order: 2;
}
.shadow1{
	box-shadow: 0 0 4px rgba(0,0,0,0.25);
}
.shadow2{
	box-shadow: 0 4px 4px rgba(0,0,0,0.25);
}
.shadow3{
	box-shadow: 3px 3px 0px #3BC2A7;
}
.shadow4{
	box-shadow: 0 25px 50px rgba(52,54,63,0.18);
}


/*MV*/
main{
	padding-top: 80px;
}
#mvWrap{ 
	position: relative;
}
.topMvWrap{
	width: 95%;
	margin: 0 auto;
}
#mv{
	position: relative;
}

.topMv{
	height: 700px;
	border-radius: 0 0 16px 16px;
	overflow: hidden;
}
.mvBgVideo{
	position: relative;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: brightness(0.5);
}

.mvCopy1{
	position: absolute;
	top: 325px;
	left: 50%;
	transform: translateX(-607px);
	display: block;
	width: 624px;
}

.mvTxtEn{
}
.mvTxtEn {
	position: absolute;
	bottom: 0px;
  display: flex;
  width: max-content;
  animation: loopText 40s linear infinite;
}

.mvTxtEn img {
  display: block;
  width: auto;
  max-width: none;
  flex-shrink: 0;
	margin-right: 30px;
}

@keyframes loopText {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}


/*TOP*/

#topRenew{
	position: relative;
}
.topRenewW{
	position: relative;
	padding: 80px 0 0;
}
.topReW{
	border-radius: 8px;
	overflow: hidden;
	background: #3BC2A7;
	color: #fff;
	padding: 40px;
	box-sizing: border-box;
}
.topReTtl{
	margin-bottom: 40px;
	text-align: center;
}
.topReTxt{
	text-align: center;
}
.topReTxt span{
	color: #111B2A;
}
.topReTxt span a:hover{
	text-decoration: underline;
}

#topSec01{
	position: relative;
}
#topSec01:before{
	content: "";
	background: url("../img/top01_asset1.png") no-repeat;
	background-size: contain;
	width: 395px;
	height: 395px;
	display: block;
	position: absolute;
	top: -104px;
	left: 50%;
	transform: translateX(-816px);
	z-index: -1;
}
#topSec01:after{
	content: "";
	background: url("../img/top01_asset_2.png") no-repeat;
	background-size: contain;
	width: 1259px;
	height: 1262px;
	display: block;
	position: absolute;
	top: -148px;
	left: 50%;
	transform: translateX(34px);
	z-index: -1;
}
.topSec01W{
	width: 1100px;
	padding: 138px 0 257px;
	position: relative;
	box-sizing: border-box;
}
.topSec01W:before{
	content: "";
	background: url("../img/top01_asset3.png") no-repeat;
	background-size: contain;
	width: 307px;
	height: 307px;
	display: block;
	position: absolute;
	top: 625px;
	left: 50%;
	transform: translateX(-533px);
	z-index: -1;
}
.top01TtlW{
	position: relative;
	z-index: 1;
}

.top01Ttl{
	position: absolute;
	writing-mode: vertical-rl;
	left: -96px;
	top: -16px;
	font-size: 6.4rem;
	font-weight: bold;
	letter-spacing: 0.12em;
}

.top01Ttl .bgGreen{
	background: #3BC2A7;
	padding: 22px 0;
	white-space: nowrap;
	color: #fff;
	line-height: 12rem;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}

.under{
	position: relative;
	top: 80px;
}

.top01ImgW{
	position: relative;
}

.top01Img1{
	position: relative;
	width: 570px;
	left: 50%;
	transform: translateX(-496px);
}
.top01Img2{
	position: absolute;
	width: 475px;
	display: block;
	top: 123px;
	left: 50%;
	transform: translateX(180px);
}
.top01Img3{
	position: absolute;
	width: 331px;
	display: block;
	top: 510px;
	left: 50%;
}
.top01Img4{
	position: absolute;
	width: 277px;
	display: block;
	top: 705px;
	left: 50%;
	transform: translateX(378px);
}
#topSec02{
	position: relative;
}
#topSec02:before{
	content: "";
	background: url("../img/top02_asset1.png") no-repeat;
	background-size: contain;
	width: 1507px;
	height: 1417px;
	display: block;
	position: absolute;
	top: -132px;
	left: 50%;
	transform: translateX(-1250px);
	z-index: -1;
}
#topSec02:after{
	content: "";
	background: url("../img/top02_asset2.png") no-repeat;
	background-size: contain;
	width: 897px;
	height: 897px;
	display: block;
	position: absolute;
	top: -135px;
	left: 50%;
	transform: translateX(217px);
	z-index: -1;
}
.topSec02W{
	padding: 60px 0 210px 40px;
	position: relative;
	box-sizing: border-box;
}
.top02TtlW{
	margin-bottom: 70px;
}

.top02Ttl{

}

.top02TtlS{

}

.top02Txt{
	margin-bottom: 30px;
}

.top02Name{
	font-size: 1.8rem;
	font-weight: bold;
}
.top02Img{
	width: 460px;
	position: absolute;
	top: 400px;
	left: 50%;
	transform: translateX(40px);
	border-radius: 8px;
	overflow: hidden;
}
#topSec03{
	position: relative;
}
.topSec03W{
	padding: 60px 0 130px;
	position: relative;
	box-sizing: border-box;
}
.top03W{
	column-gap: 50px;
}

.top03Item{
	box-sizing: border-box;
	padding: 8px;
	border-radius: 8px;
	background: #fff;
	border: 1px solid #DADADA;
	position: relative;
}

.top03No{
	position: absolute;
	display: inline-block;
	width: 71px;
	height: 62px;
	background: url("../img/no_label.svg") no-repeat;
	background-size: contain;
	top: -7px;
	left: 18px;
	text-align: center;
	color: #fff;
	font-size: 4rem;
	font-weight: 700;
	box-sizing: border-box;
	padding-top: 5px;
}

.top03Img{
	margin-bottom: 35px;
}
.top03TxtW{
	text-align: center;
	padding-bottom: 24px;
}
.top03Ttl2{

}

.icon1:before{
	background: url("../img/icon_val_01.svg") no-repeat;
	background-size: contain;
}
.icon2:before{
	background: url("../img/icon_val_02.svg") no-repeat;
	background-size: contain;
}
.icon3:before{
	background: url("../img/icon_val_03.svg") no-repeat;
	background-size: contain;
}


.top03Txt{

}
#topSec04{
	position: relative;
}
#topSec04:before{
	content: "";
	background: url("../img/top04_bg.jpg") no-repeat;
	background-size: cover;
	width: 100%;
	height: 690px;
	display: block;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 0;
}
.topSec04W{
	padding: 230px 0 140px;
	position: relative;
	box-sizing: border-box;
}
.top04TtlW{
	writing-mode: vertical-rl;
	position: absolute;
	right: -92px;
	top: -60px;
}
@media screen and (max-width: 1450px) {
.top04TtlW{
	right: 0px;
}
}
.top04Ttl1{
	font-size: 2.6rem;
	font-weight: bold;
	color: #fff;
	letter-spacing: 0.12em;
	line-height: 4rem;
}

.bgBlack{
	background: #111B2A;
	padding: 10px 0;
	display: inline;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}

.top04Ttl1S{
	position: relative;
	top: 109px;
	margin-right: 15px;
	font-size: 2rem;
	font-weight: bold;
	line-height: 2.2em;
	letter-spacing: 0.12em;
}

.bgWhite{
	background: #fff;
	padding: 10px 5px;
	display: inline;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}

.top04Ttl2En{
	text-align: center;
	font-size: 6rem;
	font-weight: bold;
	margin-bottom: 60px;
	color: #fff;
}
.top04Copy{
	color: #fff;
	text-align: center;
	margin-bottom: 60px;
	text-shadow: 2px 2px 2px rgba(0,0,0,0.5);
}

.top04W{
	flex-wrap: wrap;
	grid-row-gap: 40px;
	margin-bottom: 80px;
}

.top04Item{
	width: 500px;
	display: inline-block;
	border-radius: 8px;
	overflow: hidden;
}

.top04Img{
	position: relative;
}

.top04Reason{
	position: absolute;
	font-size: 6.4rem;
	color: #fff;
	transform: rotate(-16deg);
	top: 30px;
	left: 30px;
	text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5);
}

.top04Ttl3{
}

.top04Txt{
	box-sizing: border-box;
	padding: 30px;
}

.top04BtnW{

}
#topSec05{
	background: #fff;
	position: relative;
}
.topSec05W{
	padding: 140px 0 186px;
	position: relative;
	box-sizing: border-box;
}
.topSec05W{

}

.top05Ttl1W .commonTtl03En:before{
	color: #F0F0F0;
}

.top05Txt{
	text-align: center;
	margin-bottom: 40px;
}

.top05Items{
	column-gap: 50px;
	margin-bottom: 80px;
}

.top05Item{
	border-radius: 8px;
	overflow: hidden;
	position: relative;
}

.top05Img{
}

.top05TxtW{
	position: absolute;
	background: rgba(255,255,255,0.7);
	top: 0;
	left: 0;
	width: 100%;
	z-index: 1;
	box-sizing: border-box;
	padding: 15px 25px;
}

.top05Ttl2{
	font-size: 2.2rem;
	font-weight: bold;
	color: #3BC2A7;
	margin-bottom: 15px;
}

.top05Txt2{

}

.top05ScrollEn {
  overflow: hidden;
  width: 100%;
	position: absolute;
	bottom: -24px;
}

.top05ScrollEn__track {
  display: flex;
  width: max-content;
  animation: loopText 40s linear infinite;
}

.top05ScrollEn__track img {
  display: block;
  width: auto;
  max-width: none;
  flex-shrink: 0;
}

@keyframes loopText {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

#topSec06{
	position: relative;
}
.topSec06W{
	padding: 116px 0 86px;
	position: relative;
	box-sizing: border-box;
}
.top06Ttl1W{

}

.top06Txt1{
	text-align: center;
	margin-bottom: 40px;
}

.top06SlideW{
	position: relative;
	left: 50%;
	transform: translateX(-560px);
	width: 100vw;
	margin-bottom: 85px;
}
.top06SlideW .slick-list {
    padding-bottom: 20px;
}
.top06Slide{
	width: 380px;
	margin: 0 12px;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}
.top06Bar {
	width: 358px;
	height: 5px;
	background: #d9d9d9;
	margin: 30px auto 0;
	position: absolute;
	overflow: hidden;
	right: -45px;
	bottom: 225px;
}
.top06Bar__thumb {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  background: #3BC2A7;
  transition: left .4s ease;
}
.top06Img{

}

.top06TxtW{
	padding: 16px 20px 40px;
	box-sizing: border-box;
}

.top06Label{
	display: inline-block;
	background: #F8F8F8;
	border: 1px solid #E4E4E4;
	margin-bottom: 16px;
	font-size: 1.2rem;
	font-weight: 500;
	padding: 5px 10px;
}

.top06Ttl2{
	margin-bottom: 16px;
}

.top06Txt2{

}

.top06BtnW{

}

.top06Btn{

}
#topSec07{
	position: relative;
	background: rgba(59,194,167,0.1);
}
.topSec07W{
	position: relative;
	box-sizing: border-box;
}
.top07W1{
	position: relative;
	padding: 82px 0 68px;
	z-index: 3;
}

.top07TxtW1{
	width: 524px;
	box-sizing: border-box;
	padding-left: 24px;
}

.top07Ttl{
	margin-bottom: 10px;
}

.top07Copy{
	font-size: 3.6rem;
	font-weight: bold;
	line-height: 7.5rem;
	margin-bottom: 10px;
}
.top07Copy .bgGreen{
	color: #fff;
	background: #3BC2A7;
	display: inline;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	padding: 4px 20px 5px;
	border-radius: 4px;
}

.top07Txt1{
	margin-bottom: 25px;
}

.top07Tags{
	column-gap: 8px;
	grid-row-gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 50px;
}

.top07Tag{
	width: 140px;
	text-align: center;
	display: inline-block;
	line-height: 3.4rem;
	background: #fff;
	border: 1px solid #DADADA;
	font-size: 1.2rem;
	font-weight: 500;
}

.top07ImgW{
	position: relative;
	width: 50%;
}

.top07Img1{
	width: 330px;
	position: absolute;
	left: 0;
	top: 0px;
}

.top07Img2{
	width: 330px;
	position: absolute;
	right: -132px;;
	top: 70px;
}

.top07Asset{
	font-size: 6rem;
	transform: rotate(-12deg);
	color: #3BC2A7;
	position: absolute;
	top: 460px;
    left: 70px;
}

.top07W2{
	position: relative;
	z-index: 2;
	padding: 80px 0 140px;
}
.top07W2:before{
	content: "";
	background: url("../img/top07_bg.jpg") no-repeat;
	background-size: cover;
	background-position: bottom center;
	width: 100vw;
	height: 100%;
	display: block;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	top: 0;
}


.top07Btn1W{
	width: 382px;
	position: relative;
}

.top07Btn1{
	width: 280px;
}

.top07Items{
	position: relative;
	column-gap: 60px;
}

.top07Item{
	border-radius: 8px;
	overflow: hidden;
	background: rgba(255,255,255,0.75);
	position: relative;
}

.top07Label{
	position: absolute;
	background: #111B2A;
	color: #fff;
	font-weight: bold;
	font-size: 1.2rem;
	padding: 3px 10px;
	top: 0;
	left: 0;
}

.top07Img3{
	position: relative;
}

.top07ImgTxt1{
	position: absolute;
	color: #fff;
	font-size: 2rem;
	font-weight: bold;
	left: 35px;
	bottom: 30px;
}

.top07ImgTxt2{
	position: absolute;
	color: #fff;
	font-size: 2rem;
	font-weight: normal;
	right: 35px;
	bottom: 30px;
	transform: rotate(-11deg);
}

.top07TxtW{
	padding: 30px 35px;
}

.top07Txt2{
	margin-bottom: 20px;

}
.top07Btn2W{
	position: relative;
	text-align: right;
}

.top07Btn2{
	width: 210px;
}

#topSec08{
	position: relative;
}
.topSec08W{
	padding: 80px 0 160px;
	position: relative;
	box-sizing: border-box;
	z-index: 1;
}

.top08W{
	border-radius: 8px;
	overflow: hidden;
	background: #3BC2A7;
	color: #fff;
}

.top08TxtW{
	width: 518px;
	margin-left: 37px;
	padding: 40px 0;
}

.top08TtlEn{
	margin-bottom: 30px;
}

.top08Ttl{
	margin-bottom: 30px;
}

.top08Txt{
	margin-bottom: 32px;
}

.top08BtnW{

}

.top08Btn{
	background: #fff;
	border: 1px solid #fff;
	width: 280px;
}
.top08Btn span{
	color: #3BC2A7 !important;
}
.top08Btn:before{
	background: #3BC2A7;
}
.top08Btn:hover span{
	color: #fff !important;
}

.top08Img{
	width: 500px;
}
.top08Img img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#topSec09{
	position: relative;
	background: #fff;
}
.topSec09W{
	padding: 95px 0;
	position: relative;
	box-sizing: border-box;
}
.top09W{
	position: relative;
}

.top09TxtW{
	width: 380px;
	padding-left: 24px;
	box-sizing: border-box;
}

.top09TtlEn{
	margin-bottom: 25px;
}

.top09TtlS{
}

.top09Info1{
	border-bottom: 1px solid #DADADA;
	margin-bottom: 20px;
	padding-bottom: 20px;
}

.top09Name{
	font-size: 1.6rem;
	font-weight: bold;
	margin-bottom: 15px;
}

.top09Add{
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.8;
}

.top09MapW{
	width: 680px;
	border-radius: 28px;
	overflow: hidden;
}
.top09MapW iframe{
	width: 100%;
	height: 100%;
	vertical-align: bottom;
}


#topSecNews{
	position: relative;
}
.topSecNewsW{
	width: 1020px;
	padding: 40px 0 80px;
	position: relative;
	box-sizing: border-box;
}
.topNewsTtlW{
	margin-bottom: 40px;
}
.topNewsItems{
	margin-bottom: 48px;
	position: relative;
}
.topNewsItems:before{
	content: "";
	background: url("../img/sec11_asset@2x.png") no-repeat;
	background-size: contain;
	width: 147px;
	height: 129px;
	display: block;
	position: absolute;
	left: 254px;
	top: -129px;
}
.topNewsItem{
	width: 240px;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 16px 16px 16px rgba(18,173,173,0.16);
	position: relative;
}
.topNewsItem:after{
	content: "";
	background: url("../img/arrow_r_3.svg") no-repeat;
	background-size: contain;
	width: 26px;
	height: 26px;
	display: block;
	position: absolute;
	right: 20px;
	bottom: 20px;
}
.topNewsItem a{
	display: block;
}
.topNewsItem a:hover{
	filter: brightness(1.1);
}
.topNewsImg{
	
}
.topNewsTxtW{
	padding: 20px 20px 60px;
}
.topNewsCat{
	border-radius: 4px;
	display: inline-block;
	line-height: 2rem;
	padding: 0 8px;
	border: 1px solid #43b9d1;
	color: #43b9d1;
	margin-bottom: 12px;
}
.topNewsTxt{
	
}

#topSecInq{
	position: relative;
}
.topSecInqW{
	padding: 80px 0 80px;
	position: relative;
	box-sizing: border-box;
}
.topInqTtlW{
}
.secInqBn{
	margin-bottom: 33px;
}
.secInqItems{
	width: 760px;
	margin: 0 auto 33px;
}
.secInqItem{
	background: #fff;
	border-radius: 20px;
	width: 240px;
	padding: 23px 23px 27px;
	box-sizing: border-box;
	text-align: center;
	box-shadow: 16px 16px 16px rgba(18,173,173,0.16);
}
.secInqIcon{
	width: 46px;
	display: inline-block;
	margin-bottom: 10px;
}
.secInqTtl{
	margin-bottom: 12px;
}
.secInqTxt{
	text-align: left;
}
.secInqW{
	width: 820px;
	margin: 0 auto;
	background: #3BC2A7;
	border-radius: 20px;
	box-sizing: border-box;
	padding: 45px;
	color: #fff;
}
.secInqTtl2{
	text-align: center;
	margin-bottom: 30px;
}
.inputW{
	margin-bottom: 30px;
}
.inqTxt{
	font-size: 1.6rem;
	font-weight: bold;
	letter-spacing: 0.1em;
	margin-bottom: 5px;
}
    .inqTxt span {
        font-size: 1.2rem;
        background: #F0F0F0;
        border-radius: 3px;
        display: inline-block;
        padding: 0 5px;
        box-sizing: border-box;
		color: #111B2A;
    }
.input1{
	width: 100%;
	border: none;
	padding: 12px 15px;
	box-sizing: border-box;
	border-radius: 8px;
	font-size: 1.6rem;
}
.input2 {
	width: 100%;
	height: 200px;
	border: none;
	padding: 12px 15px;
	box-sizing: border-box;
	border-radius: 8px;
	font-size: 1.6rem;
}
.inputRadio {
        line-height: 3rem;
    }
    .inputRadio label {
		display: inline-block;
        font-size: 1.6rem;
        font-weight: 500;
		margin-right: 20px;
    }
.priCheckW{
	text-align: center;
}
.inputCheck{
}
.submitW{
	text-align: center;
}
.submitBtn{
		min-width: 227px;
		display: inline-block;
		line-height: 46px;
		border-radius: 23px;
		box-sizing: border-box;
		position: relative;
		transition: 0.3s;
		overflow: hidden;
		text-align: center;
		font-size: 1.6rem;
		padding-left: 10px;
		border: 1px solid #3BC2A7;
		padding: 0 20px 0 20px;
		font-weight: 500;
		background: #fff;
	color: #3BC2A7;
}

/*中面共通*/

.inMv{
	height: 280px;
	position: relative;
}
.inMvContent{
	z-index: 1;
	position: relative;
	width: 1200px;
	height: 100%;
	margin: 0 auto;
	box-sizing: border-box;
	padding-left: 50px;
	padding-top: 50px;
}

.inMvCopy1{
	font-size: 3.6rem;
	font-weight: bold;
	line-height: 4.8rem;
	margin-bottom: 30px;
	color: #43b9d1;
}
.inMvCopy2{
	font-size: 1.8rem;
	font-weight: bold;
}
.breadW{
	padding-top: 5px;
	font-size: 1.4rem;
}
.breadHome{
	display: inline-block;
	position: relative;
	margin-right: 10px;
	padding-left: 15px;
	color: #00aeeb !important;
}
.breadHome:before{
	content: "";
	background: url("../img/bread_home.svg") no-repeat;
	background-size: contain;
	width: 10px;
	height: 12px;
	display: inline-block;
	position: absolute;
	left: 0;
	top: 5px;
}
.breadHome:after{
	content: ">";
	display: inline-block;
	position: relative;
	margin-left: 10px;
	font-size: 1.2rem;
	color: #2a2a2a !important;
}
.breadPage{
	display: inline-block;
}




/* ===== NEWS ===== */
#newsSec01{
	position: relative;
}
.newsSec01W{
	padding: 80px 0 100px;
	box-sizing: border-box;
}

/* 一覧：複数行想定なので flex-start + wrap */
.topNewsItems{
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	column-gap: 20px;
	row-gap: 20px;
}

/* カード幅：案件次第で調整（とりあえず4枚並ぶ現実ライン） */
.topNewsItem{
	width: 280px;
	background: #fff;
	border-radius: 10px;   /* 必要時に追記する方針ならここは消してOK */
	overflow: hidden;      /* radius運用とセット */
}

/* サムネ枠＝比率固定（ここが“トリミング予測”の本体） */
.topNewsImg{
	aspect-ratio: 16 / 9;
	overflow: hidden;
}
.topNewsImg img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.topNewsTxtW{
	padding: 18px 18px 18px;
	box-sizing: border-box;
}

.topNewsCat{
	display: inline-block;
	padding: 0 10px;
	line-height: 2.2rem;
	border: 1px solid #43b9d1;
	color: #43b9d1;
	border-radius: 4px;
	font-weight: bold;
	margin-bottom: 10px;
}

.topNewsTxt{
	margin-bottom: 10px;
}

.topNewsDate{
	font-size: 1.2rem;
	color: #587c7b;
	font-weight: bold;
}

/* pager */
.newsPagerW{
	text-align: center;
	margin-top: 40px;
}
.newsPager{
	display: inline-block;
	width: 40px;
	line-height: 40px;
	border-radius: 20px;
	border: 1px solid #43b9d1;
	color: #43b9d1 !important;
	margin: 0 5px;
	font-weight: bold;
}
.newsPager.is-current{
	background: #43b9d1;
	color: #fff !important;
}
