:root {
  --ink: #171412;
  --paper: #f7ecd7;
  --paper-2: #efe0c5;
  --red: #e84a2a;
  --red-dark: #b83620;
  --yellow: #f4c44f;
  --blue: #315f7d;
  --green: #7f9b72;
  --pink: #e6a2a5;
  --white: #fffdf8;
  --muted: #6b6259;
  --rule: 2px solid var(--ink);
  --rule-heavy: 4px solid var(--ink);
  --shadow: 8px 8px 0 var(--ink);
  --radius: 18px;
  --max: 1240px;
  --space-1: clamp(.55rem, .45rem + .25vw, .8rem);
  --space-2: clamp(.85rem, .7rem + .5vw, 1.25rem);
  --space-3: clamp(1.2rem, 1rem + .8vw, 1.9rem);
  --space-4: clamp(1.8rem, 1.25rem + 1.8vw, 3rem);
  --space-5: clamp(2.8rem, 2rem + 3vw, 5.2rem);
  --space-6: clamp(4rem, 3rem + 5vw, 8rem);
  --display: clamp(3.4rem, 9vw, 8.7rem);
  --h1: clamp(3rem, 7.3vw, 7.2rem);
  --h2: clamp(2.35rem, 5vw, 5rem);
  --h3: clamp(1.35rem, 2.1vw, 2rem);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); line-height: 1.5; }
