/* ==========================================================================
   BELPOZ — Design system
   Vert foncé #27311F · Crème #FEF1CE · Doré #FFEDA1 · Noir #16190F
   Titres: Blissful · Texte courant / UI: Garet · Logotype & accents: Sloop Script
   ========================================================================== */

@font-face{
  font-family:'Blissful';
  src:url('../fonts/blissful.woff') format('woff');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Sloop Script';
  src:url('../fonts/sloop-script.woff') format('woff');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Sloop Script Pro Bold';
  src:url('../fonts/sloop-script-pro-bold.woff') format('woff');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Garet Book';
  src:url('../fonts/garet-book.woff') format('woff');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Garet Heavy';
  src:url('../fonts/garet-heavy.woff') format('woff');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

:root{
  --green-dark:#27311F;
  --green-darker:#1B2216;
  --green-mid:#3B4A2C;
  --cream:#FEF1CE;
  --cream-soft:#FAF6E8;
  --cream-pale-1:#FDEFB6;
  --cream-pale-2:#FFF6D4;
  --gold-pale:#FFEDA1;
  --gold-deep:#B5892C;
  --gold-line:#C9A44B;
  --black:#334529;
  --ink:#20240F;
  --white:#FFFFFF;

  --font-serif:'Blissful', 'Iowan Old Style', Georgia, serif;
  --font-sans:'Garet Book', 'Helvetica Neue', Arial, sans-serif;
  --font-sans-bold:'Garet Heavy', 'Helvetica Neue', Arial, sans-serif;
  --font-script:'Sloop Script', 'Blissful', cursive;
  --font-logo:'Sloop Script Pro Bold', 'Blissful', serif;

  --container:1180px;
  --gutter:clamp(1.25rem, 4vw, 3.5rem);
  --radius:2px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-soft: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-sans);
  font-weight:300;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
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(--font-serif);
  font-weight:400;
  line-height:1.12;
  margin:0 0 .6em;
  letter-spacing:.005em;
}
p{ margin:0 0 1.1em; }
.eyebrow{
  font-family:var(--font-sans);
  text-transform:uppercase;
  letter-spacing:.28em;
  font-size:.72rem;
  font-weight:400;
  color:var(--gold-deep);
  display:inline-block;
  margin-bottom:1.1em;
}
.dark .eyebrow, .on-dark .eyebrow{ color:var(--gold-pale); }

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 var(--gutter);
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  font-family:var(--font-sans);
  font-size:.8rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-weight:400;
  padding:1em 2em;
  border:1px solid currentColor;
  border-radius:var(--radius);
  transition:background .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease), transform .45s var(--ease);
  cursor:pointer;
  background:transparent;
  white-space:nowrap;
}
.btn svg{ width:14px; height:14px; transition:transform .4s var(--ease); }
.btn:hover svg{ transform:translateX(4px); }
.btn-primary{
  background:var(--green-dark);
  border-color:var(--green-dark);
  color:var(--cream);
}
.btn-primary:hover{ background:var(--black); border-color:var(--black); }
.btn-outline-light{
  color:var(--cream);
  border-color:rgba(254,241,206,.5);
}
.btn-outline-light:hover{
  background:var(--cream);
  color:var(--green-dark);
  border-color:var(--cream);
}
.btn-outline-dark{
  color:var(--green-dark);
  border-color:var(--green-dark);
}
.btn-outline-dark:hover{
  background:var(--green-dark);
  color:var(--cream);
}
.btn-gold{
  background:var(--gold-pale);
  border-color:var(--gold-pale);
  color:var(--green-dark);
}
.btn-gold:hover{ background:var(--cream); border-color:var(--cream); }

