@charset "utf-8";
/* all
-------------------------------------------------------------------*/
:root {
	--black: #1a1a1a;
	--white: #fff;
	--main_color: #E50012;
	--sub_color: #565D7A;
	--item_marign: 12.5vw;
	--border_color: #D9D9D9;
	--fitler_white: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(7500%) hue-rotate(24deg) brightness(113%) contrast(111%);
}
html {
	background: var(--white);
	color: var(--black);
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 16px;
	line-height: 1.65;
	scroll-behavior: smooth;
	scroll-padding-top: 6.75em;
}
body {
	width: 100%;
	font-size: 100%;
	text-align: center;
	min-width: 1080px;
	text-size-adjust: none;
	font-feature-settings: 'palt';
	-webkit-text-size-adjust: none;
}
body:has(header #switch:checked),
body:has(#entry-wrap .entry-box_btn.opened) {
	overflow: hidden;
}
main {
	overflow: clip;
	width: 100%;
}
main>* {
	padding-right: var(--item_marign);
}
.syncopate {
	font-family: "Syncopate", sans-serif;
}
.roboto {
	font-family: "Roboto", sans-serif;
}
.sitewrap {
	width: 1080px;
	min-width: 1080px;
	margin-inline: auto;
	text-align: left;
	box-sizing: border-box;
}
.sitewrap div[class$="inner"] {
	width: min(100%, 960px);
	margin-inline: auto;
}
img {
	max-width: 100%;
	height: auto;
}
*:has(>wbr) {
	word-break: keep-all;
}
@media screen and (max-width:1240px) {
	:root {
		--item_marign: 0;
	}
	body,
	.sitewrap {
		width: 100%;
		min-width: 0;
	}
}
@media screen and (max-width:1000px) {
	.sitewrap>* {
		padding-left: 2%;
		padding-right: 2%;
	}
}
@media screen and (max-width:767px) {
	html {
		font-size: 14px;
	}
	main>*:first-child {
		padding-top: 70px;
	}
	.sitewrap>* {
		padding-left: 30px;
		padding-right: 30px;
	}
}
/* header
-------------------------------------------------------------------*/
header {
	position: fixed;
	z-index: 999;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	inset: 0 0 auto;
	margin-right: var(--item_marign);
}
header:has(.drop_menu #switch:checked) {
	z-index: 1100;
}
header #site_ttl {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.75em;
	padding: 1.785em 2.25em;
	padding-right: 1em;
	white-space: nowrap;
	text-decoration:none;
}
header #site_ttl img{
	transition:filter .4s;
}
header #site_ttl .site_ttl-text {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	flex-direction: column;
	gap: 0.5em;
	line-height: 1.2;
}
header #site_ttl .site_ttl-text :is(p,span){
	position:relative;
	z-index:1;
}
header #site_ttl .site_ttl-text p {
	font-size: 1rem;
	font-weight: 500;
}
header #site_ttl .site_ttl-text span {
	font-size: 0.875em;
	font-weight: 500;
	letter-spacing: 0.05em;
}
header .subnav-box {
	display: flex;
	align-items: center;
	gap: 1em;
	padding-bottom: 1.25em;
	margin-right: 1.5em;
}
header .subnav-box .subnav-corporate_list {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 1em;
	margin-right: 1em;
}
/*header .subnav-box .subnav-corporate_list::after {
	content: "";
	width: 1px;
	height: 2.25em;
	background: var(--sub_color);
	order: -1;
}*/
header .subnav-box .subnav-corporate_list li:first-child {
	order: -1;
}
header .subnav-box .subnav-corporate_list li a {
	position: relative;
	z-index: 10;
	display: block;
	font-size: 0.875rem;
	line-height: 1.2;
	text-decoration: none;
}
header a .site_ttl-text :is(p,span)::before,
header .subnav-box .subnav-corporate_list li a::before,
header .subnav-box .subnav-recruit_list li a span::before {
	position: absolute;
	z-index: -10;
	display: inline-block;
	content: "";
	width: 100%;
	height: 1px;
	background: var(--sub_color);
	left: 0;
	bottom: 0.15em;
	scale: 0;
	transform-origin: right;
	transition: scale .4s;
}
header .subnav-box .subnav-corporate_list li:not(:first-child):last-child a::after {
	position: absolute;
	inset: auto 0 -0.5em;
	z-index: 10;
	display: inline-block;
	content: "";
	width: 1px;
	height: 0.5em;
	background: var(--sub_color);
	margin-inline: auto;
}
header .subnav-box .subnav-recruit_box {
	position: relative;
	z-index: 10;
	min-width: 200px;
	min-height: 3em;
}
header .subnav-box .subnav-recruit_box dl {
	position: absolute;
	background: #fff;
	border: 1px solid var(--border_color);
	border-radius: 1.5em;
}
header .subnav-box .subnav-recruit_box dt {
	position: relative;
	z-index: 10;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	min-width: 200px;
	min-height: 3em;
	font-size: 1rem;
	font-weight: 500;
	color: var(--black);
	cursor: pointer;
}
header .subnav-box .subnav-recruit_box.box {
	position: relative;
	z-index: 10;
	min-width: 200px;
	min-height: 3em;
}
header .subnav-box .subnav-recruit_box dt.opened {
	font-weight: 700;
	color: var(--sub_color);
}
header .subnav-box .subnav-recruit_box dt::before {
	position: absolute;
	z-index: 10;
	display: inline-block;
	content: "";
	width: 0.625em;
	aspect-ratio: 10/8.33;
	background: var(--black);
	mask: url(../img/common/icon-arrow.svg) no-repeat;
	mask-size: contain;
	top: 50%;
	left: 1.125em;
	translate: 0 -50%;
	transition: scale .4s;
}
header .subnav-box .subnav-recruit_box dt.opened::before {
	scale: 1 -1;
}
header .subnav-box .subnav-recruit_box dd {
	padding: 0 1em 1.25em;
}
header .subnav-box .subnav-recruit_list {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	flex-direction: column;
	gap: 0.5em;
	text-align: left;
}
header .subnav-box .subnav-recruit_list li a {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 0.5em;
	font-size: 0.875rem;
	text-decoration: none;
}
header .subnav-box .subnav-recruit_list li a span {
	position: relative;
	z-index: 10;
}
header .subnav-box .subnav-recruit_list li a i {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	min-width: 0.8575em;
	aspect-ratio: 1/1;
	background: var(--sub_color);
	border-radius: 100%;
	margin-top: 0.4em;
}
header .subnav-box .subnav-recruit_list li a i::before {
	content: "";
	width: 0.3em;
	aspect-ratio: 1/1;
	border-top: 1.5px solid var(--white);
	border-right: 1.5px solid var(--white);
	box-sizing: border-box;
	rotate: 45deg;
	translate: -0.05em;
}
header .subnav-box .subnav-recruit_box.box_part,
header .subnav-box .subnav-recruit_box.box_part dt {
	min-width:250px;
}
header .drop_menu {
	position: fixed;
	z-index: 1000;
	inset: 0 0 0 auto;
	width: var(--item_marign);
}
header .drop_menu::before {
	position: absolute;
	z-index: -100;
	display: inline-block;
	content: "";
	width: 100vw;
	background: #f8f8f8;
	inset: 0 0 0 auto;
	opacity: 0;
	visibility: hidden;
	transition: opacity .4s;
}
header .drop_menu:has(#switch:checked)::before {
	opacity: 0.8;
	visibility: visible;
}
header .drop_menu label[for="switch"] {
	position: relative;
	z-index: 20;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: 100%;
	height: 100%;
	background: var(--white);
	border-left: 1px solid var(--border_color);
}
header .drop_menu label[for="switch"] span {
	position: relative;
	z-index: 10;
	display: block;
	width: 2.25em;
	height: .5em;
}
header .drop_menu label[for="switch"] span::before,
header .drop_menu label[for="switch"] span::after {
	position: absolute;
	z-index: 10;
	display: inline-block;
	content: "";
	width: 100%;
	height: 2px;
	background: #343434;
	inset: auto 0;
	transition: inset .4s;
}
header .drop_menu label[for="switch"] span::before {
	top: 0;
}
header .drop_menu label[for="switch"] span::after {
	top: 6px;
}
header .drop_menu #switch:checked~label[for="switch"] span::before,
header .drop_menu #switch:checked~label[for="switch"] span::after {
	top: 50%;
	bottom: auto;
	transform: rotate(15deg);
}
header .drop_menu #switch:checked~label[for="switch"] span::after {
	transform: rotate(-15deg);
}
header .drop_menu #NavWrap {
	position: absolute;
	z-index: 10;
	inset: 0 auto;
	text-align: left;
	width: 420px;
	/* max-height: 100vh; */
	/* max-height: 100svh; */
	right: -420px;
	background: var(--white);
	overflow: hidden;
	transition: right .4s;
}
header .drop_menu #switch:checked~#NavWrap {
	right: var(--item_marign);
}
header .drop_menu #NavWrap>.nav-list,
header .drop_menu .nav-sc_inner {
	max-height: 100vh;
	max-height: 100svh;
	height: fit-content;
	overflow-y: auto;
}
header .drop_menu #NavWrap>.nav-list {
	transition: translate .4s;
}
header .drop_menu .nav-list_on {
	position: absolute;
	z-index: 10;
	inset: 0;
	translate: 100%;
	transition: translate .4s;
}
header .drop_menu #NavWrap>.nav-list::after,
header .drop_menu .nav-sc_inner::after {
	display: inline-block;
	content: "";
	width: 100%;
	padding-bottom: 4.5em;
}
header .drop_menu #NavWrap>.nav-list:has(~.nav-list_on.opened) {
	translate: -100%;
}
header .drop_menu .nav-list:has(li.nav-item_trigger)~.nav-list_on.opened {
	translate: 0;
}
header .drop_menu .nav-list>li[class^="nav-item"] {
	border-bottom: 1px solid var(--border_color);
}
header .drop_menu .nav-list .nav-item>*,
header .drop_menu .nav-list .nav-chlid_list li a,
header .drop_menu .nav-list .nav-item_chlid dt a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.5em;
	width: 100%;
	min-height: 2.5em;
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
	padding: 1em 2em;
	box-sizing: border-box;
}
header .drop_menu .nav-list .nav-item_chlid dt a {
	padding: 0;
}
header .drop_menu .nav-list li i {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: 1.25em;
	aspect-ratio: 1/1;
	border-radius: 100%;
	background: var(--sub_color);
}
header .drop_menu .nav-list li i::before {
	content: "";
	width: 0.5em;
	aspect-ratio: 10/8.33;
	background: var(--white);
	mask: url(../img/common/icon-arrow.svg) no-repeat;
	mask-size: contain;
	rotate: -90deg;
}
header .drop_menu .nav-list li:is(.nav-item_trigger, .nav-item_typettl) {
	position: relative;
	z-index: 10;
}
header .drop_menu .nav-list>li:is(.nav-item_trigger, .nav-item_typettl)>* {
	padding-block: 1.625em;
}
header .drop_menu .nav-list .nav-item_chlid {
	padding: 1em 2em;
}
header .drop_menu .nav-list .nav-item_chlid dt {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 1em;
}
header .drop_menu .nav-list .nav-chlid_list {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	flex-direction: column;
	gap: 1em;
}
header .drop_menu .nav-list .nav-chlid_list li {
	position: relative;
	z-index: 10;
	width: 100%;
}
header .drop_menu .nav-list .nav-chlid_list li::before,
header .drop_menu .nav-list li.nav-item_typettl::before {
	position: absolute;
	z-index: 10;
	display: inline-block;
	content: "";
	width: 1.5em;
	height: 1px;
	background: var(--black);
	top: 0.85em;
	left: 0;
}
header .drop_menu .nav-list li.nav-item_typettl::before {
	width: 1.25em;
	top: 50%;
}
header .drop_menu .nav-list .nav-chlid_list li :is(a, p) {
	min-height: 0;
	font-weight: 400;
	padding-block: 0;
	padding-right: 0;
}
header .drop_menu .nav-list_on .nav-list li.nav-item_trigger p {
	justify-content: flex-end;
	flex-direction: row-reverse;
	gap: 2em;
}
header .drop_menu .nav-list_on .nav-list li.nav-item_trigger i {
	rotate: 180deg;
}
header .drop_menu .nav-sns_list {
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
	border-bottom: 1px solid var(--border_color);
}
header .drop_menu .nav-sns_list li:not([class]) {
	width: calc(100% / 6.59375);
	aspect-ratio: 1/1;
	border-left: 1px solid var(--border_color);
}
header .drop_menu .nav-sns_list li:last-child:not(:nth-child(5)) {
	border-right: 1px solid var(--border_color);
}
header .drop_menu .nav-sns_list li.nav-store_item {
	width: calc(100% - (100% / 6.59375) * 4);
}
header .drop_menu .nav-sns_list li a {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.75em;
	width: 100%;
	height: 100%;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--black);
	text-decoration: none;
	padding: 0.5em;
}
header .drop_menu .entry-btn {
	position: fixed;
	z-index: 10;
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	gap: 0.5em;
	bottom: 0;
	width: 404px;
	background: var(--white);
	padding: 0.5em;
}
header .drop_menu .entry-btn a {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: min(100%, 360px);
	min-height: 3.75em;
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--white);
	background: var(--main_color);
	border: 2px solid var(--main_color);
	border-radius: 3.75em;
	text-decoration: none;
	margin-inline: auto;
	transition: color .4s, background .4s;
}
#switch {
	position: absolute;
	z-index: -1000;
	inset: 0 0 auto auto;
	width: 0;
	height: 0;
	opacity: 0;
}
@media (any-hover: hover) {
	header a#site_ttl:hover img{
		filter: saturate(1.1) brightness(1.1);;
	}

	header .drop_menu .nav-list .nav-item:not(.nav-item_typettl)>*:hover,
	header .drop_menu .nav-list .nav-chlid_list li a:hover,
	header .drop_menu .nav-list .nav-item_chlid dt a:hover,
	header .drop_menu .nav-sns_list li a:hover {
		opacity: 0.8;
	}
	header a:hover .site_ttl-text :is(p,span)::before,
	header .subnav-box .subnav-corporate_list li a:hover::before,
	header .subnav-box .subnav-recruit_list li a:hover span::before {
		scale: 1;
		transform-origin: left;
	}
	header .subnav-box .subnav-recruit_box dt:hover {
		font-weight: 700;
		color: var(--sub_color);
	}
	header .drop_menu label[for="switch"]:hover span::before {
		top: -4px;
	}
	header .drop_menu label[for="switch"]:hover span::after {
		top: 10px;
	}
	header .drop_menu .entry-btn a:hover {
		color: var(--main_color);
		background: var(--white);
	}
}
@media screen and (max-width: 1520px) {
	header .subnav-box {
		gap: 0.625em;
	}
	header .subnav-box .subnav-corporate_list {
		margin-right: 0.625em;
	}
	header .subnav-box .subnav-recruit_box,
	header .subnav-box .subnav-recruit_box dt {
		min-width: 150px;
		min-height: 3em;
		font-size: 0.875rem;
	}
	header .subnav-box .subnav-recruit_list {
		gap: 0.5em;
	}
	header .subnav-box .subnav-recruit_box.box_part,
	header .subnav-box .subnav-recruit_box.box_part dt {
		min-width:210px;
	}
}
@media screen and (max-width: 1325px) {
	header .subnav-box {
		display: none;
	}
}
@media screen and (max-width: 1240px) {
	header .drop_menu label[for="switch"] {
		position: absolute;
		top: 1.75em;
		right: 0;
		width: 5em;
		height: auto;
		aspect-ratio: 1/1;
		background: transparent;
		border: none;
	}
	header .drop_menu label[for="switch"] span {
		width: 2.75em;
	}
	header .drop_menu .nav-list {
		padding-top: 6.75em;
	}
	header .drop_menu .nav-list>li:first-child {
		border-top: 1px solid var(--border_color);
	}
}
@media screen and (max-width:767px) {
	header #site_ttl {
		min-height: 5em;
		gap: 0.75em;
		padding: 1.4265em 1em;
	}
	header #site_ttl .site_ttl-image {
		width: min(24.6153846154vw, 96px);
	}
	header #site_ttl .site_ttl-text {
		gap: 0.25em;
	}
	header #site_ttl .site_ttl-text p,
	header #site_ttl .site_ttl-text span {
		font-size: min(3.07692307692vw, 0.85em);
	}
	header .drop_menu::before {
		display: none;
	}
	header .drop_menu label[for="switch"] {
		top: 0;
	}
	header .drop_menu label[for="switch"] span {
		width: 2.5em;
	}
	header .drop_menu #NavWrap {
		width: 100vw;
		right: -100vw;
	}
	header .drop_menu #switch:checked~#NavWrap {
		right: 0;
	}
	header .drop_menu .nav-list {
		padding-top: 5em;
	}
	header .drop_menu .entry-btn {
		width: 100%;
		margin-inline: auto;
	}
}
/* contents
-------------------------------------------------------------------*/
.section,
section {
	position: relative;
	z-index: 10;
}
.slick-slider .slick-arrow {
	position: absolute;
	z-index: 100;
	display: block;
	content: "";
	width: 2.5em;
	aspect-ratio: 1/1;
	font-size: 1rem;
	color: transparent;
	background: var(--white);
	border: 1px solid var(--border_color);
	border-radius: 50%;
	top: 50%;
	left: 0;
	translate: 0 -50%;
	cursor: pointer;
	transition: background .4s;
}
.slick-slider .slick-arrow.slick-next {
	left: auto;
	right: 0;
}
.slick-slider .slick-arrow::before {
	position: absolute;
	z-index: 20;
	display: inline-block;
	content: "";
	width: 0.625em;
	aspect-ratio: 10/8;
	background: var(--black);
	mask: url(../img/common/icon-arrow.svg) no-repeat;
	mask-size: cover;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	rotate: 90deg;
	transition: background .4s;
}
.slick-slider .slick-arrow.slick-next::before {
	scale: -1;
}
.slick-slider .slick-arrow:focus {
	background: var(--white);
}
.slick-slider .slick-arrow:focus::before {
	background: var(--black);
}
.slick-slider .slick-dots {
	width: 100%;
	text-align: center;
	line-height: 0;
	padding: 0;
	margin-block: 1.125em;
	list-style: none;
}
.slick-slider .slick-dots li {
	position: relative;
	z-index: 10;
	display: inline-block;
	width: 0.5em;
	height: 0.5em;
	border-radius: 100%;
	line-height: 1;
	margin: 0 0.5em;
	padding: 0;
	cursor: pointer;
	overflow: hidden;
}
.slick-slider .slick-dots li button {
	font-size: 0;
	line-height: 0;
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	cursor: pointer;
	color: transparent;
	border: 0;
	outline: none;
	background: transparent;
}
.slick-slider .slick-dots li button::before {
	position: absolute;
	z-index: 10;
	display: inline-block;
	content: "";
	width: 100%;
	height: 100%;
	background: var(--main_color);
	top: 0;
	left: 0;
}
.slick-slider .slick-dots li.slick-active button::before {
	background: var(--border_color);
}
@media (any-hover: hover) {
	.slick-slider .slick-arrow:hover {
		background: var(--border_color);
	}
	.slick-slider .slick-arrow:hover::before {
		background: var(--white);
	}
	.slick-slider .slick-dots li button:hover,
	.slick-slider .slick-dots li button:focus {
		outline: none;
	}
}
@media screen and (max-width: 767px) {
	.slick-slider .slick-arrow {
		width: 2.8575em;
	}
	.slick-slider .slick-arrow::before {
		width: 0.75em;
	}
	.slick-slider .slick-dots {
		margin-block: 1em;
	}
	.slick-slider .slick-dots li {
		margin: 0.25em 0.5em;
	}
}
#entry-wrap {
	position: fixed;
	z-index: 1000;
	width: calc(100% - var(--item_marign));
	inset: auto 0 0;
	margin-right: var(--item_marign);
}
#entry-wrap .entry-box_btn {
	position: absolute;
	z-index: 10;
	inset: 50% 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: min(100%, 360px);
	min-height: 3em;
	font-size: 1rem;
	font-weight: 700;
	color: var(--white);
	background: var(--sub_color);
	border: 2px solid var(--sub_color);
	border-radius: 3em;
	margin-inline: auto;
	translate: .0 -50%;
	cursor: pointer;
	transition: color .4s, background .4s;
}
#entry-wrap .entry-box_btn::before {
	position: absolute;
	z-index: -10;
	inset: auto auto 0 50%;
	display: inline-block;
	content: "";
	width: 100svw;
	height: 100svh;
	background: var(--black);
	translate: calc(-50% + calc(var(--item_marign) / 2));
	opacity: 0.3;
	visibility: hidden;
}
#entry-wrap .entry-box_btn.opened::before {
	visibility: visible;
}
#entry-wrap .entry-box_list {
	position: relative;
	z-index: 20;
	width: 100vw;
	background: var(--white);
	translate: 0 100%;
	transition: translate .4s;
}
#entry-wrap:has(.entry-box_btn.opened) .entry-box_list {
	translate: 0 0;
}
#entry-wrap .entry-box_list ul {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 1.25em;
	min-height: 6em;
	padding: 1em;
}
#entry-wrap .entry-box_list li a {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 0.5em;
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
}
#entry-wrap .entry-box_list li a span {
	position: relative;
	z-index: 10;
}
#entry-wrap .entry-box_list li a span::before {
	position: absolute;
	z-index: -10;
	display: inline-block;
	content: "";
	width: 100%;
	height: 1px;
	background: var(--sub_color);
	left: 0;
	bottom: 0.15em;
	scale: 0;
	transform-origin: right;
	transition: scale .4s;
}
#entry-wrap .entry-box_list li a i {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: 1.25em;
	aspect-ratio: 1/1;
	background: var(--sub_color);
	border-radius: 100%;
	margin-top: 0.3em;
}
#entry-wrap .entry-box_list li a i::before {
	content: "";
	width: 0.5em;
	aspect-ratio: 10/8.33;
	background: var(--white);
	mask: url(../img/common/icon-arrow.svg) no-repeat;
	mask-size: contain;
	rotate: -90deg;
}
@media (any-hover: hover) {
	#entry-wrap .entry-box_btn:hover {
		color: var(--sub_color);
		background: var(--white);
	}
	#entry-wrap .entry-box_list li a:hover span::before {
		scale: 1;
		transform-origin: left;
	}
}
@media screen and (max-width:1240px) {
	#entry-wrap .entry-box_btn::before {
		translate: -50%;
	}
}
@media screen and (max-width: 767px) {
	#entry-wrap {
		width: 100%;
	}
	#entry-wrap .entry-box_btn {
		inset: auto 0 2em;
		width: calc(100% - 60px);
		translate: 0;
	}
	#entry-wrap .entry-box_btn::before {
		z-index: 100;
		background: #F7F7F7;
		opacity: 1;
		top: -12em;
		bottom: auto;
	}
	#entry-wrap .entry-box_btn.opened::after {
		position: absolute;
		z-index: 110;
		content: "\00D7";
		display: inline-flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		width: 1.5em;
		aspect-ratio: 1/1;
		font-size: 2.5rem;
		font-weight: normal;
		line-height: 0.8;
		background: var(--sub_color);
		border-radius: 100%;
		padding-bottom: 0.1em;
		box-sizing: border-box;
		inset: 0;
		margin: auto;
	}
	#entry-wrap .entry-box_list {
		position: fixed;
		inset: 0 0 7em;
		display: flex;
		justify-content: center;
		align-items: flex-end;
		width: 100vw;
		background: #F7F7F7;
		translate: 0 0;
		opacity: 0;
		visibility: hidden;
		transition: opacity .4s;
	}
	#entry-wrap:has(.entry-box_btn.opened) .entry-box_list {
		opacity: 1;
		visibility: visible;
	}
	#entry-wrap .entry-box_list ul {
		align-items: flex-start;
		flex-direction: column;
		gap: 1.5em;
		min-height: 0;
		margin-block: auto 0;
	}
}
.sitemap-wrap {
	min-height: 600px;
	background: url(../img/common/bg-graphic.svg);
	background-size: 1150px;
	background-position: left -420px top 70px;
	background-color: #F7F7F7;
	padding-block: 8.5em 5em;
	padding-right: var(--item_marign);
}
.sitemap-wrap .sitemap-inner {
	display: flex;
	justify-content: space-between;
	align-content: space-between;
	flex-wrap: wrap;
	flex-direction: column;
	gap: 1em;
	width: min(100%, 1080px);
	height: 260px;
	text-align: left;
	margin-inline: auto;
}
.sitemap-wrap .sitemap-ttl_box {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	flex-direction: column;
	gap: 0.25em;
}
.sitemap-wrap .sitemap-ttl {
	font-size: 1.125rem;
	font-weight: 700;
}
.sitemap-wrap .sitemap-ttl_box p {
	font-size: 1rem;
	font-weight: 700;
}
.sitemap-wrap .sitemap-recruit_box {
	height: 100%;
	order: 3;
}
.sitemap-wrap .sitemap-recruit_box dt+dd {
	margin-top: 0.75em;
}
.sitemap-wrap .sitemap-recruit_box dd+dt {
	margin-top: 1.25em;
}
.sitemap-wrap .sitemap-recruit_ttl {
	position: relative;
	z-index: 10;
	font-weight: 700;
	padding-left: 1.5em;
}
.sitemap-wrap .sitemap-recruit_ttl::before,
.sitemap-wrap .sitemap-other_list>li:not(:has(dl))::before {
	position: absolute;
	z-index: 10;
	display: inline-block;
	content: "";
	width: 1em;
	height: 1px;
	background: var(--black);
	top: 0.85em;
	left: 0;
}
.sitemap-wrap ul {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	flex-direction: column;
	gap: 0.75em;
}
.sitemap-wrap li a {
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	gap: 0.5em;
	font-size: 0.875rem;
	text-decoration: none;
}
.sitemap-wrap li a span {
	position: relative;
	z-index: 10;
}
.sitemap-wrap li a span::before {
	position: absolute;
	z-index: -10;
	display: inline-block;
	content: "";
	width: 100%;
	height: 1px;
	background: var(--sub_color);
	left: 0;
	bottom: 0.15em;
	scale: 0;
	transform-origin: right;
	transition: scale .4s;
}
.sitemap-wrap .sitemap-recruit_list {
	padding-left: 1.5em;
}
.sitemap-wrap .sitemap-recruit_list li a i {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: 1.1435em;
	aspect-ratio: 1/1;
	background: var(--sub_color);
	border-radius: 100%;
	margin-top: 0.3em;
}
.sitemap-wrap .sitemap-recruit_list li a i::before {
	content: "";
	width: 0.425em;
	aspect-ratio: 1/1;
	border-top: 2px solid var(--white);
	border-right: 2px solid var(--white);
	box-sizing: border-box;
	rotate: 45deg;
	translate: -0.1em;
}
.sitemap-wrap .sitemap-other_list {
	gap: 1.25em;
	height: 100%;
	order: 4;
}
.sitemap-wrap .sitemap-other_list>li:not(:has(dl)) {
	position: relative;
	z-index: 10;
	padding-left: 1.5em;
}
.sitemap-wrap .sitemap-other_list>li>a {
	font-size: 1rem;
	font-weight: 700;
}
.sitemap-wrap .sitemap-other_list>li>a i {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: 1.5em;
	aspect-ratio: 1/1;
	background: var(--sub_color);
	border-radius: 100%;
}
.sitemap-wrap .sitemap-other_list>li>a i::before {
	content: "";
	width: 0.5em;
	aspect-ratio: 10/8.33;
	background: var(--white);
	mask: url(../img/common/icon-arrow.svg) no-repeat;
	mask-size: contain;
	rotate: -90deg;
}
.sitemap-wrap .sitemap-sitelink_list {
	order: 2;
}
.sitemap-wrap .sitemap-sitelink_list li a i {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: 1.1435em;
	aspect-ratio: 1/1;
	background: var(--sub_color);
	border-radius: 100%;
	margin-top: 0.1em;
}
.sitemap-wrap .sitemap-sitelink_list li a i::before {
	content: "";
	width: 0.5em;
	aspect-ratio: 1/1;
	background: var(--white);
	mask: url(../img/common/icon-target.svg) no-repeat;
	mask-size: contain;
	translate: -0.05em;
}
@media (any-hover: hover) {
	.sitemap-wrap li a:hover span::before {
		scale: 1;
		transform-origin: left;
	}
}
@media screen and (max-width:1270px) {
	.sitemap-wrap .sitemap-inner {
		padding-left: 2%;
		padding-right: 2%;
	}
}
@media screen and (max-width:767px) {
	.sitemap-wrap {
		min-height: 0;
		background-size: 1150px;
		background-position: left 200px top 30px;
		padding-block: 5em;
		padding-inline: 30px;
	}
	.sitemap-wrap .sitemap-inner {
		gap: 3em 0;
		width: 100%;
		height: auto;
		padding-inline: 0;
	}
	.sitemap-wrap .sitemap-ttl_box {
		align-items: center;
		width: 100%;
	}
	.sitemap-wrap .sitemap-ttl {
		font-size: 1.125rem;
		font-weight: 700;
	}
	.sitemap-wrap .sitemap-recruit_box dt+dd {
		margin-top: 0.25em;
	}
	.sitemap-wrap .sitemap-recruit_box dd+dt {
		margin-top: 0.75em;
	}
	.sitemap-wrap ul {
		gap: 0.5em;
	}
	.sitemap-wrap .sitemap-other_list {
		gap: 0.75em;
	}
	.sitemap-wrap .sitemap-sitelink_list {
		order: 5;
	}
}
/* footer
-------------------------------------------------------------------*/
#pageTop-pc {
	position: fixed;
	z-index: 1000;
	bottom: 0;
	right: 0;
}
#entry-wrap:has(.entry-box_btn.opened)~#pageTop-pc {
	z-index: 900;
}
#pageTop-pc a {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	flex-direction: column;
	gap: 0.5em;
	width: var(--item_marign);
	min-width: 70px;
	min-height: 150px;
	text-decoration: none;
	pointer-events: none;
}
#pageTop-pc.is-active a {
	pointer-events: inherit;
}
#pageTop-pc a::before,
#pageTop-pc a::after {
	display: inline-block;
	content: "";
	width: 1px;
	height: 3.875em;
	background: var(--border_color);
}
#pageTop-pc a::before {
	position: absolute;
	inset: auto 0 0;
	margin-inline: auto;
	background: var(--black);
	animation: scroll 2s infinite;
}
#pageTop-pc.is-active a::before {
	animation-name: page-top;
}
#pageTop-pc a span {
	font-weight: bold;
	letter-spacing: 0.1em;
	writing-mode: vertical-rl;
	padding-left: 0.25em;
}
#pageTop-pc a span.txt-top,
#pageTop-pc.is-active a span.txt-scroll {
	display: none;
}
#pageTop-pc.is-active a span.txt-top {
	display: block;
}
#pageTop-sp {
	display: none;
}
footer {
	background: #3F3F3F;
	padding-block: 2.25em 4.875em;
	padding-right: var(--item_marign);
}
footer .footer-inner {
	width: min(100%, 1080px);
	text-align: left;
	color: var(--white);
	margin-inline: auto;
}
footer .footer-sns_list {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.5em;
	margin-bottom: 3.75em;
}
footer .footer-sns_item a {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: 3em;
	aspect-ratio: 1/1;
	background: #535353;
	border-radius: 100%;
	text-decoration: none;
	transition: background .4s;
}
footer .footer-sns_item img {
	filter: var(--fitler_white);
}
footer .footer-link_list {
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
	gap: 1em;
	margin-bottom: 2em;
}
footer .footer-link_item {
	line-height: 0.8;
}
footer .footer-link_item:not(:first-child)::before {
	content: "";
	display: inline-block;
	width: 1px;
	height: 100%;
	background: var(--white);
	margin-right: 1em;
}
footer .footer-link_item a {
	position: relative;
	z-index: 10;
	font-size: 0.875rem;
	text-decoration: none;
}
footer .footer-link_item a::before {
	position: absolute;
	z-index: -10;
	display: inline-block;
	content: "";
	width: 100%;
	height: 1px;
	background: var(--white);
	left: 0;
	bottom: 0;
	scale: 0;
	transform-origin: right;
	transition: scale .4s;
}
footer small {
	font-size: 0.75rem;
}
@media (any-hover: hover) {
	footer .footer-sns_item a:hover {
		background: #363636;
	}
	footer .footer-link_item a:hover::before {
		scale: 1;
		transform-origin: left;
	}
}
@media screen and (max-width:1270px) {
	footer .footer-inner {
		padding-left: 2%;
		padding-right: 2%;
	}
}
@media screen and (max-width:767px) {
	#pageTop-pc {
		display: none;
	}
	#pageTop-sp {
		display: block;
		margin-bottom: 1em;
	}
	#pageTop-sp a {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 0.5em;
		font-size: 0.875rem;
		letter-spacing: 0.1em;
		text-transform: uppercase;
		text-decoration: none;
	}
	#pageTop-sp a::before {
		content: "";
		width: 0.75em;
		aspect-ratio: 10/8.33;
		background: var(--white);
		mask: url(../img/common/icon-arrow.svg) no-repeat;
		mask-size: contain;
		rotate: 180deg;
	}
	footer {
		padding-block: 3em 6em;
	}
	footer .footer-inner {
		width: 100%;
		text-align: center;
	}
	footer .footer-link_list {
		align-items: center;
		flex-direction: column;
		gap: 1.5em;
		margin-bottom: 3em;
	}
	footer .footer-link_item:not(:first-child)::before {
		display: none;
	}
}