/* ==========================================================================
   LAFAN — Saúde | Beleza | Bemestar
   Design system: editorial clinic-atelier, ancorado na tríade do logo
   (rosto · folículo · fios) — Saúde Capilar · Beleza · Bem-estar
   ========================================================================== */

:root{
  /* Paleta oficial da marca */
  --olive: #697354;
  --olive-dark: #4B5340;
  --sage: #B8BF97;
  --sage-light: #D8DEC4;
  --cream: #E9E5DC;
  --paper: #FAF8F4;
  --charcoal: #4B4B4D;
  --ink: #0C0B08;
  --ink-soft: #17160F;
  --white: #FFFFFF;

  --font-display: "Cormorant Garamond", "Times New Roman", serif;
  --font-body: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --radius-sm: 2px;
  --radius-md: 6px;
  --radius-diamond: 28% 72% 70% 30% / 30% 30% 70% 70%;

  --shadow-sm: 0 2px 10px rgba(12,11,8,.06);
  --shadow-md: 0 12px 40px rgba(12,11,8,.14);
  --shadow-lg: 0 24px 70px rgba(12,11,8,.28);

  --container: 1200px;
  --gutter: clamp(1.25rem, 5vw, 3rem);

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
body{
  font-family:var(--font-body);
  color:var(--charcoal);
  background:var(--paper);
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,video{max-width:100%; display:block; height:auto;}
a{color:inherit; text-decoration:none;}
ul,ol{list-style:none;}
button{font:inherit; cursor:pointer; border:none; background:none; color:inherit;}
input,textarea,select{font:inherit;}
svg{display:block;}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.12;
  color:var(--ink);
}
h1{font-size:clamp(2.4rem,6vw,4.4rem); letter-spacing:.01em;}
h2{font-size:clamp(1.9rem,4.4vw,3rem);}
h3{font-size:clamp(1.3rem,2.6vw,1.7rem);}
h4{font-size:1.15rem;}
p{max-width:62ch;}
.lede{font-size:clamp(1.05rem,2vw,1.25rem); color:var(--olive-dark); font-weight:400;}

:focus-visible{outline:2px solid var(--olive); outline-offset:3px;}

/* ---------- Utility ---------- */
.container{max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter);}
.section{padding-block:clamp(3.5rem,8vw,7rem);}
.section-tight{padding-block:clamp(2.5rem,5vw,4rem);}
.bg-ink{background:var(--ink); color:var(--sage-light);}
.bg-ink h2,.bg-ink h3,.bg-ink h4{color:var(--cream);}
.bg-cream{background:var(--cream);}
.bg-paper{background:var(--paper);}
.bg-sage{background:var(--sage-light);}
.center{text-align:center; margin-inline:auto;}
.mx-auto{margin-inline:auto;}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.skip-link{position:absolute; left:-999px; top:0; background:var(--olive); color:#fff; padding:.8em 1.2em; z-index:999;}
.skip-link:focus{left:1rem; top:1rem;}

.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--font-body); font-size:.72rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--olive-dark);
  margin-bottom:1rem;
}
.eyebrow::before{content:""; width:22px; height:9px; background:var(--sage); clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%); flex-shrink:0;}
.bg-ink .eyebrow{color:var(--sage);}

.section-head{max-width:52rem; margin-bottom:clamp(2rem,5vw,3.2rem);}
.section-head.center{margin-inline:auto;}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--font-body); font-weight:600; font-size:.92rem; letter-spacing:.03em;
  padding:.95em 1.9em; border-radius:100px; white-space:nowrap;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s, color .3s, border-color .3s;
}
.btn-primary{background:var(--olive); color:var(--white);}
.btn-primary:hover{background:var(--olive-dark); transform:translateY(-2px); box-shadow:var(--shadow-md);}
.btn-light{background:var(--cream); color:var(--ink);}
.btn-light:hover{background:var(--white); transform:translateY(-2px);}
.btn-outline{border:1.5px solid currentColor; color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:var(--cream); transform:translateY(-2px);}
.bg-ink .btn-outline{color:var(--cream);}
.bg-ink .btn-outline:hover{background:var(--cream); color:var(--ink);}
.btn-whats{background:#3d5c3a; color:#fff;}
.btn-whats:hover{background:#2f4a2c; transform:translateY(-2px); box-shadow:var(--shadow-md);}
.btn-sm{padding:.7em 1.4em; font-size:.82rem;}
.btn-block{width:100%;}

/* Diamond motif — recorte que ecoa os três losangos do símbolo Lafan */
.diamond{
  clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);
}
.diamond-frame{position:relative; aspect-ratio:1/1;}
.diamond-frame img{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%); width:100%; height:100%; object-fit:cover;}

