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

html {scroll-behavior: smooth; overflow-x: hidden;}
html, body { overflow-x: clip; }
:target { scroll-margin-top: calc(130vw / 19.2); }

body {
	background:#FFFFFF; color:#222222; --text-color:#222222; font-size:calc(20 * 0.052vw); line-height: 2; letter-spacing: 0.05em;
	font-family: "M PLUS 1","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;}

.popp { font-family: "Poppins", sans-serif; font-weight: 700; font-style: normal; }

.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; }
button { background: none; padding: 0; cursor: pointer; color: inherit; }

.italic { font-style:italic; }
strong { font-weight:900; }

p { margin-block-start: 0; margin-block-end: 0; }

.fw500 { font-weight:500; }
.fw600 { font-weight:600; }
.fw700 { font-weight:700; }
.fw800 { font-weight:800; }
.fw900 { font-weight:900; }


.fs12vw { font-size:calc(12 * 0.052vw); }
.fs14vw { font-size:calc(14 * 0.052vw); }
.fs16vw { font-size:calc(16 * 0.052vw); }
.fs17vw { font-size:calc(17 * 0.052vw); }
.fs18vw { font-size:calc(18 * 0.052vw); }
.fs19vw { font-size:calc(19 * 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); }
.fs54vw { font-size:calc(54 * 0.052vw); }
.fs56vw { font-size:calc(56 * 0.052vw); }
.fs60vw { font-size:calc(60 * 0.052vw); }
.fs64vw { font-size:calc(64 * 0.052vw); }
.fs66vw { font-size:calc(66 * 0.052vw); }
.fs70vw { font-size:calc(70 * 0.052vw); }
.fs72vw { font-size:calc(72 * 0.052vw); }
.fs80vw { font-size:calc(80 * 0.052vw); }
.fs90vw { font-size:calc(90 * 0.052vw); }
.fs100vw { font-size:calc(100 * 0.052vw); }
.fs120vw { font-size:calc(120 * 0.052vw); }


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

img.top { vertical-align: top; }
img.bottom { vertical-align: bottom; }


address, em { font-style: normal; }

a { color: #222222; text-decoration: none; transition: opacity 0.3s ease; }


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.start {justify-content: flex-start;}
.flex.wrap { flex-wrap:wrap; }
.flex.center { justify-content:center; }
.flex.middle { align-items:center; }


/****** layout ********/
/* 1920px基準 : 幅(px) / 19.2 */
.wide_inner { width: calc(1820vw / 19.2); margin: 0 auto; height: 100%; }
.inner { width: calc(1620vw / 19.2); margin: 0 auto; height: 100%; }
.middle_inner { width: calc(1470vw / 19.2); margin: 0 auto; height: 100%;}
.low_inner { width: calc(1320vw / 19.2); margin: 0 auto; height: 100%;}
.minimum_inner { width: calc(1200vw / 19.2); margin: 0 auto; height: 100%;}

/* 片側を画面端まで伸ばす */
.right_inner { width: calc(1770vw / 19.2); margin: 0 0 0 auto; height: 100%; }
.left_inner { width: calc(1770vw / 19.2); margin: 0 auto 0 0; height: 100%; }

.heading { width: 100%; }

/* image parent cover *******/
.fit { overflow: hidden; position:relative; }
.fit img { margin: auto; width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; bottom: 0; right: 0; }


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; }
.ib { display: inline-block; } /* 改行位置の制御用（中で改行させない） */


