


:root {
  
  --palette-obsidian: #000000;
  --palette-paper: #ffffff;
  --palette-charcoal: #2f2f2f;
  --palette-ash: #898989;
  --palette-slate: #999999;
  --palette-fog: #dddddd;
  --palette-graphite: #666666; 
  --palette-mist: #f2f2f2;     
  --palette-soot: #141414;     

  
  --color-surface: var(--palette-paper);
  --color-ink: var(--palette-obsidian);
  --color-ink-muted: var(--palette-graphite);
  --color-line: var(--palette-fog);
  --color-raised: var(--palette-fog);
  --color-card: var(--palette-mist);
  --color-accent: var(--palette-obsidian);          
  --color-accent-ink: var(--palette-paper);
  --color-wipe: var(--palette-paper);               
  --color-scrim-strong: rgb(0 0 0 / 0.82);
  --color-scrim-soft: rgb(0 0 0 / 0.28);
  --color-scrim-clear: rgb(0 0 0 / 0);

  
  --font-display: "Inter Tight", "Inter", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Inter Tight", "Inter", "Helvetica Neue", Arial, sans-serif;
  --font-accent: "Newsreader", Georgia, serif;

  --weight-light: 300;
  --weight-regular: 400;
  --weight-medium: 500;

  --text-caption: 0.75rem;                              
  --text-small: 0.875rem;                               
  --text-nav: 0.8125rem;                                
  --text-body: 1rem;                                    
  --text-subheading: 1.25rem;                           
  --text-heading-sm: 1.625rem;                          
  --text-heading: clamp(1.75rem, 3.2vw, 2.5rem);        
  --text-display: clamp(2.5rem, 6vw, 4.5rem);           
  --text-stat: clamp(3.5rem, 9vw, 8.5rem);
  --text-hero: clamp(3.75rem, 14vw, 13rem);
  --text-name: clamp(3.5rem, 12vw, 11rem);
  --text-phone: clamp(2.25rem, 9.5vw, 8.5rem);

  --leading-display: 0.93;
  --leading-tight: 1;
  --leading-heading: 1.2;
  --leading-body: 1.5;
  --leading-caption: 1.4;

  --tracking-display: -0.06em;
  --tracking-heading: -0.05em;
  --tracking-heading-sm: -0.04em;
  --tracking-subheading: -0.02em;
  --tracking-body: -0.01em;
  --tracking-caps: 0.06em;

  
  --space-4: 0.25rem;
  --space-8: 0.5rem;
  --space-12: 0.75rem;
  --space-16: 1rem;
  --space-20: 1.25rem;
  --space-24: 1.5rem;
  --space-32: 2rem;
  --space-40: 2.5rem;
  --space-48: 3rem;
  --space-56: 3.5rem;
  --space-80: 5rem;
  --space-120: 7.5rem;
  --space-section: clamp(5rem, 11vw, 7.5rem);         
  --gutter: clamp(1.25rem, 5vw, 3.5rem);
  --page-max: 75rem;                                   

  
  --radius-button: 0;
  --radius-card: 8px;
  --radius-pill: 100px;
  --hairline: 1px;

  
  --tap: 2.75rem;                                      
  --btn-height: 3rem;                                  
  --header-h: 4rem;
  --action-bar-h: 5rem; 
  --reel-h: clamp(22.5rem, 60vh, 38.75rem);

  
  --ease-cinema: cubic-bezier(0.16, 1, 0.3, 1);        
  --ease-shutter: cubic-bezier(0.77, 0, 0.175, 1);     
  --ease-micro: cubic-bezier(0.2, 0, 0, 1);
  --dur-micro: 160ms;
  --dur-component: 420ms;
  --dur-develop: 900ms;                                
  --dur-reveal: 1400ms;
  --dur-shutter: 1600ms;
  --dur-settle: 2600ms;
  --dur-breathe: 2400ms;
  --delay-title: 650ms;
  --delay-foot: 1250ms;
  --stagger: 120ms;
  --settle-from: 1.08;
  --nudge: 4px;

  
  --z-header: 50;
  --z-action-bar: 60;
  --z-skip: 100;
}

.band--dark,
.site-header,
.action-bar {
  --color-surface: var(--palette-obsidian);
  --color-ink: var(--palette-paper);
  --color-ink-muted: var(--palette-ash);
  --color-line: var(--palette-charcoal);
  --color-raised: var(--palette-charcoal);
  --color-card: var(--palette-soot);
  --color-accent: var(--palette-paper);
  --color-accent-ink: var(--palette-obsidian);
}


*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: var(--header-h);
}

body {
  margin: 0;
  background: var(--palette-obsidian);
  color: var(--color-ink);
  font-family: var(--font-body);
  font-weight: var(--weight-regular);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  letter-spacing: var(--tracking-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
  padding-bottom: calc(var(--action-bar-h) + env(safe-area-inset-bottom));
}

img { display: block; max-width: 100%; height: auto; }
figure, blockquote { margin: 0; }
h1, h2, h3, p, ul, ol, dl, dd { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button { font: inherit; color: inherit; letter-spacing: inherit; }
a { color: inherit; }
table { border-collapse: collapse; border-spacing: 0; }

main:focus { outline: none; }

:focus-visible {
  outline: 2px solid var(--color-ink);
  outline-offset: 4px;
}

.nowrap,
[data-text="hours-time"] { white-space: nowrap; }

.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: var(--space-8);
  left: var(--space-8);
  z-index: var(--z-skip);
  padding: var(--space-12) var(--space-24);
  background: var(--palette-paper);
  color: var(--palette-obsidian);
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  text-transform: uppercase;
  text-decoration: none;
  transform: translateY(-200%);
}
.skip-link:focus { transform: none; }

.container {
  width: 100%;
  max-width: calc(var(--page-max) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.band {
  background: var(--color-surface);
  color: var(--color-ink);
}

section[id] { scroll-margin-top: var(--header-h); }


.eyebrow {
  font-size: var(--text-nav);
  font-weight: var(--weight-medium);
  line-height: var(--leading-caption);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-ink-muted);
}

.display-heading {
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  font-size: var(--text-display);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-heading);
  text-wrap: balance;
}

.section-sub {
  font-size: var(--text-body);
  color: var(--color-ink-muted);
  max-width: 30rem;
  text-wrap: pretty;
}

.text-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: var(--tap);
  text-decoration: none;
}
.text-link::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: calc(50% - 0.8em);
  height: var(--hairline);
  background: currentColor;
  transform: scaleX(1);
  transform-origin: left;
  transition: transform var(--dur-component) var(--ease-cinema);
}
@media (hover: hover) {
  .text-link:hover::after { transform: scaleX(0); transform-origin: right; }
}


