/* ═══════════════════════════════════════════
     DESIGN TOKENS  — sampled directly from the logo
     Green "aram" → #006B00 (exact)
     Maroon "Yoga" → #601408 (exact)
     Light-first palette: cream dominant, green/maroon as accents.
     "Seen, guided, supported" — warm, held, welcoming.
  ═══════════════════════════════════════════ */
  :root {
    --gd:  #0F2E0F;   /* green-deep  — typography only now         */
    --gm:  #006B00;   /* green-mid   — LOGO GREEN (exact)          */
    --mr:  #601408;   /* maroon      — LOGO MAROON (exact)         */
    --mh:  #4A0F05;   /* maroon-hover                              */
    --ex:  #2B1A12;   /* espresso    — warm dark footer only       */
    --au:  #B8946A;   /* sandalwood/ochre — dividers/accents       */
    --as:  #6E5630;   /* ochre-deep  — eyebrow labels on cream (AA 6:1) */
    --cr:  #F5EFE2;   /* cream       — PRIMARY BG                  */
    --cd:  #EBE2CD;   /* cream-dark  — alt section bg              */
    --cm:  #DFD2B5;   /* cream-mid   — soft hairline (decorative)  */
    --di:  #8C7338;   /* divider-strong — perceivable boundary (3:1) */
    --wh:  #FFFFFF;
    --tx:  #1A1A1A;
    --mt:  #5A4E3F;   /* warm taupe  — secondary text (AA 7:1)     */
    --fd:  'Cormorant Garamond', Georgia, serif;
    --fb:  'DM Sans', system-ui, sans-serif;
    --mw:  1200px;
  }

  /* ── RESET ── */
  *, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
  html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }
  body { font-family:var(--fb); background:var(--cr); color:var(--tx); overflow-x:hidden; }
  a { text-decoration:none; color:inherit; }
  ul { list-style:none; }
  button { font-family:inherit; cursor:pointer; }
  img { display:block; max-width:100%; }

  /* ── LANG FONTS ── */

  /* ── LAYOUT ── */
  .w { max-width:var(--mw); margin:0 auto; padding:0 2rem; }

  /* ── TYPOGRAPHY ── */
  .lbl {
    font-size:.75rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
    color:var(--as); display:block; margin-bottom:.9rem;
  }
  .lbl-au { color:var(--au); }
  h2.sh {
    font-family:var(--fd); font-size:clamp(1.9rem,3.2vw,2.9rem);
    font-weight:400; line-height:1.15; color:var(--gd);
  }

  /* ── RULE ── */
  .rule { width:42px; height:1.5px; background:var(--au); margin:1.1rem 0; }
  .rule-c { margin:1.1rem auto; }

  /* ── BUTTONS ── */
  .btn {
    display:inline-flex; align-items:center; gap:.42rem;
    padding:.88rem 1.9rem; border-radius:100px; border:none;
    font-size:.87rem; font-weight:500; letter-spacing:.04em;
    transition:all .24s ease; line-height:1; white-space:nowrap;
  }
  .btn-mr { background:var(--mr); color:#fff; }
  .btn-mr:hover { background:var(--mh); transform:translateY(-2px); box-shadow:0 8px 22px rgba(96,20,8,.34); }
  .btn-ghost { background:transparent; color:var(--gd); border:1.5px solid rgba(15,46,15,.28); }
  .btn-ghost:hover { border-color:var(--gd); background:rgba(15,46,15,.04); }
  .btn-ghost-lt { background:transparent; color:var(--cr); border:1.5px solid rgba(247,242,234,.38); }
  .btn-ghost-lt:hover { border-color:var(--cr); background:rgba(247,242,234,.07); }
  .btn-outline { background:transparent; color:var(--mr); border:1.5px solid var(--mr); }
  .btn-outline:hover { background:var(--mr); color:#fff; }
  .btn-gm { background:var(--gm); color:#fff; }
  .btn-gm:hover { background:#185018; transform:translateY(-2px); }
  .btn-lg { padding:1rem 2.4rem; font-size:.95rem; }

  /* ── INPUT / FORM ── */
  .fg { display:flex; flex-direction:column; gap:.3rem; }
  .fg label { font-size:.76rem; font-weight:500; color:var(--gd); letter-spacing:.04em; }
  input[type=text],input[type=email] {
    width:100%; padding:.82rem 1rem; border:1.5px solid rgba(44,62,45,.18);
    border-radius:3px; font-family:var(--fb); font-size:.93rem;
    color:var(--tx); background:var(--wh); outline:none; transition:border .2s;
  }
  input[type=text]:focus,input[type=email]:focus { border-color:var(--gm); }

  /* ── GRAIN OVERLAY ── */
  .grain { overflow:hidden; }
  .grain::after {
    content:''; position:absolute; inset:0; pointer-events:none; z-index:1;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
    opacity:.042;
  }

  /* ── REVEAL (lightweight — no stagger) ── */
  .rv { opacity:1; transform:none; transition:opacity .55s ease, transform .55s ease; }
  .rv.animate { opacity:0; transform:translateY(18px); }
  .rv.animate.in { opacity:1; transform:none; }

  /* ── IMAGE SHAPES ── */
  /* All photo <img> tags use class="si" + an inline border-radius.
     object-fit:cover fills the organic frame regardless of source dimensions. */
  .si {
    display:block; width:100%; object-fit:cover; object-position:center top;
    /* border-radius set inline per instance for per-photo organic variation */
  }
  /* Abstract gradient placeholders (no human figures).
     Replace .ph-wrap contents with an img tag using the .si class. */
  .ph-wrap { width:100%; position:relative; }
  .ph {
    width:100%; position:relative; overflow:hidden;
    /* border-radius set inline per instance */
  }
  /* Soft light bloom inside placeholder */
  .ph::before {
    content:''; position:absolute; top:18%; left:22%; width:58%; height:60%;
    background:radial-gradient(ellipse,rgba(255,255,255,.08) 0%,transparent 70%);
  }
  .nav-row { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; }
  /* Logo — real two-color PNG. On cream nav, no pad/backdrop needed. */
  .nav-logo-img {
    height: 60px;
    width: auto;
    display: block;
    object-fit: contain;
  }
  #topnav.solid .nav-logo-img {
    height: 52px;
  }
  @media(max-width:768px) {
    #topnav.solid .nav-logo-img { height: 44px; }
  }
  .nav-logo:hover .nav-logo-img { opacity:.82; }

/* Sub-page nav — fixed, translucent dark backdrop */
#topnav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(247, 242, 234, 0.65);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 1.25rem 0 2rem;
  transition: background .32s, padding .32s;
  border-bottom: none;
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 70%, transparent 100%);
          mask-image: linear-gradient(to bottom, black 0%, black 70%, transparent 100%);
}
#topnav.solid {
  background: rgba(247, 242, 234, 0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: .8rem 0 1.5rem;
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 70%, transparent 100%);
          mask-image: linear-gradient(to bottom, black 0%, black 70%, transparent 100%);
}

