@charset "utf-8";

/*		Contents
---------------------------------------------------------------------------

	HOME							[ / ]
	エントリー						[ /entry/ ]
	会社説明会						[ /session/ ]

------------------------------------------------------------------------ */

/* ========================================================================
	HOME							[ / ]
======================================================================== */

/* ----------------------------------------
	hero
---------------------------------------- */
#hero{
	height:900px;
	background:url(../../img/bg_hero.jpg) no-repeat center;
	background-size:cover;
	border-bottom-right-radius:160px;
}

#hero img{
	position:absolute;
	bottom:55px;
	left:50%;
	-webkit-transform:translateX(-50%); /* Android */
	transform:translateX(-50%);
}

@media screen and (max-width:767px){
#hero{
	height:auto;
	padding:150px 0 104px 0;
	background-image:url(../../img/bg_hero_sp.jpg);
	border-bottom-right-radius:160px;
}

#hero img{
	position:static;
	-webkit-transform:none;
	transform:none;
}
}


/* ----------------------------------------
	message
---------------------------------------- */
#message{
	background:url(../../img/bg_message.png) no-repeat left top;
}

#message .inner{
	width:1200px;
	height:900px;
	padding:210px 0 0 368px;
	text-align:center;
}

#message h2{
	margin:0 0 64px 0;
}

@media screen and (max-width:767px){
#message{
	background:url(../../img/bg_message_sp.png) no-repeat center 20px;
	background-size:100% auto;
}

#message .inner{
	width:auto;
	height:auto;
	padding:90% 20px 60px;
}

#message h2{
	margin:0 0 40px 0;
}
}


/* ----------------------------------------
	mission
---------------------------------------- */
#mission{
	background:url(../../img/bg_mission.png) no-repeat right top;
}

#mission::before{
	content:"";
	position:absolute;
	top:38px;
	right:0;
	background:url(../../img/txt_mission.png) no-repeat center;
	width:100px;
	height:862px;
}

#mission::after{
	content:"";
	position:absolute;
	top:0;
	left:0;
	width:35%;
	height:100%;
	background:#FFFFFF;
}

#mission .inner{
	height:1130px;
	padding:224px 0 0 680px;
	z-index:1;
}

#mission .inner > img{
	position:absolute;
	top:0;
	left:0;
}

#mission p{
	max-width:540px;
}

@media screen and (max-width:767px){
#mission{
	background:#F7F7F7;
}

#mission::before,
#mission::after{
	content:none;
}

#mission .inner{
	height:auto;
	padding:0 0 134% 0;
	background:url(../../img/bg_mission_sp.png) no-repeat right bottom #f7f7f7;
	background-size:calc(100% - 10px) auto;
}

#mission .inner > img{
	position:static;
	width:100%;
	margin:0 0 30px 0;
}

#mission h2{
	margin:0 20px 20px;
}

#mission p{
	max-width:none;
	margin:0 20px;
}
}


/* ----------------------------------------
	strengths
---------------------------------------- */
#strengths{
	margin:-128px 0 0 0;
}

#strengths::before{
	content:"";
	position:absolute;
	top:14px;
	left:0;
	background:url(../../img/txt_strengths.png) no-repeat center;
	width:90px;
	height:1118px;
	z-index:1;
}

#strengths .inner > div{
	position:relative;
	height:600px;
}

#strengths h2{
	margin:0 0 0 220px;
}

#strengths h3{
	position:relative;
	margin-left:-80px;
	z-index:1;
}

#strengths p{
	max-width:540px;
}

@media print, screen and (min-width:768px) and (max-width:1280px){
#strengths h2{
	margin:0 0 0 100px;
}
}

@media screen and (max-width:767px){
#strengths{
	margin:0;
}

#strengths::before{
	content:none;
}

#strengths .inner{
	padding:60px 0 0 0;
}

#strengths .inner > div{
	margin:0 0 30px 0;
	height:auto;
}

#strengths h2,
#strengths h3{
	margin:0 20px 20px;
}

