/* =========================================================
   TERROIR · Vinhos de Identidade — Direction A (warm & earthy)
   Mockup stylesheet
   ========================================================= */

:root{
  --cream:    #F1F0EA;   /* cool matte paper (limestone) */
  --cream-2:  #E9E7DF;   /* alternate sections */
  --cream-3:  #E0DDD3;   /* deeper, muted */
  --ink:      #23251F;   /* cool charcoal text */
  --ink-soft: #5C5A4F;   /* muted text */
  --terra:    #41513C;   /* muted slate-green — the single accent, used sparingly */
  --terra-dk: #33402E;
  --olive:    #5E5B43;   /* secondary muted */
  --bordeaux: #9E4B3C;   /* faded brick — tiny flourishes only */
  --dark:     #1E211B;   /* footer / dark bands (cool) */
  --line:     rgba(35,37,31,0.12);
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:  "Inter", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --maxw: 1180px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  font-size:17px;
  line-height:1.7;
  font-weight:380;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  position:relative;
}
/* subtle paper grain */
body::after{
  content:"";
  position:fixed; inset:0; z-index:9999; pointer-events:none;
  opacity:.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; line-height:1.08; letter-spacing:.005em; color:var(--ink); }

.container{ max-width:var(--maxw); margin:0 auto; padding:0 32px; }
.section{ padding:108px 0; }
.center{ text-align:center; }

.eyebrow{
  font-family:var(--sans);
  font-size:.72rem; font-weight:600;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--terra);
}
.eyebrow.olive{ color:var(--olive); }
.lead{ font-family:var(--serif); font-size:1.5rem; line-height:1.5; color:var(--ink-soft); font-weight:400; }
.muted{ color:var(--ink-soft); }

.h-rule{ width:54px; height:1px; background:var(--terra); border:0; margin:22px 0; }
.center .h-rule{ margin:22px auto; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--sans); font-size:.74rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase;
  padding:16px 30px; border:1px solid var(--ink); color:var(--ink);
  background:transparent; cursor:pointer; transition:all .35s ease;
}
.btn:hover{ background:var(--ink); color:var(--cream); }
.btn-solid{ background:var(--ink); border-color:var(--ink); color:var(--cream); }
.btn-solid:hover{ background:var(--terra); border-color:var(--terra); color:#fff; }
.btn-light{ border-color:rgba(255,255,255,.7); color:#fff; }
.btn-light:hover{ background:#fff; color:var(--ink); border-color:#fff; }
.btn-sm{ padding:11px 20px; font-size:.68rem; }
.btn .wa{ width:15px; height:15px; }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:1000;
  background:rgba(241,240,234,.88);
  backdrop-filter:saturate(140%) blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; height:78px; }
.brand{ display:flex; flex-direction:column; line-height:1; }
.brand .name{ font-family:var(--serif); font-size:1.7rem; font-weight:600; letter-spacing:.16em; }
.brand .tag{ font-family:var(--sans); font-size:.56rem; letter-spacing:.34em; text-transform:uppercase; color:var(--ink-soft); margin-top:5px; }
.nav-links{ display:flex; gap:34px; }
.nav-links a{ font-family:var(--sans); font-size:.76rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--ink); padding:6px 0; position:relative; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--terra); transition:width .3s ease; }
.nav-links a:hover::after{ width:100%; }
.nav-actions{ display:flex; align-items:center; gap:14px; }
.wa-btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:#fff; background:#2f7d4f; padding:11px 16px;
}
.wa-btn:hover{ background:#27693f; }
.wa-btn svg{ width:16px; height:16px; }

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:90vh; display:flex; align-items:center;
  color:#fff; text-align:center;
  background-image:
    linear-gradient(180deg, rgba(18,16,12,.60), rgba(18,16,12,.40) 40%, rgba(18,16,12,.80)),
    url('img/hero/hero-vineyard.jpg');
  background-size:cover; background-position:center; background-color:#23251F;
}
@media (max-width:760px){
  .hero{ background-image:linear-gradient(180deg, rgba(18,16,12,.62), rgba(18,16,12,.46) 40%, rgba(18,16,12,.82)), url('img/hero/hero-vineyard-m.jpg'); }
}
.hero .inner{ max-width:830px; margin:0 auto; padding:120px 32px; }
.hero .eyebrow{ color:#d6cdbb; }
.hero h1{ color:#fff; font-size:clamp(3rem, 7vw, 5.6rem); font-weight:500; letter-spacing:.005em; margin:18px 0 10px; text-shadow:0 2px 22px rgba(0,0,0,.32); }
.hero .sub{ font-family:var(--serif); font-style:italic; font-size:clamp(1.3rem,3vw,1.9rem); color:#ece6da; font-weight:400; }
.hero p.intro{ max-width:560px; margin:26px auto 36px; color:rgba(255,255,255,.9); font-size:1.05rem; }
.hero-cta{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.scroll-hint{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); font-family:var(--sans); font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.7); }

/* ---------- intro / positioning ---------- */
.intro-block{ max-width:760px; margin:0 auto; text-align:center; }
.intro-block h1, .intro-block h2{ font-size:clamp(2rem,4vw,3.1rem); margin-bottom:6px; font-weight:500; }
.intro-block p{ font-size:1.18rem; color:var(--ink-soft); margin-top:14px; }

/* ---------- stats band ---------- */
.stats{ background:var(--cream-2); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.stats .row{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; padding:64px 0; }
.stat{ flex:1 1 180px; text-align:center; }
.stat .num{ font-family:var(--serif); font-size:clamp(2.6rem,5vw,3.8rem); font-weight:500; color:var(--terra); line-height:1; }
.stat .lbl{ font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin-top:12px; }

/* ---------- section heading ---------- */
.sec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:46px; flex-wrap:wrap; }
.sec-head h2{ font-size:clamp(2rem,4vw,3rem); }
.sec-head .eyebrow{ display:block; margin-bottom:10px; }

/* ---------- producer cards ---------- */
.grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; }
.card{ background:transparent; transition:transform .4s ease; }
.card:hover{ transform:translateY(-6px); }
.card .ph{ aspect-ratio:4/5; }
.card .meta{ padding:20px 2px 0; }
.card .region{ font-family:var(--sans); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--terra); }
.card h3{ font-size:1.6rem; margin:8px 0 6px; }
.card p{ color:var(--ink-soft); font-size:.98rem; line-height:1.55; }
.card .more{ display:inline-block; margin-top:12px; font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--terra); padding-bottom:3px; }