.btn {
  --btn-pad: var(--space-32);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-12);
  min-height: var(--btn-height);
  padding: 0 var(--btn-pad);
  border: var(--hairline) solid var(--color-ink);
  border-radius: var(--radius-button);
  font-family: var(--font-body);
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  line-height: 1;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: transform var(--dur-micro) var(--ease-micro);
  -webkit-tap-highlight-color: transparent;
}
.btn::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--color-wipe);
  mix-blend-mode: difference;
  pointer-events: none;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--dur-component) var(--ease-cinema);
}
@media (hover: hover) {
  .btn:hover::after { transform: scaleX(1); transform-origin: left; }
  .btn:hover .btn__arrow { transform: translateX(var(--nudge)); }
}
.btn:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.btn:active { transform: scale(0.98); }
.btn__arrow {
  display: inline-block;
  font-weight: var(--weight-regular);
  transition: transform var(--dur-component) var(--ease-cinema);
}


.btn--stark,
.btn--solid {
  background: var(--color-accent);
  color: var(--color-accent-ink);
  border-color: var(--color-accent);
}

.btn--ghost,
.btn--outline {
  background: transparent;
  color: var(--color-ink);
}
.btn--nav {
  --btn-pad: var(--space-24);
  min-height: var(--tap);
  font-size: var(--text-caption);
  background: var(--color-accent);
  color: var(--color-accent-ink);
  border-color: var(--color-accent);
}


.pill-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-4);
}
.pill {
  position: relative;
  isolation: isolate;
  min-height: var(--tap);
  padding: var(--space-8) var(--space-16);
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--color-ink-muted);
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  cursor: pointer;
  transition: color var(--dur-component) var(--ease-cinema), transform var(--dur-micro) var(--ease-micro);
}
.pill::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--color-ink);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--dur-component) var(--ease-cinema);
}
.pill[aria-pressed="true"] { color: var(--color-surface); }
.pill[aria-pressed="true"]::before { transform: scaleX(1); transform-origin: left; }
@media (hover: hover) {
  .pill:hover { color: var(--color-ink); }
  .pill[aria-pressed="true"]:hover { color: var(--color-surface); }
}
.pill:active { transform: scale(0.97); }

.icon-btn {
  display: inline-grid;
  place-items: center;
  width: var(--btn-height);
  height: var(--btn-height);
  border: var(--hairline) solid var(--color-line);
  border-radius: var(--radius-button);
  background: transparent;
  font-size: var(--text-subheading);
  cursor: pointer;
  transition: transform var(--dur-micro) var(--ease-micro), opacity var(--dur-component) var(--ease-micro);
}
.icon-btn span { transition: transform var(--dur-component) var(--ease-cinema); }
@media (hover: hover) {
  .icon-btn[data-reel-next]:hover span { transform: translateX(var(--nudge)); }
  .icon-btn[data-reel-prev]:hover span { transform: translateX(calc(-1 * var(--nudge))); }
}
.icon-btn:active { transform: scale(0.96); }
.icon-btn:disabled { opacity: 0.3; cursor: default; }


.copy-btn {
  display: none;
  position: relative;
  min-height: var(--btn-height);
  padding: 0 var(--space-8);
  border: 0;
  background: transparent;
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  cursor: pointer;
  align-items: center;
}
.enhanced .copy-btn { display: inline-flex; }
.copy-btn__track {
  display: grid;
  overflow: hidden;
  padding-bottom: var(--space-4);
  border-bottom: var(--hairline) solid currentColor;
}
.copy-btn__idle,
.copy-btn__done {
  grid-area: 1 / 1;
  transition: transform var(--dur-component) var(--ease-cinema), opacity var(--dur-component) var(--ease-cinema);
}
.copy-btn__done { transform: translateY(110%); opacity: 0; }
.copy-btn[data-state="done"] .copy-btn__idle { transform: translateY(-110%); opacity: 0; }
.copy-btn[data-state="done"] .copy-btn__done { transform: none; opacity: 1; }
.copy-btn:active { transform: scale(0.98); }


.status-dot {
  flex: none;
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  border: var(--hairline) solid currentColor;
  background: transparent;
}
[data-status-state="open"] .status-dot {
  background: currentColor;
  animation: breathe var(--dur-breathe) ease-in-out infinite;
}
[data-status-state="closing-soon"] .status-dot {
  
  background: linear-gradient(90deg, currentColor 50%, transparent 50%);
}
@keyframes breathe {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}


.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: var(--z-header);
  color: var(--color-ink);
}
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--palette-obsidian);
  border-bottom: var(--hairline) solid var(--palette-charcoal);
  opacity: 0;
  transition: opacity var(--dur-component) var(--ease-micro);
}
.site-header.is-solid::before { opacity: 1; }

.site-header__inner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  height: var(--header-h);
  padding-inline: var(--gutter);
  max-width: calc(var(--page-max) + 2 * var(--gutter) + var(--space-120));
  margin-inline: auto;
}

.logo {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  min-width: var(--tap);
  min-height: var(--tap);
  text-decoration: none;
  white-space: nowrap;
}
.logo__mark {
  font-size: var(--text-subheading);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-heading-sm);
}
.logo__word {
  font-size: var(--text-subheading);
  font-weight: var(--weight-light);
  letter-spacing: var(--tracking-subheading);
}

.site-nav { display: none; }
.site-nav ul { display: flex; gap: var(--space-32); }
.site-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--tap);
  min-height: var(--tap);
  font-size: var(--text-nav);
  font-weight: var(--weight-regular);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  text-decoration: none;
}
.site-nav a::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: var(--space-8);
  height: var(--hairline);
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--dur-component) var(--ease-cinema);
}
@media (hover: hover) {
  .site-nav a:hover::after { transform: scaleX(1); transform-origin: left; }
}

.site-header__actions {
  display: flex;
  align-items: center;
  gap: var(--space-24);
}
.status-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  min-height: var(--tap);
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
}
.site-header__call,
.site-header__cta { display: none; }
.site-header__call {
  font-size: var(--text-nav);
  letter-spacing: var(--tracking-caps);
}