/****** color ********/
.black { color:#000000; }
.white { color:#FFFFFF; --text-color: #FFFFFF; }
.text_color { color:#222222; }
.dark_blue { color:#1A2C74; --text-color: #1A2C74; }
.blue { color:#1F8FC7; --text-color: #1F8FC7; }
.light_blue { color:#B7E4FB; }
.pale_blue { color:#D8EEF5; }
.ice_blue { color:#EAF6FA; }
.gray_blue { color:#747DA2; }

.bg_black { background-color:#000000; }
.bg_white { background-color:#FFFFFF; }
.bg_alpha_white { background-color:rgba(255,255,255,0.85); }
.bg_dark_blue { background-color:#1A2C74; }
.bg_blue { background-color:#1F8FC7; }
.bg_light_blue { background-color:#B7E4FB; }
.bg_pale_blue { background-color:#D8EEF5; }
.bg_ice_blue { background-color:#EAF6FA; }
.bg_body_white { background-color:#F0FBFF; }

.bg_gradient_blue { background: linear-gradient(to right, #1F8FC7 0, #1D62A1 60%, #1A2C74 100%); }
.bg_gradient_sky { background: linear-gradient(to bottom, #EAF6FA 0, #B7E4FB 100%); }

.text_gradient_blue {
	background: linear-gradient(to right, #1F8FC7 0, #1F8FC7 50%, #1A2C74 100%);
	-webkit-background-clip: text; background-clip: text; color: transparent;
}


.circle { border-radius:50vmax; }
.r5 { border-radius:calc(5vw / 19.2); }
.r10 { border-radius:calc(10vw / 19.2); }
.r20 { border-radius:calc(20vw / 19.2); }
.r40 { border-radius:calc(40vw / 19.2); }


/****** ttl ********/
.ttl { position:relative; font-size: 1em; line-height: 1; margin-block-start: 0; margin-block-end: 2em; }
.ttl .slug { display:block; font-family: "Poppins", sans-serif; font-weight: 700; letter-spacing: 0.12em; line-height: 1.5; }
.ttl .ja { display:block; font-weight: 800; letter-spacing: 0.08em; line-height: 1.45; }
.ttl::after {
	content:""; display:block; width: calc(300vw / 19.2); aspect-ratio: 300 / 29; margin: 1.1em 0 0 0;
	background: url(../img/ttl_line.svg) no-repeat center / 100% auto;
}
.ttl.center::after { margin-left:auto; margin-right:auto; }
.ttl.light::after { background-image: url(../img/ttl_line_light.svg); }


.summary { line-height: 2.38; }


/****** 矢印ボックス ********/
.arrow_box { display:inline-grid; place-items:center; flex-shrink: 0; width:calc(50vw / 19.2); aspect-ratio: 1 / 1; border-radius:calc(5vw / 19.2); line-height: 1; }
.arrow_box.small { width:calc(36vw / 19.2); }


/****** more ********/
.more {
	position:relative; display:flex; justify-content:center; align-items:center; width:calc(400vw / 19.2); height:calc(100vw / 19.2);
	padding-right: calc(24vw / 19.2); border:solid 1px #1A2C74; border-radius:calc(20vw / 19.2); box-shadow: calc(3vw / 19.2) calc(3vw / 19.2) 0 #1A2C74;
	font-weight:700; letter-spacing: 0.1em; line-height: 1; transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}
.more .arrow_box { position:absolute; top: 50%; right: calc(34vw / 19.2); transform: translateY(-50%); transition: background-color 0.3s ease, color 0.3s ease; }
.more.center { margin-left:auto; margin-right:auto; }
.more:hover { opacity:1; transform: translate(calc(3vw / 19.2), calc(3vw / 19.2)); box-shadow: 0 0 0 #1A2C74; background-color:#1A2C74; color:#FFFFFF; }
.more:hover .arrow_box { background-color:#FFFFFF; color:#1A2C74; }



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

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

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


.fade_right { opacity: 0; transform:translateX(2vw); transition: opacity 0.6s ease, transform 0.6s ease; }
.fade_right.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:hover img { -webkit-transform: scale(1.05); transform: scale(1.05); }

.grayscale { filter: grayscale(100%);transition: 2s ease; }
.grayscale.active { filter: grayscale(0%); }


.text_action span { display: inline-block; opacity: 0;transform: translate(0) scale(5); }
.text_action.active span { animation: leftRight .25s forwards; }
@keyframes leftRight {
	50% {
		transform: translate(0) scale(2.5);
		opacity: 1;
	}
	100% {
		transform: translate(0) scale(1);
		opacity: 1;
	}
}
.text_action span:nth-of-type(2) {animation-delay: .05s;}
.text_action span:nth-of-type(3) {animation-delay: .1s;}
.text_action span:nth-of-type(4) {animation-delay: .15s;}
.text_action span:nth-of-type(5) {animation-delay: .2s;}
.text_action span:nth-of-type(6) {animation-delay: .25s;}
.text_action span:nth-of-type(7) {animation-delay: .3s;}
.text_action span:nth-of-type(8) {animation-delay: .35s;}
.text_action span:nth-of-type(9) {animation-delay: .4s;}
.text_action span:nth-of-type(10) {animation-delay: .45s;}
.text_action span:nth-of-type(11) {animation-delay: .5s;}
.text_action span:nth-of-type(12) {animation-delay: .55s;}
.text_action span:nth-of-type(13) {animation-delay: .6s;}
.text_action span:nth-of-type(14) {animation-delay: .65s;}
.text_action span:nth-of-type(15) {animation-delay: .7s;}


.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: inline-block; clip-path: inset(0 100% 0 0); transition: clip-path 1s ease; }
.text_curtain.active span { clip-path: inset(0 0 0 0); }


.box_curtain { position: relative; overflow: hidden; width: 100%; }
.box_curtain::before { background-color: #1F8FC7; content: ""; position: absolute; z-index: 3; width: 100%; height: 100%; }
.box_curtain.active::before { animation: box_curtain 1.2s ease forwards; }

@keyframes box_curtain {
	0% { transform: translateX(-100%); }
	40%  { transform: translateX(0%); }
	60%  { transform: translateX(0%); }
	100% { transform: translateX(100%); }
}


/* イラスト用 ふわふわ */
.float { animation: float 4s ease-in-out infinite; }
.float.delay { animation-delay: -2s; }
@keyframes float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(calc(-12vw / 19.2)); }
}

/* イラスト用 ゆらゆら */
.swing { transform-origin: center bottom; animation: swing 5s ease-in-out infinite; }
@keyframes swing {
	0%, 100% { transform: rotate(-2deg); }
	50% { transform: rotate(2deg); }
}


.loop-slider { width: 100%; overflow: hidden;}
.slider_track { display: flex; width: max-content; gap: 0; }
.slide { flex: 0 0 auto; }
.slide img { display: block; }



/****** illust (position_a) ********/

.illust1 { width:calc(240vw / 19.2); aspect-ratio: 1 / 1; }
.illust2 { width:calc(280vw / 19.2); aspect-ratio: 560 / 447; }
.illust3 { width:calc(350vw / 19.2); aspect-ratio: 700 / 467; }
.illust4 { width:calc(270vw / 19.2); aspect-ratio: 540 / 405; }
.illust5 { width:calc(250vw / 19.2); aspect-ratio: 500 / 350; }
.illust6 { width:calc(170vw / 19.2); aspect-ratio: 340 / 177; }
.illust7 { width:calc(287vw / 19.2); aspect-ratio: 580 / 478; }
.illust8 { width:calc(290vw / 19.2); aspect-ratio: 580 / 387; }
.illust9 { width:calc(270vw / 19.2); aspect-ratio: 540 / 405; }
.illust10 { width:calc(205vw / 19.2); aspect-ratio: 410 / 362; }
.illust11 { width:calc(230vw / 19.2); aspect-ratio: 460 / 345; }
.illust12 { width:calc(200vw / 19.2); aspect-ratio: 400 / 266; }
.illust13 { width:calc(220vw / 19.2); aspect-ratio: 440 / 372; }
.illust14 { width:calc(300vw / 19.2); aspect-ratio: 600 / 450; }
.illust15 { width:calc(280vw / 19.2); aspect-ratio: 560 / 374; }
.illust16 { width:calc(300vw / 19.2); aspect-ratio: 600 / 437; }
.illust17 { width:calc(330vw / 19.2); aspect-ratio: 660 / 600; }
.illust18 { width:calc(350vw / 19.2); aspect-ratio: 700 / 584; }
.illust19 { width:calc(330vw / 19.2); aspect-ratio: 660 / 618; }
.illust20 { width:calc(300vw / 19.2); aspect-ratio: 1 / 1; }
.illust21 { width:calc(300vw / 19.2); aspect-ratio: 600 / 500; }
.illust22 { width:calc(300vw / 19.2); aspect-ratio: 600 / 429; }
.illust23 { width:calc(320vw / 19.2); aspect-ratio: 640 / 427; }
.illust24 { width:calc(250vw / 19.2); aspect-ratio: 500 / 334; }
.illust25 { width:calc(232vw / 19.2); aspect-ratio: 464 / 276; }
.illust26 { width:calc(160vw / 19.2); aspect-ratio: 320 / 279; }
.illust27 { width:calc(260vw / 19.2); aspect-ratio: 520 / 376; }
.illust28 { width:calc(300vw / 19.2); aspect-ratio: 600 / 400; }
.illust29 { width:calc(260vw / 19.2); aspect-ratio: 1 / 1; }

.bird { width:calc(200vw / 19.2); aspect-ratio: 84 / 27; }



/****** header ********/

#header { position:fixed; top: 0; left: 0; width: 100%; height: calc(130vw / 19.2); z-index: 999; }
#header::before { content:""; position:absolute; inset:0 0 auto 0; height:3px; z-index: 10001; background: linear-gradient(to right, #1A2C74 0, #1D67A6 50%, #1F8FC7 100%); }
#header .header_bar { position:relative; z-index: 10000; height: 100%; box-shadow: 0 calc(4vw / 19.2) calc(4vw / 19.2) rgba(26,44,116,0.1); }
#header .wide_inner { align-items: center; }

#header .logo { margin: 0; line-height: 1; font-size: 1em; }
#header .logo a { display:flex; align-items:center; }
#header .logo .mark { width:calc(80vw / 19.2); aspect-ratio: 160 / 171; }
#header .logo .name { margin-left: calc(26vw / 19.2); font-weight: 700; letter-spacing: 0.08em; }

#header #google_translate_element { margin: 0 calc(40vw / 19.2) 0 auto; }
.goog-te-gadget-simple { font-size: calc(16vw / 19.2) !important; }

#header .header_btn {
	display:flex; justify-content:center; align-items:center; width:calc(240vw / 19.2); height:calc(80vw / 19.2); border-radius:calc(20vw / 19.2);
	font-weight: 800; letter-spacing: 0.08em; line-height: 1; margin-left: calc(20vw / 19.2);
}
#header .header_btn i { margin-right: 0.8em; }

#header .divider { width:1px; height:calc(80vw / 19.2); background-color:#747DA2; margin: 0 calc(30vw / 19.2); }

#header #hamburger { display:flex; flex-direction: column; align-items:center; width:calc(70vw / 19.2); line-height: 1; }
#header #hamburger .icon { position:relative; display:block; width:calc(42vw / 19.2); height:calc(42vw / 19.2); }
#header #hamburger .icon i { position:absolute; inset:0; display:grid; place-items:center; transition: opacity 0.3s ease, transform 0.3s ease; }
#header #hamburger .icon .close { opacity:0; transform: rotate(-90deg); }
#header #hamburger.active .icon .open { opacity:0; transform: rotate(90deg); }
#header #hamburger.active .icon .close { opacity:1; transform: rotate(0); }
#header #hamburger .label { display:block; font-weight: 600; letter-spacing: 0.08em; margin-top: 0.4em; }


/* drawer */
#header #drawer {
	position: fixed; inset: 0; background: rgba(26,44,116,0.4); opacity:0; pointer-events:none; transition: opacity 0.4s ease; z-index: 9000;
}
#header #drawer.open { opacity:1; pointer-events:auto; }

#header #drawer .drawer-content {
	position: relative; overflow: hidden; width: 100%; max-height: 100vh; overflow-y: auto; padding: calc(200vw / 19.2) 0 calc(100vw / 19.2) 0;
	transform: translateY(-100%); transition: transform 0.5s ease;
}
#header #drawer.open .drawer-content { transform: translateY(0); }

#header #drawer .drawer_wave { inset: auto 0 0 auto; width:calc(1063vw / 19.2); aspect-ratio: 1063 / 360; z-index: 0; }
#header #drawer .illust7 { inset: auto calc(115vw / 19.2) calc(120vw / 19.2) auto; z-index: 1; }

#header #drawer .drawer_nav { position:relative; z-index: 2; align-items: flex-start; }
#header #drawer .drawer_nav .col1 { width:calc(700vw / 19.2); }
#header #drawer .drawer_nav .col2 { width:calc(410vw / 19.2); }
#header #drawer .drawer_nav .col3 { width:calc(510vw / 19.2); }

#header #drawer .drawer_nav ul { list-style-type:none; margin:0; padding:0; }
#header #drawer .page_link { display:flex; align-items:center; line-height: 1; }
#header #drawer .page_link .arrow_box { width:calc(46vw / 19.2); margin-right: calc(24vw / 19.2); }
#header #drawer .page_link .slug { display:block; font-weight: 700; letter-spacing: 0.08em; line-height: 1.5; }
#header #drawer .page_link .ja { display:block; font-weight: 800; letter-spacing: 0.08em; line-height: 1.45; }
#header #drawer .page_link .ja::after { content:""; display:block; width:100%; height:calc(10vw / 19.2); margin-top: 0.3em; background: url(../img/ttl_line_stretch.svg) no-repeat left center / 100% 100%; }
#header #drawer .page_block { margin-block-end: 2.2em; }
#header #drawer .page_block .sub_list { display:grid; grid-template-columns: repeat(2, max-content); column-gap: calc(100vw / 19.2); margin-block-start: 0.8em; }
#header #drawer .page_block .sub_list.one { grid-template-columns: max-content; }
#header #drawer .page_block .sub_list li a { display:flex; align-items:center; font-weight: 600; line-height: 2.3; }
#header #drawer .page_block .sub_list li a .arrow_box { width:calc(30vw / 19.2); margin-right: calc(20vw / 19.2); }

#header #drawer .drawer_btn {
	display:flex; justify-content:center; align-items:center; width:100%; height:calc(110vw / 19.2); border-radius:calc(20vw / 19.2);
	line-height: 1; letter-spacing: 0.08em; margin-block-start: 1.5em;
}
#header #drawer .drawer_btn i { margin-right: 0.7em; }



/****** bottom_contact ********/

.bottom_contact { padding: 4.5em 0; background: url(../img/bottom_contact_bg.webp) no-repeat center / cover; overflow: hidden; }
.bottom_contact::before { content:""; position:absolute; inset:0; z-index: -1; background: linear-gradient(to right, rgba(31,143,199,0.5) 0, rgba(31,143,199,0.9) 100%); }

.bottom_contact .bottom_contact_wrapper {
	padding: 2.15em 0 2.65em 0; border-radius:calc(60vw / 19.2); box-shadow: calc(2vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) rgba(26,44,116,0.3);
}
.bottom_contact .ttl { margin-block-end: 1.35em; }
.bottom_contact .summary { letter-spacing: 0.08em; }

.bottom_contact .link_box { justify-content: center; margin-block-start: 1.8em; gap: calc(80vw / 19.2); }
.bottom_contact .link_box a {
	display:flex; justify-content:center; align-items:center; width:calc(620vw / 19.2); height:calc(140vw / 19.2); border-radius:calc(20vw / 19.2);
	line-height: 1; letter-spacing: 0.08em;
}
.bottom_contact .link_box a i { margin-right: 0.8em; }
.bottom_contact .link_box .mail_btn { font-weight: 800; }

.bottom_contact .bottom_contact_blob { inset: calc(-44vw / 19.2) auto auto calc(-124vw / 19.2); width:calc(438vw / 19.2); aspect-ratio: 438 / 317; z-index: 0; }
.bottom_contact .bottom_contact_photo {
	inset: calc(-29vw / 19.2) auto auto calc(-124vw / 19.2); width:calc(460vw / 19.2); aspect-ratio: 460 / 290; object-fit: cover;
	-webkit-mask: url(../img/home/bottom_contact_mask.svg) no-repeat center / 100% 100%; mask: url(../img/home/bottom_contact_mask.svg) no-repeat center / 100% 100%;
}
.bottom_contact .illust5 { inset: calc(34vw / 19.2) calc(93vw / 19.2) auto auto; }
.bottom_contact .illust6 { inset: calc(183vw / 19.2) calc(-35vw / 19.2) auto auto; }



/****** footer ********/

#footer { z-index:3; padding: 2.5em 0 0 0; }
#footer::after { content:""; position:absolute; inset:auto 0 0 0; height:3px; background: linear-gradient(to right, #1A2C74 0, #1D67A6 50%, #1F8FC7 100%); }

#footer .inner { align-items: flex-start; }

#footer .site_info { width:calc(560vw / 19.2); }
#footer .site_info .logo { display:flex; align-items:center; line-height: 1; }
#footer .site_info .logo .mark { width:calc(80vw / 19.2); aspect-ratio: 160 / 171; }
#footer .site_info .logo .name { margin-left: calc(26vw / 19.2); font-weight: 700; letter-spacing: 0.08em; }

#footer .site_info address { line-height: 1.67; margin-block-start: 1.1em; }
#footer .site_info .map_btn {
	display:inline-flex; align-items:center; justify-content:center; width:calc(110vw / 19.2); height:calc(38vw / 19.2); border:solid 1px #1A2C74;
	border-radius:50vmax; line-height:1; margin-left: 0.6em; vertical-align: middle; font-weight: 500;
}
#footer .site_info .map_btn i { margin-right: 0.4em; }
#footer .site_info .tel { line-height: 1.67; }

#footer .site_menu {
	display:grid; width:calc(940vw / 19.2); padding-block-start: 0.3em;
	grid-template-columns: calc(308vw / 19.2) calc(282vw / 19.2) calc(232vw / 19.2) 1fr; /* 列幅はここで調整 */
}
#footer .site_menu ul { list-style-type:none; margin:0; padding:0; }
#footer .site_menu .page_name { font-weight: 700; line-height: 1.5; white-space: nowrap; }
#footer .site_menu .page_name + .page_name { margin-block-start: 1.6em; }
#footer .site_menu .page_block { display:grid; grid-template-columns: repeat(2, max-content); column-gap: calc(25vw / 19.2); margin-block-start: 0.35em; }
#footer .site_menu .page_block.one { grid-template-columns: max-content; }
#footer .site_menu .page_block li { line-height: 2.35; }
#footer .site_menu .page_block li i { width: auto; margin-right: calc(10vw / 19.2); }

#footer .copy { padding: 4.4em 0 1.5em 0; line-height: 1; }

#ptop {
	display:grid; place-items:center; position: fixed; inset:auto calc(60vw / 19.2) calc(70vw / 19.2) auto; z-index: 100;
	width:calc(60vw / 19.2); aspect-ratio: 60 / 90; padding-bottom: calc(16vw / 19.2);
	background: url(../img/ptop.svg) no-repeat center / 100% 100%;
	opacity: 0; pointer-events: none; transition: opacity 0.5s ease;
}
#ptop.show { opacity: 1; pointer-events: auto; }



/****** page_header (下層共通) ********/

.page_header {
	height: calc(640vw / 19.2); z-index: 2;
	background: url(../img/page_header_deco.svg) no-repeat center top / 100% auto, linear-gradient(to right, #1A2C74 0, #1F8FC7 100%);
}
/* 下の波は常にpage_headerの下端に固定 */
.page_header::before {
	content:""; position:absolute; inset: auto 0 calc(-64vw / 19.2) 0; aspect-ratio: 1920 / 249; z-index: 0; pointer-events: none;
	background: url(../img/page_header_wave.svg) no-repeat center bottom / 100% auto;
}
.page_header .inner { padding-block-start: 11em; }

.page_header_ttl { margin: 0; }
.page_header_ttl .slug { display:inline-block; padding: 0.17em 0.63em; border-radius:calc(10vw / 19.2); }
.page_header_ttl .ja { margin-block-start: 0.13em; letter-spacing: 0.05em; }
.page_header_ttl::after { margin-block-start: 1.1em; background-image: url(../img/ttl_line_blue.svg); }

.page_header_thumb { display:flex; gap: calc(20vw / 19.2); inset: calc(90vw / 19.2) calc(60vw / 19.2) auto auto; }
.page_header_thumb img { height: calc(430vw / 19.2); object-fit: cover; border-radius: calc(80vw / 19.2); }
.page_header_thumb .thumb1 { width: calc(330vw / 19.2); }
.page_header_thumb .thumb2 { width: calc(660vw / 19.2); }



/**** home *******************/

main { margin-block-start: calc(130vw / 19.2); }


/* fv */
#fv { aspect-ratio: 1920 / 830; }
#fv .fv_media { position:absolute; inset:0; overflow:hidden; z-index: 0; }
#fv .fv_media img,
#fv .fv_media video { width:100%; height:100%; object-fit:cover; display:block; }

#fv .fv_wave { inset:auto 0 calc(-63vw / 19.2) 0; width:100%; aspect-ratio: 1920 / 152; z-index: 1; }

#fv .fv_content { inset: calc(243vw / 19.2) auto auto calc(120vw / 19.2); z-index: 3;opacity: 0; transform: translateY(2vw); transition: opacity 1s ease, transform 1s ease; }
#fv .fv_content.active { opacity: 1; transform: none; }
#fv .fv_content .glow { position:relative; display:block; width:max-content; }
#fv .fv_content .glow::before {
	content:""; position:absolute; inset: 0 calc(-32vw / 19.2) 0 calc(-30vw / 19.2); z-index:-1;
	background-color: rgba(255,255,255,0.85); filter: blur(calc(30vw / 19.2));
}
#fv .fv_catch { font-weight:900; letter-spacing: 0.08em; line-height: 1.44; }
#fv .fv_catch_line { display:block; width:calc(208vw / 19.2); aspect-ratio: 208 / 30; margin: calc(22vw / 19.2) 0 calc(10vw / 19.2) calc(-4vw / 19.2); }
#fv .fv_sub { font-weight:800; letter-spacing: 0.08em; line-height: 1.82; }
#fv .fv_sub .glow::before { inset: 0 calc(-30vw / 19.2); }
#fv .fv_label {
	display:inline-block; width:calc(390vw / 19.2); padding: 0.26em 0; margin-block-start: 0.7em; border-radius:calc(10vw / 19.2);
	font-weight:700; letter-spacing: 0.08em; line-height: 1.44; text-align:center; text-shadow: calc(2vw / 19.2) calc(4vw / 19.2) calc(4vw / 19.2) rgba(0,0,0,0.3);
}

#fv .fv_recruit {
	display:flex; inset: calc(480vw / 19.2) calc(60vw / 19.2) auto auto; width:calc(470vw / 19.2); height:calc(210vw / 19.2);
	padding: calc(15vw / 19.2); border-radius:calc(20vw / 19.2); z-index: 3;
}
#fv .fv_recruit .thumb { width:calc(190vw / 19.2); aspect-ratio: 19 / 18; border-radius:calc(20vw / 19.2); object-fit:cover; }
#fv .fv_recruit .text { padding: 0.6em 0 0 calc(33vw / 19.2); }
#fv .fv_recruit .slug { display:block; font-weight:700; letter-spacing: 0.12em; line-height: 1.5; }
#fv .fv_recruit .ja { display:flex; align-items:center; font-weight:800; letter-spacing: 0.08em; line-height: 1.45; }
#fv .fv_recruit .ja .arrow_box { margin-left: 0.45em; }
#fv .fv_recruit .summary { display:block; font-weight:600; letter-spacing: 0.08em; line-height: 1.84; margin-block-start: 0.3em; }
#fv .fv_recruit .bird { inset: calc(20vw / 19.2) calc(20vw / 19.2) auto auto; width:calc(83vw / 19.2); }
#fv .fv_recruit .fv_recruit_line { inset: calc(139vw / 19.2) auto auto calc(162vw / 19.2); width:calc(300vw / 19.2); aspect-ratio: 300 / 64; z-index: -1; }
#fv .fv_recruit .fv_recruit_swoosh { inset: calc(155vw / 19.2) auto auto calc(201vw / 19.2); width:calc(109vw / 19.2); aspect-ratio: 109 / 25; }
#fv .fv_recruit:hover { opacity: 1; }
#fv .fv_recruit:hover .arrow_box { background-color:#1A2C74; }



/* top_about */
#top_about { padding: 6.4em 0 4.7em 0; background: url(../img/home/top_about_bg.svg) no-repeat center top / 100% auto; }

#top_about .illust1 { inset: calc(64vw / 19.2) auto auto calc(90vw / 19.2); }

#top_about .ttl { margin-block-end: 2.05em; }

#top_about .about_wrapper { align-items: flex-start; }
#top_about .text { width:calc(792vw / 19.2); }
#top_about .catch { font-weight:900; letter-spacing: 0.1em; line-height: 1.7; white-space: nowrap; }
#top_about .wave_line { display:block; width:calc(748vw / 19.2); aspect-ratio: 748 / 21; margin: 1.2em 0 1.3em 0; }
#top_about .summary { width:calc(780vw / 19.2); }

#top_about .thumb_list { width:calc(900vw / 19.2); flex-shrink: 0; }
#top_about .thumb1 { display:block; width:calc(900vw / 19.2); aspect-ratio: 900 / 540; object-fit:cover; border-radius: calc(80vw / 19.2) 0 0 calc(80vw / 19.2); margin-block-start: 0.75em; }
#top_about .thumb2 { display:block; width:calc(580vw / 19.2); aspect-ratio: 580 / 400; object-fit:cover; border-radius: calc(80vw / 19.2); margin: 2.65em 0 0 calc(260vw / 19.2); }

#top_about .link_list { margin-block-start: 2.5em; width:calc(784vw / 19.2); }
#top_about .link_list .box {
	display:flex; justify-content:space-between; width:calc(780vw / 19.2); height:calc(250vw / 19.2); padding: calc(15vw / 19.2) calc(20vw / 19.2) calc(15vw / 19.2) calc(39vw / 19.2);
	border-radius:calc(20vw / 19.2); box-shadow: calc(4vw / 19.2) calc(4vw / 19.2) 0 #1A2C74; margin-block-end: 2em; transition: transform 0.3s ease, box-shadow 0.3s ease;
}
#top_about .link_list .box .box_text { padding-block-start: 0.65em; }
#top_about .link_list .box .slug { display:block; font-weight:700; letter-spacing: 0.12em; line-height: 1.5; }
#top_about .link_list .box .ja { display:flex; align-items:center; font-weight:800; letter-spacing: 0.1em; line-height: 1.08; margin-block-start: 0.2em; }
#top_about .link_list .box .ja .arrow_box { margin-left: 0.55em; }
#top_about .link_list .box .summary { display:block; width:calc(440vw / 19.2); line-height: 2.25; margin-block-start: 0.45em; }
#top_about .link_list .box .thumb { width:calc(260vw / 19.2); aspect-ratio: 26 / 22; border-radius:calc(20vw / 19.2); object-fit:cover; }
#top_about .link_list .box:last-child { margin-block-end: 0; }
#top_about .link_list .box:hover { opacity:1; transform: translate(calc(4vw / 19.2), calc(4vw / 19.2)); box-shadow: 0 0 0 #1A2C74; }


/* top_works */
#top_works { padding-block-start: calc(68vw / 19.2); }
#top_works .top_works_wave { inset: 0 0 auto 0; width:100%; aspect-ratio: 1920 / 180; z-index: 1; }
#top_works .works_bg {
	position:relative; padding: 6em 0 4.3em 0;
	background: url(../img/home/top_works_bg.svg) no-repeat center top / 100% auto, linear-gradient(to bottom, #EAF6FA 0, #B7E4FB 100%);
	border-radius: 0 0 calc(120vw / 19.2) calc(120vw / 19.2);
}

#top_works .top_works_photo {
	inset: calc(120vw / 19.2) auto auto calc(-22vw / 19.2); width:calc(450vw / 19.2); aspect-ratio: 450 / 290; object-fit:cover;
	-webkit-mask: url(../img/home/top_works_mask.svg) no-repeat center / 100% 100%; mask: url(../img/home/top_works_mask.svg) no-repeat center / 100% 100%;
}
#top_works .top_works_line { inset: calc(189vw / 19.2) auto auto calc(361vw / 19.2); width:calc(103vw / 19.2); aspect-ratio: 103 / 237; }
#top_works .illust2 { inset: calc(137vw / 19.2) calc(110vw / 19.2) auto auto; }

#top_works .ttl { margin-block-end: 1.65em; }

#top_works .works_list { display:grid; grid-template-columns: repeat(3, 1fr); gap: calc(60vw / 19.2); margin-block-start: 2.3em; }
#top_works .works_list .box {
	position:relative; display:block; padding: calc(24vw / 19.2) calc(30vw / 19.2) calc(30vw / 19.2) calc(30vw / 19.2); border-radius:calc(40vw / 19.2);
	box-shadow: calc(2vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) rgba(26,44,116,0.05);
}
#top_works .works_list .box .box_ttl { display:flex; align-items:center; line-height: 1; }
#top_works .works_list .box .num { display:grid; place-items:center; width:calc(80vw / 19.2); aspect-ratio: 1 / 1; border-radius:calc(10vw / 19.2); font-weight:700; letter-spacing: 0.05em; margin-right: calc(35vw / 19.2); }
#top_works .works_list .box .ja { font-weight:800; letter-spacing: 0.1em; }
#top_works .works_list .box .thumb { display:block; width:100%; aspect-ratio: 2 / 1; object-fit:cover; border-radius:calc(20vw / 19.2); margin-block-start: 1em; }
#top_works .works_list .box .summary { display:block; width:calc(370vw / 19.2); line-height: 2; margin-block-start: 0.7em; }
#top_works .works_list .box .arrow_box { position:absolute; inset:auto calc(30vw / 19.2) calc(31vw / 19.2) auto; transition: background-color 0.3s ease; }
#top_works .works_list .box:hover { opacity:1; }
#top_works .works_list .box:hover .arrow_box { background-color:#1F8FC7; }

#top_works .more { margin-block-start: 3em; }


/* top_recruit */
#top_recruit { padding: 4.45em 0 4.5em 0; background: url(../img/home/top_recruit_bg.svg) no-repeat center top / 100% auto; }

#top_recruit .illust3 { inset: calc(36vw / 19.2) auto auto calc(100vw / 19.2); }
#top_recruit .illust4 { inset: calc(36vw / 19.2) calc(115vw / 19.2) auto auto; }
#top_recruit .top_recruit_line { inset: calc(625vw / 19.2) calc(24vw / 19.2) auto auto; width:calc(356vw / 19.2); aspect-ratio: 356 / 233; }

#top_recruit .ttl { margin-block-end: 2.4em; }

#top_recruit .recruit_wrapper { align-items:flex-start; }
#top_recruit .thumb_list { position:relative; width:calc(920vw / 19.2); margin-block-start: 0.4em; }
#top_recruit .thumb_list .thumb1 { width:calc(490vw / 19.2); aspect-ratio: 490 / 540; object-fit:cover; border-radius: 0 calc(80vw / 19.2) calc(80vw / 19.2) 0; }
#top_recruit .thumb_list .thumb2 { inset: calc(61vw / 19.2) 0 auto auto; width:calc(380vw / 19.2); aspect-ratio: 380 / 520; object-fit:cover; object-position: 38% center; border-radius: calc(80vw / 19.2); }

#top_recruit .text { width:calc(910vw / 19.2); padding-right: calc(150vw / 19.2); }
#top_recruit .catch { font-weight:900; letter-spacing: 0.1em; line-height: 1.7; white-space: nowrap; }
#top_recruit .wave_line { display:block; width:calc(748vw / 19.2); aspect-ratio: 748 / 21; margin: 1.5em 0 1.6em 0; }
#top_recruit .more { margin-block-start: 2.3em; }

#top_recruit .link_list { display:grid; grid-template-columns: repeat(2, 1fr); gap: calc(50vw / 19.2) calc(60vw / 19.2); margin-block-start: 5em; }
#top_recruit .link_list .box {
	position:relative; display:flex; height:calc(320vw / 19.2); overflow:hidden; border-radius:calc(40vw / 19.2);
	box-shadow: calc(2vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) rgba(26,44,116,0.1);
}
#top_recruit .link_list .box .thumb { display:flex; gap: calc(10vw / 19.2); width:calc(360vw / 19.2); height:100%; flex-shrink: 0; }
#top_recruit .link_list .box .thumb img { width:100%; height:100%; object-fit:cover; min-width: 0; }
#top_recruit .link_list .box .box_text { padding: calc(28vw / 19.2) 0 0 calc(44vw / 19.2); }
#top_recruit .link_list .box .slug { display:block; font-weight:700; letter-spacing: 0.12em; line-height: 1.5; }
#top_recruit .link_list .box .ja { display:block; font-weight:800; letter-spacing: 0.1em; line-height: 1.08; margin-block-start: 0.25em; }
#top_recruit .link_list .box .summary { display:block; width:calc(350vw / 19.2); line-height: 2; margin-block-start: 0.55em; }
#top_recruit .link_list .box .arrow_box { position:absolute; inset:auto calc(40vw / 19.2) calc(33vw / 19.2) auto; transition: background-color 0.3s ease; }
#top_recruit .link_list .box:hover { opacity:1; }
#top_recruit .link_list .box:hover .arrow_box { background-color:#1F8FC7; }


/* top_gallery */
#top_gallery { padding: 4em 0 4.8em 0; background: url(../img/home/top_gallery_bg.svg) no-repeat center top / 100% 100%; }

#top_gallery .gallery_wrapper { align-items: flex-start; }
#top_gallery .text { position:relative; padding-left: calc(152vw / 19.2); }
#top_gallery .text .bird { inset: calc(26vw / 19.2) auto auto calc(500vw / 19.2); }
#top_gallery .ttl { margin-block-end: 1.65em; }
#top_gallery .ttl::after { margin-block-start: 0.55em; }
#top_gallery .summary { letter-spacing: 0.08em; }
#top_gallery .more { width:calc(390vw / 19.2); margin-block-start: 1.85em; }

#top_gallery .thumb_list {
	display:grid; width:calc(870vw / 19.2); grid-template-columns: calc(240vw / 19.2) calc(290vw / 19.2) calc(300vw / 19.2); grid-template-rows: calc(200vw / 19.2) calc(230vw / 19.2);
	gap: calc(13vw / 19.2) calc(20vw / 19.2); margin-block-start: 0.25em;
}
#top_gallery .thumb_list .thumb { display:block; border-radius:calc(20vw / 19.2); }
#top_gallery .thumb_list .thumb3 { grid-column: 3; grid-row: 1 / 3; }
#top_gallery .thumb_list .thumb4 { grid-column: 1 / 3; grid-row: 2; }



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

.business_page .page_header_thumb .thumb1 { object-position: 58% center; }
.business_page .page_header_thumb .thumb2 { object-position: 25% 78%; }

#business {
	padding: 5em 0 4.5em 0;
	background:
		url(../img/business/business_bg_bottom.svg) no-repeat center bottom / 100% auto,
		url(../img/business/business_bg.svg) no-repeat center calc(-60vw / 19.2) / 100% auto,
		linear-gradient(to bottom, rgba(234,246,250,0.2) 0, rgba(209,237,250,0.8) 50%, #B7E4FB 100%);
}

#business .illust8 { inset: calc(50vw / 19.2) auto auto calc(73vw / 19.2); }
#business .illust9 { inset: calc(84vw / 19.2) calc(90vw / 19.2) auto auto; }

#business .lead { font-weight:700; letter-spacing: 0.08em; line-height: 2; }

#business .box {
	margin-block-start: 3em; padding: 2em 2.5em 2.5em 2.5em; border-radius:calc(40vw / 19.2);
	box-shadow: calc(2vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) rgba(26,44,116,0.05);
}
#business .box_head { display:flex; align-items:center; min-height: calc(80vw / 19.2); }
#business .box_head .num { display:grid; place-items:center; flex-shrink: 0; width:calc(80vw / 19.2); aspect-ratio: 1 / 1; border-radius:calc(10vw / 19.2); margin-right: calc(35vw / 19.2); font-weight:700; letter-spacing: 0.05em; line-height: 1; }
#business .box_head .box_ttl { flex-shrink: 0; width:calc(315vw / 19.2); margin: 0; font-weight:800; letter-spacing: 0.1em; line-height: 1; }
#business .box_head .summary { line-height: 2; }

#business .thumb_list { display:grid; margin-block-start: 2em; }
#business .thumb_list.col2 { grid-template-columns: repeat(2, 1fr); gap: calc(40vw / 19.2); }
#business .thumb_list.col3 { grid-template-columns: repeat(3, 1fr); gap: calc(25vw / 19.2); }
#business .thumb_list > img { width:100%; height:calc(410vw / 19.2); object-fit:cover; border-radius:calc(40vw / 19.2); }

#business01 .thumb_list img:nth-child(1) { object-position: center 33%; }
#business01 .thumb_list img:nth-child(2) { object-position: center 72%; }
#business02 .thumb_list img:nth-child(1) { object-position: center 96%; }
#business02 .thumb_list img:nth-child(2) { object-position: center 94%; }
#business03 .thumb_list img:nth-child(1) { object-position: 40% center; }
#business03 .thumb_list img:nth-child(2) { object-position: 46% 100%; }
#business03 .thumb_list img:nth-child(3) { object-position: 41% 40%; }
#business04 .thumb_list img:nth-child(1) { object-position: center 77%; }
#business04 .thumb_list img:nth-child(2) { object-position: center 76%; }
#business05 .thumb_list img:nth-child(1) { object-position: center 37%; }
#business05 .thumb_list img:nth-child(2) { object-position: center top; }
#business06 .thumb_list img:nth-child(1) { object-position: center 72%; }

#business .illust10 { inset: calc(-51vw / 19.2) calc(121vw / 19.2) auto auto; }
#business .illust11 { inset: calc(-45vw / 19.2) calc(-101vw / 19.2) auto auto; }
#business .illust12 { inset: calc(-27vw / 19.2) calc(-49vw / 19.2) auto auto; }

/* 総務部 */
#business .support_box { height:calc(410vw / 19.2); padding: 1em 2em; border-radius:calc(40vw / 19.2); }
#business .support_box .illust13 { inset: calc(26vw / 19.2) calc(32vw / 19.2) auto auto; }
#business .support_box .support_ttl { font-weight:800; letter-spacing: 0.08em; line-height: 1.6; }
#business .support_box .support_text { width:calc(434vw / 19.2); letter-spacing: 0.08em; line-height: 1.94; margin-block-start: 0.83em; }
#business .support_box .support_list { display:flex; gap: calc(20vw / 19.2); list-style-type:none; margin: 1.55em 0 0 0; padding: 0; }
#business .support_box .support_list li { width:calc(150vw / 19.2); height:calc(125vw / 19.2); padding-block-start: 0.35em; border-radius:calc(20vw / 19.2); text-align:center; }
#business .support_box .support_list .label { display:flex; justify-content:center; align-items:center; font-weight:800; letter-spacing: 0.08em; line-height: 2.1; }
#business .support_box .support_list .label i { margin-right: calc(12vw / 19.2); }
#business .support_box .support_list .text { display:block; color:#000000; letter-spacing: 0.08em; line-height: 1.56; margin-block-start: 0.5em; }




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

.about_page .page_header_thumb .thumb1 { object-position: 61% 60%; }
.about_page .page_header_thumb .thumb2 { object-position: center 40%; }

/* greeting */
#greeting { padding: 5em 0 4.6em 0; background: url(../img/about/greeting_bg.svg) no-repeat center top / 100% auto; }
#greeting .illust14 { inset: calc(39vw / 19.2) calc(60vw / 19.2) auto auto; }
#greeting .ttl { margin-block-end: 2.8em; }

#greeting .greeting_box { align-items: flex-start; }
#greeting .greeting_box .thumb { width:calc(900vw / 19.2); flex-shrink: 0; }
#greeting .greeting_box .thumb img { display:block; width:100%; aspect-ratio: 900 / 540; object-fit:cover; }
#greeting .greeting_box .text { width:calc(780vw / 19.2); }

#greeting .box1 .thumb img,
#greeting .box3 .thumb img { border-radius: 0 calc(80vw / 19.2) calc(80vw / 19.2) 0; }
#greeting .box2 .thumb img { border-radius: calc(80vw / 19.2) 0 0 calc(80vw / 19.2); }
#greeting .box1 .thumb img { object-position: center 42%; }
#greeting .box2 .thumb img { object-position: center 62%; }

#greeting .box1 .text,
#greeting .box3 .text { margin-right: calc(150vw / 19.2); }
#greeting .box2 .text { margin-left: calc(150vw / 19.2); }

#greeting .box2 { margin-block-start: 4.35em; }
#greeting .box3 { margin-block-start: 5em; }

#greeting .greeting_box .catch { inset: calc(405vw / 19.2) auto auto calc(110vw / 19.2); font-weight:900; letter-spacing: 0.1em; line-height: 1; }
#greeting .greeting_box .catch > span {
	display:flex; align-items:baseline; width:max-content; height:calc(80vw / 19.2); padding: calc(19vw / 19.2) calc(24vw / 19.2) 0 calc(24vw / 19.2);
	border-radius: 0 calc(20vw / 19.2) calc(20vw / 19.2) 0; margin-block-end: calc(12vw / 19.2);
}

#greeting .box_ttl { font-weight:800; letter-spacing: 0.05em; line-height: 1.61; }
#greeting .box3 .box_ttl { line-height: 1.77; }
#greeting .box_sub { font-weight:700; letter-spacing: 0.05em; line-height: 1.92; margin-block-start: 0.27em; }
#greeting .wave_line { display:block; width:calc(748vw / 19.2); aspect-ratio: 748 / 21; margin: 1.4em 0 1.5em 0; }
#greeting .box2 .wave_line,
#greeting .box3 .wave_line { margin-block-start: 1.7em; }
#greeting .summary { line-height: 2.5; }

#greeting .greeting_photo { margin-block-start: 4.35em; }
#greeting .greeting_photo img { width:calc(900vw / 19.2); aspect-ratio: 900 / 540; object-fit:cover; }
#greeting .greeting_photo .thumb4 { border-radius: 0 calc(80vw / 19.2) calc(80vw / 19.2) 0; }
#greeting .greeting_photo .thumb5 { border-radius: calc(80vw / 19.2) 0 0 calc(80vw / 19.2); object-position: center 34%; }


/* company */
#company {
	padding: 4.2em 0 4.5em 0;
	background:
		url(../img/about/company_bg_top.svg) no-repeat center top / 100% auto,
		url(../img/about/company_bg_bottom.svg) no-repeat center bottom / 100% auto,
		linear-gradient(to bottom, transparent 0, transparent calc(52vw / 19.2), #EAF6FA calc(52vw / 19.2), rgba(234,246,250,0.2) 100%);
}
#company .illust15 { inset: calc(56vw / 19.2) auto auto calc(102vw / 19.2); }
#company .illust16 { inset: calc(-20vw / 19.2) calc(123vw / 19.2) auto auto; }
#company .ttl { margin-block-end: 2.8em; }

#company .company_wrapper { width:calc(1800vw / 19.2); margin: 0 auto; padding-left: calc(90vw / 19.2); align-items: flex-start; }
#company .company_table .row { display:flex; align-items:center; margin: 0 0 1.5em 0; letter-spacing: 0.08em; }
#company .company_table dt { width:calc(120vw / 19.2); height:calc(45vw / 19.2); line-height:calc(45vw / 19.2); border-radius:calc(10vw / 19.2); text-align:center; }
#company .company_table dd { margin: 0 0 0 calc(50vw / 19.2); line-height: 1.5; }
#company .company_thumb { width:calc(880vw / 19.2); aspect-ratio: 880 / 460; object-fit:cover; border-radius:calc(80vw / 19.2); object-position: center 46%; }

#company .map_list { display:grid; grid-template-columns: repeat(2, 1fr); gap: calc(40vw / 19.2); width:calc(1800vw / 19.2); margin: 3.5em auto 0 auto; }
#company .map_box { padding: 1.5em 1em 1em 1em; border: solid 1px #1A2C74; border-radius:calc(10vw / 19.2); }
#company .map_box .map_ttl { display:flex; justify-content:center; align-items:center; font-weight:700; letter-spacing: 0.08em; line-height: 1; margin-block-end: calc(30vw / 19.2); }
#company .map_box .map_ttl i { width:auto; margin-right: calc(24vw / 19.2); }
#company .map_box iframe { display:block; width:100%; height:calc(460vw / 19.2); border:0; border-radius:calc(10vw / 19.2); }
#company .company_photo {
	width:calc(640vw / 19.2); aspect-ratio: 640 / 430; object-fit:cover; margin: calc(51vw / 19.2) 0 0 calc(127vw / 19.2);
	-webkit-mask: url(../img/about/company_photo_mask.svg) no-repeat center / 100% 100%; mask: url(../img/about/company_photo_mask.svg) no-repeat center / 100% 100%;
}




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

.recruit_page .page_header_thumb .thumb1 { object-position: 8% center; }
.recruit_page .page_header_thumb .thumb2 { object-position: 35% 52%; }

/* message */
#message { padding: 5em 0 3.9em 0; background: url(../img/recruit/message_bg.svg) no-repeat center top / 100% auto; }

#message .message_head { justify-content: flex-start; align-items: flex-start; padding-left: calc(150vw / 19.2); }
#message .message_head .ttl { flex-shrink: 0; width: calc(505vw / 19.2); margin: 0; }
#message .message_head .catch { font-weight:900; letter-spacing: 0.1em; line-height: 1.7; white-space: nowrap; }

#message .message_wrapper { margin-block-start: 3.5em; align-items: flex-start; }
#message .message_wrapper .text { width:calc(780vw / 19.2); }
#message .message_wrapper .box_ttl { position:relative; padding-left: calc(40vw / 19.2); font-weight:800; letter-spacing: 0.05em; line-height: 1.61; }
#message .message_wrapper .box_ttl::before { content:""; position:absolute; top:0; bottom:0; left:0; margin:auto 0; width:calc(20vw / 19.2); aspect-ratio: 1 / 1; border-radius: 50%; background-color:#1F8FC7; }
#message .message_wrapper .wave_line { display:block; width:calc(748vw / 19.2); aspect-ratio: 748 / 21; margin: 1.05em 0 0.75em 0; }
#message .summary { line-height: 2.5; }
#message .message_wrapper .thumb { width:calc(780vw / 19.2); aspect-ratio: 780 / 640; object-fit:cover; object-position: 57% 75%; border-radius:calc(80vw / 19.2); margin-top: calc(3vw / 19.2); }

#message .point_box { justify-content:flex-start; align-items:center; height:calc(190vw / 19.2); margin-block-start: 1.9em; padding-left: calc(44vw / 19.2); border-radius:calc(40vw / 19.2); }
#message .point_box .icon { flex-shrink: 0; width:calc(108vw / 19.2); line-height: 1; }
#message .point_box .icon .shine { inset: calc(-32vw / 19.2) auto auto calc(11vw / 19.2); width:calc(50vw / 19.2); aspect-ratio: 50 / 26; }
#message .point_box .point_text { width:calc(606vw / 19.2); font-weight:800; letter-spacing: 0.05em; line-height: 2.05; }

#message .message_text { margin-block-start: 1.7em; }
#message .message_text .summary { width:calc(780vw / 19.2); }


/* attempt */
#attempt { padding: 4em 0 3.1em 0; background: url(../img/recruit/attempt_bg.svg) no-repeat center top / 100% auto, #EAF6FA; }

#attempt .attempt_photo1 {
	inset: calc(-123vw / 19.2) auto auto calc(32vw / 19.2); width:calc(460vw / 19.2); aspect-ratio: 460 / 300; object-fit:cover; object-position: 65% 65%;
	-webkit-mask: url(../img/recruit/attempt_photo1_mask.svg) no-repeat center / 100% 100%; mask: url(../img/recruit/attempt_photo1_mask.svg) no-repeat center / 100% 100%;
}
#attempt .attempt_photo2_blob { inset: calc(70vw / 19.2) calc(11vw / 19.2) auto auto; width:calc(454vw / 19.2); aspect-ratio: 455 / 349; }
#attempt .attempt_photo2 {
	inset: calc(58vw / 19.2) calc(29vw / 19.2) auto auto; width:calc(430vw / 19.2); aspect-ratio: 430 / 380; object-fit:cover; object-position: 99% 85%;
	-webkit-mask: url(../img/recruit/attempt_photo2_mask.svg) no-repeat center / 100% 100%; mask: url(../img/recruit/attempt_photo2_mask.svg) no-repeat center / 100% 100%;
}

#attempt .ttl { margin-block-end: 2.8em; }

#attempt .box {
	position:relative; height:calc(360vw / 19.2); margin-block-end: 2.5em; border-radius:calc(40vw / 19.2);
	box-shadow: calc(2vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) rgba(26,44,116,0.05);
}
#attempt .box:last-child { margin-block-end: 0; }
#attempt .box::before { content:""; position:absolute; inset: calc(60vw / 19.2) auto auto calc(683vw / 19.2); width:1px; height:calc(160vw / 19.2); background-color:#94C6DF; }
#attempt .box > img { position:absolute; left: calc(80vw / 19.2); }
#attempt .box .illust17 { top: calc(31vw / 19.2); }
#attempt .box .illust18 { top: calc(34vw / 19.2); }
#attempt .box .illust19 { top: calc(26vw / 19.2); }

#attempt .box .num_box { position:absolute; inset: calc(53vw / 19.2) auto auto calc(510vw / 19.2); width:calc(113vw / 19.2); text-align:center; }
#attempt .box .num_box .label { display:block; font-weight:800; letter-spacing: 0.08em; line-height: 2.31; }
#attempt .box .num_box .num { display:block; font-weight:800; letter-spacing: 0.08em; line-height: 0.91; margin-top: calc(2vw / 19.2); }

#attempt .box .text { position:absolute; inset: calc(60vw / 19.2) auto auto calc(753vw / 19.2); width:calc(800vw / 19.2); }
#attempt .box .box_ttl { display:inline-block; height:calc(86vw / 19.2); line-height:calc(86vw / 19.2); padding: 0 calc(27vw / 19.2); margin: 0; border-radius:calc(10vw / 19.2); font-weight:800; letter-spacing: 0.1em; }
#attempt .box .summary { line-height: 2.5; margin-block-start: 1.1em; }

#attempt .loop-slider { margin-block-start: 3.5em; }


/* 無限ループスライダー（main.js） */
.recruit_page .loop-slider .slide { width:calc(430vw / 19.2); aspect-ratio: 43 / 30; margin-right: calc(40vw / 19.2); }
.recruit_page .loop-slider .slide img { width:100%; height:100%; object-fit:cover; border-radius:calc(40vw / 19.2); }


/* interview */
#interview { padding: 5.1em 0 2.75em 0; background: url(../img/recruit/interview_bg.svg) no-repeat center top / 100% auto, linear-gradient(to bottom, rgba(234,246,250,0) 0, #B7E4FB 100%); }
#interview .interview_wave { inset: calc(-50vw / 19.2) 0 auto 0; width:100%; aspect-ratio: 1920 / 120; z-index: 1; }
#interview .illust20 { inset: calc(84vw / 19.2) auto auto calc(114vw / 19.2); }
#interview .interview_polygon { inset: calc(140vw / 19.2) auto auto calc(1456vw / 19.2); width:calc(155vw / 19.2); aspect-ratio: 156 / 164; }
#interview .illust21 { inset: calc(70vw / 19.2) calc(93vw / 19.2) auto auto; }

#interview .ttl { margin-block-end: 1.65em; }
#interview > .summary { line-height: 2.38; }

#interview .interview_list { display:grid; grid-template-columns: repeat(3, 1fr); gap: calc(50vw / 19.2) calc(60vw / 19.2); margin-block-start: 2.35em; }
#interview .interview_list .box {
	display:block; height:calc(460vw / 19.2); overflow:hidden; border-radius:calc(40vw / 19.2);
	box-shadow: calc(2vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) rgba(26,44,116,0.05);
}
#interview .interview_list .box .thumb { display:block; overflow:hidden; }
#interview .interview_list .box .thumb img { display:block; width:100%; aspect-ratio: 500 / 300; object-fit:cover; transition: transform 0.4s ease; }
#interview .interview_list .box:nth-child(1) .thumb img { object-position: center 36%; }
#interview .interview_list .box:nth-child(2) .thumb img { object-position: center 42%; }
#interview .interview_list .box:nth-child(3) .thumb img { object-position: 78% 80%; }
#interview .interview_list .box:nth-child(4) .thumb img { object-position: center 45%; }
#interview .interview_list .box:nth-child(5) .thumb img { object-position: center 64%; }
#interview .interview_list .box:nth-child(6) .thumb img { object-position: center 58%; }

.recruit_page .badge {
	inset: 0 auto auto 0; display:block; width:calc(150vw / 19.2); aspect-ratio: 150 / 133; padding: calc(14vw / 19.2) 0 0 calc(28vw / 19.2);
	background: url(../img/recruit/staff_badge.svg) no-repeat left top / 100% auto; font-style: italic; letter-spacing: 0.08em; line-height: 1.5;
}
.recruit_page .badge .slug { display:block; font-weight:600; }
.recruit_page .badge .num { display:block; font-weight:700; margin-top: -0.25em; }

#interview .interview_list .box .box_text { display:block; padding: calc(6vw / 19.2) 0 0 calc(50vw / 19.2); }
#interview .interview_list .box .name { display:block; font-weight:700; letter-spacing: 0.08em; line-height: 1.7; }
#interview .interview_list .box .dept { display:flex; align-items:center; margin-block-start: 0.8em; font-weight:600; letter-spacing: 0.05em; }
#interview .interview_list .box .dept .label { display:inline-block; width:calc(94vw / 19.2); height:calc(45vw / 19.2); line-height:calc(45vw / 19.2); margin-right: calc(20vw / 19.2); border-radius:calc(10vw / 19.2); text-align:center; }
#interview .interview_list .box .arrow_box { position:absolute; inset: auto calc(40vw / 19.2) calc(37vw / 19.2) auto; transition: background-color 0.3s ease; }
#interview .interview_list .box:hover { opacity:1; }
#interview .interview_list .box:hover .thumb img { transform: scale(1.04); }
#interview .interview_list .box:hover .arrow_box { background-color:#1F8FC7; }

#interview .loop-slider { margin-block-start: 3.5em; }

.hidden { display:none; }


/* requirements */
#requirements { padding: 5.25em 0 5.35em 0; background: url(../img/recruit/requirements_bg.svg) no-repeat center calc(-31vw / 19.2) / 100% auto; }
#requirements .requirements_wave { inset: calc(-45vw / 19.2) 0 auto 0; width:100%; aspect-ratio: 1920 / 120; z-index: 1; }
#requirements .requirements_deco { inset: calc(66vw / 19.2) auto auto calc(150vw / 19.2); width:calc(440vw / 19.2); aspect-ratio: 440 / 110; }
#requirements .illust22 { inset: calc(88vw / 19.2) auto auto calc(152vw / 19.2); }
#requirements .requirements_balloon { inset: calc(80vw / 19.2) auto auto calc(435vw / 19.2); font-weight:700; letter-spacing: 0.05em; line-height: 1.58; }
#requirements .illust23 { inset: calc(112vw / 19.2) calc(137vw / 19.2) auto auto; }

#requirements .ttl { margin-block-end: 3.45em; }

#requirements .requirements_table .row { display:flex; align-items:flex-start; margin: 0; padding: 1em 0; border-bottom: solid 1px #94C6DF; letter-spacing: 0.05em; }
#requirements .requirements_table .row:first-child { padding-top: 0; }
#requirements .requirements_table .row:last-child { padding-bottom: 0; border-bottom: none; }
#requirements .requirements_table dt { flex-shrink: 0; width:calc(120vw / 19.2); height:calc(45vw / 19.2); line-height:calc(45vw / 19.2); border-radius:calc(10vw / 19.2); text-align:center; letter-spacing: 0.08em; }
#requirements .requirements_table dd { margin: calc(-5vw / 19.2) 0 calc(-3vw / 19.2) calc(50vw / 19.2); line-height: 2.5; }
#requirements .dot_list { list-style-type:none; margin: 0; padding: 0; }
#requirements .dot_list li { position:relative; padding-left: calc(24vw / 19.2); }
#requirements .dot_list li::before { content:""; position:absolute; inset: calc(19vw / 19.2) auto auto 0; width:calc(12vw / 19.2); aspect-ratio: 1 / 1; border-radius:50%; background-color:#1F8FC7; }
#requirements .note { margin-block-start: 0.45em; }
#requirements .requirements_table dd.nowrap_pc { white-space: nowrap; }


/* modal */
.modal {
	display:flex; justify-content:center; align-items:center; position:fixed; inset:0; z-index: 10000; background-color: rgba(34,34,34,0.8);
	opacity: 0; visibility: hidden; transition: opacity 0.4s ease, visibility 0.4s ease;
}
.modal.show { opacity: 1; visibility: visible; }
.modal .modal-content { position:relative; width:calc(1200vw / 19.2); border-radius:calc(40vw / 19.2); }
.modal .modal-close {
	position:absolute; inset: calc(-38vw / 19.2) calc(-57vw / 19.2) auto auto; z-index: 2; display:grid; place-items:center;
	width:calc(90vw / 19.2); aspect-ratio: 1 / 1; border-radius:50%; line-height: 1;
}
.modal #modal-body { max-height: 90vh; overflow-y: auto; padding: calc(40vw / 19.2) calc(60vw / 19.2) calc(42vw / 19.2) calc(60vw / 19.2); }

.staff_detail .staff_detail_thumb { overflow:hidden; border-radius:calc(40vw / 19.2); }
.staff_detail .staff_detail_thumb > img { display:block; width:100%; aspect-ratio: 1080 / 590; object-fit:cover; object-position: center 30%; }
.staff_detail .badge { width:calc(200vw / 19.2); padding: calc(21vw / 19.2) 0 0 calc(38vw / 19.2); }
.staff_detail .name { margin-block-start: calc(20vw / 19.2); font-weight:700; letter-spacing: 0.08em; line-height: 1.44; }

.staff_detail .tag_list { display:grid; grid-template-columns: calc(410vw / 19.2) auto; row-gap: calc(20vw / 19.2); margin: calc(27vw / 19.2) 0 0 0; }
.staff_detail .tag_list .tag { display:flex; align-items:center; }
.staff_detail .tag_list .tag.wide { grid-column: 1 / -1; }
.staff_detail .tag_list dt { flex-shrink: 0; min-width:calc(110vw / 19.2); padding: 0 0.5em; height:calc(50vw / 19.2); line-height:calc(50vw / 19.2); border-radius:calc(10vw / 19.2); text-align:center; font-weight:600; letter-spacing: 0.05em; }
.staff_detail .tag_list dd { margin: 0 0 0 calc(34vw / 19.2); font-weight:600; letter-spacing: 0.05em; line-height: 1.46; }

.staff_detail .qa { margin: 1.9em 0 0 0; }
.staff_detail .qa dt { position:relative; padding: 0 0 0.5em calc(28vw / 19.2); border-bottom: solid 1px #94C6DF; font-weight:800; letter-spacing: 0.05em; line-height: 1.46; }
.staff_detail .qa dt::before { content:""; position:absolute; inset: calc(13vw / 19.2) auto auto 0; width:calc(14vw / 19.2); aspect-ratio: 1 / 1; border-radius:50%; background-color:#1F8FC7; }
.staff_detail .qa dd { margin: 0.7em 0 1.8em 0; letter-spacing: 0.05em; line-height: 2.5; }
.staff_detail .qa dd:last-child { margin-bottom: 0; }




/**** gallery *******************/

.gallery_page .page_header_thumb .thumb1 { object-position: 35% bottom; }
.gallery_page .page_header_thumb .thumb2 { object-position: 28% 53%; }

#gallery {
	padding: 5.3em 0 4.5em 0;
	background: url(../img/gallery/gallery_bg_bottom.svg) no-repeat center bottom / 100% auto, url(../img/gallery/gallery_bg.svg) no-repeat center top / 100% auto;
}
#gallery .illust24 { inset: calc(72vw / 19.2) auto auto calc(85vw / 19.2); }
#gallery .illust25 { inset: calc(87vw / 19.2) calc(91vw / 19.2) auto auto; clip-path: polygon(51.5% 3.2%, 100% 33.5%, 98% 54%, 74.7% 100%, 0 100%, 0 0); }
#gallery .illust26 { inset: auto calc(277vw / 19.2) calc(164vw / 19.2) auto; }
#gallery .illust27 { inset: auto calc(567vw / 19.2) calc(68vw / 19.2) auto; }

#gallery .lead { letter-spacing: 0.08em; line-height: 2.38; }
#gallery .lead .blue { font-weight:700; }

#gallery .photo_list { display:grid; grid-template-columns: repeat(4, 1fr); gap: calc(60vw / 19.2); margin-block-start: 4.1em; }
#gallery .photo_list .thumb { display:block; overflow:hidden; border-radius:calc(40vw / 19.2); }
#gallery .photo_list .thumb img { display:block; width:100%; aspect-ratio: 3 / 2; object-fit:cover; transition: transform 0.4s ease; }
#gallery .photo_list .thumb:hover { opacity:1; }
#gallery .photo_list .thumb:hover img { transform: scale(1.05); }

/* 拡大モーダル */
#modal_gallery_box .modal-content { position:relative; width:auto; max-width: 90vw; }
#modal_gallery_box .modal-content img { display:block; width:auto; max-width: 90vw; max-height: 85vh; border-radius:calc(20vw / 19.2); }
#modal_gallery_box #modal-close {
	position:absolute; inset: calc(-45vw / 19.2) calc(-45vw / 19.2) auto auto; display:grid; place-items:center;
	width:calc(90vw / 19.2); aspect-ratio: 1 / 1; border-radius:50%; background-color:#1F8FC7; line-height: 1;
}




/**** contact *******************/

.contact_page .page_header_thumb .thumb1 { object-position: 44% 83%; }
.contact_page .page_header_thumb .thumb2 { object-position: left 16%; }

/* hero */
#contact_hero { padding: 5.25em 0 4.5em 0; }
#contact_hero .tel_ring { inset: calc(319vw / 19.2) calc(9vw / 19.2) auto auto; width:calc(220vw / 19.2); aspect-ratio: 1 / 1; z-index: 0; }
#contact_hero .inner { align-items: flex-start; }
#contact_hero .text { width:calc(780vw / 19.2); }
#contact_hero .catch { font-weight:900; letter-spacing: 0.1em; line-height: 1.67; white-space: nowrap; }
#contact_hero .wave_line { display:block; width:calc(748vw / 19.2); aspect-ratio: 748 / 21; margin: 1.45em 0 1.4em 0; }
#contact_hero .summary { letter-spacing: 0.08em; }

#contact_hero .tel_box { width:calc(780vw / 19.2); height:calc(370vw / 19.2); margin-top: calc(15vw / 19.2); padding-top: 2em; border-radius:calc(60vw / 19.2); }
#contact_hero .tel_box .ttl { margin: 0; }
#contact_hero .tel_box .ttl::after { display:none; }
#contact_hero .tel_box .ttl .ja { letter-spacing: 0.08em; }
#contact_hero .tel_box .tel_btn {
	display:flex; justify-content:center; align-items:center; width:calc(620vw / 19.2); height:calc(120vw / 19.2); margin: calc(36vw / 19.2) auto 0 auto;
	border-radius:calc(20vw / 19.2); letter-spacing: 0.08em; line-height: 1;
}
#contact_hero .tel_box .tel_btn i { margin-right: 0.8em; }


