/* ============================================================
   SAFFRON TABLE SYDNEY — AU storefront theme (AU-DESIGN-BRIEF.md)
   Light, airy, editorial, photography-led. Loaded ONLY when the
   region profile names the `au` theme (layouts/app), after
   store.css and every page's own <style>. It re-points the shared
   store.css tokens and styles the AU partials (resources/views/au).
   Depth: subtle layered shadows on light surfaces, nothing else.
   ============================================================ */
:root{
  /* --- colour primitives (every pair checked WCAG AA) --- */
  --au-canvas:#FAF7F2;          /* warm off-white page */
  --au-surface:#FFFFFF;         /* cards, sheets */
  --au-sunk:#F3EEE6;            /* inset wells, hovered rows */
  --au-ink:#1F2A24;             /* 13.9:1 on canvas */
  --au-ink-2:#4B5A52;           /* secondary text, 6.8:1 */
  --au-muted:#626E67;           /* meta text, 4.98:1 canvas / 5.3:1 white */
  --au-line:rgba(31,42,36,.12);
  --au-line-strong:rgba(31,42,36,.22);
  --au-accent:#B04E16;          /* saffron-terracotta: 4.98:1 as text, 5.32:1 white-on */
  --au-accent-hover:#963F10;    /* 6.96:1 white-on */
  --au-accent-press:#7E340C;
  --au-accent-soft:#F7EDE8;     /* accent-hover text on it: 6.05:1 */
  --au-on-accent:#FFFFFF;
  --au-success:#2F7D4F; --au-success-strong:#256640; --au-success-soft:#EAF2ED;
  --au-warning:#946112; --au-warning-strong:#7A500F; --au-warning-soft:#F4EFE7;
  --au-danger:#B42318;  --au-danger-soft:#F8E9E8;
  --au-scrim:rgba(31,42,36,.42);
  --au-photo-edge:rgba(31,42,36,.10);
  --au-glass:rgba(250,247,242,.94);       /* sticky header / chip bar over content */
  --au-on-ink-line:rgba(250,247,242,.4);  /* link underline on the ink info bar */

  /* --- type: Fraunces display, DM Sans UI; 1.25 scale from 16px --- */
  --au-display:"Fraunces",Georgia,"Times New Roman",serif;
  --au-sans:"DM Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --au-fs-13:.8125rem; --au-fs-16:1rem; --au-fs-20:1.25rem; --au-fs-25:1.5625rem;
  --au-fs-31:1.9375rem; --au-fs-39:2.4375rem; --au-fs-49:3.0625rem;

  /* --- radius: inputs/buttons · cards · sheets --- */
  --au-r-sm:6px; --au-r-md:10px; --au-r-lg:16px; --au-r-pill:999px;

  /* --- spacing, 4px base --- */
  --au-1:4px; --au-2:8px; --au-3:12px; --au-4:16px; --au-5:20px; --au-6:24px;
  --au-8:32px; --au-10:40px; --au-12:48px; --au-16:64px; --au-20:80px;

  /* --- shadow levels (light surfaces only) --- */
  --au-shadow-1:0 0 0 1px rgba(31,42,36,.06),0 1px 2px rgba(31,42,36,.06);
  --au-shadow-2:0 0 0 1px rgba(31,42,36,.05),0 2px 4px rgba(31,42,36,.05),0 10px 24px -10px rgba(31,42,36,.16);
  --au-shadow-3:0 0 0 1px rgba(31,42,36,.05),0 24px 64px -16px rgba(31,42,36,.30);

  /* --- controls --- */
  --au-control-h:44px;
  --au-control-bg:#FFFFFF;
  --au-control-border:#868E89;  /* 3.36:1 on white — a findable edge */
  --au-focus:2px solid var(--au-accent);
  --au-ease:cubic-bezier(.23,1,.32,1);
  --au-fast:160ms;

  --au-header-h:68px;
  --au-gutter:16px;

  /* --- the shared store.css tokens, re-pointed so every shared rule
         (dock, drawer, checkout, track, reservation, account) goes light --- */
  --bg:var(--au-canvas); --bg-deep:var(--au-canvas);
  --surface:var(--au-surface); --surface-2:var(--au-surface); --surface-3:var(--au-sunk);
  --line:var(--au-line); --line-strong:var(--au-line-strong);
  --text:var(--au-ink); --muted:var(--au-ink-2); --faint:var(--au-muted);
  --ember:var(--au-accent); --ember-hot:var(--au-accent-hover); --ember-deep:var(--au-accent-press);
  --flame:var(--au-accent);
  --gold:var(--au-accent); --gold-bright:var(--au-ink);
  --green:var(--au-success-strong); --chili:var(--au-danger); --ink-on-ember:var(--au-on-accent);
  --r:var(--au-r-md); --r-lg:var(--au-r-lg); --r-sm:var(--au-r-sm);
  --shadow-card:var(--au-shadow-2); --shadow-float:var(--au-shadow-3);
  --glow:none; --glow-lg:none;
  --display:var(--au-display); --sans:var(--au-sans);
  --topbar-h:var(--au-header-h);
  --ink:var(--au-ink); --line-2:var(--au-line-strong); --surface-hi:var(--au-sunk);
  --primary:var(--au-accent); --primary-dark:var(--au-accent-hover); --primary-soft:var(--au-accent-soft);
  --green-soft:var(--au-success-soft);
  --shadow:var(--au-shadow-2); --shadow-lg:var(--au-shadow-3);
  color-scheme:light;
  accent-color:var(--au-accent);
}

