/* ==========================================================================
   焼肉ダイニング 泉匠苑 — Landing Page (mobile-first)
   Soft ink / Paper / Deep Enji · 上品な和モダン
   ========================================================================== */

:root {
	/* Softer ink — not pure black */
	--ss-ink: #1a1716;
	--ss-ink-soft: #3a3532;
	--ss-sumi: #f3efeb;
	--ss-paper: #faf8f6;
	--ss-paper-deep: #f0ebe6;
	--ss-enji: #6b1e2a;
	--ss-enji-soft: rgba(107, 30, 42, 0.08);
	--ss-enji-mid: rgba(107, 30, 42, 0.18);
	--ss-enji-light: #8a3340;
	--ss-accent-line: #6b1e2a;
	/* Readable muted (avoid washed-out gray) */
	--ss-muted: #5a544e;
	--ss-muted-on-dark: rgba(250, 248, 246, 0.84);
	--ss-line: rgba(26, 23, 22, 0.1);
	--ss-line-light: rgba(250, 248, 246, 0.14);
	--ss-max: 960px;
	--ss-pad: clamp(1.5rem, 5.5vw, 2.25rem);
	--ss-section: clamp(5rem, 14vw, 8rem);
	--ss-mincho: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
	--ss-sans: "Noto Sans JP", "Hiragino Sans", "Yu Gothic", sans-serif;
	--ss-ease: cubic-bezier(0.22, 1, 0.36, 1);
	/* Type scale — body ≥15/16px, caption ≥13px */
	--ss-fs-body: 0.9375rem;   /* 15px */
	--ss-fs-body-md: 1rem;     /* 16px */
	--ss-fs-caption: 0.8125rem; /* 13px */
	--ss-fs-small: 0.875rem;   /* 14px */
	--ss-lh-body: 1.8;
	--ss-lh-tight: 1.7;
}

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

html {
	width: 100%;
	scroll-behavior: smooth;
	overflow-x: hidden;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	margin: 0;
	width: 100%;
	max-width: 100%;
	background: var(--ss-paper);
	color: var(--ss-ink);
	font-family: var(--ss-sans);
	font-size: var(--ss-fs-body);
	font-weight: 400;
	line-height: var(--ss-lh-body);
	letter-spacing: 0.03em;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

@media (min-width: 768px) {
	body {
		font-size: var(--ss-fs-body-md);
	}
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

.ss-home {
	overflow-x: hidden;
}

/* Neutralize core block chrome around the LP */
body .wp-site-blocks > * {
	margin-block-start: 0;
}

body .wp-site-blocks > main.wp-block-group,
body .wp-site-blocks > .wp-block-template-part {
	margin: 0;
	padding: 0;
}

body.admin-bar .ss-header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .ss-header {
		top: 46px;
	}
}

/* --------------------------------------------------------------------------
   Header + Global Nav
   -------------------------------------------------------------------------- */

.ss-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 100;
	color: var(--ss-paper);
	background: linear-gradient(to bottom, rgba(26, 23, 22, 0.55), transparent);
	transition: background 0.4s var(--ss-ease), backdrop-filter 0.4s var(--ss-ease), border-color 0.4s var(--ss-ease), color 0.4s var(--ss-ease);
	border-bottom: 1px solid transparent;
}

.ss-header.is-scrolled,
.ss-header.is-open,
body:not(.home) .ss-header {
	background: rgba(250, 248, 246, 0.96);
	backdrop-filter: blur(12px);
	border-bottom-color: var(--ss-line);
	color: var(--ss-ink);
}

.ss-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.9rem var(--ss-pad);
	width: min(100%, 1200px);
	max-width: 100%;
	min-height: 4.5rem;
	margin-inline: auto;
	box-sizing: border-box;
}

.ss-header__brand {
	display: inline-flex;
	align-items: center;
	flex: 0 0 auto;
	line-height: 0;
}

.ss-header__logo {
	display: block;
	flex-shrink: 0;
	/* width基準。Windows の img{max-width:100%} + flex で潰れるのを防ぐ */
	width: clamp(2.9rem, 2.15rem + 2.35vw, 4.5rem);
	height: clamp(2.9rem, 2.15rem + 2.35vw, 4.5rem);
	max-width: none;
	max-height: none;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	border-radius: 2px;
	background: var(--ss-paper);
}

.ss-header__actions {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	flex-shrink: 0;
}

.ss-header__instagram {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2.35rem;
	height: 2.35rem;
	color: inherit;
	opacity: 0.92;
	transition: opacity 0.25s var(--ss-ease), color 0.25s var(--ss-ease);
}

.ss-header__instagram svg {
	display: block;
	width: 1.5rem; /* ~24px (mobile 22–26px) */
	height: 1.5rem;
}

.ss-header__instagram:hover,
.ss-header__instagram:focus-visible {
	opacity: 1;
	color: #d4b882;
}

.ss-header__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.35rem;
	padding: 0 1rem;
	border: 1px solid rgba(250, 248, 246, 0.45);
	background: transparent;
	color: inherit;
	font-size: var(--ss-fs-caption);
	font-weight: 400;
	letter-spacing: 0.14em;
	transition: background 0.3s var(--ss-ease), border-color 0.3s var(--ss-ease), color 0.3s var(--ss-ease);
}

.ss-header.is-scrolled .ss-header__cta,
.ss-header.is-open .ss-header__cta,
body:not(.home) .ss-header__cta {
	border-color: var(--ss-enji);
	background: var(--ss-enji);
	color: var(--ss-paper);
}

.ss-header__cta:hover {
	background: var(--ss-enji);
	border-color: var(--ss-enji);
	color: var(--ss-paper);
}

.ss-nav {
	display: none;
}

/* ドロワー内ナビはモバイルで表示（.ss-nav の display:none を上書き） */
.ss-nav--drawer {
	display: block;
}

.ss-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 1.35rem;
}

.ss-nav__link {
	font-size: var(--ss-fs-caption);
	font-weight: 400;
	letter-spacing: 0.1em;
	opacity: 0.92;
	transition: opacity 0.25s var(--ss-ease);
}

.ss-nav__link:hover,
.ss-nav__item.is-active .ss-nav__link {
	opacity: 1;
}

.ss-nav-toggle {
	position: relative;
	z-index: 120;
	width: 2.35rem;
	height: 2.35rem;
	border: 1px solid currentColor;
	background: transparent;
	color: inherit;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	cursor: pointer;
	padding: 0;
}

.ss-nav-toggle__line {
	display: block;
	width: 0.95rem;
	height: 1px;
	background: currentColor;
	transition: transform 0.3s var(--ss-ease), opacity 0.3s var(--ss-ease);
}

.ss-header.is-open .ss-nav-toggle__line:first-child {
	transform: translateY(0.2rem) rotate(45deg);
}

.ss-header.is-open .ss-nav-toggle__line:last-child {
	transform: translateY(-0.2rem) rotate(-45deg);
}

.ss-nav-drawer {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 110;
	width: 100%;
	max-height: min(80svh, calc(100svh - 4.75rem));
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 0.35rem var(--ss-pad) 1.75rem;
	background: var(--ss-paper);
	color: var(--ss-ink);
	border-top: 1px solid var(--ss-line);
	box-shadow: 0 18px 40px rgba(26, 23, 22, 0.18);
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transform: none;
}

.ss-header.is-open .ss-nav-drawer {
	display: block;
}

.ss-nav-drawer[hidden] {
	display: none !important;
}

.ss-header.is-open .ss-nav-drawer[hidden] {
	display: block !important;
}

.ss-nav--drawer .ss-nav__list {
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	margin-bottom: 1.25rem;
}

.ss-nav--drawer .ss-nav__item {
	width: 100%;
	border-bottom: 1px solid var(--ss-line);
}

.ss-nav--drawer .ss-nav__link {
	display: block;
	padding: 0.95rem 0;
	font-size: var(--ss-fs-small);
	letter-spacing: 0.12em;
	opacity: 1;
	color: var(--ss-ink);
	font-weight: 400;
}

body.ss-nav-locked {
	overflow: hidden;
	touch-action: none;
}

@media (min-width: 960px) {
	.ss-nav {
		display: block;
	}

	.ss-nav-toggle,
	.ss-nav-drawer {
		display: none !important;
	}

	body.ss-nav-locked {
		overflow: visible;
		touch-action: auto;
	}
}

/* --------------------------------------------------------------------------
   Shared section chrome
   -------------------------------------------------------------------------- */

.ss-section {
	padding: var(--ss-section) var(--ss-pad);
	position: relative;
}

.ss-section--paper {
	background: var(--ss-paper);
	color: var(--ss-ink);
}

.ss-section--sumi {
	background: var(--ss-sumi);
	color: var(--ss-ink);
}

.ss-section--ink {
	background: var(--ss-ink);
	color: var(--ss-paper);
}

.ss-inner {
	width: min(100%, var(--ss-max));
	margin-inline: auto;
}

.ss-eyebrow {
	display: inline-block;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.22em;
	color: var(--ss-muted);
	margin-bottom: 0.85rem;
	font-weight: 400;
}

.ss-section--ink .ss-eyebrow,
.ss-reserve .ss-eyebrow {
	color: var(--ss-muted-on-dark);
}

.ss-section--paper .ss-eyebrow,
.ss-story .ss-eyebrow {
	color: var(--ss-muted);
}

.ss-heading {
	font-family: var(--ss-mincho);
	font-weight: 500;
	font-size: clamp(1.35rem, 5vw, 1.85rem);
	line-height: 1.55;
	letter-spacing: 0.1em;
	margin: 0 0 0;
	color: inherit;
}