#topnav .nav-links a { color: rgba(27, 59, 27, .72); }
#topnav .nav-links a:hover { color: var(--gd); }

  .nav-links { display:flex; align-items:center; gap:1.7rem; }
  .nav-links a { font-size:.76rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:rgba(15,46,15,.68); transition:color .2s; }
  .nav-links a:hover { color:var(--mr); }
  .nav-r { display:flex; align-items:center; gap:1rem; }

  /* Hamburger */
  .hbg { display:none; flex-direction:column; gap:5px; background:none; border:none; padding:.3rem; }
  .hbg span { display:block; width:21px; height:1.5px; background:var(--gd); }
  /* Mobile menu */
  .mm { display:none; position:fixed; inset:0; background:var(--cr); z-index:1100; flex-direction:column; align-items:center; justify-content:center; gap:2rem; }
  .mm.open { display:flex; }
  .mm a { font-family:var(--fd); font-size:2rem; font-weight:400; color:var(--gd); transition:color .2s; }
  .mm a:hover { color:var(--mr); }
  .mm-x { position:absolute; top:1.4rem; right:1.8rem; background:none; border:none; color:var(--gd); font-size:2rem; line-height:1; }
  /* Skip-to-content link — visible only on keyboard focus */
  .skip-link { position:absolute; left:-9999px; top:0; z-index:2000; background:var(--mr); color:#fff; padding:.7rem 1.1rem; border-bottom-right-radius:6px; font-family:var(--fb); font-size:.9rem; font-weight:500; }
  .skip-link:focus { left:0; }

  #hero {
    min-height:100vh; background:var(--cr); display:flex; align-items:center;
    padding:6.5rem 0 4rem; position:relative;
  }

  /* LEFT */

  /* RIGHT */

  /* Real studio photo — Warrior II line-up, shot in Aravindh's studio.
     Uses semantic <img> for SEO + a11y; tint layers live as pseudo-elements. */

  
  /* Floating trust badge */

  .hf-rating { font-family:var(--fd); font-size:1.4rem; color:var(--mr); font-weight:500; line-height:1; }
  .hf-text { font-size:.76rem; line-height:1.45; color:var(--tx); }
  .hf-text strong { font-weight:600; display:block; color:var(--gd); font-size:.8rem; }
  /* Ministry badge */

  /* ═══════════════════════════════════════════
     PROBLEM
  ═══════════════════════════════════════════ */
  #problem { background:var(--cr); padding:5.5rem 0; }
  .prob-head { text-align:center; max-width:620px; margin:0 auto 3.5rem; }
  .prob-sub { font-size:1.02rem; line-height:1.78; color:var(--mt); margin-top:.85rem; }
  .pain-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-bottom:2.8rem; }
  .pain-card { background:var(--cd); border-radius:6px; padding:2rem 1.8rem; border-top:3px solid var(--mr); }
  .pain-ico { color:var(--mr); margin-bottom:1rem; display:block; }
  .pain-ico svg { width:30px; height:30px; }
  .pain-card h3 { font-family:var(--fd); font-size:1.18rem; font-weight:500; color:var(--gd); margin-bottom:.5rem; }
  .pain-card p { font-size:.89rem; line-height:1.72; color:var(--mt); }
  .prob-bridge { text-align:center; max-width:680px; margin:0 auto; font-size:.96rem; line-height:1.82; color:var(--mt); }
  .prob-bridge strong { color:var(--gd); font-weight:500; }

  /* ═══════════════════════════════════════════
     AUTHORITY & PROOF — cream-forward
  ═══════════════════════════════════════════ */
  #authority { background:var(--cd); padding:6rem 0; position:relative; }
  /* Stats row */
  .auth-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; margin-bottom:4rem; }
  .auth-stat {
    text-align:center; padding:1.5rem 1rem;
    background:var(--cr); border-radius:6px; border:1px solid rgba(184,148,106,.22);
  }
  .auth-num { font-family:var(--fd); font-size:clamp(1.9rem,3.2vw,2.9rem); font-weight:500; color:var(--gd); line-height:1; margin-bottom:.32rem; }
  .auth-lbl { font-size:.75rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--as); line-height:1.4; }
  /* Body */
  .auth-body { display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:start; position:relative; z-index:2; }
  .auth-text .lbl { color:var(--as); }
  .auth-text h2 { font-family:var(--fd); font-size:clamp(1.7rem,2.8vw,2.5rem); font-weight:400; color:var(--gd); line-height:1.22; margin-bottom:1rem; }
  .auth-text p { font-size:.93rem; line-height:1.87; color:var(--mt); }
  .auth-creds { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.5rem; }
  .auth-cred { font-size:.75rem; font-weight:500; color:var(--mr); background:rgba(255,255,255,.5); border:1px solid rgba(184,148,106,.4); padding:.32rem .85rem; border-radius:100px; letter-spacing:.04em; }
  /* Cert badges */
  .cert-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
  .cert-badge {
    background:var(--cr); border:1px solid rgba(184,148,106,.28); border-radius:8px;
    padding:1.4rem 1rem; text-align:center;
    display:flex; flex-direction:column; align-items:center; gap:.5rem;
    transition:border-color .2s, transform .2s, box-shadow .2s;
  }
  .cert-badge:hover { border-color:rgba(184,148,106,.6); transform:translateY(-2px); box-shadow:0 8px 22px rgba(15,46,15,.06); }
  .cert-ico { color:var(--as); display:block; margin-bottom:.5rem; }
  .cert-ico svg { width:26px; height:26px; }
  .cert-name { font-size:.75rem; font-weight:600; color:var(--gd); letter-spacing:.05em; line-height:1.38; }
  .cert-body { font-size:.75rem; color:var(--mt); letter-spacing:.04em; }
  .cert-note { font-size:.75rem; color:var(--mt); margin-top:1.2rem; font-style:italic; text-align:center; grid-column:1/-1; opacity:.6; }

  /* ═══════════════════════════════════════════
     FOUNDER NOTE — first-person, from Aravindh
  ═══════════════════════════════════════════ */
  #founder { background:var(--cr); padding:5.5rem 0; position:relative; overflow:hidden; }
  #founder::before {
    content:''; position:absolute; inset:0;
    background:radial-gradient(50% 40% at 85% 30%, rgba(184,148,106,.12) 0%, transparent 70%);
    pointer-events:none;
  }
  .founder-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:4rem; align-items:center; position:relative; z-index:2; max-width:980px; margin:0 auto; }
  .founder-ph {
    width:100%; aspect-ratio:4/5;
    border-radius:58% 42% 55% 45% / 52% 48% 52% 48%;
    overflow:hidden; position:relative;
    box-shadow:0 16px 44px rgba(96,20,8,.16), 0 2px 10px rgba(15,46,15,.08);
    background:var(--cd);
  }
  .founder-ph img {
    display:block; width:100%; height:100%; object-fit:cover; object-position:70% 40%;
  }
  .founder-ph::before {
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(150deg,rgba(184,148,106,.14) 0%,rgba(96,20,8,.08) 100%);
    pointer-events:none;
  }
  .founder-text .lbl { color:var(--mr); }
  .founder-text h2 {
    font-family:var(--fd); font-size:clamp(1.55rem,2.5vw,2.1rem); font-weight:400;
    color:var(--gd); line-height:1.28; margin-bottom:1.3rem;
  }
  .founder-text h2 em { font-style:italic; color:var(--mr); }
  /* Founder note: roman serif (not italic) for readability. */
  .founder-note { font-family:var(--fd); font-style:normal; font-size:1.05rem; line-height:1.82; color:var(--tx); }
  .founder-note p { margin-bottom:.95rem; }
  .founder-note p:last-child { margin-bottom:0; }
  .founder-sig {
    margin-top:1.5rem; padding-top:1.1rem;
    border-top:1px solid rgba(184,148,106,.35);
    font-family:var(--fb); font-style:normal;
    font-size:.8rem; font-weight:500; letter-spacing:.08em;
    color:var(--as); text-transform:uppercase;
  }
  .founder-sig strong { color:var(--mr); font-weight:600; letter-spacing:.06em; text-transform:none; font-size:.92rem; }
  @media (max-width:760px) {
    .founder-grid { grid-template-columns:1fr; gap:2.4rem; }
    .founder-ph { max-width:300px; margin:0 auto; }
  }

  /* ═══════════════════════════════════════════
     PROGRAMS — 3 PILLARS
  ═══════════════════════════════════════════ */
  #programs { background:var(--cd); padding:6rem 0; }
  .prog-head { text-align:center; margin-bottom:3.5rem; }
  .prog-head p { font-size:1rem; color:var(--mt); margin-top:.75rem; max-width:520px; margin-left:auto; margin-right:auto; }
  .prog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
  .prog-card { background:var(--wh); border-radius:10px; overflow:hidden; transition:transform .24s,box-shadow .24s; display:flex; flex-direction:column; }
  .prog-card:hover { transform:translateY(-6px); box-shadow:0 20px 48px rgba(15,46,15,.12); }
  /* Flat cream header bar (no photo, no gradient). The old card tops used
     green/maroon scrim gradients: green outside the Reiki zone, a mauve
     spa-palette tell, and card-gradients we flattened elsewhere. */
  .prog-top { padding:.8rem 1.1rem; background:var(--cd); display:flex; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--cm); }
  .prog-top img { display:none; }
  .prog-top::before, .prog-top.bg-3::before { content:none; }
  .prog-tag {
    font-size:.75rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
    color:var(--as); white-space:nowrap;
  }
  .prog-time {
    font-size:.75rem; font-weight:500; color:var(--mt); letter-spacing:.02em;
  }
  .prog-body { padding:1.7rem; display:flex; flex-direction:column; flex:1; }
  .prog-body h3 { font-family:var(--fd); font-size:1.32rem; font-weight:500; color:var(--gd); margin-bottom:.4rem; }
  .prog-lede { font-size:.88rem; line-height:1.7; color:var(--mt); margin-bottom:1.1rem; }
  .prog-meta { list-style:none; margin:0 0 1.3rem 0; padding:0; display:flex; flex-direction:column; gap:.55rem; }
  .prog-meta li { font-size:.83rem; line-height:1.55; color:var(--tx); display:grid; grid-template-columns:88px 1fr; gap:.7rem; align-items:baseline; }
  .prog-meta li span { font-size:.75rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--as); }
  .prog-invest { font-size:.75rem; color:var(--mt); font-style:italic; padding-top:.9rem; margin-top:auto; border-top:1px solid rgba(184,148,106,.25); margin-bottom:1rem; }
  .prog-link { font-size:.76rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; color:var(--mr); display:inline-flex; align-items:center; gap:.3rem; transition:gap .2s; }
  .prog-card:hover .prog-link { gap:.55rem; }

  /* ═══════════════════════════════════════════
     REIKI — the signature practice, USP section
  ═══════════════════════════════════════════ */
  #reiki { background:var(--cr); padding:6.5rem 0; position:relative; overflow:hidden; }
  #reiki::before {
    content:''; position:absolute; inset:0;
    background:radial-gradient(60% 50% at 15% 25%, rgba(184,148,106,.16) 0%, transparent 65%),
               radial-gradient(55% 45% at 85% 80%, rgba(96,20,8,.07) 0%, transparent 70%);
    pointer-events:none;
  }

  /* ═══════════════════════════════════════════
     INNER WORK BAND — second-audience doorway
  ═══════════════════════════════════════════ */
  #innerwork {
    position:relative; overflow:hidden;
    background:linear-gradient(180deg,var(--cr) 0%,var(--cd) 100%);
    padding:5rem 0;
    border-top:1px solid rgba(184,148,106,.22);
    border-bottom:1px solid rgba(184,148,106,.22);
  }
  #innerwork::before {
    content:''; position:absolute; inset:0;
    background:
      radial-gradient(40% 60% at 18% 50%, rgba(96,20,8,.06) 0%, transparent 70%),
      radial-gradient(35% 55% at 82% 50%, rgba(15,46,15,.06) 0%, transparent 70%);
    pointer-events:none;
  }
  .iw-grid { max-width:860px; margin:0 auto; text-align:center; position:relative; z-index:2; }
  .iw-label { font-size:.75rem; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:var(--as); margin-bottom:1.4rem; display:block; }
  .iw-head { font-family:var(--fd); font-weight:400; font-size:clamp(1.55rem,2.6vw,2.2rem); line-height:1.32; color:var(--gd); margin-bottom:1.8rem; font-style:italic; }
  .iw-head em { font-style:normal; color:var(--mr); }
  .iw-lines {
    display:grid; grid-template-columns:repeat(3,1fr); gap:2rem;
    margin:2.5rem 0 1.6rem; text-align:left;
  }
  .iw-line {
    border-left:1px solid rgba(184,148,106,.45);
    padding:.2rem 0 .2rem 1.1rem;
  }
  .iw-line-lede { font-family:var(--fd); font-size:1.05rem; font-weight:500; color:var(--gd); line-height:1.42; margin-bottom:.45rem; }
  .iw-line-body { font-size:.86rem; line-height:1.7; color:var(--mt); }
  .iw-foot { font-size:.86rem; color:var(--mt); line-height:1.7; max-width:560px; margin:1.4rem auto 0; font-style:italic; }
  .iw-foot a { color:var(--mr); text-decoration:underline; text-underline-offset:3px; }
  @media (max-width:760px) {
    .iw-lines { grid-template-columns:1fr; gap:1.2rem; }
    .iw-line { padding-left:.9rem; }
  }

  /* ═══════════════════════════════════════════
     HOW IT WORKS
  ═══════════════════════════════════════════ */
  #how { background:var(--cr); padding:6rem 0; }
  .how-head { text-align:center; margin-bottom:4rem; }
  .steps { display:grid; grid-template-columns:repeat(3,1fr); gap:2.5rem; position:relative; }
  /* Dashed connector — desktop only */
  .steps::before {
    content:''; position:absolute; top:2.1rem; left:calc(16.6% + 1rem); right:calc(16.6% + 1rem);
    height:1px;
    background-image:repeating-linear-gradient(to right,var(--au) 0,var(--au) 7px,transparent 7px,transparent 16px);
    z-index:0;
  }
  .step { text-align:center; }
  .step-n {
    width:4.2rem; height:4.2rem; border-radius:50%;
    background:var(--cd); border:2px solid var(--au);
    font-family:var(--fd); font-size:1.7rem; font-weight:500; color:var(--gd);
    display:flex; align-items:center; justify-content:center;
    margin:0 auto 1.4rem; position:relative; z-index:1;
  }
  .step h3 { font-family:var(--fd); font-size:1.22rem; font-weight:500; color:var(--gd); margin-bottom:.55rem; }
  .step p { font-size:.9rem; line-height:1.72; color:var(--mt); max-width:210px; margin:0 auto; }
  .how-cta { text-align:center; margin-top:3rem; }

  /* ═══════════════════════════════════════════
     TESTIMONIALS — sage green background, fixed-height carousel
  ═══════════════════════════════════════════ */
  #testimonials {
    /* Cream, not sage: green is zoned to the Reiki section only. Maroon CTAs
       over a green block read festive and break the colour-blind-safe plan. */
    background:var(--cd);
    padding:3.75rem 0 4rem;
  }
  .test-head { text-align:center; margin-bottom:2.25rem; }
  .test-head .lbl { color:rgba(32,62,32,.55); }
  .test-head .sh  { color:var(--gd); }
  .c-wrap { max-width:760px; margin:0 auto; }

  /* ── Fixed-height track ──
     Slides are position:absolute so the track holds a stable height
     regardless of which slide is active. JS measures every slide on
     load and locks the track to the tallest — content below the
     section never shifts when the carousel rotates.                */
  .c-track {
    position:relative;
    /* min-height acts as a floor before JS measurement kicks in  */
    min-height:200px;
  }
  /* Display-based slides: natural per-slide height (no lock-to-tallest box with
     long verbatim reviews). */
  .t-slide {
    display:none; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; padding:.5rem .5rem 0;
  }
  .t-slide.on { display:flex; animation:tFade .4s ease; }
  @keyframes tFade { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }
  @media (prefers-reduced-motion: reduce) { .t-slide.on { animation:none; } }
  /* Visible focus rings for the carousel + FAQ controls. */
  .c-arr:focus-visible, .c-dot:focus-visible, .c-wrap:focus-visible,
  .faq-q:focus-visible { outline:2px solid var(--mr); outline-offset:3px; border-radius:6px; }

  .stars { display:flex; justify-content:center; gap:.28rem; margin-bottom:1.1rem; }
  .stars svg { width:16px; height:16px; fill:var(--mr); }
  .t-q {
    font-family:var(--fd); font-style:italic;
    font-size:clamp(1.08rem,1.75vw,1.42rem); font-weight:300;
    line-height:1.55; color:var(--gd); margin-bottom:1.1rem;
  }
  .t-attr {
    font-size:.75rem; font-weight:500; letter-spacing:.1em;
    text-transform:uppercase; color:rgba(32,62,32,.55);
  }

  /* Nav controls */
  .c-nav { display:flex; align-items:center; justify-content:center; gap:1.4rem; margin-top:1.5rem; }
  .c-arr {
    background:rgba(255,255,255,.6); border:1.5px solid rgba(32,62,32,.2);
    width:40px; height:40px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    transition:all .22s; color:var(--gd);
  }
  .c-arr:hover { background:var(--mr); border-color:var(--mr); color:#fff; }
  .c-dots { display:flex; gap:.45rem; }
  .c-dot {
    width:7px; height:7px; border-radius:50%;
    background:rgba(32,62,32,.28); border:none;
    transition:all .3s ease; opacity:1; cursor:pointer;
  }
  .c-dot.on {
    background:var(--mr); transform:scale(1.38);
  }

  /* ═══════════════════════════════════════════
     CORPORATE WELLNESS — cream-forward
  ═══════════════════════════════════════════ */
  #corporate { background:var(--cr); padding:6rem 0; position:relative; border-top:1px solid rgba(184,148,106,.18); border-bottom:1px solid rgba(184,148,106,.18); }
  .corp-grid { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; position:relative; z-index:2; }
  .corp-text .lbl { color:var(--as); }
  .corp-text h2 { font-family:var(--fd); font-size:clamp(1.8rem,2.9vw,2.7rem); font-weight:400; color:var(--gd); line-height:1.2; margin-bottom:1rem; }
  .corp-text > p { font-size:.93rem; line-height:1.82; color:var(--mt); margin-bottom:1.5rem; }
  .corp-bens { display:grid; grid-template-columns:1fr 1fr; gap:.65rem 1.2rem; margin-bottom:1.8rem; }
  .corp-ben { font-size:.87rem; color:var(--tx); display:flex; align-items:flex-start; gap:.5rem; line-height:1.48; }
  .corp-ben::before { content:'✦'; color:var(--as); font-size:.58rem; flex-shrink:0; margin-top:.16rem; }
  .corp-tags { display:flex; flex-wrap:wrap; gap:.45rem; margin-bottom:2rem; }
  .corp-tag { font-size:.75rem; font-weight:500; letter-spacing:.06em; color:var(--mt); background:rgba(255,255,255,.6); border:1px solid rgba(184,148,106,.3); padding:.28rem .78rem; border-radius:100px; }
  /* Right side — abstract visual with overlay stat card */
  .corp-vis { position:relative; display:flex; justify-content:center; align-items:center; }
  .corp-ph {
    width:100%; max-width:390px; aspect-ratio:4/5;
    border-radius:50% 38% 62% 40% / 45% 60% 40% 55%;
    overflow:hidden; position:relative;
    box-shadow:0 18px 48px rgba(15,46,15,.14);
    background:var(--cd);
  }
  .corp-ph img {
    display:block; width:100%; height:100%; object-fit:cover; object-position:center center;
  }
  .corp-ph::before {
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(145deg,rgba(237,229,206,.0) 0%,rgba(138,107,68,.2) 100%);
    pointer-events:none;
  }
  .corp-ph::after {
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(0deg,rgba(15,46,15,.18) 0%,transparent 40%);
    pointer-events:none;
  }
  .corp-stat-card {
    position:absolute; bottom:1.5rem; right:-1rem;
    background:var(--wh); border-radius:8px; padding:1rem 1.3rem;
    box-shadow:0 8px 28px rgba(15,46,15,.12);
    border:1px solid rgba(184,148,106,.22);
  }
  .corp-stat-card strong { font-family:var(--fd); font-size:1.7rem; color:var(--mr); display:block; line-height:1; }
  .corp-stat-card span { font-size:.75rem; color:var(--mt); line-height:1.45; display:block; margin-top:.2rem; }

  /* ═══════════════════════════════════════════
     LEAD CAPTURE
  ═══════════════════════════════════════════ */
  #lead { background:var(--cd); padding:5rem 0; }
  .lead-box {
    max-width:880px; margin:0 auto;
    background:var(--wh); border-radius:12px;
    box-shadow:0 8px 44px rgba(15,46,15,.11);
    display:grid; grid-template-columns:1fr 1fr; overflow:hidden;
  }
  /* Left panel — warm sandalwood wash, cream typography */
  /* Flat cream surface (no gradient): gradients on panels fight the flat
     earthy-luxury direction, and the old ochre gradient failed AA. */
  .lead-l { background:var(--cd); padding:2.8rem; position:relative; overflow:hidden; border-right:1px solid var(--cm); }
  .lead-eyebrow { font-size:.75rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--mr); display:block; margin-bottom:1.1rem; position:relative; z-index:1; }
  .lead-title { font-family:var(--fd); font-size:clamp(1.5rem,2.3vw,2rem); font-weight:500; color:var(--gd); line-height:1.2; margin-bottom:.75rem; position:relative; z-index:1; }
  .lead-desc { font-size:.88rem; line-height:1.78; color:rgba(15,46,15,.72); margin-bottom:1.5rem; position:relative; z-index:1; }
  .lead-pts { display:flex; flex-direction:column; gap:.52rem; position:relative; z-index:1; }
  .lead-pt { font-size:.83rem; color:rgba(15,46,15,.82); display:flex; align-items:center; gap:.5rem; }
  .lead-pt::before { content:'✦'; color:var(--mr); font-size:.58rem; flex-shrink:0; }
  /* Right panel */
  .lead-r { padding:2.8rem; display:flex; flex-direction:column; justify-content:center; }
  .lead-r h3 { font-family:var(--fd); font-size:1.45rem; font-weight:500; color:var(--gd); margin-bottom:.38rem; }
  .lead-r > p { font-size:.86rem; color:var(--mt); margin-bottom:1.7rem; }
  .lead-form { display:flex; flex-direction:column; gap:.95rem; }
  .lead-row { display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
  .lead-privacy { font-size:.7rem; color:var(--mt); margin-top:.7rem; display:flex; align-items:center; gap:.38rem; }
  .lead-privacy::before { content:none; }
  .lead-human {
    margin-top:1.25rem; font-style:italic; color:var(--mt);
    font-size:.88rem; line-height:1.6; letter-spacing:.005em;
    border-left:2px solid rgba(184,148,106,.45); padding-left:.9rem;
  }
  /* Goal selector — dual audience choice */
  .goal-sel { display:grid; grid-template-columns:1fr 1fr 1fr; gap:.5rem; }
  .goal-opt {
    display:block; position:relative; cursor:pointer; user-select:none;
  }
  .goal-opt input { position:absolute; opacity:0; pointer-events:none; }
  .goal-opt .goal-box {
    display:flex; flex-direction:column; justify-content:center; align-items:center;
    border:1.5px solid rgba(184,148,106,.45); border-radius:8px;
    padding:.85rem .6rem; text-align:center;
    transition:all .18s;
    background:var(--cr);
    height:100%; box-sizing:border-box;
  }
  .goal-opt .goal-t { display:block; font-family:var(--fd); font-size:.93rem; font-weight:600; color:var(--gd); line-height:1.22; margin-bottom:.3rem; }
  .goal-opt .goal-d { display:block; font-size:.75rem; color:var(--mt); letter-spacing:.03em; line-height:1.38; }
  .goal-opt input:checked + .goal-box {
    border-color:var(--mr); background:rgba(96,20,8,.05);
    box-shadow:0 0 0 3px rgba(96,20,8,.08);
  }
  .goal-opt input:checked + .goal-box .goal-t { color:var(--mr); }
  .goal-opt:hover .goal-box { border-color:var(--mr); }
  .goal-opt input:focus-visible + .goal-box { box-shadow:0 0 0 3px rgba(96,20,8,.25); }
  .cohort-date {
    font-size:.78rem; color:var(--gd); background:rgba(184,148,106,.18);
    border:1px solid rgba(184,148,106,.38); border-radius:6px;
    padding:.55rem .85rem; margin-bottom:.3rem;
    display:flex; align-items:center; gap:.5rem;
  }
  .cohort-date::before { content:'●'; color:var(--mr); font-size:.5rem; }
  .cohort-date strong { color:var(--mr); font-weight:600; }
  .wa-note {
    font-size:.75rem; color:var(--mt); line-height:1.58; margin-top:.55rem;
    padding-top:.55rem; border-top:1px solid rgba(184,148,106,.22);
  }
  .wa-note a { color:var(--mr); text-decoration:underline; text-underline-offset:2px; }
  /* Success state */
  .lead-success { display:none; text-align:center; padding:1.5rem 0; }
  .lead-success.show { display:block; }
  .lead-success-ico { font-size:2.5rem; margin-bottom:.8rem; }
  .lead-success h3 { font-family:var(--fd); font-size:1.6rem; color:var(--gd); margin-bottom:.45rem; }
  .lead-success p { color:var(--mt); font-size:.9rem; line-height:1.7; }
  .lead-success .btn { margin-top:.9rem; }
  .lead-err { font-size:.78rem; color:var(--mr); margin-top:.5rem; display:none; }
  .lead-err.show { display:block; }

  /* ═══════════════════════════════════════════
     FAQ
  ═══════════════════════════════════════════ */
  #faq { background:var(--cr); padding:6rem 0; }
  .faq-head { text-align:center; margin-bottom:3.5rem; }
  .faq-list { max-width:750px; margin:0 auto; }
  .faq-item { border-bottom:1px solid rgba(44,62,45,.11); }
  .faq-item:first-child { border-top:1px solid rgba(44,62,45,.11); }
  .faq-q { width:100%; background:none; border:none; padding:1.35rem 0; display:flex; align-items:center; justify-content:space-between; gap:1rem; text-align:left; }
  .faq-qt { font-family:var(--fd); font-size:1.12rem; font-weight:500; color:var(--gd); line-height:1.32; }
  .faq-ic { width:23px; height:23px; flex-shrink:0; border:1.5px solid var(--au); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:all .28s; color:var(--mr); font-size:1rem; }
  .faq-item.open .faq-ic { background:var(--mr); border-color:var(--mr); color:#fff; transform:rotate(45deg); }
  /* grid-template-rows accordion: no layout thrash, and no 400px clip on
     long answers (the old max-height capped them). */
  .faq-a { display:grid; grid-template-rows:0fr; transition:grid-template-rows .32s ease; }
  .faq-a > * { overflow:hidden; min-height:0; }
  .faq-item.open .faq-a { grid-template-rows:1fr; }
  .faq-a p { font-size:.91rem; line-height:1.84; color:var(--mt); padding-bottom:1.4rem; }

  /* ═══════════════════════════════════════════
     FINAL CTA — warm cream finale
  ═══════════════════════════════════════════ */
  #cta { background:var(--cd); padding:8rem 0; text-align:center; position:relative; overflow:hidden; }
  #cta::before {
    content:''; position:absolute; top:-20%; left:50%; transform:translateX(-50%); width:90%; height:140%;
    background:radial-gradient(ellipse,rgba(184,148,106,.28) 0%,transparent 60%);
    pointer-events:none;
  }
  .cta-inner { position:relative; z-index:2; }
  .cta-hl { font-family:var(--fd); font-size:clamp(2.3rem,4.5vw,3.9rem); font-weight:400; color:var(--gd); line-height:1.18; max-width:640px; margin:0 auto 1rem; }
  .cta-hl em { font-style:italic; color:var(--mr); }
  .cta-sub { font-size:.96rem; color:var(--mt); margin-bottom:2.5rem; }
  .cta-contacts { display:flex; align-items:center; justify-content:center; gap:2.5rem; margin-top:2.8rem; flex-wrap:wrap; }
  .cc { display:flex; align-items:center; gap:.5rem; font-size:.86rem; color:var(--mt); transition:color .2s; }
  .cc:hover { color:var(--mr); }
  .cc svg { width:14px; height:14px; }

  /* ═══════════════════════════════════════════
     FOOTER — warm espresso for visual grounding
  ═══════════════════════════════════════════ */
  #footer { background:var(--ex); padding:4.5rem 0 2rem; }
  .foot-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:2.5rem; padding-bottom:2.5rem; border-bottom:1px solid rgba(245,239,226,.08); margin-bottom:1.8rem; }
  .foot-brand-name { font-family:var(--fd); font-size:1.3rem; color:var(--cr); }
  .foot-brand p { font-size:.83rem; line-height:1.82; color:rgba(245,239,226,.5); margin-top:.8rem; max-width:260px; }
  .foot-social { display:flex; gap:.55rem; margin-top:1.2rem; }
  .foot-s {
    display:flex; align-items:center; justify-content:center;
    width:36px; height:36px; border-radius:50%;
    border:1px solid rgba(245,239,226,.18); color:rgba(245,239,226,.55);
    transition:color .2s, border-color .2s, background .2s;
  }
  .foot-s:hover { color:var(--au); border-color:var(--au); background:rgba(212,167,118,.06); }
  .foot-col h4 { font-size:.75rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--au); margin-bottom:1.1rem; }
  .foot-col ul li { margin-bottom:.65rem; font-size:.83rem; color:rgba(245,239,226,.52); line-height:1.6; }
  .foot-col ul li a { font-size:.83rem; color:rgba(245,239,226,.52); transition:color .2s; }
  .foot-col ul li a:hover { color:var(--cr); }
  .foot-col ul li strong { color:rgba(245,239,226,.78); font-weight:500; display:block; font-size:.75rem; letter-spacing:.03em; margin-bottom:.15rem; }
  .foot-timing { font-size:.82rem; color:rgba(245,239,226,.52); line-height:1.95; }
  .foot-timing strong { color:rgba(245,239,226,.78); font-weight:500; }
  .foot-btm { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
  .foot-copy { font-size:.75rem; color:rgba(245,239,226,.3); }
  .foot-legal a { font-size:.75rem; color:rgba(245,239,226,.3); margin-left:1.4rem; transition:color .2s; }
  .foot-legal a:hover { color:rgba(245,239,226,.6); }

  /* WHATSAPP FAB */
  .wa { position:fixed; bottom:1.8rem; right:1.8rem; z-index:900; width:52px; height:52px; background:#25D366; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 18px rgba(37,211,102,.4); text-decoration:none; animation:wap 3s ease-in-out infinite; }
  .wa:hover { transform:scale(1.1); animation:none; }
  .wa svg { width:27px; height:27px; fill:#fff; }
  @keyframes wap { 0%,100%{box-shadow:0 4px 18px rgba(37,211,102,.38)} 50%{box-shadow:0 6px 28px rgba(37,211,102,.6)} }

  /* ═══════════════════════════════════════════
     RESPONSIVE
  ═══════════════════════════════════════════ */
  @media(max-width:1024px) {

    .auth-stats { grid-template-columns:repeat(2,1fr); }
    .auth-body { grid-template-columns:1fr; gap:3rem; }
    .cert-grid { grid-template-columns:repeat(4,1fr); }
    .corp-grid { grid-template-columns:1fr; }
    .corp-vis { display:none; }
    .foot-grid { grid-template-columns:1fr 1fr; }
  }
  @media(max-width:768px) {
    /* Sub-page hero */
    .sub-hero { padding: 7rem 0 2.5rem; }
    .sh-grid { grid-template-columns: 1fr; }
    .sh-photo { display: none; }

    /* Typography */
    h1 { font-size: clamp(1.8rem, 7vw, 2.4rem); }
    h2 { font-size: clamp(1.4rem, 5vw, 1.9rem); }

    /* Buttons — minimum 44px tap target */
    .btn { min-height: 44px; }

    /* Nav (mobile) */
    .nav-links, .nav-r .btn { display: none; }
    .hbg { display: flex; }
    .nav-logo-img { height: 50px; }

    /* Cards and grids */
    .benefits-row { flex-direction: column; gap: 1.2rem; }
    .testi-grid { grid-template-columns: 1fr; }
    .cert-grid { grid-template-columns: 1fr 1fr; }

    /* Existing layout */
    .pain-grid { grid-template-columns: 1fr; }
    .prog-grid { grid-template-columns: 1fr; }
    .steps { grid-template-columns: 1fr; }
    .steps::before { display: none; }
    .lead-box { grid-template-columns: 1fr; }
    .lead-row { grid-template-columns: 1fr; }
    .cta-contacts { flex-direction: column; gap: 1rem; }
    .corp-bens { grid-template-columns: 1fr; }

    /* iOS zoom prevention — 16px minimum on form inputs */
    input[type=text],
    input[type=email],
    input[type=tel],
    select,
    textarea { font-size: 16px !important; }
    .signup-form input,
    .signup-form textarea,
    .signup-form select { font-size: 16px; }

    /* Footer */
    .foot-grid { grid-template-columns: 1fr; gap: 1.8rem; }
    .foot-btm { flex-direction: column; gap: .6rem; }

    /* General */
    .w { padding: 0 1.2rem; }
    section { padding: 3.5rem 0; }
    #hero { padding: 5rem 0 3.5rem; }
  }

  @media(max-width:480px) {
    .cert-grid { grid-template-columns: 1fr; }
    .prog-grid { grid-template-columns: 1fr; }
    .card-grid { grid-template-columns: 1fr; }
  }
  @media(max-width:580px) {
    .cert-grid { grid-template-columns:1fr 1fr; }
  }


/* ─── SUB-PAGE LAYER ─── */

.sub-hero{padding:140px 0 80px;background:var(--cr);position:relative;overflow:hidden}
.sub-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--au),transparent);opacity:.5}
.sub-hero .eyebrow{font-family:var(--fb);text-transform:uppercase;letter-spacing:.22em;font-size:.78rem;color:var(--as);margin-bottom:1.2rem;font-weight:500}
.sub-hero h1,.sub-hero h2{font-family:var(--fd);font-size:clamp(2.3rem,5vw,3.6rem);line-height:1.08;color:var(--gd);font-weight:500;margin:0 0 1.2rem;letter-spacing:-.01em}
.sub-hero h1 em,.sub-hero h2 em{font-style:italic;color:var(--mr)}
.sub-hero .lede{font-family:var(--fb);font-size:1.15rem;line-height:1.65;color:var(--mt);max-width:720px;margin:0}

