@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: #2c323f;
	--color-white: #fff;
	--color-theme: #319a4b;
	--color-grad1: #288c5a;
	--color-grad2: #0f4c7c;
	--bg-base: #e5e5e5;
	--base-width: 140rem;
	--base-width-s: 120rem;
	--pc-min-window: 1460;
	--sp-base-padding: 3rem;
	--font-family-jp: 'Noto Sans JP', sans-serif;
	--font-family-title: 'Zen Kaku Gothic Antique', var(--font-family-jp);
	--font-family-en: '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: .05em;
	--transition-duration: .3s;
	--transition: var(--transition-duration) ease-in-out;
	--header-height: 8rem;
	@media screen and (max-width: 743px) {
		--header-height: 6rem;
	}
}

/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
html {
	font-size: 62.5%;
	scroll-behavior: smooth;
	@media screen and (min-width: 744px), print {
		/* font-size: min(calc(10px - (1440px - 100vw) * (10 / 1440)), 10px); */
		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 / 375) * 100vw);
	}
}
html.no-scroll-behavior {
	scroll-behavior: auto;
}
body {
	background-color: var(--bg-base);
	font-size: 1.6rem;
	line-height: calc(42 / 16);
	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.2rem;
		line-height: calc(30 / 12);
	}
}
* {
	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%;
	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^="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.-hvw) {
		text-decoration-color: rgba(255,255,255,0);
	}
	:where(a[href]:hover ._hl.-hvw) {
		text-decoration-color: #fff;
	}
}

: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: #ccc;
}
:where(button) {
	cursor: pointer;
}

.hidden {
	display: none;
}
.slick-slider * {
	outline: none;
}

#top {
	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_title {
	font-family: var(--font-family-title);
	font-weight: 700;
	font-style: normal;
}
._ff_en {
	font-family: var(--font-family-en);
	font-weight: 500;
	font-style: normal;
	letter-spacing: .02em;
}
._ff_tel {
	font-family: var(--font-family-en);
	font-weight: 500;
	font-style: normal;
	letter-spacing: .02em;
}
._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;
		}
	}
}

/* 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) + 3rem);
}
:where([id]:not(style):not(script)) {
	scroll-margin-top: calc(var(--header-height) + 3rem);
}
:where([id]._scroll-margin-top0, #header) {
	scroll-margin-top: 0 !important;
}
:where([id]._scroll-margin-top-fit) {
	scroll-margin-top: var(--header-height);
}

/* w
====================================================================== */
._w {
	position: relative;
	@media screen and (min-width: 744px), print {
		width: var(--base-width);
		margin-inline: auto;
		&.-s {
			width: var(--base-width-s);
		}
	}
}

/* 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 {
	@media screen and (min-width: 744px), print {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		height: var(--header-height);
		z-index: 900;
		.logo {
			position: absolute;
			left: 0;
			top: 0;
			line-height: 1;
			a {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 28rem;
				height: 14rem;
				background-color: #fff;
				text-decoration: none;
				img {
					width: 22rem;
				}
			}
		}
		nav {
			display: flex;
			justify-content: end;
			align-items: center;
			gap: 3rem;
			ul {
				display: flex;
				align-items: center;
				a {
					position: relative;
					display: block;
					text-decoration: none;
					font-size: 1.5rem;
					font-weight: var(--font-weight-bold);
					letter-spacing: .1em;
				}
			}
			.gnav {
				line-height: 1.5;
				color: #fff;
				li:not(:last-child) {
					position: relative;
					&::before {
						content: "";
						position: absolute;
						top: calc(50% - .5em);
						right: 0;
						border-left: 1px solid;
						height: 1em;
					}
				}
				a {
					padding: 1rem 2.5rem;
					color: inherit;
					transition: opacity var(--transition);
					@media (hover) {
						&:hover {
							opacity: 0.5;
						}
					}
				}
			}
			.hnav {
				display: flex;
				a {
					display: flex;
					justify-content: center;
					align-items: center;
					width: 18rem;
					height: var(--header-height);
					padding-right: 2rem;
					color: #fff;
					&::before {
						content: "";
						position: absolute;
						right: 2rem;
						top: calc(50% - 1.6rem / 2);
						width: 1.6rem;
						height: 1.6rem;
						background: url(../img/ico-arrow.svg) no-repeat 50%;
						background-size: 100%;
					}
					&.-recruit {
						background-color: var(--color-theme);
					}
					&.-partner {
						background-color: var(--color-base);
					}
					@media (hover) {
						&::after {
							content: "";
							position: absolute;
							inset: 0;
							background-color: #fff;
							opacity: 0;
						}
						&:hover::after {
							opacity: 0.2;
						}
					}
				}
			}
		}
	}
	@media print {
		position: absolute;
	}
	@media screen and (max-width: 743px) {
		background-color: #fff;
		.logo {
			line-height: 1;
			a {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 16rem;
				height: var(--header-height);
				background-color: #fff;
				text-decoration: none;
				img {
					width: 13rem;
				}
			}
		}
		.hnav {
			position: fixed;
			right: 0;
			left: 0;
			bottom: 0;
			display: flex;
			z-index: 902;
			li {
				width: 50%;
				a {
					position: relative;
					display: flex;
					justify-content: center;
					align-items: center;
					height: 5rem;
					padding-right: 2rem;
					font-size: 1.4rem;
					color: #fff;
					text-decoration: none;
					&::before {
						content: "";
						position: absolute;
						right: 2rem;
						top: calc(50% - 1.2rem / 2);
						width: 1.2rem;
						height: 1.2rem;
						background: url(../img/ico-arrow.svg) no-repeat 50%;
						background-size: 100%;
					}
					&.-recruit {
						background-color: var(--color-theme);
					}
					&.-partner {
						background-color: var(--color-base);
					}
				}

			}
		}
		.nav_btn {
			position: fixed;
			top: 0;
			right: 0;
			width: var(--header-height);
			height: var(--header-height);
			z-index: 900;
			a {
				position: relative;
				display: block;
				overflow: hidden;
				height: 0;
				padding-top: var(--header-height);
				background-color: var(--color-base);
				text-decoration: none;
				font-size: 1rem;
			}
			&::before,
			a::before,
			a::after {
				content: "";
				position: absolute;
				width: 2.4rem;
				left: calc(50% - 1.2rem);
				top: calc(50% - .1rem);
				border-top: 2px solid #fff;
				pointer-events: none;
				transition: transform var(--transition), opacity var(--transition);
				z-index: 2;
			}
			a::before {
				transform: translateY(-.7rem);
			}
			a::after {
				transform: translateY(.7rem);
			}
		}
		.-headeropen & .nav_btn {
			&::before {
				opacity: 0;
			}
			a::before {
				transform: translate(0) rotate(-45deg);
			}
			a::after {
				transform: translate(0) rotate(45deg);
			}
		}
		.gnav {
			position: fixed;
			top: 0;
			right: 0;
			left: 0;
			bottom: 0;
			display: flex;
			flex-direction: column;
			justify-content: center;
			background-color: #fff;
			transition: opacity var(--transition), transform var(--transition);
			z-index: 899;
			opacity: 0;
			pointer-events: none;
			a {
				display: block;
				padding: 1.5rem;
				font-size: 1.8rem;
				line-height: 1.5;
				text-decoration: none;
				color: var(--color-base);
				text-align: center;
			}
			.logo a {
				position: absolute;
				top: 0;
				left: 0;
				display: flex;
				padding: 0;
				line-height: 0;
			}
		}
		.-headeropen & .gnav {
			opacity: 1;
			pointer-events: auto;
		}
	}
}
@media screen and (min-width: 744px) {
	#header {
		background-color: rgba(255,255,255,0);
		transition: background .5s ease-in-out;
		.logo {
			a {
				transition: height .5s ease-in-out, background .5s ease-in-out;
				background-color: rgba(255,255,255,1);
			}
		}
		.gnav {
			transition: color .5s ease-in-out;
		}
	}
	body.-head-min {
		#header {
			background-color: rgba(255,255,255,.9);
			.logo {
				a {
					height: var(--header-height);
					background-color: rgba(255,255,255,0);
				}
			}
			.gnav {
				color: var(--color-base);
			}
		}
	}
}



/* footer
====================================================================== */
.bottom_mov_block {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	text-align: center;
	background-color: var(--color-base);
	height: 60rem;
	font-size: 6rem;
	line-height: 1.2;
	color: #fff;
	z-index: 2;
	@media screen and (max-width: 743px) {
		height: 30rem;
		font-size: 3rem;
	}
	.s {
		display: block;
		margin-top: 2rem;
		font-size: 1.6rem;
		@media screen and (max-width: 743px) {
			margin-top: 1rem;
			font-size: 1.1rem;
		}
	}
	video {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
}
.bottom_nav {
	position: relative;
	.video {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	ul {
		position: relative;
		display: flex;
		li {
			width: 50%;
			&:not(:last-child) {
				border-right: 1px solid #fff;
			}
			a {
				position: relative;
				height: 40rem;
				display: flex;
				justify-content: center;
				align-items: center;
				flex-direction: column;
				color: #fff;
				text-decoration: none;
				@media screen and (max-width: 743px) {
					height: 19rem;
					font-size: 1.1rem;
					line-height: 1.5;
				}
				.en {
					margin-bottom: 1.5rem;
					font-size: 6rem;
					line-height: 1;
					@media screen and (max-width: 743px) {
						margin-bottom: 1rem;
						font-size: 3rem;
					}
				}
				.arrow {
					position: relative;
					display: block;
					margin-top: 3rem;
					width: 4rem;
					height: 4rem;
					background-color: #fff;
					background-size: 100%;
					border-radius: 100%;
					&::after {
						content: "";
						position: absolute;
						top: 50%;
						right: calc(50% - .4rem);
						width: 1rem;
						height: 1rem;
						border-top: 1px solid #000;
						border-right: 1px solid #000;
						transform-origin: 100% 0;
						transform: rotate(45deg);
					}
					@media screen and (max-width: 743px) {
						margin-top: -.5rem;
						transform-origin: 50% 100%;
						transform: scale(.5);
					}
				}
				@media (hover) {
					&::after {
						content: "";
						position: absolute;
						inset: 0;
						background-color: #fff;
						opacity: 0;
					}
					&:hover::after {
						opacity: 0.1;
					}
				}
			}
		}
	}
}
#footer {
	position: relative;
	padding-block: 9rem 2rem;
	@media screen and (max-width: 743px) {
		padding-block: 6rem 5rem;
	}
	.info {
		@media screen and (max-width: 743px) {
			text-align: center;
		}
		.logo {
			margin-bottom: 6rem;
			img {
				width: 26rem;
			}
			@media screen and (max-width: 743px) {
				margin-bottom: 3rem;
				img {
					width: 16rem;
				}
			}
		}
		.tel {
			margin-top: 1rem;
			font-size: 2.4rem;
			line-height: calc(40 / 24);
			@media screen and (max-width: 743px) {
				margin-top: 0.5rem;
				font-size: 1.5rem;
				a {
					display: inline-block;
					margin-bottom: 0.5rem;
					font-size: 2.5rem;
				}
			}
		}
	}
	small {
		display: block;
		margin-top: 10rem;
		font-size: 1.2rem;
		line-height: 1;
		text-align: center;
		@media screen and (max-width: 743px) {
			margin-top: 5rem;
			padding: 2rem 5rem 2rem 0;
			font-size: 1rem;
		}
	}
	@media screen and (min-width: 744px), print {
		.content {
			display: flex;
			justify-content: space-between;
		}
		.gnav {
			display: flex;
			font-size: 1.5rem;
			li + li {
				position: relative;
				&::before {
					content: "";
					position: absolute;
					top: 50%;
					left: 0;
					height: 1em;
					transform: translateY(-50%);
					border-left: 1px solid;
				}
			}
			a {
				display: block;
				padding: 0 2rem;
			}
		}
		.hnav {
			width: fit-content;
			margin-top: 9rem;
			margin-left: auto;
			li + li {
				margin-top: 2rem;
			}
		}
	}
	@media screen and (max-width: 743px) {
		.gnav {
			display: flex;
			flex-wrap: wrap;
			margin-top: 2rem;
			li {
				width: 50%;
			}
			a {
				position: relative;
				display: block;
				padding-left: 2rem;
				&::before {
					content: "";
					position: absolute;
					top: 50%;
					left: 0;
					width: 1rem;
					border-top: 1px solid var(--color-theme);
				}
			}
		}
		.hnav {
			width: fit-content;
			margin-top: 3rem;
			margin-inline: auto;
			li + li {
				margin-top: 2rem;
			}
		}
	}

	#pagetop {
		position: fixed;
		right: 0;
		bottom: 0;
		width: 9rem;
		height: 9rem;
		display: flex;
		justify-content: center;
		align-items: center;
		background-color: var(--color-base);
		padding: 4rem 0 0 4rem;
		color: #fff;
		text-decoration: none;
		font-size: 1.2rem;
		clip-path: polygon(100% 0, 100% 100%, 0 100%);
		opacity: 0;
		pointer-events: none;
		z-index: 100;
		transition: opacity var(--transition);
		&.-show {
			opacity: 1;
			pointer-events: auto;
		}
		@media (hover) {
			&:hover {
				opacity: 0.5;
			}
		}
		@media screen and (max-width: 743px) {
			width: 6rem;
			height: 6rem;
			bottom: calc(5rem + 1px);
			padding: 3.5rem 0 0 2rem;
			font-size: 1.1rem;
		}
	}
}

