@layer base{*,*::before,*::after{box-sizing:border-box;}html,body{width:100%;max-width:100%;margin:0;padding:0;}body{overscroll-behavior:none;overflow-x:clip;}main>:first-child{margin-top:0!important;}main>:last-child{margin-bottom:0!important;}}::-webkit-scrollbar{display:none;}

:root { --ink:#032521; --coral:#a23e18; --cream:#fff8f8; --line:rgba(3,37,33,.12); }
  html { scroll-behavior:smooth; }
  body { background:var(--cream); overflow-x:clip; }
  body::before { content:""; position:fixed; inset:0; pointer-events:none; z-index:60; opacity:.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E"); }
  header { transition:box-shadow .35s ease, background .35s ease, transform .35s ease; overflow:hidden; }
  header.is-scrolled { box-shadow:0 12px 30px rgba(3,37,33,.12)!important; background:rgba(255,248,248,.97)!important; }
  .header-brand { align-items:stretch!important; flex:1 1 auto; min-width:0; flex-direction:column; gap:0!important; }
  .header-brand a { gap:0!important; }
  .header-brand-title { width:100%; box-sizing:border-box; justify-content:center; color:#fff; background:#f71919; padding:30px .65rem; border-radius:.2rem .2rem 0 0; }
  .header-brand-copy { min-width:0; flex:0 1 auto; display:flex; flex-direction:column; align-items:center; justify-content:center; }
  .header-main { min-height:6.2rem; padding-top:.75rem; padding-bottom:.75rem; box-sizing:border-box; }
  .header-logo { width:5rem; height:5rem; border-radius:50%; object-fit:cover; flex-shrink:0; }
  .header-brand-name { color:#fff!important; font-size:1.85rem!important; line-height:1.1; font-weight:800; text-transform:uppercase; }
  .header-hours { align-self:flex-start!important; padding:0!important; margin:0!important; }
  .header-address { display:block; width:100%; box-sizing:border-box; padding:.18rem 0 0; color:#fff!important; font-size:.78rem; font-weight:700; letter-spacing:.08em; text-align:center; }
  .header-hours { width:100%; box-sizing:border-box; padding:.12rem 0 0!important; color:#fff!important; }
  .header-hours .material-symbols-outlined { color:#fff!important; }
  .header-menu-inner { width:calc(100% - 2rem); max-width:1200px; box-sizing:border-box; background:#f5eced; border-radius:.35rem; }
  .menu-content { box-sizing:border-box; }
  .content-shell { width:100%; min-width:0; }
  .content-stage { width:100%; min-width:0; }
  main.w-full.pt-20 { padding-top:9rem!important; }
  a, button { -webkit-tap-highlight-color:transparent; }
  a:not([href^="tel"]):not([href^="mailto"]):not([href^="http"]):not([href^="#"]), button { cursor:pointer; }
  #carousel-track { will-change:transform; }
  .best-seller-carousel { width:calc(100% - 2rem); max-width:1200px; margin-left:auto; margin-right:auto; box-sizing:border-box; }
  .best-seller-carousel > div { width:100%; }
  #carousel-track > div { flex:0 0 100%; width:100%; min-width:100%; box-sizing:border-box; }
  #carousel-track > div { transition:transform .55s cubic-bezier(.2,.8,.2,1), opacity .55s ease; }
  #carousel-track > div:hover { transform:translateY(-5px); }
  section[id] { scroll-margin-top:9rem; }
  main article { position:relative; transition:opacity .35s ease, transform .35s ease, background .35s ease; }
  main article::after { content:""; position:absolute; left:0; right:0; bottom:-.65rem; height:1px; background:linear-gradient(90deg,var(--coral),transparent 70%); transform:scaleX(0); transform-origin:left; transition:transform .35s ease; }
  main article:hover { transform:translateX(5px); }
  main article:hover::after { transform:scaleX(1); }
  .reveal { opacity:0; transform:translateY(24px); }
  .reveal.is-visible { opacity:1; transform:none; }
  .filter-active { background:#032521!important; color:#fff!important; box-shadow:0 6px 16px rgba(3,37,33,.18); }
  .floating-orb { position:absolute; width:18rem; height:18rem; right:-5rem; top:-8rem; border-radius:50%; background:radial-gradient(circle,rgba(254,131,87,.28),transparent 68%); animation:floatOrb 7s ease-in-out infinite; pointer-events:none; }
  @keyframes floatOrb { 0%,100%{transform:translate3d(0,0,0)} 50%{transform:translate3d(-18px,14px,0)} }
  .modal-backdrop { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:1rem; background:rgba(3,37,33,.58); backdrop-filter:blur(10px); opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease; }
  .modal-backdrop.is-open { opacity:1; visibility:visible; }
  .booking-modal { width:min(100%, 30rem); max-width:30rem; background:var(--cream); border-radius:1rem; padding:2rem; box-shadow:0 24px 80px rgba(0,0,0,.25); transform:translateY(18px) scale(.97); transition:transform .35s ease; }
  .modal-backdrop.is-open .booking-modal { transform:none; }
  .booking-modal input, .booking-modal select { width:100%; border:1px solid var(--line); background:#fff; border-radius:.5rem; padding:.75rem; box-sizing:border-box; font:inherit; color:var(--ink); }
  .booking-modal input:focus, .booking-modal select:focus { outline:2px solid rgba(162,62,24,.3); border-color:var(--coral); }
  @media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } .reveal { opacity:1; transform:none; } }
  @media (max-width:640px) { .booking-modal { padding:1.35rem; } .best-seller-carousel { width:calc(100% - 2rem); } main article:hover { transform:none; } }
  @media (max-width:640px) {
    :root { --mobile-gutter:1rem; --mobile-content-width:calc(100% - (var(--mobile-gutter) * 2)); }
    main.w-full.pt-20 { padding-top:8rem!important; overflow-x:clip; }
    header > div:first-child { width:var(--mobile-content-width)!important; max-width:none!important; min-height:5.8rem; margin-left:auto!important; margin-right:auto!important; align-items:flex-start; gap:.4rem; padding:.55rem 0 0!important; box-sizing:border-box; }
    header > div:first-child > .header-brand { width:100%; max-width:100%; }
    .header-brand-title { padding:30px .35rem; gap:.25rem; text-align:center; }
    .header-logo { width:3.5rem; height:3.5rem; }
    .header-brand-name { min-width:0; max-width:100%; font-size:clamp(.9rem,4.2vw,1.05rem)!important; line-height:1.15; letter-spacing:-.02em; white-space:normal; overflow:visible; }
    .header-brand a > span:last-child { font-size:.52rem; line-height:.7rem; }
    .header-hours { font-size:.65rem; gap:.2rem; padding-top:0!important; padding-bottom:.2rem!important; }
    .header-hours .material-symbols-outlined { font-size:14px; }
    .header-hours > span:last-child { display:none; }
    header > div:first-child > div:last-child { flex-shrink:0; }
    .header-menu-inner { width:var(--mobile-content-width)!important; max-width:none!important; margin-left:auto!important; margin-right:auto!important; }
    .content-shell { width:100%!important; max-width:100vw!important; min-width:0!important; align-self:stretch!important; }
    .content-stage { width:100%!important; max-width:100vw!important; min-width:0!important; margin:0!important; padding-left:0!important; padding-right:0!important; box-sizing:border-box!important; }
    .menu-content { display:flex!important; width:var(--mobile-content-width)!important; max-width:none!important; min-width:0!important; flex:0 0 var(--mobile-content-width)!important; align-self:center!important; margin-left:auto!important; margin-right:auto!important; padding-left:0!important; padding-right:0!important; box-sizing:border-box!important; }
    .menu-content > section { width:100%!important; min-width:0; }
    .best-seller-carousel { display:block!important; width:var(--mobile-content-width)!important; max-width:none!important; min-width:0!important; margin-left:auto!important; margin-right:auto!important; padding-left:0!important; padding-right:0!important; box-sizing:border-box!important; overflow:hidden!important; }
    .best-seller-carousel > div { width:100%!important; min-width:0; }
    .best-seller-carousel > div > div { width:100%!important; min-width:0; }
    #carousel-track { width:100%!important; min-width:0; }
    #carousel-track > div { width:100%!important; min-width:100%!important; flex-basis:100%!important; }
    .menu-content .grid { width:100%!important; min-width:0; }
    footer > div { width:var(--mobile-content-width)!important; max-width:none!important; margin-left:auto!important; margin-right:auto!important; padding-left:0!important; padding-right:0!important; box-sizing:border-box!important; }
    aside[aria-label="Quick Guest Inquiries"] { position:fixed!important; left:auto!important; right:1rem!important; width:3rem!important; max-width:3rem!important; overflow:visible; align-items:stretch!important; z-index:60!important; transform:none!important; }
    aside[aria-label="Quick Guest Inquiries"] > a { width:3rem!important; height:3rem!important; max-width:3rem!important; padding:.2rem!important; box-sizing:border-box; justify-content:center; }
    aside[aria-label="Quick Guest Inquiries"] > a > div { width:2.6rem!important; height:2.6rem!important; flex-shrink:0; }
  }

  .cart-float-button { position:relative; width:3rem; height:3rem; border:0; border-radius:999px; background:var(--coral); color:#fff; box-shadow:0 8px 24px rgba(35,31,32,.2); display:flex; align-items:center; justify-content:center; margin-bottom:.25rem; }
  .header-branch { display:block; width:100%; color:#fff; font-size:.78rem; font-weight:700; line-height:1.1; text-align:center; letter-spacing:.08em; }
  .cart-float-button b { position:absolute; top:-.3rem; right:-.25rem; min-width:1.25rem; height:1.25rem; padding:0 .2rem; border-radius:999px; background:#f71919; color:#fff; font:700 .72rem/1.25rem Arial,sans-serif; }
  .cart-modal-backdrop,.cart-drawer-backdrop { position:fixed; inset:0; z-index:110; background:rgba(3,37,33,.58); backdrop-filter:blur(8px); opacity:0; visibility:hidden; transition:opacity .25s ease,visibility .25s ease; }
  .cart-modal-backdrop.is-open,.cart-drawer-backdrop.is-open { opacity:1; visibility:visible; }
  .cart-guide-backdrop { position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:1rem; background:rgba(3,37,33,.58); backdrop-filter:blur(8px); opacity:0; visibility:hidden; transition:opacity .25s ease,visibility .25s ease; }
  .cart-guide-backdrop.is-open { opacity:1; visibility:visible; }
  .cart-guide-modal { position:relative; width:min(100%,22rem); padding:2rem 1.5rem 1.5rem; border-radius:1rem; background:var(--cream); box-shadow:0 24px 80px rgba(0,0,0,.28); text-align:center; }
  .cart-guide-modal .cart-close { position:absolute; top:.7rem; right:.9rem; }
  .cart-guide-icon { color:var(--coral); font-size:2.4rem; }
  .cart-guide-modal h2 { color:var(--ink); font:700 1.5rem/1.15 EB Garamond,serif; margin:.65rem 0 .5rem; }
  .cart-guide-modal p { color:#44645f; font-size:.9rem; line-height:1.5; margin:0; }
  .cart-guide-modal .cart-add-button { position:static; margin-top:1.25rem; }
  .cart-product-modal { width:min(100% - 2rem,30rem); height:min(calc(100dvh - 2rem),42rem); max-height:calc(100vh - 2rem); overflow:hidden; margin:1rem auto; background:var(--cream); border-radius:1rem; box-shadow:0 24px 80px rgba(0,0,0,.28); position:relative; transform:translateY(1rem); transition:transform .25s ease; display:flex; flex-direction:column; }
  .cart-modal-backdrop.is-open .cart-product-modal { transform:none; }
  .cart-close { border:0; background:transparent; color:var(--ink); font-size:1.8rem; line-height:1; cursor:pointer; }
  .cart-product-modal > .cart-close { position:absolute; top:.7rem; right:.9rem; z-index:4; background:rgba(255,255,255,.82); width:2rem; height:2rem; border-radius:50%; }
  .cart-product-scroll { overflow-y:auto; overflow-x:hidden; min-height:0; flex:1 1 auto; }
  .cart-product-image { display:block; width:100%; height:auto; aspect-ratio:1 / 1; object-fit:cover; flex:none; mask-image:linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%); -webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 72%, transparent 100%); }
  .cart-product-image[src=""] { display:block; height:auto; aspect-ratio:1 / 1; flex:0 0 auto; background:#f5eced; }
  .cart-line img[src=""] { visibility:hidden; }
  .cart-product-body { padding:0 1.25rem 1.5rem; overflow:visible; }
  .cart-eyebrow { color:var(--coral); font:700 .7rem/1.2 Plus Jakarta Sans,sans-serif; letter-spacing:.12em; margin:0 0 .35rem; }
  .cart-product-body h2,.cart-drawer h2 { color:var(--ink); font:700 1.55rem/1.15 EB Garamond,serif; margin:.2rem 0 .5rem; }
  .cart-description { color:#44645f; font-size:.84rem; margin:0 0 1rem; }
  .cart-option-group { margin-top:1rem; }
  .cart-option-group > strong { display:block; color:var(--ink); font-size:.85rem; margin-bottom:.45rem; }
  .cart-option-group > strong span { color:#718782; font-weight:400; }
  .cart-size-options,.cart-topping-options { display:flex; flex-wrap:wrap; gap:.45rem; }
  .cart-size-options label,.cart-topping-options label { display:flex; align-items:center; gap:.35rem; border:1px solid var(--line); border-radius:.5rem; background:#fff; padding:.5rem .65rem; color:var(--ink); font-size:.78rem; cursor:pointer; }
  .cart-size-options label:has(input:checked),.cart-topping-options label:has(input:checked) { border-color:var(--coral); background:#fff0ec; }
  .cart-size-options input,.cart-topping-options input { accent-color:var(--coral); }
  .cart-topping-options em { color:var(--coral); font-style:normal; margin-left:.2rem; }
  .cart-product-footer,.cart-drawer-footer > div { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1.25rem; }
  .cart-quantity { display:flex; align-items:center; gap:.85rem; border:1px solid var(--line); border-radius:999px; padding:.2rem .55rem; background:#fff; }
  .cart-quantity button,.cart-line-controls button { border:0; background:transparent; color:var(--coral); font-size:1.2rem; cursor:pointer; }
  .cart-product-total,.cart-drawer-footer strong { color:var(--coral); font-size:1.1rem; }
  .cart-shipping-note { display:block; width:100%; margin:.2rem 0 0; color:#718782; font-size:.78rem; font-weight:600; text-align:right; white-space:nowrap; }
  .cart-order-hint { margin:.85rem 0 .35rem; color:#718782; font-size:.86rem; font-weight:700; line-height:1.45; text-align:center; }
  .cart-add-button { width:100%; border:0; border-radius:.55rem; padding:.8rem 1rem; margin-top:1rem; background:var(--ink); color:#fff; font-weight:700; cursor:pointer; position:sticky; bottom:0; z-index:3; box-shadow:0 -10px 18px rgba(255,248,248,.95); }
  .cart-product-modal > .cart-add-button { flex:0 0 auto; width:calc(100% - 2.5rem); margin:1rem 1.25rem; }
  .cart-drawer-backdrop { display:flex; justify-content:flex-end; }
  .cart-drawer { width:min(100%,26rem); height:100%; overflow:auto; background:var(--cream); padding:1.25rem; box-shadow:-12px 0 40px rgba(0,0,0,.2); transform:translateX(100%); transition:transform .25s ease; }
  .cart-drawer-backdrop.is-open .cart-drawer { transform:none; }
  .cart-drawer-header { display:flex; justify-content:space-between; align-items:flex-start; border-bottom:1px solid var(--line); padding-bottom:1rem; }
  .cart-drawer-header h2 { margin:.2rem 0 0; }
  .cart-line { display:flex; gap:.75rem; padding:1rem 0; border-bottom:1px solid var(--line); }
  .cart-line img { width:4rem; height:4rem; border-radius:.5rem; object-fit:cover; }
  .cart-line-info { min-width:0; flex:1; display:grid; gap:.25rem; }
  .cart-line-info strong { color:var(--ink); font-size:.85rem; }
  .cart-line-info small { color:#718782; line-height:1.35; }
  .cart-line-info b { color:var(--coral); }
  .cart-line-controls { display:flex; align-items:center; gap:.5rem; }
  .cart-line-controls button { font-size:1rem; }
  .cart-line-controls .cart-remove { color:#718782; font-size:.72rem; margin-left:auto; }
  .cart-empty { text-align:center; color:#718782; padding:3rem 1rem; line-height:1.6; }
  .cart-drawer-footer { padding-top:1rem; }
  .cart-drawer-footer .cart-add-button { margin-top:1rem; }
  .cart-drawer-footer [data-order] { background:#f71919; }
  .cart-drawer-footer [data-order].is-empty { background:#9aa7a4; }
  .cart-drawer-footer p { color:var(--coral); font-size:.78rem; text-align:center; min-height:1.1rem; }
  @media (max-width:640px) { .cart-drawer { width:100%; } .cart-product-modal { width:calc(100% - 40px); height:calc(100dvh - 40px); max-height:calc(100vh - 40px); margin:20px auto; border-radius:1rem; } }
