/* ============================================================
   Kitchen Captivation — shared design system
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500&family=Karla:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');

:root{
  --ink:        #211C17;
  --ink-soft:   #4A4238;
  --paper:      #F1E7D3;
  --paper-alt:  #E7DAC0;
  --cloth:      #FBF7EE;
  --saffron:    #C8801A;
  --saffron-dp: #A9611A;
  --brass:      #A9822C;
  --curry:      #33473A;
  --curry-dp:   #253530;
  --chili:      #7A2E23;
  --line:       rgba(33,28,23,0.14);
  --shadow:     0 18px 40px -22px rgba(33,28,23,0.45);

  --serif: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --sans:  'Karla', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --maxw: 1180px;
  --gutter: clamp(20px, 5vw, 64px);
  --radius: 3px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16.5px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:600; margin:0; line-height:1.08; letter-spacing:-0.01em; }
p{ margin:0; }
button{ font-family:inherit; cursor:pointer; }
input,select,textarea{ font-family:inherit; font-size:1rem; }

.icon{ width:1em; height:1em; display:inline-block; vertical-align:-0.15em; fill:none; }
.icon-fill{ fill:currentColor; }

:focus-visible{ outline:2.5px solid var(--saffron-dp); outline-offset:3px; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); }

/* ---------- typography helpers ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--sans); font-weight:600; font-size:0.8rem;
  color:var(--curry); letter-spacing:0.02em;
}
.eyebrow .icon{ color:var(--saffron-dp); }
.display-1{ font-size:clamp(2.6rem, 5.4vw, 4.6rem); }
.display-2{ font-size:clamp(2.1rem, 3.6vw, 3.1rem); }
.display-3{ font-size:clamp(1.5rem, 2.2vw, 1.9rem); }
.lede{ font-size:1.18rem; color:var(--ink-soft); max-width:46em; line-height:1.65; }
.italic{ font-style:italic; font-weight:500; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:9px;
  padding:14px 26px; border-radius:2px; border:1.4px solid transparent;
  font-weight:600; font-size:0.98rem; white-space:nowrap;
  transition:transform .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
}
.btn-primary{ background:var(--ink); color:var(--cloth); }
.btn-primary:hover{ background:var(--curry-dp); transform:translateY(-1px); }
.btn-line{ border-color:var(--ink); color:var(--ink); }
.btn-line:hover{ background:var(--ink); color:var(--cloth); }
.btn-ghost{ color:var(--ink); padding-left:0; padding-right:0; }
.btn-ghost .icon{ transition:transform .25s ease; }
.btn-ghost:hover .icon{ transform:translate(3px,-3px); }
.btn[disabled]{ opacity:.6; cursor:progress; }

/* ============================================================
   Header / nav
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(241,231,211,0.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  transition:padding .25s ease;
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; gap:24px; padding-top:20px; padding-bottom:20px; transition:padding .25s ease; }
.site-header.is-compact .wrap{ padding-top:12px; padding-bottom:12px; }

.brand{ display:flex; align-items:center; gap:12px; }
.brand-mark{ width:42px; height:42px; flex:none; }
.brand-word{ display:flex; flex-direction:column; line-height:1.15; }
.brand-word b{ font-family:var(--serif); font-size:1.28rem; font-weight:600; }
.brand-word span{ font-size:0.66rem; letter-spacing:0.14em; color:var(--ink-soft); }

.nav{ display:flex; align-items:center; gap:38px; }
.nav-links{ display:flex; gap:32px; }
.nav-links a{ font-weight:600; font-size:0.95rem; position:relative; padding:4px 0; color:var(--ink-soft); }
.nav-links a:hover, .nav-links a[aria-current="page"]{ color:var(--ink); }
.nav-links a[aria-current="page"]::after{
  content:""; position:absolute; left:0; right:0; bottom:-3px; height:2px; background:var(--saffron); border-radius:2px;
}
.nav-cta{ display:flex; align-items:center; gap:18px; }
.nav-toggle{ display:none; background:none; border:none; color:var(--ink); width:38px; height:38px; align-items:center; justify-content:center; }
.nav-toggle .icon{ width:22px; height:22px; }

@media (max-width: 900px){
  .nav-links{
    position:fixed; inset:0 0 0 auto; width:min(78vw,340px); height:100vh;
    background:var(--cloth); flex-direction:column; gap:2px; padding:96px 30px 30px;
    transform:translateX(100%); transition:transform .35s ease; box-shadow:var(--shadow);
  }
  .nav-links.is-open{ transform:translateX(0); }
  .nav-links a{ font-size:1.15rem; padding:14px 0; border-bottom:1px solid var(--line); color:var(--ink); }
  .nav-toggle{ display:inline-flex; }
  body.nav-open{ overflow:hidden; }
  .nav-scrim{
    position:fixed; inset:0; background:rgba(33,28,23,0.4); opacity:0; pointer-events:none;
    transition:opacity .3s ease; z-index:55;
  }
  .nav-scrim.is-open{ opacity:1; pointer-events:auto; }
}
@media (min-width: 901px){ .nav-cta .btn-line{ display:inline-flex; } }

/* ============================================================
   Hero
   ============================================================ */
