@charset "UTF-8";

/* ==========================================================================
   CSS Reset (https://piccalil.li/blog/a-more-modern-css-reset/)
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-moz-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
}

body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
	margin-block-end: 0;
}

ul[role=list],
ol[role=list] {
	list-style: none;
}

body {
	min-height: 100vh;
	line-height: 1.5;
}

h1, h2, h3, h4,
button, input, label {
	line-height: 1.1;
}

h1, h2,
h3, h4 {
	text-wrap: balance;
}

a:not([class]) {
	text-decoration-skip-ink: auto;
	color: currentColor;
}

img,
picture {
	max-width: 100%;
	display: block;
}

input, button,
textarea, select {
	font-family: inherit;
	font-size: inherit;
}

textarea:not([rows]) {
	min-height: 10em;
}

:target {
	scroll-margin-block: 5ex;
}

* {
	margin: 0;
}


/* ==========================================================================
   CSS Variables & Base
   ========================================================================== */

:root {
	--padding-lr: 8.21428vw;
	--zindex-header: 1000;
	--zindex-menu: 900;
}
@media screen and (max-width: 834px) {
	:root {
		--padding-lr: 10.66667vw;
	}
}

html,
body {
	font-size: 16px;
}

html {
	min-height: 100%;
	/* vwにスクロールバーを含まない */
	overflow-y: scroll;
	scrollbar-gutter: stable;
}

body {
	font-family: "Inter", "Noto Sans JP", sans-serif;
	color: #000;
	padding: 0 !important;
}

/* ページ全体を初期状態で透明にしておく */
body.is-fade {
    opacity: 0;
	animation: fadeIn 1s ease 0.2s forwards;
}
@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

img, picture, video, canvas, svg {
	max-width: 100%;
	height: auto;
}

img {
	border: none;
	vertical-align: top;
	width: 100%;
	height: auto;
	image-rendering: -webkit-optimize-contrast;
}

a {
	color: #000;
	text-decoration: underline;
	text-decoration-color: #000;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.6em;
}

footer {
	padding: 0 0 32px;
	margin-top: 100px;
	text-align: center;
	font-family: "Roboto", sans-serif;
	font-weight: 300;
	letter-spacing: 0.08em;
	color: #999999;
}
@media screen and (max-width: 1920px) {
	footer {
		font-size: 12px;
	}
}
@media screen and (max-width: 834px) {
	footer {
		margin-top: 7.5vw;
		font-size: min(2.4vw, clamp(0.563rem, 0.409rem + 0.6535947712vw, 0.75rem));
	}
}


/* ==========================================================================
   レイアウト基盤
   ========================================================================== */

.root {
	overflow-x: clip;
	max-width: 100%;
	background: #ebedeb;
}


/* ==========================================================================
   アニメーション
   ========================================================================== */

/* スクロールフェードイン */
.fadein {
	opacity: 0;
	transform: translate(0, 50px);
	transition: all 1s;
}
.fadein.scrollin {
	opacity: 1;
	transform: translate(0, 0);
}