/* form */
#form_section { z-index: 4; padding: 3.75em 0 2em 0; background-color:#EAF6FA; }
#form_section .form_photo_blob { inset: calc(-71vw / 19.2) auto auto calc(38vw / 19.2); width:calc(436vw / 19.2); aspect-ratio: 436 / 331; }
#form_section .form_photo {
	inset: calc(-82vw / 19.2) auto auto calc(-11vw / 19.2); width:calc(430vw / 19.2); aspect-ratio: 430 / 320; object-fit:cover; object-position: 75% 37%;
	-webkit-mask: url(../img/contact/form_photo_mask.svg) no-repeat center / 100% 100%; mask: url(../img/contact/form_photo_mask.svg) no-repeat center / 100% 100%;
}
#form_section .illust28 { inset: calc(35vw / 19.2) calc(74vw / 19.2) auto auto; }
#form_section .form_deco { inset: calc(652vw / 19.2) 0 auto auto; width:calc(571vw / 19.2); aspect-ratio: 571 / 504; z-index: 0; }
#form_section .illust29 { inset: calc(1265vw / 19.2) auto auto calc(74vw / 19.2); }
#form_section .form_wave { inset: auto 0 calc(-78vw / 19.2) 0; width:100%; aspect-ratio: 1920 / 130; z-index: 0; }