.sh-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.sh-grid .sh-photo{aspect-ratio:4/5;border-radius:8px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(15,46,15,.15)}
.sh-grid .sh-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:880px) {.sh-grid{grid-template-columns:1fr;gap:40px}.sh-grid .sh-photo{aspect-ratio:5/4;max-height:520px}}

/* Generic content block on cream */
.sec-prose{padding:80px 0;background:var(--cr)}
.sec-prose.alt{background:var(--cd)}
.sec-prose h2{font-family:var(--fd);font-size:clamp(1.8rem,3.6vw,2.6rem);color:var(--gd);font-weight:500;letter-spacing:-.005em;margin:0 0 1.4rem;line-height:1.18}
.sec-prose .eyebrow{font-family:var(--fb);text-transform:uppercase;letter-spacing:.22em;font-size:.75rem;color:var(--as);margin-bottom:1rem;font-weight:500}
.sec-prose p{font-family:var(--fb);font-size:1.05rem;line-height:1.75;color:var(--mt);margin:0 0 1.1rem;max-width:760px}
.sec-prose p strong{color:var(--gd);font-weight:600}
.sec-prose ul.bullet-list{font-family:var(--fb);font-size:1.05rem;line-height:1.75;color:var(--mt);max-width:760px;padding-left:1.2rem}
.sec-prose ul.bullet-list li{margin-bottom:.45rem}
.sec-prose ul.bullet-list li::marker{color:var(--mr)}

