/* ==========================================================================
   Chef Markel — premium catering landing page
   Palette: deep charcoal · burgundy · warm ivory · restrained antique gold
   Mobile-first; breakpoints at 640px, 900px, 1180px
   ========================================================================== */

:root{
  --ink:#16110f;
  --ink-2:#221a17;
  --ink-3:#2e2521;
  --wine:#6d1f2e;
  --wine-2:#8e2a3c;
  --wine-deep:#4a1420;
  --gold:#c9a557;
  --gold-2:#e0c07f;
  --gold-soft:rgba(201,165,87,.35);
  --ivory:#fbf7f1;
  --cream:#f2eade;
  --cream-2:#e8ddcd;
  --body:#fbf7f1;
  --text:#241d1a;
  --text-soft:#5b5148;
  --text-mute:#877a6d;
  --line:rgba(36,29,26,.14);
  --line-light:rgba(251,247,241,.18);
  --ok:#2f7d54;
  --err:#a92a2a;

  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  --wrap:1180px;
  --radius:3px;
  --shadow-sm:0 1px 2px rgba(22,17,15,.06),0 6px 18px -12px rgba(22,17,15,.28);
  --shadow-md:0 18px 50px -28px rgba(22,17,15,.5);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

body{
  margin:0;
  background:var(--ivory);
  color:var(--text);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{margin:0;font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.01em}
p{margin:0 0 1rem}
p:last-child{margin-bottom:0}
em{font-style:italic}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
ul{margin:0;padding:0;list-style:none}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}
@media(min-width:640px){.wrap{padding:0 28px}}
@media(min-width:1180px){.wrap{padding:0 40px}}

::selection{background:var(--gold);color:var(--ink)}

/* Focus visibility everywhere */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
  border-radius:2px;
}

.skip-link{
  position:absolute;left:16px;top:-60px;z-index:200;
  background:var(--ink);color:var(--ivory);
  padding:.7rem 1.1rem;font-size:.85rem;letter-spacing:.04em;
  transition:top .2s var(--ease);
}
.skip-link:focus{top:12px}

/* Screen-reader only (honeypot field) */
.sr-only{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* Progress tabs are interactive once their step has been reached */
.steps__btn{
  display:flex;flex-direction:column;align-items:center;gap:.35rem;
  width:100%;padding:0;background:none;border:0;cursor:pointer;
  font:inherit;color:inherit;
}
.steps__btn:disabled{cursor:default}

/* ============================== Typography ============================== */
.eyebrow{
  font-family:var(--sans);
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--wine-2);
  margin:0 0 1.1rem;
}
.eyebrow--light{color:var(--gold-2)}

.section-title{
  font-size:clamp(2rem,7vw,3.5rem);
  letter-spacing:-.02em;
  margin:0 0 1.1rem;
  color:var(--ink);
}
.section-title em{color:var(--wine-2);font-weight:300}
.section-title--light{color:var(--ivory)}
.section-title--light em{color:var(--gold-2)}

.section-lede{
  font-size:1.02rem;color:var(--text-soft);
  max-width:56ch;margin:0;
}
.section-lede--light{color:rgba(251,247,241,.74)}

.section{padding:clamp(3.6rem,9vw,7rem) 0}
.section--ivory{background:var(--ivory)}
.section-head{margin-bottom:clamp(2rem,5vw,3.4rem)}
.section-head--center{text-align:center}
.section-head--center .section-lede{margin-inline:auto}
.section-head--tight{margin-bottom:2.2rem}
.section-head--light{color:var(--ivory)}

/* =============================== Buttons =============================== */
.btn{
  --btn-bg:var(--ink);
  --btn-fg:var(--ivory);
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.95rem 1.6rem;
  background:var(--btn-bg);color:var(--btn-fg);
  border:1px solid transparent;
  border-radius:var(--radius);
  font-family:var(--sans);
  font-size:.74rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
  cursor:pointer;text-align:center;
  transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease);
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}

.btn--gold{background:var(--gold);color:#241a08;border-color:var(--gold)}
.btn--gold:hover{background:var(--gold-2);box-shadow:0 10px 26px -14px rgba(201,165,87,.85)}

.btn--dark{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.btn--dark:hover{background:var(--wine-deep);border-color:var(--wine-deep)}

.btn--ivory{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.btn--ivory:hover{background:var(--gold-2);border-color:var(--gold-2)}

.btn--ghost{background:transparent;color:var(--ivory);border-color:rgba(251,247,241,.4)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold-2)}

.btn--ghost-dark{background:transparent;color:var(--ink);border-color:rgba(36,29,26,.28)}
.btn--ghost-dark:hover{border-color:var(--ink);color:var(--ink)}

.btn--sm{padding:.6rem 1rem;font-size:.66rem}
.btn--lg{padding:1.1rem 2.2rem;font-size:.8rem}
.btn--block{width:100%}

.btn-text{
  background:none;border:0;padding:.6rem 0;
  font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);cursor:pointer;
  display:inline-flex;align-items:center;gap:.45rem;
}
.btn-text:hover{color:var(--wine-2)}

.text-link{
  font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--wine-2);border-bottom:1px solid var(--gold-soft);padding-bottom:2px;
}
.text-link:hover{color:var(--wine)}

.hint{font-size:.82rem;color:var(--text-mute);line-height:1.55;margin:.85rem 0 0}
.hint--inline{margin:.3rem 0 0;font-size:.75rem}
.opt{font-weight:400;color:var(--text-mute);text-transform:none;letter-spacing:0}
.req{color:var(--wine-2);font-weight:600}

/* ============================= Site header ============================= */
.site-head{
  position:sticky;top:0;z-index:90;
  background:rgba(22,17,15,.9);
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(201,165,87,.18);
  transition:background .3s var(--ease);
}
.site-head.is-scrolled{background:rgba(22,17,15,.97)}
.head-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}

.brandmark{display:flex;align-items:center;gap:.55rem;color:var(--ivory)}
.brandmark__name{font-family:var(--serif);font-size:1.18rem;letter-spacing:.06em;text-transform:uppercase}
.brandmark__rule{width:16px;height:1px;background:var(--gold);display:none}
.brandmark__tag{display:none;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2)}
@media(min-width:900px){
  .brandmark__rule,.brandmark__tag{display:block}
}

