/* LOCAL REVIEW ONLY: limited to the first-view section. */
.hero--photo-first { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); padding:3.5rem var(--gutter) 2rem; column-gap:3rem; row-gap:2rem; }
.hero--photo-first .hero__copy { padding:1.5rem 0; overflow:visible; }
.hero--photo-first .hero__eyebrow { margin:0 0 1.5rem; font-size:.9375rem; letter-spacing:.06em; }
.hero--photo-first .hero__headline { margin:0; font-family:var(--font-serif); font-size:clamp(2.5rem,4.1vw,3.75rem); line-height:1.6; letter-spacing:.07em; white-space:normal; font-weight:500; }
.hero--photo-first .hero__sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.hero--photo-first .hero__hours { margin-top:2rem; flex-direction:row; gap:.25rem 1rem; font-size:.875rem; }
.hero--photo-first .hero__visual { padding:0; align-self:center; }
.hero--photo-first .hero__visual figcaption { line-height:1.8; margin-top:.625rem; font-size:.8125rem; }
.hero--photo-first .hero__details { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:2rem; border-top:1px solid var(--color-line); padding-top:1.5rem; }
.hero--photo-first .hero__lead { margin:0; font-size:1rem; line-height:1.9; }
@media(max-width:839px) {
 .hero--photo-first { grid-template-columns:1fr 1.1fr; column-gap:1.5rem; padding-top:2.25rem; }
 .hero--photo-first .hero__headline { font-size:clamp(2rem,4.8vw,2.75rem); }
 .hero--photo-first .hero__details { align-items:flex-start; }
}
@media(max-width:599px) {
 .hero--photo-first { grid-template-columns:1fr; padding:1.75rem var(--gutter) 1.75rem; gap:1.25rem; }
 .hero--photo-first .hero__copy { padding:0; }
 .hero--photo-first .hero__eyebrow { margin-bottom:.75rem; font-size:.8125rem; }
 .hero--photo-first .hero__headline { font-size:clamp(2rem,8.8vw,2.375rem); line-height:1.55; letter-spacing:.065em; }
 .hero--photo-first .hero__hours { margin-top:1rem; gap:.25rem .875rem; font-size:.8125rem; }
 .hero--photo-first .hero__visual { padding:0; }
 .hero--photo-first .hero__visual figcaption { font-size:.75rem; margin-top:.375rem; }
 .hero--photo-first .hero__details { display:block; padding-top:1.25rem; }
 .hero--photo-first .hero__lead { font-size:.9375rem; }
}

/* CTA uses original public classes, colors, labels, sizes and discount guidance. */
.hero--photo-first .hero__copy { grid-column:1; grid-row:1; padding-bottom:0; }
.hero--photo-first .hero__visual { grid-column:2; grid-row:1 / span 2; }
.hero--photo-first .hero__booking { grid-column:1; grid-row:2; }
.hero--photo-first .hero__actions { margin-top:0; }
.hero--photo-first .hero__details { grid-row:3; }
@media(max-width:599px) {
 .hero--photo-first .hero__copy { grid-column:1; grid-row:1; }
 .hero--photo-first .hero__visual { grid-column:1; grid-row:2; }
 .hero--photo-first .hero__booking { grid-column:1; grid-row:3; }
 .hero--photo-first .hero__details { grid-column:1; grid-row:4; }
}
/* Header LINE now shares the same green as the original hero/fixed LINE CTA. */
.header__actions > .button { background:#087e3b; border-color:#087e3b; color:#fff; }
.header__actions > .button:hover { background:#06622e; border-color:#06622e; }

/* Final mobile refinement: fixed booking is the primary CTA on SP. */
@media(max-width:599px) {
 .hero--photo-first .hero__actions { display:none; }
 .hero--photo-first .hero__details { grid-row:3; }
 .hero--photo-first .hero__booking { grid-row:4; }
 .hero--photo-first .hero__booking-note { margin-top:0; }
}
