@charset "UTF-8";

/* ==============================================================
   AKATSUKI ANIMAL HOSPITAL — TOP page (Renewal 2026)
   White base. Vertical Mincho catch copy. Right-top rounded photo.
   Self-scoped under .akatsuki2026 to avoid clashing with legacy theme.
   ============================================================== */

/* ---------- Reset (scoped) ---------- */
body.akatsuki2026,
body.akatsuki2026 *,
body.akatsuki2026 *::before,
body.akatsuki2026 *::after { box-sizing: border-box; }
body.akatsuki2026 { margin: 0; padding: 0; }
/* Margin/padding reset — TOP page only.
   On sub-pages (.akatsuki2026--sub) the legacy css/layout.css owns content
   spacing; excluding them here stops this reset (e.g. li{margin:0}) from
   collapsing legacy blocks together. Chrome margins on sub-pages are still
   zeroed by layout.css's own global reset, so the sidebar/footer stay tidy. */
body.akatsuki2026:not(.akatsuki2026--sub) h1, body.akatsuki2026:not(.akatsuki2026--sub) h2, body.akatsuki2026:not(.akatsuki2026--sub) h3,
body.akatsuki2026:not(.akatsuki2026--sub) h4, body.akatsuki2026:not(.akatsuki2026--sub) p,
body.akatsuki2026:not(.akatsuki2026--sub) ul, body.akatsuki2026:not(.akatsuki2026--sub) li,
body.akatsuki2026:not(.akatsuki2026--sub) figure { margin: 0; padding: 0; }
body.akatsuki2026 ul { list-style: none; }
body.akatsuki2026 img, body.akatsuki2026 svg { display: block; max-width: 100%; }
body.akatsuki2026 a { color: inherit; text-decoration: none; }
body.akatsuki2026 button {
	font: inherit; background: none; border: none; cursor: pointer; color: inherit; padding: 0;
}

/* ---------- Tokens ---------- */
.akatsuki2026 {
	--bg:        #FFFFFF;
	--bg-soft:   #FAF8F4;
	--ink:       #1F1A15;
	--ink-mid:   #4E443B;
	--ink-mute:  #948578;
	--sun:       #C97E25;
	--sun-deep:  #A4641C;
	--sun-soft:  #F6E9D2;
	--line:      #E6DFD2;
	--line-soft: #F0EBE0;
	--white:     #FFFFFF;

	--font-ja-serif: "Shippori Mincho", "Yu Mincho", "游明朝", "Hiragino Mincho ProN", serif;
	--font-ja-sans:  "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, sans-serif;
	--font-en-display: "Cormorant Garamond", "Times New Roman", serif;
	--font-en-mono:    "Jost", "Yu Gothic", sans-serif;

	--container: 1440px;
	--header-h:  92px;

	/* Fixed left sidebar (re-loop style) */
	--side-w:    104px;          /* desktop sidebar width */
	--topbar-h:  60px;           /* mobile top bar height */
	--content-w: calc(100vw - var(--side-w)); /* usable width right of sidebar */

	--ease-out:  cubic-bezier(0.22, 0.61, 0.36, 1);

	--radius-hero: 96px; /* top-right of hero photo */
}

/* ---------- Body base ---------- */
body.akatsuki2026 {
	font-family: var(--font-ja-sans);
	font-weight: 500;
	color: var(--ink);
	background: var(--bg);
	line-height: 1.95;
	letter-spacing: 0.04em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
body.akatsuki2026.is-loading {
	overflow: hidden;
}

/* =========================================
   PRELOADER (logo-mark "sunrise" animation)
   ========================================= */
.akatsuki2026 .ah-loader {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: #FAF6EE;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity .9s cubic-bezier(.22,.61,.36,1);
}
.akatsuki2026 .ah-loader.is-hidden {
	opacity: 0;
	pointer-events: none;
}
.akatsuki2026 .ah-loader__mark {
	width: clamp(120px, 14vw, 180px);
	height: auto;
	overflow: visible;
	transform-origin: center center;
	animation: ah-loader-out 1s cubic-bezier(.4,0,.2,1) 3.0s forwards;
}
@keyframes ah-loader-out {
	0%   { transform: translateY(0) scale(1);     opacity: 1; }
	60%  { transform: translateY(-12px) scale(1); opacity: 1; }
	100% { transform: translateY(-32px) scale(.96); opacity: 0; }
}

/* Horizon line draws from center outward */
.akatsuki2026 .ah-loader__horizon {
	transform-box: fill-box;
	transform-origin: 50% 50%;
	transform: scaleX(0);
	opacity: 0;
	animation: ah-loader-horizon 1.2s cubic-bezier(.22,.61,.36,1) .1s forwards;
}
@keyframes ah-loader-horizon {
	0%   { transform: scaleX(0); opacity: 0; }
	30%  { opacity: 1; }
	100% { transform: scaleX(1); opacity: 0.85; }
}

/* Sun rises from below the horizon */
.akatsuki2026 .ah-loader__sun {
	transform-box: fill-box;
	transform-origin: center bottom;
	opacity: 0;
	transform: translateY(60%) scale(.7);
	animation: ah-loader-sun 1.4s cubic-bezier(.16,.84,.3,1) .55s forwards;
}
@keyframes ah-loader-sun {
	0%   { opacity: 0; transform: translateY(60%) scale(.7); }
	50%  { opacity: 1; }
	100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* Big halo arch grows from the sun */
.akatsuki2026 .ah-loader__arch {
	transform-box: fill-box;
	transform-origin: 50% 100%;
	opacity: 0;
	transform: scale(.55);
	animation: ah-loader-arch 1.0s cubic-bezier(.22,.61,.36,1) 1.3s forwards;
}
@keyframes ah-loader-arch {
	0%   { opacity: 0; transform: scale(.55); }
	60%  { opacity: 1; }
	100% { opacity: 1; transform: scale(1); }
}

/* Side rays fan outward */
.akatsuki2026 .ah-loader__sideL {
	transform-box: fill-box;
	transform-origin: 100% 100%;
	opacity: 0;
	transform: translateX(18%) translateY(-6%) scale(.6);
	animation: ah-loader-sideL .9s cubic-bezier(.22,.61,.36,1) 1.85s forwards;
}
@keyframes ah-loader-sideL {
	0%   { opacity: 0; transform: translateX(18%) translateY(-6%) scale(.6); }
	100% { opacity: 1; transform: translateX(0) translateY(0) scale(1); }
}
.akatsuki2026 .ah-loader__sideR {
	transform-box: fill-box;
	transform-origin: 0% 100%;
	opacity: 0;
	transform: translateX(-18%) translateY(-6%) scale(.6);
	animation: ah-loader-sideR .9s cubic-bezier(.22,.61,.36,1) 1.85s forwards;
}
@keyframes ah-loader-sideR {
	0%   { opacity: 0; transform: translateX(-18%) translateY(-6%) scale(.6); }
	100% { opacity: 1; transform: translateX(0) translateY(0) scale(1); }
}

/* Reduced motion: skip the show */
@media (prefers-reduced-motion: reduce) {
	.akatsuki2026 .ah-loader {
		display: none;
	}
}

/* =========================================
   CANVAS (content offset right of fixed sidebar)
   ========================================= */
.akatsuki2026 .ah-canvas {
	position: relative;
	margin-left: var(--side-w);
}

/* =========================================
   SIDEBAR (fixed left, vertical menu — re-loop style)
   ========================================= */
.akatsuki2026 .ah-side {
	position: fixed;
	top: 0;
	left: 0;
	width: var(--side-w);
	height: 100vh;
	height: 100dvh;
	z-index: 40;
	background: var(--white);
	border-right: 1px solid var(--line);
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 26px 0 28px;
}

/* ----- Top: logo mark (+ mobile toggle) ----- */
.akatsuki2026 .ah-side__top {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
}
.akatsuki2026 .ah-side__mark {
	display: block;
	width: 42px;
	color: var(--sun);
	transition: opacity .25s ease;
}
.akatsuki2026 .ah-side__mark svg { width: 100%; height: auto; display: block; }
.akatsuki2026 .ah-side__mark:hover { opacity: .7; }
.akatsuki2026 .ah-side__toggle {
	display: flex; /* interactive on all viewports — opens the overlay menu */
	pointer-events: auto;
	cursor: pointer;
	width: 42px;
	height: 42px;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 6px;
}
.akatsuki2026 .ah-side__toggle span {
	display: block;
	width: 22px;
	height: 1px;
	background: var(--ink);
	transition: transform .3s var(--ease-out), opacity .2s ease;
}

/* ----- Center: vertical menu ----- */
.akatsuki2026 .ah-side__nav {
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow-y: auto;
	scrollbar-width: none;
}
.akatsuki2026 .ah-side__nav::-webkit-scrollbar { display: none; }
.akatsuki2026 .ah-side__menu {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(14px, 2.2vh, 30px);
	padding: 20px 0;
}
.akatsuki2026 .ah-side__menu a {
	writing-mode: vertical-rl;
	color: var(--ink);
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: 15px;
	letter-spacing: 0.16em;
	transition: color .25s ease;
}
.akatsuki2026 .ah-side__menu a:hover { color: var(--sun); }
.akatsuki2026 .ah-side__en { display: none; } /* kept in markup, hidden in sidebar */

/* ----- WEB予約 + TEL : fixed to the top-right of the viewport (follows on scroll) ----- */
.akatsuki2026 .ah-side__foot {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 45;
	display: flex;
	flex-direction: row-reverse; /* WEB予約 (first child) sits at the far right */
	align-items: stretch;
	gap: 0;
}
.akatsuki2026 .ah-side__reserve {
	writing-mode: horizontal-tb;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 58px;
	padding: 0 26px;
	background: var(--sun);
	color: var(--white);
	font-size: 14px;
	letter-spacing: 0.18em;
	transition: background-color .3s ease;
}
.akatsuki2026 .ah-side__reserve:hover { background: var(--sun-deep); } /* #3600 hover 黒→やわらかい深いキャラメル(--sun-deep) */
.akatsuki2026 .ah-side__tel {
	writing-mode: horizontal-tb;
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	gap: 9px;
	height: 58px;
	padding: 0 22px;
	background: var(--white);
	border-left: 1px solid var(--line-soft);
}
.akatsuki2026 .ah-side__tel-label {
	font-family: var(--font-en-mono);
	font-size: 10px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--ink-mute);
}
.akatsuki2026 .ah-side__tel-num {
	font-family: var(--font-en-mono);
	font-weight: 500;
	font-size: 19px;
	letter-spacing: 0.04em;
	color: var(--ink);
}

/* ----- Site logo that slides in from top and follows on scroll ----- */
.akatsuki2026 .ah-sitelogo {
	position: fixed;
	top: 16px;
	left: calc(var(--side-w) + clamp(20px, 3vw, 48px));
	z-index: 35;
	opacity: 0;
	transform: translateY(-18px);
	pointer-events: none;
	transition: opacity .5s var(--ease-out), transform .5s var(--ease-out);
}
.akatsuki2026.is-scrolled .ah-sitelogo {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.akatsuki2026 .ah-sitelogo img {
	width: clamp(150px, 14vw, 200px);
	height: auto;
}

/* ----- Mobile menu overlay backdrop ----- */
.akatsuki2026 .ah-overlay {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 38;
	background: rgba(31, 26, 21, 0.45);
	opacity: 0;
	transition: opacity .35s var(--ease-out);
}

/* =========================================
   HERO (photo on left + right whitespace with vertical catch copy)
   ========================================= */
.akatsuki2026 .ah-hero {
	position: relative;
	background: var(--bg);
	overflow: hidden;
	display: grid;
	grid-template-columns: minmax(300px, 38%) 1fr;
	column-gap: 0;
	min-height: 100vh;
	min-height: 100dvh;
	padding: 30px 0;
}

/* ---------- Left: photo ---------- */
.akatsuki2026 .ah-hero__media {
	position: relative;
	overflow: hidden;
	background: #EEE6DA;
	border-bottom-left-radius: clamp(40px, 6vw, 96px);
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 1.4s var(--ease-out), transform 1.4s var(--ease-out);
}
.akatsuki2026 .ah-hero__media.is-revealed {
	opacity: 1;
	transform: translateY(0);
}
/* ----- Slideshow (fade-in/fade-out, slow Ken-Burns zoom) ----- */
.akatsuki2026 .ah-hero__slides {
	position: absolute;
	inset: 0;
	overflow: hidden;
}
.akatsuki2026 .ah-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 2.4s var(--ease-out);
	will-change: opacity;
}
.akatsuki2026 .ah-hero__slide.is-active {
	opacity: 1;
	z-index: 1;
}
.akatsuki2026 .ah-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 40%;
	display: block;
	transform: scale(1.0);
}
.akatsuki2026.is-ready .ah-hero__slide.is-active .ah-hero__img {
	animation: ah-hero-kenburns 9s ease-out forwards;
}
@keyframes ah-hero-kenburns {
	0%   { transform: scale(1.0); }
	100% { transform: scale(1.06); }
}

/* ---------- Left: lead column (tagline top / logo + news bottom) ---------- */
.akatsuki2026 .ah-hero__lead {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 40px;
	padding: clamp(40px, 5vw, 76px) clamp(28px, 3vw, 56px) clamp(40px, 4vw, 60px) clamp(36px, 4.5vw, 80px);
}
.akatsuki2026 .ah-hero__tagline {
	font-family: var(--font-en-mono);
	font-weight: 400;
	font-size: clamp(15px, 1.15vw, 18px);
	line-height: 1.95;
	letter-spacing: 0.05em;
	color: var(--ink-mid);
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 1.1s var(--ease-out) .2s, transform 1.1s var(--ease-out) .2s;
}
.akatsuki2026 .ah-hero__tagline.is-revealed { opacity: 1; transform: none; }

.akatsuki2026 .ah-hero__lead-foot {
	display: flex;
	flex-direction: column;
	gap: clamp(26px, 3vw, 42px);
}
.akatsuki2026 .ah-hero__logo {
	display: block;
	margin-top: 10px;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 1.1s var(--ease-out) .35s, transform 1.1s var(--ease-out) .35s;
}
.akatsuki2026 .ah-hero__logo.is-revealed { opacity: 1; transform: none; }
.akatsuki2026 .ah-hero__logo img {
	width: clamp(220px, 24vw, 360px);
	height: auto;
}

/* Catch copy — serif heading in the lead column, above the logo */
.akatsuki2026 .ah-hero__title {
	margin: 0;
	font-family: var(--font-ja-serif);
	font-weight: 600;
	font-size: clamp(26px, 2.5vw, 36px);
	line-height: 1.9;
	letter-spacing: 0.14em;
	color: var(--ink);
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 1.2s var(--ease-out) .45s, transform 1.2s var(--ease-out) .45s;
}
.akatsuki2026 .ah-hero__title.is-revealed { opacity: 1; transform: none; }

/* Location label (bottom-right of photo) */
.akatsuki2026 .ah-hero__place {
	position: absolute;
	right: clamp(18px, 2vw, 34px);
	bottom: clamp(26px, 3.4vh, 54px);
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 11px;
}
.akatsuki2026 .ah-hero__place span {
	position: relative;
	padding-right: 30px;
	font-family: var(--font-en-mono);
	font-size: 13px;
	letter-spacing: 0.18em;
	color: var(--white);
}
.akatsuki2026 .ah-hero__place span::after {
	content: "";
	position: absolute;
	right: 0; top: 50%;
	width: 20px; height: 1px;
	background: rgba(255,255,255,0.75);
}

/* ---------- News ticker (bottom of lead column: INFORMATION tag + date + title) ---------- */
.akatsuki2026 .ah-hero__news {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 1.1s var(--ease-out) .5s, transform 1.1s var(--ease-out) .5s;
}
.akatsuki2026 .ah-hero__news.is-revealed { opacity: 1; transform: none; }
.akatsuki2026 .ah-hero__news-label {
	flex: 0 0 auto;
	padding: 7px 13px;
	background: var(--sun);
	color: var(--white);
	font-family: var(--font-en-mono);
	font-size: 10px;
	letter-spacing: 0.26em;
	text-transform: uppercase;
}
.akatsuki2026 .ah-hero__news-date {
	font-family: var(--font-en-mono);
	font-size: 13px;
	letter-spacing: 0.06em;
	color: var(--ink-mute);
}
.akatsuki2026 .ah-hero__news-title {
	font-size: 13px;
	letter-spacing: 0.04em;
	color: var(--ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 16em;
}
.akatsuki2026 .ah-hero__news-arrow {
	font-family: var(--font-en-mono);
	font-size: 14px;
	color: var(--sun);
	transition: transform .25s ease;
}
.akatsuki2026 .ah-hero__news:hover .ah-hero__news-arrow { transform: translateX(4px); }

/* ---------- Scroll indicator (over photo, bottom-left) ---------- */
.akatsuki2026 .ah-hero__scroll {
	position: absolute;
	left: clamp(20px, 2.2vw, 36px);
	bottom: clamp(26px, 3.4vh, 54px);
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	pointer-events: none;
}
.akatsuki2026 .ah-hero__scroll-label {
	font-family: var(--font-en-mono);
	font-size: 10px;
	letter-spacing: 0.38em;
	color: rgba(255, 255, 255, 0.92);
	writing-mode: vertical-rl;
}
.akatsuki2026 .ah-hero__scroll-line {
	display: block;
	width: 1px;
	height: 56px;
	background: rgba(255, 255, 255, 0.4);
	position: relative;
	overflow: hidden;
}
.akatsuki2026 .ah-hero__scroll-line span {
	position: absolute;
	left: 0;
	top: 0;
	width: 1px;
	height: 20px;
	background: var(--white);
	animation: ah-hero-scroll 2.4s var(--ease-out) infinite;
}
@keyframes ah-hero-scroll {
	0%   { transform: translateY(-100%); }
	100% { transform: translateY(300%); }
}

/* =========================================
   SECTION EYEBROW (shared across sections)
   ========================================= */
.akatsuki2026 .ah-section-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 13px;
	font-family: var(--font-en-mono);
	font-weight: 400;
	font-size: 15px;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--sun);
}
.akatsuki2026 .ah-section-eyebrow__line {
	display: none;
}
/* Instagram section: enlarged eyebrow label (review #1597) */
.akatsuki2026 .ah-insta .ah-section-eyebrow__label { font-size: 30px; }