.nav-toggle{
  display:inline-flex;align-items:center;gap:.5rem;
  background:none;border:1px solid rgba(201,165,87,.32);
  color:var(--ivory);padding:.5rem .7rem;border-radius:var(--radius);
  font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;
}
.nav-toggle__bar{width:14px;height:1px;background:currentColor;display:block}
.nav-toggle__bar:nth-child(2){width:10px}

.primary-nav{
  display:none;
  position:absolute;left:0;right:0;top:100%;
  background:var(--ink);
  border-bottom:1px solid rgba(201,165,87,.2);
  padding:1rem 20px 1.4rem;
  box-shadow:var(--shadow-md);
}
.primary-nav.is-open{display:block}
.primary-nav ul{display:flex;flex-direction:column;gap:.15rem;margin-bottom:1rem}
.primary-nav a{
  display:block;padding:.7rem .2rem;
  font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(251,247,241,.82);
  border-bottom:1px solid rgba(251,247,241,.08);
}
.primary-nav a:hover{color:var(--gold-2)}
.nav-call{width:100%}

@media(min-width:900px){
  .head-inner{min-height:76px}
  .nav-toggle{display:none}
  .primary-nav{
    display:flex!important;align-items:center;gap:2rem;
    position:static;background:none;border:0;padding:0;box-shadow:none;
  }
  .primary-nav ul{flex-direction:row;gap:1.6rem;margin:0}
  .primary-nav a{border:0;padding:.3rem 0;font-size:.68rem;position:relative}
  .primary-nav a::after{
    content:"";position:absolute;left:0;bottom:-4px;height:1px;width:0;
    background:var(--gold);transition:width .3s var(--ease);
  }
  .primary-nav a:hover::after{width:100%}
  .nav-call{width:auto}
}

/* ================================ Hero ================================ */
.hero{
  position:relative;
  background:var(--ink);
  color:var(--ivory);
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(120% 80% at 12% 0%,rgba(109,31,46,.5) 0%,transparent 58%),
    radial-gradient(90% 70% at 92% 100%,rgba(201,165,87,.14) 0%,transparent 60%);
  pointer-events:none;
}
.hero__grid{
  position:relative;
  display:grid;gap:0;
  max-width:var(--wrap);margin:0 auto;
}
.hero__copy{
  padding:clamp(2.6rem,8vw,4.4rem) 20px clamp(2.4rem,7vw,3.6rem);
  order:2;
}
.hero__media{order:1;position:relative}
.hero__media img{
  width:100%;height:clamp(300px,58vw,420px);object-fit:cover;
  object-position:50% 28%;
  filter:saturate(1.02) contrast(1.03);
}
.hero__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(22,17,15,.92) 0%,rgba(22,17,15,.15) 42%,transparent 70%);
}
.hero__media-frame{display:none}

@media(min-width:640px){
  .hero__copy{padding:clamp(3rem,7vw,4.4rem) 28px}
  .hero__media img{height:clamp(380px,50vw,520px)}
}

.hero__eyebrow{
  font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--gold-2);margin:0 0 1.2rem;
}
.hero__title{margin:0 0 1.6rem}
.hero__name{
  display:block;
  font-family:var(--serif);
  font-size:clamp(2.9rem,11vw,4.4rem);
  line-height:.92;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--ivory);
}
.hero__tagline{
  display:block;margin-top:.9rem;
  font-family:var(--serif);
  font-style:italic;
  font-size:clamp(1.5rem,5.6vw,2.4rem);
  line-height:1.14;
  color:var(--gold-2);
  font-weight:300;
}
.hero__lede{
  font-family:var(--serif);
  font-size:clamp(1.15rem,3.4vw,1.5rem);
  line-height:1.42;
  color:var(--ivory);
  max-width:30ch;
  margin:0 0 1rem;
}
.hero__body{
  font-size:.94rem;line-height:1.72;
  color:rgba(251,247,241,.7);
  max-width:46ch;margin:0 0 1.9rem;
}
.hero__actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:1.6rem}
.hero__actions .btn{flex:1 1 auto;min-width:0}
@media(min-width:520px){.hero__actions .btn{flex:0 0 auto}}
.hero__note{
  font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(201,165,87,.7);margin:0;
}

@media(min-width:900px){
  .hero__grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);
    align-items:center;
    gap:clamp(2rem,4vw,4rem);
    padding:0 40px;
    min-height:min(84vh,760px);
  }
  .hero__copy{order:1;padding:clamp(3rem,5vw,5rem) 0}
  .hero__media{order:2;align-self:stretch;display:flex;align-items:center}
  .hero__media img{
    height:min(78vh,700px);width:100%;object-fit:cover;object-position:50% 30%;
    border:1px solid rgba(201,165,87,.24);
  }
  .hero__media::after{
    background:linear-gradient(to right,rgba(22,17,15,.55) 0%,transparent 34%),linear-gradient(to top,rgba(22,17,15,.35),transparent 40%);
  }
  .hero__name{font-size:clamp(3.6rem,5.6vw,5rem)}
}

/* ============================== Campaign ============================== */
.campaign{
  position:relative;
  background:
    linear-gradient(140deg,var(--wine-deep) 0%,var(--wine) 52%,#561726 100%);
  color:var(--ivory);
  overflow:hidden;
}
.campaign::before{
  content:"";position:absolute;inset:0;
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 4px);
  opacity:.5;pointer-events:none;
}
.campaign::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(201,165,87,.7),transparent);
}
.campaign__inner{
  position:relative;
  padding:clamp(2.8rem,7vw,5rem) 20px;
  text-align:center;
}
@media(min-width:640px){.campaign__inner{padding:clamp(3rem,6vw,5rem) 28px}}
.campaign__title{
  font-size:clamp(1.9rem,6.4vw,3.4rem);
  line-height:1.08;
  max-width:20ch;margin:0 auto 1.5rem;
  color:var(--ivory);
}
.campaign__copy{
  max-width:56ch;margin:0 auto 1.6rem;
  color:rgba(251,247,241,.84);
  font-size:.98rem;line-height:1.75;
}
.campaign__copy p{margin:0 0 .55rem}
.campaign__copy p:last-child{margin-bottom:0}
.campaign__price{
  font-family:var(--serif);
  font-size:1.2rem;letter-spacing:.01em;
  color:rgba(251,247,241,.78);
  margin:0 0 1.7rem;
}
.campaign__price strong{color:var(--gold-2);font-weight:500;font-size:1.35rem}