/* ---------- image placeholders (stand-ins for Gabriel's photography) ---------- */
.ph{ position:relative; overflow:hidden; background-size:cover; background-position:center; }
.ph .cap{ position:absolute; left:16px; bottom:13px; z-index:2; font-family:var(--sans); font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.9); }
.ph::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top, rgba(20,12,6,.45), transparent 55%); }
.ph-a{ background:linear-gradient(157deg,#474d40,#666b58); }   /* vineyard green, muted */
.ph-b{ background:linear-gradient(157deg,#5f5142,#857762); }   /* stone / taupe */
.ph-c{ background:linear-gradient(157deg,#4e4b43,#75705f); }   /* cellar stone */
.ph-d{ background:linear-gradient(157deg,#544a4a,#7d6b66); }   /* dusty mauve-grey */
.ph-e{ background:linear-gradient(157deg,#4b4e3e,#6f7056); }   /* olive-grey */
.ph-f{ background:linear-gradient(157deg,#574c3f,#807058); }   /* warm grey-brown */
/* ---------- real producer photos (bottle shots on white) ---------- */
.ph.has-photo{ background-size:contain; background-repeat:no-repeat; background-color:#fff; }
.ph.has-photo::after{ display:none; }
.card .ph.has-photo{ border:1px solid rgba(31,30,28,.08); }
.facts .p-photo{ margin:0 0 22px; background:#fff; border:1px solid rgba(31,30,28,.09); border-radius:4px; padding:16px 16px 12px; }
.facts .p-photo img{ display:block; width:100%; height:auto; }
/* ---------- producer portraits ---------- */
.ph.has-portrait{ background-size:cover; background-position:center top; background-color:#e9e7df; }
.ph.has-portrait::after{ display:none; }
.facts .p-portrait{ margin:0 0 22px; }
.facts .p-portrait img{ display:block; width:100%; height:auto; border-radius:3px; }
/* ---------- wines: bottle gallery ---------- */
.wine-bottles{ margin-top:30px; }
.wine-bottles .wb-label{ display:block; font-family:var(--sans); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--terra); margin-bottom:20px; }
.wb-grid{ display:flex; flex-wrap:wrap; gap:14px; }
.wb-grid img{ height:230px; width:auto; transition:transform .3s ease; }
.wb-grid img:hover{ transform:translateY(-4px); }
/* ---------- cuvée list (simple, below the description) ---------- */
.cuvee-list{ list-style:none; margin-top:6px; display:grid; grid-template-columns:repeat(2,1fr); gap:0 56px; }
.cuvee-list li{ font-family:var(--serif); font-size:1.2rem; color:var(--ink); padding:13px 2px; border-bottom:1px solid rgba(31,30,28,.10); display:flex; align-items:flex-end; min-height:52px; line-height:1.25; }
@media (max-width:600px){ .cuvee-list{ grid-template-columns:1fr; } }
.hero .hero-tagline{ font-family:var(--sans); font-size:1.02rem; font-weight:400; letter-spacing:.01em; color:rgba(255,255,255,.86); margin:12px 0 0; }

/* ---------- regions strip ---------- */
.regions{ background:var(--cream-2); }
.regions .list{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px 0; }
.regions .list a{ font-family:var(--serif); font-size:clamp(1.5rem,3.4vw,2.5rem); color:var(--ink); padding:0 26px; position:relative; transition:color .3s ease; }
.regions .list a:not(:last-child)::after{ content:"·"; position:absolute; right:-4px; color:var(--terra); }
.regions .list a:hover{ color:var(--terra); font-style:italic; }

/* ---------- journal ---------- */
.journal .grid{ grid-template-columns:repeat(3,1fr); }
.post .ph{ aspect-ratio:3/2; }
.post .meta{ padding:18px 2px 0; }
.post .date{ font-family:var(--sans); font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--olive); }
.post h3{ font-size:1.4rem; margin:8px 0 6px; }
.post p{ color:var(--ink-soft); font-size:.95rem; }

/* ---------- CTA / newsletter band ---------- */
.cta{ background:var(--dark); color:#e9e3d8; text-align:center; }
.cta h2{ color:#fff; font-size:clamp(2rem,4.5vw,3.2rem); }
.cta p{ max-width:540px; margin:14px auto 0; color:rgba(233,227,216,.78); }
.cta .actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:30px; }
.newsletter{ max-width:520px; margin:38px auto 0; }
.newsletter .lbl{ font-family:var(--sans); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(244,234,215,.7); margin-bottom:14px; }
.nl-form{ display:flex; gap:0; border:1px solid rgba(244,234,215,.35); }
.nl-form input{ flex:1; background:transparent; border:0; padding:15px 18px; color:#fff; font-family:var(--sans); font-size:.95rem; outline:none; }
.nl-form input::placeholder{ color:rgba(244,234,215,.5); }
.nl-form button{ background:var(--terra); color:#fff; border:0; padding:0 26px; font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; cursor:pointer; transition:background .3s ease; }
.nl-form button:hover{ background:var(--terra-dk); }

/* ---------- footer ---------- */
.site-footer{ background:#1c1f1a; color:rgba(238,236,228,.8); padding:72px 0 34px; }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; }
.site-footer .name{ font-family:var(--serif); font-size:1.8rem; font-weight:600; letter-spacing:.16em; color:#fff; }
.site-footer .tag{ font-family:var(--sans); font-size:.58rem; letter-spacing:.32em; text-transform:uppercase; color:rgba(244,234,215,.5); margin-top:8px; }
.site-footer p.desc{ margin-top:18px; font-size:.95rem; line-height:1.7; max-width:300px; color:rgba(244,234,215,.65); }
.foot-col h3{ font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:#fff; margin-bottom:18px; font-weight:600; }
.foot-col a, .foot-col p{ display:block; font-size:.92rem; color:rgba(244,234,215,.7); margin-bottom:11px; transition:color .25s ease; }
.foot-col a:hover{ color:var(--terra); }
.foot-bottom{ border-top:1px solid rgba(244,234,215,.14); margin-top:54px; padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.78rem; color:rgba(244,234,215,.5); }

/* ---------- breadcrumb ---------- */
.crumb{ padding:26px 0 0; font-family:var(--sans); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.crumb a:hover{ color:var(--terra); }
.crumb span{ color:var(--terra); }

/* ---------- producer page ---------- */
.p-hero{ position:relative; min-height:66vh; display:flex; align-items:flex-end; color:#fff;
  background:
    linear-gradient(180deg, rgba(18,16,12,.36), rgba(18,16,12,.36) 42%, rgba(18,16,12,.72)),
    linear-gradient(158deg,#262922,#3a3f34 48%,#4d4f42);
}
.p-hero .inner{ padding:0 0 56px; }
.p-hero .eyebrow{ color:#d6cdbb; }
.p-hero h1{ color:#fff; font-size:clamp(2.8rem,6vw,5rem); margin-top:10px; }
.p-hero .where{ font-family:var(--serif); font-style:italic; font-size:1.35rem; color:#ece6da; margin-top:6px; }

.p-body{ display:grid; grid-template-columns:1.7fr 1fr; gap:64px; align-items:start; }
.p-body .story p{ font-family:var(--serif); font-size:1.5rem; line-height:1.55; color:var(--ink); margin-bottom:22px; }
.p-body .story p.note{ font-family:var(--sans); font-size:1.02rem; line-height:1.7; color:var(--ink-soft); }
.facts{ background:var(--cream-2); border:1px solid var(--line); padding:34px 30px; position:sticky; top:100px; }
.facts h2{ font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:var(--terra); margin-bottom:20px; }
.facts dl{ display:grid; grid-template-columns:1fr; gap:0; }
.facts .item{ padding:14px 0; border-top:1px solid var(--line); }
.facts .item:first-of-type{ border-top:0; }
.facts dt{ font-family:var(--sans); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); }
.facts dd{ font-family:var(--serif); font-size:1.3rem; margin-top:3px; color:var(--ink); }

/* gallery */
.p-gallery{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.p-gallery .ph{ aspect-ratio:1/1; }

/* wines list (enquiry, not e-commerce) */
.wines .row{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 0; border-top:1px solid var(--line); }
.wines .row:last-child{ border-bottom:1px solid var(--line); }
.wines .w-name{ font-family:var(--serif); font-size:1.5rem; }
.wines .w-sub{ font-family:var(--sans); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-top:3px; }

/* ---------- responsive ---------- */
@media (max-width: 980px){
  .grid, .journal .grid{ grid-template-columns:repeat(2,1fr); }
  .p-body{ grid-template-columns:1fr; gap:40px; }
  .facts{ position:static; }
  .foot-grid{ grid-template-columns:1fr 1fr; gap:32px; }
}
@media (max-width: 720px){
  body{ font-size:16px; }
  .section{ padding:74px 0; }
  /* header reflows: brand + actions on top row, nav links wrap underneath */
  .nav{ flex-wrap:wrap; height:auto; padding-top:13px; padding-bottom:13px; row-gap:12px; }
  .brand{ flex:1 1 auto; }
  .brand .name{ font-size:1.35rem; }
  .nav-actions{ gap:8px; flex:0 0 auto; }
  .wa-btn{ padding:9px 12px; font-size:.64rem; gap:6px; }
  .nav-actions .btn-sm{ padding:9px 13px; font-size:.62rem; }
  .nav-links{ display:flex; order:3; flex-basis:100%; justify-content:flex-start; flex-wrap:wrap; gap:12px 18px; padding-top:12px; margin-top:2px; border-top:1px solid var(--line); }
  .nav-links a{ font-size:.68rem; padding:2px 0; }
  .grid, .journal .grid, .p-gallery{ grid-template-columns:1fr; }
  .stats .row{ gap:38px; }
  .stat{ flex:1 1 40%; }
  .foot-grid{ grid-template-columns:1fr; }
}

/* =========================================================
   Audit pass — accessibility, performance, polish
   ========================================================= */

/* Anchor targets clear the sticky header */
:where([id]){ scroll-margin-top: 96px; }

/* Visible keyboard focus (the newsletter input had outline:none) */
:focus-visible{ outline:2px solid var(--terra); outline-offset:3px; }
.btn:focus-visible, .wa-btn:focus-visible{ outline-offset:4px; }
.nl-form input:focus-visible{ outline:2px solid #fff; outline-offset:-3px; }
.hero .btn-light:focus-visible, .cta .btn-light:focus-visible{ outline-color:#fff; }

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ transition-duration:.001ms !important; animation-duration:.001ms !important; }
}

/* Lift the faintest footer text for legibility */
.site-footer .tag{ color:rgba(244,234,215,.62); }
.foot-bottom{ color:rgba(244,234,215,.62); }
.site-footer p.desc{ color:rgba(244,234,215,.72); }

/* Larger touch targets + full-width CTAs on phones */
@media (max-width: 720px){
  .nav-links a{ padding:8px 0; }
  .foot-col a{ padding:4px 0; }
  .hero-cta .btn, .cta .actions .btn, .cta .actions .wa-btn{ width:100%; justify-content:center; }
}

/* =========================================================
   Launch polish — overnight pass
   ========================================================= */

/* Skip link (keyboard / screen-reader) */
.skip-link{ position:absolute; left:-9999px; top:0; z-index:2000; background:var(--ink); color:var(--cream);
  padding:12px 18px; font-family:var(--sans); font-size:.8rem; letter-spacing:.06em; }
.skip-link:focus{ left:12px; top:12px; outline:2px solid var(--terra); outline-offset:3px; }

/* Reading measure — keep lines elegant, never too long */
.p-body .story p{ max-width:38ch; }
.p-body .story p.note{ max-width:46ch; }
.intro-block p{ max-width:60ch; margin-left:auto; margin-right:auto; }

/* Producer-page hero CTA */
.p-hero .inner{ display:flex; flex-direction:column; align-items:flex-start; }
.p-hero-cta{ margin-top:28px; }

/* Trust line beneath the contact CTAs */
.cta-trust{ margin:28px auto 0; font-family:var(--sans); font-size:.7rem;
  letter-spacing:.18em; text-transform:uppercase; color:rgba(233,227,216,.58); }

/* Monogram fallback for growers without a portrait yet */
.ph.ph-mono{ display:flex; align-items:center; justify-content:center; background:linear-gradient(157deg,#3f4a39,#5a5f4c); }
.ph.ph-mono::after{ display:none; }
.ph.ph-mono span{ font-family:var(--serif); font-size:4rem; font-weight:500; color:rgba(255,255,255,.74); letter-spacing:.04em; }
.card .ph.ph-mono{ border:1px solid rgba(31,30,28,.08); }

/* Persona routing chips (contact section) */
.persona{ margin:30px auto 0; max-width:680px; }
.persona .plabel{ font-family:var(--sans); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(233,227,216,.55); margin-bottom:14px; }
.persona .chips{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.persona .chips a{ font-family:var(--sans); font-size:.72rem; font-weight:500; letter-spacing:.04em; color:#e9e3d8;
  border:1px solid rgba(233,227,216,.3); padding:9px 16px; border-radius:30px; transition:background-color .25s ease, border-color .25s ease, color .25s ease; }
.persona .chips a:hover{ background:rgba(233,227,216,.1); border-color:rgba(233,227,216,.6); color:#fff; }

/* Enquiry form (Netlify Forms) */
.enquiry-form{ max-width:520px; margin:34px auto 0; display:grid; gap:12px; text-align:left; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea{ width:100%; background:rgba(255,255,255,.05);
  border:1px solid rgba(233,227,216,.3); color:#fff; font-family:var(--sans); font-size:.95rem; padding:13px 15px; outline:none; }
.enquiry-form ::placeholder{ color:rgba(233,227,216,.5); }
.enquiry-form select{ color:rgba(233,227,216,.85); }
.enquiry-form select option{ color:#23251F; }
.enquiry-form textarea{ resize:vertical; min-height:104px; }
.enquiry-form input:focus, .enquiry-form select:focus, .enquiry-form textarea:focus{ border-color:rgba(233,227,216,.85); }
.enquiry-form button{ justify-self:start; margin-top:4px; }
.enquiry-form .hp{ position:absolute; left:-5000px; }
.form-note{ font-family:var(--sans); font-size:.78rem; color:rgba(233,227,216,.6); margin-top:8px; }
.contact-or{ font-family:var(--sans); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(233,227,216,.45); margin:34px 0 0; }

/* Bottle gallery — clean baseline-aligned case */
.wb-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(84px,1fr)); gap:22px 14px; align-items:end; }
.wb-grid img{ height:210px; width:auto; margin:0 auto; }

/* Tablet: collapse producer body before it gets cramped */
@media (max-width:900px){
  .p-body{ grid-template-columns:1fr; gap:40px; }
  .facts{ position:static; }
  .p-body .story p, .p-body .story p.note{ max-width:none; }
}

/* Phones: hero, regions, stats, gallery, touch targets */
@media (max-width:720px){
  .hero{ min-height:80vh; }
  .hero .inner{ padding:88px 22px; }
  .hero h1{ font-size:clamp(2.4rem,9vw,3.4rem); }
  .hero p.intro{ font-size:1rem; }
  .stat .num{ font-size:clamp(2.2rem,10vw,3rem); }
  .scroll-hint{ display:none; }
  .regions .list a{ font-size:1.45rem; padding:0 13px; }
  .wb-grid{ grid-template-columns:repeat(auto-fill,minmax(70px,1fr)); }
  .wb-grid img{ height:158px; }
  .foot-col a{ padding:8px 0; }
  .p-hero-cta{ width:100%; justify-content:center; }
  .intro-block p{ max-width:none; }
}

/* Producer gallery (Rouget) — 2-up step on phones */
@media (max-width:760px){
  .p-gallery{ grid-template-columns:repeat(2,1fr); }
  .p-gallery .ph{ aspect-ratio:4/3; }
}

/* ---- simple producer list page (no photos) ---- */
.list-block{ margin-bottom:50px; }
.list-country{ font-family:var(--serif); font-size:clamp(1.6rem,3vw,2.2rem); font-weight:500; display:flex; align-items:baseline; gap:14px; padding-bottom:14px; border-bottom:1px solid var(--line); margin-bottom:18px; }
.list-country span{ font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--terra); }
.name-list{ list-style:none; columns:3; column-gap:52px; }
.name-list li{ break-inside:avoid; }
.name-list a{ display:block; font-family:var(--serif); font-size:1.18rem; color:var(--ink); padding:10px 0; border-bottom:1px solid rgba(31,30,28,.07); transition:color .2s ease, padding-left .2s ease; }
.name-list a:hover{ color:var(--terra); padding-left:6px; }
.inline-link{ color:var(--terra); border-bottom:1px solid rgba(65,81,60,.4); transition:border-color .2s ease; }
.inline-link:hover{ border-color:var(--terra); }
@media (max-width:820px){ .name-list{ columns:2; } }
@media (max-width:520px){ .name-list{ columns:1; } }

/* ---- content / SEO pages ---- */
.page-intro{ max-width:790px; }
.page-intro h1{ font-size:clamp(2.2rem,5vw,3.5rem); }
.page-intro .lead{ margin-top:16px; }
.prose{ max-width:740px; }
.prose .sec-block{ margin-bottom:44px; }
.prose .sec-block:last-child{ margin-bottom:0; }
.prose h2{ font-size:clamp(1.5rem,3vw,2.1rem); margin-bottom:14px; }
.prose p{ font-size:1.08rem; color:var(--ink-soft); margin-bottom:16px; line-height:1.78; max-width:64ch; }
.prose ul{ list-style:none; margin:8px 0 4px; padding:0; }
.prose li{ font-size:1.05rem; color:var(--ink); padding:11px 0 11px 30px; position:relative; border-bottom:1px solid rgba(31,30,28,.06); }
.prose li:last-child{ border-bottom:0; }
.prose li::before{ content:""; position:absolute; left:0; top:21px; width:16px; height:1px; background:var(--terra); }
.faq-item{ border-top:1px solid var(--line); padding:28px 0; max-width:820px; }
.faq-item:last-child{ border-bottom:1px solid var(--line); }
.faq-item h2{ font-size:1.35rem; margin-bottom:9px; }
.faq-item p{ color:var(--ink-soft); font-size:1.05rem; line-height:1.72; max-width:68ch; }

/* dual-path cards (home: Trade / Private) */
.paths{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:6px; }
.path-card{ display:block; border:1px solid var(--line); background:var(--cream-2); padding:44px 40px; transition:transform .35s ease; }
.path-card:hover{ transform:translateY(-5px); }
.path-card .eyebrow{ display:block; margin-bottom:12px; }
.path-card h3{ font-size:1.9rem; margin-bottom:8px; }
.path-card p{ color:var(--ink-soft); font-size:1rem; line-height:1.62; margin-bottom:18px; }
.path-card .more{ font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--terra); padding-bottom:3px; }
@media (max-width:720px){ .paths{ grid-template-columns:1fr; } .path-card{ padding:36px 30px; } }

/* footer: 5 columns now */
.foot-grid{ grid-template-columns:1.5fr 1fr 1fr 1fr 1fr; }
@media (max-width:980px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:720px){ .foot-grid{ grid-template-columns:1fr; } }

/* region index cards */
.region-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; }
.region-card{ display:flex; flex-direction:column; justify-content:flex-end; min-height:150px; border:1px solid var(--line); background:var(--cream-2); padding:26px 28px; transition:transform .3s ease; }
.region-card:hover{ transform:translateY(-4px); }
.region-card h3{ font-size:1.5rem; }
.region-card span{ font-family:var(--sans); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--terra); margin-top:7px; }