/* ---------- Header ---------- */
.site-header{
  position:fixed; inset-block-start:0; inset-inline:0; z-index:100;
  padding-block:.85rem;
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s;
  background:var(--ink); box-shadow:0 4px 24px rgba(0,0,0,.25);
}
.site-header.is-scrolled{
  background:var(--ink); padding-block:.55rem; box-shadow:0 4px 24px rgba(0,0,0,.25);
}
.site-header .container{display:flex; align-items:center; justify-content:space-between; gap:1rem;}
.brand{display:flex; align-items:center; gap:.6rem;}
.brand img{height:38px; width:auto; transition:height .3s var(--ease);}
.site-header.is-scrolled .brand img{height:32px;}
.brand-text{display:flex; flex-direction:column; line-height:1.1;}
.brand-text strong{font-family:var(--font-display); font-size:1.28rem; letter-spacing:.14em; color:var(--cream);}
.brand-text span{font-size:.53rem; letter-spacing:.24em; color:var(--sage); text-transform:uppercase;}

.nav-desktop{display:none;}
.nav-desktop ul{display:flex; align-items:center; gap:1.9rem;}
.nav-desktop a{
  font-size:.85rem; font-weight:500; letter-spacing:.03em; color:var(--cream);
  position:relative; padding-block:.3rem;
}
.nav-desktop a::after{content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--sage); transition:width .3s var(--ease);}
.nav-desktop a:hover::after,.nav-desktop a.is-active::after{width:100%;}
.nav-desktop a.is-active{color:var(--sage-light);}
.header-cta{display:none;}

.nav-toggle{
  display:flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%; color:var(--cream);
  background:rgba(233,229,220,.08);
}
.nav-toggle svg{width:20px; height:20px;}
.nav-toggle .icon-close{display:none;}
.nav-toggle[aria-expanded="true"] .icon-open{display:none;}
.nav-toggle[aria-expanded="true"] .icon-close{display:block;}

.mobile-nav{
  position:fixed; inset:0; z-index:99;
  background:var(--ink);
  display:flex; flex-direction:column;
  padding:6.5rem var(--gutter) 2.5rem;
  transform:translateY(-100%);
  transition:transform .5s var(--ease);
  overflow-y:auto;
}
.mobile-nav.is-open{transform:translateY(0);}
.mobile-nav ul{display:flex; flex-direction:column; gap:0;}
.mobile-nav li{border-bottom:1px solid rgba(184,191,151,.16);}
.mobile-nav a{
  display:block; padding:1.1rem 0; font-family:var(--font-display); font-size:1.5rem;
  color:var(--cream); font-weight:500;
}
.mobile-nav a.is-active{color:var(--sage);}
.mobile-nav .mobile-cta{margin-top:2rem; display:flex; flex-direction:column; gap:.8rem;}
.mobile-nav .mobile-meta{margin-top:auto; padding-top:2rem; color:var(--sage-light); font-size:.82rem; display:flex; flex-direction:column; gap:.5rem;}

@media(min-width:960px){
  .site-header{padding-block:1.3rem;}
  .site-header.is-scrolled{padding-block:.8rem;}
  .brand img{height:44px;}
  .site-header.is-scrolled .brand img{height:36px;}
  .nav-desktop{display:block;}
  .header-cta{display:inline-flex;}
  .nav-toggle{display:none;}
}