/* ---------- base ---------- */
body{background:var(--au-canvas);color:var(--au-ink);font-family:var(--au-sans);font-size:var(--au-fs-16);line-height:1.55;padding-bottom:0}
::selection{background:var(--au-accent-soft);color:var(--au-ink)}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
.au-container,.container{max-width:1200px;margin:0 auto;padding:0 var(--au-gutter)}
@media (min-width:720px){:root{--au-gutter:24px}}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--au-focus);outline-offset:2px}
.au-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.au-link{color:var(--au-accent);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.au-link:hover{color:var(--au-accent-hover);text-decoration-thickness:2px}
svg{flex:none}
.au-infobar svg,.au-iconbtn svg,.au-add svg,.au-qty svg,.au-tag svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- buttons ---------- */
.au-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--au-2);min-height:var(--au-control-h);padding:0 var(--au-5);
  border-radius:var(--au-r-sm);font-family:var(--au-sans);font-weight:600;font-size:var(--au-fs-16);line-height:1;white-space:nowrap;
  border:1px solid transparent;cursor:pointer;transition:background-color var(--au-fast) var(--au-ease),border-color var(--au-fast) var(--au-ease),color var(--au-fast) var(--au-ease),transform var(--au-fast) var(--au-ease)}
.au-btn:active{transform:translateY(1px)}
.au-btn-primary{background:var(--au-accent);color:var(--au-on-accent)}
.au-btn-primary:hover{background:var(--au-accent-hover)}
.au-btn-primary:active{background:var(--au-accent-press)}
.au-btn-secondary{background:var(--au-surface);color:var(--au-ink);border-color:var(--au-control-border)}
.au-btn-secondary:hover{border-color:var(--au-ink);background:var(--au-surface)}
.au-btn-secondary:active{background:var(--au-sunk)}
.au-btn[disabled],.au-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}
.au-btn-lg{min-height:52px;padding:0 var(--au-6)}

/* ---------- info bar ---------- */
.au-infobar{background:var(--au-ink);color:var(--au-canvas);font-size:var(--au-fs-13)}
.au-infobar-in{display:flex;align-items:center;justify-content:center;gap:var(--au-2) var(--au-6);flex-wrap:wrap;min-height:36px;padding-top:var(--au-1);padding-bottom:var(--au-1)}
.au-info-item{display:inline-flex;align-items:center;gap:var(--au-2);white-space:nowrap}
.au-info-item svg{width:14px;height:14px;opacity:.8}
.au-infobar a{color:inherit;text-decoration:underline;text-decoration-color:var(--au-on-ink-line);text-underline-offset:3px}
.au-infobar a:hover{text-decoration-color:currentColor}
.au-infobar a:focus-visible{outline-color:var(--au-canvas)}
@media (min-width:900px){.au-infobar-in{justify-content:flex-end}.au-info-address{margin-right:auto}}
@media (max-width:719px){.au-info-address{display:none}.au-infobar-in{gap:var(--au-1) var(--au-4)}}

/* ---------- header ---------- */
.au-header{position:sticky;top:0;z-index:60;height:var(--au-header-h);background:var(--au-glass);
  -webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--au-line)}
.au-header-in{height:100%;display:flex;align-items:center;gap:var(--au-6)}
.au-brand{display:inline-flex;align-items:center;min-height:44px;color:var(--au-ink);margin-right:auto;border-radius:var(--au-r-sm)}
.au-brand .rl-wm-name{font-size:24px!important}
.au-nav{display:none;align-items:center;gap:var(--au-1)}
.au-nav a{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--au-3);border-radius:var(--au-r-sm);font-weight:500;color:var(--au-ink-2);transition:color var(--au-fast) var(--au-ease),background-color var(--au-fast) var(--au-ease)}
.au-nav a:hover{color:var(--au-ink);background:var(--au-sunk)}
.au-header-actions{display:flex;align-items:center;gap:var(--au-2)}
.au-iconbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--au-2);min-width:44px;min-height:44px;padding:0 var(--au-3);
  border-radius:var(--au-r-sm);font-weight:500;font-size:var(--au-fs-16);color:var(--au-ink);background:transparent;border:1px solid transparent;
  transition:background-color var(--au-fast) var(--au-ease),border-color var(--au-fast) var(--au-ease)}
.au-iconbtn:hover{background:var(--au-sunk)}
.au-iconbtn:active{background:var(--au-line)}
.au-iconbtn svg{width:20px;height:20px}
.au-cartbtn{border-color:var(--au-line-strong);background:var(--au-surface)}
.au-cartbtn:hover{border-color:var(--au-ink);background:var(--au-surface)}
.au-cartcount{min-width:22px;height:22px;padding:0 6px;border-radius:var(--au-r-pill);background:var(--au-accent);color:var(--au-on-accent);
  font-size:12px;font-weight:600;display:inline-grid;place-items:center;font-variant-numeric:tabular-nums;line-height:1}