body.is-locked { overflow: hidden; }
[hidden] { display: none !important; }
img { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: .18em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 4px solid #1c6be1; outline-offset: 3px; }
::selection { background: var(--yellow); color: var(--ink); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 9999; left: 1rem; top: 1rem; transform: translateY(-160%); background: var(--ink); color: white; padding: .8rem 1rem; border-radius: 8px; }
.skip-link:focus { transform: none; }
.announcement { min-height: 34px; background: var(--ink); color: var(--paper); display: flex; justify-content: center; gap: 1rem; align-items: center; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; padding: .4rem 1rem; }
.announcement a { color: var(--yellow); font-weight: 800; }
.site-header { position: sticky; top: 0; z-index: 100; min-height: 84px; display: grid; grid-template-columns: 230px 1fr auto; align-items: center; gap: 1rem; padding: .65rem clamp(1rem, 3vw, 3rem); border-bottom: var(--rule-heavy); background: color-mix(in srgb, var(--paper) 94%, transparent); backdrop-filter: blur(14px); }
.brand img { width: 205px; }
.primary-nav { display: flex; justify-content: center; gap: clamp(.65rem, 1.7vw, 1.5rem); }
.primary-nav a { text-decoration: none; font-weight: 850; font-size: .85rem; letter-spacing: .04em; text-transform: uppercase; padding: .55rem .2rem; border-bottom: 3px solid transparent; }
.primary-nav a:hover, .primary-nav a.is-active { border-bottom-color: var(--red); }
.cart-button { border: var(--rule); background: var(--yellow); border-radius: 999px; padding: .75rem 1rem; font-weight: 900; box-shadow: 3px 3px 0 var(--ink); min-height: 44px; }
.cart-button span { display: inline-grid; place-items: center; min-width: 1.55rem; height: 1.55rem; padding: 0 .25rem; border-radius: 999px; margin-left: .3rem; background: var(--ink); color: var(--paper); }
.nav-toggle { display: none; width: 48px; height: 44px; border: var(--rule); background: var(--paper); border-radius: 10px; padding: 8px; }
.nav-toggle span:not(.sr-only) { display: block; height: 3px; background: var(--ink); margin: 4px 0; }
.section-pad { padding: var(--space-6) clamp(1rem, 4vw, 4.5rem); }
.eyebrow { display: inline-block; font-size: .72rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { line-height: .95; letter-spacing: -.04em; }
h1,h2 { font-family: "Arial Black", Impact, sans-serif; text-transform: uppercase; }
h3 { font-size: var(--h3); }
p { color: var(--muted); }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: .8rem 1.15rem; border: var(--rule); border-radius: 999px; text-decoration: none; font-weight: 900; box-shadow: 4px 4px 0 var(--ink); transition: transform .18s ease, box-shadow .18s ease; }
.button:hover { transform: translate(2px,2px); box-shadow: 2px 2px 0 var(--ink); }
.button--dark { background: var(--ink); color: var(--paper); }
.button--red { background: var(--red); color: var(--white); }
.button--light { background: var(--paper); color: var(--ink); }
.button--full { width: 100%; }
.text-link, .text-button { font-weight: 900; text-decoration-thickness: 2px; }
.text-button { border: 0; background: transparent; text-decoration: underline; padding: .5rem; }
.hero { max-width: var(--max); margin: 0 auto; padding: clamp(2.3rem, 6vw, 6rem) clamp(1rem, 3vw, 2rem) var(--space-5); }
.hero--home { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; min-height: calc(100vh - 118px); }
.hero-copy h1 { font-size: var(--display); margin: .6rem 0 1.2rem; max-width: 8ch; }
.hero-copy h1 em { font-family: Georgia, serif; font-weight: 400; text-transform: none; color: var(--red); }
.hero-copy > p { max-width: 48rem; font-size: clamp(1rem, 1.3vw, 1.25rem); }
.hero-actions { display: flex; align-items: center; gap: 1.15rem; flex-wrap: wrap; margin-top: 1.6rem; }
.hero-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: .6rem; margin-top: 2.2rem; border-top: var(--rule); padding-top: 1rem; }
.hero-facts span { font-size: .78rem; text-transform: uppercase; font-weight: 750; line-height: 1.2; }
.hero-facts b { display: block; font-size: 1.35rem; color: var(--red); }
.hero-media { position: relative; border: var(--rule-heavy); background: var(--red); padding: 1rem; box-shadow: var(--shadow); transform: rotate(1deg); }
.hero-media img { width: 100%; height: min(68vh,760px); object-fit: cover; object-position: center; border: var(--rule); }
.hero-caption { position: absolute; left: 2rem; bottom: 2rem; background: var(--paper); border: var(--rule); padding: .6rem .8rem; font-size: .75rem; font-weight: 900; text-transform: uppercase; }
.sticker { position: absolute; display: grid; place-items: center; width: 118px; aspect-ratio: 1; right: -26px; top: -28px; border: var(--rule-heavy); border-radius: 50%; text-align: center; font-family: "Arial Black", sans-serif; font-size: .8rem; line-height: 1.05; transform: rotate(8deg); }
.sticker--yellow { background: var(--yellow); }
.ticker { border-block: var(--rule-heavy); background: var(--red); color: white; display: flex; overflow: hidden; gap: 0; }
.ticker span { flex: 1 0 auto; padding: .75rem 1.6rem; font-family: "Arial Black", sans-serif; font-size: clamp(.9rem,1.5vw,1.25rem); letter-spacing: .02em; white-space: nowrap; border-right: 2px solid var(--ink); }
.section-head { max-width: var(--max); margin: 0 auto var(--space-4); display: grid; grid-template-columns: 1fr minmax(220px,.38fr); gap: 2rem; align-items: end; }
.section-head h2 { font-size: var(--h2); margin: .35rem 0 0; max-width: 12ch; }
.section-head p { margin: 0; font-size: 1.05rem; }
.category-tiles { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; }
.category-tile { position: relative; color: var(--ink); min-height: 470px; padding: .9rem; border: var(--rule-heavy); text-decoration: none; box-shadow: 5px 5px 0 var(--ink); transition: transform .18s ease; overflow: hidden; }
.category-tile:hover { transform: translateY(-5px) rotate(-.5deg); }
.category-tile > span { position: absolute; z-index: 2; right: .7rem; top: .6rem; background: var(--paper); border: var(--rule); border-radius: 50%; width: 42px; height: 42px; display: grid; place-items: center; font-weight: 900; }
.category-tile img { height: 280px; width: 100%; object-fit: cover; border: var(--rule); background: var(--ink); }
.category-tile h3 { margin: 1rem 0 .4rem; text-transform: uppercase; font-family: "Arial Black",sans-serif; }
.category-tile p { color: currentColor; opacity: .78; }
.tile-red { background: var(--red); color: white; }
.tile-yellow { background: var(--yellow); }
.tile-blue { background: var(--blue); color: white; }
.tile-cream { background: var(--paper-2); }
.split-feature { display: grid; grid-template-columns: 1.05fr .95fr; gap: 0; padding-inline: 0; }
.split-feature--dark { background: var(--ink); color: var(--paper); }
.feature-image { min-height: 620px; }
.feature-image img { width: 100%; height: 100%; object-fit: cover; }
.feature-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(2rem,7vw,7rem); }
.feature-copy h2 { font-size: var(--h2); max-width: 10ch; margin: .4rem 0 1rem; }
.feature-copy p { color: #d8cdbb; font-size: 1.08rem; max-width: 42rem; }
.feature-copy .button { align-self: flex-start; margin-top: 1rem; }
.offer-preview-grid, .offers-grid { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: repeat(3,1fr); gap: 1.1rem; }
.offer-card { min-height: 480px; border: var(--rule-heavy); display: grid; grid-template-rows: 260px 1fr; background: var(--paper-2); box-shadow: 6px 6px 0 var(--ink); }
.offer-card img { width: 100%; height: 100%; object-fit: cover; border-bottom: var(--rule-heavy); background: var(--ink); }
.offer-card__body { padding: 1.1rem; display: flex; flex-direction: column; align-items: flex-start; }
.offer-card h3 { font-family: "Arial Black",sans-serif; text-transform: uppercase; margin: .55rem 0 .55rem; }
.offer-card__price { margin-top: auto; width: 100%; padding-top: 1rem; border-top: var(--rule); display: flex; justify-content: space-between; align-items: center; }
.offer-card__price strong { font-size: 1.6rem; }
.offer-card[data-accent="red"] { background: var(--red); color: white; }
.offer-card[data-accent="red"] p { color: #fff1e9; }
.offer-card[data-accent="yellow"] { background: var(--yellow); }
.offer-card[data-accent="blue"] { background: var(--blue); color: white; }
.offer-card[data-accent="blue"] p { color: #e5edf1; }
.offer-card[data-accent="green"] { background: var(--green); }
.offer-card[data-accent="pink"] { background: var(--pink); }
.location-band { max-width: var(--max); margin: 0 auto; background: var(--yellow); border: var(--rule-heavy); box-shadow: var(--shadow); padding: clamp(1.6rem,4vw,3.8rem); display: flex; justify-content: space-between; gap: 2rem; align-items: end; }
.location-band h2 { font-size: var(--h2); max-width: 13ch; margin: .4rem 0 0; }
.reservation-promo { padding-top: 0; }
.reservation-card { max-width: var(--max); margin: 0 auto; border: var(--rule-heavy); background: var(--red); color: white; padding: clamp(2rem,6vw,6rem); text-align: center; box-shadow: 10px 10px 0 var(--ink); }
.reservation-card h2 { font-size: var(--h2); max-width: 11ch; margin: .4rem auto 1rem; }
.reservation-card p { color: #fff0e8; max-width: 42rem; margin-inline: auto; }
.page-hero { min-height: 430px; display: grid; grid-template-columns: 1fr auto; gap: 2rem; align-items: end; padding: clamp(3rem,8vw,7rem) clamp(1rem,4vw,4.5rem); border-bottom: var(--rule-heavy); }
.page-hero > div:first-child { max-width: 940px; }
.page-hero h1 { font-size: var(--h1); margin: .45rem 0 1rem; max-width: 11ch; }
.page-hero p { max-width: 50rem; font-size: 1.1rem; }
.page-hero-mark { font-family: "Arial Black",sans-serif; text-align: right; font-size: clamp(2.2rem,5vw,5rem); line-height: .75; opacity: .16; }
.page-hero--menu { background: var(--yellow); }
.page-hero--offers { background: var(--red); color: white; }
.page-hero--offers p { color: #fff0e8; }
.page-hero--story { background: var(--blue); color: white; }
.page-hero--story p { color: #e3edf1; }
.page-hero--locations { background: var(--green); }
.page-hero--reserve { background: var(--paper-2); }
.page-hero--contact { background: var(--pink); }
.menu-experience { max-width: 1320px; margin: 0 auto; }
.menu-toolbar { display: grid; grid-template-columns: 1fr 260px; gap: 1rem; border: var(--rule-heavy); background: var(--white); padding: 1rem; box-shadow: 6px 6px 0 var(--ink); }
.menu-search label,.menu-sort label { display:block; font-weight: 900; font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; margin-bottom:.35rem; }
.menu-toolbar input,.menu-toolbar select { width: 100%; min-height: 50px; border: var(--rule); border-radius: 10px; background: var(--paper); padding: .8rem .9rem; }
.category-tabs { display: flex; gap: .55rem; overflow-x: auto; padding: 1.3rem .15rem .6rem; scrollbar-width: thin; }
.category-tab { flex: 0 0 auto; min-height: 44px; border: var(--rule); border-radius: 999px; background: var(--paper-2); padding: .65rem 1rem; font-weight: 900; }
.category-tab[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.menu-results-meta { display: flex; justify-content: space-between; gap: 1rem; align-items: center; margin: .8rem 0 1.2rem; font-weight: 800; }
.menu-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1.1rem; }
.menu-card { min-width: 0; border: var(--rule-heavy); background: var(--white); box-shadow: 5px 5px 0 var(--ink); display: grid; grid-template-rows: 245px 1fr; }
.menu-card__media { position: relative; overflow: hidden; background: var(--ink); border-bottom: var(--rule-heavy); }
.menu-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.menu-card:hover .menu-card__media img { transform: scale(1.04); }
.menu-card__category { position: absolute; top: .7rem; left: .7rem; background: var(--yellow); border: var(--rule); border-radius: 999px; padding: .3rem .55rem; font-size: .67rem; font-weight: 900; text-transform: uppercase; }
.menu-card__body { display: flex; flex-direction: column; padding: 1rem; }
.menu-card__title-row { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.menu-card h3 { margin: 0; font-family: "Arial Black", sans-serif; text-transform: uppercase; font-size: 1.35rem; }
.menu-card__price { font-weight: 950; font-size: 1.2rem; white-space: nowrap; }
.menu-card p { font-size: .92rem; margin: .65rem 0; }
.menu-card__tags { display:flex; flex-wrap:wrap; gap:.35rem; margin-bottom:.8rem; }
.menu-card__tags span { font-size:.64rem; border:1px solid var(--ink); border-radius:999px; padding:.25rem .45rem; text-transform:uppercase; font-weight:850; }
.menu-card .button { margin-top: auto; align-self: stretch; }
.menu-empty { border: var(--rule-heavy); padding: 3rem; text-align: center; background: var(--paper-2); }
.offer-note { max-width: var(--max); margin: 2rem auto 0; border-top: var(--rule-heavy); padding-top: 1rem; display: grid; grid-template-columns: 160px 1fr; gap: 1rem; }
.story-grid { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem,5vw,5rem); align-items: center; }
.story-photo { border: var(--rule-heavy); box-shadow: var(--shadow); background: var(--red); padding: .9rem; transform: rotate(-1deg); }
.story-photo img { width: 100%; height: 640px; object-fit: cover; border: var(--rule); }
.story-copy h2 { font-size: var(--h2); max-width: 10ch; margin: .4rem 0 1rem; }
.story-copy p { font-size: 1.08rem; }
.process { max-width: var(--max); margin: 0 auto; }
.process .section-head { margin-inline: 0; }
.process-list { list-style: none; margin: 0; padding: 0; border-top: var(--rule-heavy); }
.process-list li { display: grid; grid-template-columns: 90px 1fr; gap: 1rem; padding: 1.4rem 0; border-bottom: var(--rule-heavy); }
.process-list > li > span { font-family: "Arial Black",sans-serif; font-size: 2rem; color: var(--red); }
.process-list h3 { margin: 0 0 .35rem; text-transform: uppercase; font-family: "Arial Black",sans-serif; }
.process-list p { margin: 0; max-width: 58rem; }
.values-band { display: grid; grid-template-columns: repeat(3,1fr); border-block: var(--rule-heavy); background: var(--yellow); }
.values-band div { padding: 2rem; border-right: var(--rule-heavy); text-align: center; }
.values-band div:last-child { border-right: 0; }
.values-band strong { display:block; font-family:"Arial Black",sans-serif; font-size:1.7rem; text-transform:uppercase; }
.location-tabs { display:flex; gap:.6rem; overflow:auto; margin-bottom:1.3rem; }
.location-tab { min-height: 48px; border:var(--rule); border-radius:999px; background:var(--paper-2); padding:.7rem 1rem; font-weight:900; white-space:nowrap; }
.location-tab[aria-selected="true"] { background:var(--ink); color:var(--paper); }
.location-detail { max-width: var(--max); margin: 0 auto 2rem; min-height: 340px; border:var(--rule-heavy); box-shadow:var(--shadow); display:grid; grid-template-columns:1.1fr .9fr; }
.location-detail__map { min-height:340px; background:var(--red); display:grid; place-items:center; border-right:var(--rule-heavy); position:relative; overflow:hidden; }
.location-detail__map:before { content:""; position:absolute; inset:-20%; background:repeating-linear-gradient(45deg, transparent 0 30px, rgba(23,20,18,.18) 30px 33px), repeating-linear-gradient(-45deg, transparent 0 42px, rgba(23,20,18,.12) 42px 45px); }
.location-detail__map span { position:relative; font-family:"Arial Black",sans-serif; font-size:clamp(3rem,8vw,7rem); text-align:center; line-height:.8; opacity:.92; }
.location-detail__copy { padding:clamp(1.5rem,4vw,3rem); background:var(--white); }
.location-detail__copy h2 { font-size:var(--h2); margin:.3rem 0 1rem; }
.location-detail__copy address { font-style:normal; font-weight:750; margin-bottom:.8rem; }
.location-features { display:flex; flex-wrap:wrap; gap:.4rem; margin:1rem 0 1.4rem; }
.location-features span { border:1px solid var(--ink); border-radius:999px; padding:.3rem .55rem; font-size:.68rem; font-weight:850; text-transform:uppercase; }
.locations-all { max-width:var(--max); margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.location-card { border:var(--rule-heavy); padding:1.3rem; background:var(--paper-2); }
.location-card h3 { margin:.3rem 0 .7rem; text-transform:uppercase; font-family:"Arial Black",sans-serif; }
.location-card address { font-style:normal; color:var(--muted); }
.reserve-layout,.contact-layout { max-width:var(--max); margin:0 auto; display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(2rem,5vw,5rem); align-items:start; }
.reserve-copy { position:sticky; top:130px; }
.reserve-copy h2 { font-size:var(--h2); margin:.35rem 0 1rem; }
.reserve-copy ul { padding-left:1.15rem; color:var(--muted); }
.reserve-callout { border:var(--rule-heavy); background:var(--yellow); padding:1rem; margin-top:1.5rem; box-shadow:5px 5px 0 var(--ink); }
.reserve-callout p { margin:.3rem 0 0; color:var(--ink); }
.reserve-form,.contact-form { border:var(--rule-heavy); background:var(--white); padding:clamp(1.2rem,3vw,2.2rem); box-shadow:var(--shadow); }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; }
.reserve-form label,.contact-form label { display:grid; gap:.35rem; font-weight:850; font-size:.84rem; }
.reserve-form input,.reserve-form select,.reserve-form textarea,.contact-form input,.contact-form select,.contact-form textarea { width:100%; min-height:48px; border:var(--rule); border-radius:10px; background:var(--paper); padding:.75rem .8rem; }
.reserve-form textarea,.contact-form textarea { min-height:130px; resize:vertical; }
.span-2 { grid-column:1/-1; }
.check { display:flex !important; grid-template-columns:auto 1fr !important; align-items:start; gap:.6rem !important; margin:1rem 0; }
.check input { width:22px !important; min-height:22px !important; }
.form-status { min-height:1.4rem; margin:.8rem 0 0; font-weight:750; color:var(--ink); }
.contact-info { display:grid; gap:1rem; }
.contact-info > div { border:var(--rule-heavy); background:var(--yellow); padding:1.2rem; box-shadow:5px 5px 0 var(--ink); }
.contact-info a { display:block; font-family:"Arial Black",sans-serif; font-size:clamp(1.25rem,2vw,2rem); margin-top:.4rem; overflow-wrap:anywhere; }
.not-found { min-height:70vh; display:grid; place-content:center; text-align:center; padding:2rem; }
.not-found h1 { font-size:var(--h1); max-width:10ch; margin:.5rem auto 1rem; }
.not-found > div { display:flex; justify-content:center; gap:1rem; flex-wrap:wrap; }
.site-footer { border-top:var(--rule-heavy); background:var(--ink); color:var(--paper); }
.footer-marquee { overflow:hidden; border-bottom:2px solid #4c443d; white-space:nowrap; }
.footer-marquee span { display:block; width:max-content; padding:.8rem 0; font-family:"Arial Black",sans-serif; font-size:clamp(1rem,2vw,1.5rem); word-spacing:1.5rem; animation:marquee 24s linear infinite; }
.footer-grid { max-width:var(--max); margin:0 auto; display:grid; grid-template-columns:1.6fr .7fr .9fr; gap:2rem; padding:clamp(2.5rem,6vw,5rem) 1rem; }
.footer-grid img { background:var(--paper); border-radius:12px; }
.footer-grid p { color:#cfc2b2; max-width:30rem; }
.footer-brand-card { max-width:36rem; padding:clamp(1.25rem,2.4vw,2rem); border:1px solid #5a5047; border-top-color:var(--yellow); border-radius:24px; background:#1d1916; }
.footer-brand-card__lockup { display:flex; align-items:center; gap:1rem; color:var(--paper); text-decoration:none; }
.footer-grid .footer-brand-card__medallion { width:clamp(4.8rem,7vw,6.5rem); height:auto; flex:0 0 auto; background:transparent; border-radius:50%; }
.footer-brand-card__wordmark { display:grid; gap:.2rem; min-width:0; }
.footer-grid .footer-brand-card__wordmark strong { margin:0; color:var(--paper); font-family:"Arial Black",var(--font-ui); font-size:clamp(1.45rem,2.4vw,2.2rem); line-height:.95; letter-spacing:-.04em; text-transform:uppercase; }
.footer-brand-card__wordmark span { color:var(--yellow); font-size:.75rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.footer-brand-card p { margin:1.25rem 0 0; color:#eadfce; font-size:clamp(.98rem,1vw,1.08rem); line-height:1.6; max-width:34ch; }
.footer-grid > div:not(:first-child) { display:grid; align-content:start; gap:.55rem; }
.footer-grid strong { color:var(--yellow); text-transform:uppercase; letter-spacing:.1em; font-size:.75rem; margin-bottom:.35rem; }
.footer-grid a { text-decoration:none; }
.footer-grid a:hover { text-decoration:underline; }
.footer-bottom { max-width:var(--max); margin:0 auto; border-top:2px solid #4c443d; padding:1rem; display:flex; justify-content:space-between; gap:1rem; color:#a99e91; font-size:.78rem; }
.cart-backdrop { position:fixed; inset:0; z-index:199; background:rgba(23,20,18,.65); }
.cart-drawer { position:fixed; z-index:200; right:0; top:0; bottom:0; width:min(520px,100%); background:var(--paper); border-left:var(--rule-heavy); padding:1rem; overflow:auto; box-shadow:-10px 0 0 rgba(23,20,18,.12); }
.cart-head { display:flex; justify-content:space-between; gap:1rem; align-items:start; border-bottom:var(--rule-heavy); padding-bottom:1rem; }
.cart-head h2 { margin:.2rem 0 0; font-size:2.1rem; }
.icon-button { width:44px; height:44px; border:var(--rule); border-radius:50%; background:var(--red); color:white; font-weight:950; }
.cart-items { display:grid; gap:.8rem; padding:1rem 0; }
.cart-line { border:var(--rule); background:var(--white); padding:.8rem; display:grid; grid-template-columns:72px 1fr auto; gap:.75rem; align-items:center; }
.cart-line img { width:72px; height:72px; object-fit:cover; border:1px solid var(--ink); background:var(--ink); }
.cart-line h3 { margin:0 0 .25rem; font-size:1rem; line-height:1.1; }
.cart-line p { margin:0; font-size:.76rem; }
.cart-line__actions { display:flex; align-items:center; gap:.35rem; margin-top:.55rem; }
.cart-line__actions button { width:32px; height:32px; border:1px solid var(--ink); background:var(--paper-2); border-radius:50%; font-weight:900; }
.cart-line__remove { border:0 !important; background:transparent !important; width:auto !important; text-decoration:underline; margin-left:.2rem; font-size:.7rem; }
.cart-empty { padding:2rem 0; display:grid; gap:.6rem; text-align:center; }
.cart-summary { border-top:var(--rule-heavy); padding-top:1rem; }
.cart-summary > div { display:flex; justify-content:space-between; gap:1rem; padding:.35rem 0; }
.cart-summary .cart-total { font-size:1.25rem; border-top:var(--rule); margin-top:.4rem; padding-top:.8rem; }
.cart-summary p { font-size:.75rem; }
.reveal { opacity:1; transform:none; transition:opacity .55s ease,transform .55s ease; }
.js .reveal:not(.is-visible) { opacity:0; transform:translateY(22px); }
.reveal.is-visible { opacity:1; transform:none; }
@keyframes marquee { to { transform:translateX(-25%); } }
@media (max-width: 1040px) {
  .site-header { grid-template-columns:190px auto auto; }
  .primary-nav { position:absolute; left:0; right:0; top:100%; display:none; background:var(--paper); border-bottom:var(--rule-heavy); padding:1rem; flex-direction:column; align-items:stretch; }
  .primary-nav.is-open { display:flex; }
  .primary-nav a { min-height:44px; display:flex; align-items:center; border-bottom:1px solid var(--ink); }
  .nav-toggle { display:block; justify-self:end; }
  .hero--home { grid-template-columns:1fr; min-height:auto; }
  .hero-copy h1 { max-width:10ch; }
  .hero-media img { height:min(65vh,680px); }
  .category-tiles { grid-template-columns:repeat(2,1fr); }
  .category-tile { min-height:420px; }
  .split-feature { grid-template-columns:1fr; }
  .feature-image { min-height:520px; }
  .offer-preview-grid,.offers-grid,.menu-grid { grid-template-columns:repeat(2,1fr); }
  .story-photo img { height:520px; }
  .reserve-layout,.contact-layout { grid-template-columns:1fr; }
  .reserve-copy { position:static; }
}
@media (max-width: 720px) {
  .announcement { justify-content:space-between; font-size:.63rem; }
  .site-header { min-height:72px; grid-template-columns:1fr auto auto; padding:.55rem .75rem; }
  .brand img { width:150px; }
  .cart-button { padding:.65rem .75rem; font-size:.76rem; }
  .hero { padding-top:2rem; }
  .hero--home { gap:2.5rem; }
  .hero-copy h1 { font-size:clamp(3rem,16vw,5.5rem); }
  .hero-facts { grid-template-columns:1fr; }
  .hero-facts span { display:grid; grid-template-columns:90px 1fr; align-items:center; border-bottom:1px solid var(--ink); padding:.45rem 0; }
  .hero-facts b { display:inline; }
  .hero-media { box-shadow:5px 5px 0 var(--ink); padding:.6rem; }
  .hero-media img { height:62vh; min-height:460px; }
  .sticker { width:88px; right:-5px; top:-24px; font-size:.64rem; }
  .hero-caption { left:1rem; bottom:1rem; right:1rem; }
  .section-head { grid-template-columns:1fr; gap:1rem; }
  .category-tiles { grid-template-columns:1fr; }
  .category-tile { min-height:0; }
  .category-tile img { height:280px; }
  .feature-image { min-height:390px; }
  .feature-copy { padding:3rem 1rem; }
  .offer-preview-grid,.offers-grid,.menu-grid { grid-template-columns:1fr; }
  .offer-card { grid-template-rows:230px 1fr; min-height:430px; }
  .location-band { align-items:flex-start; flex-direction:column; }
  .page-hero { grid-template-columns:1fr; min-height:360px; }
  .page-hero-mark { display:none; }
  .menu-toolbar { grid-template-columns:1fr; box-shadow:4px 4px 0 var(--ink); }
  .menu-card { grid-template-rows:235px 1fr; }
  .offer-note { grid-template-columns:1fr; }
  .story-grid { grid-template-columns:1fr; }
  .story-photo img { height:430px; }
  .process-list li { grid-template-columns:58px 1fr; }
  .values-band { grid-template-columns:1fr; }
  .values-band div { border-right:0; border-bottom:var(--rule-heavy); }
  .values-band div:last-child { border-bottom:0; }
  .location-detail { grid-template-columns:1fr; box-shadow:5px 5px 0 var(--ink); }
  .location-detail__map { border-right:0; border-bottom:var(--rule-heavy); min-height:240px; }
  .locations-all { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .span-2 { grid-column:auto; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; }
  .cart-line { grid-template-columns:62px 1fr; }
  .cart-line > strong { grid-column:2; }
  .cart-line img { width:62px; height:62px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal, .js .reveal { opacity:1; transform:none; }
}

/* ==============================================================
   Press Club v1.1 — typography, rhythm, interaction refinement
   Base unit: 4px. Zero-network font system for speed + resilience.
   ============================================================== */
:root {
  /* Font system — implemented option: Humanist Editorial */
  --font-ui: "Trebuchet MS", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
  --font-display: Georgia, "Times New Roman", Times, serif;
  --font-mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;

  /* Modular type scale */
  --type-xs: 0.75rem;
  --type-sm: 0.875rem;
  --type-base: 1rem;
  --type-lg: clamp(1.0625rem, 1.02rem + 0.2vw, 1.1875rem);
  --type-xl: clamp(1.25rem, 1.16rem + 0.35vw, 1.5rem);
  --type-2xl: clamp(1.55rem, 1.35rem + 0.75vw, 2rem);
  --type-3xl: clamp(2rem, 1.65rem + 1.5vw, 3rem);
  --type-4xl: clamp(2.6rem, 2rem + 2.7vw, 4.5rem);
  --type-5xl: clamp(3.2rem, 2.35rem + 4vw, 6rem);
  --type-display: clamp(3.55rem, 2.3rem + 5.7vw, 7.4rem);
  --leading-tight: 0.97;
  --leading-snug: 1.16;
  --leading-body: 1.62;
  --leading-relaxed: 1.72;
  --tracking-tight: -0.028em;
  --tracking-ui: -0.006em;
  --tracking-label: 0.09em;
  --weight-regular: 400;
  --weight-medium: 600;
  --weight-bold: 700;
  --weight-heavy: 800;

  /* 4px spacing system */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2rem;
  --sp-7: 3rem;
  --sp-8: 4rem;
  --sp-9: 6rem;
  --sp-10: 8rem;
  --gutter: clamp(1rem, 3vw, 3rem);
  --section-y: clamp(3.75rem, 7vw, 7.25rem);
  --card-pad: clamp(1rem, 1.25vw, 1.4rem);

  /* Existing aliases now resolve to the refined rhythm */
  --space-1: var(--sp-2);
  --space-2: var(--sp-3);
  --space-3: var(--sp-5);
  --space-4: clamp(2rem, 3vw, 3rem);
  --space-5: clamp(3rem, 5vw, 5rem);
  --space-6: var(--section-y);
  --display: var(--type-display);
  --h1: var(--type-5xl);
  --h2: var(--type-4xl);
  --h3: var(--type-xl);

  /* Accessible brand tuning */
  --red: #cf4026;
  --red-dark: #9f2d1b;
  --focus: #005fcc;
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --shadow-soft: 6px 7px 0 var(--ink);

  /* Interaction timing */
  --motion-fast: 120ms;
  --motion-normal: 180ms;
  --motion-slow: 320ms;
  --ease-standard: cubic-bezier(.2,.8,.2,1);
  --ease-emphasized: cubic-bezier(.22,.82,.26,1.08);

  font-family: var(--font-ui);
}

html { text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-ui);
  font-size: var(--type-base);
  line-height: var(--leading-body);
  letter-spacing: var(--tracking-ui);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, p { margin-block-start: 0; }
h1, h2 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  text-transform: none;
  text-wrap: balance;
}
h3 {
  font-family: var(--font-ui);
  font-size: var(--type-xl);
  font-weight: var(--weight-heavy);
  line-height: var(--leading-snug);
  letter-spacing: -0.018em;
  text-wrap: balance;
}
p, li, address { line-height: var(--leading-body); }
p { text-wrap: pretty; }
strong, b { font-weight: var(--weight-bold); }

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 4px;
}
:focus:not(:focus-visible) { outline: none; }

.skip-link {
  inset-inline-start: var(--sp-4);
  left: auto;
  top: var(--sp-4);
  font-weight: var(--weight-bold);
}

.announcement {
  min-height: 36px;
  gap: var(--sp-4);
  padding: var(--sp-2) var(--gutter);
  font-size: var(--type-xs);
  font-weight: var(--weight-medium);
  letter-spacing: var(--tracking-label);
}
.announcement a { font-weight: var(--weight-bold); }

.site-header {
  min-height: 88px;
  gap: var(--sp-4);
  padding: var(--sp-3) var(--gutter);
}
.primary-nav { gap: clamp(var(--sp-3), 1.5vw, var(--sp-5)); }
.primary-nav a {
  position: relative;
  padding: var(--sp-3) var(--sp-1);
  border-bottom: 0;
  font-size: var(--type-sm);
  font-weight: var(--weight-bold);
  letter-spacing: 0.025em;
  transition: color var(--motion-fast) var(--ease-standard);
}
.primary-nav a::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0.25rem;
  height: 3px;
  border-radius: 999px;
  background: var(--red);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform var(--motion-normal) var(--ease-standard);
}
.primary-nav a.is-active::after,
.primary-nav a[aria-current="page"]::after { transform: scaleX(1); }

.cart-button,
.nav-toggle,
.category-tab,
.location-tab,
.icon-button,
.cart-line__actions button {
  transition: transform var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) linear, color var(--motion-fast) linear;
}
.cart-button {
  min-height: 46px;
  padding: 0.72rem 1rem;
  font-weight: var(--weight-heavy);
  box-shadow: 3px 4px 0 var(--ink);
}
.cart-button span {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  margin-inline-start: var(--sp-1);
  margin-left: 0;
}

.section-pad { padding: var(--section-y) var(--gutter); }
.eyebrow {
  font-size: var(--type-xs);
  font-weight: var(--weight-heavy);
  letter-spacing: var(--tracking-label);
  line-height: 1.35;
}

.button {
  min-height: 50px;
  gap: var(--sp-2);
  padding: 0.78rem 1.2rem;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: var(--weight-heavy);
  line-height: 1.15;
  box-shadow: 4px 5px 0 var(--ink);
  transition: transform var(--motion-normal) var(--ease-standard), box-shadow var(--motion-normal) var(--ease-standard), background-color var(--motion-fast) linear, color var(--motion-fast) linear;
}
.button:active,
.cart-button:active,
.category-tab:active,
.location-tab:active {
  transform: translate(2px, 2px);
  box-shadow: 2px 2px 0 var(--ink);
}
.button:disabled,
.cart-button:disabled {
  cursor: not-allowed;
  opacity: 0.58;
  transform: none;
  box-shadow: 2px 2px 0 color-mix(in srgb, var(--ink) 45%, transparent);
}
.text-link, .text-button {
  font-weight: var(--weight-bold);
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.22em;
  transition: color var(--motion-fast) linear, text-decoration-thickness var(--motion-fast) linear;
}

.hero {
  padding: clamp(2.75rem, 6vw, 6rem) clamp(1rem, 3vw, 2rem) var(--space-5);
}
.hero--home {
  grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr);
  gap: clamp(2.5rem, 5vw, 5.5rem);
}
.hero-copy h1 {
  font-size: var(--type-display);
  line-height: 0.94;
  margin: var(--sp-3) 0 var(--sp-5);
  max-width: 8.5ch;
}
.hero-copy h1 em {
  font-family: var(--font-display);
  font-weight: 400;
  font-style: italic;
  color: var(--red);
}
.hero-copy > p {
  max-width: 42rem;
  font-size: var(--type-lg);
  line-height: 1.58;
}
.hero-actions { gap: var(--sp-5); margin-top: var(--sp-6); }
.hero-facts {
  gap: var(--sp-3);
  margin-top: var(--sp-7);
  padding-top: var(--sp-4);
}
.hero-facts span {
  font-size: var(--type-xs);
  font-weight: var(--weight-bold);
  line-height: 1.35;
  letter-spacing: 0.035em;
}
.hero-facts b {
  font-family: var(--font-mono);
  font-size: var(--type-xl);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.hero-media {
  border-radius: var(--radius-md);
  padding: var(--sp-4);
  box-shadow: var(--shadow-soft);
  transform: rotate(.65deg);
}
.hero-media img { border-radius: calc(var(--radius-md) - 5px); }
.hero-caption {
  inset-inline-start: var(--sp-6);
  left: auto;
  bottom: var(--sp-6);
  padding: var(--sp-2) var(--sp-3);
  border-radius: var(--radius-sm);
  font-size: var(--type-xs);
  font-weight: var(--weight-bold);
  letter-spacing: 0.035em;
}
.sticker {
  inset-inline-end: -26px;
  right: auto;
  font-family: var(--font-mono);
  font-size: var(--type-xs);
  font-weight: 700;
  letter-spacing: 0.02em;
}

.ticker span,
.page-hero-mark,
.footer-marquee span,
.process-list > li > span,
.location-detail__map span {
  font-family: var(--font-mono);
  font-weight: 700;
  letter-spacing: -0.025em;
}
.ticker span {
  padding: var(--sp-3) var(--sp-6);
  font-size: clamp(.9rem, 1.2vw, 1.1rem);
  letter-spacing: 0.035em;
}

.section-head {
  margin-bottom: clamp(var(--sp-6), 3vw, var(--sp-7));
  grid-template-columns: minmax(0, 1fr) minmax(240px, .38fr);
  gap: clamp(var(--sp-6), 4vw, var(--sp-8));
}
.section-head h2,
.feature-copy h2,
.location-band h2,
.reservation-card h2,
.story-copy h2,
.reserve-copy h2,
.location-detail__copy h2 {
  font-size: var(--type-4xl);
}
.section-head p,
.feature-copy p,
.story-copy p,
.page-hero p { font-size: var(--type-lg); }

.category-tiles,
.offer-preview-grid,
.offers-grid,
.menu-grid { gap: clamp(var(--sp-4), 1.7vw, var(--sp-5)); }
.category-tile,
.offer-card,
.menu-card,
.location-card,
.reserve-form,
.contact-form,
.contact-info > div,
.location-band,
.reservation-card,
.location-detail,
.reserve-callout {
  border-radius: var(--radius-md);
}
.category-tile,
.offer-card,
.menu-card,
.location-detail,
.reserve-form,
.contact-form { overflow: hidden; }
.category-tile {
  padding: var(--sp-3);
  box-shadow: 5px 6px 0 var(--ink);
  transition: transform var(--motion-normal) var(--ease-standard), box-shadow var(--motion-normal) var(--ease-standard);
}
.category-tile > span {
  inset-inline-end: 0.7rem;
  right: auto;
  top: 0.7rem;
  font-family: var(--font-mono);
  font-size: var(--type-sm);
  font-weight: 700;
}
.category-tile img { border-radius: calc(var(--radius-md) - 7px); }
.category-tile h3,
.offer-card h3,
.menu-card h3,
.process-list h3,
.location-card h3 {
  font-family: var(--font-ui);
  font-weight: var(--weight-heavy);
  line-height: var(--leading-snug);
  letter-spacing: -0.018em;
  text-transform: none;
}
.category-tile h3 { margin: var(--sp-4) 0 var(--sp-2); }
.category-tile p { line-height: 1.5; }

.feature-copy { padding: clamp(2.5rem, 7vw, 7rem); }
.feature-copy h2 { margin: var(--sp-2) 0 var(--sp-4); }
.feature-copy p { line-height: 1.62; }
.feature-copy .button { margin-top: var(--sp-4); }

.offer-card {
  grid-template-rows: 260px 1fr;
  box-shadow: 6px 7px 0 var(--ink);
  transition: transform var(--motion-normal) var(--ease-standard), box-shadow var(--motion-normal) var(--ease-standard);
}
.offer-card__body { padding: var(--card-pad); }
.offer-card h3 { margin: var(--sp-2) 0 var(--sp-2); }
.offer-card__body > p { line-height: 1.55; }
.offer-card__price { padding-top: var(--sp-4); }
.offer-card__price strong,
.menu-card__price {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.025em;
}
.offer-card[data-accent="red"] p,
.page-hero--offers p,
.reservation-card p { color: var(--white); }

.location-band { padding: clamp(1.75rem, 4vw, 3.5rem); }
.reservation-card { padding: clamp(2.5rem, 6vw, 6rem); }
.reservation-card p { font-size: var(--type-lg); line-height: 1.58; }

.page-hero {
  min-height: 440px;
  gap: var(--sp-7);
  padding: clamp(3.5rem, 8vw, 7rem) var(--gutter);
}
.page-hero h1 {
  font-size: var(--type-5xl);
  line-height: 0.98;
  margin: var(--sp-2) 0 var(--sp-4);
  max-width: 12ch;
}
.page-hero p { max-width: 46rem; line-height: 1.58; }
.page-hero-mark {
  text-align: end;
  font-size: clamp(2rem, 4.5vw, 4.5rem);
  line-height: .82;
  opacity: .15;
}

.menu-toolbar {
  grid-template-columns: minmax(0, 1fr) minmax(220px, 260px);
  gap: var(--sp-4);
  padding: var(--sp-4);
  border-radius: var(--radius-md);
  box-shadow: 5px 6px 0 var(--ink);
}
.menu-search label,
.menu-sort label,
.reserve-form label,
.contact-form label {
  font-size: var(--type-sm);
  font-weight: var(--weight-bold);
  letter-spacing: 0.01em;
  text-transform: none;
}
.menu-search label,
.menu-sort label { margin-bottom: var(--sp-2); }
.menu-toolbar input,
.menu-toolbar select,
.reserve-form input,
.reserve-form select,
.reserve-form textarea,
.contact-form input,
.contact-form select,
.contact-form textarea {
  min-height: 52px;
  padding: 0.82rem 0.95rem;
  border-radius: var(--radius-sm);
  line-height: 1.35;
  transition: background-color var(--motion-fast) linear, border-color var(--motion-fast) linear, box-shadow var(--motion-fast) linear;
}
textarea { line-height: 1.55 !important; }
input::placeholder,
textarea::placeholder { color: color-mix(in srgb, var(--muted) 78%, transparent); opacity: 1; }
.category-tabs { gap: var(--sp-2); padding: var(--sp-5) var(--sp-1) var(--sp-3); }
.category-tab,
.location-tab {
  min-height: 46px;
  padding: 0.68rem 1rem;
  font-size: var(--type-sm);
  font-weight: var(--weight-bold);
}
.menu-results-meta { margin: var(--sp-3) 0 var(--sp-5); font-weight: var(--weight-medium); }
.menu-card {
  grid-template-rows: 245px 1fr;
  box-shadow: 5px 6px 0 var(--ink);
  transition: transform var(--motion-normal) var(--ease-standard), box-shadow var(--motion-normal) var(--ease-standard);
}
.menu-card__media img { transition: transform var(--motion-slow) var(--ease-standard); }
.menu-card__category {
  inset-inline-start: 0.7rem;
  left: auto;
  font-size: var(--type-xs);
  font-weight: var(--weight-bold);
  letter-spacing: 0.025em;
}
.menu-card__body { padding: var(--card-pad); }
.menu-card h3 { font-size: var(--type-xl); }
.menu-card__price { font-size: 1.12rem; font-weight: 700; }
.menu-card p { margin: var(--sp-3) 0; font-size: 0.94rem; line-height: 1.55; }
.menu-card__tags { gap: var(--sp-1); margin-bottom: var(--sp-4); }
.menu-card__tags span,
.location-features span {
  font-size: 0.68rem;
  font-weight: var(--weight-bold);
  letter-spacing: 0.025em;
}

.story-grid { gap: clamp(var(--sp-7), 5vw, var(--sp-9)); }
.story-photo { border-radius: var(--radius-md); box-shadow: var(--shadow-soft); transform: rotate(-.65deg); overflow: hidden; }
.story-photo img { border-radius: calc(var(--radius-md) - 6px); }
.process-list li {
  grid-template-columns: 84px 1fr;
  gap: var(--sp-5);
  padding: var(--sp-5) 0;
}
.process-list > li > span { font-size: var(--type-2xl); color: var(--red); }
.process-list h3 { margin-bottom: var(--sp-2); }
.values-band div { padding: clamp(var(--sp-5), 3vw, var(--sp-7)); }
.values-band strong {
  font-family: var(--font-display);
  font-size: var(--type-2xl);
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
  text-transform: none;
}

.location-tabs { gap: var(--sp-2); margin-bottom: var(--sp-5); }
.location-detail { margin-bottom: var(--sp-7); box-shadow: var(--shadow-soft); }
.location-detail__map {
  border-right: 0;
  border-inline-end: var(--rule-heavy);
}
.location-detail__copy { padding: clamp(1.75rem, 4vw, 3rem); }
.location-detail__copy address { font-weight: var(--weight-medium); }
.location-features { gap: var(--sp-2); margin: var(--sp-4) 0 var(--sp-5); }
.locations-all { gap: var(--sp-4); }
.location-card { padding: var(--sp-5); }
.location-card h3 { margin: var(--sp-2) 0 var(--sp-3); }

.reserve-layout,
.contact-layout { gap: clamp(var(--sp-7), 5vw, var(--sp-9)); }
.reserve-copy ul {
  padding-left: 0;
  padding-inline-start: 1.25rem;
}
.reserve-copy li + li { margin-top: var(--sp-2); }
.reserve-callout { padding: var(--sp-5); margin-top: var(--sp-5); box-shadow: 5px 6px 0 var(--ink); }
.reserve-form,
.contact-form { padding: clamp(1.25rem, 3vw, 2.25rem); box-shadow: var(--shadow-soft); }
.form-grid { gap: var(--sp-5) var(--sp-4); }
.reserve-form label,
.contact-form label { gap: var(--sp-2); }
.check { gap: var(--sp-3) !important; margin: var(--sp-5) 0 !important; }
.form-status { margin-top: var(--sp-3); font-weight: var(--weight-medium); line-height: 1.5; }
.contact-info { gap: var(--sp-4); }
.contact-info > div { padding: var(--sp-5); box-shadow: 5px 6px 0 var(--ink); }
.contact-info a {
  font-family: var(--font-display);
  font-size: var(--type-2xl);
  font-weight: 700;
  letter-spacing: var(--tracking-tight);
  margin-top: var(--sp-2);
}

.footer-marquee span { letter-spacing: 0.015em; }
.footer-grid { gap: clamp(var(--sp-6), 4vw, var(--sp-8)); padding: clamp(3rem, 6vw, 5.5rem) var(--gutter); }
.footer-grid p { line-height: 1.6; }
.footer-grid strong {
  font-size: var(--type-xs);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-label);
}
.footer-grid > div:not(:first-child) { gap: var(--sp-2); }
.footer-grid a { line-height: 1.45; padding-block: 0.12rem; }
.footer-bottom { padding: var(--sp-4) var(--gutter); font-size: var(--type-xs); }

.cart-drawer {
  right: auto;
  inset-inline-end: 0;
  border-left: 0;
  border-inline-start: var(--rule-heavy);
  padding: var(--sp-4);
}
.cart-head { gap: var(--sp-4); padding-bottom: var(--sp-4); }
.cart-head h2 { font-size: var(--type-3xl); line-height: 1; }
.icon-button { font-family: var(--font-mono); font-weight: 700; }
.cart-items { gap: var(--sp-3); padding: var(--sp-4) 0; }
.cart-line { padding: var(--sp-3); gap: var(--sp-3); border-radius: var(--radius-sm); }
.cart-line h3 { font-size: var(--type-base); line-height: 1.18; }
.cart-line p { font-size: var(--type-xs); }
.cart-line__actions { gap: var(--sp-2); margin-top: var(--sp-2); }
.cart-line__remove { margin-left: 0; margin-inline-start: var(--sp-1); font-size: var(--type-xs); }
.cart-summary > div { padding: var(--sp-2) 0; }
.cart-summary .cart-total { font-size: var(--type-xl); }
.cart-summary p { font-size: var(--type-xs); line-height: 1.5; }
.cart-summary strong { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

.reveal {
  transform: translateY(16px);
  transition: opacity 420ms var(--ease-standard), transform 420ms var(--ease-standard);
}

@media (hover: hover) and (pointer: fine) {
  .primary-nav a:hover { color: var(--red-dark); }
  .primary-nav a:hover::after { transform: scaleX(.55); }
  .primary-nav a.is-active:hover::after,
  .primary-nav a[aria-current="page"]:hover::after { transform: scaleX(1); }

  .button:hover,
  .cart-button:hover {
    transform: translate(-1px, -2px);
    box-shadow: 6px 7px 0 var(--ink);
  }
  .text-link:hover,
  .text-button:hover {
    color: var(--red-dark);
    text-decoration-thickness: 2.5px;
  }
  .category-tile:hover,
  .menu-card:hover,
  .offer-card:hover {
    transform: translateY(-4px);
    box-shadow: 7px 9px 0 var(--ink);
  }
  .category-tile:hover img,
  .menu-card:hover .menu-card__media img,
  .offer-card:hover img { transform: scale(1.025); }
  .category-tile img,
  .offer-card img { transition: transform var(--motion-slow) var(--ease-standard); }
  .category-tab:hover,
  .location-tab:hover { background: var(--yellow); }
  .category-tab[aria-pressed="true"]:hover,
  .location-tab[aria-selected="true"]:hover { background: var(--ink); color: var(--paper); }
  .menu-toolbar input:hover,
  .menu-toolbar select:hover,
  .reserve-form input:hover,
  .reserve-form select:hover,
  .reserve-form textarea:hover,
  .contact-form input:hover,
  .contact-form select:hover,
  .contact-form textarea:hover { background: var(--white); }
  .footer-grid a:hover { color: var(--yellow); }
}

@media (pointer: coarse) {
  .button,
  .cart-button,
  .category-tab,
  .location-tab,
  .primary-nav a { min-height: 48px; }
}

@media (max-width: 1040px) {
  .primary-nav {
    left: auto;
    right: auto;
    inset-inline: 0;
    gap: 0;
    padding: var(--sp-3) var(--gutter) var(--sp-4);
  }
  .primary-nav a {
    padding: var(--sp-3) 0;
    border-bottom: 1px solid color-mix(in srgb, var(--ink) 30%, transparent);
  }
  .primary-nav a::after { inset-inline-start: 0; inset-inline-end: auto; width: 56px; bottom: 0.35rem; }
  .hero--home { gap: var(--sp-8); }
}

@media (max-width: 720px) {
  :root {
    --type-display: clamp(3.1rem, 15vw, 5.25rem);
    --type-5xl: clamp(2.75rem, 12vw, 4.7rem);
    --type-4xl: clamp(2.15rem, 9vw, 3.6rem);
    --section-y: clamp(3.25rem, 12vw, 5rem);
  }
  .announcement { font-size: 0.68rem; letter-spacing: 0.06em; }
  .site-header { min-height: 74px; padding: var(--sp-2) var(--sp-3); }
  .hero { padding-top: var(--sp-7); }
  .hero--home { gap: var(--sp-7); }
  .hero-copy h1 { font-size: var(--type-display); max-width: 9.5ch; margin-bottom: var(--sp-4); }
  .hero-copy > p { font-size: 1.0625rem; }
  .hero-actions { gap: var(--sp-4); margin-top: var(--sp-5); }
  .hero-facts { margin-top: var(--sp-6); }
  .hero-media { padding: var(--sp-2); box-shadow: 5px 6px 0 var(--ink); }
  .hero-caption { inset-inline: var(--sp-4); bottom: var(--sp-4); }
  .sticker { inset-inline-end: -5px; }
  .section-head { gap: var(--sp-4); }
  .feature-copy { padding: var(--sp-7) var(--sp-4); }
  .page-hero { min-height: 380px; padding-block: var(--sp-8); }
  .menu-toolbar { gap: var(--sp-4); box-shadow: 4px 5px 0 var(--ink); }
  .menu-card { grid-template-rows: 230px 1fr; }
  .form-grid { gap: var(--sp-4); }
  .location-detail__map { border-inline-end: 0; }
  .footer-grid { padding-inline: var(--sp-4); }
  .footer-bottom { padding-inline: var(--sp-4); }
}

/* RTL / localization: logical layout where practical; remove Latin tracking for Arabic. */
html[dir="rtl"] .hero-media { transform: rotate(-.65deg); }
html[dir="rtl"] .story-photo { transform: rotate(.65deg); }
html[dir="rtl"] .page-hero-mark { text-align: start; }
html[dir="rtl"] .process-list > li > span { text-align: end; }
html:lang(ar) {
  --font-ui: Tahoma, "Segoe UI", Arial, sans-serif;
  --font-display: Tahoma, "Segoe UI", Arial, sans-serif;
  --tracking-tight: 0;
  --tracking-ui: 0;
  --tracking-label: 0;
}
html:lang(ar) .eyebrow,
html:lang(ar) .primary-nav a,
html:lang(ar) .announcement,
html:lang(ar) .menu-card__tags span,
html:lang(ar) .location-features span {
  letter-spacing: 0;
  text-transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .button,
  .cart-button,
  .category-tile,
  .menu-card,
  .offer-card,
  .category-tile img,
  .menu-card__media img,
  .offer-card img { transform: none !important; }
}

@media (prefers-contrast: more) {
  :focus-visible { outline-width: 4px; }
  .eyebrow, .menu-card p, .footer-bottom { font-weight: var(--weight-bold); }
}

/* Cancel legacy hover transforms on devices where hover is emulated by touch. */
@media (hover: none), (pointer: coarse) {
  .button:hover,
  .cart-button:hover { transform: none; box-shadow: 4px 5px 0 var(--ink); }
  .category-tile:hover { transform: none; }
  .menu-card:hover .menu-card__media img { transform: none; }
}

/* v1.1 responsive cascade guards: the refinement layer is appended after the legacy media rules. */
@media (max-width: 1040px) {
  .hero--home { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .section-head { grid-template-columns: 1fr; }
  .menu-toolbar { grid-template-columns: 1fr; }
  .offer-card { grid-template-rows: 230px 1fr; }
}

/* Background-specific copy colors: never use muted text on mid-tone brand surfaces. */
.page-hero--menu p,
.page-hero--locations p,
.page-hero--contact p,
.offer-card[data-accent="yellow"] p,
.offer-card[data-accent="green"] p,
.offer-card[data-accent="pink"] p {
  color: var(--ink);
}

/* ============================================================================
   Press Club v1.2 — Phase 2 responsive layout system
   Fluid from 320px through ultra-wide displays; 4/8pt spatial baseline.
   ============================================================================ */
:root {
  /* Responsive containers */
  --container-reading: 48rem;
  --container-content: 80rem;
  --container-wide: 90rem;
  --content-max: var(--container-content);

  /* Fluid viewport gutter: 16px -> 64px */
  --gutter-inline: clamp(1rem, 0.55rem + 2.25vw, 4rem);
  --gutter-narrow: clamp(1rem, 0.78rem + 1vw, 1.75rem);

  /* Fluid section / cluster rhythm */
  --space-fluid-xs: clamp(0.5rem, 0.45rem + 0.2vw, 0.75rem);
  --space-fluid-sm: clamp(0.75rem, 0.62rem + 0.55vw, 1.125rem);
  --space-fluid-md: clamp(1rem, 0.75rem + 1vw, 1.75rem);
  --space-fluid-lg: clamp(1.5rem, 1rem + 2vw, 3rem);
  --space-fluid-xl: clamp(2rem, 1.2rem + 3.2vw, 4.5rem);
  --space-fluid-2xl: clamp(3rem, 1.5rem + 6vw, 7rem);

  /* Component sizing */
  --control-h: clamp(2.75rem, 2.68rem + 0.35vw, 3.25rem);
  --button-pad-inline: clamp(1rem, 0.86rem + 0.6vw, 1.5rem);
  --card-pad-fluid: clamp(1rem, 0.8rem + 0.9vw, 1.75rem);
  --panel-pad-fluid: clamp(1.25rem, 0.8rem + 1.8vw, 2.5rem);
  --icon-sm: 1.125rem;
  --icon-md: 1.375rem;
  --icon-lg: 1.75rem;

  /* Responsive type */
  --type-caption: clamp(0.75rem, 0.72rem + 0.1vw, 0.8125rem);
  --type-body: clamp(1rem, 0.97rem + 0.12vw, 1.0625rem);
  --type-body-lg: clamp(1.0625rem, 0.98rem + 0.35vw, 1.25rem);
  --type-title-sm: clamp(1.25rem, 1.12rem + 0.5vw, 1.6rem);
  --type-title-md: clamp(1.65rem, 1.35rem + 1.1vw, 2.35rem);
  --type-title-lg: clamp(2.25rem, 1.55rem + 2.8vw, 4.5rem);
  --type-title-xl: clamp(3rem, 1.8rem + 5vw, 7.25rem);

  /* Premium elevation: hard brand shadow + restrained ambient lift */
  --shadow-brand-sm: 4px 5px 0 var(--ink);
  --shadow-brand-md: 6px 7px 0 var(--ink);
  --shadow-brand-lg: 8px 9px 0 var(--ink);
  --shadow-ambient: 0 14px 34px rgba(23,20,18,.10);

  /* Shape */
  --radius-control: clamp(0.65rem, 0.55rem + 0.35vw, 0.9rem);
  --radius-panel: clamp(0.85rem, 0.65rem + 0.65vw, 1.25rem);

  /* Motion */
  --motion-instant: 90ms;
  --motion-ui: 160ms;
  --motion-enter: 260ms;
  --ease-out-premium: cubic-bezier(.16,1,.3,1);
}

/* Layout primitives */
.section-pad {
  padding-block: var(--space-fluid-2xl);
  padding-inline: var(--gutter-inline);
}
.hero,
.section-head,
.category-tiles,
.offer-preview-grid,
.offers-grid,
.menu-grid,
.locations-all,
.footer-grid,
.footer-bottom {
  width: min(100%, var(--container-content));
  margin-inline: auto;
}
.hero {
  padding-inline: var(--gutter-inline);
  padding-block-start: var(--space-fluid-xl);
  padding-block-end: var(--space-fluid-xl);
}

/* Responsive typography */
body { font-size: var(--type-body); }
.hero-copy h1 { font-size: var(--type-title-xl); }
.section-head h2,
.feature-copy h2,
.page-hero h1 { font-size: var(--type-title-lg); }
.section-head p,
.hero-copy > p,
.page-hero p,
.feature-copy p { font-size: var(--type-body-lg); }
.menu-card h3,
.offer-card h3,
.location-card h3 { font-size: var(--type-title-sm); }
.eyebrow,
.menu-card__tags span,
.location-features span,
.footer-bottom { font-size: var(--type-caption); }

/* Header/nav sizing follows viewport instead of jumping between two fixed states */
.site-header {
  min-height: clamp(4.5rem, 4rem + 1.6vw, 5.5rem);
  grid-template-columns: minmax(9.75rem, 13rem) 1fr auto;
  padding-inline: var(--gutter-inline);
}
.brand img { width: clamp(9.4rem, 8.5rem + 3vw, 12.75rem); height: auto; }
.primary-nav { gap: clamp(0.55rem, 0.2rem + 1.25vw, 1.5rem); }
.primary-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-size: clamp(0.76rem, 0.72rem + 0.14vw, 0.86rem);
  padding-inline: clamp(.15rem, .08rem + .35vw, .35rem);
}
.cart-button,
.button,
.nav-toggle,
.icon-button,
.category-tab,
.location-tab {
  min-height: var(--control-h);
}
.button,
.cart-button {
  padding-inline: var(--button-pad-inline);
  border-radius: 999px;
  transition: transform var(--motion-ui) var(--ease-out-premium), box-shadow var(--motion-ui) var(--ease-out-premium), background-color var(--motion-ui) linear, color var(--motion-ui) linear;
}

/* Hero composition */
.hero--home {
  grid-template-columns: minmax(0, .9fr) minmax(24rem, 1.1fr);
  gap: clamp(2rem, 1rem + 4vw, 5rem);
  min-height: min(52rem, calc(100svh - 7rem));
}
.hero-copy > p { max-width: 42rem; }
.hero-actions { gap: var(--space-fluid-sm); margin-top: var(--space-fluid-md); }
.hero-facts { gap: var(--space-fluid-xs); margin-top: var(--space-fluid-lg); }
.hero-media {
  padding: clamp(.65rem, .5rem + .6vw, 1rem);
  box-shadow: var(--shadow-brand-lg), var(--shadow-ambient);
  border-radius: var(--radius-panel);
}
.hero-media img {
  height: clamp(30rem, 64svh, 47.5rem);
  border-radius: calc(var(--radius-panel) - 6px);
}
.sticker { width: clamp(5.25rem, 4.2rem + 3vw, 7.35rem); }

/* Section headers / editorial rhythm */
.section-head {
  grid-template-columns: minmax(0, 1fr) minmax(17rem, .42fr);
  gap: clamp(1.5rem, .75rem + 3vw, 4rem);
  margin-bottom: var(--space-fluid-xl);
}
.section-head p { max-width: 36rem; }

/* Grids fluidly fill instead of only 4 -> 2 -> 1 */
.category-tiles {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.8rem, .55rem + .8vw, 1.35rem);
}
.category-tile {
  min-height: clamp(25rem, 34vw, 31rem);
  padding: clamp(.7rem, .58rem + .5vw, 1rem);
  border-radius: var(--radius-panel);
  box-shadow: var(--shadow-brand-sm);
}
.category-tile img {
  height: clamp(14.5rem, 20vw, 18rem);
  border-radius: calc(var(--radius-panel) - 7px);
}
.offer-preview-grid,
.offers-grid,
.menu-grid {
  gap: clamp(1rem, .7rem + 1vw, 1.5rem);
}
.menu-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.offer-preview-grid,
.offers-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.menu-card,
.offer-card,
.location-card,
.reserve-form,
.contact-form,
.contact-info > div,
.location-detail {
  border-radius: var(--radius-panel);
  overflow: hidden;
}
.menu-card,
.offer-card { box-shadow: var(--shadow-brand-md); }
.menu-card__body,
.offer-card__body,
.location-card { padding: var(--card-pad-fluid); }
.menu-card { grid-template-rows: clamp(13.75rem, 21vw, 16rem) 1fr; }
.offer-card { grid-template-rows: clamp(13.75rem, 20vw, 16.5rem) 1fr; }

/* Toolbars, chips, forms */
.menu-toolbar {
  grid-template-columns: minmax(0, 1fr) minmax(12rem, 16rem);
  gap: var(--space-fluid-md);
  padding: var(--panel-pad-fluid);
  border-radius: var(--radius-panel);
}
.category-tabs,
.location-tabs {
  gap: var(--space-fluid-xs);
  scrollbar-width: thin;
  scroll-padding-inline: var(--gutter-narrow);
}
.category-tab,
.location-tab {
  flex: 0 0 auto;
  padding-inline: clamp(.85rem, .65rem + .8vw, 1.2rem);
  border-radius: 999px;
}
.menu-toolbar input,
.menu-toolbar select,
.reserve-form input,
.reserve-form select,
.reserve-form textarea,
.contact-form input,
.contact-form select,
.contact-form textarea {
  min-height: var(--control-h);
  padding-inline: clamp(.85rem, .7rem + .55vw, 1.1rem);
  border-radius: var(--radius-control);
}
.reserve-layout,
.contact-layout {
  grid-template-columns: minmax(17rem, .78fr) minmax(0, 1.22fr);
  gap: clamp(2rem, 1rem + 4vw, 5rem);
}
.reserve-form,
.contact-form { padding: var(--panel-pad-fluid); }
.form-grid { gap: var(--space-fluid-md); }

/* Story / locations */
.story-grid { gap: clamp(2rem, 1rem + 4vw, 5rem); }
.process-list li { gap: var(--space-fluid-md); padding-block: var(--space-fluid-md); }
.location-detail { grid-template-columns: minmax(18rem, .82fr) minmax(0,1.18fr); }
.location-detail__copy { padding: var(--panel-pad-fluid); }
.locations-all { gap: var(--space-fluid-md); }

/* Drawer behaves as a true responsive modal surface */
.cart-drawer {
  width: min(34rem, 100%);
  padding: var(--panel-pad-fluid);
  box-shadow: -1.25rem 0 3rem rgba(23,20,18,.16);
}
.cart-line { border-radius: var(--radius-control); }
.cart-line__actions button { min-width: 44px; min-height: 44px; }

/* Imagery: stable boxes reduce CLS */
.category-tile img,
.menu-card__media img,
.offer-card img,
.feature-image img,
.story-photo img,
.hero-media img { object-fit: cover; }
.menu-card__media,
.offer-card > img { overflow: hidden; }

/* Premium hover is subtle, directional, and pointer-aware */
@media (hover:hover) and (pointer:fine) {
  .button:hover,
  .cart-button:hover { transform: translateY(-2px); box-shadow: 6px 7px 0 var(--ink); }
  .category-tile:hover,
  .menu-card:hover,
  .offer-card:hover,
  .location-card:hover { transform: translateY(-3px); }
  .menu-card:hover,
  .offer-card:hover { box-shadow: 8px 9px 0 var(--ink); }
  .category-tab:hover,
  .location-tab:hover { transform: translateY(-1px); }
}

/* Large tablet / compact desktop: 768–1199px */
@media (max-width: 74.99rem) {
  :root { --gutter-inline: clamp(1.25rem, .7rem + 2.4vw, 2.5rem); }
  .site-header { grid-template-columns: minmax(9rem, 11rem) 1fr auto; }
  .primary-nav { gap: clamp(.35rem, 1vw, .85rem); }
  .hero--home { grid-template-columns: minmax(0, .95fr) minmax(20rem, 1.05fr); }
  .category-tiles { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .category-tile { min-height: 0; }
  .category-tile img { height: clamp(15rem, 31vw, 20rem); }
  .menu-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .offer-preview-grid,
  .offers-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}

/* Navigation collapse / tablet portrait */
@media (max-width: 64rem) {
  .site-header { grid-template-columns: 1fr auto auto; }
  .nav-toggle { display: block; justify-self: end; }
  .primary-nav {
    position: absolute;
    inset-inline: 0;
    top: 100%;
    display: none;
    flex-direction: column;
    align-items: stretch;
    padding: var(--space-fluid-sm) var(--gutter-inline) var(--space-fluid-md);
    background: var(--paper);
    border-bottom: var(--rule-heavy);
    box-shadow: 0 14px 28px rgba(23,20,18,.12);
  }
  .primary-nav.is-open { display: flex; }
  .primary-nav a { width: 100%; padding-block: .65rem; }
  .hero--home { grid-template-columns: 1fr; min-height: auto; }
  .hero-copy { max-width: 48rem; }
  .hero-media { width: min(100%, 50rem); margin-inline: auto; }
  .hero-media img { height: clamp(28rem, 68vw, 42rem); }
  .split-feature { grid-template-columns: 1fr; }
  .feature-image { min-height: clamp(24rem, 58vw, 34rem); }
  .reserve-layout,
  .contact-layout { grid-template-columns: 1fr; }
  .reserve-copy { position: static; }
}

/* Phone / small tablet: <= 767px */
@media (max-width: 47.99rem) {
  :root {
    --gutter-inline: clamp(1rem, .72rem + 1.4vw, 1.5rem);
    --space-fluid-2xl: clamp(3rem, 2.25rem + 4vw, 4.5rem);
    --type-title-xl: clamp(3rem, 1.9rem + 7vw, 5rem);
    --type-title-lg: clamp(2.25rem, 1.65rem + 4vw, 3.45rem);
  }
  .announcement { min-height: 2rem; padding-inline: var(--gutter-inline); white-space: nowrap; overflow: hidden; }
  .site-header { min-height: 4.5rem; gap: .55rem; padding-block: .5rem; }
  .brand img { width: clamp(8.6rem, 34vw, 10.25rem); }
  .cart-button { min-width: 0; padding-inline: .8rem; }
  .hero { padding-block-start: var(--space-fluid-lg); }
  .hero--home { gap: var(--space-fluid-xl); }
  .hero-copy h1 { max-width: 9ch; }
  .hero-actions { align-items: stretch; }
  .hero-actions .button { flex: 1 1 10rem; }
  .hero-facts { grid-template-columns: 1fr; }
  .hero-facts span { min-height: 3rem; }
  .hero-media { transform: rotate(.45deg); }
  .hero-media img { height: clamp(25rem, 118vw, 35rem); min-height: 0; }
  .sticker { inset-inline-end: -.2rem; top: -1.1rem; }
  .hero-caption { inset-inline: .9rem; bottom: .9rem; }
  .section-head { grid-template-columns: 1fr; gap: var(--space-fluid-sm); }
  .category-tiles,
  .menu-grid,
  .offer-preview-grid,
  .offers-grid,
  .locations-all { grid-template-columns: 1fr; }
  .category-tile img { height: clamp(15rem, 72vw, 20rem); }
  .menu-card { grid-template-rows: clamp(14rem, 66vw, 18rem) 1fr; }
  .offer-card { grid-template-rows: clamp(14rem, 62vw, 17rem) 1fr; }
  .page-hero { grid-template-columns: 1fr; min-height: 21rem; gap: var(--space-fluid-md); }
  .page-hero-mark { display: none; }
  .menu-toolbar { grid-template-columns: 1fr; }
  .category-tabs,
  .location-tabs {
    margin-inline: calc(var(--gutter-inline) * -1);
    padding-inline: var(--gutter-inline);
    overflow-x: auto;
    flex-wrap: nowrap;
    overscroll-behavior-inline: contain;
  }
  .story-grid { grid-template-columns: 1fr; }
  .story-photo img { height: clamp(22rem, 105vw, 31rem); }
  .location-detail { grid-template-columns: 1fr; }
  .location-detail__map { min-height: 15rem; border-inline-end: 0; border-bottom: var(--rule-heavy); }
  .form-grid { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .values-band { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; }
  .cart-drawer { width: 100%; border-inline-start: 0; }
}

/* Narrow phone: 320–379px */
@media (max-width: 23.74rem) {
  :root { --gutter-inline: .875rem; }
  .site-header { gap: .35rem; }
  .brand img { width: 8rem; }
  .cart-button { font-size: .72rem; padding-inline: .65rem; }
  .cart-button span { min-width: 1.35rem; height: 1.35rem; }
  .hero-actions { flex-direction: column; }
  .hero-actions .button { width: 100%; flex-basis: auto; }
  .hero-media img { height: 25rem; }
  .page-hero { min-height: 19rem; }
  .process-list li { grid-template-columns: 3rem 1fr; }
  .cart-line { grid-template-columns: 3.5rem 1fr; }
  .cart-line img { width: 3.5rem; height: 3.5rem; }
}

/* Wide desktop keeps composition centered instead of stretching */
@media (min-width: 96rem) {
  :root { --gutter-inline: 4rem; }
  .hero--home { grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); }
  .section-head { width: min(100%, var(--container-wide)); }
}

/* Touch / accessibility */
@media (pointer:coarse) {
  :root { --control-h: 3rem; }
  .button, .cart-button, .nav-toggle, .icon-button, .category-tab, .location-tab,
  .cart-line__actions button, .primary-nav a { min-width: 44px; min-height: 44px; }
  .category-tile, .menu-card, .offer-card, .location-card { transform: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .button, .cart-button, .category-tab, .location-tab, .category-tile, .menu-card, .offer-card,
  .location-card, .hero-media { transition: none !important; transform: none !important; }
}

/* Localization: logical properties and long-copy resilience */
:where(.button,.cart-button,.category-tab,.location-tab,.primary-nav a) { white-space: normal; text-align: center; }
:where(.menu-card,.offer-card,.location-card,.contact-info>div) { min-width: 0; }
:where(h1,h2,h3,p,a,button,label,address) { overflow-wrap: break-word; }
html[dir="rtl"] .cart-button span { margin-left: 0; margin-inline-start: .3rem; }
html[dir="rtl"] .cart-drawer { box-shadow: 1.25rem 0 3rem rgba(23,20,18,.16); }

/* Phase 3 — Option 2 editorial menu board */
[data-page="menu.html"] main { background: var(--paper); }
.menu-pickup-bar {
  min-height: 2.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  padding: .55rem var(--gutter-inline);
  border-bottom: var(--rule);
  background: var(--paper);
  color: var(--ink);
  font-size: .78rem;
  letter-spacing: .03em;
}
.menu-pickup-bar strong { color: var(--red-dark); }
.menu-pickup-bar span::before { content: "·"; margin-inline-end: .7rem; color: var(--ink); }
.menu-pickup-bar a { margin-inline-start: .5rem; font-weight: 850; }
.menu-entry {
  width: min(100%, var(--container-content));
  margin-inline: auto;
  padding: clamp(2.2rem, 5vw, 4.75rem) var(--gutter-inline) clamp(2rem, 4vw, 3.75rem);
}
.menu-entry__intro { max-width: 58rem; margin-bottom: clamp(1.5rem, 3vw, 2.75rem); }
.menu-entry__intro h1 {
  max-width: 12ch;
  margin: .35rem 0 .85rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.4rem, 7.5vw, 7rem);
  font-weight: 700;
  line-height: .91;
  letter-spacing: -.065em;
  text-transform: none;
}
.menu-entry__intro p { max-width: 48rem; font-size: var(--type-body-lg); }
.menu-category-board { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(.75rem, 1.4vw, 1.2rem); }
.menu-category-band {
  appearance: none;
  min-width: 0;
  min-height: clamp(10.5rem, 18vw, 14rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(10rem, .92fr);
  padding: 0;
  overflow: hidden;
  border: var(--rule-heavy);
  border-radius: 0;
  box-shadow: 6px 7px 0 var(--ink);
  text-align: start;
  color: var(--ink);
}
.menu-category-band > span { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(1rem, 2.2vw, 2rem); }
.menu-category-band small { font-weight: 900; letter-spacing: .14em; }
.menu-category-band strong { display: block; margin-block: .35rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.7rem, 3vw, 3rem); line-height: .9; letter-spacing: -.045em; }
.menu-category-band em { margin-top: auto; padding-top: .7rem; font-size: .78rem; font-style: normal; font-weight: 850; text-decoration: underline; text-underline-offset: .2em; }
.menu-category-band img { width: 100%; height: 100%; min-height: 0; object-fit: cover; border-inline-start: var(--rule-heavy); }
.menu-category-band--red { background: var(--red); color: var(--white); }
.menu-category-band--yellow { background: var(--yellow); }
.menu-category-band--blue { background: var(--blue); color: var(--white); }
.menu-category-band--cream { background: var(--paper-2); }
.menu-picks { padding-top: clamp(2rem, 5vw, 4rem); padding-bottom: clamp(2.6rem, 6vw, 5rem); border-top: var(--rule-heavy); }
.menu-picks__head { width: min(100%, var(--container-content)); margin: 0 auto 1rem; display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.menu-picks__head h2, .menu-experience__head h2 { margin: .3rem 0 0; font-size: clamp(2.3rem, 5vw, 4.8rem); }
.menu-picks__list { width: min(100%, var(--container-content)); margin-inline: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.menu-pick-row { min-width: 0; display: grid; grid-template-columns: 8.5rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: .7rem; border: var(--rule-heavy); background: var(--white); }
.menu-pick-row img { width: 8.5rem; height: 7rem; object-fit: cover; border: var(--rule); }
.menu-pick-row h3 { margin: .25rem 0 .35rem; font-family: "Arial Black", Impact, sans-serif; font-size: 1.2rem; text-transform: uppercase; }
.menu-pick-row p { margin: 0; font-size: .84rem; line-height: 1.35; }
.menu-pick-row__action { display: flex; flex-direction: column; align-items: end; gap: .7rem; }
.menu-pick-row__action strong { font-size: 1.2rem; }
.menu-pick-row__action .button { min-height: 2.75rem; padding-inline: .95rem; }
.menu-add-status { width: min(100%, var(--container-content)); min-height: 1.5rem; margin: .75rem auto 0; font-weight: 750; color: var(--ink); }
.menu-experience { border-top: var(--rule-heavy); scroll-margin-top: 5.5rem; }
.menu-experience__head { width: min(100%, var(--container-content)); margin: 0 auto var(--space-fluid-lg); }
.menu-load-more { margin: 2rem auto 0; }
.menu-order-bar { display: none; }

@media (hover:hover) and (pointer:fine) {
  .menu-category-band { transition: transform var(--motion-ui) var(--ease-out-premium), box-shadow var(--motion-ui) var(--ease-out-premium); }
  .menu-category-band:hover { transform: translateY(-3px); box-shadow: 8px 10px 0 var(--ink); }
}

@media (max-width: 64rem) {
  .menu-category-board { grid-template-columns: 1fr; }
  .menu-picks__list { grid-template-columns: 1fr; }
}

@media (max-width: 47.99rem) {
  [data-page="menu.html"] .announcement { display: none; }
  [data-page="menu.html"] .site-header { min-height: 4.25rem; }
  [data-page="menu.html"] main { padding-bottom: 5.5rem; }
  .menu-pickup-bar { min-height: 2.35rem; justify-content: flex-start; padding-block: .4rem; font-size: .72rem; }
  .menu-pickup-bar a { margin-inline-start: auto; }
  .menu-entry { padding-top: 1.4rem; padding-bottom: 1.35rem; }
  .menu-entry__intro { margin-bottom: 1.15rem; }
  .menu-entry__intro h1 { max-width: 11ch; margin-block: .25rem .65rem; font-size: clamp(3.25rem, 14vw, 4rem); }
  .menu-entry__intro p { margin-bottom: 0; font-size: .92rem; line-height: 1.4; }
  .menu-category-board { gap: .5rem; }
  .menu-category-band { min-height: 6.25rem; grid-template-columns: minmax(0, 1.1fr) minmax(8rem, .9fr); box-shadow: 4px 5px 0 var(--ink); }
  .menu-category-band > span { padding: .75rem .85rem; }
  .menu-category-band small { font-size: .63rem; }
  .menu-category-band strong { max-width: 9ch; margin-block: .16rem; font-size: clamp(1.65rem, 7vw, 2rem); }
  .menu-category-band em { padding-top: .25rem; font-size: .68rem; }
  .menu-category-band img { height: 6.25rem; }
  .menu-picks { padding-top: 1.8rem; padding-bottom: 2.2rem; }
  .menu-picks__head { align-items: center; }
  .menu-picks__head h2 { font-size: 2.25rem; }
  .menu-picks__head .text-button { max-width: 7rem; text-align: end; }
  .menu-pick-row { grid-template-columns: 5.1rem minmax(0, 1fr) auto; gap: .65rem; padding: .5rem; }
  .menu-pick-row img { width: 5.1rem; height: 5.25rem; }
  .menu-pick-row .eyebrow { font-size: .55rem; }
  .menu-pick-row h3 { margin-block: .15rem; font-size: .92rem; }
  .menu-pick-row p { display: none; }
  .menu-pick-row__action { gap: .35rem; }
  .menu-pick-row__action strong { font-size: .95rem; }
  .menu-pick-row__action .button { min-width: 3.2rem; min-height: 2.6rem; padding-inline: .55rem; font-size: .75rem; box-shadow: 3px 3px 0 var(--ink); }
  .menu-experience { padding-top: 2.5rem; }
  .menu-order-bar {
    position: fixed;
    z-index: 150;
    inset-inline: .75rem;
    bottom: max(.65rem, env(safe-area-inset-bottom));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .65rem;
    border: var(--rule-heavy);
    background: var(--red);
    color: var(--white);
    box-shadow: 5px 6px 0 var(--ink), 0 12px 30px rgba(23,20,18,.22);
  }
  .menu-order-bar > div { min-width: 0; display: flex; flex-direction: column; }
  .menu-order-bar [data-order-bar-meta] { max-width: 15rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .67rem; font-weight: 800; }
  .menu-order-bar [data-order-bar-total] { font-size: 1.12rem; }
  .menu-order-bar .button { flex: 0 0 auto; min-height: 2.9rem; padding-inline: .85rem; border-color: var(--ink); background: var(--yellow); color: var(--ink); font-size: .78rem; box-shadow: none; }
}

@media (max-width: 23.74rem) {
  .menu-entry__intro h1 { font-size: 3rem; }
  .menu-category-band { grid-template-columns: minmax(0, 1.15fr) minmax(7rem, .85fr); }
  .menu-pick-row { grid-template-columns: 4.5rem minmax(0, 1fr) auto; }
  .menu-pick-row img { width: 4.5rem; }
  .menu-order-bar [data-order-bar-meta] { max-width: 10rem; }
}

/* Phase 4 — Option 2 home ledger */
[data-page="index.html"] main { background: var(--paper); }
.home-pickup-bar {
  min-height: 2.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding: .5rem var(--gutter-inline, clamp(1rem, 3vw, 3rem));
  border-bottom: var(--rule);
  font-size: .76rem;
  letter-spacing: .035em;
}
.home-pickup-bar strong { color: var(--red-dark); text-transform: uppercase; letter-spacing: .12em; }
.home-pickup-bar span::before { content: "·"; margin-inline-end: .75rem; }
.home-pickup-bar a { margin-inline-start: .45rem; font-weight: 900; }
.home-ledger-hero {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  grid-template-rows: minmax(0, 1fr);
  height: clamp(31rem, 56vw, 33rem);
  overflow: hidden;
  border-bottom: var(--rule-heavy);
}
.home-ledger-hero__copy {
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2.5rem, 7vw, 7rem) clamp(1.25rem, 5vw, 5.5rem);
}
.home-ledger-hero__copy h1 {
  max-width: 8.5ch;
  margin: .55rem 0 1.15rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(4.6rem, 8.6vw, 8.5rem);
  font-weight: 700;
  line-height: .82;
  letter-spacing: -.072em;
  text-transform: none;
}
.home-ledger-hero__copy h1 em { display: block; color: var(--red); font-weight: 400; }
.home-ledger-hero__copy p { max-width: 31rem; margin: 0; font-size: clamp(1rem, 1.35vw, 1.2rem); }
.home-ledger-hero__media { position: relative; min-width: 0; min-height: 0; height: 100%; margin: 0; overflow: hidden; border-inline-start: var(--rule-heavy); background: var(--red); }
.home-ledger-hero__media img { width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center 48%; }
.home-ledger-hero__media figcaption {
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  padding: .75rem 1rem;
  border-top: var(--rule-heavy);
  background: var(--red);
  color: var(--white);
  font-size: .73rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
}
.home-ledger-hero__media .sticker { right: auto; inset-inline-start: 1rem; top: 1rem; }
.home-ledger {
  display: grid;
  grid-template-columns: 1fr 1.08fr 1.02fr .9fr;
  border-bottom: var(--rule-heavy);
}
.home-ledger > * { min-width: 0; min-height: 30rem; padding: clamp(1.25rem, 2.8vw, 2.6rem); border-inline-end: var(--rule-heavy); }
.home-ledger > *:last-child { border-inline-end: 0; }
.home-ledger h2 { margin: .65rem 0 1rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.2rem, 3.8vw, 4rem); font-weight: 700; line-height: .86; letter-spacing: -.055em; text-transform: none; }
.home-ledger__pickup { display: flex; flex-direction: column; align-items: flex-start; }
.home-ledger__pickup p { font-size: .9rem; }
.home-ledger__pickup .button { margin-top: auto; border-radius: 0; }
.home-ledger__note { display: block; margin-top: .85rem; color: var(--muted); font-size: .72rem; font-weight: 750; }
.home-ledger__section-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1.1rem; }
.home-ledger__section-head a { font-size: .72rem; font-weight: 900; }
.home-pick-card { display: grid; grid-template-columns: minmax(0, 1fr) 6.5rem; gap: 1rem; align-items: start; }
.home-pick-card__media { align-self: stretch; min-height: 15rem; border: var(--rule); background: var(--ink); }
.home-pick-card__media img { width: 100%; height: 100%; object-fit: cover; }
.home-pick-card h3 { margin: .45rem 0 .65rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.8rem, 2.8vw, 2.75rem); line-height: .9; letter-spacing: -.045em; }
.home-pick-card p { margin-bottom: 1rem; font-size: .83rem; line-height: 1.4; }
.home-pick-card__price { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-top: .85rem; border-top: var(--rule); }
.home-pick-card__price strong { font-size: 1.25rem; }
.home-pick-card__price .button { min-height: 2.7rem; padding: .55rem .75rem; border-radius: 0; font-size: .74rem; box-shadow: 3px 3px 0 var(--ink); }
.home-ledger__menu { padding: 0; }
.home-ledger__menu > .eyebrow { display: block; padding: 1.15rem 1.3rem; border-bottom: var(--rule-heavy); }
.home-ledger__category {
  min-height: 6.35rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: .8rem 1.25rem;
  border-bottom: var(--rule-heavy);
  text-decoration: none;
}
.home-ledger__category:last-child { border-bottom: 0; }
.home-ledger__category span { max-width: 8ch; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.6rem, 2.7vw, 2.55rem); font-weight: 700; line-height: .87; letter-spacing: -.045em; }
.home-ledger__category small { font-size: .7rem; font-weight: 900; text-decoration: underline; text-underline-offset: .2em; }
.home-ledger__category--red { background: var(--red); color: var(--white); }
.home-ledger__category--yellow { background: var(--yellow); }
.home-ledger__category--blue { background: var(--blue); color: var(--white); }
.home-ledger__category--cream { background: var(--paper-2); }
.home-ledger__locations { display: flex; flex-direction: column; }
.home-ledger__locations h2 { color: var(--red); }
.home-location-list { margin: .25rem 0 1.2rem; border-top: var(--rule); }
.home-location-row { display: block; padding: .8rem 0; border-bottom: var(--rule); text-decoration: none; }
.home-location-row strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 1.08rem; line-height: 1; }
.home-location-row span { display: block; margin-top: .3rem; color: var(--muted); font-size: .69rem; line-height: 1.35; }
.home-ledger__locations > .text-link { margin-top: auto; align-self: flex-start; }
.home-after-hours {
  display: grid;
  grid-template-columns: 1.1fr .9fr auto;
  align-items: center;
  gap: clamp(1.25rem, 4vw, 4rem);
  padding: clamp(2rem, 5vw, 4.75rem) clamp(1.25rem, 5vw, 5rem);
  background: var(--yellow);
}
.home-after-hours h2 { max-width: 12ch; margin: .4rem 0 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.4rem, 4.6vw, 4.9rem); line-height: .86; letter-spacing: -.055em; text-transform: none; }
.home-after-hours p { max-width: 33rem; margin: 0; color: var(--ink); }
.home-after-hours .button { border-radius: 0; white-space: nowrap; }

@media (hover:hover) and (pointer:fine) {
  .home-ledger__category span, .home-location-row strong { transition: transform var(--motion-ui, .18s) var(--ease-out-premium, ease); }
  .home-ledger__category:hover span, .home-location-row:hover strong { transform: translateX(.25rem); }
}

@media (max-width: 75rem) {
  .home-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-ledger > * { border-bottom: var(--rule-heavy); }
  .home-ledger > *:nth-child(2) { border-inline-end: 0; }
  .home-ledger > *:nth-child(3), .home-ledger > *:nth-child(4) { border-bottom: 0; }
}

@media (max-width: 64rem) {
  .home-ledger-hero { height: auto; min-height: 32rem; }
  .home-ledger-hero__copy { padding-block: 3.5rem; }
  .home-ledger-hero__copy h1 { font-size: clamp(4.1rem, 10vw, 6.8rem); }
  .home-ledger-hero__media img { min-height: 34rem; }
  .home-ledger-hero__media .sticker { inset-inline-start: -2.7rem; }
  .home-after-hours { grid-template-columns: 1fr auto; }
  .home-after-hours > p { grid-column: 1 / -1; grid-row: 2; }
}

@media (max-width: 47.99rem) {
  [data-page="index.html"] .announcement { display: none; }
  .home-pickup-bar { min-height: 2.35rem; justify-content: flex-start; padding-block: .4rem; font-size: .7rem; }
  .home-pickup-bar a { margin-inline-start: auto; }
  .home-ledger-hero { grid-template-columns: 1fr; }
  .home-ledger-hero__copy { min-height: 21rem; padding: 2.5rem var(--gutter-inline); }
  .home-ledger-hero__copy h1 { max-width: 8ch; margin-block: .35rem .75rem; font-size: clamp(4.15rem, 19vw, 5.7rem); }
  .home-ledger-hero__copy p { max-width: 25rem; font-size: .95rem; }
  .home-ledger-hero__media { height: clamp(19rem, 78vw, 26rem); border-inline-start: 0; border-top: var(--rule-heavy); }
  .home-ledger-hero__media img { min-height: 0; height: 100%; object-position: center 52%; }
  .home-ledger-hero__media .sticker { width: 5.4rem; inset-inline-start: auto; inset-inline-end: .75rem; top: -2.3rem; font-size: .63rem; }
  .home-ledger-hero__media figcaption { padding-block: .55rem; font-size: .61rem; }
  .home-ledger { grid-template-columns: 1fr; }
  .home-ledger > * { min-height: auto; padding: 1.25rem var(--gutter-inline); border-inline-end: 0; border-bottom: var(--rule-heavy) !important; }
  .home-ledger > *:last-child { border-bottom: 0 !important; }
  .home-ledger__pickup { min-height: 22rem; }
  .home-ledger__pickup .button { margin-top: 1.35rem; }
  .home-ledger__note { margin-bottom: .75rem; }
  .home-pick-card { grid-template-columns: minmax(0, 1fr) 7.2rem; }
  .home-pick-card__media { min-height: 12rem; }
  .home-pick-card h3 { font-size: 2.25rem; }
  .home-ledger__menu { padding: 0; }
  .home-ledger__category { min-height: 5.35rem; }
  .home-ledger__category span { font-size: 2rem; }
  .home-ledger__locations { min-height: 25rem; }
  .home-after-hours { grid-template-columns: 1fr; padding-block: 2.8rem; }
  .home-after-hours > p { grid-column: auto; grid-row: auto; }
  .home-after-hours .button { justify-self: start; }
}

@media (max-width: 23.74rem) {
  .home-pickup-bar span:nth-of-type(2) { display: none; }
  .home-ledger-hero__copy h1 { font-size: 4rem; }
  .home-pick-card { grid-template-columns: 1fr 6rem; }
  .home-pick-card__media { min-height: 10rem; }
  .home-pick-card__price { align-items: flex-start; flex-direction: column; }
}

/* v1.8 shared accessibility polish: preserve generous tap targets in repeated chrome. */
.brand { display: inline-flex; align-items: center; min-height: 2.75rem; }
@media (max-width: 47.99rem) {
  .footer-grid a { min-height: 2.75rem; display: flex; align-items: center; }
}
