  /* ============================================
     DESIGN TOKENS — Field & Musket
     Palette: deep forest green, weathered amber/brass,
     bone cream, charcoal. Warm, appetizing, historic.
  ============================================ */
  :root{
    --forest-950: #0f1a13;
    --forest-900: #142819;
    --forest-800: #1c3524;
    --forest-700: #274731;
    --forest-600: #345c40;
    --amber-700: #a5711f;
    --amber-600: #c98a2c;
    --amber-500: #dfa23f;
    --amber-300: #eec87e;
    --bone-50:  #faf6ec;
    --bone-100: #f4ede1;
    --bone-200: #e9dfc9;
    --charcoal-900: #191614;
    --charcoal-700: #3a342d;
    --charcoal-500: #6b6154;

    --color-bg: var(--bone-50);
    --color-surface: #ffffff;
    --color-ink: var(--charcoal-900);
    --color-ink-soft: var(--charcoal-700);
    --color-primary: var(--forest-800);
    --color-primary-dark: var(--forest-950);
    --color-accent: var(--amber-600);
    --color-accent-light: var(--amber-300);
    --color-border: var(--bone-200);

    --font-head: 'Outfit', system-ui, sans-serif;
    --font-serif: 'Instrument Serif', Georgia, serif;
    --font-mono: 'JetBrains Mono', 'Courier New', monospace;

    --radius-sm: 6px;
    --radius-md: 12px;
    --radius-lg: 22px;
    --shadow-soft: 0 12px 32px -12px rgba(15,26,19,0.28);
    --shadow-card: 0 2px 10px rgba(25,22,20,0.06), 0 1px 2px rgba(25,22,20,0.08);

    --maxw: 1180px;
    --gutter: clamp(1.25rem, 4vw, 3rem);

    --ease: cubic-bezier(.22,.61,.36,1);
  }

  *,*::before,*::after{ box-sizing: border-box; }
  html{ scroll-behavior: smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior: auto; }
    *,*::before,*::after{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
  }

  body{
    margin:0;
    font-family: var(--font-head);
    background: var(--color-bg);
    color: var(--color-ink);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }

  img{ max-width:100%; display:block; }
  a{ color: inherit; }
  h1,h2,h3,h4{ margin:0; font-family: var(--font-head); font-weight:700; letter-spacing:-0.01em; }
  p{ margin:0; }
  ul{ margin:0; padding:0; list-style:none; }
  button{ font-family: inherit; }

  .wrap{
    max-width: var(--maxw);
    margin-inline: auto;
    padding-inline: var(--gutter);
  }

  .eyebrow{
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-accent-700, var(--amber-700));
  }
  .eyebrow--light{ color: var(--amber-300); }

  .serif-quote{ font-family: var(--font-serif); font-style: italic; }

  /* Skip link */
  .skip-link{
    position:absolute;
    left: 1rem; top: -60px;
    background: var(--color-primary-dark);
    color: var(--bone-50);
    padding: 0.75rem 1.25rem;
    border-radius: var(--radius-sm);
    z-index: 200;
    transition: top 0.2s var(--ease);
    text-decoration:none;
    font-weight:600;
  }
  .skip-link:focus{ top: 1rem; }

  :focus-visible{
    outline: 3px solid var(--amber-500);
    outline-offset: 3px;
    border-radius: 4px;
  }

  /* ============ Buttons ============ */
  .btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:0.5rem;
    padding: 0.85rem 1.6rem;
    border-radius: 999px;
    font-weight: 600;
    font-size: 0.95rem;
    border: 2px solid transparent;
    cursor: pointer;
    text-decoration:none;
    transition: transform 0.18s var(--ease), background 0.18s var(--ease), color 0.18s var(--ease), border-color 0.18s var(--ease), box-shadow 0.18s var(--ease);
    white-space: nowrap;
  }
  .btn:hover{ transform: translateY(-2px); }
  .btn-primary{
    background: var(--color-accent);
    color: var(--forest-950);
    box-shadow: 0 8px 20px -8px rgba(201,138,44,0.6);
  }
  .btn-primary:hover{ background: var(--amber-500); }
  .btn-outline{
    background: transparent;
    border-color: currentColor;
    color: inherit;
  }
  .btn-outline:hover{ background: rgba(255,255,255,0.12); }
  .btn-ghost-dark{
    background: transparent;
    border-color: var(--forest-800);
    color: var(--forest-800);
  }
  .btn-ghost-dark:hover{ background: var(--forest-800); color: var(--bone-50); }
  .btn-sm{ padding: 0.6rem 1.15rem; font-size: 0.85rem; }
  .btn-block{ width:100%; }

  /* ============ Header ============ */
  .site-header{
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(15,26,19,0.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(238,200,126,0.15);
  }
  .header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: 1rem;
    padding-block: 0.9rem;
  }
  .wordmark{
    display:flex;
    align-items:center;
    gap:0.65rem;
    text-decoration:none;
    color: var(--bone-50);
  }
  .wordmark svg{ flex-shrink:0; }
  .wordmark-text{
    display:flex;
    flex-direction:column;
    line-height:1.05;
  }
  .wordmark-text strong{
    font-size: 1.2rem;
    font-weight:700;
    letter-spacing: 0.01em;
  }
  .wordmark-text span{
    font-family: var(--font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--amber-300);
    margin-top: 2px;
  }

  .primary-nav{
    display:flex;
    align-items:center;
    gap: 2rem;
  }
  .primary-nav ul{
    display:flex;
    gap: 1.75rem;
  }
  .primary-nav a:not(.btn){
    color: var(--bone-100);
    text-decoration:none;
    font-weight:500;
    font-size: 0.95rem;
    position:relative;
    padding-block: 0.3rem;
  }
  .primary-nav a:not(.btn)::after{
    content:"";
    position:absolute;
    left:0; right:100%; bottom:0;
    height:2px;
    background: var(--amber-500);
    transition: right 0.25s var(--ease);
  }
  .primary-nav a:not(.btn):hover::after,
  .primary-nav a:not(.btn):focus-visible::after{ right:0; }

  .header-cta{ display:flex; align-items:center; gap:1rem; }
  .header-phone{
    display:flex;
    align-items:center;
    gap:0.4rem;
    font-family: var(--font-mono);
    font-size: 0.85rem;
    color: var(--bone-100);
    text-decoration:none;
  }
  .header-phone svg{ color: var(--amber-500); }

  .hamburger{
    display:none;
    background:none;
    border: 1px solid rgba(238,200,126,0.3);
    border-radius: var(--radius-sm);
    width: 44px;
    height: 44px;
    align-items:center;
    justify-content:center;
    color: var(--bone-50);
    cursor:pointer;
  }
  .hamburger svg{ pointer-events:none; }

  .mobile-nav{
    display:none;
    flex-direction:column;
    gap: 0.2rem;
    background: var(--forest-950);
    border-top: 1px solid rgba(238,200,126,0.15);
    padding: 1rem var(--gutter) 1.5rem;
  }
  .mobile-nav a:not(.btn){
    color: var(--bone-100);
    text-decoration:none;
    padding: 0.85rem 0.25rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    font-weight:500;
  }
  .mobile-nav .btn{ margin-top: 1rem; }
  .site-header.nav-open .mobile-nav{ display:flex; }

  @media (max-width: 900px){
    .primary-nav ul{ display:none; }
    .header-phone{ display:none; }
    .hamburger{ display:inline-flex; }
  }

  /* ============ Hero ============ */
  .hero{
    position: relative;
    min-height: 92vh;
    display:flex;
    align-items:flex-end;
    color: var(--bone-50);
    overflow:hidden;
    background: var(--forest-950);
  }
  .hero-media{
    position:absolute; inset:0;
    z-index:0;
  }
  .hero-media img{
    width:100%; height:100%;
    object-fit:cover;
    object-position:center;
  }
  .hero-media::after{
    content:"";
    position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(15,26,19,0.55) 0%, rgba(15,26,19,0.35) 35%, rgba(10,16,11,0.92) 100%),
      linear-gradient(90deg, rgba(15,26,19,0.75) 0%, rgba(15,26,19,0.15) 55%);
  }
  .hero-content{
    position:relative;
    z-index:1;
    padding-block: clamp(3rem, 10vh, 6rem) clamp(3rem, 8vh, 5rem);
    max-width: 780px;
  }
  .hero-content .eyebrow{ color: var(--amber-300); }
  .hero-content h1{
    font-family: var(--font-serif);
    font-weight: 400;
    font-style: italic;
    font-size: clamp(2.6rem, 7vw, 5rem);
    line-height: 1.05;
    margin-block: 0.6rem 1rem;
    text-wrap: balance;
  }
  .hero-content p{
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    color: var(--bone-100);
    max-width: 56ch;
    margin-bottom: 2rem;
  }
  .hero-actions{ display:flex; flex-wrap:wrap; gap: 1rem; }
  .hero-scroll-cue{
    position:absolute;
    right: var(--gutter);
    bottom: 2rem;
    z-index:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:0.5rem;
    color: var(--bone-100);
    font-family: var(--font-mono);
    font-size: 0.65rem;
    letter-spacing:0.2em;
    text-transform:uppercase;
    writing-mode: vertical-rl;
  }
  @media (max-width:700px){ .hero-scroll-cue{ display:none; } }

  /* ============ Section shells ============ */
  section{ position: relative; }
  .section-pad{ padding-block: clamp(3.5rem, 9vw, 7rem); }
  .section-head{ max-width: 680px; margin-bottom: 2.75rem; }
  .section-head h2{
    font-size: clamp(1.9rem, 4.5vw, 2.9rem);
    margin-top: 0.5rem;
  }
  .section-head p{
    margin-top: 1rem;
    color: var(--color-ink-soft);
    font-size: 1.08rem;
  }
  .section-head.center{ margin-inline:auto; text-align:center; }

  .reveal{
    opacity:0;
    transform: translateY(26px);
    transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
  }
  .reveal.is-visible{ opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1; transform:none; transition:none; }
  }

  /* ============ Story ============ */
  .story{ background: var(--color-surface); }
  .story-grid{
    display:grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items:center;
  }
  .story-copy p{ margin-bottom:1.1rem; color: var(--color-ink-soft); font-size:1.05rem; }
  .story-copy p:last-child{ margin-bottom:0; }
  .story-stats{
    display:grid;
    grid-template-columns: repeat(3,1fr);
    gap:1rem;
    margin-top: 2rem;
  }
  .story-stat{
    border-top: 2px solid var(--color-accent);
    padding-top: 0.6rem;
  }
  .story-stat strong{
    display:block;
    font-family: var(--font-serif);
    font-style:italic;
    font-size: 2.1rem;
    color: var(--forest-800);
  }
  .story-stat span{
    font-family: var(--font-mono);
    font-size: 0.68rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color: var(--color-ink-soft);
  }

  .story-panel{
    position:relative;
    aspect-ratio: 4/5;
    border-radius: var(--radius-lg);
    overflow:hidden;
    background:
      radial-gradient(circle at 20% 15%, rgba(238,200,126,0.35), transparent 45%),
      linear-gradient(155deg, var(--forest-700) 0%, var(--forest-950) 75%);
    box-shadow: var(--shadow-soft);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .story-panel::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      repeating-linear-gradient(45deg, rgba(255,255,255,0.035) 0 2px, transparent 2px 14px);
  }
  .story-panel svg{ position:relative; z-index:1; width: 46%; height:auto; color: var(--amber-300); }
  .story-panel .panel-caption{
    position:absolute;
    left:1.5rem; bottom:1.5rem; right:1.5rem;
    z-index:1;
    color: var(--bone-100);
    font-family: var(--font-mono);
    font-size: 0.72rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    border-top: 1px solid rgba(238,200,126,0.3);
    padding-top:0.75rem;
  }

  @media (max-width: 860px){
    .story-grid{ grid-template-columns: 1fr; }
    .story-panel{ order:-1; aspect-ratio: 16/9; }
  }

  /* ============ Menu ============ */
  .menu{ background: var(--forest-950); color: var(--bone-100); }
  .menu .section-head p{ color: var(--bone-100); opacity:0.85; }
  .menu .eyebrow{ color: var(--amber-300); }

  .menu-tabs-note{
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--amber-300);
    letter-spacing: 0.05em;
    margin-bottom: 3rem;
  }

  .menu-categories{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem 3.5rem;
  }
  .menu-cat-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:1rem;
    border-bottom: 1px solid rgba(238,200,126,0.25);
    padding-bottom: 0.6rem;
    margin-bottom: 1.4rem;
  }
  .menu-cat-head h3{
    font-family: var(--font-serif);
    font-style: italic;
    font-weight:400;
    font-size: 1.9rem;
    color: var(--bone-50);
  }
  .menu-cat-head span{
    font-family: var(--font-mono);
    font-size: 0.68rem;
    letter-spacing: 0.14em;
    text-transform:uppercase;
    color: var(--amber-300);
  }
  .menu-item{
    display:flex;
    justify-content:space-between;
    gap: 1rem;
    padding-block: 0.85rem;
    border-bottom: 1px dashed rgba(255,255,255,0.12);
  }
  .menu-item:last-child{ border-bottom:none; }
  .menu-item-name{
    font-weight:600;
    font-size: 1.03rem;
    color: var(--bone-50);
    margin-bottom: 0.25rem;
  }
  .menu-item-desc{
    color: var(--bone-100);
    opacity: 0.72;
    font-size: 0.92rem;
    max-width: 42ch;
  }
  .menu-item-price{
    font-family: var(--font-mono);
    font-weight:600;
    color: var(--amber-300);
    white-space:nowrap;
    align-self:flex-start;
    padding-top: 0.15rem;
  }
  .menu-note{
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(238,200,126,0.2);
    font-size: 0.88rem;
    color: var(--bone-100);
    opacity: 0.75;
  }

  @media (max-width: 860px){
    .menu-categories{ grid-template-columns: 1fr; gap: 2.5rem; }
  }

  /* ============ Specials ============ */
  .specials{ background: var(--bone-100); }
  .specials-grid{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
  }
  .special-card{
    background: var(--color-surface);
    border-radius: var(--radius-md);
    overflow:hidden;
    box-shadow: var(--shadow-card);
    display:flex;
    flex-direction:column;
    border: 1px solid var(--color-border);
  }
  .special-media{
    aspect-ratio: 5/3;
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
  }
  .special-media svg{ width:38%; height:auto; position:relative; z-index:1; }
  .special-media.tone-a{ background: linear-gradient(140deg, var(--forest-600), var(--forest-950)); color: var(--amber-300); }
  .special-media.tone-b{ background: linear-gradient(140deg, var(--amber-600), var(--amber-700) 70%); color: var(--forest-950); }
  .special-media.tone-c{ background: linear-gradient(140deg, var(--charcoal-700), var(--charcoal-900)); color: var(--amber-300); }
  .special-media::before{
    content:"";
    position:absolute; inset:0;
    background-image: repeating-linear-gradient(115deg, rgba(255,255,255,0.06) 0 1px, transparent 1px 10px);
  }
  .special-badge{
    position:absolute;
    top: 0.9rem; left: 0.9rem;
    z-index:2;
    font-family: var(--font-mono);
    font-size: 0.62rem;
    letter-spacing: 0.1em;
    text-transform:uppercase;
    background: rgba(15,26,19,0.75);
    color: var(--amber-300);
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
  }
  .special-body{ padding: 1.5rem; display:flex; flex-direction:column; gap:0.6rem; flex:1; }
  .special-body h3{ font-family: var(--font-serif); font-style:italic; font-weight:400; font-size:1.5rem; }
  .special-body p{ color: var(--color-ink-soft); font-size:0.95rem; flex:1; }
  .special-foot{
    display:flex; justify-content:space-between; align-items:center;
    padding-top:0.5rem; border-top:1px solid var(--color-border);
  }
  .special-price{ font-family: var(--font-mono); font-weight:600; color: var(--amber-700); }
  .special-tag{ font-family: var(--font-mono); font-size:0.7rem; color: var(--color-ink-soft); }

  @media (max-width: 940px){ .specials-grid{ grid-template-columns: 1fr; } }

  /* ============ Gallery ============ */
  .gallery{ background: var(--color-surface); }
  .gallery-grid{
    display:grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 190px;
    gap: 0.9rem;
  }
  .gtile{
    position:relative;
    border-radius: var(--radius-md);
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    color: var(--bone-50);
  }
  .gtile img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
  .gtile-label{
    position:relative; z-index:1;
    padding: 0.9rem 1rem;
    font-family: var(--font-mono);
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform:uppercase;
  }
  .gtile::after{
    content:"";
    position:absolute; inset:0;
    background: linear-gradient(180deg, transparent 40%, rgba(15,26,19,0.75));
  }
  .gtile.photo::after{ background: linear-gradient(180deg, rgba(15,26,19,0.05) 30%, rgba(15,26,19,0.8)); }
  .gtile.big{ grid-column: span 2; grid-row: span 2; }
  .gtile.tone-1{ background: linear-gradient(150deg, var(--forest-700), var(--forest-950)); }
  .gtile.tone-2{ background: linear-gradient(150deg, var(--amber-600), var(--amber-700)); }
  .gtile.tone-3{ background: linear-gradient(150deg, var(--charcoal-700), var(--charcoal-900)); }
  .gtile.tone-4{ background: linear-gradient(150deg, var(--forest-600) 0%, var(--amber-700) 130%); }
  .gtile-icon{
    position:absolute; top:1rem; right:1rem; z-index:1; opacity:0.55;
  }

  @media (max-width: 900px){
    .gallery-grid{ grid-template-columns: repeat(2, 1fr); grid-auto-rows: 160px; }
    .gtile.big{ grid-column: span 2; grid-row: span 1; aspect-ratio: 16/9; height:auto; }
  }

  /* ============ Hours & Location ============ */
  .visit{ background: var(--bone-100); }
  .visit-grid{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 3.5rem);
    align-items:stretch;
  }
  .visit-card{
    background: var(--color-surface);
    border-radius: var(--radius-lg);
    padding: clamp(1.75rem, 3vw, 2.5rem);
    box-shadow: var(--shadow-card);
    border: 1px solid var(--color-border);
  }
  .visit-card h3{
    font-family: var(--font-serif); font-style:italic; font-weight:400;
    font-size:1.7rem; margin-bottom:1.2rem;
  }
  .hours-table{ width:100%; border-collapse: collapse; }
  .hours-table tr{ border-bottom: 1px solid var(--color-border); }
  .hours-table tr:last-child{ border-bottom:none; }
  .hours-table td{ padding: 0.65rem 0; font-size:0.95rem; }
  .hours-table td:first-child{ font-weight:600; color: var(--forest-800); }
  .hours-table td:last-child{ text-align:right; font-family: var(--font-mono); font-size:0.85rem; color: var(--color-ink-soft); }
  .hours-table tr.today td{ color: var(--amber-700); }
  .hours-table tr.today td:first-child::after{
    content:"today"; margin-left:0.5rem; font-family: var(--font-mono);
    font-size:0.6rem; text-transform:uppercase; letter-spacing:0.08em;
    background: var(--amber-300); color: var(--forest-950); padding:0.1rem 0.4rem; border-radius:4px;
  }

  .addr-block{ margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--color-border); }
  .addr-block p{ font-size:0.95rem; color: var(--color-ink-soft); margin-bottom:0.4rem; }
  .addr-block strong{ color: var(--color-ink); }
  .addr-actions{ display:flex; gap:0.75rem; margin-top:1.25rem; flex-wrap:wrap; }

  .map-block{
    border-radius: var(--radius-lg);
    overflow:hidden;
    position:relative;
    min-height: 340px;
    background: var(--forest-950);
    box-shadow: var(--shadow-card);
  }
  .map-grid-lines{
    position:absolute; inset:0;
    background-image:
      linear-gradient(rgba(238,200,126,0.14) 1px, transparent 1px),
      linear-gradient(90deg, rgba(238,200,126,0.14) 1px, transparent 1px);
    background-size: 34px 34px;
  }
  .map-roads{
    position:absolute; inset:0;
  }
  .map-pin{
    position:absolute; left:50%; top:50%;
    transform: translate(-50%,-100%);
    display:flex; flex-direction:column; align-items:center;
    z-index:2;
  }
  .map-pin svg{ filter: drop-shadow(0 6px 10px rgba(0,0,0,0.4)); }
  .map-pin-pulse{
    width:14px; height:14px; border-radius:50%;
    background: rgba(223,162,63,0.35);
    margin-top:-4px;
    animation: pulse 2.4s ease-out infinite;
  }
  @keyframes pulse{
    0%{ transform: scale(0.6); opacity:0.9; }
    100%{ transform: scale(2.6); opacity:0; }
  }
  @media (prefers-reduced-motion: reduce){ .map-pin-pulse{ animation:none; } }
  .map-caption{
    position:absolute; left:1.25rem; bottom:1.25rem; right:1.25rem; z-index:2;
    color: var(--bone-100);
    font-family: var(--font-mono);
    font-size: 0.72rem;
    letter-spacing:0.05em;
    display:flex; justify-content:space-between; align-items:flex-end; gap:1rem;
  }
  .map-compass{ color: var(--amber-300); opacity:0.8; }

  @media (max-width: 860px){ .visit-grid{ grid-template-columns:1fr; } }

  /* ============ Reviews ============ */
  .reviews{ background: var(--color-surface); }
  .reviews-grid{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
  }
  .review-card{
    background: var(--bone-100);
    border-radius: var(--radius-md);
    padding: 1.85rem;
    display:flex;
    flex-direction:column;
    gap: 1rem;
    border: 1px solid var(--color-border);
  }
  .stars{ display:flex; gap:0.2rem; color: var(--amber-600); }
  .review-quote{
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 1.35rem;
    line-height:1.4;
    color: var(--forest-950);
    flex:1;
  }
  .review-author{
    display:flex; align-items:center; gap:0.75rem;
    padding-top:0.75rem; border-top:1px solid var(--color-border);
  }
  .review-avatar{
    width:38px; height:38px; border-radius:50%;
    background: linear-gradient(140deg, var(--forest-600), var(--forest-950));
    display:flex; align-items:center; justify-content:center;
    color: var(--amber-300); font-family: var(--font-head); font-weight:700; font-size:0.9rem;
    flex-shrink:0;
  }
  .review-author strong{ display:block; font-size:0.92rem; }
  .review-author span{ display:block; font-size:0.78rem; color: var(--color-ink-soft); }

  @media (max-width: 940px){ .reviews-grid{ grid-template-columns: 1fr; } }

  /* ============ Reservations ============ */
  .reserve{
    background: var(--forest-950);
    color: var(--bone-100);
    position:relative;
    overflow:hidden;
  }
  .reserve::before{
    content:"";
    position:absolute; inset:0;
    background: radial-gradient(circle at 85% 20%, rgba(223,162,63,0.16), transparent 55%);
  }
  .reserve-grid{
    position:relative; z-index:1;
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items:center;
  }
  .reserve-copy .eyebrow{ color: var(--amber-300); }
  .reserve-copy h2{
    font-family: var(--font-serif); font-style:italic; font-weight:400;
    font-size: clamp(2.1rem, 4vw, 3rem);
    margin-block: 0.6rem 1rem;
  }
  .reserve-copy p{ color: var(--bone-100); opacity:0.85; font-size:1.05rem; max-width:46ch; margin-bottom:1.5rem; }
  .reserve-perks{ display:flex; flex-direction:column; gap:0.75rem; }
  .reserve-perks li{ display:flex; align-items:center; gap:0.65rem; font-size:0.92rem; color:var(--bone-100); }
  .reserve-perks svg{ color: var(--amber-500); flex-shrink:0; }

  .reserve-form{
    background: var(--bone-50);
    color: var(--color-ink);
    border-radius: var(--radius-lg);
    padding: clamp(1.75rem, 3vw, 2.25rem);
    box-shadow: var(--shadow-soft);
  }
  .form-row{ display:grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
  .field{ margin-bottom: 1.1rem; display:flex; flex-direction:column; gap:0.4rem; }
  .field label{
    font-family: var(--font-mono);
    font-size: 0.7rem;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color: var(--forest-800);
    font-weight:600;
  }
  .field input, .field select{
    font-family: var(--font-head);
    font-size: 0.95rem;
    padding: 0.75rem 0.9rem;
    border-radius: var(--radius-sm);
    border: 1.5px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-ink);
  }
  .field input:focus, .field select:focus{ border-color: var(--amber-600); }
  .reserve-form-foot{ display:flex; align-items:center; gap:1rem; margin-top:0.5rem; }
  .reserve-form-note{ font-size:0.78rem; color: var(--color-ink-soft); }
  .form-success{
    display:none;
    align-items:flex-start;
    gap:0.75rem;
    background: rgba(39,71,49,0.08);
    border: 1.5px solid var(--forest-600);
    color: var(--forest-800);
    padding: 1rem 1.1rem;
    border-radius: var(--radius-sm);
    font-size: 0.92rem;
    margin-top: 1rem;
  }
  .form-success.show{ display:flex; }
  .form-success svg{ flex-shrink:0; margin-top:2px; color: var(--forest-700); }

  @media (max-width: 860px){
    .reserve-grid{ grid-template-columns:1fr; }
    .form-row{ grid-template-columns:1fr; }
  }

  /* ============ Footer ============ */
  .site-footer{
    background: var(--charcoal-900);
    color: var(--bone-100);
    padding-block: clamp(3rem, 6vw, 4.5rem) 2rem;
  }
  .footer-grid{
    display:grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 2.5rem;
    padding-bottom: 2.5rem;
    border-bottom: 1px solid rgba(255,255,255,0.1);
  }
  .footer-brand{ display:flex; flex-direction:column; gap:1rem; max-width:320px; }
  .footer-brand p{ font-size:0.9rem; color: var(--bone-100); opacity:0.7; }
  .footer-social{ display:flex; gap:0.65rem; }
  .footer-social a{
    width:38px; height:38px; border-radius:50%;
    border: 1px solid rgba(255,255,255,0.2);
    display:flex; align-items:center; justify-content:center;
    color: var(--bone-100);
    transition: background 0.2s var(--ease), border-color 0.2s var(--ease);
  }
  .footer-social a:hover{ background: var(--amber-600); border-color: var(--amber-600); color: var(--forest-950); }
  .footer-col h4{
    font-family: var(--font-mono);
    font-size: 0.72rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color: var(--amber-300);
    margin-bottom: 1rem;
  }
  .footer-col ul{ display:flex; flex-direction:column; gap:0.65rem; }
  .footer-col a{ text-decoration:none; color: var(--bone-100); opacity:0.82; font-size:0.9rem; }
  .footer-col a:hover{ opacity:1; text-decoration:underline; }
  .footer-col p{ font-size:0.88rem; opacity:0.8; line-height:1.7; }
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
    padding-top: 1.75rem;
    font-size: 0.8rem;
    color: rgba(244,237,225,0.55);
  }
  .footer-bottom a{ text-decoration:underline; color: inherit; }

  @media (max-width: 860px){
    .footer-grid{ grid-template-columns: 1fr 1fr; }
  }
  @media (max-width: 540px){
    .footer-grid{ grid-template-columns: 1fr; }
  }

  /* ============ Concept badge ============ */
  .concept-badge{
    position: fixed;
    right: 1rem;
    bottom: 1rem;
    z-index: 300;
    background: rgba(15,26,19,0.88);
    color: var(--bone-100);
    font-family: var(--font-mono);
    font-size: 0.7rem;
    letter-spacing: 0.03em;
    padding: 0.55rem 0.9rem;
    border-radius: 999px;
    border: 1px solid rgba(238,200,126,0.4);
    text-decoration:none;
    display:flex;
    align-items:center;
    gap:0.4rem;
    backdrop-filter: blur(6px);
    box-shadow: 0 6px 18px rgba(0,0,0,0.25);
  }
  .concept-badge:hover{ background: rgba(28,53,36,0.95); }
  .concept-badge svg{ color: var(--amber-300); flex-shrink:0; }
  @media (max-width:540px){
    .concept-badge span.long{ display:none; }
  }

  /* ============================================
     MULTI-PAGE ADDITIONS — Ridges & Valleys Studio
     (footer/breadcrumb/interior-page/area-page classes,
      all reusing the existing palette tokens above)
  ============================================ */

  /* Active nav state */
  .primary-nav a.is-active:not(.btn){ color: var(--amber-300); }
  .primary-nav a.is-active:not(.btn)::after{ right:0; }
  .mobile-nav a.is-active:not(.btn){ color: var(--amber-300); }

  /* Interior compact page hero */
  .page-hero{
    position:relative;
    background: var(--forest-950);
    color: var(--bone-50);
    overflow:hidden;
    padding-block: clamp(3rem, 8vh, 5rem);
  }
  .page-hero::before{
    content:"";
    position:absolute; inset:0;
    background:
      radial-gradient(circle at 12% 20%, rgba(238,200,126,0.18), transparent 45%),
      linear-gradient(120deg, var(--forest-900), var(--forest-950) 70%);
  }
  .page-hero .wrap{ position:relative; z-index:1; }
  .page-hero .eyebrow{ color: var(--amber-300); }
  .page-hero h1{
    font-family: var(--font-serif);
    font-weight:400; font-style:italic;
    font-size: clamp(2.2rem, 5vw, 3.6rem);
    line-height:1.06;
    margin-block: 0.5rem 1rem;
    max-width: 20ch;
    text-wrap: balance;
  }
  .page-hero p.lede{
    color: var(--bone-100);
    font-size: clamp(1.02rem, 2vw, 1.2rem);
    max-width: 60ch;
    opacity:0.92;
  }

  /* Breadcrumb */
  .breadcrumb{ background: var(--forest-950); border-top:1px solid rgba(238,200,126,0.12); }
  .breadcrumb ol{
    display:flex; flex-wrap:wrap; align-items:center; gap:0.5rem;
    padding-block: 0.85rem;
    font-family: var(--font-mono);
    font-size: 0.72rem;
    letter-spacing:0.04em;
    color: var(--bone-100);
  }
  .breadcrumb li{ display:flex; align-items:center; gap:0.5rem; opacity:0.8; }
  .breadcrumb li[aria-current]{ color: var(--amber-300); opacity:1; }
  .breadcrumb a{ color: var(--bone-100); text-decoration:none; }
  .breadcrumb a:hover{ color: var(--amber-300); text-decoration:underline; }
  .breadcrumb .sep{ color: rgba(238,200,126,0.5); }

  /* Homepage teaser cards */
  .teasers{ background: var(--bone-100); }
  .teasers-grid{
    display:grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.75rem;
  }
  .teaser-card{
    background: var(--color-surface);
    border:1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 1.75rem;
    display:flex; flex-direction:column; gap:0.85rem;
    box-shadow: var(--shadow-card);
    text-decoration:none; color: inherit;
    transition: transform 0.18s var(--ease), box-shadow 0.18s var(--ease), border-color 0.18s var(--ease);
  }
  .teaser-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-soft); border-color: var(--amber-500); }
  .teaser-icon{
    width:46px; height:46px; border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    background: linear-gradient(140deg, var(--forest-600), var(--forest-950));
    color: var(--amber-300);
    flex-shrink:0;
  }
  .teaser-card h3{ font-family: var(--font-serif); font-style:italic; font-weight:400; font-size:1.55rem; }
  .teaser-card p{ color: var(--color-ink-soft); font-size:0.96rem; flex:1; }
  .teaser-more{
    font-family: var(--font-mono); font-size:0.72rem; letter-spacing:0.08em; text-transform:uppercase;
    color: var(--amber-700); font-weight:600;
    display:flex; align-items:center; gap:0.4rem;
  }
  @media (max-width: 940px){ .teasers-grid{ grid-template-columns: 1fr; } }

  /* Long-form / area prose */
  .prose{ max-width: 74ch; }
  .prose h3{
    font-family: var(--font-serif); font-style:italic; font-weight:400;
    font-size: 1.7rem; color: var(--forest-800);
    margin-top: 2.25rem; margin-bottom: 0.75rem;
  }
  .prose h3:first-child{ margin-top:0; }
  .prose p{ color: var(--color-ink-soft); font-size:1.05rem; margin-bottom:1.1rem; }
  .prose ul.bullets{ margin: 0 0 1.2rem; padding-left:0; display:flex; flex-direction:column; gap:0.55rem; }
  .prose ul.bullets li{
    position:relative; padding-left:1.6rem; color: var(--color-ink-soft); font-size:1.02rem;
  }
  .prose ul.bullets li::before{
    content:""; position:absolute; left:0; top:0.55em;
    width:8px; height:8px; border-radius:2px; background: var(--amber-600);
  }
  .prose a{ color: var(--forest-700); text-decoration: underline; text-underline-offset: 2px; }

  /* Two-column info layout for area/visit pages */
  .info-two{
    display:grid; grid-template-columns: 1.4fr 0.9fr;
    gap: clamp(2rem, 5vw, 3.5rem); align-items:start;
  }
  @media (max-width: 900px){ .info-two{ grid-template-columns: 1fr; } }

  /* Sidebar info card */
  .side-card{
    background: var(--color-surface);
    border:1px solid var(--color-border);
    border-radius: var(--radius-lg);
    padding: clamp(1.5rem, 3vw, 2rem);
    box-shadow: var(--shadow-card);
    position: sticky; top: 90px;
  }
  .side-card h3{ font-family: var(--font-serif); font-style:italic; font-weight:400; font-size:1.5rem; margin-bottom:1rem; }
  .side-card dl{ margin:0; display:flex; flex-direction:column; gap:0.85rem; }
  .side-card dt{ font-family: var(--font-mono); font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; color: var(--color-ink-soft); }
  .side-card dd{ margin:0; font-size:0.96rem; color: var(--color-ink); font-weight:500; }
  .side-card dd a{ color: var(--forest-700); text-decoration:none; }
  .side-card dd a:hover{ text-decoration:underline; }
  .side-card .side-actions{ display:flex; flex-direction:column; gap:0.65rem; margin-top:1.4rem; }

  /* Landmark / distance list */
  .landmark-list{ display:flex; flex-direction:column; gap:0; margin-top:0.5rem; }
  .landmark-list .lm{
    display:flex; justify-content:space-between; gap:1rem; align-items:baseline;
    padding-block: 0.8rem; border-bottom:1px dashed var(--color-border);
  }
  .landmark-list .lm:last-child{ border-bottom:none; }
  .landmark-list .lm-name{ font-weight:600; color: var(--color-ink); }
  .landmark-list .lm-name small{ display:block; font-weight:400; color: var(--color-ink-soft); font-size:0.86rem; margin-top:0.15rem; }
  .landmark-list .lm-dist{ font-family: var(--font-mono); font-size:0.82rem; color: var(--amber-700); white-space:nowrap; }

  /* FAQ */
  .faq{ max-width: 780px; }
  .faq-item{ border-bottom:1px solid var(--color-border); padding-block: 1.25rem; }
  .faq-item:first-child{ border-top:1px solid var(--color-border); }
  .faq-item h3{ font-size:1.15rem; margin-bottom:0.5rem; color: var(--forest-800); }
  .faq-item p{ color: var(--color-ink-soft); font-size:1rem; }

  /* Simple content chip row */
  .chip-row{ display:flex; flex-wrap:wrap; gap:0.6rem; margin-top:1.25rem; }
  .chip{
    font-family: var(--font-mono); font-size:0.7rem; letter-spacing:0.06em; text-transform:uppercase;
    background: var(--bone-200); color: var(--forest-800);
    padding:0.4rem 0.8rem; border-radius:999px;
  }

  /* CTA band (reused across pages) */
  .cta-band{ background: var(--forest-950); color: var(--bone-50); text-align:center; }
  .cta-band .eyebrow{ color: var(--amber-300); }
  .cta-band h2{
    font-family: var(--font-serif); font-style:italic; font-weight:400;
    font-size: clamp(2rem, 4vw, 2.9rem); margin-block:0.5rem 1rem;
  }
  .cta-band p{ color: var(--bone-100); opacity:0.9; max-width:52ch; margin-inline:auto; margin-bottom:1.75rem; }
  .cta-band .hero-actions{ justify-content:center; }

  /* Sourcing supplier grid (story page) */
  .supplier-grid{
    display:grid; grid-template-columns: repeat(3,1fr); gap:1.5rem; margin-top:1rem;
  }
  .supplier-card{
    background: var(--color-surface); border:1px solid var(--color-border);
    border-radius: var(--radius-md); padding:1.5rem; box-shadow: var(--shadow-card);
  }
  .supplier-card h3{ font-family: var(--font-serif); font-style:italic; font-weight:400; font-size:1.4rem; margin-bottom:0.4rem; color: var(--forest-800); }
  .supplier-card .supplier-tag{ font-family: var(--font-mono); font-size:0.66rem; letter-spacing:0.1em; text-transform:uppercase; color: var(--amber-700); }
  .supplier-card p{ color: var(--color-ink-soft); font-size:0.95rem; margin-top:0.6rem; }
  @media (max-width: 860px){ .supplier-grid{ grid-template-columns:1fr; } }

  /* Menu page: on light background variant intro */
  .menu-page-intro{ background: var(--bone-100); }

  /* Header shadow once scrolled */
  .site-header.scrolled{ box-shadow: 0 10px 30px -18px rgba(0,0,0,0.7); border-bottom-color: rgba(238,200,126,0.28); }