/* =========================================
   CONCEPT
   ========================================= */
.akatsuki2026 .ah-concept {
	position: relative;
	padding: clamp(56px, 8vw, 110px) 0 clamp(96px, 14vw, 180px);
	background: var(--bg);
}
.akatsuki2026 .ah-concept::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 64px;
	transform: translateX(-50%);
	width: 1px;
	height: 56px;
	background: var(--line);
	opacity: 0.6;
}
.akatsuki2026 .ah-concept__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	align-items: center;
	gap: clamp(56px, 8vw, 120px);
}

/* ---------- Concept text ---------- */
.akatsuki2026 .ah-concept__text {
	padding-bottom: clamp(40px, 6vw, 96px);
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-concept__text.is-revealed {
	opacity: 1;
	transform: translateY(0);
}
.akatsuki2026 .ah-concept__title {
	margin: 32px 0 48px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.7;
	letter-spacing: 0.12em;
	color: var(--ink);
}
.akatsuki2026 .ah-concept__title span {
	display: block;
}
.akatsuki2026 .ah-concept__body {
	display: flex;
	flex-direction: column;
	gap: 28px;
	font-size: 15px;
	line-height: 2.15;
	letter-spacing: 0.06em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-concept__body p { margin: 0; }
.akatsuki2026 .ah-concept__link {
	display: inline-flex;
	align-items: center;
	gap: 18px;
	margin-top: 56px;
	padding: 18px 32px 18px 0;
	color: var(--ink);
	font-size: 14px;
	letter-spacing: 0.18em;
	border-bottom: 1px solid var(--ink);
	transition: color .3s ease, border-color .3s ease;
}
.akatsuki2026 .ah-concept__link:hover { color: var(--sun); border-color: var(--sun); }
.akatsuki2026 .ah-concept__link-text {
	font-family: var(--font-ja-sans);
	font-weight: 500;
}
.akatsuki2026 .ah-concept__link-arrow {
	font-family: var(--font-en-mono);
	transition: transform .3s ease;
}
.akatsuki2026 .ah-concept__link:hover .ah-concept__link-arrow { transform: translateX(6px); }

/* ---------- Concept visual (scattered collage, 8 tiles, no rotation) ---------- */
.akatsuki2026 .ah-concept__visual {
	position: relative;
}
.akatsuki2026 .ah-concept__collage {
	position: relative;
	width: 100%;
	height: clamp(700px, 56vw, 820px);
}
.akatsuki2026 .ah-concept__tile {
	position: absolute;
	margin: 0;
	overflow: hidden;
	background: var(--bg-soft);
	border-radius: 4px;
	box-shadow: 0 18px 40px -22px rgba(31, 26, 21, 0.28);
	opacity: 0;
	transform: translateY(28px) scale(0.97);
	transition:
		opacity 1.0s var(--ease-out) calc(var(--i, 1) * 150ms),
		transform 1.2s var(--ease-out) calc(var(--i, 1) * 150ms);
	will-change: opacity, transform;
}
.akatsuki2026 .ah-concept__visual.is-revealed .ah-concept__tile {
	opacity: 1;
	transform: translateY(0) scale(1);
}
.akatsuki2026 .ah-concept__tile img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Scattered positions — 8 tiles, straight (no tilt), balanced 3-column feel.
   Tiles 1, 2 bleed above the section; tile 8 bleeds below. */
.akatsuki2026 .ah-concept__tile:nth-child(1) {
	top: -60px; left: 0;
	width: 30%; aspect-ratio: 3/4;
}
.akatsuki2026 .ah-concept__tile:nth-child(2) {
	top: -80px; right: 0;
	width: 28%; aspect-ratio: 3/4;
}
.akatsuki2026 .ah-concept__tile:nth-child(3) {
	top: 80px; left: 32%;
	width: 36%; aspect-ratio: 4/5;
}
.akatsuki2026 .ah-concept__tile:nth-child(4) {
	top: 300px; left: 4%;
	width: 28%; aspect-ratio: 4/5;
}
.akatsuki2026 .ah-concept__tile:nth-child(5) {
	top: 260px; right: 4%;
	width: 26%; aspect-ratio: 1/1;
}
.akatsuki2026 .ah-concept__tile:nth-child(6) {
	top: 460px; left: 32%;
	width: 30%; aspect-ratio: 3/4;
}
.akatsuki2026 .ah-concept__tile:nth-child(7) {
	top: 480px; right: 0;
	width: 30%; aspect-ratio: 3/4;
}
.akatsuki2026 .ah-concept__tile:nth-child(8) {
	bottom: -60px; left: 0;
	width: 30%; aspect-ratio: 4/3;
}

/* =========================================
   BEFORE YOUR VISIT (banner 2-column)
   ========================================= */
.akatsuki2026 .ah-visit {
	position: relative;
	padding: clamp(140px, 17vw, 220px) 0 clamp(96px, 13vw, 160px);
	background: var(--bg-soft);
	z-index: 1;
}
.akatsuki2026 .ah-visit::before {
	content: "";
	position: absolute;
	right: -120px;
	top: -120px;
	width: 320px;
	height: 320px;
	border-radius: 50%;
	background: radial-gradient(circle at 30% 30%, rgba(201, 126, 37, 0.06), transparent 70%);
	pointer-events: none;
}
.akatsuki2026 .ah-visit__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	align-items: center;
	gap: clamp(56px, 8vw, 120px);
}

/* ---------- Visit media (full-bleed left, lifted up) ---------- */
.akatsuki2026 .ah-visit__media {
	position: relative;
	align-self: start;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.3s var(--ease-out), transform 1.3s var(--ease-out);
}
.akatsuki2026 .ah-visit__media.is-revealed {
	opacity: 1;
	transform: translateY(0);
}
.akatsuki2026 .ah-visit__photo {
	position: relative;
	aspect-ratio: 5/4;
	overflow: hidden;
	background: var(--bg);
	border-top-right-radius: 96px;
	margin-left: calc(-74px - max(0px, (var(--content-w) - var(--container)) / 2));
	margin-top: clamp(-340px, -23vw, -180px);
	width: calc(100% + 74px + max(0px, (var(--content-w) - var(--container)) / 2));
	box-shadow: 0 30px 60px -30px rgba(31, 26, 21, 0.18);
}
.akatsuki2026 .ah-visit__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 60% center;
	display: block;
	transform: scale(1.0);
	transition: transform 8s var(--ease-out);
}
.akatsuki2026 .ah-visit__media.is-revealed .ah-visit__photo img {
	transform: scale(1.05);
}

/* ---------- Visit text ---------- */
.akatsuki2026 .ah-visit__text {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out) .15s, transform 1.1s var(--ease-out) .15s;
}
.akatsuki2026 .ah-visit__text.is-revealed {
	opacity: 1;
	transform: translateY(0);
}
.akatsuki2026 .ah-visit__title {
	margin: 5px 0 36px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(26px, 2.6vw, 36px);
	line-height: 1.7;
	letter-spacing: 0.12em;
	color: var(--ink);
}
.akatsuki2026 .ah-visit__body {
	display: flex;
	flex-direction: column;
	gap: 24px;
	font-size: 15px;
	line-height: 2.15;
	letter-spacing: 0.06em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-visit__body p { margin: 0; }
.akatsuki2026 .ah-visit__btn {
	margin-top: 48px;
}

/* =========================================
   MEDICAL (3 photo cards with POINT badge, cream textured bg)
   ========================================= */
.akatsuki2026 .ah-medical {
	position: relative;
	padding: clamp(96px, 13vw, 160px) 0 clamp(96px, 13vw, 160px);
	background-color: #FAF6EE;
	/* #1572: lighten background by ~30% (white overlay over tint + texture) */
	background-image: linear-gradient(rgba(255,255,255,.3), rgba(255,255,255,.3)), url('bg.png');
	background-repeat: repeat;
}
.akatsuki2026 .ah-medical__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
}
.akatsuki2026 .ah-medical__head {
	max-width: 880px;
	margin: 0 auto clamp(32px, 4vw, 60px);
	text-align: center;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-medical__head.is-revealed {
	opacity: 1;
	transform: translateY(0);
}
.akatsuki2026 .ah-medical__title {
	margin: 0 0 32px;
	font-family: var(--font-en-mono);
	font-weight: 300;
	font-style: normal;
	font-size: clamp(48px, 6.4vw, 96px);
	letter-spacing: 0.08em;
	line-height: 1;
	color: var(--ink);
}
.akatsuki2026 .ah-medical__lead {
	margin: 0;
	font-size: 15px;
	line-height: 2.1;
	letter-spacing: 0.08em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-medical__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: clamp(32px, 4vw, 72px);
}
.akatsuki2026 .ah-medical__card {
	display: block;
	color: var(--ink);
	text-decoration: none;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.0s var(--ease-out), transform 1.0s var(--ease-out);
}
.akatsuki2026 .ah-medical__card.is-revealed {
	opacity: 1;
	transform: translateY(0);
}

/* Media block (badge + photo) */
.akatsuki2026 .ah-medical__media {
	position: relative;
	margin-top: clamp(40px, 5vw, 60px);
	margin-bottom: 32px;
}
.akatsuki2026 .ah-medical__badge {
	position: absolute;
	top: clamp(-72px, -5.5vw, -52px);
	left: clamp(-16px, -1.4vw, -8px);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	width: clamp(88px, 8.5vw, 116px);
	aspect-ratio: 1/1;
	border-radius: 50%;
	background: #FAF6EE;
	background-image: url('bg.png');
	border: 1px solid var(--line);
	outline: 1px solid var(--line);
	outline-offset: 5px;
}
.akatsuki2026 .ah-medical__badge-label {
	font-family: var(--font-en-mono);
	font-weight: 400;
	font-size: 10px;
	letter-spacing: 0.28em;
	color: var(--ink-mute);
}
.akatsuki2026 .ah-medical__badge-num {
	font-family: var(--font-en-mono);
	font-weight: 400;
	font-size: clamp(22px, 2.4vw, 32px);
	line-height: 1;
	color: var(--ink);
}
.akatsuki2026 .ah-medical__photo {
	position: relative;
	aspect-ratio: 4/3;
	overflow: hidden;
	background: var(--bg-soft);
}
.akatsuki2026 .ah-medical__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 35%;
	display: block;
	transition: transform 1.2s var(--ease-out);
}
.akatsuki2026 .ah-medical__card:hover .ah-medical__photo img {
	transform: scale(1.04);
}

/* Body block */
.akatsuki2026 .ah-medical__body {
	padding: 0 4px;
}
.akatsuki2026 .ah-medical__card-title {
	margin: 0 0 18px;
	font-family: var(--font-ja-sans);
	font-weight: 500;
	font-size: clamp(18px, 1.6vw, 22px);
	line-height: 1.6;
	letter-spacing: 0.08em;
	color: var(--ink);
}
.akatsuki2026 .ah-medical__card-text {
	margin: 0 0 26px;
	font-size: 14px;
	line-height: 2.05;
	letter-spacing: 0.04em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-medical__card-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-ja-sans);
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 0.14em;
	color: var(--ink);
	transition: color .3s ease, gap .3s ease;
}
.akatsuki2026 .ah-medical__card:hover .ah-medical__card-link {
	color: var(--sun);
	gap: 16px;
}
.akatsuki2026 .ah-medical__card-link-arrow {
	font-family: var(--font-en-mono);
	transition: transform .3s ease;
}
.akatsuki2026 .ah-medical__card:hover .ah-medical__card-link-arrow {
	transform: translateX(4px);
}

/* =========================================
   HEALTH CHECK (2-column: text left, photo right)
   ========================================= */
.akatsuki2026 .ah-health {
	position: relative;
	padding: clamp(96px, 14vw, 180px) 0;
	background: var(--bg);
}
.akatsuki2026 .ah-health__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	align-items: center;
	gap: clamp(56px, 8vw, 120px);
}

/* ---------- Health text ---------- */
.akatsuki2026 .ah-health__text {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-health__text.is-revealed {
	opacity: 1;
	transform: translateY(0);
}
.akatsuki2026 .ah-health__title {
	margin: 32px 0 40px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.7;
	letter-spacing: 0.12em;
	color: var(--ink);
}
.akatsuki2026 .ah-health__body {
	display: flex;
	flex-direction: column;
	gap: 26px;
	font-size: 15px;
	line-height: 2.15;
	letter-spacing: 0.06em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-health__body p { margin: 0; }
.akatsuki2026 .ah-health__btn {
	margin-top: 48px;
}

/* ---------- Health visual ---------- */
.akatsuki2026 .ah-health__visual {
	position: relative;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.3s var(--ease-out) .15s, transform 1.3s var(--ease-out) .15s;
}
.akatsuki2026 .ah-health__visual.is-revealed {
	opacity: 1;
	transform: translateY(0);
}
.akatsuki2026 .ah-health__photo {
	position: relative;
	aspect-ratio: 4/5;
	overflow: hidden;
	background: var(--bg-soft);
	border-top-right-radius: 96px;
}
.akatsuki2026 .ah-health__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transform: scale(1.0);
	transition: transform 8s var(--ease-out);
}
.akatsuki2026 .ah-health__visual.is-revealed .ah-health__photo img {
	transform: scale(1.05);
}

/* =========================================
   STAFF (right-to-left marquee + ellipse photos + split bg)
   ========================================= */
.akatsuki2026 .ah-staff {
	position: relative;
	padding: clamp(96px, 13vw, 160px) 0 clamp(64px, 9vw, 108px);
	background: var(--bg);
	overflow: hidden;
	isolation: isolate;
}
.akatsuki2026 .ah-staff::before {
	content: "";
	position: absolute;
	left: 0; right: 0;
	bottom: 0;
	height: clamp(260px, 25vw, 360px);
	background: var(--bg-soft);
	z-index: -1;
}
.akatsuki2026 .ah-staff__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
}
.akatsuki2026 .ah-staff__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 40px;
	margin: 0 0 clamp(48px, 6vw, 88px);
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-staff__head.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-staff__head-text {
	max-width: 760px;
	flex: 1 1 auto;
}
.akatsuki2026 .ah-staff__head-cta {
	flex: 0 0 auto;
	padding-bottom: 4px;
}
.akatsuki2026 .ah-staff__title {
	margin: 28px 0 24px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.7;
	letter-spacing: 0.12em;
	color: var(--ink);
}
.akatsuki2026 .ah-staff__lead {
	margin: 0;
	font-size: 15px;
	line-height: 2.0;
	letter-spacing: 0.06em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-staff__scroll {
	margin: 0;
	padding: 0;
	overflow: hidden;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out) .1s, transform 1.1s var(--ease-out) .1s;
}
.akatsuki2026 .ah-staff__scroll.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-staff__list {
	display: flex;
	gap: clamp(40px, 4vw, 64px);
	margin: 0;
	padding: 0;
	list-style: none;
	width: max-content;
	animation: ah-staff-marquee 90s linear infinite;
}
.akatsuki2026 .ah-staff__scroll:hover .ah-staff__list {
	animation-play-state: paused;
}
.akatsuki2026 .ah-staff__card {
	flex: 0 0 clamp(180px, 16vw, 220px);
}
.akatsuki2026 .ah-staff__card:nth-child(even) {
	padding-top: 60px;
}
.akatsuki2026 .ah-staff__link {
	display: block;
	color: inherit;
	text-decoration: none;
}
/* トップのスタッフカードから /staff/#slug へ飛んだときの着地余白 */
.akatsuki2026 .list_staff > li { scroll-margin-top: 90px; }
@keyframes ah-staff-marquee {
	from { transform: translateX(0); }
	to   { transform: translateX(calc(-50% - clamp(20px, 2vw, 32px))); }
}
.akatsuki2026 .ah-staff__photo {
	width: 100%;
	aspect-ratio: 3/4;
	overflow: hidden;
	background: var(--bg);
	border-radius: 10px;
	margin-bottom: 22px;
}
.akatsuki2026 .ah-staff__photo img {
	width: 100%; height: 100%;
	object-fit: cover; object-position: center 30%;
	display: block;
	transition: transform 1.0s var(--ease-out);
}
.akatsuki2026 .ah-staff__card:hover .ah-staff__photo img { transform: scale(1.04); }
.akatsuki2026 .ah-staff__role {
	margin: 0 0 4px;
	font-family: var(--font-en-mono);
	font-size: 11px;
	letter-spacing: 0.28em;
	color: var(--ink-mute);
	text-align: center;
}
.akatsuki2026 .ah-staff__name {
	margin: 0;
	font-family: var(--font-ja-sans);
	font-size: 14px;
	font-weight: 500;
	color: var(--ink);
	text-align: center;
}