/* テキスト左からフェード（黒背景用） */
.anim-fade-text-left {
	--delay: 0s;
	background-image: -webkit-linear-gradient(180deg, rgb(255 255 255 / 0), rgb(255 255 255 / 0), #000, #000);
	background-size: 300% 100%;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	transition: background 2s var(--delay) ease;
	background-position: 100% 0%;
}
@media screen and (max-width: 834px) {
	.anim-fade-text-left {
		--delay-sp: var(--delay);
		transition-delay: var(--delay-sp);
	}
}
.anim-fade-text-left.active {
	background-position: 0% 0%;
}

/* テキスト左からフェード（白背景用） */
.anim-fade-text-left-white {
	--delay: 0s;
	position: relative;
	overflow: hidden;
}
@media screen and (max-width: 834px) {
	.anim-fade-text-left-white {
		--delay-sp: var(--delay);
	}
}
.anim-fade-text-left-white::after {
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: -50%;
	width: 150%;
	height: 100%;
	background: #ebedeb;
	background: linear-gradient(90deg, rgba(235, 237, 235, 0) 0%, rgba(235, 237, 235, 1) 33%, rgba(235, 237, 235, 1) 100%);
	z-index: 10;
	transition: left 2s ease var(--delay);
}
@media screen and (max-width: 834px) {
	.anim-fade-text-left-white::after {
		transition-delay: var(--delay-sp);
	}
}
.anim-fade-text-left-white.active::after {
	left: 101%;
}

/* フェードイン */
.anim-fade-in {
	opacity: 0;
	transition: opacity 1.2s;
}
.anim-fade-in.active {
	opacity: 1;
}

/* スケールイン */
.anim-scale-in {
	scale: 1.1;
	transition: scale 10s cubic-bezier(0.35, 0.92, 0.76, 0.99);
}
.anim-scale-in.active {
	scale: 1;
}


/* ==========================================================================
   ユーティリティ
   ========================================================================== */

/* PC/SP表示切り替え */
@media screen and (max-width: 834px) {
	.c-pc {
		display: none;
	}
}

.c-sp {
	display: none;
}
@media screen and (max-width: 834px) {
	.c-sp {
		display: block;
	}
	br.c-sp {
		display: inline;
	}
}

/* カーニング調整 */
.c-tume {
	margin-right: -0.6em;
}
.c-tume--small {
	margin-right: -0.3em;
}
.c-tume--large {
	margin-right: -1.2em;
}
.c-tume--left {
	margin-left: -0.6em;
}

/* ボトムリンクボタン */
.c-btm-link a {
	margin-inline: auto;
	width: 860px;
	max-width: 83.6vw;
	display: block;
	text-align: center;
	height: 7.778em;
	line-height: 7.667em;
	font-size: clamp(0.938rem, 0.66rem + 0.5309734513vw, 1.125rem);
	letter-spacing: 0.04em;
	font-weight: 500;
	border: 1px solid #bfbfbf;
	text-decoration: none;
	transition: background-color 0.3s cubic-bezier(0.45, 0, 0.55, 1), color 0.3s cubic-bezier(0.45, 0, 0.55, 1);
}
@media screen and (max-width: 834px) {
	.c-btm-link a {
		height: 5.833em;
		line-height: 5.667em;
		font-size: clamp(0.75rem, 0.546rem + 0.871459695vw, 1rem);
		max-width: 92vw;
	}
}
.c-btm-link--black a {
	background: #000;
	color: #fff;
}
.c-btm-link--black a:hover {
	background: #fff;
	color: #000;
}
.c-btm-link--white a {
	background: #fff;
	color: #000;
}
.c-btm-link--white a:hover {
	background: #000;
	color: #fff;
}
.c-btm-link--icon a::after,
.c-btm-link--icon .c-btm-link__sp-2lines::after {
	content: "";
	margin-left: 0.3em;
	display: inline-block;
	vertical-align: middle;
	width: 0.813em;
	height: 0.625em;
	background: center center/contain no-repeat url("../img/common/icon_link.svg");
}
@media screen and (max-width: 834px) {
	.c-btm-link--icon:has(.c-btm-link__sp-2lines) a {
		display: flex;
		justify-content: center;
		align-items: center;
	}
	.c-btm-link--icon:has(.c-btm-link__sp-2lines) a::after {
		content: none;
	}
}
.c-btm-link--icon:has(.c-btm-link__sp-2lines) a .c-btm-link__sp-2lines::after {
	content: none;
}
@media screen and (max-width: 834px) {
	.c-btm-link--icon:has(.c-btm-link__sp-2lines) a .c-btm-link__sp-2lines::after {
		content: "";
	}
	.c-btm-link:has(.c-btm-link__sp-2lines) a {
		line-height: 1.417;
	}
}
.c-btm-link + .c-btm-link {
	margin-top: 30px;
}
@media screen and (max-width: 834px) {
	.c-btm-link + .c-btm-link {
		margin-top: 15px;
	}
}

/* order */
@media screen and (max-width: 834px) {
	.order-1 {
		order: 1;
	}
	.order-2 {
		order: 2;
	}
}



/* ==========================================================================
   ヘッダー
   ========================================================================== */

.header {
	width: 100%;
	position: fixed;
	top: 0;
	z-index: var(--zindex-header);
	height: 0;
}
.header::before {
	content: "";
	display: block;
	width: 100%;
	height: 84px;
	background-image: linear-gradient(180deg, #000 0%, transparent 100%);
	opacity: 0.4;
	transition: opacity 0.4s;
	position: absolute;
	top: 0;
	left: 0;
	pointer-events: none;
}
@media screen and (max-width: 834px) {
	.header::before {
		height: 58px;
	}
}
.header .logo {
	width: 65px;
	position: absolute;
	top: 18px;
	left: calc(50vw - 32.5px);
	pointer-events: auto;
}
@media screen and (max-width: 834px) {
	.header .logo {
		width: 50px;
		top: 13px;
		left: calc(50vw - 25px);
	}
}
.header--anim {
	--delay: 0s;
	top: -140px;
	transition: top 1s cubic-bezier(0.26, 0.27, 0, 0.99) var(--delay);
}
.header--anim.active {
	top: 0;
}


/* ==========================================================================
   メニューボタン
   ========================================================================== */

.menu-btn {
	position: absolute;
	top: 31px;
	z-index: 10010;
	left: calc(100vw - 28px - 44px);
}
@media screen and (max-width: 834px) {
	.menu-btn {
		top: 15px;
		left: calc(100vw - 12px - 34px);
	}
}
.menu-btn__btn {
	appearance: none;
	border-width: 0;
	padding: 10px 2px;
	margin: 0;
	background-color: transparent;
	position: relative;
	width: 44px;
	height: 31px;
	cursor: pointer;
}
@media screen and (max-width: 834px) {
	.menu-btn__btn {
		width: 34px;
		height: 30px;
	}
}
.menu-btn__btn::before,
.menu-btn__btn::after {
	content: "";
	display: block;
	height: 2px;
	background-color: #fff;
	position: absolute;
	top: 10px;
	left: 2px;
	right: 2px;
	transform-origin: top left;
	transition: transform 0.3s;
}
.menu-btn__btn::after {
	top: auto;
	bottom: 10px;
}
.menu-btn__btn.active::before {
	transform: rotate(13deg);
}
@media screen and (max-width: 834px) {
	.menu-btn__btn.active::before {
		transform: rotate(16deg);
	}
}
.menu-btn__btn.active::after {
	transform: rotate(-13deg);
}
@media screen and (max-width: 834px) {
	.menu-btn__btn.active::after {
		transform: rotate(-16deg);
	}
}


/* ==========================================================================
   モーダルメニュー（remodal）
   ========================================================================== */

.remodal-overlay {
	z-index: calc(var(--zindex-menu) - 1);
	background: rgba(0, 0, 0, 0.85);
}

.remodal-wrapper {
	padding: 95px 40px 25px;
	z-index: var(--zindex-menu);
}
@media screen and (max-width: 834px) {
	.remodal-wrapper {
		padding: 77px 6.7vw 20px;
	}
}

.remodal {
	max-width: none;
	width: min(max(1170px, 83.6%), 1920px);
	max-width: 100%;
	padding: 0;
	background: transparent;
}


/* ==========================================================================
   メニューカード（m-menu）
   ========================================================================== */

.m-menu {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
}
.m-menu__card ul {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 2px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.m-menu__card li a,
.m-menu__card li > div {
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
	color: #fff;
}
.m-menu__card--img {
	position: relative;
	width: 100%;
	overflow: hidden;
}
.m-menu__card--img::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.2);
	transition: background-color 0.5s ease;
}
.m-menu__card--img img {
	object-fit: cover;
	transition: transform 0.5s ease;
}
.m-menu__card--info {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: 0 min(calc(30 / 1400 * 100vw), 30px);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	pointer-events: none;
}
.m-menu__card--en {
	font-family: "Libre Baskerville", "Noto Serif JP", serif;
	font-size: min(calc(13 / 1400 * 100vw), 13px);
	margin: 0;
}
.m-menu__card--name {
	font-family: "Libre Baskerville", "Noto Serif JP", serif;
	font-size: min(calc(28 / 1400 * 100vw), 28px);
	font-weight: 400;
	margin: 0 0 min(calc(10 / 1400 * 100vw), 10px);
}
.m-menu__card--item {
	font-family: "Noto Serif JP", serif;
	font-size: min(calc(13 / 1400 * 100vw), 13px);
	margin: 0;
	text-align: left;
}
.m-menu__card--item span {
	font-size: min(calc(12 / 1400 * 100vw), 12px);
}
.m-menu__card li a:hover .m-menu__card--img img {
	transform: scale(1.1);
}
.m-menu__card li a:hover .m-menu__card--img::after,
.m-menu__card li > div .m-menu__card--img::after {
	background-color: rgba(0, 0, 0, 0.5);
}
.m-menu__sp-banner {
	display: none;
}
.m-menu__top-btn {
	margin-top: min(calc(40 / 1400 * 100vw), 40px);
	text-align: center;
}
.m-menu__top-btn a {
	display: inline-block;
	width: min(calc(420 / 1400 * 100vw), 420px);
	padding: min(calc(15 / 1400 * 100vw), 15px) 0;
	border: 1px solid #fff;
	border-radius: 30px;
	color: #fff;
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(18 / 1400 * 100vw), 18px);
	text-decoration: none;
	box-sizing: border-box;
	transition: background-color 0.5s, color 0.5s;
}
.m-menu__top-btn a:hover {
	background-color: #fff;
	color: #000;
}

/* ページ下部（s-contents__bottom）内での上書き */
.s-contents__bottom .m-menu__top-btn {
	margin-top: min(calc(80 / 1400 * 100vw), 80px);
}
.s-contents__bottom .m-menu__top-btn a {
	border: 1px solid #bfbfbf;
	color: #000;
	background-color: #fff;
}
.s-contents__bottom .m-menu__top-btn a:hover {
	background-color: #000;
	color: #fff;
}

@media screen and (max-width: 834px) {
	.m-menu {
		max-width: 100%;
		box-sizing: border-box;
	}
	.m-menu__card ul {
		grid-template-columns: repeat(2, 1fr);
		gap: 2px;
	}
	.m-menu__card--info {
		padding: 0 calc(40 / 750 * 100vw);
	}
	.m-menu__card--en {
		font-size: calc(15 / 750 * 100vw);
	}
	.m-menu__card--name {
		font-size: calc(33 / 750 * 100vw);
		margin: calc(5 / 750 * 100vw) 0 calc(10 / 750 * 100vw);
	}
	.m-menu__card--item {
		font-size: calc(15 / 750 * 100vw);
	}
	.m-menu__card--item span {
		font-size: calc(14 / 750 * 100vw);
	}
	.m-menu__sp-banner {
		display: block;
		margin-top: calc(20 / 750 * 100vw);
	}
	.m-menu__sp-banner a {
		display: block;
		width: 100%;
	}
	.m-menu__top-btn {
		margin-top: calc(30 / 750 * 100vw);
	}
	.m-menu__top-btn a {
		width: 80%;
		padding: calc(30 / 750 * 100vw) 0;
		font-size: calc(26 / 750 * 100vw);
		border-radius: 40px;
	}
	.s-contents__bottom .m-menu__top-btn {
		margin-top: calc(100 / 750 * 100vw);
	}
}


