/* ==========================================================================
   Garnet Catering & Events — visual system
   DNA: Garnet & gold, elegant luxe editorial. Playfair Display + Inter.
   Thin gold hairline rules & frames, gold sprig dividers, drop-caps,
   asymmetric magazine image+text pairs, full-bleed food photography broken
   by quiet ivory text spreads. Never a busy card grid.
   ========================================================================== */

:root{
  --ivory:   #f7f3ec;   /* base */
  --garnet:  #881c1c;   /* primary */
  --garnet-d:#6c1414;   /* deeper garnet */
  --gold:    #b08d3c;   /* antique gold accent */
  --gold-l:  #c9a85b;
  --aubergine:#3a1f29;  /* text */
  --cream:   #efe7d6;   /* panels */
  --ink:     #2a171f;
  --muted:   #6b5a5f;
  --line:    rgba(176,141,60,.40);   /* gold hairline */
  --line-soft:rgba(176,141,60,.22);
  --shadow:  0 24px 60px -28px rgba(58,31,41,.45);

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

  --wrap: 1180px;
  --gutter: clamp(20px, 5vw, 64px);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--sans);
  color:var(--aubergine);
  background:var(--ivory);
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:var(--garnet); text-decoration:none; }
h1,h2,h3,h4{ font-family:var(--serif); color:var(--ink); font-weight:600; line-height:1.12; margin:0; }
p{ margin:0 0 1em; }

.wrap{ width:min(100% - var(--gutter)*2, var(--wrap)); margin-inline:auto; }

/* focus & skip link */
:focus-visible{ outline:2.5px solid var(--gold); outline-offset:3px; border-radius:2px; }
.skip-link{
  position:absolute; left:-999px; top:0; z-index:200;
  background:var(--garnet); color:#fff; padding:.7em 1.2em; border-radius:0 0 6px 0;
}
.skip-link:focus{ left:0; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--sans); font-weight:600; font-size:.94rem; letter-spacing:.02em;
  padding:.85em 1.6em; border-radius:2px; cursor:pointer; border:1px solid transparent;
  transition:transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
  text-align:center;
}
.btn-primary{ background:var(--garnet); color:var(--ivory); box-shadow:0 10px 26px -14px rgba(136,28,28,.8); }
.btn-primary:hover{ background:var(--garnet-d); transform:translateY(-2px); }
.btn-line{ background:transparent; color:var(--garnet); border-color:var(--gold); }
.btn-line:hover{ background:var(--garnet); color:var(--ivory); border-color:var(--garnet); }
.btn-gold{ background:var(--gold); color:#2a1c08; }
.btn-gold:hover{ background:var(--gold-l); transform:translateY(-2px); }
.btn-lg{ padding:1.05em 2.1em; font-size:1rem; }
.btn-block{ width:100%; }
.btn-ghost-light{ background:transparent; color:var(--ivory); border-color:rgba(247,243,236,.5); }
.btn-ghost-light:hover{ background:var(--ivory); color:var(--garnet); border-color:var(--ivory); }

/* ---------- Eyebrow + sprig divider (motif) ---------- */
.eyebrow{
  display:inline-block; font-family:var(--sans); font-weight:600;
  font-size:.74rem; letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold); margin-bottom:1.1em;
}
.eyebrow::before{ content:"— "; color:var(--gold); }
.sprig{ display:flex; justify-content:center; margin:0 auto; }
.sprig svg{ width:130px; height:24px; }
.sprig svg path{ fill:var(--gold); }
.sprig svg line{ stroke:var(--line); stroke-width:1; }

