@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: #141414;
	--color-white: #fff;
	--color-theme: #b59667;
	--color-grad1: #2e3d66;
	--color-grad2: #342847;
	--bg-base: #e6e6e6;
	--border-base: #c8c8c8;
	--base-width: 120rem;
	--pc-min-window: 1360;
	--sp-base-padding: 2rem;
	--font-family-jp: 'Noto Serif JP', serif;
	--font-family-title: 'Shippori Mincho', var(--font-family-jp);
	--font-family-en: 'Literata', 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;
	--white-filter: brightness(0) invert(1);
	--transition-duration: .3s;
	--transition: var(--transition-duration) ease-in-out;
	--header-height: 8rem;
	--fix-nav-height: 5rem;
	--frame-s: 1rem;
	--frame: polygon(var(--frame-s) 0, calc(100% - var(--frame-s)) 0, 100% var(--frame-s), 100% calc(100% - var(--frame-s)), calc(100% - var(--frame-s)) 100%, var(--frame-s) 100%, 0 calc(100% - var(--frame-s)), 0 var(--frame-s));
	@media screen and (max-width: 743px) {
		--header-height: 6rem;
		--frame-s: .7rem;
	}
}

/* ========================================================
	template.css => テンプレート用CSS
======================================================== */
html {
	font-size: 62.5%;
	scroll-behavior: smooth;
	@media screen and (min-width: 744px), print {
		font-size: min(calc(10px - ((var(--pc-min-window) * 1px) - 100vw) * (10 / var(--pc-min-window))), 10px);
	}
	@media screen and (max-width: 743px) {
		font-size: calc((10 / 375) * 100vw);
	}
}
html.no-scroll-behavior {
	scroll-behavior: auto;
}
body {
	background-color: var(--bg-base);
	font-size: 1.6rem;
	line-height: 2;
	color: var(--color-base);
	word-wrap: break-word;
	overflow-wrap: break-word;
	font-family: var(--font-family-jp);
	font-weight: var(--font-weight);
	font-optical-sizing: auto;
	/* font-feature-settings: "palt"; */
	-webkit-font-smoothing: antialiased;
	font-style: normal;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	@media screen and (max-width: 743px) {
		font-size: 1.3rem;
		line-height: 2.2;
	}
}
* {
	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);
}
:where(img) {
	max-width: 100%;
	width: 100%;
	height: auto;
	image-rendering: -webkit-optimize-contrast;
	image-rendering: crisp-edges;
}
:where(iframe) {
	max-width: 100%;
	vertical-align: middle;
}
:where(sup) {
	vertical-align: super;
	font-size: 60%;
}
:where(table) {
	border-collapse: collapse;
	border-spacing: 0;
	line-height: inherit;
}
:where(a[href], a[data-modal]) {
	--a-color: var(--color-base);
	color: var(--a-color);
	text-decoration-line: underline;
	text-decoration-style: solid;
	text-decoration-thickness: 1px;
	text-decoration-color: var(--a-color);
	text-underline-offset: .3em;
	outline: none;
	cursor: pointer;
}
:where(a[href]._a_reverse,._a_reverse a[href]) {
	text-decoration-color: color-mix(in srgb, var(--a-color) 0%, transparent);
}
:where(a[href^="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: var(--font-weight-reg);
	font-style: normal;
}
._ff_en {
	font-family: var(--font-family-en);
	font-weight: 400;
	font-style: normal;
}
._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);
}
._fz16-36 {
	font-size: 1.6rem;
	line-height: calc(36 / 16);
	@media screen and (max-width: 743px) {
		font-size: 1.3rem;
	}
}
._fz15-30 {
	font-size: 1.5rem;
	line-height: 2;
	@media screen and (max-width: 743px) {
		font-size: 1.25rem;
	}
}
._fz15-34 {
	font-size: 1.5rem;
	line-height: calc(34 / 15);
	@media screen and (max-width: 743px) {
		font-size: 1.25rem;
	}
}
._fz14-28 {
	font-size: 1.4rem;
	line-height: calc(28 / 14);
	@media screen and (max-width: 743px) {
		font-size: 1.2rem;
	}
}
._fz12-28 {
	font-size: 1.2rem;
	line-height: calc(28 / 12);
	@media screen and (max-width: 743px) {
		font-size: 1.1rem;
	}
}
._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;
	}
}
._pw {
	@media screen and (min-width: 744px), print {
		padding-inline: calc((100% - var(--base-width)) / 2);
	}
}

/* spパディング
====================================================================== */
@media screen and (max-width: 743px) {
	._sp_pd {
		padding-inline: var(--sp-base-padding) !important;
	}
	._sp_mg {
		margin-inline: var(--sp-base-padding) !important;
	}
	._sp_full {
		margin-inline: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_l {
		margin-left: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_full_r {
		margin-right: calc(var(--sp-base-padding) * -1) !important;
	}
	._sp_pd-l {
		padding-inline: 3rem !important;
	}
}

/* header
====================================================================== */
#header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: var(--header-height);
	z-index: 900;
	@media screen and (min-width: 744px), print {
		display: flex;
		justify-content: space-between;
		border-bottom: 1px solid var(--color-theme);
		box-sizing: content-box;
		&::before {
			content: "";
			position: absolute;
			inset: 0;
			background: linear-gradient(126deg, var(--color-grad2) 30%, var(--color-grad1) 70%);
			opacity: 0.81;
			opacity: 0;
			transition: opacity .5s ease;
			z-index: -1;
		}
		.logo {
			a {
				display: flex;
				justify-content: center;
				align-items: center;
				height: var(--header-height);
				padding-inline: 3rem;
				padding-inline: clamp(2rem, calc(2rem + (100vw - (var(--pc-min-window) * 1px)) * .05), 3rem);
				img {
					width: 21.6rem;
					filter: var(--white-filter);
				}
			}
		}
		nav {
			display: flex;
			align-items: center;
			gap: 3rem;
			font-family: var(--font-family-title);
			font-weight: var(--font-weight-reg);
			text-shadow: 0 0 .6rem rgba(0,0,0,.5);
			color: #fff;
			.nav_inner {
				display: contents;
			}
			ul {
				display: flex;
				a {
					position: relative;
					display: flex;
					align-items: center;
					justify-content: center;
					height: var(--header-height);
					text-decoration: none;
					font-size: 1.7rem;
					color: #fff;
					@media (hover) {
						&:hover {
							opacity: 0.5;
						}
					}
				}
			}
			.gnav {
				a {
					padding-inline: 2rem;
					padding-inline: clamp(1.5rem, calc(1.5rem + (100vw - (var(--pc-min-window) * 1px)) * .05), 2rem);
				}
			}
			.cnav {
				border-left: 1px solid var(--color-theme);
				a {
					padding-inline: 3rem;
					padding-inline: clamp(2.5rem, calc(2.5rem + (100vw - (var(--pc-min-window) * 1px)) * .05), 3rem);
					font-weight: var(--font-weight-medium);
					span {
						position: relative;
						padding-left: 3.5rem;
						&::before {
							content: "";
							position: absolute;
							left: 0;
							top: calc(50% - 1.8rem / 2);
							width: 2.4rem;
							height: 1.8rem;
							background: url(../img/ico-mail.svg) no-repeat 50%;
							background-size: 100%;
							filter: var(--white-filter);
						}
					}
				}
			}
			.tel {
				/* margin-left: 2rem; */
				margin-left: clamp(0rem, calc(0rem + (100vw - (var(--pc-min-window) * 1px)) * .1), 2rem);
				font-size: 2rem;
				line-height: 1.2;
				.lead {
					display: block;
					font-size: 1.2rem;
					line-height: 1.5;
					font-weight: var(--font-weight-medium);
				}
				.number {
					--ls: .07em;
					font-size: 2.6rem;
				}
			}
		}
		.-head-bg & {
			backdrop-filter: blur(4px);
			&::before {
				opacity: 0.81;
			}
		}
	}
	@media print {
		position: absolute;
	}
	@media screen and (max-width: 743px) {
		background-color: #fff;
		.logo {
			display: flex;
			a {
				display: flex;
				justify-content: center;
				align-items: center;
				height: var(--header-height);
				padding-inline: 2rem;
				img {
					width: 15rem;
				}
			}
		}
		.nav_btn {
			position: absolute;
			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);
				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 var(--color-theme);
				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);
			}
		}
		nav {
			position: fixed;
			top: var(--header-height);
			right: 0;
			left: 0;
			bottom: 0;
			display: flex;
			flex-direction: column;
			justify-content: center;
			transition: opacity var(--transition);
			z-index: 899;
			opacity: 0;
			pointer-events: none;
			&::before {
				content: "";
				position: absolute;
				inset: 0;
				background: linear-gradient(126deg, var(--color-grad2) 0%, var(--color-grad1) 100%);
				opacity: 0.95;
				z-index: -1;
			}
			.nav_inner {
				max-height: 100%;
				padding-block: 3rem calc(4rem + var(--fix-nav-height));
				overflow-y: auto;
				overscroll-behavior-y: contain;
			}
			.gnav {
				a {
					display: block;
					padding: 0.6rem;
					font-size: 1.8rem;
					font-family: var(--font-family-title);
					font-weight: var(--font-weight-reg);
					text-shadow: 0 0 .6rem rgba(0,0,0,.5);
					color: #fff;
					text-decoration: none;
					text-align: center;
				}
			}
			.tel {
				display: none;
			}
			.cnav {
				display: none;
			}
			.recruit {
				margin: 4rem 2rem 0;
			}
		}
		.-headeropen & nav {
			opacity: 1;
			pointer-events: auto;
		}
		.fix_nav {
			position: fixed;
			right: 0;
			left: 0;
			bottom: 0;
			height: var(--fix-nav-height);
			display: flex;
			background-color: rgba(255,255,255,.9);
			backdrop-filter: blur(4px);
			z-index: 901;
			li {
				position: relative;
				width: 50%;
				&:not(:first-child)::before {
					content: "";
					position: absolute;
					top: 0;
					left: 0;
					bottom: 0;
					border-left: 1px solid var(--color-theme);
					pointer-events: none;
				}
				a {
					position: relative;
					display: flex;
					justify-content: center;
					align-items: center;
					height: var(--fix-nav-height);
					border-top: 1px solid var(--color-theme);
					padding-left: 2rem;
					font-size: 1.5rem;
					letter-spacing: 0;
					text-decoration: none;
					&::before {
						content: "";
						position: absolute;
						top: 0;
						bottom: 0;
						left: 2rem;
						background: no-repeat 50%;
						background-size: 100%;
					}
					&.contact::before {
						width: 2rem;
						background-image: url(../img/ico-mail.svg);
					}
					&.tel::before {
						width: 2.5rem;
						background-image: url(../img/ico-tel.svg);
					}
				}
			}
		}
	}
}
@media screen and (min-width: 744px) {
}



