@charset "utf-8";
/* CSS Document */

html {scroll-behavior: smooth;}
:target { scroll-margin-top: 6vw; }

body {
	color:#2D2F3B; font-size:calc(20 * 0.052vw); line-height: 1.8; letter-spacing: 0;
	font-family: "Noto Sans JP", "Yu Gothic", "Meiryo", "Hiragino Kaku Gothic ProN", sans-serif; font-weight:500;
	margin: 0 auto; height: 100%; overflow-x:hidden;
}

*, *:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box;-o-box-sizing: border-box;  -ms-box-sizing: border-box;box-sizing: border-box;}

.os { font-family: "Oswald", sans-serif; font-weight:700; }



.rl { -ms-writing-mode: tb-rl; writing-mode: vertical-rl;}

button,input,textarea,select { appearance: none; -webkit-appearance: none; border:none; font-family: inherit; font-size: inherit; font-weight:600; letter-spacing: 0.1vw; }

strong,.bold { font-weight:900; }


.fs12vw { font-size:calc(12 * 0.052vw); }
.fs14vw { font-size:calc(14 * 0.052vw); }
.fs15vw { font-size:calc(15 * 0.052vw); }
.fs16vw { font-size:calc(16 * 0.052vw); }
.fs17vw { font-size:calc(17 * 0.052vw); }
.fs18vw { font-size:calc(18 * 0.052vw); }
.fs20vw { font-size:calc(20 * 0.052vw); }
.fs21vw { font-size:calc(21 * 0.052vw); }
.fs22vw { font-size:calc(22 * 0.052vw); }
.fs23vw { font-size:calc(23 * 0.052vw); }
.fs24vw { font-size:calc(24 * 0.052vw); }
.fs25vw { font-size:calc(25 * 0.052vw); }
.fs26vw { font-size:calc(26 * 0.052vw); }
.fs27vw { font-size:calc(27 * 0.052vw); }
.fs28vw { font-size:calc(28 * 0.052vw); }
.fs29vw { font-size:calc(29 * 0.052vw); }
.fs30vw { font-size:calc(30 * 0.052vw); }
.fs31vw { font-size:calc(31 * 0.052vw); }
.fs32vw { font-size:calc(32 * 0.052vw); }
.fs33vw { font-size:calc(33 * 0.052vw); }
.fs34vw { font-size:calc(34 * 0.052vw); }
.fs35vw { font-size:calc(35 * 0.052vw); }
.fs36vw { font-size:calc(36 * 0.052vw); }
.fs37vw { font-size:calc(37 * 0.052vw); }
.fs38vw { font-size:calc(38 * 0.052vw); }
.fs40vw { font-size:calc(40 * 0.052vw); }
.fs42vw { font-size:calc(42 * 0.052vw); }
.fs44vw { font-size:calc(44 * 0.052vw); }
.fs45vw { font-size:calc(45 * 0.052vw); }
.fs46vw { font-size:calc(46 * 0.052vw); }
.fs48vw { font-size:calc(48 * 0.052vw); }
.fs50vw { font-size:calc(50 * 0.052vw); }
.fs52vw { font-size:calc(52 * 0.052vw); }
.fs53vw { font-size:calc(53 * 0.052vw); }
.fs54vw { font-size:calc(54 * 0.052vw); }
.fs55vw { font-size:calc(55 * 0.052vw); }
.fs56vw { font-size:calc(56 * 0.052vw); }
.fs58vw { font-size:calc(58 * 0.052vw); }
.fs60vw { font-size:calc(60 * 0.052vw); }
.fs62vw { font-size:calc(62 * 0.052vw); }
.fs64vw { font-size:calc(64 * 0.052vw); }
.fs65vw { font-size:calc(65 * 0.052vw); }
.fs66vw { font-size:calc(66 * 0.052vw); }
.fs68vw { font-size:calc(68 * 0.052vw); }
.fs70vw { font-size:calc(70 * 0.052vw); }
.fs72vw { font-size:calc(72 * 0.052vw); }
.fs80vw { font-size:calc(80 * 0.052vw); }
.fs84vw { font-size:calc(84 * 0.052vw); }
.fs90vw { font-size:calc(90 * 0.052vw); }
.fs95vw { font-size:calc(95 * 0.052vw); }
.fs98vw { font-size:calc(98 * 0.052vw); }
.fs105vw { font-size:calc(105 * 0.052vw); }
.fs110vw { font-size:calc(110 * 0.052vw); }
.fs140vw { font-size:calc(140 * 0.052vw); }
.fs160vw { font-size:calc(160 * 0.052vw); }


img { border: none; vertical-align: middle; }