#form_section .ttl { margin-block-end: 2.8em; }

#form .box { display:flex; align-items:center; margin: 0; padding: 2em 0; border-bottom: solid 1px #CACACA; }
#form .box:first-of-type { padding-top: 0; }
#form .box.textarea,
#form .box:last-of-type { align-items:flex-start; padding-bottom: 0; border-bottom: none; }
#form .box dt { position:relative; flex-shrink: 0; width:calc(370vw / 19.2); letter-spacing: 0.05em; line-height: 1.45; }
#form .box.textarea dt { padding-top: calc(24vw / 19.2); }
#form .box dt .required,
#form .box dt .any {
	position:absolute; top:0; bottom:0; left:calc(220vw / 19.2); margin:auto 0; display:grid; place-items:center; width:calc(60vw / 19.2); height:calc(32vw / 19.2);
	border-radius:calc(5vw / 19.2); font-weight:700; letter-spacing: 0.05em; line-height: 1;
}
#form .box.textarea dt .required { top: calc(24vw / 19.2); bottom:auto; margin: 0; }
#form .box dd { flex: 1; margin: 0; letter-spacing: 0.05em; }

#form input[type=text],
#form input[type=email],
#form input[type=tel],
#form textarea {
	display:block; width:100%; height:calc(80vw / 19.2); padding: 0 calc(35vw / 19.2); border:none; border-radius:calc(10vw / 19.2); background-color:#FFFFFF;
	font-weight:500; letter-spacing: 0.05em; color:#222222; outline: none;
}
#form textarea { height:calc(260vw / 19.2); padding: calc(24vw / 19.2) calc(35vw / 19.2); line-height: 1.8; resize: vertical; }
#form input:focus,
#form textarea:focus { box-shadow: 0 0 0 2px #1F8FC7; }
#form ::placeholder { color:#979797; }
#form .memo { display:block; margin: 1.2em 0 0.6em 0; letter-spacing: 0.03em; line-height: 1.45; }
#form .error { display:block; margin-block-end: 0.4em; color:#DC1D1D; font-weight:700; }