/* ==========================================================================
   TOPページ - メインビジュアル（i-mv）
   ========================================================================== */

.i-mv {
	position: relative;
	width: 100%;
	height: 100vh;
	overflow: hidden;
}
.i-mv__img img {
	width: 100%;
	height: 100vh;
	object-fit: cover;
	animation: mv-scale 12s cubic-bezier(0, 0, 0.1, 1) 1s forwards;
}
.i-mv__logo {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
}
@media screen and (max-width: 834px) {
	.i-mv__logo {
		width: 80%;
	}
}
.i-mv__mask--top {
	position: absolute;
	top: 0;
	left: 0;
	background-color: #000;
	width: 100%;
	height: 51%;
	animation: mask-top 0.5s cubic-bezier(0.33, 1, 0.68, 1) 0.5s forwards;
}
.i-mv__mask--bottom {
	position: absolute;
	bottom: 0;
	right: 0;
	background-color: #000;
	width: 100%;
	height: 49%;
	animation: mask-bottom 0.7s cubic-bezier(0.33, 1, 0.68, 1) 0.5s forwards;
}
.i-mv__bg {
	background-color: #000;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	opacity: 1;
	z-index: 1;
	animation: mask-bg 1.5s cubic-bezier(0.33, 1, 0.68, 1) 1.2s forwards;
}

@keyframes mask-top {
	0%   { left: 0; }
	99%  { left: 100%; }
	100% { left: 100%; display: none; }
}
@keyframes mask-bottom {
	0%   { right: 0; }
	99%  { right: 100%; }
	100% { right: 100%; display: none; }
}
@keyframes mask-bg {
	0%   { opacity: 1; }
	100% { opacity: 0; }
}
@keyframes mv-scale {
	0%   { transform: scale(1); }
	100% { transform: scale(1.1); }
}


/* ==========================================================================
   TOPページ - リードテキスト（i-top）
   ========================================================================== */

.i-top {
	margin: max(40px, 2.9vw) auto 0;
}
@media screen and (max-width: 834px) {
	.i-top {
		margin-top: 6.9vw;
		max-width: 86.7vw;
	}
}
.i-top__en {
	padding-block: 0.2em;
	margin-block: -0.2em;
	line-height: 1;
	font-family: "Libre Baskerville", serif;
	font-style: italic;
	font-size: min(2.1vw, 1.875rem);
	font-weight: normal;
	letter-spacing: 0.01em;
	text-decoration: underline;
	text-decoration-color: #000;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-align: center;
}
@media screen and (max-width: 834px) {
	.i-top__en {
		text-align: left;
		font-size: max(11px, 3.5vw);
		letter-spacing: -0.02em;
	}
}
.i-top__ttl {
	margin-top: 0.3em;
	font-size: min(4.7vw, 4.125rem);
	line-height: 1.259;
	font-weight: 300;
	letter-spacing: 0.04em;
	font-family: "Noto Serif JP", serif;
	white-space: nowrap;
	text-align: center;
}
@media screen and (max-width: 834px) {
	.i-top__ttl {
		margin-top: 0.361em;
		text-align: left;
		font-size: max(24px, 8.1vw);
		line-height: 1.326;
	}
}
@media screen and (max-width: 319px) {
	.i-top__ttl {
		white-space: wrap;
	}
}
.i-top__desc {
	margin-top: 1.8em;
	text-align: center;
	font-size: max(clamp(0.75rem, 0.288rem + 0.8849557522vw, 1.063rem), 0.9vw);
	font-weight: 400;
	line-height: 2.125;
	letter-spacing: 0.06em;
	color: #040000;
}
@media screen and (max-width: 834px) {
	.i-top__desc {
		text-align: left;
		margin-top: 4.3vw;
		font-size: clamp(0.813rem, 0.659rem + 0.6535947712vw, 1rem);
		letter-spacing: 0em;
	}
}


/* ==========================================================================
   TOPページ - 15 Aging ITEMS（i-items）
   ========================================================================== */

.i-items {
	margin-top: min(calc(60 / 1400 * 100vw), 60px);
}
.i-items::before {
	content: '';
	display: block;
	width: 1px;
	height: min(calc(50 / 1400 * 100vw), 50px);
	background-color: #000;
	margin: 0 auto min(calc(60 / 1400 * 100vw), 60px);
}
.i-items > h2 {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(70 / 1400 * 100vw), 70px);
	font-weight: 400;
	line-height: 1.4;
	text-align: center;
	margin-bottom: min(calc(20 / 1400 * 100vw), 20px);
}
.i-items > h2 span {
	font-style: italic;
}
.i-items > p {
	font-size: max(clamp(0.75rem, 0.288rem + 0.8849557522vw, 1.063rem), 0.9vw);
	font-weight: 400;
	line-height: 2.125;
	text-align: center;
	letter-spacing: 0.06em;
}
@media screen and (max-width: 834px) {
	.i-items {
		margin-top: calc(120 / 750 * 100vw);
	}
	.i-items::before {
		height: calc(80 / 750 * 100vw);
		margin: 0 auto calc(120 / 750 * 100vw);
	}
	.i-items > h2 {
		font-size: calc(70 / 750 * 100vw);
		margin-bottom: calc(20 / 750 * 100vw);
	}
	.i-items > p {
		font-size: clamp(0.813rem, 0.659rem + 0.6535947712vw, 1rem);
	}
}

/* PC版アイテムリスト */
.i-items__pc ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2px;
	list-style: none;
	max-width: 1440px;
	padding: 0 min(calc(20 / 1400 * 100vw), 20px);
	margin: min(calc(40 / 1400 * 100vw), 40px) auto 0;
}
.i-items__pc li a {
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
	color: #fff;
}
.i-items__pc li a img {
	object-fit: cover;
	transition: transform 0.5s ease;
}
.i-items__pc--on {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.35);
	padding: min(calc(20 / 1400 * 100vw), 20px) min(calc(20 / 1400 * 100vw), 20px) min(calc(50 / 1400 * 100vw), 50px);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	opacity: 0;
	transition: opacity 0.5s ease;
}
.i-items__pc--on--number {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: "Libre Baskerville", serif;
	font-size: 18px;
	line-height: 1;
	margin-bottom: min(calc(80 / 1400 * 100vw), 80px);
}
.i-items__pc--on--number span:first-child {
	font-size: min(calc(20 / 1400 * 100vw), 20px);
	font-style: italic;
}
.i-items__pc--on--number span:last-child {
	font-size: min(calc(28 / 1400 * 100vw), 28px);
}
.i-items__pc--on--title {
	margin-bottom: auto;
}
.i-items__pc--on--title h3 {
	font-family: "Noto Serif JP", serif;
	font-size: min(calc(48 / 1400 * 100vw), 48px);
	font-weight: 400;
	line-height: 1.1;
	margin: 0 0 8px 0;
	letter-spacing: -1px;
}
.i-items__pc--on--title p {
	font-family: "Libre Baskerville", "Noto Serif JP", serif;
	font-size: min(calc(22 / 1400 * 100vw), 22px);
	margin-left: min(calc(5 / 1400 * 100vw), 5px);
}
.i-items__pc--on--btn {
	border: 1px solid #fff;
	border-radius: 20px;
	padding: min(calc(8 / 1400 * 100vw), 8px) min(calc(50 / 1400 * 100vw), 50px);
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(15 / 1400 * 100vw), 15px);
	transition: background-color 0.5s, color 0.5s;
}
.i-items__pc--on--btn span {
	font-style: italic;
}
.i-items__pc li a:hover .i-items__pc--on {
	opacity: 1;
}
.i-items__pc li a:hover img {
	transform: scale(1.1);
}