.au-header-order{display:none}
@media (max-width:559px){
  .au-iconbtn-txt{display:none}
  .au-iconbtn{padding:0 var(--au-2)}
  .au-cartcount{position:absolute;top:2px;right:0}
  .au-brand .rl-wm-name{font-size:21px!important}
}
@media (min-width:720px){.au-nav{display:flex}}
@media (min-width:1000px){.au-header-order{display:inline-flex}}

/* ---------- hero ---------- */
.au-hero{padding:var(--au-6) 0 var(--au-8)}
.au-hero-grid{display:grid;gap:var(--au-6);align-items:center}
.au-hero-media{order:-1;position:relative;margin:0}
.au-hero-photo{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--au-r-lg);box-shadow:var(--au-shadow-2);background:var(--au-sunk)}
.au-hero-chip{position:absolute;left:var(--au-3);bottom:var(--au-3);display:flex;flex-direction:column;gap:2px;padding:var(--au-2) var(--au-3);
  background:var(--au-surface);border-radius:var(--au-r-md);box-shadow:var(--au-shadow-2);max-width:calc(100% - 24px)}
.au-hero-chip .n{font-family:var(--au-display);font-weight:600;font-size:var(--au-fs-16);color:var(--au-ink);line-height:1.2}
.au-hero-chip .p{font-size:var(--au-fs-13);color:var(--au-ink-2);font-variant-numeric:tabular-nums}
.au-hero-thumbs{display:none}
.au-eyebrow{margin:0 0 var(--au-3);font-size:var(--au-fs-13);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--au-accent)}
.au-hero-title{margin:0;font-family:var(--au-display);font-weight:500;font-size:clamp(2.1rem,7vw,var(--au-fs-49));line-height:1.06;letter-spacing:-.02em;color:var(--au-ink);
  font-variation-settings:"opsz" 144}
.au-hero-title em{font-style:italic;font-weight:500;color:var(--au-accent)}
.au-hero-lede{margin:var(--au-4) 0 0;max-width:46ch;font-size:var(--au-fs-16);line-height:1.6;color:var(--au-ink-2)}
.au-hero-ctas{display:flex;flex-wrap:wrap;gap:var(--au-3);margin-top:var(--au-6)}
.au-hero-ctas .au-btn{flex:1 1 220px}
.au-hero-facts{list-style:none;margin:var(--au-6) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--au-2) var(--au-5);font-size:var(--au-fs-13);color:var(--au-ink-2)}
.au-hero-facts li{display:inline-flex;align-items:center;gap:var(--au-1)}
.au-hero-facts li+li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--au-line-strong);margin-right:var(--au-4)}
.au-hero-facts b{color:var(--au-ink);font-weight:600;font-variant-numeric:tabular-nums}
.au-dot{width:8px;height:8px;border-radius:50%;background:var(--au-muted);margin-right:var(--au-1)}
.au-dot.is-open{background:var(--au-success)}
@media (min-width:720px){
  .au-hero{padding:var(--au-10) 0 var(--au-12)}
  .au-hero-ctas .au-btn{flex:0 0 auto}
}
@media (min-width:1000px){
  .au-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:var(--au-12)}
  .au-hero-media{order:0}
  .au-hero-photo{aspect-ratio:5/4}
  .au-hero-chip{left:var(--au-5);bottom:var(--au-5);padding:var(--au-3) var(--au-4)}
  .au-hero-thumbs{display:flex;gap:var(--au-3);position:absolute;right:var(--au-5);bottom:var(--au-5)}
  .au-hero-thumbs img{width:88px;height:88px;object-fit:cover;border-radius:var(--au-r-md);border:3px solid var(--au-surface);box-shadow:var(--au-shadow-2)}
}

/* ---------- order dock (shared markup) ---------- */
.dock{margin-top:0;scroll-margin-top:calc(var(--au-header-h) + var(--au-4))}
.dock-card{background:var(--au-surface);border:0;border-radius:var(--au-r-lg);padding:var(--au-3);box-shadow:var(--au-shadow-2);gap:var(--au-3)}
.fulfil{background:var(--au-sunk);border:0;border-radius:var(--au-r-md);padding:var(--au-1);gap:var(--au-1)}
.fulfil button{min-height:var(--au-control-h);border-radius:var(--au-r-sm);color:var(--au-ink-2);font-weight:500;font-size:var(--au-fs-16);
  transition:background-color var(--au-fast) var(--au-ease),color var(--au-fast) var(--au-ease)}
.fulfil button:hover{color:var(--au-ink)}
.fulfil button.on{background:var(--au-surface);color:var(--au-ink);font-weight:600;box-shadow:var(--au-shadow-1)}
.fulfil button.on svg{color:var(--au-accent)}
.field-dock{background:var(--au-control-bg);border:1px solid var(--au-control-border);border-radius:var(--au-r-sm);height:var(--au-control-h);padding:0 var(--au-3)}
.field-dock:hover{border-color:var(--au-ink-2)}
.field-dock:focus-within{border-color:var(--au-accent);box-shadow:0 0 0 1px var(--au-accent)}
.field-dock svg{color:var(--au-muted)}
.field-dock input,.field-dock select{font-size:var(--au-fs-16);color:var(--au-ink)}
.field-dock input:focus-visible,.field-dock select:focus-visible{outline:none}
.field-dock select option{background:var(--au-surface);color:var(--au-ink)}
.field-dock input::placeholder{color:var(--au-muted)}
.dock-closed{background:var(--au-warning-soft)!important;border-color:transparent!important;color:var(--au-ink)!important;border-radius:var(--au-r-md)!important}