/* ---------- Header / Nav ---------- */
.site-header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:100;
  padding:1.5em 0;
  transition:padding .5s var(--ease), background .5s var(--ease), box-shadow .5s var(--ease), transform .4s var(--ease);
}
.site-header .container{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.site-header.is-scrolled{
  padding:.85em 0;
  background:rgba(39,49,31,.94);
  backdrop-filter:blur(10px);
  box-shadow:0 10px 30px rgba(0,0,0,.12);
}
.logo{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1;
}
.logo-img{
  height:26px;
  width:auto;
  display:block;
}
.logo-footer .logo-img,
.logo-img-footer{
  height:34px;
}
.logo-tagline{
  font-family:var(--font-sans);
  font-size:.44rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--gold-pale);
  margin-top:.5em;
  font-weight:400;
}
.nav-links{
  display:flex;
  align-items:center;
  gap:2.4em;
}
.nav-links a{
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--cream);
  position:relative;
  padding-bottom:6px;
}
.nav-links a::after{
  content:'';
  position:absolute;
  left:0; bottom:0;
  width:0; height:1px;
  background:var(--gold-pale);
  transition:width .4s var(--ease);
}
.nav-links a:hover::after,
.nav-links a.active::after{ width:100%; }
.nav-links a.active{ color:var(--gold-pale); }
.nav-cta{
  border:1px solid rgba(254,241,206,.55);
  padding:.75em 1.5em !important;
  border-radius:var(--radius);
  transition:all .4s var(--ease);
}
.nav-cta:hover{ background:var(--gold-pale); color:var(--green-dark) !important; border-color:var(--gold-pale); }
.nav-cta::after{ display:none; }

.nav-toggle{
  display:none;
  width:26px; height:18px;
  position:relative;
  background:none; border:0; cursor:pointer;
  padding:0;
}
.nav-toggle span{
  position:absolute; left:0; right:0; height:1px;
  background:var(--cream);
  transition:all .35s var(--ease);
}
.nav-toggle span:nth-child(1){ top:0; }
.nav-toggle span:nth-child(2){ top:8px; }
.nav-toggle span:nth-child(3){ top:16px; }

@media (max-width:900px){
  .nav-toggle{ display:block; z-index:110; }
  .nav-links{
    position:fixed;
    inset:0;
    background:var(--green-dark);
    flex-direction:column;
    justify-content:center;
    gap:2em;
    transform:translateY(-100%);
    transition:transform .55s var(--ease-soft);
  }
  .nav-links.is-open{ transform:translateY(0); }
  .nav-links a{ font-size:1.1rem; }
  body.menu-open .nav-toggle span:nth-child(1){ top:8px; transform:rotate(45deg); }
  body.menu-open .nav-toggle span:nth-child(2){ opacity:0; }
  body.menu-open .nav-toggle span:nth-child(3){ top:8px; transform:rotate(-45deg); }
}

