@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: #302f2c;
	--color-base-op0: rgba(48,47,44,0);
	--color-black: #000;
	--color-theme: #b48448;
	--color-theme-op0: rgba(180,132,72,0);
	/* --bg-gray: #e6e6e6; */
	--bg-light: #f5ede2;
	--border-base: #dcdbd6;
	--base-width: 120rem;
	--pc-base-padding: 8rem;
	--sp-base-padding: calc(15 / 375 * 100vw);
	--font-family-jp: 'Noto Sans JP', sans-serif;
	--font-family-en: 'Noto Sans', sans-serif;
	--font-family-cn: 'Noto Sans SC', sans-serif;
	--font-family-tw: 'Noto Sans TC', sans-serif;
	--font-family-kr: 'Noto Sans KR', sans-serif;
	--font-family-min: 'Zen Old Mincho', serif;
	--font-family-min-en: 'Georgia', serif;
	--font-family-min-cn: 'Noto Serif SC', serif;
	--font-family-min-tw: 'Noto Serif TC', serif;
	--font-family-min-kr: 'Noto Serif KR', serif;
	--font-weight: 400;
	--font-weight-medium: 500;
	--font-weight-bold: 700;
	--transition-duration: .3s;
	--transition: var(--transition-duration) ease-in-out;

	--pc-header-height: 10rem;
	--pc-header-height-min: 8rem;
}


/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
html {
	font-size: 62.5%;
	scroll-behavior: smooth;

}
html.no-scroll-behavior {
	scroll-behavior: auto;
}
@media screen and (min-width: 744px), print {
	html {
		font-size: min(calc(10px - (1500px - 100vw) * (10 / 1500)), 10px);
	}
}
body {
	background-color: #fff;
	font-size: 1.8rem;
	line-height: 2;
	color: var(--color-base);
	word-wrap: break-word;
	overflow-wrap: break-word;
	letter-spacing: .1em;

	font-family: var(--font-family-jp);
	font-weight: var(--font-weight);
	font-feature-settings: "palt";
	font-style: normal;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
}
html[lang="en"] body {
	font-family: var(--font-family-en);
	letter-spacing: .05em;
}
html[lang="zh-CN"] body {
	font-family: var(--font-family-cn);
}
html[lang="zh-TW"] body {
	font-family: var(--font-family-tw);
}
html[lang="ko"] body {
	font-family: var(--font-family-kr);
}
@media screen and (max-width: 743px) {
	body {
		font-size: 1.5rem;
		line-height: calc(30 / 18);
	}
}

*,
*::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);
}
:where(img) {
	max-width: 100%;
	height: auto;
}
: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]) {
	color: var(--color-theme);
	text-decoration: underline 1px;
	text-underline-offset: .3em;
	outline: none;
	cursor: pointer;
}
:where(a[href]._a_reverse,._a_reverse a[href]) {
	text-decoration-color: var(--color-theme-op0);
}
@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) {
		transition: fill var(--transition);
	}
	:where(a[href]:hover, a[data-modal]:hover) {
		text-decoration-color: var(--color-theme-op0);
	}
	:where(a[href]._a_reverse, a[data-modal]._a_reverse, ._a_reverse a[href], ._a_reverse a[data-modal]):hover {
		text-decoration-color: var(--color-theme);
	}
	:where(a[href]._a_reverse.-hvw):hover,
	:where(._a_reverse.-hvw a[href]):hover {
		text-decoration-color: #fff;
	}
	:where(a[href]._a_reverse.-hvbk):hover,
	:where(._a_reverse.-hvbk a[href]):hover {
		text-decoration-color: var(--color-base);
	}
	:where(a[href] ._a_reverse) {
		text-decoration: underline 1px;
		text-decoration-color: var(--color-theme-op0);
	}
	:where(a[href] ._a_reverse) {
		transition: text-decoration-color .2s ease-in-out;
	}
	:where(a[href]:hover ._a_reverse) {
		text-decoration-color: var(--color-theme);
	}
	:where(a[href] ._hl) {
		text-decoration: underline 1px var(--color-theme-op0);
	}
	:where(a[href]:hover ._hl) {
		text-decoration-color: var(--color-theme);
	}
	:where(a[href]:hover ._hl.-hvw) {
		text-decoration-color: #fff;
	}
	:where(a[href]:hover ._hl.-hvbk) {
		text-decoration-color: var(--color-base);
	}
}


: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;
}

/* slick
====================================================================== */
.slick-list,.slick-slider,.slick-track{position:relative;display:block}.slick-slider{box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{top:0;left:0;margin-left:auto;margin-right:auto}.slick-track:after,.slick-track:before{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-slide,.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir=rtl] .slick-slide{float:right}.slick-initialized .slick-slide,.slick-slide img{display:block}.slick-arrow.slick-hidden,.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}

/* 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_black {
	color: var(--color-black) !important;
}

/* font
====================================================================== */
._ff_min {
	font-family: var(--font-family-min);
	font-weight: 400;
	font-style: normal;
}
html[lang="en"] ._ff_min {
	font-family: var(--font-family-min-en);
}
html[lang="zh-CN"] ._ff_min {
	font-family: var(--font-family-min-cn);
}
html[lang="zh-TW"] ._ff_min {
	font-family: var(--font-family-min-tw);
}
html[lang="ko"] ._ff_min {
	font-family: var(--font-family-min-kr);
}

._fwn {
	font-weight: var(--font-weight);
}
._fwr {
	font-weight: 400;
}
._fwm {
	font-weight: 500;
}
._fwb {
	font-weight: var(--font-weight);
}
._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;
}
img._of.-abs {
	position: absolute;
	top: 0;
	left: 0;
}
img._of.-bg {
	pointer-events: none;
	user-select: none;
	z-index: -1;
}
img._of.-top {
	object-position: 50% 0;
}
img._of.-bottom {
	object-position: 50% 100%;
}
@media screen and (min-width: 744px), print {
	img._of.-pc_none {
		object-fit: none;
	}
	img._of.-pc_top {
		object-position: 50% 0 ;
	}
	img._of.-pc_bottom {
		object-position: 50% 100%;
	}
	img._pc_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	img._pc_of.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	img._pc_of.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	img._pc_of.-top {
		object-position: 50% 0;
	}
	img._pc_of.-none {
		object-fit: none;
	}
}
@media screen and (max-width: 743px) {
	img._of.-sp_top {
		object-position: 50% 0 ;
	}
	img._of.-sp_bottom {
		object-position: 50% 100%;
	}
	img._sp_of {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
	img._sp_of.-abs {
		position: absolute;
		top: 0;
		left: 0;
	}
	img._sp_of.-bg {
		pointer-events: none;
		user-select: none;
		z-index: -1;
	}
	img._sp_of.-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.-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;
	}
	a[href]._hv_op.-a50:hover,
	a[href]:hover ._hv_op.-a50,
	._hv_op.-a50 a[href]:hover {
		opacity: 0.5;
	}
}