/* SP版アイテムリスト */
.i-items__sp {
	display: none;
}
@media screen and (max-width: 834px) {
	.i-items__pc {
		display: none;
	}
	.i-items__sp {
		display: block;
	}
	.i-items__sp--list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 1px;
		list-style: none;
		padding: 0;
		margin-top: calc(50 / 750 * 100vw);
	}
	.i-items__sp--list li a {
		position: relative;
		display: block;
		overflow: hidden;
		text-decoration: none;
		color: #fff;
	}
	.i-items__sp--list li a img {
		object-fit: cover;
	}
	.i-items__sp--on {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		padding-bottom: calc(25 / 750 * 100vw);
		box-sizing: border-box;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		align-items: center;
		text-align: center;
		background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 40%, rgba(0, 0, 0, 0.4) 100%);
	}
	.i-items__sp--on--title {
		margin-bottom: calc(15 / 750 * 100vw);
	}
	.i-items__sp--on--title h3 {
		font-family: "Noto Serif JP", serif;
		font-size: calc(30 / 750 * 100vw);
		font-weight: 400;
		line-height: 1.2;
		margin: 0;
		letter-spacing: -1px;
	}
	.i-items__sp--on--btn {
		border: 1px solid #fff;
		border-radius: 20px;
		padding: calc(8 / 750 * 100vw) calc(50 / 750 * 100vw);
		font-family: "Libre Baskerville", serif;
		font-size: calc(20 / 750 * 100vw);
	}
	.i-items__sp--on--btn span {
		font-style: italic;
	}
	.i-items__sp--more {
		margin-top: calc(70 / 750 * 100vw);
		text-align: center;
	}
	.i-items__sp--more a {
		display: block;
		width: 80%;
		margin: 0 auto;
		padding: calc(30 / 750 * 100vw) 0;
		border: 1px solid #dcdcdc;
		border-radius: 40px;
		background-color: #fff;
		color: #000;
		font-size: calc(24 / 750 * 100vw);
		font-weight: 500;
		text-decoration: none;
		box-sizing: border-box;
	}
}


/* ==========================================================================
   TOPページ - Shop STORIES（i-shop）
   ========================================================================== */

.i-shop {
	margin-top: min(calc(100 / 1400 * 100vw), 100px);
	margin-bottom: min(calc(130 / 1400 * 100vw), 130px);
}
.i-shop::before {
	content: '';
	display: block;
	width: 1px;
	height: min(calc(50 / 1400 * 100vw), 50px);
	background-color: #000;
	margin: 0 auto min(calc(60 / 1400 * 100vw), 60px);
}
.i-shop > h2 {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(70 / 1400 * 100vw), 70px);
	font-weight: 400;
	line-height: 1.4;
	text-align: center;
	margin-bottom: min(calc(40 / 1400 * 100vw), 40px);
}
.i-shop > h2 span {
	font-style: italic;
}
.i-shop__card ul {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 2px;
	list-style: none;
	max-width: 1440px;
	padding: 0 min(calc(20 / 1400 * 100vw), 20px);
	margin: 0 auto;
}
.i-shop__card li a {
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
	color: #fff;
}
.i-shop__card--img {
	position: relative;
	width: 100%;
	overflow: hidden;
}
.i-shop__card--img::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0);
	transition: background-color 0.5s ease;
}
.i-shop__card--img img {
	object-fit: cover;
	transition: transform 0.5s ease;
}
.i-shop__card--info {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	padding: min(calc(80 / 1400 * 100vw), 80px);
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	pointer-events: none;
}
.i-shop__card--en {
	font-family: "Libre Baskerville", "Noto Serif JP", serif;
	font-size: min(calc(20 / 1400 * 100vw), 20px);
}
.i-shop__card--name {
	font-family: "Libre Baskerville", "Noto Serif JP", serif;
	font-size: min(calc(50 / 1400 * 100vw), 50px);
	font-weight: 400;
	margin: 0 0 min(calc(10 / 1400 * 100vw), 10px) 0;
}
.i-shop__card--item {
	font-family: "Noto Serif JP", serif;
	font-size: min(calc(20 / 1400 * 100vw), 20px);
	margin: 0 0 min(calc(25 / 1400 * 100vw), 25px) 0;
	opacity: 0.9;
}
.i-shop__card--item span {
	font-size: min(calc(15 / 1400 * 100vw), 15px);
}
.i-shop__card--btn {
	border: 1px solid #fff;
	border-radius: 20px;
	padding: min(calc(8 / 1400 * 100vw), 8px) min(calc(50 / 1400 * 100vw), 50px);
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(15 / 1400 * 100vw), 15px);
}
.i-shop__card--btn span {
	font-style: italic;
}
.i-shop__card li a:hover .i-shop__card--img img {
	transform: scale(1.1);
}
.i-shop__card li a:hover .i-shop__card--img::after {
	background-color: rgba(0, 0, 0, 0.3);
}
@media screen and (max-width: 834px) {
	.i-shop {
		margin-top: calc(140 / 750 * 100vw);
		margin-bottom: calc(100 / 750 * 100vw);
	}
	.i-shop::before {
		height: calc(80 / 750 * 100vw);
		margin: 0 auto calc(100 / 750 * 100vw);
	}
	.i-shop > h2 {
		font-size: calc(70 / 750 * 100vw);
		margin-bottom: calc(40 / 750 * 100vw);
	}
	.i-shop__card ul {
		grid-template-columns: 1fr;
		gap: 2px;
		padding: 0;
	}
	.i-shop__card--info {
		padding: 0 calc(50 / 750 * 100vw);
	}
	.i-shop__card--en {
		font-size: calc(20 / 750 * 100vw);
	}
	.i-shop__card--name {
		font-size: calc(50 / 750 * 100vw);
		margin-bottom: calc(15 / 750 * 100vw);
	}
	.i-shop__card--item {
		font-size: calc(24 / 750 * 100vw);
		margin-bottom: calc(30 / 750 * 100vw);
	}
	.i-shop__card--item span {
		font-size: calc(20 / 750 * 100vw);
	}
	.i-shop__card--btn {
		padding: calc(8 / 750 * 100vw) calc(50 / 750 * 100vw);
		font-size: calc(20 / 750 * 100vw);
	}
	.i-shop__card--img::after {
		background: linear-gradient(to right, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0) 100%);
		transition: none;
	}
}


/* ==========================================================================
   下層ページ共通 - メインビジュアル（s-mv）
   ========================================================================== */