/* footer
====================================================================== */
.bottom_contact {
	position: relative;
	margin-top: 16rem;
	@media screen and (min-width: 744px), print {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
	}
	@media screen and (max-width: 743px) {
		margin-top: 8rem;
	}
	.ph {
		position: relative;
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		z-index: 2;
		li {
			@media screen and (min-width: 744px), print {
				height: 27.5rem;
				img {
					object-fit: cover;
					object-position: 50% 0;
					width: 100%;
					height: 100%;
				}
			}
		}
	}
	.contents {
		background: linear-gradient(135deg, var(--color-grad1) 10%, var(--color-grad2) 90%);
		color: #fff;
		text-align: center;
		.logo {
			margin-bottom: 7rem;
			img {
				width: 21.6rem;
				filter: var(--white-filter);
			}
		}
		.lead {
			margin-bottom: 2rem;
			font-size: 1.8rem;
			line-height: 1.5;
			text-shadow: 0 0 .6rem rgba(0,0,0,.3);
		}
		.tel {
			font-size: 3rem;
			line-height: 1.2;
			a {
				color: var(--color-theme);
				text-decoration: none;
				.number {
					font-size: 5rem;
				}
			}
		}
		.btn {
			margin-top: 5rem;
			a {
				position: relative;
				display: flex;
				align-items: center;
				justify-content: center;
				width: 24rem;
				height: 6rem;
				color: #fff;
				text-decoration: none;
				font-size: 1.6rem;
				border: 1px solid var(--color-theme);
				text-shadow: 0 0 .6rem rgba(0,0,0,.3);
				&::before {
					content: "";
					position: absolute;
					left: 2.4rem;
					top: calc(50% - 1.8rem / 2);
					width: 2.4rem;
					height: 1.8rem;
					background: url(../img/ico-mail.svg) no-repeat 50%;
					background-size: 100%;
				}
				&::after {
					content: "";
					position: absolute;
					right: 1.6rem;
					top: 0;
					bottom: 0;
					width: 2rem;
					background: url(../img/ico-link-arrow.svg) no-repeat 50%;
					background-size: 100%;
				}
				@media (hover) {
					&:hover {
						background-color: rgba(255,255,255,.1);
					}
				}
			}
		}
		@media screen and (min-width: 744px), print {
			margin-left: -1px;
			display: flex;
			flex-direction: column;
			justify-content: center;
			align-items: center;
		}
		@media screen and (max-width: 743px) {
			padding-block: 4.5rem 5rem;
			.lead {
				margin-bottom: 1rem;
				font-size: 1.3rem;
			}
			.tel {
				font-size: 2rem;
				a {
					.number {
						font-size: 3.5rem;
					}
				}
			}
			.btn {
				margin-top: 3rem;
				a {
					width: 20rem;
					height: 5rem;
					margin-inline: auto;
					font-size: 1.4rem;
					&::before {
						left: 1.8rem;
					}
					&::after {
						width: 1.8rem;
					}
				}
			}
		}
	}
	.-page-index &,
	.-footer-margin0 & {
		margin-top: 0;
	}
}
#footer {
	position: relative;
	background-color: #fff;
	@media screen and (max-width: 743px) {
		padding-bottom: var(--fix-nav-height);
	}
	.footer_contents {
		padding-block: 14rem 6rem;
		text-align: center;
		background: var(--bg-base) url(../img/foot_bg.png) no-repeat 50%;
		background-size: 160rem;
		.logo {
			margin-bottom: 10rem;
			img {
				width: 30rem;
			}
		}
		.gnav {
			display: flex;
			justify-content: center;
			gap: 6rem;
			margin-bottom: 6rem;
			a {
				display: block;
				writing-mode: vertical-rl;
				text-decoration: none;
				font-size: 1.6rem;
				font-weight: var(--font-weight-medium);
				line-height: 1.8;
				@media (hover) {
					&:hover {
						opacity: 0.5;
					}
				}
			}
		}
		.bnr {
			li:not(:last-child) {
				margin-bottom: 2rem;
			}
		}
		.sns {
			display: flex;
			justify-content: center;
			margin-top: 6rem;
			li {
				width: 3rem;
			}
			a {
				@media (hover) {
					&:hover {
						opacity: 0.5;
					}
				}
			}
		}
		@media screen and (max-width: 743px) {
			padding: 7.5rem var(--sp-base-padding) 4rem;
			background-image: url(../img/foot_bg_sp.png);
			background-size: 100%;
			.logo {
				margin-bottom: 5rem;
				img {
					width: 17rem;
				}
			}
			.gnav {
				gap: 2.5rem;
				margin-bottom: 4rem;
				a {
					font-size: 1.3rem;
				}
			}
			.bnr {
				li:not(:last-child) {
					margin-bottom: 1rem;
				}
			}
			.sns {
				margin-top: 4rem;
				li {
					width: 2.5rem;
				}
			}
		}
	}
	.group {
		display: flex;
		justify-content: center;
		gap: 18rem;
		margin-top: 4rem;
		li {
			width: 20rem;
		}
		@media screen and (max-width: 743px) {
			margin-top: 1.5rem;
			gap: 1.5rem;
			li {
				width: 10rem;
			}
		}
	}
	small {
		--ls: .05em;
		display: block;
		margin-top: 5rem;
		padding-bottom: 2rem;
		font-size: 1.2rem;
		line-height: 1.5;
		text-align: center;
		font-weight: var(--font-weight-medium);
		@media screen and (max-width: 743px) {
			margin-top: 2rem;
			padding-bottom: 1rem;
			font-size: 0.9rem;
		}
	}
}

/* container
====================================================================== */
#container {
	position: relative;
	overflow: clip;
	@media screen and (max-width: 743px) {
		padding-top: var(--header-height);
	}
}

/* ===================================================================================================================

	パーツ

============================================================================= */

/* bg_point
====================================================================== */
.bg_point {
	position: absolute;
	background-repeat: no-repeat;
	background-position: 50%;
	background-size: 100%;
	pointer-events: none;
	top: calc(var(--top) / var(--height) * 100%);
	left: calc(50% + ((var(--left) - 800) * .1rem));
	right: calc(50% + ((var(--right) - 800) * .1rem));
	z-index: -1;
	&.-type1 {
		aspect-ratio: 1;
		width: 16rem;
		background-image: url(../img/bg-point1.svg);
		&.-s {
			width: 8rem;
		}
		&.-w200 {
			width: 20rem;
		}
		&.-w120 {
			width: 12rem;
		}
		&.-white {
			background-image: url(../img/bg-point1-white.svg);
		}
	}
	&.-type2 {
		aspect-ratio: 137 / 52;
		width: 13.7rem;
		background-image: url(../img/bg-point2.svg);
		&.-r {
			transform: scaleX(-1);
		}
	}
	@media screen and (max-width: 743px) {
		transform: scale(.6);
		top: calc(var(--top) / (var(--height) * .9) * 100%);
		left: calc(50% + ((var(--left) - 800) * .1rem * .2));
		right: calc(50% + ((var(--right) - 800) * .1rem * .2));
	}
}
:where(:has(> .bg_point)) {
	position: relative;
	z-index: 1;
}

/* recruit_bnr
====================================================================== */
.recruit_bnr {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 48rem;
	height: 12rem;
	margin-inline: auto;
	background-color: #fff;
	border: 1px solid var(--color-theme);
	text-decoration: none;
	font-size: 1.6rem;
	color: var(--color-base);
	padding-left: 24rem;
	img {
		position: absolute;
		inset: 0 auto 0 0;
		object-fit: cover;
		width: 50%;
		height: 100%;
	}
	.en {
		color: var(--color-theme);
		font-size: 2.4rem;
		line-height: 1.6;
	}
	&[target] {
		&::after {
			content: "";
			position: absolute;
			right: 1.4rem;
			bottom: 1.4rem;
			width: 1.7rem;
			height: 1.7rem;
			background: url(../img/ico-blank.svg) no-repeat 50%;
			background-size: 100%;
		}
	}
	&:not([target]) {
		&::after {
			content: "";
			position: absolute;
			right: 1.4rem;
			bottom: 1.4rem;
			width: 2rem;
			height: 2rem;
			background: url(../img/ico-link-arrow.svg) no-repeat 50%;
			background-size: 100%;
		}
	}
	@media (hover) {
		&:hover {
			opacity: 0.7;
		}
	}
	@media screen and (max-width: 743px) {
		width: auto;
		height: 9rem;
		font-size: 1.2rem;
		padding-left: 50%;
		padding-right: 2rem;
		.en {
			font-size: 1.8rem;
			line-height: 1.4;
		}
		&[target] {
			padding-right: 0;
			&::after {
				right: 1rem;
				bottom: 1rem;
				width: 1.7rem;
				height: 1.7rem;
			}
		}
		&:not([target]) {
			&::after {
				right: 1rem;
				bottom: calc(50% - 1.8rem / 2);
				width: 1.8rem;
				height: 1.8rem;
			}
		}
	}
}

/* bottom_bnr
====================================================================== */
.bottom_bnr {
	margin-top: 10rem;
	@media screen and (max-width: 743px) {
		margin-top: 5rem;
	}
}

/* page_title
====================================================================== */
.page_title_large {
	position: relative;
	height: 100svh;
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	text-align: center;
	clip-path: inset(0);
	z-index: 1;
	&::after {
		content: "";
		position: absolute;
		inset: 0;
		background: url(../img/title-point.png) no-repeat 50%;
		background-size: 120rem;
		z-index: -1;
	}
	h1 {
		position: relative;
		padding-top: 5.5rem;
		--ls: .2em;
		writing-mode: vertical-rl;
		font-size: 3.6rem;
		line-height: 1.2;
		z-index: 3;
		&::before {
			content: "";
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			width: 3.8rem;
			aspect-ratio: 1;
			margin-inline: auto;
			background: url(../img/logo-mark.svg) no-repeat 50%;
			background-size: 100%;
			writing-mode: initial;
			filter: var(--white-filter);
		}
	}
	.title_nav {
		position: absolute;
		right: 0;
		left: 0;
		bottom: calc(100 / 900 * 100%);
		ul {
			display: flex;
			gap: 2rem;
		}
		a {
			position: relative;
			display: flex;
			justify-content: center;
			align-items: center;
			height: 7rem;
			background-color: #fff;
			font-size: 1.6rem;
			text-decoration: none;
			clip-path: var(--frame);
			font-weight: var(--font-weight-medium);
			&::after {
				content: "";
				position: absolute;
				right: 2rem;
				top: 0;
				bottom: 0;
				width: 2rem;
				height: 2rem;
				margin-block: auto;
				background: url(../img/ico-link-arrow.svg) no-repeat 50%;
				background-size: 100%;
				transform: rotate(90deg);
			}
			@media (hover) {
				&:hover {
					opacity: 0.7;
				}
			}
		}
	}
	&:has(.title_nav) {
		padding-bottom: 8rem;
	}
	.bg {
		position: fixed;
		inset: 0;
		z-index: -1;
	}
	&.-about::after {
		content: none;
	}
	@media screen and (min-width: 744px), print {
		min-height: 60rem;
		.title_nav {
			width: 114rem;
			margin-inline: auto;
			li {
				width: 100%;
			}
		}
		&.-hall::after {
			background-image: url(../img/hall/title-point.png);
		}
	}
	@media screen and (max-width: 743px) {
		height: calc(100svh - var(--header-height));
		padding-bottom: var(--fix-nav-height);
		&::after {
			background-image: url(../img/title-point_sp.png);
			background-size: 100%;
		}
		h1 {
			padding-top: 5.2rem;
			font-size: 2.8rem;
			&::before {
				width: 3rem;
			}
		}
		.title_nav {
			right: 2rem;
			left: 2rem;
			bottom: calc(2rem + var(--fix-nav-height));
			ul {
				flex-direction: column;
				gap: 1rem;
			}
			a {
				height: 5rem;
				font-size: 1.4rem;
				&::after {
					content: "";
					position: absolute;
					right: 2rem;
					top: 0;
					bottom: 0;
					width: 2rem;
					height: 2rem;
					margin-block: auto;
					background: url(../img/ico-link-arrow.svg) no-repeat 50%;
					background-size: 100%;
					transform: rotate(90deg);
				}
			}
		}
		&:has(.title_nav) {
			padding-bottom: calc(16rem + var(--fix-nav-height));
		}
		&.-hall::after {
			background-image: url(../img/hall/title-point_sp.png);
			background-position: 50% 20%;
		}
	}
}

.page_title_simple {
	position: relative;
	height: 52rem;
	display: flex;
	justify-content: center;
	align-items: center;
	padding-top: 2rem;
	background: linear-gradient(126deg, var(--color-grad2) 30%, var(--color-grad1) 70%);
	color: #fff;
	text-align: center;
	z-index: 1;
	&::after {
		content: "";
		position: absolute;
		inset: 0;
		background: url(../img/title-simple-point.png) no-repeat 50%;
		background-size: 120rem;
		z-index: -1;
	}
	h1, .title {
		position: relative;
		padding-top: 5.5rem;
		--ls: .15em;
		font-size: 3.6rem;
		line-height: 1.2;
		z-index: 3;
		&::before {
			content: "";
			position: absolute;
			top: 0;
			left: 0;
			right: 0;
			width: 3.8rem;
			aspect-ratio: 1;
			margin-inline: auto;
			background: url(../img/logo-mark.svg) no-repeat 50%;
			background-size: 100%;
			writing-mode: initial;
			filter: var(--white-filter);
		}
	}
	@media screen and (max-width: 743px) {
		height: 20rem;
		padding-top: 0;
		padding-bottom: 2rem;
		h1, .title {
			padding-top: 4rem;
			font-size: 2.2rem;
			line-height: 1.4;
			&::before {
				width: 3rem;
			}
		}
		&::after {
			background-image: url(../img/title-simple-point_sp.png);
			background-size: 100%;
		}
	}
}