img.top { vertical-align: top; }
img.bottom { vertical-align: bottom; }
img.banner { border: solid 1px #DDD; }


address, em { font-style: normal; }

a { color:#2D2F3B; text-decoration: none; }

a:hover,input[type="submit"]:hover, input[type="reset"]:hover {opacity: 0.9; filter: alpha(opacity=90); -ms-filter: "alpha( opacity=90 )";}


.position_r { position:relative; z-index:1; }
.position_a { position:absolute; z-index:2; }

/*********** class ****************************************/


/********** float ************/
.c-both { clear: both; }
.clearfix::after { content: ""; clear: both; display: block; }
.left { float: left; }
.right { float: right; }
.center { display: block; margin-left: auto; margin-right: auto; text-align: center; }
.text_right { margin-left:auto; margin-right:0; text-align:right; }


/******* end float **********/

/******* flex box ***********/
.flex {display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex;justify-content: space-between;}
.height {justify-content: space-evenly; flex-wrap: wrap; align-items: stretch;}
.flex.wrap { flex-wrap: wrap; }
.flex.start { justify-content: flex-start; }


/* image parent cover *******/
.fit { object-fit: cover; font-family: 'object-fit: cover;'; max-width: 100%; }
.cover { width: 100%; height:100%; object-fit:cover; }

/****** layout ********/
.inner { width: calc(1860vw / 19.2); margin: 0 auto;}
.middle_inner { width: calc(1600vw / 19.2); margin: 0 auto;}
.inner_right { width: calc(1760vw / 19.2); margin: 0 0 0 auto; }
.inner_left { width: calc(1730vw / 19.2); margin: 0 auto 0 0; }

.low_inner { width: calc(1360vw / 19.2); margin: 0 auto;}
.minimum_inner { width: calc(1080vw / 19.2); margin: 0 auto;}

.heading { width: 100%; }

/* image parent cover *******/
.fit { object-fit: cover; font-family: 'object-fit: cover;'; max-width: 100%; }

dl.table { display:table; width:100%; }
dl.table dt,dl.table dd { display:table-cell; }

/****** display ********/

.pc { display: unset; }
.sp { display: none; }
.grid { display: grid; }


.black { color:#2D2F3B; }
.white { color:#FFFFFF; }
.blue { color:#044396; }
.light_blue { color:#1D8EDF; }
.dark_blue { color:#304886; }
.red { color:#D91616; }
.light_blue_gray { color:#CBD1DB; }


.bg_dark_blue { background-color:#0E2648; }
.bg_black { background-color:#2D2F3B; }
.bg_white { background-color:#FFFFFF; }
.bg_red { background-color:#D91616; }
.bg_blue { background-color:#044396; }
.bg_light_blue { background-color:#1D8EDF; }
.bg_sky_blue { background-color:#6FCCF9; }
.bg_gray { background-color:#E0E3E9; }
.bg_light_gray { background-color:#F4F5F7; }


.ttl { position:relative; margin-block-start: 1em; margin-block-end: 2em; }

.ttl .slug { position:relative; display:block; line-height: 1.5; width: max-content; }

.ttl .ja { font-weight:bold; }

.ttl.center .slug { margin-right: auto; margin-left: auto; }

.ttl.infinity_bg {
	width:calc(700vw / 19.2); height:calc(357vw / 19.2); display: grid; place-content: center;
	background-image:url(../img/infinity_bg.webp); background-size:100%; background-position:center center; background-repeat:no-repeat;
}


.more {
	position:relative; display: flex; justify-content: center; align-items: center; width:calc(450vw / 19.2); aspect-ratio: 5 / 1; margin-block-start: 2.5em; margin-block-end: 1em;
}
.more i { margin-right:1em; }
.more .anchor { text-box: trim-both cap alphabetic; }




.circle { border-radius:100vmax; }

.indent { text-indent:-1em; margin-left:1em; }


/**** animation ***************/


.fade_in { opacity: 0;transition: opacity 1s ease; }
.fade_in.active { opacity: 1; }

.fade_up { opacity: 0; transform:translateY(2vw); transition: opacity 0.6s ease, transform 0.6s ease; }
.fade_up.active { opacity: 1; transform:translateY(0); }


.fade_right { opacity: 0; transform:translateX(-30vw); transition: opacity 0.6s ease, transform 0.6s ease; }
.fade_right.active { opacity: 1; transform:translateX(0); }

.fade_left { opacity: 0; transform:translateX(30vw); transition: opacity 0.6s ease, transform 0.6s ease; }
.fade_left.active { opacity: 1; transform:translateX(0); }


.fade_zoom { opacity: 0; transform: scale(0.3); transition: opacity 0.6s ease, transform 0.4s ease;}
.fade_zoom.active { opacity: 1; transform: scale(1); }


.scale_in {overflow: hidden;}
.scale_in img { -webkit-transform: scale(1); transform: scale(1); -webkit-transition: .3s ease-in-out; transition: .3s ease-in-out; overflow:hidden; }
.scale_in img:hover { -webkit-transform: scale(1.05); transform: scale(1.05); }
.text_mask {
	color: transparent; /* 文字色は透明にして背景で塗る */
	-webkit-background-clip: text;
	background-clip: text;
	
	background-image: linear-gradient(90deg, var(--text-color) 0%, var(--text-color) 50%, transparent 50%, transparent 100%);
	background-size: 200% 100%;
	background-position: 100% 0;
	background-repeat: no-repeat;
}

.text_mask.active { animation: bg_reveal 1s linear forwards; }

@keyframes bg_reveal {
	from { background-position: 100% 0; }
	to   { background-position: 0% 0; }
}


.text_curtain { display: block; width: max-content; overflow: hidden; }
.text_curtain span { display: block; width:max-content; text-box: trim-both cap alphabetic; padding: 0.2em 0.4em; clip-path: inset(0 100% 0 0); transition: clip-path 1s ease; }
.text_curtain.active span { clip-path: inset(0 0 0 0); }

.text_curtain em { display: block; width:max-content; text-box: trim-both cap alphabetic; padding: 0.2em 0.4em; clip-path: inset(0 100% 0 0); transition: clip-path 1s ease; }
.text_curtain.active em { clip-path: inset(0 0 0 0); }

.text_curtain strong { display: block; width:max-content; text-box: trim-both cap alphabetic; padding: 0.2em 0.4em; clip-path: inset(0 100% 0 0); transition: clip-path 1s ease; }
.text_curtain.active strong { clip-path: inset(0 0 0 0); }



.decoration { z-index: 10; bottom: 0; overflow: hidden; width: 100%; margin-inline: auto; mix-blend-mode: multiply; line-height: 1.5; }

.decoration .loop { animation: loop 40s linear infinite; width: max-content; }
.decoration .loop.second{ position: absolute; top: 0; left: 0; animation: loop 40s -20s linear infinite;}

@keyframes loop { 0%{ transform: translateX(100%); } 100%{ transform: translateX(-100%); } }



#header { position:fixed; inset: 0; z-index: 999; height:calc(106vw / 19.2); transition: background-color 0.4s ease; }
#header .header_wrapper { align-items: center; height: 100%; }
#header .header_inner { height: 100%; align-items: center; }


#header .logo { position:relative; z-index: 1001; margin: 0; width: calc(300vw / 19.2); height:calc(67vw / 19.2); font-weight: bold; }
#header .logo a.flex { justify-content: space-between; align-items: center; transition: color 0.4s ease; }
#header .logo a.flex .logo_thumb { width: calc(94vw / 19.2); aspect-ratio:94 / 67; }
#header .logo a.flex span { display:block; font-weight:800; line-height:1.3; }
#header .logo a.flex .corp { padding-left:0.25em; }


#header .header_nav { width: calc(964vw / 19.2); }
#header .header_nav .link_list { position:relative; list-style-type:none; margin: 0; padding: 0; justify-content: space-between; align-items: center; width: calc(714vw / 19.2); }
#header .header_nav .link_list .page a { transition: color 0.4s ease; }



#header .email_btn { width: calc(220vw / 19.2); aspect-ratio: 110 / 33; justify-content: center; align-items:center; transition: background-color 0.4s ease,color 0.4s ease; }
#header .email_btn i { text-box: trim-both text text; line-height: 1; margin-right:0.3em; transition: color 0.4s ease; }


/* スクロール時のヘッダー */
#header.is_scrolled { background-color: rgba(255,255,255,1); }
#header.is_scrolled .logo a { color: #304886; }
#header.is_scrolled .header_nav .link_list .page a.white { color:#2D2F3B; }
#header.is_scrolled .header_nav .email_btn { background:#044396; color:#FFFFFF; }
#header.is_scrolled .header_nav .email_btn i { color:#FFFFFF; }

#header .drawer_menu .drawer_content .drawer_content_wrapper { align-items: center; }

#google_translate_element {  }
#google_translate_element .goog-te-gadget-simple { cursor: pointer; font-size: calc(14vw / 19.2); }




.bottom_contact {
	padding:6em 0 6em 0;
	background-image:url(../img/bottom_contact_bg.webp); background-position:center bottom; background-size:100%; background-repeat:no-repeat;
}
.bottom_contact .text { width: calc(680vw / 19.2);}
.bottom_contact .ttl { margin-block-start: 0; }
.bottom_contact .btn_box { width: calc(680vw / 19.2); }

.bottom_contact .btn_box .btn { width: 100%; aspect-ratio: 17 / 4; align-items: center; margin: 1.5em 0 1.5em 0; }
.bottom_contact .btn_box .btn .icon { display: grid; place-content: center; width: calc(166vw / 19.2); height:calc(120vw / 19.2); border-right:solid 1px #044396; }
.bottom_contact .btn_box .btn dl { width: calc(440vw / 19.2); }
.bottom_contact .btn_box .btn dl dt {  }
.bottom_contact .btn_box .btn dl dd { margin:0; }




#footer {
	padding:5em 0 5em 0;
	background-image:url(../img/footer_bg.webp); background-size:cover; background-position:center center;
}

#footer .site_info { width:calc(400vw / 19.2); margin-block-end:2em; }

#footer .logo { position:relative; z-index: 1001; margin: 0; width: calc(300vw / 19.2); height:calc(67vw / 19.2); font-weight: bold; }
#footer .logo a.flex { justify-content: space-between; align-items: center; }
#footer .logo a.flex .logo_thumb { width: calc(94vw / 19.2); aspect-ratio:94 / 67; }
#footer .logo a.flex span { display:block; font-weight:800; line-height:1.3; }
#footer .logo a.flex .corp { padding-left:0.25em; }


#footer .site_info .location { display:block; margin-block-start:2em; }


#footer .footer_nav { width:calc(690vw / 19.2); padding: 1.5em 0 0 0; }
#footer .footer_nav ul { list-style-type:none; margin: 0 0 4em 0; padding: 0; justify-content: space-between; align-items: center; }

#footer .copy { padding:0.5vw 0 0.5vw 0; }



#page_top {
	place-items:center; position: fixed; inset:auto 3em 6em auto; z-index: 100; width:calc(60vw /19.2); height:calc(60vw /19.2);
	opacity: 0; pointer-events: none; transition: opacity 0.5s ease;
}

#page_top.show { opacity: 1;pointer-events: auto; }


.illust1 { position:absolute; width:calc(282vw / 19.2); height:calc(794vw / 19.2); }
.illust2 { position:absolute; width:calc(283vw / 19.2); height:calc(795vw / 19.2); }



#fv { width:100%; height: 100svh; aspect-ratio: 16 / 9;}
#fv .text { inset:auto auto 4.4em 4%; }

#fv .text .catch { font-weight:800; line-height:1.5; margin: 0; }
#fv .text .sub_catch { font-weight:800; margin: 0.5em 0 0 0; }

#fv .text .tb_catch { align-items:center; line-height:1; font-weight: 800; margin: 0.1em 0 0.1em 0; }
#fv .text .tb_line { text-box: trim-both cap alphabetic; border-top: solid 1px #FFFFFF; border-bottom:solid 1px #FFFFFF; padding: 0.5em 0 0.5em 0; margin-right:0.5em; }
#fv .text .tb_text { text-box: trim-both cap alphabetic; }
#fv .text .tb_bottom_text { font-weight:800; margin: 0.2em 0 0 0; }

#fv .slide { inset: 0; opacity: 0; transition: opacity 1s ease; }
#fv .slide.active { opacity: 1; z-index: 0; }

#fv .recruit_banner { inset:auto 3% 3em auto; z-index: 3; width:calc(440vw / 19.2); aspect-ratio:220 / 107; }



#top_about {
	padding:6em 0 12em 0;
	background:linear-gradient(
		112deg,
		#E0E3E9 0%,
		#E0E3E9 20%,
		#FFFFFF 20%,
		#FFFFFF 79.9%,
		#044396 80%,
		#044396 100%
	);
}

#top_about .text { width:calc(720vw / 19.2); }
#top_about .thumb { width:calc(979vw / 19.2); height: calc(850vw / 19.2); aspect-ratio:979 / 850; margin-block-start: 6em; }

#top_about .catch span { display:block; width:max-content; text-box: trim-both cap alphabetic; padding: 0.5em; margin-block-end: 0.25em; font-weight: 800; }




#top_business {
	padding:6em 0 6em 0;
	background-image:url(../img/home/top_business_bg.webp); background-size:100%; background-position:center top; background-repeat:no-repeat;
}

#top_business .catch { font-weight:800; margin-block-start: 2em; }


#top_business .business_content { margin-block-start: 4em; }

#top_business .business_content .box { width:calc(520vw / 19.2); height: calc(550vw / 19.2); margin:0 1em 1em 0; overflow:hidden; }
#top_business .business_content .box a::before {
	content:""; position: absolute; inset: 0; z-index: 1; display: block;
	background-color:rgba(4, 67, 150,0.85); width:100%; height:100%; clip-path: polygon(0 0, 0 70%, 35% 0);
}
#top_business .business_content .box a::after {
	content:""; position: absolute; inset: 0; z-index: 1; display: block;
	 width:100%; height:100%; outline: 1px solid #FFFFFF; outline-offset: -10px;
}


#top_business .business_content .box:nth-of-type(3n) { margin-right:0; }


#top_business .business_content .box .thumb { z-index: 0; }
#top_business .business_content .box .text { z-index: 2; padding: 1.5em; }

#top_business .business_content .box .text dl { margin: 0; }
#top_business .business_content .box .text dl dt { display: flex; align-items: center; justify-content: center; }
#top_business .business_content .box .text dl dt .num { line-height: 1; text-box: trim-both cap alphabetic; margin-right: 0.2em;}
#top_business .business_content .box .text dl dt .slug { text-box: trim-both cap alphabetic; }
#top_business .business_content .box .text dl dt .slug .icon { display:block; width:calc(50vw / 19.2); aspect-ratio:25 / 14; }

#top_business .business_content .box .text dl dd { margin:0; }
#top_business .business_content .box .text dl dd .text_curtain span { padding: 0.5em 0.5em; margin:0.3em 0 0.3em 0; }
#top_business .business_content .box .text dl dd i { margin-right:0.3em; }

#top_business .business_content .box:has(.scale_in:hover) .thumb { -webkit-transform: scale(1.05); transform: scale(1.05); }
#top_business .business_content .box a:hover { opacity: 1; }



#top_business .business_content .box.page_link .grid { width: 100%; height: 100%; place-content: center; }
#top_business .business_content .box.page_link .text dl dd { align-items: center; padding: 1.5em 0 0 0; }
#top_business .business_content .box.page_link .text dl dd .anchor { text-box: trim-both cap alphabetic; }
#top_business .business_content .box.page_link a:hover { opacity: 0.9; }




#top_our_fleet {  }
#top_our_fleet .text { width:calc(575vvw / 19.2); padding-top:3em; }
#top_our_fleet .thumb { width:calc(960vw / 19.2); aspect-ratio: 111 / 70; clip-path: polygon(25% 0%, 100% 0%, 100% 100%, 0% 100%); }



#top_recruit {
	padding:6em 0 12em 0;
	background:url(../img/home/top_recruit_bg.webp),linear-gradient(
		112deg,
		#F4F5F7 0%,
		#F4F5F7 79.9%,
		#044396 80%,
		#044396 100%
	);
	background-position:left top,left top; background-repeat:no-repeat,no-repeat; background-size:calc(588vw / 19.2),100%;
	
}

#top_recruit .content { padding:4em 0 4em 0; }
#top_recruit .text { width:calc(760w / 19.2); }
#top_recruit .thumb { width:calc(960vw / 19.2); aspect-ratio: 96 / 85; clip-path: polygon(25% 0%, 100% 0%, 100% 100%, 0% 100%); }

#top_recruit .catch span { display:block; width:max-content; text-box: trim-both cap alphabetic; padding: 0.5em; margin-block-end: 0.25em; font-weight: 800; }



#top_recruit .top_recruit_banner { display: block; width:calc(680vw / 19.2); aspect-ratio: 85 / 32; margin-block-start:2em; }



.page_header { width:100%; aspect-ratio: 48 / 19; place-content: center; text-align: center; }
.page_header .page_header_ttl { font-weight:800; }
.page_header .page_header_ttl .slug { display:block; line-height:1.5; }
.page_header .page_header_bg { z-index: 0; }





/****** contact ******************************/
#contact_hero { padding: 13em 0 6em 0; }
#contact_hero .decoration { inset:0; }

#contact_hero .tel_box { border:solid 1px #044396; padding:1.5em; margin-block-start: 4em; }
#contact_hero .tel_box dt { height: calc(140vw / 19.2); border-right: solid 1px #044396; vertical-align: middle; }
#contact_hero .tel_box dt .hour { display:block; }
#contact_hero .tel_box dd { vertical-align: middle; margin:0; }
#contact_hero .tel_box dd i { margin-right: 0.3em; }


#contact { padding: 6em 0 6em 0; }
#form {  }



#form .box { margin:0; border-bottom: solid 1px #CBD1DB; }
#form .box dt { width:16em; padding:2.5em 0 1.5em 0; vertical-align: top; }
#form .box dt .field {	}
#form .box dt .required { display:inline-block; margin-left:1em; padding:0.5vw; border-radius: 6px; line-height:1; text-box: trim-both cap alphabetic; }
#form .box dt .any { display:inline-block; margin-left:1em; padding:0.5vw; border-radius: 6px; line-height:1; text-box: trim-both cap alphabetic; }
#form .error { display: block; }

#form .box dd { padding:1.5em 1em 1.5em 2em; }
#form.confirm .box dd { padding:2.25em 1em 2em 2em; }

#form .box dd input[type="text"], #form .box dd input[type="tel"], #form .box dd input[type="email"] { width: 100%; padding:1em; border: solid 1px #CBD1DB; }
#form .box dd textarea { width: 100%; padding:1em; border:solid 1px #CBD1DB; height: 12em; }

#form .box dd input.short { width:10em; }

form .box label { display: inline-block; cursor:pointer; margin:0.75em 2em 0.75em 0; }

form .box input[type=checkbox] { height: 1.5em; width: 1.5em; margin:0 0.6em 0.15em 0; background-color: #FFF; border:solid 1px #0D5286; vertical-align: middle;}
form .box input[type=checkbox]:checked { border: 2px solid #0D5286; background-color: #0D5286;}
form .box input[type=checkbox]:checked::before {
	content: ""; display: block; position: relative; left: 0.5em; top: 0; width: 0.5em; height: 1em; border: solid white; border-width: 0 3px 3px 0; transform: rotate(45deg);
}
form .box input[type=checkbox]:focus-visible { }




#form .box dd .memo { display:block; margin-block-start:1em; }



#form .next {
	position:relative; width:calc(450vw / 19.2); height:calc(90vw / 19.2); line-height:calc(90vw / 19.2); display:block; text-align:center;
	margin: 2em auto 2em auto; cursor:pointer; text-box: trim-both cap alphabetic;
}

#form .next i { position: absolute; inset:0 auto 0 0.5em; margin:auto; display: grid; place-content: center; }


#form .send_box { margin-block-start:3em; }

#form .send_btn {
	position:relative; width:calc(450vw / 19.2); height:calc(90vw / 19.2); line-height:calc(90vw / 19.2); display:block; text-align:center; cursor:pointer; text-box: trim-both cap alphabetic;
}

#form .send_btn i { position: absolute; inset:0 auto 0 0.5em; margin:auto; place-content: center; }



#form .back_btn {
	position:relative; width:calc(450vw / 19.2); height:calc(90vw / 19.2); line-height:calc(90vw / 19.2);
	display: flex; justify-content: center; text-align:center; cursor:pointer; text-box: trim-both cap alphabetic;
}
#form .back_btn i { position: absolute; inset: 0 0.5em 0 auto; margin:auto; place-content: center; }




/****** business ******************************/

#the_cycle {
	padding: 13em 0 13em 0; overflow: hidden;
	background:url(../img/business/the_cycle_bg.webp) center center / 100% auto no-repeat, #FFFFFF;
}
#the_cycle .decoration { inset: 0 0 auto 0; }

#the_cycle .the_cycle_wrapper { position: relative; z-index: 2; }
#the_cycle .ttl { margin-block-start: 1em; }
#the_cycle .catch { font-weight:800; margin-block-start: 1.5em; }
#the_cycle .summary { margin-block-start: 1.5em; }



#business {
	padding: 7em 0 7em 0; overflow: hidden;
	
	background:linear-gradient(
		112deg,
		#044396 0%,
		#044396 19.9%,
		#FFFFFF 20%,
		#FFFFFF 79.9%,
		#E0E3E9 80%,
		#E0E3E9 100%
	);
}


#business .content { margin-block-end: 6em; }
#business .content:last-of-type { margin-block-end: 0; }


/* thumb */
#business .content .thumb { width: calc(800vw / 19.2); aspect-ratio: 4 / 3; margin: 0; overflow: hidden; }
#business .content .thumb > img { z-index: 0; }

#business .content .thumb::after {
	content:""; position: absolute; inset: 0; z-index: 1; display: block;
	 width:100%; height:100%; outline: 1px solid #FFFFFF; outline-offset: -10px;
}

#business .content .thumb figcaption {
	position:absolute; inset:auto auto calc(36vw / 19.2) calc(36vw / 19.2); z-index:2; opacity: 0.8;
	display:flex; align-items:baseline; column-gap:0.4em;
}
#business .content .thumb figcaption .num { line-height:1; text-box: trim-both cap alphabetic; }
#business .content .thumb figcaption .slug { line-height:1; letter-spacing:0.04em; text-box: trim-both cap alphabetic; }


/* text */
#business .content .text { width: calc(800vw / 19.2); padding: 3em; }

#business .content .text .lead { margin: 0; }
#business .content .text .lead dt { align-items: flex-end; }
#business .content .text .lead dt .num { line-height: 1; text-box: trim-both cap alphabetic; margin-right: 0.4em; }
#business .content .text .lead dt .slug { text-box: trim-both cap alphabetic; }
#business .content .text .lead dt .slug .icon {
	display: block; width: calc(50vw / 19.2); aspect-ratio: 25 / 14; margin-block-end: 0.4em;
}

#business .content .text .lead dd { margin: 1.2em 0 0 0; }
#business .content .text .catch { margin: 0; }
#business .content .text .catch span { display: block; width: max-content; text-box: trim-both cap alphabetic; padding: 0.5em 0.6em; margin-block-end: 0.4em; font-weight: 800; }
#business .content .text .summary { margin-block-start: 1.5em; }




/****** about ******************************/

#message {
	padding: 9em 0 7em 0; overflow: hidden;
	background: linear-gradient(112deg, #044396 0%, #044396 19.9%, #FFFFFF 20%, #FFFFFF 79.9%, #E0E3E9 80%, #E0E3E9 100%);
}
#message .decoration { inset: 0 0 auto 0; }

#message .message_wrapper { position: relative; z-index: 2; }

#message .content { margin-block-start: 2em; }

/* message_thumb : 740 x 740 */
#message .content .thumb { width: calc(740vw / 19.2); aspect-ratio: 1 / 1; margin: 0; }

#message .content .text { width: calc(710vw / 19.2); padding-block-start: 1em; }
#message .content .text .catch { margin: 0; }
#message .content .text .catch span { display: block; width: max-content; text-box: trim-both cap alphabetic; padding: 0.5em 0.6em; margin-block-end: 0.4em; font-weight: 800; }
#message .content .text .summary { margin-block-start: 2em; }
#message .content .text .name { margin-block-start: 2em; }


/* separate_heading : 1920 x 850
   固定パララックス：画像を position:fixed でビューポートに固定し、
   その手前を各セクション（不透明）がスクロールして通過する。
   領域に入ったら .show を付けて opacity でフェードイン。 */
.sepalate { position: relative; width: 100%; height: calc(850vw / 19.2); background-color: #F4F5F7; opacity: 0; transition: opacity 0.6s ease; }
.sepalate .heading { position: fixed; top: calc(106vw / 19.2); left: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.sepalate.show { opacity: 1; }


#company {
	padding: 6em 0 3em 0;
	background: linear-gradient(
	112deg, 
	#E0E3E9 0%, #E0E3E9 19.9%, 
	#FFFFFF 20%, #FFFFFF 79.9%, 
	#044396 80%, #044396 100%
	);
}
#company .content { margin-block-start: 2em; align-items: flex-start; }

#company .profile { width: calc(820vw / 19.2); }
#company .profile .ttl { margin-block-start: 0; margin-block-end: 1.5em; }

#company .profile .box { margin: 0; }
#company .profile .box dt { width: 8em; padding: 1.2em 0.5em 1.2em 0; vertical-align: top; border-bottom: solid 1px #044396; font-weight: 700; }
#company .profile .box dd { padding: 1.2em 0 1.2em 1.5em; margin: 0; vertical-align: top; border-bottom: solid 1px #CBD1DB; }

/* company_thumb : 680 x 450 */
#company .thumb { width: calc(680vw / 19.2); }
#company .thumb .company_thumb { width: 100%; aspect-ratio: 68 / 45; margin: 0 0 1.5em 0; overflow: hidden; }
#company .thumb .company_thumb:last-child { margin-block-end: 0; }


#location_access { padding: 6em 0 8em 0; }
#location_access .box { width: calc(760vw / 19.2); }
#location_access .box .label { align-items: center; column-gap: 0.4em; margin: 0 0 1em 0; }
#location_access .box .label .name { font-weight: 800; margin-right: 0.8em; }
#location_access .box .map { width: 100%; aspect-ratio: 3 / 2; overflow: hidden; background-color: #FFFFFF; padding: 5px; box-shadow: 0 0 3px #EEEEEE; }
#location_access .box .map iframe { width: 100%; height: 100%; }




/****** recruit ******************************/

/* ---- OUR WORK ---- */
#our_work {
	padding: 13em 0 3em 0; overflow: hidden;
	background:url(../img/recruit/recruit_bg.webp),linear-gradient(
		112deg,
		#FFFFFF 0%,
		#FFFFFF 79.9%,
		#E0E3E9 80%,
		#E0E3E9 100%
	);
	background-position:left top,left top; background-repeat:no-repeat,no-repeat; background-size:calc(588vw / 19.2),100%;
	
}
#our_work .decoration { inset: 0 0 auto 0; }
#our_work .our_work_wrapper { position: relative; z-index: 2; }
#our_work .our_work_wrapper .ttl { margin-block-start: 1em; }
#our_work .catch { font-weight: 800; margin-block-start: 1.5em; }


#our_work .lead { position: relative;  margin-block-start: 3em; padding-block-end: 1em; }
#our_work .lead .summary { width: calc(720vw / 19.2); position: relative; z-index: 2; }
#our_work .lead .illust { bottom: 0; z-index: 1; }
#our_work .illust_left { inset: auto auto 0 2em; width: calc(412vw / 19.2); aspect-ratio: 412 / 644; }
#our_work .illust_right { inset: auto 2em 0 auto; width: calc(346vw / 19.2); aspect-ratio: 346 / 644; }

/* ループスライダー : slide 940x660 */

.recruit_loop .loop-slider { overflow: hidden; }
.recruit_loop .loop-slider .slider_track { display: flex; width: max-content; gap: 0; position: relative; z-index: 2; }
.recruit_loop .loop-slider .slide { width: calc(940vw / 19.2); aspect-ratio: 940 / 660; margin: calc(30vw / 19.2); }
.recruit_loop .loop-slider .slide img { display: block; width: 100%; height: 100%; object-fit: cover; }


/* ---- OUR STRENGTHS ---- */
/* 方眼紙の背景はラッパー、内側の section に他ページ同様の linear-gradient */
.our_strengths_bg {
	background-color: #FFFFFF;
	background-image:
		linear-gradient(#E6EAF1 1px, transparent 1px),
		linear-gradient(90deg, #E6EAF1 1px, transparent 1px);
	background-size: calc(40vw / 19.2) calc(40vw / 19.2);
}

#our_strengths {
	padding: 6em 0 13em 0; overflow: hidden;
	background: linear-gradient(
		112deg,
		#E0E3E9 0%,
		#E0E3E9 19.9%,
		transparent 20%,
		transparent 81.9%,
		#044396 82%,
		#044396 100%
	);
}

#our_strengths .ttl { margin-block-end: 3em; }

#our_strengths .strengths { margin-block-end: 6em; }

#our_strengths .strengths .text { width: calc(710vw / 19.2); padding: 0 0 calc(130vw / 19.2) 0; }
#our_strengths .strengths .text .label {
	position:relative; display: inline-block; padding: 0.6em 1.4em; border-radius: 100vmax; line-height: 1; text-box: trim-both cap alphabetic;
	margin-block-start: 0;margin-block-end: 1em; letter-spacing: 0.08em;
}
#our_strengths .strengths .text .label::after {
	content:""; position:absolute; inset:auto 0 calc(-28vw / 19.2) 0; margin:auto; background-color:#6FCCF9; width:calc(28vw / 19.2); height:calc(30vw / 19.2);
	clip-path: polygon(50% 100%, 0 0, 100% 0);
}


#our_strengths .strengths .text .catch { margin: 0; }
#our_strengths .strengths .text .catch span { display: block; width: max-content; text-box: trim-both cap alphabetic; padding: 0.5em 0.6em; margin-block-end: 0.4em; font-weight: 800; }
#our_strengths .strengths .text .summary { margin: 0.5em 0 0.5em; }
/* 薄いブルーの透かし文字 #6FCCF9 透過30% */
#our_strengths .strengths .text .watermark { position: absolute; left: 0; bottom: 0; margin: 0; line-height: 1; font-size: calc(120 * 0.052vw); color: #6FCCF9; opacity: 0.3; white-space: nowrap; }

/* our_strengths_thumb : 800x600 ／ thumb1_illust : 354x513 */
#our_strengths .strengths .thumb { width: calc(800vw / 19.2); aspect-ratio: 4 / 3; margin: 0; overflow-y: clip; }
#our_strengths .strengths .thumb .illust { right: calc(-50vw / 19.2); bottom: 0; width: calc(354vw / 19.2); aspect-ratio: 354 / 513; z-index: 3; }

/* 吹き出しボックス */
#our_strengths .catch_box { position: relative; width: calc(1400vw / 19.2); margin: 4em auto 0 auto; border-radius:4px; padding: 1.5em; }
#our_strengths .catch_box .catch_box_text { margin:0; width: calc(740vw / 19.2); }
#our_strengths .catch_box .tab {
	display: inline-flex; align-items: center; column-gap: 0.6em; padding: 0.6em 0.6em; border-radius: 100vmax; font-weight: 800; position: relative; z-index: 2;
	margin-block-end: 1.5em;
}
#our_strengths .catch_box .tab::after {
	content:""; position:absolute; inset:auto 0 calc(-28vw / 19.2) 0; margin:auto; background-color:#044396; width:calc(28vw / 19.2); height:calc(30vw / 19.2);
	clip-path: polygon(50% 100%, 0 0, 100% 0);
}


#our_strengths .catch_box .arrow { width: calc(80vw / 19.2); aspect-ratio: 80 / 42; inset: calc(-22vw / 19.2) calc(40vw / 19.2) auto auto; }
#our_strengths .catch_box .arrow.arrow.flip { transform: scaleX(-1); inset:auto auto calc(-22vw / 19.2) calc(40vw / 19.2);; }


#our_strengths .catch_box .box { margin: 0; padding: 1.75em; border-radius: calc(10vw / 19.2); }
#our_strengths .catch_box .box .summary { margin: 0; font-weight: 700; }
/* our_strengths_bottom_illust : 596x427 */
#our_strengths .catch_box .illust { inset: auto 1em 0 auto; width: calc(596vw / 19.2); aspect-ratio: 596 / 427; z-index: 3; }
#our_strengths .catch_box p { margin:0; }



/* ---- REQUIREMENTS ---- */
#requirements {
	padding: 6em 0 13em 0; overflow: hidden;
	background: linear-gradient(
	112deg, 
	#E0E3E9 0%, #E0E3E9 19.9%, 
	#F4F5F7 20%, #F4F5F7 79.9%, 
	#044396 80%, #044396 100%
	);
}
#requirements .ttl { margin-block-end: 3em; }

/* 募集要項は会社概要と同じ dl.box.table・同じ border */
#requirements .content { padding:calc(140vw / 19.2) calc(150vw / 19.2); }
#requirements .box { margin: 0; }
#requirements .box dt { width: 8em; padding: 1.2em 0.5em 1.2em 0; vertical-align: top; border-bottom: solid 1px #044396; font-weight: 700; }
#requirements .box dd { padding: 1.2em 0 1.2em 1.5em; margin: 0; vertical-align: top; border-bottom: solid 1px #CBD1DB; }

/* エントリー */
#requirements .requirements_entry {
	position: relative; height: calc(603vw / 19.2);
	background: url(../img/recruit/requirements_entry_bg.webp) center bottom / cover no-repeat, #DCEEF9;
}
#requirements .requirements_entry .decoration { inset: auto 0 0 0; }

/* entry_illust : 480x619 */
#requirements .entry_illust { display: block; width: calc(480vw / 19.2); aspect-ratio: 480 / 619; inset: auto auto 2.5em 8em; }


#requirements .entry_box { position: relative; width: calc(680vw / 19.2); margin: 0 7.5em auto auto; padding: 3em 0 0 0; }

#requirements .entry_box .ttl {
	display: grid; place-content: center; width: 15.7em; padding: 0.4em 0.6em; border-radius: 100vmax; font-weight: 800;
	position: absolute; margin: auto; inset: -1em 0 auto 0; z-index: 2;
}
#requirements .entry_box .ttl::after {
	content:""; position:absolute; inset:auto 0 calc(-28vw / 19.2) 0; margin:auto; background-color:#044396; width:calc(28vw / 19.2); height:calc(30vw / 19.2);
	clip-path: polygon(50% 100%, 0 0, 100% 0);
}