/* Quote card (used on About) */
.q-card{background:var(--wh);border:1px solid var(--cm);border-left:4px solid var(--mr);padding:32px 36px;border-radius:6px;margin:0 0 22px;max-width:880px}
.q-card .q-text{font-family:var(--fd);font-size:1.25rem;line-height:1.55;color:var(--gd);font-style:italic;margin:0 0 1rem}
.q-card .q-attr{font-family:var(--fb);font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:var(--as);font-weight:500}

/* Format card (used on classes pages) */
.fmt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:32px}
.fmt-card{background:var(--wh);border:1px solid var(--cm);padding:32px 30px;border-radius:8px;display:flex;flex-direction:column;gap:14px}
.fmt-card .fmt-time{font-family:var(--fb);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mr);font-weight:600}
.fmt-card h3{font-family:var(--fd);font-size:1.55rem;color:var(--gd);font-weight:500;margin:0;line-height:1.25}
.fmt-card .fmt-meta{font-family:var(--fb);font-size:.95rem;color:var(--mt);line-height:1.6;margin:0}
.fmt-card ul{font-family:var(--fb);font-size:.95rem;color:var(--mt);line-height:1.7;padding-left:1.1rem;margin:0}
.fmt-card ul li::marker{color:var(--au)}
.fmt-card .fmt-cta{margin-top:auto;padding-top:8px}