/* title
====================================================================== */
.point_v_title {
	position: relative;
	display: flex;
	justify-content: center;
	width: 3.8rem;
	margin-inline: auto;
	padding-top: 5.5rem;
	--ls: .2em;
	span {
		writing-mode: vertical-rl;
		font-size: 3rem;
		line-height: 1.2;
	}
	&::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		width: 3.8rem;
		aspect-ratio: 1;
		margin-inline: auto;
		background: url(../img/logo-mark.svg) no-repeat 50%;
		background-size: 100%;
		writing-mode: initial;
	}
	&.-white {
		color: #fff;
		&::before {
			filter: var(--white-filter);
		}
	}
	@media screen and (max-width: 743px) {
		width: 2.6rem;
		padding-top: 4rem;
		--ls: .2em;
		span {
			font-size: 2.3rem;
		}
		&::before {
			width: 2.6rem;
		}
	}
}

.m_title {
	margin-bottom: 6rem;
	font-size: 3rem;
	line-height: 1.4;
	font-weight: var(--font-weight-medium);
	text-align: center;
	@media screen and (max-width: 743px) {
		font-size: 2.3rem;
		margin-bottom: 3rem;
	}
}

.bdb_title {
	margin-bottom: 3rem;
	padding-bottom: 2rem;
	border-bottom: 1px solid var(--color-theme);
	font-size: 2.4rem;
	font-weight: var(--font-weight-medium);
	line-height: 1.8;
	@media screen and (max-width: 743px) {
		margin-bottom: 1.5rem;
		padding-bottom: 1rem;
		font-size: 1.8rem;
	}
}

/* padding
====================================================================== */
._base_pd {
	padding-block: 13rem 14rem;
	&.-pb10 {
		padding-bottom: 10rem;
	}
	@media screen and (max-width: 743px) {
		padding: 6rem var(--sp-base-padding) 7rem;
		&.-pb10 {
			padding-bottom: 5rem;
		}
	}
}

/* frame_box
====================================================================== */
.frame_box {
	position: relative;
	padding: 13rem 10rem 14rem;
	z-index: 1;
	&::before {
		content: "";
		position: absolute;
		inset: 0;
		background-color: rgba(255,255,255,.6);
		clip-path: var(--frame);
		z-index: -1;
	}
	&.-a80 {
		&::before {
			background-color: rgba(255,255,255,.8);
		}
	}
	@media screen and (max-width: 743px) {
		margin-inline: calc(var(--sp-base-padding) / 2);
		padding: 5rem var(--sp-base-padding) 6rem;
		._base_pd & {
			margin-inline: calc(var(--sp-base-padding) / 2 * -1);
		}
	}
}
.frame_border_box {
	--c: var(--border-base);
	--b: 1px;
	--s: var(--frame-s);
	--ss: calc(var(--frame-s) * 2);
	--bg: #fff;
	position: relative;
	display: block;
	z-index: 2;
	&::before,
	&::after {
		content: "";
		position: absolute;
		inset: 0;
		pointer-events: none;
		z-index: -1;
	}
	&::before {
		inset: var(--b);
		background: var(--bg);
		clip-path: var(--frame);
	}
	&::after {
		background: linear-gradient(var(--c) 0 0) top center / calc(100% - (var(--s) * 2)) var(--b) no-repeat, linear-gradient(var(--c) 0 0) bottom center / calc(100% - (var(--s) * 2)) var(--b) no-repeat, linear-gradient(var(--c) 0 0) center left / var(--b) calc(100% - (var(--s) * 2)) no-repeat, linear-gradient(var(--c) 0 0) center right / var(--b) calc(100% - (var(--s) * 2)) no-repeat, linear-gradient(-45deg, transparent calc(50% - (var(--b) / 2)), var(--c) 0 calc(50% + (var(--b) / 2)), transparent 0) top left / var(--s) var(--s) no-repeat, linear-gradient(45deg, transparent calc(50% - (var(--b) / 2)), var(--c) 0 calc(50% + (var(--b) / 2)), transparent 0) top right / var(--s) var(--s) no-repeat, linear-gradient(45deg, transparent calc(50% - (var(--b) / 2)), var(--c) 0 calc(50% + (var(--b) / 2)), transparent 0) bottom left / var(--s) var(--s) no-repeat, linear-gradient(-45deg, transparent calc(50% - (var(--b) / 2)), var(--c) 0 calc(50% + (var(--b) / 2)), transparent 0) bottom right / var(--s) var(--s) no-repeat;;
	}
}

/* ph_right_box
====================================================================== */
.ph_right_box {
	padding: 5rem 5rem 5rem 8rem;
	&:not(:last-child) {
		margin-bottom: 4rem;
	}
	@media screen and (min-width: 744px), print {
		display: flex;
		flex-direction: row-reverse;
		gap: 8rem;
		.ph {
			width: 42rem;
			flex-shrink: 0;
		}
		.contents {
			flex-grow: 1;
			padding-top: 1rem;
		}
	}
	@media screen and (max-width: 743px) {
		padding: 2rem 2rem 3rem;
		&:not(:last-child) {
			margin-bottom: 2rem;
		}
		.ph {
			aspect-ratio: 16 / 9;
			margin-bottom: 2rem;
			img {
				width: 100%;
				height: 100%;
				object-fit: cover;
			}
		}
	}
}

/* fixed_bg
====================================================================== */
.fixed_bg {
	position: fixed;
	inset: 0;
	z-index: -1;
	@media screen and (max-width: 743px) {
		top: var(--header-height);
	}
	&.-gradient::after {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(126deg, var(--color-grad2) 30%, var(--color-grad1) 70%);
		opacity: 0.9;
	}
}
:where(:has(> .fixed_bg)) {
	position: relative;
	clip-path: inset(0);
	z-index: 1;
}

/* box_btn
====================================================================== */
.box_btn {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 100%;
	width: 34rem;
	height: 6rem;
	margin-inline: auto;
	background-color: #fff;
	border: 1px solid var(--color-theme);
	color: var(--color-base);
	text-decoration: none;
	font-weight: 600;
	font-size: 1.6rem;
	line-height: 1.5;
	&::after {
		content: "";
		position: absolute;
		right: 1.5rem;
		top: 0;
		bottom: 0;
		width: 2rem;
		background: url(../img/ico-link-arrow.svg) no-repeat 50%;
		background-size: 100%;
	}
	&.-mail {
		&::before {
			content: "";
			position: absolute;
			left: 2rem;
			top: calc(50% - 1.8rem / 2);
			width: 2.4rem;
			height: 1.8rem;
			background: url(../img/ico-mail.svg) no-repeat 50%;
			background-size: 100%;
		}
	}
	&.-calculator {
		color: var(--color-theme);
		&::before {
			content: "";
			position: absolute;
			left: 3rem;
			top: calc(50% - 2.9rem / 2);
			width: 2.2rem;
			height: 2.9rem;
			background: url(../img/ico-calculator.svg) no-repeat 50%;
			background-size: 100%;
		}
	}
	@media (hover) {
		&:hover,
		a:hover & {
			opacity: 0.6;
		}
	}
	@media screen and (min-width: 744px), print {
		&.-s {
			width: 24rem;
		}
		&.-calculator {
			width: 44.6rem;
			height: 8rem;
			padding-right: 1rem;
			font-size: 2rem;
			&::before {
				content: "";
				position: absolute;
				left: 3rem;
				top: calc(50% - 2.9rem / 2);
				width: 2.2rem;
				height: 2.9rem;
				background: url(../img/ico-calculator.svg) no-repeat 50%;
				background-size: 100%;
			}
			&::after {
				right: 3rem;
				width: 3.2rem;
			}
		}
	}
	@media screen and (max-width: 743px) {
		width: 30rem;
		height: 5.6rem;
		font-size: 1.4rem;
		&.-calculator {
			&::before {
				left: 1.6rem;
			}
		}
	}
}

/* arrow_link
====================================================================== */
.arrow_link {
	--a-color: var(--color-theme);
	position: relative;
	display: inline-block;
	padding-left: 1em;
	&::before {
		content: "";
		position: absolute;
		left: 0;
		top: calc(.5lh - .5em);
		width: .6em;
		height: 1em;
		background-color: var(--color-theme);
		clip-path: polygon(0 0, 100% 50%, 0 100%);
		transform: scale(.8);
	}
}

/* group_bnr
====================================================================== */
.group_bnr {
	display: flex;
	flex-direction: column;
	gap: 4rem;
	a {
		position: relative;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		padding-left: 50%;
		text-decoration: none;
		background-color: #fff;
		font-size: 1.4rem;
		line-height: 1.5;
		&::before {
			content: "";
			position: absolute;
			inset: 0;
			border: 1px solid var(--color-theme);
			pointer-events: none;
			z-index: 3;
		}
		&::after {
			content: "";
			position: absolute;
			right: 1.5rem;
			bottom: 1.5rem;
			width: 2rem;
			height: 2rem;
			background: url(../img/ico-link-arrow.svg) no-repeat 50%;
			background-size: 100%;
		}
		.logo {
			margin-bottom: 1rem;
			width: 15rem;
		}
		.title {
			font-size: 2.2rem;
			&:not(:last-child) {
				margin-bottom: 1rem;
			}
		}
		@media (hover) {
			&:hover {
				opacity: 0.7;
			}
		}
	}
	@media screen and (min-width: 744px), print {
		width: 80rem;
		margin-inline: .5rem;
		a {
			.img {
				position: absolute;
				top: 0;
				left: 0;
				bottom: 0;
				width: 50%;
				height: 100%;
				object-fit: cover;
			}
			&.-bnr1 {
				height: 18rem;
			}
			&.-bnr2 {
				height: 13rem;
			}
		}
	}
	@media screen and (max-width: 743px) {
		display: flex;
		flex-direction: column;
		gap: 2rem;
		a {
			padding: 0 0 3rem;
			font-size: 1.2rem;
			&::after {
				right: 1rem;
				bottom: 1rem;
			}
			.img {
				display: block;
				width: 100%;
				object-fit: cover;
				margin-bottom: 2.4rem;
			}
			.logo {
				margin-bottom: .6rem;
				width: 12rem;
			}
			.title {
				font-size: 1.7rem;
			}
			&.-bnr1 .img {
				height: 12rem;
			}
			&.-bnr2 .img {
				height: 9rem;
			}
		}
	}
}

/* acc
====================================================================== */
._acc {
	overflow: hidden;
	height: 0;
	transition: height var(--transition);
}

/* basic_dl_table
====================================================================== */
.basic_dl_table {
	border-top: 1px solid var(--border-base);
	& > dl {
		display: flex;
		padding: 2rem 0;
		border-bottom: 1px solid var(--border-base);
		& > dt {
			width: 14rem;
			flex-shrink: 0;
		}
		li:not(:first-child) {
			margin-top: 0.2em;
		}
		.facilities {
			li::before {
				content: "◆";
				margin-right: 0.5em;
			}
			li:not(:first-child) {
				margin-top: 1em;
			}
			.tel {
				margin-left: 1.5em;
			}
		}
	}
	@media screen and (max-width: 743px) {
		& > dl {
			padding: 2rem 0;
			& > dt {
				width: 8rem;
			}
			li:not(:first-child) {
				margin-top: 0.4em;
			}
			.facilities {
				.tel {
					margin-left: 0;
					display: table;
					& + br {
						display: none;
					}
				}
			}
		}
	}
	&.-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;
}