/* ---------- Hero ---------- */
.hero-visual-wrap{background:var(--ink); padding-top:4.6rem;}
.hero-visual{position:relative; width:100%; aspect-ratio:1098/941; overflow:hidden; background:var(--ink);}
.hero-media{position:absolute; inset:0;}
.hero-media img{width:100%; height:100%; object-fit:cover; object-position:center; animation:heroKenBurns 22s ease-out infinite alternate;}
@keyframes heroKenBurns{0%{transform:scale(1);}100%{transform:scale(1.04);}}
@media(prefers-reduced-motion:reduce){.hero-media img{animation:none;}}
.hero-visual::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(6,6,4,0) 82%, rgba(6,6,4,.55) 100%);
}
.hero-text{padding-block:3.2rem 3.6rem; color:var(--cream);}
.hero-diamonds{display:flex; gap:.5rem; margin-bottom:1.4rem;}
.hero-diamonds span{width:14px; height:14px; opacity:.9;}
.hero-diamonds span:nth-child(1){background:var(--sage);}
.hero-diamonds span:nth-child(2){background:var(--cream);}
.hero-diamonds span:nth-child(3){background:var(--olive);}
.hero-text h1{color:var(--cream); max-width:16ch;}
.hero-text h1 em{font-style:normal; color:var(--sage);}
.hero-text .lede{color:var(--sage-light); max-width:42ch; margin-top:1rem;}
.hero-actions{display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2rem;}
.hero-trust{margin-top:1.6rem; font-size:.82rem; color:var(--sage-light); letter-spacing:.02em;}

@media(min-width:640px){
  .hero-text h1{max-width:18ch;}
}
@media(min-width:960px){
  .hero-combo{display:flex; align-items:stretch; background:var(--ink); padding-top:5.4rem;}
  .hero-visual-wrap{padding-top:0; flex:0 0 54%;}
  .hero-visual{height:100%; aspect-ratio:auto;}
  .hero-visual::after{background:linear-gradient(to right, rgba(6,6,4,0) 75%, rgba(6,6,4,.4) 100%);}
  .hero-text{flex:1; display:flex; flex-direction:column; justify-content:center; padding-block:3rem; padding-inline-start:3.5rem;}
}

/* Picture art-direction: mobile vs desktop hero image swap handled in HTML via <picture> */

/* ---------- Floating contact ---------- */
.floating-contact{
  position:fixed; right:1.1rem; bottom:1.1rem; z-index:80;
  display:flex; flex-direction:column; gap:.65rem; align-items:flex-end;
}
.fab{
  width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-md); transition:transform .3s var(--ease);
}
.fab:hover{transform:scale(1.08);}
.fab svg{width:26px; height:26px;}
.fab-whats{background:#3d5c3a; color:#fff;}
.fab-insta{width:44px; height:44px; background:var(--cream); color:var(--ink);}
.fab-insta svg{width:20px; height:20px;}

/* ---------- Pillars (signature triad) ---------- */
.pillars{display:grid; gap:1.6rem;}
.pillar{
  position:relative; padding:2.6rem 1.9rem 2.2rem; background:var(--paper);
  border:1px solid rgba(75,75,77,.1);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;
}
.pillar:hover{transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:transparent;}
.pillar-icon{width:56px; height:56px; margin-bottom:1.4rem; display:flex; align-items:center; justify-content:center;}
.pillar-icon svg{width:100%; height:100%;}
.pillar h3{margin-bottom:.7rem;}
.pillar p{font-size:.94rem; color:var(--charcoal);}
.pillar .pillar-index{position:absolute; top:1.6rem; right:1.6rem; font-family:var(--font-display); font-size:.85rem; color:var(--sage); letter-spacing:.1em;}

@media(min-width:760px){
  .pillars{grid-template-columns:repeat(3,1fr); gap:0;}
  .pillar{border-right:1px solid rgba(75,75,77,.12);}
  .pillar:last-child{border-right:none;}
  .pillar:hover{transform:translateY(-8px);}
}

/* ---------- Cards: services ---------- */
.grid{display:grid; gap:1.5rem;}
.grid-2{grid-template-columns:1fr;}
.grid-3{grid-template-columns:1fr;}
.grid-4{grid-template-columns:repeat(2,1fr);}
@media(min-width:640px){
  .grid-2{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(3,1fr);}
}
@media(min-width:960px){
  .grid-4{grid-template-columns:repeat(4,1fr);}
}

.service-card{
  background:var(--white); padding:2.1rem 1.7rem; border-radius:var(--radius-md);
  box-shadow:var(--shadow-sm); border:1px solid rgba(75,75,77,.07);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  display:flex; flex-direction:column; height:100%;
}
.service-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md);}
.service-card .tag{
  display:inline-block; align-self:flex-start; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--olive-dark); background:var(--sage-light); padding:.35em .8em; border-radius:100px; margin-bottom:1.1rem; font-weight:600;
}
.service-card h3{margin-bottom:.6rem; font-size:1.28rem;}
.service-card p{font-size:.92rem; flex:1;}
.service-card .card-link{margin-top:1.1rem; font-size:.82rem; font-weight:600; color:var(--olive-dark); display:inline-flex; align-items:center; gap:.4em;}
.service-card .card-link svg{width:14px; height:14px; transition:transform .3s;}
.service-card:hover .card-link svg{transform:translateX(4px);}

