/* Inner-page styles (Sprint 2-4). Facts: loaded after home.css by every page except index.html; semantic tokens only;
   covers page-head, HOLD banner, menu grids, set-up strip, forms, FAQ, legal, gallery, downloads, dialogs. */

.lead { font-size: var(--step-1); color: var(--color-text); max-width: 46ch; }
.h-sm { font-size: var(--step-1); }
.page-head { padding-block: calc(var(--space-9) + var(--space-3)) var(--space-6); background: var(--color-bg); }
.page-head + .section { padding-top: var(--space-6); }
.crumb a { color: var(--color-primary); }

/* HOLD banner */
.hold { background: var(--color-heading); color: var(--rp-blush); padding-block: var(--space-3) var(--space-3); margin-top: calc(var(--space-9) - var(--space-2)); font-size: var(--step--1); }
.hold + .hero, .hold + .page-head { margin-top: 0; }
.hold strong { color: var(--rp-brass); letter-spacing: .1em; margin-right: .5em; }
.hold + .page-head { padding-top: var(--space-6); }
.hold + .hero .hero__media { margin-top: 0; }

/* grids */
.features--2 { grid-template-columns: 1fr; }
.features--4 { grid-template-columns: 1fr 1fr; }
@media (min-width: 768px) { .features--2 { grid-template-columns: repeat(2, 1fr); } .features--4 { grid-template-columns: repeat(4, 1fr); } }
.catgrid { display: grid; gap: var(--space-4); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .catgrid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .catgrid { grid-template-columns: repeat(4, 1fr); } }
.catcard { text-decoration: none; color: var(--color-text); }
.catcard .card__media, .catcard .ph { aspect-ratio: 1 / 1; }
.catcard .card__title { font-size: var(--step-0); }
.dishes--wide { grid-template-columns: repeat(2, 1fr); gap: var(--space-4); }
@media (min-width: 768px) { .dishes--wide { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .dishes--wide { grid-template-columns: repeat(4, 1fr); } }
.dish .card__title { font-size: var(--step-0); }
.dish__more { justify-self: start; min-height: var(--tap); padding-inline: var(--space-3); margin-left: calc(-1 * var(--space-3)); }
.dish__link { display: inline-flex; align-items: center; gap: var(--space-1); white-space: nowrap; font-weight: 600; }
.dish__meta { margin: 0; }
.cat-top { margin-bottom: var(--space-6); }

/* segmented nav (links) with horizontal scroll on phones */
.segmented--scroll { display: flex; max-width: 100%; overflow-x: auto; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.segmented > a { display: inline-flex; align-items: center; white-space: nowrap; min-height: 44px; min-width: var(--tap); padding: 0 var(--space-5); border-radius: var(--radius-pill); color: var(--color-text); font: 600 var(--step--1)/1 var(--font-body); text-decoration: none; }
.segmented > a:hover { background: rgb(108 0 0 / .06); color: var(--color-heading); }
.segmented > a[aria-current="page"] { background: var(--color-surface); box-shadow: var(--shadow-1); color: var(--color-heading); }
.segmented > button[aria-selected="false"]:hover { background: rgb(108 0 0 / .06); }

/* dish page */
.split--top { align-items: start; }
.dish-hero__img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.dish-hero .split__media .ph { border: 0; }
.facts-list { display: grid; gap: var(--space-2); margin: 0 0 var(--space-4); }
.facts-list div { display: flex; gap: var(--space-4); align-items: baseline; border-bottom: 1px solid var(--color-border); padding-block: var(--space-2); }
.facts-list dt { min-width: 6rem; font-weight: 600; color: var(--color-heading); }
.facts-list dd { margin: 0; }

/* CTA band */
.cta-band { display: grid; gap: var(--space-5); align-items: center; }
@media (min-width: 900px) { .cta-band { grid-template-columns: 1.4fr 1fr; } .cta-band .cluster { justify-content: flex-end; } }

/* icon rows and ticks */
.iconrow { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
.iconrow li { display: flex; gap: var(--space-4); align-items: flex-start; padding: var(--space-4); border-radius: var(--radius-md); background: var(--color-surface); box-shadow: var(--shadow-1); }
.iconrow .icon { width: 2rem; height: 2rem; color: var(--color-primary); }
@media (min-width: 768px) { .iconrow { grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); } }
.ticks--dark .icon { color: var(--color-primary); }
.cta-panel.plain { padding: var(--space-5); }

/* setup strip */
.setup .segmented { margin-bottom: var(--space-5); }
.setup__stage { display: grid; }
.setup__panel { grid-area: 1 / 1; border-radius: var(--radius-lg); overflow: hidden; }
.setup__panel img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius-lg); }
.setup__panel p { margin: var(--space-2) 0 0; }
.js .setup__panel { opacity: 0; visibility: hidden; transition: opacity var(--dur-3) var(--ease-out), visibility 0s linear var(--dur-3); }
.js .setup__panel[data-active="true"] { opacity: 1; visibility: visible; transition-delay: 0s; }
html:not(.js) .setup__stage { gap: var(--space-5); }
html:not(.js) .setup__panel { grid-area: auto; }
html:not(.js) .setup .segmented { display: none; }