/* ============================== Packages ============================== */
.packages{
  display:grid;gap:1.1rem;
  grid-template-columns:1fr;
}
@media(min-width:760px){.packages{grid-template-columns:repeat(3,1fr);gap:1.2rem;align-items:stretch}}
@media(min-width:760px){.pkg--featured{transform:translateY(-10px)}}

.pkg{
  position:relative;
  display:flex;flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.7rem 1.4rem 1.4rem;
  box-shadow:var(--shadow-sm);
  transition:box-shadow .3s var(--ease),transform .3s var(--ease),border-color .3s var(--ease);
}
.pkg:hover{box-shadow:var(--shadow-md);border-color:rgba(201,165,87,.55)}
.pkg--featured{border-color:var(--gold);box-shadow:0 22px 50px -32px rgba(109,31,46,.6)}
.pkg--featured::before{
  content:"";position:absolute;inset:0;
  border:1px solid rgba(201,165,87,.35);
  margin:5px;border-radius:2px;pointer-events:none;
}
.pkg__flag{
  position:absolute;top:-.7rem;left:1.4rem;
  background:var(--wine);color:var(--ivory);
  font-size:.56rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  padding:.3rem .6rem;margin:0;border-radius:2px;
}
.pkg__name{
  font-size:1.5rem;line-height:1.12;color:var(--ink);
  margin:0 0 .55rem;
}
.pkg__price{
  font-family:var(--serif);
  font-size:2.6rem;line-height:1;
  color:var(--wine-2);
  margin:0 0 .3rem;
  display:flex;align-items:flex-start;gap:.1rem;
}
.pkg__currency{font-size:1.3rem;margin-top:.35rem;color:var(--gold)}
.pkg__serves{
  font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--text-mute);margin:0 0 1.15rem;
}
.pkg__list{
  border-top:1px solid var(--line);
  padding-top:1.1rem;margin-bottom:1.1rem;
  display:grid;gap:.45rem;
}
.pkg__list li{
  position:relative;padding-left:1.15rem;
  font-size:.92rem;color:var(--text);
}
.pkg__list li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:6px;height:6px;border:1px solid var(--gold);
  transform:rotate(45deg);
}
.pkg__list em{color:var(--wine-2);font-style:italic}
.pkg__blurb{
  font-size:.85rem;line-height:1.6;color:var(--text-soft);
  margin:0 0 1.4rem;
}
.pkg .btn{margin-top:auto}

.delivery-note{
  display:flex;gap:1rem;align-items:flex-start;
  margin-top:clamp(1.8rem,4vw,2.6rem);
  padding:1.3rem 1.25rem;
  background:var(--cream);
  border-left:2px solid var(--gold);
}
.delivery-note__icon{color:var(--wine-2);flex:0 0 auto;margin-top:.1rem}
.delivery-note h3{
  font-family:var(--sans);font-size:.68rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--wine-2);
  margin:0 0 .4rem;
}
.delivery-note p{font-size:.88rem;line-height:1.65;color:var(--text-soft);margin:0}

/* =============================== Builder =============================== */
.section--builder{
  position:relative;
  background:var(--ink-2);
  color:var(--ivory);
  overflow:hidden;
}
.section--builder::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(80% 50% at 50% 0%,rgba(109,31,46,.32),transparent 70%);
  pointer-events:none;
}
.section--builder .wrap{position:relative}

/* Builder uses a wider canvas than the editorial sections so the selection
   interface has room, split roughly 70/30 with the order summary. */
.section--builder .wrap{max-width:1340px}

.builder{
  display:grid;gap:1.5rem;
  grid-template-columns:1fr;
  align-items:start;
}
@media(min-width:1024px){
  .builder{grid-template-columns:minmax(0,7fr) minmax(300px,3fr);gap:2rem}
}

.builder__main{
  background:var(--ivory);
  color:var(--text);
  border-radius:var(--radius);
  /* Not clipped: an overflow container would break the sticky action bar.
     Corner radii are applied to the first and last children instead. */
  box-shadow:0 30px 70px -40px rgba(0,0,0,.75);
}

/* Progress */
.steps{
  position:relative;
  background:var(--ink-3);
  color:var(--ivory);
  padding:1.15rem 1.25rem 1.3rem;
  border-radius:var(--radius) var(--radius) 0 0;
}
.steps ol{
  display:flex;gap:.2rem;
  justify-content:space-between;
  position:relative;z-index:2;
}
.steps li{
  flex:1 1 0;
  display:flex;flex-direction:column;align-items:center;gap:.35rem;
  text-align:center;min-width:0;
  opacity:.5;transition:opacity .3s var(--ease);
}
.steps li.is-done,.steps li.is-active{opacity:1}
.steps__num{
  display:grid;place-items:center;
  width:30px;height:30px;border-radius:50%;
  border:1px solid rgba(251,247,241,.34);
  font-size:.8rem;font-weight:600;
  transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease);
}
.steps li.is-active .steps__num{background:var(--gold);border-color:var(--gold);color:#241a08}
.steps li.is-done .steps__num{background:transparent;border-color:var(--gold);color:var(--gold-2)}
.steps__label{
  font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;
  font-weight:500;
  line-height:1.3;color:rgba(251,247,241,.9);
  overflow-wrap:break-word;max-width:100%;
}
/* Active step reads strongest; completed steps stay legible. */
.steps li.is-active .steps__label{color:var(--gold-2);font-weight:700}
@media(min-width:560px){.steps__label{font-size:.7rem;letter-spacing:.11em}}
@media(min-width:1024px){.steps__label{font-size:.74rem;letter-spacing:.13em}}
.steps__track{
  position:absolute;left:1.25rem;right:1.25rem;top:2rem;height:1px;
  background:rgba(251,247,241,.16);z-index:1;
}
.steps__track span{
  display:block;height:100%;width:0;
  background:var(--gold);
  transition:width .45s var(--ease);
}
.steps__status{
  margin:.85rem 0 0;text-align:center;
  font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-2);
}

/* Panels */
.panel{padding:clamp(1.4rem,4vw,2.2rem)}
.panel[hidden]{display:none}
.panel__head{margin-bottom:1.5rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line)}
.panel__step{
  font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--wine-2);margin:0 0 .55rem;
}
.panel__title{font-size:clamp(1.5rem,4.4vw,2rem);color:var(--ink);margin:0 0 .5rem}
.panel__sub{font-size:.88rem;line-height:1.6;color:var(--text-soft);margin:0}