#form .form_btn { margin-block-start: calc(70vw / 19.2); box-shadow: none; cursor: pointer; font-family: inherit; }
#form .form_btn:hover { transform: none; background-color:#1F8FC7; color:#FFFFFF; }
#form .form_btn:hover .arrow_box { background-color:#FFFFFF; color:#1F8FC7; }
#form .form_btn[disabled] { opacity: 0.6; cursor: not-allowed; }

/* 確認画面 */
#form_section .lead { letter-spacing: 0.08em; margin: -1em 0 3.2em 0; }
#form.confirm .box { min-height: calc(160vw / 19.2); padding: 0; }
#form.confirm .box:first-of-type { min-height: calc(120vw / 19.2); padding-bottom: calc(40vw / 19.2); }
#form.confirm .box:last-of-type { align-items:center; }
#form.confirm .box dd { padding: 0.5em calc(35vw / 19.2); line-height: 1.8; word-break: break-all; }
#form.confirm .form_btn_wrapper { justify-content:center; gap: calc(60vw / 19.2); margin-block-start: calc(88vw / 19.2); }
#form.confirm .form_btn { margin: 0; }
#form.confirm .back_btn { padding: 0 0 0 calc(24vw / 19.2); box-shadow: none; }
#form.confirm .back_btn .arrow_box { right:auto; left: calc(35vw / 19.2); }
#form.confirm .back_btn:hover { transform: none; }