.hero {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 32%;
  transform-origin: 50% 40%;
}
.hero__scrim {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(to bottom, var(--color-scrim-soft) 0%, var(--color-scrim-clear) 22%),
    linear-gradient(to top, var(--color-scrim-strong) 0%, var(--color-scrim-soft) 55%, var(--color-scrim-clear) 80%);
  pointer-events: none;
}
.plate-tag {
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}
.hero__tag {
  position: absolute;
  top: calc(var(--header-h) + var(--space-8));
  right: var(--gutter);
  color: var(--palette-paper);
  writing-mode: vertical-rl;
}

.hero__content {
  padding-top: calc(var(--header-h) + var(--space-80));
  padding-bottom: calc(var(--space-40) + var(--action-bar-h));
}
.hero__kicker {
  margin-bottom: var(--space-24);
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}
.hero__title {
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  font-size: var(--text-hero);
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  margin-left: -0.04em; 
}
.line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.08em;
  margin-bottom: -0.08em;
}
.line__inner { display: block; }

.hero__foot {
  display: grid;
  gap: var(--space-24);
  margin-top: var(--space-32);
}
.hero__lede {
  max-width: 28rem;
  font-size: var(--text-body);
  line-height: var(--leading-body);
}
.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-12);
}

.lower-third {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: var(--space-8);
}
.lower-third__label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  padding: var(--space-8) var(--space-12);
  background: var(--palette-paper);
  color: var(--palette-obsidian);
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  line-height: 1;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}
.lower-third__detail {
  padding: var(--space-8) var(--space-16) var(--space-12) var(--space-12);
  background: var(--palette-obsidian);
  color: var(--palette-paper);
  font-family: var(--font-accent);
  font-style: italic;
  font-size: var(--text-subheading);
  line-height: 1.2;
  letter-spacing: var(--tracking-subheading);
}
.lower-third__detail:empty { display: none; }
.motion .lower-third__label,
.motion .lower-third__detail {
  animation: strap var(--dur-reveal) var(--ease-cinema) both;
  animation-delay: calc(var(--delay-foot) + var(--stagger));
}
.motion .lower-third__detail { animation-delay: calc(var(--delay-foot) + 3 * var(--stagger)); }
@keyframes strap {
  from { clip-path: inset(0 100% 0 0); }
  to   { clip-path: inset(0 0 0 0); }
}



.hours { padding-block: var(--space-section); }
.hours__card {
  display: grid;
  justify-items: center;
  gap: var(--space-16);
  text-align: center;
  container-type: inline-size;
}
.hours__span {
  width: 100%;
  margin-top: var(--space-16);
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  
  font-size: min(13.6vw, 12rem);
  font-size: min(15.4cqi, 12rem);
  line-height: 0.9;
  letter-spacing: var(--tracking-display);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.hours__days {
  font-size: clamp(1.5rem, 3.4vw, 2.75rem);
  font-weight: var(--weight-light);
  letter-spacing: var(--tracking-heading-sm);
  line-height: var(--leading-heading);
}
.hours__weekend {
  font-size: var(--text-subheading);
  font-weight: var(--weight-light);
  letter-spacing: var(--tracking-subheading);
  color: var(--color-ink-muted);
}
.hours__status {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: var(--space-12);
  margin-top: var(--space-32);
  max-width: 34rem;
  font-family: var(--font-accent);
  font-style: italic;
  font-size: clamp(1.25rem, 2.4vw, 1.75rem);
  line-height: 1.25;
  letter-spacing: var(--tracking-subheading);
  text-wrap: balance;
}
.hours__status .status-dot { width: 0.625rem; height: 0.625rem; }


.gallery { padding-top: var(--space-section); }
.gallery__head {
  display: grid;
  gap: var(--space-24);
  align-items: end;
}
.gallery__intro { display: grid; gap: var(--space-12); }
.gallery__title {
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  font-size: var(--text-heading);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-heading);
}
.gallery .pill-row { justify-content: flex-start; margin-left: calc(-1 * var(--space-16)); }

.reel-wrap { position: relative; }
.reel {
  --reel-inset: max(var(--gutter), calc((100% - var(--page-max)) / 2));
  display: flex;
  align-items: flex-end;
  gap: var(--space-24);
  margin: 0;
  padding: var(--space-40) var(--reel-inset) var(--space-16);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--reel-inset);
  scrollbar-width: none;
}
.reel::-webkit-scrollbar { display: none; }
.reel:focus-visible { outline-offset: -4px; }


.plate {
  flex: 0 0 auto;
  width: min(78vw, 26rem);
  min-width: 0;
  scroll-snap-align: start;
}
.plate[hidden] { display: none; }

.plate__frame {
  overflow: hidden;
  background: var(--color-raised);
}
.plate__frame img,
.storefront__frame img {
  filter: grayscale(1) contrast(1.06);
  transition: filter var(--dur-develop) var(--ease-micro);
}
@media (hover: hover) {
  .plate:hover .plate__frame img,
  .storefront:hover .storefront__frame img { filter: grayscale(0) contrast(1); }
}

@media (hover: none) {
  .plate.is-current .plate__frame img { filter: grayscale(0) contrast(1); }
}
.reel:focus-visible .plate.is-current .plate__frame img { filter: grayscale(0) contrast(1); }

.plate__caption {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: var(--space-12);
  row-gap: var(--space-4);
  padding-top: var(--space-12);
  font-size: var(--text-caption);
  line-height: var(--leading-caption);
}

.plate .plate__caption {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: var(--space-12);
  font-size: var(--text-small);
}
.plate .plate__meta { grid-column: 2; font-size: var(--text-caption); }
.plate__title { min-width: 0; overflow-wrap: break-word; }
.plate__no {
  font-weight: var(--weight-medium);
  font-variant-numeric: tabular-nums;
}
.plate__title { color: var(--color-ink); }
.plate__meta {
  color: var(--color-ink-muted);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}

.reel-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-16);
  margin-top: var(--space-24);
}
.reel-controls__count {
  font-size: var(--text-small);
  font-variant-numeric: tabular-nums;
  color: var(--color-ink-muted);
}
.reel-controls__count span:first-child { color: var(--color-ink); }
.reel-controls__buttons { display: flex; gap: var(--space-8); }
.reel-controls__buttons { visibility: hidden; }
.enhanced .reel-controls__buttons { visibility: visible; }



.prices { padding-block: var(--space-section); }
.prices__grid { display: grid; gap: var(--space-56); }
.prices__side { display: grid; gap: var(--space-40); align-content: start; }
.prices__head { display: grid; gap: var(--space-16); justify-items: start; }
.prices__head .display-heading { max-width: 14ch; }
.prices__note { max-width: 30rem; color: var(--color-ink-muted); text-wrap: pretty; }
.prices__book { margin-top: var(--space-8); }
.prices__fallback { font-size: var(--text-subheading); }