/* Step 1 package choices */
.choice-grid{display:grid;gap:.85rem}
@media(min-width:900px){.choice-grid{grid-template-columns:repeat(3,1fr);gap:.9rem}}
.choice{
  position:relative;
  display:grid;grid-template-columns:auto 1fr;gap:.9rem;
  align-items:start;
  padding:1.3rem 1.25rem;
  background:#fff;border:1px solid rgba(36,29,26,.16);border-radius:var(--radius);
  cursor:pointer;text-align:left;width:100%;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease),transform .2s var(--ease);
}
.choice:hover{border-color:rgba(201,165,87,.85);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.choice.is-selected{
  border-color:var(--wine-2);
  border-width:2px;
  padding:calc(1.3rem - 1px) calc(1.25rem - 1px);
  background:linear-gradient(180deg,#fffaf3 0%,#fef6ee 100%);
  box-shadow:0 12px 30px -18px rgba(109,31,46,.55);
}
.choice.is-selected::after{
  content:"✓";
  position:absolute;top:.7rem;right:.7rem;
  width:24px;height:24px;border-radius:50%;
  display:grid;place-items:center;
  background:var(--wine-2);color:#fff;
  font-size:.72rem;font-weight:700;line-height:1;
}
.choice__mark{
  width:20px;height:20px;border-radius:50%;
  border:1.5px solid rgba(36,29,26,.35);margin-top:.3rem;
  display:grid;place-items:center;flex:0 0 auto;
  transition:border-color .2s var(--ease),background .2s var(--ease);
}
.choice.is-selected .choice__mark{border-color:var(--wine-2);background:var(--wine-2)}
.choice.is-selected .choice__mark::after{
  content:"";width:8px;height:8px;border-radius:50%;background:#fff;
}
.choice__name{
  font-family:var(--serif);font-size:1.32rem;color:var(--ink);line-height:1.2;
  display:block;padding-right:1.6rem;
}
.choice__price{font-family:var(--serif);font-size:1.5rem;color:var(--wine-2);white-space:nowrap;display:block;margin-top:.35rem}
.choice__meta{
  font-size:.82rem;color:var(--text-soft);margin:.55rem 0 0;
  display:flex;flex-wrap:wrap;gap:.3rem .7rem;
}
.choice__meta span{
  display:inline-flex;align-items:center;gap:.3rem;
}
.choice__meta span::before{content:"";width:4px;height:4px;background:var(--gold);border-radius:50%;flex:0 0 auto}
.choice__badge{
  display:inline-block;font-size:.55rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:#fff;background:var(--wine);
  padding:.18rem .45rem;border-radius:2px;margin-top:.45rem;
}
@media(min-width:900px){
  .choice{grid-template-columns:1fr;gap:.4rem}
  .choice__mark{position:absolute;top:1.15rem;right:1.15rem;margin:0}
  .choice.is-selected::after{display:none}
  .choice.is-selected .choice__mark::after{content:"✓";background:none;width:auto;height:auto;border:0;color:#fff;font-size:.7rem;font-weight:700;border-radius:0}
}

.choice__body{display:block;min-width:0}
@media(min-width:900px){
  .choice{grid-template-columns:1fr;gap:.4rem;padding-top:1.35rem}
  .choice__mark{position:absolute;top:1.1rem;right:1.1rem;margin:0}
  .choice.is-selected::after{display:none}
}

/* Step 2 menu switch — the two menus read as distinct cards */
.menu-switch{display:grid;gap:.8rem;margin-bottom:1.6rem}
@media(min-width:560px){.menu-switch{grid-template-columns:1fr 1fr}}
.menu-opt{
  position:relative;text-align:left;width:100%;
  padding:1.25rem 1.2rem 1.3rem;
  background:#fff;border:1px solid rgba(36,29,26,.16);border-radius:var(--radius);
  cursor:pointer;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease),transform .2s var(--ease);
}
.menu-opt:hover{border-color:rgba(201,165,87,.85);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.menu-opt.is-selected{
  border-color:var(--wine-2);border-width:2px;
  padding:calc(1.25rem - 1px) calc(1.2rem - 1px) calc(1.3rem - 1px);
  background:linear-gradient(180deg,#fffaf3 0%,#fdf3ea 100%);
  box-shadow:0 12px 30px -18px rgba(109,31,46,.5);
}
.menu-opt.is-selected::after{
  content:"✓";position:absolute;top:.75rem;right:.85rem;
  width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  background:var(--wine-2);color:#fff;font-size:.72rem;font-weight:700;line-height:1;
}
.menu-opt__name{font-family:var(--serif);font-size:1.4rem;color:var(--ink);display:block;line-height:1.2;padding-right:1.6rem}
.menu-opt__kick{
  display:block;font-size:.6rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--wine-2);margin-bottom:.45rem;
}
.menu-opt__blurb{display:block;font-size:.85rem;color:var(--text-soft);line-height:1.6;margin-top:.45rem}

.pick-group{
  margin-bottom:1.5rem;padding:1.15rem 1.2rem;
  background:var(--cream);border:1px solid rgba(201,165,87,.28);
  border-radius:var(--radius);
}
.pick-group:last-child{margin-bottom:0}
.pick-group__head{
  display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;
  margin-bottom:.85rem;flex-wrap:wrap;
}
.pick-group__head h4{
  font-family:var(--sans);font-size:.72rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--ink);
}
.counter{
  font-size:.76rem;font-weight:600;letter-spacing:.05em;
  color:var(--text-soft);margin:0;
}
.counter.is-full{color:var(--ok)}
.counter.is-over{color:var(--err)}

.chip-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{
  display:inline-flex;align-items:center;gap:.45rem;
  padding:.68rem 1rem;
  background:#fff;border:1px solid rgba(36,29,26,.2);border-radius:999px;
  font-size:.9rem;color:var(--text);cursor:pointer;
  min-height:44px;
  transition:border-color .18s var(--ease),background .18s var(--ease),color .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease);
}
.chip::before{
  content:"+";font-size:.95rem;color:var(--gold);line-height:1;
  transition:transform .2s var(--ease);
}
.chip:hover{border-color:rgba(201,165,87,.95);background:#fffdf7}
.chip:active{transform:scale(.98)}
.chip.is-selected{
  background:var(--ink);border-color:var(--ink);color:var(--ivory);
  box-shadow:0 6px 16px -10px rgba(22,17,15,.9);
}
.chip.is-selected::before{content:"✓";color:var(--gold-2);font-size:.8rem;font-weight:700}
.chip.is-blocked{opacity:.45;cursor:not-allowed}

.limit-msg{
  font-size:.8rem;line-height:1.5;color:var(--err);
  margin:.7rem 0 0;display:none;font-weight:500;
}
.limit-msg.is-shown{display:block}
.menu-note{
  margin:1.3rem 0 0;padding:.95rem 1.1rem;
  background:var(--cream);border-left:2px solid var(--gold);
  font-size:.82rem;line-height:1.6;color:var(--text-soft);
}

/* Step 3 add-ons */
.addon-list{display:grid;gap:.7rem}
.addon{
  border:1px solid var(--line);border-radius:var(--radius);background:#fff;
  padding:1rem;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.addon.is-selected{border-color:var(--wine-2);box-shadow:0 0 0 1px var(--wine-2) inset}
.addon__top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.addon__label{
  display:flex;align-items:flex-start;gap:.7rem;
  cursor:pointer;flex:1 1 auto;min-width:0;
}
.addon__check{
  appearance:none;-webkit-appearance:none;
  width:18px;height:18px;flex:0 0 auto;margin:.2rem 0 0;
  border:1px solid var(--text-mute);border-radius:2px;background:#fff;
  cursor:pointer;position:relative;
  transition:background .18s var(--ease),border-color .18s var(--ease);
}
.addon__check:checked{background:var(--wine-2);border-color:var(--wine-2)}
.addon__check:checked::after{
  content:"";position:absolute;left:5px;top:1.5px;
  width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;
  transform:rotate(42deg);
}
.addon__name{font-family:var(--serif);font-size:1.1rem;color:var(--ink);display:block;line-height:1.25}
.addon__desc{font-size:.78rem;color:var(--text-soft);display:block;margin-top:.2rem;line-height:1.5}
.addon__price{
  font-family:var(--serif);font-size:1.05rem;color:var(--wine-2);
  white-space:nowrap;text-align:right;flex:0 0 auto;
}
.addon__price small{
  display:block;font-family:var(--sans);font-size:.55rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute);
  margin-top:.15rem;
}
.addon__extra{
  margin-top:.85rem;padding-top:.85rem;border-top:1px dashed var(--line);
  display:none;gap:.85rem;flex-wrap:wrap;align-items:flex-end;
}
.addon.is-selected .addon__extra{display:flex}
.addon__extra .field{margin:0;flex:1 1 150px}
.addon__extra label{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-mute);font-weight:700}

/* Fields */
.field{margin-bottom:1.05rem;display:flex;flex-direction:column}
.field label,.fieldset legend{
  font-size:.63rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);margin-bottom:.4rem;
}
.fieldset{
  border:0;padding:0;margin:0 0 1.4rem;
}
.fieldset legend{padding:0;margin-bottom:.7rem}

