/* Review v2 — existing photography, clear visit information, preserved intake. */
:root { --sumi:#151310; --kura:#1d1a16; --kura-2:#28221c; --kinari:#f5f0e7; --haiiro:#c1b8ab; --kohaku:#dbb781; --shu:#bd383e; --shu-deep:#992b31; --line:rgba(245,240,231,.16); --line-strong:rgba(245,240,231,.3); --gutter:clamp(1.25rem,4vw,3rem); --shell:76rem; }
html { scroll-padding-top:7rem; }
body { line-height:1.8; }
h1,h2,h3 { font-weight:500; }
h2 { font-size:clamp(1.9rem,3.25vw,3rem); line-height:1.5; }
.eyebrow { gap:.7rem; margin-bottom:1.1rem; font-size:.65rem; letter-spacing:.16em; font-weight:600; color:var(--kohaku); }
.eyebrow::before { width:1.5rem; height:1px; border:0; background:currentColor; }
.eyebrow span { padding-left:.7rem; border-left:1px solid var(--line-strong); font-size:.65rem; letter-spacing:.1em; }
.site-header { background:rgba(21,19,16,.97); border-bottom:1px solid var(--line); }
.header-inner { min-height:5.2rem; gap:1.5rem; }
.brand { gap:.6rem; }
.brand img { width:38px; height:38px; }
.brand-text { font-size:1.18rem; }
.brand-text em { color:var(--kinari); font-size:.56rem; letter-spacing:.15em; }
.status-chip { display:none !important; }
.header-tel { white-space:nowrap; display:none; }
.header-tel b { font-family:var(--sans); font-size:.95rem; letter-spacing:0; }
.header-tel span[aria-hidden] { letter-spacing:.1em; }
.global-nav a { white-space:nowrap; }
.global-nav .nav-cta[aria-current="page"] { color:#fff; }
.nav-toggle { min-width:44px; min-height:44px; border-radius:0; }
.button { border-radius:2px; min-height:52px; padding:.8rem 1.3rem; font-size:.9rem; letter-spacing:.025em; text-align:center; overflow-wrap:anywhere; }
.button-primary { background:var(--shu); border-color:var(--shu); }
.button span[aria-hidden],.text-link span[aria-hidden] { margin-left:auto; }
.text-link { display:inline-flex; align-items:center; justify-content:space-between; gap:1rem; min-height:44px; padding:.35rem 0; font-size:.88rem; font-weight:600; text-decoration:none; border-bottom:1px solid var(--line-strong); }
.text-link:hover { color:var(--kohaku); border-color:var(--kohaku); }
.section { padding-block:clamp(4rem,8vw,7rem); }
.reservation-note { font-size:.74rem; line-height:1.8; color:var(--haiiro); margin:.9rem 0 0; }
.home-hero { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.13fr); align-items:center; gap:clamp(2rem,5vw,5rem); padding-block:3.5rem 3rem; }
.home-hero-copy { padding-block:.7rem; }
.home-hero h1 { font-size:clamp(2.15rem,4.2vw,3.9rem); line-height:1.5; letter-spacing:.03em; }
.home-hero h1>span { display:block; white-space:nowrap; }
.home-hero-intro { margin:1rem 0 0; color:var(--kinari); font-size:1rem; letter-spacing:.02em; }
.home-hero-description { font-size:.86rem; line-height:2; color:var(--haiiro); margin:1rem 0 1.5rem; }
.home-hero-actions { display:grid; gap:.65rem; max-width:22rem; }
.home-hero-actions .button { justify-content:space-between; padding-inline:1.25rem; }
.home-hero-actions .text-link { width:fit-content; min-height:40px; font-size:.79rem; font-weight:400; }
.home-hero-photo { margin:0; min-width:0; }
.home-hero-photo img { width:100%; height:560px; max-height:42vw; min-height:430px; object-fit:cover; object-position:48% center; }
.home-hero-photo figcaption { display:flex; justify-content:space-between; gap:1rem; padding:.9rem 0 0; font-size:.65rem; color:var(--haiiro); }
.home-hero-photo figcaption a { white-space:nowrap; color:var(--kinari); text-decoration:none; }
.home-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding-block:1.6rem; }
.home-facts>div { padding:0 2rem; border-left:1px solid var(--line); }
.home-facts>div:first-child { padding-left:0; border-left:0; }
.home-facts>div:last-child { padding-right:0; }
.fact-caption,.fact-note { display:block; font-size:.69rem; color:var(--haiiro); }
.home-facts strong { display:block; margin:.3rem 0; font-family:var(--serif); font-size:clamp(1.2rem,2vw,1.8rem); font-weight:500; line-height:1.5; }
.fact-tilde { padding-inline:.5rem; color:var(--kohaku); font-size:.75em; }
.fact-note a { text-decoration:none; color:var(--kinari); }
.home-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; max-width:none; margin-bottom:3rem; }
.home-section-heading h2 { margin:0; }
.home-section-heading>p { margin:0; font-size:.85rem; }
.home-scenes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.home-scenes article { padding-top:1.25rem; border-top:1px solid var(--line-strong); }
.scene-index { display:flex; align-items:center; gap:1rem; margin:0 0 1.4rem; color:var(--kohaku); font-size:.7rem; }
.scene-index span { color:var(--haiiro); font-size:.7rem; letter-spacing:.1em; }
.home-scenes h3 { font-size:1.35rem; line-height:1.6; }
.home-scenes article>p:last-child { color:var(--haiiro); font-size:.85rem; margin-top:1rem; }
.home-plan { background:#ede6db; color:#2d271f; }
.home-plan .eyebrow { color:#7c5a37; }
.home-plan-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:5rem; }
.home-plan-heading>p:not(.eyebrow) { margin:1.5rem 0; color:#665a4b; font-size:.9rem; }
.home-plan .text-link { border-color:#b3a594; color:#3a2e22; }
.home-hours-card { padding:2.25rem; border:1px solid #c9bcab; background:#f7f2e9; }
.home-state { display:flex; align-items:center; gap:.65rem; font-size:.72rem; font-weight:600; }
.home-state>span { height:7px; width:7px; background:#9b6d3b; border-radius:50%; }
.hours-large { font-family:var(--serif); font-size:clamp(2rem,3vw,2.7rem); line-height:1.3; margin:1.4rem 0 .4rem; letter-spacing:.02em; }
.hours-large>span { padding-inline:.2rem; font-size:.7em; color:#9f886f; }
.hours-caption { margin:0; font-size:.72rem; color:#695b4b; }
.hours-help { font-size:.8rem; line-height:1.9; margin:1.5rem 0; color:#695b4b; }
.home-phone { display:grid; grid-template-columns:1fr auto; gap:.1rem 1rem; padding:1rem 0; margin:.6rem 0 .5rem; border-top:1px solid #c9bcab; border-bottom:1px solid #c9bcab; text-decoration:none; }
.home-phone small { grid-column:1; font-size:.65rem; }
.home-phone strong { grid-column:1; white-space:nowrap; font-size:1.6rem; font-weight:500; line-height:1.6; letter-spacing:.02em; }
.home-phone>span { grid-column:2; grid-row:1/3; align-self:center; font-size:1.4rem; }
.home-access-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:5rem; align-items:center; }
.home-access-photos { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; align-items:start; }
.home-access-photos figure { margin:0; }
.home-access-photos figure:nth-child(2) { padding-top:3rem; }
.home-access-photos img { width:100%; height:360px; object-fit:cover; }
.home-access-photos figcaption { font-size:.66rem; line-height:1.8; color:var(--haiiro); margin-top:.8rem; }
.home-address { font-size:.9rem; color:var(--kinari); margin:1.5rem 0 1rem; }
.home-access-copy>p:not(.eyebrow):not(.home-address) { color:var(--haiiro); font-size:.84rem; }
.home-access-copy .actions { flex-direction:column; align-items:flex-start; gap:.8rem; margin-top:1.5rem; }
.parking-note { font-size:.72rem !important; margin:1.8rem 0 0; padding-left:.85rem; border-left:1px solid var(--line-strong); }
.home-price { padding-top:0; }
.home-price-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; border-top:1px solid var(--line); padding-top:5rem; }
.home-price-grid>div>p:not(.eyebrow) { color:var(--haiiro); font-size:.85rem; margin-top:1.5rem; }
.price-facts { margin:0; }
.price-facts>div { padding:1.4rem 0; border-bottom:1px solid var(--line); }
.price-facts>div:first-child { border-top:1px solid var(--line); }
.price-facts dt { font-size:.73rem; color:var(--haiiro); margin-bottom:.35rem; }
.price-facts dd { margin:0; font-family:var(--serif); font-size:1.9rem; line-height:1.6; }
.price-facts .payment-methods { font-family:var(--sans); font-size:.85rem; line-height:1.9; }
.home-reservation { background:#31201d; border-top:1px solid #5e3d33; }
.home-reservation-top { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); align-items:center; gap:5rem; }
.home-reservation-top h2 { font-size:clamp(1.8rem,3vw,2.7rem); }
.home-reservation-top>div>p:not(.eyebrow) { color:#cdb8aa; font-size:.86rem; margin-top:1.2rem; }
.home-reservation-actions { display:flex; flex-direction:column; align-items:stretch; }
.home-reservation-actions .button { justify-content:space-between; }
.home-reservation-actions .text-link { align-self:flex-start; margin-top:1rem; font-weight:400; }
.home-reservation-actions .reservation-note { font-size:.72rem !important; }
.home-booking-steps { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; margin:3.5rem 0 0; padding:2rem 0 0; border-top:1px solid #68483a; }
.home-booking-steps li { display:flex; gap:1rem; }
.home-booking-steps li>span { font-size:.68rem; color:#d5aa84; }
.home-booking-steps h3 { font-family:var(--sans); font-weight:500; font-size:.9rem; line-height:1.6; }
.home-booking-steps p { color:#cdb8aa; font-size:.74rem; line-height:1.8; margin:.5rem 0 0; }
.site-footer { background:#100f0d; border-top:0; }
.footer-grid { gap:3rem; }
.footer-brand { font-weight:500; }
.footer-tel a,.tonight-tel a { white-space:nowrap; }
.mobile-actions { height:64px; border-top:1px solid #594032; background:#191613; padding-bottom:env(safe-area-inset-bottom); }
.mobile-actions a { font-size:.73rem; letter-spacing:.02em; min-height:64px; }
.mobile-actions .is-primary { background:var(--shu); }

/* Reservation: requests first, supporting information alongside. Field contract unchanged. */
.reservation-page { padding-top:3.5rem; }
.reservation-page-heading { margin-bottom:3rem; }
.reservation-page-heading h1 { font-size:clamp(2rem,3.7vw,3.4rem); line-height:1.5; }
.reservation-page-heading>p:last-child { color:var(--haiiro); font-size:.9rem; margin:1.25rem 0 0; }
.reservation-page-heading strong { color:var(--kinari); font-weight:500; }
.reservation-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.75fr); gap:3.5rem; align-items:start; }
.reservation-main { padding:2.3rem; border:1px solid var(--line-strong); background:#1c1915; }
.reservation-main>.eyebrow { margin-bottom:.5rem; }
.reservation-main>h2 { font-size:1.6rem; }
.reservation-main>p:not(.eyebrow) { color:var(--haiiro); font-size:.8rem; margin:.8rem 0 1.8rem; }
.reservation-main .form-shell { margin:0; padding:0; background:transparent; border:0; box-shadow:none; }
.reservation-main .field-grid { grid-template-columns:1fr 1fr; gap:1.25rem 1rem; }
.reservation-main .field:last-child,.reservation-main .field:nth-child(3) { grid-column:1/-1; }
.field label { font-size:.8rem; }
.field { align-content:start; }
.field input,.field textarea,.field select { border-radius:2px; background:#13110f; min-height:48px; padding:.7rem .8rem; }
.field input:focus,.field textarea:focus,.field select:focus { border-color:var(--kohaku); }
.field small { font-size:.7rem; line-height:1.7; }
.check { align-items:start; font-size:.76rem; line-height:1.8; }
.check label { font-size:.82rem; }
.check input { margin-top:.35rem; }
.form-actions { display:flex; flex-wrap:wrap; gap:.7rem; }
.form-actions .button { max-width:100%; }
.form-actions .button[hidden] { display:none; }
.reservation-main .form-actions>.button:first-child { width:100%; }
.form-status { font-size:.8rem; padding:.3rem 0; }
.reservation-call-card { padding-bottom:2rem; border-bottom:1px solid var(--line); }
.reservation-call-card h2 { font-size:1.5rem; }
.reservation-call-card>p:not(.eyebrow) { font-size:.8rem; color:var(--haiiro); }
.reservation-phone { display:flex; justify-content:space-between; gap:.5rem; font-size:1.6rem; font-weight:500; text-decoration:none; white-space:nowrap; padding:.6rem 0; }
.reservation-call-card .text-link { font-size:.75rem; }
.reservation-flow { padding-top:2rem; }
.reservation-flow>h2,.reservation-email>h2 { font-family:var(--sans); font-size:.9rem; font-weight:500; }
.reservation-flow .steps { margin:1.5rem 0 0; gap:1.1rem; }
.reservation-flow .steps li { padding-left:2.8rem; }
.reservation-flow .steps h3 { font-family:var(--sans); font-size:.82rem; font-weight:500; }
.reservation-flow .steps p { font-size:.74rem; margin-top:.4rem; }
.reservation-email { padding-top:2rem; margin-top:2rem; border-top:1px solid var(--line); }
.reservation-email p,.reservation-email a { font-size:.76rem; color:var(--haiiro); }

/* Retained compact consent presentation; measurement and consent behavior are unchanged. */
.ga-consent { max-width:48rem; gap:.8rem; padding:.72rem .8rem; font-size:.79rem; line-height:1.45; }
.ga-consent__body strong { display:inline; margin:0 .45rem 0 0; font-size:.88rem; }
.ga-consent__body p { display:inline; }
.ga-consent__policy { margin:0 0 0 .45rem; white-space:nowrap; }
.ga-consent__actions button,.ga-consent-settings { min-height:44px; }

@media(min-width:56rem) {
  .brand { margin-right:auto; }
  .global-nav,.js .global-nav { margin-left:0; gap:1.1rem; }
  .global-nav a { font-size:.76rem; padding:.4rem 0; }
  .global-nav .nav-cta { font-size:.76rem; margin-left:.1rem; padding:.7rem 1rem; }
  .header-tel { display:none; }
}
@media(min-width:75rem) { .header-tel { display:block; margin-left:0; order:3; } }
@media(max-width:69.99rem) and (min-width:56rem) {
  .home-hero { gap:2rem; }
  .home-hero h1 { font-size:2.7rem; }
  .home-hero-photo img { min-height:440px; }
  .home-plan-grid,.home-access-grid,.home-price-grid,.home-reservation-top { gap:3rem; }
}
@media(max-width:55.99rem) {
  body { padding-bottom:64px; }
  html { scroll-padding-top:6rem; }
  .header-inner { min-height:4.5rem; }
  .brand-text { font-size:1.06rem; }
  .brand-text em { font-size:.5rem; }
  .global-nav { inset:4.5rem 0 auto; padding:1rem var(--gutter) 1.5rem; background:#1d1915; box-shadow:0 16px 24px #0005; }
  .global-nav a { min-height:3.3rem; font-size:.9rem; }
  .global-nav .nav-cta { min-height:48px; }
  .home-hero { grid-template-columns:1fr; gap:2rem; padding-block:2.5rem 1.6rem; }
  .home-hero-copy { padding:0; }
  .home-hero .eyebrow { margin-bottom:.9rem; }
  .home-hero h1 { font-size:clamp(2.15rem,7.8vw,3.2rem); line-height:1.45; }
  .home-hero-intro { margin-top:1rem; font-size:.85rem; }
  .home-hero-description { font-size:.82rem; margin:1rem 0 1.3rem; }
  .home-hero-description br { display:none; }
  .home-hero-actions { max-width:none; }
  .home-hero-actions .button { min-height:54px; }
  .home-hero .reservation-note { font-size:.69rem; }
  .home-hero-photo img { height:360px; max-height:none; min-height:0; object-position:center; }
  .home-hero-photo figcaption { font-size:.62rem; padding-top:.7rem; }
  .home-facts { gap:0; padding-block:1.3rem; grid-template-columns:1fr 1fr; }
  .home-facts>div { padding:0 0 0 1.1rem; }
  .home-facts>div:nth-child(3) { grid-column:1/-1; margin-top:1.2rem; padding:1.1rem 0 0; border-left:0; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr; align-items:center; }
  .home-facts>div:nth-child(3) strong { grid-column:1; }
  .home-facts>div:nth-child(3) .fact-note { grid-column:2; grid-row:1/3; padding-left:1.1rem; }
  .home-facts strong { font-size:1.2rem; }
  .fact-caption,.fact-note { font-size:.61rem; }
  .home-section-heading { display:block; margin-bottom:2rem; }
  .home-section-heading>p { margin-top:1.2rem; font-size:.81rem; }
  .home-scenes { gap:1.5rem; }
  .home-scenes h3 { font-size:1.1rem; }
  .home-scenes article>p:last-child { font-size:.78rem; }
  .home-plan-grid,.home-access-grid,.home-price-grid,.home-reservation-top { grid-template-columns:1fr; gap:2.5rem; }
  .home-hours-card { padding:1.6rem; }
  .home-plan-heading>p:not(.eyebrow) { margin:1rem 0; }
  .home-access-copy { grid-row:1; }
  .home-access-photos { gap:.8rem; }
  .home-access-photos img { height:310px; }
  .home-access-photos figure:nth-child(2) { padding-top:2rem; }
  .home-access-copy .actions { flex-direction:row; align-items:center; }
  .home-price-grid { padding-top:3.5rem; }
  .price-facts dd { font-size:1.6rem; }
  .home-reservation-top { gap:2rem; }
  .home-booking-steps { gap:1.25rem; margin-top:2.5rem; }
  .home-booking-steps li { flex-direction:column; gap:.6rem; }
  .home-booking-steps h3 { font-size:.79rem; }
  .home-booking-steps p { font-size:.69rem; }
  .reservation-page { padding-top:2.5rem; }
  .reservation-page-heading { margin-bottom:2rem; }
  .reservation-page-heading h1 { font-size:clamp(1.8rem,5.3vw,2.7rem); }
  .reservation-page-heading>p:last-child { font-size:.8rem; }
  .reservation-layout { grid-template-columns:1fr; gap:2.5rem; }
  .reservation-main { padding:1.5rem; }
  .reservation-aside { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
  .reservation-call-card { border:0; padding:0; }
  .reservation-flow { padding:0; }
  .reservation-email { grid-column:1/-1; margin:0; }
  .ga-consent { right:.5rem; bottom:calc(64px + env(safe-area-inset-bottom)); left:.5rem; gap:.45rem; padding:.6rem; }
  .ga-consent__body { font-size:.72rem; line-height:1.35; }
  .ga-consent__body strong { display:block; margin:0 0 .12rem; }
  .ga-consent__actions { gap:.4rem; }
  .ga-consent__actions button { flex:1; min-height:44px; padding:.55rem .7rem; font-size:.78rem; }
  .ga-consent-settings { bottom:calc(64px + env(safe-area-inset-bottom)); }
}
@media(max-width:39.99rem) {
  .home-hero-photo img { height:260px; }
  .home-hero-photo figcaption { display:block; line-height:1.8; }
  .home-hero-photo figcaption a { display:block; margin-top:.2rem; }
  .home-scenes { grid-template-columns:1fr; gap:1.5rem; }
  .home-scenes article { display:grid; grid-template-columns:4.5rem 1fr; column-gap:1.2rem; padding-top:1.2rem; }
  .scene-index { grid-row:1/3; display:block; margin:0; font-size:.8rem; }
  .scene-index span { display:block; margin-top:.5rem; font-size:.65rem; }
  .home-scenes h3 { font-size:1.12rem; }
  .home-scenes article>p:last-child { margin:.65rem 0 0; }
  .home-access-photos img { height:245px; }
  .home-booking-steps { grid-template-columns:1fr; gap:1.4rem; }
  .home-booking-steps li { flex-direction:row; gap:1rem; }
  .home-booking-steps h3 { font-size:.86rem; }
  .home-booking-steps p { font-size:.73rem; }
  .reservation-main { padding:1.2rem; }
  .reservation-main .field-grid { grid-template-columns:1fr; }
  .reservation-main .field:last-child,.reservation-main .field:nth-child(3) { grid-column:auto; }
  .reservation-aside { display:block; }
  .reservation-flow { padding-top:2rem; margin-top:2rem; border-top:1px solid var(--line); }
  .reservation-email { margin-top:2rem; }
  .reservation-phone { max-width:24rem; }
  .ga-consent { flex-direction:column; align-items:stretch; }
}