#requirements .entry_box .summary { margin: 1.5em 0 2em 0; }

#requirements .entry_box .btn_box { width: 100%; }
#requirements .entry_box .btn_box .btn { width: 100%; height: calc(160vw / 19.2); aspect-ratio: 17 / 4; align-items: center; margin: 0 0 1.2em 0; }
#requirements .entry_box .btn_box .btn:last-child { margin-block-end: 0; }
#requirements .entry_box .btn_box .btn .icon { display: grid; place-content: center; width: calc(166vw / 19.2); height: calc(110vw / 19.2); border-right: solid 1px #044396; }
#requirements .entry_box .btn_box .btn dl { width: calc(440vw / 19.2); }
#requirements .entry_box .btn_box .btn dl dd { margin: 0; }




/****** our_fleet ******************************/

/* ---- transportation_network ---- */
#transportation_network {
	padding: 13em 0 6em 0; overflow: hidden;
	background: linear-gradient(
	112deg, 
	#E0E3E9 0%, #E0E3E9 19.9%, 
	#FFFFFF 20%, #FFFFFF 79.9%, 
	#044396 80%, #044396 100%
	);
}
#transportation_network .decoration { inset: 0 0 auto 0; }
#transportation_network .transportation_network_wrapper { align-items: flex-start; position: relative; z-index: 2; }