/* forms */
.form-wrap { max-width: 40rem; }
.inquiry { display: grid; gap: var(--space-4); padding: var(--space-5); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-1); }
.field-row { display: grid; gap: var(--space-4); }
@media (min-width: 560px) { .field-row { grid-template-columns: 1fr 1fr; } }
.field--check { grid-template-columns: auto 1fr; align-items: start; column-gap: var(--space-3); }
.field--check label { font-weight: 400; }
.field--check .field__error { grid-column: 1 / -1; }
.form-status { min-height: 1.5em; }
.form-status.is-success { padding: var(--space-4); border-radius: var(--radius-md); background: #E6F2E7; color: #14501C; font-weight: 600; }
.form-status.is-error { padding: var(--space-4); border-radius: var(--radius-md); background: #FBE5E3; color: #7A1912; font-weight: 600; }
.form-status a { color: inherit; }

/* FAQ */
.faq { display: grid; gap: var(--space-6); max-width: 48rem; }
.faq h3 { font-size: var(--step-1); }
details { border-bottom: 1px solid var(--color-border); }
summary { display: flex; align-items: center; min-height: 52px; padding-block: var(--space-2); cursor: pointer; font-weight: 600; color: var(--color-heading); list-style: none; }
summary::-webkit-details-marker { display: none; }
summary::after { content: "+"; margin-left: auto; font-size: var(--step-2); line-height: 1; color: var(--color-primary); }
details[open] summary::after { content: "\2212"; }
.faq__a { padding-bottom: var(--space-4); }

/* legal */
.legal { display: grid; gap: var(--space-6); }
.toc ol { margin: 0; padding-left: 1.25rem; display: grid; gap: var(--space-1); }
.toc a { display: inline-block; padding-block: var(--space-1); }
.legal__s { padding-block: var(--space-4); border-top: 1px solid var(--color-border); scroll-margin-top: 6rem; }
@media (min-width: 900px) { .legal { grid-template-columns: 16rem 1fr; } .toc { position: sticky; top: 6rem; align-self: start; } }

/* gallery */
.gal { display: grid; gap: var(--space-3); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .gal { grid-template-columns: repeat(3, 1fr); } }
.gal__item { padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: var(--radius-md); overflow: hidden; line-height: 0; }
.gal__item img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; transition: transform var(--dur-3) var(--ease-out); }
.gal__item:hover img { transform: scale(1.04); }

/* downloads */
.dl-strip { display: grid; gap: var(--space-4); grid-template-columns: 1fr 1fr; max-width: 40rem; }
.dlcard { text-decoration: none; color: var(--color-text); }
.dlcard img { width: 100%; height: auto; object-fit: contain; background: var(--color-surface-2); max-height: 22rem; }
.dlcard--wide { flex-direction: row; align-items: center; max-width: 28rem; }
.dlcard--wide img { width: 7rem; flex: none; }
.dlcard--tall { max-width: 24rem; }
.linkcard { text-decoration: none; }
.linkcard .card__body { grid-auto-flow: row; justify-items: start; }
.linkcard .icon { width: 2rem; height: 2rem; color: var(--color-primary); }

/* dialogs: dish sheet (popover on desktop) and lightbox */
.sheet--pop .dsheet__img { width: 100%; max-height: 40vh; object-fit: cover; border-radius: var(--radius-md); }
@media (min-width: 900px) {
  .sheet--pop { margin: auto; width: min(30rem, 92vw); border-radius: var(--radius-lg); padding: var(--space-5); }
}
.lightbox { padding: 0; border: 0; background: transparent; max-width: 100vw; max-height: 100dvh; width: 100%; height: 100%; color: #fff; }
.lightbox::backdrop { background: rgb(20 12 14 / .9); }
.lightbox[open] { display: grid; grid-template-rows: 1fr auto; place-items: center; padding: var(--space-4); gap: var(--space-3); }
.lightbox img { max-width: 100%; max-height: 78dvh; width: auto; height: auto; border-radius: var(--radius-md); object-fit: contain; }
.lightbox__bar { display: flex; gap: var(--space-3); align-items: center; justify-content: center; flex-wrap: wrap; }
.lightbox__bar p { margin: 0; color: #fff; max-width: 40ch; text-align: center; }
.lightbox button { display: inline-grid; place-items: center; width: var(--tap); height: var(--tap); border: 0; border-radius: 50%; background: var(--rp-blush); color: var(--rp-deep); cursor: pointer; }
.lightbox .lightbox__close { position: absolute; top: var(--space-4); right: var(--space-4); }

/* QA fixes: tap targets (WCAG 2.2 AA 2.5.8 / 44px target) + combos overflow */
.nav__brand { display: inline-flex; align-items: center; min-height: 44px; }
.footer a, .footer__legal a, .crumb a, .page-head a.tap { display: inline-flex; align-items: center; min-height: 44px; }
.footer__legal a { padding-inline: var(--space-2); }
.segmented > a, .segmented > button, .setup__tab { min-height: 44px; }
.dish__link, .link-more, .section a.btn-text { min-height: 44px; display: inline-flex; align-items: center; }
.field--check a, .inquiry a, .form-status a, .legal a, .lead a { padding-block: 12px; }
.combos { overflow-x: clip; }
.dish__meta { flex-wrap: wrap; }
.dish .card__title, .dish__meta { overflow-wrap: anywhere; min-width: 0; }

/* Brochure facts: set cards, room rates */
.setlist { margin: 0; padding-left: 1.1em; display: grid; gap: var(--space-2); font-size: var(--step--1); }
.setprice { margin: 0; font-size: var(--step-1); color: var(--color-heading); }
.ratetable { width: 100%; border-collapse: collapse; }
.ratetable th, .ratetable td { padding: var(--space-2) 0; border-bottom: 1px solid var(--color-border); text-align: left; font-weight: 600; }
.ratetable td { text-align: right; color: var(--color-heading); }
.roomcap { margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.facts a.tap, .footer a.tap { text-decoration: underline; text-underline-offset: 3px; }