/* ---------- Topbar ---------- */
.topbar{ background:var(--aubergine); color:var(--cream); font-size:.8rem; }
.topbar-in{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.5rem 0; }
.tb-item{ display:inline-flex; align-items:center; gap:.45em; color:var(--cream); letter-spacing:.02em; }
.tb-tag{ opacity:.85; }
.tb-phone{ font-weight:600; }
.tb-phone:hover{ color:var(--gold-l); }
.ic{ width:1em; height:1.05em; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

/* ---------- Header / nav ---------- */
.site-head{
  position:sticky; top:0; z-index:100; background:rgba(247,243,236,.94);
  backdrop-filter:saturate(140%) blur(8px); border-bottom:1px solid var(--line-soft);
}
.head-in{ display:flex; align-items:center; gap:1.5rem; padding:.7rem 0; }
.brand{ display:inline-flex; align-items:center; gap:.7rem; margin-right:auto; }
.brand-mark{
  font-family:var(--serif); font-weight:700; color:var(--ivory); background:var(--garnet);
  width:44px; height:44px; display:grid; place-items:center; font-size:1.5rem;
  border:1px solid var(--gold); box-shadow:inset 0 0 0 3px rgba(176,141,60,.0), 0 0 0 4px rgba(176,141,60,.18);
}
.brand-words{ display:flex; flex-direction:column; line-height:1; }
.brand-name{ font-family:var(--serif); font-size:1.4rem; font-weight:700; color:var(--ink); letter-spacing:.01em; }
.brand-sub{ font-family:var(--sans); font-size:.62rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-top:.35em; }
.nav{ display:flex; gap:1.6rem; }
.nav a{
  font-family:var(--sans); font-weight:500; font-size:.95rem; color:var(--aubergine);
  padding:.3em 0; position:relative;
}
.nav a::after{ content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .22s ease; }
.nav a:hover::after, .nav a.active::after{ transform:scaleX(1); }
.nav a.active{ color:var(--garnet); }
.head-cta{ display:flex; }
.menu-btn{ display:none; background:none; border:1px solid var(--line); border-radius:2px; padding:.4em; cursor:pointer; }
.menu-btn svg{ width:26px; height:26px; fill:none; stroke:var(--garnet); stroke-width:1.8; stroke-linecap:round; }

/* ==========================================================================
   Sections
   ========================================================================== */
.section{ padding:clamp(64px, 9vw, 120px) 0; }
.section-cream{ background:var(--cream); }
.section-garnet{ background:var(--garnet); color:var(--ivory); }
.section-garnet h1,.section-garnet h2,.section-garnet h3{ color:var(--ivory); }
.sec-head{ max-width:720px; margin:0 auto clamp(40px,5vw,68px); text-align:center; }
.sec-head.left{ text-align:left; margin-left:0; }
.sec-head h2{ font-size:clamp(2rem, 4.2vw, 3.1rem); letter-spacing:-.01em; }
.sec-head p{ color:var(--muted); margin-top:1em; font-size:1.06rem; }
.section-garnet .sec-head p{ color:rgba(247,243,236,.8); }

/* hairline frame helper */
.framed{ position:relative; }
.framed::before{
  content:""; position:absolute; inset:14px; border:1px solid var(--line); pointer-events:none;
}

/* ==========================================================================
   HERO — centered oversized Playfair line over banquet table, gold rule frame
   ========================================================================== */
.hero{ position:relative; color:var(--ivory); overflow:hidden; }
.hero-bg{
  position:absolute; inset:0; background:#3a1f29 center/cover no-repeat;
  background-image:url('assets/img/hero-banquet-table.jpg');
}
.hero-veil{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(58,31,41,.62) 0%, rgba(58,31,41,.30) 42%, rgba(58,31,41,.78) 100%),
    radial-gradient(120% 80% at 50% 8%, rgba(58,31,41,.0) 40%, rgba(58,31,41,.55) 100%);
}
.hero-in{
  position:relative; z-index:2; text-align:center;
  padding:clamp(90px, 16vw, 190px) 0 clamp(70px, 10vw, 120px);
  display:flex; flex-direction:column; align-items:center;
}
.hero-frame{
  border:1px solid rgba(201,168,91,.6); padding:clamp(34px,6vw,68px) clamp(24px,6vw,80px);
  max-width:880px; margin:0 auto; backdrop-filter:blur(1px);
}
.hero .eyebrow{ color:var(--gold-l); }
.hero h1{
  font-size:clamp(2.6rem, 7vw, 5.4rem); color:var(--ivory); font-weight:700;
  letter-spacing:-.015em; line-height:1.04; margin-bottom:.35em;
  text-shadow:0 2px 30px rgba(0,0,0,.35);
}
.hero-sub{ font-size:clamp(1.05rem,2vw,1.35rem); color:var(--cream); max-width:600px; margin:0 auto 1.4em; font-weight:400; }
.hero-body{ color:rgba(247,243,236,.82); max-width:560px; margin:0 auto 2em; font-size:1rem; }
.hero-ctas{ display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; }

/* ==========================================================================
   TRUST STRIP — thin gold-ruled inline row, not cards
   ========================================================================== */