#transportation_network .text { width: calc(680vw / 19.2); padding-block-start: 2em; }

/* キャッチ : 他ページ同様の黒バー（text_curtain） */
#transportation_network .text .catch { margin: 0; }
#transportation_network .text .catch span { display: block; width: max-content; max-width: 100%; padding: 0.5em 0.6em; margin-block-end: 0.3em; font-weight: 800; line-height: 1.3; }
#transportation_network .text .summary { margin: 1.5em 0 2.5em 0; font-weight: 700; }

#transportation_network .text .stats_ttl { align-items: center; column-gap: 0.6em; margin: 0; font-weight: 700; padding-bottom: 0.75em; border-bottom: dotted 1px #044396; }
#transportation_network .text .stats_ttl .icon { width: calc(44vw / 19.2); height: calc(44vw / 19.2); border-radius: 4px; place-content: center; }

/* 保有車両ステータス : 2カラム表／上に青ライン・行ごとに薄グレーの区切り線 */
#transportation_network .text .stats { display: grid; grid-template-columns: 1fr 1fr; column-gap: calc(5vw / 19.2); width: 100%; margin-block-start: 1em; }
#transportation_network .text .stats .stat { margin: 0 0 calc(5vw / 19.2) 0; align-items: center; }
#transportation_network .text .stats .stat dt { padding: 1em 0 1em 1em; font-weight: 700; }
#transportation_network .text .stats .stat dd { padding: 1em; margin: 0; font-weight: 700; }