/* 店長ストーリー見出し：2行をひとまとまりに見せる */
.ss-heading--story {
	line-height: 1.28;
}

.ss-heading--story .ss-heading__break {
	display: inline;
}

@media (min-width: 768px) {
	.ss-heading--story {
		line-height: 1.2;
	}

	.ss-heading--story .ss-heading__break {
		display: block;
	}
}

.ss-lead {
	font-size: var(--ss-fs-body);
	line-height: var(--ss-lh-body);
	letter-spacing: 0.03em;
	color: var(--ss-ink-soft);
	margin: 0;
	max-width: 28em;
	font-weight: 400;
}

.ss-section--ink .ss-lead,
.ss-reserve .ss-lead {
	color: var(--ss-muted-on-dark);
}

.ss-divider {
	width: 1.75rem;
	height: 1px;
	background: var(--ss-enji);
	margin: 1.35rem 0 1.5rem;
	border: 0;
	opacity: 0.85;
}

/* Section intro: more air, less weight */
.ss-section-intro {
	margin-bottom: 2.75rem;
}

@media (min-width: 768px) {
	.ss-section-intro {
		margin-bottom: 3.5rem;
	}
}

/* Reveal animation */
.ss-reveal {
	opacity: 0;
	transform: translateY(1.1rem);
	transition: opacity 0.85s var(--ss-ease), transform 0.85s var(--ss-ease);
}

.ss-reveal.is-visible {
	opacity: 1;
	transform: none;
}

.ss-reveal-delay-1 { transition-delay: 0.1s; }
.ss-reveal-delay-2 { transition-delay: 0.2s; }
.ss-reveal-delay-3 { transition-delay: 0.3s; }

/* --------------------------------------------------------------------------
   Hero — quiet crossfade slideshow
   -------------------------------------------------------------------------- */

.ss-hero {
	position: relative;
	/* 100vh は Android のアドレスバー表示切替で高さが変わる → svh を優先 */
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	padding: 0;
	overflow: hidden;
	color: var(--ss-paper);
	background: var(--ss-ink);
	touch-action: pan-y;
}

.ss-hero__slider {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.ss-hero__track {
	position: absolute;
	inset: 0;
}

.ss-hero__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	transition: opacity 1.4s ease-in-out;
	pointer-events: none;
	z-index: 0;
}

.ss-hero__slide.is-active {
	opacity: 1;
	z-index: 1;
}

.ss-hero__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* 主役が切れにくい表示位置 */
.ss-hero__slide[data-pos="space"] img {
	object-position: center 48%;
}

.ss-hero__slide[data-pos="food"] img {
	object-position: center 42%;
}

.ss-hero__slide[data-pos="craft"] img {
	object-position: 38% 45%;
}

.ss-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		/* 左〜左下を濃くして文字可読性を確保（肉の質感は右側に残す） */
		linear-gradient(
			105deg,
			rgba(12, 10, 10, 0.82) 0%,
			rgba(18, 12, 14, 0.68) 28%,
			rgba(20, 12, 14, 0.42) 52%,
			rgba(14, 10, 12, 0.28) 78%,
			rgba(14, 10, 12, 0.22) 100%
		),
		linear-gradient(
			to top,
			rgba(14, 10, 12, 0.88) 0%,
			rgba(14, 10, 12, 0.45) 42%,
			rgba(14, 10, 12, 0.18) 100%
		),
		radial-gradient(ellipse at 18% 78%, rgba(107, 30, 42, 0.34), transparent 52%);
	z-index: 2;
	pointer-events: none;
}

.ss-hero__dots {
	position: absolute;
	left: var(--ss-pad);
	bottom: 1.75rem;
	z-index: 4;
	display: flex;
	gap: 0.55rem;
	pointer-events: auto;
}

.ss-hero__dot {
	width: 0.4rem;
	height: 0.4rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(250, 248, 246, 0.35);
	cursor: pointer;
	transition: background 0.4s ease, transform 0.4s ease;
}

.ss-hero__dot.is-active {
	background: rgba(250, 248, 246, 0.9);
	transform: scale(1.15);
}

.ss-hero__content {
	position: relative;
	z-index: 4;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: clamp(0.7rem, 1.8vw, 1.35rem);
	width: min(calc(100% - clamp(1rem, 4.5vw, 2.5rem) - 0.5rem), 28.75rem); /* ~460px */
	max-width: 100%;
	min-width: 0;
	margin: 0;
	margin-inline-start: clamp(1rem, 4.5vw, 2.5rem);
	/* ヘッダー下。vh はアドレスバーで再計算されるため使わない */
	padding:
		clamp(5.5rem, 4.75rem + 3.2vw, 7.25rem)
		0.5rem
		clamp(3.75rem, 9vw, 5.5rem)
		0;
	pointer-events: none;
	box-sizing: border-box;
}

.ss-hero__content a {
	pointer-events: auto;
}

.ss-hero__logo-wrap {
	margin: 0;
	flex: 0 0 auto;
	width: min(100%, 26rem);
	max-width: 100%;
	padding: 0;
	background: transparent;
	background-color: transparent;
	box-shadow: none;
	border: 0;
	border-radius: 0;
}