.prices__photo { position: relative; margin: 0; }
.prices__frame { aspect-ratio: 4 / 3; overflow: hidden; background: var(--palette-mist); }
.prices__frame img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 18%; filter: grayscale(1) contrast(1.06); }
.prices__tag { position: absolute; left: var(--space-16); bottom: var(--space-12); color: var(--palette-paper); text-shadow: 0 1px 8px rgb(0 0 0 / 0.6); }

.prices__list { display: grid; gap: var(--space-48); align-content: start; }
.menu-group__title {
  display: flex;
  align-items: baseline;
  gap: var(--space-12);
  margin-bottom: var(--space-12);
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-ink-muted);
}
.menu-group__no { font-family: var(--font-accent); font-style: italic; font-size: 1.125rem; letter-spacing: 0; text-transform: none; color: var(--color-ink); }
.menu-rows { display: grid; gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.menu-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: var(--space-24);
  width: calc(100% + 2 * var(--space-16));
  margin-inline: calc(-1 * var(--space-16));
  padding: var(--space-16);
  border: 0;
  border-radius: 2px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
}
button.menu-row { cursor: pointer; transition: background-color var(--dur-micro, 0.2s) var(--ease-micro, ease); }
.menu-row__text { display: grid; gap: var(--space-4); }
.menu-row__name { font-size: var(--text-subheading); font-weight: var(--weight-medium); line-height: var(--leading-heading); letter-spacing: var(--tracking-subheading); }
.menu-row__meta { font-size: var(--text-small); color: var(--color-ink-muted); }
.menu-row__price {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 3.4vw, 2.5rem);
  font-weight: var(--weight-light);
  line-height: 1;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.menu-row__go {
  grid-column: 2;
  justify-self: end;
  margin-top: var(--space-4);
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  opacity: 0;
  transition: opacity var(--dur-micro, 0.2s) var(--ease-micro, ease);
}
.menu-row__go::after { content: " →"; }
@media (hover: hover) {
  button.menu-row:hover { background: var(--palette-mist); }
  button.menu-row:hover .menu-row__go { opacity: 1; }
}
button.menu-row:focus-visible { outline: 2px solid var(--color-ink); outline-offset: 2px; }
button.menu-row:focus-visible .menu-row__go { opacity: 1; }
@media (hover: none) { .menu-row__go { display: none; } }


.about { padding-block: var(--space-section); }
.about__grid {
  display: grid;
  gap: var(--space-48);
}
.about__head { display: grid; gap: var(--space-16); align-content: start; }
.about__name {
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  font-size: clamp(4.5rem, 12vw, 9rem);
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  margin-left: -0.04em;
  overflow-wrap: break-word;
}
.about__role {
  font-size: var(--text-body);
  color: var(--color-ink-muted);
}
.about__body { display: grid; gap: var(--space-40); align-content: start; }
.about__lead {
  font-size: var(--text-heading-sm);
  font-weight: var(--weight-light);
  letter-spacing: var(--tracking-heading-sm);
  line-height: var(--leading-heading);
  text-wrap: pretty;
}
.pullquote {
  padding-left: var(--space-24);
  border-left: var(--hairline) solid var(--color-ink);
}
.pullquote p {
  font-family: var(--font-accent);
  font-style: italic;
  font-weight: var(--weight-regular);
  font-size: var(--text-heading-sm);
  line-height: var(--leading-heading);
  letter-spacing: var(--tracking-subheading);
  text-wrap: pretty;
}
.pullquote__cite {
  margin-top: var(--space-16);
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-ink-muted);
}

.facts {
  display: grid;
  gap: var(--space-32) var(--space-24);
  margin-top: var(--space-8);
}
.fact {
  display: grid;
  align-content: start;
  gap: var(--space-8);
}
.fact__no {
  font-size: var(--text-nav);
  font-weight: var(--weight-medium);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--tracking-caps);
  color: var(--color-ink-muted);
}
.fact__lead {
  font-family: var(--font-display);
  font-size: clamp(1.625rem, 2.6vw, 2.125rem);
  font-weight: var(--weight-light);
  letter-spacing: var(--tracking-heading-sm);
  line-height: var(--leading-tight);
}
.fact__text {
  max-width: 30rem;
  font-size: var(--text-body);
  color: var(--color-ink-muted);
  text-wrap: pretty;
}


.stat { display: grid; gap: var(--space-12); }
.stat__label {
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-ink-muted);
}
.stat__value {
  display: flex;
  align-items: flex-start;
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  font-size: var(--text-stat);
  line-height: var(--leading-display);
  letter-spacing: var(--tracking-display);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.stat__unit {
  font-size: 0.26em;
  font-weight: var(--weight-regular);
  letter-spacing: 0;
  margin-left: 0.25em;
  margin-top: 0.45em;
}


.reviews { padding-block: var(--space-section); }
.reviews__grid {
  display: grid;
  gap: var(--space-56);
}
.reviews__summary { display: grid; gap: var(--space-24); align-content: start; justify-items: start; }
.stat--rating .stat__value { font-size: var(--text-stat); }
.reviews__source { font-size: var(--text-small); }


.reviews__feature { display: grid; gap: var(--space-32); align-content: start; }
.reviews__quote p {
  font-family: var(--font-accent);
  font-style: italic;
  font-size: clamp(1.875rem, 4vw, 3.25rem);
  line-height: var(--leading-heading);
  letter-spacing: var(--tracking-subheading);
  text-wrap: pretty;
}
.reviews__attribution {
  margin-top: var(--space-20);
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-ink-muted);
}
.reviews__controls {
  display: flex;
  align-items: center;
  gap: var(--space-16);
}
.reviews__count {
  font-size: var(--text-small);
  font-variant-numeric: tabular-nums;
  color: var(--color-ink-muted);
}



.visit { padding-top: var(--space-section); }

.visit__scene {
  --bleed: var(--gutter);
  display: grid;
}
.storefront {
  position: relative;
  min-width: 0;
  margin-inline: calc(-1 * var(--gutter));   
}
.storefront__frame { overflow: hidden; }
.storefront__frame img {
  width: 100%;
  aspect-ratio: 4 / 3;         
  object-fit: cover;
  object-position: 66% 50%;   
}