/* transportation_network_thumb : 960 x 850（右端まで） */
#transportation_network .thumb { width: calc(900vw / 19.2); aspect-ratio: 96 / 85; margin: 0; clip-path: polygon(20% 0%, 100% 0, 100% 100%, 0% 100%); }


/* ---- 車両ギャラリー ---- */
#our_fleet { padding: 7em 0 7em 0; overflow: hidden; }
#our_fleet .fleet_group { margin-block-end: 4em; }
#our_fleet .fleet_group:last-child { margin-block-end: 0; }

/* グループ見出し : 青の縦バー＋タイトル＋右へ伸びる区切り線 */
#our_fleet .fleet_group .group_ttl { display: flex; align-items: center; column-gap: 1em; font-weight: 900; margin: 0 0 1.5em 0; padding-bottom: 0.75em; border-bottom: solid 1px #2D2F3B; }
#our_fleet .fleet_group .group_ttl::before { content: ""; flex-shrink: 0; width: calc(6vw / 19.2); height: calc(50vw / 19.2); background: #044396; }


/* our_fleet thumb : 520 x 420 ／ 3カラム */
#our_fleet .fleet_group .thumbs { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(20vw / 19.2); }
#our_fleet .fleet_group .thumbs .thumb { width: 100%; aspect-ratio: 26 / 21; margin: 0; overflow: hidden; }