.ss-hero__logo {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	aspect-ratio: auto;
	object-fit: contain;
	padding: 0;
	background: transparent;
	background-color: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/* GRAND OPEN — ロゴの上に独立配置（重ねない） */
.ss-hero__open {
	position: static;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.28rem;
	margin: 0 0 clamp(0.35rem, 1vw, 0.55rem);
	padding: 0.55rem 0.85rem;
	max-width: 100%;
	border: 1px solid rgba(212, 184, 130, 0.55);
	font-family: var(--ss-mincho);
	font-weight: 500;
	color: rgba(236, 220, 180, 0.96);
	background: transparent;
	backdrop-filter: none;
	box-sizing: border-box;
	overflow-wrap: anywhere;
}

.ss-hero__open-date {
	display: block;
	font-size: clamp(0.92rem, 0.78rem + 0.7vw, 1.1rem);
	letter-spacing: 0.28em;
	line-height: 1.35;
}

.ss-hero__open-text {
	display: block;
	font-size: clamp(0.82rem, 0.7rem + 0.55vw, 0.98rem);
	letter-spacing: 0.34em;
	line-height: 1.35;
}

.ss-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ss-hero__brand {
	font-family: var(--ss-mincho);
	font-size: clamp(1.85rem, 7.5vw, 3.1rem);
	font-weight: 500;
	letter-spacing: 0.18em;
	line-height: 1.4;
	margin: 0 0 1rem;
}

.ss-hero__catch {
	font-family: var(--ss-mincho);
	font-size: clamp(1.05rem, 0.85rem + 1.4vw, 1.45rem);
	letter-spacing: 0.14em;
	line-height: 1.95;
	margin: 0;
	padding-top: clamp(0.15rem, 0.8vw, 0.45rem);
	font-weight: 400;
	color: rgba(250, 248, 246, 0.98);
	max-width: 100%;
	min-width: 0;
}

.ss-hero__sub {
	font-family: var(--ss-sans);
	font-size: clamp(0.8125rem, 0.75rem + 0.35vw, 0.9rem);
	line-height: 2.05;
	letter-spacing: 0.06em;
	color: rgba(250, 248, 246, 0.78);
	margin: 0;
	max-width: min(22em, 100%);
	min-width: 0;
	font-weight: 400;
}

.ss-hero__actions {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	width: 100%;
	max-width: 17rem;
	margin-top: clamp(0.35rem, 1.2vw, 0.75rem);
}

.ss-hero__scroll {
	position: absolute;
	right: var(--ss-pad);
	bottom: 1.5rem;
	z-index: 4;
	writing-mode: vertical-rl;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.2em;
	color: rgba(250, 248, 246, 0.72);
	font-weight: 400;
}

.ss-hero__scroll::after {
	content: "";
	display: block;
	width: 1px;
	height: 2.5rem;
	margin: 0.65rem auto 0;
	background: linear-gradient(to bottom, rgba(107, 30, 42, 0.7), transparent);
	animation: ss-scroll-line 2.2s ease-in-out infinite;
}

@keyframes ss-scroll-line {
	0%, 100% { opacity: 0.35; transform: scaleY(0.7); transform-origin: top; }
	50% { opacity: 1; transform: scaleY(1); }
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.ss-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.85rem;
	padding: 0.75rem 1.35rem;
	font-family: var(--ss-sans);
	font-size: var(--ss-fs-caption);
	font-weight: 400;
	letter-spacing: 0.14em;
	border: 1px solid transparent;
	transition: background 0.3s var(--ss-ease), color 0.3s var(--ss-ease), border-color 0.3s var(--ss-ease), transform 0.3s var(--ss-ease);
	text-align: center;
	cursor: pointer;
}

.ss-btn:active {
	transform: scale(0.98);
}

.ss-btn--primary {
	background: var(--ss-enji);
	border-color: var(--ss-enji);
	color: var(--ss-paper);
}

.ss-btn--primary:hover {
	background: var(--ss-enji-light);
	border-color: var(--ss-enji-light);
	color: var(--ss-paper);
}

.ss-btn--ghost {
	background: transparent;
	border-color: rgba(250, 248, 246, 0.32);
	color: var(--ss-paper);
}

.ss-btn--ghost:hover {
	border-color: rgba(250, 248, 246, 0.7);
	color: var(--ss-paper);
}

.ss-btn--on-paper {
	border-color: rgba(26, 23, 22, 0.28);
	color: var(--ss-ink);
	background: transparent;
}

.ss-btn--on-paper:hover {
	border-color: var(--ss-enji);
	color: var(--ss-enji);
	background: var(--ss-enji-soft);
}

.ss-btn--block {
	width: 100%;
}

.ss-btn-note {
	display: block;
	margin-top: 1rem;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.03em;
	color: var(--ss-muted-on-dark);
	line-height: var(--ss-lh-tight);
	font-weight: 400;
}

/* --------------------------------------------------------------------------
   Concept — text only（写真の重複を避ける）
   -------------------------------------------------------------------------- */

.ss-concept--text {
	max-width: 36rem;
}

.ss-concept--text .ss-lead {
	max-width: 32em;
}

.ss-concept__points {
	list-style: none;
	margin: 2rem 0 0;
	padding: 0;
	display: grid;
	gap: 1.35rem;
}

.ss-concept__points li {
	padding-left: 1.1rem;
	border-left: 1px solid var(--ss-enji);
}

.ss-concept__points strong {
	display: block;
	font-family: var(--ss-mincho);
	font-weight: 500;
	font-size: 1rem;
	letter-spacing: 0.08em;
	margin-bottom: 0.35rem;
	color: var(--ss-ink);
}

.ss-concept__points span {
	font-size: var(--ss-fs-body);
	line-height: var(--ss-lh-body);
	color: var(--ss-ink-soft);
	font-weight: 400;
}

/* --------------------------------------------------------------------------
   Appeal — 泉匠苑のこだわり
   -------------------------------------------------------------------------- */

.ss-appeal__points {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.5rem;
}

.ss-appeal__points li {
	padding: 1.25rem 0 1.35rem;
	border-top: 1px solid rgba(250, 248, 246, 0.14);
}

.ss-appeal__points li:last-child {
	border-bottom: 1px solid rgba(250, 248, 246, 0.14);
}

.ss-appeal__points strong {
	display: block;
	font-family: var(--ss-mincho);
	font-weight: 500;
	font-size: clamp(1.05rem, 3.5vw, 1.2rem);
	letter-spacing: 0.12em;
	margin-bottom: 0.45rem;
	color: var(--ss-paper);
}

.ss-appeal__points span {
	font-size: var(--ss-fs-body);
	line-height: var(--ss-lh-body);
	color: var(--ss-muted-on-dark);
	font-weight: 400;
}

/* --------------------------------------------------------------------------
   Meat — 肉のこと、価格のこと
   -------------------------------------------------------------------------- */

.ss-meat__layout {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

.ss-meat__media {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--ss-paper-deep);
	max-width: 28rem;
}

.ss-meat__media img,
.ss-media--meat {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 40%;
}

.ss-meat__lead {
	font-family: var(--ss-mincho);
	font-size: clamp(1.05rem, 3.6vw, 1.25rem);
	letter-spacing: 0.08em;
	line-height: 1.9;
	color: var(--ss-ink);
	max-width: 18em;
}

.ss-meat__catch {
	margin: 0 0 0.55rem;
	font-family: var(--ss-mincho);
	font-size: clamp(1.15rem, 4vw, 1.4rem);
	font-weight: 500;
	letter-spacing: 0.16em;
	line-height: 1.75;
	color: var(--ss-ink);
}

.ss-meat__brand {
	margin: 0 0 1.15rem;
	font-family: var(--ss-mincho);
	font-size: clamp(0.98rem, 3.3vw, 1.12rem);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.9;
	color: var(--ss-enji);
	max-width: 22em;
}

.ss-meat__note {
	margin: 1.25rem 0 0;
	font-size: var(--ss-fs-small);
	line-height: 1.9;
	letter-spacing: 0.04em;
	color: var(--ss-muted);
	max-width: 28em;
}

/* --------------------------------------------------------------------------
   Tare — タレへのこだわり（写真差し替え可能な枠）
   -------------------------------------------------------------------------- */

.ss-tare__layout {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

.ss-tare__lead {
	font-family: var(--ss-mincho);
	font-size: clamp(1.05rem, 3.6vw, 1.25rem);
	letter-spacing: 0.08em;
	line-height: 1.9;
	color: var(--ss-ink);
	max-width: 18em;
}

.ss-tare__body {
	margin: 1.25rem 0 0;
	max-width: 32em;
}

.ss-tare__body p {
	margin: 0;
	font-size: var(--ss-fs-small);
	line-height: 1.9;
	letter-spacing: 0.04em;
	color: var(--ss-muted);
}

.ss-tare__body p + p {
	margin-top: 1em;
}

.ss-tare__media {
	margin: 0;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--ss-sumi);
	max-width: 28rem;
	width: 100%;
}

.ss-tare__media img,
.ss-media--tare {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 53% 50%;
}

.ss-tare__media--placeholder {
	display: grid;
	place-items: center;
	border: 1px solid var(--ss-line);
	background:
		linear-gradient(135deg, rgba(107, 30, 42, 0.06), transparent 55%),
		var(--ss-sumi);
}

.ss-tare__placeholder-label {
	font-family: var(--ss-mincho);
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.18em;
	color: var(--ss-muted);
}

.ss-tare__caption {
	margin: 0.65rem 0 0;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.06em;
	color: var(--ss-muted);
}

/* --------------------------------------------------------------------------
   Story — 目に留まる中核セクション
   -------------------------------------------------------------------------- */

.ss-story {
	background:
		linear-gradient(180deg, var(--ss-enji-soft) 0%, var(--ss-paper) 28%, var(--ss-paper) 100%);
	position: relative;
}

.ss-story::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(90deg, transparent, var(--ss-enji) 20%, var(--ss-enji) 80%, transparent);
	opacity: 0.55;
}

.ss-story__layout {
	display: grid;
	gap: 2.75rem;
}

.ss-story__portrait {
	position: relative;
	max-width: 17rem;
	margin-inline: auto;
}

.ss-story__portrait img {
	width: 100%;
	aspect-ratio: 7 / 8;
	object-fit: cover;
	/* 縦長写真を7:8でクロップ：顔・頭が切れないよう上部寄り */
	object-position: center 12%;
}

.ss-story__portrait-label {
	position: absolute;
	left: -0.15rem;
	bottom: 1.1rem;
	writing-mode: vertical-rl;
	background: var(--ss-enji);
	color: var(--ss-paper);
	padding: 0.9rem 0.48rem;
	font-family: var(--ss-mincho);
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.18em;
	font-weight: 500;
}

.ss-story__body p {
	font-size: var(--ss-fs-body);
	line-height: 1.85;
	letter-spacing: 0.03em;
	color: var(--ss-ink-soft);
	margin: 0 0 1.15rem;
	font-weight: 400;
}

.ss-story__body p:last-of-type {
	margin-bottom: 0;
}

.ss-story__name {
	margin-top: 2rem;
	padding-top: 1.35rem;
	border-top: 1px solid var(--ss-enji-mid);
}

.ss-story__name strong {
	display: block;
	font-family: var(--ss-mincho);
	font-size: 1.2rem;
	letter-spacing: 0.18em;
	font-weight: 500;
	color: var(--ss-ink);
}

.ss-story__name span {
	display: block;
	margin-top: 0.45rem;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.1em;
	color: var(--ss-muted);
	font-weight: 400;
	line-height: var(--ss-lh-tight);
}

/* --------------------------------------------------------------------------
   Cuisine & Rooms
   -------------------------------------------------------------------------- */

.ss-features {
	display: grid;
	gap: 3rem;
}

.ss-features--cuisine {
	counter-reset: ss-cuisine;
}

.ss-feature {
	display: grid;
	gap: 1.25rem;
}

.ss-feature--hidden {
	display: none;
}

.ss-feature__media {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--ss-paper-deep);
}

.ss-features--cuisine .ss-feature__media {
	aspect-ratio: 4 / 3;
}

.ss-feature__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1.2s var(--ss-ease);
}

/* 料理：主役の肉を中央寄りに */
.ss-media--food {
	object-position: center 42%;
}

.ss-media--food-alt {
	object-position: center 42%;
}

.ss-media--food-plate {
	object-position: center 46%;
}

.ss-media--cuisine-wagyu {
	object-position: center 48%;
}

.ss-media--cuisine-tongue {
	object-position: center 46%;
}

.ss-media--cuisine-hatsusashi {
	/* ハツの盛りを中央に保ち、薬味が切れすぎない位置 */
	object-position: 46% 52%;
}

.ss-media--cuisine-sides {
	object-position: center 50%;
}

@media (max-width: 767px) {
	.ss-media--cuisine-wagyu {
		object-position: 48% 45%;
	}

	.ss-media--cuisine-tongue {
		object-position: 50% 42%;
	}

	.ss-media--cuisine-hatsusashi {
		object-position: 45% 50%;
	}

	.ss-media--cuisine-sides {
		object-position: 50% 48%;
	}
}

/* 空間：テーブルと席が切れにくい位置 */
.ss-media--space {
	object-position: center 48%;
}

/* 人物：顔が切れないよう上部寄り */
.ss-media--portrait {
	object-position: center 12%;
}

.ss-feature:hover .ss-feature__media img {
	transform: scale(1.03);
}

.ss-feature__num {
	font-family: var(--ss-sans);
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.18em;
	color: var(--ss-muted);
	margin-bottom: 0.45rem;
	font-weight: 400;
}

.ss-features--cuisine .ss-feature:not(.ss-feature--hidden) .ss-feature__num::before {
	counter-increment: ss-cuisine;
	content: counter(ss-cuisine, decimal-leading-zero);
}