/* contact_block
====================================================================== */
.contact_block {
	position: relative;
	overflow: hidden;
	margin-top: 9rem;
	padding-bottom: 6rem;
	border-bottom: 1px solid var(--color-theme);
	text-align: center;
	h2 {
		position: relative;
		width: fit-content;
		margin-inline: auto;
		margin-bottom: 4rem;
		padding-inline: 3rem;
		font-size: 2.2rem;
		line-height: 1.5;
		font-weight: var(--font-weight-medium);
		&::before,
		&::after {
			content: "";
			position: absolute;
			top: 50%;
			width: 90rem;
			border-top: 1px solid var(--color-theme);
		}
		&::before {
			right: 100%;
		}
		&::after {
			left: 100%;
		}
	}
	.contact {
		margin-top: 5rem;
		dt {
			line-height: 1.6;
		}
		.tel {
			display: block;
			margin-block: 1rem;
			color: var(--color-theme);
			font-size: 2rem;
			line-height: 1.2;
			a {
				--a-color: var(--color-theme);
				font-size: 2.8rem;
			}
		}
		.owner {
			display: block;
			font-size: 1.4rem;
			line-height: 1.5;
			&::before {
				content: "［ ";
			}
			&::after {
				content: " ］";
			}
		}
	}
	@media screen and (min-width: 744px), print {
		max-width: 90rem;
		margin-inline: auto;
		.contact {
			display: flex;
			& > * {
				width: 100%;
				& + & {
					border-left: 1px solid var(--color-theme);
				}
			}
		}
	}
	@media screen and (max-width: 743px) {
		margin-top: 6rem;
		padding-bottom: 3rem;
		h2 {
			margin-bottom: 2rem;
			padding-inline: 1rem;
			font-size: 1.8rem;
		}
		.contact {
			display: flex;
			flex-direction: column;
			gap: 3rem;
			margin-top: 3rem;
			dt {
				font-size: 1.5rem;
			}
			.tel {
				margin-block: .6rem 1rem;
				font-size: 1.8rem;
				a {
					font-size: 2.4rem;
				}
			}
			.owner {
				font-size: 1.1rem;
			}
		}
	}
}


/* ul / ol
====================================================================== */
.dot_li > li {
	position: relative;
	padding-left: 1em;
}
.dot_li > li::before {
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
	font-feature-settings: normal;
}

.circle_li > li {
	position: relative;
	padding-left: 1.1em;
}
.circle_li > li::before {
	content: "";
	position: absolute;
	top: calc(.5lh - .5rem);
	left: 0;
	width: 1rem;
	height: 1rem;
	background-color: var(--color-theme);
	border-radius: 100%;
}

.parentheses_li > li {
	position: relative;
	padding-left: 2.8em;
}
.parentheses_li > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.parentheses_li_h > li {
	position: relative;
	padding-left: 1.6em;
}
.parentheses_li_h > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}
.parentheses_li_hh > li {
	position: relative;
	padding-left: 2.2em;
}
.parentheses_li_hh > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.point_li > li {
	position: relative;
	padding-left: 1.5em;
}
.point_li > li > span:first-child {
	position: absolute;
	top: 0;
	left: 0;
}

.square_li > li {
	position: relative;
	padding-left: 0.8em;
}
.square_li > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .8em;
	width: 5px;
	height: 5px;
	background-color: #14143c;
}
@media screen and (max-width: 743px) {
	.square_li > li::before {
		top: 0.6em;
	}
}

.num_li {
	margin-left: 1.8em;
	list-style: decimal;
}
.alphabet_li {
	margin-left: 1.8em;
	list-style: lower-latin;
}

.mt_li > li + li {
	margin-top: .8lh;
}
.mt_li_s > li + li {
	margin-top: .5lh;
}
@media screen and (max-width: 743px) {
	.sp_mt_li > li + li {
		margin-top: 0.8em;
	}
}

.inline_li > li {
	display: inline-block;
	margin-right: 0.3em;
}