/****** recruit entry（求人応募フォーム）******************************/
/* ヒーロー／フォーム枠は contact のスタイルを流用 */
#entry_hero { padding: 13em 0 6em 0; }
#entry_hero .decoration { inset: 0; }
#entry_hero .tel_box { border: solid 1px #044396; padding: 1.5em; margin-block-start: 4em; }
#entry_hero .tel_box dt { height: calc(140vw / 19.2); border-right: solid 1px #044396; vertical-align: middle; }
#entry_hero .tel_box dt .hour { display: block; }
#entry_hero .tel_box dd { vertical-align: middle; margin: 0; }
#entry_hero .tel_box dd i { margin-right: 0.3em; }

#entry { padding: 6em 0 6em 0; }

/* フォーム小見出し（下線） */
#form .form_subttl { font-weight: 900; margin: 2.5em 0 0 0; padding-block-end: 0.8em; border-bottom: solid 2px #2D2F3B; }
#form .form_subttl:first-of-type { margin-block-start: 1em; }

/* select（base で appearance:none のため独自の矢印） */
#form .box dd select {
	padding: 0.9em 2.6em 0.9em 1em; border: solid 1px #CBD1DB; background-color: #FFFFFF; cursor: pointer; min-width: calc(220vw / 19.2);
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 8"><path d="M1 1l5 5 5-5" fill="none" stroke="%23044396" stroke-width="2"/></svg>');
	background-repeat: no-repeat; background-position: right 1em center; background-size: 0.8em;
}
#form .box dd .select_date { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 0.4em; }
#form .box dd .select_date select { min-width: calc(120vw / 19.2); }