._hv_zoom {
	position: relative;
	display: block;
	overflow: hidden;
}
._hv_zoom > * {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	background-repeat: no-repeat;
	background-position: 50%;
	background-size: cover;
}
._hv_zoom.-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
====================================================================== */
*[id]:not(#top) {
	scroll-margin-top: 12rem;
}
@media screen and (max-width: 743px) {
	*[id]:not(#top) {
		scroll-margin-top: 3rem;
	}
}
a._target {
	display: block;
	position: relative;
	width: 1px;
	top: calc(var(--pc-header-height-min) * -1);
}
a._target.-pt {
	top: calc(var(--pc-header-height-min) * -1 - 4rem);
}
a._target.-abs {
	position: absolute;
}


/* w
====================================================================== */
._w {
	position: relative;
}
@media screen and (min-width: 744px), print {
	._w {
		width: var(--base-width);
		margin-inline: auto;
	}
}
@media screen and (max-width: 743px) {
}


/* 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;
	}
}

/* header
====================================================================== */
#header .reserve a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	background-color: var(--color-theme);
	border: 2px solid #cb9e67;
	color: #fff;
	font-size: 2.2rem;
	line-height: 1.5;
	font-weight: var(--font-weight-bold);
	text-decoration: none;
	z-index: 2;
}
#header .reserve a::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: calc(145 / 248 * 100%);
	height: calc(52 / 120 * 100%);
	background-color: #ab7532;
	clip-path: polygon(0 0, 100% 0, 0 100%);
	z-index: -1;
}

