:root{
    --charcoal:#22211a; /*#18140f;*/
    --charcoal-2:#221c15;
    --parchment:#fcf9f2; /*f6f1e6;*/
    --parchment-2:#efe8d8;
    --ink:#241f18;
    --ink-soft:#5C574F; /*5b5347;*/
    --copper:#b5652e;
    --herb:#56624a;
    --line:#ddd3c0;
    --line-dark:#3a352c;
    --max:1180px;
    --bf-green:#a8d26e;
    --serif-font:"Cardo";
    --dark-kicker:#85bb41;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
  }

  body{
    margin:0;
    font-family:'Inter',sans-serif;
    color:var(--ink);
    background:var(--parchment);
    line-height:1.55;
  }

  h1,h2,h3,.serif{ font-family:var(--serif-font),serif; font-weight:500;line-height:normal; }

  a{ color:inherit; }
  :focus-visible{ outline:2px solid var(--copper); outline-offset:3px; }

  .wrap{ max-width:var(--max); margin:0 auto; padding:0 32px; }

  /* ---------- NAV ---------- */
  .nav{
    position:fixed; top:0; left:0; right:0; z-index:40;
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 32px;
    color:var(--parchment);
    background:transparent;
    transition:background .25s ease, padding .25s ease, box-shadow .25s ease;
  }
  .nav.scrolled{
    background:var(--charcoal);
    padding:16px 32px;
    /*box-shadow:0 1px 0 var(--line-dark);*/
  }
  .brand{ display:flex; align-items:center; text-decoration:none; }
  .logo-mark{ height:40px; width:auto; display:block; }
  .menu-btn{
    background:none; border:1px solid rgba(246,241,230,.5); color:inherit;
    font-family:'Inter',sans-serif; font-size:.85rem; letter-spacing:.02em;
    padding:9px 18px; border-radius:999px; cursor:pointer;
    display:flex; align-items:center; gap:10px;
    transition:border-color .2s ease, background .2s ease;
  }
  .menu-btn:hover{ border-color:var(--parchment); background:rgba(246,241,230,.08); }
  .menu-btn .bars{ width:16px; height:11px; position:relative; }
  .menu-btn .bars span{
    position:absolute; left:0; right:0; height:1px; background:currentColor;
    transition:transform .25s ease, opacity .2s ease;
  }
  .menu-btn .bars span:nth-child(1){ top:0; }
  .menu-btn .bars span:nth-child(2){ top:5px; }
  .menu-btn .bars span:nth-child(3){ top:10px; }
  .nav.menu-open .menu-btn .bars span:nth-child(1){ transform:translateY(5px) rotate(45deg); }
  .nav.menu-open .menu-btn .bars span:nth-child(2){ opacity:0; }
  .nav.menu-open .menu-btn .bars span:nth-child(3){ transform:translateY(-5px) rotate(-45deg); }

  /* ---------- OVERLAY MENU ---------- */
  .overlay{
    position:fixed; inset:0; z-index:30;
    background:var(--charcoal);
    height:100vh; height:100dvh;
    display:flex; flex-direction:column; align-items:center;
    padding:96px 24px 32px;
    overflow-y:auto; overscroll-behavior:contain;
    opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:opacity .35s ease, transform .35s ease, visibility 0s linear .35s;
  }
  .overlay.open{
    opacity:1; visibility:visible; transform:translateY(0);
    transition:opacity .35s ease, transform .35s ease, visibility 0s linear 0s;
  }
  .overlay nav{ display:flex; flex-direction:column; gap:6px; text-align:center; margin:auto 0; }
  .overlay a {
    font-family:var(--serif-font),serif; font-size:clamp(1.6rem, min(6vw, 5.5vh), 3.4rem);
    color:var(--parchment); text-decoration:none; padding:8px 0;
    opacity:0; transform:translateY(14px);
    transition:opacity .4s ease, transform .4s ease, color .2s ease;
  }
  .overlay.open a{ opacity:1; transform:translateY(0); }
  .overlay.open a:nth-child(1){ transition-delay:.08s; }
  .overlay.open a:nth-child(2){ transition-delay:.14s; }
  .overlay.open a:nth-child(3){ transition-delay:.20s; }
  .overlay.open a:nth-child(4){ transition-delay:.26s; }
  .overlay.open a:nth-child(5){ transition-delay:.32s; }
  .overlay.open a:nth-child(6){ transition-delay:.38s; }
  .overlay a:hover { color:var(--dark-kicker); }
  .overlay .overlay-foot{
    position:static; width:100%; flex:none; margin-top:24px; text-align:center;
    color:var(--parchment); font-size:.85rem; opacity:0;
    transition:opacity .4s ease .35s;
  }
  .overlay.open .overlay-foot{ opacity:1; }
  .overlay .overlay-foot a { font-family:'Inter',sans-serif; font-size:.85rem; color:var(--parchment); opacity:1; transform:none; text-decoration:underline; text-underline-offset:6px; }
  .overlay .overlay-foot a:hover {color:var(--dark-kicker);}
  body:has(.overlay.open){ overflow:hidden; }

  /* ---------- HERO ---------- */
  .hero{
    position:relative; min-height:100vh; min-height:100svh; overflow:hidden;
    display:flex; align-items:flex-end;
    /* Fallback color shows only if hero-img fails to load or hasn't been set yet. */
    background:linear-gradient(160deg,#3a2b1c 0%, #1c1712 60%, #14100c 100%);
    color:var(--parchment);
  }
  .hero-img{
    position:absolute; inset:0;
    width:100%; height:100%;
    object-fit:cover;
    z-index:0;
  }
  .hero-overlay{
    /* Darkens the photo so the headline stays readable —
       raise the .8 toward 1 if your photo is bright, lower it if it's already dark/moody. */
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(24,20,15,.25) 0%, rgba(24,20,15,.95) 100%);
    z-index:1;
  }
  .hero-inner{ position:relative; z-index:2; padding:120px 32px 274px; max-width:var(--max); margin:0 auto; width:100%; }