.s-mv {
	position: relative;
	width: 100%;
	height: 100vh;
	overflow: hidden;
}
.s-mv__img {
	position: relative;
	width: 100%;
	height: 100vh;
}
.s-mv__img::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 0.5) 100%);
}
.s-mv__img img {
	width: 100%;
	height: 100vh;
	object-fit: cover;
	animation: mv-scale 12s cubic-bezier(0, 0, 0.1, 1) 0.1s forwards;
}
.s-mv__title {
	position: absolute;
	bottom: -25%;
	left: 50%;
	transform: translateX(-50%);
	opacity: 0;
	animation: title-anime .8s cubic-bezier(0.33, 1, 0.68, 1) 0.5s forwards;
}
.s-mv__title--en {
	display: flex;
	justify-content: center;
	align-items: center;
	color: #fff;
	margin-bottom: min(calc(20 / 1400 * 100vw), 20px);
}
.s-mv__title--en > p {
	font-size: min(calc(18 / 1400 * 100vw), 18px);
}
.s-mv__title--en > p .font-Libre {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(17 / 1400 * 100vw), 17px);
}
.s-mv__title--en > p .font-italic {
	font-style: italic;
}
.s-mv__title--en > span {
	display: block;
	background-color: #fff;
	width: min(calc(20 / 1400 * 100vw), 20px);
	height: 1px;
	margin: 0 min(calc(20 / 1400 * 100vw), 20px);
}
.s-mv__title--en > h2 {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(34 / 1400 * 100vw), 34px);
	font-weight: 400;
}
.s-mv__title > h1 {
	font-family: "Libre Baskerville", "Noto Serif JP", serif;
	font-size: min(calc(80 / 1400 * 100vw), 80px);
	font-weight: 400;
	color: #fff;
	text-align: center;
	margin-bottom: min(calc(20 / 1400 * 100vw), 20px);
}
.s-mv__title > p {
	font-family: "Noto Serif JP", serif;
	font-size: min(calc(26 / 1400 * 100vw), 26px);
	color: #fff;
	text-align: center;
}
.s-mv__title > p span {
	font-size: min(calc(22 / 1400 * 100vw), 22px);
}
.s-mv__bg {
	background-color: #000;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	opacity: 1;
	z-index: 1;
	animation: mask-bg 1.5s cubic-bezier(0.33, 1, 0.68, 1) 0.2s forwards;
}

@keyframes title-anime {
	0%   { opacity: 0; bottom: -25%; }
	10%  { opacity: 1; }
	100% { opacity: 1; bottom: 5%; }
}

@media screen and (max-width: 834px) {
	.s-mv__title--en {
		margin-bottom: calc(20 / 750 * 100vw);
	}
	.s-mv__title--en > p {
		font-size: calc(24 / 750 * 100vw);
	}
	.s-mv__title--en > p .font-Libre {
		font-size: calc(23 / 750 * 100vw);
	}
	.s-mv__title--en > span {
		width: calc(20 / 750 * 100vw);
		margin: 0 calc(20 / 750 * 100vw);
	}
	.s-mv__title--en > h2 {
		font-size: calc(42 / 750 * 100vw);
	}
	.s-mv__title {
		width: 100%;
	}
	.s-mv__title > h1 {
		font-size: calc(90 / 750 * 100vw);
		margin-bottom: calc(20 / 750 * 100vw);
	}
	.s-mv__title > p {
		font-size: calc(32 / 750 * 100vw);
	}
	.s-mv__title > p span {
		font-size: calc(26 / 750 * 100vw);
	}
}


/* ==========================================================================
   下層ページ共通 - リードテキスト（s-lead）
   ========================================================================== */

.s-lead {
	margin: min(calc(50 / 1400 * 100vw), 50px) 0 min(calc(120 / 1400 * 100vw), 120px);
}
.s-lead h2 {
	font-family: "Noto Serif JP", serif;
	font-size: min(calc(32 / 1400 * 100vw), 32px);
	font-weight: 400;
	line-height: 1.6;
	text-align: center;
	letter-spacing: 0.04em;
	margin-bottom: min(calc(20 / 1400 * 100vw), 20px);
}
.s-lead p {
	font-size: min(calc(16 / 1400 * 100vw), 16px);
	line-height: 2.125;
	text-align: center;
}
@media screen and (max-width: 834px) {
	.s-lead {
		margin: calc(60 / 750 * 100vw) calc(80 / 750 * 100vw) calc(150 / 750 * 100vw);
	}
	.s-lead h2 {
		font-size: calc(45 / 750 * 100vw);
		text-align: left;
		letter-spacing: 0;
		margin-bottom: calc(30 / 750 * 100vw);
	}
	.s-lead p {
		font-size: calc(26 / 750 * 100vw);
		text-align: left;
	}
}

/* ==========================================================================
   下層ページ共通 - コンテンツセクション（s-contens）
   ========================================================================== */

.s-contens {
	margin-bottom: min(calc(170 / 1400 * 100vw), 170px);
}
@media screen and (max-width: 834px) {
	.s-contens {
		margin-bottom: calc(170 / 750 * 100vw);
	}
}

/* コンテンツ番号バー */
.s-contents__number {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: min(calc(30 / 1400 * 100vw), 30px);
	background-color: #ededed;
	overflow: hidden;
	margin-bottom: min(calc(80 / 1400 * 100vw), 80px);
	padding-top: min(calc(30 / 1400 * 100vw), 30px);
}
.s-contents__number::before,
.s-contents__number::after {
	content: '';
	flex: 1;
	height: 1px;
	background-color: #fff;
}
.s-contents__number-inner {
	display: flex;
	align-items: center;
	gap: min(calc(12 / 1400 * 100vw), 12px);
}
.s-contents__number-title {
	font-size: min(calc(18 / 1400 * 100vw), 18px);
	font-weight: 700;
	margin: 0;
	white-space: nowrap;
}
.s-contents__number-Libre {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(17 / 1400 * 100vw), 17px);
	font-weight: 400;
}
.s-contents__number-italic {
	font-style: italic;
}
.s-contents__number-num {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(34 / 1400 * 100vw), 34px);
}
@media screen and (max-width: 834px) {
	.s-contents__number {
		gap: calc(30 / 750 * 100vw);
		margin-bottom: calc(100 / 750 * 100vw);
		padding-top: calc(30 / 750 * 100vw);
	}
	.s-contents__number-inner {
		gap: calc(20 / 750 * 100vw);
	}
	.s-contents__number-title {
		font-size: calc(26 / 750 * 100vw);
	}
	.s-contents__number-Libre {
		font-size: calc(25 / 750 * 100vw);
	}
	.s-contents__number-num {
		font-size: calc(50 / 750 * 100vw);
	}
}

/* アイテムタイトル */
.s-contents__title {
	margin-bottom: min(calc(70 / 1400 * 100vw), 70px);
}
.s-contents__title h2 {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(70 / 1400 * 100vw), 70px);
	font-weight: 400;
	text-align: center;
	letter-spacing: -2px;
	margin-bottom: min(calc(10 / 1400 * 100vw), 10px);
}
.s-contents__title p {
	font-family: "Noto Serif JP", serif;
	font-size: min(calc(22 / 1400 * 100vw), 22px);
	text-align: center;
}
@media screen and (max-width: 834px) {
	.s-contents__title {
		margin-bottom: calc(70 / 750 * 100vw);
	}
	.s-contents__title h2 {
		font-size: calc(86 / 750 * 100vw);
		margin-bottom: calc(10 / 750 * 100vw);
	}
	.s-contents__title p {
		font-size: calc(34 / 750 * 100vw);
	}
}