@media (hover) {
	#header .lnav li a:hover {
		color: var(--color-theme);
	}
}
@media screen and (min-width: 744px), print {
	#header {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		height: var(--pc-header-height);
		display: flex;
		justify-content: space-between;
		padding-left: var(--pc-base-padding);
		background-color: #fff;
		box-shadow: 0 0 1.5rem rgba(0,0,0,.15);
		z-index: 900;
	}
	#header .logo {
		display: flex;
		align-items: center;
		width: 27.5rem;
	}
	#header nav {
		display: flex;
		align-items: center;
		gap: calc(4rem - 1.5rem);
	}
	#header .nav {
		display: flex;
		flex-direction: column-reverse;
		align-items: end;
		line-height: 1.8;
	}
	#header .gnav {
		display: flex;
	}
	#header .gnav a {
		--padding-inline: 1.5rem;
		position: relative;
		display: block;
		padding-inline: var(--padding-inline);
		text-decoration: none;
		font-weight: var(--font-weight-bold);
		font-size: 1.8rem;
		color: var(--color-base);
	}
	@media (hover) {
		#header .gnav a::after {
			content: "";
			position: absolute;
			right: var(--padding-inline);
			left: var(--padding-inline);
			bottom: -.3rem;
			border-bottom: 2px solid;
			opacity: 0;
			pointer-events: none;
			transform: translateY(3px);
			transition: opacity var(--transition), transform var(--transition);
		}
		#header .gnav a:hover::after {
			opacity: 1;
			transform: translateY(0);
		}
		#header a.-contact:hover {
			background-color: #fff;
		}
	}
	#header .lnav {
		position: relative;
	}
	#header .lnav dt {
		padding-inline: 1.5rem;
		font-weight: var(--font-weight-bold);
		font-size: 1.8rem;
		color: var(--color-theme);
		cursor: pointer;
	}
	#header .lnav dd {
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		opacity: 0;
		pointer-events: none;
		transform: translateY(5px);
		transition: transform var(--transition), opacity var(--transition);
	}
	#header .lnav.-show dd {
		opacity: 1;
		transform: translateY(0);
		pointer-events: auto;
	}
	#header .lnav dd ul {
		padding: 0 1rem;
		background-color: var(--color-base);
		border-radius: 1rem;
		box-shadow: 0 .3rem .5rem rgba(0,0,0,.2)
	}
	#header .lnav li:not(:last-child) {
		border-bottom: 1px solid #666;
	}
	#header .lnav li a {
		display: block;
		padding: .8rem;
		color: #fff;
		text-align: center;
		text-decoration: none;
		font-weight: var(--font-weight-bold);
		font-size: 1.6rem;
	}
	#header .lnav li a.current {
		color: var(--color-theme);
	}
	#header .reserve {
		width: 24.8rem;
		height: var(--pc-header-height);
	}

	[lang="en"] #header .gnav {
		padding-bottom: 1rem;
	}
	[lang="en"] #header .gnav a {
		--padding-inline: clamp(1.1rem, calc(1.1rem + (100vw - 1500px) * .03), 1.5rem);
		display: flex;
		align-items: center;
		text-align: center;
		height: 2lh;
		font-size: 1.7rem;
		line-height: 1.2;
		letter-spacing: 0;
	}
	[lang="en"] #header .lnav dt {
		font-size: 1.6rem;
	}
	[lang="en"] #header .reserve {
		width: 19rem;
	}
	[lang="zh-CN"] #header .gnav a {
		--padding-inline: clamp(1.1rem, calc(1.1rem + (100vw - 1500px) * .03), 1.5rem);
	}
}
@media screen and (min-width: 744px) {
	#header,
	#header .reserve {
		transition: height .3s ease-out;
	}
	.-head-min #header,
	.-head-min #header .reserve {
		height: var(--pc-header-height-min);
	}
}
@media print {
	#header {
		position: absolute;
	}
}
@media screen and (max-width: 743px) {
	#header .logo a {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 5rem;
		background-color: #fff;
	}
	#header .logo img {
		width: 16rem;
	}
	#header nav {
		position: fixed;
		right: 0;
		left: 0;
		bottom: 0;
		box-shadow: 0 0 1rem rgba(0,0,0,.3);
		z-index: 900;
	}
	#header .hnav {
		position: relative;
		display: flex;
		height: 5rem;
		z-index: 10;
	}
	#header .nav_btn {
		position: relative;
		flex-shrink: 0;
		width: 6rem;
		background-color: var(--color-base);
	}
	#header .nav_btn a {
		display: flex;
		height: 100%;
		justify-content: center;
		align-items: end;
		padding-bottom: 0.4rem;
		color: #fff;
		text-decoration: none;
		font-size: 1rem;
		letter-spacing: 0.02em;
		font-weight: var(--font-weight-medium);
	}
	#header .nav_btn::before,
	#header .nav_btn a::before,
	#header .nav_btn a::after {
		content: "";
		position: absolute;
		width: 3rem;
		left: calc(50% - 1.5rem);
		top: calc(50% - .7rem);
		border-top: 3px solid #fff;
		pointer-events: none;
		transition: transform var(--transition), opacity var(--transition), border var(--transition);
		z-index: 2;
	}
	#header .nav_btn a::before {
		transform: translateY(-.9rem);
	}
	#header .nav_btn a::after {
		transform: translateY(.9rem);
	}
	/* nav_btn open */
	#header.-open .nav_btn::before {
		opacity: 0;
	}
	#header.-open .nav_btn a::before {
		transform: translate(0) rotate(-45deg);
	}
	#header.-open .nav_btn a::after {
		transform: translate(0) rotate(45deg);
	}

	#header .reserve {
		flex-grow: 1;
	}
	#header .reserve a {
		border: 0;
		font-size: 1.8rem;
	}
	#header .reserve a::before {
		width: 11.6rem;
		height: 4.2rem;
	}
	#header .reserve a::after {
		content: "";
		position: absolute;
		top: .3rem;
		bottom: .3rem;
		left: .3rem;
		right: .3rem;;
		border: 1px solid #d2a66e;
		z-index: -1;
	}

	#header .nav {
		position: absolute;
		bottom: calc(100% - 2px);
		right: 0;
		left: 0;
		max-height: calc(100vh - 5rem - 5rem);
		overflow-y: auto;
		overscroll-behavior-y: contain;
		display: flex;
		flex-direction: column-reverse;
		padding-bottom: 2px;
		background-color: var(--color-base);
		transform: translateY(100%);
		transition: transform var(--transition), box-shadow var(--transition);
	}
	#header .lnav {
		position: relative;
		display: flex;
		height: 4.8rem;
		align-items: center;
		width: 200%;
		transition: transform var(--transition);
	}
	#header .lnav.-show {
		transform: translateX(-50%);
	}
	#header .lnav dt {
		position: relative;
		width: 50%;
		padding: 1rem calc(var(--sp-base-padding) + 2.5rem);
		font-weight: var(--font-weight-bold);
		font-size: 1.6rem;
		color: var(--color-theme);
		text-align: right;
		cursor: pointer;
	}
	#header .lnav dt::before {
		content: "";
		position: absolute;
		top: 50%;
		right: calc(1rem + var(--sp-base-padding));
		width: 1rem;
		height: 1rem;
		border-top: 2px solid;
		border-right: 2px solid;
		transform-origin: 100% 0;
		transform: rotate(45deg);
	}
	#header .lnav dd {
		width: 50%;
		padding-inline: var(--sp-base-padding);
	}
	#header .lnav dd ul {
		display: flex;
		justify-content: space-between;
	}
	#header .lnav li a {
		display: flex;
		align-items: center;
		height: 4.8rem;
		color: #fff;
		text-align: center;
		text-decoration: none;
		font-weight: var(--font-weight-bold);
		font-size: 1.4rem;
	}
	#header .lnav li a.current {
		color: var(--color-theme);
	}

	#header .gnav:not(.-foreign) {
		overflow-x: auto;
		overscroll-behavior-x: contain;
		display: flex;
		padding-inline: calc(var(--sp-base-padding) - (2rem / 2));
		padding-bottom: 5rem;
	}
	#header .gnav:not(.-foreign) a {
		display: block;
		width: calc(9rem + 2rem);
		padding: 1.5rem 0;
		text-align: center;
		text-decoration: none;
		color: #fff;
		font-size: 1.5rem;
		font-weight: var(--font-weight-bold);
	}
	#header .gnav:not(.-foreign) a > span {
		display: block;
	}
	#header .gnav:not(.-foreign) a .name {
		pointer-events: none;
		margin-bottom: 0.8rem;
		border-radius: 100%;
		white-space: nowrap;
	}
	#header .gnav:not(.-foreign) a .name.-sp_narrow {
		letter-spacing: 0;
	}
	#header .gnav:not(.-foreign) a .img {
		padding-inline: calc(2rem / 2);
	}
	#header .gnav:not(.-foreign) a img {
		border-radius: 100%;
	}
	#header .nav:has(.gnav:not(.-foreign))::before {
		content: "";
		position: absolute;
		bottom: 0;
		right: 0;
		left: 0;
		height: 5rem;
		background: url(../img/sp-scroll-white.svg) no-repeat 50% 0;
		background-size: 18.4rem;
		pointer-events: none;
		z-index: 2;
	}
	#header .nav:has(.gnav:not(.-foreign))::after {
		content: "";
		position: absolute;
		top: 4.8rem;
		right: var(--sp-base-padding);
		left: var(--sp-base-padding);
		border-bottom: 1px solid #535353;
	}
	#header .gnav.-foreign {
		padding: 0 var(--sp-base-padding) 2rem;
	}
	#header .gnav.-foreign li {
		border-top: 1px solid #535353;
	}
	#header .gnav.-foreign a {
		display: block;
		padding: 1.6rem 0;
		color: #fff;
		font-size: 1.5rem;
		font-weight: var(--font-weight-bold);
		text-align: center;
		text-decoration: none;
	}


	#header.-open .nav {
		transform: translateY(0);
		box-shadow: 0 0 2rem rgba(0,0,0,1);
	}
}