.storefront .storefront__caption {
  position: absolute;
  top: 0;
  left: var(--bleed);
  max-width: calc(100% - 2 * var(--bleed));
  padding: var(--space-8) var(--space-12);
  background: var(--palette-obsidian);
  color: var(--palette-paper);
}
.storefront__caption .plate__title { color: var(--palette-paper); }
.storefront__caption .plate__meta { color: var(--palette-ash); }

.location-card {
  position: relative;
  z-index: 1;
  min-width: 0;
  display: grid;
  align-content: start;
  margin: calc(-1 * var(--space-48)) calc(-1 * var(--gutter)) 0 var(--space-24);
  padding: var(--space-32) var(--gutter) var(--space-40) var(--space-24);
}
.location-card__address {
  margin-top: var(--space-12);
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  font-size: clamp(2.25rem, 4.2vw, 3.75rem);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-heading);
  text-wrap: balance;
}
.location-card__city {
  margin-top: var(--space-8);
  font-size: var(--text-heading-sm);
  font-weight: var(--weight-light);
  letter-spacing: var(--tracking-heading-sm);
}
.location-card__locator {
  margin-top: var(--space-16);
  max-width: 26rem;
  color: var(--color-ink-muted);
}
.visit__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-12);
  margin-top: var(--space-24);
}

.location-card__contact {
  display: grid;
  gap: var(--space-24);
  margin-top: var(--space-40);
}
.contact-field { display: grid; gap: var(--space-4); }
.contact-field__label {
  font-size: var(--text-nav);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-ink-muted);
}
.contact__phone {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  min-height: var(--tap);
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  font-size: clamp(2rem, 3.4vw, 2.75rem);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-heading-sm);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  text-decoration: none;
  transition: opacity var(--dur-component) var(--ease-micro);
}
@media (hover: hover) {
  .contact__phone:hover { opacity: 0.7; }
}
.contact-field__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4) var(--space-16);
  font-size: var(--text-subheading);
  letter-spacing: var(--tracking-subheading);
}
.contact__email { overflow-wrap: anywhere; }


.landmarks { padding-block: var(--space-80); }
.landmarks__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-16) var(--space-24);
  margin-bottom: var(--space-24);
}
.visit__subhead {
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  font-size: var(--text-heading);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-heading);
}
.visit__note {
  margin-top: var(--space-8);
  color: var(--color-ink-muted);
}
.landmarks-controls { display: flex; gap: var(--space-8); visibility: hidden; }
.landmarks-controls[hidden] { display: none; }
.enhanced .landmarks-controls { visibility: visible; }
.landmarks-reel {
  --reel-inset: max(var(--gutter), calc((100% - var(--page-max)) / 2));
  display: flex;
  gap: var(--space-12);
  margin: 0;
  padding: var(--space-4) var(--reel-inset);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: var(--reel-inset);
  scrollbar-width: none;
}
.landmarks-reel::-webkit-scrollbar { display: none; }
.landmarks-reel:focus-visible { outline-offset: -4px; }
.landmark-frame {
  position: relative;
  flex: 0 0 auto;
  width: 12.5rem;
  aspect-ratio: 4 / 5;
  display: grid;
  padding: var(--space-16);
  background: var(--palette-obsidian);
  color: var(--palette-paper);
  overflow: hidden;
  scroll-snap-align: start;
}
.landmark-frame--photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 30%;
  filter: grayscale(1) contrast(1.06);
}
.landmark-frame__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgb(0 0 0 / 0.8) 0%, rgb(0 0 0 / 0.15) 36%, rgb(0 0 0 / 0.3) 52%, rgb(0 0 0 / 0.94) 100%);
}
.landmark-frame__content {
  position: relative;
  display: grid;
  grid-template-rows: 1fr auto auto;
  gap: var(--space-4);
}
.landmark-frame__when {
  display: flex;
  align-items: flex-start;
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  line-height: 0.8;
  letter-spacing: var(--tracking-display);
  font-variant-numeric: tabular-nums;
}
.landmark-frame__num { font-size: clamp(4.5rem, 7vw, 6.5rem); }
.landmark-frame__unit {
  margin-left: 0.3em;
  margin-top: 0.35em;
  font-family: var(--font-body);
  font-size: var(--text-small);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}
.landmark-frame__when--near {
  font-size: clamp(1.625rem, 2.4vw, 2rem);
  line-height: 1;
  letter-spacing: var(--tracking-heading);
}
.landmark-frame__name {
  font-size: var(--text-body);
  font-weight: var(--weight-medium);
  line-height: 1.25;
  letter-spacing: var(--tracking-body);
}
.landmark-frame__detail {
  font-size: var(--text-small);
  line-height: var(--leading-caption);
  color: var(--palette-ash);
}
.landmark-frame--photo .landmark-frame__detail { color: var(--palette-fog); }


.map-break { padding-block: clamp(2.5rem, 6vw, 5rem) clamp(1.5rem, 3vw, 2.5rem); }
.map {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 4 / 3;
  max-height: 34rem;
  background: var(--palette-soot);   
  color: var(--color-ink);
}
.map__fallback {
  position: absolute;
  inset: 0;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: var(--space-12);
  padding: var(--space-24) var(--gutter);
  text-align: center;
}
.map__fallback-address {
  font-family: var(--font-display);
  font-weight: var(--weight-light);
  font-size: clamp(1.75rem, 4.4vw, 3.75rem);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-heading);
  text-wrap: balance;
}
.map__fallback-note {
  max-width: 26rem;
  color: var(--color-ink-muted);
}
.map__fallback .btn { margin-top: var(--space-12); }
.map__frame {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  border: 0;
  filter: grayscale(1) contrast(1.05);
  transition: filter var(--dur-develop) var(--ease-micro), opacity var(--dur-component) var(--ease-micro);
}
.map:hover .map__frame,
.map:focus-within .map__frame { filter: none; }

.map.is-pending .map__frame,
.map.is-offline .map__frame { opacity: 0; pointer-events: none; }
.map-break__caption {
  padding-top: var(--space-12);
  font-size: var(--text-small);
  color: var(--color-ink-muted);
  text-align: center;
}
.map-break__caption .text-link { color: var(--color-ink); }
.map-break.is-pending .map-break__caption,
.map-break.is-offline .map-break__caption { display: none; }