.ss-feature h3 {
	font-family: var(--ss-mincho);
	font-size: clamp(1.05rem, 3.8vw, 1.25rem);
	letter-spacing: 0.1em;
	font-weight: 500;
	margin: 0 0 0.75rem;
	color: var(--ss-ink);
}

.ss-feature h3:has(+ .ss-feature__price) {
	margin-bottom: 0.35rem;
}

.ss-feature p {
	margin: 0;
	font-size: var(--ss-fs-body);
	line-height: var(--ss-lh-body);
	color: var(--ss-ink-soft);
	font-weight: 400;
}

.ss-feature__price {
	margin: 0 0 0.75rem;
	font-size: var(--ss-fs-small);
	letter-spacing: 0.08em;
	line-height: 1.5;
	color: var(--ss-enji);
	font-weight: 500;
}

/* --------------------------------------------------------------------------
   Info (店舗概要)
   -------------------------------------------------------------------------- */

.ss-info__table {
	width: 100%;
	max-width: min(36rem, 100%);
	border-collapse: collapse;
	font-size: var(--ss-fs-body);
	letter-spacing: 0.03em;
	table-layout: fixed;
}

.ss-info__table th,
.ss-info__table td {
	padding: 0.95rem 0;
	border-bottom: 1px solid var(--ss-line);
	vertical-align: top;
	text-align: left;
	line-height: var(--ss-lh-tight);
}

.ss-info__table th {
	width: 5.5rem;
	font-weight: 500;
	font-family: var(--ss-mincho);
	letter-spacing: 0.08em;
	color: var(--ss-muted);
	white-space: nowrap;
	padding-right: 0.75rem;
}

.ss-info__table td {
	color: var(--ss-ink-soft);
	font-weight: 400;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.ss-info__tel,
.ss-footer__tel {
	color: inherit;
	text-decoration: none;
	letter-spacing: 0.04em;
	border-bottom: 1px solid transparent;
	transition: color 0.25s var(--ss-ease), border-color 0.25s var(--ss-ease);
}

.ss-info__tel:hover,
.ss-footer__tel:hover {
	color: var(--ss-enji);
	border-bottom-color: var(--ss-enji);
}

.ss-info__row--hours th,
.ss-info__row--hours td {
	color: var(--ss-ink);
	font-weight: 500;
	vertical-align: top;
}

.ss-info__lo {
	display: inline-block;
	margin-top: 0.2em;
	font-weight: 400;
	font-size: var(--ss-fs-small);
	letter-spacing: 0.04em;
	color: var(--ss-ink-soft);
	line-height: 1.7;
}

.ss-info__calendar-link {
	margin: 0.55rem 0 0;
	font-weight: 400;
}

/* Google Map */
.ss-map {
	margin-top: 1.75rem;
	width: 100%;
	max-width: 100%;
}

.ss-map__frame {
	position: relative;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	border: 1px solid var(--ss-line);
	border-radius: 2px;
	background: var(--ss-paper-deep);
	line-height: 0;
}

.ss-map__frame iframe {
	display: block;
	width: 100% !important;
	max-width: 100%;
	height: 320px;
	border: 0;
}

@media (min-width: 768px) {
	.ss-map__frame iframe {
		height: 420px;
	}
}

.ss-map__actions {
	margin: 1rem 0 0;
}

.ss-map__directions {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.6rem;
	padding: 0.65rem 1.25rem;
	border: 1px solid rgba(26, 23, 22, 0.28);
	border-radius: 0;
	background: transparent;
	color: var(--ss-ink);
	font-family: var(--ss-sans);
	font-size: var(--ss-fs-caption);
	font-weight: 400;
	letter-spacing: 0.1em;
	line-height: 1.4;
	text-align: center;
	transition: color 0.25s var(--ss-ease), border-color 0.25s var(--ss-ease), background 0.25s var(--ss-ease);
}

.ss-map__directions:hover {
	border-color: var(--ss-enji);
	color: var(--ss-enji);
	background: var(--ss-enji-soft);
}

/* 営業カレンダー（WordPress 内管理） */
.ss-calendar {
	margin: 2.75rem 0 0;
	max-width: 40rem;
	scroll-margin-top: calc(5.5rem + clamp(1rem, 3vw, 1.75rem));
}

.ss-calendar__title {
	font-family: var(--ss-mincho);
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	margin: 0 0 0.85rem;
	color: var(--ss-ink);
}

.ss-calendar__lead {
	margin: 0 0 1.15rem;
	font-size: var(--ss-fs-small);
	line-height: 1.9;
	letter-spacing: 0.04em;
	color: var(--ss-ink-soft);
}

.ss-calendar__frame {
	position: relative;
	width: 100%;
	padding: 1rem 0.85rem 0.85rem;
	overflow: hidden;
	border: 1px solid var(--ss-line);
	background: var(--ss-paper-deep);
	line-height: normal;
}

.ss-biz-cal__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.85rem;
}

.ss-biz-cal__nav-btn {
	min-height: 2.5rem;
	padding: 0.35rem 0.85rem;
	border: 1px solid rgba(26, 23, 22, 0.14);
	background: var(--ss-paper);
	font-family: var(--ss-sans);
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.1em;
	color: var(--ss-ink);
	cursor: pointer;
	transition: border-color 0.25s var(--ss-ease), color 0.25s var(--ss-ease), background 0.25s var(--ss-ease);
}

.ss-biz-cal__nav-btn:hover {
	border-color: var(--ss-enji);
	color: var(--ss-enji);
	background: var(--ss-enji-soft);
}

.ss-biz-cal__label {
	margin: 0;
	font-family: var(--ss-mincho);
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	color: var(--ss-ink);
	text-align: center;
}

.ss-biz-cal__weekdays {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 0.25rem;
	margin-bottom: 0.35rem;
	text-align: center;
}

.ss-biz-cal__weekday {
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.08em;
	color: var(--ss-muted);
}

.ss-biz-cal__weekday:first-child {
	color: #8a6a38;
}

.ss-biz-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 0.3rem;
}

.ss-biz-cal__cell--empty {
	min-height: 3rem;
}

.ss-biz-cal__day {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 3.1rem;
	padding: 0.25rem 0.15rem 0.35rem;
	border: 1px solid rgba(26, 23, 22, 0.08);
	background: var(--ss-paper);
	text-align: center;
}

.ss-biz-cal__day.is-closed {
	background:
		linear-gradient(135deg, rgba(107, 30, 42, 0.05), transparent 55%),
		var(--ss-paper);
	color: var(--ss-muted);
}

.ss-biz-cal__num {
	font-family: var(--ss-mincho);
	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.04em;
}

.ss-biz-cal__mark {
	margin-top: 0.12rem;
	font-family: var(--ss-mincho);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	color: var(--ss-enji);
}

.ss-biz-cal__note {
	display: -webkit-box;
	max-width: 100%;
	margin-top: 0.08rem;
	overflow: hidden;
	font-family: var(--ss-sans);
	font-size: 0.58rem;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: 0.02em;
	color: var(--ss-muted);
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	word-break: break-all;
}

.ss-biz-cal__day.has-note {
	justify-content: flex-start;
	padding-top: 0.2rem;
	padding-bottom: 0.2rem;
}

.ss-biz-cal.is-loading {
	opacity: 0.65;
	pointer-events: none;
}

@media (min-width: 768px) {
	.ss-calendar {
		margin-top: 3.25rem;
	}

	.ss-calendar__frame {
		padding: 1.15rem 1.1rem 1rem;
	}

	.ss-biz-cal__day {
		min-height: 3.5rem;
	}
}

@media (max-width: 480px) {
	.ss-biz-cal__nav-btn {
		padding: 0.35rem 0.55rem;
		font-size: 0.78rem;
	}

	.ss-biz-cal__day {
		min-height: 2.75rem;
	}

	.ss-biz-cal__num {
		font-size: 0.85rem;
	}

	.ss-biz-cal__note {
		font-size: 0.52rem;
		line-height: 1.2;
	}

	.ss-biz-cal__day.has-note {
		min-height: 3rem;
	}
}

.ss-map-note {
	margin-top: 1.25rem;
	font-size: var(--ss-fs-caption);
	color: var(--ss-muted);
	letter-spacing: 0.02em;
	line-height: var(--ss-lh-tight);
	font-weight: 400;
}

/* --------------------------------------------------------------------------
   Space（空間紹介）
   -------------------------------------------------------------------------- */

.ss-space__layout {
	display: grid;
	gap: 2.5rem;
	align-items: center;
}

.ss-space__media {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background: var(--ss-paper-deep);
	max-width: 28rem;
}

.ss-space__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* --------------------------------------------------------------------------
   Reserve / Contact — soft ink, enji glow restrained
   -------------------------------------------------------------------------- */

.ss-reserve {
	text-align: center;
	background:
		radial-gradient(ellipse at 50% 0%, rgba(107, 30, 42, 0.2), transparent 48%),
		var(--ss-ink);
	color: var(--ss-paper);
}

.ss-reserve .ss-lead {
	margin-inline: auto;
}

.ss-reserve .ss-heading {
	color: var(--ss-paper);
}

.ss-reserve__actions {
	display: grid;
	gap: 0.75rem;
	max-width: 20rem;
	margin: 2.25rem auto 0;
}

