/* =========================================================
   Health to You by Victoria — shared stylesheet
   Brand: deep forest green, sage, dark green, warm ochre accent
   ========================================================= */

/* ---------- Tokens ---------- */
:root{
  --green:        #3B6D11;   /* primary */
  --green-dark:   #27500A;   /* depth */
  --green-deep:   #1B3705;   /* deepest — footer, dark bands */
  --sage:         #EAF3DE;   /* background accent */
  --sage-deep:    #D9E8C4;   /* borders / hover on sage */
  --cream:        #FBFAF3;   /* warm page/card base */
  --ochre:        #DD9B2D;   /* warm accent — CTAs */
  --ochre-dark:   #C07F14;
  --ink:          #20300F;   /* body text (warm near-black green) */
  --ink-soft:     #586945;   /* muted text */
  --white:        #FFFFFF;

  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body:    "Mulish", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --maxw: 1140px;
  --gap: clamp(1rem, 3vw, 2rem);
  --radius: 18px;
  --radius-sm: 12px;
  --shadow: 0 14px 40px -22px rgba(27,55,5,.55);
  --shadow-soft: 0 6px 22px -16px rgba(27,55,5,.45);

  --ease: cubic-bezier(.2,.7,.2,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  font-size:clamp(1rem, .96rem + .25vw, 1.075rem);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; height:auto; }
a{ color:inherit; }
button{ font:inherit; cursor:pointer; }
:focus-visible{ outline:3px solid var(--ochre); outline-offset:3px; border-radius:6px; }

/* ---------- Type ---------- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:540;
  line-height:1.08;
  letter-spacing:-.01em;
  color:var(--green-dark);
}
.h-xl{ font-size:clamp(2.5rem, 1.7rem + 4vw, 4.6rem); font-weight:560; }
h2{ font-size:clamp(1.9rem, 1.4rem + 2.2vw, 3rem); }
h3{ font-size:clamp(1.25rem, 1.1rem + .7vw, 1.6rem); }
p{ max-width:64ch; }

.eyebrow{
  font-family:var(--font-body);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  color:var(--green);
  display:inline-flex;
  align-items:center;
  gap:.55rem;
}
.eyebrow::before{
  content:"";
  width:26px; height:2px;
  background:var(--ochre);
  display:inline-block;
}
.lead{ font-size:clamp(1.05rem, 1rem + .4vw, 1.3rem); color:var(--ink-soft); }

/* ---------- Layout ---------- */
.wrap{ width:min(100% - 2.4rem, var(--maxw)); margin-inline:auto; }
.section{ padding-block:clamp(3.2rem, 2rem + 6vw, 6rem); }
.section--sage{ background:var(--sage); }
.section--cream{ background:var(--cream); }
.section--green{ background:var(--green-dark); color:var(--white); }
.section--green h2,.section--green h3{ color:var(--white); }
.section--green .lead{ color:rgba(255,255,255,.82); }

.section-head{ max-width:60ch; margin-bottom:clamp(1.8rem,1rem+3vw,3rem); }
.section-head .eyebrow{ margin-bottom:.9rem; }
.center{ text-align:center; margin-inline:auto; }
.center p{ margin-inline:auto; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.85rem 1.5rem;
  border-radius:999px;
  font-weight:800;
  font-size:.95rem;
  text-decoration:none;
  border:2px solid transparent;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .2s, color .2s;
  line-height:1;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }
.btn--primary{ background:var(--ochre); color:var(--green-deep); box-shadow:var(--shadow-soft); }
.btn--primary:hover{ background:var(--ochre-dark); color:#fff; }
.btn--solid{ background:var(--green); color:#fff; }
.btn--solid:hover{ background:var(--green-dark); }
.btn--ghost{ background:transparent; color:var(--green-dark); border-color:var(--green); }
.btn--ghost:hover{ background:var(--green); color:#fff; }
.btn--on-dark{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.btn--on-dark:hover{ background:#fff; color:var(--green-dark); border-color:#fff; }
.btn--wide{ width:100%; justify-content:center; }
.btn svg{ width:18px; height:18px; }

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(251,250,243,.88);
  backdrop-filter:saturate(150%) blur(10px);
  border-bottom:1px solid var(--sage-deep);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; padding-block:.7rem;
}
.brand{ display:flex; align-items:center; gap:.65rem; text-decoration:none; }
.brand__mark{ flex:0 0 auto; }
.brand__name{ font-family:var(--font-display); font-weight:600; color:var(--green-dark); line-height:1; font-size:1.18rem; }
.brand__name span{ display:block; font-family:var(--font-body); font-weight:700; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ochre-dark); margin-top:.22rem; }

.nav__links{ display:flex; align-items:center; gap:.35rem; list-style:none; }
.nav__links a{
  text-decoration:none; color:var(--ink); font-weight:700; font-size:.95rem;
  padding:.5rem .8rem; border-radius:999px; transition:background .2s, color .2s;
}
.nav__links a:hover{ background:var(--sage); color:var(--green-dark); }
.nav__links a[aria-current="page"]{ color:var(--green-dark); background:var(--sage); }
.nav__cta{ margin-left:.4rem; }

.nav__toggle{
  display:none; background:transparent; border:2px solid var(--sage-deep);
  width:46px; height:46px; border-radius:12px; align-items:center; justify-content:center;
}
.nav__toggle span, .nav__toggle span::before, .nav__toggle span::after{
  content:""; display:block; width:20px; height:2.2px; background:var(--green-dark); border-radius:2px;
  transition:transform .3s var(--ease), opacity .2s;
}
.nav__toggle span::before{ transform:translateY(-6px); }
.nav__toggle span::after{ transform:translateY(6px); }
.nav__toggle span::before, .nav__toggle span::after{ position:absolute; }
.nav__toggle span{ position:relative; }
body.nav-open .nav__toggle span{ background:transparent; }
body.nav-open .nav__toggle span::before{ transform:rotate(45deg); }
body.nav-open .nav__toggle span::after{ transform:rotate(-45deg); }

@media (max-width:880px){
  .nav__toggle{ display:inline-flex; }
  .nav__links{
    position:fixed; inset:64px 0 auto 0;
    flex-direction:column; align-items:stretch; gap:.2rem;
    background:var(--cream); border-bottom:1px solid var(--sage-deep);
    padding:1rem 1.2rem 1.4rem;
    box-shadow:var(--shadow);
    transform:translateY(-130%); transition:transform .35s var(--ease);
    max-height:calc(100dvh - 64px); overflow:auto;
  }
  body.nav-open .nav__links{ transform:translateY(0); }
  .nav__links a{ padding:.85rem 1rem; font-size:1.05rem; }
  .nav__cta{ margin:.4rem 0 0; text-align:center; }
}

/* ---------- Hero ---------- */
.hero{ position:relative; background:var(--sage); overflow:hidden; }
.hero::after{ /* soft sun glow */
  content:""; position:absolute; right:-12%; top:-25%;
  width:55vw; height:55vw; max-width:640px; max-height:640px;
  background:radial-gradient(circle at center, rgba(221,155,45,.22), transparent 65%);
  pointer-events:none;
}
.hero__grid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(1.5rem,4vw,3.5rem);
  align-items:center; padding-block:clamp(2.6rem,2rem+5vw,5.5rem);
  position:relative; z-index:1;
}
.hero h1{ margin:.9rem 0 1rem; }
.hero .lead{ color:var(--ink-soft); margin-bottom:1.8rem; }
.hero__cta{ display:flex; flex-wrap:wrap; gap:.8rem; }
.hero__sig{
  margin-top:1.7rem; font-family:var(--font-display); font-style:italic;
  color:var(--green); font-size:1.15rem;
}
.hero__sig::before{ content:"“"; color:var(--ochre); font-size:1.4em; line-height:0; vertical-align:-.2em; margin-right:.1em; }
.hero__sig::after{ content:"”"; color:var(--ochre); }

/* Hero art card (photo placeholder + floating stat) */
.hero__art{ position:relative; }
.photo{
  position:relative; border-radius:var(--radius); overflow:hidden;
  background:
    linear-gradient(135deg, rgba(255,255,255,.18), transparent),
    var(--green-dark);
  box-shadow:var(--shadow);
  aspect-ratio:4/5;
  display:grid; place-items:center; text-align:center; color:rgba(255,255,255,.9);
}
.photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.photo__hint{
  font-family:var(--font-body); font-weight:700; font-size:.8rem; letter-spacing:.04em;
  padding:1rem; max-width:24ch; opacity:.85;
}
.photo__hint svg{ width:34px; height:34px; margin:0 auto .6rem; display:block; opacity:.8; }
.badge-float{
  position:absolute; left:-14px; bottom:24px;
  background:var(--cream); color:var(--ink);
  border-radius:16px; padding:.85rem 1.05rem; box-shadow:var(--shadow);
  display:flex; align-items:center; gap:.7rem; max-width:240px;
  border:1px solid var(--sage-deep);
}
.badge-float strong{ font-family:var(--font-display); color:var(--green-dark); font-size:1.15rem; display:block; }
.badge-float small{ color:var(--ink-soft); font-weight:700; }
.badge-float .dot{ width:38px; height:38px; border-radius:50%; background:var(--sage); display:grid; place-items:center; flex:0 0 auto; }
.badge-float .dot svg{ width:20px; height:20px; color:var(--green); }

@media (max-width:820px){
  .hero__grid{ grid-template-columns:1fr; }
  .hero__art{ order:-1; max-width:420px; }
  .badge-float{ left:auto; right:-6px; }
}

/* ---------- Trust strip ---------- */
.trust{ background:var(--green-deep); color:rgba(255,255,255,.86); }
.trust__row{
  display:flex; flex-wrap:wrap; gap:1.2rem 2.4rem; align-items:center; justify-content:center;
  padding-block:1.1rem; font-weight:700; font-size:.92rem; text-align:center;
}
.trust__row span{ display:inline-flex; align-items:center; gap:.5rem; }
.trust__row svg{ width:18px; height:18px; color:var(--ochre); }

/* ---------- Journey (signature element) ---------- */
.journey{ position:relative; }
.journey__track{ position:relative; margin-top:clamp(2rem,1rem+3vw,3.4rem); }
.journey__line{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:0; }
.journey__line path{ stroke:var(--ochre); stroke-width:3; stroke-dasharray:2 12; stroke-linecap:round; fill:none; opacity:.9; }
.stops{
  display:grid; grid-template-columns:repeat(5,1fr); gap:1rem;
  position:relative; z-index:1; list-style:none;
}
.stop{ text-align:center; }
.stop__pin{
  width:74px; height:74px; margin:0 auto .8rem; border-radius:50%;
  background:var(--cream); border:3px solid var(--green);
  display:grid; place-items:center; box-shadow:var(--shadow-soft);
  transition:transform .3s var(--ease), background .3s, border-color .3s;
}
.stop__pin svg{ width:32px; height:32px; color:var(--green); transition:color .3s; }
.stop:hover .stop__pin{ background:var(--green); border-color:var(--green-dark); transform:translateY(-4px); }
.stop:hover .stop__pin svg{ color:#fff; }
.stop h3{ font-size:1.05rem; color:var(--green-dark); }
.stop p{ font-size:.86rem; color:var(--ink-soft); margin-top:.2rem; }

@media (max-width:760px){
  .journey__line{ display:none; }
  .stops{ grid-template-columns:1fr 1fr; gap:1.6rem 1rem; }
}
@media (max-width:420px){ .stops{ grid-template-columns:1fr; text-align:left; }
  .stop{ display:flex; gap:1rem; align-items:center; text-align:left; }
  .stop__pin{ margin:0; width:62px; height:62px; flex:0 0 auto; }
  .stop p{ max-width:none; }
}

/* ---------- Card grids ---------- */
.grid{ display:grid; gap:var(--gap); }
.grid--2{ grid-template-columns:repeat(2,1fr); }
.grid--3{ grid-template-columns:repeat(3,1fr); }
.grid--4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .grid--4{ grid-template-columns:repeat(2,1fr); } .grid--3{ grid-template-columns:repeat(2,1fr);} }
@media (max-width:640px){ .grid--2,.grid--3,.grid--4{ grid-template-columns:1fr; } }

.card{
  background:var(--cream); border:1px solid var(--sage-deep);
  border-radius:var(--radius); padding:1.6rem;
  box-shadow:var(--shadow-soft); position:relative;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
.section--sage .card{ background:#fff; }
.card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--green); }
.card__icon{
  width:54px; height:54px; border-radius:14px; background:var(--sage);
  display:grid; place-items:center; margin-bottom:1.1rem;
}
.card__icon svg{ width:26px; height:26px; color:var(--green); }
.card h3{ color:var(--green-dark); margin-bottom:.5rem; }
.card p{ color:var(--ink-soft); font-size:.96rem; }
.card__link{ display:inline-flex; align-items:center; gap:.4rem; margin-top:1rem; font-weight:800; color:var(--green); text-decoration:none; font-size:.92rem; }
.card__link svg{ width:16px; height:16px; transition:transform .25s var(--ease); }
.card:hover .card__link svg{ transform:translateX(4px); }

/* numbered service blocks (services page) */
.svc{ display:grid; grid-template-columns:auto 1fr; gap:1.4rem 1.6rem; align-items:start;
  padding:clamp(1.4rem,1rem+2vw,2.4rem); border-radius:var(--radius);
  background:#fff; border:1px solid var(--sage-deep); box-shadow:var(--shadow-soft); }
.svc + .svc{ margin-top:1.2rem; }
.svc__num{ font-family:var(--font-display); font-size:1.6rem; color:var(--ochre-dark); font-weight:600;
  width:54px; height:54px; border-radius:50%; background:var(--sage); display:grid; place-items:center; }
.svc h3{ color:var(--green-dark); margin-bottom:.5rem; }
.svc ul{ margin:.8rem 0 0; padding-left:1.1rem; color:var(--ink-soft); }
.svc li{ margin-bottom:.35rem; }
@media (max-width:560px){ .svc{ grid-template-columns:1fr; } .svc__num{ width:48px; height:48px; } }

/* ---------- About split ---------- */
.split{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(1.5rem,4vw,3.5rem); align-items:center; }
.split--rev .split__media{ order:2; }
@media (max-width:820px){ .split{ grid-template-columns:1fr; } .split--rev .split__media{ order:-1; } }
.stat-row{ display:flex; flex-wrap:wrap; gap:1.6rem 2.4rem; margin-top:1.6rem; }
.stat strong{ font-family:var(--font-display); font-size:2rem; color:var(--green); display:block; line-height:1; }
.stat small{ color:var(--ink-soft); font-weight:700; font-size:.84rem; }

/* credential pills */
.pills{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.4rem; list-style:none; }
.pills li{ background:var(--sage); color:var(--green-dark); font-weight:700; font-size:.85rem;
  padding:.45rem .9rem; border-radius:999px; border:1px solid var(--sage-deep); }
.section--green .pills li{ background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.25); }

/* ---------- Shop ---------- */
.product{ background:#fff; border:1px solid var(--sage-deep); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column; box-shadow:var(--shadow-soft);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.product:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
.product__media{ aspect-ratio:1/1; background:var(--sage); display:grid; place-items:center; position:relative; }
.product__media svg{ width:46%; height:46%; color:var(--green); opacity:.8; }
.product__media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.product__tag{ position:absolute; top:12px; left:12px; background:var(--ochre); color:var(--green-deep);
  font-weight:800; font-size:.72rem; padding:.3rem .7rem; border-radius:999px; letter-spacing:.03em; }
.product__body{ padding:1.3rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.product__body h3{ font-size:1.15rem; color:var(--green-dark); }
.product__body p{ color:var(--ink-soft); font-size:.9rem; flex:1; }
.product__foot{ display:flex; align-items:center; justify-content:space-between; gap:.8rem; margin-top:.6rem; }
.price{ font-family:var(--font-display); font-size:1.35rem; color:var(--green-dark); font-weight:600; }
.price small{ font-family:var(--font-body); font-weight:700; color:var(--ink-soft); font-size:.8rem; }

/* ---------- Gallery ---------- */
.gallery{ columns:3 240px; column-gap:1rem; }
.gallery figure{ break-inside:avoid; margin:0 0 1rem; border-radius:var(--radius-sm); overflow:hidden;
  background:var(--green-dark); position:relative; box-shadow:var(--shadow-soft); }
.gallery .ph{ display:grid; place-items:center; color:rgba(255,255,255,.8); text-align:center;
  padding:2.4rem 1rem; min-height:160px; }
.gallery .ph svg{ width:32px; height:32px; margin-bottom:.5rem; opacity:.8; }
.gallery .ph small{ font-weight:700; font-size:.78rem; }
.gallery figure:nth-child(3n) .ph{ min-height:220px; }
.gallery figure:nth-child(4n) .ph{ min-height:130px; background:var(--green); }
.gallery img{ width:100%; }

.videos{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); }
@media (max-width:760px){ .videos{ grid-template-columns:1fr; } }
.video{ position:relative; aspect-ratio:16/9; border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow); background:var(--green-deep); }
.video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* ---------- Forms ---------- */
.form-card{ background:#fff; border:1px solid var(--sage-deep); border-radius:var(--radius);
  padding:clamp(1.4rem,1rem+2vw,2.4rem); box-shadow:var(--shadow); }
.field{ margin-bottom:1.05rem; }
.field label{ display:block; font-weight:800; font-size:.85rem; color:var(--green-dark);
  margin-bottom:.4rem; letter-spacing:.01em; }
.field .req{ color:var(--ochre-dark); }
.field input, .field select, .field textarea{
  width:100%; padding:.85rem 1rem; border:1.6px solid var(--sage-deep); border-radius:12px;
  background:var(--cream); font:inherit; color:var(--ink); transition:border-color .2s, box-shadow .2s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(59,109,17,.15); }
.field textarea{ resize:vertical; min-height:130px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.05rem; }
@media (max-width:560px){ .field-row{ grid-template-columns:1fr; gap:0; } }
.form-note{ font-size:.85rem; color:var(--ink-soft); margin-top:.4rem; }
.form-actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin-top:.4rem; }

/* contact aside */
.contact-grid{ display:grid; grid-template-columns:1.2fr .8fr; gap:clamp(1.5rem,4vw,3rem); align-items:start; }
@media (max-width:880px){ .contact-grid{ grid-template-columns:1fr; } }
.info-list{ list-style:none; display:grid; gap:1rem; }
.info-list li{ display:flex; gap:.9rem; align-items:flex-start; }
.info-list .ic{ width:42px; height:42px; border-radius:12px; background:var(--sage); display:grid; place-items:center; flex:0 0 auto; }
.info-list .ic svg{ width:20px; height:20px; color:var(--green); }
.info-list a{ color:var(--green-dark); font-weight:700; text-decoration:none; }
.info-list a:hover{ text-decoration:underline; }
.info-list small{ color:var(--ink-soft); display:block; font-weight:700; text-transform:uppercase; letter-spacing:.08em; font-size:.7rem; }

.socials{ display:flex; gap:.7rem; margin-top:1.2rem; }
.socials a{ width:46px; height:46px; border-radius:12px; display:grid; place-items:center;
  background:var(--green); color:#fff; transition:transform .25s var(--ease), background .2s; }
.socials a:hover{ transform:translateY(-3px); background:var(--green-dark); }
.socials svg{ width:22px; height:22px; }

/* sponsor band */
.sponsor{ background:var(--green-deep); color:#fff; border-radius:var(--radius);
  padding:clamp(1.6rem,1.2rem+2vw,2.6rem); box-shadow:var(--shadow);
  display:grid; grid-template-columns:1fr auto; gap:1.4rem; align-items:center; }
.sponsor h3{ color:#fff; }
.sponsor p{ color:rgba(255,255,255,.82); }
@media (max-width:720px){ .sponsor{ grid-template-columns:1fr; } }

/* ---------- CTA band ---------- */
.cta-band{ background:
    radial-gradient(circle at 12% 20%, rgba(221,155,45,.18), transparent 40%),
    var(--green-dark);
  color:#fff; text-align:center; }
.cta-band h2{ color:#fff; }
.cta-band p{ color:rgba(255,255,255,.85); margin-inline:auto; }
.cta-band .hero__cta{ justify-content:center; margin-top:1.6rem; }
.cta-band .sig{ font-family:var(--font-display); font-style:italic; color:var(--ochre); margin-top:1.4rem; font-size:1.1rem; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--green-deep); color:rgba(255,255,255,.78); padding-block:clamp(2.4rem,2rem+3vw,3.6rem) 1.5rem; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.3fr; gap:2rem; }
@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h4{ color:#fff; font-family:var(--font-body); font-weight:800; text-transform:uppercase;
  letter-spacing:.12em; font-size:.78rem; margin-bottom:1rem; }
.footer-grid ul{ list-style:none; display:grid; gap:.55rem; }
.footer-grid a{ color:rgba(255,255,255,.78); text-decoration:none; font-weight:600; }
.footer-grid a:hover{ color:var(--ochre); }
.footer-brand p{ margin:.8rem 0; font-size:.92rem; }
.footer-sig{ font-family:var(--font-display); font-style:italic; color:var(--ochre); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.14); margin-top:2.2rem; padding-top:1.3rem;
  display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; justify-content:space-between; font-size:.82rem; }

/* ---------- Floating WhatsApp ---------- */
.wa-float{ position:fixed; right:18px; bottom:18px; z-index:60;
  display:inline-flex; align-items:center; gap:.6rem;
  background:#25D366; color:#063d1f; font-weight:800; text-decoration:none;
  padding:.8rem 1.1rem; border-radius:999px; box-shadow:0 12px 30px -10px rgba(0,0,0,.45);
  transition:transform .25s var(--ease); }
.wa-float:hover{ transform:translateY(-3px); }
.wa-float svg{ width:24px; height:24px; }
.wa-float .lbl{ font-size:.92rem; }
@media (max-width:520px){ .wa-float .lbl{ display:none; } .wa-float{ padding:.85rem; } }

/* ---------- Page hero (interior pages) ---------- */
.page-hero{ background:var(--green-dark); color:#fff; padding-block:clamp(2.8rem,2rem+4vw,4.5rem); position:relative; overflow:hidden; }
.page-hero::after{ content:""; position:absolute; right:-8%; bottom:-40%; width:40vw; height:40vw; max-width:480px; max-height:480px;
  background:radial-gradient(circle, rgba(221,155,45,.18), transparent 65%); }
.page-hero h1{ color:#fff; margin:.7rem 0 .8rem; }
.page-hero .eyebrow{ color:var(--ochre); }
.page-hero .eyebrow::before{ background:var(--ochre); }
.page-hero p{ color:rgba(255,255,255,.85); max-width:62ch; }
.crumbs{ font-size:.82rem; color:rgba(255,255,255,.6); margin-top:1.2rem; }
.crumbs a{ color:rgba(255,255,255,.8); text-decoration:none; }
.crumbs a:hover{ color:#fff; }

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}