/* Benefits trio (used on most service pages) */
.benefits-row{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}
.benefits-row .b{padding:28px 26px;background:var(--wh);border-top:3px solid var(--mr);border-radius:0 0 6px 6px}
.benefits-row .b-num{font-family:var(--fd);font-size:2.4rem;color:var(--au);font-weight:500;line-height:1;margin-bottom:.6rem}
.benefits-row .b h4{font-family:var(--fd);font-size:1.2rem;color:var(--gd);font-weight:500;margin:0 0 .6rem;line-height:1.3}
.benefits-row .b p{font-family:var(--fb);font-size:.95rem;color:var(--mt);line-height:1.6;margin:0}
@media(max-width:760px) {.benefits-row{grid-template-columns:1fr;gap:18px}}

/* FAQ block — match homepage's contemplative tone */
.faq-block{padding:80px 0;background:var(--cr)}
.faq-block details{border-bottom:1px solid var(--cm);padding:22px 0;max-width:860px}
.faq-block details summary{cursor:pointer;font-family:var(--fd);font-size:1.2rem;color:var(--gd);font-weight:500;line-height:1.4;list-style:none;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.faq-block details summary::-webkit-details-marker{display:none}
.faq-block details summary::after{content:"+";font-family:var(--fb);font-weight:400;color:var(--mr);font-size:1.5rem;line-height:1;flex-shrink:0;transition:transform .25s ease}
.faq-block details[open] summary::after{content:"−"}
.faq-block details p{font-family:var(--fb);font-size:1rem;color:var(--mt);line-height:1.75;margin:1rem 0 0}

/* Testimonial card grid */
.testi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:24px;margin-top:40px}
.testi-card{background:var(--wh);border:1px solid var(--cm);padding:30px 30px;border-radius:6px;display:flex;flex-direction:column}
.testi-card .testi-tag{font-family:var(--fb);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mr);font-weight:600;margin-bottom:14px}
.testi-card .testi-quote{font-family:var(--fd);font-size:1.08rem;color:var(--gd);line-height:1.6;font-style:italic;margin:0 0 18px;flex-grow:1}
.testi-card .testi-attr{font-family:var(--fb);font-size:.9rem;color:var(--as);font-weight:500;letter-spacing:.04em;border-top:1px solid var(--cm);padding-top:14px;margin-top:auto}

/* Gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:36px}
.gallery-grid figure{margin:0;border-radius:6px;overflow:hidden;aspect-ratio:4/5;background:var(--cd)}
.gallery-grid figure.wide{grid-column:span 2;aspect-ratio:16/10}
.gallery-grid figure img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.gallery-grid figure:hover img{transform:scale(1.04)}
@media(max-width:680px) {.gallery-grid figure.wide{grid-column:span 1;aspect-ratio:4/5}}

/* Contact two-col */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:32px;align-items:start}
.contact-grid .info{padding-right:20px;border-right:1px solid var(--cm)}
.contact-grid .info h3{font-family:var(--fd);font-size:1.35rem;color:var(--gd);font-weight:500;margin:0 0 .5rem}
.contact-grid .info p{margin:0 0 1.4rem;font-size:1rem}
.contact-grid .info a{color:var(--mr);text-decoration:none;border-bottom:1px solid var(--au)}
.contact-grid .info a:hover{color:var(--mh)}
.contact-grid form input,.contact-grid form textarea,.signup-form input,.signup-form textarea,.signup-form select{width:100%;padding:14px 16px;border:1px solid var(--cm);background:var(--wh);font-family:var(--fb);font-size:1rem;color:var(--tx);border-radius:4px;margin-bottom:14px;transition:border-color .15s}
.contact-grid form input:focus,.contact-grid form textarea:focus,.signup-form input:focus,.signup-form textarea:focus,.signup-form select:focus{outline:none;border-color:var(--mr)}
.contact-grid form textarea,.signup-form textarea{resize:vertical;min-height:120px}
.contact-grid form label,.signup-form label{display:block;font-family:var(--fb);font-size:.85rem;color:var(--as);font-weight:500;letter-spacing:.05em;margin-bottom:6px;text-transform:uppercase}
@media(max-width:780px) {.contact-grid{grid-template-columns:1fr;gap:36px}.contact-grid .info{padding-right:0;border-right:none;border-bottom:1px solid var(--cm);padding-bottom:30px}}