#strengths p{
	max-width:none;
	margin:0 20px 30px;
}
}


/* section_01 / section_03
---------------------------------------- */
#strengths .section_01,
#strengths .section_03{
	padding:50px calc(50% + 40px) 0 220px;
}

#strengths .section_03::before{
	content:"";
	position:absolute;
	top:-70px;
	left:50%;
	width:320px;
	height:600px;
	background:url(../../img/multiply_02.png) no-repeat center;
	mix-blend-mode:multiply;
	z-index:1;
}

#strengths .section_01 > img,
#strengths .section_03 > img{
	position:absolute;
	top:0;
	left:50%;
	margin:0 0 0 80px;
}

@media print, screen and (min-width:768px) and (max-width:1280px){
#strengths .section_01,
#strengths .section_03{
	padding-left:100px;
}
#strengths .section_03{
	padding-top:0;
}
}

@media screen and (max-width:767px){
#strengths .section_01,
#strengths .section_03{
	padding:0;
}

#strengths .section_01::before,
#strengths .section_03::before{
	content:none;
}

#strengths .section_01 > img,
#strengths .section_03 > img{
	position:static;
	width:100%;
	margin:0;
}
}


/* section_02
---------------------------------------- */
#strengths .section_02{
	margin:0 0 70px 0;
	padding:100px 0 0 calc(50% + 170px);
}

#strengths .section_02::before{
	content:"";
	position:absolute;
	top:-117px;
	left:-160px;
	width:480px;
	height:857px;
	background:url(../../img/multiply_01.png) no-repeat center;
	mix-blend-mode:multiply;
	z-index:1;
}

#strengths .section_02 > img{
	position:absolute;
	top:0;
	right:50%;
	margin:0 -80px 0 0;
}

#strengths .section_02 p{
	max-width:580px;
	padding:0 40px 0 0;
}

@media screen and (max-width:767px){
#strengths .section_02{
	margin:0;
	padding:0;
}

#strengths .section_02::before{
	content:none;
}

#strengths .section_02 > img{
	position:static;
	margin:0;
}

#strengths .section_02 p{
	max-width:none;
	padding:0;
}
}


/* ----------------------------------------
	businessmodel
---------------------------------------- */
#businessmodel::before{
	content:"";
	position:absolute;
	top:236px;
	right:0;
	background:url(../../img/txt_businessmodel.png) no-repeat center;
	width:90px;
	height:1628px;
}

#businessmodel .inner{
	width:960px;
	padding:50px 0 80px 0;
}

#businessmodel h3{
	margin:0 0 4px -70px;
}

#businessmodel p{
	margin:0 0 40px 0;
}

#businessmodel figure{
	margin:0 -18px 10px;
}

@media screen and (max-width:767px){
#businessmodel::before{
	content:none;
}

#businessmodel .inner{
	width:auto;
	padding:30px 20px;
}

#businessmodel h3{
	margin:0 0 10px 0;
}

#businessmodel p{
	margin:0 0 30px 0;
}

#businessmodel figure{
	margin:0 -9px 10px;
}
}


/* section_01
---------------------------------------- */
#businessmodel .section_01 h3{
	margin-bottom:-50px;
}

@media screen and (max-width:767px){
#businessmodel .section_01 h3{
	margin-bottom:10px;
}
}


/* ---------- img ---------- */
#businessmodel .section_01 .img{
	margin:0 -18px 40px;
}

@media screen and (max-width:767px){
#businessmodel .section_01 .img{
	margin:0 -9px 40px;
}
}


/* section_02
---------------------------------------- */
#businessmodel .section_02{
	position:relative;
}

#businessmodel .section_02::before{
	content:"";
	position:absolute;
	top:300px;
	left:-270px;
	width:640px;
	height:320px;
	background:url(../../img/multiply_03.png) no-repeat center;
	mix-blend-mode:multiply;
}

#businessmodel .section_02 > *{
	position:relative;
}

@media screen and (max-width:767px){
#businessmodel .section_02::before{
	content:none;
}
}


