@charset "utf-8";

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,p,blockquote,th,td,main,figure{margin:0;padding:0}table{font-size:100%;font-family:inherit}fieldset,img{border:0}img,svg,video{vertical-align:middle}ol,ul{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%}q:before,q:after{content:''}abbr,acronym{border:0}select,input,textarea{font-size:100%}header,footer,nav,main,section,article,figure,aside,picture{display:block}.clearfix:after,.row:after{content:"";display:table;clear:both}._fl{float:left}._fr{float:right}@media screen and (min-width: 744px),print{._pc_fl{float:left}._pc_fr{float:right}}@media screen and (max-width: 743px){._sp_fl{float:left}._sp_fr{float:right}}._tal{text-align:left!important}._tac{text-align:center!important}._tar{text-align:right!important}@media screen and (min-width: 744px),print{._pc_tal{text-align:left!important}._pc_tac{text-align:center!important}._pc_tar{text-align:right!important}}@media screen and (max-width: 743px){._sp_tal{text-align:left!important}._sp_tac{text-align:center!important}._sp_tar{text-align:right!important}}

/* 変数
====================================================================== */
:root {
	--color-base: #00223F;
	--color-white: #fff;
	--color-blue: #0089FF;
	--color-blue2: #045DAC;
	--color-dark: #003F75;
	--bg-base: #E9E9E9;
	--base-width: 140rem;
	--base-width-a: 130rem;
	--pc-min-window: 1400;
	--sp-base-padding: 2rem;
	--font-family-jp: "Zen Kaku Gothic Antique", sans-serif;
	--font-family-en: "DM Sans", sans-serif;
	--font-family-inter: "Inter", var(--font-family-jp);
	--font-family-outfit: "Outfit", var(--font-family-jp);
	--font-weight-reg: 400;
	--font-weight-medium: 500;
	--font-weight-semi: 600;
	--font-weight-bold: 700;
	--font-weight: var(--font-weight-medium);
	--ls: 0.05em;
	--white-filter: brightness(0) invert(1);
	--transition-duration: .3s;
	--transition: var(--transition-duration) ease-in-out;
	--header-height: 7rem;
	--header-top: 1rem;
	--target-margin: 3rem;
	--footer-fix-btn-height: 0;
	@media screen and (max-width: 743px) {
		--header-height: 6rem;
		--header-top: 0rem;
		--target-margin: 2rem;
		--footer-fix-btn-height: 6rem;
	}
}

/* base
====================================================================== */
html {
	position: relative;
	font-size: 62.5%;
	scroll-behavior: smooth;
	@media screen and (min-width: 744px), print {
		font-size: min(calc(10px - ((var(--pc-min-window) * 1px) - 100vw) * (10 / var(--pc-min-window))), 10px);
	}
	@media screen and (max-width: 743px) {
		font-size: calc((10 / 390) * 100vw);
	}
}
html.no-scroll-behavior {
	scroll-behavior: auto;
}
body {
	background-color: var(--bg-base);
	font-size: 1.6rem;
	line-height: 1.8;
	color: var(--color-base);
	word-wrap: break-word;
	overflow-wrap: break-word;
	font-family: var(--font-family-jp);
	font-weight: var(--font-weight);
	font-optical-sizing: auto;
	/* font-feature-settings: "palt"; */
	-webkit-font-smoothing: antialiased;
	font-style: normal;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	@media screen and (max-width: 743px) {
		font-size: 1.3rem;
	}
}
* {
	letter-spacing: var(--ls);
}
*,
*::before,
*::after {
	box-sizing: border-box;
}
:where(address,caption,cite,code,dfn,em,th,var) {
	font-style: normal;
	font-weight: var(--font-weight);
}
:where(h1,h2,h3,h4,h5,h6) {
	font-weight: var(--font-weight-bold);
}
:where(img) {
	max-width: 100%;
	width: 100%;
	height: auto;
	image-rendering: -webkit-optimize-contrast;
	image-rendering: crisp-edges;
}
:where(iframe) {
	max-width: 100%;
	vertical-align: middle;
}
:where(sup) {
	vertical-align: super;
	font-size: 60%;
}
:where(table) {
	border-collapse: collapse;
	border-spacing: 0;
	line-height: inherit;
}
:where(a[href], a[data-modal]) {
	--a-color: var(--color-base);
	color: var(--a-color);
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-decoration-thickness: 1px;
	text-decoration-color: var(--a-color);
	text-underline-offset: .3em;
	outline: none;
	cursor: pointer;
}
:where(a[href]._a_reverse,._a_reverse a[href]) {
	text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
}
:where(a[href] ._hl.-hlr) {
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-decoration-thickness: 1px;
	text-decoration-color: var(--a-color);
	text-underline-offset: .3em;
}
:where(a[href^="tel:"]) {
	@media screen and (min-width: 744px), print {
		text-decoration: none;
	}
}
@media (hover) {
	:where(a,button,._basic_trs,._hl),
	:where(a,button,._basic_trs,._hl)::before,
	:where(a,button,._basic_trs,._hl)::after {
		transition: color var(--transition), background var(--transition), border var(--transition), opacity var(--transition), text-decoration-color .2s ease-in-out;
	}
	:where(a svg, button svg) {
		transition: fill var(--transition);
	}
	:where(a[href]:hover, a[data-modal]:hover) {
		text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
	}
	:where(a[href]._a_reverse, a[data-modal]._a_reverse, ._a_reverse a[href], ._a_reverse a[data-modal]):hover {
		text-decoration-color: var(--a-color);
	}
	:where(a[href]._a_reverse.-hvw),
	:where(._a_reverse.-hvw a[href]) {
		text-decoration-color: rgba(255,255,255,0);
	}
	:where(a[href]._a_reverse.-hvw):hover,
	:where(._a_reverse.-hvw a[href]):hover {
		text-decoration-color: #fff;
	}
	:where(a[href]._a_reverse.-hvbk),
	:where(._a_reverse.-hvbk a[href]) {
		text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
	}
	:where(a[href]._a_reverse.-hvbk):hover,
	:where(._a_reverse.-hvbk a[href]):hover {
		text-decoration-color: var(--a-color);
	}
	:where(a[href] ._a_reverse) {
		text-decoration-line: underline;
		text-decoration-style: solid;
		text-decoration-thickness: 1px;
		text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
		text-underline-offset: .3em;
	}
	:where(a[href] ._a_reverse) {
		transition: text-decoration-color .2s ease-in-out;
	}
	:where(a[href]:hover ._a_reverse) {
		text-decoration-color: var(--a-color);
	}
	:where(a[href] ._hl) {
		text-decoration-line: underline;
		text-decoration-style: solid;
		text-decoration-thickness: 1px;
		text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
		text-underline-offset: .3em;
	}
	:where(a[href]:hover ._hl) {
		text-decoration-color: var(--a-color);
	}
	:where(a[href] ._hl.-hlr) {
		text-decoration-color: var(--a-color);
	}
	:where(a[href]:hover ._hl.-hlr) {
		text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
	}
}

:where(label) {
	cursor: pointer;
}
:where(input, select, textarea, button) {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	border-radius: 0;
	vertical-align: middle;
	font-family: inherit;
	font-weight: inherit;
	font-feature-settings: inherit;
	outline: none;
	font-size: 100%;
}
::placeholder {
	color: #ACACAC;
}
:where(button) {
	cursor: pointer;
}

.hidden {
	display: none;
}
.slick-slider * {
	outline: none;
}

#top {
	position: absolute;
	top: 0;
	left: 0;
	display: block;
}

/* pc / sp
====================================================================== */
@media screen and (min-width: 744px), print {
	._sp {
		display: none !important;
	}
	._pc_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
	._pc_hidden {
		position: relative;
		overflow: hidden;
		display: block;
		height: 0;
	}
}
@media screen and (max-width: 743px) {
	._pc {
		display: none !important;
	}
	._sp_break {
		position: relative;
		display: block;
		height: 0;
		overflow: hidden;
	}
}