.service-detail{
  display:grid; gap:1.4rem; padding:2.4rem 0; border-bottom:1px solid rgba(75,75,77,.14);
}
.service-detail:last-child{border-bottom:none;}
.service-detail .num{font-family:var(--font-display); font-size:1rem; color:var(--sage); letter-spacing:.08em;}
@media(min-width:800px){
  .service-detail{grid-template-columns:.9fr 2.1fr; align-items:start; gap:2.4rem;}
}

/* ---------- About / split sections ---------- */
.split{display:grid; gap:2.6rem; align-items:center;}
@media(min-width:900px){
  .split{grid-template-columns:1fr 1fr; gap:4.5rem;}
  .split.reverse .split-media{order:2;}
}
.split-media{position:relative;}
.split-media img{border-radius:var(--radius-md);}
.split-media .frame-tag{
  position:absolute; bottom:-1.1rem; left:-1.1rem; background:var(--ink); color:var(--cream);
  padding:.9rem 1.3rem; font-family:var(--font-display); font-size:1.05rem; letter-spacing:.04em;
  box-shadow:var(--shadow-md);
}
.split-media .frame-tag span{display:block; font-family:var(--font-body); font-size:.62rem; letter-spacing:.18em; color:var(--sage); text-transform:uppercase; margin-bottom:.25rem;}

/* Team */
.team-grid{display:grid; gap:2.2rem;}
@media(min-width:700px){ .team-grid{grid-template-columns:repeat(3,1fr);} }
.team-card{text-align:left;}
.team-photo{aspect-ratio:4/5; overflow:hidden; border-radius:var(--radius-md); margin-bottom:1.2rem; background:var(--sage-light);}
.team-photo img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.team-card:hover .team-photo img{transform:scale(1.05);}
.team-photo.placeholder{
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(150deg,var(--olive),var(--ink) 130%);
  position:relative;
}
.team-photo.placeholder .initial{
  width:34%; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center;
  background:rgba(233,229,220,.14); color:var(--cream); font-family:var(--font-display);
  font-size:2.6rem; clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);
}
.team-photo.placeholder .ph-note{
  position:absolute; bottom:.9rem; left:.9rem; right:.9rem; font-size:.66rem; letter-spacing:.06em;
  color:var(--sage-light); text-align:center; opacity:.85;
}
.team-card h3{font-size:1.35rem; margin-bottom:.15rem;}
.team-role{font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--olive); font-weight:600; margin-bottom:.8rem; display:block;}
.team-card p{font-size:.92rem;}

/* Timeline / values list */
.check-list{display:flex; flex-direction:column; gap:1rem;}
.check-list li{display:flex; gap:.9rem; align-items:flex-start; font-size:.98rem;}
.check-list .ico{
  flex-shrink:0; width:26px; height:26px; background:var(--olive); color:#fff;
  display:flex; align-items:center; justify-content:center; margin-top:.1rem;
  clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%);
}
.check-list .ico svg{width:12px; height:12px;}