/* radio（性別など） */
#form .box dd .radio_list { display: inline-flex; flex-wrap: wrap; gap: 2em; }
#form .box dd .radio_list .radio { display: inline-flex; align-items: center; gap: 0.5em; margin: 0; cursor: pointer; }
#form .box dd input[type=radio] { position: relative; width: 1.4em; height: 1.4em; border: solid 1px #044396; border-radius: 50%; vertical-align: middle; cursor: pointer; }
#form .box dd input[type=radio]:checked { border: 2px solid #044396; }
#form .box dd input[type=radio]:checked::before { content: ""; position: absolute; inset: 0; margin: auto; width: 0.7em; height: 0.7em; border-radius: 50%; background: #044396; }

/* ファイル添付 */
#form .up_file { list-style: none; margin: 0; padding: 0; }
#form .up_file li { display: flex; align-items: center; flex-wrap: wrap; gap: 1em; }
#form .up_file .up_file_label { font-weight: 700; }

/* 応募職種タブ切替ボタン（:has 制御・色は L&M ブルー） */
#form .tab_btns { gap: calc(20vw / 19.2); margin: 1.5em 0 0 0; }
#form .tab_btns .tab_btn { flex: 1; margin: 0; border: solid 2px #044396; background: #FFFFFF; cursor: pointer; overflow: hidden; }
#form .tab_btns .tab_btn input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
#form .tab_btns .tab_btn .tab_btn_inner { display: flex; align-items: center; justify-content: center; gap: 0.6em; padding: 1.2em; font-weight: 800; }
#form .tab_btns .tab_btn .tab_icon { margin: 0; }

#form.entry_form .tab_btns .tab_btn:has(input:checked) { background: #1D8EDF; border-color: #1D8EDF; }
#form.entry_form .tab_btns .tab_btn:has(input:checked) .tab_btn_inner { color: #FFFFFF; }

/* :has によるタブパネル／送信ボタンの表示制御 */
.entry_form .tab_panel { display: none; }
.entry_form #send_box { display: none; margin-block-start: 3em; }
.entry_form:has(input[value="resume_btn"]:checked) #upload { display: block; }
.entry_form:has(input[value="work_btn"]:checked) #fill_in { display: block; }
.entry_form:has(input[name="resume_btn"]:checked) #send_box { display: block; }

#form #send_box .send_btn { margin: 0 auto; }