/* 画像（幅830px）*/
.s-contents__img830 {
	width: min(calc(830 / 1400 * 100vw), 830px);
	margin: 0 auto min(calc(60 / 1400 * 100vw), 60px);
}
@media screen and (max-width: 834px) {
	.s-contents__img830 {
		width: calc(690 / 750 * 100vw);
		margin: 0 auto calc(60 / 750 * 100vw);
	}
}

/* 画像（幅1030px）*/
.s-contents__img1030 {
	width: min(calc(1030 / 1400 * 100vw), 1030px);
	margin: 0 auto min(calc(60 / 1400 * 100vw), 60px);
}
@media screen and (max-width: 834px) {
	.s-contents__img1030 {
		width: calc(750 / 750 * 100vw);
		margin: 0 auto calc(60 / 750 * 100vw);
	}
}

/* 画像（左）*/
.s-contents__imgLeft {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	width: min(calc(1400 / 1400 * 100vw), 1400px);
	margin: 0 auto min(calc(60 / 1400 * 100vw), 60px);
	padding-top: min(calc(40 / 1400 * 100vw), 40px);
}
.s-contents__imgLeft--img {
	width: min(calc(800 / 1400 * 100vw), 800px);
}
.s-contents__imgLeft--text {
	width: min(calc(430 / 1400 * 100vw), 430px);
	margin: 0 auto;
}
.s-contents__imgLeft--text h3 {
	font-family: "Noto Serif JP", serif;
	font-size: min(calc(30 / 1400 * 100vw), 30px);
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.04em;
	margin-bottom: min(calc(30 / 1400 * 100vw), 30px);
}
.s-contents__imgLeft--text p {
	font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: 2.125;
}
@media screen and (max-width: 834px) {
	.s-contents__imgLeft {
		width: 100%;
		margin: 0 auto calc(100 / 750 * 100vw);
		padding-top: calc(40 / 750 * 100vw);
	}
	.s-contents__imgLeft--img {
		width: calc(670 / 750 * 100vw);
	}
	.s-contents__imgLeft--text {
		width: auto;
		margin: calc(60 / 750 * 100vw) calc(80 / 750 * 100vw) 0;
	}
	.s-contents__imgLeft--text h3 {
		font-size: calc(45 / 750 * 100vw);
		letter-spacing: 0;
        margin-bottom: calc(30 / 750 * 100vw);
	}
	.s-contents__imgLeft--text p {
		font-size: calc(26 / 750 * 100vw);
	}
}

/* 画像（右）*/
.s-contents__imgRight {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	width: min(calc(1400 / 1400 * 100vw), 1400px);
	margin: 0 auto min(calc(60 / 1400 * 100vw), 60px);
}
.s-contents__imgRight--img {
	width: min(calc(800 / 1400 * 100vw), 800px);
}
.s-contents__imgRight--text {
	width: min(calc(430 / 1400 * 100vw), 430px);
	margin: 0 auto;
}
.s-contents__imgRight--text h3 {
	font-family: "Noto Serif JP", serif;
	font-size: min(calc(30 / 1400 * 100vw), 30px);
	font-weight: 400;
	line-height: 1.5;
	margin-bottom: min(calc(30 / 1400 * 100vw), 30px);
}
.s-contents__imgRight--text p {
	font-size: min(calc(16 / 1400 * 100vw), 16px);
    line-height: 2.4;
}
@media screen and (max-width: 834px) {
	.s-contents__imgRight {
		width: 100%;
		margin: 0 auto calc(100 / 750 * 100vw);
	}
	.s-contents__imgRight--img {
		width: calc(670 / 750 * 100vw);
		margin-left: auto;
	}
	.s-contents__imgRight--text {
		width: auto;
		margin: calc(60 / 750 * 100vw) calc(80 / 750 * 100vw) 0;
	}
	.s-contents__imgRight--text h3 {
		font-size: calc(45 / 750 * 100vw);
        margin-bottom: calc(30 / 750 * 100vw);
	}
	.s-contents__imgRight--text p {
		font-size: calc(26 / 750 * 100vw);
	}
}

/* テキストブロック */
.s-contents__text {
	margin: 0 auto min(calc(70 / 1400 * 100vw), 70px);
}
.s-contents__text h3 {
	font-family: "Noto Serif JP", serif;
	font-size: min(calc(32 / 1400 * 100vw), 32px);
	font-weight: 400;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.04em;
	margin-bottom: min(calc(30 / 1400 * 100vw), 30px);
}
.s-contents__text p {
	font-size: min(calc(16 / 1400 * 100vw), 16px);
	line-height: 2.125;
	width: min(calc(760 / 1400 * 100vw), 760px);
	margin: 0 auto;
}
@media screen and (max-width: 834px) {
	.s-contents__text {
		margin: 0 calc(80 / 750 * 100vw) calc(100 / 750 * 100vw);
	}
	.s-contents__text h3 {
		font-size: calc(45 / 750 * 100vw);
		text-align: left;
		letter-spacing: 0;
		margin-bottom: calc(30 / 750 * 100vw);
	}
	.s-contents__text p {
		width: auto;
		font-size: calc(26 / 750 * 100vw);
	}
}


/* ==========================================================================
   下層ページ共通 - アイテムギャラリー（p-gallery）
   ========================================================================== */

.p-gallery {
	margin-top: min(calc(100 / 1400 * 100vw), 100px);
}
.p-gallery h2 {
	font-size: min(calc(28 / 1400 * 100vw), 28px);
	text-align: center;
	letter-spacing: -1px;
	margin-bottom: min(calc(30 / 1400 * 100vw), 30px);
}
.p-gallery h2 span {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(27 / 1400 * 100vw), 27px);
	font-weight: 400;
	font-style: italic;
}
@media screen and (max-width: 834px) {
	.p-gallery {
		margin-top: calc(120 / 750 * 100vw);
	}
	.p-gallery h2 {
		font-size: calc(40 / 750 * 100vw);
		margin-bottom: calc(30 / 750 * 100vw);
	}
	.p-gallery h2 span {
		font-size: calc(40 / 750 * 100vw);
	}
}
.p-gallery .splide__slide {
	position: relative;
	width: 42.9vw;
	padding-inline: 0.55vw;
}
@media screen and (max-width: 834px) {
	.p-gallery .splide__slide {
		width: 78.7vw;
		padding-inline: 0.65vw;
	}
}
/* 下のグラデ */
/* .p-gallery .splide__slide::after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 0.55vw;
	right: 0.55vw;
	padding-bottom: 17.5%;
	background-image: linear-gradient(180deg, rgb(0 0 0 / 0), rgb(0 0 0 / 0.4));
}
@media screen and (max-width: 834px) {
	.p-gallery .splide__slide::after {
		left: 0.65vw;
		right: 0.65vw;
	}
} */
.p-gallery .splide__slide img {
	width: 100%;
}
.p-gallery .splide__arrow {
	appearance: none;
	background: transparent;
	width: calc(min(4.2vw, 59px) + 2vw);
	height: calc(min(5.9vw, 82px) + 2vw);
	padding: 1vw;
	opacity: 1 !important;
	border-radius: 0;
}
@media screen and (max-width: 834px) {
	.p-gallery .splide__arrow {
		display: none;
	}
}
.p-gallery .splide__arrow img {
	width: 100%;
}
.p-gallery .splide__arrow--prev {
	left: 0.8vw;
}
.p-gallery .splide__arrow--prev img {
	transform: scale(-1, 1);
}
.p-gallery .splide__arrow--next {
	right: 0.8vw;
}
.p-gallery .splide__pagination {
	position: relative;
	bottom: auto;
	padding: 0;
	margin-top: 0.6vw;
}
@media screen and (max-width: 834px) {
	.p-gallery .splide__pagination {
		margin-top: -1.1vw;
	}
}
.p-gallery .splide__pagination__page {
	border-radius: 0;
	opacity: 1 !important;
	margin: 0;
	padding: 1vw max(2px, 0.1vw);
	box-sizing: content-box;
	background-color: transparent;
	cursor: pointer;
}
.p-gallery .splide__pagination__page,
.p-gallery .splide__pagination__page::before {
	width: max(40px, 2.9vw);
	height: max(2px, 0.1vw);
}
@media screen and (max-width: 834px) {
	.p-gallery .splide__pagination__page,
	.p-gallery .splide__pagination__page::before {
		width: 5.3vw;
		height: 0.3vw;
	}
}
.p-gallery .splide__pagination__page::before {
	content: "";
	display: block;
	pointer-events: none;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: background-color 0.2s;
	background: #ffffff;
}
.p-gallery .splide__pagination__page.is-active {
	transform: none;
}
.p-gallery .splide__pagination__page.is-active::before {
	background-color: #333333;
}