/* ----------------------------------------
	benefit
---------------------------------------- */
#benefit{
	background:#F8FAF7;
}

#benefit::before{
	content:"";
	position:absolute;
	top:34px;
	left:0;
	background:url(../../img/txt_benefit.png) no-repeat center;
	width:90px;
	height:860px;
	mix-blend-mode:multiply;
}

#benefit .inner{
	height:900px;
	padding:260px 0 0 890px;
}

#benefit .inner::before{
	content:"";
	position:absolute;
	bottom:-270px;
	right:-160px;
	width:480px;
	height:720px;
	background:url(../../img/multiply_04.png) no-repeat center;
	mix-blend-mode:multiply;
}

#benefit .inner > img{
	position:absolute;
	top:0;
	left:50px;
}

#benefit h2{
	margin-bottom:80px;
}

#benefit p{
	max-width:580px;
	padding:0 40px 0 0;
}

@media print, screen and (min-width:768px) and (max-width:1280px){
#benefit .inner{
	padding-left:840px;
}
}

@media screen and (max-width:767px){
#benefit::before,
#benefit .inner::before{
	content:none;
}

#benefit .inner{
	height:auto;
	padding:60px 0 0 0;
}

#benefit .inner > img{
	position:static;
	width:100%;
}

#benefit h2{
	margin:0 20px 20px;
}

#benefit p{
	max-width:none;
	padding:0 20px 30px;
}
}


/* ----------------------------------------
	voice
---------------------------------------- */
#voice::before{
	content:"";
	position:absolute;
	top:760px;
	right:0;
	background:url(../../img/txt_voice-day.png) no-repeat center;
	width:76px;
	height:1244px;
}

#voice .inner{
	padding:200px 0 0 0;
}

#voice h2,
#voice p{
	margin:0 0 20px calc(50% + 90px);
}

#voice ul{
	display:flex;
	justify-content:center;
	gap:0 80px;
	margin:-140px 35px 0;
}

#voice ul li{
	position:relative;
	width:33.33%;
	max-width:400px;
}
#voice ul li:nth-child(2){ margin:160px 0 0 0; }
#voice ul li:nth-child(3){ margin:320px 0 0 0; }

#voice ul li h3{
	position:absolute;
	top:20px;
	right:-20px;
	background:#FFFFFF;
	box-shadow:0 2px 8px rgba(0,0,0,0.1);
	padding:0 10px 0 15px;
	line-height:5.2rem;
}
#voice ul li:nth-child(2) h3,
#voice ul li:nth-child(3) h3{ right:-105px; }

#voice ul li h3 span{
	background:none;
	font-size:2.1rem;
}

#voice dl{
	position:relative;
	margin:-120px -35px 0 135px;
	padding:30px 30px 25px;
	background:rgba(255, 255, 255, 0.8);
	box-shadow:0 2px 8px rgba(0,0,0,0.1);
	-webkit-backdrop-filter:blur(30px);
	backdrop-filter:blur(30px);
	line-height:3.0rem;
	z-index:1;
}

#voice dl dt{
	position:relative;
	padding:0 0 25px 0;
	cursor:pointer;
}

#voice dl dt::before{
	content:"";
	position:absolute;
	bottom:0;
	left:0;
	width:100%;
	height:7px;
	background:url(../../img/icon_arrow.png) no-repeat center;
	background-size:14px 7px;
}

#voice dl dt.close::before{
	transform:scale(-1);
}

#voice dl dd{
	display:none;
	padding:18px 0 5px 0;
}

@media print, screen and (min-width:768px) and (max-width:1580px){
#voice ul{
	gap:0 60px;
}

#voice ul li:nth-child(2) h3,
#voice ul li:nth-child(3) h3{ right:-35px; }
}

@media print, screen and (min-width:768px) and (max-width:1440px){
#voice dl{
	margin-left:70px;
}
}

@media screen and (max-width:767px){
#voice::before{
	content:none;
}

#voice .inner{
	padding:60px 0 30px 0;
}

#voice h2{
	margin:0 20px 20px;
}