/* Page footer CTA strip */
.page-cta{background:var(--cd);padding:64px 0;text-align:center;border-top:1px solid var(--cm)}
.page-cta h2{font-family:var(--fd);font-size:clamp(1.6rem,3vw,2.2rem);color:var(--gd);font-weight:500;margin:0 0 .8rem}
.page-cta p{font-family:var(--fb);font-size:1.05rem;color:var(--mt);max-width:560px;margin:0 auto 1.6rem;line-height:1.6}
.page-cta .btn{font-size:1rem;padding:14px 32px}

/* Nav drop-down */
.nav-drop{position:relative}
.nav-drop-trigger{cursor:pointer}
.nav-drop-menu{display:none;position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);background:var(--wh);border:1px solid var(--cm);border-radius:6px;padding:10px 0;min-width:240px;box-shadow:0 12px 32px -8px rgba(15,46,15,.15);z-index:100}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{display:block}
.nav-drop-menu a{display:block;padding:10px 22px;font-family:var(--fb);font-size:.95rem;color:var(--gd);text-decoration:none;letter-spacing:0;text-transform:none}
.nav-drop-menu a:hover{background:var(--cd);color:var(--mr)}

/* Mobile nav toggle */
@media(max-width:980px) {
  .nav-drop-menu{position:static;transform:none;display:none;border:none;padding:0;background:transparent;min-width:0;box-shadow:none}
  .nav-links.open .nav-drop-menu{display:block;padding-left:18px}
  .nav-drop-menu a{padding:8px 0;font-size:.92rem}
}

/* ── Green-heading system (ratified) ──────────────────────────────────
   Section headings + the main stat numbers use the logo green #006B00
   (--gm). Maroon (--mr) stays for actions/links only; the line-icon set
   stays ink/ochre — green never enters the icons. Subpage hero <em> stays
   maroon italic as the deliberate accent. */
h2.sh, .auth-text h2, .corp-text h2, .lead-title, .iw-head, .founder-text h2,
.sub-hero h1, .sec-prose h2, .page-cta h2, .faq-block h2 { color:var(--gm); }
.auth-num { color:var(--gm); }