/* ---------- Gallery ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:.8rem;}
@media(min-width:700px){ .gallery-grid{grid-template-columns:repeat(3,1fr); gap:1.1rem;} }
.gallery-item{position:relative; overflow:hidden; border-radius:var(--radius-sm); cursor:zoom-in; background:var(--ink);}
.gallery-item.tall{grid-row:span 2;}
.gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.gallery-item:hover img{transform:scale(1.07);}
.gallery-item .gcap{
  position:absolute; inset:auto 0 0 0; padding:1rem .9rem .8rem;
  background:linear-gradient(to top, rgba(6,6,4,.85), transparent);
  color:var(--cream); font-size:.78rem; letter-spacing:.03em;
  opacity:0; transform:translateY(8px); transition:all .35s var(--ease);
}
.gallery-item:hover .gcap{opacity:1; transform:translateY(0);}

.gallery-item.video-card{cursor:default;}
.gallery-item .play-badge{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center; z-index:2; pointer-events:none;
}
.gallery-item .play-badge span{
  width:58px; height:58px; border-radius:50%; background:rgba(12,11,8,.55); backdrop-filter:blur(2px);
  display:flex; align-items:center; justify-content:center; transition:transform .3s var(--ease), background .3s;
}
.gallery-item:hover .play-badge span{transform:scale(1.1); background:var(--olive);}
.gallery-item .play-badge svg{width:20px; height:20px; color:#fff; margin-left:3px;}
.gallery-item video{width:100%; height:100%; object-fit:cover; display:block;}
.gallery-item.video-card.is-playing .play-badge{display:none;}
.gallery-item.video-card.is-playing video{cursor:pointer;}

.lightbox{position:fixed; inset:0; z-index:200; background:rgba(6,6,4,.94); display:none; align-items:center; justify-content:center; padding:1.5rem;}
.lightbox.is-open{display:flex;}
.lightbox img{max-width:min(92vw,1100px); max-height:86vh; object-fit:contain; border-radius:4px;}
.lightbox-close{position:absolute; top:1.2rem; right:1.2rem; width:46px; height:46px; border-radius:50%; background:rgba(233,229,220,.12); color:var(--cream); display:flex; align-items:center; justify-content:center;}
.lightbox-close svg{width:20px; height:20px;}

/* ---------- Testimonials ---------- */
.testi-track{display:grid; gap:1.4rem;}
@media(min-width:760px){ .testi-track{grid-template-columns:repeat(3,1fr);} }
.testi-card{
  background:var(--paper); padding:2.1rem 1.8rem; position:relative; border-radius:var(--radius-md);
  border:1px solid rgba(75,75,77,.09);
}
.testi-stars{display:flex; gap:.25rem; margin-bottom:1.1rem; color:var(--olive);}
.testi-stars svg{width:16px; height:16px;}
.testi-card p{font-size:.98rem; color:var(--charcoal); font-style:italic;}
.testi-name{display:flex; align-items:center; gap:.8rem; margin-top:1.4rem;}
.testi-avatar{width:42px; height:42px; border-radius:50%; background:var(--olive); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:1.1rem; flex-shrink:0;}
.testi-name strong{display:block; font-size:.92rem;}
.testi-name span{font-size:.76rem; color:var(--olive-dark);}
.testi-note{
  margin-top:2.4rem; padding:1.3rem 1.5rem; background:var(--sage-light); border-radius:var(--radius-md);
  font-size:.85rem; color:var(--olive-dark); display:flex; gap:.8rem; align-items:flex-start;
}
.testi-note svg{width:20px; height:20px; flex-shrink:0; margin-top:.15rem;}