@media (max-width:900px){
  .site-header{
    position:static;
  }
  .hero{
    min-height:auto;
  }
  .hero-inner{
    padding-top:2.5em;
  }
  .page-hero{
    padding:3em 0 3em;
  }
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:center;
  color:var(--cream);
  background:var(--green-dark) url('../img/texture-verte.jpg') center/cover no-repeat;
  overflow:hidden;
}
.hero::before{
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(21,23,15,.15) 0%, rgba(21,23,15,.35) 55%, rgba(21,23,15,.82) 100%);
}
.hero-inner{
  position:relative;
  z-index:2;
  padding-bottom:2.5em;
  padding-top:5em;
  width:100%;
  max-width:1680px;
  margin-inline:auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
  text-align:center;
}
.hero h1{
  font-size:clamp(2.4rem, 4.6vw, 3.8rem);
  max-width:50ch;
  margin-inline:auto;
  color:var(--cream);
}
.hero .lede{
  max-width:62ch;
  margin-inline:auto;
  font-size:1.08rem;
  color:rgba(254,241,206,.86);
  margin-bottom:2em;
}
.hero-actions{ display:flex; gap:1em; flex-wrap:wrap; justify-content:center; }
.hero-scroll{
  position:absolute;
  right:var(--gutter);
  bottom:2.2em;
  z-index:2;
  display:flex;
  align-items:center;
  gap:.8em;
  color:rgba(254,241,206,.65);
  font-size:.7rem;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.hero-scroll .line{
  width:1px; height:42px;
  background:rgba(254,241,206,.4);
  position:relative;
  overflow:hidden;
}
.hero-scroll .line::after{
  content:'';
  position:absolute; left:0; top:-100%;
  width:100%; height:100%;
  background:var(--gold-pale);
  animation:scrollLine 2.2s var(--ease) infinite;
}
@keyframes scrollLine{
  0%{ top:-100%; }
  60%{ top:100%; }
  100%{ top:100%; }
}

@media (max-width:820px){
  .hero-scroll{ display:none; }
}

@media (max-width:600px){
  .hero .eyebrow{ margin-bottom:1.5em; }
  .hero h1{ margin-bottom:1.1em; }
  .hero .lede{ margin-bottom:2.3em; }
}

/* subpage hero (smaller) */
.page-hero{
  position:relative;
  padding:11em 0 5em;
  color:var(--cream);
  background:var(--green-dark) url('../img/texture-verte.jpg') center/cover no-repeat;
  overflow:hidden;
}
.page-hero::before{
  content:'';
  position:absolute; inset:0;
  background:rgba(21,23,15,.42);
}
.page-hero .container{ position:relative; z-index:2; }
.page-hero h1{ color:var(--cream); font-size:clamp(2.2rem, 4.6vw, 3.6rem); max-width:20ch; }
.page-hero .lede{ max-width:56ch; color:rgba(254,241,206,.85); font-size:1.05rem; }
.breadcrumb{
  font-size:.72rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold-pale);
  margin-bottom:1.4em;
  display:block;
}

/* ---------- Sections ---------- */
section{ position:relative; }
.section{ padding:clamp(4.5em,9vw,8em) 0; }
.section-dark{ background:var(--green-dark); color:var(--cream); }
.section-black{
  position:relative;
  background:var(--black);
  color:var(--cream);
  isolation:isolate;
}
.section-black::before{
  content:'';
  position:absolute; inset:0;
  z-index:0;
  background:url('../img/cannage-overlay.png') repeat top left/280px;
  opacity:.14;
  pointer-events:none;
}
.section-black > .container{ position:relative; z-index:1; }
.section-cream{ background:var(--cream); }
.section-soft{ background:var(--cream-soft); }
.section-pale{ background:var(--cream-pale-2); }
.section-header{
  max-width:640px;
  margin:0 0 3.4em;
}
.section-header.center{ margin-inline:auto; text-align:center; }
.section-header h2{ font-size:clamp(1.9rem,3.4vw,2.85rem); }
.section-dark .section-header h2,
.section-black .section-header h2{ color:var(--cream); }

.divider-motif{
  height:64px;
  background:url('../img/cannage-tile.jpg') repeat;
  background-size:180px;
  opacity:.5;
}

/* ---------- Reveal animation ---------- */
.reveal{
  opacity:0;
  transform:translateY(34px);
  transition:opacity 1s var(--ease-soft), transform 1s var(--ease-soft);
}
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-1{ transition-delay:.08s; }
.reveal-2{ transition-delay:.18s; }
.reveal-3{ transition-delay:.28s; }
.reveal-4{ transition-delay:.38s; }

.fade-scale{
  opacity:0;
  transform:scale(1.06);
  transition:opacity 1.2s var(--ease-soft), transform 1.4s var(--ease-soft);
}
.fade-scale.is-visible{ opacity:1; transform:scale(1); }

