:root {
  color-scheme: light;
  --paper: #f7f4ed;
  --paper-deep: #ede7da;
  --surface: #ffffff;
  --ink: #242321;
  --ink-soft: #6b665f;
  --line: #e2ddd1;
  --charcoal: #191919;
  --accent: #dfc18b;
  --accent-soft: #f3e9d4;
  --accent-ink: #7b602e;
  --success: #316649;
  --error: #a34032;
  --radius: 16px;
  --font-body: "Avenir Next", Avenir, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 108px; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--paper); font-family: var(--font-body); font-size: 15px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
body.modal-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .5; }
img { max-width: 100%; display: block; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--font-display); font-weight: 500; line-height: 1.12; letter-spacing: -.035em; }
h3 { line-height: 1.35; }
p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }
::selection { background: var(--accent-soft); color: var(--charcoal); }
:focus-visible { outline: 3px solid #96722e; outline-offset: 4px; }
.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; left: 16px; top: 10px; z-index: 200; padding: 10px 18px; background: white; color: var(--ink); border-radius: 8px; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }
.site-bg { display: none; }
.site-shell { min-height: 100vh; }
.page-stack { width: min(1320px, 100%); margin: 0 auto; padding: 0 40px 30px; }
.content { display: grid; gap: 32px; padding-top: 36px; align-content: start; }
.content > *, .stack > *, .field-grid > *, .section-grid > * { min-width: 0; }
.stack { display: grid; gap: 24px; align-content: start; min-width: 0; }
.reveal { opacity: 1; transform: none; }