/* color
====================================================================== */
._c_base {
	color: var(--color-base) !important;
}
._c_theme {
	color: var(--color-theme) !important;
}

/* font
====================================================================== */
._ff_en {
	font-family: var(--font-family-en);
	font-weight: var(--font-weight-medium);
	font-style: italic;
}
._fwn {
	font-weight: var(--font-weight);
}
._fwr {
	font-weight: var(--font-weight-reg);
}
._fwm {
	font-weight: var(--font-weight-medium);
}
._fwb {
	font-weight: var(--font-weight-bold);
}
._fzs {
	font-size: 1.4rem;
	line-height: calc(26 / 14);
	@media screen and (max-width: 743px) {
		font-size: 1.2rem;
		line-height: calc(25 / 12);
	}
}
._wsnw {
	white-space: nowrap;
}
@media screen and (min-width: 744px), print {
	._pc_wsnw {
		white-space: nowrap;
	}
}
@media screen and (max-width: 743px) {
	._sp_wsnw {
		white-space: nowrap;
	}
}

/* display
====================================================================== */
._db {
	display: block;
}
._dib {
	display: inline-block;
}
._dfcc {
	display: flex !important;
	justify-content: center;
	align-items: center;
}
@media screen and (min-width: 744px), print {
	._pc_dib {
		display: inline-block;
	}
	._pc_dfcc {
		display: flex !important;
		justify-content: center;
		align-items: center;
	}
}
@media screen and (max-width: 743px) {
	._sp_dib {
		display: inline-block;
	}
	._sp_dfcc {
		display: flex !important;
		justify-content: center;
		align-items: center;
	}
}

/* object-fit
====================================================================== */
img._of {
	width: 100%;
	height: 100%;
	object-fit: cover;
	&.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	&.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	&.-top {
		object-position: 50% 0;
	}
	&.-bottom {
		object-position: 50% 100%;
	}
	&.-contain {
		object-fit: contain;
	}
	@media screen and (min-width: 744px), print {
		&.-pc_none {
			object-fit: none;
		}
		&.-pc_top {
			object-position: 50% 0;
		}
		&.-pc_bottom {
			object-position: 50% 100%;
		}
	}
	@media screen and (max-width: 743px) {
		&.-sp_top {
			object-position: 50% 0;
		}
		&.-sp_bottom {
			object-position: 50% 100%;
		}
	}
}
@media screen and (min-width: 744px), print {
	img._pc_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
		&.-abs {
			position: absolute;
			top: 0;
			left: 0;
		}
		&.-bg {
			pointer-events: none;
			user-select: none;
			z-index: -1;
		}
		&.-top {
			object-position: 50% 0;
		}
		&.-none {
			object-fit: none;
		}
	}
}
@media screen and (max-width: 743px) {
	img._sp_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
		&.-abs {
			position: absolute;
			top: 0;
			left: 0;
		}
		&.-bg {
			pointer-events: none;
			user-select: none;
			z-index: -1;
		}
		&.-top {
			object-position: 50% 0;
		}
	}
}

/* _fix_bg
====================================================================== */
._fix_bg {
	position: fixed;
	inset: 0;
	z-index: -1;
}
._clip {
	position: relative;
	clip-path: inset(0);
}

/* hover
====================================================================== */
@media (hover) {
	a[href] ._hv_op {
		transition: opacity var(--transition);
	}
	a:is([href], [data-modal])._hv_op:hover,
	a[href]:hover ._hv_op,
	button._hv_op:hover,
	._hv_op a[href]:hover {
		opacity: 0.7;
	}
	a[href]._hv_op.-a50:hover,
	a[href]:hover ._hv_op.-a50,
	._hv_op.-a50 a[href]:hover {
		opacity: 0.5;
	}
	a[href]._hv_op.-a20:hover,
	a[href]:hover ._hv_op.-a20,
	._hv_op.-a20 a[href]:hover {
		opacity: 0.8;
	}
	a[href]._hv_op.-a10:hover,
	a[href]:hover ._hv_op.-a10,
	._hv_op.-a10 a[href]:hover {
		opacity: 0.9;
	}
}

._hv_zoom {
	position: relative;
	display: block;
	overflow: hidden;
	& > * {
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		background-repeat: no-repeat;
		background-position: 50%;
		background-size: cover;
	}
	&.-static > * {
		position: relative;
	}
}
@media (hover) {
	a[href]._hv_zoom > *,
	a[href] ._hv_zoom > * {
		transition: transform 0.5s, opacity .3s;
	}
	a[href]:hover ._hv_zoom.-s > * {
		transform: scale(1.03);
	}
	a[href]:hover ._hv_zoom.-l > * {
		transform: scale(1.1);
	}
	a[href]:hover._hv_zoom > *,
	a[href]:hover ._hv_zoom > * {
		transform: scale(1.05);
	}
}


/* _target
====================================================================== */
._target {
	display: block;
	scroll-margin-top: calc(var(--header-height) + var(--header-top) + var(--target-margin));
}
:where([id]:not(style):not(script)) {
	scroll-margin-top: calc(var(--header-height) + var(--header-top) + var(--target-margin));
}
:where([id]._scroll-margin-top0, #top) {
	scroll-margin-top: 0 !important;
}
:where([id]._scroll-margin-top-fit) {
	scroll-margin-top: calc(var(--header-height) + var(--header-top));
}

/* w
====================================================================== */
._w {
	position: relative;
	@media screen and (min-width: 744px), print {
		width: var(--base-width);
		max-width: calc(100% - 6rem);
		margin-inline: auto;
		&.-a {
			width: var(--base-width-a);
		}
	}
}
._pw {
	@media screen and (min-width: 744px), print {
		padding-inline: calc((100% - var(--base-width)) / 2);
	}
}