/* container
====================================================================== */
#container {
	position: relative;
	overflow: clip;
}

/* ===================================================================================================================

	パーツ

============================================================================= */

/* bg line
====================================================================== */
body.-page-about {
	--line-right-pos: calc(50% + 67.8rem);
	--line-left-pos: calc(50% - 32.4rem);
	@media screen and (max-width: 743px) {
		--line-right-pos: calc(50% + 10.6rem);
		--line-left-pos: -100rem;
	}
}
body.-page-company {
	--line-right-pos: calc(50% + 48rem);
	--line-left-pos: calc(50% - 14rem);
	@media screen and (max-width: 743px) {
		--line-right-pos: calc(50% + 10.6rem);
		--line-left-pos: calc(50% - 7.6rem);
	}
}
body.-page-business {
	--line-right-pos: calc(50% + 48rem);
	--line-left-pos: calc(50% - 30rem);
	@media screen and (max-width: 743px) {
		--line-right-pos: calc(50% + 10.6rem);
		--line-left-pos: -100rem;
	}
}
body.-page-access {
	--line-right-pos: calc(50% + 48rem);
	--line-left-pos: -100rem;
	@media screen and (max-width: 743px) {
		--line-right-pos: calc(50% + 10.6rem);
		--line-left-pos: 3.2rem;
	}
}
body.-page-recruit {
	--line-right-pos: calc(50% + 63.4rem);
	--line-left-pos: calc(50% - 45.4rem);
	@media screen and (max-width: 743px) {
		--line-right-pos: calc(50% + 10.6rem);
		--line-left-pos: -100rem;
	}
}
body.-page-partner {
	--line-right-pos: calc(50% + 67.8rem);
	--line-left-pos: calc(50% - 45.4rem);
	@media screen and (max-width: 743px) {
		--line-right-pos: calc(50% + 12.8rem);
		--line-left-pos: -100rem;
	}
}
.page_contents {
	position: relative;
}
:where(.page_contents > *) {
	position: relative;
	z-index: 4;
}
._line {
	pointer-events: none;
	position: relative;
	height: 1px;
	background-color: #fff;
	z-index: 0;
	svg {
		overflow: visible;
	}
	&.animlines {
		z-index: 1;
		margin-top: -1px;
	}
	&.-abs {
		position: absolute;
		right: 0;
		left: 0;
		z-index: -2;
	}
	&.animlines.-abs {
		z-index: 1;
	}
	.corner {
		position: absolute;
		top: 0;
		&::before,
		&::after {
			content: "";
			position: absolute;
			width: 4rem;
			height: 4rem;
			border: 1px solid #fff;
			border-radius: 100%;
			@media screen and (max-width: 743px) {
				width: 2rem;
				height: 2rem;
			}
		}
		&::before {
			left: 0;
			bottom: 0;
			clip-path: polygon(0 50%, 50% 50%, 50% 100%, 0 100%);
		}
	}
	.tate-l ,
	.tate-r {
		position: absolute;
		top: -1000px;
		width: 1px;
		height: 2000px;
		background-color: #fff;
	}
	.tate-l {
		left: var(--line-left-pos);
	}
	.tate-r {
		left: var(--line-right-pos);
	}
	.-l_svg1 {
		position: absolute;
		top: 0;
		left: calc(var(--line-left-pos) - 1999px);
		&::before,
		&::after {
			display: none;
		}
	}
	.-l_svg2 {
		position: absolute;
		bottom: 0;
		left: calc(var(--line-left-pos) + 1px);
		&::before,
		&::after {
			display: none;
		}
	}
	.-r_svg1 {
		position: absolute;
		top: 0;
		left: calc(var(--line-right-pos) - 1999px);
		&::before,
		&::after {
			display: none;
		}
	}
	.-r_svg2 {
		position: absolute;
		bottom: 0;
		left: calc(var(--line-right-pos) + 1px);
		&::before,
		&::after {
			display: none;
		}
	}
	&.-right-corner-only .corner.-l,
	&.-left-corner-only .corner.-r {
		display: none;
	}
	&.-right-corner-only .-l_svg1 ,
	&.-right-corner-only .-l_svg2 {
		display: none;
	}
	&.-left-corner-only .-r_svg1 ,
	&.-left-corner-only .-r_svg2 {
		display: none;
	}
	.circle {
		@media screen and (min-width: 744px), print {
			--width: var(--w);
		}
		@media screen and (max-width: 743px) {
			--width: 20rem;
		}
		position: absolute;
		top: calc(var(--width) / 2 * -1);
		width: var(--width);
		aspect-ratio: 1;
		border: 1px solid #fff;
		border-radius: 100%;
		&.-left {
			left: calc(var(--width) / 2 * -1 + var(--line-left-pos));
		}
		&.-right {
			left: calc(var(--width) / 2 * -1 + var(--line-right-pos));
		}
	}
	@media screen and (max-width: 743px) {
		&.-sp-large {
			.circle {
				--width: 33rem;
			}
		}
	}
	.circle_svg {
		@media screen and (min-width: 744px), print {
			--width: var(--w);
		}
		@media screen and (max-width: 743px) {
			--width: 20rem;
		}
		position: absolute;
		top: calc(var(--width) / 2 * -1);
		width: var(--width);
		height: auto;
		aspect-ratio: 1;
		&.-left {
			left: calc(var(--width) / 2 * -1 + var(--line-left-pos));
		}
		&.-right {
			left: calc(var(--width) / 2 * -1 + var(--line-right-pos));
		}
		@media screen and (max-width: 743px) {
			&.-sp-large {
				.circle {
					--width: 33rem;
				}
			}
		}
	}
	.whiteline {
		path {
			stroke: #fff;
			fill: none;
		}
	}
	.animline {
		&.-l_svg1 ,
		&.-l_svg2 ,
		&.-r_svg1 ,
		&.-r_svg2 {
			path {
				stroke-linecap: round;
				stroke-width: 2px;
				fill: none;
				stroke-dasharray: 70 3000;

				stroke-dashoffset: 1000px;
				transition: stroke-dashoffset 2.0s linear;
				&.is-color01 {
					stroke: #9aada3;
				}
				&.is-color02 {
					stroke: #97a7b3;
				}
			}
		}
		&.circle_svg {
			path {
				stroke-linecap: round;
				stroke-width: 2px;
				fill: none;
				stroke-dasharray: 150 1500;

				&.is-color01 {
					stroke: #9aada3;
				}
				&.is-color02 {
					stroke: #97a7b3;
				}
			}
		}
	}
}

/* page_title
====================================================================== */
.page_title {
	position: relative;
	/* max-height: 90rem; */
	min-height: 50rem;
	height: 100svh;
	display: flex;
	justify-content: end;
	flex-direction: column;
	padding-bottom: 9rem;
	background-color: var(--color-base);
	color: #fff;
	z-index: 5;
	&::after {
		content: "";
		position: absolute;
		right: 0;
		left: 0;
		bottom: 0;
		height: 1rem;
		background: linear-gradient(135deg, var(--color-grad1) 30%, var(--color-grad2) 130%);
	}
	.en {
		font-size: 8rem;
		line-height: 1;
	}
	h1 {
		position: relative;
		padding-left: 3.5rem;
		margin-top: 3rem;
		font-size: 1.8rem;
		line-height: 1.6;
		z-index: 5;
		&::before {
			content: "";
			position: absolute;
			top: 50%;
			left: 0;
			width: 2rem;
			border-top: 2px solid var(--color-theme);
		}
	}
	.copy {
		position: absolute;
		top: 18rem;
		display: flex;
		flex-direction: row-reverse;
		align-items: start;
		gap: 1rem;
		& > span {
			padding: 1.5rem .3rem;
			background-color: rgba(255,255,255,.9);
			color: var(--color-base);
			font-size: 3rem;
			line-height: 1.5;
			writing-mode: vertical-rl;
			.punct {
				display: inline-block;
				margin-bottom: -0.4em;
			}
		}
		@media screen and (max-width: 743px) {
			right: var(--sp-base-padding);
			top: 3rem;
			gap: 0.5rem;
			& > span {
				padding: 1rem .3rem;
				font-size: 1.6rem;
			}
		}
	}
	@media screen and (min-width: 744px), print {
		padding-inline: calc((100% - var(--base-width)) / 2);
		.copy {
			right: max(calc((100% - var(--base-width)) / 2), 6rem);
		}
	}
	@media screen and (max-width: 743px) {
		height: calc(100svh - var(--header-height) - 5rem + .5rem);
		padding-bottom: 5rem;
		padding-inline: var(--sp-base-padding);
		&::after {
			height: 0.5rem;
		}
		.en {
			font-size: 4rem;
		}
		h1 {
			padding-left: 2.5rem;
			margin-top: 1.5rem;
			font-size: 1.3rem;
			&::before {
				width: 1.5rem;
				border-top-width: 1px;
			}
		}
	}
	.page_title_images {
		position: absolute;
		inset: 0;
		z-index: -1;
		& > * {
			position: absolute;
			inset: 0;
			opacity: 0;
			transition: opacity 1.5s ease;
			&.is-active {
				z-index: 2;
				opacity: 1;
				pointer-events: auto;
			}
		}
	}
}

.page_title_simple {
	height: 40rem;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	padding-top: var(--header-height);
	box-sizing: content-box;
	text-align: center;
	.en {
		font-size: 8rem;
		line-height: 1;
	}
	h1 {
		position: relative;
		margin-top: 3rem;
		font-size: 1.8rem;
		line-height: 1.6;
	}
	@media screen and (max-width: 743px) {
		height: 15rem;
		padding-top: 3rem;
		.en {
			font-size: 4rem;
		}
		h1 {
			margin-top: 1.5rem;
			font-size: 1.3rem;
		}
	}
}