.ss-reserve__placeholder {
	margin-top: 1.75rem;
	padding: 0.9rem 1.1rem;
	border: 1px dashed rgba(250, 248, 246, 0.28);
	font-size: var(--ss-fs-caption);
	line-height: var(--ss-lh-tight);
	color: var(--ss-muted-on-dark);
	letter-spacing: 0.02em;
	max-width: 24rem;
	margin-inline: auto;
	font-weight: 400;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.ss-footer {
	padding: 2.75rem var(--ss-pad) 3.25rem;
	border-top: 1px solid var(--ss-line);
	text-align: center;
	background: var(--ss-paper);
	color: var(--ss-ink);
}

.ss-footer__inner {
	width: min(100%, var(--ss-max));
	margin-inline: auto;
}

.ss-footer__brand {
	display: inline-block;
	margin-bottom: 1.25rem;
	line-height: 0;
}

.ss-footer__logo {
	display: block;
	width: 7.5rem;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	margin-inline: auto;
}

.ss-footer__nav {
	margin-bottom: 1.5rem;
}

.ss-footer-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.65rem 1.25rem;
}

.ss-footer-nav__link {
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.08em;
	color: var(--ss-ink-soft);
	font-weight: 400;
}

.ss-footer-nav__link:hover,
.ss-footer-nav__item.is-active .ss-footer-nav__link {
	color: var(--ss-enji);
}

.ss-footer__meta {
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.04em;
	color: var(--ss-muted);
	line-height: var(--ss-lh-body);
	font-weight: 400;
}

.ss-footer__hours {
	margin: 0.5rem 0 0;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.04em;
	color: var(--ss-ink-soft);
	line-height: var(--ss-lh-tight);
	font-weight: 400;
}

.ss-footer__copy {
	margin-top: 1.5rem;
	font-size: var(--ss-fs-caption);
	color: var(--ss-muted);
	letter-spacing: 0.04em;
	font-weight: 400;
}

/* Section → detail page links */
.ss-section-link {
	margin: 1.75rem 0 0;
}

.ss-section-link--center {
	text-align: center;
}

.ss-text-link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-size: var(--ss-fs-small);
	letter-spacing: 0.1em;
	color: var(--ss-ink-soft);
	border-bottom: 1px solid rgba(58, 53, 50, 0.28);
	padding-bottom: 0.15rem;
	font-weight: 400;
	line-height: var(--ss-lh-tight);
	transition: color 0.25s var(--ss-ease), border-color 0.25s var(--ss-ease);
}

.ss-text-link:hover {
	border-bottom-color: var(--ss-enji);
	color: var(--ss-enji);
}

.ss-text-link--dark {
	color: var(--ss-ink-soft);
}

.ss-text-link--dark:hover {
	color: var(--ss-enji);
	border-bottom-color: var(--ss-enji);
}

/* Inner pages */
.ss-main--page {
	/* 固定ヘッダー分 + タイトル上の視覚余白（目安: 32–60px） */
	padding-top: calc(5.5rem + clamp(2rem, 4vw, 3.75rem)) !important;
	min-height: 60vh;
	min-height: 60svh;
	background: var(--ss-paper);
	color: var(--ss-ink);
}

.ss-page-shell {
	padding: 0 var(--ss-pad) clamp(4rem, 10vw, 6rem);
}

.ss-page__title {
	font-family: var(--ss-mincho);
	font-size: clamp(1.5rem, 5vw, 2rem);
	letter-spacing: 0.14em;
	font-weight: 500;
	margin: 0 0 1rem;
}

.ss-page__lead {
	font-size: var(--ss-fs-body);
	line-height: var(--ss-lh-body);
	color: var(--ss-ink-soft);
	margin: 0 0 1rem;
	font-weight: 400;
}

.ss-page__note {
	font-size: var(--ss-fs-small);
	line-height: var(--ss-lh-body);
	color: var(--ss-muted);
	margin: 0 0 2rem;
	font-weight: 400;
}

body.home .ss-main--page {
	padding-top: 0;
}

/* --------------------------------------------------------------------------
   Hours strip (below hero)
   -------------------------------------------------------------------------- */

.ss-hours-strip {
	background: var(--ss-ink);
	color: var(--ss-paper);
	border-bottom: 1px solid var(--ss-line-light);
}

.ss-hours-strip__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 0.35rem 0.65rem;
	width: min(100%, var(--ss-max));
	margin-inline: auto;
	padding: 0.85rem var(--ss-pad);
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.08em;
	line-height: 1.6;
	text-align: center;
}

.ss-hours-strip__label {
	color: rgba(250, 248, 246, 0.62);
	font-weight: 400;
}

.ss-hours-strip__value {
	color: rgba(250, 248, 246, 0.95);
	font-weight: 400;
}

.ss-hours-strip__lo {
	flex-basis: 100%;
	font-size: 0.95em;
	letter-spacing: 0.06em;
	color: rgba(250, 248, 246, 0.82);
}

.ss-hours-strip__sep {
	color: rgba(250, 248, 246, 0.35);
}

/* --------------------------------------------------------------------------
   Menu cards / empty state
   -------------------------------------------------------------------------- */

.ss-menu-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	margin: 0 0 2.5rem;
}

.ss-menu-grid--home {
	margin-top: 2rem;
}

.ss-menu-card {
	background: transparent;
	border-bottom: 1px solid var(--ss-line);
	padding-bottom: 1.5rem;
}

.ss-menu-card__media {
	margin: 0 0 1rem;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--ss-paper-deep);
}

.ss-menu-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ss-menu-card__media--placeholder {
	background: var(--ss-paper-deep);
}

.ss-menu-card__head {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.3rem;
	margin-bottom: 0.5rem;
}

.ss-menu-card__name {
	font-family: var(--ss-mincho);
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	margin: 0;
	line-height: 1.5;
	min-height: 3em; /* 長い商品名（2行）でも高さ揃え */
}

.ss-menu-card__price {
	margin: 0;
	font-size: var(--ss-fs-small);
	letter-spacing: 0.08em;
	color: var(--ss-enji);
	font-weight: 500;
	line-height: 1.5;
	min-height: 1.5em;
}

.ss-menu-card__price--empty {
	visibility: hidden;
	color: transparent;
}

.ss-menu-card__desc {
	margin: 0;
	font-size: var(--ss-fs-small);
	line-height: var(--ss-lh-body);
	color: var(--ss-ink-soft);
}

.ss-menu-group {
	margin-bottom: 2.5rem;
}

.ss-menu-group__title,
.ss-menu-section__title {
	font-family: var(--ss-mincho);
	font-size: 1.15rem;
	letter-spacing: 0.14em;
	font-weight: 500;
	margin: 0 0 1.25rem;
	padding-bottom: 0.65rem;
	border-bottom: 1px solid var(--ss-line);
}

.ss-menu-section {
	margin-bottom: 2.5rem;
}

/* --------------------------------------------------------------------------
   Menu courses
   -------------------------------------------------------------------------- */

.ss-menu-courses {
	margin: 2.75rem 0 3.25rem;
}

.ss-menu-courses__intro {
	margin-bottom: 1.75rem;
}

.ss-menu-courses__intro .ss-eyebrow {
	margin-bottom: 0.55rem;
}

.ss-menu-courses__intro .ss-menu-section__title {
	margin-bottom: 0.85rem;
}

.ss-menu-courses__lead {
	margin: 0;
	max-width: 32em;
	font-size: var(--ss-fs-small);
	line-height: 1.8;
	letter-spacing: 0.04em;
	color: var(--ss-muted);
}

.ss-menu-courses__notice {
	margin: 0.85rem 0 0;
	max-width: 32em;
	font-size: var(--ss-fs-small);
	line-height: var(--ss-lh-body);
	letter-spacing: 0.04em;
	color: var(--ss-muted);
	font-weight: 400;
}

.ss-menu-courses__figure {
	margin: 0 auto 1.75rem;
	max-width: 40rem;
}

.ss-menu-courses__img {
	display: block;
	width: 100%;
	height: auto;
}

.ss-menu-courses__caption {
	margin: 0.55rem 0 0;
	font-size: var(--ss-fs-caption);
	line-height: 1.7;
	letter-spacing: 0.04em;
	color: var(--ss-muted);
}

.ss-menu-courses__list {
	display: grid;
	gap: 1.15rem;
}

.ss-course-card {
	padding: 1.35rem 1.2rem 1.25rem;
	border: 1px solid rgba(26, 23, 22, 0.12);
	background:
		linear-gradient(135deg, rgba(212, 184, 130, 0.08), transparent 42%),
		var(--ss-paper);
}

.ss-course-card__price {
	margin: 0 0 0.7rem;
	font-family: var(--ss-mincho);
	font-size: clamp(1.2rem, 4.2vw, 1.45rem);
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.35;
	color: var(--ss-ink);
}

.ss-course-card__perk {
	margin: -0.35rem 0 0.7rem;
	font-size: var(--ss-fs-caption);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.6;
	color: #8a6a38;
}

.ss-course-card__summary {
	margin: 0;
	font-size: var(--ss-fs-body);
	line-height: 1.85;
	letter-spacing: 0.04em;
	color: var(--ss-ink-soft);
}

.ss-course-card__note {
	margin: 0.55rem 0 0;
	font-size: var(--ss-fs-small);
	line-height: 1.8;
	letter-spacing: 0.04em;
	color: var(--ss-muted);
}

.ss-course-card__details {
	margin-top: 1rem;
	padding-top: 0.85rem;
	border-top: 1px solid rgba(212, 184, 130, 0.35);
}

.ss-course-card__toggle {
	cursor: pointer;
	list-style: none;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.14em;
	color: var(--ss-ink);
	font-weight: 500;
	user-select: none;
}

.ss-course-card__toggle::-webkit-details-marker {
	display: none;
}

.ss-course-card__toggle::before {
	content: "＋";
	display: inline-block;
	margin-right: 0.45em;
	color: #b8955a;
	font-weight: 400;
}