.site-footer {
  padding-block: var(--space-40);
  border-top: var(--hairline) solid var(--palette-charcoal);
  text-align: center;
}
.site-footer__inner {
  display: grid;
  justify-items: center;
  gap: var(--space-8);
}
.site-footer__brand {
  font-size: var(--text-subheading);
  font-weight: var(--weight-medium);
  line-height: 1.2;
  letter-spacing: var(--tracking-heading-sm);
}
.site-footer__brand span { font-weight: var(--weight-light); }
.site-footer__line {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  column-gap: var(--space-12);
  font-size: var(--text-small);
}
.site-footer__sep { color: var(--color-ink-muted); }
.site-footer__small {
  max-width: 44rem;
  font-size: var(--text-small);
  line-height: var(--leading-caption);
  color: var(--color-ink-muted);
}
.site-footer__small .text-link { color: var(--color-ink); }



.action-bar {
  position: fixed;
  left: 50%;
  bottom: calc(var(--space-16) + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  z-index: var(--z-action-bar);
  display: flex;
  gap: var(--space-8);
  width: max-content;
  max-width: calc(100% - 2 * var(--gutter));
  padding: var(--space-8);
  border-radius: var(--radius-pill);
  background: var(--color-surface);
  color: var(--color-ink);
  box-shadow: 0 var(--space-8) var(--space-24) rgb(0 0 0 / 0.45);
}
.action-bar__btn {
  --btn-pad: var(--space-20);
  border: 0;
  border-radius: var(--radius-pill);
}

@media (max-width: 22.5rem) {
  .logo__word { display: none; }
}
@media (max-width: 37.49rem) {
  
  .site-footer__sep { display: none; }
  .site-footer__line { flex-direction: column; }
  
  .storefront__frame img { aspect-ratio: 1 / 1; object-position: 70% 50%; }
  .storefront .storefront__caption { max-width: 58%; }
}


@media (min-width: 37.5rem) {
  .plate { width: min(60vw, 30rem); }

  .prices__frame { aspect-ratio: 16 / 10; }

  .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .landmark-frame { width: 14rem; }
  .map { aspect-ratio: 16 / 9; }

  .location-card { margin-left: 18%; }
}


@media (min-width: 60rem) {
  :root { --header-h: 4.5rem; }

  body { padding-bottom: 0; }
  .action-bar { display: none; }

  .site-header__call,
  .site-header__cta { display: inline-flex; }

  .hero__content { padding-bottom: var(--space-56); }
  .hero__foot {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    column-gap: var(--space-48);
  }
  .hero__lede { grid-column: 1; grid-row: 1; }
  .hero__actions { grid-column: 2; grid-row: 1 / span 2; justify-content: flex-end; align-self: end; }
  .hero__status { grid-column: 1; grid-row: 2; }

  
  .prices__grid,
  .about__grid,
  .reviews__grid,
  .visit__scene {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--space-24);
  }

  
  
  .plate { width: calc(var(--reel-h) * var(--ar, 2 / 3)); }
  .plate figure { width: 100%; }
  .plate__frame { height: var(--reel-h); }
  .plate__frame img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
  .reel { scroll-snap-type: x proximity; gap: var(--space-40); }
  .plate--landscape { margin-bottom: var(--space-80); } 
  .gallery__head { grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-48); }
  .gallery .pill-row { margin-left: 0; margin-right: calc(-1 * var(--space-16)); }

  
  .prices__side { grid-column: 1 / span 5; }
  .prices__list { grid-column: 7 / -1; padding-top: var(--space-8); }
  .prices__frame { aspect-ratio: 4 / 5; }

  .about__head { grid-column: 1 / span 5; }
  .about__body { grid-column: 6 / -1; padding-top: var(--space-32); }
  .about__lead { font-size: var(--text-heading); letter-spacing: var(--tracking-heading); line-height: var(--leading-tight); }
  .facts { grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: var(--space-56); }

  .reviews__summary { grid-column: 1 / span 4; }
  .reviews__feature { grid-column: 6 / -1; }

  
  .visit__scene { --bleed: calc(var(--gutter) + max(0px, (100vw - var(--page-max) - 2 * var(--gutter)) / 2)); }
  .storefront {
    grid-column: 1 / span 7;
    grid-row: 1;
    margin-inline: calc(-1 * var(--bleed)) 0;
  }
  .storefront__frame img { aspect-ratio: auto; height: clamp(26rem, 42vw, 36rem); }
  .location-card {
    grid-column: 7 / -1;
    grid-row: 1;
    margin: clamp(4rem, 8vw, 6rem) 0 0;
    padding: var(--space-48) var(--space-48) var(--space-48);
  }
  .landmarks { padding-block: var(--space-120) var(--space-80); }
  
  .landmark-frame { width: calc((100% - 4 * var(--space-12)) / 5); }

  .map { aspect-ratio: 2.39 / 1; max-height: none; }
}

@media (min-width: 70rem) {
  .site-nav { display: block; }
}


@keyframes shutter {
  from { clip-path: inset(50% 0 50% 0); }
  to   { clip-path: inset(0 0 0 0); }
}
@keyframes settle {
  from { transform: scale(var(--settle-from)); }
  to   { transform: scale(1); }
}
@keyframes rise {
  from { transform: translateY(105%); }
  to   { transform: translateY(0); }
}
@keyframes appear {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.motion .hero__media { animation: shutter var(--dur-shutter) var(--ease-shutter) both; }
.motion .hero__media img { animation: settle var(--dur-settle) var(--ease-cinema) both; }
.motion .hero__title .line__inner { animation: rise var(--dur-reveal) var(--ease-cinema) both; animation-delay: var(--delay-title); }
.motion .hero__title .line + .line .line__inner { animation-delay: calc(var(--delay-title) + var(--stagger)); }
.motion .hero__kicker,
.motion .hero__tag { animation: appear var(--dur-reveal) var(--ease-micro) both; animation-delay: var(--delay-title); }
.motion .hero__foot { animation: appear var(--dur-component) var(--ease-micro) both; animation-delay: var(--delay-foot); }
.motion .site-header__inner { animation: appear var(--dur-reveal) var(--ease-micro) both; animation-delay: calc(var(--delay-foot) - var(--stagger)); }


.motion.reveal-ready .reveal {
  
  clip-path: inset(100% 0 0 0);
  transition: clip-path var(--dur-reveal) var(--ease-cinema);
}
.motion.reveal-ready .reveal img {
  transform: scale(var(--settle-from));
  transition: transform var(--dur-settle) var(--ease-cinema), filter var(--dur-develop) var(--ease-micro);
}
.motion.reveal-ready .reveal.is-in { clip-path: inset(0 0 0 0); }
.motion.reveal-ready .reveal.is-in img { transform: scale(1); }


.motion.reveal-ready .fact.reveal {
  clip-path: none;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--dur-reveal) var(--ease-cinema), transform var(--dur-reveal) var(--ease-cinema);
}
.motion.reveal-ready .fact.reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
  }
  .reveal,
  .motion.reveal-ready .reveal { clip-path: none !important; }
  .reveal img,
  .motion.reveal-ready .reveal img { transform: none !important; }
  [data-status-state="open"] .status-dot { animation: none; }
}