/* A compact, consistent front door on every page. */
.topbar { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; gap: 24px; min-height: 90px; padding: 12px max(32px, calc((100vw - 1260px) / 2)); background: var(--charcoal); color: #f6f2e8; border-bottom: 1px solid rgba(214, 182, 117, .2); }
.brand { display: flex; align-items: center; gap: 4px; flex-shrink: 0; margin-right: auto; }
.brand-logo { width: 86px; height: 58px; object-fit: contain; }
.brand-copy strong { display: block; font-family: var(--font-display); font-size: 20px; font-weight: 500; letter-spacing: -.02em; line-height: 1.12; }
.brand-copy small { display: block; margin-top: 5px; color: #bbbdb2; font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.topbar-actions { display: flex; align-items: center; gap: 24px; }
.nav { display: flex; align-items: center; gap: 23px; }
.nav a, .utility-link { display: inline-flex; align-items: center; min-height: 44px; color: #d8d2c8; font-size: 13px; font-weight: 500; white-space: nowrap; transition: color .18s ease; }
.nav a:hover, .nav a.active, .nav a[aria-current="page"], .utility-link:hover, .utility-link.active, .utility-link[aria-current="page"] { color: var(--accent); }
.nav a.active, .nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 7px; text-decoration-thickness: 1px; }
.utility-link { border-left: 1px solid #403b34; padding-left: 24px; }
.topbar .nav-order { flex: 0 0 auto; padding: 11px 20px; min-height: 44px; font-size: 13px; }
.nav-toggle { display: none; border: 1px solid #646656; background: transparent; color: #f7f4eb; min-height: 44px; padding: 9px 12px; border-radius: 7px; font-size: 13px; font-weight: 600; }

.button, .small-button { display: inline-flex; justify-content: center; align-items: center; gap: 9px; min-height: 48px; padding: 12px 22px; border: 1px solid #d3d3c8; border-radius: 8px; background: var(--surface); color: var(--ink); font-size: 14px; font-weight: 600; line-height: 1.3; text-align: center; transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease; }
.button:hover, .small-button:hover { background: var(--paper-deep); border-color: #bbbbae; }
.button.primary { background: var(--accent); color: #22281f; border-color: var(--accent); }
.button.primary:hover { background: #e1c58e; border-color: #e1c58e; box-shadow: 0 3px 12px rgba(57, 43, 17, .1); }
.button.is-disabled, .button[aria-disabled="true"] { color: #77796e; background: #e6e5df; border-color: #e6e5df; box-shadow: none; cursor: not-allowed; }
.small-button { min-height: 40px; padding: 8px 14px; font-size: 13px; }
.actions, .cover-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.text-link { color: var(--accent-ink); text-decoration: underline; text-underline-offset: 4px; font-weight: 600; }
.text-link:hover { color: var(--charcoal); }

/* Home: let the food and the two main actions do the talking. */
body[data-page="home"] .page-stack { padding-top: 42px; }
.cover-page { padding-top: 0; gap: 0; }
.home-hero { display: grid; grid-template-columns: .92fr 1.08fr; align-items: stretch; gap: 48px; }
.home-hero-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 34px 0 34px 12px; }
.home-hero h1 { font-size: clamp(48px, 5.1vw, 72px); line-height: 1.035; margin: 17px 0 24px; }
.home-hero h1 em { font-style: italic; color: var(--accent-ink); }
.home-hero .lede { font-size: 16px; max-width: 37ch; margin-bottom: 28px; line-height: 1.8; }
.home-hero .cover-actions { gap: 12px; }
.home-hero .button { min-height: 50px; padding-inline: 24px; }
.home-hero-image { margin: 0; position: relative; min-height: 455px; border-radius: 16px; overflow: hidden; background: #5f432a; }
.home-hero-image img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: 48% center; }
.home-image-caption { position: absolute; left: 24px; bottom: 22px; color: white; font-size: 11px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; padding: 9px 13px; border: 1px solid rgba(255, 255, 255, .3); background: rgba(23, 28, 24, .68); border-radius: 4px; }
.home-service-strip { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 18px; margin: 30px 0 0; padding: 22px 12px; border-bottom: 1px solid var(--line); }
.home-service-strip > p { margin: 0; font-size: 13px; color: var(--ink-soft); }
.home-service-strip > p a:hover { color: var(--accent-ink); }
.home-service-strip .service-ribbon { padding: 0; margin: 0; border: 0; }
.home-route-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; padding: 35px 0 15px; }
.home-route { position: relative; display: block; padding: 6px 32px; border-right: 1px solid var(--line); }
.home-route:first-child { padding-left: 12px; }
.home-route:last-child { border-right: 0; }
.home-route .eyebrow { font-size: 10px; margin-bottom: 10px; }
.home-route h2 { margin: 0 0 8px; font-size: 27px; }
.home-route p { color: var(--ink-soft); font-size: 13px; max-width: 29ch; margin: 0; }
.home-route .route-arrow { position: absolute; right: 26px; top: 38px; color: var(--accent-ink); font-size: 22px; }
.home-route:hover h2 { color: var(--accent-ink); }

/* Opening information stays useful without competing with the menu. */
.service-ribbon { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--ink-soft); font-size: 12px; }
.service-ribbon-status-row, .service-ribbon-stack { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; }
.service-ribbon-stack { flex: 1; justify-content: space-between; }
.service-pill { display: inline-flex; align-items: center; gap: 7px; line-height: 1.5; }
.service-pill--status { font-size: 11px; font-weight: 600; color: var(--ink); }
.service-pill-dot { width: 6px; height: 6px; border-radius: 50%; background: #929580; }
.service-pill.is-open { color: var(--success); }
.service-pill.is-open .service-pill-dot { background: var(--success); }
.service-pill.is-closed { color: #745f38; }
.service-pill.is-closed .service-pill-dot { background: #a28447; }
.service-ribbon-home-hours { margin: 0; font-size: 12px; }

.page-heading { max-width: 780px; }
.page-heading h1 { margin: 10px 0 17px; font-size: clamp(37px, 4.1vw, 54px); line-height: 1.09; }
.page-heading .lede { max-width: 60ch; margin-bottom: 0; }
.eyebrow, .card-label, .cover-kicker { margin: 0 0 10px; color: var(--accent-ink); font-size: 11px; font-weight: 600; letter-spacing: .15em; line-height: 1.5; text-transform: uppercase; }
.lede, .card p, .helper, .status-copy, .slot-copy { color: var(--ink-soft); }
.lede { font-size: 16px; line-height: 1.75; }
.helper { margin: 0; font-size: 12px; line-height: 1.6; }
.panel, .card, .status-card { padding: 26px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.card h2, .status-card h2 { font-size: 29px; margin-bottom: 16px; }
.card p { font-size: 14px; }
.panel.card { padding: 26px; }
.section-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.contact-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fulfilment-card { display: flex; flex-direction: column; align-items: flex-start; }
.fulfilment-card .button { margin-top: auto; }
.fulfilment-card .stack:empty { display: none; }
.two-col { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 40px; }
.two-col > .page-heading, .two-col > .section-grid { grid-column: 1 / -1; }
.order-layout { grid-template-columns: minmax(0, 1fr) 326px; gap: 30px; }
.checkout-layout { grid-template-columns: minmax(0, 1fr) 360px; gap: 44px; }
.status-layout { grid-template-columns: minmax(0, 1fr) minmax(280px, .65fr); align-items: start; }
.status-layout > .page-heading { grid-column: 1 / -1; }
.status-layout > #status-result { grid-column: 1 / -1; }
.sticky-card { position: sticky; top: 116px; }

/* Menu categories and dishes. */
.menu-search { display: flex; gap: 10px; margin: 0; }
.menu-search-field { flex: 1; min-width: 0; }
.menu-search-field input { width: 100%; height: 48px; padding-left: 16px; background: var(--surface); }
.menu-search-button { min-width: 94px; }
.category-browser { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 26px; align-items: start; min-width: 0; }
.category-sidebar.panel.card { position: sticky; top: 112px; padding: 0 18px 0 0; background: transparent; border: 0; border-radius: 0; }
.category-sidebar > .card-label { padding: 0 12px 10px; font-size: 10px; color: var(--ink-soft); }
.category-options { display: grid; gap: 4px; max-height: calc(100vh - 160px); overflow-y: auto; scrollbar-width: thin; scrollbar-color: #d0c9ba transparent; }
.category-option { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 49px; padding: 10px 12px; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--ink-soft); text-align: left; transition: background-color .16s ease, color .16s ease; }
.category-option:hover { background: #eeeae1; color: var(--ink); }
.category-option.is-active { background: var(--charcoal); color: #f7f4e9; }
.category-option-index { display: none; }
.category-option-copy { display: flex; justify-content: space-between; align-items: center; flex: 1; gap: 8px; }
.category-option-copy strong { font-size: 13px; font-weight: 600; line-height: 1.35; }
.category-option-copy small { flex: 0 0 auto; font-size: 10px; opacity: .72; }
.category-stage { min-width: 0; }
.menu-group.panel.card { padding: 0; border: 0; background: transparent; }
.menu-group > div:first-child { padding: 2px 0 17px; }
.menu-group > div:first-child > .card-label { font-family: var(--font-display); font-size: 30px; font-weight: 500; color: var(--ink); line-height: 1.2; text-transform: none; letter-spacing: -.02em; margin-bottom: 6px; }
.menu-group > div:first-child > p { margin-bottom: 0; }
.menu-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.menu-item { display: flex; flex-direction: column; position: relative; min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); transition: border-color .16s ease, box-shadow .16s ease; }
.menu-item:hover { border-color: #c9c4b7; box-shadow: 0 4px 14px rgba(44, 43, 33, .035); }
.menu-item.is-in-basket { border-color: #baa36d; }
/* /order/?item=… : the linked dish is highlighted briefly. */
.menu-item.is-highlighted { border-color: var(--accent-ink); box-shadow: 0 0 0 3px var(--accent-soft), 0 6px 18px rgba(123, 96, 46, .14); }
.menu-item { scroll-margin-top: 150px; }
.order-deep-link-note { margin: 0; padding: 10px 14px; border: 1px solid #d5bd8e; border-radius: 9px; background: #faf5e7; color: #5d4a26; font-size: 13px; }
.menu-item h3 { font-size: 16px; font-weight: 600; margin: 0 0 7px; letter-spacing: -.02em; }
.menu-item p { font-size: 13px; line-height: 1.65; margin: 0 0 10px; }
.menu-item .helper { font-size: 11px; }
.menu-item .menu-item-allergens { color: var(--ink-soft); font-size: 12px; line-height: 1.45; }
.menu-item .menu-item-allergens.is-unlisted { color: var(--accent-ink); }
.menu-item .modifier-note { font-size: 11px; margin-top: 1px; }
.menu-item footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 8px; margin-top: auto; }
.price { font-size: 15px; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.order-layout .category-browser { grid-template-columns: 162px minmax(0, 1fr); gap: 20px; }
.order-layout .category-sidebar.panel.card { padding-right: 0; }
.order-layout .category-option { padding-inline: 10px; }
.order-layout .category-option-copy strong { font-size: 12px; }
.order-layout .category-option-copy small { display: none; }
.order-layout .menu-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.order-layout .menu-item { padding: 19px 20px; }
.menu-add-button { position: relative; min-width: 42px; min-height: 42px; padding: 7px 12px; border: 1px solid #ddcda9; background: #fbf7ec; color: #745926; border-radius: 8px; }
.menu-add-button:hover, .menu-add-button.has-count { border-color: #b79a5f; background: var(--accent-soft); }
.menu-add-button-icon { font-size: 22px; font-weight: 400; line-height: 1; }
.menu-add-button-text { font-size: 11px; }
.menu-add-count { position: absolute; top: -6px; right: -6px; display: grid; place-items: center; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 20px; background: var(--charcoal); color: #fff; font-size: 10px; }

/* The basket stays legible, including a long, configured order. */
.basket-card.panel.card { padding: 23px; border-top: 3px solid var(--accent); box-shadow: 0 9px 30px rgba(42, 39, 27, .045); max-height: calc(100vh - 140px); overflow-y: auto; scrollbar-width: thin; }
.basket-card > .stack { gap: 18px; }
.basket-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.basket-header .card-label { font-size: 9px; margin-bottom: 6px; }
.basket-header h2 { font-size: 27px; margin: 0 0 5px; }
.basket-count-copy { font-size: 11px !important; margin: 0; }
.basket-count-badge { display: grid; place-items: center; min-width: 29px; height: 29px; padding: 0 7px; border-radius: 50%; background: var(--paper-deep); color: var(--ink); font-size: 12px; font-weight: 600; }
.basket-columns { display: flex; justify-content: space-between; color: var(--ink-soft); font-size: 10px; border-bottom: 1px solid var(--line); padding-bottom: 7px; }
.basket { display: grid; gap: 0; }
.basket:empty { display: none; }
.basket-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 9px; padding: 15px 0; border-bottom: 1px solid var(--line); }
.basket-item:first-child { padding-top: 0; }
.basket-item:last-child { padding-bottom: 0; border-bottom: 0; }
.basket-item-main { display: flex; align-items: flex-start; gap: 10px; min-width: 0; flex: 1; }
.basket-item-controls { display: flex; flex-direction: column-reverse; align-items: center; gap: 1px; flex: 0 0 auto; }
.basket-stepper { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 1px solid var(--line); border-radius: 6px; background: white; color: var(--ink); font-size: 17px; line-height: 1; }
.basket-stepper:hover { background: var(--accent-soft); border-color: #cfba87; }
.quantity-pill { min-width: 28px; text-align: center; font-size: 11px; font-weight: 600; }
.basket-item-copy { min-width: 0; padding-top: 3px; }
.basket-item h3 { font-family: var(--font-body); font-size: 13px; font-weight: 600; margin: 0 0 4px; }
.basket-item p { font-size: 11px; margin: 0; }
.basket-item-each { color: var(--ink-soft); font-size: 10px !important; }
.basket-item-total { flex: 0 0 auto; padding-top: 3px; font-size: 12px; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
.modifier-summary { margin-top: 9px; }
.modifier-summary p { font-size: 11px; line-height: 1.55; }
.modifier-summary strong { font-weight: 500; }
.basket-empty { color: var(--ink-soft); font-size: 13px; text-align: center; padding: 28px 8px; border: 1px dashed var(--line); border-radius: 9px; background: #fcfbf8; }
.basket-card p.basket-empty { margin: 0; }
.totals { display: grid; gap: 8px; padding-top: 15px; border-top: 1px solid var(--line); }
.totals > div { display: flex; justify-content: space-between; align-items: center; gap: 14px; font-size: 12px; }
.totals span { color: var(--ink-soft); }
.totals strong { font-variant-numeric: tabular-nums; font-weight: 600; }
.totals > div:last-child { padding-top: 6px; font-size: 18px; }
.totals > div:last-child span { color: var(--ink); }
#order-continue-helper { text-align: center; font-size: 11px; }
.mobile-basket-bar { display: none; }

/* Clear, calm forms and collection / delivery choices. */
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 20px; }
.field { display: grid; gap: 7px; min-width: 0; margin: 0; }
.field > span, .field-label { color: var(--ink); font-size: 12px; font-weight: 600; }
input:not([type="radio"]):not([type="checkbox"]), textarea, select { width: 100%; min-width: 0; min-height: 48px; border: 1px solid #cfcfc4; border-radius: 8px; background: #fff; color: var(--ink); padding: 11px 13px; font-size: 15px; line-height: 1.5; }
input[type="date"], input[type="time"] { min-width: 0; }
textarea { resize: vertical; }
input::placeholder, textarea::placeholder { color: #85877e; opacity: 1; }
input:focus, textarea:focus, select:focus { outline: 2px solid #ae945b; outline-offset: 1px; border-color: #ae945b; }
input:disabled, select:disabled, textarea:disabled { background: #f0f0e9; color: #77796d; }
input[type="radio"], input[type="checkbox"] { width: 18px; height: 18px; accent-color: #756031; flex: 0 0 auto; }
/* A tickable statement (checkout "save my details", the gift card no-refund agreement). */
.check-row { display: flex; align-items: flex-start; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fcfbf8; cursor: pointer; font-size: 14px; font-weight: 600; line-height: 1.45; }
.check-row input { margin-top: 2px; }
.check-row small { display: block; margin-top: 3px; color: var(--ink-soft); font-size: 12px; font-weight: 400; }
.form-message { font-size: 13px; margin: 0; line-height: 1.6; color: var(--error); }
.form-message:empty, .helper:empty, .availability-message:empty { display: none; }
.form-message.is-success, .form-message.success { color: var(--success); }
.turnstile-box:empty { display: none; }
.turnstile-box { max-width: 100%; overflow: hidden; }
.form .actions { justify-content: space-between; }
#order-checkout-form { padding: 28px; background: white; border: 1px solid var(--line); border-radius: var(--radius); }
.checkout-step { display: grid; gap: 18px; min-width: 0; margin: 0; padding: 0; border: 0; }
.checkout-step > legend { float: left; width: 100%; margin: 0 0 4px; padding: 0; font-family: var(--font-display); font-size: 24px; line-height: 1.2; letter-spacing: -.025em; }
.checkout-step + .checkout-step { padding-top: 24px; border-top: 1px solid var(--line); }
.checkout-step.fulfilment-panel { padding: 20px; border: 1px solid var(--line); }
.field-wide { grid-column: 1 / -1; }
.field > small { font-size: 11px; color: var(--ink-soft); }
.field > span > small { font-weight: 400; color: var(--ink-soft); }
.fulfilment-panel { display: grid; gap: 15px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.fulfilment-panel h2, .fulfilment-panel h3 { margin: 0; font-size: 20px; }
.fulfilment-panel .field-grid { gap: 15px; }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.choice-grid > label { display: flex; align-items: flex-start; gap: 10px; border: 1px solid #d8d8cd; border-radius: 9px; padding: 14px; background: #fcfbf8; cursor: pointer; }
.choice-grid > label:has(input:checked) { border-color: #9d8755; background: #faf5e7; }
.choice-grid > label:has(input:disabled) { background: #f3f3ee; color: #76786e; cursor: not-allowed; }
.choice-grid > label input { margin: 3px 0 0; }
.choice-grid > label strong, .choice-grid > label span { display: block; font-size: 13px; line-height: 1.5; }
.choice-grid > label small { display: block; font-size: 11px; color: var(--ink-soft); margin-top: 3px; }
.fulfilment-address { display: grid; gap: 16px; }
.availability-message { margin: 0; font-size: 12px; line-height: 1.65; color: #735e32; background: #f7f0df; border: 1px solid #e6d9b8; border-radius: 8px; padding: 11px 13px; }
.availability-message.is-error, .availability-message.error { color: var(--error); background: #fcf0ec; border-color: #e7c9be; }
.availability-message.is-unavailable { color: #775b31; background: #f7efdf; border-color: #e8d8b9; }
.availability-message.is-open, .availability-message.is-success { color: var(--success); background: #edf4eb; border-color: #d2dfcc; }
.delivery-check { display: flex; gap: 12px; align-items: flex-end; }
.delivery-check > .field { flex: 1; }
.meta-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 0; }
.meta-list dt { margin-bottom: 4px; font-size: 11px; color: var(--ink-soft); }
.meta-list dd { margin: 0; font-size: 13px; overflow-wrap: anywhere; }
.status-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: end; }
.slot-list { display: grid; gap: 12px; }
.slot-item { padding: 18px; border: 1px solid var(--line); background: #fcfbf8; border-radius: 10px; }
.slot-item h3 { margin: 0 0 7px; font-size: 15px; }
.slot-item p { font-size: 13px; margin-bottom: 8px; }
.slot-item footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 12px; }
.booking-time-options { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 13px; }
.booking-time-button { min-width: 70px; min-height: 44px; padding: 10px 14px; font-variant-numeric: tabular-nums; }
.booking-time-button[aria-pressed="true"] { background: var(--accent); color: var(--charcoal); border-color: var(--accent); }
.booking-time-button[aria-pressed="true"]:hover { background: #e1c58e; border-color: #e1c58e; }
.status-card { display: grid; gap: 18px; }
.status-card h2 { margin: 0; }
.status-card .card-label { margin: 0; }

/* Item options remain usable with a keyboard and on small screens. */
.modifier-modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 28px; }
.modifier-modal-backdrop { position: absolute; inset: 0; background: rgba(19, 25, 20, .56); backdrop-filter: blur(3px); }
.modifier-modal-dialog.panel.card { position: relative; width: min(600px, 100%); max-height: calc(100dvh - 56px); overflow-y: auto; padding: 28px; border: 0; border-radius: 18px; background: var(--paper); box-shadow: 0 28px 80px rgba(0, 0, 0, .2); }
.modifier-modal-header, .modifier-modal-footer, .modifier-group-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.modifier-modal-header { padding-bottom: 20px; }
.modifier-modal-header h2 { font-size: 30px; margin-bottom: 8px; }
.modifier-modal-header > .small-button { flex: 0 0 auto; }
.modifier-modal-footer { align-items: center; padding-top: 20px; border-top: 1px solid var(--line); }
.modifier-modal-pricing { display: grid; gap: 4px; }
.modifier-modal-pricing > strong { font-size: 22px; font-variant-numeric: tabular-nums; }
.modifier-groups { display: grid; gap: 22px; }
.modifier-group { min-width: 0; margin: 0; border: 1px solid var(--line); padding: 16px; border-radius: 12px; background: white; }
.modifier-group.is-invalid { border-color: var(--error); }
.modifier-group-title { padding: 0 6px; color: var(--ink); font-size: 15px; font-weight: 600; }
.modifier-group-header { align-items: center; margin-bottom: 12px; }
.modifier-group-header p { margin: 0; }
.modifier-required-badge { padding: 3px 7px; background: #f4eddd; border-radius: 4px; color: #755c27; font-size: 10px; font-weight: 600; }
.modifier-options { display: grid; gap: 9px; }
.modifier-option { display: flex; align-items: center; gap: 11px; padding: 12px; border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }
.modifier-option:has(input:checked) { border-color: #a78d57; background: #fbf7ec; }
.modifier-option input { margin: 0; }
.modifier-option-copy { display: grid; gap: 2px; min-width: 0; }
.modifier-option-copy strong { font-size: 13px; font-weight: 600; }
.modifier-option-copy small { font-size: 11px; color: var(--ink-soft); }
.modifier-clear { min-height: 32px; padding: 5px 10px; font-size: 11px; }

/* On the menu, ordering preferences are a small prelude to the food. */
.content.order-layout { padding-top: 26px; }
.order-layout > .stack { gap: 17px; }
.order-layout .page-heading h1 { font-size: 36px; margin: 5px 0 8px; }
.order-layout .page-heading .eyebrow { margin-bottom: 5px; }
.order-layout .page-heading .lede { font-size: 14px; line-height: 1.6; }
.order-layout .checkout-step.fulfilment-panel { padding: 12px 14px; gap: 10px; }
.order-layout .fulfilment-panel > legend { margin: 0; font-family: var(--font-body); font-size: 13px; font-weight: 600; line-height: 1.4; letter-spacing: 0; }
.order-layout .choice-grid { gap: 9px; }
.order-layout .choice-grid > label { min-height: 48px; padding: 8px 10px; gap: 8px; }
.order-layout .choice-grid > label small { font-size: 10px; margin-top: 0; }
.order-layout .availability-message { padding: 7px 10px; font-size: 11px; line-height: 1.5; }
.order-layout .fulfilment-panel .field-grid { gap: 10px; }
.order-layout .fulfilment-panel .field { gap: 4px; }
.order-layout .fulfilment-panel .field > span { font-size: 11px; }
.order-layout .fulfilment-panel select, .order-layout .fulfilment-panel input:not([type="radio"]) { min-height: 43px; padding-block: 8px; }
.order-layout .menu-group > div:first-child { padding-bottom: 12px; }
.order-layout .menu-group > div:first-child > .card-label { font-size: 27px; }

@media (min-width: 1100px) {
  .order-layout .fulfilment-panel { grid-template-columns: minmax(0, 1fr) minmax(240px, .8fr); grid-template-areas: "title title" "choices timing" "availability availability"; align-items: end; }
  .order-layout .fulfilment-panel > legend { grid-area: title; }
  .order-layout .fulfilment-panel > .choice-grid { grid-area: choices; }
  .order-layout .fulfilment-panel > .field-grid { grid-area: timing; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .order-layout .fulfilment-panel > .field-grid > .field:first-child { grid-column: 1 / -1; }
  .order-layout .fulfilment-panel > .availability-message { grid-area: availability; }
}

.footer { margin-top: 54px; padding: 25px 0 0; border-top: 1px solid var(--line); color: var(--ink-soft); }
.footer p { margin: 0; font-size: 13px; line-height: 1.8; text-align: center; }
.footer a { text-decoration: underline; text-underline-offset: 3px; }
.footer .footer-links { margin-top: 6px; }
.footer .footer-links a { display: inline-block; padding: 6px 2px; }
.footer a:hover { color: var(--accent-ink); }
.page-turn-overlay { display: none; }

@media (max-width: 1160px) {
  .topbar { padding-inline: 25px; gap: 17px; }
  .nav { gap: 17px; }
  .topbar-actions { gap: 17px; }
  .utility-link { padding-left: 17px; }
  .brand-copy strong { font-size: 18px; }
  .brand-logo { width: 72px; }
  .page-stack { padding-inline: 28px; }
  .home-hero { gap: 34px; }
  .home-hero h1 { font-size: 60px; }
  .home-hero-image { min-height: 425px; }
  .order-layout { grid-template-columns: minmax(0, 1fr) 302px; gap: 25px; }
  /* minmax(0, …): a plain 1fr track grows to the chip row's full width, pushing it under the basket. */
  .order-layout .category-browser { grid-template-columns: minmax(0, 1fr); gap: 17px; }
  .order-layout .category-sidebar.panel.card { position: static; padding: 0; }
  .order-layout .category-sidebar > .card-label { display: none; }
  .order-layout .category-options { display: flex; gap: 7px; overflow-x: auto; max-height: none; padding: 0 1px 5px; }
  .order-layout .category-option { flex: 0 0 auto; width: auto; min-height: 41px; padding: 9px 13px; background: white; border-color: var(--line); }
  .order-layout .category-option.is-active { background: var(--charcoal); border-color: var(--charcoal); }
  .order-layout .category-option-copy strong { white-space: nowrap; }
  .checkout-layout { grid-template-columns: minmax(0, 1fr) 315px; gap: 28px; }
}

@media (max-width: 1000px) {
  .brand-copy { display: none; }
  .brand-logo { width: 84px; }
  .home-hero h1 { font-size: 54px; }
  .home-hero-copy { padding-left: 0; }
  .home-hero-image { min-height: 410px; }
  .home-route { padding-inline: 23px; }
  .home-route h2 { font-size: 25px; }
  .home-route .route-arrow { right: 15px; }
  .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  html { scroll-padding-top: 92px; }
  .topbar { min-height: 76px; padding: 9px 22px; gap: 12px; flex-wrap: wrap; }
  .brand { gap: 0; }
  .brand-logo { width: 76px; height: 54px; }
  .brand-copy { display: block; }
  .brand-copy strong { font-size: 18px; }
  .brand-copy small { display: none; }
  .topbar .nav-order { margin-left: auto; padding-inline: 17px; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .topbar-actions { display: none; position: absolute; left: 0; right: 0; top: 100%; padding: 12px 22px 20px; background: var(--charcoal); border-bottom: 1px solid #474936; box-shadow: 0 13px 20px rgba(0, 0, 0, .12); }
  .topbar.is-nav-open .topbar-actions { display: flex; flex-direction: column; align-items: stretch; gap: 7px; }
  .nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 20px; }
  .nav a { padding: 7px 5px; border-bottom: 1px solid #34392f; font-size: 14px; min-height: 46px; }
  .utility-link { padding: 10px 5px; border-left: 0; font-size: 14px; }
  .page-stack { padding-inline: 24px; }
  .content { padding-top: 29px; gap: 26px; }
  .service-ribbon { padding-block: 12px; }
  .service-ribbon-stack { font-size: 10px; gap: 4px 12px; }
  .service-ribbon-stack > .service-pill:last-child { display: none; }
  body[data-page="home"] .page-stack { padding-top: 28px; }
  .home-hero { gap: 26px; }
  .home-hero h1 { font-size: 49px; }
  .home-hero .lede { font-size: 14px; }
  .home-hero .button { padding-inline: 17px; font-size: 13px; }
  .home-hero-image { min-height: 385px; }
  .home-service-strip { margin-top: 22px; padding-inline: 0; }
  .home-route-grid { padding-top: 25px; }
  .home-route:first-child { padding-left: 0; }
  .home-route h2 { font-size: 22px; }
  .home-route p { font-size: 12px; }
  .home-route .route-arrow { display: none; }
  .page-heading h1 { font-size: 44px; }
  .two-col { gap: 25px; }
  .checkout-layout, .order-layout { grid-template-columns: minmax(0, 1fr); }
  .order-layout > aside, .checkout-layout > aside { position: static; max-height: none; }
  .order-layout .category-browser { grid-template-columns: minmax(0, 1fr); }
  .order-layout .menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .basket-card.panel.card { width: 100%; max-height: none; }
  .checkout-layout #order-checkout-form { max-width: none; }
  .category-browser { grid-template-columns: 176px minmax(0, 1fr); gap: 20px; }
  .category-sidebar.panel.card { top: 98px; padding-right: 0; }
  .category-option-copy small { display: none; }
  .menu-grid { grid-template-columns: 1fr; }
}

/* Phones: a sticky basket bar ("View basket · 2 items · £27.20", hidden while the basket is empty)
   and the category chips stay pinned under the header while the dishes scroll. */
@media (max-width: 720px) {
  .mobile-basket-bar { position: fixed; z-index: 60; left: 16px; right: 16px; bottom: max(14px, env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 15px; padding: 12px 15px; border-radius: 12px; background: var(--charcoal); color: white; box-shadow: 0 6px 28px rgba(0, 0, 0, .2); }
  .mobile-basket-copy { display: grid; gap: 1px; flex: 1; font-size: 13px; font-weight: 500; }
  .mobile-basket-copy > span { font-size: 11px; color: #d1d4c9; }
  .mobile-basket-copy small { display: block; font-size: 11px; color: #c2c6b7; font-weight: 400; }
  .mobile-basket-total { font-size: 15px; font-weight: 600; }
  .mobile-basket-bar .button { min-height: 43px; padding: 10px 16px; font-size: 12px; }
  body[data-page="order"] .footer, body[data-page="order-checkout"] .footer { padding-bottom: 88px; }
  .mobile-basket-view { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 7px; min-height: 43px; align-content: center; color: white; text-decoration: none; }
  .mobile-basket-view > span { font-size: 12px; color: #d1d4c9; }
  .mobile-basket-view > .mobile-basket-label { color: white; font-size: 13px; font-weight: 600; }
  .mobile-basket-view > .mobile-basket-sep { color: #8f907f; }
  .order-layout .category-sidebar.panel.card { position: sticky; top: 76px; z-index: 30; margin-inline: -24px; padding: 9px 24px 7px; background: var(--paper); box-shadow: 0 8px 12px -12px rgba(0, 0, 0, .25); }
  .order-layout .category-options { margin-right: 0; padding-right: 0; scroll-padding-inline: 24px; }
  .order-layout .category-stage { scroll-margin-top: 140px; }
  #your-basket { scroll-margin-top: 90px; }
}

@media (max-width: 620px) {
  body { font-size: 14px; }
  .topbar { min-height: 72px; padding: 8px 14px; gap: 9px; }
  .brand-logo { width: 66px; height: 48px; margin-left: -6px; }
  .brand-copy strong { font-size: 15px; max-width: 72px; line-height: 1.05; }
  .topbar .nav-order { min-height: 41px; padding: 10px 12px; font-size: 11px; }
  .nav-toggle { min-height: 41px; padding: 9px 11px; font-size: 12px; }
  .topbar-actions { padding-inline: 18px; }
  .page-stack { padding: 0 18px 24px; }
  .content { padding-top: 25px; gap: 24px; }
  .stack { gap: 20px; }
  .page-heading h1 { font-size: 38px; margin: 8px 0 13px; }
  .page-heading .lede { font-size: 14px; line-height: 1.7; }
  .eyebrow, .card-label { font-size: 10px; }
  .service-ribbon { gap: 7px 12px; font-size: 10px; }
  .service-ribbon-stack { flex: 1; }
  .service-pill--status { font-size: 10px; }
  body[data-page="home"] .page-stack { padding-top: 16px; }
  .cover-page { padding-top: 0; }
  .home-hero { grid-template-columns: 1fr; gap: 0; }
  .home-hero-copy { padding: 22px 5px 30px; }
  .home-hero h1 { font-size: clamp(46px, 12vw, 58px); margin: 14px 0 19px; }
  .home-hero .lede { font-size: 14px; line-height: 1.8; max-width: 35ch; margin-bottom: 23px; }
  .home-hero .cover-actions { gap: 10px; width: 100%; }
  .home-hero .cover-actions .button { flex: 1; padding-inline: 12px; min-height: 48px; font-size: 13px; }
  .home-hero-image { min-height: 240px; border-radius: 12px; }
  .home-hero-image img { object-position: center; }
  .home-image-caption { left: 15px; bottom: 15px; font-size: 9px; padding: 7px 10px; }
  .home-service-strip { display: grid; gap: 10px; padding: 20px 4px; margin: 0; }
  .home-service-strip .service-ribbon { display: flex; gap: 12px; }
  .home-service-strip > p { font-size: 11px; }
  .home-route-grid { grid-template-columns: 1fr; padding: 5px 4px 0; }
  .home-route, .home-route:first-child { padding: 23px 35px 23px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .home-route:last-child { border-bottom: 0; }
  .home-route .eyebrow { font-size: 9px; margin-bottom: 7px; }
  .home-route h2 { font-size: 26px; margin-bottom: 6px; }
  .home-route p { max-width: 100%; font-size: 12px; }
  .home-route .route-arrow { display: block; right: 5px; top: 47px; }
  .two-col, .section-grid, .contact-grid, .status-layout { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .panel, .card, .panel.card, .status-card { padding: 22px; border-radius: 12px; }
  .card h2 { font-size: 27px; }
  .category-browser { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .category-sidebar.panel.card { position: static; padding: 0; }
  .category-sidebar > .card-label { display: none; }
  .category-options { display: flex; gap: 7px; overflow-x: auto; max-height: none; padding: 0 1px 6px; margin-right: -18px; padding-right: 18px; }
  .category-option, .order-layout .category-option { flex: 0 0 auto; width: auto; min-height: 41px; padding: 9px 13px; background: white; border-color: var(--line); }
  .category-option.is-active { background: var(--charcoal); border-color: var(--charcoal); }
  .category-option-copy strong { font-size: 12px; white-space: nowrap; }
  .category-option-copy small { display: none; }
  .menu-group > div:first-child { padding-bottom: 14px; }
  .menu-group > div:first-child > .card-label { font-size: 28px; }
  .menu-grid, .order-layout .menu-grid { grid-template-columns: minmax(0, 1fr); gap: 11px; }
  .menu-item, .order-layout .menu-item { padding: 19px; }
  .menu-item h3 { font-size: 16px; }
  .menu-item p { font-size: 13px; }
  .menu-search { gap: 8px; }
  .menu-search-button { min-width: auto; padding-inline: 17px; font-size: 12px; }
  .field-grid { grid-template-columns: minmax(0, 1fr); gap: 17px; }
  .booking-schedule .field-grid { grid-template-columns: minmax(0, 1fr); }
  input:not([type="radio"]):not([type="checkbox"]), textarea, select { font-size: 16px; }
  #order-checkout-form { padding: 21px; border-radius: 12px; }
  .fulfilment-panel { padding: 17px; gap: 14px; }
  .checkout-step.fulfilment-panel { padding: 16px; }
  .checkout-step > legend { font-size: 22px; }
  .fulfilment-panel .field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .fulfilment-panel .field-grid > .field:first-child { grid-column: 1 / -1; }
  .order-layout .page-heading h1 { font-size: 32px; }
  .content.order-layout { padding-top: 21px; }
  .order-layout > .stack { gap: 15px; }
  .checkout-layout > .stack { gap: 18px; }
  .checkout-layout .page-heading h1 { font-size: 33px; margin: 6px 0 10px; }
  .checkout-layout .page-heading .lede { font-size: 13px; }
  .checkout-layout #order-checkout-form { padding: 19px; }
  .checkout-layout .checkout-step.fulfilment-panel { padding: 0; border: 0; background: transparent; }
  .checkout-layout .fulfilment-panel .field-grid { grid-template-columns: minmax(0, 1fr); }
  .choice-grid { gap: 9px; }
  .choice-grid > label { padding: 12px 10px; gap: 7px; }
  .choice-grid > label strong, .choice-grid > label span { font-size: 12px; }
  .form .actions { flex-direction: column-reverse; align-items: stretch; }
  .form .actions .button { width: 100%; }
  .availability-message { font-size: 11px; }
  .basket-card.panel.card { padding: 22px; }
  .basket-stepper { width: 36px; height: 36px; }
  .basket-item h3 { font-size: 14px; }
  .basket-item-total { font-size: 13px; }
  .basket-item-main { gap: 13px; }
  .mobile-basket-bar { gap: 11px; left: 12px; right: 12px; padding: 11px 13px; border-radius: 10px; }
  .order-layout .category-sidebar.panel.card { top: 72px; margin-inline: -18px; padding-inline: 18px; }
  .order-layout .category-options { scroll-padding-inline: 18px; }
  .mobile-basket-copy { font-size: 12px; }
  .mobile-basket-total { font-size: 14px; }
  .mobile-basket-bar .button { padding-inline: 13px; }
  .meta-list { grid-template-columns: 1fr; gap: 16px; }
  .status-form { grid-template-columns: 1fr; }
  .modifier-modal { padding: 12px; align-items: center; }
  .modifier-modal-dialog.panel.card { max-height: calc(100dvh - 24px); padding: 21px; border-radius: 15px; }
  .modifier-modal-header { gap: 12px; }
  .modifier-modal-header h2 { font-size: 27px; }
  .modifier-modal-header .small-button { padding-inline: 10px; min-height: 38px; }
  .modifier-group { padding: 12px; }
  .modifier-modal-footer { gap: 12px; }
  .modifier-modal-footer .button { padding-inline: 17px; }
  .footer { margin-top: 34px; padding-top: 20px; }
  .footer p { font-size: 13px; max-width: 40ch; margin-inline: auto; }
  .footer a { display: inline-block; padding: 8px 2px; }
}

@media (max-width: 360px) {
  .brand-copy { display: none; }
  .topbar .nav-order { margin-left: auto; }
  .home-hero h1 { font-size: 45px; }
  .mobile-basket-copy { font-size: 11px; }
  .mobile-basket-bar { gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}


/* The Millers identity: warm paper, rich black and quiet brass details. */
.topbar { background: #111111; border-bottom-color: #35322d; }
.topbar.is-nav-open { z-index: 80; }
.brand-copy strong { letter-spacing: -.035em; }
.brand-copy small { color: #c8c0b4; font-size: 9px; letter-spacing: .2em; }
.nav a { position: relative; }
.nav a.active, .nav a[aria-current="page"] { text-decoration: none; }
.nav a::after { content: ""; position: absolute; inset: auto 0 6px; height: 1px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform 220ms ease; }
.nav a:hover::after, .nav a:focus-visible::after, .nav a[aria-current="page"]::after { transform: scaleX(1); }
.nav-link-copy strong { font: inherit; }
.nav-link-copy small, .nav-arrow, .nav-panel-heading, .nav-panel-footer { display: none; }
.topbar .nav-order { border-radius: 100px; padding-inline: 21px; }
.button { border-radius: 100px; }
.button.primary { box-shadow: inset 0 1px 0 #ffffff38; }
.button-arrow { display: inline-block; font-size: 17px; font-weight: 400; }
.text-link { text-decoration-thickness: 1px; text-underline-offset: 5px; }
.page-heading > .eyebrow { display: flex; align-items: center; gap: 12px; }
.page-heading > .eyebrow::before { content: ""; width: 26px; height: 1px; background: currentColor; }
.panel, .card, .status-card, #order-checkout-form { box-shadow: 0 6px 24px #302b1904; }
.menu-item { border-radius: 10px; box-shadow: 0 2px 7px #302b1903; }
.menu-item h3 { letter-spacing: -.025em; }
.menu-item .price { color: var(--accent-ink); }
.category-option.is-active { box-shadow: inset 3px 0 var(--accent); }
.menu-add-button { border-radius: 100px; min-width: 46px; }
.basket-card.panel.card { border-top-color: var(--charcoal); }
input:not([type="radio"]):not([type="checkbox"]), textarea, select { background-color: #fffefa; transition: border-color 180ms ease, box-shadow 180ms ease; }
input:focus, textarea:focus, select:focus { box-shadow: 0 0 0 4px #dfc18b24; }

body[data-page="home"] .page-stack { padding-top: 24px; }
.home-hero { background: var(--charcoal); color: #fbf7ed; border-radius: 20px; overflow: hidden; grid-template-columns: 1fr 1fr; gap: 0; }
.home-hero-copy { padding: 52px 48px; position: relative; }
.home-hero .eyebrow { display: flex; align-items: center; gap: 13px; color: var(--accent); font-size: 10px; letter-spacing: .18em; }
.home-hero .eyebrow::before { content: ""; width: 27px; height: 1px; background: currentColor; }
.home-hero h1 { font-size: clamp(52px, 5.8vw, 78px); margin: 22px 0 25px; letter-spacing: -.045em; line-height: 1.01; }
.home-hero h1 em { color: var(--accent); }
.home-hero .lede { max-width: 35ch; color: #d2cec6; font-size: 15px; line-height: 1.85; margin-bottom: 30px; }
.home-hero .button { min-height: 50px; padding-inline: 23px; }
.home-hero .button:not(.primary) { color: #fbf7ed; border-color: #827b70; background: transparent; }
.home-hero .button:not(.primary):hover { background: #ffffff0d; border-color: #d6c8a8; }
.home-hero-image { border-radius: 0; min-height: 520px; }
.home-hero-image img { object-position: 52% center; }
.home-hero-image::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 65%, #00000080); }
.home-image-caption { left: 27px; bottom: 24px; right: 27px; padding: 14px 0 0; border: 0; border-top: 1px solid #ffffff70; border-radius: 0; background: none; font-size: 10px; font-weight: 500; letter-spacing: .19em; z-index: 1; }
.home-service-strip { margin-top: 0; padding: 23px 8px; }
.home-route-grid { gap: 16px; padding: 26px 0 8px; }
.home-route, .home-route:first-child, .home-route:last-child { padding: 26px; border: 1px solid #dcd6c8; border-radius: 12px; background: #fcfaf5; }
.home-route .eyebrow { margin-bottom: 22px; font-size: 9px; letter-spacing: .16em; }
.home-route h2 { font-size: 28px; padding-right: 32px; }
.home-route p { max-width: 29ch; line-height: 1.65; }
.home-route .route-arrow { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #d5ccba; border-radius: 50%; font-size: 20px; right: 20px; top: 58px; }
.home-route:hover { border-color: #ae9b75; background: #f2ede1; box-shadow: 0 6px 18px #332a1606; }
.home-route:focus-visible { background: #f2ede1; }
.footer { color: #5f6155; }
/* Ordering terms and privacy notice: one readable column. */
.legal-page { max-width: 780px; }
.legal-section { scroll-margin-top: 110px; }
.legal-section ul { margin: 0 0 14px; padding-left: 20px; color: var(--ink-soft); }
.legal-section li { margin: 6px 0; }
.legal-section a, .terms-note a { overflow-wrap: anywhere; }
.terms-note { margin: 0 0 12px; }

@keyframes millers-arrive {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.home-hero-copy > * { animation: millers-arrive 500ms cubic-bezier(.22,.68,0,1) both; }
.home-hero-copy h1 { animation-delay: 45ms; }
.home-hero-copy .lede { animation-delay: 90ms; }
.home-hero-copy .cover-actions { animation-delay: 135ms; }

@media (max-width: 1160px) {
  .topbar-actions, .nav { gap: 18px; }
  .utility-link { padding-left: 18px; }
  .home-hero-copy { padding: 40px 32px; }
  .home-hero h1 { font-size: 64px; }
  .home-hero .button { padding-inline: 18px; font-size: 13px; }
  .home-route, .home-route:first-child, .home-route:last-child { padding: 24px 20px; }
  .home-route h2 { font-size: 25px; }
  .home-route .route-arrow { right: 15px; width: 33px; height: 33px; }
}
@media (max-width: 900px) {
  .topbar { flex-wrap: nowrap; }
  .nav-toggle { gap: 9px; min-width: 98px; border-radius: 100px; border-color: #716b61; background: #ffffff05; font-size: 12px; font-weight: 500; }
  .nav-toggle-icon { display: grid; gap: 5px; width: 15px; }
  .nav-toggle-icon > span { display: block; height: 1px; background: #e2d7bf; transition: transform 220ms ease; }
  .is-nav-open .nav-toggle-icon > span:first-child { transform: translateY(3px) rotate(45deg); }
  .is-nav-open .nav-toggle-icon > span:last-child { transform: translateY(-3px) rotate(-45deg); }
  .is-nav-open .nav-toggle { background: #ffffff12; border-color: var(--accent); }
  .topbar-actions, .topbar.is-nav-open .topbar-actions { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: 22px 28px; background: var(--paper); color: var(--ink); border: 1px solid #d7d0bf; border-top: 0; border-radius: 0 0 20px 20px; box-shadow: 0 22px 40px #00000029; max-height: calc(100dvh - 90px); overflow-y: auto; overscroll-behavior: contain; }
  .js .topbar-actions { visibility: hidden; opacity: 0; transform: translateY(-8px); pointer-events: none; transition: opacity 200ms ease, transform 260ms cubic-bezier(.22,.68,0,1), visibility 200ms; }
  .js .is-nav-open .topbar-actions { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
  .nav-panel-heading { display: block; color: var(--accent-ink); text-transform: uppercase; letter-spacing: .18em; font-size: 10px; margin: 0 0 14px; }
  .nav { display: grid; grid-template-columns: 1fr; gap: 0; }
  .nav a { min-height: 65px; justify-content: space-between; gap: 20px; padding: 10px 0; color: var(--ink); border-bottom-color: #ded7c9; white-space: normal; }
  .nav a::after { display: none; }
  .nav a:hover, .nav a[aria-current="page"] { color: var(--accent-ink); }
  .nav-link-copy strong { display: block; font-family: var(--font-display); font-size: 26px; font-weight: 500; line-height: 1.15; letter-spacing: -.025em; }
  .nav-link-copy small { display: block; margin-top: 3px; font-size: 11px; color: var(--ink-soft); }
  .nav-arrow { display: block; font-size: 21px; font-weight: 400; color: var(--accent-ink); transition: transform 200ms ease; }
  .nav a:hover .nav-arrow, .nav a:focus-visible .nav-arrow { transform: translate(2px,-2px); }
  .utility-link, .utility-link:hover, .utility-link[aria-current="page"] { display: flex; justify-content: space-between; padding: 15px 0; color: var(--ink); min-height: 51px; }
  .nav-panel-footer { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 5px 12px; padding-top: 15px; border-top: 1px solid #ded7c9; color: var(--ink-soft); font-size: 10px; }
  .nav-panel-footer a { color: var(--accent-ink); }
  html:not(.js) .topbar { flex-wrap: wrap; }
  html:not(.js) .topbar .topbar-actions { position: static; flex-basis: 100%; order: 4; max-height: none; }
  html:not(.js) .topbar .nav-toggle { display: none; }
  .home-hero-copy { padding: 34px 27px; }
  .home-hero h1 { font-size: 51px; }
  .home-hero .eyebrow { font-size: 9px; letter-spacing: .1em; gap: 9px; }
  .home-hero .eyebrow::before { width: 18px; }
  .home-hero .lede { font-size: 13px; }
  .home-hero .cover-actions { flex-direction: column; align-items: stretch; width: 100%; gap: 10px; }
  .home-hero-image { min-height: 480px; }
  .home-image-caption { left: 20px; right: 20px; font-size: 8px; letter-spacing: .12em; }
  .home-route-grid { gap: 12px; }
  .home-route, .home-route:first-child, .home-route:last-child { padding: 20px 16px; }
  .home-route h2 { font-size: 24px; padding-right: 0; }
  .home-route .route-arrow { position: static; margin-top: 18px; }
}
@media (max-width: 620px) {
  .topbar { padding-inline: 14px; gap: 8px; }
  .brand-copy strong { font-size: 14px; max-width: 67px; }
  .brand-logo { width: 54px; }
  .topbar .nav-order { padding-inline: 14px; min-height: 44px; font-size: 11px; }
  .topbar .nav-order .button-arrow { display: none; }
  .nav-toggle { padding-inline: 11px; min-height: 44px; min-width: 94px; font-size: 11px; }
  .topbar-actions, .topbar.is-nav-open .topbar-actions { padding: 20px 24px; }
  body[data-page="home"] .page-stack { padding-top: 14px; padding-inline: 14px; }
  .home-hero { grid-template-columns: 1fr; border-radius: 15px; }
  .home-hero-copy { padding: 30px 25px 31px; }
  .home-hero .eyebrow { font-size: 9px; letter-spacing: .13em; }
  .home-hero h1 { font-size: clamp(47px,12.6vw,65px); margin: 17px 0 20px; }
  .home-hero .lede { font-size: 13px; max-width: 36ch; margin-bottom: 24px; line-height: 1.8; }
  .home-hero .cover-actions { flex-direction: row; gap: 9px; }
  .home-hero .cover-actions .button { min-height: 46px; padding-inline: 12px; font-size: 11px; gap: 6px; }
  .home-hero-image { min-height: 235px; border-radius: 0; }
  .home-image-caption { font-size: 9px; bottom: 18px; letter-spacing: .13em; }
  .home-service-strip { padding: 22px 5px; gap: 9px; }
  .home-route-grid { grid-template-columns: 1fr; gap: 12px; padding: 19px 0 0; }
  .home-route, .home-route:first-child, .home-route:last-child { padding: 23px; }
  .home-route .eyebrow { margin-bottom: 12px; font-size: 9px; }
  .home-route h2 { padding-right: 35px; font-size: 27px; }
  .home-route p { font-size: 12px; max-width: 29ch; }
  .home-route .route-arrow { position: absolute; right: 20px; top: 43px; margin: 0; width: 35px; height: 35px; }
}
@media (max-width: 360px) {
  .home-hero-copy { padding-inline: 20px; }
  .home-hero h1 { font-size: 43px; }
  .home-hero .cover-actions .button { padding-inline: 10px; }
  .home-hero .button-arrow { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .home-hero-copy > * { animation: none; }
  .js .topbar-actions, .nav-toggle-icon > span, .nav a::after, .nav-arrow { transition: none; }
}


/* A clear online offer, carried from the front door through checkout. */
.nav-order-copy { display: grid; gap: 2px; line-height: 1.2; text-align: center; }
.nav-order-copy > strong { font-size: 10px; font-weight: 750; letter-spacing: .08em; }
.topbar .nav-order { padding-block: 9px; }
.hero-offer { display: flex; align-items: center; gap: 18px; padding-left: 17px; margin: -5px 0 27px; border-left: 2px solid var(--accent); color: #e8d1a6; }
.hero-offer > strong { font-family: var(--font-display); font-size: 37px; font-weight: 500; letter-spacing: -.03em; line-height: 1.1; white-space: nowrap; }
.hero-offer > span { color: #f3ebdd; font-size: 12px; line-height: 1.6; }
.hero-offer small { color: #bcb4a7; font-size: 10px; }
.order-offer { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 5px 16px; padding: 11px 16px; margin: 18px 0 7px; background: #eee2c9; border: 1px solid #d5bd8e; border-radius: 9px; }
.order-offer > strong { color: #342711; font-size: 16px; font-weight: 650; }
.order-offer > span { color: #6e562c; font-size: 11px; }
.offer-terms { margin: 0; font-size: 10px; color: var(--ink-soft); }
/* Online-offer copy follows the POS discount (assets/online-offer.js). The nav button keeps
   room for its second line so it doesn't change height when the offer appears or is off;
   the hero and order-page offers hold their space (invisible) only while the value is loading,
   and collapse when the venue has no online discount, the fetch failed, or nothing arrived
   within 4 s (data-online-offer-state="unavailable", set by online-offer.js). */
.nav-order-copy { min-height: calc(1.2em + 14px); align-content: center; }
html:not([data-online-offer-state]) .hero-offer[data-online-offer][hidden] { display: flex !important; visibility: hidden; }
html:not([data-online-offer-state]) .order-offer[data-online-offer][hidden] { display: inline-flex !important; visibility: hidden; }
html:not([data-online-offer-state]) .offer-terms[data-online-offer][hidden] { display: block !important; visibility: hidden; }
.totals .discount-total { padding: 9px 10px; margin-inline: -10px; background: #f4edde; border-radius: 6px; }
.totals .discount-total > span, .totals .discount-total > strong { color: #725321; }
@media (max-width: 1160px) { .hero-offer { gap: 13px; } .hero-offer > strong { font-size: 33px; } }
@media (max-width: 900px) { .hero-offer { align-items: flex-start; flex-direction: column; gap: 5px; } }
@media (max-width: 620px) {
  .nav-order-copy > strong { font-size: 9px; }
  .topbar .nav-order { padding-block: 7px; }
  .hero-offer { flex-direction: row; align-items: center; gap: 14px; padding-left: 13px; margin: -3px 0 25px; }
  .hero-offer > strong { font-size: 33px; }
  .hero-offer > span { font-size: 10px; }
  .hero-offer small { font-size: 9px; }
  .order-offer { display: flex; gap: 3px; flex-direction: column; align-items: flex-start; margin-top: 14px; padding: 10px 13px; }
  .order-offer > strong { font-size: 15px; }
  .order-offer > span { font-size: 10px; }
}


/* Booking times are choices, rather than a free-text clock field. */
.booking-time-picker { min-width: 0; padding: 0; margin: 0; border: 0; }
.booking-time-picker > legend { margin-bottom: 7px; padding: 0; font-size: 12px; font-weight: 600; }
.booking-time-selection { margin: 0 0 13px; color: var(--ink-soft); font-size: 12px; }
.booking-time-selection.is-selected { color: var(--accent-ink); font-weight: 600; }
.booking-time-options { display: grid; grid-template-columns: repeat(auto-fill,minmax(83px,1fr)); gap: 9px; margin: 0; }
.booking-time-button { min-width: 0; min-height: 47px; padding: 11px 8px; border-radius: 8px; font-size: 13px; }
.booking-time-button[aria-pressed="true"] { box-shadow: inset 0 0 0 1px #a1844e; font-weight: 700; }
.booking-time-notice { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 9px; background: #faf8f3; }
.booking-time-notice p { margin: 0; font-size: 12px; }
.booking-time-notice .booking-slot-notice-title { font-weight: 600; color: var(--ink); }
.booking-time-notice .actions { gap: 15px; }
.booking-time-notice .small-button { min-height: 40px; font-size: 12px; }
.booking-time-notice .text-link { font-size: 12px; }
@media (max-width: 620px) {
  .booking-time-options { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .booking-time-button { min-height: 46px; font-size: 12px; }
}

/* Contact cards: phone and email links are clear, comfortable tap targets. */
.contact-lines p a[href^="tel:"], .contact-lines p a[href^="mailto:"] { display: inline-block; padding: 8px 0; color: var(--ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.contact-lines p:has(a[href^="tel:"]) { margin-bottom: 0; }
.contact-lines .helper { margin: 0 0 10px; }

/* Gift cards */
/* The amount fieldset keeps its <fieldset>/<legend> semantics with the site's card styling. */
.gift-card-amount-step { display: grid; gap: 14px; min-width: 0; margin: 0; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: #fcfbf8; }
.gift-card-amount-step > legend { float: left; width: 100%; margin: 0; padding: 0; font-family: var(--font-display); font-size: 22px; line-height: 1.2; letter-spacing: -.025em; color: var(--ink); }
.gift-card-amounts { grid-template-columns: repeat(auto-fit, minmax(88px, 1fr)); }
.gift-card-amounts > label { align-items: center; justify-content: center; text-align: center; background: var(--surface); }
.gift-card-amounts > label strong { font-size: 16px; white-space: nowrap; }
/* "Other amount" has its own full-width row, with its input revealed inline beside it. */
.gift-card-other { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; padding: 10px 14px; border: 1px solid #d8d8cd; border-radius: 9px; background: var(--surface); }
.gift-card-other:has(input[value="custom"]:checked) { border-color: #9d8755; background: #faf5e7; }
.gift-card-other-choice { display: flex; align-items: center; gap: 10px; min-height: 44px; flex: 1 1 auto; cursor: pointer; }
.gift-card-other-choice input { margin: 0; }
.gift-card-other-choice strong { display: block; font-size: 15px; white-space: nowrap; }
.gift-card-other-choice small { display: block; font-size: 11px; color: var(--ink-soft); }
.gift-card-custom-field { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; flex: 1 1 160px; max-width: 220px; }
.gift-card-currency { font-weight: 600; color: var(--ink-soft); }
.gift-card-custom-field input { flex: 1 1 0; min-width: 0; height: 44px; }
.gift-card-custom-field .field-issue { flex-basis: 100%; margin: 0; }
/* A preview of the emailed gift card: amount, code format and a QR placeholder. */
.gift-card-preview { display: grid; gap: 10px; }
.gift-card-preview > .card-label, .gift-card-preview > .helper { margin: 0; }
.gift-card-preview-card { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; border-radius: 14px; background: var(--charcoal); color: #fbf7ed; box-shadow: inset 0 0 0 1px #ffffff14; }
.gift-card-preview-copy { display: grid; gap: 4px; min-width: 0; }
/* Scoped under the card (0,2,0) so the general `.card p` rule (0,1,1) cannot grey out or shrink this text. */
.gift-card-preview-copy p { margin: 0; color: inherit; }
.gift-card-preview-card .gift-card-preview-brand { color: var(--accent); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.gift-card-preview-card .gift-card-preview-amount { font-family: var(--font-display); font-size: 38px; line-height: 1.1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.gift-card-preview-card.is-incomplete .gift-card-preview-amount { color: #bcb4a7; font-size: 24px; }
.gift-card-preview-card .gift-card-preview-code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; letter-spacing: .1em; color: #d2cec6; }
.gift-card-preview-qr { flex: 0 0 auto; width: 74px; height: 74px; padding: 6px; border-radius: 8px; background: #fff; fill: #2a2722; opacity: .9; }
.gift-card-notes ul { margin: 0; padding-left: 20px; display: grid; gap: 8px; }
.gift-card-code-value { margin: 0; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: clamp(24px, 6vw, 34px); letter-spacing: .08em; overflow-wrap: anywhere; }
.gift-card-qr { display: block; width: min(240px, 100%); height: auto; image-rendering: pixelated; background: #fff; border-radius: 8px; }
@media (max-width: 520px) {
  .gift-card-amount-step { padding: 16px; }
  .gift-card-custom-field { max-width: none; }
  .gift-card-preview-card { padding: 18px; }
  .gift-card-preview-card .gift-card-preview-amount { font-size: 32px; }
  .gift-card-preview-qr { width: 60px; height: 60px; }
}

/* Live order tracker on /status/ (customer-status.js). Mobile first: a vertical stepper, horizontal from tablet width. */
.order-tracker { gap: 14px; border-top: 3px solid var(--accent); }
.order-tracker h2 { font-size: 27px; }
.order-tracker .tracker-time { margin: 0; font-family: var(--font-display); font-size: 25px; line-height: 1.2; letter-spacing: -.02em; color: var(--charcoal); font-variant-numeric: tabular-nums; }
.order-tracker .status-copy { margin: 0; color: var(--ink-soft); }
.order-tracker .tracker-reason { margin: 0; padding: 12px 14px; background: var(--accent-soft); border-radius: 10px; font-size: 14px; }
.tracker-steps { list-style: none; margin: 6px 0 4px; padding: 0; display: grid; gap: 0; }
.tracker-step { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 14px; min-height: 44px; color: var(--ink-soft); font-size: 14px; }
.tracker-step::before { content: ""; position: absolute; left: 10px; top: -11px; height: 22px; width: 2px; background: var(--line); }
.tracker-step:first-child::before { display: none; }
.tracker-step.is-done::before, .tracker-step.is-current::before { background: var(--accent-ink); }
.tracker-dot { position: relative; z-index: 1; width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--line); background: var(--surface); }
.tracker-step.is-done .tracker-dot { border-color: var(--accent-ink); background: var(--accent-ink); }
.tracker-step.is-done .tracker-dot::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.tracker-step.is-done { color: var(--ink); }
.tracker-step.is-current { color: var(--charcoal); font-weight: 600; }
.tracker-step.is-current .tracker-dot { border-color: var(--accent-ink); background: var(--accent); animation: tracker-pulse 2.4s ease-in-out infinite; }
.order-tracker .tracker-updated { margin: 0; font-size: 12px; color: var(--ink-soft); }
.order-tracker.is-complete { border-top-color: var(--success); }
.order-tracker.is-closed { border-top-color: var(--error); }
.order-tracker.is-closed h2 { color: var(--error); }
@keyframes tracker-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(123, 96, 46, .35); }
  50% { box-shadow: 0 0 0 7px rgba(123, 96, 46, 0); }
}
@media (min-width: 720px) {
  .order-tracker h2 { font-size: 31px; }
  .order-tracker .tracker-time { font-size: 32px; }
  .tracker-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 10px 0 6px; }
  .tracker-step { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 8px; min-height: 0; font-size: 13px; }
  .tracker-step::before { left: calc(-50% + 11px); right: calc(50% + 11px); top: 10px; width: auto; height: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  .tracker-step.is-current .tracker-dot { animation: none; box-shadow: 0 0 0 4px var(--accent-soft); }
}

/* Before-5pm welcome screen: Millers Café or Millers Restaurant (js-on.js decides, entry-choice.js draws it), in
   Millers Café's look (millers.cafe): a light, airy page, navy and teal, glassy white cards, Urbanist and Manrope.
   data-entry="choose" covers the page from the first paint so it never flashes up behind the choice.
   Fonts: Urbanist (Copyright 2021 The Urbanist Project Authors) and Manrope (Copyright 2019 The Manrope Project
   Authors), SIL Open Font License 1.1 (https://openfontlicense.org), cut down to Latin characters. They're only
   downloaded when the welcome screen is shown. */
@font-face { font-family: "Millers Cafe Display"; src: url("/assets/fonts/urbanist-latin.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Millers Cafe Text"; src: url("/assets/fonts/manrope-latin.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; }
html[data-entry="choose"] body { overflow: hidden; }
html[data-entry="choose"] body::after { content: ""; position: fixed; inset: 0; z-index: 290; background: #f6f8fb; }
.entry-choice {
  --cafe-ink: #0f172a; --cafe-muted: #536175; --cafe-teal: #0f766e; --cafe-teal-bright: #0d9488;
  position: fixed; inset: 0; z-index: 300; display: grid; overflow-y: auto; overscroll-behavior: contain;
  padding: max(24px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));
  background:
    radial-gradient(48% 42% at 10% 8%, rgba(79, 145, 181, .16), transparent 70%),
    radial-gradient(44% 40% at 90% 6%, rgba(46, 169, 150, .16), transparent 72%),
    radial-gradient(60% 46% at 50% 108%, rgba(255, 210, 118, .16), transparent 70%),
    #f6f8fb;
  color: var(--cafe-ink);
  font-family: "Millers Cafe Text", "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}
.entry-choice-inner { width: min(940px, 100%); margin: auto; display: grid; gap: 18px; }
.entry-choice-head { max-width: 820px; margin: 0 auto; text-align: center; }
.entry-choice .eyebrow { margin-bottom: 12px; color: var(--cafe-teal); font-size: 12px; font-weight: 800; letter-spacing: .16em; }
.entry-choice h2 { margin: 0 0 12px; color: var(--cafe-ink); font-family: "Millers Cafe Display", "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif; font-size: clamp(34px, 9.6vw, 70px); font-weight: 800; letter-spacing: -.055em; line-height: .95; }
.entry-choice h2 em { display: block; color: var(--cafe-teal); font-style: normal; }
.entry-choice h2:focus { outline: none; }
.entry-choice-head p:last-child { max-width: 540px; margin: 0 auto; color: var(--cafe-muted); font-size: 14.5px; line-height: 1.55; }
.entry-choice-options { display: grid; gap: 12px; }
.entry-option { position: relative; display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 0 14px; padding: 14px; border: 1px solid rgba(255, 255, 255, .9); border-radius: 24px; background: rgba(255, 255, 255, .8); box-shadow: 0 10px 28px rgba(2, 6, 23, .08), inset 0 1px 0 rgba(255, 255, 255, .9); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.entry-option:hover, .entry-option:focus-within { border-color: rgba(15, 118, 110, .28); box-shadow: 0 16px 36px rgba(2, 6, 23, .11), inset 0 1px 0 rgba(255, 255, 255, .9); }
.entry-option-logo { width: 64px; height: 58px; object-fit: contain; }
.entry-option-copy h3 { margin: 0 0 5px; color: var(--cafe-ink); font-family: "Millers Cafe Display", "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif; font-size: 21px; font-weight: 800; letter-spacing: -.035em; line-height: 1.1; }
.entry-option-copy .entry-option-hours { display: inline-flex; margin: 0 0 6px; padding: 3px 9px; border: 1px solid rgba(15, 118, 110, .14); border-radius: 999px; background: rgba(15, 118, 110, .07); color: var(--cafe-teal); font-size: 11.5px; font-weight: 750; line-height: 1.4; }
.entry-option-copy p:last-child { margin: 0; color: var(--cafe-muted); font-size: 13.5px; line-height: 1.5; }
.entry-choice .entry-option-action { grid-column: 1 / -1; width: 100%; min-height: 48px; margin-top: 12px; border-radius: 16px; font-size: 15px; font-weight: 800; transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease; }
/* The whole card is the target, not just its button. */
.entry-option-action::after { content: ""; position: absolute; inset: 0; border-radius: 24px; }
.entry-choice .entry-option--cafe .entry-option-action { border: 0; background: linear-gradient(135deg, var(--cafe-teal) 0%, var(--cafe-teal-bright) 100%); color: #ffffff; box-shadow: 0 14px 26px rgba(15, 118, 110, .24); }
.entry-choice .entry-option--cafe:hover .entry-option-action { box-shadow: 0 18px 32px rgba(15, 118, 110, .3); }
.entry-choice .entry-option--restaurant .entry-option-action { border: 1px solid rgba(15, 118, 110, .2); background: rgba(255, 255, 255, .85); color: var(--cafe-teal); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .92); }
.entry-choice .entry-option--restaurant:hover .entry-option-action { background: #ffffff; border-color: rgba(15, 118, 110, .4); }
.entry-choice .entry-option-action:focus-visible { outline: 3px solid var(--cafe-teal); outline-offset: 3px; }
@media (min-width: 720px) {
  .entry-choice { padding: 40px 32px; }
  .entry-choice-inner { gap: 34px; }
  .entry-choice h2 em { display: inline; }
  .entry-choice-head p:last-child { font-size: 17px; }
  .entry-choice-options { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .entry-option { grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; justify-items: center; align-items: start; padding: 30px 28px 28px; text-align: center; border-radius: 28px; }
  .entry-option-action::after { border-radius: 28px; }
  .entry-option-logo { width: auto; max-width: 210px; height: 128px; margin-bottom: 18px; }
  .entry-option-copy h3 { font-size: 32px; margin-bottom: 10px; }
  .entry-option-copy .entry-option-hours { margin-bottom: 12px; padding: 4px 10px; font-size: 12px; }
  .entry-option-copy p:last-child { font-size: 15px; line-height: 1.55; max-width: 320px; margin: 0 auto; }
  .entry-choice .entry-option-action { width: auto; min-width: 250px; min-height: 52px; margin-top: 24px; }
  .entry-option:hover { transform: translateY(-2px); }
}
@media (max-height: 640px) and (max-width: 719px) {
  .entry-choice h2 { font-size: 30px; margin-bottom: 8px; }
  .entry-choice-inner { gap: 14px; }
  .entry-option { padding: 12px; }
  .entry-choice .entry-option-action { margin-top: 10px; min-height: 44px; }
}
@media (prefers-reduced-motion: no-preference) {
  .entry-choice-head { animation: entry-choice-rise .5s cubic-bezier(.22, .68, 0, 1) both; }
  .entry-option { animation: entry-choice-rise .55s cubic-bezier(.22, .68, 0, 1) both; }
  .entry-option--cafe { animation-delay: .06s; }
  .entry-option--restaurant { animation-delay: .12s; }
  .entry-choice.is-leaving { animation: entry-choice-leave .22s ease forwards; pointer-events: none; }
}
@media (prefers-reduced-motion: reduce) {
  .entry-option:hover { transform: none; }
}
@keyframes entry-choice-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes entry-choice-leave { to { opacity: 0; } }