.ss-course-card__details[open] .ss-course-card__toggle::before {
	content: "−";
}

.ss-course-card__dishes {
	list-style: none;
	margin: 0.85rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.45rem;
}

.ss-course-card__dishes li {
	position: relative;
	padding-left: 0.95rem;
	font-size: var(--ss-fs-small);
	line-height: 1.7;
	letter-spacing: 0.04em;
	color: var(--ss-ink-soft);
	overflow-wrap: anywhere;
	word-break: break-word;
}

.ss-course-card__dishes li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.65em;
	width: 0.35rem;
	height: 1px;
	background: #b8955a;
}

@media (min-width: 768px) {
	.ss-menu-courses__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem;
	}

	.ss-course-card {
		padding: 1.5rem 1.4rem 1.35rem;
		min-height: 100%;
	}
}

.ss-menu-empty {
	margin: 2rem 0 2.5rem;
	padding: 1.75rem 1.25rem;
	background: var(--ss-sumi);
	border-left: 2px solid var(--ss-enji);
}

.ss-menu-empty__text {
	margin: 0 0 0.75rem;
	font-size: var(--ss-fs-body);
	line-height: var(--ss-lh-body);
	color: var(--ss-ink-soft);
}

.ss-menu-empty__hint {
	margin: 0;
	font-size: var(--ss-fs-caption);
	line-height: var(--ss-lh-body);
	color: var(--ss-muted);
	letter-spacing: 0.04em;
}

/* --------------------------------------------------------------------------
   Drink menu (list)
   -------------------------------------------------------------------------- */

.ss-drink-menu {
	margin-top: 3.25rem;
}

.ss-drink-menu__lead {
	margin: -0.35rem 0 1.75rem;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.06em;
	color: var(--ss-muted);
}

.ss-drink-menu__groups {
	display: grid;
	gap: 2rem;
}

.ss-drink-group__title {
	margin: 0 0 0.75rem;
	padding-bottom: 0.55rem;
	border-bottom: 1px solid rgba(212, 184, 130, 0.45);
	font-family: var(--ss-mincho);
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	color: var(--ss-ink);
}

.ss-drink-group__note {
	margin: -0.35rem 0 0.75rem;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.06em;
	color: var(--ss-muted);
}

.ss-drink-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.ss-drink-list__item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 1rem;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--ss-line);
}

.ss-drink-list__item:last-child {
	border-bottom: 0;
}

.ss-drink-list__name {
	flex: 1 1 auto;
	min-width: 0;
	font-size: var(--ss-fs-small);
	line-height: 1.6;
	letter-spacing: 0.04em;
	color: var(--ss-ink-soft);
	overflow-wrap: anywhere;
}

.ss-drink-list__price {
	flex: 0 0 auto;
	font-size: var(--ss-fs-small);
	font-weight: 500;
	letter-spacing: 0.06em;
	color: var(--ss-enji);
	white-space: nowrap;
}

.ss-drink-list__price--pending {
	font-weight: 400;
	color: var(--ss-muted);
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.08em;
}

.ss-food-menu__featured {
	margin: 0 0 2rem;
	padding: 1.1rem 1rem 0.35rem;
	border: 1px solid rgba(212, 184, 130, 0.45);
	background: rgba(255, 250, 242, 0.04);
}

.ss-food-menu__featured-label {
	margin: 0 0 0.75rem;
}

.ss-food-menu .ss-drink-list__name {
	word-break: keep-all;
	overflow-wrap: anywhere;
}

.ss-food-menu__item-name,
.ss-food-menu__item-detail {
	display: block;
}

.ss-food-menu__item-detail {
	margin-top: 0.15rem;
	font-size: var(--ss-fs-caption);
	line-height: 1.6;
	letter-spacing: 0.04em;
	color: var(--ss-muted);
}

.ss-food-menu__detail-part {
	white-space: nowrap;
}

@media (min-width: 768px) {
	.ss-food-menu__featured .ss-drink-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 1.5rem;
	}
}


@media (min-width: 768px) {
	.ss-drink-menu__groups {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem 2.5rem;
	}
}

@media (min-width: 1024px) {
	.ss-drink-menu__groups {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.ss-food-menu .ss-drink-menu__groups {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.ss-page__cta {
	margin-top: 2.5rem;
}

.ss-page__subtitle {
	font-family: var(--ss-mincho);
	font-size: 1.1rem;
	letter-spacing: 0.12em;
	font-weight: 500;
	margin: 0 0 1rem;
}

.ss-page__info {
	margin-top: 2.75rem;
}

.ss-footer__hours {
	margin: 0.65rem 0 0;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.04em;
	color: var(--ss-muted);
	line-height: var(--ss-lh-body);
}

/* --------------------------------------------------------------------------
   Mobile sticky WEB予約
   -------------------------------------------------------------------------- */

.ss-sticky-reserve {
	display: none;
}

@media (max-width: 767px) {
	.ss-header__cta {
		display: none;
	}

	.ss-sticky-reserve {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		padding: 0.65rem var(--ss-pad) calc(0.65rem + env(safe-area-inset-bottom, 0px));
		background: linear-gradient(to top, rgba(26, 23, 22, 0.94) 55%, rgba(26, 23, 22, 0.72));
		backdrop-filter: blur(8px);
		border-top: 1px solid rgba(250, 248, 246, 0.1);
	}

	.ss-sticky-reserve__btn {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 2.85rem;
		padding: 0.7rem 1rem;
		background: var(--ss-enji);
		color: var(--ss-paper);
		border: 1px solid var(--ss-enji);
		font-size: var(--ss-fs-small);
		font-weight: 500;
		letter-spacing: 0.18em;
		transition: background 0.25s var(--ss-ease), opacity 0.25s var(--ss-ease);
	}

	.ss-sticky-reserve__btn:hover,
	.ss-sticky-reserve__btn:focus-visible {
		background: var(--ss-enji-light);
		border-color: var(--ss-enji-light);
	}

	body.ss-has-sticky-reserve {
		padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px));
	}
}

/* --------------------------------------------------------------------------
   Desktop
   -------------------------------------------------------------------------- */

@media (min-width: 768px) {
	.ss-header__actions {
		gap: 0.75rem;
	}

	.ss-header__instagram svg {
		width: 1.375rem; /* ~22px (PC 20–24px) */
		height: 1.375rem;
	}

	.ss-header__inner {
		padding: 0.95rem clamp(2rem, 4vw, 3.5rem);
		min-height: 5.25rem;
	}

	.ss-hero__logo-wrap {
		/* PC: ~1.07× — was clamp(16.25rem, 28vw, 23.75rem) = 260–380px */
		width: clamp(17.5rem, 29.5vw, 25.5rem);
		padding: 0;
		background: transparent;
		box-shadow: none;
	}

	.ss-hero__open {
		margin-bottom: clamp(0.45rem, 1vw, 0.7rem);
		padding: 0.65rem 1.05rem;
		border-color: rgba(212, 184, 130, 0.62);
	}

	.ss-hero__open-date {
		font-size: clamp(1.05rem, 0.9rem + 0.4vw, 1.22rem);
		letter-spacing: 0.32em;
	}

	.ss-hero__open-text {
		font-size: clamp(0.92rem, 0.8rem + 0.3vw, 1.05rem);
		letter-spacing: 0.38em;
	}

	.ss-hero__content {
		gap: clamp(1rem, 1.6vw, 1.5rem);
		width: min(calc(100% - clamp(2.5rem, 7vw, 5.5rem) - 2rem), 28.75rem);
		margin-inline-start: clamp(2.5rem, 7vw, 5.5rem);
		padding-top: clamp(6.25rem, 5.25rem + 2.2vw, 8rem);
		padding-right: 2rem;
		padding-bottom: clamp(3.5rem, 4vw, 5rem);
		padding-left: 0;
	}

	.ss-hero__catch {
		font-size: clamp(1.2rem, 0.95rem + 0.7vw, 1.5rem);
		letter-spacing: 0.16em;
		line-height: 2;
	}

	.ss-hero__sub {
		font-size: clamp(0.85rem, 0.78rem + 0.2vw, 0.95rem);
		line-height: 2.15;
		max-width: 24em;
	}

	.ss-hero__slide[data-pos="space"] img {
		object-position: center 45%;
	}

	.ss-hero__slide[data-pos="food"] img {
		object-position: center 40%;
	}

	.ss-hero__slide[data-pos="craft"] img {
		object-position: 40% 42%;
	}

	.ss-hero__actions {
		flex-direction: row;
		flex-wrap: wrap;
		max-width: none;
		width: auto;
	}

	.ss-hero__actions .ss-btn {
		min-width: 10.5rem;
	}

	.ss-space__layout {
		grid-template-columns: 1fr 1fr;
		gap: 4rem;
	}

	.ss-meat__layout,
	.ss-tare__layout {
		grid-template-columns: 1fr 1fr;
		gap: 4rem;
	}

	.ss-appeal__points {
		grid-template-columns: repeat(3, 1fr);
		gap: 0;
	}

	.ss-appeal__points li {
		padding: 0 1.5rem 0 0;
		border-top: 0;
		border-left: 1px solid rgba(250, 248, 246, 0.16);
		padding-left: 1.5rem;
	}

	.ss-appeal__points li:first-child {
		border-left: 0;
		padding-left: 0;
	}

	.ss-appeal__points li:last-child {
		border-bottom: 0;
		padding-right: 0;
	}

	.ss-story__layout {
		grid-template-columns: 0.78fr 1.22fr;
		gap: 4.5rem;
		align-items: center;
	}

	.ss-story__portrait {
		margin-inline: 0;
		max-width: 20rem;
	}

	.ss-media--portrait {
		object-position: center 10%;
	}

	.ss-features {
		grid-template-columns: repeat(3, 1fr);
		gap: 2rem;
	}

	.ss-menu-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 2rem 1.75rem;
	}

	.ss-menu-card {
		border-bottom: 0;
		padding-bottom: 0;
	}

	.ss-lead {
		font-size: var(--ss-fs-body-md);
	}

	.ss-story__body p {
		font-size: var(--ss-fs-body-md);
		line-height: 1.85;
	}

	.ss-feature p,
	.ss-concept__points span {
		font-size: var(--ss-fs-body-md);
	}
}