.about__body { gap: 0; }
.pullquote { padding-left: 0; border-left: 0; }
.pullquote p {
  font-size: clamp(1.75rem, 3.4vw, 2.75rem);
  line-height: 1.18;
  letter-spacing: -0.01em;
}
.pullquote__cite { margin-top: var(--space-24); }
.facts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-40) var(--space-24);
  padding-top: var(--space-48);
  border-top: 0;
}
.fact { gap: var(--space-12); }
.fact__lead { font-size: clamp(1.75rem, 2.5vw, 2.375rem); text-wrap: balance; }
.fact__tag {
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  color: var(--color-ink-muted);
}
@media (min-width: 960px) {
  .about__body { padding-top: var(--space-24); }
  .facts { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: var(--space-80, 5rem); }
}


:root {
  --bk-bg: #ffffff;
  --bk-surface: #f2f2f2;
  --bk-ink: #000000;
  --bk-muted: #666666;
  --bk-accent: #000000;
  --bk-accent-ink: #ffffff;
  --bk-font-display: var(--font-display);
  --bk-font-body: var(--font-body);
  --bk-title-weight: 400;
  --bk-radius: 2px;
}
.bk__title { font-weight: 300; font-size: clamp(1.9rem, 6vw, 2.4rem); letter-spacing: -0.02em; }


.lower-third { flex-direction: row; align-items: stretch; flex-wrap: wrap; }
.lower-third__detail {
  display: inline-flex;
  align-items: center;
  padding: var(--space-8) var(--space-12);
  font-family: var(--font-body);
  font-style: normal;
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  line-height: 1;
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}
.hero__lede { max-width: 25rem; }

.site-header__actions { gap: var(--space-32); }

@media (max-width: 59.99rem) {
  .hero__actions { display: none; }
  .hero__content { padding-bottom: calc(var(--space-48) + var(--action-bar-h)); }
}


.pullquote { padding-left: 0; border-left: 0; }
.pullquote p,
.reviews__quote p {
  font-family: var(--font-display); font-style: normal; font-weight: 300;
  letter-spacing: -0.02em; line-height: 1.12;
}
.menu-group__no { font-family: var(--font-display); font-style: normal; font-size: 0.875rem; font-weight: var(--weight-medium); }
.hours__status { display: none; }


[hidden] { display: none !important; }


.hero__title .line__inner { white-space: nowrap; }
.about__name { overflow-wrap: normal; white-space: nowrap; }

.about__head, .about__name { min-width: 0; }


.logo--image { gap: 0; }
.brand-logo {
  display: block;
  width: auto;
  height: var(--logo-h, 2rem);
  max-width: 100%;
  object-fit: contain;
}
.brand-plate {
  display: inline-flex;
  padding: var(--space-8) var(--space-12);
  background: var(--palette-paper);
}
.site-footer__brand--image { display: flex; justify-content: center; margin-bottom: var(--space-12); }


.week {
  width: 100%;
  max-width: 46rem;
  margin: var(--space-32) 0 var(--space-16);
  display: grid;
  gap: var(--space-16);
  text-align: left;
}
.week__day {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr) 7.5rem;
  align-items: center;
  column-gap: var(--space-16);
  color: var(--palette-ash);
}
.week__name {
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
}
.week__track {
  position: relative;
  height: 0.875rem;
  background: var(--palette-soot);
}
.week__bar {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(var(--from) * 100%);
  width: calc((var(--to) - var(--from)) * 100%);
  background: #5a5a5a;
}
.week__time {
  font-size: var(--text-small);
  font-variant-numeric: tabular-nums;
  letter-spacing: var(--tracking-body);
  text-align: right;
  white-space: nowrap;
}
.week__day.is-closed .week__time { color: var(--palette-graphite); }
.week__day.is-today { color: var(--palette-paper); }
.week__day.is-today .week__bar { background: var(--palette-paper); }
@media (max-width: 37.49rem) {
  .week__day { grid-template-columns: 2.75rem minmax(0, 1fr) 6.75rem; column-gap: var(--space-12); }
  .week__time { font-size: var(--text-caption); }
}
@media (min-width: 60rem) {
  .week { gap: var(--space-20); }
  .week__day { grid-template-columns: 4.5rem minmax(0, 1fr) 9rem; column-gap: var(--space-24); }
  .week__time { font-size: var(--text-body); }
  .week__track { height: 1.125rem; }
}


.menu-row__from {
  margin-right: 0.35em;
  font-size: var(--text-caption);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-caps);
  text-transform: uppercase;
  vertical-align: 0.35em;
  color: var(--color-ink-muted);
}


@media (min-width: 960px) {
  .facts { grid-template-columns: repeat(var(--facts, 4), minmax(0, 1fr)); }
}
@media (min-width: 60rem) {
  .landmark-frame { width: calc((100% - (var(--n, 5) - 1) * var(--space-12)) / var(--n, 5)); }
  .reviews--summary-only .reviews__summary { grid-column: 1 / -1; }
}


.visit--bare .visit__scene { padding-bottom: clamp(3.5rem, 8vw, 7.5rem); }

.site-footer__line.site-footer__social { flex-direction: row; gap: var(--space-24); }

.is-fitting, .is-fitting * { transition: none !important; }