.trust{ background:var(--ivory); border-bottom:1px solid var(--line-soft); }
.trust-in{ display:flex; flex-wrap:wrap; justify-content:center; padding:clamp(34px,5vw,52px) 0; }
.trust-item{
  flex:1 1 200px; text-align:center; padding:.4em clamp(18px,3vw,40px);
  border-right:1px solid var(--line-soft);
}
.trust-item:last-child{ border-right:0; }
.trust-num{ font-family:var(--serif); font-size:1.9rem; color:var(--garnet); font-weight:600; }
.trust-txt{ font-size:.92rem; color:var(--muted); margin-top:.25em; }

/* ==========================================================================
   EDITORIAL PAIRS — asymmetric image + text (magazine), alternating
   ========================================================================== */
.pair{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(34px,5vw,72px); align-items:center; }
.pair + .pair{ margin-top:clamp(64px,8vw,110px); }
.pair.flip .pair-media{ order:2; }
.pair-media{ position:relative; }
.pair-media img{ width:100%; aspect-ratio:4/5; object-fit:cover; box-shadow:var(--shadow); }
.pair-media.land img{ aspect-ratio:4/3; }
.pair-media::after{
  content:""; position:absolute; inset:-14px; border:1px solid var(--line); pointer-events:none; z-index:-1;
}
.pair.flip .pair-media::after{ inset:-14px; }
.pair-kicker{ font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:1em; }
.pair-text h2{ font-size:clamp(1.8rem,3.6vw,2.7rem); margin-bottom:.5em; }
.pair-text h3{ font-size:clamp(1.6rem,3vw,2.2rem); }
.pair-text p{ color:var(--muted); }
.pair-text .btn{ margin-top:1em; }

/* drop-cap for long editorial copy */
.dropcap::first-letter{
  font-family:var(--serif); font-weight:700; color:var(--garnet);
  font-size:3.6em; float:left; line-height:.78; margin:.06em .12em 0 0;
}

/* ==========================================================================
   OCCASIONS — editorial list rows w/ gold rules (not card grid)
   ========================================================================== */
.occasions{ max-width:980px; margin:0 auto; }
.occ-row{
  display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,4vw,54px);
  padding:clamp(28px,4vw,42px) 0; border-top:1px solid var(--line-soft); align-items:baseline;
}
.occ-row:last-child{ border-bottom:1px solid var(--line-soft); }
.occ-no{ font-family:var(--serif); font-style:italic; font-size:1.5rem; color:var(--gold); min-width:2.2em; }
.occ-title{ font-size:clamp(1.4rem,2.6vw,1.9rem); margin-bottom:.3em; }
.occ-row p{ color:var(--muted); margin:0; max-width:62ch; }

/* ==========================================================================
   WHY — four points, gold-framed quiet panel rows
   ========================================================================== */
.why-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(24px,3vw,48px); max-width:980px; margin:0 auto; }
.why-item{ padding-left:1.6em; border-left:2px solid var(--gold); }
.why-item h3{ font-size:1.3rem; margin-bottom:.4em; color:var(--ink); }
.section-garnet .why-item h3{ color:var(--ivory); }
.why-item p{ color:var(--muted); margin:0; }
.section-garnet .why-item p{ color:rgba(247,243,236,.78); }
.section-garnet .why-item{ border-left-color:var(--gold-l); }

/* ==========================================================================
   PROCESS — numbered vertical editorial steps
   ========================================================================== */
.process{ max-width:860px; margin:0 auto; }
.proc-step{ display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,4vw,48px); padding:clamp(24px,3.5vw,40px) 0; position:relative; }
.proc-step + .proc-step{ border-top:1px solid var(--line-soft); }
.proc-num{ font-family:var(--serif); font-size:clamp(2.4rem,5vw,3.4rem); color:var(--gold); font-weight:500; line-height:1; }
.proc-step h3{ font-size:1.4rem; margin-bottom:.35em; }
.proc-step p{ color:var(--muted); margin:0; }

/* ==========================================================================
   MENUS — seasonal sample menus, ivory text spreads w/ gold dish accents
   ========================================================================== */
.menus-spread{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(28px,4vw,56px); max-width:1000px; margin:0 auto; }
.menu-card{
  background:var(--ivory); padding:clamp(30px,4vw,46px); position:relative;
  border:1px solid var(--line-soft);
}
.section-cream .menu-card{ background:var(--cream); }
.menu-card::before{ content:""; position:absolute; inset:9px; border:1px solid var(--line); pointer-events:none; }
.menu-season{ font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); }
.menu-card h3{ font-family:var(--serif); font-size:1.55rem; margin:.4em 0 .7em; color:var(--garnet); }
.menu-card .menu-dishes{ color:var(--aubergine); font-size:1rem; margin:0; line-height:1.85; }
.menu-rule{ width:48px; height:1px; background:var(--gold); margin:.2em 0 1em; }
.menus-foot{ text-align:center; margin-top:clamp(40px,5vw,60px); }