/* =========================================
   BLOG (3 cards horizontal)
   ========================================= */
.akatsuki2026 .ah-blog {
	position: relative;
	padding: clamp(96px, 13vw, 160px) 0;
	background: var(--bg);
}
.akatsuki2026 .ah-blog__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
}
.akatsuki2026 .ah-blog__head {
	display: flex;
	flex-direction: column;
	margin: 0 0 clamp(48px, 6vw, 80px);
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-blog__head.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-blog__title {
	margin: 28px 0 0;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.7;
	letter-spacing: 0.12em;
	color: var(--ink);
}
/* #1573: 2-column — categories (left) + vertical card list (right) */
.akatsuki2026 .ah-blog__layout {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: clamp(40px, 5vw, 80px);
	align-items: start;
}
.akatsuki2026 .ah-blog__cats {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.0s var(--ease-out), transform 1.0s var(--ease-out);
}
.akatsuki2026 .ah-blog__cats.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-blog__cats-title {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 0 8px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--line);
}
.akatsuki2026 .ah-blog__cats-en {
	margin: 0 0 15px;
	font-family: var(--font-en-mono);
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--sun);
}
.akatsuki2026 .ah-blog__cats-ja {
	font-family: var(--font-ja-sans);
	font-size: 12px;
	letter-spacing: 0.16em;
	color: var(--ink-mute);
}
.akatsuki2026 .ah-blog__cats-list { margin: 0; padding: 0; list-style: none; }
.akatsuki2026 .ah-blog__cats-list li { margin: 0; }
.akatsuki2026 .ah-blog__cats-list a {
	display: block;
	padding: 13px 0;
	font-family: var(--font-ja-sans);
	font-size: 14px;
	letter-spacing: 0.08em;
	color: var(--ink-mid);
	border-bottom: 1px solid var(--line);
	text-decoration: none;
	transition: color .3s ease, padding-left .3s ease;
}
.akatsuki2026 .ah-blog__cats-list a:hover { color: var(--sun); padding-left: 8px; }

.akatsuki2026 .ah-blog__main { min-width: 0; }
.akatsuki2026 .ah-blog__list {
	display: flex;
	flex-direction: column;
	margin: 0 0 clamp(28px, 3.5vw, 44px);
	padding: 0;
	list-style: none;
}
.akatsuki2026 .ah-blog__item {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.0s var(--ease-out), transform 1.0s var(--ease-out);
	border-bottom: 1px solid var(--line);
}
.akatsuki2026 .ah-blog__item.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-blog__item a {
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: clamp(20px, 2.4vw, 32px);
	align-items: center;
	padding: clamp(20px, 2.4vw, 28px) 0;
	color: var(--ink);
	text-decoration: none;
}
.akatsuki2026 .ah-blog__item:first-child a { padding-top: 0; }
.akatsuki2026 .ah-blog__thumb {
	aspect-ratio: 4/3;
	overflow: hidden;
	background: var(--bg-soft);
	margin: 0;
}
.akatsuki2026 .ah-blog__thumb img {
	width: 100%; height: 100%;
	object-fit: cover; display: block;
	transition: transform 1.0s var(--ease-out);
}
.akatsuki2026 .ah-blog__item a:hover .ah-blog__thumb img { transform: scale(1.05); }
.akatsuki2026 .ah-blog__body { min-width: 0; }
.akatsuki2026 .ah-blog__meta {
	display: flex;
	gap: 14px;
	align-items: center;
	margin-bottom: 12px;
	font-family: var(--font-en-mono);
	font-size: 11px;
	letter-spacing: 0.22em;
	color: var(--ink-mute);
}
.akatsuki2026 .ah-blog__cat {
	font-family: var(--font-ja-sans);
	font-size: 11px;
	letter-spacing: 0.1em;
	color: var(--sun);
	padding: 3px 10px;
	border: 1px solid var(--line);
}
.akatsuki2026 .ah-blog__item-title {
	margin: 0;
	font-family: var(--font-ja-sans);
	font-weight: 500;
	font-size: 15px;
	line-height: 1.75;
	letter-spacing: 0.06em;
	color: var(--ink);
	transition: color .3s ease;
}
.akatsuki2026 .ah-blog__item a:hover .ah-blog__item-title { color: var(--sun); }
.akatsuki2026 .ah-blog__more {
	display: flex;
	justify-content: flex-end;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 1.0s var(--ease-out), transform 1.0s var(--ease-out);
}
.akatsuki2026 .ah-blog__more.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-blog__more-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 14px 0;
	font-family: var(--font-en-mono);
	font-size: 12px;
	letter-spacing: 0.3em;
	color: var(--ink);
	border-bottom: 1px solid var(--ink);
	transition: color .3s ease, gap .3s ease, border-color .3s ease;
}
.akatsuki2026 .ah-blog__more-link:hover { color: var(--sun); gap: 16px; border-color: var(--sun); }
/* "ブログ一覧" moved beneath the category list (review #1595) */
.akatsuki2026 .ah-blog__cats .ah-blog__more { justify-content: flex-start; margin-top: 22px; }

/* =========================================
   INSTAGRAM (6-grid + follow link)
   ========================================= */
.akatsuki2026 .ah-insta {
	position: relative;
	padding: clamp(96px, 13vw, 160px) 0;
	background: var(--bg-soft);
}
.akatsuki2026 .ah-insta__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
}
.akatsuki2026 .ah-insta__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	margin: 0 0 clamp(40px, 5vw, 64px);
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-insta__head.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-insta__title {
	margin: 26px 0 14px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.6;
	letter-spacing: 0.12em;
	color: var(--ink);
}
.akatsuki2026 .ah-insta__account {
	font-family: var(--font-en-mono);
	font-size: 14px;
	letter-spacing: 0.14em;
	color: var(--sun);
	text-decoration: none;
	transition: opacity .3s ease;
}
.akatsuki2026 .ah-insta__account:hover { opacity: .65; }
.akatsuki2026 .ah-insta__grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: clamp(10px, 1.2vw, 18px);
	margin: 0 0 clamp(36px, 4.5vw, 56px);
	padding: 0;
	list-style: none;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out) .1s, transform 1.1s var(--ease-out) .1s;
}
.akatsuki2026 .ah-insta__grid.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-insta__item { margin: 0; }
.akatsuki2026 .ah-insta__item a {
	position: relative;
	display: block;
	aspect-ratio: 1/1;
	overflow: hidden;
	background: var(--bg);
}
.akatsuki2026 .ah-insta__item img {
	width: 100%; height: 100%;
	object-fit: cover; display: block;
	transition: transform 1.0s var(--ease-out);
}
.akatsuki2026 .ah-insta__item a:hover img { transform: scale(1.06); }
.akatsuki2026 .ah-insta__overlay {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	background: rgba(31,26,21,0);
	opacity: 0;
	transition: opacity .35s ease, background .35s ease;
}
.akatsuki2026 .ah-insta__item a:hover .ah-insta__overlay { opacity: 1; background: rgba(31,26,21,.32); }
.akatsuki2026 .ah-insta__more {
	display: flex;
	justify-content: center;
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 1.0s var(--ease-out), transform 1.0s var(--ease-out);
}
.akatsuki2026 .ah-insta__more.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-insta__more-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 14px 0;
	font-family: var(--font-en-mono);
	font-size: 12px;
	letter-spacing: 0.3em;
	color: var(--ink);
	border-bottom: 1px solid var(--ink);
	text-decoration: none;
	transition: color .3s ease, gap .3s ease, border-color .3s ease;
}
.akatsuki2026 .ah-insta__more-link:hover { color: var(--sun); gap: 16px; border-color: var(--sun); }

/* =========================================
   ABOUT (Health Check + Our Clinic, 2-column) — #1574
   ========================================= */