/* ---------- Concept / feature rows ---------- */
.concept-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2.5em;
}
@media (max-width:820px){ .concept-grid{ grid-template-columns:1fr; } }
.concept-card{
  padding:2.4em 2em;
  background:var(--white);
  border:1px solid rgba(39,49,31,.1);
  transition:border-color .4s var(--ease), background .4s var(--ease), transform .4s var(--ease);
}
.concept-card:hover{
  border-color:var(--cream-pale-1);
  background:var(--cream-pale-2);
  transform:translateY(-4px);
}
.section-dark .concept-card{
  background:rgba(254,241,206,.04);
  border-color:rgba(254,241,206,.16);
}
.concept-card .num{
  font-family:var(--font-serif);
  font-size:.85rem;
  color:var(--gold-deep);
  letter-spacing:.1em;
  display:block;
  margin-bottom:1.2em;
}
.section-dark .concept-card .num{ color:var(--gold-pale); }
.concept-card h3{ font-size:1.25rem; }

/* ---------- Split media/text ---------- */
.split{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(2em,5vw,5em);
  align-items:center;
}
.split.reverse{ grid-template-columns:.95fr 1.05fr; }
.split.reverse .split-media{ order:2; }
@media (max-width:900px){
  .split, .split.reverse{ grid-template-columns:1fr; }
  .split.reverse .split-media{ order:0; }
}
.split-media{ position:relative; }
.split-media img{ width:100%; height:auto; }
.split-media.on-green{
  background:var(--green-dark);
  padding:2.5em;
}
.section.section-tight-media{ padding-bottom:0; }
.split-list{ margin-top:1.6em; }
.split-list li{
  display:flex;
  gap:1em;
  padding:.85em 0;
  border-top:1px solid rgba(39,49,31,.12);
  font-size:.95rem;
}
.section-dark .split-list li{ border-color:rgba(254,241,206,.16); }
.split-list li:last-child{ border-bottom:1px solid rgba(39,49,31,.12); }
.section-dark .split-list li:last-child{ border-color:rgba(254,241,206,.16); }
.split-list .tick{ color:var(--gold-deep); flex-shrink:0; }
.section-dark .split-list .tick{ color:var(--gold-pale); }

/* ---------- Pricing / experiences ---------- */
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.75em;
}
@media (max-width:980px){ .pricing-grid{ grid-template-columns:1fr; max-width:520px; margin-inline:auto; } }
.price-card{
  background:var(--white);
  border:1px solid rgba(39,49,31,.12);
  padding:2.6em 2.2em;
  display:flex;
  flex-direction:column;
  position:relative;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.price-card:hover{ transform:translateY(-8px); box-shadow:0 30px 60px rgba(21,23,15,.12); }
.price-card.featured{
  background:var(--green-dark);
  color:var(--cream);
  border-color:var(--green-dark);
}
.price-card .tag{
  position:absolute; top:0; right:2.2em;
  transform:translateY(-50%);
  background:var(--gold-pale);
  color:var(--green-dark);
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:.5em 1em;
}
.price-card .name{
  font-family:var(--font-serif);
  font-size:1.6rem;
  margin-bottom:.15em;
}
.price-card .duration{
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--gold-deep);
  margin-bottom:1.3em;
}
.price-card.featured .duration{ color:var(--gold-pale); }
.price-card .price{
  font-family:var(--font-serif);
  font-size:2.6rem;
  margin-bottom:1.3em;
}
.price-card .price sup{ font-size:1rem; font-family:var(--font-sans); margin-left:.15em; }
.price-card ul{ flex:1; margin-bottom:2em; }
.price-card li{
  display:flex;
  gap:.8em;
  align-items:flex-start;
  font-size:.92rem;
  padding:.55em 0;
  border-top:1px solid rgba(39,49,31,.1);
}
.price-card.featured li{ border-color:rgba(254,241,206,.16); }
.price-card li:first-child{ border-top:none; }
.price-card li svg{ flex-shrink:0; width:14px; height:14px; margin-top:.3em; color:var(--gold-deep); }
.price-card.featured li svg{ color:var(--gold-pale); }
.price-card .btn{ width:100%; justify-content:center; }