/* menus page — by-course list */
.course-block{ max-width:900px; margin:0 auto; }
.course{ padding:clamp(26px,4vw,42px) 0; border-top:1px solid var(--line-soft); }
.course:first-child{ border-top:0; }
.course h3{ font-size:1.7rem; color:var(--garnet); margin-bottom:.2em; }
.course-lead{ color:var(--muted); margin-bottom:1.2em; font-style:italic; font-family:var(--serif); }
.dish-list{ list-style:none; margin:0; padding:0; columns:2; column-gap:clamp(28px,4vw,56px); }
.dish-list li{ break-inside:avoid; padding:.5em 0; border-bottom:1px dotted var(--line-soft); }
.dish-list li b{ display:block; font-family:var(--serif); font-size:1.08rem; color:var(--ink); font-weight:600; }
.dish-list li span{ color:var(--muted); font-size:.92rem; }

/* ==========================================================================
   TESTIMONIALS — editorial quote rows
   ========================================================================== */
.quotes{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(28px,4vw,52px); max-width:1000px; margin:0 auto; }
.quote{ padding:clamp(28px,3vw,40px); background:var(--ivory); border-top:2px solid var(--gold); box-shadow:var(--shadow); }
.section-cream .quote{ background:#fff; }
.quote-mark{ font-family:var(--serif); font-size:3rem; line-height:.6; color:var(--gold); display:block; height:.4em; }
.quote p{ font-family:var(--serif); font-style:italic; font-size:1.18rem; color:var(--ink); line-height:1.55; }
.quote cite{ display:block; font-family:var(--sans); font-style:normal; font-weight:600; font-size:.9rem; color:var(--garnet); letter-spacing:.04em; margin-top:1em; }
.stars{ color:var(--gold); letter-spacing:.15em; font-size:.95rem; margin-bottom:.6em; }

/* ==========================================================================
   FAQ — accordion-style detail rows w/ gold rules
   ========================================================================== */
.faq-list{ max-width:820px; margin:0 auto; }
.faq-item{ border-top:1px solid var(--line-soft); }
.faq-item:last-child{ border-bottom:1px solid var(--line-soft); }
.faq-item summary{
  cursor:pointer; list-style:none; padding:1.3em 2.5em 1.3em 0; position:relative;
  font-family:var(--serif); font-size:1.25rem; color:var(--ink); font-weight:600;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+"; position:absolute; right:.2em; top:50%; transform:translateY(-50%);
  color:var(--gold); font-family:var(--sans); font-weight:400; font-size:1.6rem; transition:transform .2s;
}
.faq-item[open] summary::after{ content:"\2212"; }
.faq-item p{ color:var(--muted); padding:0 2.5em 1.5em 0; margin:0; }
.faq-teaser{ text-align:center; margin-top:2.5em; }

/* ==========================================================================
   CTA — full-width garnet w/ background, negative space left
   ========================================================================== */
.cta{ position:relative; color:var(--ivory); overflow:hidden; }
.cta-bg{ position:absolute; inset:0; background:var(--aubergine) center/cover no-repeat; background-image:url('assets/img/cta-event-dusk.jpg'); }
.cta-veil{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(58,31,41,.92) 0%, rgba(58,31,41,.78) 40%, rgba(58,31,41,.45) 100%); }
.cta-in{ position:relative; z-index:2; padding:clamp(70px,10vw,128px) 0; max-width:640px; }
.cta-in h2{ font-size:clamp(2rem,4.5vw,3.2rem); color:var(--ivory); margin-bottom:.4em; }
.cta-in p{ color:rgba(247,243,236,.85); margin-bottom:1.6em; font-size:1.08rem; }
.cta-ctas{ display:flex; gap:1rem; flex-wrap:wrap; }

/* ==========================================================================
   PAGE HERO (interior pages)
   ========================================================================== */
.page-hero{ position:relative; color:var(--ivory); overflow:hidden; }
.page-hero-bg{ position:absolute; inset:0; background:var(--aubergine) center/cover no-repeat; }
.page-hero-veil{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(58,31,41,.55), rgba(58,31,41,.78)); }
.page-hero-in{ position:relative; z-index:2; text-align:center; padding:clamp(80px,12vw,150px) 0 clamp(60px,8vw,100px); max-width:760px; margin:0 auto; }
.page-hero .eyebrow{ color:var(--gold-l); }
.page-hero h1{ font-size:clamp(2.3rem,5.5vw,4rem); color:var(--ivory); margin-bottom:.3em; }
.page-hero-sub{ font-size:clamp(1.05rem,2vw,1.25rem); color:var(--cream); margin:0 auto; max-width:580px; }