/* ---------- promotions ---------- */
.promos{max-width:1200px;margin-top:var(--au-6);padding:0 var(--au-gutter)}
.promo{border:0;border-radius:var(--au-r-lg);box-shadow:var(--au-shadow-1);min-height:104px;transition:transform var(--au-fast) var(--au-ease),box-shadow var(--au-fast) var(--au-ease)}
.promo:not(.has-img){background:var(--au-accent-soft)}
.promo:hover{transform:translateY(-2px);box-shadow:var(--au-shadow-2)}
.promo-badge{background:var(--au-surface);color:var(--au-accent-hover);font-weight:600;letter-spacing:.12em;border-radius:var(--au-r-pill)}
.promo-title{font-family:var(--au-display);font-weight:500;font-size:var(--au-fs-25);color:var(--au-ink)}
.promo-sub{color:var(--au-ink-2);font-size:var(--au-fs-16)}
.promo.has-img .promo-title{color:var(--au-surface)}
.promo.has-img .promo-sub{color:var(--au-canvas)}

/* ---------- favourites ---------- */
.favs{margin:var(--au-8) 0 var(--au-4)}
.fav-card{background:var(--au-surface);border:0;border-radius:var(--au-r-md);box-shadow:var(--au-shadow-1);flex-basis:168px;
  transition:transform var(--au-fast) var(--au-ease),box-shadow var(--au-fast) var(--au-ease)}
.fav-card:hover{transform:translateY(-2px);border-color:transparent;box-shadow:var(--au-shadow-2)}
.fav-thumb{background:var(--au-sunk)}
.fav-badge{background:var(--au-surface);color:var(--au-ink);font-weight:600;letter-spacing:.02em;font-size:11px;padding:3px 8px;box-shadow:var(--au-shadow-1);backdrop-filter:none}
.fav-name{font-family:var(--au-display);font-weight:500;font-size:var(--au-fs-16);color:var(--au-ink);padding:var(--au-2) var(--au-3) 0}
.fav-price{color:var(--au-ink-2);font-weight:500;font-size:var(--au-fs-13);padding:2px var(--au-3) var(--au-3)}

/* ---------- category chips: stick under the header ---------- */
.catnav{background:var(--au-glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--au-line);margin-top:var(--au-8);top:var(--au-header-h)}
.catnav-scroll{max-width:1200px;padding:var(--au-2) var(--au-gutter);gap:var(--au-2)}
.chip{min-height:40px;padding:0 var(--au-4);border:1px solid var(--au-line-strong);background:var(--au-surface);color:var(--au-ink-2);font-weight:500;font-size:var(--au-fs-16);letter-spacing:0;
  border-radius:var(--au-r-pill);transition:background-color var(--au-fast) var(--au-ease),color var(--au-fast) var(--au-ease),border-color var(--au-fast) var(--au-ease)}
.chip:hover{color:var(--au-ink);border-color:var(--au-ink-2)}
.chip.on{background:var(--au-ink);color:var(--au-canvas);border-color:var(--au-ink);box-shadow:none}
@media (pointer:coarse){.chip{min-height:44px}}
.catnav-btn{width:44px;height:44px;border:1px solid var(--au-line-strong);background:var(--au-surface);color:var(--au-ink);box-shadow:var(--au-shadow-2)}
.catnav-btn:hover{border-color:var(--au-ink);color:var(--au-ink);background:var(--au-surface)}

/* ---------- menu sections ---------- */
#menu{scroll-margin-top:calc(var(--au-header-h) + 64px)}
.section-title{font-family:var(--au-display);font-weight:500;font-size:var(--au-fs-25);letter-spacing:-.015em;color:var(--au-ink);margin:var(--au-10) 0 var(--au-4);gap:var(--au-3);align-items:baseline}
.section-title .tick{display:none}
.section-title .rule{background:var(--au-line);height:1px}
.section-title .count{font-family:var(--au-sans);font-size:var(--au-fs-13);font-weight:500;letter-spacing:0;text-transform:none;color:var(--au-muted);font-variant-numeric:tabular-nums}
@media (min-width:720px){.section-title{font-size:var(--au-fs-31);margin-top:var(--au-12)}}
.grid{gap:var(--au-3)}
@media (min-width:720px){.grid{gap:var(--au-5)}}

/* ---------- AU menu card ---------- */
.item.au-card{display:grid;grid-template-columns:minmax(0,1fr) 112px;grid-template-areas:"body media";gap:var(--au-3);align-items:start;
  padding:var(--au-3);background:var(--au-surface);border:0;border-radius:var(--au-r-md);box-shadow:var(--au-shadow-1);overflow:visible;
  transition:box-shadow var(--au-fast) var(--au-ease),transform var(--au-fast) var(--au-ease)}