.options-table{
  width:100%;
  border-collapse:collapse;
  margin-top:1em;
}
.options-table th{
  text-align:left;
  font-family:var(--font-sans);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.7rem;
  color:var(--gold-deep);
  padding-bottom:1em;
  border-bottom:1px solid rgba(39,49,31,.18);
}
.options-table td{
  padding:1.1em 0;
  border-bottom:1px solid rgba(39,49,31,.1);
  font-size:.95rem;
}
.options-table td:last-child{ text-align:right; font-family:var(--font-serif); font-size:1.05rem; }

/* ---------- Gallery / Notre travail ---------- */
/* Masonry via CSS columns: each photo keeps its full, natural proportions (no crop, no distortion). */
.gallery-grid{
  column-count:3;
  column-gap:1em;
}
.gallery-grid figure{
  margin:0 0 1em;
  break-inside:avoid;
  position:relative;
  overflow:hidden;
  background:var(--green-dark);
}
.gallery-grid img{
  display:block;
  width:100%; height:auto;
  transition:transform 1.1s var(--ease-soft);
}
.gallery-grid figure:hover img{ transform:scale(1.05); }
@media (max-width:820px){
  .gallery-grid{ column-count:2; }
}
@media (max-width:520px){
  .gallery-grid{ column-count:1; }
}

.charm-strip{
  display:flex;
  gap:2em;
  overflow-x:auto;
  padding-bottom:1em;
  scroll-snap-type:x mandatory;
}
.charm-strip::-webkit-scrollbar{ height:4px; }
.charm-strip::-webkit-scrollbar-thumb{ background:rgba(254,241,206,.3); }
.charm-card{
  flex:0 0 auto;
  width:min(78vw,300px);
  scroll-snap-align:start;
  background:rgba(254,241,206,.05);
  border:1px solid rgba(254,241,206,.16);
  padding:2em;
}
.charm-card .num{ color:var(--gold-pale); font-family:var(--font-serif); }

/* ---------- Steps / process ---------- */
.steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2em;
}
@media (max-width:900px){ .steps{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .steps{ grid-template-columns:1fr; } }
.step{ position:relative; padding-top:2.2em; }
.step::before{
  content:'';
  position:absolute; top:0; left:0;
  width:34px; height:1px;
  background:var(--gold-deep);
}
.section-dark .step::before{ background:var(--gold-pale); }
.step .n{ font-family:var(--font-serif); font-size:1.1rem; color:var(--gold-deep); }
.section-dark .step .n{ color:var(--gold-pale); }
.step h4{ font-size:1.05rem; margin-top:.4em; }
.step p{ font-size:.92rem; opacity:.85; }

/* ---------- Quote / testimonial ---------- */
.quote-block{
  max-width:820px;
  margin:0 auto;
  text-align:center;
}
.quote-block blockquote{
  font-family:var(--font-serif);
  font-size:clamp(1.4rem,2.6vw,2rem);
  font-weight:400;
  line-height:1.4;
  margin:0 0 1em;
}
.quote-block cite{
  font-family:var(--font-script);
  font-style:normal;
  font-size:1.6rem;
  letter-spacing:.01em;
  text-transform:none;
  color:var(--gold-deep);
  display:inline-block;
  margin-top:.3em;
}
.section-dark .quote-block cite{ color:var(--gold-pale); }

/* ---------- Forms ---------- */
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.6em;
}
@media (max-width:700px){ .form-grid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:.6em; }
.field.full{ grid-column:1 / -1; }
.field label{
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold-deep);
}
.field input,
.field select,
.field textarea{
  font-family:var(--font-sans);
  font-size:.98rem;
  font-weight:300;
  background:transparent;
  border:none;
  border-bottom:1px solid rgba(39,49,31,.28);
  padding:.7em .1em;
  color:var(--ink);
  transition:border-color .3s var(--ease);
}
.field textarea{ resize:vertical; min-height:110px; }
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  border-color:var(--green-dark);
}
.field-radio-group{ display:flex; flex-wrap:wrap; gap:.7em; }
.field-radio-group input{ display:none; }
.field-radio-group label{
  border:1px solid rgba(39,49,31,.28);
  padding:.6em 1.1em;
  font-size:.82rem;
  letter-spacing:.03em;
  text-transform:none;
  cursor:pointer;
  color:var(--ink);
  transition:all .3s var(--ease);
}
.field-radio-group input:checked + label{
  background:var(--green-dark);
  border-color:var(--green-dark);
  color:var(--cream);
}
.form-note{ font-size:.85rem; opacity:.75; margin-top:1.6em; }
.form-status{ font-size:.9rem; margin-top:1em; display:none; }
.form-status.is-visible{ display:block; }