/* ---------- FAQ ---------- */
.faq-list{border-top:1px solid rgba(75,75,77,.16);}
.faq-item{border-bottom:1px solid rgba(75,75,77,.16);}
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.5rem 0; text-align:left; font-family:var(--font-display); font-size:1.18rem; color:var(--ink);
}
.faq-q .plus{flex-shrink:0; width:26px; height:26px; position:relative;}
.faq-q .plus::before,.faq-q .plus::after{content:""; position:absolute; background:var(--olive); transition:transform .35s var(--ease);}
.faq-q .plus::before{top:50%; left:0; width:100%; height:2px; transform:translateY(-50%);}
.faq-q .plus::after{left:50%; top:0; width:2px; height:100%; transform:translateX(-50%);}
.faq-item.is-open .faq-q .plus::after{transform:translateX(-50%) rotate(90deg); opacity:0;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .4s var(--ease);}
.faq-a-inner{padding-bottom:1.6rem; font-size:.96rem; max-width:65ch;}
.faq-item.is-open .faq-a{max-height:600px;}

/* ---------- Blog ---------- */
.post-card{display:flex; flex-direction:column; height:100%; background:var(--white); border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid rgba(75,75,77,.07); transition:transform .4s var(--ease), box-shadow .4s var(--ease);}
.post-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-md);}
.post-thumb{aspect-ratio:16/10; background:linear-gradient(135deg,var(--ink),var(--olive-dark)); position:relative; overflow:hidden;}
.post-thumb img{width:100%; height:100%; object-fit:cover;}
.post-thumb .diamond-mark{position:absolute; bottom:1rem; left:1rem; width:26px; height:26px; background:var(--sage); opacity:.9;}
.post-body{padding:1.6rem 1.5rem 1.8rem; display:flex; flex-direction:column; flex:1;}
.post-meta{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--olive); margin-bottom:.7rem; font-weight:600;}
.post-body h3{font-size:1.25rem; margin-bottom:.7rem;}
.post-body p{font-size:.9rem; flex:1;}
.post-body .card-link{margin-top:1.1rem; font-size:.82rem; font-weight:600; color:var(--olive-dark);}

.article-body{max-width:70ch; margin-inline:auto;}
.article-body h2{margin-block:2.2rem .9rem; font-size:1.7rem;}
.article-body h3{margin-block:1.6rem .7rem; font-size:1.25rem;}
.article-body p{margin-bottom:1.1rem; max-width:none;}
.article-body ul,.article-body ol{margin:0 0 1.2rem 1.3rem; list-style:disc;}
.article-body ol{list-style:decimal;}
.article-body li{margin-bottom:.5rem;}
.article-body blockquote{border-left:3px solid var(--olive); padding-left:1.3rem; font-style:italic; color:var(--olive-dark); margin:1.6rem 0;}
.article-hero{aspect-ratio:16/8; overflow:hidden; border-radius:var(--radius-md); margin-bottom:2rem;}
.article-hero img{width:100%; height:100%; object-fit:cover;}
.article-head{max-width:70ch; margin-inline:auto; text-align:center; margin-bottom:2rem;}
.article-author{display:flex; align-items:center; justify-content:center; gap:.7rem; margin-top:1.2rem; font-size:.85rem; color:var(--olive-dark);}
.article-cta{max-width:70ch; margin:3rem auto 0; padding:2rem; background:var(--sage-light); border-radius:var(--radius-md); text-align:center;}

/* ---------- Contact ---------- */
.contact-grid{display:grid; gap:2.4rem;}
@media(min-width:900px){ .contact-grid{grid-template-columns:1fr 1fr; gap:3.5rem;} }
.info-list{display:flex; flex-direction:column; gap:1.5rem; margin-top:1.6rem;}
.info-item{display:flex; gap:1rem; align-items:flex-start;}
.info-item .ico{width:22px; height:22px; color:var(--olive); flex-shrink:0; margin-top:.2rem;}
.info-item strong{display:block; font-size:.98rem; margin-bottom:.15rem;}
.info-item span,.info-item a{font-size:.9rem; color:var(--charcoal);}
.info-item a:hover{color:var(--olive);}
.map-wrap{border-radius:var(--radius-md); overflow:hidden; box-shadow:var(--shadow-sm); aspect-ratio:16/11; margin-top:1.8rem;}
.map-wrap iframe{width:100%; height:100%; border:0;}