/* footer
====================================================================== */
#footer {
	position: relative;
	margin-top: 12rem;
	text-align: center;
}
#footer .logo {
	width: 39.8rem;
	margin: 0 auto 6rem;
}
#footer .img {
	display: block;
	position: relative;
	height: 33.4rem;
}
#footer .nav {
	padding: 6rem 0 6rem;
	background: linear-gradient(180deg, #41403D 0%, #212120 100%);
	color: #fff;
	font-size: 1.8rem;
	line-height: 1.5;
	font-weight: var(--font-weight-bold);
}
#footer .fnav a {
	position: relative;
	display: block;
	color: #fff;
}
#footer .fnav a[target="_blank"]:not([href$=".pdf"]) {
	padding-right: 2.5rem;
}
#footer .fnav a[target="_blank"]:not([href$=".pdf"])::after {
	content: "";
	position: absolute;
	right: 0;
	top: calc(50% - 1rem);
	width: 2rem;
	height: 2rem;
	background: url(../img/ico-blank-w.svg) no-repeat 50%;
	background-size: 100%;
}
#footer .time {
	margin-top: 3rem;
	background: var(--color-base);
	border: 1px solid #656461;
	font-size: 1.8rem;
}
#footer .time .more a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 8rem;
	background-color: var(--color-theme);
	color: #fff;
	text-align: center;
	text-decoration: none;
}
#footer small {
	display: block;
	padding: 2rem;
	background-color: #171615;
	border-top: 1px solid #656461;
	font-size: 1.2rem;
	line-height: 1.5;
	font-weight: var(--font-weight-bold);
	color: #5a5a5a;
	letter-spacing: 0.02em;
}
@media screen and (min-width: 744px), print {
	#footer .fnav {
		display: flex;
		justify-content: center;
		gap: 3rem;
	}
	#footer .time {
		width: 100rem;
		margin-inline: auto;
		display: flex;
		align-items: center;
	}
	#footer .time > p:not(.more) {
		flex-grow: 1;
		padding-inline: 2rem;
	}
	#footer .time .more {
		width: 31rem;
		flex-grow: 0;
		flex-shrink: 0;
		border-left: 1px solid #656461;
	}
	#footer small {
		display: flex;
		justify-content: center;
		align-items: center;
		height: 6rem;
		padding: 0;
	}
}
@media screen and (max-width: 743px) {
	#footer {
		margin-top: 6rem;
	}
	#footer .logo {
		width: 27.4rem;
		margin-bottom: 4rem;
	}
	#footer .img {
		height: 10rem;
	}
	#footer .nav {
		padding: 3rem var(--sp-base-padding) 4rem;
		font-size: 1.5rem;
	}
	#footer .fnav li + li {
		border-top: 1px solid #535353;
	}
	#footer .fnav a {
		position: relative;
		display: block;
		padding: 1rem;
		text-align: left;
	}
	#footer .fnav a:not([target="_blank"]):not([href$=".pdf"])::before {
		content: "";
		position: absolute;
		top: 50%;
		right: 1rem;
		width: 1rem;
		height: 1rem;
		border-top: 2px solid #707070;
		border-right: 2px solid #707070;
		transform-origin: 100% 0;
		transform: rotate(45deg);
	}
	#footer .fnav a[target="_blank"]:not([href$=".pdf"])::after {
		right: 0.6rem;
	}
	html:not([lang="ja"]) #footer .fnav {
		display: flex;
		justify-content: center;
	}
	html:not([lang="ja"]) #footer .fnav a[target="_blank"]:not([href$=".pdf"]) {
		padding: 1rem 2.5rem 1rem 0;
	}
	html:not([lang="ja"]) #footer .fnav a[target="_blank"]:not([href$=".pdf"])::after {
		right: 0;
	}
	#footer .time {
		font-size: 1.5rem;
	}
	#footer .time > p:not(.more) {
		padding: 1rem;
	}
	#footer .time .last {
		display: block;
	}
	#footer .time .more {
		border-top: 1px solid #656461;
	}
	#footer .time .more a {
		height: 5.8rem;
	}
	#footer small {
		padding-bottom: calc(2rem + 5rem);
		text-align: left;
		font-weight: var(--font-weight-medium);
	}
}

#pagetop {
	position: fixed;
	overflow: hidden;
	right: 0;
	bottom: 0;
	width: 6rem;
	height: 6rem;
	padding-left: calc(6rem - 2px * 2);
	background-color: var(--color-theme);
	color: transparent;
	font-size: 1rem;
	line-height: 1;
	opacity: 0;
	pointer-events: none;
	z-index: 890;
}
#pagetop::after {
	content: "";
	position: absolute;
	top: calc(50% - .4rem);
	right: 50%;
	width: 1rem;
	height: 1rem;
	border-top: 3px solid #fff;
	border-right: 3px solid #fff;
	transform-origin: 100% 0;
	transform: rotate(-45deg);
}
#pagetop.-show {
	opacity: 1;
	pointer-events: auto;
}
@media print {
	#pagetop {
		display: none;
	}
}
@media (hover) {
	#pagetop:hover {
		opacity: 0.7;
	}
}
@media screen and (max-width: 743px) {
	#pagetop {
		bottom: 7rem;
		right: 1rem;
		width: 4rem;
		height: 4rem;
		padding-left: 4rem;
		background-color: var(--color-base);
		border-radius: 100%;
		transition: opacity var(--transition);
	}
}


/* ===================================================================================================================

	パーツ

============================================================================= */

/* breadcrumbs
====================================================================== */
.breadcrumbs {
	margin-top: 2rem;
	padding-left: var(--pc-base-padding);
}
.breadcrumbs ol {
	display: flex;
}
.breadcrumbs li {
	position: relative;
}
.breadcrumbs li:not(:last-child)::after {
	content: ">";
	margin-right: 0.3em;
}
.breadcrumbs a {
	color: var(--color-base);
}
@media screen and (max-width: 743px) {
	.breadcrumbs {
		display: none;
	}
}


/* localnav
====================================================================== */
.localnav {
	margin-top: 8rem;
}
.localnav ul {
	display: flex;
	justify-content: center;
	gap: 5rem;
	padding: 2rem;
	box-shadow: 0 .3rem 1.5rem rgba(0,0,0,.15);
}
.localnav a {
	position: relative;
	display: flex;
	align-items: center;
	height: 100%;
	padding-bottom: 1.6rem;
	line-height: calc(26 / 18);
	color: var(--color-base);
	font-weight: var(--font-weight-bold);
	text-align: center;
	text-decoration: none;
}
.localnav a::after {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	bottom: 0;
	width: 1.2rem;
	height: .8rem;
	margin-inline: auto;
	background-color: var(--color-theme);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}
@media (hover) {
	.localnav a:hover {
		color: var(--color-theme);
	}
}
@media screen and (max-width: 743px) {
	.localnav {
		position: relative;
		margin-top: 0;
		margin-bottom: -1rem;
	}
	._sp_pd .localnav {
		margin-inline: calc(var(--sp-base-padding) * -1) !important;
	}
	.localnav_inner {
		display: flex;
		padding: 2rem var(--sp-base-padding) 5rem;
		overflow-x: auto;
		overscroll-behavior-x: contain;
	}
	.localnav_inner::after {
		content: "";
		position: absolute;
		bottom: 0;
		right: 0;
		left: 0;
		height: 5rem;
		background: url(../img/sp-scroll.svg) no-repeat 50%;
		background-size: 18.4rem;
		pointer-events: none;
		z-index: 2;
	}
	.localnav ul {
		gap: 0;
		padding: 1.5rem 1rem;
		white-space: nowrap;
	}
	.localnav a {
		padding-inline: 1rem;
		padding-bottom: 1.6rem;
		font-size: 1.4rem;
		line-height: calc(20 / 14);
	}
	.localnav a::after {
		content: "";
		position: absolute;
		right: 0;
		left: 0;
		bottom: 0;
		width: 1.2rem;
		height: .8rem;
		margin-inline: auto;
		background-color: var(--color-theme);
		clip-path: polygon(0 0, 100% 0, 50% 100%);
	}
	.localnav.-no-ov .localnav_inner {
		padding-bottom: 2rem;
	}
	.localnav.-no-ov .localnav_inner::after {
		content: none;
	}
	.localnav.-no-ov ul {
		width: 100%;
	}
}