/* ==========================================================================
   GALLERY — masonry-ish editorial grid + lightbox
   ========================================================================== */
.gallery-grid{ columns:3; column-gap:18px; }
.gallery-grid figure{ break-inside:avoid; margin:0 0 18px; position:relative; cursor:zoom-in; overflow:hidden; }
.gallery-grid img{ width:100%; transition:transform .5s ease; }
.gallery-grid figure::after{ content:""; position:absolute; inset:8px; border:1px solid rgba(247,243,236,.0); transition:border-color .3s; pointer-events:none; }
.gallery-grid figure:hover img{ transform:scale(1.05); }
.gallery-grid figure:hover::after{ border-color:rgba(201,168,91,.85); }
.gallery-grid figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:1.4em 1em .9em;
  background:linear-gradient(transparent, rgba(58,31,41,.85)); color:var(--ivory);
  font-size:.85rem; letter-spacing:.04em; opacity:0; transform:translateY(8px); transition:.3s;
}
.gallery-grid figure:hover figcaption{ opacity:1; transform:none; }

.lightbox{ position:fixed; inset:0; background:rgba(42,23,31,.94); display:none; z-index:300; align-items:center; justify-content:center; }
.lightbox.open{ display:flex; }
.lb-img{ max-width:90vw; max-height:84vh; box-shadow:0 30px 80px rgba(0,0,0,.6); border:1px solid rgba(201,168,91,.4); }
.lb-close,.lb-prev,.lb-next{ position:absolute; background:none; border:1px solid rgba(247,243,236,.35); color:var(--ivory); width:48px; height:48px; border-radius:50%; cursor:pointer; font-size:1.3rem; display:grid; place-items:center; transition:.2s; }
.lb-close:hover,.lb-prev:hover,.lb-next:hover{ background:var(--garnet); border-color:var(--garnet); }
.lb-close{ top:24px; right:24px; }
.lb-prev{ left:24px; top:50%; transform:translateY(-50%); }
.lb-next{ right:24px; top:50%; transform:translateY(-50%); }
.lb-count{ position:absolute; bottom:24px; left:0; right:0; text-align:center; color:var(--cream); font-size:.85rem; letter-spacing:.1em; }

/* ==========================================================================
   INQUIRY FORM
   ========================================================================== */
.inquiry-grid{ display:grid; grid-template-columns:1.6fr 1fr; gap:clamp(36px,5vw,72px); align-items:start; }
.inq-main h2{ font-size:1.9rem; margin-bottom:.3em; }
.inq-intro{ color:var(--muted); margin-bottom:1.8em; }
.req{ color:var(--garnet); }
.c-form .field-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem 1.4rem; }
.field{ display:flex; flex-direction:column; margin-bottom:1.1rem; border:0; padding:0; }
.field-l{ font-weight:600; font-size:.86rem; color:var(--aubergine); margin-bottom:.45em; letter-spacing:.02em; }
.field input,.field select,.field textarea{
  font-family:var(--sans); font-size:1rem; color:var(--ink); background:var(--ivory);
  border:1px solid var(--line); border-radius:2px; padding:.8em .9em; width:100%; transition:border-color .2s, box-shadow .2s;
}
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(176,141,60,.18); }
.field.has-err input,.field.has-err select{ border-color:var(--garnet); }
.field-err{ color:var(--garnet); font-size:.82rem; margin-top:.4em; }
.field-hint{ color:var(--muted); font-weight:400; font-size:.8rem; }
.span-2{ grid-column:1 / -1; }
.c-note{ font-size:.82rem; color:var(--muted); margin-top:1em; }

.form-success{ text-align:center; padding:clamp(36px,5vw,60px); background:var(--cream); border:1px solid var(--line); }
.fs-check{ width:58px; height:58px; border-radius:50%; background:var(--garnet); display:grid; place-items:center; margin:0 auto 1em; }
.fs-check svg{ width:30px; height:30px; fill:none; stroke:var(--ivory); stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round; }
.form-success h2{ font-size:1.9rem; margin-bottom:.4em; color:var(--garnet); }
.form-success p{ color:var(--muted); max-width:46ch; margin-inline:auto; }
.fs-btns{ display:flex; gap:1rem; justify-content:center; margin-top:1.6em; flex-wrap:wrap; }