/* ボタンエリア */
.s-gallery__btn {
	margin-top: min(calc(20 / 1400 * 100vw), 20px);
}
.s-gallery__btn p {
	font-size: min(calc(20 / 1400 * 100vw), 20px);
	text-align: center;
	margin-bottom: min(calc(30 / 1400 * 100vw), 30px);
}
.s-gallery__btn a {
	display: block;
	font-size: min(calc(16 / 1400 * 100vw), 16px);
	color: #fff;
	text-decoration: none;
	text-align: center;
	background-color: #000;
	border: 1px solid #bfbfbf;
	border-radius: 30px;
	width: min(calc(430 / 1400 * 100vw), 430px);
	margin: 0 auto;
	padding: min(calc(15 / 1400 * 100vw), 15px);
	transition: all .5s;
}
.s-gallery__btn a:hover {
	color: #000;
	background-color: #fff;
}
@media screen and (max-width: 834px) {
	.s-gallery__btn {
		margin-top: calc(30 / 750 * 100vw);
	}
	.s-gallery__btn p {
		font-size: calc(30 / 750 * 100vw);
		margin-bottom: calc(30 / 750 * 100vw);
	}
	.s-gallery__btn a {
		font-size: calc(26 / 750 * 100vw);
		width: calc(534 / 750 * 100vw);
		padding: calc(30 / 750 * 100vw);
	}
}


/* ==========================================================================
   下層ページ共通 - Archive PIECES（s-contents__pieces）
   ========================================================================== */

.s-contents__pieces {
	margin-bottom: min(calc(200 / 1400 * 100vw), 200px);
}
.s-contents__pieces h2 {
	font-size: min(calc(28 / 1400 * 100vw), 28px);
	text-align: center;
	letter-spacing: -1px;
	margin-bottom: min(calc(30 / 1400 * 100vw), 30px);
}
.s-contents__pieces h2 span {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(27 / 1400 * 100vw), 27px);
	font-weight: 400;
	font-style: italic;
}
.s-contents__pieces--box {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	background-color: #fff;
}
.s-contents__pieces--box > div {
	width: 50%;
}
.s-contents__pieces--box > div h3 {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(40 / 1400 * 100vw), 40px);
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: -1px;
	width: min(calc(370 / 1400 * 100vw), 370px);
	margin: 0 auto min(calc(30 / 1400 * 100vw), 30px);
}
.s-contents__pieces--box > div h3 span {
	font-size: min(calc(30 / 1400 * 100vw), 30px);
}
.s-contents__pieces--box > div p {
	font-size: min(calc(16 / 1400 * 100vw), 16px);
	line-height: 2.125;
	width: min(calc(370 / 1400 * 100vw), 370px);
	margin: 0 auto;
}
.s-contents__pieces--box > div p small {
	display: block;
	font-size: min(calc(14 / 1400 * 100vw), 14px);
	color: #666;
	margin-top: min(calc(20 / 1400 * 100vw), 20px);
}
@media screen and (max-width: 834px) {
	.s-contents__pieces {
		margin-bottom: calc(200 / 750 * 100vw);
	}
	.s-contents__pieces h2 {
		font-size: calc(40 / 750 * 100vw);
		margin-bottom: calc(30 / 750 * 100vw);
	}
	.s-contents__pieces h2 span {
		font-size: calc(40 / 750 * 100vw);
	}
	.s-contents__pieces--box {
		padding-bottom: calc(100 / 750 * 100vw);
	}
	.s-contents__pieces--box > div {
		width: 100%;
	}
	.s-contents__pieces--box > div h3 {
		font-size: calc(58 / 750 * 100vw);
		width: auto;
		margin: calc(60 / 750 * 100vw) calc(80 / 750 * 100vw) calc(30 / 750 * 100vw);
	}
	.s-contents__pieces--box > div h3 span {
		font-size: calc(40 / 750 * 100vw);
	}
	.s-contents__pieces--box > div p {
		font-size: calc(26 / 750 * 100vw);
		width: auto;
		margin: 0 calc(80 / 750 * 100vw);
	}
	.s-contents__pieces--box > div p small {
		font-size: calc(22 / 750 * 100vw);
		margin-top: calc(20 / 750 * 100vw);
	}
}


/* ==========================================================================
   下層ページ共通 - ページ下部（s-contents__bottom）
   ========================================================================== */

.s-contents__bottom {
	padding: 0 30px;
}

/* 店舗情報 */
.s-contents__bottom--shop {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	max-width: 1030px;
	margin: 0 auto min(calc(160 / 1400 * 100vw), 160px);
}
.s-contents__bottom--shop--photo {
	width: 59%;
}
.s-contents__bottom--shop--text {
	width: 36%;
}
.s-contents__bottom--shop--text h2 {
	font-size: min(calc(24 / 1400 * 100vw), 24px);
	letter-spacing: -1px;
	margin-bottom: min(calc(30 / 1400 * 100vw), 30px);
}
.s-contents__bottom--shop--text h2 span {
	font-family: "Libre Baskerville", serif;
	font-size: min(calc(23 / 1400 * 100vw), 23px);
	font-weight: 400;
	font-style: italic;
}
.s-contents__bottom--shop--text h3 {
	font-size: min(calc(24 / 1400 * 100vw), 24px);
	font-weight: 400;
	line-height: 1.3;
	margin-bottom: min(calc(15 / 1400 * 100vw), 15px);
	padding-top: min(calc(30 / 1400 * 100vw), 30px);
	border-top: 1px solid #000;
}
.s-contents__bottom--shop--text h3 a {
	display: inline-block;
	text-decoration: none;
	transition: all .5s;
}
.s-contents__bottom--shop--text h3 a:hover {
	opacity: .7;
}
.s-contents__bottom--shop--text h3 a::after {
	content: "";
	margin-left: 0.3em;
	display: inline-block;
	vertical-align: middle;
	width: min(calc(13 / 1400 * 100vw), 13px);
	height: min(calc(10 / 1400 * 100vw), 10px);
	background: center center/contain no-repeat url("../img/common/icon_link.svg");
}
.s-contents__bottom--shop--text p {
	font-size: min(calc(16 / 1400 * 100vw), 16px);
	line-height: 1.8;
}
.s-contents__bottom--shop--title--sp {
	display: none;
}