.form{display:flex; flex-direction:column; gap:1.1rem;}
.field{display:flex; flex-direction:column; gap:.4rem;}
.field label{font-size:.78rem; font-weight:600; letter-spacing:.03em; color:var(--olive-dark);}
.field input,.field select,.field textarea{
  padding:.85em 1em; border:1px solid rgba(75,75,77,.28); border-radius:var(--radius-sm);
  background:var(--white); font-size:.95rem; transition:border-color .3s;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--olive);}
.field textarea{resize:vertical; min-height:110px;}
.form-note{font-size:.78rem; color:var(--olive-dark);}

/* CTA band */
.cta-band{
  position:relative; overflow:hidden; text-align:center; padding-block:clamp(3.5rem,8vw,6rem);
}
.cta-band .container{position:relative; z-index:1; max-width:44rem;}
.cta-band .diamond-bg{position:absolute; inset:0; opacity:.06; pointer-events:none;}

/* Breadcrumb */
.breadcrumb{display:flex; flex-wrap:wrap; gap:.4rem; font-size:.78rem; color:var(--olive-dark); padding-block:1.4rem;}
.breadcrumb a{color:var(--olive-dark);}
.breadcrumb a:hover{color:var(--olive); text-decoration:underline;}
.breadcrumb .sep{opacity:.5;}
.page-banner{background:var(--ink); color:var(--cream); padding-block:8.5rem 3rem;}
.page-banner .eyebrow{color:var(--sage);}
.page-banner h1{color:var(--cream); max-width:20ch;}
.page-banner p{color:var(--sage-light); margin-top:1rem;}

/* Stats strip */
.stats{display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem;}
@media(min-width:700px){ .stats{grid-template-columns:repeat(4,1fr);} }
.stat b{display:block; font-family:var(--font-display); font-size:clamp(2rem,4vw,2.8rem); color:var(--sage);}
.stat span{font-size:.78rem; letter-spacing:.05em; color:var(--sage-light); text-transform:uppercase;}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink); color:var(--sage-light); padding-block:4.5rem 1.6rem;}
.footer-grid{display:grid; gap:2.6rem;}
@media(min-width:800px){ .footer-grid{grid-template-columns:1.4fr 1fr 1fr 1.1fr;} }
.footer-brand img{height:42px; width:auto; margin-bottom:1.1rem;}
.footer-brand p{font-size:.88rem; max-width:32ch; color:var(--sage-light);}
.footer-social{display:flex; gap:.7rem; margin-top:1.3rem;}
.footer-social a{width:38px; height:38px; border-radius:50%; border:1px solid rgba(184,191,151,.35); display:flex; align-items:center; justify-content:center; transition:background .3s, border-color .3s;}
.footer-social a:hover{background:var(--olive); border-color:var(--olive);}
.footer-social svg{width:16px; height:16px;}
.footer-col h4{font-family:var(--font-body); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--cream); margin-bottom:1.2rem; font-weight:600;}
.footer-col ul{display:flex; flex-direction:column; gap:.7rem;}
.footer-col a{font-size:.88rem; color:var(--sage-light);}
.footer-col a:hover{color:var(--cream);}
.footer-bottom{
  margin-top:3.2rem; padding-top:1.6rem; border-top:1px solid rgba(184,191,151,.16);
  display:flex; flex-direction:column; gap:.8rem; font-size:.76rem; color:rgba(216,222,196,.6);
}
@media(min-width:700px){ .footer-bottom{flex-direction:row; justify-content:space-between;} }
.footer-bottom a{color:rgba(216,222,196,.75);}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.is-visible{opacity:1; transform:none;}
.reveal-stagger > *{transition-delay:calc(var(--i,0) * 90ms);}

/* ---------- Misc ---------- */
.divider{height:1px; background:rgba(75,75,77,.16); margin-block:2.5rem;}
.pill{display:inline-flex; align-items:center; gap:.5em; font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--olive-dark); background:var(--sage-light); padding:.4em .9em; border-radius:100px;}
.text-sage{color:var(--sage);}
.badge-founder{
  display:inline-flex; align-items:center; gap:.5rem; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--olive-dark); background:var(--sage-light); padding:.45em 1em; border-radius:100px; margin-bottom:1.2rem; font-weight:600;
}