/* 送信完了・エラー */
.contact_sub #form_section { padding: 9em 0 5em 0; }
.contact_sub #form_section .form_photo_blob { top: 3.1em; }
.contact_sub #form_section .form_photo { top: 3em; }
.contact_sub #form_section .illust28 { top: calc(135vw / 19.2); }
.contact_sub #form_section .form_deco { top: calc(810vw / 19.2); }
.contact_sub #form_section .form_wave { bottom: calc(-76vw / 19.2); }

#form_section .message_box { width:calc(1200vw / 19.2); margin: 0 auto 3.5em auto; padding: 3em 4em; border-radius:calc(40vw / 19.2); text-align:center; box-shadow: calc(2vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) calc(3vw / 19.2) rgba(26,44,116,0.05); }
#form_section .message_box .message_icon { line-height: 1; margin-block-end: 0.3em; }
#form_section .message_box .message_ttl { font-weight:800; letter-spacing: 0.05em; line-height: 1.6; margin-block-end: 1em; }
#form_section .message_box .summary { line-height: 2.2; }
#form_section .message_box .note { margin-block-start: 1.5em; line-height: 1.9; }
#form_section .message_box .note a { text-decoration: underline; }
.contact_page #footer { padding-top: 6em; }
.contact_page .page_header { z-index: 5; }