/* base_section
====================================================================== */
.base_section {
	margin-top: 12rem;
}
@media screen and (max-width: 743px) {
	.base_section {
		margin-top: 6rem;
	}
}

/* paragraph
====================================================================== */
.paragraph > * + * {
	margin-top: 1.5em;
}

/* margin
====================================================================== */
._mt {
	margin-top: 4rem;
}
._mts {
	margin-top: 2rem;
}
._mb {
	margin-bottom: 4rem;
}
@media screen and (max-width: 743px) {
	._mt {
		margin-top: 3rem;
	}
	._mb {
		margin-bottom: 3rem;
	}
}

/* box_contents
====================================================================== */
.box_contents {
	position: relative;
	padding: 4rem 6rem;
}
.box_contents::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 1px solid var(--border-base);
	border-left-width: .4rem;
	pointer-events: none;
}
.box_contents > *:where(:not(:first-child):not(.-no_mt)) {
	margin-top: 4rem;
}
.box_contents > .-mt_s {
	margin-top: 1rem;
}
@media screen and (max-width: 743px) {
	.box_contents {
		padding: 2.5rem 2rem;
	}
	.box_contents > *:where(:not(:first-child):not(.-no_mt)) {
		margin-top: 3rem;
	}
}

.box_contents .box_in_box {
	padding: 2.5rem 3rem 3.5rem;
	border: 1px solid var(--border-base);
}
.box_contents .box_in_box:not(:first-child) {
	margin-top: 4rem;
}
@media screen and (max-width: 743px) {
	.box_contents .box_in_box {
		padding: 2rem;
	}
	.box_contents .box_in_box:not(:first-child) {
		margin-top: 2rem;
	}
}

/* box_bnr
====================================================================== */
.box_bnr + .box_bnr {
	margin-top: 4rem;
}
.box_bnr a {
	position: relative;
	display: block;
	background-color: #f5ede2;
	color: var(--color-black);
	font-size: 2.4rem;
	line-height: 1.5;
	font-weight: var(--font-weight-bold);
	text-align: center;
	text-decoration: none;
}
.box_bnr .box_btn {
	margin-top: 4rem;
}
@media screen and (min-width: 744px), print {
	.box_bnr a {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		height: 34.3rem;
		padding-right: 50%;
	}
	.box_bnr img {
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 50%;
		object-fit: cover;
	}
}
@media screen and (max-width: 743px) {
	.box_bnr + .box_bnr {
		margin-top: 3rem;
	}
	.box_bnr a {
		padding: 2.5rem 2rem 0;
		font-size: 1.6rem;
	}
	.box_bnr .box_btn {
		margin-top: 2rem;
	}
	.box_bnr .img {
		display: block;
		margin: 3rem -2rem 0;
	}
}

/* page_title
====================================================================== */
.page_title {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 50rem;
	padding-top: var(--pc-header-height);
	text-align: center;
	font-size: 4.6rem;
	line-height: calc(72 / 46);
	color: #fff;
}
@media screen and (max-width: 743px) {
	.page_title {
		height: 14rem;
		padding-top: 0;
		font-size: 2.8rem;
	}
	.page_title.-sp_s {
		padding-inline: 1rem;
		font-size: 2.4rem;
		line-height: calc(38 / 26);
		letter-spacing: 0;
	}
}

/* title
====================================================================== */
/* l_title */
.l_title {
	position: relative;
	margin-bottom: 8rem;
	padding-top: 6.6rem;
	background: url(../img/ico-title.svg) no-repeat 50% 0;
	background-size: 4.4rem;
	text-align: center;
	font-size: 4.6rem;
	line-height: calc(72 / 46);
}
.l_title.-bdb {
	padding-bottom: 4rem;
	border-bottom: 2px solid var(--border-base);
	color: var(--color-theme);
}
.l_title.-bdb::after {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	bottom: -2px;
	width: 15rem;
	margin-inline: auto;
	border-top: 2px solid var(--color-theme);
}
.l_title.-lss {
	letter-spacing: 0.02em;
}
.l_title.-ls0 {
	letter-spacing: 0;
}
@media screen and (max-width: 743px) {
	.l_title {
		margin-bottom: 4rem;
		padding-top: 4rem;
		background-size: 3rem;
		font-size: 2.8rem;
		line-height: calc(46 / 30);
	}
	.l_title.-bdb {
		padding-bottom: 1.5rem;
	}
	.l_title.-bdb::after {
		width: 8rem;
	}
	.l_title.-sp_m {
		font-size: 2.6rem;
	}
	.l_title.-sp_s {
		font-size: 2.2rem;
	}
}

/* m_title */
.m_title {
	margin-bottom: 1.5rem;
	padding-bottom: 2rem;
	border-bottom: 2px solid var(--border-base);
	font-size: 2.4rem;
	line-height: calc(34 / 24);
	font-weight: var(--font-weight-bold);
}
.foreign_menu .card_item .m_title {
	padding-bottom: 0;
	border-bottom: 0;
}
@media screen and (max-width: 743px) {
	.m_title {
		padding-bottom: 1.5rem;
		font-size: 1.7rem;
		line-height: calc(24 / 18);
	}
}

/* c_title */
.c_title {
	position: relative;
	padding-left: 1.3em;
	font-size: 2.4rem;
	line-height: calc(34 / 24);
	font-weight: var(--font-weight-bold);
	color: var(--color-theme);
}
.c_title::before {
	content: "■";
	position: absolute;
	top: 0;
	left: 0;
}
.c_title:not(:first-child) {
	margin-top: 6rem;
}
@media screen and (max-width: 743px) {
	.c_title {
		font-size: 1.7rem;
		line-height: calc(24 / 18);
	}
	.c_title:not(:first-child) {
		margin-top: 4rem;
	}
}

