@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: #333333;

	--color-white: #fff;

	--color-blue: #2B3A4E;

	--color-blue2: #E07B00;

	--color-dark: #F7931E;

	--bg-base: #FFF8ED;

	--base-width: 140rem;

	--base-width-a: 130rem;

	--pc-min-window: 1400;

	--sp-base-padding: 2rem;

	--font-family-jp: "Noto Sans JP", sans-serif;

	--font-family-en: "Montserrat", sans-serif;

	--font-family-inter: "Montserrat", var(--font-family-jp);

	--font-family-outfit: "Montserrat", 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: #2B3A4E;

			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: #2B3A4E;

						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: #2B3A4E;

	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: #2B3A4E;

				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/chubby/logo-txt.png) 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(43, 58, 78, 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: #D97400;

		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: #2B3A4E;

			}

			&:not(:first-child) {

				margin-left: -2rem;

				&::before,

				&::after {

					content: "";

					position: absolute;

					inset: 0;

					background-color: #D97400;

					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: #F7931E;

			outline: 0;

			box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(247,147,30,0.5);

		}

		&: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;

		}

		p + p{

			margin-top: 1lh;

		}

	}

	.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;

		}

	}

}