.au-card-media{grid-area:media;position:relative;aspect-ratio:4/3;border-radius:var(--au-r-sm);overflow:hidden;background:var(--au-sunk)}
.au-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 200ms var(--au-ease)}
.au-card-media::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--au-photo-edge);pointer-events:none}
.au-card-mono{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--au-display);font-style:italic;font-size:var(--au-fs-31);color:var(--au-muted)}
.au-card-flag{position:absolute;left:var(--au-1);top:var(--au-1);z-index:1;padding:2px 6px;border-radius:var(--au-r-sm);background:var(--au-surface);color:var(--au-ink);
  font-size:11px;font-weight:600;letter-spacing:.02em;box-shadow:var(--au-shadow-1)}
.au-card-body{grid-area:body;display:flex;flex-direction:column;min-width:0;min-height:100%}
.au-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--au-3)}
.au-card-name{margin:0;font-family:var(--au-display);font-weight:500;font-size:var(--au-fs-16);line-height:1.25;color:var(--au-ink);letter-spacing:-.005em}
.au-card-price{margin:0;flex:none;text-align:right;font-weight:600;font-size:var(--au-fs-16);color:var(--au-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.au-from{font-size:var(--au-fs-13);font-weight:500;color:var(--au-muted);margin-right:2px}
.au-was{display:block;font-size:var(--au-fs-13);font-weight:400;color:var(--au-muted)}
.au-card-desc{margin:var(--au-1) 0 0;font-size:var(--au-fs-13);line-height:1.5;color:var(--au-ink-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.au-card-foot{margin-top:auto;padding-top:var(--au-3);display:flex;align-items:center;justify-content:space-between;gap:var(--au-2);min-height:44px}
.au-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--au-1);min-width:0}
.au-tag{display:inline-flex;align-items:center;gap:3px;height:22px;padding:0 6px;border:1px solid var(--au-control-border);border-radius:4px;
  font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--au-ink-2);line-height:1;background:transparent;font-variant-numeric:tabular-nums}
.au-tag-spicy{border-color:var(--au-danger);color:var(--au-danger);letter-spacing:.02em}
.au-tag-spicy svg{width:12px;height:12px}
.au-add{position:relative;flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 var(--au-3) 0 10px;margin-left:auto;
  border:1px solid var(--au-control-border);border-radius:var(--au-r-pill);background:var(--au-surface);color:var(--au-ink);font-weight:600;font-size:var(--au-fs-13);
  transition:border-color var(--au-fast) var(--au-ease),background-color var(--au-fast) var(--au-ease),color var(--au-fast) var(--au-ease)}
.au-add svg{width:16px;height:16px;stroke-width:2.2}
.au-add:hover{border-color:var(--au-accent);color:var(--au-accent-hover);background:var(--au-accent-soft)}
.au-add:active{background:var(--au-accent);color:var(--au-on-accent);border-color:var(--au-accent)}
.au-add-count{min-width:20px;height:20px;padding:0 5px;border-radius:var(--au-r-pill);background:var(--au-accent);color:var(--au-on-accent);display:inline-grid;place-items:center;font-size:11px;font-variant-numeric:tabular-nums}
.au-qty{flex:none;margin-left:auto;display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:var(--au-r-pill);background:var(--au-accent);color:var(--au-on-accent)}
.au-qty button{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:inherit;transition:background-color var(--au-fast) var(--au-ease)}
.au-qty button svg{width:16px;height:16px;stroke-width:2.2}
.au-qty button:hover{background:var(--au-accent-hover)}
.au-qty button:active{background:var(--au-accent-press)}
.au-qty button:focus-visible{outline-color:var(--au-on-accent);outline-offset:-3px}
.au-qty span{min-width:20px;text-align:center;font-weight:600;font-size:var(--au-fs-16);font-variant-numeric:tabular-nums}
.item.au-card.is-in-cart{box-shadow:0 0 0 1.5px var(--au-accent),var(--au-shadow-1)}
@media (pointer:coarse){.au-add{min-height:44px}.au-qty button{width:44px;height:44px}}
@media (hover:hover) and (pointer:fine){
  .item.au-card:hover{box-shadow:var(--au-shadow-2);transform:translateY(-2px)}
  .item.au-card.is-in-cart:hover{box-shadow:0 0 0 1.5px var(--au-accent),var(--au-shadow-2)}
  .item.au-card:hover .au-card-media img{transform:scale(1.03)}
}
@media (min-width:480px){.item.au-card{grid-template-columns:minmax(0,1fr) 136px}}
@media (min-width:720px){
  .item.au-card{grid-template-columns:1fr;grid-template-areas:"media" "body";padding:0;gap:0;overflow:hidden;border-radius:var(--au-r-md)}
  .au-card-media{border-radius:0}
  .au-card-media::after{display:none}
  .au-card-flag{left:var(--au-3);top:var(--au-3);padding:3px 8px}
  .au-card-body{padding:var(--au-4) var(--au-4) var(--au-3)}
  .au-card-name{font-size:var(--au-fs-20)}
}

/* ---------- loading ---------- */
.loading{color:var(--au-ink-2)}
.spinner{border-color:var(--au-line);border-top-color:var(--au-accent)}

/* ---------- footer ---------- */
footer.site.au-footer{background:var(--au-surface);border-top:1px solid var(--au-line);margin-top:var(--au-16);padding:var(--au-12) 0 0}
footer.site.au-footer .au-container{display:grid}
.au-foot-grid{grid-template-columns:1fr;gap:var(--au-10);padding-bottom:var(--au-10)}
@media (min-width:720px){.au-foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.au-foot-grid{grid-template-columns:1.2fr 1fr 1fr;gap:var(--au-12)}}
.au-foot-brand{display:inline-flex;color:var(--au-ink);border-radius:var(--au-r-sm)}
.au-foot-tagline{margin:var(--au-4) 0 0;font-family:var(--au-display);font-style:italic;font-size:var(--au-fs-20);color:var(--au-ink-2)}
.au-foot-address{margin:var(--au-5) 0 0;font-style:normal;color:var(--au-ink);display:flex;flex-direction:column;gap:var(--au-1);align-items:flex-start}
.au-foot-contact{margin:var(--au-3) 0 0;display:flex;flex-direction:column;gap:var(--au-1);align-items:flex-start}
.au-foot-address a,.au-foot-contact a,.au-foot-list a{display:inline-flex;align-items:center;min-height:44px}
.au-foot-h{margin:0 0 var(--au-4);font-family:var(--au-display);font-weight:500;font-size:var(--au-fs-20);color:var(--au-ink)}
.au-foot-h-sub{margin-top:var(--au-6);font-size:var(--au-fs-16)}
.au-hours{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.au-hours th,.au-hours td{padding:var(--au-2) 0;border-bottom:1px solid var(--au-line);font-size:var(--au-fs-16);text-align:left;font-weight:400;color:var(--au-ink-2)}
.au-hours td{text-align:right;color:var(--au-ink)}
.au-hours tr.is-today th,.au-hours tr.is-today td{font-weight:600;color:var(--au-ink)}
.au-today{margin-left:var(--au-2);padding:2px 6px;border-radius:4px;background:var(--au-accent-soft);color:var(--au-accent-hover);font-size:11px;font-weight:600;letter-spacing:.04em;vertical-align:2px}
.au-foot-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--au-2);color:var(--au-ink-2)}
.au-key{margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--au-2) var(--au-4)}
.au-key div{display:flex;align-items:center;gap:var(--au-2)}
.au-key dt,.au-key dd{margin:0}
.au-key dd{font-size:var(--au-fs-13);color:var(--au-ink-2)}
.au-foot-base{position:relative;grid-template-columns:1fr;gap:var(--au-3);justify-items:center;text-align:center;padding-top:var(--au-6);
  padding-bottom:calc(var(--au-8) + 76px);font-size:var(--au-fs-13);color:var(--au-muted)}