@media (min-width: 1024px) {
	.ss-space__media {
		max-width: none;
	}

	.ss-menu-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Prefers reduced motion */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.ss-hero__slide {
		transition: none;
	}
	.ss-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.ss-hero__scroll::after { animation: none; }
}

/* --------------------------------------------------------------------------
   Hours strip (below hero)
   -------------------------------------------------------------------------- */

.ss-hours-strip {
	background: var(--ss-ink);
	color: var(--ss-paper);
	padding: 0.85rem var(--ss-pad);
	border-bottom: 1px solid rgba(250, 248, 246, 0.08);
}

.ss-hours-strip__inner {
	width: min(100%, var(--ss-max));
	margin-inline: auto;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 0.35rem 0.55rem;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.06em;
	line-height: 1.6;
	text-align: center;
}

.ss-hours-strip__label {
	font-family: var(--ss-mincho);
	color: rgba(250, 248, 246, 0.62);
	font-weight: 400;
}

.ss-hours-strip__value {
	color: rgba(250, 248, 246, 0.92);
	font-weight: 400;
}

.ss-hours-strip__lo {
	flex-basis: 100%;
	font-size: 0.95em;
	letter-spacing: 0.06em;
	color: rgba(250, 248, 246, 0.82);
}

.ss-hours-strip__sep {
	color: rgba(250, 248, 246, 0.35);
}

/* --------------------------------------------------------------------------
   Sticky mobile WEB予約 CTA
   -------------------------------------------------------------------------- */

.ss-sticky-reserve {
	display: none;
}

@media (max-width: 767px) {
	body.ss-has-sticky-reserve {
		padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px));
	}

	body.ss-has-sticky-reserve .ss-footer {
		padding-bottom: 1.5rem;
	}

	.ss-sticky-reserve {
		display: block;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
		background: linear-gradient(to top, rgba(26, 23, 22, 0.92) 55%, rgba(26, 23, 22, 0.55) 100%);
		backdrop-filter: blur(8px);
		-webkit-backdrop-filter: blur(8px);
	}

	.ss-sticky-reserve__btn {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		max-width: 22rem;
		margin-inline: auto;
		min-height: 2.85rem;
		padding: 0.7rem 1.25rem;
		background: var(--ss-enji);
		color: var(--ss-paper);
		font-family: var(--ss-mincho);
		font-size: 0.95rem;
		font-weight: 500;
		letter-spacing: 0.18em;
		border: 1px solid rgba(250, 248, 246, 0.12);
		transition: background 0.2s var(--ss-ease), opacity 0.2s var(--ss-ease);
	}

	.ss-sticky-reserve__btn:hover,
	.ss-sticky-reserve__btn:focus-visible {
		background: var(--ss-enji-light);
		outline: none;
	}

	body.admin-bar .ss-sticky-reserve {
		/* keep above content; admin bar is top */
	}
}

/* --------------------------------------------------------------------------
   Menu cards / grid
   -------------------------------------------------------------------------- */

.ss-menu-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	margin: 2rem 0 0;
}

.ss-menu-grid--home {
	margin-bottom: 0.5rem;
}

@media (min-width: 640px) {
	.ss-menu-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 1.75rem 1.5rem;
	}
}

@media (min-width: 960px) {
	.ss-menu-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.ss-menu-card {
	display: flex;
	flex-direction: column;
	background: transparent;
}

.ss-menu-card__media {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--ss-paper-deep);
	margin-bottom: 0.9rem;
	border-radius: 2px;
}

.ss-menu-card__media img,
.ss-menu-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ss-media--menu-wagyu {
	object-position: center 48%;
}

.ss-media--menu-marbled {
	object-position: center 42%;
}

.ss-media--menu-tongue {
	object-position: center 46%;
}

.ss-media--menu-kimchi {
	object-position: center 50%;
}

.ss-media--menu-sides {
	object-position: center 45%;
}

.ss-media--menu-wagyu-01 {
	object-position: center 48%;
}

.ss-media--menu-wagyu-02 {
	object-position: 52% 45%;
}

.ss-media--menu-seasoned {
	object-position: center 42%;
}

.ss-media--menu-hormone {
	object-position: center 45%;
}

.ss-media--menu-liver {
	object-position: center 40%;
}

.ss-media--menu-soup {
	object-position: center 45%;
}

.ss-media--menu-tsuboiri {
	object-position: center 42%;
}

@media (max-width: 767px) {
	.ss-media--menu-wagyu {
		object-position: 48% 45%;
	}

	.ss-media--menu-marbled {
		object-position: 50% 38%;
	}

	.ss-media--menu-tongue {
		object-position: 50% 42%;
	}

	.ss-media--menu-sides {
		object-position: 48% 42%;
	}

	.ss-media--menu-wagyu-01 {
		object-position: 48% 45%;
	}

	.ss-media--menu-wagyu-02 {
		object-position: 50% 42%;
	}

	.ss-media--menu-seasoned {
		object-position: 50% 40%;
	}

	.ss-media--menu-hormone {
		object-position: 50% 42%;
	}

	.ss-media--menu-liver {
		object-position: 50% 38%;
	}

	.ss-media--menu-soup {
		object-position: 50% 42%;
	}

	.ss-media--menu-tsuboiri {
		object-position: 50% 40%;
	}
}

.ss-menu-card__name {
	font-family: var(--ss-mincho);
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	margin: 0;
	color: var(--ss-ink);
	min-height: 3em;
}

.ss-menu-card__price {
	margin: 0;
	font-size: var(--ss-fs-small);
	letter-spacing: 0.08em;
	color: var(--ss-enji);
	font-weight: 500;
	line-height: 1.5;
	min-height: 1.5em;
}

.ss-menu-card__price--empty {
	visibility: hidden;
	color: transparent;
}

.ss-menu-card__desc {
	margin: 0;
	font-size: var(--ss-fs-small);
	line-height: var(--ss-lh-tight);
	color: var(--ss-ink-soft);
	font-weight: 400;
}

.ss-menu-section {
	margin-top: 2.5rem;
}

.ss-menu-section__title {
	font-family: var(--ss-mincho);
	font-size: 1.1rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	margin: 0 0 0.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--ss-line);
}

.ss-menu-empty {
	margin: 2rem 0;
	padding: 1.5rem 0;
}

.ss-menu-empty__text {
	margin: 0 0 1rem;
	color: var(--ss-muted);
	font-size: var(--ss-fs-body);
	line-height: var(--ss-lh-body);
}

/* --------------------------------------------------------------------------
   Rooms page — 空間・個室
   -------------------------------------------------------------------------- */

.ss-page--rooms .ss-divider {
	margin-bottom: 1.25rem;
}

.ss-page--rooms .ss-page__lead {
	margin-bottom: 2.5rem;
}

.ss-rooms-block {
	display: grid;
	gap: 1.5rem;
	margin: 0 0 3.25rem;
}

.ss-rooms-block__media {
	margin: 0;
	overflow: hidden;
	background: var(--ss-paper-deep);
	/* 縦長写真を大きめに見せつつ、重要部が切れにくい比率 */
	aspect-ratio: 3 / 4;
	max-height: min(78svh, 42rem);
}

.ss-rooms-block__media picture {
	display: contents;
}

.ss-rooms-block__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.ss-media--room-private {
	/* 個室テーブルと奥の壁を中央に */
	object-position: center 46%;
}

.ss-media--room-corridor {
	/* 通路の木格子と床の光を残す */
	object-position: center 58%;
}

.ss-rooms-block__heading {
	margin: 0 0 1rem;
	font-family: var(--ss-mincho);
	font-size: clamp(1.15rem, 4vw, 1.4rem);
	font-weight: 500;
	letter-spacing: 0.1em;
	line-height: 1.7;
	color: var(--ss-ink);
}

.ss-rooms-block__body p {
	margin: 0 0 0.85rem;
	font-size: var(--ss-fs-body);
	line-height: 1.9;
	letter-spacing: 0.04em;
	color: var(--ss-ink-soft);
}

.ss-rooms-block__body p:last-child {
	margin-bottom: 0;
}

@media (min-width: 768px) {
	.ss-rooms-block {
		grid-template-columns: 1.05fr 0.95fr;
		gap: 2.75rem;
		align-items: center;
		margin-bottom: 4rem;
	}

	.ss-rooms-block--alt {
		grid-template-columns: 0.95fr 1.05fr;
	}

	.ss-rooms-block--alt .ss-rooms-block__media {
		order: 2;
	}

	.ss-rooms-block--alt .ss-rooms-block__copy {
		order: 1;
	}

	.ss-rooms-block__media {
		aspect-ratio: 3 / 4;
		max-height: min(72svh, 36rem);
	}

	.ss-media--room-private {
		object-position: center 44%;
	}

	.ss-media--room-corridor {
		object-position: center 55%;
	}

	.ss-rooms-block__body p {
		font-size: var(--ss-fs-body-md);
	}
}