input[type=text],input[type=email],input[type=tel],input[type=date],input[type=time],input[type=number],textarea,select{
  width:100%;
  padding:.72rem .8rem;
  background:#fff;
  border:1px solid rgba(36,29,26,.24);
  border-radius:2px;
  font-family:var(--sans);font-size:.92rem;color:var(--text);
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease);
  min-height:44px;
}
textarea{resize:vertical;min-height:88px;line-height:1.6}
select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235b5148' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .8rem center;background-size:11px;
  padding-right:2rem;
}
input::placeholder,textarea::placeholder{color:#a89b8d}
input:hover,select:hover,textarea:hover{border-color:rgba(36,29,26,.4)}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--wine-2);
  box-shadow:0 0 0 3px rgba(142,42,60,.12);
}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{
  border-color:var(--err);background:#fff8f8;
}
.field-err{
  font-size:.76rem;line-height:1.45;color:var(--err);
  margin:.35rem 0 0;min-height:0;display:none;
}
.field-err.is-shown{display:block}

.field-row{display:grid;gap:0 1rem;grid-template-columns:1fr}
@media(min-width:560px){
  .field-row{grid-template-columns:1fr 1fr}
  .field-row--3{grid-template-columns:2fr 1fr 1fr}
}

/* Fulfillment */
.fulfil-grid{display:grid;gap:.6rem}
@media(min-width:560px){.fulfil-grid{grid-template-columns:1fr 1fr}}
.fulfil{
  text-align:left;width:100%;cursor:pointer;
  padding:.9rem 1rem;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius);
  display:grid;grid-template-columns:auto 1fr;gap:.7rem;
  transition:border-color .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease);
}
.fulfil:hover{border-color:rgba(201,165,87,.8)}
.fulfil.is-selected{border-color:var(--wine-2);background:#fffdfa;box-shadow:0 0 0 1px var(--wine-2) inset}
.fulfil__name{font-size:.88rem;font-weight:600;display:block;color:var(--ink)}
.fulfil__note{font-size:.76rem;color:var(--text-soft);display:block;margin-top:.15rem;line-height:1.5}

/* Acks */
.acks{margin-top:1.4rem;padding-top:1.4rem;border-top:1px solid var(--line);display:grid;gap:.75rem}
.check{
  display:grid;grid-template-columns:auto 1fr;gap:.65rem;
  font-size:.85rem;line-height:1.6;color:var(--text-soft);
  cursor:pointer;align-items:start;
}
.check input{
  width:18px;height:18px;margin:.22rem 0 0;accent-color:var(--wine-2);cursor:pointer;
  flex:0 0 auto;
}

.submit-area{margin-top:1.4rem;display:grid;gap:.7rem}
.submit-note{font-size:.76rem;line-height:1.55;color:var(--text-mute);margin:0}
.form-status{
  font-size:.85rem;line-height:1.55;margin:0;display:none;
  padding:.8rem .95rem;border-radius:2px;
}
.form-status.is-error{display:block;background:#fdf1f1;color:#8b1f1f;border-left:2px solid var(--err)}
.form-status.is-ok{display:block;background:#f0f7f2;color:#1f5d3c;border-left:2px solid var(--ok)}
.form-status--dark.is-error{background:rgba(169,42,42,.16);color:#ffd7d7}
.form-status--dark.is-ok{background:rgba(47,125,84,.18);color:#c9f0d8}

.spam-note{
  font-size:.72rem;color:var(--text-mute);margin:.8rem 0 0;
  padding:.6rem .8rem;background:var(--cream);
}

/* Builder action bar — always in the same place at the foot of the card */
.builder__nav{
  position:sticky;bottom:0;z-index:5;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1rem clamp(1.4rem,4vw,2.2rem) 1.15rem;
  border-top:1px solid var(--line);
  background:rgba(255,253,250,.97);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  border-radius:0 0 var(--radius) var(--radius);
}
.builder__nav[hidden]{display:none}
.builder__nav #backBtn{flex:0 0 auto}
.builder__nav #nextBtn{margin-left:auto;flex:0 0 auto;min-width:150px}
@media(max-width:520px){
  .builder__nav #nextBtn{flex:1 1 auto;min-width:0}
}

/* Review */
.review-block{
  border:1px solid var(--line);background:#fff;border-radius:var(--radius);
  padding:1.05rem 1.1rem;margin-bottom:.8rem;
}
.review-block__head{
  display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;
  margin-bottom:.7rem;
}
.review-block h4{
  font-family:var(--sans);font-size:.63rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--wine-2);
}
.review-edit{
  background:none;border:0;padding:.15rem 0;cursor:pointer;
  font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-mute);border-bottom:1px solid var(--line);
}
.review-edit:hover{color:var(--wine-2);border-color:var(--gold)}
.review-dl{margin:0;display:grid;gap:.35rem;font-size:.86rem}
.review-dl div{display:grid;grid-template-columns:minmax(88px,32%) 1fr;gap:.7rem}
.review-dl dt{color:var(--text-mute);font-size:.76rem;letter-spacing:.04em}
.review-dl dd{margin:0;color:var(--text);line-height:1.5}

.review-totals{
  border:1px solid var(--gold-soft);background:#fffdf5;
  padding:1.05rem 1.1rem;border-radius:var(--radius);margin-bottom:.9rem;
}
/* .total-row defaults to the light-on-dark sidebar palette; inside the light
   review block every part must use the dark ink palette instead. */
.review-totals .total-row{display:flex;justify-content:space-between;gap:1rem;font-size:.88rem;padding:.4rem 0;align-items:baseline}
.review-totals .total-row + .total-row{border-top:1px solid rgba(201,165,87,.25)}
.review-totals .total-row span,
.review-totals .total-row--muted span{color:var(--text-soft)}
.review-totals .total-row strong{font-family:var(--serif);font-size:1.05rem;color:var(--ink);font-weight:500}
.review-totals .total-row--muted strong{font-family:var(--sans);font-size:.78rem;color:var(--text-soft)}
.review-totals .total-row--grand strong{font-size:1.3rem;color:var(--wine-2)}
.review-totals .total-row--deposit strong{color:var(--wine-2)}
.review-fine{font-size:.74rem;line-height:1.55;color:var(--text-mute);margin:.6rem 0 0}

/* Summary aside — sticky on desktop, collapsible on mobile */
.summary{align-self:start}
@media(min-width:1024px){
  .summary{position:sticky;top:96px}
}
.summary__card{
  background:linear-gradient(165deg,#241c18 0%,#1a1411 100%);
  border:1px solid rgba(201,165,87,.28);
  border-radius:var(--radius);
  padding:1.35rem 1.25rem;
  color:var(--ivory);
}
.summary__title{
  font-family:var(--sans);font-size:.64rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold-2);
  margin:0 0 1rem;padding-bottom:.8rem;
  border-bottom:1px solid rgba(201,165,87,.22);
  display:flex;align-items:center;justify-content:space-between;gap:.8rem;
}
.summary__empty{color:rgba(251,247,241,.6);font-size:.86rem}
.summary__hint{font-size:.78rem;color:rgba(251,247,241,.4);margin:0}
.summary__lines{display:grid;gap:.5rem;margin:0 0 .4rem}
.summary__lines div{display:flex;justify-content:space-between;gap:.8rem;font-size:.87rem}
.summary__lines dt{color:rgba(251,247,241,.68)}
.summary__lines dd{margin:0;color:var(--ivory);font-weight:500;text-align:right}
.summary__picks{
  display:grid;gap:.5rem;
  margin:.6rem 0 0;padding-top:.8rem;
  border-top:1px dashed rgba(251,247,241,.16);
  font-size:.82rem;color:rgba(251,247,241,.62);
}
.summary__picks li{line-height:1.55}
.summary__picks li strong{color:rgba(251,247,241,.9);font-weight:600;display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.1rem}
.summary__totals{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(201,165,87,.22)}
.total-row{display:flex;justify-content:space-between;gap:.8rem;font-size:.85rem;padding:.32rem 0;align-items:baseline}
.total-row span{color:rgba(251,247,241,.66)}
.total-row strong{font-family:var(--serif);font-size:1.05rem;font-weight:500;color:var(--ivory);text-align:right}
.total-row--muted strong{font-family:var(--sans);font-size:.74rem;color:rgba(251,247,241,.55);font-weight:400}
.total-row--deposit{margin-top:.45rem;padding-top:.65rem;border-top:1px dashed rgba(201,165,87,.3)}
.total-row--deposit strong{color:var(--gold-2);font-size:1.28rem}
.summary__fine{font-size:.7rem;line-height:1.55;color:rgba(251,247,241,.45);margin:.75rem 0 0}
.summary__call{
  font-size:.78rem;color:rgba(251,247,241,.55);margin:.85rem 0 0;text-align:center;
}
.summary__call a{color:var(--gold-2);border-bottom:1px solid rgba(201,165,87,.4)}

/* Mobile: compact summary that expands on demand */
.summary__toggle{
  display:none;
  width:100%;align-items:center;justify-content:space-between;gap:.8rem;
  background:none;border:0;padding:0;margin:0;
  color:var(--ivory);cursor:pointer;text-align:left;font:inherit;
}
.summary__toggle-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.summary__toggle-label{
  font-size:.58rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-2);
}
.summary__toggle-amount{
  font-family:var(--serif);font-size:1.28rem;color:var(--ivory);line-height:1.2;
}
.summary__toggle-amount small{font-family:var(--sans);font-size:.66rem;color:rgba(251,247,241,.55);font-weight:400;margin-left:.3rem}
.summary__toggle-right{display:flex;align-items:center;gap:.6rem;flex:0 0 auto}
.summary__chevron{
  width:26px;height:26px;border-radius:50%;border:1px solid rgba(201,165,87,.45);
  display:grid;place-items:center;color:var(--gold-2);font-size:.7rem;
  transition:transform .3s var(--ease);
}
.summary.is-open .summary__chevron{transform:rotate(180deg)}
.summary__detail{display:none;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(201,165,87,.22)}
.summary.is-open .summary__detail{display:block}

@media(max-width:1023px){
  /* Compact bar sits above the step content and stays in view while the
     visitor scrolls through a long step, so the running total is always seen. */
  .summary{order:-1;position:sticky;top:64px;z-index:20}
  .summary__card{padding:.8rem 1.05rem}
  .summary__title{display:none}
  .summary__toggle{display:flex}
  .summary__call{display:none}
  .summary.is-open .summary__detail{
    max-height:min(56vh,420px);overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
}
@media(min-width:1024px){
  .summary__toggle{display:none}
  .summary__detail{display:block!important;margin-top:0;padding-top:0;border-top:0}
  .summary__title{display:flex}
}

.noscript{padding:1.4rem;background:var(--cream);font-size:.9rem}
.noscript a{color:var(--wine-2);text-decoration:underline}

/* Confirmation */
.done{padding:clamp(1rem,3vw,2rem) 0 0}
.done[hidden]{display:none}
.done__inner{
  background:var(--ivory);color:var(--text);
  border:1px solid var(--gold-soft);
  border-radius:var(--radius);
  padding:clamp(1.6rem,5vw,3rem);
  max-width:720px;margin:0 auto;text-align:center;
  box-shadow:0 30px 70px -40px rgba(0,0,0,.7);
}
.done__title{font-size:clamp(1.8rem,5.5vw,2.6rem);color:var(--ink);margin:0 0 1.3rem}
.done__body{text-align:left;max-width:54ch;margin:0 auto 1.6rem}
.done__body p{font-size:.92rem;line-height:1.7;color:var(--text-soft);margin:0 0 .8rem}
.done__body strong{color:var(--ink)}
.done__sign{
  border-top:1px solid var(--line);padding-top:1.2rem;margin:0 0 1.5rem;
}
.done__sign span{
  display:block;font-family:var(--serif);font-size:1.5rem;color:var(--ink);
}
.done__sign em{
  font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--wine-2);font-style:normal;
}
.done__actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}

/* ============================== Chef ============================== */
.section--chef{background:var(--cream);position:relative;overflow:hidden}
.section--chef::before{
  content:"";position:absolute;right:-10%;top:-20%;width:55vw;height:55vw;
  border:1px solid rgba(201,165,87,.28);border-radius:50%;pointer-events:none;
}
.chef-grid{
  position:relative;display:grid;gap:2rem;grid-template-columns:1fr;align-items:center;
}
@media(min-width:900px){
  .chef-grid{grid-template-columns:minmax(0,0.85fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem)}
}
.chef-media{position:relative;padding-bottom:2.2rem;padding-right:2rem}
.chef-media > img{
  width:100%;height:clamp(340px,70vw,520px);object-fit:cover;object-position:50% 22%;
  border:1px solid rgba(36,29,26,.14);
}
.chef-media__accent{
  position:absolute;right:0;bottom:0;
  width:44%;max-width:200px;
  border:5px solid var(--cream);
  box-shadow:var(--shadow-md);
}
.chef-media__accent img{height:100%;width:100%;object-fit:cover;aspect-ratio:3/4}
@media(min-width:900px){
  .chef-media > img{height:560px}
}
.chef-copy p{font-size:.96rem;line-height:1.75;color:var(--text-soft);max-width:48ch}
.chef-copy__lede{
  font-family:var(--serif);font-size:clamp(1.2rem,3.4vw,1.5rem);
  color:var(--ink);line-height:1.45;
}
.chef-quote{
  margin:1.6rem 0;padding:0 0 0 1.2rem;
  border-left:2px solid var(--gold);
}
.chef-quote p{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.05rem,3vw,1.3rem);line-height:1.5;color:var(--ink);
  margin:0 0 .5rem;
}
.chef-quote footer{
  font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--text-mute);
}
.chef-copy__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;margin-top:1.6rem}