#voice p{
	margin:0 20px 30px;
}

#voice ul{
	display:block;
	margin:0 20px;
}

#voice ul li{
	width:auto;
	max-width:none;
	margin:0 0 30px 0;
}
#voice ul li:nth-child(2),
#voice ul li:nth-child(3){ margin:0 0 30px 0; }

#voice ul li > img{
	width:100%;
}

#voice ul li h3{
	top:20px;
	right:-10px;
	padding:0 10px 0 15px;
	line-height:4.0rem;
}
#voice ul li:nth-child(2) h3,
#voice ul li:nth-child(3) h3{ right:-10px; }

#voice ul li h3 span{
	font-size:1.4rem;
}

#voice dl{
	margin:-60px 20px 0;
	padding:20px;
	line-height:2.8rem;
}
}


/* ----------------------------------------
	day
---------------------------------------- */
#day{
	margin:-40px 0 0 0;
}

#day .inner{
	padding:216px 0 90px 0;
}

#day .inner > img{
	position:absolute;
	top:0;
	left:0;
}

#day h2{
	position:relative;
	margin:0 0 60px calc(50% + 245px);
	z-index:1;
}

#day ol{
	display:flex;
	flex-wrap:wrap;
	width:1240px;
	margin:0 auto;
	padding:50px 0 20px 115px;
	background:rgba(255,255,255,0.15);
	border-radius:10px;
	-webkit-backdrop-filter:blur(30px);
	backdrop-filter:blur(30px);
}

#day ol li{
	position:relative;
	width:365px;
	margin:0 0 30px 0;
}

#day ol li::before{
	content:"";
	position:absolute;
	top:44px;
	left:0;
	width:100%;
	height:3px;
	background:#8FC323;
}

#day ol li:nth-child(3)::before{
	background:-webkit-linear-gradient(to right, #8fc323 0%, #8fc323 40%, rgba(255,255,255,0) 100%);
	background:linear-gradient(to right, #8fc323 0%, #8fc323 40%, rgba(255,255,255,0) 100%);
}

#day ol li:nth-child(4)::after{
	content:"";
	position:absolute;
	top:44px;
	left:-70px;
	width:70px;
	height:3px;
	background:linear-gradient(to left, #D4E8AA 0%, rgba(255,255,255,0) 100%);
}

#day ol li:last-child::before{
	content:none;
}

#day ol li > img{
	position:relative;
}

#day dl{
	width:340px;
	padding:15px 0 0 0;	
}

#day dl dt{
	margin:0 0 20px 0;
	font-size:2.4rem;
	font-weight:700;
	line-height:1;
}

#day dl dt span{
	display:inline-block;
	position:relative;
	margin:0 23px 0 0;
	vertical-align:text-bottom;
	font-size:3.2rem;
	letter-spacing:0.05em;
}

#day dl dt span::before{
	content:"";
	position:absolute;
	top:50%;
	right:-13px;
	-webkit-transform:translateY(-50%); /* Android */
	transform:translateY(-50%);
	width:3px;
	height:25px;
	background:#8FC323;
}

#day dl dd{
	line-height:2.4rem;
}

@media screen and (max-width:767px){
#day{
	margin:0;
}

#day .inner{
	padding:0 0 40px 0;
}

#day .inner > img{
	position:static;
	margin:0 0 30px 0;
}

#day h2{
	margin:0 20px 20px;
}

#day ol{
	display:block;
	width:auto;
	padding:10px 0 0 0;
}

#day ol li{
	width:auto;
	margin:0 0 20px 20px;
}
#day ol li:nth-child(3)::before{ background:#8FC323; }
#day ol li:nth-child(4)::after{ content:none; }

#day dl{
	width:auto;
	padding:15px 20px 0 0;	
}

#day dl dt{
	margin:0 0 10px 0;
	font-size:1.8rem;
}

#day dl dt span{
	font-size:2.4rem;
}

#day dl dt span::before{
	height:20px;
}
}