.akatsuki2026 .ah-about {
	position: relative;
	padding: clamp(96px, 13vw, 160px) 0;
	background: var(--bg);
}
.akatsuki2026 .ah-about__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(40px, 5vw, 88px);
	align-items: start;
}
.akatsuki2026 .ah-about__col {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-about__col.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-about__col:nth-child(2) { transition-delay: .12s; }
.akatsuki2026 .ah-about__photo {
	aspect-ratio: 4/3;
	overflow: hidden;
	background: var(--bg-soft);
	border-top-right-radius: 64px;
	margin-bottom: clamp(28px, 3.2vw, 40px);
}
.akatsuki2026 .ah-about__photo img {
	width: 100%; height: 100%;
	object-fit: cover; display: block;
	transform: scale(1.0);
	transition: transform 8s var(--ease-out);
}
.akatsuki2026 .ah-about__col.is-revealed .ah-about__photo img { transform: scale(1.05); }
.akatsuki2026 .ah-about__title {
	margin: 22px 0 24px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(24px, 2.4vw, 30px);
	line-height: 1.83;
	letter-spacing: 0.12em;
	color: var(--ink);
}
.akatsuki2026 .ah-about__body {
	font-size: 15px;
	line-height: 2.1;
	letter-spacing: 0.06em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-about__body p { margin: 0; }
.akatsuki2026 .ah-about__btn { margin-top: clamp(28px, 3vw, 40px); }

/* =========================================
   OUR CLINIC (header left, 3 photos right collage)
   ========================================= */
.akatsuki2026 .ah-clinic {
	position: relative;
	padding: clamp(96px, 13vw, 160px) 0;
	background: var(--bg-soft);
}
.akatsuki2026 .ah-clinic__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	align-items: center;
	gap: clamp(56px, 8vw, 120px);
}
.akatsuki2026 .ah-clinic__head {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-clinic__head.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-clinic__title {
	margin: 28px 0 32px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.7;
	letter-spacing: 0.12em;
	color: var(--ink);
}
.akatsuki2026 .ah-clinic__body {
	display: flex; flex-direction: column; gap: 24px;
	margin-bottom: 40px;
	font-size: 15px; line-height: 2.1;
	letter-spacing: 0.06em; color: var(--ink-mid);
}
.akatsuki2026 .ah-clinic__body p { margin: 0; }
.akatsuki2026 .ah-clinic__grid {
	position: relative;
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	grid-template-rows: auto auto;
	gap: clamp(16px, 2vw, 28px);
}
.akatsuki2026 .ah-clinic__photo {
	overflow: hidden;
	background: var(--bg);
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-clinic__photo.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-clinic__photo img {
	width: 100%; height: 100%;
	object-fit: cover; display: block;
}
.akatsuki2026 .ah-clinic__photo--1 {
	grid-row: 1 / 3;
	aspect-ratio: 4/5;
	border-top-right-radius: 64px;
}
.akatsuki2026 .ah-clinic__photo--2 {
	aspect-ratio: 5/4;
}
.akatsuki2026 .ah-clinic__photo--3 {
	aspect-ratio: 5/4;
}

/* =========================================
   ACCESS (info left, map right)
   ========================================= */
.akatsuki2026 .ah-access {
	position: relative;
	padding: clamp(96px, 13vw, 160px) 0;
	background: var(--bg);
}
.akatsuki2026 .ah-access__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	align-items: stretch;
	gap: clamp(56px, 7vw, 96px);
}
.akatsuki2026 .ah-access__info {
	display: flex;
	flex-direction: column;
	justify-content: center;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-access__info.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-access__title {
	margin: 28px 0 40px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.7;
	letter-spacing: 0.12em;
	color: var(--ink);
}
.akatsuki2026 .ah-access__list {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.akatsuki2026 .ah-access__row {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 28px;
	padding: 18px 0;
	border-bottom: 1px solid var(--line);
}
.akatsuki2026 .ah-access__row:last-child { border-bottom: 0; }
.akatsuki2026 .ah-access__row dt {
	font-family: var(--font-ja-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.18em;
	color: var(--ink-mute);
	padding-top: 4px;
}
.akatsuki2026 .ah-access__row dd {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.85;
	letter-spacing: 0.06em;
	color: var(--ink);
}
.akatsuki2026 .ah-access__note {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--ink-mute);
	letter-spacing: 0.04em;
}
.akatsuki2026 .ah-access__tel {
	font-family: var(--font-en-mono);
	font-size: 22px;
	font-weight: 500;
	letter-spacing: 0.06em;
	color: var(--ink);
	text-decoration: none;
	transition: color .3s ease;
}
.akatsuki2026 .ah-access__tel:hover { color: var(--sun); }
.akatsuki2026 .ah-access__map {
	position: relative;
	aspect-ratio: 4/3;
	min-height: 380px;
	overflow: hidden;
	background: var(--bg-soft);
	border-top-right-radius: 64px;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.3s var(--ease-out) .1s, transform 1.3s var(--ease-out) .1s;
}
.akatsuki2026 .ah-access__map.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-access__map iframe {
	width: 100%;
	height: 100%;
	display: block;
	filter: grayscale(0.1) contrast(0.95);
}

/* =========================================
   RECRUIT (banner: text left, photo right bleed)
   ========================================= */
.akatsuki2026 .ah-recruit {
	position: relative;
	padding: clamp(120px, 15vw, 200px) 0;
	background: var(--bg-soft);
	overflow: hidden;
}
.akatsuki2026 .ah-recruit__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	align-items: center;
	gap: clamp(56px, 8vw, 120px);
}
.akatsuki2026 .ah-recruit__text {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-recruit__text.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-recruit__title {
	margin: 28px 0 36px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(28px, 3vw, 42px);
	line-height: 1.7;
	letter-spacing: 0.12em;
	color: var(--ink);
}
.akatsuki2026 .ah-recruit__body {
	display: flex; flex-direction: column; gap: 22px;
	margin-bottom: 44px;
	font-size: 15px; line-height: 2.1;
	letter-spacing: 0.06em; color: var(--ink-mid);
}
.akatsuki2026 .ah-recruit__body p { margin: 0; }
.akatsuki2026 .ah-recruit__media {
	position: relative;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.3s var(--ease-out) .15s, transform 1.3s var(--ease-out) .15s;
}
.akatsuki2026 .ah-recruit__media.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-recruit__photo {
	position: relative;
	aspect-ratio: 5/4;
	overflow: hidden;
	background: var(--bg);
	border-top-right-radius: 96px;
	margin-right: calc(-74px - max(0px, (var(--content-w) - var(--container)) / 2));
	width: calc(100% + 74px + max(0px, (var(--content-w) - var(--container)) / 2));
	box-shadow: 0 30px 60px -30px rgba(31, 26, 21, 0.18);
}
.akatsuki2026 .ah-recruit__photo img {
	width: 100%; height: 100%;
	object-fit: cover; display: block;
	transition: transform 8s var(--ease-out);
}
.akatsuki2026 .ah-recruit__media.is-revealed .ah-recruit__photo img { transform: scale(1.05); }

/* =========================================
   CONTACT CTA (centered large, cream textured)
   ========================================= */
.akatsuki2026 .ah-cta {
	position: relative;
	padding: clamp(120px, 15vw, 200px) 0;
	background-color: #FAF6EE;
	background-image: url('bg.png');
	background-repeat: repeat;
	text-align: center;
}
.akatsuki2026 .ah-cta__inner {
	max-width: 720px;
	margin: 0 auto;
	padding: 0 24px;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-cta__inner.is-revealed { opacity: 1; transform: translateY(0); }
.akatsuki2026 .ah-cta__eyebrow { justify-content: center; }
.akatsuki2026 .ah-cta__title {
	margin: 28px 0 24px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(28px, 3.4vw, 46px);
	line-height: 1.7;
	letter-spacing: 0.12em;
	color: var(--ink);
}
.akatsuki2026 .ah-cta__lead {
	margin: 0 0 48px;
	font-size: 15px;
	line-height: 2.0;
	letter-spacing: 0.06em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-cta__contact {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 28px;
}
.akatsuki2026 .ah-cta__tel {
	display: inline-flex;
	align-items: baseline;
	gap: 18px;
	color: var(--ink);
	text-decoration: none;
}
.akatsuki2026 .ah-cta__tel-label {
	font-family: var(--font-en-mono);
	font-size: 13px;
	letter-spacing: 0.28em;
	color: var(--ink-mute);
}
.akatsuki2026 .ah-cta__tel-num {
	font-family: var(--font-en-mono);
	font-size: clamp(28px, 3.4vw, 40px);
	font-weight: 500;
	letter-spacing: 0.04em;
}
.akatsuki2026 .ah-cta__tel:hover .ah-cta__tel-num { color: var(--sun); }
.akatsuki2026 .ah-cta__buttons {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
}

/* =========================================
   FOOTER (light: brand left + nav right)
   ========================================= */
.akatsuki2026 .ah-footer {
	position: relative;
	background-color: #FAF6EE;
	background-image: url('bg.png');
	background-repeat: repeat;
	color: var(--ink);
}
.akatsuki2026 .ah-footer__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: clamp(80px, 9vw, 130px) 74px clamp(56px, 6vw, 80px);
	display: grid;
	grid-template-columns: 1fr minmax(420px, 520px);
	gap: clamp(48px, 6vw, 100px);
	align-items: start;
}
.akatsuki2026 .ah-footer__brand {
	text-align: left;
}
.akatsuki2026 .ah-footer__brand-head {
	display: inline-block;
	text-align: center;
	margin-bottom: 36px;
}
.akatsuki2026 .ah-footer__tagline {
	display: inline-block;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	text-align: start;
	height: auto;
	margin: 0 0 24px;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(15px, 1.3vw, 17px);
	line-height: 1.9;
	letter-spacing: 0.18em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-footer__logo {
	display: block;
}
.akatsuki2026 .ah-footer__logo img {
	height: 34px;
	width: auto;
}
.akatsuki2026 .ah-footer__contact {
	margin-bottom: 36px;
}
.akatsuki2026 .ah-footer__contact-label {
	margin: 0 0 6px;
	font-family: var(--font-ja-sans);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.1em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-footer__tel {
	display: inline-block;
	margin-bottom: 14px;
	font-family: var(--font-en-mono);
	font-size: clamp(24px, 2.4vw, 30px);
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--ink);
	text-decoration: none;
	transition: color .3s ease;
}
.akatsuki2026 .ah-footer__tel:hover { color: var(--sun); }
.akatsuki2026 .ah-footer__address {
	margin: 0 0 14px;
	font-family: var(--font-ja-sans);
	font-size: 13px;
	line-height: 1.9;
	letter-spacing: 0.05em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-footer__map {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-en-mono);
	font-size: 12px;
	letter-spacing: 0.16em;
	color: var(--ink);
	text-decoration: none;
	border-bottom: 1px solid var(--line);
	padding-bottom: 4px;
	transition: color .3s ease, border-color .3s ease;
}
.akatsuki2026 .ah-footer__map:hover { color: var(--sun); border-color: var(--sun); }
.akatsuki2026 .ah-footer__notes {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 540px;
}
.akatsuki2026 .ah-footer__notes p {
	margin: 0;
	font-family: var(--font-ja-sans);
	font-size: 12px;
	line-height: 1.85;
	letter-spacing: 0.04em;
	color: var(--ink-mute);
}
.akatsuki2026 .ah-footer__cards {
	margin-top: 8px;
	width: 396px;
	max-width: 100%;
	height: auto;
}
.akatsuki2026 .ah-footer__right {
	display: flex;
	flex-direction: column;
	gap: clamp(40px, 4vw, 64px);
}
.akatsuki2026 .ah-footer__nav {
	display: grid;
	grid-template-columns: repeat(3, auto);
	gap: clamp(40px, 4vw, 72px);
	text-align: left;
}
.akatsuki2026 .ah-footer__schedule {
	width: 100%;
	text-align: left;
}
.akatsuki2026 .ah-footer__schedule .ah-schedule__notes {
	text-align: left;
}
.akatsuki2026 .ah-footer__schedule-label {
	margin: 0 0 14px;
	font-family: var(--font-en-mono);
	font-size: 12px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-footer__schedule .ah-schedule th,
.akatsuki2026 .ah-footer__schedule .ah-schedule td {
	padding: 9px 5px;
	font-size: 12.5px;
}
.akatsuki2026 .ah-footer__schedule .ah-schedule tbody th {
	font-size: 11px;
}
.akatsuki2026 .ah-footer__schedule .ah-schedule thead th:first-child,
.akatsuki2026 .ah-footer__schedule .ah-schedule tbody th {
	background: transparent;
}
.akatsuki2026 .ah-footer__schedule-note {
	margin: 12px 0 0;
	font-family: var(--font-ja-sans);
	font-size: 11px;
	line-height: 1.8;
	letter-spacing: 0.04em;
	color: var(--ink-mute);
}
.akatsuki2026 .ah-footer__nav-col {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 96px;
}
.akatsuki2026 .ah-footer__nav-col a {
	font-family: var(--font-en-mono);
	font-size: 14px;
	letter-spacing: 0.12em;
	color: var(--ink);
	text-decoration: none;
	transition: color .3s ease;
}
.akatsuki2026 .ah-footer__nav-col--cta a {
	font-family: var(--font-ja-sans);
	font-weight: 500;
	letter-spacing: 0.1em;
}
.akatsuki2026 .ah-footer__nav-col a:hover { color: var(--sun); }
.akatsuki2026 .ah-footer__bottom {
	max-width: var(--container);
	margin: 0 auto;
	padding: 28px 74px clamp(40px, 4vw, 56px);
	border-top: 1px solid var(--line);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
}
.akatsuki2026 .ah-footer__legal {
	display: flex;
	gap: 32px;
}
.akatsuki2026 .ah-footer__legal a {
	font-family: var(--font-ja-sans);
	font-size: 13px;
	letter-spacing: 0.08em;
	color: var(--ink-mid);
	text-decoration: none;
	transition: color .3s ease;
}
.akatsuki2026 .ah-footer__legal a:hover { color: var(--sun); }
.akatsuki2026 .ah-footer__copy {
	margin: 0;
	font-family: var(--font-en-mono);
	font-size: 11px;
	letter-spacing: 0.18em;
	color: var(--ink-mute);
}

/* =========================================
   INFORMATION + SCHEDULE
   ========================================= */
.akatsuki2026 .ah-info {
	position: relative;
	padding: clamp(96px, 12vw, 160px) 0;
	background: var(--bg);
}
.akatsuki2026 .ah-info__inner {
	max-width: var(--container);
	margin-inline: auto;
	padding: 0 74px;
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	gap: clamp(56px, 8vw, 110px);
	align-items: flex-start;
}
.akatsuki2026 .ah-info__col {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 1.1s var(--ease-out), transform 1.1s var(--ease-out);
}
.akatsuki2026 .ah-info__col--schedule {
	transition-delay: .15s;
}
.akatsuki2026 .ah-info__col.is-revealed {
	opacity: 1;
	transform: translateY(0);
}
.akatsuki2026 .ah-info__head {
	margin-bottom: 36px;
}
.akatsuki2026 .ah-info__title {
	margin: 5px 0 0;
	font-family: var(--font-ja-serif);
	font-weight: 500;
	font-size: clamp(26px, 2.4vw, 34px);
	letter-spacing: 0.16em;
	line-height: 1.4;
	color: var(--ink);
}

/* ---------- News list ---------- */
.akatsuki2026 .ah-info__list {
	border-top: 1px solid var(--line);
	margin: 0;
	padding: 0;
	list-style: none;
}
.akatsuki2026 .ah-info__item {
	border-bottom: 1px solid var(--line);
}
.akatsuki2026 .ah-info__item a {
	display: grid;
	grid-template-columns: 110px 92px 1fr;
	gap: 20px;
	align-items: center;
	padding: 22px 4px 22px 4px;
	color: var(--ink);
	transition: background-color .25s ease, padding-left .25s ease, color .25s ease;
}
.akatsuki2026 .ah-info__item a:hover {
	background: var(--bg-soft);
	padding-left: 14px;
	color: var(--ink);
}
.akatsuki2026 .ah-info__item a:hover .ah-info__item-title { color: var(--sun); }
.akatsuki2026 .ah-info__date {
	font-family: var(--font-en-mono);
	font-weight: 400;
	font-size: 13px;
	letter-spacing: 0.06em;
	color: var(--ink-mute);
}
.akatsuki2026 .ah-info__cat {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 4px 10px;
	border: 1px solid var(--line);
	font-size: 11px;
	letter-spacing: 0.16em;
	color: var(--ink-mid);
	min-width: 0;
}
.akatsuki2026 .ah-info__item-title {
	font-size: 14px;
	letter-spacing: 0.06em;
	color: var(--ink);
	transition: color .25s ease;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
}
.akatsuki2026 .ah-info__more {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	margin-top: 28px;
	float: right;
	color: var(--ink);
	padding: 4px 0;
	border-bottom: 1px solid var(--ink);
	transition: color .25s ease, border-color .25s ease;
}
.akatsuki2026 .ah-info__more:hover { color: var(--sun); border-color: var(--sun); }
.akatsuki2026 .ah-info__more-text {
	font-family: var(--font-en-mono);
	font-size: 12px;
	letter-spacing: 0.3em;
}
.akatsuki2026 .ah-info__more-arrow {
	font-family: var(--font-en-mono);
	transition: transform .25s ease;
}
.akatsuki2026 .ah-info__more:hover .ah-info__more-arrow { transform: translateX(4px); }

/* ---------- Schedule table ---------- */
.akatsuki2026 .ah-schedule {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--font-ja-sans);
	margin-bottom: 15px;
}
.akatsuki2026 .ah-schedule th,
.akatsuki2026 .ah-schedule td {
	border: 1px solid var(--line);
	padding: 14px 6px;
	text-align: center;
	font-weight: 400;
	font-size: 14px;
	letter-spacing: 0.06em;
	color: var(--ink);
}
.akatsuki2026 .ah-schedule thead th {
	background: var(--bg-soft);
	font-size: 13px;
	letter-spacing: 0.1em;
	color: var(--ink-mid);
}
.akatsuki2026 .ah-schedule thead th:first-child {
	background: var(--white);
	border-left-color: transparent;
}
.akatsuki2026 .ah-schedule thead th.is-off {
	color: var(--ink-mute);
}
.akatsuki2026 .ah-schedule tbody th {
	background: var(--white);
	font-size: 12px;
	color: var(--ink-mid);
	letter-spacing: 0.04em;
	white-space: nowrap;
	padding-left: 10px;
	padding-right: 10px;
	text-align: left;
}
.akatsuki2026 .ah-schedule td {
	font-family: var(--font-en-mono);
	font-weight: 400;
}
.akatsuki2026 .ah-schedule td.is-off {
	color: var(--ink-mute);
}
.akatsuki2026 .ah-schedule__notes {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 12px;
	line-height: 1.95;
	color: var(--ink-mute);
}
.akatsuki2026 .ah-schedule__notes li {
	position: relative;
	padding-left: 16px;
}
.akatsuki2026 .ah-schedule__notes li::before {
	content: "※";
	position: absolute;
	left: 0;
}

/* ---------- Schedule CTAs ---------- */
.akatsuki2026 .ah-schedule__cta {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 28px;
}
.akatsuki2026 .ah-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 18px 28px;
	font-family: var(--font-ja-sans);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.18em;
	border: 1px solid transparent;
	transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.akatsuki2026 .ah-btn__arrow {
	font-family: var(--font-en-mono);
	font-weight: 400;
	transition: transform .3s ease;
}
.akatsuki2026 .ah-btn:hover .ah-btn__arrow { transform: translateX(5px); }
.akatsuki2026 .ah-btn--primary {
	background: var(--sun);
	color: var(--white);
	border-color: var(--sun);
}
.akatsuki2026 .ah-btn--primary:hover {
	background: var(--ink);
	border-color: var(--ink);
}
.akatsuki2026 .ah-btn--secondary {
	background: var(--white);
	color: var(--ink);
	border-color: var(--ink);
}
.akatsuki2026 .ah-btn--secondary:hover {
	background: var(--ink);
	color: var(--white);
}

/* utility */
.akatsuki2026 .visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}

.akatsuki2026 .ah-footer {
	padding: 48px 24px;
	background: var(--white);
	border-top: 1px solid var(--line-soft);
}
.akatsuki2026 .ah-footer__inner {
	max-width: var(--container);
	margin-inline: auto;
	text-align: center;
}
.akatsuki2026 .ah-footer__copy {
	font-family: var(--font-en-mono);
	font-size: 11px;
	letter-spacing: 0.3em;
	color: var(--ink-mute);
}

/* =========================================
   MOTION REDUCED
   ========================================= */
@media (prefers-reduced-motion: reduce) {
	.akatsuki2026 .ah-hero__media,
	.akatsuki2026 .ah-hero__title {
		opacity: 1; transform: none; transition: none;
	}
	.akatsuki2026 .ah-hero__slide { transition: none; }
	.akatsuki2026 .ah-hero__slide.is-active .ah-hero__img { animation: none; transform: none; }
	.akatsuki2026 .ah-hero__scroll-line span { animation: none; }
}

/* =========================================
   RESPONSIVE
   ========================================= */
@media (max-width: 1280px) {
	.akatsuki2026 { --side-w: 92px; --radius-hero: 72px; }
	.akatsuki2026 .ah-hero { grid-template-columns: minmax(280px, 42%) 1fr; }
}
@media (max-width: 1080px) {
	.akatsuki2026 .ah-hero__tagline { font-size: 15px; }
	.akatsuki2026 .ah-hero__logo img { width: clamp(200px, 30vw, 300px); }
}
@media (max-width: 860px) {
	/* ----- Sidebar collapses to a top bar; menu opens as overlay drawer ----- */
	.akatsuki2026 { --content-w: 100vw; }
	.akatsuki2026 .ah-canvas { margin-left: 0; }
	.akatsuki2026 .ah-side {
		width: 100%;
		height: var(--topbar-h);
		flex-direction: row;
		align-items: center;
		padding: 0 18px;
		border-right: none;
		border-bottom: 1px solid var(--line);
	}
	.akatsuki2026 .ah-side__top {
		flex-direction: row;
		width: 100%;
		justify-content: space-between;
		align-items: center;
		gap: 0;
	}
	.akatsuki2026 .ah-side__mark { width: 36px; }
	.akatsuki2026 .ah-side__toggle { display: flex; pointer-events: auto; }
	.akatsuki2026 .ah-sitelogo { display: none; }

	.akatsuki2026 .ah-side__nav,
	.akatsuki2026 .ah-side__foot {
		position: fixed;
		left: 0;
		width: 100%;
		z-index: 39;
		background: var(--white);
		transform: translateX(100%);
		transition: transform .4s var(--ease-out);
	}
	.akatsuki2026 .ah-side__nav {
		top: var(--topbar-h);
		bottom: 92px;
		align-items: center;
		overflow-y: auto;
	}
	.akatsuki2026 .ah-side__foot {
		top: auto;
		bottom: 0;
		height: 92px;
		flex-direction: row;
		justify-content: center;
		align-items: center;
		gap: 18px;
		border-top: 1px solid var(--line);
	}
	.akatsuki2026 .ah-side__menu { flex-direction: column; gap: 22px; padding: 28px 0; }
	.akatsuki2026 .ah-side__menu a { writing-mode: horizontal-tb; font-size: 17px; letter-spacing: 0.08em; }
	.akatsuki2026 .ah-side__reserve,
	.akatsuki2026 .ah-side__tel { writing-mode: horizontal-tb; }
	.akatsuki2026 .ah-side__reserve { padding: 12px 22px; }

	.akatsuki2026.is-menu-open .ah-side__nav,
	.akatsuki2026.is-menu-open .ah-side__foot { transform: translateX(0); }
	.akatsuki2026.is-menu-open .ah-overlay { display: block; opacity: 1; }
	.akatsuki2026.is-menu-open .ah-side__toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.akatsuki2026.is-menu-open .ah-side__toggle span:nth-child(2) { opacity: 0; }
	.akatsuki2026.is-menu-open .ah-side__toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

	/* ----- Hero stacks: photo on top, lead below ----- */
	.akatsuki2026 .ah-hero {
		grid-template-columns: 1fr;
		min-height: 0;
		padding: 0;
		padding-top: var(--topbar-h);
	}
	.akatsuki2026 .ah-hero__lead {
		order: 2;
		padding: 34px 24px 44px;
		gap: 28px;
	}
	.akatsuki2026 .ah-hero__media {
		order: 1;
		height: 64vh;
		min-height: 420px;
		border-bottom-left-radius: 0;
		border-bottom-right-radius: 44px;
	}
	.akatsuki2026 .ah-hero__title { top: 28px; left: 24px; font-size: clamp(20px, 5.4vw, 30px); }
	.akatsuki2026 .ah-hero__logo img { width: clamp(200px, 56vw, 300px); }
	.akatsuki2026 .ah-hero__news { flex-wrap: wrap; gap: 10px 14px; }
	.akatsuki2026 .ah-hero__news-title { max-width: 72vw; }

	.akatsuki2026 .ah-concept__inner {
		grid-template-columns: 1fr;
		padding: 0 24px;
		gap: 56px;
	}
	.akatsuki2026 .ah-concept__visual { order: -1; }
	.akatsuki2026 .ah-concept__collage { height: clamp(700px, 150vw, 880px); }
	.akatsuki2026 .ah-concept__tile:nth-child(1) { top: -40px; left: 0; width: 36%; }
	.akatsuki2026 .ah-concept__tile:nth-child(2) { top: -56px; right: 0; width: 34%; }
	.akatsuki2026 .ah-concept__tile:nth-child(3) { top: 160px; left: 28%; width: 44%; }
	.akatsuki2026 .ah-concept__tile:nth-child(4) { top: 360px; left: 0; width: 34%; }
	.akatsuki2026 .ah-concept__tile:nth-child(5) { top: 340px; right: 0; width: 32%; }
	.akatsuki2026 .ah-concept__tile:nth-child(6) { top: 520px; left: 22%; width: 38%; }
	.akatsuki2026 .ah-concept__tile:nth-child(7) { top: 540px; right: 0; width: 34%; }
	.akatsuki2026 .ah-concept__tile:nth-child(8) { bottom: -50px; left: 0; width: 38%; }
	.akatsuki2026 .ah-concept__title { font-size: clamp(24px, 6vw, 32px); margin: 24px 0 32px; }
	.akatsuki2026 .ah-concept__body { font-size: 14px; }

	.akatsuki2026 .ah-visit__inner {
		grid-template-columns: 1fr;
		padding: 0 24px;
		gap: 48px;
	}
	.akatsuki2026 .ah-visit__photo {
		border-top-right-radius: 56px;
		aspect-ratio: 5/3.6;
		margin-left: -24px;
		margin-top: 0;
		width: calc(100% + 24px);
	}
	.akatsuki2026 .ah-visit__title { font-size: clamp(22px, 5.6vw, 28px); margin: 24px 0 28px; }
	.akatsuki2026 .ah-visit__body { font-size: 14px; }
	.akatsuki2026 .ah-visit__btn { margin-top: 32px; }

	.akatsuki2026 .ah-medical__inner { padding: 0 24px; }
	.akatsuki2026 .ah-medical__head { margin-bottom: 56px; }
	.akatsuki2026 .ah-medical__title { font-size: clamp(48px, 14vw, 80px); margin: 0 0 24px; }
	.akatsuki2026 .ah-medical__lead { font-size: 13.5px; line-height: 2.0; }
	.akatsuki2026 .ah-medical__cards { grid-template-columns: 1fr; gap: 56px; }
	.akatsuki2026 .ah-medical__media { margin-top: 44px; margin-bottom: 24px; }
	.akatsuki2026 .ah-medical__badge { width: 80px; top: -44px; left: 0; }
	.akatsuki2026 .ah-medical__badge-num { font-size: 22px; }
	.akatsuki2026 .ah-medical__card-title { font-size: 18px; margin-bottom: 14px; }
	.akatsuki2026 .ah-medical__card-text { font-size: 13.5px; margin-bottom: 18px; }

	.akatsuki2026 .ah-health__inner {
		grid-template-columns: 1fr;
		padding: 0 24px;
		gap: 48px;
	}
	.akatsuki2026 .ah-health__visual { order: -1; }
	.akatsuki2026 .ah-health__photo { border-top-right-radius: 56px; aspect-ratio: 4/3.2; }
	.akatsuki2026 .ah-health__title { font-size: clamp(24px, 6vw, 32px); margin: 24px 0 28px; }
	.akatsuki2026 .ah-health__body { font-size: 14px; gap: 20px; }
	.akatsuki2026 .ah-health__btn { margin-top: 32px; }

	.akatsuki2026 .ah-staff__inner { padding: 0 24px; }
	.akatsuki2026 .ah-staff__head { flex-direction: column; align-items: flex-start; gap: 24px; }
	.akatsuki2026 .ah-staff__title { font-size: clamp(22px, 5.6vw, 28px); margin: 20px 0 18px; }
	.akatsuki2026 .ah-staff__lead { font-size: 14px; }
	.akatsuki2026 .ah-staff__card { flex-basis: clamp(150px, 46vw, 200px); }
	.akatsuki2026 .ah-staff__card:nth-child(even) { padding-top: 40px; }
	.akatsuki2026 .ah-staff__list { gap: 28px; }
	@keyframes ah-staff-marquee {
		from { transform: translateX(0); }
		to   { transform: translateX(calc(-50% - 14px)); }
	}

	.akatsuki2026 .ah-blog__inner { padding: 0 24px; }
	.akatsuki2026 .ah-blog__title { font-size: clamp(22px, 5.6vw, 28px); }
	.akatsuki2026 .ah-blog__layout { grid-template-columns: 1fr; gap: 36px; }
	.akatsuki2026 .ah-blog__cats-list { display: flex; flex-wrap: wrap; gap: 8px; }
	.akatsuki2026 .ah-blog__cats-list a { border-bottom: 0; padding: 8px 14px; font-size: 13px; background: var(--bg-soft); }
	.akatsuki2026 .ah-blog__cats-list a:hover { padding-left: 14px; }
	.akatsuki2026 .ah-blog__item a { grid-template-columns: 116px 1fr; gap: 16px; padding: 18px 0; }
	.akatsuki2026 .ah-blog__item-title { font-size: 14.5px; }

	.akatsuki2026 .ah-insta__inner { padding: 0 24px; }
	.akatsuki2026 .ah-insta__grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
	.akatsuki2026 .ah-insta__title { font-size: clamp(22px, 5.6vw, 28px); }

	.akatsuki2026 .ah-about__inner { grid-template-columns: 1fr; padding: 0 24px; gap: 56px; }
	.akatsuki2026 .ah-about__photo { border-top-right-radius: 40px; }
	.akatsuki2026 .ah-about__title { font-size: clamp(22px, 5.6vw, 28px); margin: 18px 0 20px; }
	.akatsuki2026 .ah-about__body { font-size: 14px; line-height: 2.0; }

	.akatsuki2026 .ah-clinic__inner {
		grid-template-columns: 1fr;
		padding: 0 24px;
		gap: 48px;
	}
	.akatsuki2026 .ah-clinic__title { font-size: clamp(22px, 5.6vw, 28px); margin: 20px 0 24px; }
	.akatsuki2026 .ah-clinic__body { font-size: 14px; gap: 20px; }
	.akatsuki2026 .ah-clinic__photo--1 { border-top-right-radius: 40px; aspect-ratio: 4/3; }

	.akatsuki2026 .ah-access__inner {
		grid-template-columns: 1fr;
		padding: 0 24px;
		gap: 36px;
	}
	.akatsuki2026 .ah-access__title { font-size: clamp(22px, 5.6vw, 28px); margin: 20px 0 28px; }
	.akatsuki2026 .ah-access__row { grid-template-columns: 64px 1fr; gap: 16px; padding: 14px 0; }
	.akatsuki2026 .ah-access__row dt { font-size: 11px; }
	.akatsuki2026 .ah-access__row dd { font-size: 13.5px; }
	.akatsuki2026 .ah-access__tel { font-size: 20px; }
	.akatsuki2026 .ah-access__map { border-top-right-radius: 40px; min-height: 280px; aspect-ratio: 4/3.4; }

	.akatsuki2026 .ah-recruit__inner {
		grid-template-columns: 1fr;
		padding: 0 24px;
		gap: 48px;
	}
	.akatsuki2026 .ah-recruit__title { font-size: clamp(22px, 5.6vw, 28px); margin: 20px 0 24px; }
	.akatsuki2026 .ah-recruit__body { font-size: 14px; gap: 18px; margin-bottom: 32px; }
	.akatsuki2026 .ah-recruit__photo {
		border-top-right-radius: 56px;
		aspect-ratio: 5/3.6;
		margin-right: -24px;
		width: calc(100% + 24px);
	}

	.akatsuki2026 .ah-cta__title { font-size: clamp(24px, 6vw, 32px); margin: 20px 0 18px; }
	.akatsuki2026 .ah-cta__lead { font-size: 14px; margin-bottom: 36px; }
	.akatsuki2026 .ah-cta__tel-num { font-size: clamp(26px, 6vw, 32px); }
	.akatsuki2026 .ah-cta__buttons { flex-direction: column; align-items: stretch; gap: 12px; width: 100%; max-width: 320px; }

	.akatsuki2026 .ah-footer__inner {
		grid-template-columns: 1fr;
		padding: 64px 24px 40px;
		gap: 48px;
	}
	.akatsuki2026 .ah-footer__nav { gap: 32px; }
	.akatsuki2026 .ah-footer__schedule { min-width: 0; width: 100%; max-width: 420px; }
	.akatsuki2026 .ah-footer__schedule .ah-schedule th,
	.akatsuki2026 .ah-footer__schedule .ah-schedule td { padding: 8px 3px; font-size: 11.5px; }
	.akatsuki2026 .ah-footer__bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
		padding: 24px 24px 40px;
	}
	.akatsuki2026 .ah-footer__legal { gap: 24px; }

	.akatsuki2026 .ah-info__inner {
		grid-template-columns: 1fr;
		padding: 0 24px;
		gap: 64px;
	}
	.akatsuki2026 .ah-info__title { font-size: clamp(22px, 5.4vw, 28px); }
	.akatsuki2026 .ah-info__item a { grid-template-columns: 100px auto 1fr; gap: 14px; padding: 18px 0; }
	.akatsuki2026 .ah-info__date { font-size: 12px; }
	.akatsuki2026 .ah-info__item-title { font-size: 13px; }
	.akatsuki2026 .ah-schedule th,
	.akatsuki2026 .ah-schedule td { font-size: 12px; padding: 10px 4px; }
	.akatsuki2026 .ah-schedule tbody th { font-size: 11px; }
	.akatsuki2026 .ah-btn { padding: 16px 22px; font-size: 13px; letter-spacing: 0.14em; }

	/* (hero mobile rules handled at the top of this 860 block) */
}
@media (max-width: 560px) {
	.akatsuki2026 { --topbar-h: 54px; --radius-hero: 40px; }
	.akatsuki2026 .ah-side { padding: 0 14px; }
	.akatsuki2026 .ah-side__mark { width: 32px; }
	.akatsuki2026 .ah-hero__media { height: 56vh; min-height: 360px; }
	.akatsuki2026 .ah-hero__title { letter-spacing: 0.1em; line-height: 1.8; }
	.akatsuki2026 .ah-hero__news { gap: 8px 12px; }
}

/* ==============================================================
   SUB-PAGES — lower pages share the 2026 chrome (header.php/footer.php)
   Scoped to .akatsuki2026--sub so the TOP page is never touched.
   Legacy content keeps css/layout.css; these rules only (a) fit it into
   the fixed-sidebar canvas, (b) repair what the 2026 reset overrides on
   legacy elements, and (c) nudge a few tones toward the 2026 brand.
   ============================================================== */
.akatsuki2026--sub .ah-canvas { background: var(--bg); }

/* Legacy page wrappers become the in-canvas content column (full width). */
.akatsuki2026--sub #container,
.akatsuki2026--sub #container_top { width: 100%; max-width: none; margin: 0; }

/* CRITICAL: keep legacy content on ITS OWN baseline. The 2026 body base
   (Noto Sans / line-height:1.95 / letter-spacing:0.04em) and the reset
   (img{display:block}) otherwise inherit into legacy markup and reflow it
   out of its fixed-height / absolutely-positioned boxes. Re-assert the
   legacy body defaults on the content wrapper so layout.css governs again. */
.akatsuki2026--sub #container,
.akatsuki2026--sub #container_top {
	font-family: "游ゴシック", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ ゴシック", sans-serif;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: normal;
	color: #2d2d2d;
}
/* Restore inline images inside legacy content (legacy has no img{display}
   rule of its own; .fit images are position:absolute so this can't touch them). */
.akatsuki2026--sub #content img { display: inline; vertical-align: top; }

/* Active section in the vertical sidebar. */
.akatsuki2026--sub .ah-side__menu a.is-current { color: var(--sun); }

/* Repair legacy link/button colours that the 2026 reset (a{color:inherit}) clobbers. */
.akatsuki2026--sub #content a { color: #2d2d2d; }
.akatsuki2026--sub #content a.button,
.akatsuki2026--sub #content a.button_03,
.akatsuki2026--sub #content a.button_04 { color: #fff; }
.akatsuki2026--sub #content a.button_02 { color: #998c59; }

/* Breadcrumb: retint the legacy khaki bar to the brand sun (white text + footprint stay legible). */
.akatsuki2026--sub #list_breadcrumb { background: #fff; color: var(--ink-mid); }
.akatsuki2026--sub #list_breadcrumb a { color: var(--ink-mid); }
.akatsuki2026--sub #list_breadcrumb a.home::before {
	background: var(--sun);
	-webkit-mask: url(../images/icon_footprint_w.svg) no-repeat center / 100% 100%;
	        mask: url(../images/icon_footprint_w.svg) no-repeat center / 100% 100%;
}

/* Page-title banner: English subtitle → Jost, to match the 2026 chrome. */
.akatsuki2026--sub .low_main_ttl span { font-family: var(--font-en-mono); letter-spacing: 0.12em; }

@media (max-width: 860px) {
	/* Clear the fixed mobile top bar so the page banner isn't hidden under it. */
	.akatsuki2026--sub .ah-canvas { padding-top: var(--topbar-h); }
}

/* ============================================================
   RESERVATION METHOD MODAL + reserve button tweaks
   (review #2082-2085 / #2090 / #2091)
   ============================================================ */
:root {
	--leaf:      #7E8C56;
	--leaf-deep: #66743F;
	--leaf-soft: #EDF0E1;
}

/* #2083 / #2084 — sidebar reserve & tel: round the bottom corners */
body.akatsuki2026 .ah-side__reserve {
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
}
body.akatsuki2026 .ah-side__tel {
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
}

/* #2085 — speech bubble above the schedule reserve button */
body.akatsuki2026 .ah-rsv-trigger { position: relative; overflow: visible; margin-top: 60px; }
body.akatsuki2026 .ah-btn__bubble {
	position: absolute;
	bottom: calc(100% + 13px);
	left: 50%;
	transform: translateX(-50%);
	white-space: nowrap;
	background: var(--white);
	color: var(--sun-deep);
	border: 1px solid var(--sun);
	border-radius: 999px;
	padding: 7px 17px;
	font-family: var(--font-ja-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.06em;
	box-shadow: 0 8px 20px rgba(31,26,21,.10);
	pointer-events: none;
}
body.akatsuki2026 .ah-btn__bubble::after,
body.akatsuki2026 .ah-btn__bubble::before {
	content: "";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	border: 6px solid transparent;
}
body.akatsuki2026 .ah-btn__bubble::after  { top: 100%; border-top-color: var(--sun); }
body.akatsuki2026 .ah-btn__bubble::before { top: calc(100% - 1.5px); border-top-color: var(--white); z-index: 1; }

/* modal shell */
body.akatsuki2026 .ah-rsv[hidden] { display: none; }
body.akatsuki2026 .ah-rsv {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	opacity: 0;
	transition: opacity .3s ease;
}
body.akatsuki2026 .ah-rsv.is-open { opacity: 1; }
body.akatsuki2026 .ah-rsv__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(31,26,21,.46);
}
body.akatsuki2026 .ah-rsv__dialog {
	position: relative;
	width: min(940px, 100%);
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	background: var(--bg-soft);
	border-radius: 22px;
	padding: clamp(30px, 4vw, 52px) clamp(20px, 4vw, 54px) clamp(24px, 3vw, 40px);
	box-shadow: 0 30px 80px rgba(31,26,21,.28);
	transform: translateY(16px);
	transition: transform .35s var(--ease-out);
}
body.akatsuki2026 .ah-rsv.is-open .ah-rsv__dialog { transform: translateY(0); }
body.akatsuki2026 .ah-rsv__close {
	position: absolute;
	top: 14px;
	right: 16px;
	width: 42px;
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 27px;
	line-height: 1;
	color: var(--ink-mute);
	background: none;
	border: none;
	cursor: pointer;
	transition: color .2s ease;
}
body.akatsuki2026 .ah-rsv__close:hover { color: var(--ink); }

body.akatsuki2026 .ah-rsv__head { text-align: center; margin-bottom: clamp(22px, 3vw, 34px); }
body.akatsuki2026 .ah-rsv__title {
	font-family: var(--font-ja-serif);
	font-size: clamp(20px, 2.4vw, 27px);
	font-weight: 600;
	color: var(--ink);
	letter-spacing: 0.04em;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
}
body.akatsuki2026 .ah-rsv__leaf { font-size: .82em; opacity: .8; }
body.akatsuki2026 .ah-rsv__sp-br { display: none; } /* #3106 PCでは改行を無効化、SPのみ有効 */
body.akatsuki2026 p.ah-rsv__lead {
	margin-top: 14px;
	font-family: var(--font-ja-sans);
	font-size: 14px;
	line-height: 1.9;
	color: var(--ink-mid);
}

body.akatsuki2026 .ah-rsv__cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(16px, 2vw, 26px);
}
body.akatsuki2026 .ah-rsv__card {
	display: flex;
	flex-direction: column;
	border-radius: 16px;
	padding: clamp(22px, 2.6vw, 32px);
	border: 1px solid var(--line-soft);
}
body.akatsuki2026 .ah-rsv__card--reserve { background: linear-gradient(180deg, #FFF6EC, #FFFDFB); }
body.akatsuki2026 .ah-rsv__card--queue   { background: linear-gradient(180deg, #F3F6EA, #FCFDF9); }
body.akatsuki2026 .ah-rsv__card-head { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
body.akatsuki2026 .ah-rsv__icon {
	flex: none;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}
body.akatsuki2026 .ah-rsv__icon svg { width: 30px; height: 30px; }
body.akatsuki2026 .ah-rsv__card--reserve .ah-rsv__icon { background: var(--sun-soft); color: var(--sun); }
body.akatsuki2026 .ah-rsv__card--queue   .ah-rsv__icon { background: var(--leaf-soft); color: var(--leaf-deep); }
body.akatsuki2026 .ah-rsv__card-title {
	font-family: var(--font-ja-serif);
	font-size: clamp(19px, 2vw, 23px);
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 10px;
}
body.akatsuki2026 .ah-rsv__card--reserve .ah-rsv__card-title { color: var(--sun); }
body.akatsuki2026 .ah-rsv__card--queue   .ah-rsv__card-title { color: var(--leaf-deep); }
body.akatsuki2026 .ah-rsv__card-arrow { font-family: var(--font-en-mono); font-weight: 400; }
body.akatsuki2026 p.ah-rsv__card-desc {
	font-family: var(--font-ja-sans);
	font-size: 13.5px;
	line-height: 1.85;
	color: var(--ink-mid);
	padding-bottom: 16px;
	margin-bottom: 16px;
	border-bottom: 1px dashed var(--line);
}
body.akatsuki2026 .ah-rsv__checks {
	list-style: none;
	margin: 0 0 22px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 11px;
}
body.akatsuki2026 .ah-rsv__checks li {
	position: relative;
	padding-left: 28px;
	font-family: var(--font-ja-sans);
	font-size: 14px;
	color: var(--ink);
}
body.akatsuki2026 .ah-rsv__checks li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 7px;
	width: 13px;
	height: 7px;
	border-left: 2px solid;
	border-bottom: 2px solid;
	transform: rotate(-45deg);
}
body.akatsuki2026 .ah-rsv__card--reserve .ah-rsv__checks li::before { border-color: var(--sun); }
body.akatsuki2026 .ah-rsv__card--queue   .ah-rsv__checks li::before { border-color: var(--leaf); }
body.akatsuki2026 .ah-rsv__btn {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 56px;
	border-radius: 12px;
	color: var(--white);
	font-family: var(--font-ja-sans);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.1em;
	transition: filter .25s ease, transform .25s ease;
}
body.akatsuki2026 .ah-rsv__btn:hover { filter: brightness(1.07); transform: translateY(-2px); }
body.akatsuki2026 .ah-rsv__btn--reserve { background: var(--sun); }
body.akatsuki2026 .ah-rsv__btn--queue   { background: var(--leaf); }
body.akatsuki2026 .ah-rsv__btn-arrow { font-family: var(--font-en-mono); font-weight: 400; }
body.akatsuki2026 p.ah-rsv__note {
	margin-top: 14px;
	text-align: center;
	font-family: var(--font-ja-sans);
	font-size: 12px;
	color: var(--ink-mute);
}
body.akatsuki2026 p.ah-rsv__foot {
	margin-top: clamp(20px, 2.6vw, 30px);
	text-align: center;
	font-family: var(--font-ja-sans);
	font-size: 12.5px;
	color: var(--ink-mute);
}
/* ============================================================
   Reservation modal — card redesign (ref: IMG_2370)
   円アイコン+肉球 / 大見出し / 予約=横並びチェック / 順番=チェック+補足リスト
   ============================================================ */
body.akatsuki2026 .ah-rsv__icon { position: relative; width: 84px; height: 84px; background: var(--white); box-shadow: inset 0 0 0 1.5px rgba(0,0,0,.05); overflow: visible; }
body.akatsuki2026 .ah-rsv__card--reserve .ah-rsv__icon,
body.akatsuki2026 .ah-rsv__card--queue   .ah-rsv__icon { background: var(--white); }
body.akatsuki2026 .ah-rsv__icon-main { width: 68px; height: 68px; margin: 0; object-fit: contain; } /* margin:0 = グローバルimg余白で下にずれ見切れるのを防止 */
body.akatsuki2026 .ah-rsv__card--reserve .ah-rsv__icon-main { color: var(--sun); }
body.akatsuki2026 .ah-rsv__card--queue   .ah-rsv__icon-main { color: var(--leaf-deep); }
body.akatsuki2026 .ah-rsv__paw { position: absolute; right: -7px; bottom: 1px; width: 25px; height: 25px; }
body.akatsuki2026 .ah-rsv__card--reserve .ah-rsv__paw { color: var(--sun); opacity: .30; }
body.akatsuki2026 .ah-rsv__card--queue   .ah-rsv__paw { color: var(--leaf); opacity: .32; }

body.akatsuki2026 .ah-rsv__card-head { align-items: center; gap: 20px; margin-bottom: 20px; }
body.akatsuki2026 .ah-rsv__card-title { display: block; flex: 1; font-size: 28px; line-height: 1.2; letter-spacing: 0.04em; } /* #4039 #4040 40→28px */

/* 予約カード：見出し下の破線 / 説明文 / 横並びチェック / オレンジ注記 */
body.akatsuki2026 .ah-rsv__card--reserve .ah-rsv__card-title { padding-bottom: 14px; border-bottom: 1px dashed var(--line); }
body.akatsuki2026 .ah-rsv__card--reserve p.ah-rsv__card-desc { border-bottom: 0; padding-bottom: 0; margin-bottom: 18px; font-size: 14.5px; line-height: 1.8; color: var(--ink); }
body.akatsuki2026 .ah-rsv__checks--row { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 10px 22px; margin-bottom: 24px; }
body.akatsuki2026 .ah-rsv__checks--row li { padding-left: 24px; }
body.akatsuki2026 p.ah-rsv__note--reserve { color: var(--sun); }

/* 順番受付カード：チェック＋補足リスト */
body.akatsuki2026 .ah-rsv__qlist { list-style: none; margin: 0 0 24px; padding: 0; }
body.akatsuki2026 .ah-rsv__qitem { display: flex; align-items: flex-start; gap: 12px; padding: 15px 2px; }
body.akatsuki2026 .ah-rsv__qitem + .ah-rsv__qitem { border-top: 1px dashed var(--line); }
body.akatsuki2026 .ah-rsv__qlist li:nth-child(1) { margin: 0 0 15px; padding: 0; }      /* #4041 / #4052 */
body.akatsuki2026 .ah-rsv__qlist li:nth-child(2) { margin: 0; padding: 15px 0; }        /* #4053 / #4054 */
body.akatsuki2026 .ah-rsv__qlist li:nth-child(3) { margin: 0; padding: 15px 0 0; }       /* #4055 */
body.akatsuki2026 .ah-rsv__qcheck { position: relative; flex: none; width: 20px; height: 20px; margin-top: 1px; }
body.akatsuki2026 .ah-rsv__qcheck::before { content: ""; position: absolute; left: 3px; top: 4px; width: 13px; height: 7px; border-left: 2.5px solid var(--leaf); border-bottom: 2.5px solid var(--leaf); transform: rotate(-45deg); }
body.akatsuki2026 .ah-rsv__qmail { flex: none; width: 20px; height: 20px; margin-top: 1px; color: var(--leaf-deep); display: flex; }
body.akatsuki2026 .ah-rsv__qmail svg { width: 20px; height: 20px; }
body.akatsuki2026 .ah-rsv__qbody { flex: 1; }
body.akatsuki2026 p.ah-rsv__qttl { margin: 0; font-family: var(--font-ja-sans); font-size: 14.5px; font-weight: 600; color: var(--ink); line-height: 1.6; }
body.akatsuki2026 p.ah-rsv__qttl--mail { font-weight: 500; }
body.akatsuki2026 p.ah-rsv__qnote { margin: 5px 0 0; font-family: var(--font-ja-sans); font-size: 12px; color: var(--ink-mid); line-height: 1.7; }

body.akatsuki2026.is-rsv-open { overflow: hidden; }

@media (max-width: 720px) {
	body.akatsuki2026 .ah-rsv__cards { grid-template-columns: 1fr; gap: 30px; } /* #3107 間隔16→30px */
	body.akatsuki2026 .ah-rsv__dialog { padding: 90px 20px 26px; } /* #3104 上34→90px */
	body.akatsuki2026 .ah-rsv__title { font-size: 18px; gap: 8px; }
	body.akatsuki2026 #rsv-title { font-size: 20px; line-height: 32px; } /* #3105 18→20px / 行間32px */
	body.akatsuki2026 #rsv-title .ah-rsv__sp-br { display: inline; } /* #3106 SPのみ改行 */
	body.akatsuki2026 .ah-btn__bubble { font-size: 11px; padding: 6px 13px; }
	body.akatsuki2026 .ah-menu__btn { margin: 20px 0; } /* #3102 上下20px */
	body.akatsuki2026 .ah-menu__emergency { padding: 10px; } /* #3103 全方向10px */
}

/* ============================================================
   OVERLAY (HAMBURGER) MENU
   ============================================================ */
body.akatsuki2026 .ah-menu {
	position: fixed;
	inset: 0;
	z-index: 60;
	background: var(--bg-soft);
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-12px);
	transition: opacity .35s ease, transform .35s var(--ease-out), visibility 0s linear .35s;
	-webkit-overflow-scrolling: touch;
}
body.akatsuki2026.is-menu-open .ah-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
	transition: opacity .35s ease, transform .35s var(--ease-out), visibility 0s linear 0s;
}
body.akatsuki2026 .ah-menu__inner {
	min-height: 100%;
	box-sizing: border-box;
	padding: calc(var(--topbar-h) + 26px) 22px 40px;
	display: flex;
	flex-direction: column;
	gap: 26px;
}
body.akatsuki2026 .ah-menu__logo { display: block; width: 350px; max-width: 100%; }
body.akatsuki2026 .ah-menu__logo img { width: 350px; max-width: 100%; height: auto; display: block; }
body.akatsuki2026 .ah-menu__nav ul { list-style: none; margin: 0; padding: 0; }
body.akatsuki2026 .ah-menu__nav li { border-bottom: 1px solid var(--line); }
body.akatsuki2026 .ah-menu__nav a {
	display: flex;
	align-items: baseline;
	gap: 14px;
	padding: 16px 4px;
}
body.akatsuki2026 .ah-menu__ja {
	font-family: var(--font-ja-serif);
	font-size: 17px;
	font-weight: 500;
	color: var(--ink);
	letter-spacing: 0.04em;
}
body.akatsuki2026 .ah-menu__en {
	font-family: var(--font-en-mono);
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--ink-mute);
}
body.akatsuki2026 .ah-menu__nav a:hover .ah-menu__ja { color: var(--sun); }

body.akatsuki2026 .ah-menu__info { display: flex; flex-direction: column; gap: 8px; }
body.akatsuki2026 .ah-menu__info .ah-section-eyebrow { margin-bottom: 6px; }
body.akatsuki2026 .ah-menu__tel {
	font-family: var(--font-en-mono);
	font-weight: 500;
	font-size: 26px;
	letter-spacing: 0.03em;
	color: var(--ink);
}
body.akatsuki2026 .ah-menu__address,
body.akatsuki2026 .ah-menu__hours {
	font-family: var(--font-ja-sans);
	font-size: 13px;
	line-height: 1.8;
	color: var(--ink-mid);
}

body.akatsuki2026 .ah-menu__cta { display: flex; flex-direction: column; gap: 12px; }
body.akatsuki2026 .ah-menu__btn-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
body.akatsuki2026 .ah-menu__btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	height: 58px;
	padding: 0 22px;
	border-radius: 12px;
	font-family: var(--font-ja-sans);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.08em;
	border: 1px solid transparent;
	transition: filter .25s ease, background-color .25s ease, color .25s ease;
}
body.akatsuki2026 .ah-menu__btn-arrow { font-family: var(--font-en-mono); font-weight: 400; }
body.akatsuki2026 .ah-menu__btn--reserve { background: var(--sun); color: var(--white); }
body.akatsuki2026 .ah-menu__btn--reserve:hover { filter: brightness(1.07); }
body.akatsuki2026 .ah-menu__btn--queue,
body.akatsuki2026 .ah-menu__btn--status {
	background: var(--white);
	color: var(--ink);
	border-color: var(--line);
	font-size: 14px;
	padding: 0 16px;
}
body.akatsuki2026 .ah-menu__btn--queue:hover,
body.akatsuki2026 .ah-menu__btn--status:hover { border-color: var(--sun); color: var(--sun); }
body.akatsuki2026 .ah-menu__sublink {
	align-self: flex-start;
	font-family: var(--font-ja-sans);
	font-size: 13px;
	color: var(--ink-mid);
	border-bottom: 1px solid var(--line);
	padding-bottom: 2px;
}
body.akatsuki2026 .ah-menu__sublink:hover { color: var(--sun); border-color: var(--sun); }
body.akatsuki2026 .ah-menu__emergency {
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 16px 18px;
	font-family: var(--font-ja-sans);
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--ink);
	text-align: center;
}

