/* v3 presentation layer. Existing v2, photography, consent and intake are preserved. */
.home-hero{grid-template-areas:"copy photo" "visit photo" "facts facts";row-gap:1.8rem;align-items:start;padding-block:3.5rem 0}
.home-hero-copy{grid-area:copy;padding:1.25rem 0 0}
.home-hero-visit{grid-area:visit;align-self:end;padding-bottom:1rem}
.home-hero-photo{grid-area:photo}
.home-hero .home-facts{grid-area:facts;width:100%;margin-top:1rem}
.home-hero h1{font-size:clamp(2.3rem,4.2vw,3.9rem);line-height:1.43}
.home-hero-intro{font-size:1rem;line-height:1.8;margin-top:1.2rem}
.home-hero-photo figcaption,.home-access-photos figcaption{font-size:.75rem}
.fact-caption,.fact-note{font-size:.75rem;line-height:1.8}
.home-facts .fact-note a{display:inline-block;white-space:nowrap}
.home-facts strong{margin:.35rem 0;font-size:clamp(1.3rem,2vw,1.8rem)}
.home-section-heading>p,.home-scenes article>p:last-child,.home-plan-heading>p:not(.eyebrow),.home-access-copy>p:not(.eyebrow):not(.home-address),.home-price-grid>div>p:not(.eyebrow),.home-reservation-top>div>p:not(.eyebrow){font-size:.9375rem;line-height:1.9}
.scene-index,.scene-index span,.hours-caption,.home-phone small,.price-facts dt{font-size:.75rem}
.hours-help,.home-address,.price-facts .payment-methods{font-size:.875rem}
.parking-note{font-size:.8125rem!important}
.home-hero-actions .text-link,.home-reservation-actions .text-link{font-size:.875rem}
.reservation-note,.home-reservation-actions .reservation-note{font-size:.8125rem!important;line-height:1.8}
.home-booking-steps h3{font-size:1rem}
.home-booking-steps p{font-size:.8125rem;line-height:1.9}
.mobile-actions a{font-size:.8125rem}
.reservation-page{padding-top:2.8rem}
.reservation-page-heading{margin-bottom:2.5rem;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:3.5rem;align-items:end}
.reservation-page-heading .eyebrow{grid-column:1/-1}
.reservation-page-heading h1{font-size:clamp(2rem,3.3vw,3rem);line-height:1.45}
.reservation-page-heading>p:last-child{font-size:.9375rem;margin:0 0 .2rem;line-height:1.9}
.reservation-main{padding:2rem}
.reservation-main>h2{font-family:var(--sans);font-size:1.35rem;font-weight:600}
.reservation-main>p:not(.eyebrow){font-size:.875rem;margin:.65rem 0 1.6rem}
.required-key{display:block;font-size:.75rem;margin-top:.35rem}
.reservation-fields{border:0;border-top:1px solid var(--line-strong);margin:0 0 1.9rem;padding:1.3rem 0 0;min-width:0}
.reservation-fields legend{padding:0 1rem 0 0;font-family:var(--sans);font-size:.9375rem;color:var(--kinari);font-weight:600}
.reservation-main .field-grid{grid-template-columns:1fr 1fr;gap:1rem}
.reservation-main .field:last-child,.reservation-main .field:nth-child(3){grid-column:auto}
.reservation-main .visit-fields .field-grid{grid-template-columns:1.2fr 1fr .8fr}
.reservation-main .contact-fields .field:last-child{grid-column:1/-1}
.reservation-main .notes-fields .field-grid{grid-template-columns:1fr}
.field label,.check label{font-size:.875rem}
.field small,.check,.reservation-flow .steps p,.reservation-email p,.reservation-email a{font-size:.8125rem}
.reservation-main .field input,.reservation-main .field select,.reservation-main .field textarea{font-size:1rem;min-height:50px}
.reservation-main .field textarea{min-height:110px}
.reservation-flow .steps h3,.reservation-flow>h2,.reservation-email>h2{font-size:.9375rem}
.reservation-call-card>p:not(.eyebrow),.reservation-call-card .text-link{font-size:.875rem}
.reservation-phone{font-size:1.65rem}
.form-status{font-size:.875rem}
/* The existing settings button stays in the document flow after the footer. */
body>.ga-consent-settings{position:relative;inset:auto;z-index:auto;display:block;width:fit-content;min-height:44px;margin:0 auto calc(6.5rem + env(safe-area-inset-bottom));padding:.7rem 1rem;border:1px solid var(--line-strong);border-radius:2px;background:var(--kura);color:var(--kinari);font-size:.875rem;text-decoration:underline;text-underline-offset:.2em;box-shadow:none}
@media(max-width:1040px){
 .home-hero{column-gap:2rem}
 .home-hero-photo img{height:480px;min-height:0;max-height:none}
 .reservation-main .visit-fields .field-grid{grid-template-columns:1fr 1fr}
 .reservation-main .visit-fields .field:first-child{grid-column:1/-1}
}
@media(max-width:780px){
 .home-hero{grid-template-columns:1fr;grid-template-areas:"copy" "photo" "facts" "visit";gap:1.1rem;padding-block:1.6rem 2rem}
 .home-hero-copy{padding:0}
 .home-hero .eyebrow{font-size:.75rem;margin-bottom:.65rem}
 .home-hero h1{font-size:clamp(2rem,7.9vw,3.1rem);line-height:1.35;letter-spacing:.015em}
 .home-hero-intro{font-size:.875rem;margin-top:.65rem}
 .home-hero-photo img{height:320px;min-height:0;max-height:none;object-position:center}
 .home-hero-photo figcaption{display:flex;font-size:.75rem;gap:.75rem;padding-top:.5rem;line-height:1.7}
 .home-hero-photo figcaption a{margin:0}
 .home-hero .home-facts{margin:0;padding-block:1rem}
 .home-facts>div{padding-left:1rem}
 .home-facts>div:nth-child(3){margin-top:.8rem;padding-top:.8rem;grid-template-columns:1fr 1.15fr}
 .home-facts>div:nth-child(3) .fact-note{padding-left:1rem}
 .home-facts strong{font-size:1.2rem;margin:.15rem 0}
 .fact-caption,.fact-note{font-size:.75rem}
 .home-hero-visit{padding:0}
 .home-hero-actions{gap:.35rem}
 .home-hero-actions .button{min-height:52px}
 .home-hero-visit .reservation-note{margin:.5rem 0 0}
 .home-scenes h3{font-size:1.3rem}
 .section{padding-block:3.75rem}
 .reservation-page{padding-top:2rem}
 .reservation-page-heading{display:block;margin-bottom:1.8rem}
 .reservation-page-heading h1{font-size:2rem}
 .reservation-page-heading>p:last-child{font-size:.875rem;margin-top:1rem}
 .reservation-layout{gap:2.5rem}
 .reservation-main{padding:1.5rem}
 .reservation-main .visit-fields .field-grid{grid-template-columns:1.15fr 1fr .8fr}
 .reservation-main .visit-fields .field:first-child{grid-column:auto}
}
@media(max-width:520px){
 .home-hero-photo img{height:230px}
 .home-hero-photo figcaption>span{display:none}
 .home-hero-photo figcaption a{margin-left:auto;min-height:26px}
 .home-facts strong{font-size:1.15rem;letter-spacing:-.02em}
 .home-facts>div:nth-child(3){grid-template-columns:1fr 1.2fr}
 .home-scenes article{grid-template-columns:3.2rem 1fr;column-gap:1rem}
 .home-scenes article>p:last-child{font-size:.875rem}
 .scene-index span{font-size:.75rem}
 .home-access-grid{gap:1.8rem}
 .home-access-photos img{height:230px}
 .home-booking-steps h3{font-size:.9375rem}
 .home-booking-steps p{font-size:.8125rem}
 .reservation-main{padding:1.1rem}
 .reservation-main .visit-fields .field-grid{grid-template-columns:1fr 1fr}
 .reservation-main .visit-fields .field:first-child{grid-column:1/-1}
 .reservation-main .contact-fields .field-grid{grid-template-columns:1fr}
 .reservation-fields{padding-top:1.05rem;margin-bottom:1.6rem}
 .reservation-page-heading h1{font-size:1.9rem}
 .reservation-main>p:not(.eyebrow){line-height:1.7}
}