.hero-eyebrow { 
  display: inline-block; /* Alternately: width: fit-content; */
  font-size: .95rem; 
  color: var(--dark-kicker); 
  margin: 0 0 18px; 
  font-family: var(--serif-font), serif;
  background: var(--charcoal);
  padding: 6px 12px; 
  border-radius: 2px; 
}

  .hero h1{
    margin:0; font-size:clamp(2.6rem,6vw,4.6rem); line-height:1.04;
    font-weight:500;
    color:#fff;
  }
      .chef-sig {font-size: clamp(1.375rem, 1.1111rem + 1.1111vw, 2rem);}
      .chef-sig span {font-weight:600;font-family:var(--serif-font),serif;}
      .hero h1 sup {font-size: clamp(0.5333rem, 0.4661rem + 0.2832vw, 0.7333rem);padding-left:5px;}
      .hero p.lede {
            margin:22px 0 0; color:var(--parchment); font-size:1.05rem;
      }
  .hero .hero-cta{
    display:inline-block; margin-top:32px; color:var(--parchment);
    font-family:var(--serif-font),serif; font-size:1.1rem;
    border-bottom:1px solid rgba(246,241,230,.5); padding-bottom:3px;
    text-decoration:none; transition:border-color .2s ease;
  }
  .hero .hero-cta:hover{ border-color:var(--copper); color:var(--copper); }

  /* ---------- SECTIONS ---------- */
  section{ scroll-margin-top:90px; }
  .band-light{ background:var(--parchment); }
  .band-dark{ background:var(--charcoal); color:var(--parchment); }

  .section-pad{ padding:80px 0; }
  @media (max-width:720px){ .section-pad{ padding:56px 0; } }

  .kicker{
    font-family:var(--serif-font),serif; color:var(--ink-soft);
    font-size:1rem; margin:0 0 14px;
  }
  .band-dark .kicker{ color:var(--dark-kicker); }

  h2.section-title{ font-size: clamp(2rem, 1.3667rem + 2.6667vw, 3.5rem); margin:0 0 40px; max-width:20ch; }

  /* About */
  .about-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; align-items:start; }
  @media (max-width:820px){ .about-grid{ grid-template-columns:1fr; gap:36px; } }
  .about-text p{ color:var(--ink-soft); max-width:56ch; }
  .about-facts{ display:flex; gap:36px; margin-top:32px; flex-wrap:wrap; }
  .about-facts div{ min-width:120px; }
  .about-facts .num{ font-family:var(--serif-font),serif; font-size:1.7rem; display:block; }
  .about-facts .label{ font-size:.85rem; color:var(--ink-soft); }

  .about-photo{
    display:block; width:100%;
    aspect-ratio:4/5; object-fit:cover;
    border-radius:10px;
    margin:auto 0;
  }

  /* Menu (dish list) */
  .menu-note{ color:var(--ink-soft); max-width:72ch; margin:0 0 44px; }
  .dish-list{}
  .dish{
    display:flex; justify-content:space-between; gap:24px;
    padding:22px 0; border-top:1px solid var(--line);
  }
  .dish:last-child{ border-bottom:1px solid var(--line); }
  .dish-name{ font-size:1.15rem; margin:0 0 6px; }
  .dish-desc{ color:var(--ink-soft); font-size:.92rem; max-width:46ch; }
  .dish-tag{ color:var(--herb); font-size:.85rem; white-space:nowrap; padding-top:4px; }