@media (max-width: 767px) {
	.ss-media--room-private {
		object-position: center 48%;
	}

	.ss-media--room-corridor {
		object-position: center 60%;
	}
}

/* --------------------------------------------------------------------------
   Reserve / menu page extras
   -------------------------------------------------------------------------- */

.ss-page--reserve .ss-divider,
.ss-page--menu .ss-divider {
	margin-bottom: 1.5rem;
}

.ss-page--menu .ss-menu-section--pickup {
	margin-top: 0;
}

.ss-page--reserve .ss-reserve-cta--menu {
	margin: 0 0 2.75rem;
	max-width: 22rem;
}

.ss-page--reserve .ss-reserve-info {
	margin-top: 0;
}

.ss-reserve-menu-note {
	margin: 0;
	font-family: var(--ss-mincho);
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.7;
	color: var(--ss-ink);
}

.ss-inline-link {
	color: var(--ss-enji);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
	transition: color 0.25s var(--ss-ease), opacity 0.25s var(--ss-ease);
}

.ss-inline-link:hover,
.ss-inline-link:focus-visible {
	color: var(--ss-enji-light);
	opacity: 0.92;
}

.ss-reserve-cta {
	margin: 0;
	max-width: none;
}

.ss-reserve-cta--compact {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--ss-line);
	max-width: 20rem;
}

.ss-reserve-cta__label {
	margin: 0 0 0.85rem;
	font-family: var(--ss-mincho);
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	color: var(--ss-ink);
	line-height: 1.5;
}

.ss-page--reserve .ss-reserve-cta .ss-btn {
	min-height: 3rem;
	font-size: var(--ss-fs-small);
	letter-spacing: 0.14em;
}

@media (max-width: 767px) {
	.ss-page--reserve .ss-reserve-cta--menu {
		max-width: none;
		margin-bottom: 2.5rem;
	}

	.ss-page--reserve .ss-reserve-cta .ss-btn {
		min-height: 3.15rem;
	}
}

.ss-reserve-cta__pending {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 2.85rem;
	padding: 0.75rem 1rem;
	border: 1px solid var(--ss-line);
	font-family: var(--ss-mincho);
	font-size: 0.95rem;
	letter-spacing: 0.14em;
	color: var(--ss-ink-soft);
	background: var(--ss-sumi);
}

.ss-reserve-info__title {
	font-family: var(--ss-mincho);
	font-size: 1.05rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	margin: 0 0 1rem;
}

.ss-page--reserve .ss-btn-note,
.ss-page--menu .ss-btn-note {
	margin-top: 0.85rem;
	color: var(--ss-muted);
}

@media (min-width: 768px) {
	.ss-hours-strip__inner {
		font-size: var(--ss-fs-small);
		gap: 0.45rem 0.75rem;
	}

	.ss-hours-strip__lo {
		flex-basis: auto;
	}
}

/* Windows ノート等の横幅あり・高さ不足。スマホ幅には当てない（アドレスバー変動で発火しない） */
@media (min-width: 768px) and (max-height: 860px) {
	.ss-hero__content {
		gap: 0.55rem;
		padding-top: 5.5rem;
		padding-bottom: 2.25rem;
	}

	.ss-hero__logo-wrap {
		width: clamp(14.5rem, 22vw, 18.75rem);
	}

	.ss-hero__open {
		margin-bottom: 0.25rem;
		padding: 0.45rem 0.85rem;
	}

	.ss-hero__catch {
		padding-top: 0;
		font-size: clamp(1.05rem, 0.9rem + 0.4vw, 1.25rem);
		line-height: 1.75;
	}

	.ss-hero__sub {
		display: none;
	}

	.ss-hero__actions {
		margin-top: 0.1rem;
	}
}

/* 横長のごく低い画面のみ縮小（Windowsノートの 1366×768 には当てない） */
@media (max-height: 480px) and (orientation: landscape) {
	.ss-hero__content {
		gap: 0.55rem;
		padding-top: 4.5rem;
		padding-bottom: 2rem;
	}

	.ss-hero__logo-wrap {
		width: min(100%, 14rem);
		background: transparent;
		box-shadow: none;
	}

	.ss-hero__sub,
	.ss-hero__scroll {
		display: none;
	}
}

/* --------------------------------------------------------------------------
   News / お知らせ
   -------------------------------------------------------------------------- */

.ss-section--news {
	padding-block: clamp(3.5rem, 10vw, 5.5rem);
}

.ss-news-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--ss-line);
}

.ss-news-list__item {
	margin: 0;
}

.ss-news-list__link {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 0.85rem;
	row-gap: 0.35rem;
	padding: 1.05rem 0.1rem;
	border-bottom: 1px solid var(--ss-line);
}

.ss-news-list__text {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	column-gap: 0.85rem;
	row-gap: 0.35rem;
	min-width: 0;
	flex: 1 1 12rem;
}

.ss-news-list__item--has-media .ss-news-list__link {
	flex-wrap: nowrap;
	align-items: center;
	gap: 0.9rem 1rem;
}

.ss-news-list__media {
	flex: 0 0 5.25rem;
	width: 5.25rem;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--ss-sumi);
}

.ss-news-list__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ss-news-list__item--has-media .ss-news-list__title {
	flex: 1 1 100%;
}

.ss-news-list__date {
	flex: 0 0 auto;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.12em;
	color: var(--ss-muted);
	font-variant-numeric: tabular-nums;
	font-weight: 400;
}

.ss-news-list__new {
	flex: 0 0 auto;
	display: inline-block;
	font-size: 0.625rem;
	letter-spacing: 0.16em;
	line-height: 1;
	color: var(--ss-enji);
	border: 1px solid var(--ss-enji);
	padding: 0.22em 0.5em 0.18em;
	font-weight: 500;
}

.ss-news-list__title {
	flex: 1 1 10rem;
	min-width: 0;
	font-family: var(--ss-mincho);
	font-size: var(--ss-fs-body);
	letter-spacing: 0.06em;
	line-height: 1.7;
	color: var(--ss-ink);
	font-weight: 500;
}

.ss-news-list__link:hover .ss-news-list__title {
	color: var(--ss-enji);
}

.ss-news-list__empty {
	margin: 0;
	padding: 0.25rem 0 0.5rem;
	color: var(--ss-muted);
	font-size: var(--ss-fs-body);
	letter-spacing: 0.04em;
}

.ss-page--news .ss-news-list {
	margin-top: 0.25rem;
}

.ss-news-article__header {
	margin-bottom: 0.25rem;
}

.ss-news-article__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.75rem;
	margin: 0 0 0.85rem;
}

.ss-news-article__figure {
	margin: 0 0 1.75rem;
	background: var(--ss-sumi);
	overflow: hidden;
}

.ss-news-article__img {
	width: 100%;
	height: auto;
	max-height: 28rem;
	object-fit: cover;
	aspect-ratio: 16 / 9;
}

.ss-news-article__body {
	margin-top: 0.15rem;
	font-size: var(--ss-fs-body);
	line-height: var(--ss-lh-body);
	color: var(--ss-ink-soft);
	letter-spacing: 0.03em;
}

.ss-news-article__body > *:first-child {
	margin-top: 0;
}

.ss-news-article__body p,
.ss-news-article__body ul,
.ss-news-article__body ol {
	margin: 0 0 1.15em;
}

.ss-news-article__body img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0.35rem auto 1.5rem;
}

@media (min-width: 768px) {
	.ss-news-article__body img {
		max-width: 26rem;
	}
}

.ss-news-article__body .ss-nowrap {
	white-space: nowrap;
}

.ss-news-article__body a {
	color: var(--ss-enji);
	border-bottom: 1px solid var(--ss-enji-mid);
}

.ss-news-article__body a:hover {
	border-bottom-color: var(--ss-enji);
}

.ss-news-article__body .ss-news-article__cta {
	margin: 1.75rem 0 1.5rem;
	text-align: center;
}

.ss-news-article__body a.ss-btn--primary {
	min-width: min(16rem, 100%);
	border-color: var(--ss-enji);
	color: var(--ss-paper);
}

.ss-news-article__body a.ss-btn--primary:hover {
	border-color: var(--ss-enji-light);
	color: var(--ss-paper);
}

.ss-section-link--follow {
	margin-top: 0.85rem;
}

.ss-page--news .navigation.pagination {
	margin: 2rem 0 0;
}

.ss-page--news .navigation.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem 0.85rem;
	font-size: var(--ss-fs-caption);
	letter-spacing: 0.1em;
}

.ss-page--news .navigation.pagination .page-numbers {
	color: var(--ss-muted);
	padding: 0.15rem 0.1rem;
	border-bottom: 1px solid transparent;
}

.ss-page--news .navigation.pagination .page-numbers.current,
.ss-page--news .navigation.pagination a.page-numbers:hover {
	color: var(--ss-enji);
	border-bottom-color: var(--ss-enji);
}

@media (min-width: 768px) {
	.ss-news-list__link {
		flex-wrap: nowrap;
		padding: 1.15rem 0.15rem;
		column-gap: 1.1rem;
	}

	.ss-news-list__date {
		flex: 0 0 6.75rem;
	}

	.ss-news-list__title {
		flex: 1 1 auto;
	}

	.ss-news-list__item--has-media .ss-news-list__media {
		flex-basis: 6.75rem;
		width: 6.75rem;
	}

	.ss-news-list__item--has-media .ss-news-list__date {
		flex: 0 0 auto;
	}
}