.hero{ position:relative; padding-top:clamp(44px,8vw,88px); overflow:hidden; }
.hero-grid{
  display:grid; grid-template-columns:1.05fr 0.95fr; gap:clamp(28px,5vw,70px); align-items:center;
}
.hero-copy .eyebrow{ margin-bottom:22px; }
.hero-copy h1{ margin-bottom:24px; }
.hero-copy .lede{ margin-bottom:34px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:16px 28px; align-items:center; }
.hero-stats{ display:flex; gap:clamp(20px,4vw,46px); margin-top:54px; padding-top:30px; border-top:1px solid var(--line); flex-wrap:wrap; }
.hero-stats div b{ font-family:var(--serif); font-size:1.9rem; display:block; font-weight:600; }
.hero-stats div span{ font-size:0.82rem; color:var(--ink-soft); }

.hero-media{ position:relative; }
.hero-media .frame{
  position:relative; border-radius:4px; overflow:hidden; box-shadow:var(--shadow);
  aspect-ratio:4/5;
}
.hero-media .frame img{ width:100%; height:100%; object-fit:cover; }
.hero-badge{
  position:absolute; left:-26px; bottom:-26px; background:var(--ink); color:var(--cloth);
  border-radius:3px; padding:20px 24px; box-shadow:var(--shadow); max-width:230px;
}
.hero-badge .icon{ color:var(--saffron); width:22px; height:22px; margin-bottom:10px; }
.hero-badge p{ font-size:0.86rem; line-height:1.5; color:#E9E1D2; }
@media (max-width:760px){ .hero-badge{ left:10px; bottom:-20px; padding:16px 18px; } }

/* spice-trail divider — one signature hand-set graphic moment */
.spice-trail{ display:flex; align-items:center; gap:10px; justify-content:center; padding:56px 0; color:var(--brass); }
.spice-trail span{ width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.55; }
.spice-trail span:nth-child(3n){ opacity:.9; transform:scale(1.4); }
.spice-trail .icon{ width:17px; height:17px; margin:0 4px; }

/* ============================================================
   Sections
   ============================================================ */
section{ padding:clamp(56px,9vw,108px) 0; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:52px; flex-wrap:wrap; }
.section-head .lede{ margin-top:16px; }
.alt-bg{ background:var(--paper-alt); }
.dark-bg{ background:var(--ink); color:var(--cloth); }
.dark-bg .ink-soft, .dark-bg .lede{ color:#CBC0AC; }
.dark-bg h2, .dark-bg h3{ color:var(--cloth); }

/* ----- experience / tasting-menu list ----- */
.menu-list{ border-top:1px solid var(--line); }
.menu-row{
  display:grid; grid-template-columns:64px 1.4fr auto; gap:26px; align-items:start;
  padding:34px 0; border-bottom:1px solid var(--line);
}
.menu-row .num{ font-family:var(--serif); font-size:1.3rem; color:var(--brass); font-weight:600; }
.menu-row h3{ font-size:1.5rem; margin-bottom:10px; }
.menu-row p{ color:var(--ink-soft); max-width:44em; }
.menu-row .meta{ display:flex; gap:18px; margin-top:14px; flex-wrap:wrap; }
.menu-row .meta span{ display:flex; align-items:center; gap:7px; font-size:0.84rem; color:var(--ink-soft); }
.menu-row .meta .icon{ width:15px; height:15px; color:var(--curry); }
.menu-row .price{ text-align:right; white-space:nowrap; font-family:var(--serif); font-size:1.2rem; font-weight:600; color:var(--ink); }
.menu-row .price small{ display:block; font-family:var(--sans); font-size:0.72rem; font-weight:500; color:var(--ink-soft); margin-top:4px; }
@media (max-width:640px){
  .menu-row{ grid-template-columns:40px 1fr; }
  .menu-row .price{ grid-column:2; text-align:left; margin-top:4px; }
}

/* ----- gallery ----- */
.gallery{ display:grid; grid-template-columns:repeat(6,1fr); gap:18px; }
.gallery figure{ margin:0; border-radius:3px; overflow:hidden; position:relative; box-shadow:var(--shadow); }
.gallery figure img{ width:100%; height:100%; object-fit:cover; }
.gallery figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:16px 18px;
  background:linear-gradient(0deg, rgba(33,28,23,0.82), transparent);
  color:#fff; font-size:0.86rem; font-weight:600;
}
.gallery .g-a{ grid-column:span 3; grid-row:span 2; aspect-ratio:4/5; }
.gallery .g-b{ grid-column:span 3; aspect-ratio:16/10; }
.gallery .g-c{ grid-column:span 3; aspect-ratio:16/10; }
@media (max-width:760px){
  .gallery{ grid-template-columns:1fr; }
  .gallery .g-a,.gallery .g-b,.gallery .g-c{ grid-column:span 1; aspect-ratio:4/3; }
}

/* ----- location preview cards ----- */
.loc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.loc-card{ position:relative; border-radius:4px; overflow:hidden; aspect-ratio:5/4.2; box-shadow:var(--shadow); }
.loc-card img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.loc-card:hover img{ transform:scale(1.05); }
.loc-card .overlay{
  position:absolute; inset:0; background:linear-gradient(180deg, rgba(33,28,23,0) 35%, rgba(33,28,23,0.88));
  display:flex; flex-direction:column; justify-content:flex-end; padding:30px; color:#fff;
}
.loc-card .tag{ font-size:0.78rem; letter-spacing:0.08em; color:#E9C98A; font-weight:600; margin-bottom:8px; }
.loc-card h3{ color:#fff; font-size:1.7rem; margin-bottom:10px; }
.loc-card p{ color:#E7DFCF; font-size:0.9rem; max-width:32em; }
.loc-card .go{ margin-top:16px; display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:0.88rem; color:#fff; }
@media (max-width:760px){ .loc-grid{ grid-template-columns:1fr; } }

/* ----- testimonials ----- */
.testi-wrap{ position:relative; max-width:760px; margin:0 auto; text-align:center; }
.testi-wrap .icon-quote{ width:34px; height:34px; color:var(--saffron); margin:0 auto 22px; }
.testi-slide{ display:none; }
.testi-slide.is-active{ display:block; animation:fadeUp .5s ease; }
.testi-slide p.quote{ font-family:var(--serif); font-size:clamp(1.25rem,2.6vw,1.7rem); line-height:1.5; font-style:italic; font-weight:500; }
.testi-slide .who{ margin-top:26px; font-weight:600; }
.testi-slide .who span{ display:block; font-weight:400; color:var(--ink-soft); font-size:0.85rem; margin-top:3px; }
.testi-dots{ display:flex; gap:10px; justify-content:center; margin-top:34px; }
.testi-dots button{ width:9px; height:9px; border-radius:50%; border:none; background:var(--line); padding:0; }
.testi-dots button.is-active{ background:var(--saffron-dp); width:22px; border-radius:5px; transition:width .25s ease; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:none;} }

/* ----- values / feature trio ----- */
.trio{ display:grid; grid-template-columns:repeat(3,1fr); gap:34px; }
.trio-item .icon-wrap{
  width:52px; height:52px; border-radius:50%; background:var(--curry); color:var(--cloth);
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
}
.trio-item .icon-wrap .icon{ width:22px; height:22px; }
.trio-item h3{ font-size:1.2rem; margin-bottom:10px; }
.trio-item p{ color:var(--ink-soft); font-size:0.95rem; }
@media (max-width:760px){ .trio{ grid-template-columns:1fr; } }

/* ============================================================
   Availability / booking widget
   ============================================================ */
.book-panel{
  background:var(--cloth); border:1px solid var(--line); border-radius:6px;
  padding:clamp(24px,4vw,40px); box-shadow:var(--shadow);
}
.book-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; align-items:end; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-size:0.78rem; font-weight:700; color:var(--ink-soft); letter-spacing:0.02em; }
.field select, .field input{
  border:1.4px solid var(--line); background:var(--paper); border-radius:2px;
  padding:12px 14px; color:var(--ink); font-size:0.95rem;
}
.field select:focus, .field input:focus{ border-color:var(--curry); }
.book-panel .btn-primary{ width:100%; justify-content:center; }
@media (max-width:860px){ .book-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .book-grid{ grid-template-columns:1fr; } }

.book-result{
  margin-top:24px; border-top:1px dashed var(--line); padding-top:22px; display:none;
}
.book-result.is-visible{ display:flex; gap:16px; align-items:flex-start; animation:fadeUp .4s ease; }
.book-result .icon{ width:26px; height:26px; color:var(--curry); flex:none; margin-top:2px; }
.book-result b{ display:block; margin-bottom:4px; }
.book-result .ref{ font-family:var(--serif); color:var(--saffron-dp); font-weight:600; }
.book-result p{ color:var(--ink-soft); font-size:0.92rem; }

/* ============================================================
   Footer
   ============================================================ */
.site-footer{ background:var(--ink); color:#D9CFBB; padding:72px 0 30px; }
.foot-grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:54px; border-bottom:1px solid rgba(255,255,255,0.12); }
.foot-brand .brand-word b{ color:#fff; }
.foot-brand .brand-word span{ color:#A79C86; }
.foot-brand p{ margin-top:18px; max-width:30em; color:#A79C86; font-size:0.92rem; }
.foot-social{ display:flex; gap:12px; margin-top:22px; }
.foot-social a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,0.22);
  display:flex; align-items:center; justify-content:center; transition:background .25s ease, border-color .25s ease;
}
.foot-social a:hover{ background:var(--saffron); border-color:var(--saffron); }
.foot-social .icon{ width:16px; height:16px; }
.foot-col h4{ font-family:var(--sans); font-size:0.82rem; letter-spacing:0.06em; color:#fff; margin-bottom:18px; font-weight:700; }
.foot-col li{ margin-bottom:12px; font-size:0.92rem; }
.foot-col a:hover{ color:#fff; }
.foot-news form{ display:flex; margin-top:14px; border-bottom:1.4px solid rgba(255,255,255,0.3); padding-bottom:8px; gap:10px; }
.foot-news input{ background:none; border:none; color:#fff; flex:1; min-width:0; }
.foot-news input::placeholder{ color:#8B8071; }
.foot-news button{ background:none; border:none; color:var(--saffron); display:flex; }
.foot-news button .icon{ width:20px; height:20px; }
.foot-news .ok{ font-size:0.82rem; color:#8FBF9E; margin-top:10px; display:none; }
.foot-news .ok.is-visible{ display:block; animation:fadeUp .4s ease; }
.foot-bottom{ display:flex; justify-content:space-between; padding-top:26px; font-size:0.8rem; color:#7E735F; flex-wrap:wrap; gap:10px; }
@media (max-width:860px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .foot-grid{ grid-template-columns:1fr; } }

/* ============================================================
   Page header (interior pages)
   ============================================================ */
.page-head{ padding:clamp(50px,8vw,90px) 0 clamp(40px,6vw,64px); }
.page-head .eyebrow{ margin-bottom:20px; }
.page-head h1{ max-width:16em; }
.page-head .lede{ margin-top:22px; }
.crumb{ display:flex; gap:8px; align-items:center; font-size:0.85rem; color:var(--ink-soft); margin-bottom:20px; }
.crumb .icon{ width:13px; height:13px; }

/* ============================================================
   About page
   ============================================================ */
.about-hero{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(30px,5vw,70px); align-items:center; }
.about-hero .frame{ border-radius:4px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:3/4; }
.about-hero .frame img{ width:100%; height:100%; object-fit:cover; }
.about-hero blockquote{ font-family:var(--serif); font-style:italic; font-size:clamp(1.3rem,2.2vw,1.6rem); font-weight:500; margin:26px 0; padding-left:22px; border-left:3px solid var(--saffron); color:var(--ink); }
@media (max-width:820px){ .about-hero{ grid-template-columns:1fr; } }

.timeline{ border-left:1.4px solid var(--line); margin-left:6px; }
.tl-item{ position:relative; padding:0 0 46px 32px; }
.tl-item:last-child{ padding-bottom:0; }
.tl-item::before{ content:""; position:absolute; left:-6.5px; top:4px; width:11px; height:11px; border-radius:50%; background:var(--paper); border:2px solid var(--saffron-dp); }
.tl-item .yr{ font-family:var(--serif); font-weight:600; color:var(--brass); font-size:1.05rem; }
.tl-item h3{ font-size:1.15rem; margin:6px 0 8px; }
.tl-item p{ color:var(--ink-soft); max-width:42em; }

.press-strip{ display:flex; flex-wrap:wrap; gap:38px; align-items:center; justify-content:space-between; padding:28px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.press-strip span{ font-family:var(--serif); font-style:italic; font-size:1.1rem; color:var(--ink-soft); }

/* ============================================================
   Locations page — tabs
   ============================================================ */
.loc-tabs{ display:inline-flex; padding:5px; border:1px solid var(--line); border-radius:40px; margin-bottom:44px; background:var(--cloth); }
.loc-tabs button{
  border:none; background:none; padding:11px 26px; border-radius:40px; font-weight:700; font-size:0.92rem; color:var(--ink-soft);
  transition:background .25s ease, color .25s ease;
}
.loc-tabs button.is-active{ background:var(--ink); color:var(--cloth); }

.loc-panel{ display:none; }
.loc-panel.is-active{ display:block; animation:fadeUp .45s ease; }
.loc-detail{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,70px); align-items:start; }
.loc-detail .frame{ border-radius:4px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:4/3.2; position:relative; }
.loc-detail .frame img{ width:100%; height:100%; object-fit:cover; }
.loc-clock{
  position:absolute; top:18px; right:18px; background:rgba(33,28,23,0.72); backdrop-filter:blur(4px);
  color:#fff; padding:10px 16px; border-radius:3px; text-align:right;
}
.loc-clock b{ font-family:var(--serif); font-size:1.15rem; display:block; letter-spacing:0.02em; }
.loc-clock span{ font-size:0.68rem; color:#C9BEA6; letter-spacing:0.05em; }
.loc-facts{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin:32px 0; }
.loc-facts div{ border-top:1px solid var(--line); padding-top:14px; }
.loc-facts div b{ display:block; font-family:var(--serif); font-size:1.05rem; margin-bottom:4px; }
.loc-facts div span{ font-size:0.85rem; color:var(--ink-soft); }
.chip-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.chip{ border:1px solid var(--line); border-radius:30px; padding:8px 16px; font-size:0.82rem; font-weight:600; color:var(--curry); }

/* ============================================================
   Contact page
   ============================================================ */
.contact-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(30px,5vw,70px); align-items:start; }
.contact-info .item{ display:flex; gap:16px; padding:22px 0; border-top:1px solid var(--line); }
.contact-info .item:last-child{ border-bottom:1px solid var(--line); }
.contact-info .icon-wrap{ width:44px; height:44px; border-radius:50%; background:var(--curry); color:var(--cloth); display:flex; align-items:center; justify-content:center; flex:none; }
.contact-info .icon-wrap .icon{ width:19px; height:19px; }
.contact-info h4{ font-family:var(--sans); font-weight:700; font-size:0.98rem; margin-bottom:4px; }
.contact-info p{ color:var(--ink-soft); font-size:0.93rem; }
.contact-info a:hover{ color:var(--saffron-dp); }

.form-card{ background:var(--cloth); border:1px solid var(--line); border-radius:6px; padding:clamp(26px,4vw,44px); box-shadow:var(--shadow); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.form-row.full{ grid-template-columns:1fr; }
.field textarea{ resize:vertical; min-height:120px; border:1.4px solid var(--line); background:var(--paper); border-radius:2px; padding:12px 14px; }
.field textarea:focus{ border-color:var(--curry); }
.radio-row{ display:flex; gap:22px; flex-wrap:wrap; }
.radio-row label{ display:flex; align-items:center; gap:9px; font-size:0.92rem; cursor:pointer; }
.radio-row input{ accent-color:var(--curry); width:16px; height:16px; }
.form-card .btn-primary{ margin-top:8px; }
.form-status{ display:none; align-items:flex-start; gap:14px; margin-top:22px; padding:18px; border-radius:4px; background:#E9F0E7; }
.form-status.is-visible{ display:flex; animation:fadeUp .4s ease; }
.form-status .icon{ width:22px; height:22px; color:var(--curry-dp); flex:none; margin-top:2px; }
.form-status b{ display:block; margin-bottom:3px; }
.form-status p{ font-size:0.88rem; color:var(--ink-soft); }
.field.has-error input, .field.has-error textarea{ border-color:var(--chili); }
.field .err{ font-size:0.78rem; color:var(--chili); display:none; }
.field.has-error .err{ display:block; }
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }

/* ----- FAQ accordion ----- */
.faq-item{ border-bottom:1px solid var(--line); }
.faq-item button{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:20px;
  background:none; border:none; padding:24px 0; text-align:left; font-family:var(--serif); font-size:1.12rem; font-weight:600; color:var(--ink);
}
.faq-item .icon{ width:18px; height:18px; flex:none; transition:transform .3s ease; color:var(--brass); }
.faq-item[aria-expanded="true"] .icon{ transform:rotate(180deg); }
.faq-body{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.faq-body p{ padding-bottom:24px; color:var(--ink-soft); max-width:46em; }

/* ============================================================
   Reveal-on-scroll (single orchestrated moment, used sparingly)
   ============================================================ */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-in{ opacity:1; transform:none; }

/* map / address visual (interior pages, no external map key required) */
.map-visual{
  position:relative; border-radius:4px; overflow:hidden; aspect-ratio:16/8; box-shadow:var(--shadow);
  background:
    radial-gradient(circle at 24% 38%, rgba(200,128,26,0.35), transparent 40%),
    radial-gradient(circle at 78% 62%, rgba(51,71,58,0.4), transparent 42%),
    linear-gradient(135deg, #2B2822, #211C17 60%);
}
.map-visual svg{ position:absolute; inset:0; width:100%; height:100%; }
.map-pin{ position:absolute; display:flex; flex-direction:column; align-items:center; color:#fff; transform:translate(-50%,-100%); }
.map-pin .icon{ width:26px; height:26px; color:var(--saffron); filter:drop-shadow(0 3px 6px rgba(0,0,0,0.4)); }
.map-pin span{ margin-top:6px; font-size:0.78rem; font-weight:700; background:rgba(33,28,23,0.75); padding:4px 10px; border-radius:20px; }
