﻿/* Amazing Grace Entrees - shared site styles (fonts, :root tokens, base, nav, footer, buttons, cards). Extracted verbatim from the original index.html <style>. */
  @font-face{font-family:'Cinzel';src:url('/fonts/cinzel-400-900.woff2') format('woff2');font-weight:400 900;font-display:swap;}
  @font-face{font-family:'Inter';src:url('/fonts/inter-100-900.woff2') format('woff2');font-weight:100 900;font-display:swap;}
  @font-face{font-family:'Yellowtail';src:url('/fonts/yellowtail-400.woff2') format('woff2');font-weight:400;font-display:swap;}
  :root{
    --onyx:#050403; --ink:#0E0D0B; --espresso:#1A1714; --espresso-2:#241F1A;
    --gold:#EBB965; --gold-sh:#C68B43; --flat-gold:#C8993F; --champagne:#F1E2B4; --antique:#9A6E32;
    --ivory:#FBF8F1; --bone:#EFE9DC; --muted:#9A9186; --accent-red:#C33220;
    --hair:rgba(235,185,101,.26); --hair-soft:rgba(235,185,101,.14);
    --foil:linear-gradient(135deg,#FBE7AE 0%,#EBB965 34%,#C68B43 62%,#F1E2B4 100%);
    --display:'Cinzel',Georgia,serif; --script:'Yellowtail',cursive; --body:'Inter',-apple-system,system-ui,sans-serif;
    /* Nav-sized logo (120px source for a 40px circle at 3x DPR) — 7KB, and it
       loads on EVERY page. Do NOT point this at /og-logo.webp: that is the
       760px Open Graph SHARE image (105KB) and using it here cost ~100KB on
       every page load to paint a 40px dot. The big one is still referenced by
       the og:image meta tags, which need it full-size. The about-frame logo,
       which renders much larger but only on the homepage, overrides this with
       /images/logo-lg.webp below. */
    --logo:url('/images/logo-nav.webp');
  }

  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{font-family:var(--body);color:var(--bone);line-height:1.6;-webkit-font-smoothing:antialiased;
    min-height:100vh;
    background:var(--ink);
    background-image:radial-gradient(120% 80% at 50% -8%, #16120E 0%, var(--ink) 46%, var(--onyx) 100%);
    background-attachment:fixed;overflow-x:hidden;}
  img{max-width:100%;display:block;}
  a{color:var(--flat-gold);text-decoration:none;}
  a:hover{color:var(--gold);}
  ::selection{background:var(--gold-sh);color:var(--ink);}
  :focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px;}
  [hidden]{display:none!important;}
  .gold-text{background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}

  /* top + bottom foil hairlines for frame */
  .edge{height:2px;width:100%;background:var(--foil);flex-shrink:0;}

  /* ============ LAYOUT ============ */
  section{padding:96px 24px;position:relative;}
  .section-inner{max-width:1200px;margin:0 auto;}
  .section-head{text-align:center;margin-bottom:64px;}
  .overline{font-family:var(--display);font-weight:600;font-size:14px;letter-spacing:.42em;text-transform:uppercase;color:var(--flat-gold);margin-bottom:20px;}
  .section-title{font-family:var(--display);font-weight:800;font-size:clamp(34px,6vw,60px);letter-spacing:.06em;line-height:1.04;
    color:var(--ivory);text-transform:uppercase;}
  .section-title .gold-text{display:inline;}
  .section-script{font-family:var(--script);font-size:clamp(28px,5vw,44px);line-height:1;margin-top:10px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .rule{width:64px;height:2px;margin:26px auto 0;background:var(--foil);}

  /* ============ NAV ============ */
  nav{position:fixed;top:0;left:0;right:0;z-index:1000;
    background:rgba(14,13,11,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border-bottom:1px solid var(--hair-soft);transition:box-shadow .3s ease,background .3s ease;}
  nav.scrolled{box-shadow:0 10px 30px rgba(0,0,0,.5);background:rgba(10,9,7,.94);}
  .nav-edge{height:2px;width:100%;background:var(--foil);}
  .nav-inner{max-width:1200px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
  .nav-logo{display:flex;align-items:center;gap:12px;flex-shrink:0;}
  .nav-logo .nl-mark{width:40px;height:40px;background:var(--logo) center/contain no-repeat;border-radius:50%;flex-shrink:0;
    filter:drop-shadow(0 6px 14px rgba(0,0,0,.5));}
  .nav-logo .nl-text{display:flex;flex-direction:column;line-height:1;}
  .nav-logo .nl-amaze{font-family:var(--script);font-size:20px;line-height:.8;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .nav-logo .nl-grace{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.14em;text-transform:uppercase;color:var(--ivory);}
  .nav-links{display:flex;gap:11px;align-items:center;list-style:none;}
  .nav-links a{font-family:var(--display);font-weight:600;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--bone);
    position:relative;padding:6px 0;transition:color .2s ease;}
  .nav-links a:hover{color:var(--gold);}
  .nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--foil);transition:width .2s ease;}
  .nav-links a:hover::after{width:100%;}
  .nav-cta{border:1px solid var(--hair);border-radius:999px;padding:9px 20px!important;color:var(--champagne)!important;transition:border-color .2s ease,color .2s ease;}
  .nav-cta:hover{border-color:var(--gold);}
  .nav-cta::after{display:none!important;}
  .nav-cart-btn{position:relative;background:none;border:1px solid var(--hair);border-radius:999px;
    padding:9px 18px;cursor:pointer;display:flex;align-items:center;gap:8px;
    font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--bone);transition:border-color .2s ease,color .2s ease;}
  .nav-cart-btn:hover{border-color:var(--gold);color:var(--gold);}
  .nav-cart-count{position:absolute;top:-7px;right:-7px;background:var(--foil);color:var(--ink);
    font-family:var(--display);font-weight:700;font-size:11px;width:20px;height:20px;border-radius:50%;
    display:none;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.5);}
  .nav-cart-count.visible{display:flex;}
  .mobile-toggle{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:var(--gold);}

  /* ============ HERO ============ */
  .hero{padding:150px 24px 96px;position:relative;overflow:hidden;text-align:center;}
  .hero-inner{max-width:920px;margin:0 auto;position:relative;z-index:2;}
  .hero-badge{position:relative;width:clamp(128px,20vw,168px);aspect-ratio:1;margin:0 auto 34px;
    animation:rise 1s cubic-bezier(.2,.7,.2,1) both;}
  .hero-badge::before{content:"";position:absolute;inset:-6%;border-radius:50%;border:1px solid var(--hair-soft);}
  .hero-badge .mark{display:block;width:100%;height:100%;background:url("/images/grace-hero-cut.webp") center/cover no-repeat;border-radius:50%;
    filter:drop-shadow(0 18px 42px rgba(0,0,0,.62));}
  @keyframes rise{from{opacity:0;transform:translateY(26px) scale(.96);}to{opacity:1;transform:none;}}
  .hero .overline{margin-bottom:26px;}
  .hero-title{font-family:var(--display);font-weight:800;font-size:clamp(44px,9vw,84px);letter-spacing:.06em;line-height:1.02;
    color:var(--ivory);text-transform:uppercase;}
  .hero-script{font-family:var(--script);font-size:clamp(38px,7vw,64px);line-height:1;margin:6px 0 14px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .hero-essence{max-width:640px;margin:22px auto 0;font-size:20px;line-height:1.7;color:var(--bone);}
  .hero-essence strong{color:var(--champagne);font-weight:600;}
  .hero-ctas{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:38px;}
  .btn{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;line-height:1.7;
    padding:16px 30px;border-radius:2px;cursor:pointer;display:inline-block;transition:transform .15s ease,box-shadow .15s ease;}
  .btn-primary{background:var(--foil);color:var(--ink);border:none;}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.5);}
  .btn-secondary{background:transparent;color:var(--champagne);border:1px solid var(--hair);}
  .btn-secondary:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px);}

  /* ============ CHIP / TRUST BAR ============ */
  .trust{border-top:1px solid var(--hair-soft);border-bottom:1px solid var(--hair-soft);padding:44px 24px;}
  .trust-inner{max-width:1240px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:18px 20px;}
  .chip{font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:.1em;text-transform:uppercase;color:var(--bone);
    border:1px solid var(--hair-soft);border-radius:999px;padding:14px 26px;}
  .chip .ic{color:var(--flat-gold);margin-right:10px;font-size:1.1em;}

  /* ============ MENU ============ */
  .menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
  .menu-card{background:linear-gradient(180deg,var(--espresso) 0%,var(--ink) 100%);
    border:1px solid var(--hair-soft);border-radius:8px;padding:26px;position:relative;overflow:hidden;
    display:flex;flex-direction:column;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;}
  .menu-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--foil);opacity:.9;}
  .menu-card:hover{transform:translateY(-4px);border-color:var(--hair);box-shadow:0 20px 44px rgba(0,0,0,.5);}
  .menu-card-tag{position:absolute;top:18px;right:18px;z-index:2;
    font-family:var(--display);font-weight:700;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
    background:var(--foil);padding:5px 12px;border-radius:999px;}
  .menu-card-img{width:100%;aspect-ratio:4/3;margin:6px 0 22px;border-radius:6px;overflow:hidden;
    border:1px solid var(--hair-soft);position:relative;background:var(--espresso-2);}
  .menu-card-img img{width:100%;height:100%;object-fit:contain;background:#0E0D0B;}
  .menu-card-img.placeholder{display:flex;align-items:center;justify-content:center;
    background:radial-gradient(120% 120% at 30% 20%, #241F1A 0%, #14110E 70%);}
  .menu-card-img.placeholder .ph-mark{font-family:var(--script);font-size:30px;text-align:center;line-height:1.1;padding:16px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.9;}
  .menu-card h3{font-family:var(--display);font-weight:700;font-size:26px;letter-spacing:.03em;color:var(--ivory);line-height:1.05;margin-bottom:6px;}
  .menu-card-price{font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:.1em;text-transform:uppercase;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:14px;}
  .menu-card p{font-size:15px;line-height:1.65;color:var(--bone);margin-bottom:18px;flex:1;}
  .menu-card-detail{font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;
    color:var(--muted);border-top:1px solid var(--hair-soft);padding-top:14px;margin-bottom:18px;}

  .add-to-cart-btn{width:100%;padding:15px;margin-top:auto;
    background:var(--foil);color:var(--ink);border:none;border-radius:2px;cursor:pointer;
    font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;
    transition:transform .15s ease,box-shadow .15s ease;}
  .add-to-cart-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.5);}
  .add-to-cart-btn.added{background:var(--champagne);color:var(--ink);}

  /* ============ TOPPINGS ============ */
  .toppings-wrap{border-top:1px solid var(--hair-soft);padding-top:16px;margin-bottom:18px;}
  .toppings-label{font-family:var(--display);font-weight:600;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--flat-gold);margin-bottom:12px;}
  .topping-list{display:flex;flex-direction:column;gap:8px;}
  .topping-item{display:flex;align-items:center;gap:10px;cursor:pointer;}
  .topping-item input[type="checkbox"],.cart-topping-item input[type="checkbox"]{
    appearance:none;-webkit-appearance:none;flex-shrink:0;border:1px solid var(--hair);background:var(--ink);
    cursor:pointer;position:relative;transition:background .15s ease,border-color .15s ease;border-radius:3px;}
  .topping-item input[type="checkbox"]{width:16px;height:16px;}
  .cart-topping-item input[type="checkbox"]{width:14px;height:14px;}
  .topping-item input:checked,.cart-topping-item input:checked{background:var(--foil);border-color:var(--gold);}
  .topping-item input:checked::after,.cart-topping-item input:checked::after{content:'âœ“';position:absolute;inset:0;
    display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:11px;font-weight:700;}
  .topping-item-name{font-size:13px;color:var(--bone);flex:1;}
  .topping-item-price{font-family:var(--display);font-weight:600;font-size:11px;letter-spacing:.06em;color:var(--flat-gold);}

  /* ============ CATERING FORM ============ */
  .catering-section{border-top:1px solid var(--hair-soft);}
  .inquiry-wrap{max-width:820px;margin:0 auto;background:linear-gradient(180deg,var(--espresso) 0%,var(--ink) 100%);
    border:1px solid var(--hair-soft);border-radius:10px;padding:48px 40px;position:relative;overflow:hidden;}
  .inquiry-wrap::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--foil);}
  .inquiry-title{font-family:var(--display);font-weight:700;font-size:clamp(24px,4vw,34px);letter-spacing:.05em;text-transform:uppercase;color:var(--ivory);text-align:center;margin-bottom:8px;}
  .inquiry-sub{font-family:var(--script);font-size:24px;text-align:center;margin-bottom:36px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
  .form-row{grid-column:span 2;}
  .form-field label{display:block;font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--flat-gold);margin-bottom:8px;}
  .form-field label .req{color:var(--accent-red);}
  .form-field input,.form-field select,.form-field textarea{
    width:100%;padding:13px 15px;border:1px solid var(--hair-soft);border-radius:4px;background:rgba(5,4,3,.55);
    font-family:var(--body);font-size:15px;color:var(--bone);transition:border-color .15s ease,box-shadow .15s ease;}
  .form-field input::placeholder,.form-field textarea::placeholder{color:#6f675c;}
  .form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--flat-gold);box-shadow:0 0 0 3px rgba(235,185,101,.14);}
  .form-field textarea{min-height:120px;resize:vertical;}
  .form-field select option{background:var(--ink);color:var(--bone);}
  .form-submit{width:100%;margin-top:22px;padding:17px;background:var(--foil);color:var(--ink);border:none;border-radius:2px;cursor:pointer;
    font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.16em;text-transform:uppercase;transition:transform .15s ease,box-shadow .15s ease;}
  .form-submit:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.5);}
  .form-success{display:none;margin-top:20px;padding:18px;text-align:center;border:1px solid var(--hair);border-radius:4px;
    background:rgba(235,185,101,.08);color:var(--champagne);
    font-family:var(--display);font-weight:600;font-size:14px;letter-spacing:.1em;text-transform:uppercase;}
  .form-success.shown{display:block;}

  /* ============ ABOUT ============ */
  .about-section{border-top:1px solid var(--hair-soft);}
  .about-inner{display:grid;grid-template-columns:1fr 1.15fr;gap:60px;align-items:center;}
  .about-frame{position:relative;aspect-ratio:3/4;border:1px solid var(--hair);border-radius:8px;overflow:hidden;
    background:radial-gradient(120% 120% at 30% 20%, #241F1A 0%, #0C0A08 72%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;padding:34px 24px;}
  /* Homepage-only, and renders up to 280px — so it needs a bigger source than
     the 120px nav logo in --logo. 360px/34KB, loaded on this page alone. */
  .about-frame .af-logo{width:66%;max-width:280px;aspect-ratio:1;background:url('/images/logo-lg.webp') center/contain no-repeat;border-radius:50%;
    filter:drop-shadow(0 10px 30px rgba(0,0,0,.55));}
  .about-frame::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--foil);}
  .about-frame .af-script{font-family:var(--script);font-size:46px;text-align:center;line-height:1.05;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .about-content .overline{text-align:left;}
  .about-content .section-title{text-align:left;margin-bottom:8px;}
  .about-content .rule{margin:22px 0 26px;}
  .about-content p{font-size:16px;line-height:1.75;color:var(--bone);margin-bottom:18px;}
  .about-content p strong{color:var(--champagne);font-weight:600;}
  .about-quote{font-family:var(--script);font-size:30px;line-height:1.25;margin:28px 0;padding-left:22px;border-left:2px solid var(--gold-sh);
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}

  /* ============ TESTIMONIALS ============ */
  .testimonials-section{border-top:1px solid var(--hair-soft);}
  .testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  .testimonial{background:linear-gradient(180deg,var(--espresso) 0%,var(--ink) 100%);border:1px solid var(--hair-soft);border-radius:8px;padding:30px;position:relative;}
  .testimonial::before{content:'"';position:absolute;top:14px;right:22px;font-family:var(--display);font-weight:800;font-size:64px;line-height:1;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.5;}
  .testimonial-stars{color:var(--gold);font-size:16px;letter-spacing:3px;margin-bottom:16px;}
  .testimonial-quote{font-size:15px;line-height:1.7;color:var(--bone);margin-bottom:20px;}
  .testimonial-name{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--champagne);}
  .testimonial-meta{font-family:var(--script);font-size:18px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}

  /* ============ FOOTER ============ */
  footer{border-top:1px solid var(--hair-soft);padding:72px 24px 40px;position:relative;}
  footer::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--foil);}
  .footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:44px;margin-bottom:48px;}
  .footer-brand .fb-amaze{font-family:var(--script);font-size:30px;line-height:.9;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .footer-brand .fb-grace{font-family:var(--display);font-weight:700;font-size:28px;letter-spacing:.12em;text-transform:uppercase;color:var(--ivory);margin:4px 0 6px;}
  .footer-brand .fb-sub{font-family:var(--display);font-weight:600;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--flat-gold);margin-bottom:16px;}
  .footer-brand p{font-size:14px;line-height:1.7;color:var(--muted);max-width:300px;}
  .footer-col h4{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--champagne);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--hair-soft);}
  .footer-col ul{list-style:none;}
  .footer-col li{font-size:14px;line-height:1.6;margin-bottom:9px;color:var(--muted);}
  .footer-col a:hover{color:var(--gold);}
  .footer-seal{display:flex;align-items:center;gap:14px;margin-bottom:16px;}
  .footer-seal .seal{position:relative;display:grid;place-items:center;border-radius:50%;width:46px;height:46px;flex-shrink:0;
    background:var(--ink);box-shadow:0 0 0 1px var(--hair) inset;}
  .footer-seal .seal::before{content:"";position:absolute;inset:14%;border:1px solid var(--hair);border-radius:50%;}
  .footer-seal .seal span{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.02em;position:relative;z-index:2;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .footer-bottom{max-width:1200px;margin:0 auto;padding-top:26px;border-top:1px solid var(--hair-soft);
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--muted);}
  .footer-bottom a{color:var(--flat-gold);}

  /* ============ CART OVERLAY + PANEL ============ */
  .cart-overlay{position:fixed;inset:0;background:rgba(5,4,3,.7);z-index:1100;opacity:0;pointer-events:none;
    transition:opacity .25s ease;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);}
  .cart-overlay.open{opacity:1;pointer-events:all;}
  .cart-panel{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100vw;z-index:1101;
    background:linear-gradient(180deg,#14110E 0%,var(--onyx) 100%);border-left:1px solid var(--hair);
    display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s ease;
    box-shadow:-16px 0 50px rgba(0,0,0,.6);}
  .cart-panel.open{transform:translateX(0);}
  .cart-panel-edge{height:2px;background:var(--foil);flex-shrink:0;}
  .cart-panel-header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--hair-soft);flex-shrink:0;}
  .cart-panel-title{font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:.08em;text-transform:uppercase;color:var(--ivory);}
  .cart-close-btn{background:none;border:1px solid var(--hair-soft);border-radius:50%;width:36px;height:36px;cursor:pointer;
    font-size:15px;color:var(--bone);display:flex;align-items:center;justify-content:center;transition:border-color .15s ease,color .15s ease;}
  .cart-close-btn:hover{border-color:var(--gold);color:var(--gold);}
  .cart-items{flex:1;overflow-y:auto;padding:20px 24px;}
  .cart-empty{text-align:center;padding:64px 20px;font-family:var(--script);font-size:26px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.8;}
  .cart-item{display:grid;grid-template-columns:1fr auto;gap:10px;padding:18px 0;border-bottom:1px solid var(--hair-soft);align-items:start;}
  .cart-item:last-child{border-bottom:none;}
  .cart-item-name{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.03em;color:var(--ivory);}
  .cart-item-price{font-size:12px;letter-spacing:.06em;color:var(--flat-gold);margin-top:3px;}
  .cart-item-controls{display:flex;align-items:center;gap:10px;margin-top:12px;}
  .cart-qty-btn{background:var(--espresso-2);color:var(--gold);border:1px solid var(--hair-soft);border-radius:4px;
    width:28px;height:28px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;
    font-family:var(--display);transition:border-color .15s ease,color .15s ease;}
  .cart-qty-btn:hover{border-color:var(--gold);}
  .cart-qty-num{font-family:var(--display);font-weight:700;font-size:15px;min-width:24px;text-align:center;color:var(--bone);}
  .cart-remove-btn{background:none;border:none;cursor:pointer;font-size:12px;color:var(--muted);text-decoration:underline;padding:0;margin-left:4px;}
  .cart-remove-btn:hover{color:var(--accent-red);}
  .cart-item-line-total{font-family:var(--display);font-weight:700;font-size:15px;color:var(--champagne);text-align:right;padding-top:2px;}
  .cart-item-toppings{margin-top:12px;}
  .cart-item-toppings-label{font-family:var(--display);font-weight:600;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--flat-gold);margin-bottom:8px;}
  .cart-topping-item{display:flex;align-items:center;gap:8px;margin-bottom:6px;cursor:pointer;}
  .cart-topping-name{font-size:12px;color:var(--bone);flex:1;}
  .cart-topping-price{font-family:var(--display);font-weight:600;font-size:10px;letter-spacing:.06em;color:var(--flat-gold);}
  .cart-footer{padding:22px 24px;border-top:1px solid var(--hair);flex-shrink:0;background:rgba(5,4,3,.5);}
  .cart-subtotal{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;}
  .cart-subtotal-label{font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
  .cart-subtotal-amount{font-family:var(--display);font-weight:800;font-size:28px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .cart-tax-note{font-size:12px;color:var(--muted);margin-bottom:18px;}
  #ag-checkout-btn{width:100%;padding:17px;margin-bottom:10px;background:var(--foil);color:var(--ink);border:none;border-radius:2px;cursor:pointer;
    font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:.16em;text-transform:uppercase;transition:transform .15s ease,box-shadow .15s ease;}
  #ag-checkout-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.5);}
  #ag-checkout-btn:disabled{opacity:.6;cursor:wait;}
  .cart-clear-btn{width:100%;padding:11px;background:none;color:var(--muted);border:1px solid var(--hair-soft);border-radius:2px;cursor:pointer;
    font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;transition:border-color .15s ease,color .15s ease;}
  .cart-clear-btn:hover{border-color:var(--accent-red);color:var(--accent-red);}
  #ag-cart-error{display:none;background:rgba(195,50,32,.14);color:#F0B7AC;padding:12px 16px;margin-bottom:14px;
    border:1px solid var(--accent-red);border-radius:4px;font-size:13px;line-height:1.5;}

  /* ============ FAB ============ */
  .cart-fab{position:fixed;bottom:26px;right:26px;z-index:900;background:var(--foil);color:var(--ink);border:none;border-radius:999px;
    padding:14px 22px;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.55);display:flex;align-items:center;gap:10px;
    font-family:var(--display);font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;
    opacity:0;pointer-events:none;transform:translateY(20px);transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;}
  .cart-fab.visible{opacity:1;pointer-events:all;transform:translateY(0);}
  .cart-fab:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(0,0,0,.6);}
  .cart-fab-count{background:var(--ink);color:var(--gold);border-radius:50%;width:24px;height:24px;
    display:flex;align-items:center;justify-content:center;font-size:12px;}

  /* ============ RESPONSIVE ============ */
  @media (max-width:960px){
    .nav-links{display:none;}
    .nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;
      background:rgba(10,9,7,.97);border-bottom:1px solid var(--hair-soft);padding:22px 24px;gap:18px;}
    .mobile-toggle{display:block;}
    .menu-grid{grid-template-columns:1fr;}
    .form-grid{grid-template-columns:1fr;}
    .form-row{grid-column:span 1;}
    .about-inner{grid-template-columns:1fr;gap:40px;}
    .about-frame{max-width:360px;margin:0 auto;}
    .testimonials-grid{grid-template-columns:1fr;}
    .footer-inner{grid-template-columns:1fr 1fr;}
    section{padding:72px 22px;}
    .hero{padding:130px 22px 76px;}
    .cart-panel{width:100vw;}
  }
  @media (max-width:540px){
    .footer-inner{grid-template-columns:1fr;}
    .hero-ctas{flex-direction:column;}
    .btn{width:100%;text-align:center;}
    .cart-fab{bottom:16px;right:16px;}
    .inquiry-wrap{padding:36px 22px;}
  }
  @media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}

  /* ============ ORDERING SYSTEM (calendar / availability / order / coming-soon) ============ */
  .lede{max-width:720px;margin:0 auto 12px;text-align:center;font-size:17px;line-height:1.7;color:var(--bone);}
  .lede strong{color:var(--champagne);font-weight:600;}
  .subnote{text-align:center;font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:6px;}

  /* Day grid (calendar + home strip) */
  .day-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
  .day-card{background:linear-gradient(180deg,var(--espresso) 0%,var(--ink) 100%);
    border:1px solid var(--hair-soft);border-radius:8px;padding:24px 22px;position:relative;overflow:hidden;
    display:flex;flex-direction:column;text-align:center;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;}
  .day-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--foil);opacity:.9;}
  .day-card:hover{transform:translateY(-4px);border-color:var(--hair);box-shadow:0 20px 44px rgba(0,0,0,.5);}
  .day-card.is-closed{opacity:.66;}
  .day-card.is-closed:hover{transform:none;box-shadow:none;border-color:var(--hair-soft);}
  .day-weekday{font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--flat-gold);}
  .day-date{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.04em;color:var(--ivory);margin-top:4px;}
  .day-item{font-family:var(--script);font-size:30px;line-height:1.05;margin:14px 0 4px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .day-price{font-family:var(--display);font-weight:600;font-size:14px;letter-spacing:.1em;text-transform:uppercase;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:16px;}
  .day-status{font-family:var(--display);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px;}
  .day-status.ok{color:var(--champagne);}
  .day-status.low{color:var(--gold);}
  .day-status.muted{color:var(--muted);}
  .day-status.sold{color:var(--accent-red);}
  .order-stock{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;}
  .order-stock.ok{color:var(--champagne);}
  .order-stock.low{color:var(--gold);}
  .day-card .btn{margin-top:auto;width:100%;text-align:center;padding:13px;}
  .day-card .day-closed-label{margin-top:auto;font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--hair-soft);padding-top:14px;}

  /* Loading / error states */
  .state-msg{grid-column:1/-1;text-align:center;padding:40px 20px;font-family:var(--script);font-size:26px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.85;}

  /* Order panel */
  .order-wrap{max-width:560px;margin:0 auto;background:linear-gradient(180deg,var(--espresso) 0%,var(--ink) 100%);
    border:1px solid var(--hair-soft);border-radius:10px;padding:40px 36px;position:relative;overflow:hidden;}
  .order-wrap::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--foil);}
  .order-day{font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--flat-gold);text-align:center;}
  .order-item{font-family:var(--script);font-size:clamp(34px,7vw,48px);line-height:1;text-align:center;margin:8px 0 6px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .order-price{font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.06em;text-align:center;color:var(--ivory);margin-bottom:6px;}
  .order-remaining{text-align:center;font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--champagne);margin-bottom:24px;}
  .order-pickup{text-align:center;font-size:14px;color:var(--muted);margin:18px 0 26px;line-height:1.6;}
  /* Express SMS opt-in (10DLC). Checkbox is unchecked by default and never
     blocks the order — consent is not a condition of purchase. */
  /* 10DLC opt-in form: the mobile field and the consent language must render
     together on one page (carrier requirement — see index.html). Deliberately
     NOT hidden by lockPanel(), so the form still reads as a real, complete
     opt-in form when ordering is closed for the day. */
  .sms-optin{margin-top:14px;}
  .sms-phone{display:flex;flex-direction:column;gap:6px;text-align:left;margin-bottom:12px;}
  .sms-phone>span{font-size:12px;letter-spacing:.04em;color:var(--muted);}
  .sms-phone>span em{font-style:normal;opacity:.75;}
  .sms-phone input{background:#2b251d;color:var(--bone);border:1px solid var(--flat-gold);
    border-radius:8px;padding:10px 12px;font:inherit;font-size:14px;width:100%;}
  .sms-phone input::placeholder{color:var(--muted);opacity:.6;}
  .sms-optin .sms-consent{margin-top:0;}
  .sms-consent,.cat-consent{display:flex;align-items:flex-start;gap:10px;text-align:left;
    font-size:12px;color:var(--muted);margin-top:14px;line-height:1.6;cursor:pointer;}
  .sms-consent input[type="checkbox"],.cat-consent input[type="checkbox"]{flex:0 0 auto;margin-top:3px;width:16px;height:16px;
    accent-color:var(--gold);cursor:pointer;}
  .sms-consent span,.cat-consent span{flex:1 1 auto;}
  .order-photo{display:flex;justify-content:center;margin:0 0 22px;}
  .order-photo img{width:100%;max-width:380px;aspect-ratio:4/3;object-fit:contain;background:#0E0D0B;border-radius:12px;
    border:1px solid var(--hair);box-shadow:0 14px 40px rgba(0,0,0,.45);}
  .order-time{display:flex;flex-direction:column;align-items:center;gap:8px;margin:22px 0 6px;}
  .order-time label{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
  .order-time select{background:#2b251d;color:var(--bone);border:1px solid var(--flat-gold);
    border-radius:8px;padding:10px 14px;font-size:16px;min-width:230px;text-align:center;}
  .order-time select option{background:#2b251d;color:var(--bone);}

  /* ---- Multi-plate cart (per-plate removals) ---- */
  .order-cart{margin:18px 0 6px;border:1px solid var(--hair);border-radius:8px;overflow:hidden;}
  .order-cart-row{display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:10px 14px;border-bottom:1px solid var(--hair-soft);font-size:14px;color:var(--bone);}
  .order-cart-row:last-child{border-bottom:none;}
  .order-cart-info{text-align:left;line-height:1.5;}
  .order-cart-removals{display:block;font-size:12px;color:var(--muted);}
  .order-cart-remove{background:none;border:1px solid var(--hair);border-radius:6px;color:var(--muted);
    cursor:pointer;font-size:13px;line-height:1;padding:6px 9px;}
  .order-cart-remove:hover{color:var(--bone);border-color:var(--flat-gold);}
  .order-addline{display:block;margin:14px auto 4px;background:none;border:1px dashed var(--flat-gold);
    border-radius:8px;color:var(--flat-gold);cursor:pointer;font-family:var(--body);font-size:14px;padding:10px 18px;}
  .order-addline:hover{color:var(--gold);border-color:var(--gold);}
  .order-addline:disabled{opacity:.45;cursor:not-allowed;}

  /* ---- Homepage two-panel ordering (Today | Next Day) ---- */
  .today-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;margin-top:12px;}
  .today-col-label{text-align:center;font-family:var(--display);font-weight:700;font-size:13px;
    letter-spacing:.18em;text-transform:uppercase;color:var(--gold,#C8993F);margin-bottom:14px;}
  @media (max-width:860px){ .today-grid{grid-template-columns:1fr;gap:48px;} }

  /* ---- Ways-to-order cards ---- */
  .ways-grid .contact-card{display:flex;flex-direction:column;align-items:center;text-align:center;}
  /* Identical gold buttons, pinned to the card bottom so all three align. */
  .ways-grid .contact-card .btn{margin-top:auto;padding-top:16px;}
  .ways-grid .contact-card p{margin-bottom:18px;}
  .ways-grid .btn{white-space:nowrap;}

  /* ---- Calendar photos + SOLD OUT stamps ---- */
  .day-photo{position:relative;margin:-4px -4px 12px;border-radius:10px;overflow:hidden;}
  .day-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:#0E0D0B;}
  .is-closed .day-photo img{filter:grayscale(.6) brightness(.7);}
  .day-soldout{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-12deg);
    background:rgba(140,20,20,.92);color:#fff;font-family:var(--display);font-weight:800;
    font-size:20px;letter-spacing:.22em;padding:8px 22px;border:2px solid rgba(255,255,255,.85);
    border-radius:6px;text-transform:uppercase;white-space:nowrap;box-shadow:0 8px 26px rgba(0,0,0,.5);}
  .day-soldout.inline{position:static;display:inline-block;transform:rotate(-4deg);margin-bottom:10px;font-size:14px;}
  .order-photo{position:relative;}
  .order-stock.out{color:#E58A8A;font-weight:800;letter-spacing:.2em;}

  /* ---- Countdown pills ---- */
  #agCountdown{display:flex;flex-direction:column;gap:8px;align-items:center;margin:0 0 22px;}
  #agCountdown:empty{margin:0;}
  .ag-count{display:inline-block;background:#1A1510;border:1px solid var(--gold,#C8993F);
    color:#EDE6DA;border-radius:999px;padding:10px 20px;font-size:15px;letter-spacing:.02em;}
  .ag-count strong{color:var(--gold,#C8993F);font-variant-numeric:tabular-nums;}

  /* ---- Catering request form ---- */
  .cat-form{max-width:720px;margin:40px auto 0;}
  .cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
  .cat-field{display:flex;flex-direction:column;gap:7px;}
  .cat-field span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
  .cat-field input,.cat-field textarea{background:#161310;color:#EDE6DA;border:1px solid var(--hair);
    border-radius:8px;padding:12px 14px;font-size:16px;font-family:inherit;width:100%;box-sizing:border-box;}
  .cat-field input:focus,.cat-field textarea:focus{outline:none;border-color:var(--gold,#C8993F);}
  .cat-details{margin-top:18px;}
  .cat-error{display:none;margin-top:16px;text-align:center;color:#E58A8A;font-size:14px;}
  .cat-error.shown{display:block;}
  #cat-turnstile{display:flex;justify-content:center;margin-top:18px;}
  .cat-done{max-width:560px;margin:48px auto 0;text-align:center;}
  .cat-done h3{font-family:var(--display);color:var(--gold,#C8993F);letter-spacing:.1em;text-transform:uppercase;}
  .cat-done p{color:var(--muted);line-height:1.7;}
  .cat-done a{color:var(--gold,#C8993F);}
  @media (max-width:640px){ .cat-grid{grid-template-columns:1fr;} }

  /* ---- Catering service-level selector (catering.html #catForm ONLY).
     Everything below is scoped to #catForm on purpose: the .cat-* rules above are
     SHARED with contact.html's #ctForm, so nothing here may leak onto that page.
     There is no radio styling anywhere else in this repo, so these clone the
     .topping-item custom-appearance pattern (gold checked state) for radios. ---- */
  #catForm .svc-block{border:0;margin:22px 0 0;padding:0;min-width:0;}
  #catForm .svc-label{display:block;float:none;width:100%;padding:0;margin:0 0 10px;
    font-size:12px;line-height:1.45;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
  #catForm .svc-list{display:flex;flex-direction:column;gap:10px;}
  #catForm .svc-inline{display:flex;flex-wrap:wrap;gap:8px;}
  #catForm .svc-option{display:flex;align-items:flex-start;gap:11px;cursor:pointer;
    background:#161310;border:1px solid var(--hair);border-radius:8px;padding:12px 14px;
    transition:border-color .15s ease,background .15s ease;}
  #catForm .svc-inline .svc-option{align-items:center;padding:9px 13px;flex:0 1 auto;}
  #catForm .svc-option:hover{border-color:var(--gold,#C8993F);}
  #catForm .svc-option input[type="radio"]{appearance:none;-webkit-appearance:none;flex:0 0 auto;
    width:17px;height:17px;margin:2px 0 0;border:1px solid var(--hair);border-radius:50%;
    background:#0E0D0B;cursor:pointer;position:relative;transition:border-color .15s ease;}
  #catForm .svc-inline .svc-option input[type="radio"]{margin:0;}
  #catForm .svc-option input[type="radio"]:checked{border-color:var(--gold,#C8993F);}
  #catForm .svc-option input[type="radio"]:checked::after{content:'';position:absolute;inset:3px;
    border-radius:50%;background:var(--gold,#C8993F);}
  #catForm .svc-option input[type="radio"]:focus-visible{outline:2px solid var(--gold,#C8993F);outline-offset:2px;}
  /* :has() is progressive — without it the gold dot alone still shows the choice. */
  #catForm .svc-option:has(input[type="radio"]:checked){border-color:var(--gold,#C8993F);background:rgba(235,185,101,.07);}
  #catForm .svc-text{display:flex;flex-direction:column;gap:4px;min-width:0;}
  #catForm .svc-name{font-size:14.5px;line-height:1.35;color:#EDE6DA;}
  #catForm .svc-desc{font-size:12.5px;line-height:1.5;color:var(--muted);}

  /* Progressive-disclosure panels — toggled by the plain `hidden` attribute,
     which the global [hidden]{display:none!important} at the top of this file wins. */
  #catForm .svc-panel{margin-top:20px;padding:16px 16px 18px;border:1px solid var(--hair);
    border-radius:10px;background:rgba(255,255,255,.02);}
  #catForm .svc-panel-title{font-family:var(--display);font-weight:700;font-size:11.5px;
    letter-spacing:.14em;text-transform:uppercase;color:var(--flat-gold,#C8993F);margin:0 0 4px;}
  #catForm .svc-panel > .cat-field{margin-top:16px;}
  #catForm .svc-panel > .cat-grid{margin-top:16px;}
  #catForm .svc-hint{display:block;font-size:12px;line-height:1.5;color:var(--muted);
    text-transform:none;letter-spacing:normal;}
  #catForm .svc-block > .svc-hint{margin-top:9px;}
  #catForm .svc-hint strong{color:#C5BBAC;font-weight:600;}
  #catForm .svc-note{margin:18px 0 0;padding:12px 14px;border:1px solid rgba(229,138,138,.34);
    border-radius:8px;background:rgba(229,138,138,.07);color:#D9CDBC;font-size:12.5px;line-height:1.6;}
  #catForm .svc-note strong{color:#E58A8A;}
  /* At 375px the inline options wrap on their own — do NOT flex-grow them, or a
     two-word label like "Real tableware" gets squeezed into a 75px column. */
  @media (max-width:640px){
    #catForm .svc-panel{padding:14px 13px 16px;}
    #catForm .svc-option{padding:11px 12px;}
  }

  .qty-row{display:flex;align-items:center;justify-content:center;gap:20px;margin:24px 0;}
  .qty-label{font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--flat-gold);}
  .qty-stepper{display:flex;align-items:center;gap:16px;}
  .qty-btn{background:var(--espresso-2);color:var(--gold);border:1px solid var(--hair-soft);border-radius:6px;
    width:44px;height:44px;cursor:pointer;font-size:22px;display:flex;align-items:center;justify-content:center;
    font-family:var(--display);transition:border-color .15s ease,color .15s ease;}
  .qty-btn:hover:not(:disabled){border-color:var(--gold);}
  .qty-btn:disabled{opacity:.4;cursor:not-allowed;}
  .qty-num{font-family:var(--display);font-weight:800;font-size:28px;min-width:52px;text-align:center;color:var(--ivory);}
  #ag-order-btn,#ag-order-btn2{width:100%;padding:17px;margin-top:8px;background:var(--foil);color:var(--ink);border:none;border-radius:2px;cursor:pointer;
    font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:.16em;text-transform:uppercase;transition:transform .15s ease,box-shadow .15s ease;}
  #ag-order-btn:hover:not(:disabled),#ag-order-btn2:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px rgba(0,0,0,.5);}
  #ag-order-btn:disabled,#ag-order-btn2:disabled{opacity:.6;cursor:wait;}
  #ag-order-error,#ag-order-error2{display:none;background:rgba(195,50,32,.14);color:#F0B7AC;padding:13px 16px;margin-bottom:16px;
    border:1px solid var(--accent-red);border-radius:4px;font-size:14px;line-height:1.5;text-align:center;}
  #ag-order-error.shown,#ag-order-error2.shown{display:block;}

  /* Coming soon / contact simple pages */
  .plain-hero{padding:150px 24px 96px;text-align:center;}
  .plain-badge{position:relative;width:clamp(112px,18vw,150px);aspect-ratio:1;margin:0 auto 30px;}
  .plain-badge .mark{width:100%;height:100%;background:var(--logo) center/contain no-repeat;border-radius:50%;
    filter:drop-shadow(0 18px 42px rgba(0,0,0,.62));}
  .plain-title{font-family:var(--display);font-weight:800;font-size:clamp(38px,7vw,64px);letter-spacing:.06em;line-height:1.04;color:var(--ivory);text-transform:uppercase;}
  .plain-script{font-family:var(--script);font-size:clamp(30px,5vw,48px);line-height:1;margin:6px 0 14px;
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;}
  .plain-body{max-width:600px;margin:22px auto 0;font-size:18px;line-height:1.75;color:var(--bone);}
  .contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;max-width:1000px;margin:0 auto;}
  .contact-card{background:linear-gradient(180deg,var(--espresso) 0%,var(--ink) 100%);border:1px solid var(--hair-soft);
    border-radius:8px;padding:32px 26px;text-align:center;position:relative;overflow:hidden;}
  .contact-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--foil);opacity:.9;}
  .contact-card .cc-icon{font-size:26px;margin-bottom:14px;}
  .contact-card h3{font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--champagne);margin-bottom:14px;}
  .contact-card p,.contact-card a:not(.btn){font-size:15px;line-height:1.8;color:var(--bone);}
  .contact-card a:not(.btn):hover{color:var(--gold);}

  @media (max-width:960px){
    .day-grid{grid-template-columns:repeat(2,1fr);}
    .contact-grid{grid-template-columns:1fr;max-width:420px;}
  }
  @media (max-width:540px){
    .day-grid{grid-template-columns:1fr;}
    .order-wrap{padding:32px 22px;}
    #ag-order-btn,#ag-order-btn2{width:100%;}
  }

  /* Announcement banner (U2) */
  .ag-banner{position:relative;overflow:hidden;isolation:isolate;max-width:900px;margin:0 auto 32px;
    background:linear-gradient(180deg,#2a2015 0%,#17110b 100%);
    border:2px solid #C8993F;border-radius:12px;padding:18px 26px;text-align:center;
    font-family:var(--display);font-weight:700;font-size:clamp(15px,2.4vw,18px);letter-spacing:.06em;line-height:1.6;
    color:#F3D9A0;text-shadow:0 1px 10px rgba(200,153,63,.4);
    box-shadow:0 6px 26px rgba(200,153,63,.18);animation:ag-banner-glow 2.8s ease-in-out infinite;}
  /* sheen sweep passing across the banner */
  .ag-banner::before{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;pointer-events:none;
    background:linear-gradient(100deg,transparent 0%,rgba(255,244,214,.30) 50%,transparent 100%);
    transform:skewX(-18deg);animation:ag-sheen 4s ease-in-out infinite;}
  /* twinkling sparkles */
  .ag-banner::after{content:"";position:absolute;inset:0;pointer-events:none;
    background:
      radial-gradient(2px 2px at 12% 32%, rgba(255,245,220,.95), transparent 60%),
      radial-gradient(1.6px 1.6px at 86% 64%, rgba(255,245,220,.85), transparent 60%),
      radial-gradient(1.6px 1.6px at 62% 22%, rgba(255,245,220,.8), transparent 60%),
      radial-gradient(2px 2px at 28% 74%, rgba(255,245,220,.85), transparent 60%),
      radial-gradient(1.4px 1.4px at 46% 55%, rgba(255,245,220,.7), transparent 60%);
    animation:ag-twinkle 2.4s ease-in-out infinite;}
  @keyframes ag-sheen{0%{left:-60%;}55%,100%{left:130%;}}
  @keyframes ag-twinkle{0%,100%{opacity:.3;}50%{opacity:1;}}
  @keyframes ag-banner-glow{0%,100%{box-shadow:0 4px 18px rgba(200,153,63,.14);}50%{box-shadow:0 8px 32px rgba(243,217,160,.34);}}
  /* Serving-size note under the price on the order panels */
  .order-portion{margin:7px 0 2px;color:#EBB965;font-style:italic;font-weight:600;font-size:14px;letter-spacing:.01em;}

  /* Cart add-ons / ingredients (U2) */
  .order-ingredients{margin:20px 0;padding:16px 18px;border:1px solid var(--hair-soft);border-radius:8px;background:var(--espresso-2);}
  .order-ingredients-label{font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--flat-gold);margin-bottom:10px;}
  .order-ingredient-row{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--bone);padding:5px 0;}
  .order-addons{margin:24px 0;}
  .order-addons-label{font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--flat-gold);margin-bottom:12px;text-align:center;}
  .order-addon-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid var(--hair-soft);}
  .order-addon-info{font-size:14px;color:var(--bone);}
  .order-addon-info .addon-price{color:var(--muted);margin-left:6px;}
  .order-addon-sold{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;}
  .order-total{text-align:center;font-family:var(--display);font-weight:800;font-size:20px;color:var(--ivory);margin:22px 0 6px;}

  .day-addon-note{font-size:11px;letter-spacing:.04em;color:var(--flat-gold);margin-top:-4px;}

  /* Drinks & sides list (home.js) */
  .sides-drinks-list{max-width:560px;margin:32px auto 0;}
  .sides-drinks-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--hair-soft);font-size:14px;color:var(--bone);}
  .sides-drinks-row:first-child{border-top:none;}

/* Empty cart wrappers (legacy worker / no add-ons) collapse entirely. */
.order-ingredients:empty,.order-addons:empty{display:none;}

/* Sold-out waitlist capture (calendar.js) --------------------------------- */
.wl{margin-top:8px;}
.wl-open{background:none;border:1px solid currentColor;color:inherit;font:inherit;
  font-size:.82rem;padding:6px 10px;border-radius:8px;cursor:pointer;opacity:.85;}
.wl-open:hover{opacity:1;}
.wl-form{display:flex;flex-direction:column;gap:6px;margin-top:6px;}
.wl-email{padding:8px 10px;border:1px solid #cbb8a8;border-radius:8px;font:inherit;font-size:.9rem;}
.wl-submit{font-size:.85rem;padding:8px 10px;}
/* Honeypot: kept in the DOM (bots fill it) but never shown to real users. */
.wl-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;}
.wl-msg{font-size:.8rem;min-height:1em;opacity:.85;}
.wl-done{font-size:.85rem;color:#2e7d32;font-weight:600;}

/* Catering payment note (BNPL visibility) */
.cat-paynote{margin:14px 0 0;font-size:.85rem;color:var(--muted);line-height:1.5;}
.cat-paynote strong{color:inherit;}

/* Catering "good to know" terms summary */
.cat-terms{list-style:none;padding:14px 16px;margin:0 0 22px;border:1px solid rgba(180,150,110,.35);
  border-radius:12px;background:rgba(180,150,110,.06);display:grid;gap:6px;font-size:.9rem;line-height:1.5;}
.cat-terms li{padding-left:20px;position:relative;}
.cat-terms li::before{content:"•";position:absolute;left:6px;color:var(--gold,#b4966e);}

/* Hero call-in option — prominent phone CTA near the top (owner: many customers
   prefer the traditional call-in). */
.hero-phone{display:inline-flex;align-items:center;gap:8px;margin-top:20px;
  font-size:1.15rem;font-weight:600;color:var(--champagne,#ebb965);text-decoration:none;
  padding:10px 18px;border:1px solid var(--hair,rgba(235,185,101,.4));border-radius:999px;
  transition:background .2s,border-color .2s;}
.hero-phone strong{color:#fff;letter-spacing:.01em;}
.hero-phone:hover{background:rgba(235,185,101,.10);border-color:var(--champagne,#ebb965);}
@media (max-width:520px){.hero-phone{font-size:1.05rem;}}

/* Hero "As Seen on Fox 16" photo (owner-supplied, self-hosted). Centered under
   the headline — robust on every viewport; portrait, so width-capped. */
.hero-photo{margin:30px auto 0;max-width:250px;}
/* aspect-ratio + object-fit guarantee the portrait never distorts ("smooshes") no
   matter the container. Larger on desktop where the hero has room. */
.hero-photo img{width:100%;height:auto;aspect-ratio:800/1422;object-fit:cover;display:block;border-radius:16px;border:1px solid var(--hair,rgba(235,185,101,.45));box-shadow:0 14px 44px rgba(0,0,0,.5);}
.hero-photo-tag{display:block;margin-top:12px;text-align:center;font-size:.82rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--champagne,#ebb965);}
@media (min-width:900px){ .hero-photo{max-width:380px;} }

/* "Preorder Another Day" sized to match the Place Order button (full-width,
   same padding/font). Scoped class — base .btn is untouched so other pages,
   incl. the frozen order page, render unchanged. */
.btn-preorder-lg{display:block;width:100%;max-width:560px;margin:0 auto;padding:17px;font-size:15px;}

/* Stacked "Preorder / Calendar" nav label — Calendar sits directly below Preorder. */
.nav-links a.nav-stack{text-align:center;line-height:1.05;}

/* ── Kitchen tip controls (shared) ──────────────────────────────────────────
   Lived inline in order.html only, which is why the homepage panel had no tip
   UI even though it loads the same order.js. Moved here so every ordering
   surface shares ONE definition instead of each page carrying its own copy —
   the duplicated-state pattern that has bitten this project repeatedly. Used
   by index.html and catering.html (and order.html until it is retired). */
.order-tip{margin:16px 0 6px}
.order-tip-label{display:block;font-size:13px;color:var(--bone);margin-bottom:8px}
.order-tip-note{color:var(--muted)}
.order-tip-btns{display:flex;flex-wrap:wrap;gap:8px}
.order-tip-btn{padding:7px 14px;border:1px solid rgba(239,233,220,.25);border-radius:999px;background:transparent;color:var(--bone);font-size:13px;cursor:pointer}
.order-tip-btn.active{border-color:var(--flat-gold);color:var(--flat-gold)}
.order-tip-custom{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--bone);font-size:13px}
.order-tip-custom input{width:90px;padding:7px 10px}