/* spパディング
====================================================================== */
@media screen and (max-width: 743px) {
	._sp_pd {
		padding-inline: var(--sp-base-padding) !important;
	}
	._sp_mg {
		margin-inline: var(--sp-base-padding) !important;
	}
	._sp_full {
		margin-inline: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_l {
		margin-left: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_r {
		margin-right: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_pd-l {
		padding-inline: 3rem !important;
	}
}

/* header
====================================================================== */
#header {
	position: fixed;
	top: var(--header-top);
	left: 1rem;
	right: 1rem;
	height: var(--header-height);
	background-color: #fff;
	z-index: 900;
	.logo {
		position: relative;
		z-index: 3;
		a {
			display: flex;
			justify-content: center;
			align-items: flex-end;
			gap: 1.5rem;
			height: 3rem;
			color: #000;
			text-decoration: none;
			img {
				width: 17.8rem;
			}
			.en {
				font-size: 1.6rem;
				line-height: 1.2;
				font-weight: var(--font-weight-reg);
				letter-spacing: .1em;
			}
		}
	}
	@media screen and (min-width: 744px), print {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding-left: 4rem;
		box-shadow: 0 0 1rem 0 rgba(0, 0, 0, 0.1);
		&::before {
			content: "";
			position: absolute;
			inset: 0;
			background-color: #fff;
			z-index: 2;
		}
		nav {
			--ls: .05em;
			display: flex;
			font-size: 1.4rem;
			font-weight: var(--font-weight-bold);
			& > ul {
				display: flex;
			}
			a {
				position: relative;
				display: flex;
				justify-content: center;
				align-items: center;
				height: var(--header-height);
				text-decoration: none;
				z-index: 3;
			}
			.gnav {
				& > li {
					position: relative;
					& + li:not(._sp:first-child + li)::after {
						content: "";
						position: absolute;
						left: 0;
						top: calc(50% - .5em);
						height: 1em;
						border-left: 1px solid #ACACAC;
						pointer-events: none;
						z-index: 3;
					}
					a {
						padding-inline: 2.4rem;
						color: #000;
						@media (hover) {
							&:hover {
								opacity: 0.5;
							}
						}
					}
				}
				.dd {
					position: absolute;
					white-space: nowrap;
					top: 100%;
					left: -1rem;
					padding-block: 1.5rem 2rem;
					background-color: var(--color-base);
					min-width: 25rem;
					z-index: 1;
					a {
						display: block;
						height: auto;
						padding: 0.5rem 3.4rem;
						color: #fff;
						text-align: left;
					}
					opacity: 0;
					pointer-events: none;
					transform: translateY(-1rem);
					transition: opacity var(--transition), transform var(--transition);
					& > * {
						opacity: 0;
						transform: translateY(-.5rem);
						transition: opacity var(--transition), transform var(--transition);
					}
				}
				li.hover {
					.dd {
						opacity: 1;
						pointer-events: auto;
						transform: translateY(0);
						& > * {
							opacity: 1;
							transform: translateY(0);
							transition-delay: .1s;
						}
					}
				}
			}
			.hnav {
				position: relative;
				margin-left: 1.6rem;
				z-index: 3;
				a {
					width: 13rem;
					padding-right: 1rem;
					color: #fff;
					&::after {
						content: "";
						position: absolute;
						top: calc(50% - .8rem / 2);
						right: 1rem;
						width: .6rem;
						height: .8rem;
						background-color: #fff;
						clip-path: polygon(0 0, 100% 50%, 0 100%);
					}
					&.recruitment {
						background-color: var(--color-base);
					}
					&.entry {
						background-color: var(--color-blue);
					}
					@media (hover) {
						&:hover {
							opacity: 0.8;
						}
					}
				}
			}
		}
	}
	@media print {
		position: absolute;
	}
	@media screen and (max-width: 743px) {
		right: 0;
		left: 0;
		.logo {
			display: flex;
			a {
				align-items: center;
				gap: 1rem;
				height: var(--header-height);
				padding-inline: var(--sp-base-padding);
				color: #000;
				text-decoration: none;
				img {
					width: 14rem;
				}
				.en {
					padding-top: 1rem;
					font-size: 1.2rem;
				}
			}
		}
		.nav_btn {
			position: absolute;
			top: 0;
			bottom: 0;
			right: 0;
			aspect-ratio: 1;
			z-index: 900;
			a {
				position: relative;
				display: block;
				overflow: hidden;
				height: 100%;
				text-decoration: none;
				font-size: 1rem;
				text-indent: -999em;
			}
			&::before,
			a::before,
			a::after {
				content: "";
				position: absolute;
				width: 2.8rem;
				left: 0;
				right: 0;
				top: calc(50% - 1px);
				margin-inline: auto;
				border-top: 2px solid var(--color-dark);
				pointer-events: none;
				transition: transform var(--transition), opacity var(--transition);
				z-index: 2;
			}
			a::before {
				transform: translateY(-9px);
			}
			a::after {
				transform: translateY(9px);
				clip-path: inset(0 50% 0 0);
			}
		}
		.-headeropen & .nav_btn {
			a::before,
			a::after {
				transform: translate(0);
				opacity: 0;
			}
		}
		.gnav {
			position: fixed;
			top: var(--header-height);
			right: 0;
			left: 0;
			bottom: 0;
			padding: 5rem 3rem calc(5rem + var(--footer-fix-btn-height));
			background-color: #012849;
			transition: transform var(--transition);
			transform: translateX(110%);
			overflow-y: auto;
			overscroll-behavior-y: contain;
			z-index: 899;
			.-headeropen & {
				transform: translateX(0);
			}
			a {
				position: relative;
				display: block;
				padding-inline: 2rem;
				font-size: 1.8rem;
				line-height: 1.3;
				font-weight: var(--font-weight-bold);
				color: #fff;
				text-decoration: none;
				--ls: .05em;
			}
			& > li:not(.corporate) {
				position: relative;
				border-bottom: 1px solid var(--color-dark);
				&::before {
					content: "";
					position: absolute;
					left: 0;
					top: calc(6rem / 2 - 1px);
					width: 1rem;
					border-top: 2px solid var(--color-blue);
					pointer-events: none;
				}
				& > a {
					display: flex;
					align-items: center;
					height: 6rem;
				}
				&:has(.dd) > a {
					&::before,
					&::after {
						content: "";
						position: absolute;
						top: calc(50% - 1px);
						right: 0;
						width: 1.8rem;
						border-top: 2px solid var(--color-blue);
					}
					&::after {
						transform: rotate(90deg);
						transition: transform var(--transition);
					}
					&.-open {
						color: var(--color-blue);
						&::after {
							transform: rotate(0);
						}
					}
				}
				&:not(:has(.dd)) > a {
					&::after {
						content: "";
						position: absolute;
						top: calc(50% - .9rem);
						right: 0;
						width: 1.8rem;
						height: 1.8rem;
						background: url(../img/ico-arrow-nav.svg) no-repeat 50%;
						background-size: 100%;
					}
				}
			}
			.dd {
				overflow: hidden;
				height: 0;
				transition: height var(--transition);
				ul {
					padding-bottom: 2rem;
					a {
						padding-block: 0.8rem;
						font-size: 1.4rem;
					}
				}
			}
			.corporate {
				margin-top: 4rem;
				a {
					width: fit-content;
					padding: 0 3rem 0 0;
					font-size: 1.4rem;
					line-height: 1.6;
					&::before,
					&::after {
						content: "";
						position: absolute;
						top: calc(50% - .8rem);
						right: 0;
						width: 1.2rem;
						height: 1.2rem;
						background-color: #012849;
						border: 1px solid var(--color-blue);
					}
					&::before {
						transform: translate(-3px, 3px);
					}
				}
			}
		}
		.hnav {
			position: fixed;
			right: 0;
			left: 0;
			bottom: 0;
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			z-index: 900;
			a {
				position: relative;
				display: flex;
				justify-content: center;
				align-items: center;
				height: var(--footer-fix-btn-height);
				color: #fff;
				text-decoration: none;
				font-size: 1.4rem;
				font-weight: var(--font-weight-bold);
				&::after {
					content: "";
					position: absolute;
					top: calc(50% - .8rem / 2);
					right: 2rem;
					width: .6rem;
					height: .8rem;
					background-color: #fff;
					clip-path: polygon(0 0, 100% 50%, 0 100%);
				}
				&.recruitment {
					background-color: var(--color-base);
				}
				&.entry {
					font-size: 1.6rem;
					background-color: var(--color-blue);
					font-weight: 500;
				}
			}
		}
	}
}


/* footer
====================================================================== */
#footer {
	position: relative;
	padding-block: 12.4rem 3.2rem;
	background-color: #012849;
	color: #fff;
	z-index: 3;

	.catch {
		position: relative;
		display: flex;
		justify-content: space-between;
		color: #fff;
		margin-bottom: 14rem;
		.copy {
			position: absolute;
			right: 0;
			top: 1rem;
			font-size: 1.8rem;
			font-weight: var(--font-weight-bold);
			line-height: 1.2;
		}
		.item {
			.eng {
				display: block;
				font-size: 10rem;
				line-height: 1;
				font-weight: var(--font-weight-semi);
				color: var(--color-blue);
			}
			&.-challenge {
				margin-top: 8rem;
			}
		}
		.cross {
			position: absolute;
			width: 21.14rem;
			height: 21.14rem;
			top: 1rem;
			left: calc(50% - 11.2rem);
			z-index: -1;
			&::before,
			&::after {
				content: "";
				position: absolute;
				border-top: 2px solid #fff;
			}
			&::before {
				bottom: 0;
				left: 0;
				width: calc(100% * 1.4142);
				transform-origin: 0 100%;
				transform: rotate(-45deg);
			}
			&::after {
				top: 9.2rem;
				left: 6.7rem;
				width: 9.2rem;
				transform-origin: 0 0;
				transform: rotate(45deg);
			}
		}
	}

	.gnav {
		display: grid;
		grid-template-columns: repeat(5, 1fr);
		border-left: 1px solid #fff;
		& > li {
			border-right: 1px solid #fff;
			padding-inline: 3rem 2rem;
		}
		a {
			display: inline-block;
			--a-color: #fff;
			font-weight: var(--font-weight-bold);
		}
		.sub {
			margin-top: 1.6rem;
			font-size: 1.4rem;
			li {
				margin-top: 0.5em;
			}
			a {
				font-weight: var(--font-weight-medium);
			}
		}
		.multi {
			& > li + li {
				margin-top: 3rem;
			}
		}
	}
	.corporate {
		margin-top: 4rem;
		a {
			position: relative;
			display: inline-block;
			--a-color: #fff;
			font-weight: var(--font-weight-bold);
			padding: 0 3rem 0 0;
			font-size: 1.4rem;
			line-height: 1.6;
			&::before,
			&::after {
				content: "";
				position: absolute;
				top: calc(50% - .8rem);
				right: 0;
				width: 1.2rem;
				height: 1.2rem;
				background-color: #012849;
				border: 1px solid var(--color-blue);
			}
			&::before {
				transform: translate(-3px, 3px);
			}
		}
	}
	.logo {
		display: flex;
		justify-content: center;
		text-align: center;
		margin-top: 6rem;
		a {
			width: 7.9rem;
			@media (hover) {
				&:hover {
					opacity: .7;
				}
			}
		}
	}
	small {
		display: block;
		margin-top: 3.2rem;
		text-align: center;
		font-family: var(--font-family-inter);
		font-weight: var(--font-weight-reg);
		font-size: 1.4rem;
		line-height: 1.8;
	}
	@media screen and (min-width: 744px), print {
		.catch {
			width: 112.4rem;
			margin-inline: auto;
		}
	}
	@media screen and (max-width: 743px) {
		position: relative;
		padding-block: 8rem calc(2rem + var(--footer-fix-btn-height));

		.catch {
			flex-direction: column;
			margin-bottom: 6rem;
			padding-inline: var(--sp-base-padding);
			.copy {
				right: var(--sp-base-padding);
				top: -3rem;
				font-size: 1.2rem;
			}
			.item {
				.eng {
					font-size: calc(10rem * .4);
				}
				&.-challenge {
					margin-top: 6rem;
					text-align: right;
				}
			}
			.cross {
				top: -4rem;
				left: calc(50% - 10.8rem);
				transform: scale(.5);
			}
		}

		.gnav {
			display: none;
		}
		.logo {
			margin-top: 6rem;
		}
		small {
			font-size: 1.1rem;
		}
	}
}
/*
#pagetop {
	position: fixed;
	right: 6rem;
	bottom: 6rem;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 8rem;
	height: 8rem;
	padding-top: 1.2rem;
	background: var(--gradient-orange);
	border-radius: 100%;
	color: #fff;
	font-size: 1.2rem;
	line-height: 1.6;
	text-decoration: none;
	transition: opacity .6s;
	opacity: 0;
	pointer-events: none;
	z-index: 500;
	&::after {
		content: "";
		position: absolute;
		inset: 2rem 0;
		width: 1.8rem;
		height: 1.8rem;
		margin-inline: auto;
		background: url(../img/ico-pagetop.svg) no-repeat 50%;
		background-size: 100%;
	}
	&.-show {
		pointer-events: auto;
		opacity: 1;
	}
	@media (hover) {
		&::before {
			content: "";
			position: absolute;
			inset: 0;
			background: var(--gradient-orange);
			border-radius: 100%;
			mix-blend-mode: multiply;
			opacity: 0;
			z-index: -1;
		}
		&:hover::before {
			opacity: 1;
		}
	}
	@media print {
		display: none;
	}
	@media screen and (max-width: 743px) {
		right: 2rem;
		bottom: 2rem;
	}
}
*/

/* container
====================================================================== */
#container {
	position: relative;
	@media screen and (max-width: 743px) {
		padding-top: var(--header-height);
	}
}