.au-foot-base::before{content:"";position:absolute;top:0;left:var(--au-gutter);right:var(--au-gutter);border-top:1px solid var(--au-line)}
.au-fineprint{margin:0;color:var(--au-ink-2)}
@media (min-width:1000px){
  .au-foot-base{grid-template-columns:1fr auto auto;justify-items:start;align-items:center;text-align:left;gap:var(--au-6);padding-bottom:var(--au-8)}
}

/* ---------- sticky cart bar (phones) ---------- */
.cartbar .btn{background:var(--au-ink);color:var(--au-canvas);border-radius:var(--au-r-md);box-shadow:var(--au-shadow-3);font-weight:600;font-size:var(--au-fs-16);min-height:52px}
.cartbar .btn:hover{transform:none;background:var(--au-ink)}
.cb-count{background:var(--au-accent);color:var(--au-on-accent);font-variant-numeric:tabular-nums}
.cartbar .btn span:last-child{font-variant-numeric:tabular-nums}
@media (min-width:1000px){.cartbar .btn{border-radius:var(--au-r-pill)}}

/* ---------- cart / checkout drawer ---------- */
.overlay{background:var(--au-scrim);backdrop-filter:none}
.drawer{background:var(--au-surface);border-left:0;box-shadow:var(--au-shadow-3);animation-duration:200ms;animation-timing-function:var(--au-ease)}
.drawer-head{padding:var(--au-4) var(--au-5);border-bottom:1px solid var(--au-line)}
.drawer-head h2{font-family:var(--au-display);font-weight:500;font-size:var(--au-fs-25);letter-spacing:-.01em}
.drawer-head .iconbtn{width:44px;height:44px;background:transparent;border:1px solid transparent;color:var(--au-ink);box-shadow:none}
.drawer-head .iconbtn:hover{background:var(--au-sunk);box-shadow:none;border-color:transparent}
.drawer-body{padding:var(--au-2) var(--au-5) var(--au-4)}
.cart-line{padding:var(--au-4) 0;border-bottom:1px solid var(--au-line)}
.cart-line .cl-name{font-family:var(--au-display);font-weight:500;font-size:var(--au-fs-16);color:var(--au-ink)}
.cart-line .cl-price{color:var(--au-muted);font-size:var(--au-fs-13);font-variant-numeric:tabular-nums}
.cart-line .cl-opts{color:var(--au-ink-2)}
.cl-total{color:var(--au-ink);font-weight:600}
.stepper{background:var(--au-surface);border:1px solid var(--au-control-border);border-radius:var(--au-r-pill);padding:2px}
.stepper button{width:36px;height:36px;background:transparent;color:var(--au-ink);font-weight:500}
.stepper button:hover{background:var(--au-sunk);color:var(--au-ink)}
.stepper span{font-weight:600;font-variant-numeric:tabular-nums}
@media (pointer:coarse){.stepper button{width:44px;height:44px}}
.empty-cart{color:var(--au-ink-2)}
.empty-cart svg{color:var(--au-muted)}
.cart-suggest{border-top:1px solid var(--au-line);padding:var(--au-3) var(--au-5) var(--au-1)}
.cart-suggest .cs-head{font-family:var(--au-display);font-weight:500;color:var(--au-ink);font-size:var(--au-fs-16)}
.cs-card{background:var(--au-surface);border:1px solid var(--au-line);border-radius:var(--au-r-md)}
.cs-card:hover{border-color:var(--au-ink-2)}
.cs-card .cs-name{color:var(--au-ink)}
.cs-card .cs-price{color:var(--au-ink-2)}
.cs-card .cs-add{background:var(--au-accent);color:var(--au-on-accent)}
.drawer-foot{background:var(--au-surface);border-top:1px solid var(--au-line);padding:var(--au-4) var(--au-5) calc(var(--au-4) + env(safe-area-inset-bottom,0px))}
.totrow{color:var(--au-ink-2);font-size:var(--au-fs-16);font-variant-numeric:tabular-nums}
.totrow.grand{color:var(--au-ink);font-weight:600;font-size:var(--au-fs-20);border-top:1px solid var(--au-line-strong);margin:var(--au-3) 0 var(--au-2);padding-top:var(--au-3)}
.totrow.grand span:last-child{color:var(--au-ink)}
.btn{border-radius:var(--au-r-sm);font-weight:600;font-size:var(--au-fs-16);min-height:52px;padding:0 var(--au-5)}
.btn-primary{background:var(--au-accent);color:var(--au-on-accent);box-shadow:none;margin-top:var(--au-3)}
.btn-primary:hover{background:var(--au-accent-hover);transform:none;box-shadow:none}
.btn-primary:active{background:var(--au-accent-press)}
.btn-primary:disabled{opacity:.5}
.btn-ghost{background:var(--au-surface);border:1px solid var(--au-control-border);color:var(--au-ink);min-height:var(--au-control-h)}
.btn-ghost:hover{border-color:var(--au-ink)}
.backlink{color:var(--au-accent);font-weight:500;min-height:44px}
.backlink:hover{color:var(--au-accent-hover)}