/* =========================== Experiences =========================== */
.section--experiences{background:var(--ink);color:var(--ivory);position:relative;overflow:hidden}
.section--experiences::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(70% 60% at 100% 0%,rgba(109,31,46,.4),transparent 65%);
  pointer-events:none;
}
.section--experiences .wrap{position:relative}
.exp-grid{display:grid;gap:.9rem;grid-template-columns:1fr}
@media(min-width:640px){.exp-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.exp-grid{grid-template-columns:repeat(4,1fr)}}
.exp{
  display:flex;flex-direction:column;
  padding:1.4rem 1.2rem;
  background:rgba(251,247,241,.045);
  border:1px solid rgba(251,247,241,.12);
  border-radius:var(--radius);
  transition:border-color .3s var(--ease),background .3s var(--ease),transform .3s var(--ease);
}
.exp:hover{border-color:rgba(201,165,87,.45);background:rgba(251,247,241,.07);transform:translateY(-2px)}
.exp__num{
  font-family:var(--serif);font-size:.9rem;color:var(--gold);
  letter-spacing:.14em;margin-bottom:.7rem;
}
.exp__name{font-size:1.32rem;color:var(--ivory);margin:0 0 .55rem;line-height:1.2}
.exp p{font-size:.85rem;line-height:1.65;color:rgba(251,247,241,.66);margin:0 0 1rem}
.exp__meta{
  margin-top:auto;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(201,165,87,.78);
}
.exp-cta{
  margin-top:clamp(1.6rem,4vw,2.4rem);
  display:flex;flex-wrap:wrap;align-items:center;gap:1rem;
}
.exp-cta p{font-size:.78rem;color:rgba(251,247,241,.5);margin:0}