/* ===================================================================================================================

	パーツ

============================================================================= */

/* bg-dark
====================================================================== */
.bg-dark {
	position: relative;
	background-color: var(--color-dark);
	z-index: 1;
	&.-single-page {
		&::before {
			content: "";
			position: absolute;
			top: 16rem;
			right: 0;
			left: 50%;
			height: 22rem;
			background: url(../img/logo-txt.svg) no-repeat 0 0;
			background-size: 130rem;
			opacity: 0.15;
			mix-blend-mode: overlay;
			z-index: -1;
			@media screen and (max-width: 743px) {
				top: 4rem;
				background-size: 60rem;
			}
		}
	}
}

/* title
====================================================================== */
.eng_title {
	position: relative;
	max-width: var(--base-width-a);
	margin-inline: auto;
	margin-bottom: 6rem;
	.ja {
		position: relative;
		margin-bottom: 1.4rem;
		font-size: 2.4rem;
		font-weight: var(--font-weight-bold);
		line-height: 1.8;
		&::before {
			content: "";
			position: absolute;
			top: calc(50% - 1px);
			right: calc(100% + 3rem);
			width: 100vw;
			height: 2px;
			background: linear-gradient(to left, #fff 3rem, var(--color-blue) 3rem);
		}
	}
	.eng {
		font-size: 12rem;
		line-height: 1;
		--ls: .07em;
	}
	@media screen and (min-width: 744px), print {
		.ja,
		.eng {
			margin-left: max(0px, calc((150rem - 100vw) / 2));
		}
		&.-mbm {
			margin-bottom: 4rem;
		}
	}
	@media screen and (max-width: 743px) {
		margin-bottom: 4rem;
		padding-left: 4rem;
		.ja {
			margin-bottom: 1rem;
			font-size: 1.6rem;
			&::before {
				right: calc(100% + 1.5rem);
				background: linear-gradient(to left, #fff 1rem, var(--color-blue) 1rem);
			}
		}
		.eng {
			font-size: 6rem;
			margin-left: -1rem;
			&.-sp-ls0 {
				--ls: .03em;
				white-space: nowrap;
			}
		}
		&.-mbm {
			margin-bottom: 3rem;
		}
	}
}
.bg-dark .eng_title {
	color: #fff;
}

.eng_title_h {
	display: flex;
	align-items: end;
	gap: 3rem;
	margin-bottom: 5rem;
	.eng {
		font-size: 5rem;
		line-height: 1;
		--ls: .07em;
	}
	.ja {
		font-size: 2rem;
		font-weight: var(--font-weight-semi);
		line-height: 1.8;
	}
	&.-s {
		margin-bottom: 2rem;
		.eng {
			font-size: 4.2rem;
		}
		.ja {
			font-size: 1.8rem;
		}
	}
	@media screen and (max-width: 743px) {
		gap: 1.5rem;
		margin-bottom: 2.5rem;
		.eng {
			font-size: 3.2rem;
		}
		.ja {
			font-size: 1.6rem;
		}
		&.-s {
			margin-bottom: 1.5rem;
			.eng {
				font-size: 3rem;
			}
			.ja {
				font-size: 1.4rem;
			}
		}
	}
}


/* section
====================================================================== */
.section {
	padding-block: 15rem 16rem;
	@media screen and (max-width: 743px) {
		padding-block: 8rem;
		&.-single-page {
			padding-top: 4rem;
		}
	}
}

/* contents_box
====================================================================== */
.contents_box {
	padding-block: 14rem;
	background-color: #fff;
	border-radius: 1rem;
	&.-navy {
		background: rgba(0, 54, 100, 0.9);
	}
	& > * {
		max-width: 120rem;
		margin-inline: auto;
	}
	&.-a > * {
		max-width: 110rem;
	}
	@media screen and (max-width: 743px) {
		margin-inline: var(--sp-base-padding);
		padding: 4rem var(--sp-base-padding);
	}
}

/* box_btn
====================================================================== */
.box_btn {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 100%;
	width: 46rem;
	height: 8rem;
	margin-inline: auto;
	padding-right: 2rem;
	background: #fff;
	border: 1px solid var(--color-dark);
	color: var(--color-dark);
	text-decoration: none;
	font-size: 2rem;
	line-height: 1.5;
	font-weight: var(--font-weight-bold);
	&:not(.-mynavi)::after {
		content: "";
		position: absolute;
		right: 2rem;
		top: 0;
		bottom: 0;
		margin-block: auto;
		width: 2rem;
		height: 2rem;
		background: url(../img/ico-arrow.svg) no-repeat 50%;
		background-size: 100%;
	}
	&.-mynavi {
		img {
			width: 26rem;
		}
		&::after {
			content: "";
			position: absolute;
			right: 2rem;
			top: 0;
			bottom: 0;
			margin-block: auto;
			width: 1.6rem;
			height: 1.6rem;
			background: url(../img/ico-blank.svg) no-repeat 50%;
			background-size: 100%;
		}
	}
	@media (hover) {
		&:hover {
			background-color: #F5F5F5;
		}
	}
	@media screen and (max-width: 743px) {
		height: 7rem;
		padding-right: 1rem;
		font-size: 1.5rem;
		&::after {
			right: 1.5rem !important;
		}
		&.-mynavi {
			img {
				width: 22rem;
			}
		}
	}
}

/* text_link
====================================================================== */
.text_link {
	display: block;
	width: fit-content;
	position: relative;
	padding: 1rem 3.6rem 1rem 0;
	text-decoration: none;
	color: var(--color-dark);
	font-size: 1.6rem;
	line-height: 1.8;
	font-weight: var(--font-weight-bold);
	border-bottom: 2px solid;
	&::after {
		content: "";
		position: absolute;
		right: 0;
		top: 0;
		bottom: 0;
		margin-block: auto;
		width: 2rem;
		height: 2rem;
		background: url(../img/ico-arrow.svg) no-repeat 50%;
		background-size: 100%;
	}
	@media screen and (max-width: 743px) {
		margin-inline: auto;
		font-size: 1.3rem;
	}
}

/* card_list
====================================================================== */
.card_list {
	display: flex;
	.card {
		position: relative;
		padding: 3.4rem 4rem;
		background: var(--color-blue2);
		border-radius: 1rem;
		color: #fff;
		font-size: 1.4rem;
		line-height: 2;
		dt {
			position: relative;
			margin-right: -4rem;
			font-size: 2rem;
			line-height: 1.8;
			font-weight: var(--font-weight-bold);
			&::before {
				content: "";
				position: absolute;
				top: calc(50% - 1px);
				left: -4rem;
				width: 2rem;
				border-top: 2px solid var(--color-blue);
			}
			.s {
				margin-left: 0.5em;
				font-size: 70%;
			}
		}
		.category {
			position: absolute;
			top: 0;
			right: 2rem;
			display: flex;
			justify-content: center;
			align-items: center;
			width: 7rem;
			height: 3.2rem;
			background-color: var(--color-blue);
			font-size: 1.2rem;
			color: #fff;
			font-weight: var(--font-weight-semi);
			padding-left: .4em;
			--ls: .4em;
			clip-path: polygon(1rem 0, 100% 0, calc(100% - 1rem) 100%, 0 100%);
			&.-dark {
				background-color: var(--color-dark);
			}
		}
		.summary {
			margin-top: 2.4rem;
		}
	}
	@media screen and (min-width: 744px), print {
		flex-wrap: wrap;
		gap: 3rem;
		.card {
			width: calc((100% - (3rem * 2)) / 3);
			flex-shrink: 0;
		}
		.contents {
			flex-grow: 1;
			display: flex;
			flex-direction: column;
			padding-block: 1rem 1.5rem;
		}
		.more {
			margin-top: auto;
		}
	}
	@media screen and (max-width: 743px) {
		flex-direction: column;
		gap: 2rem;
		.card {
			padding: 2rem 2rem;
			font-size: 1.2rem;
			dt {
				margin-right: -2rem;
				padding-left: 1rem;
				font-size: 1.6rem;
				&::before {
					left: -2rem;
					width: 1.5rem;
				}
			}
			.category {
				right: 1rem;
				width: 6rem;
				height: 2.4rem;
				font-size: 1.1rem;
			}
			.summary {
				margin-top: 1.2rem;
			}
		}
	}
}

/* acc
====================================================================== */
._acc {
	overflow: hidden;
	height: 0;
	transition: height var(--transition);
}

.acc_close {
	position: relative;
	display: block;
	width: 4.6rem;
	height: 4.6rem;
	margin-top: 1rem;
	margin-left: auto;
	background-color: var(--color-blue2);
	border-radius: 100%;
	transition: background var(--transition);
	cursor: pointer;
	&::before {
		content: "";
		position: absolute;
		top: calc(50% - 1px);
		right: 0;
		left: 0;
		width: 2.2rem;
		margin-inline: auto;
		border-top: 2px solid #fff;
		transition: border var(--transition), transform var(--transition);
	}
	@media (hover) {
		transition: opacity var(--transition);
		&:hover {
			opacity: 0.7;
		}
	}
	@media screen and (max-width: 743px) {
		width: 3rem;
		height: 3rem;
		margin-top: 2rem;
		&::before,
		&::after {
			width: 1.5rem;
		}
	}
}

/* basic_dl_table
====================================================================== */
/*
.basic_dl_table {
	& > dl {
		display: flex;
		background-color: var(--bg-base);
		&:not(:last-child) {
			margin-bottom: 2px;
		}
		& > * {
			padding: 1.2rem 2.4rem;
		}
		& > dt {
			width: 24rem;
			display: flex;
			align-items: center;
			flex-shrink: 0;
			background-color: var(--color-lightblue);
			border-right: 2px solid #fff;
		}
		@media screen and (max-width: 743px) {
			& > * {
				padding: 1rem 1.6rem;
			}
			& > dt {
				@media screen and (max-width: 743px) {
					width: 11rem;
				}
			}
		}
	}
	&.-sp-vertical {
		@media screen and (max-width: 743px) {
			& > dl {
				display: block;
				& > * {
					padding: 1rem 2rem;
				}
				& > dt {
					width: auto;
				}
			}
		}
	}
}
*/

/* bottom_entry
====================================================================== */
.bottom_entry {
	position: relative;
	background-color: #fff;
	z-index: 2;
	section {
		padding-block: 10rem 12rem;
		text-align: center;
		font-size: 1.8rem;
		h2 {
			padding-bottom: 3rem;
			font-size: 3.6rem;
			font-weight: var(--font-weight-bold);
			line-height: 1.6;
		}
		.btn_list {
			display: flex;
			flex-direction: column;
			gap: 2rem;
			padding-top: 2rem;
		}
	}
	.bg {
		position: absolute;
		inset: 0;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		gap: 1rem;
		color: #000;
		font-size: 10rem;
		line-height: 1.2;
		text-align: center;
		opacity: 0.04;
		pointer-events: none;
		user-select: none;
		z-index: -1;
		img {
			width: 60rem;
			filter: brightness(0);
		}
	}
	@media screen and (min-width: 744px), print {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		& > * + * {
			border-left: 1px solid var(--color-base);
		}
		section {
			display: flex;
			flex-direction: column;
			.btn {
				margin-top: auto;
			}
		}
	}
	@media screen and (max-width: 743px) {
		position: relative;
		& > * + * {
			border-top: 1px solid var(--color-base);
		}
		section {
			padding: 5rem var(--sp-base-padding) 6rem;
			font-size: 1.3rem;
			h2 {
				padding-bottom: 2rem;
				font-size: 2.4rem;
			}
			.btn {
				margin-top: 3rem;
			}
			.btn_list {
				padding-top: 1rem;
			}
		}
		.bg {
			gap: .2rem;
			font-size: 6rem;
			img {
				width: 100%;
			}
		}
	}
}


/* paragraph
====================================================================== */
.paragraph > * + * {
	margin-top: 1lh;
}
.paragraph.-m > * + * {
	margin-top: .7lh;
}


/* wp-pagenavi
====================================================================== */
.wp-pagenavi {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 1.6rem;
	margin-block: 8rem;
	& > * {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 4.8rem;
		height: 4.8rem;
		background-color: #fff;
		font-size: 1.4rem;
		text-decoration: none;
		border-radius: 100%;
		box-shadow: 0 .2rem .4rem rgba(0, 0, 0, 0.1);
	}
	.current {
		background-color: var(--color-blue);
		color: #fff;
	}
	@media (hover) {
		a:hover {
			background-color: var(--color-blue);
			color: #fff;
		}
	}
	@media screen and (max-width: 743px) {
		gap: 1rem;
		margin-block: 4rem;
		& > * {
			width: 4rem;
			height: 4rem;
		}
	}
}



/* ul / ol
====================================================================== */
.dot_li > li {
	position: relative;
	padding-left: 1em;
}
.dot_li > li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
	font-feature-settings: normal;
}

.circle_li > li {
	position: relative;
	padding-left: 1.1em;
}
.circle_li > li::before {
	content: "";
	position: absolute;
	top: calc(.5lh - .5rem);
	left: 0;
	width: 1rem;
	height: 1rem;
	background-color: var(--color-theme);
	border-radius: 100%;
}

.parentheses_li > li {
	position: relative;
	padding-left: 2.8em;
}
.parentheses_li > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.parentheses_li_h > li {
	position: relative;
	padding-left: 1.6em;
}
.parentheses_li_h > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}
.parentheses_li_hh > li {
	position: relative;
	padding-left: 2.2em;
}
.parentheses_li_hh > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.point_li > li {
	position: relative;
	padding-left: 1.5em;
}
.point_li > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.square_li > li {
	position: relative;
	padding-left: 0.8em;
}
.square_li > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .8em;
	width: 5px;
	height: 5px;
	background-color: #14143c;
}
@media screen and (max-width: 743px) {
	.square_li > li::before {
		top: 0.6em;
	}
}