/* ----------------------------------------
	occupation
---------------------------------------- */
#occupation{
	background:#F8FAF7;
}

#occupation::before{
	content:"";
	position:absolute;
	top:-76px;
	left:0;
	background:url(../../img/txt_occupation.png) no-repeat center;
	width:92px;
	height:1156px;
	mix-blend-mode:multiply;
}

#occupation .inner{
	width:1080px;
	padding:265px 0 205px 0;
}

#occupation .inner::before{
	content:"";
	position:absolute;
	bottom:-160px;
	right:50%;
	width:960px;
	height:560px;
	background:url(../../img/multiply_05.png) no-repeat center;
	mix-blend-mode:multiply;
}

#occupation h2{
	margin:0 0 20px 0;
}

#occupation h3{
	margin:0 0 30px 0;
	padding:0;
	background:none;
	line-height:1;
}

#occupation h3 span{
	background:none;
}

#occupation h3 span.font_din-2014-regular{
	display:inline-block;
	position:relative;
	margin:0 25px 0 0;
	vertical-align:text-bottom;
	font-size:3.4rem;
	letter-spacing:0.05em;
}

#occupation h3 span.font_din-2014-regular::before{
	content:"";
	position:absolute;
	top:50%;
	right:-15px;
	-webkit-transform:translateY(-50%); /* Android */
	transform:translateY(-50%);
	width:3px;
	height:28px;
	background:#8FC323;
}

#occupation h3 span.font_zen-old-mincho span{
	font-size:1.8rem;
}

#occupation p{
	margin:0 0 60px 0;
}

#occupation ul{
	display:flex;
	flex-wrap:wrap;
	justify-content:space-between;
}

#occupation ul li{
	width:480px;
	margin:0 0 60px 0;
}

@media screen and (max-width:767px){
#occupation::before,
#occupation .inner::before{
	content:none;
}

#occupation .inner{
	width:auto;
	padding:60px 20px 30px;
}

#occupation h3{
	margin:0 0 20px 0;
}

#occupation h3 span.font_din-2014-regular{
	font-size:2.4rem;
}

#occupation h3 span.font_din-2014-regular::before{
	height:20px;
}

#occupation h3 span.font_zen-old-mincho span{
	font-size:1.4rem;
}

#occupation p{
	margin:0 0 30px 0;
}

#occupation ul{
	display:block;
}

#occupation ul li{
	width:auto;
	margin:0 0 30px 0;
}
}


/* ----------------------------------------
	about
---------------------------------------- */
#about{
	background:url(../../img/bg_about.jpg) no-repeat center;
	background-size:cover;
}

#about::before{
	content:"";
	position:absolute;
	top:28px;
	right:0;
	background:url(../../img/txt_about.png) no-repeat center;
	width:78px;
	height:866px;
}

#about .inner{
	height:900px;
	padding:300px 0 0 0;
}

#about h2{
	margin:0 0 80px 50%;
}

#about dl{
	width:630px;
	margin:0 0 0 50%;
	padding:46px 20px 38px 40px;
	background:rgba(0,0,0,0.25);
	-webkit-backdrop-filter:blur(30px);
	backdrop-filter:blur(30px);
}

#about dl dt{
	margin:0 0 46px 0;
	font-size:2.4rem;
	font-weight:700;
	color:#FFFFFF;
	line-height:1;
}

#about dl dd{
	color:#FFFFFF;
	line-height:3.0rem;
}

#about dl dd ul li{
	padding:0 0 0 20px;
	background:url(../../img/icon_check.png) no-repeat left 9px;
	background-size:18px 14px;
}

@media screen and (max-width:767px){
#about::before{
	content:none;
}

#about .inner{
	height:auto;
	padding:60px 20px;
}

#about h2{
	margin:0 0 20px 0;
}

#about dl{
	width:auto;
	margin:0;
	padding:30px 20px;
}

#about dl dt{
	margin:0 0 20px 0;
	font-size:2.0rem;
}

#about dl dd{
	line-height:2.8rem;
}

#about dl dd ul li{
	background-position:left 7px;
}
}