/* ---------- checkout fields ---------- */
.field label{font-size:var(--au-fs-13);font-weight:600;color:var(--au-ink);letter-spacing:0}
.field input,.field textarea,.field select{min-height:var(--au-control-h);padding:10px var(--au-3);border:1px solid var(--au-control-border);border-radius:var(--au-r-sm);
  background:var(--au-control-bg);font-size:var(--au-fs-16);color:var(--au-ink)}
.field input:hover,.field textarea:hover,.field select:hover{border-color:var(--au-ink-2)}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--au-accent);box-shadow:0 0 0 1px var(--au-accent)}
.field input::placeholder,.field textarea::placeholder{color:var(--au-muted)}
.field select option{background:var(--au-surface);color:var(--au-ink)}
.field .err{color:var(--au-danger);font-size:var(--au-fs-13)}
.ident-row{background:var(--au-sunk);border:0;border-radius:var(--au-r-sm)}
.ident-out{color:var(--au-accent);font-weight:600;min-height:44px}
.ident-out:hover{color:var(--au-accent-hover)}
.signin-note{color:var(--au-ink-2);font-size:var(--au-fs-13)}
.pay-opt{background:var(--au-surface);border:1px solid var(--au-line-strong);border-radius:var(--au-r-md);padding:var(--au-3) var(--au-4)}
.pay-opt:hover{border-color:var(--au-ink-2)}
.pay-opt.on{border-color:var(--au-accent);background:var(--au-accent-soft);box-shadow:0 0 0 1px var(--au-accent)}
.pay-opt .po-title{font-weight:600;font-size:var(--au-fs-16)}
.pay-opt .po-desc{color:var(--au-ink-2);font-size:var(--au-fs-13)}

/* ---------- options popup ---------- */
.opt-pop{background:var(--au-surface);border:0;border-radius:var(--au-r-lg);box-shadow:var(--au-shadow-3);padding:var(--au-6)}
.opt-name{font-family:var(--au-display);font-weight:500;font-size:var(--au-fs-25)}
.opt-sec{color:var(--au-muted);font-weight:600;letter-spacing:.08em}
.opt-row{min-height:var(--au-control-h);border:1px solid var(--au-line-strong);border-radius:var(--au-r-sm);color:var(--au-ink)}
.opt-row:has(input:checked){border-color:var(--au-accent);background:var(--au-accent-soft)}
.opt-row .opt-price{color:var(--au-ink);font-weight:600}
.opt-note{min-height:var(--au-control-h);border:1px solid var(--au-control-border);border-radius:var(--au-r-sm);background:var(--au-control-bg);color:var(--au-ink)}
.opt-note:focus{border-color:var(--au-accent);box-shadow:0 0 0 1px var(--au-accent)}
.opt-unit{color:var(--au-ink);font-family:var(--au-sans);font-weight:600;font-variant-numeric:tabular-nums}
.opt-pop .iconbtn{width:44px;height:44px;padding:0;justify-content:center;background:transparent;border:0;box-shadow:none}