/* title
====================================================================== */
.en_title {
	margin-bottom: 6rem;
	.en {
		font-size: 6rem;
		line-height: calc(80 / 70);
	}
	.title {
		position: relative;
		padding-left: 3.5rem;
		margin-top: 2rem;
		font-size: 1.8rem;
		line-height: calc(30 / 18);
		&::before {
			content: "";
			position: absolute;
			top: .5lh;
			left: 0;
			width: 2rem;
			border-top: 2px solid var(--color-theme);
		}
	}
	@media screen and (max-width: 743px) {
		margin-bottom: 4rem;
		.en {
			font-size: 4rem;
		}
		.title {
			padding-left: 2.5rem;
			margin-top: 1.5rem;
			font-size: 1.3rem;
			&::before {
				width: 1.5rem;
				border-top-width: 1px;
			}
		}
	}
}
.horizon_en_title {
	@media screen and (min-width: 744px), print {
		display: flex;
		margin-bottom: 8rem;
		.en_title {
			flex-shrink: 0;
			width: 50%;
			margin-bottom: 0;
		}
	}
	@media screen and (max-width: 743px) {
		margin-bottom: 4rem;
	}
}

.lead_txt {
	font-size: 4.2rem;
	line-height: calc(76 / 42);
	@media screen and (max-width: 743px) {
		font-size: 2rem;
		line-height: calc(76 / 40);
	}
}

/* title_left_block
====================================================================== */
.title_left_block {
	@media screen and (min-width: 744px), print {
		display: flex;
		justify-content: space-between;
		.contents {
			width: 92rem;
			&.-min {
				width: 73rem;
			}
			&.-min2 {
				width: 66rem;
			}
		}
	}
}


/* box_btn
====================================================================== */
.box_btn {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 100%;
	width: 26rem;
	height: 6rem;
	padding-right: 2rem;
	background-color: var(--color-theme);
	border: 2px solid var(--color-theme);
	border-radius: 3rem;
	color: #fff;
	text-decoration: none;
	font-size: 1.5rem;
	line-height: 1.5;
	&::before {
		content: "";
		position: absolute;
		right: 2rem;
		top: calc(50% - 1.6rem / 2);
		width: 1.6rem;
		height: 1.6rem;
		background-color: #fff;
		border-radius: 100%;
	}
	&::after {
		content: "";
		position: absolute;
		right: calc(2rem + 1.6rem / 2 - .3rem);
		top: 50%;
		width: .5rem;
		height: .5rem;
		border-top: 1px solid var(--color-theme);
		border-right: 1px solid var(--color-theme);
		transform-origin: 100% 0;
		transform: rotate(45deg);
	}
	&.-black {
		background-color: var(--color-base);
		border-color: var(--color-base);
		&::after {
			border-color: var(--color-base);
		}
	}
	&.-back {
		padding-right: 0;
		padding-left: 2rem;
		&::before {
			right: auto;
			left: 2rem;
		}
		&::after {
			right: auto;
			left: calc(2rem + 1.6rem / 2 - .3rem);
			border-right: 0;
			border-left: 1px solid var(--color-theme);
			transform-origin: 0 0;
			transform: rotate(-45deg);
		}
	}
	@media (hover) {
		transition: background var(--transition), color var(--transition);
		&:hover,
		a:hover & {
			background-color: #fff;
			color: var(--color-theme);
			&::before {
				background-color: var(--color-theme);
			}
			&::after {
				border-color: #fff;
			}
		}
		&.-black:hover {
			color: var(--color-base);
			&::before {
				background-color: var(--color-base);
			}
		}
	}
	&.-center {
		margin-inline: auto;
	}
	@media screen and (max-width: 743px) {
		width: 21.5rem;
		height: 4.5rem;
		padding-right: 1.6rem;
		font-size: 1.2rem;
		&::before {
			right: 1.6rem;
			top: calc(50% - 1.2rem / 2);
			width: 1.2rem;
			height: 1.2rem;
		}
		&::after {
			right: calc(1.6rem + 1.2rem / 2 - .2rem);
			width: .4rem;
			height: .4rem;
		}
		&.-back {
			padding-left: 1.6rem;;
			&::before {
				left: 1.6rem;
			}
			&::after {
				left: calc(1.6rem + 1.2rem / 2 - .2rem);
			}
		}
		&.-sp_center {
			margin-inline: auto;
		}
	}
	@media screen and (min-width: 744px), print {
		&.-l {
			width: 48rem;
			height: 8rem;
			padding-right: 3rem;
			border-radius: 4rem;
			font-size: 2rem;
			&::after {
				right: 3rem;
			}
		}
	}
}

/* contact_box
====================================================================== */
.contact_box {
	position: relative;
	padding: 7rem 6rem 8rem;
	text-align: center;
	color: #fff;
	z-index: auto !important;
	@media screen and (min-width: 744px), print {
		width: 110rem;
		margin-inline: auto;
	}
	@media screen and (max-width: 743px) {
		padding: 5rem var(--sp-base-padding) 6rem;
	}
	.bg {
		position: absolute;
		z-index: 3;
		inset: 0;
		.video {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			object-fit: cover;
		}
	}
	& > * {
		position: relative;
		z-index: 4;
	}
	h2 {
		margin-bottom: 4rem;
		font-size: 2.4rem;
		line-height: 2;
		@media screen and (max-width: 743px) {
			margin-bottom: 3rem;
			font-size: 1.5rem;
		}
	}
	.content {
		@media screen and (min-width: 744px), print {
			position: relative;
			display: flex;
			justify-content: space-between;
			& > * {
				width: 44rem;
			}
			&::before {
				content: "";
				position: absolute;
				top: 0;
				bottom: 0;
				left: 50%;
				border-left: 1px solid #fff;
			}
		}
		@media screen and (max-width: 743px) {
			& > * + * {
				margin-top: 2rem;
				padding-top: 2rem;
				border-top: 1px solid #fff;
			}
		}
		dt {
			margin-bottom: 3rem;
			font-size: 1.8rem;
			line-height: 1.4;
			text-align: center;
			@media screen and (max-width: 743px) {
				margin-bottom: 1.5rem;
				font-size: 1.3rem;
			}
		}
		.tel {
			font-size: 5rem;
			line-height: 1;
			a {
				color: #fff;
				text-decoration: none;
			}
			.-s {
				font-size: 3.8rem;
			}
			@media screen and (min-width: 744px), print {
				display: flex;
				justify-content: center;
				align-items: center;
				height: 8rem;
			}
			@media screen and (max-width: 743px) {
				font-size: 3rem;
				.-s {
					font-size: 2rem;
				}
			}
		}
	}
}

/* other_contents
====================================================================== */
.other_contents {
	position: relative;
	padding-bottom: 20rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		padding-bottom: 8rem;
	}
	& > * {
		position: relative;
		z-index: 4;
	}
	.contents {
		display: flex;
		justify-content: space-between;
		margin-top: 7rem;
		@media screen and (max-width: 743px) {
			flex-wrap: wrap;
			gap: 2.6rem 1.5rem;
			margin-top: 4rem;
		}
		li {
			width: 32rem;
			@media screen and (max-width: 743px) {
				width: calc((100% - 1.5rem) / 2);
			}
			a {
				display: block;
				text-decoration: none;
				span {
					position: relative;
					display: block;
					text-align: center;
				}
				.ph {
					margin-bottom: 0.5rem;
					@media screen and (max-width: 743px) {
						margin-bottom: 0.2rem;
					}
					&::after {
						content: "";
						position: absolute;
						inset: 0;
						background-color: #fff;
						opacity: 0;
						transition: opacity var(--transition);
					}
				}
				.title {
					transition: opacity var(--transition);
				}
				&.is-active {
					.ph::after {
						opacity: 0.6;
					}
					.title {
						opacity: 0.5;
					}
				}
				@media (hover) {
					&:hover {
						.ph::after {
							opacity: 0.6;
						}
						.title {
							opacity: 0.5;
						}
					}
				}
			}
		}
	}
}

/* marquee
====================================================================== */
.marquee {
	--gap: 10rem;
	--width: var(--w);
	overflow: hidden;
	display: flex;
	gap: var(--gap);
	pointer-events: none;
	user-select: none;
	@media screen and (max-width: 743px) {
		--gap: 5rem;
		--width: calc(var(--spw) * .5);
	}
	img {
		max-width: none;
		width: var(--width);
		animation: marquee var(--duration, 10s) linear infinite;
	}
}
@keyframes marquee {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(calc((var(--width) + var(--gap)) * -1));
	}
}

/* feature_block
====================================================================== */
.feature_block {
	position: relative;
	padding-bottom: 16rem;
	@media screen and (max-width: 743px) {
		padding-bottom: 7rem;
	}
	&::before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		right: 0;
		width: calc(50% + 21rem);
		background-color: #fff;
		z-index: -1;
		@media screen and (max-width: 743px) {
			width: calc(50% - 4rem);
		}
	}
	.en_title {
		margin-bottom: 9rem;
		@media screen and (max-width: 743px) {
			margin-bottom: 5rem;
		}
	}
	.feature {
		display: flex;
		@media screen and (max-width: 743px) {
			flex-wrap: wrap;
		}
		&:not(:last-child) {
			margin-bottom: 8rem;
			@media screen and (max-width: 743px) {
				margin-bottom: 7rem;
			}
		}
		.num {
			position: relative;
			width: 10.2rem;
			height: 10.2rem;
			font-size: 1.8rem;
			line-height: 1;
			margin-right: 7.2rem;
			@media screen and (max-width: 743px) {
				width: 5.1rem;
				height: 5.1rem;
				font-size: 0.9rem;
				margin-right: 0;
			}
			span {
				position: absolute;
				right: 0;
				bottom: -.1em;
				font-size: 4.4rem;
				line-height: 1;
				@media screen and (max-width: 743px) {
					font-size: 2.2rem;
				}
			}
			&::before {
				content: "";
				position: absolute;
				left: 0;
				bottom: 0;
				width: calc(100% * 1.4142);
				height: 1px;
				background: linear-gradient(to right, var(--color-theme) 50%, #cccccc 50%);
				transform-origin: 0 100%;
				transform: rotate(-45deg);
			}
		}
		.ph {
			width: 62rem;
			@media screen and (max-width: 743px) {
				width: 24rem;
				margin-left: auto;
			}
		}
		.content {
			width: 52.6rem;
			margin-left: auto;
			padding-top: 5rem;
			h3 {
				margin-bottom: 4rem;
				font-size: 3rem;
				line-height: 2;
				&.-l {
					@media screen and (min-width: 744px), print {
						margin-bottom: 3rem;
						font-size: 3.8rem;
					}
				}
			}
			@media screen and (max-width: 743px) {
				width: 100%;
				padding-top: 2rem;
				h3 {
					margin-bottom: 1.5rem;
					font-size: 1.9rem;
					line-height: calc(60 / 38);
				}
			}
		}
	}
	&.-ph_right {
		&::before {
			left: 0;
			right: auto;
			width: calc(50% + 40rem);
			@media screen and (max-width: 743px) {
				width: calc(100% - var(--sp-base-padding));
			}
		}
		.feature {
			.content {
				margin-left: 0;
				@media screen and (max-width: 743px) {
					margin-right: var(--sp-base-padding);
				}
			}
			.ph {
				@media screen and (min-width: 744px), print {
					margin-left: auto;
					order: 3;
				}
			}
		}
	}
}