/* ---------- Info cards / contact ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(2em,5vw,5em);
}
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-info li{
  display:flex;
  gap:1.1em;
  padding:1.3em 0;
  border-top:1px solid rgba(254,241,206,.16);
  font-size:.95rem;
}
.contact-info li:last-child{ border-bottom:1px solid rgba(254,241,206,.16); }
.contact-info .label{
  display:block;
  font-size:.68rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold-pale);
  margin-bottom:.35em;
}

/* ---------- FAQ ---------- */
.faq-item{
  border-top:1px solid rgba(39,49,31,.14);
}
.faq-item:last-child{ border-bottom:1px solid rgba(39,49,31,.14); }
.faq-q{
  width:100%;
  text-align:left;
  background:none;
  border:none;
  padding:1.5em 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1em;
  font-family:var(--font-serif);
  font-size:1.1rem;
  cursor:pointer;
  color:inherit;
}
.faq-q .plus{
  flex-shrink:0;
  width:20px; height:20px;
  position:relative;
}
.faq-q .plus::before,
.faq-q .plus::after{
  content:'';
  position:absolute;
  background:var(--gold-deep);
  transition:transform .4s var(--ease);
}
.faq-q .plus::before{ top:50%; left:0; width:100%; height:1px; margin-top:-.5px; }
.faq-q .plus::after{ left:50%; top:0; height:100%; width:1px; margin-left:-.5px; }
.faq-item.is-open .plus::after{ transform:rotate(90deg); }
.faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height .5s var(--ease-soft);
}
.faq-a p{ padding-bottom:1.5em; font-size:.95rem; opacity:.85; max-width:60ch; }

/* ---------- Footer ---------- */
.site-footer{
  position:relative;
  background:var(--black);
  color:rgba(254,241,206,.75);
  padding:5em 0 2em;
  isolation:isolate;
}
.site-footer::before{
  content:'';
  position:absolute; inset:0;
  z-index:0;
  background:url('../img/cannage-overlay.png') repeat top left/280px;
  opacity:.14;
  pointer-events:none;
}
.site-footer > .container{ position:relative; z-index:1; }
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:3em;
  padding-bottom:3.5em;
  border-bottom:1px solid rgba(254,241,206,.12);
}
@media (max-width:800px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h5{
  color:var(--gold-pale);
  font-family:var(--font-sans);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.7rem;
  margin-bottom:1.4em;
}
.footer-grid li{ padding:.4em 0; font-size:.9rem; }
.footer-grid a:hover{ color:var(--gold-pale); }
.footer-bottom{
  padding-top:2em;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:1em;
  font-size:.78rem;
  opacity:.6;
}

/* ---------- Utilities ---------- */
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.small-caps-link{
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  border-bottom:1px solid currentColor;
  padding-bottom:2px;
  display:inline-block;
}
.badge-row{
  display:flex;
  gap:2.5em;
  flex-wrap:wrap;
  margin-top:3em;
  padding-top:2.5em;
  border-top:1px solid rgba(39,49,31,.14);
}
.section-dark .badge-row{ border-color:rgba(254,241,206,.16); }
.badge-row .num{
  font-family:var(--font-serif);
  font-size:2rem;
  display:block;
}
.badge-row .lbl{
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--gold-deep);
}
.section-dark .badge-row .lbl{ color:var(--gold-pale); }