/* Wider screens: present the overlay menu as two columns */
@media (min-width: 720px) {
	body.akatsuki2026 .ah-menu__inner {
		flex-direction: row;
		flex-wrap: wrap;
		align-content: flex-start;
		gap: 40px 64px;
		padding: calc(var(--topbar-h) + 40px) clamp(40px, 8vw, 120px) 60px;
	}
	body.akatsuki2026 .ah-menu__logo { flex: 0 0 100%; }
	body.akatsuki2026 .ah-menu__nav { flex: 1 1 320px; }
	body.akatsuki2026 .ah-menu__side { flex: 1 1 320px; display: flex; flex-direction: column; gap: 26px; }
	body.akatsuki2026 .ah-menu__ja { font-size: 19px; }
}

/* Keep the old slide-in drawer off-screen — the overlay menu replaces it */
@media (max-width: 860px) {
	body.akatsuki2026.is-menu-open .ah-side__nav,
	body.akatsuki2026.is-menu-open .ah-side__foot { transform: translateX(100%); }
}

/* ============================================================
   RESERVATION MODAL — step 2 (guide) + actions
   ============================================================ */
body.akatsuki2026 .ah-rsv__step[hidden] { display: none; }
body.akatsuki2026 .ah-rsv__guide {
	background: var(--white);
	border: 1px solid var(--line-soft);
	border-radius: 16px;
	padding: clamp(22px, 2.6vw, 30px);
	margin-bottom: clamp(16px, 2vw, 24px);
}
body.akatsuki2026 h3.ah-rsv__guide-title,
body.akatsuki2026 h3.ah-rsv__apply-title {
	font-family: var(--font-ja-serif);
	font-size: 18px;
	font-weight: 600;
	color: var(--ink);
	margin-bottom: 14px;
	padding-left: 14px;
	position: relative;
}
body.akatsuki2026 h3.ah-rsv__guide-title::before,
body.akatsuki2026 h3.ah-rsv__apply-title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 4px;
	height: 18px;
	border-radius: 2px;
	background: var(--sun);
}
body.akatsuki2026 .ah-rsv__guide-text {
	font-family: var(--font-ja-sans);
	font-size: 14px;
	line-height: 1.9;
	color: var(--ink-mid);
}
body.akatsuki2026 .ah-rsv__guide-text b { color: var(--sun-deep); font-weight: 600; }
body.akatsuki2026 .ah-rsv__guide-caution {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 16px;
	padding: 12px 16px;
	background: var(--sun-soft);
	border-radius: 10px;
	font-family: var(--font-ja-sans);
	font-size: 13px;
	color: var(--sun-deep);
}
body.akatsuki2026 .ah-rsv__guide-caution-mark {
	flex: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--sun);
	color: var(--white);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 700;
}
body.akatsuki2026 .ah-rsv__apply-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(14px, 2vw, 20px);
}
body.akatsuki2026 .ah-rsv__apply-card {
	background: var(--leaf-soft);
	border-radius: 14px;
	padding: clamp(18px, 2.2vw, 24px);
}
body.akatsuki2026 .ah-rsv__apply-top {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
	padding-bottom: 12px;
	border-bottom: 1px dashed rgba(102,116,63,.32);
}
body.akatsuki2026 .ah-rsv__apply-illust {
	flex: none;
	width: 78px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
}
body.akatsuki2026 .ah-rsv__apply-illust svg { width: 100%; height: auto; display: block; }
body.akatsuki2026 p.ah-rsv__apply-head {
	font-family: var(--font-ja-serif);
	font-size: 15px;
	font-weight: 600;
	color: var(--leaf-deep);
	margin: 0;
	padding: 0;
	line-height: 1.45;
}
body.akatsuki2026 .ah-rsv__apply-text {
	font-family: var(--font-ja-sans);
	font-size: 13px;
	line-height: 1.85;
	color: var(--ink-mid);
}
body.akatsuki2026 .ah-rsv__apply-text b { color: var(--ink); font-weight: 600; }
body.akatsuki2026 .ah-rsv__actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: clamp(22px, 3vw, 32px);
}
body.akatsuki2026 .ah-rsv__back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: none;
	border: none;
	cursor: pointer;
	font-family: var(--font-ja-sans);
	font-size: 14px;
	color: var(--ink-mid);
	transition: color .2s ease;
}
body.akatsuki2026 .ah-rsv__back span { font-family: var(--font-en-mono); font-size: 18px; }
body.akatsuki2026 .ah-rsv__back:hover { color: var(--ink); }
body.akatsuki2026 .ah-rsv__proceed { flex: 0 1 320px; }