@media screen and (min-width: 744px), print {
	.column_li {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.column_li > li {
		width: 48%;
	}
	.column_li > li:nth-child(n + 3) {
		margin-top: 0.25em;
	}
}
@media screen and (max-width: 743px) {
	.column_li > li + li {
		margin-top: 0.25em;
	}
}

.dl_table {
	display: table;
}
.dl_table > * {
	display: table-row;
}
.dl_table > * > * {
	display: table-cell;
}
.dl_table dt {
	white-space: nowrap;
}
.dl_table.-dt_pr dt {
	padding-right: 1em;
}


/* ============================================================================

	感動葬儀について

============================================================================= */
.about_contents {
	position: relative;
	clip-path: inset(0);
	padding-bottom: 50vh;
	@media screen and (max-width: 743px) {
		padding-bottom: 20vh;
	}
	.about_bg {
		position: fixed;
		inset: 0;
		z-index: -1;
		.bg {
			position: absolute;
			inset: 0;
			opacity: 0;
			z-index: 1;
			&.-is-active {
				opacity: 1;
			}
			&::before {
				content: "";
				position: absolute;
				inset: 0;
				background: #000;
				opacity: 0.5;
				z-index: 2;
			}
			.cover {
				position: absolute;
				inset: 0;
				z-index: 3;
				&::before {
					content: "";
					position: absolute;
					inset: 0;
					background: linear-gradient(126deg, var(--color-grad2) 40%, var(--color-grad1) 70%);
					opacity: 0.81;
				}
			}
		}
		.point {
			--height: 900;
			position: absolute;
			inset: 0;
			opacity: 0;
			z-index: 1;
			&.-is-active {
				opacity: 1;
			}
			&.-header1 {
				.bg_point {
					&.-point1 {
						--top: 170;
						--right: 1130;
					}
					&.-point2 {
						--top: 610;
						--right: 950;
					}
					&.-point3 {
						--top: 220;
						--left: 1014;
					}
					&.-point4 {
						--top: 590;
						--left: 1210;
					}
				}
			}
			&.-contents1 {
				.bg_point {
					&.-point1 {
						--top: 180;
						--right: 1250;
					}
					&.-point2 {
						--top: 450;
						--left: 1340;
					}
					&.-point3 {
						--top: 630;
						--left: 1260;
					}
				}
			}
			&.-header2 {
				.bg_point {
					&.-point1 {
						--top: 260;
						--right: 940;
					}
					&.-point2 {
						--top: 550;
						--right: 885;
					}
					&.-point3 {
						--top: 290;
						--left: 895;
					}
					&.-point4 {
						--top: 480;
						--left: 880;
					}
				}
			}
			&.-contents2 {
				.bg_point {
					&.-point1 {
						--top: 185;
						--right: 1280;
					}
					&.-point2 {
						--top: 180;
						--left: 1300;
					}
					&.-point3 {
						--top: 670;
						--left: 1190;
					}
				}
			}
			&.-header3 {
				.bg_point {
					&.-point1 {
						--top: 370;
						--right: 965;
					}
					&.-point2 {
						--top: 550;
						--right: 885;
					}
					&.-point3 {
						--top: 290;
						--left: 895;
					}
					&.-point4 {
						--top: 555;
						--left: 900;
					}
				}
			}
			&.-contents3 {
				.bg_point {
					&.-point1 {
						--top: 220;
						--right: 1280;
					}
					&.-point2 {
						--top: 630;
						--right: 1345;
					}
					&.-point3 {
						--top: 180;
						--left: 1320;
					}
					&.-point4 {
						--top: 665;
						--left: 1260;
					}
				}
			}
			&.-header4 {
				.bg_point {
					&.-point1 {
						--top: 255;
						--right: 900;
					}
					&.-point2 {
						--top: 550;
						--right: 890;
					}
					&.-point3 {
						--top: 290;
						--left: 895;
					}
					&.-point4 {
						--top: 450;
						--left: 930;
					}
				}
			}
			&.-contents4 {
				.bg_point {
					&.-point1 {
						--top: 170;
						--right: 1290;
					}
					&.-point2 {
						--top: 650;
						--right: 1300;
					}
					&.-point3 {
						--top: 480;
						--left: 1290;
					}
					&.-point4 {
						--top: 690;
						--left: 1230;
					}
				}
			}
			&.-header5 {
				.bg_point {
					&.-point1 {
						--top: 320;
						--right: 940;
					}
					&.-point2 {
						--top: 580;
						--right: 1000;
					}
					&.-point3 {
						--top: 210;
						--left: 1275;
					}
					&.-point4 {
						--top: 520;
						--left: 945;
					}
				}
			}
			&.-contents5 {
				.bg_point {
					&.-point1 {
						--top: 180;
						--right: 1300;
					}
					&.-point2 {
						--top: 640;
						--right: 1260;
					}
					&.-point3 {
						--top: 145;
						--left: 1300;
					}
					&.-point4 {
						--top: 540;
						--left: 1230;
					}
				}
			}
		}
	}

	.about_section {
		margin-top: 50vh;
		header {
			height: 100lvh;
			display: flex;
			flex-direction: column;
			justify-content: center;
			align-items: center;
			color: var(--color-theme);
			.en {
				font-size: 1.4rem;
				line-height: 1;
				&::after {
					content: "";
					display: block;
					width: 0;
					height: 2rem;
					margin: 2rem auto 1rem;
					border-left: 1px solid;
				}
			}
			h2 {
				--ls: .1em;
				font-size: 3.6rem;
				line-height: 1.2;
				.num {
					font-size: 3.8rem;
				}
			}
		}
		.contents {
			color: #fff;
		}
		@media screen and (min-width: 744px), print {
			.contents {
				height: 100lvh;
				display: flex;
				justify-content: center;
				align-items: center;
			}
			.contents_inner {
				display: flex;
				flex-direction: row-reverse;
				& > *:not(.txt) {
					writing-mode: vertical-rl;
					text-orientation: upright;
				}
				.category {
					position: relative;
					margin-left: 3rem;
					padding-top: 3rem;
					font-size: 1.4rem;
					line-height: 2;
					color: var(--color-theme);
					font-weight: var(--font-weight-semi);
					.num {
						text-combine-upright: all;
					}
					&::before {
						content: "";
						position: absolute;
						top: 0;
						height: 2rem;
						left: 50%;
						border-left: 1px solid;
					}
				}
				.lead {
					margin-left: 3rem;
					font-size: 2rem;
					line-height: 2;
				}
				h3 {
					font-size: 2.8rem;
					line-height: 2;
				}
				.txt {
					display: flex;
					flex-direction: row-reverse;
					padding-right: 2rem;
					padding-top: 3rem;
					& > * {
						writing-mode: vertical-rl;
						font-size: 1.6rem;
						line-height: calc(40 / 16);
						margin-right: 1lh;
					}
					.ellipsis {
						display: block;
						text-align: center;
					}
				}
				.first-bracket {
					margin-top: -0.5em;
				}
			}
		}
		@media screen and (max-width: 743px) {
			margin-top: 0;
			header {
				height: 100svh;
				.en {
					font-size: 1.2rem;
				}
				h2 {
					font-size: 3rem;
					.num {
						font-size: 3.2rem;
					}
				}
			}
			.contents {
				padding: 0 2rem 20vh;
				.category {
					position: relative;
					margin-bottom: 1rem;
					padding-left: 3rem;
					font-size: 1.4rem;
					line-height: 1.8;
					color: var(--color-theme);
					font-weight: var(--font-weight-semi);
					&::before {
						content: "";
						position: absolute;
						left: 0;
						width: 2rem;
						top: 50%;
						border-top: 1px solid;
					}
				}
				.lead {
					margin-bottom: 2rem;
					font-size: 1.8rem;
					line-height: 1.8;
				}
				h3 {
					margin-bottom: 4rem;
					font-size: 2.4rem;
					line-height: 1.6;
				}
				.txt {
					& > * {
						margin-top: 1lh;
					}
					.ellipsis {
						display: block;
						text-align: center;
					}
				}
				.first-bracket {
					margin-left: -0.5em;
				}
			}
		}
	}
}



/* ============================================================================

	斎場一覧

============================================================================= */
.hall_item {
	scroll-margin-top: var(--header-height);
	.hall_header {
		padding-block: 6rem 4rem;
		background-color: #fff;
		text-align: center;
		h2 {
			margin-bottom: 1rem;
			font-size: 4rem;
			line-height: 1.5;
		}
	}
	.lead_text {
		--ls: 0;
		position: relative;
		margin-block: 5rem 12rem;
		text-align: center;
		&::before {
			content: "";
			display: block;
			width: 0;
			height: 4rem;
			margin-inline: auto;
			margin-bottom: 4rem;
			border-left: 1px solid var(--color-theme);
		}
		.lead {
			--ls: .1em;
			margin-bottom: 3rem;
			font-size: 3rem;
			line-height: 1.4;
		}
	}
	.name {
		margin-bottom: 1rem;
		font-size: 3rem;
		line-height: 1.5;
	}
	.area {
		font-size: 2rem;
		line-height: 1.5;
	}
	.tel {
		margin-top: 6rem;
		a {
			color: var(--color-theme);
			font-size: 3rem;
			line-height: 1.2;
			text-decoration: none;
			.number {
				font-size: 4.4rem;
			}
		}
	}
	.links {
		display: flex;
		flex-wrap: wrap;
		margin-top: 2rem;
		border-top: 1px solid var(--border-base);
		li {
			position: relative;
			width: 50%;
			border-bottom: 1px solid var(--border-base);
			&:nth-child(2n + 1) {
				padding-right: 2rem;
				&::after {
					content: "";
					position: absolute;
					right: 0;
					top: 2rem;
					bottom: 2rem;
					border-right: 1px solid var(--border-base);
				}
			}
			&:nth-child(2n) {
				padding-left: 2rem;
			}
		}
		a {
			position: relative;
			display: flex;
			align-items: center;
			height: 8rem;
			text-decoration: none;
			font-size: 1.6rem;
			&::after {
				content: "";
				position: absolute;
				right: 0;
				top: 0;
				bottom: 0;
				width: 2rem;
				background: url(../img/ico-link-arrow.svg) no-repeat 50%;
				background-size: 100%;
			}
			@media (hover) {
				&:hover {
					opacity: 0.6;
				}
			}
		}
	}
	.notes {
		margin-top: 2rem;
		font-size: 1.4rem;
		line-height: 1.6;
	}
	.info {
		font-size: 1.6rem;
		line-height: 1.8;
		dl + dl {
			margin-top: 3rem;
		}
		dt {
			position: relative;
			padding-left: 2rem;
			font-size: 1.4rem;
			&::before {
				content: "";
				position: absolute;
				left: 0;
				top: calc(.5lh - 1rem / 2);
				width: 1rem;
				height: 1rem;
				background-color: var(--color-theme);
				transform: rotate(45deg);
			}
		}
		.dot_li {
			li + li {
				margin-top: .5em;
			}
		}
	}
	.ph_detail {
		overflow: hidden;
		margin-top: 12rem;
		--ls: 0;
		.swiper {
			overflow: visible;
			padding-bottom: 7rem;
		}
		.swiper-slide {
			width: 32rem;
			padding-inline: .5rem;
			box-sizing: content-box;
			&.-s {
				width: 22rem;
			}
			a {
				display: block;
				text-decoration: none;
			}
			.img {
				display: block;
			}
			dl {
				position: relative;
				margin-top: 1rem;
				padding-inline: 2rem;
				font-size: 1.3rem;
				line-height: 2;
				dt {
					position: relative;
					margin-bottom: 0.2em;
					font-size: 1.5rem;
					&::before {
						content: "▲";
						position: absolute;
						top: 0;
						left: -2rem;
						transform-origin: 0;
						transform: scale(.8);
					}
				}
			}
		}
	}
	.map {
		position: relative;
		padding-block: 15rem;
		background: linear-gradient(135deg, var(--color-grad1) 30%, var(--color-grad2) 70%);
		z-index: 2;
		&::before {
			content: "";
			position: absolute;
			inset: -10px 0 0;
			background: linear-gradient(to bottom, var(--bg-base) 30%, color-mix(in srgb, var(--bg-base) 0%, transparent) 80%);
			pointer-events: none;
			z-index: -1;
		}
		& > * {
			max-width: var(--base-width);
			margin-inline: auto;
		}
		iframe {
			width: 100%;
			height: 50rem;
		}
		.link {
			margin-top: 1rem;
			text-align: right;
			font-size: 1.4rem;
			a {
				--a-color: #fff;
			}
		}
	}
	@media screen and (min-width: 744px), print {
		.ph_main {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
		}
		.ph_main:has(li:only-child) {
			display: block;
		}
		.contents {
			display: flex;
			width: var(--base-width);
			margin-inline: auto;
			justify-content: space-between;
			.main {
				width: 42rem;
			}
			.info {
				width: 66rem;
				dl {
					display: flex;
					dt {
						position: relative;
						top: 0.1em;
						width: 10rem;
						flex-shrink: 0;
					}
				}
			}
		}
		.ph_detail {
			.swiper {
				width: 140rem;
				max-width: calc(100% - 6rem);
				margin-inline: auto;
			}
		}
	}
	@media screen and (max-width: 743px) {
		.hall_header {
			padding-block: 4rem 3rem;
			h2 {
				margin-bottom: .6rem;
				font-size: 2.6rem;
			}
		}
		.ph_main img {
			width: 100%;
			height: auto;
			aspect-ratio: 2 / 1.2;
			object-fit: cover;
		}
		.lead_text {
			margin-block: 2rem 4rem;
			padding-inline: var(--sp-base-padding);
			text-align: left;
			&::before {
				height: 3rem;
				margin-bottom: 1.5rem;
			}
			.lead {
				margin-bottom: 2rem;
				font-size: 2.3rem;
				text-align: center;
			}
		}
		.contents {
			padding-inline: var(--sp-base-padding);
		}
		.name {
			margin-bottom: .6rem;
			font-size: 2.3rem;
			text-align: center;
		}
		.area {
			text-align: center;
			font-size: 1.6rem;
		}
		.tel {
			margin-top: 2rem;
			text-align: center;
			a {
				font-size: 2rem;
				.number {
					font-size: 3rem;
				}
			}
		}
		.links {
			--ls: 0;
			li {
				&:nth-child(2n + 1) {
					padding-right: 1.5rem;
					&::after {
						top: 1rem;
						bottom: 1rem;
					}
				}
				&:nth-child(2n) {
					padding-left: 1.5rem;
				}
			}
			a {
				height: 6rem;
				font-size: 1.3rem;
			}
		}
		.notes {
			font-size: 1.1rem;
		}
		.info {
			margin-top: 3rem;
			font-size: 1.3rem;
			dl + dl {
				margin-top: 2rem;
			}
			dt {
				margin-bottom: 0.2em;
				font-size: 1.2rem;
			}
		}
		.ph_detail {
			margin-top: 4rem;
			.swiper {
				padding-bottom: 4rem;
				margin-inline: var(--sp-base-padding);
			}
			.swiper-slide {
				width: calc(32rem * .7);
				&.-s {
					width: calc(22rem * .7);
				}
				dl {
					margin-top: 0.6rem;
					font-size: 1rem;
					dt {
						font-size: 1.3rem;
						line-height: 1.5;
					}
				}
			}
		}
		.map {
			padding: 3rem var(--sp-base-padding) 6rem;
			iframe {
				height: 30rem;
			}
			.link {
				font-size: 1.1rem;
			}
		}
	}
}

/* ============================================================================

	料金について

============================================================================= */
.pricing_easyorderplan {
	h2 {
		margin-bottom: 4rem;
		font-size: 3.6rem;
		text-align: center;
		@media screen and (max-width: 743px) {
			margin-bottom: 3rem;
			font-size: 2.5rem;
			line-height: 1.4;
		}
	}
	.lead {
		text-align: center;
	}
	.plan_box {
		margin-top: 7rem;
		padding: 1px;
		.plan {
			position: relative;
			dl {
				position: relative;
				dt {
					--g: calc(30 / 140 * 100%);
					position: relative;
					display: flex;
					justify-content: center;
					align-items: center;
					aspect-ratio: 200 / 140;
					color: #fff;
					text-align: center;
					font-size: 2rem;
					line-height: 1.5;
					clip-path: polygon(0 var(--g), 50% 0, 100% var(--g), 100% calc(100% - var(--g)), 50% 100%, 0 calc(100% - var(--g)));
					.num {
						position: absolute;
						right: 0;
						left: 0;
						bottom: 70%;
						font-size: 1.6rem;
						line-height: 1;
					}
					&::after {
						content: "";
						position: absolute;
						right: 0;
						left: 0;
						bottom: var(--g);
						width: 2rem;
						margin-inline: auto;
						border-top: 2px solid var(--color-theme);
					}
				}
				&:nth-child(1) dt {
					background: linear-gradient(98deg, #6e3ca0 20%, #503c96 380%);
				}
				&:nth-child(2) dt {
					background: linear-gradient(98deg, #6e3ca0 -80%, #503c96 280%);
				}
				&:nth-child(3) dt {
					background: linear-gradient(98deg, #6e3ca0 -180%, #503c96 180%);
				}
				&:nth-child(4) dt {
					background: linear-gradient(98deg, #6e3ca0 -280%, #503c96 80%);
				}
			}
			.plus {
				position: absolute;
				right: 0;
				left: 0;
				bottom: -3rem;
				margin-inline: auto;
				width: 6rem;
				height: 6rem;
				background-color: var(--color-theme);
				border-radius: 100%;
				z-index: 4;
				&::before,
				&::after {
					content: "";
					position: absolute;
					top: calc(50% - 1px);
					left: 0;
					right: 0;
					width: 2rem;
					margin-inline: auto;
					border-top: 2px solid #fff;
				}
				&::after {
					transform: rotate(90deg);
				}
			}
		}
		.other {
			overflow: hidden;
			position: relative;
			padding-block: 7rem;
			text-align: center;
			z-index: 2;
			&::before {
				content: "";
				position: absolute;
				inset: -2rem 0 0;
				background-color: #f0f0f0;
				clip-path: var(--frame);
				z-index: -1;
			}
			dl + dl {
				margin-top: 4rem;
			}
			dt {
				margin-bottom: 2rem;
				font-size: 2rem;
				line-height: 1.8;
			}
			ul {
				display: flex;
				flex-wrap: wrap;
				justify-content: center;
				gap: .4em 2em;
				li::before {
					content: "●";
					margin-right: 0.4em;
				}
			}
		}
		.more {
			margin-top: 5rem;
			padding-bottom: 1rem;
		}
		@media screen and (min-width: 744px), print {
			.plan {
				display: flex;
				justify-content: center;
				gap: 6rem;
				padding-block: 8rem 7rem;
				dl {
					width: 20rem;
					text-align: center;
					dt {
						margin-bottom: 1.5rem;
					}
					dd {
						margin-inline: -2rem;
					}
					&:not(:first-child)::before,
					&:not(:first-child)::after {
						content: "";
						position: absolute;
						top: calc(14rem / 2 - 1px);
						left: calc(-3rem - 1rem);
						width: 2rem;
						border-top: 2px solid var(--color-theme);
					}
					&:not(:first-child)::after {
						transform: rotate(90deg);
					}
				}
			}
			.other {
				dl {
					max-width: 90rem;
					margin-inline: auto;
				}
			}
		}
		@media screen and (max-width: 743px) {
			margin-top: 4rem;
			.plan {
				display: flex;
				flex-direction: column;
				gap: 3rem;
				padding: 4rem var(--sp-base-padding);
				dl {
					display: flex;
					align-items: center;
					gap: 2rem;
					margin-left: 1rem;
					dt {
						flex-shrink: 0;
						width: 14rem;
						font-size: 1.6rem;
						.num {
							font-size: 1.3rem;
						}
					}
					dd {
						line-height: 1.6;
					}
					&:not(:first-child)::before,
					&:not(:first-child)::after {
						content: "";
						position: absolute;
						top: calc(-1.5rem - .7rem);
						left: calc(14rem / 2 - 1px);
						height: 1.4rem;
						border-left: 2px solid var(--color-theme);
					}
					&:not(:first-child)::after {
						transform: rotate(90deg);
					}
				}
				.plus {
					transform: scale(.7);
				}
			}
			.other {
				padding: 4rem var(--sp-base-padding);
				dl + dl {
					margin-top: 3rem;
				}
				dt {
					margin-bottom: 1.5rem;
					font-size: 1.7rem;
					line-height: 1.6;
				}
				ul {
					gap: 0 1em;
				}
			}
			.more {
				margin-top: 3rem;
				padding-bottom: 0;
			}
		}
	}
	.bg_point {
		--height: 1340;
		&.-point1 {
			--top: 300;
			--right: 1300;
			z-index: 2;
			@media screen and (max-width: 743px) {
				top: 20rem;
			}
		}
		&.-point2 {
			--top: 150;
			--left: 1280;
		}
	}
}

.pricing_plan_block {
	.plan_section {
		.header {
			clip-path: inset(0);
			height: 100vh;
			img {
				position: fixed;
				inset: 0;
			}
		}
		.plan_box {
			position: relative;
			margin-top: -10rem;
			margin-inline: auto;
			background-color: var(--bg-base);
			z-index: 2;
			&::before {
				content: "";
				position: absolute;
				left: 50%;
				top: -2.3rem;
				height: 4.6rem;
				border-left: 1px solid var(--color-theme);
			}
		}
		.plan_contents {
			position: relative;
			padding-block: 10rem 15rem;
			& + .plan_contents {
				margin-top: -5rem;
				border-top: 1px solid var(--border-base);
			}
		}
		h2 {
			margin-bottom: 9rem;
			text-align: center;
			font-size: 3.6rem;
			line-height: 1.5;
		}
		.badge {
			position: absolute;
			left: 0;
			top: -4rem;
			width: 18rem;
			height: 18rem;
			display: flex;
			justify-content: center;
			align-items: center;
			flex-direction: column;
			padding-bottom: 1rem;
			background: linear-gradient(135deg, #503c96 20%, #6e3ca0 90%);
			border-radius: 100%;
			color: #fff;
			font-size: 1.8rem;
			line-height: calc(24 / 18);
			z-index: 2;
			&::before {
				content: "";
				position: absolute;
				inset: 0;
				background: url(../img/pricing/badge-bg.png) no-repeat 50%;
				background-size: calc(164 / 180 * 100%);
				opacity: 0.2;
				mix-blend-mode: multiply;
				z-index: -1;
			}
			.ok {
				margin-top: .5rem;
				font-size: 5rem;
				line-height: 1;
			}
		}
		.plan_main {
			margin-bottom: 2rem;
			.ph {
				--corner-bg: var(--color-theme);
				--corner-size: 2rem;
				position: relative;
				&::after {
					content: "";
					position: absolute;
					inset: 0;
					pointer-events: none;
					background:
						linear-gradient(135deg, var(--corner-bg) 0 50%, transparent 0) top left,
						linear-gradient(225deg, var(--corner-bg) 0 50%, transparent 0) top right,
						linear-gradient(45deg,  var(--corner-bg) 0 50%, transparent 0) bottom left,
						linear-gradient(315deg, var(--corner-bg) 0 50%, transparent 0) bottom right;
					background-size: var(--corner-size) var(--corner-size);
					background-repeat: no-repeat;
				}
			}
			.title {
				margin-bottom: 3rem;
				font-size: 2.6rem;
				line-height: 1.3;
			}
			.price {
				font-size: 1.4rem;
				line-height: 1.3;
				._ff_title {
					font-size: 2.4rem;
					font-weight: var(--font-weight-medium);
				}
				.num {
					--ls: .1em;
					font-size: 6rem;
					line-height: 1;
				}
			}
			.price_visitor {
				margin-top: 3rem;
				font-size: 2.4rem;
				line-height: 1.6;
			}
			.description {
				margin-top: 4rem;
				padding-top: 3rem;
				border-top: 1px solid var(--color-theme);
				.notes {
					font-size: 1.4rem;
					display: block;
					margin-top: 1em;
				}
			}
			.hall {
				margin-top: 3rem;
				padding-top: 3rem;
				border-top: 1px solid var(--color-theme);
				dt {
					font-size: 1.4rem;
				}
				li{
					position: relative;
					padding-left: 1.2em;
					&::before {
						content: "";
						position: absolute;
						left: 0;
						top: .5lh;
						width: calc(14 / 16 * 1em);
						height: calc(16 / 16 * 1em);
						background-color: var(--color-theme);
						clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
						transform: translateY(-50%);
					}
				}
			}
		}
		.plan_set {
			padding-block: 6rem;
			border-bottom: 1px solid var(--color-theme);
			&:last-child,
			&:has(+ .more) {
				padding-bottom: 0;
				border-bottom-width: 0;
			}
			h3 {
				font-size: 2.6rem;
				line-height: 1.3;
			}
			.set {
				display: flex;
				flex-wrap: wrap;
				gap: 2rem 1.5rem;
				li {
					width: 8rem;
					text-align: center;
					.ico {
						display: block;
						position: relative;
						background-color: #fff;
						padding: 0.5rem;
						border-radius: 0.8rem;
						&::after {
							content: "";
							position: absolute;
							inset: 0;
							border: 1px solid var(--color-theme);
							border-radius: inherit;
							pointer-events: none;
						}
					}
					.caption {
						--ls: 0;
						display: block;
						margin-top: 1rem;
						margin-inline: -2rem;
						font-size: 1.4rem;
						line-height: calc(22 / 14);
						& .-s {
							display: block;
							font-size: 1.2rem;
						}
					}
					&.margin {
						margin-left: auto;
					}
				}
			}
			.jitaku_set {
				.ph {
					img {
						border-radius: 0.6rem;
					}
				}
				.title {
					margin-bottom: 0.5rem;
					font-size: 2.4rem;
					line-height: 1.6;
					.-s {
						font-size: calc(16 / 24 * 100%);
					}
				}
				.include {
					margin-top: 2rem;
					dt {
						margin-bottom: 1.5rem;
					}
				}
				.notes {
					margin-top: 1.5rem;
					font-size: 1.2rem;
					line-height: 1.6;
				}
			}
			.car {
				.title {
					margin-bottom: 3rem;
					font-size: 2.4rem;
					line-height: 1.5;
					.-s {
						font-size: 1.4rem;
					}
					.-plus {
						font-size: 2.2rem;
					}
				}
			}
		}
		.more {
			margin-top: 8rem;
		}
		@media screen and (min-width: 744px), print {
			.plan_box {
				max-width: 140rem;
				width: calc(100% - 6rem);
			}
			.plan_main {
				display: grid;
				grid-template-columns: 56rem 1fr;
				gap: 8rem;
				align-items: start;
				.hall {
					display: flex;
					gap: 2rem;
				}
				&.-other {
					grid-template-columns: 60rem 1fr;
					.price {
						.num {
							font-size: 5rem;
						}
					}
				}
			}
			.plan_set {
				display: grid;
				grid-template-columns: 1fr 93.5rem;
				.jitaku_set {
					display: grid;
					grid-template-columns: 22.5rem 1fr;
					gap: 6.4rem;
				}
				.car {
					.car_list {
						display: flex;
						gap: 4rem;
						.img {
							display: block;
							overflow: hidden;
							display: flex;
							border-radius: 0.6rem;
							img {
								width: 20rem;
							}
						}
						.caption {
							display: block;
							margin-top: 1.5rem;
							text-align: center;
							font-size: 1.4rem;
							line-height: calc(22 / 14) ;
						}
						.plus {
							position: relative;
							margin-right: 2rem;
							&::before,
							&::after {
								content: "";
								position: absolute;
								top: calc(12rem / 2 - 1px);
								right: calc(-3rem - 1rem);
								width: 2rem;
								border-top: 2px solid var(--color-theme);
							}
							&::after {
								transform: rotate(90deg);
							}
						}
					}
				}
			}
		}
		@media screen and (max-width: 743px) {
			.header {
				height: 80vh;
			}
			.plan_box {
				margin-top: -5rem;
				margin-inline: 1.5rem;
				&::before {
					top: -1.5rem;
					height: 3rem;
				}
			}
			.plan_contents {
				padding: 5rem 1rem;
				& + .plan_contents {
					margin-top: -1rem;
				}
			}
			h2 {
				margin-bottom: 3rem;
				font-size: 2.4rem;
			}
			.badge {
				left: 1rem;
				top: -3rem;
				transform-origin: 0 0;
				transform: scale(.5);
			}
			.plan_main {
				margin-bottom: 1rem;
				.ph {
					--corner-size: 1.6rem;
					aspect-ratio: 580 / 360;
					margin-bottom: 2rem;
					img {
						width: 100%;
						height: 100%;
						object-fit: cover;
					}
				}
				.title {
					margin-bottom: 1rem;
					font-size: 1.7rem;
				}
				.price {
					font-size: 1.2rem;
					._ff_title {
						font-size: 1.8rem;
					}
					.num {
						font-size: 4rem;
					}
				}
				.price_visitor {
					margin-top: 2rem;
					font-size: 1.8rem;
				}
				.description {
					margin-top: 2rem;
					padding-top: 2rem;
					.notes {
						font-size: 1.2rem;
					}
				}
				.hall {
					margin-top: 2rem;
					padding-top: 2rem;
					dt {
						font-size: 1.2rem;
					}
				}
			}
			.plan_set {
				padding-block: 3rem;
				h3 {
					margin-bottom: 2rem;
					font-size: 1.8rem;
				}
				.set {
					gap: 1rem 1rem;
					li {
						width: calc((100% - 1rem * 3) / 4);
						.caption {
							margin-top: .5rem;
							font-size: 1.2rem;
							& .-s {
								font-size: 1rem;
							}
						}
						&.margin {
							margin-left: auto;
						}
					}
				}
				.jitaku_set {
					.ph {
						width: 18rem;
						margin-inline: auto;
					}
					.title {
						text-align: center;
						margin-top: 1rem;
						margin-bottom: 0.8rem;
						font-size: 1.7rem;
					}
					.include {
						margin-top: 1rem;
					}
					.notes {
						font-size: 1.1rem;
					}
				}
				.car {
					.title {
						margin-bottom: 2rem;
						font-size: 1.8rem;
						line-height: 1.5;
						.-s {
							font-size: 1.2rem;
						}
						.-plus {
							font-size: 1.7rem;
						}
					}
					.car_list {
						display: flex;
						flex-direction: column;
						gap: 2rem;
						text-align: center;
						li {
							width: 50%;
							margin-inline: auto;
							&:has(img:nth-child(2)) {
								width: 100%;
								img {
									width: 50%;
								}
							}
						}
						.img {
							display: block;
							overflow: hidden;
							display: flex;
							border-radius: 0.6rem;
						}
						.caption {
							display: block;
							margin-top: 1rem;
							text-align: center;
							font-size: 1.2rem;
							line-height: calc(22 / 14) ;
						}
						.plus {
							position: relative;
							margin-bottom: 2rem;
							&::before,
							&::after {
								content: "";
								position: absolute;
								bottom: -2rem;
								left: calc(50% - 1rem);
								width: 2rem;
								border-top: 2px solid var(--color-theme);
							}
							&::after {
								transform: rotate(90deg);
							}
						}
					}
				}
			}
			.more {
				margin-top: 4rem;
			}
		}
		.bg_point {
			--height: 2170;
			&.-point1 {
				--top: 120;
				--right: 1080;
				@media screen and (max-width: 743px) {
					--top: 40;
					--right: auto;
					--left: 1080;
				}
			}
			&.-point2 {
				--top: 720;
				--right: 1450;
			}
			&.-point3 {
				--top: 600;
				--left: 1380;
			}
			&.-point3 {
				--top: 600;
				--left: 1380;
			}
			&.-point11 {
				--height: 740;
				--top: 80;
				--right: 1200;
				@media screen and (max-width: 743px) {
					--top: 60;
					--right: auto;
					--left: 1080;
				}
			}
			&.-point12 {
				--height: 740;
				--top: 600;
				--right: 1440;
			}
			&.-point13 {
				--height: 740;
				--top: 120;
				--left: 1335;
			}
			&.-point21 {
				--height: 740;
				--top: 70;
				--right: 1200;
				@media screen and (max-width: 743px) {
					--top: 20;
					--right: auto;
					--left: 1080;
				}
			}
			&.-point22 {
				--height: 740;
				--top: 65;
				--left: 1150;
			}
		}
	}
}

.pricing_other {
	position: relative;
	z-index: 3;
	@media screen and (min-width: 744px), print {
		max-width: 130rem;
		margin-inline: auto;
		padding: 9rem 10rem 10rem;
	}

	.lead {
		& > * {
			& > * + * {
				margin-top: 1lh;
			}
		}
		li {
			position: relative;
			padding-left: 1.1em;
			&::before {
				content: "●";
				position: absolute;
				top: 0;
				left: 0;
			}
		}
		@media screen and (min-width: 744px), print {
			position: relative;
			display: flex;
			justify-content: space-between;
			& > * {
				width: 50rem;
			}
			&::before {
				content: "";
				position: absolute;
				top: 0;
				bottom: 0;
				left: 50%;
				border-left: 1px solid var(--border-base);
			}
		}
		@media screen and (max-width: 743px) {
			& > * + * {
				margin-top: 1lh;
			}
		}
	}
	.other_section {
		margin-top: 10rem;
		h3 {
			margin-bottom: 2rem;
			padding-bottom: 2rem;
			border-bottom: 1px solid var(--color-theme);
			font-size: 2.4rem;
			line-height: 1.6;
			font-weight: var(--font-weight-medium);
		}
		.price {
			margin-top: 3rem;
			line-height: 1.2;
			dd {
				font-size: 1.4rem;
				text-align: right;
				._c_theme {
					font-size: 2rem;
					font-weight: var(--font-weight-medium);
				}
				.num {
					font-size: 4rem;
					line-height: 1;
				}
			}
		}
		.notes {
			margin-top: 1rem;
			font-size: 1.2rem;
			line-height: 1.8;
			li {
				margin-top: 0.5em;
			}
		}
		@media screen and (min-width: 744px), print {
			display: flex;
			justify-content: space-between;
			flex-direction: row-reverse;
			& > .ph {
				width: 50rem;
			}
			& > .contents {
				width: 54rem;
			}
			.price {
				display: table;
				dl {
					display: table-row;
					& > * {
						display: table-cell;
						padding-bottom: 2rem;
					}
					dt {
						padding-right: 2rem;
					}
				}
			}
		}
		@media screen and (max-width: 743px) {
			margin-top: 6rem;
			h3 {
				margin-top: 2rem;
				padding-bottom: 1rem;
				font-size: 1.8rem;
			}
			.price {
				margin-top: 3rem;
				dl + dl {
					margin-top: 2rem;
				}
				dt {
					margin-bottom: -3rem;
				}
				dd {
					font-size: 1.2rem;
					._c_theme {
						font-size: 1.7rem;
					}
					.num {
						font-size: 3.4rem;
					}
				}
				dd + dd {
					margin-top: .5rem;
				}
			}
			.notes {
				margin-top: 2rem;
				font-size: 1.1rem;
				line-height: 1.6;
			}
		}
	}
	.bg_point {
		--height: 1400;
		&.-point1 {
			--top: 430;
			--right: 1366;
		}
		&.-point2 {
			--top: 1330;
			--right: 1160;
		}
		&.-point3 {
			--top: 55;
			--left: 1140;
			@media screen and (min-width: 744px), print {
				transform: scaleX(-1);
			}
		}
		&.-point4 {
			--top: 380;
			--left: 1420;
		}
	}
}

.pricing_bottom_bnr {
	position: relative;
	padding-block: 16rem;
	z-index: 1;
	.group_bnr {
		margin-inline: auto;
	}
	&::before,
	&::after {
		content: "";
		position: absolute;
		inset: auto 0 0;
		height: 84rem;
		z-index: -1;
	}
	&::before {
		background: linear-gradient(135deg, var(--color-grad1) 10%, var(--color-grad2) 90%);
	}
	&::after {
		height: 85rem;
		background: linear-gradient(to bottom, #e6e6e6 20%, rgba(230,230,230,0) 80%);
	}
	@media screen and (max-width: 743px) {
		padding-block: 8rem;
		.group_bnr {
			width: 27.5rem;
		}
		&::before,
		&::after {
			height: 60rem;
		}
	}
}


/* ============================================================================

	会社概要・沿革

============================================================================= */
.company_message {
	.message {
		margin-top: 8rem;
		.ph {
			.caption {
				display: block;
				margin-top: 2rem;
				text-align: right;
				font-size: 1.5rem;
				.name {
					margin-left: 1em;
					font-size: 2.2rem;
				}
			}
		}
	}
	@media screen and (min-width: 744px), print {
		.message {
			display: flex;
			flex-direction: row-reverse;
			gap: 8rem;
			.ph {
				width: 44rem;
				flex-shrink: 0;
				padding-top: 0.5em;
			}
		}
	}
	@media screen and (max-width: 743px) {
		.message {
			margin-top: 4rem;
			.ph {
				width: 22rem;
				margin-inline: auto;
				margin-bottom: 2rem;
				.caption {
					margin-top: .5rem;
					text-align: center;
					font-size: 1.1rem;
					.name {
						font-size: 1.8rem;
					}
				}
			}
		}
	}
	.bg_point {
		--height: 1180;
		&.-point1 {
			--top: 1050;
			--left: 1326;
			@media screen and (max-width: 743px) {
				--top: 1000;
			}
		}
	}
}
.company_box_contents {
	& > section {
		padding-block: 13rem 14rem;
		@media screen and (max-width: 743px) {
			padding-block: 6rem;
		}
		&:first-child {
			padding-block-start: 0;
		}
		&:last-child {
			padding-block-end: 0;
		}
		&.-bdb:not(:last-child) {
			border-bottom: 1px solid var(--border-base);
		}
		&:not(.-bdb) + section {
			padding-top: 0;
		}
	}
	@media screen and (min-width: 744px), print {
		& > section {
			display: flex;
			.contents {
				width: 76rem;
				margin-left: auto;
			}
		}
		.message {
			display: flex;
			flex-direction: row-reverse;
			gap: 8rem;
			.ph {
				width: 44rem;
				flex-shrink: 0;
				padding-top: 0.5em;
			}
		}
	}
}
.company_outline {
	.bg_point {
		--height: 1500;
		&.-point1 {
			--top: 230;
			--right: 1300;
		}
		&.-point2 {
			--top: 910;
			--right: 1140;
		}
		&.-point3 {
			--top: 95;
			--left: 1460;
		}
	}
}
.company_organization {
	.chart {
		position: relative;
		display: flex;
		&::before {
			content: "";
			position: absolute;
			top: 3rem;
			bottom: 3rem;
			left: 50%;
			border-left: 1px solid var(--border-base);
		}
		li {
			position: relative;
			&:not(:last-child) {
				margin-bottom: 4rem;
			}
			.frame_border_box {
				display: flex;
				justify-content: center;
				align-items: center;
				width: 30rem;
				height: 6rem;
			}
		}
		ul.-right {
			margin-left: auto;
			li::before {
				content: "";
				position: absolute;
				top: 50%;
				right: 10px;
				width: calc(76rem / 2 - 10px);
				border-top: 1px solid var(--border-base);
			}
			li:first-child::before {
				width: calc(76rem - 10px);
			}
		}
	}
	@media screen and (max-width: 743px) {
		.chart {
			display: block;
			&::before {
				bottom: 2.5rem;
				left: auto;
				right: calc(26rem + 10px);
			}
			li {
				&:not(:last-child) {
					margin-bottom: 1rem;
				}
				.frame_border_box {
					width: 24rem;
					height: 5rem;
				}
			}
			ul.-right {
				width: 24rem;
				margin-top: 2rem;
				margin-left: auto;
				li::before,
				li:first-child::before {
					width: 26rem;
				}
			}
		}
	}
	.bg_point {
		--height: 400;
		&.-point1 {
			--top: 250;
			--right: 1050;
			@media screen and (max-width: 743px) {
				--top: 320;
			}
		}
	}
}

.company_history {
	.history {
		position: relative;
	}
	@media screen and (min-width: 744px), print {
		.history {
			dl {
				position: relative;
				margin-left: 20rem;
				&:not(:last-child) {
					padding-bottom: 5rem;
					&::before {
						content: "";
						position: absolute;
						top: 1rem;
						bottom: -1rem;
						right: calc(100% + 2.5rem + 1.2rem);
						border-left: 1px solid var(--border-base);
						z-index: -1;
					}
				}
				&::after {
					content: "";
					position: absolute;
					right: calc(100% + 2.5rem);
					top: calc(.5lh - 1.2rem);
					width: 2.5rem;
					height: 2.5rem;
					background-color: var(--color-theme);
					border: .6rem solid #fff;
					border-radius: 100%;
				}
				dt {
					position: absolute;
					top: 0;
					right: calc(100% + 7.5rem);
					white-space: nowrap;
				}
			}
		}
	}
	@media screen and (max-width: 743px) {
		.history {
			dl {
				position: relative;
				padding-left: 4rem;
				&:not(:last-child) {
					padding-bottom: 3rem;
					&::before {
						content: "";
						position: absolute;
						top: 1rem;
						bottom: -1rem;
						left: 1.2rem;
						border-left: 1px solid var(--border-base);
						z-index: -1;
					}
				}
				&::after {
					content: "";
					position: absolute;
					left: 0;
					top: calc(.5lh - 1.2rem);
					width: 2.5rem;
					height: 2.5rem;
					background-color: var(--color-theme);
					border: .6rem solid #fff;
					border-radius: 100%;
				}
			}
		}
	}
	.bg_point {
		--height: 1200;
		&.-point1 {
			--top: 670;
			--right: 1150;
		}
		&.-point2 {
			--top: 830;
			--right: 1280;
		}
		&.-point3 {
			--top: 234;
			--left: 1190;
		}
	}
}

.company_financial-disclosure {
	.financial-disclosure {
		li:not(:last-child) {
			margin-bottom: 1em;
		}
	}
	@media screen and (max-width: 743px) {
		.financial-disclosure {
			text-align: center;
		}
	}
}

.company_trend {
	.trend {
		dl:not(:last-child) {
			margin-bottom: 9rem;
		}
		dt {
			margin-bottom: 2rem;
			font-size: 1.8rem;
			line-height: 1.6;
		}
		dd {
			padding: 2rem;
			background-color: #fff;
			text-align: center;
			img {
				width: 55.9rem;
			}
		}
	}
	@media screen and (max-width: 743px) {
		.trend {
			dl:not(:last-child) {
				margin-bottom: 4rem;
			}
			dt {
				margin-bottom: 1rem;
				font-size: 1.6rem;
			}
			dd {
				padding: .5rem 1rem;
			}
		}
	}
	.bg_point {
		--height: 3440;
		&.-point1 {
			--top: 770;
			--right: 1280;
		}
		&.-point2 {
			--top: 1980;
			--right: 1150;
		}
		&.-point3 {
			--top: 2200;
			--right: 1200;
		}
		&.-point4 {
			--top: 3300;
			--left: 1450;
		}
	}
}

.company_payment-protection {
	.payment-protection {
		border-top: 1px solid var(--border-base);
		section {
			padding-block: 3rem;
			border-bottom: 1px solid var(--border-base);
		}
		h3 {
			text-align: center;
			margin-bottom: 1.5rem;
			font-size: 1.8rem;
			line-height: 1.6;
		}
		p + p {
			margin-top: 1lh;
		}
	}
	@media screen and (max-width: 743px) {
		.payment-protection {
			h3 {
				font-size: 1.6rem;
			}
		}
	}
	.bg_point {
		--height: 600;
		&.-point1 {
			--top: 305;
			--right: 1324;
		}
	}
}


/* ============================================================================

	遺品整理・相続手続支援サービスについて

============================================================================= */
.estate-support_lead {
	position: relative;
	text-align: center;
	@media screen and (max-width: 743px) {
		text-align: left;
	}
	.bg_point {
		--height: 410;
		&.-point1 {
			--top: 145;
			--right: 1430;
		}
		&.-point2 {
			--top: 280;
			--left: 1330;
		}
	}
}
.estate-support_box2 {
	.bg_point {
		--height: 424;
		&.-point1 {
			--top: 333;
			--right: 1375;
		}
		&.-point2 {
			--top: -30;
			--left: 1460;
		}
	}
}
.estate-support_box3 {
	.bg_point {
		--height: 424;
		&.-point1 {
			--top: 280;
			--left: 1440;
		}
	}
}
.estate-support_notes {
	max-width: var(--base-width);
	margin-top: 5rem;
	margin-inline: auto;
	display: flex;
	justify-content: center;
	@media screen and (max-width: 743px) {
		margin: 4rem var(--sp-base-padding);
	}
}

/* ============================================================================

	事前相談・生前予約について

============================================================================= */
.pre-need_consultation {
	position: relative;
	text-align: center;

	.more {
		margin-top: 8rem;
	}
	.img {
		margin-top: 14rem;
	}
	@media screen and (max-width: 743px) {
		text-align: left;
		.more {
			margin-top: 4rem;
		}
		.img {
			margin-top: 6rem;
			aspect-ratio: 2 / 1;
			img {
				width: 100%;
				height: 100%;
				object-fit: cover;
			}
		}
	}
	.bg_point {
		--height: 1700;
		&.-point1 {
			--top: 140;
			--right: 1430;
		}
		&.-point2 {
			--top: 630;
			--right: 1340;
		}
		&.-point3 {
			--top: 580;
			--left: 1320;
		}
	}
}
.pre-need_think {
	position: relative;
	text-align: center;
	color: #fff;
	@media screen and (max-width: 743px) {
		text-align: left;
		.m_title {
			margin-inline: calc(var(--sp-base-padding) * -1);
		}
	}
}
.pre-need_reservation {
	position: relative;
	text-align: center;

	.more {
		margin-top: 8rem;
	}
	.img {
		margin-top: 14rem;
	}
	@media screen and (max-width: 743px) {
		text-align: left;
		.more {
			margin-top: 4rem;
		}
		.img {
			margin-top: 6rem;
			aspect-ratio: 2 / 1;
			img {
				width: 100%;
				height: 100%;
				object-fit: cover;
			}
		}
	}
	.bg_point {
		--height: 1490;
		&.-point1 {
			--top: 190;
			--right: 1326;
		}
		&.-point2 {
			--top: 570;
			--right: 1460;
		}
		&.-point3 {
			--top: 120;
			--left: 1370;
		}
	}
}
.pre-need_flow {
	.flow {
		position: relative;
		& > li {
			position: relative;
			display: flex;
			align-items: start;
			gap: 8rem;
			&:not(:last-child) {
				padding-bottom: 4rem;
				&::before {
					content: "";
					position: absolute;
					top: 4rem;
					bottom: 0;
					left: 4rem;
					border-left: 1px solid var(--border-base);
					z-index: -1;
				}
			}
		}
		.ico {
			flex-shrink: 0;
			width: 8rem;
			height: 8rem;
			background-color: #fff;
			border-radius: 100%;
		}
		dl {
			padding-top: 2rem;
			flex-grow: 1;
			dt {
				position: relative;
				margin-bottom: 0.5rem;
				font-size: 1.8rem;
				.num {
					position: absolute;
					left: -5rem;
					color: var(--color-theme);
					font-size: 2rem;
					line-height: 1.8;
				}
			}
			dd {
				& > ul {
					margin-top: 1em;
				}
			}
		}
	}
	.more {
		margin-top: 8rem;
	}
	@media screen and (max-width: 743px) {
		.flow {
			& > li {
				gap: 2rem;
				&:not(:last-child) {
					padding-bottom: 4rem;
					&::before {
						top: 3rem;
						left: 3rem;
					}
				}
			}
			.ico {
				width: 6rem;
				height: 6rem;
			}
			dl {
				padding-top: .6rem;
				dt {
					font-size: 1.6rem;
					.num {
						position: static;
						display: block;
						margin-bottom: -0.3rem;
						font-size: 1.2rem;
						line-height: 1;
					}
				}
				dd {
					& > ul {
						margin-top: 1em;
					}
				}
			}
		}
		.more {
			margin-top: 4rem;
		}
	}
	.bg_point {
		--height: 1290;
		z-index: 2;
		&.-point1 {
			--top: 1020;
			--right: 1336;
		}
		&.-point2 {
			--top: 105;
			--left: 1160;
		}
		&.-point3 {
			--top: 140;
			--left: 1370;
		}
	}
}


/* ============================================================================

	記事一覧

============================================================================= */
.entry_archive_container {
	.bg_point {
		--height: 1220;
		z-index: 2;
		&.-point1 {
			--top: 140;
			--right: 1430;
		}
		&.-point2 {
			--top: 945;
			--right: 1370;
		}
		&.-point3 {
			--top: 130;
			--left: 1370;
		}
		&.-point4 {
			--top: 840;
			--left: 1460;
		}
	}

	.category_nav {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		gap: 1rem 0;
		margin-bottom: 8rem;
		font-size: 1.6rem;
		line-height: 1.5;
		li {
			position: relative;
			margin-left: -1px;
			&::before,
			&::after {
				content: "";
				position: absolute;
				top: calc(4rem / 2 - 1em / 2);
				height: 1em;
				border-left: 1px solid;
				pointer-events: none;
			}
			&::before {
				left: 0;
			}
			&::after {
				right: 0;
			}
		}
		a {
			position: relative;
			display: flex;
			justify-content: center;
			align-items: center;
			min-width: 14rem;
			height: 4rem;
			padding-inline: 3rem;
			text-decoration: none;
			&.is-active {
				color: var(--color-theme);
				&::before,
				&::after {
					content: "";
					position: absolute;
					left: 0;
					right: 0;
					pointer-events: none;
				}
				&::before {
					bottom: 0;
					border-bottom: 2px solid;
				}
				&::after {
					top: 100%;
					width: 1rem;
					height: 0.8rem;
					margin-inline: auto;
					background-color: var(--color-theme);
					clip-path: polygon(0 0, 100% 0, 50% 100%);
				}
			}
			@media (hover) {
				&:hover {
					color: var(--color-theme);
				}
			}
		}
		@media screen and (max-width: 743px) {
			margin-bottom: 4rem;
			font-size: 1.3rem;
			a {
				min-width: 10rem;
				padding-inline: 1.5rem;
			}
		}
	}
}
.entry_archive_contents {
	padding: 6rem 15rem 11rem;
	.entry_list {
		li {
			padding-block: 4rem 3rem;
			border-bottom: 2px solid var(--border-base);
		}
		a {
			display: block;
			text-decoration: none;
			color: var(--color-base);
			.meta {
				display: flex;
				gap: 2rem;
				margin-bottom: 1rem;
				font-size: 1.3rem;
				line-height: 1.6;
				.category {
					display: flex;
					flex-wrap: wrap;
					gap: .5rem 1.5rem;
					color: #937f48;
					span {
						padding-right: 1.5rem;
						border-right: 1px solid var(--border-base);
					}
				}
			}
			.title {
				position: relative;
				display: block;
				padding-right: 4rem;
				font-size: 1.8rem;
				line-height: 1.6;
				&::after {
					content: "";
					position: absolute;
					right: 0;
					top: 0;
					bottom: 0;
					width: 2rem;
					background: url(../img/ico-link-arrow.svg) no-repeat 50%;
					background-size: 100%;
				}
			}
		}
	}
	@media screen and (max-width: 743px) {
		padding: 2rem var(--sp-base-padding) 6rem;
		.entry_detail_header {
			margin-bottom: 4rem;
			padding-bottom: 2rem;
			.meta {
				gap: 1.5rem;
				margin-bottom: 1.5rem;
				font-size: 1.2rem;
			}
			h1 {
				font-size: 1.8rem;
			}
		}
		.entry_list {
			li {
				padding-block: 2rem 1.5rem;
			}
			a {
				.meta {
					gap: 1.5rem;
					font-size: 1.2rem;
				}
				.title {
					font-size: 1.6rem;
				}
			}
		}
	}
}
/* wp-pagenavi
====================================================================== */
.wp-pagenavi {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.6rem;
	margin-top: 9rem;
	& > * {
		display: block;
		font-size: 2.2rem;
		text-decoration: none;
		color: #969696;
	}
	.page,
	.current {
		padding-inline: .2em;
		font-family: var(--font-family-en);
		font-weight: 400;
		font-style: normal;
		border-top: 2px solid rgba(0,0,0,0);
		border-bottom: 2px solid rgba(0,0,0,0);
	}
	.current {
		color: var(--color-theme);
		border-bottom-color: var(--color-theme);
	}
	.first,
	.last {
		position: relative;
		font-size: 1.4rem;
		color: var(--color-base);
		&::after {
			content: "";
			position: absolute;
			top: 0;
			bottom: 0;
			width: 2rem;
			background: url(../img/ico-link-arrow.svg) no-repeat 50%;
			background-size: 100%;
		}
	}
	.first {
		margin-right: 5rem;
		padding-left: 3rem;
		&::after {
			left: 0;
			transform: scaleX(-1);
		}
	}
	.last {
		margin-left: 5rem;
		padding-right: 3rem;
		&::after {
			right: 0;
		}
	}
	@media (hover) {
		a:hover {
			color: var(--color-theme);
		}
	}
	@media screen and (max-width: 743px) {
		gap: 1rem;
		margin-top: 4rem;
		& > * {
			font-size: 1.8rem;
		}
		.first,
		.last {
			font-size: 1.3rem;
		}
		.first {
			margin-right: 1rem;
		}
		.last {
			margin-left: 1rem;
		}
	}
}


/* ============================================================================

	記事

============================================================================= */
.entry_detail_container {
	.bg_point {
		--height: 2160;
		z-index: 2;
		&.-point1 {
			--top: 120;
			--right: 1430;
		}
		&.-point2 {
			--top: 1740;
			--right: 1370;
		}
		&.-point3 {
			--top: 120;
			--left: 1370;
		}
		&.-point4 {
			--top: 1620;
			--left: 1460;
		}
	}
}
.entry_detail_contents {
	padding: 10rem 15rem 12rem;
	.entry_detail_header {
		margin-bottom: 6rem;
		padding-bottom: 3rem;
		border-bottom: 2px solid var(--border-base);
		.meta {
			display: flex;
			gap: 2rem;
			margin-bottom: 2rem;
			font-size: 1.3rem;
			line-height: 1.6;
			.category_list {
				display: flex;
				flex-wrap: wrap;
				gap: .5rem 1.5rem;
				li {
					padding-right: 1.5rem;
					border-right: 1px solid var(--border-base);
				}
				a {
					--a-color: #937f48;
				}
			}
		}
		h1 {
			font-size: 2.6rem;
			line-height: calc(34 / 26);
		}
	}
	.back_link {
		margin-top: 10rem;
	}
	@media screen and (max-width: 743px) {
		padding: 4rem var(--sp-base-padding) 6rem;
		.entry_detail_header {
			margin-bottom: 4rem;
			padding-bottom: 2rem;
			.meta {
				gap: 1.5rem;
				margin-bottom: 1.5rem;
				font-size: 1.2rem;
			}
			h1 {
				font-size: 1.8rem;
			}
		}
		.back_link {
			margin-top: 4rem;
		}
	}

	.entry_body {
		h2 {
			position: relative;
			margin-bottom: 4rem;
			padding-bottom: 1rem;
			padding-left: 2rem;
			border-bottom: 1px solid var(--border-base);
			font-size: 2.2rem;
			line-height: 1.8;
			&::before {
				content: "";
				position: absolute;
				left: 0;
				top: calc(.5lh - 1em / 2);
				height: 1em;
				border-left: 1px solid var(--color-theme);
			}
			@media screen and (max-width: 743px) {
				margin-bottom: 3rem;
				padding-left: 1.5rem;
				font-size: 1.7rem;
			}
		}
		h3 {
			font-size: 2rem;
			line-height: 1.8;
			@media screen and (max-width: 743px) {
				font-size: 1.5rem;
			}
		}
	}
}


/* ============================================================================

	404

============================================================================= */
.contents_404 {
	text-align: center;
	.back_btn {
		margin-top: 6rem;
		@media screen and (max-width: 743px) {
			margin-top: 4rem;
		}
	}
}