/* ============================= Gallery ============================= */
.gallery{
  display:grid;gap:.6rem;
  grid-template-columns:repeat(2,1fr);
}
@media(min-width:760px){
  .gallery{grid-template-columns:repeat(4,1fr);gap:.75rem}
  .gallery figure.is-feature{grid-column:span 2;grid-row:span 2}
}
.gallery figure{
  position:relative;margin:0;overflow:hidden;
  border-radius:2px;background:var(--cream-2);
  aspect-ratio:1/1;
}
.gallery figure.is-feature{aspect-ratio:1/1}
@media(min-width:760px){.gallery figure.is-feature{aspect-ratio:1/1}}
.gallery img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .7s var(--ease),filter .4s var(--ease);
  filter:saturate(1.02);
}
.gallery figure:hover img{transform:scale(1.045)}
/* No caption layer and no dark readability gradient: the photographs are shown
   clean and unobstructed. Dish names are pending confirmation from Chef Markel. */

/* ============================ Testimonials ============================ */
.section--reviews{background:var(--cream)}
.reviews{display:grid;gap:1rem;grid-template-columns:1fr}
@media(min-width:760px){.reviews{grid-template-columns:repeat(3,1fr)}}
.review-card{
  background:#fff;border:1px solid var(--line);padding:1.4rem 1.2rem;border-radius:var(--radius);
}
.review-card blockquote{margin:0 0 .9rem;font-family:var(--serif);font-size:1.05rem;line-height:1.55;color:var(--ink)}
.review-card figcaption{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-mute)}