/* flow_block
====================================================================== */
.flow_block {
	position: relative;
	.contents {
		position: relative;
		padding: 8rem;
		@media screen and (max-width: 743px) {
			padding: 5rem 0 5rem 3rem;
		}
		&::before {
			content: "";
			position: absolute;
			inset: 0;
			width: 200%;
			background-color: #fff;
			z-index: -1;
		}
		.flow {
			li {
				display: flex;
				align-items: start;
				gap: 3rem;
				@media screen and (max-width: 743px) {
					gap: 1.5rem;
				}
				.num {
					flex-shrink: 0;
					width: 6rem;
					font-size: 1.8rem;
					color: #fff;
					@media screen and (max-width: 743px) {
						width: 4rem;
						font-size: 1.4rem;
					}
					.circle {
						display: flex;
						justify-content: center;
						align-items: center;
						aspect-ratio: 1;
						border-radius: 100%;
					}
				}
				&:not(:last-child) {
					.num::after {
						content: "";
						display: block;
						width: 0;
						height: 4rem;
						margin: 4rem 3rem;
						border-left: 1px solid var(--color-theme);
					}
					@media screen and (max-width: 743px) {
						position: relative;
						padding-bottom: 3rem;
						.num::after {
							position: absolute;
							top: 6rem;
							bottom: 2rem;
							height: 8rem;
							margin: 0 2rem;
							height: auto;
						}
					}
				}
				dt {
					margin-bottom: 2rem;
					font-size: 2.4rem;
					line-height: 1.2;
					@media screen and (max-width: 743px) {
						margin-bottom: 1.5rem;
						font-size: 1.5rem;
					}
				}
			}
			&.-min {
				li {
					&:not(:last-child) {
						.num::after {
							margin-block: 1.5rem;
						}
						@media screen and (max-width: 743px) {
							padding-bottom: 0;
							.num::after {
								position: relative;
								top: 0;
								bottom: 0;
								height: 3rem;
								margin-block: 1rem;
							}
						}
					}
					dt {
						margin-bottom: 1rem;
						@media screen and (max-width: 743px) {
							margin-bottom: .4rem;
						}
					}
				}
			}
		}
	}
}

/* faq_block
====================================================================== */
.faq_block {
	.faq {
		background-color: #fff;
		&:not(:last-child) {
			margin-bottom: 2rem;
			@media screen and (max-width: 743px) {
				margin-bottom: 1rem;
			}
		}
		h3 {
			position: relative;
			padding: 2rem 8rem 2rem 4rem;
			font-size: 1.8rem;
			line-height: 1.8;
			cursor: pointer;
			@media screen and (max-width: 743px) {
				padding: 1.5rem 6rem 1.5rem 2rem;
				font-size: 1.3rem;
				line-height: calc(50 / 26);
			}
			&::before,
			&::after {
				content: "";
				position: absolute;
				top: calc(50% - 1px);
				right: 3.5rem;
				width: 2rem;
				border-top: 2px solid var(--color-theme);
				@media screen and (max-width: 743px) {
					right: 2rem;
					width: 1.6rem;
				}
			}
			&::after {
				transform: rotate(90deg);
				transition: transform var(--transition);
			}
			&.-open {
				color: var(--color-theme);
				&::after {
					transform: rotate(0deg);
				}
			}
			@media (hover) {
				transition: color var(--transition);
				&:hover {
					color: var(--color-theme);
				}
			}
		}
		.a_inner {
			padding: 1rem 4rem 4rem;
			font-size: 1.4rem;
			line-height: calc(30 / 14);
			@media screen and (max-width: 743px) {
				padding: .5rem 2rem 2rem 2rem;
				font-size: 1.2rem;
				line-height: calc(50 / 24);
			}
		}
	}
}

/* acc
====================================================================== */
._acc {
	overflow: hidden;
	height: 0;
	transition: height var(--transition);
}

/* basic_dl_table
====================================================================== */
.basic_dl_table {
	line-height: calc(33 / 16);
	@media screen and (max-width: 743px) {
		line-height: calc(21 / 12);
	}
	dl {
		display: flex;
		padding: 3rem .5rem 2rem;
		@media screen and (max-width: 743px) {
			padding: 1.2rem .5rem;
		}
		&:not(:last-child) {
			border-bottom: 1px solid;
		}
		&:first-child {
			padding-top: 1rem;
			@media screen and (max-width: 743px) {
				padding-top: 0;
			}
		}
		&:last-child {
			padding-bottom: 0;
		}
		dt {
			display: flex;
			align-items: center;
			width: 20rem;
			flex-shrink: 0;
			@media screen and (max-width: 743px) {
				width: 11rem;
			}
		}
		a[href^="tel:"] {
			text-decoration: none;
		}
		.s {
			display: block;
			font-size: 1.2rem;
			@media screen and (max-width: 743px) {
				font-size: 1.1rem;
			}
		}
	}
	&.-sp-vertical {
		@media screen and (max-width: 743px) {
			dl {
				display: block;
				padding: 1.5rem 0;
				&:first-child {
					padding-top: 0;
				}
				dt {
					width: auto;
					margin-bottom: 0.5rem;
					font-size: 1.4rem;
					font-weight: var(--font-weight-bold);
				}
			}
		}
	}
}

/* paragraph
====================================================================== */
.paragraph > * + * {
	margin-top: 1lh;
}
.paragraph.-m > * + * {
	margin-top: .7lh;
}

/* fellowship_links
====================================================================== */
.fellowship_links {
	@media screen and (min-width: 744px), print {
		display: flex;
		justify-content: space-between;
		& > * {
			width: 65rem;
		}
	}
	@media screen and (max-width: 743px) {
		& > * + * {
			margin-top: 8rem;
		}
	}
	li {
		position: relative;
		.img {
			position: relative;
			display: flex;
			height: 61rem;
			justify-content: center;
			align-items: center;
			flex-direction: column;
			margin-bottom: 3rem;
			padding-top: 1rem;
			color: #fff;
			z-index: 1;
			@media screen and (max-width: 743px) {
				height: 23rem;
				margin-bottom: 2rem;
				font-size: 1.3rem;
			}
			.en {
				position: relative;
				margin-bottom: 1rem;
				padding-inline: 4.5rem;
				font-size: 6rem;
				line-height: 1;
				@media screen and (max-width: 743px) {
					padding-inline: 3rem;
					font-size: 4rem;
				}
				&::before,
				&::after {
					content: "";
					position: absolute;
					top: 60%;
					width: 2rem;
					border-top: 2px solid #fff;
					@media screen and (max-width: 743px) {
						width: 1.5rem;
					}
				}
				&::before {
					left: 0;
				}
				&::after {
					right: 0;
				}
			}
		}
		.more {
			margin-top: 4rem;
			@media screen and (max-width: 743px) {
				margin-top: 3rem;
			}
		}
		& > a {
			display: block;
			text-decoration: none;
			@media (hover) {
				.img::after {
					content: "";
					position: absolute;
					inset: 0;
					background-color: #000;
					opacity: 0;
					transition: opacity var(--transition);
					z-index: -1;
				}
				&:hover .img::after {
					opacity: 0.3;
				}
			}
			.img {
				margin-bottom: 5rem;
				@media screen and (max-width: 743px) {
					margin-bottom: 4rem;
				}
			}
		}
		.box_btn {
			margin-top: 5rem;
			@media screen and (max-width: 743px) {
				margin-top: 4rem;
			}
		}
	}
}

/* ul / ol
====================================================================== */
.dot_li > li {
	position: relative;
	padding-left: 1em;
}
.dot_li > li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}

.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;
}


/* ============================================================================

	私たちについて

============================================================================= */
.aboutheader {
	background-color: #f5f5f5;
	@media screen and (max-width: 743px) {
	}
	.headerbg {
		position: sticky;
		top: 0;
		width: 100%;
		height: 100vh;
		transition: width 1.0s;
		@media screen and (max-width: 743px) {
			top: 0;
			height: calc(100dvh - 5rem);
		}
		.is-aboutus-state01 & {
			@media screen and (min-width: 744px), print {
				width: 50%;
			}
		}
		.mainbg {
			position: absolute;
			inset: 0px;
			object-fit: cover;
			@media screen and (max-width: 743px) {
				transition: height 1.0s;
			}
			.is-aboutus-state01-sp & {
				@media screen and (max-width: 743px) {
					height: 24rem;
				}
			}

		}
		.mainbg.nimaime {
			opacity: 0;
			transition: opacity 1.0s;
			.is-aboutus-state02 & {
				@media screen and (min-width: 744px), print {
					opacity: 1;
				}
			}
			.is-aboutus-state03-sp & {
				@media screen and (max-width: 743px) {
					opacity: 1;
				}
			}
		}
		&::after {
			content: "";
			position: absolute;
			right: 0;
			left: 0;
			bottom: 0;
			height: 1rem;
			background: linear-gradient(135deg, var(--color-grad1) 30%, var(--color-grad2) 130%);

			transition: opacity 1.0s;
		}
		.is-aboutus-state01 &::after {
			opacity: 0;
		}
		.title_wrap {
			position: absolute;
			bottom: calc(100% - 24rem);
			transition: opacity 1.0s;
			color: #FFF;
			&.ikkome {
				opacity: 0;
				.is-aboutus-state02-sp & {
					@media screen and (max-width: 743px) {
						opacity: 1;
					}
				}
				.is-aboutus-state03-sp & {
					@media screen and (max-width: 743px) {
						opacity: 0;
					}
				}
			}
			&.nikome {
				opacity: 0;
				.is-aboutus-state03-sp & {
					@media screen and (max-width: 743px) {
						opacity: 1;
					}
				}
			}
		}
	}
	.page_title {
		margin-top: -100vh;
		background-color: transparent;
		box-sizing: border-box;
		@media screen and (max-width: 743px) {
			margin-top: -calc(100dvh - 5rem);
			height: calc(100lvh - 5rem);
			min-height: auto;
		}

		transition: opacity 0.3s;
		.is-aboutus-state00 & {
			@media screen and (min-width: 744px), print {
				opacity: 0;
			}
		}
		&::after {
			display: none;
		}
	}
}
.about_main_wrap {
	margin-bottom: 10rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		margin-bottom: 3rem;
	}
}
.about_main {
	position: relative;
	z-index: auto;
	@media screen and (max-width: 743px) {
		height: 150vh;
	}
	& > * {
		position: relative;
		z-index: 4;
	}
	.en_title {
		color: #fff;
	}
	.lead_txt {
		margin-bottom: 2rem;
		text-align: center;
	}
	.logo {
		width: 17.6rem;
		margin: 5rem auto 0;
	}
	@media screen and (min-width: 744px), print {
		height: 150vh;
		.bg {
			position: absolute;
			inset: 0 50% 0 0;
			z-index: 3;
		}
		.en_title {
			position: absolute;
			top: 10rem;
		}
		.title_wrap {
			position: sticky;
			top: var(--header-height);
			height: 25rem;
		}
		.contents {
			width: 50%;
			height: 100%;
			margin-left: auto;
			display: flex;
			flex-direction: column;
			justify-content: center;
			align-items: center;
			text-align: center;
		}
		.about-main-line {
			top: 10rem;
		}
		&.-philosophy .title_wrap {
			transition: opacity 0.5s;
			.is-aboutus-state03 & {
				opacity: 0;
			}
		}
		&.-vision {
			height: 200vh;
		}
		&.-vision .title_wrap {
			height: 100vh;
		}
		&.-vision .contents {
			margin-top: -70vh;
		}
	}
	@media screen and (max-width: 743px) {
		padding-bottom: 7rem;
		.bg {
			display: none;
		}
		.title_wrap {
			display: none;
		}
		.logo {
			width: 13rem;
			margin-top: 2rem;
		}
		.contents {
			position: fixed;
			top: 24rem;
			left: 0;
			width: 100%;
			height: calc(100dvh - (24rem + 5rem));
			display: flex;
			justify-content: center;
			align-items: center;
			flex-direction: column;
			opacity: 0;
			transition: opacity 1.0s;
		}
		.contents.ikkome {
			.is-aboutus-state02-sp & {
				@media screen and (max-width: 743px) {
					opacity: 1;
				}
			}
			.is-aboutus-state03-sp & {
				@media screen and (max-width: 743px) {
					opacity: 0;
				}
			}
		}
		.contents.nikome {
			.is-aboutus-state03-sp & {
				@media screen and (max-width: 743px) {
					opacity: 1;
				}
			}
			.is-aboutus-state04-sp & {
				@media screen and (max-width: 743px) {
					opacity: 0;
					transition: opacity 0.3s;
				}
			}
		}
	}
}
.about_policy {
	padding-block: 9rem 11rem;
	@media screen and (max-width: 743px) {
		padding-block: 5rem 8rem;
	}
	.policy_contents {
		display: flex;
		gap: 2rem;
		dl {
			padding: 3rem 4rem 4rem;
			background-color: #fff;
		}
		@media screen and (min-width: 744px), print {
			width: 110rem;
			dl {
				width: 100%;
				dt {
					font-size: 2rem;
					line-height: 1.8;
					text-align: center;
					img {
						display: block;
						width: 8rem;
						margin: 0 auto 1rem;
					}
					&::after {
						content: "";
						display: block;
						width: 0;
						height: 1.6rem;
						margin: 1.5rem auto;
						border-left: 1px solid var(--color-theme);
					}
				}
			}
		}
		@media screen and (max-width: 743px) {
			flex-direction: column;
			dl {
				padding: 3rem;
				dt {
					position: relative;
					margin-bottom: 1rem;
					padding-left: 2rem;
					font-size: 1.6rem;
					line-height: 1.8;
					img {
						position: absolute;
						right: 0;
						top: -2.5rem;
						width: 6.5rem;
					}
					&::before {
						content: "";
						position: absolute;
						top: 50%;
						left: 0;
						width: 1rem;
						border-top: 1px solid var(--color-theme);
					}
				}
			}
		}
	}
}
.about_feature {
	margin-top: 9rem;
	margin-bottom: 26rem;
	padding-top: 16rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		margin-top: 0;
		margin-bottom: 11rem;
		padding-top: 6rem;
	}
	& > * {
		z-index: 4;
	}
	&::before {
		z-index: 4;
	}
	&::after {
		content: "";
		position: absolute;
		top: -32rem;
		right: 0;
		bottom: -16rem;
		width: calc(50% + 54rem);
		background: linear-gradient(155deg, var(--color-grad1) -10%, var(--color-grad2) 190%);
		mix-blend-mode: multiply;
		z-index: 3;
		@media screen and (max-width: 743px) {
			top: -78rem;
			bottom: -8rem;
			width: calc(50% + 8rem);
		}
	}
}
.other_contents.-about {
	padding-top: 9rem;
	@media screen and (max-width: 743px) {
		padding-top: 5rem;
	}
	&::before {
		content: "";
		position: absolute;
		top: -27rem;
		left: 0;
		right: calc(50% + 54rem);
		bottom: 0;
		background-color: #fff;
		opacity: 0.5;
		z-index: -1;
		@media screen and (max-width: 743px) {
			top: -12rem;
			right: calc(50% + 8rem);
		}
	}
}