/* ---------- toast, order bar ---------- */
.toast{background:var(--au-ink);border:0;color:var(--au-canvas);border-radius:var(--au-r-md);font-weight:500;box-shadow:var(--au-shadow-3)}
.orderbar{background:var(--au-accent-soft);border-bottom:1px solid var(--au-line)}
.orderbar-in{color:var(--au-ink);font-weight:500}
.ob-dot{background:var(--au-accent);box-shadow:none}
.ob-label{color:var(--au-ink-2)}
.ob-code{color:var(--au-ink)}
.ob-status{color:var(--au-accent-hover);font-weight:600}
.ob-track{color:var(--au-accent-hover);font-weight:600}

/* ---------- floating quick actions (shared component; its own <style>
   sits in <body>, after this sheet, hence the extra .rl-qa scope) ---------- */
.rl-qa .rl-qa-btn{width:44px;height:44px;box-shadow:var(--au-shadow-2)}
.rl-qa .rl-qa-btn svg{width:20px;height:20px}
.rl-qa .rl-qa-label{height:36px;color:var(--au-ink);background:var(--au-surface);border-color:var(--au-line);box-shadow:var(--au-shadow-2);font-family:var(--au-sans);font-weight:600}
.rl-qa .rl-qa-toggle .rl-qa-btn{background:var(--au-surface);color:var(--au-ink);border:1px solid var(--au-line-strong)}
.rl-qa .rl-qa-order .rl-qa-btn{width:44px;height:44px;background:var(--au-accent);color:var(--au-on-accent);box-shadow:var(--au-shadow-2)}
.rl-qa .rl-qa-call .rl-qa-btn,.rl-qa .rl-qa-maps .rl-qa-btn{background:var(--au-surface);color:var(--au-ink);box-shadow:var(--au-shadow-2)}
.rl-qa .rl-qa-item:focus-visible .rl-qa-btn{outline:var(--au-focus)}
/* Where it sits (review R5: it covered menu text at 390px and a card photo
   at 1280px). `nav.rl-qa` outranks the component's own later <style>.
   Phones: the one collapsed button moves to the right edge, so the row cards'
   text column stays clear; it fans out leftwards with its labels.
   768–1279px: the same collapsed button, bottom-left (grid cards keep their
   Add button bottom-right). ≥1280px: the full rail, inside the left gutter. */
@media (max-width:767px){
  nav.rl-qa{left:auto;right:14px;align-items:flex-end}
  nav.rl-qa .rl-qa-item{flex-direction:row-reverse}
  nav.rl-qa .rl-qa-label{margin-left:0;margin-right:var(--au-2)}
}
@media (min-width:768px) and (max-width:1279px){
  nav.rl-qa{left:var(--au-3);bottom:var(--au-4);gap:var(--au-2)}
  nav.rl-qa .rl-qa-toggle{display:block;order:99}
  nav.rl-qa .rl-qa-item{display:none}
  nav.rl-qa.rl-qa-open .rl-qa-item{display:flex}
  nav.rl-qa.rl-qa-open .rl-qa-label{max-width:220px;opacity:1;transform:none;padding:0 14px}
  nav.rl-qa.rl-qa-open .rl-qa-toggle .rl-qa-ico-open{display:none}
  nav.rl-qa.rl-qa-open .rl-qa-toggle .rl-qa-ico-close{display:block}
}
@media (min-width:1280px){
  nav.rl-qa{left:max(var(--au-2),calc((100vw - 1200px) / 2 - 56px));bottom:var(--au-4);gap:var(--au-2)}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .item.au-card,.au-card-media img,.au-btn,.fav-card,.promo{transition:none!important}
  .item.au-card:hover,.item.au-card:hover .au-card-media img,.fav-card:hover,.promo:hover{transform:none!important}
}

/* The shared drawer dims its small print with an inline opacity (.75), which
   would drop the GST line below AA on white: full opacity, muted ink (5.3:1). */
.drawer-foot .totrow[style*="opacity"]{opacity:1!important;color:var(--au-muted);font-size:var(--au-fs-13)!important}

/* Reservation + account pages: their own header bar is a dark brown gradient
   in the shared markup; in AU it is the same light header as the storefront. */
.res-top,.acc-top{background:var(--au-glass);color:var(--au-ink);border-bottom:1px solid var(--au-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.res-top .brand,.acc-top .brand{color:var(--au-ink);min-height:44px}
.res-top a.back,.acc-top a.back{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--au-3);border-radius:var(--au-r-sm);color:var(--au-accent);font-weight:600}
.res-top a.back:hover,.acc-top a.back:hover{color:var(--au-accent-hover);background:var(--au-accent-soft)}