/* ============================== Custom ============================== */
.section--custom{
  background:linear-gradient(160deg,#2a1a18 0%,#1b1512 100%);
  color:var(--ivory);position:relative;overflow:hidden;
}
.section--custom::after{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(201,165,87,.6),transparent);
}
.custom-grid{
  position:relative;display:grid;gap:2rem;grid-template-columns:1fr;align-items:start;
}
@media(min-width:940px){
  .custom-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,5vw,4rem)}
}
.custom-list{display:grid;gap:.5rem;margin-top:1.4rem}
.custom-list li{
  position:relative;padding-left:1.2rem;
  font-size:.82rem;letter-spacing:.04em;color:rgba(251,247,241,.66);
}
.custom-list li::before{
  content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;
  border:1px solid var(--gold);transform:rotate(45deg);
}
.custom-form-wrap{
  background:var(--ivory);color:var(--text);
  border:1px solid var(--gold-soft);border-radius:var(--radius);
  padding:clamp(1.2rem,4vw,1.9rem);
  box-shadow:0 30px 70px -45px rgba(0,0,0,.8);
}
.custom-form__fine{font-size:.72rem;color:var(--text-mute);margin:.75rem 0 0;text-align:center}
.custom-form .field-row{gap:0 1rem}
.custom-thanks[hidden]{display:none}
.custom-thanks h3{font-size:clamp(1.4rem,4vw,1.9rem);color:var(--ink);margin:0 0 .8rem}
.custom-thanks p{font-size:.9rem;line-height:1.7;color:var(--text-soft)}
.custom-thanks__fine{font-size:.78rem;color:var(--text-mute);margin-bottom:1.2rem}

/* ============================== Contact ============================== */
.section--contact{
  background:var(--ink);color:var(--ivory);position:relative;overflow:hidden;
}
.section--contact::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(80% 70% at 0% 100%,rgba(109,31,46,.45),transparent 62%);
  pointer-events:none;
}
.contact-grid{
  position:relative;display:grid;gap:2rem;grid-template-columns:1fr;align-items:center;
}
@media(min-width:900px){.contact-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,4rem)}}
.contact-title{
  font-size:clamp(2rem,6.6vw,3.4rem);color:var(--ivory);
  margin:0 0 1.1rem;line-height:1.08;
}
.contact-title em{color:var(--gold-2);font-weight:300}
.contact-lede{font-size:.96rem;line-height:1.75;color:rgba(251,247,241,.68);max-width:46ch;margin:0 0 1.8rem}
.contact-actions{display:flex;flex-wrap:wrap;gap:.7rem}
.contact-card{
  background:rgba(251,247,241,.05);
  border:1px solid rgba(201,165,87,.28);
  border-radius:var(--radius);
  padding:1.5rem 1.35rem;
}
.contact-card h3{
  font-family:var(--sans);font-size:.64rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold-2);
  margin:0 0 1.1rem;padding-bottom:.8rem;
  border-bottom:1px solid rgba(201,165,87,.22);
}
.contact-list{display:grid;gap:.85rem}
.contact-list li{display:grid;grid-template-columns:78px 1fr;gap:.8rem;align-items:baseline}
.contact-list__label{
  font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(251,247,241,.42);
}
.contact-list a,.contact-list span:not(.contact-list__label){
  font-size:.9rem;color:var(--ivory);word-break:break-word;
}
.contact-list a{border-bottom:1px solid transparent;transition:border-color .2s var(--ease),color .2s var(--ease)}
.contact-list a:hover{color:var(--gold-2);border-color:rgba(201,165,87,.6)}

/* =============================== Footer =============================== */
.site-foot{
  background:#0f0b09;color:rgba(251,247,241,.5);
  padding:2.6rem 0 2rem;
  border-top:1px solid rgba(201,165,87,.16);
}
.foot-inner{display:grid;gap:1.4rem}
@media(min-width:820px){
  .foot-inner{grid-template-columns:auto 1fr;gap:3rem;align-items:start}
  .foot-legal{grid-column:1/-1;border-top:1px solid rgba(251,247,241,.08);padding-top:1.2rem}
}
.foot-name{font-family:var(--serif);font-size:1.5rem;color:var(--ivory);margin:0 0 .3rem;letter-spacing:.03em}
.foot-tag{
  font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-2);margin:0 0 .3rem;
}
.foot-sub{font-family:var(--serif);font-style:italic;font-size:.95rem;color:rgba(251,247,241,.42);margin:0}
.foot-meta{display:grid;gap:.7rem;max-width:62ch}
.foot-meta p{font-size:.75rem;line-height:1.65;margin:0}
.foot-meta strong{color:rgba(251,247,241,.72);font-weight:600}
.foot-legal{font-size:.72rem;margin:0;line-height:1.7}
.foot-legal a{color:rgba(251,247,241,.7)}
.foot-legal a:hover{color:var(--gold-2)}

/* ============================ Motion helpers ============================ */
.fade-in{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.fade-in.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .fade-in{opacity:1;transform:none}
}

/* Print: keep the request details legible */
@media print{
  .site-head,.nav-toggle,.builder,.summary__call,.hero__media,.gallery,.site-foot,.exp-grid{display:none!important}
  body{background:#fff;color:#000}
  .section{padding:0}
}