.num_li {
	margin-left: 1.8em;
	list-style: decimal;
}
.alphabet_li {
	margin-left: 1.8em;
	list-style: lower-latin;
}

.mt_li > li + li {
	margin-top: .8lh;
}
.mt_li_s > li + li {
	margin-top: .5lh;
}
@media screen and (max-width: 743px) {
	.sp_mt_li > li + li {
		margin-top: 0.8em;
	}
}

.inline_li > li {
	display: inline-block;
	margin-right: 0.3em;
}

@media screen and (min-width: 744px), print {
	.column_li {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.column_li > li {
		width: 48%;
	}
	.column_li > li:nth-child(n + 3) {
		margin-top: 0.25em;
	}
}
@media screen and (max-width: 743px) {
	.column_li > li + li {
		margin-top: 0.25em;
	}
}

.dl_table {
	display: table;
}
.dl_table > * {
	display: table-row;
}
.dl_table > * > * {
	display: table-cell;
}
.dl_table dt {
	white-space: nowrap;
}
.dl_table.-dt_pr dt {
	padding-right: 1em;
}


/* ============================================================================

	インタビュー

============================================================================= */
.interview_article {
	position: relative;
	.interview_title {
		position: relative;
		padding-block: 36rem 10rem;
		padding-inline: max(calc((100% - var(--base-width)) / 2), 5rem);
		color: #fff;
		.eng {
			font-size: 12rem;
			font-weight: var(--font-weight-semi);
			line-height: 1;
			--ls: .07em;
		}
		.meta {
			display: flex;
			gap: 2rem;
			margin-top: 2rem;
			font-size: 1.8rem;
			font-weight: var(--font-weight-semi);
			.tag {
				display: flex;
				gap: 2rem;
			}
		}
		h1 {
			--ls: .05em;
			margin-top: 4rem;
			display: flex;
			flex-direction: column;
			gap: 1rem;
			span {
				width: fit-content;
				padding-inline: 2rem 1rem;
				background-color: #fff;
				color: var(--color-base);
				font-size: 4rem;
				font-weight: var(--font-weight-bold);
				line-height: 1.5;
			}
		}
		.bg {
			position: absolute;
			inset: 0 0 auto;
			height: 120rem;
			pointer-events: none;
			user-select: none;
			z-index: -1;
			&::before {
				content: "";
				position: absolute;
				inset: 0;
				opacity: 0.5;
				background: #D9D9D9;
				mix-blend-mode: multiply;
			}
			&::after {
				content: "";
				position: absolute;
				inset: auto 0 0;
				height: 20rem;
				background: linear-gradient(180deg, rgba(233, 233, 233, 0.00) 0%, #E9E9E9 100%);
			}
		}
		@media screen and (min-width: 744px), print {
		}
		@media screen and (max-width: 743px) {
			padding-block: 18rem 5rem;
			padding-inline: var(--sp-base-padding);
			.eng {
				font-size: 6rem;
			}
			.meta {
				gap: 1.5rem;
				font-size: 1.3rem;
				.tag {
					gap: 1.5rem;
				}
			}
			h1 {
				--ls: .02em;
				margin-top: 3rem;
				gap: .6rem;
				white-space: nowrap;
				span {
					padding-block: .2em;
					padding-inline: 1rem .5rem;
					font-size: 1.8rem;
				}
			}
			.bg {
				height: 60rem;
				&::after {
					height: 10rem;
				}
			}
		}
	}
	.interview_contents {
		position: relative;
		margin-bottom: 16rem;
		z-index: 3;

		.interview_section {
			& + .interview_section {
				margin-top: 8rem;
				padding-top: 8rem;
				border-top: 1px solid var(--color-dark);
			}
			h2 {
				font-size: 4.2rem;
				line-height: 1.2;
			}
			.overview {
				line-height: 2.4;
			}
			.members {
				font-size: 1.4rem;
				line-height: 1.8;
				dt {
					display: flex;
					align-items: center;
					gap: 3rem;
					margin-bottom: 3rem;
					.ph {
						width: 14rem;
						img {
							border-radius: 3rem;
						}
					}
					.name {
						.name_en {
							display: block;
							margin-top: 1rem;
							font-size: 2.4rem;
							line-height: 1.2;
						}
					}
				}
			}
			.capter {
				font-size: 1.8rem;
				font-weight: var(--font-weight-bold);
				line-height: 1.8;
				li:not(:last-child) {
					margin-bottom: 0.6em;
				}
				a {
					width: fit-content;
					display: flex;
					text-decoration: none;
					gap: 0.4em;
					.num {
						flex-shrink: 0;
					}
				}
			}
		}
		@media screen and (min-width: 744px), print {
			.interview_section {
				display: grid;
				grid-template-columns: 30rem 1fr;
				.members {
					display: grid;
					grid-template-columns: repeat(2, 1fr);
					gap: 4rem 6rem;
				}
			}
		}
		@media screen and (max-width: 743px) {
			margin-bottom: 8rem;
			.interview_section {
				& + .interview_section {
					margin-top: 4rem;
					padding-top: 4rem;
				}
				h2 {
					margin-bottom: 2rem;
					font-size: 3rem;
				}
				.members {
					display: flex;
					flex-direction: column;
					gap: 3rem;
					font-size: 1.2rem;
					dt {
						gap: 2rem;
						margin-bottom: 1.5rem;
						.ph {
							width: 10rem;
							img {
								border-radius: 2rem;
							}
						}
						.name {
							.name_en {
								margin-top: 0.6rem;
								font-size: 2rem;
							}
						}
					}
				}
				.capter {
					font-size: 1.3rem;
				}
			}
		}
	}
	.interview_body {
		margin-top: 16rem;
		line-height: 2.4;
		.capter {
			position: relative;
			&:not(:last-child) {
				margin-bottom: 16rem;
			}
			h2 {
				margin-bottom: 8rem;
				font-size: 3.6rem;
				font-weight: var(--font-weight-bold);
				line-height: 1.6;
			}
			.talk {
				&:not(:last-child) {
					margin-bottom: 6rem;
				}
				.speaker {
					font-size: 2rem;
					text-align: right;
					line-height: 2;
				}
			}
			.ph {
				&:not(:first-child) {
					margin-top: 9rem;
				}
				&:not(:last-child) {
					margin-bottom: 6rem;
				}
			}
			.talk_in_section {
				margin-block: 6rem 2rem;
				color: var(--color-blue2);
				padding-bottom: 6rem;
				border-bottom: .4rem solid;
				font-size: 2rem;
				line-height: 2.4;
				font-weight: var(--font-weight-bold);
				h3 {
					margin-bottom: 4rem;
					padding-bottom: 2rem;
					font-size: 3rem;
					line-height: 1;
					border-bottom: .4rem solid;
				}
				.lead {
					margin-bottom: 4rem;
					font-size: 3.6rem;
					line-height: 1.8;
				}
				.value_list {
					li {
						position: relative;
						padding-left: 1.4em;
						&::before {
							content: "◯";
							position: absolute;
							top: 0;
							left: 0;
						}
					}
				}
			}
		}
		.wide_ph {
			&:not(:last-child) {
				margin-bottom: 16rem;
			}
		}
		@media screen and (min-width: 744px), print {
			.capter {
				margin-left: 14rem;
				padding-left: calc(8rem - 1px);
				border-left: 1px solid var(--color-dark);
				.capter_num {
					position: absolute;
					top: 0;
					left: -14rem;
					padding-bottom: 1.6rem;
					border-bottom: 2px solid var(--color-blue);
					text-align: center;
					font-size: 1.6rem;
					line-height: 1.2;
					.num {
						display: block;
						margin-top: 1.6rem;
						font-size: 3.8rem;
						line-height: 1;
					}
				}
				h2 {
					margin-right: -1rem;
				}
				.talk {
					display: grid;
					gap: 4rem;
					grid-template-columns: 12rem 1fr;
				}
				.ph {
					margin-left: 16rem;
				}
				.talk_in_section {
					.value_list {
						display: grid;
						grid-template-columns: repeat(2, max-content);
						grid-template-rows: repeat(5, auto);
						grid-auto-flow: column;
						column-gap: 8rem;
					}
				}
			}
		}
		@media screen and (max-width: 743px) {
			margin-top: 8rem;
			.capter {
				&:not(:last-child) {
					margin-bottom: 8rem;
				}
				.capter_num {
					display: flex;
					align-items: center;
					gap: 1rem;
					margin-bottom: 2rem;
					line-height: 1.4;
					.num {
						font-size: 2.2rem;
						line-height: 1;
						padding-bottom: 0.3rem;
						border-bottom: 2px solid var(--color-blue);
					}
				}
				h2 {
					margin-bottom: 4rem;
					font-size: 2.2rem;
					line-height: 1.6;
				}
				.talk {
					&:not(:last-child) {
						margin-bottom: 3rem;
					}
					.speaker {
						font-size: 1.6rem;
						text-align: left;
					}
				}
				.ph {
					&:not(:first-child) {
						margin-top: 4rem;
					}
					&:not(:last-child) {
						margin-bottom: 3rem;
					}
				}
				.talk_in_section {
					margin-block: 4rem 3rem;
					margin-left: -3rem;
					padding-bottom: 3rem;
					border-bottom-width: 0.3rem;
					font-size: 1.3rem;
					h3 {
						margin-bottom: 2rem;
						padding-bottom: 1rem;
						font-size: 2rem;
						border-bottom-width: 0.3rem;
					}
					.lead {
						margin-bottom: 3rem;
						font-size: 1.8rem;
						line-height: 1.8;
					}
				}
			}
			.wide_ph {
				margin-top: -4rem;
				margin-inline: calc(var(--sp-base-padding) * -1);
				&:not(:last-child) {
					margin-bottom: 8rem;
				}
			}
		}
	}
}


/* ============================================================================

	フォーム

============================================================================= */
.form_flow {
	max-width: 102rem;
	margin-top: 12rem;
	margin-inline: auto;
	color: #fff;
	.flow {
		display: flex;
		background-color: #004f92;
		clip-path: polygon(0 0, calc(100% - 2rem) 0, 100% 50%, calc(100% - 2rem) 100%, 0 100%);
		li {
			position: relative;
			display: flex;
			align-items: center;
			justify-content: center;
			flex-direction: column;
			width: calc(20% + 2rem);
			height: 9rem;
			font-weight: var(--font-weight-bold);
			line-height: 1.6;
			z-index: 2;
			.num {
				font-size: 1.8rem;
			}
			&:first-child {
				background-color: #006dc8;
			}
			&:not(:first-child) {
				margin-left: -2rem;
				&::before,
				&::after {
					content: "";
					position: absolute;
					inset: 0;
					background-color: #004f92;
					border-left: 1px solid rgba(255, 255, 255, 0.5);
					height: 50%;
					z-index: -1;
				}
				&::before {
					bottom: auto;
					transform-origin: 0 0;
					transform: skewX(24deg);
				}
				&::after {
					top: auto;
					transform-origin: 0 100%;
					transform: skewX(-24deg);
				}
			}
		}
	}
	@media screen and (min-width: 744px), print {
	}
	@media screen and (max-width: 743px) {
		overflow: hidden;
		margin-top: 6rem;
		margin-inline: 2rem 1rem;
		color: #fff;
		.flow {
			li {
				height: 7rem;
				font-size: 1.2rem;
				.num {
					font-size: 1.6rem;
				}
				&:first-child {
					padding-right: 1rem;
				}
			}
		}
	}
}
.form_contents {
	max-width: 120rem;
	margin-top: 10rem;
	& > * {
		max-width: 90rem;
	}
	@media screen and (max-width: 743px) {
		margin-top: 4rem;
	}

	input[type=text],
	input[type=email],
	input[type=tel],
	input[type=number],
	input[type=date],
	input[type=url],
	textarea,
	select {
		width: 100%;
		max-width: 100%;
		height: 5rem;
		padding: 0 1.5em;
		background-color: #fff;
		border: 1px solid var(--color-base);
		border-radius: .2rem;
		font-size: 1.6rem;
		color: var(--color-base);
		transition: box-shadow .2s, border .2s;
		&:focus {
			border-color: #66afe9;
			outline: 0;
			box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102,175,233,0.8);
		}
		&:disabled {
			background-color: #ddd;
			opacity: .5;
		}
	}
	select {
		background: #fff url(../img/form-select-arrow.svg) no-repeat 100% 50%;
		background-size: 4rem;
	}
	textarea {
		height: 18rem;
		padding: 1em 1.5em;
	}
	input[type=checkbox],
	input[type=radio] {
		position: absolute;
		width: 2rem;
		height: 2rem;
	}
	label {
		position: relative;
		display: flex;
		align-items: center;
		height: 5rem;
		gap: 1rem;
		.check {
			position: relative;
			width: 2rem;
			height: 2rem;
			border: 1px solid var(--color-base);
		}
		input[type=radio] {
			& + .check {
				border-radius: 100%;
				&::after {
					content: "";
					position: absolute;
					inset: .4rem;
					background-color: var(--color-blue);
					border-radius: 100%;
					opacity: 0;
					transition: opacity .1s;
				}
			}
			&:checked {
				& + .check {
					&::after {
						opacity: 1;
					}
				}
			}
		}
		input[type=checkbox] {
			& + .check {
				border-radius: .2rem;
				&::after {
					content: "";
					position: absolute;
					left: .6rem;
					top: calc(50% - .8rem);
					width: .7rem;
					height: 1.4rem;
					border-right: .3rem solid var(--color-base);
					border-bottom: .3rem solid var(--color-base);
					opacity: 0;
					transition: opacity .1s;
					transform: rotate(45deg);
				}
			}
			&:checked {
				& + .check {
					&::after {
						opacity: 1;
					}
				}
			}
		}
	}
	@media screen and (max-width: 743px) {
		input[type=text],
		input[type=email],
		input[type=tel],
		input[type=number],
		input[type=date],
		input[type=url],
		textarea,
		select {
			padding-inline: 1em;
			font-size: 16px;
		}
		label {
			height: 3.6rem;
		}
	}


	.form_item {
		position: relative;
		margin-bottom: 4rem;
		dt {
			position: relative;
			font-weight: var(--font-weight-bold);
			line-height: 1.6;
			--ls: .05em;
			.hissu {
				position: absolute;
				top: calc(50% - 2.6rem / 2);
				left: 0;
				display: flex;
				justify-content: center;
				align-items: center;
				width: 4.2rem;
				height: 2.6rem;
				background-color: var(--color-blue);
				font-weight: var(--font-weight-medium);
				border-radius: 0.2em;
				color: #fff;
				font-size: 1.2rem;
			}
		}
		.hint {
			font-size: 1.4rem;
			color: #acacac;
		}
		.zip_search {
			display: flex;
			justify-content: center;
			align-items: center;
			width: 12.4rem;
			height: 5rem;
			margin-left: -1rem;
			background-color: var(--color-blue2);
			border-radius: 0.4rem;
			font-size: 1.5rem;
			--ls: .05em;
			color: #fff;
			cursor: pointer;
			@media (hover) {
				transition: opacity var(--transition);
				&:hover {
					opacity: 0.7;
				}
			}
		}
	}
	.address_item {
		dl {
			position: relative;
		}
	}

	.form-privacy {
		height: 28.5rem;
		overflow-y: auto;
		overscroll-behavior-y: contain;
		margin-top: 8rem;
		padding: 5rem;
		background-color: #F5F5F5;
		border-radius: 1rem;
		font-size: 1.4rem;
		line-height: 1.8;
		color: #000;
		/* & > ol > li:not(:first-child) { */
		& > ol > li {
			margin-top: 1lh;
		}
		ol ol,
		ol ol li:not(:first-child) {
			margin-top: 0.5lh;
		}
	}
	.privacy_check {
		width: fit-content;
		margin-top: 4rem;
		margin-inline: auto;
		li {
			display: flex;
			align-items: center;
		}
	}

	.submit {
		margin-top: 6rem;
		text-align: center;
		:disabled {
			opacity: 0.3;
		}
	}
	@media screen and (min-width: 744px), print {
		.form_item {
			display: grid;
			grid-template-columns: 22rem 1fr;
			dt {
				display: flex;
				align-items: center;
				height: 5rem;
				padding-left: 6rem;
			}
			dd {
				display: flex;
				gap: 2rem;
				.wpcf7-form-control-wrap {
					display: flex;
					justify-content: center;
					flex-direction: column;
					width: 44rem;
					min-height: 5rem;
					&:has(input[type=file]) {
						width: fit-content;
						max-width: 44rem;
					}
				}
				&.dd-wide {
					.wpcf7-form-control-wrap {
						width: 100%;
					}
				}
				.hint {
					display: flex;
					align-items: center;
					height: 5rem;
				}
				&:has(textarea) {
					flex-wrap: wrap;
					gap: 1rem;
					.wpcf7-form-control-wrap {
						width: 100%;
					}
					.hint {
						display: block;
						width: 100%;
						height: auto;
						text-align: right;
					}
				}
			}
		}
		.address_item {
			flex-direction: column;
			dl {
				display: flex;
				dt {
					width: 8.4rem;
					flex-shrink: 0;
					padding-left: 0;
				}
				dd {
					flex-grow: 1;
				}
				.wpcf7-form-control-wrap {
					width: 22rem;
				}
				&.-address {
					.wpcf7-form-control-wrap {
						width: 100%;
					}
				}
			}
		}
	}
	@media screen and (max-width: 743px) {
		.form_item {
			margin-bottom: 3rem;
			dt {
				margin-bottom: 1rem;
				&:has(.hissu) {
					padding-left: 5rem;
				}
			}
			dd {
				.hint {
					position: absolute;
					right: 0;
					top: .1em;
					font-size: 1.2rem;
				}
			}
		}
		.address_item {
			dl {
				margin-bottom: 1rem;
				dt {
					margin-bottom: 0.5rem;
				}
				&.-zip {
					dd {
						display: flex;
						gap: 1rem;
						.wpcf7-form-control-wrap {
							width: calc(100% - 10rem);
						}
						.zip_search {
							width: 9rem;
							margin-left: 0;
							font-size: 1.3rem;
						}
					}
				}
			}
		}
		.form-privacy {
			margin-top: 4rem;
			padding: 2rem;
			font-size: 1.2rem;
		}
		.privacy_check {
			margin-top: 4rem;
		}
		.submit {
			margin-top: 3rem;
		}
	}

	.wpcf7-list-item {
		margin: 0;
	}
	.wpcf7-radio,
	.wpcf7-checkbox {
		display: flex;
		flex-wrap: wrap;
		gap: 1rem 4rem;
	}
	.radio-column .wpcf7-radio,
	.radio-column .wpcf7-checkbox {
		flex-direction: column;
		gap: 0;
	}
	.wpcf7-not-valid-tip {
		font-weight: var(--font-weight-bold);
		font-size: 1.4rem;
		margin-top: 1rem;
	}
	.wpcf7 form .wpcf7-response-output {
		margin-inline: 0;
	}
	@media screen and (max-width: 743px) {
		.wpcf7-form-control {
			gap: 1rem 2rem;
			& > * {
				display: block;
			}
		}
	}

	&.-fin {
		text-align: center;
		line-height: 2.2;
		.lead {
			margin-bottom: 4rem;
			font-size: 2.6rem;
			line-height: 1.6;
			font-weight: var(--font-weight-bold);
			color: var(--color-base);
		}
		.back_btn {
			margin-top: 6rem;
		}
		@media screen and (max-width: 743px) {
			.lead {
				margin-bottom: 3rem;
				font-size: 2rem;
			}
			.back_btn {
				margin-top: 3rem;
			}
		}
	}
}
.cf-turnstile {
	display: flex;
	justify-content: center;
	margin-top: 4rem;
}


/* ============================================================================

	404

============================================================================= */
.section404 {
	@media screen and (max-width: 743px) {
		padding-top: 4rem;
	}
}
.contents404 {
	padding-block: 10rem;
	text-align: center;
	.lead {
		margin-bottom: 4rem;
		font-size: 2.6rem;
		line-height: 1.6;
		font-weight: var(--font-weight-bold);
		color: var(--color-base);
	}
	.back_btn {
		margin-top: 6rem;
	}
	@media screen and (max-width: 743px) {
		padding-block: 4rem;
		.lead {
			margin-bottom: 3rem;
			font-size: 2rem;
		}
		.back_btn {
			margin-top: 3rem;
		}
	}
}