/* ----------------------------------------
	challenge
---------------------------------------- */
#challenge{
	margin:0 120px 0 0;
	background:-webkit-linear-gradient(135deg, #246F36 0%, #8FC323 100%);
	background:linear-gradient(135deg, #246F36 0%, #8FC323 100%);
	border-radius:0px 240px;
	text-align:center;
}

#challenge .inner{
	height:698px;
	padding:110px 0 0 0;
}

#challenge::before{
	content:"";
	position:absolute;
	bottom:0;
	right:-120px;
	width:120px;
	height:448px;
	background:url(../../img/bg_challenge.png) no-repeat center;
}

#challenge h2{
	display:inline-block;
	text-align:left;
	font-size:9.6rem;
	line-height:13.6rem;
}

#challenge h2 img{
	margin:0 0 0 15px;
	vertical-align:baseline;
}

#challenge ul{
	display:flex;
	justify-content:space-between;
	width:1040px;
	margin:0 auto;
}

#challenge ul li{
	width:480px;
	text-align:center;
	font-size:1.9rem;
	font-weight:700;
	color:#FFFFFF;
	line-height:2.9rem;
	letter-spacing:0.05em;
}

#challenge ul li a{
	display:flex;
	justify-content:center;
	align-items:center;
	width:480px;
	height:80px;
	margin:20px 0 0 0;
	padding:0 20px;
	border:3px solid #FFFFFF;
	border-radius:6px;
	font-size:2.7rem;
	color:#FFFFFF;
	line-height:3.3rem;
	letter-spacing:0.05em;
	text-decoration:none;
}

@media print, screen and (min-width:768px) and (max-width:1440px){
#challenge h2{
	font-size:8.0rem;
	line-height:12.0rem;
}
}

@media screen and (max-width:767px){
#challenge{
	margin:0;
	border-radius:0px 80px;
}

#challenge .inner{
	height:auto;
	padding:60px 20px;
	text-align:center;
}

#challenge::before{
	content:none;
}

#challenge h2{
	display:inline-block;
	margin:0 0 30px 0;
	font-size:2.4rem;
	line-height:3.4rem;
}

#challenge h2 img{
	width:74px;
	margin:0 0 0 10px;
}

#challenge ul{
	display:block;
	width:auto;
}

#challenge ul li{
	width:auto;
	margin:0 0 30px 0;
	font-size:1.8rem;
	line-height:2.8rem;
}

#challenge ul li a{
	width:auto;
	height:auto;
	margin:20px 0 0 0;
	padding:14px 20px;
	font-size:1.8rem;
	line-height:2.6rem;
}
}


/* ========================================================================
	エントリー						[ /entry/ ]
	会社説明会						[ /session/ ]
======================================================================== */
#form .inner{
	width:1000px;
	padding:200px 0 40px 0;
	text-align:center;
}

#form h3{
	display:inline-block;
}

#form p{
	margin:0 0 40px 0;
}

@media screen and (max-width:767px){
#form .inner{
	width:auto;
	padding:120px 20px 0;
}

#form p{
	margin:0 0 30px 0;
}
}


/* ----------------------------------------
	btn
---------------------------------------- */
#form .btn a,
#form .btn button{
	width:400px;
	margin:0 20px;
}

@media screen and (max-width:767px){
#form .btn a,
#form .btn button{
	width:100%;
	margin:0 0 20px 0;
}
}


/* ----------------------------------------
	error
---------------------------------------- */
#form .error{
	margin:0 0 60px 0;
	text-align:center;
}

#form .error p{
	margin:0;
	color:#DD0000;
	line-height:3.6rem;
}

@media screen and (max-width:767px){
#form .error{
	margin:0 0 30px 0;
}

#form .error p{
	line-height:3.4rem;
}
}


/* ----------------------------------------
	thanks
---------------------------------------- */
#form .thanks{
	padding:20px 0;
}

#form .thanks p{
	text-align:left;
}

@media screen and (max-width:767px){
#form .thanks{
	padding:0;
}
}