.inq-side .iside-card{ background:var(--cream); padding:1.6em 1.5em; margin-bottom:1.2rem; border:1px solid var(--line-soft); position:relative; }
.iside-card::before{ content:""; position:absolute; inset:7px; border:1px solid var(--line-soft); pointer-events:none; }
.iside-card h3{ font-size:1.2rem; color:var(--garnet); margin-bottom:.4em; }
.iside-card p{ color:var(--muted); font-size:.94rem; margin:0; }
.iside-phone{ font-family:var(--serif); font-size:1.7rem; color:var(--garnet); font-weight:600; display:block; margin:.2em 0; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.foot{ background:var(--aubergine); color:var(--cream); padding-top:clamp(40px,5vw,64px); }
.foot-sprig{ margin-bottom:clamp(36px,5vw,56px); }
.foot-sprig svg path{ fill:var(--gold); }
.foot-sprig svg line{ stroke:rgba(176,141,60,.5); }
.foot-in{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:clamp(28px,4vw,52px); padding-bottom:clamp(40px,5vw,60px); }
.foot-mark{ background:var(--garnet); margin-bottom:1em; }
.foot-tag{ color:rgba(247,243,236,.78); font-size:.95rem; }
.foot-addr{ color:var(--gold-l); font-size:.86rem; margin:0; }
.foot-col h4{ font-family:var(--sans); font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:1em; font-weight:600; }
.foot-h2{ margin-top:1.6em; }
.foot-nav{ display:flex; flex-direction:column; gap:.55em; }
.foot-nav a{ color:rgba(247,243,236,.82); font-size:.94rem; }
.foot-nav a:hover{ color:var(--gold-l); }
.foot-line{ color:rgba(247,243,236,.78); font-size:.92rem; margin:0 0 .35em; }
.foot-phone{ font-family:var(--serif); font-size:1.5rem; color:var(--ivory); font-weight:600; display:block; }
.foot-phone:hover{ color:var(--gold-l); }
.foot-email{ color:var(--gold-l); font-size:.94rem; display:block; margin:.4em 0 1em; }
.foot-note{ color:rgba(247,243,236,.72); font-size:.88rem; margin-bottom:1.2em; }
.foot-bottom{ display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; padding:1.6em 0; border-top:1px solid rgba(176,141,60,.25); font-size:.8rem; color:rgba(247,243,236,.6); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:980px){
  .gallery-grid{ columns:2; }
  .foot-in{ grid-template-columns:1fr 1fr; }
}
@media (max-width:820px){
  .nav, .head-cta{ display:none; }
  .menu-btn{ display:inline-flex; }
  .site-head.open .nav{
    display:flex; flex-direction:column; gap:0;
    position:absolute; top:100%; left:0; right:0; background:var(--ivory);
    border-bottom:1px solid var(--line); box-shadow:var(--shadow); padding:.5em 0;
  }
  .site-head.open .nav a{ padding:.9em var(--gutter); border-top:1px solid var(--line-soft); }
  .site-head.open .nav a::after{ display:none; }
  .site-head.open .head-cta{ display:flex; position:absolute; top:100%; left:0; right:0; transform:translateY(100%); padding:1em var(--gutter); background:var(--ivory); border-bottom:1px solid var(--line); }
  .site-head.open .head-cta .btn{ width:100%; }

  .pair{ grid-template-columns:1fr; gap:32px; }
  .pair.flip .pair-media{ order:0; }
  .pair-media::after{ inset:-8px; }
  .why-grid{ grid-template-columns:1fr; }
  .menus-spread{ grid-template-columns:1fr; }
  .quotes{ grid-template-columns:1fr; }
  .dish-list{ columns:1; }
  .inquiry-grid{ grid-template-columns:1fr; }
  .trust-item{ flex:1 1 45%; border-right:0; border-bottom:1px solid var(--line-soft); padding-block:1em; }
  .trust-item:nth-last-child(-n+1){ border-bottom:0; }
}
@media (max-width:560px){
  body{ font-size:16px; }
  .gallery-grid{ columns:1; }
  .c-form .field-grid{ grid-template-columns:1fr; }
  .foot-in{ grid-template-columns:1fr; }
  .foot-bottom{ justify-content:flex-start; }
  .occ-row{ grid-template-columns:1fr; gap:.4em; }
  .hero-frame{ padding:28px 20px; }
}
@media (prefers-reduced-motion:reduce){
  *{ scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}