.dish-tag a {
    text-decoration: none;
    border-bottom: 1px solid var(--charcoal);
    padding-bottom: 6px;
    transition: border-color .2s ease, color .2s ease;
}
.dish-tag a:hover{ color:var(--dark-kicker); border-color:var(--dark-kicker) !important; }


  /* Services */
  .services{}
  .service{ padding:30px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1.25fr; gap:20px; }
  .service:last-child{ border-bottom:1px solid var(--line); }
  @media (max-width:640px){ .service{ grid-template-columns:1fr; gap:8px; } }
  .service h3{ margin:0; font-size:1.35rem; }
  .service p{ margin:0; color:var(--ink-soft); max-width:52ch; }

  /* Gallery */
  .carousel{ position:relative; }
  .carousel-track{
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin:0; padding:0 0 4px; list-style:none;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch;
  }
  .carousel-track{ scrollbar-width:none; }
  .carousel-track::-webkit-scrollbar{ display:none; }

  .carousel-slide{
    position:relative;
    flex:0 0 100%;
    width:100%;
    margin:0;
    scroll-snap-align:start;
  }
  .carousel-slide img{
    display:block;
    width:100%;
    aspect-ratio:16/9;
    object-fit:cover;
    border-radius:2px;
  }
  .carousel-slide figcaption {
    margin-top:14px;
    font-family:var(--serif-font),serif; font-size:1rem;
    color:var(--parchment);
    text-align:center;
    padding:0 24px;
  }

  .carousel-btn{
    position:absolute; top:50%; transform:translateY(-50%);
    width:44px; height:44px; border-radius:50%;
    border:1px solid rgba(246,241,230,.5);
    background:rgba(24,20,15,.6); color:var(--parchment);
    font-size:1.4rem; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s ease, border-color .2s ease;
  }
  .carousel-btn:hover{ background:rgba(24,20,15,.85); border-color:var(--parchment); }
  .carousel-btn.prev{ left:-14px; }
  .carousel-btn.next{ right:-14px; }
  @media (max-width:760px){ .carousel-btn{ display:none; } }

  .carousel-dots{ display:flex; justify-content:center; gap:10px; margin-top:18px; }
  .carousel-dot{
    width:8px; height:8px; border-radius:50%; padding:0; border:none;
    background:rgba(246,241,230,.35); cursor:pointer;
    transition:background .2s ease, transform .2s ease;
  }
  .carousel-dot:hover{ background:rgba(246,241,230,.6); }
  .carousel-dot.active{ background:var(--parchment); transform:scale(1.25); }

  /* Contact */
  .contact-top{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:40px; align-items:flex-start; margin-bottom:56px; }
  .contact-email{
    font-family:var(--serif-font),serif; font-size:clamp(1.6rem,4vw,2.4rem);
    color:var(--parchment); text-decoration:none;
    border-bottom:1px solid rgba(246,241,230,.4); padding-bottom:6px;
    transition:border-color .2s ease, color .2s ease;
  }
  .contact-email:hover{ color:var(--dark-kicker); border-color:var(--dark-kicker); }
  .contact-sub{ color:#999; max-width:40ch; }
  .calendar-btn{
    display:inline-flex; align-items:center; gap:8px;
    margin-top:22px;
    padding:14px 28px;
    background:var(--bf-green);
    color:var(--charcoal);
    font-family:'Inter',sans-serif; font-weight:600; font-size:.95rem;
    text-decoration:none;
    border-radius:999px;
    transition:background .2s ease, transform .2s ease;
  }
  .calendar-btn:hover{ background:var(--dark-kicker); transform:translateY(-1px); }

  .accordion{ border-top:1px solid var(--line-dark); }
  .acc-item{ border-bottom:1px solid var(--line-dark); }
  .acc-trigger{
    width:100%; background:none; border:none; color:inherit; text-align:left;
    font-family:var(--serif-font),serif; font-size:1.2125rem; padding:22px 0;
    display:flex; justify-content:space-between; align-items:center;
    cursor:pointer;
  }
  .acc-trigger .plus{ position:relative; width:16px; height:16px; flex:none; margin-left:20px; }
  .acc-trigger .plus::before,.acc-trigger .plus::after{
    content:''; position:absolute; background:var(--parchment);
    transition:transform .25s ease;
  }
  .acc-trigger .plus::before{ top:7px; left:0; width:16px; height:1px; }
  .acc-trigger .plus::after{ top:0; left:7px; width:1px; height:16px; }
  .acc-item.open .acc-trigger .plus::after{ transform:rotate(90deg); opacity:0; }
  .acc-panel{
    max-height:0; overflow:hidden; transition:max-height .35s ease;
  }
  .acc-panel p{ margin:0 0 22px; color:#999; max-width:70ch; }

  footer{
    background:var(--charcoal); color:#999;
    padding:36px 0 44px; font-size:.85rem;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
    border-top:1px solid var(--line-dark);
  }
  footer a{ color:#999; text-decoration:none; }
  footer a:hover{ color:var(--dark-kicker); }



  @media (max-width:576px){
    .wrap{ padding:0 20px; }

    /* compact nav */
    .nav{ padding:14px 20px; }
    .nav.scrolled{ padding:12px 20px; }
    .logo-mark{ height:30px; }
    .menu-btn{ padding:8px 14px; font-size:.8rem; gap:8px; }

    /* hero: clear the fixed nav, scale type to the viewport */
    .hero-inner{ padding:104px 20px 64px; }
    .hero-overlay{
      background:linear-gradient(180deg, rgba(24,20,15,.55) 0%, rgba(24,20,15,.8) 50%, rgba(24,20,15,.95) 100%);
    }
    .hero-eyebrow{ font-size:.85rem; padding:5px 10px; margin-bottom:14px; }
    .hero h1{ font-size:clamp(2.1rem, 10.5vw, 2.8rem); }
    .hero p.lede{ font-size:1rem; line-height:1.5; margin-top:16px; }
    .hero .hero-cta{ margin-top:24px; font-size:1rem; }
}