:root[data-brand] {
  --palette-obsidian: var(--brand-dark);
  --palette-paper: var(--brand-light);
  --palette-charcoal: var(--brand-dark-4);
  --palette-ash: var(--brand-on-dark-muted);
  --palette-slate: var(--brand-on-dark-muted);
  --palette-fog: var(--brand-light-3);
  --palette-graphite: var(--brand-ink-muted);
  --palette-mist: var(--brand-light-2);
  --palette-soot: var(--brand-dark-2);

  
  --color-surface: var(--brand-light);
  --color-ink: var(--brand-ink);
  --color-ink-muted: var(--brand-ink-muted);
  --color-line: var(--brand-light-3);
  --color-raised: var(--brand-light-3);
  --color-card: var(--brand-light-2);
  --color-accent: var(--brand-primary);
  --color-accent-ink: var(--brand-on-primary);
  --color-brand-text: var(--brand-text-on-light);
  --color-scrim-strong: color-mix(in oklab, var(--brand-dark-deep) 82%, transparent);
  --color-scrim-soft: color-mix(in oklab, var(--brand-dark-deep) 28%, transparent);
  --color-scrim-clear: color-mix(in oklab, var(--brand-dark-deep) 0%, transparent);

  
  --bk-bg: var(--brand-paper);
  --bk-surface: var(--brand-light);
  --bk-ink: var(--brand-ink);
  --bk-muted: var(--brand-ink-muted);
  --bk-accent: var(--brand-primary);
  --bk-accent-ink: var(--brand-on-primary);
  --bk-focus: var(--brand-text-on-light);
  --bk-backdrop: color-mix(in oklab, var(--brand-dark-deep) 62%, transparent);
}
:root[data-brand] .band--dark,
:root[data-brand] .site-header,
:root[data-brand] .action-bar {
  --color-surface: var(--brand-dark);
  --color-ink: var(--brand-on-dark);
  --color-ink-muted: var(--brand-on-dark-muted);
  --color-line: var(--brand-dark-4);
  --color-raised: var(--brand-dark-4);
  --color-card: var(--brand-dark-2);
  --color-accent: var(--brand-primary);
  --color-accent-ink: var(--brand-on-primary);
  --color-brand-text: var(--brand-text-on-dark);
}

:root[data-brand] ::selection { background: var(--brand-primary); color: var(--brand-on-primary); }
:root[data-brand] :focus-visible { outline-color: var(--color-brand-text); }
:root[data-brand] button.menu-row:focus-visible { outline-color: var(--color-brand-text); }
:root[data-brand] .skip-link { background: var(--brand-primary); color: var(--brand-on-primary); }


:root[data-brand] .btn {
  --btn-wipe: var(--brand-primary);
  --btn-wipe-ink: var(--brand-on-primary);
  transition: transform var(--dur-micro) var(--ease-micro), color var(--dur-component) var(--ease-cinema);
}
:root[data-brand] .btn--stark,
:root[data-brand] .btn--solid,
:root[data-brand] .btn--nav {
  --btn-wipe: var(--brand-on-primary);
  --btn-wipe-ink: var(--brand-primary);
}
:root[data-brand] .btn::after {
  z-index: -1;
  background: var(--btn-wipe);
  mix-blend-mode: normal;
}
@media (hover: hover) {
  :root[data-brand] .btn:hover { color: var(--btn-wipe-ink); }
  :root[data-brand] .btn--ghost:hover { border-color: var(--brand-primary); }
}
:root[data-brand] .btn:focus-visible { color: var(--btn-wipe-ink); }


:root[data-brand] .pill::before { background: var(--brand-primary); }
:root[data-brand] .pill[aria-pressed="true"],
:root[data-brand] .pill[aria-pressed="true"]:hover { color: var(--brand-on-primary); }


:root[data-brand] .text-link::after,
:root[data-brand] .site-nav a::after { background: var(--color-brand-text); }
:root[data-brand] .eyebrow { color: var(--color-brand-text); }
:root[data-brand] .stop { color: var(--color-brand-text); }

:root[data-brand] .logo__mark { color: var(--color-brand-text); }


:root[data-brand] .site-header::before { background: var(--brand-dark); border-bottom-color: var(--brand-dark-4); }
:root[data-brand] .hero__tag,
:root[data-brand] .prices__tag { color: var(--brand-on-dark); }
:root[data-brand] .prices__tag { text-shadow: 0 1px 8px color-mix(in oklab, var(--brand-dark-deep) 60%, transparent); }

:root[data-brand] .lower-third__label { background: var(--brand-primary); color: var(--brand-on-primary); }
:root[data-brand] .lower-third__detail { background: var(--brand-dark); color: var(--brand-on-dark); }


:root[data-brand] .week__day { color: var(--brand-on-dark-muted); }
:root[data-brand] .week__track { background: var(--brand-dark-2); }
:root[data-brand] .week__bar { background: color-mix(in oklab, var(--brand-on-dark-muted) 55%, var(--brand-dark)); }
:root[data-brand] .week__day.is-closed .week__time { color: var(--brand-on-dark-muted); }
:root[data-brand] .week__day.is-today { color: var(--brand-on-dark); }
:root[data-brand] .week__day.is-today .week__name { color: var(--brand-text-on-dark); }
:root[data-brand] .week__day.is-today .week__bar { background: var(--brand-primary); }


:root[data-brand] .prices__frame { background: var(--brand-light-2); }
:root[data-brand] .menu-group__no,
:root[data-brand] .menu-row__price,
:root[data-brand] .menu-row__go { color: var(--color-brand-text); }
@media (hover: hover) {
  :root[data-brand] button.menu-row:hover {
    background: var(--brand-paper);
    box-shadow: inset 3px 0 0 var(--brand-primary);
  }
}


:root[data-brand] .stat--rating .stat__value { color: var(--color-brand-text); }


:root[data-brand] .storefront .storefront__caption { background: var(--brand-dark); color: var(--brand-on-dark); }
:root[data-brand] .storefront__caption .plate__title { color: var(--brand-on-dark); }
:root[data-brand] .storefront__caption .plate__meta { color: var(--brand-on-dark-muted); }
:root[data-brand] .landmark-frame { background: var(--brand-dark); color: var(--brand-on-dark); }
:root[data-brand] .landmark-frame__num { color: var(--brand-text-on-dark); }
:root[data-brand] .landmark-frame__detail { color: var(--brand-on-dark-muted); }
:root[data-brand] .landmark-frame--photo .landmark-frame__detail { color: var(--brand-on-dark); }
:root[data-brand] .landmark-frame__scrim {
  background: linear-gradient(to bottom,
    color-mix(in oklab, var(--brand-dark-deep) 80%, transparent) 0%,
    color-mix(in oklab, var(--brand-dark-deep) 15%, transparent) 36%,
    color-mix(in oklab, var(--brand-dark-deep) 30%, transparent) 52%,
    color-mix(in oklab, var(--brand-dark-deep) 94%, transparent) 100%);
}

:root[data-brand] .map { background: var(--brand-dark-deep); }


:root[data-brand] .brand-plate { background: var(--brand-paper); }


:root[data-brand] .site-footer { border-top-color: var(--brand-dark-4); }
:root[data-brand] .action-bar { box-shadow: 0 var(--space-8) var(--space-24) color-mix(in oklab, var(--brand-dark-deep) 55%, transparent); }


:root[data-brand] .bk__svc[aria-pressed="true"] .bk__svc-detail { opacity: 1; }
