/* Semantic surfaces: keep brand artwork, photo colors, type and section geometry. */
:root {
  color-scheme: light;
  --page: #f5f0e8;
  --muted: #606258;
  --panel: #e8e1d6;
  --plan: #ede7dc;
  --counter: #d7cbbb;
  --ink: #111311;
  --glass: #f5f0e8f2;
  --control-line: #81796b;
  --disabled: #d5cfc4;
  --disabled-ink: #65675f;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --page: #111311;
  --panel: #22261f;
  --plan: #1a1e18;
  --counter: #353b30;
  --ink: #f5f0e8;
  --glass: #111311ed;
  --control-line: #858b7b;
  --disabled: #353b30;
  --disabled-ink: #bcb8ad;
  --muted: #c1b9ac;
  --line: #505649;
  --red-ink: #ff8068;
}
body, dialog, .skip-link { background:var(--page); color:var(--ink); }
.site-header, .quick-booking { background:var(--glass); color:var(--ink); border-color:var(--control-line); }
.site-header { gap:18px; }
.site-header nav { min-width:0; flex:1; gap:12px 18px; }
.site-header nav>a:hover { color:var(--red-ink); }
.nav-book, .nav-toggle { color:var(--ink); border-color:var(--control-line); }
.site-preferences { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; flex:0 0 240px; width:240px; }
.site-preferences label { display:grid; gap:6px; min-width:0; width:auto; }
.site-preferences label>span { font-size:10px; letter-spacing:.05em; }
.site-preferences select { min-height:44px; width:100%; min-width:0; max-width:none; padding:8px; border:1px solid var(--control-line); border-radius:0; background:var(--page); color:var(--ink); font:inherit; font-size:14px; color-scheme:inherit; }
.quick-heading .eyebrow, .space-copy>.eyebrow, .interior-gallery>.eyebrow { color:var(--red-ink); }
.quick-booking .demo-chip, .demo-chip.dark, .tiny-seal { border-color:var(--red-ink); }
.quick-fields label, .quick-booking>p { color:var(--muted); }
.quick-fields input, .quick-fields select, .booking-inputs input, .booking-inputs select { color:var(--ink); border-color:var(--control-line); color-scheme:inherit; }
.quick-fields select option, .booking-inputs select option { color:var(--ink); background:var(--page); }
.text-link:not(.light), .space-copy .text-link { color:var(--ink); border-color:var(--control-line); }
.menu-filters button[aria-pressed="true"] { color:var(--ink); }
.space-section, .interior-gallery, .site-footer, .booking-summary { background:var(--panel); color:var(--ink); }
.space-copy h2 em { color:var(--red-ink); }
.space-copy>p:not(.eyebrow), .space-options p, .interior-gallery figcaption span, .site-footer>p { color:var(--muted); }
.space-options span { color:var(--red-ink); }
.space-options, .space-options>div, .booking-summary dl>div { border-color:var(--line); }
.site-footer>a:last-child { border-color:var(--control-line); }
.floor-plan { background:var(--plan); border-color:var(--line); }
.bar-counter { background:var(--counter); color:var(--ink); border-color:var(--control-line); }
.seat-button, .table-button, .private-button { background:var(--page); color:var(--ink); border-color:var(--control-line); }
.seat-button[aria-pressed="true"], .table-button[aria-pressed="true"], .private-button[aria-pressed="true"] { background:var(--red); color:var(--nori); border-color:var(--red); box-shadow:0 0 0 2px var(--page),0 0 0 3px var(--red); }
.form-error { color:var(--red-ink); }
.notice { background:var(--plan); color:var(--ink); border-color:var(--control-line); }
.button-dark { background:var(--ink); color:var(--page); }
.button:disabled { background:var(--disabled); color:var(--disabled-ink); }
.dialog-close { color:var(--ink); }
/* Keep both labelled controls outside the mobile menu. Extra row clears the hero. */
@media(min-width:801px) and (max-width:1200px) {
  .site-header { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px 18px; }
  .site-header .brand { justify-self:start; }
  .site-header nav { grid-row:2; grid-column:1/-1; justify-content:space-between; }
  .site-preferences { grid-column:2; grid-row:1; }
  .hero-content { padding-top:265px; }
}
@media(max-width:800px) {
  .site-header { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; }
  .site-header .brand { justify-self:start; }
  .site-header nav { background:var(--page); border-color:var(--control-line); gap:8px; }
  .site-preferences { grid-column:1/-1; width:100%; gap:12px; }
  .site-preferences select { font-size:16px; }
  .hero-content { padding-top:230px; }
  .hero { max-height:none; }
}