/* ============================================================================

	会社案内

============================================================================= */
.company_greeting {
	position: relative;
	padding-block: 15rem 18rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		padding-block: 8rem 7rem;
	}
	& > * {
		position: relative;
		z-index: 5;
	}
	&::before {
		content: "";
		position: absolute;
		z-index: 3;
		top: 0;
		left: 0;
		bottom: 0;
		width: calc(50% + 20rem);
		background-color: #fff;
		opacity: 0.5;
		@media screen and (max-width: 743px) {
			width: calc(50% + 4.8rem);
		}
	}
	.video {
		content: "";
		position: absolute;
		z-index: 3;
		right: 0;
		bottom: 0;
		height: calc(100% - 44rem);
		width: calc(50% - 20rem);
		mix-blend-mode: multiply;
		object-fit: cover;
		@media screen and (max-width: 743px) {
			top: auto;
			width: calc(50% - 4.8rem);
			height: 48rem;
		}
	}
	.contents {
		position: relative;
		padding: 9rem 56rem 9rem 10rem;
		background: url(../img/company/greeting_bg.webp) no-repeat 50%;
		background-size: cover;
		@media screen and (min-width: 744px), print {
			margin-right: 10rem;
		}
		@media screen and (max-width: 743px) {
			padding: 4rem 2rem 10rem var(--sp-base-padding);
		}
		.lead_txt {
			margin-bottom: 6rem;
			@media screen and (max-width: 743px) {
				margin-bottom: 3rem;
			}
		}
		.name {
			margin-top: 4rem;
			b {
				font-size: 2.1rem;
				font-weight: var(--font-weight);
			}
			@media screen and (max-width: 743px) {
				margin-top: 3rem;
				line-height: 1.9;
				b {
					font-size: 1.45rem;
				}
			}
		}
		.ph {
			position: absolute;
			right: 16.6rem;
			bottom: 0;
			width: 28rem;
			@media screen and (max-width: 743px) {
				right: 2rem;
				width: 13rem;
				height: 20rem;
				img {
					width: 100%;
					height: 100%;
					object-fit: cover;
					object-position: 50% 0;
				}
			}
		}
	}
	@media screen and (max-width: 743px) {
		.company-top-line {
			top: 19.6rem;
		}
	}
}
.company_bg_block {
	position: relative;
	z-index: auto;
	&::before {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(135deg, var(--color-grad1) -50%, var(--color-grad2) 100%);
		opacity: 0.1;
		z-index: 3;
	}
	& > * {
		position: relative;
		z-index: 4;
	}
}
.company_outline {
	position: relative;
	padding-block: 20rem 18rem;
	@media screen and (max-width: 743px) {
		padding-block: 7rem;
	}
	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		width: calc(50% + 20rem);
		background-color: #fff;
		opacity: 0.5;
		@media screen and (max-width: 743px) {
			width: calc(50% + 4.8rem);
		}
	}
	.contents {
		@media screen and (min-width: 744px), print {
			margin-right: 10rem;
		}
	}
}
.company_fellowship {
	position: relative;
	padding-block: 18rem 20rem;
	@media screen and (max-width: 743px) {
		padding-block: 7rem 8rem;
	}
}

.other_contents.-company {
	padding-top: 12rem;
	@media screen and (max-width: 743px) {
		padding-top: 7rem;
	}
	&::before {
		content: "";
		position: absolute;
		top: -32rem;
		left: 0;
		right: calc(50% + 54rem);
		bottom: calc(20rem + 1lh + .5rem);
		background-color: #fff;
		opacity: 0.5;
		z-index: -1;
		@media screen and (max-width: 743px) {
			right: auto;
			top: 0;
			bottom: 0;
			width: var(--line-left-pos);
		}
	}
}


/* ============================================================================

	業務内容

============================================================================= */
.business_main {
	position: relative;
	z-index: auto;
	.contents {
		position: relative;
		padding-top: 16rem;
		padding-bottom: 10rem;
		padding-left: 10rem;
		z-index: 4;
		@media screen and (max-width: 743px) {
			padding-top: 8rem;
			padding-bottom: 0;
			padding-inline: var(--sp-base-padding);
		}
		&::before {
			content: "";
			position: absolute;
			left: 0;
			top: 0;
			bottom: 0;
			width: 92rem;
			background-color: #fff;
			opacity: 0.5;
			z-index: -1;
			@media screen and (max-width: 743px) {
				width: calc(50% + 5rem);
				bottom: 10.5rem;
			}
		}
		h2 {
			position: relative;
			margin-bottom: 6rem;
			font-size: 4.2rem;
			line-height: calc(76 / 42);
			@media screen and (max-width: 743px) {
				margin-bottom: 3rem;
				font-size: 2rem;
				line-height: calc(76 / 40);
			}
			&::before {
				content: "";
				position: absolute;
				left: -10rem;
				top: .4em;
				bottom: .4em;
				width: .4rem;
				background: linear-gradient(155deg, var(--color-grad1) -10%, var(--color-grad2) 190%);
				@media screen and (max-width: 743px) {
					width: 0.3rem;
					left: calc(var(--sp-base-padding) * -1);
				}
			}
		}
		.paragraph {
			@media screen and (min-width: 744px), print {
				width: 66rem;
			}
		}
		.ph {
			@media screen and (min-width: 744px), print {
				position: absolute;
				right: 0;
				top: 16rem;
				width: 56rem;
			}
			@media screen and (max-width: 743px) {
				margin-top: 1lh;
				aspect-ratio: 690 / 420;
				img {
					width: 100%;
					height: 100%;
					object-fit: cover;
					object-position: 50% 0;
				}
			}
		}
	}
	.business-main-line {
		top: 21rem;
	}
}
.business-marquee {
	margin-block: 12rem 2rem;
	@media screen and (max-width: 743px) {
		margin-block: 8rem 1rem;
	}
}