/* s_title */
.s_title {
	position: relative;
	margin-bottom: .5rem;
	padding-left: 1.3em;
	font-size: 2rem;
	line-height: calc(34 / 24);
	font-weight: var(--font-weight-bold);
	color: var(--color-theme);
}
.s_title::before {
	content: "■";
	position: absolute;
	top: 0;
	left: 0;
}
.s_title.-black {
	color: var(--color-base);
}
@media screen and (max-width: 743px) {
	.s_title {
		font-size: 1.6rem;
		line-height: calc(24 / 18);
	}
}


/* lead_text
====================================================================== */
.lead_text {
	font-size: 2rem;
	line-height: calc(36 / 20);
	font-weight: var(--font-weight-bold);
}
.lead_text + .lead_text {
	margin-top: 2rem;
}
@media screen and (max-width: 743px) {
	.lead_text {
		font-size: 1.6rem;
	}
}

/* notes_text
====================================================================== */
.notes_text {
	margin-top: 1.5rem;
	font-size: 1.5rem;
	line-height: calc(25 / 15);
}
@media screen and (max-width: 743px) {
	.notes_text {
		font-size: 1.4rem;
	}
}

/* card_item
====================================================================== */
.card_item .card_img {
	margin-bottom: 2rem;
}
.card_item .card_img.-fix {
	position: relative;
	aspect-ratio: 520 / 296;
}
.card_item .card_link {
	display: block;
}
.card_item .card_link > * {
	display: block;
}
@media screen and (min-width: 744px), print {
	.card_column {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 4rem;
	}

	.card_column:has(.m_title) {
		gap: 0 4rem;
	}
	.card_column:has(.m_title) .card_item {
		display: contents;
	}
	.card_column:has(.m_title) .card_item > * {
		width: 52rem;
	}
	.card_column:has(.m_title) .card_item:nth-child(n + 3) .m_title {
		margin-top: 4rem;
	}

	.card_column:has(.m_title) .card_item:nth-child(odd) .m_title {
		grid-column: 1;
	}
	.card_column:has(.m_title) .card_item:nth-child(even) .m_title {
		grid-column: 2;
	}
	.card_column:has(.m_title) .card_item:nth-child(odd) .card_body {
		grid-column: 1;
	}
	.card_column:has(.m_title) .card_item:nth-child(even) .card_body {
		grid-column: 2;
	}

	.card_column:has(.m_title) .card_item:nth-child(1) .m_title,
	.card_column:has(.m_title) .card_item:nth-child(2) .m_title {
		grid-row: 1;
	}
	.card_column:has(.m_title) .card_item:nth-child(1) .card_body,
	.card_column:has(.m_title) .card_item:nth-child(2) .card_body {
		grid-row: 2;
	}
	.card_column:has(.m_title) .card_item:nth-child(3) .m_title,
	.card_column:has(.m_title) .card_item:nth-child(4) .m_title {
		grid-row: 3;
	}
	.card_column:has(.m_title) .card_item:nth-child(3) .card_body,
	.card_column:has(.m_title) .card_item:nth-child(4) .card_body {
		grid-row: 4;
	}
	/* 以降はjsで設定しているため記述しない。万が一のときのために4までは直接記述している。 */
}
@media screen and (max-width: 743px) {
	.card_column .card_item + .card_item {
		margin-top: 3rem;
	}
}


/* btn_ele
====================================================================== */
.btn_ele {
	margin-top: 3rem;
}
@media screen and (min-width: 744px), print {
	.btn_ele.-mt_l {
		margin-top: 5rem;
	}
	.btn_ele.-mt_xl {
		margin-top: 8rem;
	}
}
@media screen and (max-width: 743px) {
	.btn_ele {
		margin-top: 2rem;
	}
	.btn_ele.-mt_xl {
		margin-top: 4rem;
	}
}

/* box_btn
====================================================================== */
.box_btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36rem;
	max-width: 100%;
	min-height: 6rem;
	margin-inline: auto;
	background-color: var(--color-theme);
	color: #fff;
	font-size: 1.8rem;
	line-height: calc(26 / 18);
	font-weight: var(--font-weight-bold);
	text-align: center;
	text-decoration: none;
	z-index: 2;
}
.box_btn::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 10.6rem;
	height: 4rem;
	background-color: #ab7532;
	clip-path: polygon(0 0, 100% 0, 0 100%);
	z-index: -1;
}
.box_btn::after {
	content: "";
	position: absolute;
	top: .3rem;
	bottom: .3rem;
	left: .3rem;
	right: .3rem;;
	border: 1px solid #d2a66e;
	z-index: -1;
}
.box_btn[target="_blank"]:not([href$=".pdf"]) {
	padding-right: 1rem;
	background-image: url(../img/ico-blank-w.svg);
	background-repeat: no-repeat;
	background-position: calc(100% - 2rem);
	background-size: 2rem;
}
@media screen and (min-width: 744px), print {
	.box_btn.-wide {
		width: fit-content;
		padding-inline: 4rem;
		min-width: 36rem;
	}
	.box_btn.-wide[target="_blank"]:not([href$=".pdf"]) {
		padding-right: 6rem;
	}
}
@media screen and (max-width: 743px) {
	.box_btn {
		width: auto;
		padding: 1rem 0;
		letter-spacing: .05em;
		font-size: 1.6rem;
	}
}

/* btn_group
====================================================================== */
.btn_group:not(:first-child) {
	margin-top: 6rem;
}
.m_title + .btn_group {
	margin-top: 0;
}
@media screen and (min-width: 744px), print {
	.btn_group {
		display: flex;
		flex-wrap: wrap;
		gap: 3rem 4rem;
	}
	.btn_group > * {
		width: calc((100% - 4rem) / 2);
	}
	.btn_group .box_btn {
		width: 100%;
	}
}
@media screen and (max-width: 743px) {
	.btn_group:not(:first-child) {
		margin-top: 3rem;
	}
	.btn_group > * + * {
		margin-top: 2rem;
	}
}

/* link_list
====================================================================== */
.link_list {
	margin-top: 1.5rem;
}
.link_text[target="_blank"]::after {
	content: "";
	display: inline-block;
	width: 1.6rem;
	height: 1.6rem;
	margin-left: .6rem;
	background-image: url(../img/ico-blank.svg);
	background-repeat: no-repeat;
	background-position: 100%;
	background-size: 1.6rem;
}
@media screen and (max-width: 743px) {
	.link_text[target="_blank"]::after {
		vertical-align: -0.1em;
	}
}