@media (max-width: 720px) {
	body.akatsuki2026 .ah-rsv__apply-cards { grid-template-columns: 1fr; }
	body.akatsuki2026 .ah-rsv__actions { flex-direction: column-reverse; align-items: stretch; }
	body.akatsuki2026 .ah-rsv__proceed { flex: none; }
	body.akatsuki2026 .ah-rsv__back { justify-content: center; }
}

/* ----- Reservation guide: phone-screen mockups (step 2) ----- */
body.akatsuki2026 .ah-rsv__screens {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(10px, 2vw, 22px);
	margin: 22px 0 4px;
}
body.akatsuki2026 .ah-rsv__screen {
	flex: 1 1 0;
	max-width: 240px;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 9px;
}
body.akatsuki2026 .ah-rsv__screen-cap {
	font-family: var(--font-ja-sans);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--sun-deep);
	background: var(--sun-soft);
	border-radius: 999px;
	padding: 5px 14px;
	text-align: center;
	line-height: 1.4;
}
body.akatsuki2026 .ah-rsv__phone {
	width: 100%;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 16px;
	box-shadow: 0 10px 26px rgba(31,26,21,.08);
	padding: 16px 16px 18px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
body.akatsuki2026 .ah-rsv__phone-brand {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--font-ja-sans);
	font-size: 11px;
	font-weight: 600;
	color: var(--ink);
}
body.akatsuki2026 .ah-rsv__phone-mark {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 120%, var(--sun) 0 55%, #F3ECC0 100%);
}
body.akatsuki2026 .ah-rsv__phone-ttl {
	margin-top: 8px;
	font-family: var(--font-ja-sans);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--ink);
}
body.akatsuki2026 .ah-rsv__phone-date {
	font-family: var(--font-ja-sans);
	font-size: 10px;
	color: var(--ink-mute);
	margin-top: 2px;
}
body.akatsuki2026 .ah-rsv__phone-bar {
	width: 100%;
	height: 3px;
	border-radius: 2px;
	margin: 10px 0 12px;
	background: linear-gradient(90deg, #BBA45A 0 38%, var(--line-soft) 38% 100%);
}
body.akatsuki2026 .ah-rsv__phone-h {
	font-family: var(--font-ja-sans);
	font-size: 13px;
	font-weight: 700;
	color: var(--ink);
}
body.akatsuki2026 .ah-rsv__phone-note {
	font-family: var(--font-ja-sans);
	font-size: 9.5px;
	line-height: 1.5;
	color: #C0473B;
	margin: 6px 0 9px;
}
body.akatsuki2026 .ah-rsv__phone-select {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	width: 100%;
	background: #EFEDEA;
	border-radius: 999px;
	padding: 8px 14px;
	font-family: var(--font-ja-sans);
	font-size: 12px;
	font-weight: 600;
	color: var(--ink);
}
body.akatsuki2026 .ah-rsv__phone-caret { color: var(--ink-mute); }
body.akatsuki2026 .ah-rsv__phone-decide {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	margin-top: 9px;
	background: #BBA45A;
	color: var(--white);
	border-radius: 8px;
	padding: 9px 0;
	font-family: var(--font-ja-sans);
	font-size: 13px;
	font-weight: 700;
}
body.akatsuki2026 .ah-rsv__phone-dd {
	width: 100%;
	margin-top: 4px;
	border-radius: 12px;
	background: linear-gradient(180deg, #F4F1EB, #FBFAF7);
	box-shadow: 0 6px 16px rgba(31,26,21,.10);
	overflow: hidden;
}
body.akatsuki2026 .ah-rsv__phone-dd-item {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 9px 10px;
	font-family: var(--font-ja-sans);
	font-size: 12px;
	color: var(--ink);
	border-bottom: 1px solid rgba(31,26,21,.06);
}
body.akatsuki2026 .ah-rsv__phone-dd-item:last-child { border-bottom: none; }
body.akatsuki2026 .ah-rsv__phone-dd-item.is-current { color: var(--ink-mute); background: rgba(255,255,255,.6); }
body.akatsuki2026 .ah-rsv__phone-dd-emoji { font-size: 14px; }
body.akatsuki2026 .ah-rsv__screens-arrow {
	flex: none;
	font-family: var(--font-en-mono);
	font-size: 26px;
	color: var(--sun);
}

@media (max-width: 560px) {
	body.akatsuki2026 .ah-rsv__screens { flex-direction: column; }
	body.akatsuki2026 .ah-rsv__screen { max-width: 260px; }
	body.akatsuki2026 .ah-rsv__screens-arrow { transform: rotate(90deg); }
}

/* ----- Reservation step 3 : queue reception guide ----- */
body.akatsuki2026 .ah-rsv__paw {
	width: 18px;
	height: 18px;
	color: var(--leaf);
	flex: none;
}
body.akatsuki2026 .ah-rsv__title--paw .ah-rsv__paw { width: 22px; height: 22px; }
body.akatsuki2026 .ah-rsv__dotline {
	display: block;
	width: 130px;
	height: 0;
	margin: 14px auto 0;
	border-top: 2px dotted var(--sun);
	opacity: .85;
}
body.akatsuki2026 .ah-rsv__queue-list {
	list-style: none;
	margin: clamp(22px, 3vw, 32px) auto 0;
	padding: 0;
	max-width: 560px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
body.akatsuki2026 .ah-rsv__queue-list li {
	display: flex;
	align-items: flex-start;
	gap: 13px;
}
body.akatsuki2026 .ah-rsv__queue-paw {
	flex: none;
	display: inline-flex;
	margin-top: 3px;
}
body.akatsuki2026 .ah-rsv__queue-paw .ah-rsv__paw { width: 20px; height: 20px; }
body.akatsuki2026 .ah-rsv__queue-list p {
	font-family: var(--font-ja-sans);
	font-size: 14.5px;
	line-height: 1.85;
	color: var(--ink);
}
body.akatsuki2026 .ah-rsv__queue-art-wrap {
	display: flex;
	justify-content: center;
	margin: clamp(20px, 3vw, 30px) 0 clamp(8px, 1.5vw, 16px);
}
body.akatsuki2026 .ah-rsv__queue-art {
	width: 100%;
	max-width: 320px;
	height: auto;
}

/* ----- Overlay menu close button (esp. for desktop where it covers the page) ----- */
body.akatsuki2026 .ah-menu__close {
	position: absolute;
	top: 16px;
	right: 20px;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 30px;
	line-height: 1;
	color: var(--ink-mid);
	background: none;
	border: none;
	cursor: pointer;
	z-index: 3;
	transition: color .2s ease;
}
body.akatsuki2026 .ah-menu__close:hover { color: var(--ink); }

/* ============================================================
   Review #2238-2245 — SP (mobile) adjustments
   ============================================================ */
body.akatsuki2026 .ah-side__logo-sp { display: none; }
body.akatsuki2026 .ah-blog__cats-select-wrap { display: none; }

@media (max-width: 860px) {
	/* #2238 hero logo hidden; full logo moves into the mobile header bar */
	body.akatsuki2026 .ah-hero__logo { display: none; }
	body.akatsuki2026 .ah-side__mark { width: auto; height: auto; }
	body.akatsuki2026 .ah-side__mark svg { display: none; }
	body.akatsuki2026 .ah-side__logo-sp { display: block; height: 26px; width: auto; }

	/* #2239 / #2240 hide the 埼玉 / 東松山 place label */
	body.akatsuki2026 .ah-hero__place { display: none; }

	/* #2241 concept text — add 60px top padding */
	body.akatsuki2026 .ah-concept__text { padding-top: 60px; }

	/* #2242 blog categories become a styled select box */
	body.akatsuki2026 .ah-blog__cats-list { display: none; }
	body.akatsuki2026 .ah-blog__cats-select-wrap { display: block; position: relative; max-width: 360px; }
	body.akatsuki2026 .ah-blog__cats-select-wrap::after {
		content: "";
		position: absolute;
		right: 18px;
		top: 50%;
		width: 9px;
		height: 9px;
		border-right: 2px solid var(--sun);
		border-bottom: 2px solid var(--sun);
		transform: translateY(-72%) rotate(45deg);
		pointer-events: none;
	}
	body.akatsuki2026 .ah-blog__cats-select {
		-webkit-appearance: none;
		appearance: none;
		width: 100%;
		padding: 15px 46px 15px 20px;
		border: 1px solid var(--line);
		border-radius: 14px;
		background: var(--white);
		box-shadow: 0 6px 18px rgba(31,26,21,.06);
		font-family: var(--font-ja-sans);
		font-size: 15px;
		font-weight: 500;
		letter-spacing: 0.04em;
		color: var(--ink);
		cursor: pointer;
	}
	body.akatsuki2026 .ah-blog__cats-select:focus { outline: none; border-color: var(--sun); }

	/* #2243 footer — make left/right symmetric (center the brand block) */
	body.akatsuki2026 .ah-footer__brand { text-align: center; }

	/* #2244 hide the サイトマップ link on SP */
	body.akatsuki2026 .ah-footer__sitemap-link { display: none; }

	/* #2245 footer contact — center align */
	body.akatsuki2026 .ah-footer__contact { text-align: center; }
}

/* ============================================================
   Review #2252-2257 — SP (mobile) adjustments
   ============================================================ */
body.akatsuki2026 .ah-blog__more--sp { display: none; }

@media (max-width: 860px) {
	/* #2252 hide the Japanese "カテゴリー" label (select box already labels it) */
	body.akatsuki2026 .ah-blog__cats-ja { display: none; }

	/* #2253 remove the category title bottom border */
	body.akatsuki2026 .ah-blog__cats-title { border-bottom: 0; }

	/* #2254 move "ブログ一覧" beneath the cards */
	body.akatsuki2026 .ah-blog__cats .ah-blog__more { display: none; }
	body.akatsuki2026 .ah-blog__more--sp { display: flex; justify-content: center; margin-top: 28px; }

	/* #2255 / #2256 about headings — per-heading sizes */
	body.akatsuki2026 #health-heading { font-size: 24px; } /* #3116 20→24px */
	body.akatsuki2026 #clinic-heading { font-size: 24px; } /* #3118 21→24px */

	/* #2257 footer was overflowing right — center & fit the content */
	body.akatsuki2026 .ah-footer__notes { max-width: 100%; text-align: center; align-items: center; }
	body.akatsuki2026 .ah-footer__notes p { text-align: center; }
	body.akatsuki2026 .ah-footer__nav {
		grid-template-columns: repeat(3, auto);
		gap: 14px;
		justify-content: center;
		text-align: center;
	}
	body.akatsuki2026 .ah-footer__nav-col a { font-size: 13px; letter-spacing: 0.04em; }
	body.akatsuki2026 .ah-footer__schedule,
	body.akatsuki2026 .ah-footer__schedule .ah-schedule__notes { text-align: center; }
	body.akatsuki2026 .ah-footer__schedule { margin-inline: auto; }
}

/* ============================================================
   Review #2260-2267 — SP (mobile) spacing
   ============================================================ */
@media (max-width: 860px) {
	/* #2260 remove the footer navigation on SP (hamburger covers it) */
	body.akatsuki2026 .ah-footer__nav { display: none; }

	/* #2266 visit / #2267 concept / #2261 recruit — 20px below heading */
	body.akatsuki2026 #visit-heading { margin: 0 0 20px; }
	body.akatsuki2026 #concept-heading { margin-bottom: 20px; }
	body.akatsuki2026 #recruit-heading { margin: 0 0 20px; }

	/* #2264 staff / #2263 health / #2262 clinic — 10px below heading */
	body.akatsuki2026 #staff-heading { margin: 0 0 10px; }
	body.akatsuki2026 #health-heading { margin: 0 0 10px; }
	body.akatsuki2026 #clinic-heading { margin: 0 0 10px; }

	/* #2265 medical card title — 10px below (h3. beats the scoped h3 reset) */
	body.akatsuki2026 h3.ah-medical__card-title { margin: 0 0 10px; }
}

/* ============================================================
   Review #3108-3119 — SP (mobile) heading font sizes & spacing
   ============================================================ */
body.akatsuki2026 .ah-sp-br { display: none; } /* SPのみ改行（PCでは無効） */
@media (max-width: 860px) {
	body.akatsuki2026 #hero-heading { font-size: 28px; line-height: 40px; } /* #3108 22.4→28px / 行間40px */
	body.akatsuki2026 #concept-heading span { font-size: 28px; } /* #3109 #3110 24.8→28px */
	body.akatsuki2026 #visit-heading { font-size: 24px; } /* #3111 23.2→24px */
	body.akatsuki2026 #medical-heading { padding-bottom: 10px; } /* #3112 下10px */
	body.akatsuki2026 h3.ah-medical__card-title { font-size: 20px; } /* #3113 18→20px */
	body.akatsuki2026 .ah-medical__cards { gap: 40px; } /* #3114 56→40px */
	body.akatsuki2026 #blog-heading { font-size: 24px; } /* #3115 23.2→24px */
	body.akatsuki2026 #recruit-heading { font-size: 24px; } /* #3119 23.2→24px */
	body.akatsuki2026 .ah-sp-br { display: inline; }
}

/* ============================================================
   Review #2297-2301 — PC heading spacing
   ============================================================ */
@media (min-width: 861px) {
	body.akatsuki2026 #concept-heading { margin: 0 0 40px; }
	body.akatsuki2026 #visit-heading { margin: 0 0 30px; }
	body.akatsuki2026 #staff-heading { margin: 0 0 10px; }
	body.akatsuki2026 #health-heading { margin: 0 0 15px; }
	body.akatsuki2026 #recruit-heading { margin: 0 0 30px; line-height: 60px; }
}

/* ============================================================
   Mobile horizontal-overflow fix + hero place label removal
   ============================================================ */
/* #2346 / #2347 — remove the 埼玉/東松山 place label on PC & SP */
body.akatsuki2026 .ah-hero__place { display: none; }

@media (max-width: 860px) {
	/* The legacy slide-in drawer (replaced by .ah-menu overlay) sat off-screen
	   to the right and caused horizontal scroll/jitter — remove it on mobile. */
	body.akatsuki2026 .ah-side__nav,
	body.akatsuki2026 .ah-side__foot { display: none; }
	/* Safety net: clip any horizontal bleed so the page never scrolls sideways
	   (overflow-x:clip does not create a scroll container or affect vertical scroll). */
	body.akatsuki2026 .ah-canvas { overflow-x: clip; }
}

/* ============================================================
   Reservation modal — mobile: scroll from the top so the header
   (text above the cards) is never clipped behind / above the cards.
   + #2396 card CTA gets 20px top margin.
   ============================================================ */
body.akatsuki2026 button.ah-rsv__btn { margin-top: 20px; }

@media (max-width: 720px) {
	body.akatsuki2026 .ah-rsv { align-items: flex-start; overflow-y: auto; }
	body.akatsuki2026 .ah-rsv__dialog { max-height: none; }
}

/* Reservation modal — SP: title wraps cleanly (2 lines) as its own tier,
   subtitle as the 2nd tier, 60px gap below the subtitle. */
@media (max-width: 720px) {
	body.akatsuki2026 .ah-rsv__title { display: block; line-height: 1.55; }
	body.akatsuki2026 .ah-rsv__title .ah-rsv__leaf { display: inline-block; vertical-align: middle; margin: 0 6px; }
	body.akatsuki2026 .ah-rsv__head { margin-bottom: 60px; }
}

/* ============================================================
   #FAB — SP fixed reservation button (bottom-right) that opens
   the reservation modal via [data-reserve]. On mobile the modal's
   STEP-1 header (title + lead) is hidden so the two choice cards
   show directly. (client request 2026-07-06)
   ============================================================ */
body.akatsuki2026 .ah-rsv-fab { display: none; }

@media (max-width: 860px) {
	body.akatsuki2026 .ah-rsv-fab {
		display: inline-flex;
		align-items: center;
		gap: 7px;
		position: fixed;
		right: 14px;
		bottom: calc(16px + env(safe-area-inset-bottom, 0px));
		z-index: 30;
		margin: 0;
		padding: 12px 19px 12px 16px;
		background: var(--sun);
		color: var(--white);
		border: none;
		border-radius: 999px;
		font-family: var(--font-ja-sans);
		font-size: 15px;
		font-weight: 700;
		letter-spacing: 0.05em;
		line-height: 1;
		box-shadow: 0 6px 20px rgba(31, 26, 21, .24);
		cursor: pointer;
		-webkit-appearance: none;
		appearance: none;
		-webkit-tap-highlight-color: transparent;
		transition: transform .25s var(--ease-out), box-shadow .25s var(--ease-out), background .25s var(--ease-out);
	}
	body.akatsuki2026 .ah-rsv-fab:hover { background: var(--sun-deep); }
	body.akatsuki2026 .ah-rsv-fab:active { transform: scale(.95); box-shadow: 0 3px 12px rgba(31, 26, 21, .22); }
	body.akatsuki2026 .ah-rsv-fab__icon {
		width: 21px;
		height: 21px;
		flex: 0 0 auto;
		display: block;
	}
	body.akatsuki2026 .ah-rsv-fab__icon svg { width: 100%; height: 100%; display: block; margin: 0; }
	body.akatsuki2026 .ah-rsv-fab__label { display: block; }

	/* Modal STEP 1 — hide header (title + lead) on mobile, go straight to cards. */
	body.akatsuki2026 .ah-rsv__step[data-rsv-step="1"] .ah-rsv__head { display: none; }
}

/* ============================================================
   Reservation modal — front-page card tidy per review #4601-4605
   説明文(ah-rsv__card-desc)削除に伴い、予約カード見出し下の破線を除去。
   予約チェックは横並び(--row)をやめ縦並び（HTML側でクラス除去）。 (2026-07-06)
   ============================================================ */
body.akatsuki2026 .ah-rsv__card--reserve .ah-rsv__card-title { padding-bottom: 0; border-bottom: 0; }

/* ============================================================
   Reservation modal — list nested UNDER the title (right column
   of the head), both cards share the same .ah-rsv__checks style.
   (client request 2026-07-06)
   ============================================================ */
body.akatsuki2026 .ah-rsv__card-head { align-items: flex-start; }
body.akatsuki2026 .ah-rsv__card-body { flex: 1; min-width: 0; }
body.akatsuki2026 .ah-rsv__card-body .ah-rsv__card-title { margin-bottom: 14px; }
body.akatsuki2026 .ah-rsv__card-body .ah-rsv__checks { margin-bottom: 0; }

/* ============================================================
   Reservation modal — SP fine-tune per review #4606 / #4607
   (card title 28→24px; card buttons drop the 20px top margin). 全ページ共通
   ============================================================ */
@media (max-width: 720px) {
	body.akatsuki2026 .ah-rsv__card-title { font-size: 24px; } /* #4606 */
	body.akatsuki2026 button.ah-rsv__btn { margin: 0; }        /* #4607 */
}

/* ============================================================
   Reservation modal STEP 3 — centered guide text, caution note,
   actions stacked (button → caution → back) on all sizes. (2026-07-06)
   ============================================================ */
body.akatsuki2026 .ah-rsv__queue-text { margin: clamp(22px, 3vw, 30px) auto 0; max-width: 560px; text-align: center; }
body.akatsuki2026 .ah-rsv__queue-text p { font-family: var(--font-ja-sans); font-size: 14.5px; line-height: 1.9; color: var(--leaf-deep); }
body.akatsuki2026 .ah-rsv__queue-text p + p { margin-top: 16px; }
body.akatsuki2026 .ah-rsv__step[data-rsv-step="3"] .ah-rsv__actions { flex-direction: column-reverse; align-items: stretch; gap: 14px; }
body.akatsuki2026 .ah-rsv__step[data-rsv-step="3"] .ah-rsv__proceed { flex: none; }
body.akatsuki2026 .ah-rsv__step[data-rsv-step="3"] .ah-rsv__back { justify-content: center; }
body.akatsuki2026 .ah-rsv__queue-caution { margin: 0; text-align: center; font-family: var(--font-ja-sans); font-size: 12.5px; line-height: 1.8; color: var(--ink-mute); }

/* ============================================================
   ご来院の流れ（受付・待合い室）— /goraiinnnomaeni/ に追加 (2026-07-06)
   ============================================================ */
body.akatsuki2026 .ah-flow { max-width: 1000px; margin: 0 auto; }
body.akatsuki2026 .ah-flow__head { text-align: center; margin: 4px 0 30px; }
body.akatsuki2026 .ah-flow__badge { display: inline-block; background: var(--sun-soft); color: var(--sun-deep); font-family: var(--font-ja-serif); font-size: clamp(17px,2vw,20px); font-weight: 600; letter-spacing: .08em; padding: 11px 32px; border-radius: 999px; }
body.akatsuki2026 .ah-flow__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(26px,4vw,54px); align-items: center; }
body.akatsuki2026 .ah-flow__map { position: relative; width: 100%; aspect-ratio: 10/8; background: #FBFAF7; border: 2px dashed #E6DFD2; border-radius: 18px; }
body.akatsuki2026 .ah-flow__zone { position: absolute; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border-radius: 14px; font-family: var(--font-ja-sans); font-weight: 700; text-align: center; line-height: 1.35; padding: 6px; }
body.akatsuki2026 .ah-flow__zone-icon { font-size: clamp(22px,3vw,30px); line-height: 1; }
body.akatsuki2026 .ah-flow__zone--cat { top: 7%; left: 6%; width: 40%; height: 34%; background: #F4EBF7; border: 2px solid #D3B4DF; color: #8A66A6; font-size: 14px; }
body.akatsuki2026 .ah-flow__zone--dog { top: 27%; right: 6%; width: 42%; height: 55%; background: #E9F1F8; border: 2px solid #A9C6DC; color: #55809F; font-size: 15px; }
body.akatsuki2026 .ah-flow__reception { position: absolute; box-sizing: border-box; bottom: 8%; left: 33%; width: 31%; height: 15%; display: flex; align-items: center; justify-content: center; background: #E15B5B; color: #fff; border-radius: 12px; font-family: var(--font-ja-sans); font-size: clamp(11px,1.4vw,13px); font-weight: 700; text-align: center; box-shadow: 0 6px 15px rgba(225,91,91,.28); }
body.akatsuki2026 .ah-flow__entrance { position: absolute; box-sizing: border-box; bottom: 8%; left: 6%; width: 22%; height: 13%; display: flex; align-items: center; justify-content: center; background: #fff; border: 2px solid var(--sun); color: var(--sun-deep); border-radius: 10px; font-size: 13px; font-weight: 700; }
body.akatsuki2026 .ah-flow__pay { position: absolute; top: 44%; left: 9%; font-size: 11.5px; color: var(--ink-mute); font-family: var(--font-ja-sans); }
body.akatsuki2026 .ah-flow__arrow { position: absolute; left: calc(48% - 9px); bottom: 25%; width: 0; height: 0; border-left: 9px solid transparent; border-right: 9px solid transparent; border-top: 15px solid #7E8C56; }
body.akatsuki2026 .ah-flow__text { font-family: var(--font-ja-sans); }
body.akatsuki2026 .ah-flow__text p { font-size: clamp(14px,1.6vw,15.5px); line-height: 1.95; color: var(--ink); margin: 0 0 18px; }
body.akatsuki2026 .ah-flow__text p:last-child { margin-bottom: 0; }
body.akatsuki2026 .ah-flow__text mark { background: none; color: #D8443B; font-weight: 700; border-bottom: 2px solid rgba(216,68,59,.28); }
body.akatsuki2026 .ah-flow__text small { display: inline-block; font-size: 12px; color: var(--ink-mute); }
body.akatsuki2026 .ah-flow__note { font-size: 13px !important; color: #55809F !important; line-height: 1.85 !important; }
@media (max-width: 720px) {
	body.akatsuki2026 .ah-flow__grid { grid-template-columns: 1fr; gap: 26px; }
	body.akatsuki2026 .ah-flow__map { max-width: 380px; margin: 0 auto; }
}

/* ご来院の流れ — zone icons as inline SVG (emoji unreliable in headless/some envs) */
body.akatsuki2026 .ah-flow__zone-icon { width: clamp(26px,3.4vw,34px); height: auto; color: inherit; }
body.akatsuki2026 .ah-flow__zone-icon svg { width: 100%; height: auto; display: block; }

/* Reservation modal — SP: tighten checklist gap per review #4608 (11→5px) */
@media (max-width: 720px) {
	body.akatsuki2026 .ah-rsv__checks { gap: 5px; }
}

/* Reservation modal — CTA button arrow pinned to the right edge (dialog buttons) */
body.akatsuki2026 .ah-rsv__dialog .ah-rsv__btn { position: relative; }
body.akatsuki2026 .ah-rsv__dialog .ah-rsv__btn .ah-rsv__btn-arrow { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); }

/* ご来院の流れ — 実画像（PPTX受付・待合い室図）に差し替え */
body.akatsuki2026 .ah-flow__img { display: block; width: 100%; max-width: 880px; height: auto; margin: 0 auto; }

/* ご来院の流れ — 図は実画像（左カラム）、テキストは右カラム */
body.akatsuki2026 .ah-flow__map { position: static; aspect-ratio: auto; background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
body.akatsuki2026 .ah-flow__map-img { display: block; width: 100%; height: auto; }

/* ご来院の流れ — 図の外線を除去（受付・待合い室バッジも削除済） */
body.akatsuki2026 .ah-flow__map { border: none; border-radius: 0; overflow: visible; }

/* 横はみ出しのセーフティネットをPCにも拡張（従来モバイル≤860px限定）。
   スタッフのマーキー等が画面幅を超えると横スクロールが発生し、固定サイドバー下に
   コンテンツが潜り込むため、canvas全体で横方向をクリップ（縦スクロール/sticky非干渉）。 */
body.akatsuki2026 .ah-canvas { overflow-x: clip; }

/* ==========================================================================
   予約モーダル STEP2「ご予約前のご確認」 (2026-07-13 / ref PNG 90015C16)
   ヘッダー予約受付 → 予約をする で開く確認画面。旧「予約ガイド(電話モック)」を差し替え。
   ========================================================================== */
body.akatsuki2026 .ah-rsv__step--confirm { max-width: 540px; margin-left: auto; margin-right: auto; }
/* タイトル/フッターの肉球を確実にインライン表示（.ah-rsv__paw は既定 position:absolute のため上書き） */
body.akatsuki2026 .ah-rsv__title--paw .ah-rsv__paw,
body.akatsuki2026 .ah-rsv__brand-paws .ah-rsv__paw { position: static; right: auto; bottom: auto; }
body.akatsuki2026 .ah-rsv__title--confirm .ah-rsv__paw { color: var(--sun); }
/* title--paw 見出し（STEP2確認・STEP3順番受付）は肉球を左右インライン＋ドット線を下段中央に。
   グローバル svg{display:block}（25行）と SP の .ah-rsv__title{display:block}（STEP1向け）を上書き。 */
body.akatsuki2026 .ah-rsv__title.ah-rsv__title--paw {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
}
body.akatsuki2026 .ah-rsv__title--paw .ah-rsv__paw { flex: none; }
body.akatsuki2026 .ah-rsv__step--confirm .ah-rsv__head,
body.akatsuki2026 .ah-rsv__step[data-rsv-step="3"] .ah-rsv__head { display: block; text-align: center; }

/* 確認カード（3項目・点線区切り） */
body.akatsuki2026 .ah-rsv__confirm {
	list-style: none;
	margin: clamp(4px, 1vw, 10px) 0 0;
	padding: clamp(6px, 1.4vw, 14px) clamp(16px, 2.4vw, 26px);
	background: linear-gradient(180deg, #FFF9F1, #FFFDFB);
	border: 1px solid var(--line-soft);
	border-radius: 18px;
}
body.akatsuki2026 .ah-rsv__confirm-item {
	display: flex;
	align-items: center;
	gap: clamp(12px, 2.2vw, 22px);
	padding: clamp(14px, 2vw, 20px) 4px;
}
body.akatsuki2026 .ah-rsv__confirm-item + .ah-rsv__confirm-item { border-top: 1px dashed var(--line); }
body.akatsuki2026 .ah-rsv__confirm-icon { flex: none; width: clamp(52px, 9vw, 68px); display: flex; }
body.akatsuki2026 .ah-rsv__confirm-icon img { width: 100%; height: auto; margin: 0; display: block; }
body.akatsuki2026 p.ah-rsv__confirm-text {
	flex: 1;
	margin: 0;
	font-family: var(--font-ja-sans);
	font-size: clamp(15px, 2.3vw, 18px);
	font-weight: 500;
	line-height: 1.6;
	color: var(--ink);
}
body.akatsuki2026 .ah-rsv__confirm-text b { font-weight: 700; }
body.akatsuki2026 .ah-rsv__confirm-text b.is-green { color: #57A93A; }
body.akatsuki2026 .ah-rsv__confirm-text b.is-sun   { color: var(--sun-deep); }

/* 大きな予約CTA */
body.akatsuki2026 .ah-rsv__cta {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	margin-top: clamp(18px, 2.6vw, 26px);
	padding: clamp(16px, 2.4vw, 22px) clamp(18px, 3vw, 28px);
	background: var(--sun);
	color: var(--white);
	border-radius: 16px;
	box-shadow: 0 12px 24px rgba(201, 126, 37, .26);
	transition: filter .2s ease, transform .2s ease;
}
body.akatsuki2026 .ah-rsv__cta:hover { filter: brightness(1.06); transform: translateY(-2px); }
body.akatsuki2026 .ah-rsv__cta-ico { flex: none; width: clamp(28px, 4vw, 34px); display: flex; }
body.akatsuki2026 .ah-rsv__cta-ico svg { width: 100%; height: auto; }
body.akatsuki2026 .ah-rsv__cta-label {
	flex: 1;
	text-align: center;
	font-family: var(--font-ja-sans);
	font-size: clamp(19px, 3vw, 25px);
	font-weight: 700;
	letter-spacing: 0.08em;
}
body.akatsuki2026 .ah-rsv__cta-arrow { flex: none; font-family: var(--font-en-mono); font-weight: 400; font-size: 1.5em; line-height: 1; opacity: .92; }

/* CTA下の注記（中央・オレンジ） */
body.akatsuki2026 .ah-rsv__step--confirm p.ah-rsv__note { margin-top: 14px; font-size: 13.5px; }
body.akatsuki2026 p.ah-rsv__note--center { text-align: center; }

/* 戻るボタン2種（1つ前に戻る / メニューに戻る） */
body.akatsuki2026 .ah-rsv__nav {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: clamp(20px, 2.8vw, 28px);
}
body.akatsuki2026 .ah-rsv__navbtn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 15px 46px;
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 12px;
	cursor: pointer;
	font-family: var(--font-ja-sans);
	font-size: 15px;
	font-weight: 600;
	color: var(--ink-mid);
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
body.akatsuki2026 .ah-rsv__navbtn:hover { background: var(--bg-soft); border-color: var(--sun); color: var(--ink); }
body.akatsuki2026 .ah-rsv__navbtn-ico { position: absolute; top: 50%; transform: translateY(-50%); font-family: var(--font-en-mono); font-size: 18px; line-height: 1; color: var(--ink-mute); }
body.akatsuki2026 .ah-rsv__navbtn-ico--l { left: 18px; }
body.akatsuki2026 .ah-rsv__navbtn-ico--r { right: 18px; }
body.akatsuki2026 .ah-rsv__navbtn--prev .ah-rsv__navbtn-ico { color: var(--sun); }

/* ブランドフッター（ロゴ＋肉球） */
body.akatsuki2026 .ah-rsv__brand {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-top: clamp(22px, 3vw, 30px);
	padding-top: clamp(18px, 2.4vw, 24px);
	border-top: 1px solid var(--line-soft);
}
body.akatsuki2026 .ah-rsv__brand-logo { width: auto; height: 26px; opacity: .9; }
body.akatsuki2026 .ah-rsv__brand-paws { display: inline-flex; gap: 5px; }
body.akatsuki2026 .ah-rsv__brand-paws .ah-rsv__paw { width: 16px; height: 16px; color: var(--sun); opacity: .3; }

@media (max-width: 720px) {
	body.akatsuki2026 .ah-rsv__cta-label { letter-spacing: 0.04em; }
	body.akatsuki2026 .ah-rsv__brand-logo { height: 22px; }
	/* #5387 SP：確認画面ヘッダーの下余白 60→30px（この確認stepのheadのみ／STEP1・3のheadは60pxのまま） */
	body.akatsuki2026 .ah-rsv__step--confirm .ah-rsv__head { margin-bottom: 30px; }
	/* #5389 SP：確認リスト各項目の内側余白 padding 10px 0 10px 0（上下10px・左右0／全 confirm-item 共通・全ページ）。#5388 の margin 指定から padding へ切替 */
	body.akatsuki2026 .ah-rsv__confirm-item { padding: 10px 0; }
}

/* =========================================
   websupport #7663-7682 反映（2026-07-25・トップの字間/サイズ/余白/色 微調整・PC/SP両方）
   ========================================= */
/* 字間3px：アイブロウラベル（同一クラス全て・全ページ共通） #7664 #7667 #7673 #7675 */
body.akatsuki2026 .ah-section-eyebrow__label { letter-spacing: 3px; }

/* 見出しの字間3px（＋一部サイズ）。ID指定＝当該要素のみ */
body.akatsuki2026 #hero-heading   { font-size: 30px; letter-spacing: 3px; } /* #7663 */
body.akatsuki2026 #concept-heading > span:nth-of-type(1) { letter-spacing: 3px; } /* #7666 */
body.akatsuki2026 #visit-heading  { letter-spacing: 3px; }                   /* #7665 */
body.akatsuki2026 #staff-heading  { letter-spacing: 3px; }                   /* #7672 */
body.akatsuki2026 #blog-heading   { letter-spacing: 3px; }                   /* #7674 */
body.akatsuki2026 #health-heading { font-size: 24px; letter-spacing: 3px; }  /* #7679 */
body.akatsuki2026 #recruit-heading{ font-size: 34px; letter-spacing: 3px; }  /* #7681 */

/* セクション別アイブロウ font-size（字間は上の共通ルールで3px済み） */
body.akatsuki2026 .ah-about   .ah-section-eyebrow__label { font-size: 13px; } /* #7680 health */
body.akatsuki2026 .ah-recruit .ah-section-eyebrow__label { font-size: 14px; } /* #7682 recruit */

/* medical カード：バッジを白（枠・背景）、タイトル/本文の下マージン10px */
body.akatsuki2026 .ah-medical__badge { border-color: #ffffff; background-color: #ffffff; } /* #7668 #7669 */
body.akatsuki2026 h3.ah-medical__card-title { margin: 0 0 10px 0; }          /* #7670（h3.でトップ用h3リセットに勝つ） */
body.akatsuki2026 p.ah-medical__card-text  { margin: 0 0 10px 0; }           /* #7671（p.でトップ用pリセットに勝つ） */

/* blog カテゴリ見出し：EN 17px/字間3px、JA「カテゴリー」は非表示 */
body.akatsuki2026 .ah-blog__cats-en { font-size: 17px; letter-spacing: 3px; } /* #7676 */
body.akatsuki2026 .ah-blog__cats-ja { display: none; }                       /* #7677 */

/* Instagram「もっと見る」：上パディング25px */
body.akatsuki2026 .ah-insta__more-link { padding: 25px 0 14px 0; }           /* #7678 */

/* =========================================
   websupport #7683-7695 反映（2026-07-25 第2バッチ・トップ 追加調整・PC/SP両方）
   ========================================= */
body.akatsuki2026 #medical-heading { font-size: 70px; margin: 0 0 10px 0; }  /* #7683（IDでリセットに勝つ） */
body.akatsuki2026 h3.ah-blog__item-title { font-size: 17px; }                /* #7685 */
body.akatsuki2026 .ah-blog__meta time { font-size: 12px; letter-spacing: 1px; } /* #7686 */
body.akatsuki2026 .ah-insta .ah-section-eyebrow__label { font-size: 40px; margin: 0 0 10px 0; } /* #7687 insta eyebrow */
body.akatsuki2026 .ah-insta__more-text { font-size: 13px; letter-spacing: 2px; } /* #7688 */
body.akatsuki2026 #clinic-heading { font-size: 24px; letter-spacing: 2px; }  /* #7689 */
body.akatsuki2026 p.ah-footer__address { margin: 0 0 10px 0; }               /* #7693（p.でリセットに勝つ） */
body.akatsuki2026 p.ah-footer__copy { font-weight: 300; letter-spacing: 2px; } /* #7694 */
body.akatsuki2026 .ah-side__ja { font-size: 14px; letter-spacing: 2px; }     /* #7695 sidebar nav */