.business_contents {
	position: relative;
	padding-bottom: 10rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		padding-bottom: 8rem;
	}
	.video {
		position: absolute;
		right: 0;
		width: 60rem;
		bottom: 0;
		height: calc(100% + 75rem);
		mix-blend-mode: multiply;
		z-index: 3;
		object-fit: cover;
		@media screen and (max-width: 743px) {
			height: calc(100% + 25rem);
			bottom: 0;
			width: 20rem;
		}
	}

	.business {
		position: relative;
		height: 100lvh;
		display: flex;
		align-items: end;
		color: #fff;
		z-index: 4;
		@media screen and (max-width: 743px) {
			height: calc(100lvh - 5rem);
		}

		&:not(:last-child) {
			margin-bottom: 2rem;
			@media screen and (max-width: 743px) {
				margin-bottom: 1.5rem;
			}
		}

		.content {
			padding-bottom: 7rem;
			padding-left: 16rem;
			@media screen and (max-width: 743px) {
				padding-bottom: 4rem;
				padding-left: 4rem;
			}
			h2 {
				margin-bottom: 3rem;
				font-size: 3.8rem;
				line-height: calc(60 / 38);
				@media screen and (max-width: 743px) {
					margin-bottom: 2rem;
					font-size: 2rem;
					line-height: 1.5;
				}
			}
			.num {
				position: absolute;
				left: 0;
				top: -5.2rem;
				width: 10rem;
				height: 10rem;
				font-size: 1.8rem;
				line-height: 1;
				@media screen and (max-width: 743px) {
					position: relative;
					top: 0;
					width: 6.6rem;
					height: 6.6rem;
					margin-bottom: 3rem;
					font-size: 1.2rem;
				}
				span {
					position: absolute;
					right: 0;
					bottom: -.1em;
					font-size: 4.2rem;
					line-height: 1;
					@media screen and (max-width: 743px) {
						font-size: 2.7rem;
					}
				}
				&::before {
					content: "";
					position: absolute;
					left: 0;
					bottom: 0;
					width: calc(100% * 1.4142);
					height: 1px;
					background: linear-gradient(to right, var(--color-theme) 50%, #cccccc 50%);
					transform-origin: 0 100%;
					transform: rotate(-45deg);
				}
			}
		}

		.bg {
			position: absolute;
			inset: 0 2rem;
			pointer-events: none;
			user-select: none;
			z-index: -1;
			@media screen and (max-width: 743px) {
				inset: 0 1rem;
			}
			&::after {
				content: "";
				position: absolute;
				inset: 45% 0 0;
				background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, rgba(0,0,0,.5) 100%);
				opacity: 0.5;
			}
		}

		&.-value1 {
			.bg {
				img {
					@media screen and (max-width: 743px) {
						object-position: 80%;
					}
				}
			}
		}
	}
}
.business_performance {
	padding-block: 9rem 16rem;
	@media screen and (max-width: 743px) {
		padding-block: 8rem;
	}
	.contents {
		position: relative;
		padding-bottom: 9rem;
		text-align: center;
		font-weight: var(--font-weight-bold);
		@media screen and (max-width: 743px) {
			padding-bottom: 3rem;
		}

		.lead {
			font-size: 3.8rem;
			margin-bottom: 4rem;
			line-height: 1.5;
			@media screen and (max-width: 743px) {
				margin-bottom: 3rem;
				font-size: 2rem;
			}
		}
		dt {
			margin-bottom: 2rem;
			font-size: 3.2rem;
			line-height: 1.5;
			@media screen and (max-width: 743px) {
				margin-bottom: 1rem;
				font-size: 2rem;
			}
		}
		dd {
			font-size: 5rem;
			line-height: 1.5;
			.num {
				font-size: 19rem;
				line-height: 0.8;
			}
			.notes {
				display: block;
				font-size: 2.4rem;
			}
			@media screen and (max-width: 743px) {
				font-size: 2.5rem;
				.num {
					font-size: 9.5rem;
				}
				.notes {
					font-size: 1.5rem;
				}
			}
		}

		.graph {
			position: absolute;
			right: 0;
			left: 0;
			bottom: 0;
			width: 98rem;
			max-width: 100%;
			margin-inline: auto;
			z-index: -1;
		}
	}
}
.business_partner {
	position: relative;
	margin-bottom: 7rem;
	padding-block: 16rem;
	color: #fff;
	@media screen and (min-width: 744px), print {
		height: 60rem;
		._w {
			position: static;
		}
		.contents {
			position: absolute;
			inset: 0;
			display: flex;
			justify-content: center;
			align-items: center;
		}
	}
	@media screen and (max-width: 743px) {
		margin-bottom: 4rem;
		padding-block: 7rem;
	}
	.contents {
		text-align: center;
		dt {
			margin-bottom: 2rem;
			font-size: 3.2rem;
			line-height: 1.5;
			@media screen and (max-width: 743px) {
				margin-bottom: 1rem;
				font-size: 2rem;
			}
		}
		dd {
			font-size: 5rem;
			line-height: 1.5;
			.num {
				font-size: 19rem;
				line-height: 0.8;
			}
			@media screen and (max-width: 743px) {
				font-size: 2.5rem;
				.num {
					font-size: 9.5rem;
				}
			}
		}
	}
}
.other_contents.-business {
	padding-top: 10rem;
	@media screen and (max-width: 743px) {
		padding-top: 3rem;
	}
	&::before {
		content: "";
		position: absolute;
		top: -7.1rem;
		left: 0;
		right: calc(50% + 54rem);
		bottom: 0;
		background-color: #fff;
		opacity: 0.5;
		z-index: -1;
		@media screen and (max-width: 743px) {
			top: -4.1rem;
			right: calc(50% + 7.8rem);
		}
	}
}

/* ============================================================================

	アクセス

============================================================================= */
.access_main {
	position: relative;
	padding-top: 19rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		padding-top: 8rem;
		padding-bottom: 7rem;
	}
	& > * {
		position: relative;
		z-index: 4;
	}
	&::before {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		left: calc(50% - 21rem);
		height: 55rem;
		background-color: #fff;
		opacity: 0.5;
		z-index: -1;
		@media screen and (max-width: 743px) {
			left: calc(50% - 6rem);
			height: 48rem;
		}
	}
	.map {
		margin-bottom: 7rem;
		@media screen and (max-width: 743px) {
			margin-bottom: 2rem;
		}
		iframe {
			width: 100%;
			height: 70rem;
			@media screen and (max-width: 743px) {
				height: 30rem;
			}
		}
	}
	.access {
		max-width: 106rem;
		margin-inline: auto;
		@media screen and (min-width: 744px), print {
			display: flex;
			gap: 12rem;
		}
		.tel {
			margin-top: 0.4rem;
			font-size: 2.4rem;
			line-height: calc(40 / 24);
			@media screen and (max-width: 743px) {
				margin-top: 0;
				font-size: 1.4rem;
			}
		}
	}
	.transportation {
		@media screen and (max-width: 743px) {
			margin-top: 1rem;
			font-size: 1rem;
			line-height: 2;
		}
	}
}
.other_contents.-access {
	padding-top: 23rem;
	@media screen and (max-width: 743px) {
		padding-top: 7rem;
	}
	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: calc(50% + 54rem);
		bottom: calc(20rem + 1lh + .5rem);
		background-color: #fff;
		opacity: 0.5;
		z-index: -1;
		@media screen and (max-width: 743px) {
			right: calc(50% + 7.8rem);
			bottom: 0;
		}
	}
	@media screen and (min-width: 744px), print {
		&::after {
			content: "";
			position: absolute;
			bottom: 0;
			right: calc(50% + 76rem);
			height: 41rem;
			border-left: 1px solid #fff;
			z-index: -1;
		}
	}
}


/* ============================================================================

	採用情報

============================================================================= */
.recruit_about {
	position: relative;
	padding-block: 14rem 16rem;
	color: #fff;
	overflow: hidden;
	clip-path: inset(0px);
	@media screen and (max-width: 743px) {
		padding-block: 7rem;
	}
	.bg {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		inset: 0;
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
}

.recruit_style {
	position: relative;
	overflow: hidden;
	padding-block: 14rem 16rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		padding-block: 7rem 8rem;
	}
	& > * {
		z-index: 4;
	}
	.video {
		position: absolute;
		top: 0;
		left: 0;
		width: calc(50% + 40rem);
		height: 100%;
		mix-blend-mode: multiply;
		z-index: 3;
		object-fit: cover;
		@media screen and (max-width: 743px) {
			width: 100%;
		}
	}
	.txt {
		color: #fff;
		.lead {
			margin-bottom: 3rem;
			font-size: 3rem;
			line-height: 2;
			@media screen and (max-width: 743px) {
				margin-bottom: 2rem;
				font-size: 2rem;
				line-height: calc(76 / 40);
			}
		}
	}
	.contents {
		padding: 8rem 0 8rem 6rem;
		background-color: #fff;
		@media screen and (max-width: 743px) {
			margin-top: 4rem;
			padding: 3rem var(--sp-base-padding);
		}
		section {
			display: flex;
			&:not(:last-child) {
				margin-bottom: 4rem;
				padding-bottom: 4rem;
				border-bottom: 1px solid #cccccc;
				@media screen and (max-width: 743px) {
					margin-bottom: 2rem;
					padding-bottom: 2rem;
				}
			}
			h3 {
				flex-shrink: 0;
				width: 10rem;
				margin-right: 3rem;
				border-right: 1px solid;
				color: var(--color-theme);
				font-size: 2rem;
				line-height: 1.8;
				.num {
					margin-right: 0.1em;
					font-size: 3.4rem;
					line-height: 1;
				}
				@media screen and (max-width: 743px) {
					width: 6rem;
					margin-right: 2rem;
					font-size: 1.1rem;
					.num {
						font-size: 2rem;
					}
				}
			}
			dl {
				dt {
					margin-bottom: 2rem;
					font-size: 2.2rem;
					line-height: 1.5;
					font-weight: var(--font-weight-bold);
					@media screen and (max-width: 743px) {
						margin-bottom: 1rem;
						font-size: 1.4rem;
					}
				}
			}
		}
	}
	@media screen and (min-width: 744px), print {
		.recruit_style_contents {
			display: flex;
			justify-content: space-between;
			.txt {
				width: 49rem;
			}
			.contents {
				position: relative;
				width: 81rem;
				&::before {
					content: "";
					position: absolute;
					inset: 0;
					background-color: #fff;
					width: 200rem;
					z-index: -1;
				}
			}
		}
	}

	.recruit-style-line1 {
		top: 5rem;
		@media screen and (max-width: 743px) {
			top: 7rem;
		}
	}
	.recruit-style-line2 {
		bottom: 10rem;
	}
}

.recruit_trouble {
	position: relative;
	padding-block: 16rem 8rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		padding-block: 0;
	}
	.contents {
		position: relative;
		padding: 16rem 10rem 14rem;
		background-color: rgba(255,255,255,.6);
		z-index: 4;
		@media screen and (max-width: 743px) {
			padding-block: 7rem;
		}

		.title {
			font-size: 3.6rem;
			line-height: calc(70 / 36);
			@media screen and (max-width: 743px) {
				font-size: 2rem;
				line-height: calc(76 / 40);
			}
			.green_box {
				margin-right: 0.3em;
				padding: 0.2rem 1rem 0.4rem;
				background-color: var(--color-theme);
				color: #fff;
				@media screen and (max-width: 743px) {
					margin-right: .2em;
					padding: 0.1rem .5rem 0.2rem;
					white-space: nowrap;
				}
			}
			.underline {
				color: var(--color-theme);
				text-decoration: underline;
				text-underline-offset: .3em;
			}
		}

		.trouble {
			display: flex;
			flex-wrap: wrap;
			gap: 6rem 3rem;
			margin-top: 9rem;
			@media screen and (max-width: 743px) {
				gap: 3rem .5rem;
				margin-top: 4rem;
			}
			li {
				position: relative;
				width: calc((100% - 3rem * 2) / 3);
				display: flex;
				justify-content: center;
				align-items: center;
				padding: 4.8rem 0;
				text-align: center;
				background-color: #fff;
				font-size: 2rem;
				line-height: 1.9;
				@media screen and (max-width: 743px) {
					width: calc((100% - .5rem * 1) / 2);
					padding: 3rem 2rem;
					text-align: left;
					font-size: 1.2rem;
					line-height: calc(40 / 24);
				}
				.num {
					position: absolute;
					top: 0;
					right: 0;
					left: 0;
					text-align: center;
					color: var(--color-theme);
					font-size: 3.6rem;
					line-height: 1;
					transform: translateY(-50%);
					@media screen and (max-width: 743px) {
						font-size: 2rem;
					}
				}
			}
		}

		.section {
			margin-top: 14rem;
			@media screen and (max-width: 743px) {
				margin-top: 6rem;
			}
			.list {
				margin-top: 4rem;
				@media screen and (min-width: 744px), print {
					column-width: calc((120rem - 8rem) / 2);
					column-gap: 8rem;
				}
				@media screen and (max-width: 743px) {
					margin-top: 2.5rem;
				}
				li {
					position: relative;
					padding-left: 1.4em;
					@media screen and (max-width: 743px) {
						font-size: 1.1rem;
						line-height: calc(50 / 22);
					}
					&::before {
						content: "●";
						position: absolute;
						top: 0;
						left: 0;
					}
				}
			}
		}
	}
	.bg {
		position: absolute;
		left: 50%;
		top: 0;
		width: 100%;
		min-width: 160rem;
		transform: translateX(-50%);
		z-index: -1;
	}
}
.recruit_feature {
	margin-top: 8rem;
	margin-bottom: 10rem;
	@media screen and (max-width: 743px) {
		margin-top: 6rem;
		margin-bottom: 4rem;
	}
}