/* basic_table
====================================================================== */
.basic_table:where(:not(:first-child):not(.box_contents > *):not(:is(.l_title, .m_title) + .basic_table)) {
	margin-top: 2rem;
}
.basic_table:where(:not(:last-child)) {
	margin-bottom: 2rem;
}
@media screen and (min-width: 744px), print {
	.basic_table {
		width: 100%;
		table-layout: fixed;
	}
	.basic_table th,
	.basic_table td {
		height: 8rem;
		padding: 1rem 4rem;
		border-top: 1px solid var(--border-base);
		border-bottom: 1px solid var(--border-base);
		vertical-align: middle;
	}
	.basic_table th {
		width: calc(300 / 1080 * 100%);
		background-color: var(--color-theme);
		color: #fff;
		font-size: 2.4rem;
		line-height: 1.5;
		font-weight: var(--font-weight-bold);
	}
	.basic_table td {
		border-right: 1px solid var(--border-base);
		line-height: calc(26 / 18);
	}
}
@media screen and (max-width: 743px) {
	.basic_table,
	.basic_table :is(tbody, tr, th, td) {
		display: block;
	}
	.basic_table {
		border-bottom: 1px solid var(--border-base);
	}
	.basic_table th {
		padding: 1.5rem 2rem;
		background-color: var(--color-theme);
		color: #fff;
		font-size: 1.6rem;
		line-height: 1.5;
		font-weight: var(--font-weight-bold);
		text-align: center;
	}
	.basic_table td {
		padding: 1.6rem 2rem;
		border-right: 1px solid var(--border-base);
		border-left: 1px solid var(--border-base);
	}
	.basic_table td + td {
		border-top: 1px solid var(--border-base);
	}
}

/* table_notes_dl
====================================================================== */
.table_notes_dl > * {
	display: inline;
}
.table_notes_dl dt::after {
	content: "：";
}
.table_notes_dl dd:not(:last-child)::after {
	content: "。";
}

/* 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: 1em;
}
.circle_li > li::before {
	content: "";
	position: absolute;
	top: .6em;
	left: 0;
	width: 8px;
	height: 8px;
	background-color: #005f8b;
	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.2em;
}
.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: 0.8em;
}
@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;
}


/* ==============================================================================

	ご利用料金

============================================================================== */
.opening_times {
	margin-top: 2rem;
}
@media screen and (min-width: 744px), print {
	.opening_times {
		display: table;
	}
	.opening_times > * {
		display: table-row;
	}
	.opening_times > * > * {
		display: table-cell;
	}
	.opening_times dt {
		padding-right: 2em;
		white-space: nowrap;
	}
}
@media screen and (max-width: 743px) {
	.opening_times dl + dl {
		margin-top: 1.5rem;
	}
	.opening_times dt {
		font-weight: var(--font-weight-bold);
	}
}
.fee_table {
	display: table;
}
.fee_table > * {
	display: table-row;
}
.fee_table > * > * {
	display: table-cell;
}
.fee_table dt {
	padding-right: 2em;
	/* white-space: nowrap; */
}
.fee_table dd {
	vertical-align: bottom;
	white-space: nowrap;
}
@media screen and (max-width: 743px) {
	[lang="en"] .fee_table,
	[lang="en"] .fee_table > *,
	[lang="en"] .fee_table > * > * {
		display: block;
	}
	.fee_table dt {
		padding-right: 0;
	}
	.fee_table dd {
		text-align: right;
	}
}


/* ==============================================================================

	アクセス

============================================================================== */
.access_train_contents {
	position: relative;
	padding: 3rem;
	background-color: var(--bg-light);
	text-align: center;
}
.access_train_contents dl {
	display: flex;
	flex-direction: column;
	background-color: #fff;
	border: 1px solid var(--color-theme);
}
.access_train_contents dt {
	padding: 0.5rem  0 0.7rem;
	background-color: var(--color-theme);
	color: #fff;
	font-size: 2.4rem;
	line-height: 1.5;
	font-weight: var(--font-weight-bold);
}
.access_train_contents dt strong {
	font-size: 3.2rem;
}
.access_train_contents dd {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0.3rem 0 1.5rem;
}
.access_train_contents .time {
	display: block;
	color: var(--color-theme);
	font-size: 2rem;
	line-height: 1.5;
	font-weight: var(--font-weight-bold);
}
.access_train_contents .time b {
	font-size: 3.2rem;
}
.access_train_contents .notes {
	display: flex;
	justify-content: center;
	margin: 0.3rem 1.5rem 0;
	font-size: 1.5rem;
	line-height: calc(24 / 15);
	text-align-last: left;
}
@media screen and (min-width: 744px), print {
	.access_train_contents {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		gap: 1.5rem 2rem;
	}
	.access_train_contents > * {
		width: calc((100% - 2rem * 2) / 3);
	}
}
@media screen and (max-width: 743px) {
	.access_train_contents {
		padding: 2rem;
	}
	.access_train_contents dl + dl {
		margin-top: 1rem;
	}
	.access_train_contents dt {
		font-size: 2rem;
	}
	.access_train_contents dt strong {
		font-size: 2.8rem;
	}
	.access_train_contents dd {
		padding-top: 1rem;
	}
	.access_train_contents .time {
		font-size: 1.8rem;
		line-height: 1.2;
	}
	.access_train_contents .time b {
		font-size: 2.8rem;
	}
	.access_train_contents .notes {
		font-size: 1.4rem;
	}
}

.box_notes {
	margin-top: 4rem;
	padding: 2rem;
	background-color: var(--color-theme);
	color: #fff;
	text-align: center;
}
@media screen and (max-width: 743px) {
	.box_notes {
		text-align: left;
	}
}


/* ==============================================================================

	お知らせ

============================================================================== */
.news_list a {
	display: block;
	text-decoration: none;
	color: var(--color-black);
	font-size: 1.6rem;
	line-height: 1.5;
}
.news_list a .img {
	position: relative;
	aspect-ratio: 320 / 244;
	margin-bottom: 1.8rem;
}
.news_list a .img::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 1px solid var(--border-base);
}
.news_list a .img.-no-img {
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #fff;
}
.news_list a .img.-no-img img {
	width: calc(256 / 320 * 100%);
}
.news_list a .title {
	margin-top: 1rem;
	margin-bottom: 2rem;
	font-size: 2rem;
	line-height: 1.5;
	font-weight: var(--font-weight-bold);
}
.news_list a .title:last-child {
	margin-bottom: 0;
}
.news_list a .cat {
	margin-top: .3em;
	padding: 0.6rem 1rem;
	display: inline-block;
	background-color: #41403D;
	color: #fff;
}
@media screen and (min-width: 744px), print {
	.news_list {
		display: flex;
		flex-wrap: wrap;
		gap: 4rem calc((100% - (32rem * 3)) / 2);
	}
	.news_list article {
		width: 32rem;
	}
}
@media screen and (max-width: 743px) {
	.news_list article + article {
		margin-top: 2rem;
	}
	.news_list a {
		display: flex;
		align-items: start;
		font-size: 1.4rem;
	}
	.news_list a .img {
		width: 10rem;
		aspect-ratio: 320 / 244;
		margin-bottom: 0;
		margin-right: 2rem;
		flex-shrink: 0;
	}
	.news_list a .title {
		margin-top: .5rem;
		margin-bottom: .8rem;
		font-size: 1.5rem;
		line-height: calc(24 / 18);
	}
	.news_list a .cat {
		margin-top: .3em;
		padding: 0.4rem 0.8rem;
		font-size: 1.3rem;
	}
}

