    :root { color-scheme: light; --header-height: 76px; }
    * { box-sizing: border-box; }
    html, body { overflow-x: clip; }
    body {
      margin: 0;
      background:
        radial-gradient(circle at 7% 4%, rgba(182,90,61,.08), transparent 25rem),
        radial-gradient(circle at 98% 38%, rgba(76,124,139,.07), transparent 24rem),
        #f6f0e6;
      color: #292820;
      font-family: "DM Sans", system-ui, sans-serif;
      text-rendering: optimizeLegibility;
    }
    ::selection { background: #e2e8d9; color: #27301f; }
    :focus-visible { outline: 3px solid rgba(76,124,139,.82); outline-offset: 3px; }
    .text-balance { text-wrap: balance; }
    .reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
    .reveal.is-visible { opacity: 1; transform: none; }

    .hero-carousel { position: absolute; inset: 0; background: #27301f; touch-action: pan-y; user-select: none; }
    .hero-slide { position: absolute; inset: 0; opacity: 0; transform: scale(1.025); transition: opacity .8s ease, transform 6s ease; pointer-events: none; }
    .hero-slide.is-active { opacity: 1; transform: scale(1); pointer-events: auto; }
    .hero-slide img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
    .hero-fallback {
      position: absolute; inset: 0;
      background:
        radial-gradient(circle at 75% 24%, rgba(246,240,230,.14), transparent 22rem),
        linear-gradient(135deg, #52603d 0%, #27301f 52%, #1b2116 100%);
    }
    .hero-shade {
      position: absolute; inset: 0; z-index: 1;
      background: linear-gradient(90deg, rgba(22,28,18,.95) 0%, rgba(22,28,18,.76) 43%, rgba(22,28,18,.18) 76%),
                  linear-gradient(0deg, rgba(22,28,18,.5), transparent 48%);
    }
    .hero-control { display:grid; width:46px; height:46px; place-items:center; border:1px solid rgba(255,255,255,.3); border-radius:999px; background:rgba(39,48,31,.66); color:white; backdrop-filter:blur(12px); transition:.18s ease; }
    .hero-control:hover { transform: translateY(-2px); background:rgba(39,48,31,.9); }
    .hero-dot { width:9px; height:9px; border:0; padding:0; border-radius:999px; background:rgba(255,255,255,.45); transition:.2s ease; }
    .hero-dot[aria-current="true"] { width:30px; background:white; }

    .menu-tab[aria-selected="true"] { color:#fffdf8 !important; background:#53603d !important; border-color:#53603d !important; box-shadow:0 8px 22px rgba(62,73,47,.18); }
    .menu-tab[aria-selected="true"] * { color:inherit !important; }
    .menu-panel[hidden] { display:none; }
    .dish-card img { width:100%; height:13rem; object-fit:cover; }

    .meal-choice { border:1px solid rgba(104,117,78,.22); background:rgba(255,253,248,.78); transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease; }
    .meal-choice:hover { border-color:rgba(83,96,61,.55); transform:translateY(-2px); }
    .meal-choice.is-selected { border-color:#53603d; background:#f1f4ec; box-shadow:0 12px 30px rgba(51,42,31,.08); }
    .meal-choice.is-selected .choice-indicator { border-color:#53603d; background:#53603d; box-shadow:inset 0 0 0 4px #f1f4ec; }
    .choice-indicator { width:1.15rem; height:1.15rem; flex:0 0 auto; border:2px solid rgba(83,96,61,.5); border-radius:999px; }

    .booking-step { border:1px solid rgba(104,117,78,.16); border-radius:1.5rem; background:rgba(246,240,230,.5); padding:1.25rem; }
    .booking-step-number { display:grid; width:2rem; height:2rem; flex:0 0 auto; place-items:center; border-radius:999px; background:#53603d; color:#fffdf8; font-size:.78rem; font-weight:800; }
    .field-control { width:100%; border:1px solid rgba(104,117,78,.28); border-radius:1rem; background:rgba(255,253,248,.94); padding:.85rem 1rem; color:#292820; transition:.18s ease; }
    .field-control:hover { border-color:rgba(104,117,78,.58); }
    .field-control:focus { border-color:#4c7c8b; box-shadow:0 0 0 4px rgba(76,124,139,.14); outline:none; }
    .field-control[aria-invalid="true"] { border-color:#98462f; }

    .availability-calendar { position:relative; border:1px solid rgba(104,117,78,.18); border-radius:1.5rem; background:#fffdf8; padding:.75rem; min-height:28rem; }
    .calendar-weekdays, .calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
    .calendar-weekdays { gap:2px; margin-top:.75rem; }
    .calendar-weekday { padding:.5rem .15rem; text-align:center; color:rgba(41,40,32,.5); font-size:.66rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
    .calendar-grid { gap:3px; }
    .calendar-day, .calendar-blank { min-height:4.4rem; }
    .calendar-day { display:flex; min-width:0; flex-direction:column; align-items:flex-start; justify-content:space-between; border:1px solid transparent; border-radius:.85rem; padding:.55rem .5rem; text-align:left; transition:.16s ease; }
    .calendar-day-number { font-size:.9rem; font-weight:800; line-height:1; }
    .calendar-day-meta { width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.6rem; font-weight:800; line-height:1.15; }
    .calendar-day.is-available { border-color:rgba(83,96,61,.48); background:#f1f4ec; color:#27301f; cursor:pointer; }
    .calendar-day.is-available:hover { border-color:#53603d; background:#e2e8d9; transform:translateY(-1px); }
    .calendar-day.is-available .calendar-day-meta { color:#53603d; }
    .calendar-day.is-full { background:#f2f2ef; color:#999b95; cursor:not-allowed; }
    .calendar-day.is-full .calendar-day-meta { color:#999b95; font-weight:700; }
    .calendar-day.is-unavailable { background:transparent; color:#b1b2ae; cursor:not-allowed; }
    .calendar-day.is-unavailable .calendar-day-number { text-decoration:line-through; text-decoration-thickness:1px; }
    .calendar-day.is-unavailable .calendar-day-meta { display:none; }
    .calendar-day[aria-pressed="true"] { border-color:#53603d; background:#53603d; color:#fffdf8; box-shadow:0 8px 20px rgba(62,73,47,.2); }
    .calendar-day[aria-pressed="true"] .calendar-day-meta { color:rgba(255,253,248,.9); }
    .calendar-disabled-overlay { position:absolute; inset:.75rem; z-index:2; display:grid; place-items:center; border-radius:1.1rem; background:rgba(255,253,248,.93); text-align:center; }
    .seat-progress-track { height:.55rem; overflow:hidden; border-radius:999px; background:#e2e8d9; }
    .seat-progress-fill { height:100%; width:0; border-radius:inherit; background:#53603d; transition:width .25s ease; }

    .button-shine { position:relative; overflow:hidden; }
    .button-shine::after { content:''; position:absolute; inset:-2px auto -2px -42%; width:35%; transform:skewX(-18deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent); transition:left .45s ease; }
    .button-shine:hover::after { left:118%; }
    .spinner { width:1.1rem; height:1.1rem; border:2px solid rgba(255,255,255,.45); border-top-color:white; border-radius:999px; animation:spin .7s linear infinite; }
    @keyframes spin { to { transform:rotate(360deg); } }

    @media (max-width:767px) {
      .hero-shade { background:linear-gradient(0deg,rgba(22,28,18,.98) 0%,rgba(22,28,18,.84) 49%,rgba(22,28,18,.2) 84%); }
      .hero-slide img { object-position:center 30%; }
      .calendar-day, .calendar-blank { min-height:3.6rem; }
      .calendar-day { padding:.45rem .35rem; }
      .calendar-day-meta { font-size:.52rem; letter-spacing:-.01em; }
      .calendar-weekday { font-size:.56rem; }
      .dish-card img { height:11rem; }
    }
    @media (orientation:landscape) and (max-height:650px) {
      #home { min-height:650px; }
      #home .hero-copy { padding-top:5.25rem; padding-bottom:4.5rem; }
      #home h1 { font-size:clamp(2.7rem,7vw,4.5rem); }
      #home .hero-subtitle { margin-top:1rem; font-size:1rem; line-height:1.55; }
      #home .hero-actions { margin-top:1.25rem; }
      #home .hero-stats { margin-top:1.35rem; padding-top:.8rem; padding-bottom:.8rem; }
    }
    @media (prefers-reduced-motion:reduce) {
      *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
      .reveal { opacity:1; transform:none; }
    }