/* ボタンエリア */
.s-contents__bottom--btn {
	display: flex;
	flex-wrap: wrap;
	gap: min(calc(20 / 1400 * 100vw), 20px);
	width: 860px;
	max-width: 83.6vw;
	margin: min(calc(80 / 1400 * 100vw), 80px) auto min(calc(20 / 1400 * 100vw), 20px);
}
.s-contents__bottom--btn > div {
	flex: 1 1 0;
	min-width: 0;
}
.s-contents__bottom--btn > div a {
	display: block;
	text-align: center;
	height: 7.778em;
	line-height: 7.667em;
	font-size: clamp(0.938rem, 0.66rem + 0.5309734513vw, 1.125rem);
	letter-spacing: 0.04em;
	font-weight: 500;
	border: 1px solid #bfbfbf;
	text-decoration: none;
	transition: background-color 0.3s cubic-bezier(0.45, 0, 0.55, 1), color 0.3s cubic-bezier(0.45, 0, 0.55, 1);
}
.s-contents__bottom--btn > div a::after {
	content: "";
	margin-left: 0.3em;
	display: inline-block;
	vertical-align: middle;
	width: 0.813em;
	height: 0.625em;
	background: center center/contain no-repeat url("../img/common/icon_link.svg");
}
@media screen and (max-width: 834px) {
	.s-contents__bottom {
		padding: 0 calc(30 / 750 * 100vw);
	}
	.s-contents__bottom--shop {
		margin: 0 auto calc(120 / 750 * 100vw);
	}
	.s-contents__bottom--shop--photo {
		width: 100%;
	}
	.s-contents__bottom--shop--text {
		width: 100%;
		margin: calc(30 / 750 * 100vw) calc(30 / 750 * 100vw) 0;
	}
	.s-contents__bottom--shop--text h2 {
		display: none;
	}
	.s-contents__bottom--shop--text h3 {
		font-size: calc(40 / 750 * 100vw);
		margin-bottom: calc(30 / 750 * 100vw);
		padding-top: 0;
		border-top: none;
	}
	.s-contents__bottom--shop--text h3 a::after {
		width: calc(21 / 750 * 100vw);
		height: calc(15 / 750 * 100vw);
	}
	.s-contents__bottom--shop--text p {
		font-size: calc(26 / 750 * 100vw);
	}
	.s-contents__bottom--shop--title--sp {
		display: block;
		font-size: calc(40 / 750 * 100vw);
		text-align: center;
		letter-spacing: -1px;
		margin: 0 auto calc(30 / 750 * 100vw);
	}
	.s-contents__bottom--shop--title--sp span {
		font-family: "Libre Baskerville", serif;
		font-size: calc(40 / 750 * 100vw);
		font-weight: 400;
		font-style: italic;
	}
	.s-contents__bottom--btn {
		gap: calc(20 / 750 * 100vw);
		width: auto;
		max-width: none;
		margin: calc(100 / 750 * 100vw) auto calc(20 / 750 * 100vw);
	}
	.s-contents__bottom--btn > div {
		flex: none;
		width: 100%;
	}
	.s-contents__bottom--btn > div a {
		height: 5.833em;
		line-height: 5.667em;
		font-size: clamp(0.75rem, 0.546rem + 0.871459695vw, 1rem);
		max-width: 100%;
	}
	.s-contents__bottom--btn > div a::after {
		content: "";
		margin-left: 0.3em;
		display: inline-block;
		vertical-align: middle;
		width: 0.813em;
		height: 0.625em;
		background: center center/contain no-repeat url("../img/common/icon_link.svg");
	}
}

/* 店舗写真スライダー（p-shop-slider） */
.p-shop-slider .splide__pagination {
	position: relative;
	bottom: auto;
	margin-top: min(calc(10 / 1400 * 100vw), 10px);
	gap: 6px;
}
@media screen and (max-width: 834px) {
	.p-shop-slider .splide__pagination {
		margin-top: -1.1vw;
	}
}
.p-shop-slider .splide__pagination__page,
.p-shop-slider .splide__pagination__page::before {
	width: max(40px, 2.9vw);
	height: max(2px, 0.1vw);
}
@media screen and (max-width: 834px) {
	.p-shop-slider .splide__pagination__page,
	.p-shop-slider .splide__pagination__page::before {
		width: 5.3vw;
		height: 0.3vw;
	}
}
.p-shop-slider .splide__pagination__page {
	border-radius: 0;
	opacity: 1 !important;
	background: #ffffff;
	cursor: pointer;
}
.p-shop-slider .splide__pagination__page::before {
	content: "";
	display: block;
	background: #ffffff;
}
.p-shop-slider .splide__pagination__page.is-active {
	transform: none;
}
.p-shop-slider .splide__pagination__page.is-active::before {
	background: #333333;
}
.p-shop-slider .splide__slide a {
	transition: all .5s;
}
.p-shop-slider .splide__slide a:hover {
	opacity: .7;
}


/* ==========================================================================
   SP用ページ 15Aging ITEMS
   ========================================================================== */

.s-items {
	padding-top: calc(200 / 750 * 100vw);
	margin-bottom: calc(150 / 750 * 100vw);
}
.s-items > h2 {
	font-family: "Libre Baskerville", serif;
	font-size: calc(70 / 750 * 100vw);
	font-weight: 400;
	line-height: 1.4;
	text-align: center;
	margin-bottom: calc(20 / 750 * 100vw);
}
.s-items > h2 span {
	font-style: italic;
}
.s-items > p {
	font-size: clamp(0.813rem, 0.659rem + 0.6535947712vw, 1rem);
	line-height: 2.192;
	text-align: center;
	margin-bottom: calc(50 / 750 * 100vw);
}
.s-items__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: calc(60 / 750 * 100vw) 1px;
	list-style: none;
	padding: 0;
}
.s-items__list li a {
	text-decoration: none;
}
.s-items__list--text {
	margin: calc(-15 / 750 * 100vw) calc(20 / 750 * 100vw) calc(40 / 750 * 100vw);
}
.s-items__list--text h3 {
	font-family: "Libre Baskerville", serif;
	font-size: calc(28 / 750 * 100vw);
	font-weight: 400;
	margin-bottom: calc(20 / 750 * 100vw);
}
.s-items__list--text span {
	font-size: calc(22 / 750 * 100vw);
	font-style: italic;
}
.s-items__list--text h4 {
	font-family: "Noto Serif JP", serif;
	font-size: calc(28 / 750 * 100vw);
	font-weight: 400;
	letter-spacing: -0.5px;
	margin-bottom: calc(15 / 750 * 100vw);
}
.s-items__list--text p {
	font-family: "Libre Baskerville", "Noto Serif JP", serif;
	font-size: calc(24 / 750 * 100vw);
	font-weight: 400;
	letter-spacing: -0.5px;
}
.s-items__list--btn {
	font-family: "Libre Baskerville", serif;
	font-size: calc(22 / 750 * 100vw);
	text-align: center;
	background-color: #fff;
	border: 1px solid #bfbfbf;
	border-radius: 20px;
	width: 80%;
	margin: 0 auto;
	padding: calc(8 / 750 * 100vw) calc(50 / 750 * 100vw);       
}
.s-items__list--btn span {
	font-style: italic;
}