.recruit_interview {
	position: relative;
	margin-top: 10rem;
	margin-bottom: 16rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		margin-top: 4rem;
		margin-bottom: 8rem;
	}
	& > * {
		z-index: 4;
	}
	&::after {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		left: calc(50% + 21rem);
		height: 40rem;
		background: linear-gradient(155deg, var(--color-grad1) -10%, var(--color-grad2) 190%);
		mix-blend-mode: multiply;
		z-index: 3;
		@media screen and (max-width: 743px) {
			left: calc(50% + 9rem);
			height: 20rem;
		}
	}

	.interview_box {
		background-color: rgba(255,255,255,.5);
		&:not(:last-child) {
			margin-bottom: 8rem;
			@media screen and (max-width: 743px) {
				margin-bottom: 3rem;
			}
		}
		.interview_header {
			position: relative;
			background-color: #fff;
			cursor: pointer;
			@media screen and (min-width: 744px), print {
				display: flex;
				align-items: center;
				flex-direction: row-reverse;
				justify-content: space-between;
				.ph {
					width: 50%;
				}
				.txt {
					padding-left: 8rem;
				}
			}
			@media screen and (max-width: 743px) {
				.ph {
					img {
						aspect-ratio: 690 / 330;
						width: 100%;
						height: 100%;
						object-fit: cover;
						object-position: 50% 0;
					}
				}
				.txt {
					position: relative;
					padding: 3rem;
				}
			}
			.num {
				margin-bottom: 3rem;
				font-size: 2rem;
				line-height: 1.5;
				@media screen and (max-width: 743px) {
					position: absolute;
					right: 1.5rem;
					top: 2.5rem;
					font-size: 1.2rem;
					line-height: 1;
					writing-mode: vertical-rl;
				}
			}
			.type {
				font-size: 2rem;
				color: var(--color-theme);
				line-height: 1.6;
				@media screen and (max-width: 743px) {
					font-size: 1.5rem;
				}
			}
			.name {
				position: relative;
				line-height: 1.6;
				.initial {
					position: absolute;
					bottom: 0;
					font-size: 4rem;
					line-height: 1;
					margin-left: 3rem;
					@media screen and (max-width: 743px) {
						font-size: 2.5rem;
						margin-left: 1.5rem;
					}
				}
			}
			h3 {
				margin-top: 2rem;
				font-size: 3rem;
				line-height: 2;
				@media screen and (max-width: 743px) {
					margin-top: 1.5rem;
					font-size: 1.5rem;
				}
			}
			.ico {
				position: absolute;
				right: 0;
				bottom: 0;
				width: 5rem;
				height: 5rem;
				background-color: #fff;
				color: var(--color-theme);
				z-index: 3;
				transition: background var(--transition), color var(--transition);
				@media screen and (max-width: 743px) {
					width: 4rem;
					height: 4rem;
				}
				&::before,
				&::after {
					content: "";
					position: absolute;
					right: 0;
					left: 0;
					top: calc(50% - 1px);
					width: 1.6rem;
					margin-inline: auto;
					border-top: 2px solid;
				}
				&::after {
					transform: rotate(90deg);
					transition: transform var(--transition);
				}
			}
			&.-open {
				.ico {
					background-color: var(--color-theme);
					color: #fff;
					&::after {
						transform: rotate(0);
					}
				}
			}
			@media (hover) {
				.ph {
					transition: opacity var(--transition);
				}
				&:hover .ph {
					opacity: 0.7;
				}
			}
		}
		.interview_content {
			padding: 10rem;
			@media screen and (max-width: 743px) {
				padding: 4rem var(--sp-base-padding);
			}
			.interview {
				&:not(:last-child) {
					margin-bottom: 10rem;
					@media screen and (max-width: 743px) {
						margin-bottom: 3rem;
					}
				}
				h4 {
					font-size: 3rem;
					line-height: 2;
					margin-bottom: 2rem;
					@media screen and (max-width: 743px) {
						margin-top: 2rem;
						margin-bottom: 1rem;
						font-size: 1.5rem;
					}
				}
				@media screen and (min-width: 744px), print {
					display: flex;
					justify-content: space-between;
					line-height: calc(38 / 16);
					&.-ph_r {
						flex-direction: row-reverse;
					}
					& > * {
						width: 56rem;
					}
					h4 {
						margin-top: -0.25lh;
					}
				}
			}
		}
	}
}

.recruit_timetable {
	position: relative;
	margin-bottom: 10rem;
	padding-block: 15rem 16rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		margin-bottom: 4rem;
		padding-block: 7rem 6rem;
	}
	& > * {
		z-index: 4;
	}
	&::before {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(155deg, var(--color-grad1) -10%, var(--color-grad2) 190%);
		mix-blend-mode: multiply;
		opacity: 0.1;
		z-index: 3;
	}
	.timetable {
		@media screen and (min-width: 744px), print {
			margin-top: 9rem;
		}
		@media screen and (max-width: 743px) {
			padding-bottom: 2rem;
			overflow-x: auto;
		}
		ol {
			display: flex;
			justify-content: center;
			font-size: 1.8rem;
			line-height: calc(30 / 18);
			text-align: center;
			@media screen and (max-width: 743px) {
				width: calc(11rem * 8);
				font-size: 1.3rem;
				line-height: calc(40 / 26);
			}
			li {
				position: relative;
				width: 16rem;
				@media screen and (max-width: 743px) {
					width: 11rem;
				}
				&:nth-child(1) {
					--clock: #288b5b;
				}
				&:nth-child(2) {
					--clock: #25845e;
				}
				&:nth-child(3) {
					--clock: #237e61;
				}
				&:nth-child(4) {
					--clock: #207765;
				}
				&:nth-child(5) {
					--clock: #1e7168;
				}
				&:nth-child(6) {
					--clock: #1b6b6c;
				}
				&:nth-child(7) {
					--clock: #18646f;
				}
				&:nth-child(8) {
					--clock: #165e73;
				}
				&:not(:last-child)::after {
					content: "";
					position: absolute;
					top: calc(6rem / 2);
					right: -2rem;
					width: 4rem;
					border-top: 1px solid;
					@media screen and (max-width: 743px) {
						top: calc(4.6rem / 2);
						right: -1.5rem;
						width: 3rem;
					}
				}
				.clock {
					position: relative;
					width: 6rem;
					height: 6rem;
					margin-inline: auto;
					margin-bottom: 1.5rem;
					background-color: #fff;
					border: calc((6rem - .6rem) / 2) solid var(--clock);
					border-radius: 100%;
					@media screen and (max-width: 743px) {
						width: 4.6rem;
						height: 4.6rem;
						border: calc((4.6rem - .4rem) / 2) solid var(--clock);
					}
					&::before,
					&::after {
						content: "";
						position: absolute;
						bottom: 50%;
						left: calc(50% - 1px);
						width: 2px;
						background-color: #fff;
						border-radius: 2rem;
						transform-origin: 50% 100%;

						transition: transform 1s;
						transform: rotate(calc(0 / 12 * 360deg));
					}
					&::before {
						height: 1.8rem;
						transform: rotate(var(--hour-rotate, 0deg));
						@media screen and (max-width: 743px) {
							height: 1.3rem;
						}
					}
					&::after {
						height: 2.4rem;
						transition: transform 1s;
						transform: rotate(var(--time-rotate, 0deg));

						@media screen and (max-width: 743px) {
							height: 1.8rem;
						}
					}

				}
			}
		}
	}
	.recruit-timetable-line {
		top: 7rem;
	}
}
.recruit_training_point {
	position: relative;
	z-index: auto;
	&::after {
		content: "";
		position: absolute;
		top: -19rem;
		right: 0;
		width: 4rem;
		height: 38rem;
		background: linear-gradient(155deg, var(--color-grad1) -10%, var(--color-grad2) 190%);
		mix-blend-mode: multiply;
		z-index: 4;
	}
}

.recruit_training {
	margin-top: 8rem;
	margin-bottom: 14rem;
	@media screen and (max-width: 743px) {
		margin-top: 7rem;
		margin-bottom: 3rem;
	}
	.training {
		margin-bottom: 8rem;
		@media screen and (min-width: 744px), print {
			display: flex;
			.ph {
				flex-shrink: 0;
				width: 62rem;
				margin-right: 8rem;
			}
			.content {
				padding-top: 6rem;
			}
		}
		@media screen and (max-width: 743px) {
			margin-bottom: 6rem;
		}
		h3 {
			margin-bottom: 3rem;
			font-size: 3rem;
			line-height: 2;
			@media screen and (max-width: 743px) {
				margin-top: 2rem;
				margin-bottom: 1.5rem;
				font-size: 1.9rem;
				line-height: calc(64 / 38);
			}
		}
	}
	.training_other {
		margin-top: 9rem;
		@media screen and (min-width: 744px), print {
			display: flex;
			flex-wrap: wrap;
			gap: 8rem 10rem;
			dl {
				width: calc((100% - 10rem * 2) / 3);
			}
		}
		@media screen and (max-width: 743px) {
			margin-top: 6rem;
			dl:not(:last-child) {
				margin-bottom: 3rem;
			}
		}
		dt {
			margin-bottom: 2rem;
			font-size: 2rem;
			line-height: 1.5;
			font-weight: var(--font-weight-bold);
			@media screen and (max-width: 743px) {
				margin-bottom: 1rem;
				font-size: 1.6rem;
			}
		}
	}
}

.recruit_steps {
	@media screen and (max-width: 743px) {
		margin-top: 4rem;
	}
}

.recruit_bottom_bg {
	position: relative;
	padding-block: 14rem 16rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		padding-block: 7rem 0;
	}
	& > * {
		position: relative;
		z-index: 4;
	}
	&::before {
		content: "";
		position: absolute;
		inset: 0;
		top: -31rem;
		background: linear-gradient(155deg, var(--color-grad1) -10%, var(--color-grad2) 190%);
		mix-blend-mode: multiply;
		opacity: 0.1;
		z-index: 3;
		@media screen and (max-width: 743px) {
			top: -20rem;
		}
	}

	.recruit-bottom-line1 {
		top: 20rem;
	}
	.recruit-bottom-line2 {
		bottom: 43rem;
	}
}

.recruit_benefits {
	margin-bottom: 14rem;
	@media screen and (max-width: 743px) {
		margin-bottom: 7rem;
	}
	.contents {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		@media screen and (min-width: 744px), print {
			gap: 8rem 0;
			padding-top: 2rem;
			dl {
				width: 26rem;
				dd {
					margin-inline: -2rem;
				}
			}
		}
		@media screen and (max-width: 743px) {
			gap: 3rem 0;
			dl {
				width: calc(50% - 1rem);
				font-size: 1.1rem;
				line-height: calc(40 / 22);
			}
		}
		dl {
			text-align: center;
			dt {
				margin-bottom: 0.5rem;
				font-size: 2rem;
				line-height: 2;
				.ico {
					position: relative;
					display: block;
					width: 8.4rem;
					margin: 0 auto 2rem;
					border: 2px solid #FFF;
					border-radius: 50%;
					overflow: hidden;
				}
				@media screen and (max-width: 743px) {
					font-size: 1.5rem;
					.ico {
						width: 6.2rem;
						margin-bottom: 1rem;
						border: 1px solid #FFF;
					}
				}
				.bg {
					position: absolute;
					top: 0;
					left: 0;
					width: 600%;
					max-width: none;
					height: 300%;
					&.type02 {
						top: 0%;
						left: -200%;
					}
					&.type03 {
						top: 0%;
						left: -400%;
					}
					&.type04 {
						top: -100%;
						left: 0%;
					}
					&.type05 {
						top: -100%;
						left: -200%;
					}
					&.type06 {
						top: -100%;
						left: -400%;
					}
				}
				.icon {
					display: block;
					position: relative;
				}


				.ico {
					transform: scale(0);
					.icon {
						transform: translateY(100%);
					}
				}
				.ico.is-animate {
					transform: scale(1);
					transition: transform 0.6s cubic-bezier(0.25, 0, 0.1, 1.5);
					.icon {
						transform: translateY(0%);
						transition: transform 0.6s;
						transition-delay: 0.8s;
					}
				}
			}
		}
	}
}