.wp-pagenavi {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: .5rem;
	margin-top: 6rem;
	padding-bottom: 2rem;
	text-align: center;
	font-size: 1.8rem;
	line-height: 1.2;
}
.wp-pagenavi > * {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 4rem;
	height: 4rem;
	border: 1px solid #e3e2de;
	color: #41403d;
	text-decoration: none;
}
.wp-pagenavi .current {
	background-color: #41403d;
	border-color: #41403d;
	color: #fff;
}
.wp-pagenavi .extend {
	border: 0;
	width: auto;
}
.wp-pagenavi :is(.previouspostslink,.nextpostslink) {
	overflow: hidden;
	justify-content: start;
	text-indent: -999em;
}
.wp-pagenavi :is(.previouspostslink,.nextpostslink)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: calc(50% - .5rem);
	width: 1.2rem;
	height: 1.2rem;
	border-top: 2px solid;
	border-right: 2px solid;
	transform-origin: 100% 0;
	transform: rotate(45deg);
	transition: none;
}
.wp-pagenavi .previouspostslink {
	transform: scaleX(-1);
}
@media (hover) {
	.wp-pagenavi a:hover {
		background-color: #41403d;
		border-color: #41403d;
		color: #fff;
	}
}
@media screen and (max-width: 743px) {
	.wp-pagenavi {
		margin-top: 4rem;
		font-size: 1.5rem;
	}
	.wp-pagenavi > * {
		width: 3.4rem;
		height: 3.4rem;
	}
	.wp-pagenavi .extend {
		display: none;
	}
}



/* ==============================================================================

	記事詳細

============================================================================== */
.news_detail_header {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 8rem;
	line-height: 1.5;
}
.news_detail_header time {
	margin-right: 2rem;
}
.news_detail_header .cat {
	margin-right: .5rem;
	padding: 0.6rem 1rem;
	background-color: #41403D;
	font-size: 1.6rem;
	color: #fff;
}
.news_detail_header h1 {
	width: 100%;
	margin-top: 2rem;
	font-size: 4.6rem;
	line-height: calc(72 / 46);
}
@media screen and (max-width: 743px) {
	.news_detail_header {
		margin-bottom: 4rem;
	}
	.news_detail_header time {
		margin-right: 1.5rem;
		font-size: 1.4rem;
	}
	.news_detail_header .cat {
		padding: 0.6rem 1rem;
		background-color: #41403D;
		font-size: 1.3rem;
		color: #fff;
	}
	.news_detail_header h1 {
		font-size: 2.2rem;
		line-height: calc(38 / 26);
	}
}



/* ==============================================================================

	フロアガイド

============================================================================== */
.floor-guide_ico {
	width: 70rem;
	margin-inline: auto;
}
@media screen and (max-width: 743px) {
	.floor-guide_ico {
		width: auto;
	}
}
.floor-guide_number li + li {
	margin-top: 0.5rem;
}
.floor-guide_number li {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 4rem;
	padding-left: 5rem;
	color: var(--color-theme);
	font-size: 1.8rem;
	line-height: 1.5;
}
.floor-guide_number li .num {
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 4rem;
	height: 4rem;
	background-color: var(--color-theme);
	color: #fff;
}
@media screen and (min-width: 744px), print {
	.floor-guide_items {
		display: flex;
		flex-direction: row-reverse;
		justify-content: space-between;
	}
	.floor-guide_items .img {
		width: 50%;
	}
	.floor-guide_number {
		padding-top: 2rem;
	}
}
@media screen and (max-width: 743px) {
	.floor-guide_number {
		margin-top: 2rem;
	}
	.floor-guide_number li {
		min-height: 3.4rem;
		font-size: 1.5rem;
	}
	.floor-guide_number li .num {
		width: 3.4rem;
		height: 3.4rem;
	}
}


/* ==============================================================================

	よくあるご質問

============================================================================== */
.faq_contents {
	position: relative;
	margin-bottom: 2rem;
}
.faq_contents::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 1px solid var(--border-base);
	border-left-width: .4rem;
	pointer-events: none;
}
.faq_contents h2 {
	position: relative;
	padding: 4rem 12rem 4rem 6rem;
	font-size: 2rem;
	line-height: 1.5;
	font-weight: var(--font-weight-bold);
	color: var(--color-base);
	cursor: pointer;
	transition: color var(--transition);
}
.faq_contents h2::before,
.faq_contents h2::after {
	content: "";
	position: absolute;
	top: calc(50% - 1px);
	right: 6rem;
	width: 3rem;
	border-top: 2px solid #caae8a;
}
.faq_contents h2::after {
	transform: rotate(90deg);
	transition: transform var(--transition);
}
.faq_contents h2.-open::after {
	transform: rotate(180deg);
}
.faq_contents h2.-open {
	color: var(--color-theme);
}
.faq_contents .a_wrap {
	position: relative;
	overflow: hidden;
	height: 0;
	transition: height var(--transition);
}
.faq_contents .a {
	padding: 0 6rem 4rem;
}
.faq_contents .a > p + p {
	margin-top: 1.8em;
}
@media (hover) {
	.faq_contents h2:hover {
		color: var(--color-theme);
	}
}
@media screen and (max-width: 743px) {
	.faq_contents {
		margin-bottom: 1rem;
		scroll-margin-top: 3rem;
	}
	.faq_contents h2 {
		padding: 2.5rem 6rem 2.5rem 2rem;
		font-size: 1.6rem;
	}
	.faq_contents h2::before,
	.faq_contents h2::after {
		right: 2rem;
		width: 2.2rem;
	}
	.faq_contents .a {
		padding: 0 2rem 3rem;
	}
}



/* ==============================================================================

	404

============================================================================== */
.page404 {
	text-align: center;
	font-size: 2.4rem;
}
@media screen and (max-width: 743px) {
	.page404 {
		font-size: 1.5rem;
	}
	.page404 p + p {
		margin-top: 1.5em;
	}
}