.recruit_guidelines {
	margin-bottom: 14rem;
	@media screen and (max-width: 743px) {
		margin-bottom: 8rem;
	}
}


/* ============================================================================

	協力会社

============================================================================= */
.partner-top-line {
	margin-top: 6rem;
	@media screen and (max-width: 743px) {
		margin-top: 4rem;
	}
}
.partner_main {
	padding-block: 8rem 6rem;
	text-align: center;
	@media screen and (max-width: 743px) {
		padding-block: 4rem;
		text-align: left;
	}
	.logo {
		margin-top: calc(1lh + 3rem);
		@media screen and (max-width: 743px) {
			width: 13rem;
			margin-top: 1lh;
			margin-inline: auto;
			text-align: center;
		}
	}
}
.partner-marquee {
	padding-block: 7rem 14rem;
	@media screen and (max-width: 743px) {
		padding-block: 4rem;
	}
}
.partner_works {
	padding-bottom: 16rem;
	@media screen and (min-width: 744px), print {
		display: flex;
		align-items: end;
		.ph {
			width: 100rem;
		}
		.content {
			position: relative;
			margin-left: -26rem;
			padding-left: 8rem;
			padding-top: 8rem;
			background-color: var(--bg-base);
			z-index: 2;
		}
	}
	@media screen and (max-width: 743px) {
		padding-bottom: 6rem;
		.ph {
			margin-right: var(--sp-base-padding);
			margin-bottom: 3.5rem;
			aspect-ratio: 690 / 460;
			img {
				width: 100%;
				height: 100%;
				object-fit: cover;
			}
		}
	}
}
.partner_green_block1 {
	clip-path: inset(0px);
	position: relative;
	padding-top: 1px;
	padding-bottom: 16rem;
	margin-bottom: 16rem;
	z-index: auto;
	@media screen and (max-width: 743px) {
		margin-bottom: 8rem;
		padding: 1px 0 8rem;
	}
	.bg {
		position: sticky;
		top: 0;
		left: 0;
		height: 0;
	}
	.video {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		object-fit: cover;
		z-index: 3;
		@media screen and (min-width: 744px), print {
			width: calc(100% - 4rem);
			margin-inline: 2rem;
		}
		@media screen and (max-width: 743px) {
			width: 100%;
		}
	}
	& > * {
		position: relative;
		z-index: 4;
	}
	.partner-green-line1 {
		top: 27rem;
	}
	.partner-green-line2 {
		bottom: 9rem;
	}
}
.partner_look-forward {
	padding-block: 6rem;
	background-color: #fff;
	margin-top: 16rem;
	@media screen and (max-width: 743px) {
		margin-top: 0;
	}
	h2 {
		text-align: center;
		font-size: 2.6rem;
		line-height: calc(50 / 26);
		@media screen and (max-width: 743px) {
			margin-bottom: 3rem;
			font-size: 1.6rem;
			line-height: calc(60 / 32);
		}
	}
	.list {
		font-size: 1.8rem;
		@media screen and (max-width: 743px) {
			font-size: 1.3rem;
			line-height: calc(50 / 26);
		}
		li {
			position: relative;
			padding-left: 1.5em;
			&::before {
				content: "●";
				position: absolute;
				top: 0;
				left: 0;
				color: var(--color-theme);
			}
		}
		li + li {
			margin-top: 0.5rem;
			@media screen and (max-width: 743px) {
				margin-top: 1rem;
			}
		}
	}
	@media screen and (min-width: 744px), print {
		display: flex;
		align-items: center;
		border-radius: 1rem;
		h2 {
			padding-inline: 6rem;
		}
		.list {
			padding-left: 6rem;
			border-left: 1px solid;
		}
	}
}
.partner_trouble {
	margin-top: 9rem;
	color: #fff;
	@media screen and (max-width: 743px) {
		margin-top: 7rem;
	}
	h2 {
		margin-bottom: 5rem;
		text-align: center;
		font-size: 3.8rem;
		line-height: 2;
		.-s {
			display: block;
			font-size: 2.2rem;
			line-height: 1.6;
		}
		@media screen and (max-width: 743px) {
			margin-bottom: 3rem;
			font-size: 2rem;
			.-s {
				font-size: 1.4rem;
			}
		}
	}
	.contents {
		@media screen and (min-width: 744px), print {
			display: flex;
			flex-wrap: wrap;
			gap: 8rem 9rem;
			.trouble {
				width: calc((100% - 9rem * 2) / 3);
			}
		}
	}
	.trouble {
		position: relative;
		padding-top: 8.4rem;
		@media screen and (max-width: 743px) {
			padding-top: 4.5rem;
			&:not(:last-child) {
				margin-bottom: 3rem;
			}
		}
		.ico {
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			width: 10rem;
			margin-inline: auto;
			z-index: 2;
			@media screen and (max-width: 743px) {
				width: 6rem;
			}
		}
		.question {
			position: relative;
			.q {
				position: absolute;
				left: 0;
				bottom: 100%;
				font-size: 2rem;
				@media screen and (max-width: 743px) {
					font-size: 1.5rem;
				}
			}
			h3 {
				padding-inline: 4rem;
				background-color: #fff;
				border-radius: 1rem;
				font-size: 1.6rem;
				line-height: 2;
				color: var(--color-base);
				@media screen and (min-width: 744px), print {
					display: flex;
					align-items: center;
					height: 12rem;
				}
				@media screen and (max-width: 743px) {
					margin-bottom: 1rem;
					border-radius: .5rem;
					padding: 2rem 3rem;
					font-size: 1.3rem;
				}
			}
		}
		.answer {
			.a {
				display: block;
				font-size: 2rem;
				border-bottom: .4rem solid rgba(255,255,255,.2);
				@media screen and (max-width: 743px) {
					font-size: 1.5rem;
					border-bottom-width: 0.3rem;
				}
			}
			p {
				line-height: calc(44 / 16);
				background: repeating-linear-gradient(
					to bottom,
					transparent 0,
					transparent calc(1lh - 1px),
					rgba(255,255,255,.2) calc(1lh - 1px),
					rgba(255,255,255,.2) 1lh
				);
				@media screen and (max-width: 743px) {
					line-height: calc(64.5 / 24);
				}
			}
		}

		.ico {
			clip-path: circle(0%);
		}
		&.is-active {
			.ico {
				clip-path: circle(50%);
				transition: clip-path 1.0s ease;
			}
		}
	}
}
.partner_cv_btn {
	margin-top: 9rem;
	.lead {
		margin-bottom: 3rem;
		text-align: center;
		font-size: 2rem;
		color: #fff;
	}
	@media screen and (max-width: 743px) {
		margin-top: 6rem;
		.lead {
			margin-bottom: 1rem;
			font-size: 1.2rem;
		}
	}
}
.partner_green_block2 {
	clip-path: inset(0px);
	position: relative;
	z-index: 4;
	padding-top: 1px;
	padding-bottom: 16rem;
	margin-block: 16rem;
	color: #fff;
	@media screen and (max-width: 743px) {
		margin-block: 8rem 5rem;
		padding-top: 1px;
		padding-bottom: 8rem;
	}
	.bg {
		position: sticky;
		top: 0;
		left: 0;
		height: 0;
		z-index: 3;
	}
	.video {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100vh;
		object-fit: cover;
		@media screen and (min-width: 744px), print {
			width: calc(100% - 4rem);
			margin-inline: 2rem;
		}
		@media screen and (max-width: 743px) {
			width: 100%;
		}
	}
	& > section {
		position: relative;
		z-index: 4;
	}
}
.partner_feature {
	margin-top: 16rem;
	padding-bottom: 10rem;
	@media screen and (max-width: 743px) {
		margin-top: 8rem;
		padding-bottom: 4rem;
	}
	.partner_feature_contents {
		@media screen and (min-width: 744px), print {
			display: flex;
			flex-wrap: wrap;
			gap: 1rem;
			dl {
				width: calc((100% - 1rem * 2) / 3);
			}
		}
		dl {
			padding: 4.4rem;
			border: 1px solid #fff;
			border-radius: 1rem;
			@media screen and (max-width: 743px) {
				padding: 2rem 4rem;
				border-radius: .75rem;
				&:not(:last-child) {
					margin-bottom: 1rem;
				}
			}
			dt {
				text-align: center;
				font-size: 2rem;
				line-height: 1.9;
				white-space: nowrap;
				@media screen and (max-width: 743px) {
					font-size: 1.6rem;
					line-height: calc(60 / 32);
				}
				&::after {
					content: "";
					display: block;
					width: 0;
					height: 1.6rem;
					margin-block: 1rem;
					border-left: 1px solid var(--color-theme);
					margin-inline: auto;
				}
			}
		}
	}
}
.partner_synergy {
	padding-top: 5rem;
	@media screen and (max-width: 743px) {
		padding-top: 3rem;
	}
	.list {
		margin-top: 8rem;
		@media screen and (max-width: 743px) {
			margin-top: 4rem;
		}
		dl {
			padding-bottom: 3rem;
			border-bottom: 1px solid #fff;
			@media screen and (min-width: 744px), print {
				display: flex;
				justify-content: space-between;
				dd {
					width: 69rem;
				}
			}
			&:not(:last-child) {
				margin-bottom: 5rem;
				@media screen and (max-width: 743px) {
					margin-bottom: 3rem;
				}
			}
			dt {
				font-size: 2rem;
				line-height: 1.9;
				@media screen and (max-width: 743px) {
					margin-bottom: 1rem;
					font-size: 1.6rem;
					line-height: calc(60 / 32);
				}
			}
		}
	}
}
.partner_flow {
	margin-bottom: 12rem;
	@media screen and (max-width: 743px) {
		padding-top: 2rem;
		margin-bottom: 7rem;
	}
}
.partner_faq {
	margin-top: 4rem;
	margin-bottom: 16rem;
	@media screen and (max-width: 743px) {
		margin-bottom: 8rem;
	}
}

.partner_faq_point {
	position: relative;
	&::after {
		content: "";
		position: absolute;
		top: -33rem;
		left: 0;
		width: 2rem;
		height: 44rem;
		background: linear-gradient(155deg, var(--color-grad1) -10%, var(--color-grad2) 190%);
	}
}
.contact_box.-partner {
	@media screen and (min-width: 744px), print {
		margin-bottom: -7rem;
	}
}
.other_contents.-partner {
	z-index: auto;
	& > * {
		position: relative;
		z-index: 4;
	}
	@media screen and (min-width: 744px), print {
		padding-top: 22rem;
	}
	@media screen and (max-width: 743px) {
		padding-top: 7rem;
	}
	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		bottom: 0;
		width: var(--line-left-pos);
		background-color: #fff;
		opacity: 0.5;
		z-index: -1;
		@media screen and (max-width: 743px) {
			width: 11rem;
		}
	}
}


/* ============================================================================

	404

============================================================================= */
.page404 {
}


/* ============================================================================

	JSの動き

============================================================================= */
[data-anim01] ,
[data-anim02] ,
[data-anim02a] ,
[data-anim03] {
	opacity: 0;
}

[data-anim04] > span {
	opacity: 0;
}
