/* ==========================================================================
   CPSR — Centre for Political Strategy and Research
   Stylesheet v2 — conversion-focused redesign.
   Every class from v1 still works (all 27 pages restyle automatically);
   new blocks are marked "v2" so they are easy to find.
   ========================================================================== */

/* 1. Tokens ---------------------------------------------------------------*/
:root{
  /* Palette — colorhunt 8b9a6e / f7f2eb / eae2d6 / eeeeee, plus derived olives for depth */
  --sage:#8B9A6E;
  --cream:#F7F2EB;
  --beige:#EAE2D6;
  --grey:#EEEEEE;

  --navy:#4A5639;          /* olive — links, primary buttons */
  --navy-deep:#2E3624;     /* deep olive — headings, dark sections */
  --navy-soft:#5E6C49;
  --navy-ink:#232A1B;      /* footer / top bar */
  --gold:#8B9A6E;          /* sage — accent */
  --gold-light:#A5B389;
  --gold-deep:#62704A;     /* sage, darkened for text on cream */
  --blue:#8B9A6E;
  --blue-bright:#B7C3A0;
  --teal:#8B9A6E;
  --bg:#F7F2EB;            /* page background — cream */
  --surface:#EAE2D6;       /* bands — beige */
  --surface-2:#EEEEEE;
  --rule:#E0D8CA;
  --ink:#2A2E24;
  --muted:#6B6F62;
  --white:#fff;
  --ok:#5E7A3A;
  --err:#B5482F;
  --wa:#25D366;

  --grad-hero:radial-gradient(1200px 600px at 85% -10%,rgba(139,154,110,.55),transparent 60%),
              radial-gradient(800px 500px at -10% 110%,rgba(234,226,214,.16),transparent 55%),
              linear-gradient(160deg,#1F2519 0%,#3A452F 55%,#2B3323 100%);
  --grad-gold:linear-gradient(135deg,#A5B389 0%,#8B9A6E 100%);
  --grad-text:linear-gradient(90deg,#C9D3B4,#E6EBDA);

  --sans:"Inter","Noto Sans Devanagari","Helvetica Neue",Arial,sans-serif;
  --head:"Plus Jakarta Sans","Inter","Noto Sans Devanagari",Arial,sans-serif;
  --serif:var(--head);              /* v1 alias — headings are now sans */

  --wrap:1200px;
  --gut:clamp(20px,5vw,40px);
  --sec:clamp(64px,8vw,110px);
  --r:14px;
  --r-sm:10px;
  --r-pill:999px;
  --sh-sm:0 1px 2px rgba(35,42,27,.06),0 4px 12px rgba(35,42,27,.06);
  --sh-md:0 6px 18px rgba(35,42,27,.08),0 20px 40px -18px rgba(35,42,27,.18);
  --sh-lg:0 24px 60px -20px rgba(35,42,27,.35);
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* 2. Base -----------------------------------------------------------------*/
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px;overflow-x:clip}
body{
  margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:clip;
}
img,svg{max-width:100%}
h1,h2,h3,h4{font-family:var(--head);font-weight:700;line-height:1.15;margin:0 0 .5em;
  letter-spacing:-.02em;color:var(--navy-deep)}
h1{font-size:clamp(2.2rem,5vw,3.6rem);font-weight:800}
h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
h3{font-size:1.2rem}
h4{font-size:1rem}
p{margin:0 0 1em}
a{color:var(--navy);text-decoration-color:var(--rule);text-underline-offset:3px}
a:hover{text-decoration-color:var(--gold)}
ul,ol{margin:0;padding:0;list-style:none}
strong,b{font-weight:600}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:12px 18px;z-index:300}
.skip:focus{left:0}
::selection{background:rgba(165,179,137,.35)}

/* placeholder markers — content CPSR still has to supply */
.ph{
  background:linear-gradient(transparent 82%,rgba(139,154,110,.28) 82%);
  border-bottom:1px dashed rgba(139,154,110,.6);
}

/* v2 text helpers */
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.76rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 14px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--gold);border-radius:2px}
.eyebrow--inv{color:var(--gold-light)}
.hl,.hl .w{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{font-size:1.15rem;color:var(--muted);line-height:1.6}
.center{text-align:center}
.center .eyebrow{justify-content:center}
.center .eyebrow::before{display:none}
.center .sechead{margin-inline:auto}

/* 3. Top bar + Header -----------------------------------------------------*/
.topbar{background:var(--navy-ink);color:#D9D6CB;font-size:.82rem;text-align:center;padding:8px var(--gut)}
.topbar a{color:#C9D3B4;font-weight:600;text-decoration:none;margin-left:6px}
.topbar a:hover{text-decoration:underline}

.hdr{position:sticky;top:0;z-index:100;background:rgba(247,242,235,.92);
  border-bottom:1px solid transparent;backdrop-filter:saturate(180%) blur(10px);
  transition:box-shadow .25s,border-color .25s}
.hdr.is-scrolled{border-bottom-color:var(--rule);box-shadow:0 8px 30px -14px rgba(35,42,27,.25)}
.hdr__inner{display:flex;align-items:center;gap:28px;min-height:78px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex:0 0 auto}
.emblem{width:40px;height:40px;flex:0 0 40px}
.brand__txt{display:flex;flex-direction:column;line-height:1.1}
.brand__txt b{font-family:var(--head);font-size:1.32rem;font-weight:800;color:var(--navy-deep);letter-spacing:.04em}
.brand__txt span{font-size:.6rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-weight:500}
.nav{margin-left:auto}
.nav__list{display:flex;gap:2px}
.nav__item{position:relative}
.nav__item>a{display:block;padding:12px 14px;font-size:.93rem;font-weight:500;
  text-decoration:none;color:var(--ink);border-radius:var(--r-pill);transition:background .15s,color .15s}
.nav__item>a:hover,.nav__item>a[aria-current]{color:var(--navy);background:var(--surface)}
.nav__item>a[aria-current]{font-weight:600}
.nav__item--drop>a::after,.nav__item--mega>a::after{content:"";display:inline-block;width:6px;height:6px;
  margin-left:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:translateY(-3px) rotate(45deg);opacity:.6}
.hdr__end{display:flex;align-items:center;gap:10px;margin-left:auto}
.hdr__end .btn{white-space:nowrap}
.hdr__tel{font-size:.88rem;color:var(--muted);text-decoration:none;white-space:nowrap;font-weight:500}
.hdr__tel:hover{color:var(--navy)}
.hdr__wa{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;
  border-radius:50%;background:rgba(37,211,102,.12);color:#128C4A;transition:background .15s}
.hdr__wa:hover{background:rgba(37,211,102,.22)}
.hdr__wa svg{width:20px;height:20px}
.burger{display:none;width:44px;height:44px;border:1px solid var(--rule);background:#fff;
  border-radius:var(--r-sm);padding:12px 11px;cursor:pointer;flex-direction:column;justify-content:space-between}
.burger span:not(.sr){display:block;height:2px;background:var(--navy);transition:.2s;border-radius:2px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* dropdown + mega */
.drop,.mega{position:absolute;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .18s var(--ease),transform .18s var(--ease),visibility 0s .18s}
.drop{top:calc(100% + 6px);left:0;min-width:260px;background:#fff;border:1px solid var(--rule);
  border-radius:var(--r);padding:8px;box-shadow:var(--sh-md)}
.drop a{display:block;padding:10px 12px;font-size:.9rem;text-decoration:none;border-radius:var(--r-sm);font-weight:500}
.drop a:hover{background:var(--surface);color:var(--navy)}
.mega{top:calc(100% + 6px);left:50%;transform:translate(-50%,8px);width:min(960px,calc(100vw - 40px));
  background:#fff;border:1px solid var(--rule);border-radius:var(--r);
  box-shadow:var(--sh-lg);padding:22px}
.mega__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 10px}
.mega__grid a{display:block;padding:12px 14px;text-decoration:none;border-radius:var(--r-sm);
  border-left:0;transition:background .15s}
.mega__grid a:hover{background:var(--surface)}
.mega__grid b{display:block;font-size:.93rem;color:var(--navy-deep);margin-bottom:2px;font-weight:600}
.mega__grid span{display:block;font-size:.82rem;color:var(--muted);line-height:1.45}
.mega__all{grid-column:3;background:var(--surface)}
.mega__all b{color:var(--gold-deep)}
.nav__item--drop:hover .drop,.nav__item--drop:focus-within .drop{opacity:1;visibility:visible;transform:translateY(0);transition-delay:0s}
.nav__item--mega:hover .mega,.nav__item--mega:focus-within .mega{opacity:1;visibility:visible;transform:translate(-50%,0);transition-delay:0s}

/* mobile nav */
.mnav{position:fixed;inset:78px 0 0;background:var(--bg);z-index:99;overflow-y:auto;padding:22px 0 100px;
  border-top:1px solid var(--rule)}
.mnav ul{display:block}
.mnav a{display:block;padding:13px 2px;font-size:1.02rem;text-decoration:none;font-weight:500;
  border-bottom:1px solid var(--surface-2)}
.mnav__head{margin-top:22px;padding-bottom:6px;font-size:.7rem;letter-spacing:.11em;font-weight:700;
  text-transform:uppercase;color:var(--gold-deep);border-bottom:1px solid var(--rule)}
.mnav__cta{margin-top:24px;display:grid;gap:10px}
.mnav__cta .btn{width:100%}

/* 4. Buttons --------------------------------------------------------------*/
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:50px;padding:12px 26px;border-radius:var(--r-pill);font-size:.95rem;font-weight:600;
  text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:var(--sans);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .15s,color .15s,border-color .15s;
  will-change:transform}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn svg{width:18px;height:18px;flex:0 0 18px}
.btn--primary{background:var(--navy);color:#fff;box-shadow:0 10px 24px -10px rgba(74,86,57,.7)}
.btn--primary:hover{background:var(--navy-deep);box-shadow:0 14px 28px -10px rgba(74,86,57,.8)}
.btn--gold{background:var(--grad-gold);color:#1F2618;box-shadow:0 10px 24px -8px rgba(139,154,110,.75)}
.btn--gold:hover{box-shadow:0 16px 30px -8px rgba(139,154,110,.85);filter:brightness(1.04)}
.btn--ghost{border-color:var(--rule);color:var(--navy);background:#fff}
.btn--ghost:hover{border-color:var(--navy);background:var(--surface)}
.btn--ghost-inv{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.35);backdrop-filter:blur(4px)}
.btn--ghost-inv:hover{background:rgba(255,255,255,.14);border-color:#fff}
.btn--wa{background:var(--wa);color:#0B2B17}
.btn--wa:hover{background:#1FC15A}
.btn--sm{min-height:42px;padding:9px 18px;font-size:.88rem}
.btn--lg{min-height:56px;padding:14px 32px;font-size:1.02rem}
.btn--block{width:100%}
.btnrow{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn__arrow{transition:transform .18s var(--ease)}
.btn:hover .btn__arrow{transform:translateX(3px)}

/* 5. Hero -----------------------------------------------------------------*/
.hero{background:var(--grad-hero);color:#fff;overflow:hidden;position:relative;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.18;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(ellipse at 50% 40%,#000 30%,transparent 75%)}
.hero::after{display:none}
.hero__inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(30px,5vw,70px);align-items:center;padding:clamp(56px,8vw,104px) var(--gut)}
.hero h1{color:#fff;font-size:clamp(2.3rem,4.8vw,3.7rem);margin-bottom:.45em;text-wrap:balance;letter-spacing:-.025em}
.hero__sub{color:#D9D6CB;font-size:1.12rem;max-width:50ch;margin:0;line-height:1.6}
.hero__badge{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 8px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);font-size:.8rem;font-weight:500;
  color:#EDEBE3;margin-bottom:22px;backdrop-filter:blur(6px)}
.hero__badge i{display:inline-flex;width:8px;height:8px;border-radius:50%;background:var(--teal);
  box-shadow:0 0 0 4px rgba(24,184,166,.25);margin-left:4px}
.hero .btnrow{margin-top:30px}
.hero__trust{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:26px;font-size:.84rem;color:#B5B8A8}
.hero__trust li{display:inline-flex;align-items:center;gap:7px}
.hero__trust svg{width:16px;height:16px;color:var(--gold-light)}
.hero__viz{margin:0;position:relative}
.hero__grid{position:absolute;inset:auto -10% -20% -10%;z-index:-1;opacity:.55;pointer-events:none}
.boothgrid{display:block;width:100%;height:auto}
.boothgrid rect{animation:cell .5s ease both}
.bg-safe{fill:#8B9A6E}
.bg-battle{fill:#EAE2D6}
.bg-hard{fill:#4A5639}
.bg-none{fill:rgba(255,255,255,.07)}
@keyframes cell{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:20px;
  font-size:.78rem;color:#B5B8A8}
.legend__i{display:inline-flex;align-items:center;gap:7px}
.legend__i::before{content:"";width:10px;height:10px;border-radius:2px}
.legend__i--safe::before{background:#8B9A6E}
.legend__i--battle::before{background:#EAE2D6}
.legend__i--hard::before{background:#4A5639;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.legend__note{flex:1 1 100%;color:#9A9D8E;font-style:italic}

/* v2 hero lead card */
.leadcard{border:1px solid transparent;border-radius:20px;padding:28px 26px 24px;color:var(--ink);box-shadow:var(--sh-lg);position:relative;
  background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,rgba(139,154,110,.9),rgba(201,211,180,.6)) border-box}
.leadcard__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}
.leadcard h2{font-size:1.32rem;margin:0 0 4px;color:var(--navy-deep)}
.leadcard__free{flex:0 0 auto;font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:#2E3624;background:rgba(165,179,137,.22);border-radius:var(--r-pill);padding:5px 10px}
.leadcard__sub{font-size:.9rem;color:var(--muted);margin:0 0 18px}
.leadcard.form{grid-template-columns:1fr;gap:12px}
.leadcard .f label{font-size:.8rem}
.leadcard .btn{margin-top:4px}
.leadcard__note{font-size:.76rem;color:var(--muted);margin:12px 0 0;text-align:center;line-height:1.45}
.leadcard__note svg{width:13px;height:13px;vertical-align:-2px;margin-right:4px;color:var(--ok)}

/* 6. Page head ------------------------------------------------------------*/
.pagehead{position:relative;overflow:hidden;background:var(--grad-hero);color:#fff;
  padding:clamp(48px,7vw,84px) 0 clamp(40px,6vw,64px)}
.pagehead::before{content:"";position:absolute;inset:0;opacity:.15;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(ellipse at 30% 50%,#000 20%,transparent 70%)}
.pagehead .wrap{position:relative}
.pagehead h1{max-width:24ch;font-size:clamp(2rem,4.2vw,3rem);text-wrap:balance;color:#fff}
.pagehead__sub{max-width:62ch;font-size:1.1rem;color:#D9D6CB;margin:0}
.pagehead .ph{background:none;border-bottom-color:rgba(165,179,137,.7)}
.crumb{display:flex;flex-wrap:wrap;gap:9px;font-size:.8rem;color:#B5B8A8;margin-bottom:20px}
.crumb a{color:#D9D6CB;text-decoration:none}
.crumb a:hover{color:#fff;text-decoration:underline}

/* 7. Sections -------------------------------------------------------------*/
.section{padding:var(--sec) 0}
.section--band{background:var(--surface);border-block:1px solid var(--rule)}
.section--tight{padding:26px 0 0}
.section--intro{padding-bottom:clamp(20px,3vw,34px)}
.section--dark{background:var(--navy-deep);color:#fff;position:relative;overflow:hidden}
.section--dark::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(900px 400px at 100% 0%,rgba(139,154,110,.25),transparent 60%)}
.section--dark .wrap{position:relative}
.section--dark h2,.section--dark h3{color:#fff}
.sechead{max-width:64ch;margin-bottom:44px}
.sechead h2{margin-bottom:.4em}
.sechead p{color:var(--muted);margin:0;font-size:1.08rem}
.sechead--inv h2{color:#fff}
.sechead--inv p{color:#D9D6CB}
.prose{max-width:68ch}
.prose h2{margin-bottom:.6em}
.prose--lead p:first-child{font-size:1.22rem;line-height:1.55;color:var(--navy-deep)}
.prose--legal{max-width:72ch}
.prose--legal h2{font-size:1.25rem;margin-top:1.8em}
.prose--legal h2:first-child{margin-top:0}
.more{margin-top:34px}
.more a{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;color:var(--navy)}
.more a::after{content:"→";color:var(--gold);transition:transform .18s var(--ease)}
.more a:hover::after{transform:translateX(4px)}
.split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(28px,5vw,60px);align-items:start}
.contrast{display:flex;flex-direction:column;gap:14px;padding-top:6px}
.contrast li{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:16px 18px 16px 20px;
  position:relative;box-shadow:var(--sh-sm)}
.contrast li::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--gold)}
.contrast b{display:block;color:var(--navy-deep);font-size:1rem;font-family:var(--head)}
.contrast span{color:var(--muted);font-size:.92rem}

/* v2 problem cards */
.problems{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.problem{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:26px 24px;box-shadow:var(--sh-sm)}
.problem__ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;
  background:rgba(200,54,43,.08);color:var(--err)}
.problem__ico svg{width:22px;height:22px}
.problem h3{font-size:1.08rem;margin-bottom:.35em}
.problem p{margin:0;color:var(--muted);font-size:.95rem}
.problem__fix{margin-top:14px;padding-top:12px;border-top:1px dashed var(--rule);font-size:.88rem;color:var(--navy)}
.problem__fix b{color:var(--ok);font-weight:700}

/* 8. Stats ----------------------------------------------------------------*/
.stats{background:#fff;color:var(--ink);border-bottom:1px solid var(--rule);position:relative}
.stats__row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:34px 0 10px}
.stat{border-left:0;padding:22px 22px;background:var(--surface);border-radius:var(--r);
  border:1px solid var(--rule)}
.stat__v{display:block;font-family:var(--head);font-weight:800;font-size:clamp(1.9rem,3.4vw,2.6rem);color:var(--navy-deep);
  line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stat__v small{font-size:.55em;color:var(--gold-deep);font-weight:800;margin-left:2px}
.stat__l{display:block;font-size:.86rem;color:var(--muted);margin-top:6px;font-weight:500}
.stats__note{color:var(--muted);font-size:.86rem;padding-bottom:34px;margin:0}
.stats--inv{background:var(--navy-deep);color:#fff;border-bottom:0}
.stats--inv .stat{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1)}
.stats--inv .stat__v{color:#fff}
.stats--inv .stat__l,.stats--inv .stats__note{color:#B5B8A8}
.stats--inv .ph{background:none;border-bottom-color:rgba(165,179,137,.7)}

/* v2 trust strip / marquee */
.trust{background:var(--navy-ink);color:#9A9D8E;padding:18px 0;overflow:hidden;border-top:1px solid rgba(255,255,255,.06)}
.trust__inner{display:flex;align-items:center;gap:26px}
.trust__label{flex:0 0 auto;padding-right:6px;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#D9D6CB}
.marquee{flex:1 1 auto;min-width:0;width:100%;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 94%,transparent)}
.marquee__track{display:flex;gap:40px;width:max-content;animation:marquee 38s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__track li{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font-size:.9rem;
  font-weight:600;color:#D9D6CB;font-family:var(--head)}
.marquee__track li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* 9. Cards / grids --------------------------------------------------------*/
.grid{display:grid;gap:20px}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.card{display:block;position:relative;padding:28px 26px 30px;background:#fff;
  border:1px solid var(--rule);border-radius:var(--r);text-decoration:none;box-shadow:var(--sh-sm);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s}
.card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;border-radius:var(--r) var(--r) 0 0;
  background:var(--grad-gold);opacity:0;transition:opacity .2s}
.card:hover{transform:translateY(-4px);border-color:transparent;box-shadow:var(--sh-md)}
.card:hover::before{opacity:1}
.card h3{margin-bottom:.45em;font-size:1.12rem}
.card p{margin:0;color:var(--muted);font-size:.95rem}
.card__go{display:inline-flex;align-items:center;gap:6px;width:auto;height:auto;background:none;margin-top:18px;
  font-size:.86rem;font-weight:600;color:var(--navy)}
.card__go::after{content:"→";color:var(--gold);transition:transform .18s var(--ease)}
.card:hover .card__go::after{transform:translateX(4px)}
.card__ico{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;margin-bottom:18px;
  background:linear-gradient(135deg,rgba(74,86,57,.08),rgba(139,154,110,.12));color:var(--navy)}
.card__ico svg{width:24px;height:24px}
.card:hover .card__ico{background:var(--navy);color:#fff}
.card__ico--gold{background:rgba(165,179,137,.18);color:var(--gold-deep)}
.grid--compact .card{padding:24px 22px 26px}
.card__num{position:absolute;top:22px;right:22px;font-family:var(--head);font-weight:800;font-size:.8rem;color:var(--rule)}

/* 10. Service list --------------------------------------------------------*/
.srvlist{display:flex;flex-direction:column;gap:16px}
.srv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);
  padding:28px;border:1px solid var(--rule);border-radius:var(--r);background:#fff;box-shadow:var(--sh-sm);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.srv:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.srv:last-child{border-bottom:1px solid var(--rule)}
.srv h2{font-size:1.32rem;margin-bottom:.3em}
.srv h2 a{text-decoration:none}
.srv h2 a:hover{text-decoration:underline;text-decoration-color:var(--gold)}
.srv p{margin:0;color:var(--muted);font-size:.96rem}
.chips{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}
.chips li{font-size:.79rem;font-weight:500;color:var(--navy);background:var(--surface);
  border:1px solid var(--rule);border-radius:var(--r-pill);padding:5px 12px}

/* 11. Capability blocks ---------------------------------------------------*/
.caps{display:flex;flex-direction:column;gap:22px;max-width:74ch}
.cap{border-left:0;padding:22px 24px;background:var(--surface);border-radius:var(--r);border:1px solid var(--rule)}
.cap h3{margin-bottom:.3em}
.cap p{margin:0}
.cap p+p{margin-top:.5em}
.cap__out{color:var(--navy-deep);font-weight:500}
.cap__out::before{content:"Outcome — ";color:var(--gold-deep);font-weight:700}
.caps--two{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:none}
.cap--c{background:#fff}
.cap--c p{color:var(--muted);font-size:.95rem}

/* 12. Steps / phases ------------------------------------------------------*/
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;counter-reset:step}
.step{position:relative;padding:26px 22px 26px;background:#fff;border:1px solid var(--rule);border-radius:var(--r);
  box-shadow:var(--sh-sm)}
.step::before{display:none}
.step__n{position:relative;display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;
  background:var(--navy-deep);color:var(--gold-light);font-family:var(--head);font-weight:800;font-size:.88rem;
  padding:0;z-index:1}
.section--band .step__n{background:var(--navy-deep)}
.step h3{margin:16px 0 .35em;font-size:1.06rem}
.step p{margin:0;font-size:.92rem;color:var(--muted)}
.step__dur{display:inline-block;margin-top:14px;font-size:.74rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--gold-deep)}
.phases{display:flex;flex-direction:column;gap:clamp(28px,4vw,44px)}
.phase{display:grid;grid-template-columns:86px minmax(0,1fr);gap:clamp(16px,3vw,32px);
  background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:28px}
.phase__mark span{font-family:var(--head);font-weight:800;font-size:2.4rem;color:var(--gold);line-height:1}
.phase__mark{border-top:0;padding-top:0}
.phase__body{max-width:68ch}
.phase__body h2{font-size:1.4rem}
.phase__body h2 span{color:var(--muted);font-weight:400;font-size:.95rem;font-family:var(--sans)}

/* 13. Pillars / statements / ticks ---------------------------------------*/
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.pillar{border-top:0;padding:28px 26px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r);backdrop-filter:blur(4px)}
.pillar__ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;
  background:rgba(165,179,137,.16);color:var(--gold-light)}
.pillar__ico svg{width:22px;height:22px}
.pillar h3{color:#fff;font-size:1.14rem}
.pillar p{color:#D9D6CB;margin:0;font-size:.96rem}
.stmts{display:flex;flex-direction:column;gap:18px;max-width:72ch}
.stmts li{padding-left:28px;position:relative;font-size:1.02rem}
.stmts li::before{content:"";position:absolute;left:0;top:.6em;width:14px;height:3px;border-radius:3px;background:var(--gold)}
.ticks{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 34px}
.ticks li{position:relative;padding-left:30px;font-size:.98rem}
.ticks li::before{content:"";position:absolute;left:0;top:.2em;width:18px;height:18px;border-radius:50%;
  background:rgba(30,142,90,.12)}
.ticks li::after{content:"";position:absolute;left:5px;top:.42em;width:8px;height:4px;
  border-left:2px solid var(--ok);border-bottom:2px solid var(--ok);transform:rotate(-45deg)}

/* v2 comparison table */
.compare{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--rule);border-radius:var(--r);
  overflow:hidden;background:#fff;box-shadow:var(--sh-sm);font-size:.95rem}
.compare th,.compare td{padding:16px 18px;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}
.compare tr:last-child td{border-bottom:0}
.compare thead th{font-family:var(--head);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
  background:var(--surface)}
.compare thead th.is-us{background:var(--navy-deep);color:#fff}
.compare td.is-us{background:rgba(74,86,57,.04);font-weight:500;color:var(--navy-deep)}
.compare td:first-child{font-weight:600;color:var(--navy-deep)}
.compare .no{color:var(--muted)}
.compare .no::before{content:"✕";color:var(--err);font-weight:700;margin-right:8px}
.compare .yes::before{content:"✓";color:var(--ok);font-weight:700;margin-right:8px}

/* 14. FAQ -----------------------------------------------------------------*/
.faq{max-width:76ch;border-top:0;display:flex;flex-direction:column;gap:10px}
.faq details{border:1px solid var(--rule);border-radius:var(--r-sm);background:#fff;padding:0 20px;
  transition:box-shadow .2s}
.faq details[open]{box-shadow:var(--sh-sm);border-color:rgba(74,86,57,.25)}
.faq summary{list-style:none;cursor:pointer;padding:18px 40px 18px 0;position:relative;
  font-family:var(--head);font-weight:600;font-size:1.02rem;color:var(--navy-deep)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:24px;width:9px;height:9px;
  border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);
  transform:rotate(45deg);transition:transform .18s}
.faq details[open] summary::after{transform:rotate(225deg);top:28px}
.faq details>div{padding:0 0 20px}
.faq p{margin:0;color:var(--muted)}
.faq--wide{max-width:none}

/* 15. CTA band ------------------------------------------------------------*/
.ctaband{background:var(--grad-hero);color:#fff;border-top:0;position:relative;overflow:hidden}
.ctaband::before{content:"";position:absolute;inset:0;opacity:.3;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(ellipse at 70% 50%,#000 20%,transparent 70%)}
.ctaband__inner{position:relative;display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:30px;
  align-items:center;padding:clamp(48px,6vw,76px) var(--gut)}
.ctaband h2{color:#fff;margin-bottom:.4em;max-width:24ch;font-size:clamp(1.7rem,3.2vw,2.4rem)}
.ctaband p{color:#D9D6CB;margin:0;max-width:60ch;font-size:1.02rem}
.ctaband .btnrow{margin:0;justify-content:flex-end}
.ctaband__contact{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:20px;font-size:.9rem}
.ctaband__contact a{color:#C9D3B4;text-decoration:none;font-weight:600}
.ctaband__contact a:hover{text-decoration:underline}

/* 16. Feature / models / posts / cases / people ---------------------------*/
.feature{max-width:70ch;border-left:0;padding:26px 28px;background:var(--surface);border-radius:var(--r);
  border:1px solid var(--rule)}
.feature__lead{font-size:1.12rem;color:var(--navy-deep)}
.models{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.model{border-top:0;padding:24px;background:#fff;border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--sh-sm)}
.model h3{font-size:1.06rem;margin-bottom:.3em}
.model p{margin:0;color:var(--muted);font-size:.95rem}
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.post{border-top:0;padding:0;background:#fff;border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--sh-sm);display:flex;flex-direction:column;transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.post:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.post__thumb{aspect-ratio:16/9;background:var(--grad-hero);position:relative;display:grid;place-items:center;color:#fff}
.post__thumb svg{width:40px;height:40px;opacity:.8}
.post__body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.post__cat{font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 .6em}
.post h3{font-size:1.06rem;line-height:1.35}
.post h3 a{text-decoration:none}
.post p{color:var(--muted);font-size:.92rem}
.post__meta{font-size:.78rem;margin:auto 0 0;color:var(--muted)}
.cases{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.case{border:1px solid var(--rule);border-radius:var(--r);padding:28px 26px;background:#fff;box-shadow:var(--sh-sm)}
.case__tag{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--navy);background:var(--surface);border:1px solid var(--rule);
  border-radius:var(--r-pill);padding:4px 12px;margin:0 0 14px}
.case h3{font-size:1.12rem}
.case__ctx{color:var(--navy-deep);font-weight:500;font-size:.95rem}
.case p:last-child{margin:0;color:var(--muted);font-size:.95rem}
.case__kpi{display:flex;gap:22px;margin:16px 0 14px;padding:14px 0;border-block:1px solid var(--rule)}
.case__kpi b{display:block;font-family:var(--head);font-weight:800;font-size:1.5rem;color:var(--navy-deep);letter-spacing:-.02em;line-height:1.1}
.case__kpi span{font-size:.76rem;color:var(--muted)}
.people{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.person__ph{aspect-ratio:4/5;background:var(--surface);border:1px solid var(--rule);
  border-radius:var(--r);margin-bottom:14px;
  background-image:linear-gradient(135deg,transparent 48%,var(--rule) 48%,var(--rule) 52%,transparent 52%)}
.person h3{margin-bottom:.15em;font-size:1.05rem}
.person__role{color:var(--gold-deep);font-size:.85rem;font-weight:600;margin:0 0 .5em}
.person p{color:var(--muted);font-size:.92rem;margin:0}

/* v2 testimonials */
.testi{position:relative}
.testi__track{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.quote{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:28px 26px;box-shadow:var(--sh-sm);
  display:flex;flex-direction:column;gap:16px;position:relative}
.quote::before{content:"\201C";position:absolute;top:10px;right:22px;font-family:Georgia,serif;font-size:4.4rem;
  line-height:1;color:rgba(139,154,110,.25)}
.quote__stars{display:flex;gap:3px;color:var(--gold)}
.quote__stars svg{width:16px;height:16px}
.quote p{margin:0;font-size:1rem;color:var(--ink);line-height:1.6}
.quote footer{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid var(--rule)}
.quote__av{width:42px;height:42px;border-radius:50%;background:var(--navy-deep);color:var(--gold-light);
  display:grid;place-items:center;font-family:var(--head);font-weight:800;font-size:.9rem;flex:0 0 42px}
.quote__who b{display:block;font-size:.92rem;color:var(--navy-deep)}
.quote__who span{font-size:.8rem;color:var(--muted)}
.testi__nav{display:none;gap:8px;margin-top:18px;justify-content:center}
.testi__nav button{width:38px;height:38px;border-radius:50%;border:1px solid var(--rule);background:#fff;cursor:pointer;
  display:grid;place-items:center;color:var(--navy)}
.testi__nav button:hover{background:var(--surface)}

/* 17. Build notes ---------------------------------------------------------*/
.buildnote{border:1px dashed var(--gold);background:rgba(165,179,137,.08);
  border-radius:var(--r-sm);padding:16px 20px;max-width:74ch}
.buildnote p{margin:0;font-size:.9rem;color:#6b4f14}
.buildnote b{display:inline-block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold-deep);margin-right:10px}
.buildnote--inline{margin-top:20px}

/* 18. Forms ---------------------------------------------------------------*/
.contact{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(28px,5vw,60px);align-items:start}
.form{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.form h2,.form>.btn,.form__status,.f,.jobs{grid-column:1/-1}
.form>.btn{justify-self:start;padding-inline:34px}
.form--card{background:#fff;border:1px solid var(--rule);border-radius:var(--r);padding:30px 28px;box-shadow:var(--sh-md)}
.form--tight{grid-template-columns:1fr;background:var(--surface);border:1px solid var(--rule);
  border-radius:var(--r);padding:26px 24px}
.f--half{grid-column:span 1}
.f label,.f legend{display:block;font-size:.85rem;font-weight:600;color:var(--navy-deep);margin-bottom:6px}
.f label span,.f legend span{color:var(--muted);font-weight:400}
.f input[type=text],.f input[type=tel],.f input[type=email],.f select,.f textarea{
  width:100%;font:inherit;font-size:.95rem;padding:12px 14px;border:1px solid var(--rule);
  border-radius:var(--r-sm);background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.f textarea{resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--navy);outline:0;box-shadow:0 0 0 4px rgba(74,86,57,.12)}
.f input[aria-invalid="true"],.f select[aria-invalid="true"]{border-color:var(--err)}
fieldset.f{border:0;margin:0;padding:0}
.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 20px}
.checks label,.consent{font-weight:400;font-size:.9rem;color:var(--ink);display:flex;gap:9px;
  align-items:flex-start;margin:0}
.checks input,.consent input{margin-top:3px;accent-color:var(--navy);width:16px;height:16px}
.f--consent{border-top:1px solid var(--rule);padding-top:18px}
.form__status{font-size:.9rem;margin:0}
.form__status[data-state="ok"]{color:var(--ok)}
.form__status[data-state="err"]{color:var(--err)}
.aside{display:flex;flex-direction:column;gap:18px}
.aside__box{border:1px solid var(--rule);border-left:3px solid var(--gold);
  border-radius:var(--r);padding:22px 22px;background:var(--surface)}
.aside__box h3{font-size:1rem;margin-bottom:.4em}
.aside__box p{margin:0 0 .6em;font-size:.93rem;color:var(--muted)}
.aside__box p:last-child{margin:0}
.aside__box--wa{background:rgba(37,211,102,.08);border-left-color:var(--wa)}
.small{font-size:.82rem!important}
.empty{border:1px dashed var(--rule);border-radius:var(--r);padding:22px;color:var(--muted);
  font-size:.95rem;background:var(--surface)}
.form__meta{display:none}

/* 19. Footer --------------------------------------------------------------*/
.ftr{background:var(--navy-ink);color:#D9D6CB;padding:clamp(48px,6vw,72px) 0 0;margin-bottom:0}
.ftr__grid{display:grid;grid-template-columns:1.5fr 1.15fr 1fr 1fr;gap:34px;padding-bottom:40px}
.ftr__col h2{font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;color:var(--gold-light);
  font-family:var(--sans);font-weight:700;margin-bottom:16px}
.ftr__col ul{display:flex;flex-direction:column;gap:10px}
.ftr__col a{color:#D9D6CB;font-size:.88rem;text-decoration:none;transition:color .15s}
.ftr__col a:hover{color:#fff;text-decoration:underline;text-decoration-color:var(--gold)}
.ftr__col li{font-size:.88rem}
.ftr__col--brand .emblem{width:46px;height:46px;margin-bottom:14px}
.ftr__line{font-family:var(--head);font-weight:700;color:#fff;font-size:1.08rem;line-height:1.4;margin-bottom:14px}
.ftr__neutral{font-size:.8rem;color:#9A9D8E;max-width:36ch;margin:0 0 18px}
.ftr__social{display:flex;gap:8px}
.ftr__social a{display:inline-flex;width:30px;height:30px;border-radius:8px;overflow:hidden;
  transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.ftr__social a:hover{transform:translateY(-3px) scale(1.06);box-shadow:0 10px 22px -8px rgba(0,0,0,.6)}
.ftr__social svg{width:100%;height:100%;display:block}
.ftr__news{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:var(--r);
  padding:22px 24px;margin-bottom:38px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:20px;align-items:center}
.ftr__news h2{font-family:var(--head);font-size:1.12rem;font-weight:700;color:#fff;margin:0 0 4px;letter-spacing:0;text-transform:none}
.ftr__news p{margin:0;font-size:.86rem;color:#B5B8A8}
.ftr__news form{display:flex;gap:8px}
.ftr__news input{flex:1;min-width:0;font:inherit;font-size:.92rem;padding:12px 14px;border-radius:var(--r-pill);
  border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#fff}
.ftr__news input::placeholder{color:#9A9D8E}
.ftr__news input:focus{outline:0;border-color:var(--gold)}
.ftr__base{display:flex;flex-wrap:wrap;gap:14px 26px;justify-content:space-between;
  align-items:center;padding-top:20px;padding-bottom:16px;border-top:1px solid rgba(255,255,255,.1)}
.ftr__base p{margin:0;font-size:.8rem;color:#9A9D8E}
.ftr__base ul{display:flex;flex-wrap:wrap;gap:20px}
.ftr__base a{color:#9A9D8E;font-size:.8rem;text-decoration:none}
.ftr__base a:hover{color:#fff}
.ftr__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;padding-bottom:22px}
.ftr__disc{font-size:.75rem;color:#7E8174;margin:0}
.ftr__built{margin:0;font-size:.8rem;color:#9A9D8E}
.ftr__built a{color:#fff;font-weight:600;text-decoration:underline;text-decoration-color:#E53935;text-decoration-thickness:2px;text-underline-offset:4px;transition:color .15s}
.ftr__built a:hover{color:#FF6B6B}
.ftr .ph{background:none;border-bottom-color:rgba(165,179,137,.5)}

/* 20. Mobile action bar / floating WhatsApp / cookie bar -----------------*/
.mbar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:98;
  grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid var(--rule);
  box-shadow:0 -8px 24px -12px rgba(35,42,27,.25)}
.mbar a{padding:14px 6px;text-align:center;font-size:.88rem;font-weight:600;
  text-decoration:none;color:var(--navy);border-right:1px solid var(--rule)}
.mbar a:last-child{border-right:0}
.mbar__cta{background:var(--navy);color:#fff!important}

.wafab{position:fixed;right:20px;bottom:22px;z-index:97;display:flex;align-items:center;gap:10px;
  padding:6px 18px 6px 6px;border-radius:var(--r-pill);background:var(--wa);color:#0B2B17;text-decoration:none;
  font-weight:700;font-size:.9rem;box-shadow:0 12px 28px -8px rgba(37,211,102,.7);
  transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.wafab:hover{transform:translateY(-3px);box-shadow:0 16px 32px -8px rgba(37,211,102,.8)}
.wafab__ico{width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;color:#25D366}
.wafab__ico svg{width:26px;height:26px}
.wafab__pulse{position:absolute;inset:0;border-radius:var(--r-pill);border:2px solid rgba(37,211,102,.6);
  animation:pulse 2.2s ease-out infinite;pointer-events:none}
@keyframes pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.25);opacity:0}}

.cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:150;background:#fff;color:var(--ink);
  border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--sh-lg);padding:16px 18px;
  display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;justify-content:space-between;
  max-width:760px;margin:0 auto;font-size:.88rem}
.cookie[hidden]{display:none}
.cookie p{margin:0;flex:1 1 320px;color:var(--muted)}
.cookie p a{font-weight:600}
.cookie__btns{display:flex;gap:8px}

/* 21. Scroll reveal (v2) --------------------------------------------------*/
[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}
[data-reveal-stagger]>*{opacity:0;transform:translateY(18px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
[data-reveal-stagger].is-in>*{opacity:1;transform:none}
[data-reveal-stagger].is-in>*:nth-child(2){transition-delay:.07s}
[data-reveal-stagger].is-in>*:nth-child(3){transition-delay:.14s}
[data-reveal-stagger].is-in>*:nth-child(4){transition-delay:.21s}
[data-reveal-stagger].is-in>*:nth-child(5){transition-delay:.28s}
[data-reveal-stagger].is-in>*:nth-child(6){transition-delay:.35s}
[data-reveal-stagger].is-in>*:nth-child(7){transition-delay:.42s}
[data-reveal-stagger].is-in>*:nth-child(8){transition-delay:.49s}
.no-js [data-reveal],.no-js [data-reveal-stagger]>*{opacity:1;transform:none}

/* 22. Responsive ----------------------------------------------------------*/
@media (max-width:1120px){
  .hdr__tel{display:none}
  .nav__item>a{padding:12px 10px;font-size:.89rem}
  .mega__grid{grid-template-columns:repeat(2,1fr)}
  .mega__all{grid-column:auto}
  .grid--4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:960px){
  .nav{display:none}
  .burger{display:flex}
  .hero__inner{grid-template-columns:1fr}
  .hero__viz{max-width:520px}
  .split,.contact,.srv{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .pillars,.posts,.people,.problems,.testi__track{grid-template-columns:repeat(2,1fr)}
  .stats__row{grid-template-columns:repeat(2,1fr);gap:14px}
  .ctaband__inner{grid-template-columns:1fr}
  .ctaband .btnrow{justify-content:flex-start}
  .ftr__grid{grid-template-columns:repeat(2,1fr)}
  .ftr__news{grid-template-columns:1fr}
  body{padding-bottom:56px}
  .mbar{display:grid}
  .wafab{bottom:70px;right:14px;padding:0;width:54px;height:54px;justify-content:center}
  .wafab span:not(.wafab__ico){display:none}
  .wafab__ico{width:54px;height:54px;background:transparent;color:#fff}
  .cookie{bottom:64px}
  .trust__inner{flex-direction:column;align-items:stretch;gap:10px}
}
@media (max-width:640px){
  body{font-size:16px}
  .grid--2,.grid--3,.grid--4,.caps--two,.models,.cases,.checks,.ticks,.posts,.people,
  .pillars,.steps,.problems{grid-template-columns:1fr}
  .testi__track{grid-template-columns:1fr}
  .form{grid-template-columns:1fr}
  .btnrow .btn{flex:1 1 200px}
  .f--half{grid-column:1/-1}
  .phase{grid-template-columns:1fr;gap:10px;padding:22px}
  .phase__mark{display:inline-block;border-top:0;border-left:3px solid var(--gold);padding:0 0 0 12px}
  .phase__mark span{font-size:1.5rem}
  .brand__txt span{display:none}
  .hdr__end .btn{display:none}
  .hdr__end{gap:8px}
  .mnav{inset:68px 0 0}
  .hdr__inner{min-height:68px}
  .hero h1{font-size:2.1rem}
  .leadcard{padding:22px 18px 18px}
  .compare{font-size:.86rem}
  .compare th,.compare td{padding:12px 12px}
  .stat{padding:18px 16px}
  .topbar{font-size:.76rem}
}

/* 23. Motion / print ------------------------------------------------------*/
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .boothgrid rect{animation:none;opacity:1}
  [data-reveal],[data-reveal-stagger]>*{opacity:1;transform:none}
  .marquee__track{animation:none}
  .wafab__pulse{display:none}
}
@media print{
  .hdr,.mnav,.mbar,.ctaband,.ftr__base,.wafab,.cookie,.topbar{display:none}
  body{font-size:11pt;padding:0}
  .section{padding:18pt 0}
  a{text-decoration:none;color:#000}
  [data-reveal],[data-reveal-stagger]>*{opacity:1;transform:none}
}

/* 24. v2.1 — 99designs-inspired additions: blobs, floating chips, bento ---*/
.hero__blob{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;z-index:-1;opacity:.75}
.hero__blob--1{width:520px;height:520px;right:-140px;top:-160px;background:rgba(139,154,110,.55)}
.hero__blob--2{width:420px;height:420px;left:-160px;bottom:-200px;background:rgba(234,226,214,.18)}
.hero__blob--3{width:260px;height:260px;left:42%;top:60%;background:rgba(165,179,137,.22)}
.hero__viz{padding:26px 0}
.chip{position:absolute;z-index:2;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;
  background:rgba(255,255,255,.96);color:var(--ink);box-shadow:var(--sh-lg);font-size:.8rem;font-weight:600;
  border:1px solid rgba(255,255,255,.6);animation:float 6s ease-in-out infinite}
.chip small{display:block;font-weight:500;color:var(--muted);font-size:.72rem}
.chip__dot{width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(94,122,58,.18)}
.chip__ico{width:32px;height:32px;border-radius:9px;background:var(--surface);display:grid;place-items:center;color:var(--navy)}
.chip__ico svg{width:16px;height:16px}
.chip--1{top:-6px;left:-34px;animation-delay:0s}
.chip--2{right:-30px;top:38%;animation-delay:-2s}
.chip--3{bottom:-8px;left:8%;animation-delay:-4s}
.chip__bar{width:90px;height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden;margin-top:4px}
.chip__bar i{display:block;height:100%;width:78%;background:var(--grad-gold);border-radius:6px}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

.bento{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(150px,auto);gap:18px}
.bento__cell{position:relative;overflow:hidden;padding:28px;border-radius:18px;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(4px)}
.bento__cell h3{color:#fff;font-size:1.18rem;margin-bottom:.4em}
.bento__cell p{color:#D9D6CB;margin:0;font-size:.95rem}
.bento__cell--big{grid-column:span 4;grid-row:span 2;background:linear-gradient(135deg,rgba(139,154,110,.35),rgba(139,154,110,.08))}
.bento__cell--big h3{font-size:1.6rem;max-width:22ch}
.bento__cell--2{grid-column:span 2}
.bento__cell--3{grid-column:span 3}
.bento__cell--stat{display:flex;flex-direction:column;justify-content:flex-end}
.bento__num{font-family:var(--head);font-weight:800;font-size:clamp(2.2rem,4vw,3.2rem);color:#fff;line-height:1;letter-spacing:-.03em}
.bento__num small{font-size:.5em;color:var(--gold-light)}
.bento__cell .pillar__ico{margin-bottom:14px}
.bento__cell--accent{background:var(--grad-gold);border-color:transparent}
.bento__cell--accent h3,.bento__cell--accent p{color:#1F2618}
.bento__cell--accent .btn{margin-top:14px;background:#1F2618;color:#fff}
.bento__viz{position:absolute;right:-30px;bottom:-30px;width:60%;opacity:.5;pointer-events:none}
@media (max-width:960px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .bento__cell--big{grid-column:span 2;grid-row:span 1}
  .bento__cell--2,.bento__cell--3{grid-column:span 1}
  .chip--1{left:-6px}.chip--2{right:-6px}
}
@media (max-width:640px){
  .bento{grid-template-columns:1fr}
  .bento__cell--2,.bento__cell--3,.bento__cell--big{grid-column:span 1}
  .chip{display:none}
  .hero__viz{padding:0}
}
@media (prefers-reduced-motion:reduce){.chip{animation:none}}

/* 25. v2.2 — reference-matched effects ------------------------------------*/
/* scroll progress line under the header */
.hdr__progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);
  background:var(--grad-gold);pointer-events:none}
/* hero headline word reveal */
.js .hero h1 .w{display:inline-block;opacity:0;transform:translateY(22px) rotate(2deg);
  animation:wordin .7s var(--ease) forwards}
@keyframes wordin{to{opacity:1;transform:none}}
.js .hero__sub,.js .hero .btnrow,.js .hero__trust,.js .hero__badge{opacity:0;animation:fadeup .8s var(--ease) forwards}
.js .hero__badge{animation-delay:.05s}.js .hero__sub{animation-delay:.55s}.js .hero .btnrow{animation-delay:.7s}.js .hero__trust{animation-delay:.85s}
.js .leadcard{opacity:0;transform:translateY(24px) scale(.98);animation:cardin .9s var(--ease) .35s forwards}
@keyframes fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes cardin{to{opacity:1;transform:none}}
/* parallax layers */
.hero__blob,.chip{will-change:transform}
/* button shine sweep */
.btn--gold,.btn--primary{position:relative;overflow:hidden}
.btn--gold::after,.btn--primary::after{content:"";position:absolute;top:0;left:-70%;width:50%;height:100%;
  background:linear-gradient(110deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);
  transition:left .6s var(--ease);pointer-events:none}
.btn--gold:hover::after,.btn--primary:hover::after{left:130%}
/* 3D tilt on cards (transform set by JS) */
.card[data-tilt]{transform-style:preserve-3d;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .22s}
.card[data-tilt]:hover{transform:perspective(900px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(-4px)}
/* lead card border glow on focus-within */
.leadcard:focus-within{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#8B9A6E,#C9D3B4,#8B9A6E) border-box}
/* section divider wave under hero */
.hero__wave{position:absolute;left:0;right:0;bottom:-1px;height:60px;pointer-events:none}
.hero__wave svg{display:block;width:100%;height:100%}
/* testimonials → snap slider on small screens */
@media (max-width:640px){
  .testi__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding:4px 2px 10px;
    -webkit-overflow-scrolling:touch;scrollbar-width:none}
  .testi__track::-webkit-scrollbar{display:none}
  .quote{flex:0 0 88%;scroll-snap-align:center}
  .testi__nav{display:flex}
}
@media (prefers-reduced-motion:reduce){
  .js .hero h1 .w,.js .hero__sub,.js .hero .btnrow,.js .hero__trust,.js .hero__badge,.js .leadcard{opacity:1;transform:none;animation:none}
  .btn--gold::after,.btn--primary::after{display:none}
  .card[data-tilt]:hover{transform:translateY(-4px)}
}


/* 26. v2.3 — svgator-inspired motion (each one has a job; all off under reduced-motion) */
/* page transition: soft fade-in on load */
.js body{animation:pagein .5s ease both}
@keyframes pagein{from{opacity:0}to{opacity:1}}
/* animated logo: the two arcs draw themselves once */
.js .hdr .emblem path[stroke]{stroke-dasharray:60;stroke-dashoffset:60;animation:draw 1.1s ease-out .2s forwards}
.js .hdr .emblem path[stroke]:nth-of-type(4){stroke-dasharray:0;stroke-dashoffset:0;animation:none}
@keyframes draw{to{stroke-dashoffset:0}}
/* ambient motion: hero blobs drift slowly */
.hero__blob--1{animation:drift1 18s ease-in-out infinite alternate}
.hero__blob--2{animation:drift2 22s ease-in-out infinite alternate}
.hero__blob--3{animation:drift1 26s ease-in-out infinite alternate-reverse}
@keyframes drift1{from{transform:translate(0,0) scale(1)}to{transform:translate(-40px,30px) scale(1.12)}}
@keyframes drift2{from{transform:translate(0,0) scale(1)}to{transform:translate(50px,-30px) scale(1.08)}}
/* animated gradient on the highlighted headline word */
.hl,.hl .w{background-size:200% 100%;animation:shimmer 7s linear infinite}
@keyframes shimmer{from{background-position:0% 50%}to{background-position:200% 50%}}
/* self-drawing stroke path: the trend line in the Why CPSR grid */
.bento__viz path[stroke]{stroke-dasharray:420;stroke-dashoffset:420}
.bento__viz path[fill^=url]{opacity:0;transition:opacity .6s ease 1.1s}
.bento.is-in .bento__viz path[stroke]{animation:draw420 1.6s cubic-bezier(.4,0,.2,1) .3s forwards}
.bento.is-in .bento__viz path[fill^=url]{opacity:1}
@keyframes draw420{to{stroke-dashoffset:0}}
/* animated icons: service / solution icons respond to hover */
.card__ico svg,.pillar__ico svg,.problem__ico svg{transition:transform .35s var(--ease)}
.card:hover .card__ico svg{transform:scale(1.15) rotate(-6deg)}
.problem:hover .problem__ico svg{transform:scale(1.12)}
/* micro-interaction: step number lifts, FAQ answer fades in */
.step{transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.step:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.step:hover .step__n{background:var(--gold);color:#1F2618}
.step__n{transition:background .2s,color .2s}
.faq details[open]>div{animation:fadeup .35s var(--ease)}
/* loading state on submit buttons */
.btn.is-loading{pointer-events:none;opacity:.85}
.spin{width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex:0 0 18px}
.btn--gold .spin{border-color:rgba(31,38,24,.25);border-top-color:#1F2618}
@keyframes spin{to{transform:rotate(360deg)}}
/* success tick after a form is accepted */
.form__status[data-state=ok]::before{content:"";display:inline-block;width:8px;height:14px;border-right:2px solid var(--ok);border-bottom:2px solid var(--ok);
  transform:rotate(45deg) scale(0);margin:0 10px 0 3px;vertical-align:-2px;animation:tick .4s var(--ease) forwards}
@keyframes tick{to{transform:rotate(45deg) scale(1)}}
/* WhatsApp button: gentle attention wobble every 8s */
.wafab__ico{animation:wobble 8s ease-in-out infinite}
@keyframes wobble{0%,92%,100%{transform:rotate(0)}94%{transform:rotate(-12deg)}96%{transform:rotate(10deg)}98%{transform:rotate(-6deg)}}
@media (prefers-reduced-motion:reduce){
  .js body,.js .hdr .emblem path[stroke],.hero__blob,.hl,.hl .w,.bento__viz path,.wafab__ico{animation:none!important;opacity:1;stroke-dashoffset:0}
  .bento__viz path[fill^=url]{opacity:1}
}

/* 27. v2.4 — Dribbble-pattern additions -----------------------------------*/
/* hero capability pills */
.hero__pills{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 0}
.hero__pills li{font-size:.78rem;font-weight:600;color:#EDEBE3;padding:6px 12px;border-radius:var(--r-pill);
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px)}
.js .hero__pills{opacity:0;animation:fadeup .8s var(--ease) .6s forwards}
/* rotating circular badge on the lead card */
.rotor{position:absolute;top:-34px;right:-30px;width:92px;height:92px;z-index:3;pointer-events:none}
.rotor svg{width:100%;height:100%;animation:rotor 14s linear infinite}
.rotor text{font-family:var(--head);font-weight:700;font-size:8.4px;letter-spacing:.2em;fill:#fff}
.leadcard .leadcard__free{display:none}
.rotor__disc{position:absolute;inset:0;border-radius:50%;background:var(--navy-deep);box-shadow:0 12px 24px -8px rgba(0,0,0,.5)}
.rotor__core{position:absolute;inset:30px;border-radius:50%;background:var(--grad-gold);display:grid;place-items:center;color:#1F2618}
.rotor__core svg{width:16px;height:16px;animation:none}
@keyframes rotor{to{transform:rotate(360deg)}}
/* spotlight hover on dark bento cells */
.bento__cell{--mx:50%;--my:50%}
.bento__cell::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(360px circle at var(--mx) var(--my),rgba(201,211,180,.18),transparent 60%)}
.bento__cell:hover::after{opacity:1}
.bento__cell--accent::after{display:none}
/* CTA band as an inset rounded card */
.ctaband{margin:0 auto;max-width:calc(var(--wrap) - 2 * var(--gut));border-radius:28px;box-shadow:var(--sh-lg)}
main>.ctaband{margin-bottom:var(--sec)}
.section+.ctaband{margin-top:0}
@media (max-width:640px){
  .ctaband{border-radius:18px;max-width:calc(100% - 32px)}
  .rotor{width:74px;height:74px;top:-26px;right:-8px}
  .rotor__core{inset:24px}
}
@media (prefers-reduced-motion:reduce){.rotor svg{animation:none}.js .hero__pills{opacity:1;animation:none}}

/* 28. v2.5 — Lottie / Rive / Webflow / Framer-inspired layer ---------------*/
/* Brand preloader (first visit per session): emblem draws, then the curtain lifts */
.loader{position:fixed;inset:0;z-index:400;background:var(--navy-ink);display:grid;place-items:center;
  transition:transform .7s cubic-bezier(.76,0,.24,1),visibility 0s .7s}
.loader.is-done{transform:translateY(-100%);visibility:hidden}
.loader__mark{width:72px;height:72px}
.loader__mark circle,.loader__mark path,.loader__mark rect{stroke:#F7F2EB;fill:none;stroke-width:1.6;stroke-dasharray:200;stroke-dashoffset:200;
  animation:draw200 1s ease-out forwards}
.loader__mark path:nth-of-type(2),.loader__mark path:nth-of-type(3){stroke:#8B9A6E;animation-delay:.25s}
.loader__mark rect{animation-delay:.4s}
@keyframes draw200{to{stroke-dashoffset:0}}
.loader__word{margin-top:16px;font-family:var(--head);font-weight:800;font-size:1.4rem;letter-spacing:.3em;color:#F7F2EB;
  overflow:hidden;line-height:1.2;text-indent:.3em}
.loader__word span{display:inline-block;transform:translateY(110%);animation:rise .6s var(--ease) .5s forwards}
@keyframes rise{to{transform:none}}
.loader__bar{width:120px;height:2px;background:rgba(255,255,255,.12);margin-top:18px;border-radius:2px;overflow:hidden}
.loader__bar i{display:block;height:100%;width:0;background:var(--grad-gold);animation:load 1.1s ease-in-out forwards}
@keyframes load{to{width:100%}}
body.is-loading{overflow:hidden}
.no-js .loader{display:none}

/* Cursor-reactive booth grid (Rive-style): cells light up near the pointer */
.hero__grid{opacity:.7;transition:opacity .4s}
.boothgrid rect{transition:transform .35s var(--ease),filter .35s;transform-box:fill-box;transform-origin:center}
.boothgrid rect.is-near{transform:scale(1.35);filter:brightness(1.6)}
.boothgrid rect.is-near2{transform:scale(1.15);filter:brightness(1.25)}

/* Framer-style mask reveal on section headings */
[data-reveal] h2,[data-reveal-stagger] h2{clip-path:inset(0 0 100% 0);transform:translateY(24px);
  transition:clip-path .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
[data-reveal].is-in h2,[data-reveal-stagger].is-in h2{clip-path:inset(-10% 0 -10% 0);transform:none}
.no-js [data-reveal] h2{clip-path:none;transform:none}

/* Magnetic buttons (transform set by JS) */
.btn[data-magnet]{transition:transform .25s var(--ease),box-shadow .18s var(--ease),background .15s}
.btn[data-magnet]>span{display:inline-flex;align-items:center;gap:9px;transition:transform .25s var(--ease)}

/* Lottie-style animated icons on service cards */
.card__ico svg *{transform-box:fill-box;transform-origin:center}
.card:hover .ico-target circle:nth-child(1){animation:ping 1.2s ease-out infinite}
.card:hover .ico-target circle:nth-child(2){animation:ping 1.2s ease-out .2s infinite}
@keyframes ping{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.15);opacity:.15}}
.card:hover .ico-cal path:nth-child(2){animation:tick 1s ease-in-out infinite}
@keyframes tick{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
.card:hover .ico-search{animation:sweep 1.4s ease-in-out infinite}
@keyframes sweep{0%,100%{transform:rotate(0)}50%{transform:rotate(-14deg) translate(-1px,1px)}}
.card:hover .ico-chart path:nth-child(2){stroke-dasharray:40;stroke-dashoffset:40;animation:draw40 1.1s ease-out forwards}
@keyframes draw40{to{stroke-dashoffset:0}}
.card:hover .ico-pin{animation:drop .9s var(--ease) infinite}
@keyframes drop{0%,100%{transform:translateY(0)}40%{transform:translateY(-4px)}60%{transform:translateY(0) scaleY(.92)}}
.card:hover .ico-phone{animation:buzz .5s ease-in-out infinite}
@keyframes buzz{0%,100%{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}
.card:hover .ico-star{animation:twirl 1.2s var(--ease) infinite}
@keyframes twirl{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(1.2)}100%{transform:rotate(360deg) scale(1)}}
.card:hover .ico-screen path:nth-child(3){animation:blink 1.2s steps(2) infinite}
@keyframes blink{50%{opacity:.2}}

/* Webflow-style pinned scrollytelling for the campaign cycle (≥960px) */
.story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,70px);align-items:start}
.story__pin{position:sticky;top:120px}
.story__num{font-family:var(--head);font-weight:800;font-size:clamp(4rem,9vw,7.5rem);line-height:.9;letter-spacing:-.05em;color:var(--navy-deep);
  display:flex;align-items:baseline;gap:14px}
.story__num small{font-size:1rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);font-weight:700}
.story__title{font-size:clamp(1.6rem,3vw,2.3rem);margin:16px 0 8px;min-height:1.2em}
.story__text{color:var(--muted);font-size:1.05rem;max-width:40ch;min-height:4.8em;margin:0}
.story__ring{width:64px;height:64px;margin-top:22px}
.story__ring circle{fill:none;stroke-width:4}
.story__ring .bg{stroke:var(--rule)}
.story__ring .fg{stroke:var(--gold);stroke-linecap:round;stroke-dasharray:176;stroke-dashoffset:176;transition:stroke-dashoffset .5s var(--ease);transform:rotate(-90deg);transform-origin:center}
.story__pin .swap{transition:opacity .35s,transform .35s var(--ease)}
.story__pin.is-swapping .swap{opacity:0;transform:translateY(8px)}
.story__steps{display:flex;flex-direction:column;gap:14px;padding:6vh 0 10vh}
.story__steps .step{opacity:.45;transform:scale(.98);transition:opacity .4s,transform .4s var(--ease),box-shadow .4s,border-color .4s}
.story__steps .step.is-active{opacity:1;transform:none;border-color:var(--gold);box-shadow:var(--sh-md)}
.story__steps .step.is-active .step__n{background:var(--gold);color:#1F2618}
@media (max-width:960px){
  .story{grid-template-columns:1fr}
  .story__pin{display:none}
  .story__steps{padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
  .story__steps .step{opacity:1;transform:none}
}
@media (max-width:640px){.story__steps{grid-template-columns:1fr}}

@media (prefers-reduced-motion:reduce){
  .loader{display:none}
  .boothgrid rect{transition:none}
  [data-reveal] h2,[data-reveal-stagger] h2{clip-path:none;transform:none;transition:none}
  .card:hover .card__ico svg *{animation:none!important}
  .story__steps .step{opacity:1;transform:none}
}

/* 29. v2.6 — ambient background, card and text effects ---------------------*/
/* Ambient background layer (injected by JS): drifting gradient mesh + floating shapes + grain */
.bgfx{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bgfx__mesh{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;will-change:transform}
.bgfx__mesh--1{width:60vw;height:60vw;left:-20vw;top:-10vw;background:rgba(139,154,110,.35);animation:mesh1 28s ease-in-out infinite alternate}
.bgfx__mesh--2{width:50vw;height:50vw;right:-18vw;top:30vh;background:rgba(234,226,214,.9);animation:mesh2 34s ease-in-out infinite alternate}
.bgfx__mesh--3{width:40vw;height:40vw;left:30vw;bottom:-20vw;background:rgba(165,179,137,.28);animation:mesh1 40s ease-in-out infinite alternate-reverse}
@keyframes mesh1{to{transform:translate(12vw,8vh) scale(1.15)}}
@keyframes mesh2{to{transform:translate(-10vw,-12vh) scale(1.1)}}
.bgfx__grain{position:absolute;inset:0;opacity:.05;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.bgfx__shape{position:absolute;border:1.5px solid rgba(74,86,57,.22);opacity:.7;animation:floaty var(--d,20s) ease-in-out infinite alternate}
.bgfx__shape--ring{border-radius:50%}
.bgfx__shape--sq{border-radius:6px;transform:rotate(12deg)}
.bgfx__shape--plus{border:0;width:22px;height:22px}
.bgfx__shape--plus::before,.bgfx__shape--plus::after{content:"";position:absolute;background:rgba(139,154,110,.5);border-radius:2px}
.bgfx__shape--plus::before{left:50%;top:0;width:2px;height:100%;transform:translateX(-50%)}
.bgfx__shape--plus::after{top:50%;left:0;height:2px;width:100%;transform:translateY(-50%)}
.bgfx__shape--dot{width:8px;height:8px;border:0;border-radius:50%;background:rgba(139,154,110,.45)}
@keyframes floaty{from{translate:0 0;rotate:0deg}to{translate:var(--tx,20px) var(--ty,-30px);rotate:var(--rot,20deg)}}
/* let the mesh show through light sections */
body>main,body>.ftr,body>.topbar{position:relative;z-index:1}
.section--band{background:rgba(234,226,214,.72)}
.stats{background:rgba(255,255,255,.7)}
/* dark sections: slow shimmering dot field on top of the line grid */
.section--dark::after,.ctaband::after,.pagehead::after,.hero__dots{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(201,211,180,.35) 1px,transparent 1.5px);background-size:26px 26px;
  mask-image:radial-gradient(ellipse at 50% 50%,#000 20%,transparent 75%);animation:dots 18s linear infinite}
.hero__dots{display:block;z-index:-1}
@keyframes dots{to{background-position:26px 26px}}
.section--dark::after,.ctaband::after,.pagehead::after{z-index:0}
.section--dark .wrap,.ctaband__inner,.pagehead .wrap{z-index:1}

/* Cards: shine sweep, gradient border on hover, gentle lift for every card type */
.card,.post,.case,.quote,.problem,.model,.cap,.step,.aside__box,.srv{position:relative;overflow:hidden}
.card::after,.post::after,.case::after,.quote::after,.problem::after,.srv::after{content:"";position:absolute;top:-60%;left:-80%;width:60%;height:220%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);transform:rotate(12deg);opacity:0;pointer-events:none;
  transition:left .8s var(--ease),opacity .3s}
.card:hover::after,.post:hover::after,.case:hover::after,.quote:hover::after,.problem:hover::after,.srv:hover::after{left:140%;opacity:1}
.card:hover{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#8B9A6E,#E0D8CA 60%,#A5B389) border-box;border-color:transparent}
.case,.quote,.problem,.model,.cap,.aside__box{transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s}
.case:hover,.quote:hover,.problem:hover,.model:hover,.cap:hover,.aside__box:hover{transform:translateY(-4px);box-shadow:var(--sh-md);border-color:rgba(139,154,110,.5)}
.card h3,.post h3,.case h3{transition:transform .25s var(--ease),color .2s}
.card:hover h3,.post:hover h3,.case:hover h3{transform:translateX(3px);color:var(--gold-deep)}
.card__num{transition:color .25s,transform .25s var(--ease)}
.card:hover .card__num{color:var(--gold);transform:scale(1.3)}
.quote__av{transition:transform .3s var(--ease),background .2s}
.quote:hover .quote__av{transform:rotate(-8deg) scale(1.08);background:var(--gold);color:#1F2618}
.post__thumb svg{transition:transform .5s var(--ease)}
.post:hover .post__thumb svg{transform:scale(1.2) rotate(-4deg)}
.pillar__ico,.problem__ico,.chip__ico{transition:transform .3s var(--ease)}
.problem:hover .problem__ico{transform:rotate(-6deg) scale(1.08)}

/* Text: staggered paragraph reveal, animated link underline, marker highlight, gradient stats */
[data-reveal] p,[data-reveal] .lead{transition:opacity .7s var(--ease) .15s,transform .7s var(--ease) .15s}
[data-reveal]:not(.is-in) p,[data-reveal]:not(.is-in) .lead{opacity:0;transform:translateY(10px)}
.prose a,.faq p a,.aside__box p a:not(.btn),.leadcard__note a,.cookie p a{text-decoration:none;background-image:linear-gradient(var(--gold),var(--gold));
  background-size:0 2px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .3s var(--ease),color .2s;padding-bottom:1px}
.prose a:hover,.faq p a:hover,.aside__box p a:not(.btn):hover,.leadcard__note a:hover,.cookie p a:hover{background-size:100% 2px;color:var(--gold-deep)}
.ftr__col a{background-image:linear-gradient(var(--gold),var(--gold));background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .3s var(--ease),color .15s}
.ftr__col a:hover{text-decoration:none;background-size:100% 1px}
.nav__item>a{position:relative}
.nav__item>a::before{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:2px;border-radius:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.nav__item>a:hover::before{transform:scaleX(1)}
.mk{background:linear-gradient(120deg,rgba(139,154,110,.35),rgba(165,179,137,.45));background-repeat:no-repeat;background-size:0 88%;background-position:0 90%;
  padding:0 .15em;margin:0 -.15em;border-radius:3px;transition:background-size .9s var(--ease) .3s;color:inherit}
.is-in .mk,.hero .mk{background-size:100% 88%}
.stat__v{background:linear-gradient(120deg,var(--navy-deep),var(--navy-soft) 60%,var(--gold-deep));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat__v small{-webkit-text-fill-color:var(--gold-deep)}
.stat{transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s}
.stat:hover{transform:translateY(-4px);box-shadow:var(--sh-md);background:#fff}
[data-reveal].is-in .eyebrow::before{animation:grow .6s var(--ease) both;transform-origin:left}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.faq summary{transition:color .2s,padding-left .25s var(--ease)}
.faq summary:hover{color:var(--gold-deep);padding-left:6px}

@media (max-width:960px){.bgfx__mesh{filter:blur(60px)}.bgfx__shape{display:none}}
@media (prefers-reduced-motion:reduce){
  .bgfx__mesh,.bgfx__shape,.section--dark::after,.ctaband::after,.pagehead::after,.hero__dots{animation:none}
  .card::after,.post::after,.case::after,.quote::after,.problem::after,.srv::after{display:none}
  [data-reveal]:not(.is-in) p,[data-reveal]:not(.is-in) .lead{opacity:1;transform:none}
  .mk{background-size:100% 88%;transition:none}
}

/* 30. v2.7 — photography ---------------------------------------------------*/
/* hero: photo layer under the gradient */
.hero__photo{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero__photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:.65;
  filter:saturate(.85);transform:scale(1.06);animation:kenburns 26s ease-in-out infinite alternate}
.hero__photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(31,37,25,.9) 0%,rgba(31,37,25,.55) 45%,rgba(31,37,25,.2) 100%),
             linear-gradient(180deg,rgba(31,37,25,.05),rgba(31,37,25,.7))}
@keyframes kenburns{from{transform:scale(1.06) translate(0,0)}to{transform:scale(1.14) translate(-1.5%,-1%)}}
/* page heads with a photo */
.pagehead--photo{min-height:clamp(320px,38vw,460px);display:flex;align-items:flex-end}
.pagehead--photo .pagehead__photo{position:absolute;inset:0;overflow:hidden}
.pagehead--photo .pagehead__photo img{width:100%;height:100%;object-fit:cover;opacity:.7;filter:saturate(.9)}
.pagehead--photo .pagehead__photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(31,37,25,.9) 0%,rgba(31,37,25,.55) 50%,rgba(31,37,25,.2) 100%),
             linear-gradient(180deg,rgba(31,37,25,.05),rgba(31,37,25,.65))}
.pagehead--photo .wrap{width:100%}
/* card media (services, solutions) */
.card__media{position:relative;margin:-28px -26px 20px;aspect-ratio:16/9;overflow:hidden;border-radius:var(--r) var(--r) 0 0;
  background:var(--navy-deep)}
.grid--compact .card__media{margin:-24px -22px 18px}
.card__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform .7s var(--ease),filter .4s;filter:saturate(.9)}
.card:hover .card__media img{transform:scale(1.08);filter:saturate(1)}
.card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(31,37,25,.45))}
.card__media+.card__num{top:14px;right:14px;color:#fff;background:rgba(0,0,0,.35);padding:3px 8px;border-radius:999px;font-size:.72rem;backdrop-filter:blur(4px)}
.card .card__media~.card__ico{position:relative;top:auto;margin:-46px 0 14px;background:var(--navy-deep);color:var(--gold-light);
  box-shadow:0 8px 20px -8px rgba(0,0,0,.6);border:3px solid #fff}
.card:hover .card__media~.card__ico{background:var(--gold);color:#1F2618}
/* posts */
.post__thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.post:hover .post__thumb img{transform:scale(1.07)}
.post__thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(31,37,25,.55))}
.post__thumb .post__cat{position:absolute;left:16px;bottom:12px;z-index:1;color:#fff;margin:0;
  background:rgba(0,0,0,.35);padding:4px 10px;border-radius:999px;backdrop-filter:blur(4px)}
/* cases */
.case__media{margin:-28px -26px 22px;aspect-ratio:21/9;overflow:hidden;position:relative;background:var(--navy-deep)}
.case__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.case:hover .case__media img{transform:scale(1.06)}
.case__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(31,37,25,.5))}
/* pinned story: photo per phase */
.story__photo{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;margin-top:22px;box-shadow:var(--sh-lg);background:var(--navy-deep)}
.story__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);
  transition:opacity .5s var(--ease),transform 1.2s var(--ease)}
.story__photo img.is-on{opacity:1;transform:scale(1)}
.story__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(31,37,25,.55));pointer-events:none}
/* problem section image */
.split--photo{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.photo-frame{position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--sh-lg);aspect-ratio:4/3;background:var(--navy-deep)}
.photo-frame img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.photo-frame:hover img{transform:scale(1.05)}
.photo-frame__tag{position:absolute;left:16px;bottom:16px;background:rgba(255,255,255,.94);color:var(--navy-deep);font-weight:600;font-size:.82rem;
  padding:8px 14px;border-radius:999px;box-shadow:var(--sh-md);display:flex;align-items:center;gap:8px}
.photo-frame__tag i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(94,122,58,.2)}
/* bento big cell photo */
.bento__cell--big .bento__photo{position:absolute;inset:0;z-index:-1}
.bento__cell--big{isolation:isolate}
.bento__cell--big .bento__photo img{width:100%;height:100%;object-fit:cover;opacity:.32;filter:saturate(.7)}
.bento__cell--big .bento__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(31,37,25,.9),rgba(58,69,47,.55))}
/* CTA band with photo */
.ctaband__photo{position:absolute;inset:0;z-index:0;overflow:hidden}
.ctaband__photo img{width:100%;height:100%;object-fit:cover;opacity:.35;filter:saturate(.8)}
.ctaband__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(31,37,25,.95),rgba(31,37,25,.6) 60%,rgba(31,37,25,.4))}
/* generic image band (about / careers) */
.photo-band{border-radius:22px;overflow:hidden;box-shadow:var(--sh-lg);aspect-ratio:21/9;background:var(--navy-deep);margin-bottom:40px}
.photo-band img{width:100%;height:100%;object-fit:cover}
/* image reveal */
[data-reveal] .photo-frame,[data-reveal] .photo-band{clip-path:inset(0 0 0 100% round 22px);transition:clip-path 1s var(--ease) .1s}
[data-reveal].is-in .photo-frame,[data-reveal].is-in .photo-band{clip-path:inset(0 0 0 0 round 22px)}
@media (max-width:960px){
  .split--photo{grid-template-columns:1fr}
  .story__photo{display:none}
}
@media (prefers-reduced-motion:reduce){
  .hero__photo img{animation:none}
  [data-reveal] .photo-frame,[data-reveal] .photo-band{clip-path:none;transition:none}
}

/* 31. v2.8 — signature effects (Framer / LottieFiles / Rive / Webflow) -------*/
/* Framer: page-transition curtain */
.curtain{position:fixed;inset:0;z-index:390;background:var(--navy-ink);transform:translateY(100%);pointer-events:none;
  transition:transform .55s cubic-bezier(.76,0,.24,1)}
.curtain::after{content:"CPSR";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--head);font-weight:800;
  letter-spacing:.3em;color:#F7F2EB;opacity:0;transition:opacity .3s .2s}
body.is-leaving .curtain{transform:translateY(0);pointer-events:auto}
body.is-leaving .curtain::after{opacity:.9}
body.is-arriving .curtain{transform:translateY(-100%);transition:transform .7s cubic-bezier(.76,0,.24,1) .05s}
/* Rive: hero booth grid — bigger, radar sweep, gold glow near the cursor */
.hero__grid{inset:auto -6% -14% 38%;opacity:.9}
.boothgrid rect{transition:transform .35s var(--ease),filter .35s,fill .35s}
.boothgrid rect.is-near{fill:#FFC15E;transform:scale(1.5);filter:drop-shadow(0 0 6px rgba(255,193,94,.9))}
.boothgrid rect.is-near2{fill:#C9D3B4;transform:scale(1.2)}
.boothgrid rect.is-scan{fill:#E6EBDA;filter:drop-shadow(0 0 4px rgba(230,235,218,.8))}
/* LottieFiles-style animated dashboard illustration */
.live{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,70px);align-items:center}
.live__frame{position:relative;border-radius:22px;background:linear-gradient(160deg,#1F2519,#3A452F 60%,#2B3323);padding:22px;box-shadow:var(--sh-lg);
  border:1px solid rgba(255,255,255,.08);overflow:hidden}
.live__frame::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 80% 0%,rgba(139,154,110,.35),transparent 60%);pointer-events:none}
.live__bar{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#B5B8A8;font-weight:700}
.live__bar i{width:8px;height:8px;border-radius:50%;background:#22D3B5;box-shadow:0 0 0 4px rgba(34,211,181,.25);animation:livepulse 1.6s ease-in-out infinite}
@keyframes livepulse{50%{box-shadow:0 0 0 8px rgba(34,211,181,0)}}
.live svg{display:block;width:100%;height:auto}
.live .cell{fill:#3A452F;stroke:#1F2519;stroke-width:1.5;transition:fill .3s,transform .3s;transform-box:fill-box;transform-origin:center;animation:cellin .6s var(--ease) both}
.live .cell.safe{fill:#8B9A6E}.live .cell.battle{fill:#EAE2D6}.live .cell.hard{fill:#4A5639}
.live .cell.dim{opacity:.25}
.live .cell.lit{fill:#FFC15E!important;transform:scale(1.12);filter:drop-shadow(0 0 6px rgba(255,193,94,.8))}
@keyframes cellin{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
.live .bar{fill:#8B9A6E;transform-box:fill-box;transform-origin:bottom;animation:barup 1.2s var(--ease) both}
.live .bar.b2{fill:#C9D3B4}
@keyframes barup{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.live .line{fill:none;stroke:#FFC15E;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:600;stroke-dashoffset:600;animation:draw600 2.4s var(--ease) .6s forwards}
.live .area{fill:url(#lg);opacity:0;animation:fadein .8s ease 2.6s forwards}
@keyframes draw600{to{stroke-dashoffset:0}}
@keyframes fadein{to{opacity:1}}
.live .dot{fill:#FFC15E;opacity:0;animation:fadein .3s ease forwards}
.live .ping{fill:none;stroke:#FFC15E;stroke-width:1.5;opacity:0;animation:ping2 2.2s ease-out infinite}
@keyframes ping2{0%{opacity:.9;transform:scale(.3)}100%{opacity:0;transform:scale(2.2)}}
.live .tick{font-family:var(--head);font-weight:800;font-size:22px;fill:#fff}
.live .lbl{font-family:var(--sans);font-size:9px;fill:#B5B8A8;letter-spacing:.06em;text-transform:uppercase}
.live .grid line{stroke:rgba(255,255,255,.08)}
.live .traveller{fill:#fff;offset-path:path("M20 150 C80 120 120 160 180 110 S280 60 340 70");animation:travel 4s linear infinite}
@keyframes travel{to{offset-distance:100%}}
.live__legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.live__legend button{font:inherit;font-size:.78rem;font-weight:600;color:#EDEBE3;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);
  border-radius:999px;padding:6px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:background .2s,transform .2s}
.live__legend button i{width:10px;height:10px;border-radius:2px}
.live__legend button:hover,.live__legend button.is-active{background:rgba(255,193,94,.2);transform:translateY(-2px);border-color:rgba(255,193,94,.5)}
.live__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.live__kpi{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px 12px}
.live__kpi b{display:block;font-family:var(--head);font-weight:800;font-size:1.35rem;color:#fff;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.live__kpi span{font-size:.7rem;color:#B5B8A8;text-transform:uppercase;letter-spacing:.08em}
.live__kpi b em{font-style:normal;color:#22D3B5;font-size:.7em;margin-left:4px}
/* Webflow: scroll parallax layers */
[data-parallax]{will-change:transform}
[data-parallax] img{will-change:transform}
/* ripple on buttons */
.btn .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:ripple .6s ease-out forwards;pointer-events:none}
@keyframes ripple{to{transform:scale(4);opacity:0}}
@media (max-width:960px){.live{grid-template-columns:1fr}.hero__grid{inset:auto -10% -20% -10%;opacity:.55}}
@media (prefers-reduced-motion:reduce){
  .curtain{display:none}
  .live .cell,.live .bar,.live .line,.live .area,.live .dot,.live .ping,.live .traveller,.live__bar i{animation:none;opacity:1;stroke-dashoffset:0;transform:none}
  .boothgrid rect.is-scan{fill:inherit;filter:none}
}

.live__kpi b span{font:inherit;color:inherit}

/* 32. v3 hero — immersive, centred, interactive (Framer / Webflow / Rive / Lottie cues) --*/
.hero--v3{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,6vw,72px) 0 0;text-align:center}
.hero--v3 .hero__photo img{opacity:.55;object-position:center 35%}
.hero--v3 .hero__photo::after{background:linear-gradient(180deg,rgba(31,37,25,.55) 0%,rgba(31,37,25,.7) 45%,rgba(31,37,25,.96) 100%)}
.hero--v3::before{opacity:.12}
/* Webflow-style animated aurora */
.hero__aurora{position:absolute;inset:-20% -10%;z-index:-1;pointer-events:none;filter:blur(70px);opacity:.75;mix-blend-mode:screen}
.hero__aurora span{position:absolute;border-radius:50%;animation:aurora 16s ease-in-out infinite alternate}
.hero__aurora span:nth-child(1){width:55vw;height:40vw;left:-10%;top:10%;background:radial-gradient(closest-side,rgba(139,154,110,.9),transparent)}
.hero__aurora span:nth-child(2){width:45vw;height:35vw;right:-8%;top:0;background:radial-gradient(closest-side,rgba(255,193,94,.55),transparent);animation-duration:21s;animation-direction:alternate-reverse}
.hero__aurora span:nth-child(3){width:50vw;height:30vw;left:25%;bottom:-10%;background:radial-gradient(closest-side,rgba(201,211,180,.6),transparent);animation-duration:26s}
@keyframes aurora{0%{transform:translate(0,0) scale(1) rotate(0)}50%{transform:translate(6vw,-4vw) scale(1.15) rotate(12deg)}100%{transform:translate(-4vw,5vw) scale(.95) rotate(-8deg)}}
/* Rive-style cursor spotlight */
.hero__spot{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(420px circle at var(--sx,50%) var(--sy,50%),rgba(255,235,190,.16),rgba(255,235,190,.05) 40%,transparent 70%);mix-blend-mode:screen}
.hero--v3.is-hover .hero__spot{opacity:1}
.hero--v3 .hero__grid{inset:auto 0 -10% 0;opacity:.35;z-index:0;mask-image:linear-gradient(180deg,transparent,#000 40%,#000 70%,transparent)}
.hero--v3 .hero__grid .boothgrid{width:100%}
/* centred content */
.hero__center{position:relative;z-index:2;max-width:980px;display:flex;flex-direction:column;align-items:center}
.hero--v3 .hero__badge{margin-bottom:26px}
.hero__title{font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.02;letter-spacing:-.035em;max-width:16ch;margin:0 0 .35em;text-wrap:balance}
.js .hero h1 .w{filter:blur(14px);animation:wordblur .9s var(--ease) forwards}
@keyframes wordblur{to{opacity:1;transform:none;filter:blur(0)}}
.hl--scribble{position:relative;display:inline-block;padding:0 .1em}
.scribble{position:absolute;left:0;right:0;bottom:-.08em;height:.28em;width:100%;overflow:visible}
.scribble path{fill:none;stroke:#FFC15E;stroke-width:5;stroke-linecap:round;stroke-dasharray:320;stroke-dashoffset:320;animation:scrib 1s var(--ease) 1.1s forwards;opacity:.9}
@keyframes scrib{to{stroke-dashoffset:0}}
.hero--v3 .hero__sub{max-width:58ch;font-size:clamp(1.05rem,1.6vw,1.25rem);margin:0 auto}
.hero__ctas{justify-content:center}
.hero__ctas .btn--ghost-inv svg{width:16px;height:16px}
.hero--v3 .hero__trust{justify-content:center;margin-top:20px}
/* quick lead bar */
.quickbar{position:relative;display:grid;grid-template-columns:1fr 1fr 1.2fr auto;gap:8px;margin-top:30px;padding:8px;border-radius:999px;width:min(100%,860px);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(12px);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.js .quickbar{opacity:0;animation:fadeup .8s var(--ease) .8s forwards}
.quickbar__field input{width:100%;font:inherit;font-size:.95rem;padding:13px 18px;border-radius:999px;border:1px solid transparent;background:rgba(255,255,255,.92);color:var(--ink);transition:box-shadow .2s,border-color .2s}
.quickbar__field input::placeholder{color:#7E8174}
.quickbar__field input:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 4px rgba(255,193,94,.25)}
.quickbar__field input[aria-invalid="true"]{border-color:#E06A55;box-shadow:0 0 0 3px rgba(224,106,85,.25)}
.quickbar .btn{min-height:50px;white-space:nowrap}
.quickbar__status{grid-column:1/-1;text-align:center;font-size:.85rem;margin:2px 0 0;min-height:0}
.quickbar__status:empty{display:none}
.quickbar__status[data-state=err]{color:#FFB4A6}
.quickbar__status[data-state=err] a{color:#fff}
/* interactive console (Rive-like 3D) */
.hero__stage{position:relative;z-index:2;margin-top:clamp(40px,6vw,72px);perspective:1400px;padding-bottom:34px}
.console{position:relative;margin:0 auto;max-width:960px;border-radius:22px;background:rgba(20,26,17,.72);border:1px solid rgba(255,255,255,.12);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(14px);
  transform:rotateX(var(--cx,10deg)) rotateY(var(--cy,0deg));transform-style:preserve-3d;transition:transform .25s var(--ease)}
.js .console{opacity:0;animation:consolein 1.2s var(--ease) .5s forwards}
@keyframes consolein{from{opacity:0;transform:rotateX(22deg) translateY(60px)}to{opacity:1;transform:rotateX(10deg)}}
.console__bar{display:flex;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.08);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:#B5B8A8;font-weight:700}
.console__dots{display:inline-flex;gap:6px}.console__dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.18)}
.console__dots i:nth-child(1){background:#E06A55}.console__dots i:nth-child(2){background:#FFC15E}.console__dots i:nth-child(3){background:#22D3B5}
.console__title{display:inline-flex;align-items:center;gap:8px}.console__title b{width:8px;height:8px;border-radius:50%;background:#22D3B5;box-shadow:0 0 0 4px rgba(34,211,181,.25);animation:livepulse 1.6s ease-in-out infinite}
.console__tag{margin-left:auto;background:rgba(255,255,255,.08);border-radius:999px;padding:4px 10px;letter-spacing:.06em}
.console__body{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr);gap:0}
.console__map{position:relative;padding:16px 10px 10px 18px}
.console__map svg{display:block;width:100%;height:auto}
.console .hex{fill:#3A452F;stroke:#141A11;stroke-width:1.2;transform-box:fill-box;transform-origin:center;transition:fill .25s,transform .25s,filter .25s;cursor:crosshair;animation:cellin .6s var(--ease) both}
.console .hex.safe{fill:#8B9A6E}.console .hex.battle{fill:#EAE2D6}.console .hex.hard{fill:#4A5639}
.console .hex.is-hot{fill:#FFC15E;transform:scale(1.25);filter:drop-shadow(0 0 8px rgba(255,193,94,.9))}
.console .hex.is-warm{filter:brightness(1.35);transform:scale(1.08)}
.console .hex.is-pulse{fill:#FFC15E;filter:drop-shadow(0 0 6px rgba(255,193,94,.8))}
.console__tip{position:absolute;z-index:3;pointer-events:none;background:#fff;color:var(--ink);border-radius:10px;padding:8px 12px;font-size:.78rem;box-shadow:var(--sh-lg);transform:translate(-50%,-120%);white-space:nowrap}
.console__tip b{display:block;font-family:var(--head);font-size:.86rem}.console__tip span{color:var(--muted)}
.console__side{border-left:1px solid rgba(255,255,255,.08);padding:16px 18px;display:flex;flex-direction:column;gap:12px;text-align:left}
.console__kpi span{display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#B5B8A8}
.console__kpi b{display:block;font-family:var(--head);font-weight:800;font-size:1.6rem;color:#fff;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}
.console__kpi b span{font:inherit;color:inherit}
.console__meter{display:block;height:6px;border-radius:6px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:6px}
.console__meter em{display:block;height:100%;width:0;background:var(--grad-gold);border-radius:6px;animation:meter 1.4s var(--ease) 1.2s forwards}
@keyframes meter{to{width:var(--w)}}
.console__legend{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px 12px;font-size:.72rem;color:#D9D6CB}
.console__legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.console__glow{position:absolute;inset:-1px;border-radius:22px;pointer-events:none;background:radial-gradient(500px 200px at var(--gx,50%) var(--gy,0%),rgba(255,193,94,.18),transparent 60%);opacity:0;transition:opacity .4s}
.console:hover .console__glow{opacity:1}
.hero__stage .chip{animation:float 6s ease-in-out infinite}
.hero__stage .chip--1{top:-26px;left:6%}.hero__stage .chip--2{right:4%;top:32%}.hero__stage .chip--3{bottom:8px;left:12%}
/* scroll cue */
.hero__scroll{position:relative;z-index:2;display:block;width:26px;height:42px;margin:6px auto 22px;border:2px solid rgba(255,255,255,.4);border-radius:14px}
.hero__scroll span{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#FFC15E;animation:wheel 1.8s ease-in-out infinite}
@keyframes wheel{0%{transform:translateY(0);opacity:1}70%{transform:translateY(14px);opacity:0}100%{opacity:0}}
@media (max-width:960px){
  .hero--v3{min-height:auto;padding-top:40px}
  .hero__title{font-size:clamp(2.4rem,11vw,3.4rem)}
  .quickbar{grid-template-columns:1fr;border-radius:22px}
  .quickbar .btn{width:100%}
  .console{transform:none!important}
  .js .console{animation:fadeup .9s var(--ease) .4s forwards}
  .console__body{grid-template-columns:1fr}
  .console__side{border-left:0;border-top:1px solid rgba(255,255,255,.08);display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
  .console__legend{grid-column:1/-1}
  .console__tag{display:none}
  .hero__stage .chip{display:none}
}
@media (prefers-reduced-motion:reduce){
  .hero__aurora span,.scribble path,.console__meter em,.hero__scroll span,.console__title b{animation:none}
  .scribble path{stroke-dashoffset:0}.console__meter em{width:var(--w)}
  .js .quickbar,.js .console{opacity:1;animation:none;transform:none}
  .js .hero h1 .w{filter:none}
}

/* v3 hero fixes */
.hero--v3>.wrap{width:100%}
.console__kpi b{white-space:nowrap}
.hero__stage .chip--1{top:8%;left:calc(50% - 560px)}
.hero__stage .chip--2{top:36%;right:calc(50% - 560px)}
.hero__stage .chip--3{bottom:-10px;left:calc(50% - 520px)}
.hero--v3 .hero__grid{left:50%;right:auto;width:min(100%,1100px);transform:translateX(-50%);opacity:.22;bottom:-6%}
@media (max-width:1180px){.hero__stage .chip{display:none}}
.console__kpi b span{display:inline!important;font:inherit;letter-spacing:inherit}
.hero__stage .chip--1{top:-22px;left:calc(50% - 610px)}
.hero__stage .chip--2{top:40%;right:calc(50% - 610px)}
.hero__stage .chip--3{bottom:-16px;left:calc(50% - 540px)}

/* 33. brand logo (official CPSR India emblem) */
.brand__logo{width:56px;height:56px;flex:0 0 56px;border-radius:50%;background:#fff;box-shadow:0 2px 10px -2px rgba(35,42,27,.25);transition:transform .35s var(--ease)}
.brand:hover .brand__logo{transform:rotate(-6deg) scale(1.05)}
.js .hdr .brand__logo{animation:logoin .9s var(--ease) both}
@keyframes logoin{from{opacity:0;transform:scale(.6) rotate(-20deg)}to{opacity:1;transform:none}}
.brand__txt b{font-size:1.4rem}
.ftr__logo{width:84px;height:84px;margin-bottom:16px;display:block}
.loader__logo{width:96px;height:96px;display:block;margin:0 auto;animation:logopulse 1.3s ease-in-out infinite alternate}
@keyframes logopulse{from{opacity:.55;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@media (max-width:640px){.brand__logo{width:46px;height:46px;flex-basis:46px}.brand__txt b{font-size:1.2rem}}
@media (prefers-reduced-motion:reduce){.js .hdr .brand__logo,.loader__logo{animation:none}}

/* ==========================================================================
   34. v3.1 — HERO POLISH. Same content, same layout; restrained motion.
   Easing everywhere: cubic-bezier(.22,1,.36,1). Transform/opacity only.
   ========================================================================== */
:root{--e-out:cubic-bezier(.22,1,.36,1)}
/* solid dark stays dominant: no photo, no aurora, no grid, no cursor spotlight */
.hero,.hero--v3{background:#141A11;min-height:auto;padding:clamp(72px,10vw,132px) 0 clamp(64px,8vw,104px)}
.hero::before,.hero::after,.hero__aurora,.hero__spot,.hero__blob,.hero__dots,.hero__photo,.hero__stage,.hero__scroll,.hero__grid{display:none!important}
/* depth layer: soft light behind the headline, grain, vignette, faint drifting light, three slow shapes */
.hero__depth{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:0;animation:fadein .9s ease forwards}
.hero__depth>*{position:absolute;will-change:transform}
.hero__glow{left:50%;top:22%;width:min(900px,90vw);height:520px;transform:translate(-50%,-30%);
  background:radial-gradient(closest-side,rgba(139,154,110,.16),rgba(139,154,110,.05) 55%,transparent 75%)}
.hero__sheen{inset:-30%;opacity:.045;background:linear-gradient(115deg,transparent 35%,rgba(234,226,214,.9) 50%,transparent 65%);animation:sheen 22s ease-in-out infinite alternate}
@keyframes sheen{from{transform:translate3d(-8%,-4%,0)}to{transform:translate3d(8%,4%,0)}}
.hero__shape{border-radius:50%;opacity:.07}
.hero__shape--1{width:520px;height:520px;right:-160px;top:-180px;background:#8B9A6E;filter:blur(70px);animation:drift-a 18s ease-in-out infinite alternate}
.hero__shape--2{width:380px;height:380px;left:-140px;bottom:-160px;background:#5E6C49;filter:blur(70px);animation:drift-b 22s ease-in-out infinite alternate}
.hero__shape--3{width:220px;height:220px;left:58%;top:64%;border:1px solid rgba(201,211,180,.5);background:none;opacity:.12;animation:drift-a 16s ease-in-out infinite alternate-reverse}
@keyframes drift-a{to{transform:translate3d(-16px,14px,0)}}
@keyframes drift-b{to{transform:translate3d(18px,-12px,0)}}
.hero__grain{inset:0;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero__vignette{inset:0;background:radial-gradient(ellipse at 50% 45%,transparent 55%,rgba(0,0,0,.42) 100%)}
.hero__center{will-change:transform,opacity}

/* entrance sequence (overrides the v2 timings) */
.js .hero__badge{opacity:0;transform:translateY(14px);animation:rise-in .8s var(--e-out) .15s forwards}
.hero__title .ln{display:inline-block;overflow:hidden;padding-bottom:.2em;margin-bottom:-.2em;vertical-align:bottom}
.hero__title .ln__in{display:inline-block}
.js .hero__title .ln__in{transform:translateY(105%);opacity:0;animation:line-in 1s var(--e-out) .3s forwards}
.js .hero__title .ln:nth-child(3) .ln__in{animation-delay:.45s}
@keyframes line-in{to{transform:none;opacity:1}}
@keyframes rise-in{to{opacity:1;transform:none}}
.js .hero h1 .w{opacity:1;transform:none;filter:none;animation:none}    /* line reveal replaces word reveal */
.hl,.hl .w{animation:none;background-size:100% 100%}                    /* gradient text stays static */
.scribble path{stroke-dasharray:320;stroke-dashoffset:320;animation:scrib .85s var(--e-out) 1.05s forwards;stroke-width:4.5}
.js .hero__sub{opacity:0;transform:translateY(14px);animation:rise-in .9s var(--e-out) .7s forwards}
.js .hero .btnrow{opacity:0;transform:translateY(14px);animation:rise-in .9s var(--e-out) .85s forwards}
.js .quickbar{opacity:0;transform:translateY(12px) scale(.985);animation:card-in 1s var(--e-out) 1s forwards}
@keyframes card-in{to{opacity:1;transform:none}}
.js .hero__trust{opacity:1;animation:none}
.js .hero__trust li{opacity:0;transform:translateY(8px);animation:rise-in .7s var(--e-out) forwards}
.js .hero__trust li:nth-child(1){animation-delay:1.25s}.js .hero__trust li:nth-child(2){animation-delay:1.38s}.js .hero__trust li:nth-child(3){animation-delay:1.51s}
.hero__trust li{transition:color .3s}
.hero__trust li:hover{color:#EDEBE3}

/* badge: only the dot pulses; hover lifts a touch */
.hero__badge{transition:transform .3s var(--e-out),border-color .3s,background .3s;backdrop-filter:none}
.hero__badge:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.1)}
.hero__badge i{box-shadow:none;background:#A5B389;animation:dotpulse 2.2s ease-in-out infinite}
@keyframes dotpulse{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.15);opacity:1}}

/* CTAs: lift 2–3px, soft shadow, arrow / play icon nudge, 300ms; no shine sweep in the hero */
.hero .btn{transition:transform .3s var(--e-out),box-shadow .3s var(--e-out),background .3s,border-color .3s,color .3s}
.hero .btn--gold::after,.hero .btn--primary::after{display:none}
.hero .btn--gold:hover{transform:translateY(-3px);box-shadow:0 14px 28px -10px rgba(139,154,110,.55);filter:none}
.hero .btn--gold:hover .btn__arrow{transform:translateX(5px)}
.hero .btn--ghost-inv:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.12)}
.btn__play{transition:transform .3s var(--e-out)}
.hero .btn--ghost-inv:hover .btn__play{transform:translateX(3px)}
.btn[data-magnet]{transition:transform .3s var(--e-out),box-shadow .3s var(--e-out),background .3s,border-color .3s}

/* lead form: focus glow, container elevation, submit lift */
.quickbar{transition:box-shadow .35s var(--e-out),transform .35s var(--e-out),border-color .3s}
.quickbar:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.26);box-shadow:0 34px 60px -30px rgba(0,0,0,.7)}
.quickbar__field input{transition:box-shadow .25s var(--e-out),border-color .25s,background .25s}
.quickbar__field input::placeholder{transition:opacity .2s}
.quickbar__field input:focus{background:#fff;border-color:#A5B389;box-shadow:0 0 0 4px rgba(165,179,137,.28)}
.quickbar__field input:focus::placeholder{opacity:.5}
.quickbar .btn--primary{transition:transform .3s var(--e-out),box-shadow .3s var(--e-out),background .3s}
.quickbar .btn--primary:hover{transform:translateY(-2px);box-shadow:0 14px 26px -12px rgba(46,54,36,.8)}
.quickbar .btn--primary:hover .btn__arrow{transform:translateX(4px)}
.quickbar .btn>span{display:inline-flex;align-items:center;gap:8px}

@media (max-width:960px){
  .hero__shape--1,.hero__shape--2{filter:blur(50px)}
  .hero__shape--3{display:none}
  .hero__sheen{display:none}
}
@media (prefers-reduced-motion:reduce){
  .hero__depth{opacity:1;animation:none}
  .hero__sheen,.hero__shape{animation:none}
  .js .hero__badge,.js .hero__title .ln__in,.js .hero__sub,.js .hero .btnrow,.js .quickbar,.js .hero__trust li{opacity:1;transform:none;animation:none}
  .scribble path{stroke-dashoffset:0;animation:none}
  .hero__badge i{animation:none}
  .hero__center,.hero__depth>*{transform:none!important}
}

/* ==========================================================================
   35. v3.1 — WAR ROOM POLISH. Cream section, dark dashboard; same structure.
   ========================================================================== */
/* staggered entrance of the left column */
.live__copy .eyebrow,.live__copy h2,.live__copy .lead,.live__copy .ticks li,.live__copy .btnrow{opacity:0;transform:translateY(12px);
  transition:opacity .8s var(--e-out),transform .8s var(--e-out)}
.live__copy h2{clip-path:inset(0 0 100% 0);transform:translateY(20px)}
.live__copy.is-in .eyebrow,.live__copy.is-in h2,.live__copy.is-in .lead,.live__copy.is-in .ticks li,.live__copy.is-in .btnrow{opacity:1;transform:none}
.live__copy.is-in h2{clip-path:inset(-10% 0 -10% 0)}
.live__copy.is-in .eyebrow{transition-delay:.05s}
.live__copy.is-in h2{transition-delay:.15s;transition-duration:1s}
.live__copy.is-in .lead{transition-delay:.35s}
.live__copy.is-in .ticks li:nth-child(1){transition-delay:.5s}.live__copy.is-in .ticks li:nth-child(2){transition-delay:.62s}
.live__copy.is-in .ticks li:nth-child(3){transition-delay:.74s}.live__copy.is-in .ticks li:nth-child(4){transition-delay:.86s}
.live__copy.is-in .btnrow{transition-delay:1s}
.live__copy .btnrow{transform:translateY(8px) scale(.98)}
.live__copy.is-in .btnrow{transform:none}
.live__copy[data-reveal] p{opacity:1;transform:none;transition:opacity .8s var(--e-out),transform .8s var(--e-out)}
/* check icons pop ~100ms before their text settles */
.live__copy .ticks li::before,.live__copy .ticks li::after{transform-origin:center;transition:transform .45s var(--e-out);transform:scale(0)}
.live__copy .ticks li::after{transform:rotate(-45deg) scale(0)}
.live__copy.is-in .ticks li::before{transform:scale(1)}
.live__copy.is-in .ticks li::after{transform:rotate(-45deg) scale(1)}
.live__copy.is-in .ticks li:nth-child(1)::before,.live__copy.is-in .ticks li:nth-child(1)::after{transition-delay:.4s}
.live__copy.is-in .ticks li:nth-child(2)::before,.live__copy.is-in .ticks li:nth-child(2)::after{transition-delay:.52s}
.live__copy.is-in .ticks li:nth-child(3)::before,.live__copy.is-in .ticks li:nth-child(3)::after{transition-delay:.64s}
.live__copy.is-in .ticks li:nth-child(4)::before,.live__copy.is-in .ticks li:nth-child(4)::after{transition-delay:.76s}
/* CTA */
.live__copy .btn--primary::after{display:none}
.live__copy .btn--primary{transition:transform .3s var(--e-out),box-shadow .3s var(--e-out),background .3s,filter .3s}
.live__copy .btn--primary:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 16px 28px -12px rgba(46,54,36,.75)}
.live__copy .btn--primary:hover .btn__arrow{transform:translateX(4px)}
.live__copy .btn>span{display:inline-flex;align-items:center;gap:8px}

/* dashboard card entrance: opacity 0 / y 25px / scale .97 → rest, ~1.1s, shadow settles with it */
.live{perspective:1600px}
.live__frame[data-reveal]{opacity:0;transform:translateY(25px) scale(.97);box-shadow:0 10px 30px -20px rgba(35,42,27,.2);
  transition:opacity 1.1s var(--e-out) .3s,transform 1.1s var(--e-out) .3s,box-shadow 1.1s var(--e-out) .3s;will-change:transform}
.live__frame[data-reveal].is-in{opacity:1;box-shadow:var(--sh-lg);
  transform:translate3d(var(--fmx,0px),calc(var(--fmy,0px) + var(--fsy,0px) + var(--hy,0px)),0) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}
.live__frame.is-settled{transition:opacity 1.1s var(--e-out),transform .5s var(--e-out),box-shadow .5s var(--e-out)}
.live__frame.is-in:hover{--hy:-2px;box-shadow:0 34px 70px -26px rgba(35,42,27,.5)}
/* ambient reflection sweeping the dashboard surface */
.live__frame::after{content:"";position:absolute;inset:-40%;pointer-events:none;opacity:.05;
  background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.9) 50%,transparent 60%);animation:sheen 13s ease-in-out infinite alternate}
.live__frame::before{opacity:.7}
/* live indicator: only the dot pulses */
.live__bar i{box-shadow:none;animation:dotpulse 2s ease-in-out infinite}
/* SVG: everything waits for .is-in, then plays once */
.live__frame .cell{opacity:0;animation:none}
.live__frame .bar{transform:scaleY(0);animation:none}
.live__frame .line{animation:none}
.live__frame .area{animation:none}
.live__frame .dot{animation:none;transform-box:fill-box;transform-origin:center;transform:scale(.4)}
.live__frame .ping{animation:none}
.live__frame .traveller{display:none}
.live__frame.is-in .cell{animation:cell-in .7s var(--e-out) both}
@keyframes cell-in{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.live__frame.is-in .bar{animation:bar-up .9s var(--e-out) both}
@keyframes bar-up{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.live .bar{transition:filter .25s}
.live .bar:hover{filter:brightness(1.18)}
.live__frame.is-in .line{animation:draw600 1.6s var(--e-out) 1.1s forwards}
.live__frame.is-in .area{animation:fadein .9s ease 2.4s forwards}
.live__frame.is-in .dot{animation:dot-in .5s var(--e-out) forwards}
@keyframes dot-in{to{opacity:1;transform:scale(1)}}
.live__frame.is-in .ping{animation:ping-soft 2.6s ease-out 3.1s infinite}
@keyframes ping-soft{0%{opacity:.6;transform:scale(.6)}100%{opacity:0;transform:scale(1.9)}}
/* live data: a few cells breathe every few seconds — brightness only */
.live .cell{transition:filter .9s ease,opacity .3s}
.live .cell.glint{filter:brightness(1.28)}
/* pills + stat cards: quiet hover */
.live__legend button{transition:background .22s var(--e-out),transform .22s var(--e-out),border-color .22s,filter .22s}
.live__legend button:hover{transform:translateY(-1px);background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.26);filter:brightness(1.06)}
.live__legend button.is-active{background:rgba(255,193,94,.2);border-color:rgba(255,193,94,.5)}
.live__legend button.is-active:hover{background:rgba(255,193,94,.26)}
.live__kpi{transition:transform .28s var(--e-out),border-color .28s,background .28s}
.live__kpi:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.075)}
/* parallax layers (values set by JS; transform only) */
.live__copy{will-change:transform;transform:translate3d(var(--mx,0px),calc(var(--my,0px) + var(--sy,0px)),0)}
@media (max-width:960px){
  .live__frame::after{display:none}
}
@media (prefers-reduced-motion:reduce){
  .live__copy .eyebrow,.live__copy h2,.live__copy .lead,.live__copy .ticks li,.live__copy .btnrow{opacity:1;transform:none;clip-path:none;transition:none}
  .live__copy .ticks li::before{transform:scale(1)}.live__copy .ticks li::after{transform:rotate(-45deg) scale(1)}
  .live__frame[data-reveal]{opacity:1;transform:none;transition:none}
  .live__frame::after,.live__bar i,.live__frame.is-in .ping{animation:none}
  .live__frame .cell,.live__frame .dot{opacity:1;transform:none;animation:none}
  .live__frame .bar{transform:none;animation:none}
  .live__frame .line{stroke-dashoffset:0;animation:none}
  .live__frame .area{opacity:1;animation:none}
  .live__copy,.live__frame.is-in{transform:none!important}
}

/* ==========================================================================
   36. v3.1 — small fixes
   ========================================================================== */
/* page heads + CTA band: flat scrim instead of a gradient, so the photo reads properly */
.pagehead--photo .pagehead__photo img{opacity:1;filter:none}
.pagehead--photo .pagehead__photo::after{background:rgba(20,26,17,.5)}
.pagehead::after,.pagehead::before{display:none}
.ctaband__photo img{opacity:1;filter:none}
.ctaband__photo::after{background:rgba(20,26,17,.62)}
.ctaband::before,.ctaband::after{display:none}
/* WhatsApp button hides while the header area (page top) or the footer is on screen */
.wafab{transition:transform .35s var(--e-out),opacity .35s var(--e-out),box-shadow .3s var(--e-out)}
.wafab.is-hidden{opacity:0;transform:translateY(24px);pointer-events:none}
/* problem cards: illustrated icons (replace the small red glyphs) */
.problem__ico--img{width:84px;height:84px;border-radius:18px;background:none;padding:0;margin:-6px 0 12px -6px;overflow:visible}
.problem__ico--img img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .4s var(--e-out)}
.problem:hover .problem__ico--img{transform:none}
.problem:hover .problem__ico--img img{transform:translateY(-3px) scale(1.04)}

/* 37. v3.2 — testimonials: featured dark-olive quote + two supporting cards + trust strip */
.tgrid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:auto auto;gap:20px}
.tcard{position:relative;margin:0;padding:30px 28px 26px;background:#fff;border:1px solid var(--rule);border-radius:20px;box-shadow:var(--sh-sm);
  display:flex;flex-direction:column;gap:18px;overflow:hidden;transition:transform .3s var(--e-out),box-shadow .3s var(--e-out),border-color .3s}
.tcard:hover{transform:translateY(-4px);box-shadow:var(--sh-md);border-color:rgba(139,154,110,.5)}
.tcard--feat{grid-row:1/3;padding:38px 36px 32px;background:var(--grad-hero);color:#fff;border-color:transparent;justify-content:space-between}
.tcard--feat::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(600px 300px at 90% 0%,rgba(139,154,110,.35),transparent 60%)}
.tcard__mark{position:absolute;right:26px;top:6px;font-family:Georgia,serif;font-size:7rem;line-height:1;color:rgba(139,154,110,.22);pointer-events:none;
  transition:transform .5s var(--e-out)}
.tcard--feat .tcard__mark{font-size:11rem;top:-4px;right:30px;color:rgba(255,193,94,.28)}
.tcard:hover .tcard__mark{transform:translateY(-4px) rotate(-4deg)}
.tcard__stars{display:flex;gap:4px;position:relative}
.tcard__stars i{width:14px;height:14px;background:var(--gold);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.tcard--feat .tcard__stars i{background:#FFC15E}
.tcard p{margin:0;position:relative;font-size:1.02rem;line-height:1.65;color:var(--ink)}
.tcard--feat p{font-family:var(--head);font-weight:600;font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.4;letter-spacing:-.01em;color:#fff;max-width:30ch;text-wrap:pretty}
.tcard footer{position:relative;display:flex;align-items:center;gap:14px;padding-top:16px;border-top:1px solid var(--rule);margin-top:auto}
.tcard--feat footer{border-top-color:rgba(255,255,255,.14)}
.tcard__av{width:44px;height:44px;border-radius:50%;background:var(--navy-deep);color:var(--gold-light);display:grid;place-items:center;
  font-family:var(--head);font-weight:800;font-size:.86rem;flex:0 0 44px;transition:transform .3s var(--e-out),background .3s}
.tcard--feat .tcard__av{background:#FFC15E;color:#1F2618}
.tcard:hover .tcard__av{transform:scale(1.06) rotate(-6deg)}
.tcard__who b{display:block;font-size:.94rem;color:var(--navy-deep)}
.tcard__who span{display:block;font-size:.8rem;color:var(--muted);margin-top:2px}
.tcard--feat .tcard__who b{color:#fff}
.tcard--feat .tcard__who span{color:#B5B8A8}
.tcard__kpi{margin-left:auto;text-align:right;padding-left:16px;border-left:1px solid rgba(255,255,255,.14)}
.tcard__kpi b{display:block;font-family:var(--head);font-weight:800;font-size:1.6rem;line-height:1;color:#FFC15E;letter-spacing:-.02em}
.tcard__kpi span{display:block;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:#B5B8A8;margin-top:5px}
/* trust strip under the cards */
.tstrip{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px;margin-top:26px;padding:18px 24px;background:rgba(255,255,255,.6);
  border:1px solid var(--rule);border-radius:var(--r-pill)}
.tstrip__avs{display:flex}
.tstrip__avs span{width:36px;height:36px;border-radius:50%;background:var(--surface);border:2px solid #fff;display:grid;place-items:center;
  font-family:var(--head);font-weight:800;font-size:.68rem;color:var(--navy-deep);margin-left:-10px}
.tstrip__avs span:first-child{margin-left:0}
.tstrip__avs span:nth-child(odd){background:var(--navy-deep);color:var(--gold-light)}
.tstrip p{margin:0;flex:1 1 320px;font-size:.92rem;color:var(--muted)}
.tstrip p b{color:var(--navy-deep);font-weight:700}
.link-more{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--navy);white-space:nowrap}
.link-more::after{content:"→";color:var(--gold);transition:transform .2s var(--e-out)}
.link-more:hover::after{transform:translateX(4px)}
@media (max-width:960px){
  .tgrid{grid-template-columns:1fr}
  .tcard--feat{grid-row:auto}
}
@media (max-width:640px){
  .tcard{padding:26px 22px 22px}
  .tcard--feat{padding:30px 24px 26px}
  .tcard__kpi{display:none}
  .tstrip{border-radius:18px;padding:16px 18px}
}
/* 38. v3.2 — finished-content pass */
.ph{background:none;border-bottom:0}                              /* placeholder marker retired; admin settings still fill data-setting hooks */
.buildnote{display:none}                                          /* internal "For CPSR" notes stay in source, never on the public page */
.section--tight:has(> .wrap > .buildnote:only-child){display:none}
.posts--4{grid-template-columns:repeat(4,1fr)}
.post h3 a{color:inherit}
.post:hover h3 a{color:var(--gold-deep)}
@media (max-width:1120px){.posts--4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.posts--4{grid-template-columns:1fr}}
/* photo cards (services / solutions): no icon badge over the image */
.card .card__media~.card__ico{display:none}
/* why-CPSR bento: no icon boxes */
.bento__cell .pillar__ico{display:none}

/* ==========================================================================
   39. v4 — site-wide 2026 polish: 3D cards, word reveals, floating sections,
   compact header, animated FAQ, staggered tables & footer, back-to-top.
   Transform/opacity only; everything off under prefers-reduced-motion.
   ========================================================================== */

/* ---- floating rounded sections (band + dark), stats card overlapping the hero ---- */
main>.section--band,main>.section--dark,main>.warroom{margin:0 auto;max-width:calc(100% - 2*clamp(12px,2vw,32px));border-radius:clamp(20px,2.5vw,34px);border:0}
main>.section--band{box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
main>.section--dark{box-shadow:var(--sh-lg)}
main>.section--band::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.35;
  background-image:radial-gradient(rgba(74,86,57,.22) 1px,transparent 1.5px);background-size:22px 22px;
  mask-image:radial-gradient(ellipse at 50% 0%,#000 10%,transparent 60%)}
main>.section--band>.wrap{position:relative}
.hero--v3{padding-bottom:clamp(110px,12vw,160px)}
.stats{position:relative;z-index:3;margin:-64px auto 0;max-width:calc(var(--wrap) - 2*var(--gut));border-radius:24px;border:1px solid var(--rule);
  box-shadow:var(--sh-lg);background:rgba(255,255,255,.92);backdrop-filter:blur(10px)}
.stats .wrap{padding:0 clamp(18px,3vw,34px)}
.stats__row{padding-top:26px}
.stats__note{padding-bottom:22px}
.trust{padding-top:calc(18px + 40px);margin-top:-40px}
@media (max-width:640px){.stats{margin-top:-40px;border-radius:18px}.hero--v3{padding-bottom:96px}}

/* ---- 3D tilt cards (values set by JS) ---- */
.tilt3d{--rx:0deg;--ry:0deg;--gx:50%;--gy:50%;position:relative;transform-style:preserve-3d;
  transition:transform .55s var(--e-out),box-shadow .55s var(--e-out),border-color .3s,background .3s!important;will-change:transform}
.tilt3d.is-tilting{transition:transform .12s linear,box-shadow .3s var(--e-out),border-color .3s,background .3s!important}
.tilt3d:hover{transform:perspective(1100px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(-6px) scale(1.012);
  box-shadow:0 30px 60px -28px rgba(35,42,27,.45),0 12px 24px -16px rgba(35,42,27,.25)}
.tilt3d .glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:4;opacity:0;transition:opacity .35s;
  background:radial-gradient(420px circle at var(--gx) var(--gy),rgba(255,255,255,.28),rgba(255,255,255,.05) 45%,transparent 65%);mix-blend-mode:soft-light}
.tilt3d:hover .glare{opacity:1}
.tilt3d.tilt3d--dark .glare{background:radial-gradient(460px circle at var(--gx) var(--gy),rgba(201,211,180,.22),transparent 60%);mix-blend-mode:screen}
/* images inside tilted cards pop and de-saturate less */
.tilt3d .card__media img,.tilt3d .case__media img,.tilt3d .post__thumb img{transition:transform .8s var(--e-out),filter .5s}
.tilt3d:hover .card__media img,.tilt3d:hover .case__media img,.tilt3d:hover .post__thumb img{transform:scale(1.07);filter:saturate(1.05)}
/* bento cells: lift on hover */
.bento__cell{transition:transform .5s var(--e-out),box-shadow .5s var(--e-out),background .3s}
.bento__cell:not(.bento__cell--accent):hover{background:rgba(255,255,255,.08)}
.bento__cell--accent:hover{filter:brightness(1.03)}
/* steps + capability rows: lift */
.cap,.phase{transition:transform .4s var(--e-out),box-shadow .4s var(--e-out),border-color .3s}
.cap:hover,.phase:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:rgba(139,154,110,.5)}
/* buttons: layered lift + glow ring */
.btn--gold,.btn--primary{position:relative}
.btn--gold:hover,.btn--primary:hover{transform:translateY(-2px)}

/* ---- text: word-by-word blur/rise on every h2 (JS splits into .w) ---- */
.h2-split .w{display:inline-block;opacity:0;filter:blur(6px);transform:translateY(14px) rotate(1deg);
  transition:opacity .75s var(--e-out),filter .75s var(--e-out),transform .75s var(--e-out);transition-delay:calc(var(--wi,0) * 55ms)}
.is-in .h2-split .w,.h2-split.is-in .w,.no-js .h2-split .w{opacity:1;filter:none;transform:none}
[data-reveal] h2.h2-split,[data-reveal-stagger] h2.h2-split{clip-path:none;transform:none;transition:none}
.live__copy h2.h2-split{clip-path:none;transform:none;opacity:1}
/* page-head h1: line-ish word reveal on load */
.js .pagehead h1 .w{display:inline-block;opacity:0;transform:translateY(24px);filter:blur(8px);animation:wordrise .9s var(--e-out) forwards;animation-delay:calc(.1s + var(--wi,0) * 45ms)}
@keyframes wordrise{to{opacity:1;transform:none;filter:none}}
.js .pagehead__sub,.js .pagehead .crumb{opacity:0;animation:rise-in .9s var(--e-out) .55s forwards}
.js .pagehead .crumb{animation-delay:.05s}
/* underline-draw on section eyebrows already exists; add a soft highlight sweep on lead paragraphs */
.sechead p,.prose--lead p:first-child{transition:opacity .8s var(--e-out) .2s,transform .8s var(--e-out) .2s}

/* ---- header: compact after scrolling ---- */
.hdr__inner,.brand__logo,.brand__txt b{transition:min-height .35s var(--e-out),width .35s var(--e-out),height .35s var(--e-out),flex-basis .35s var(--e-out),font-size .35s var(--e-out),transform .35s var(--e-out)}
.hdr.is-compact .hdr__inner{min-height:64px}
.hdr.is-compact .brand__logo{width:44px;height:44px;flex-basis:44px}
.hdr.is-compact .brand__txt b{font-size:1.2rem}
.hdr.is-compact .brand__txt span{display:none}
.hdr.is-compact{box-shadow:0 10px 30px -18px rgba(35,42,27,.35)}

/* ---- comparison table: rows stagger in, CPSR column highlights ---- */
[data-reveal] .compare tbody tr{opacity:0;transform:translateX(-10px);transition:opacity .6s var(--e-out),transform .6s var(--e-out)}
[data-reveal].is-in .compare tbody tr{opacity:1;transform:none}
[data-reveal].is-in .compare tbody tr:nth-child(1){transition-delay:.1s}[data-reveal].is-in .compare tbody tr:nth-child(2){transition-delay:.18s}
[data-reveal].is-in .compare tbody tr:nth-child(3){transition-delay:.26s}[data-reveal].is-in .compare tbody tr:nth-child(4){transition-delay:.34s}
[data-reveal].is-in .compare tbody tr:nth-child(5){transition-delay:.42s}[data-reveal].is-in .compare tbody tr:nth-child(6){transition-delay:.5s}
.compare td.is-us{position:relative}
.compare tbody tr:hover td.is-us{background:rgba(74,86,57,.09)}

/* ---- FAQ: JS-animated open/close, rotating plus ---- */
.faq details>div{overflow:hidden}
.faq details.is-animating>div{animation:none}
.faq summary::after{transition:transform .35s var(--e-out),top .35s var(--e-out)}

/* ---- footer: columns stagger in, brand watermark ---- */
.ftr{position:relative;overflow:hidden}
.ftr::before{content:"";position:absolute;right:-60px;bottom:-80px;width:520px;height:520px;pointer-events:none;opacity:.05;
  background:url("../img/logo/cpsr-white.svg") center/contain no-repeat}
.ftr .wrap{position:relative}
.ftr__grid>*{opacity:0;transform:translateY(16px);transition:opacity .8s var(--e-out),transform .8s var(--e-out)}
.ftr.is-in .ftr__grid>*{opacity:1;transform:none}
.ftr.is-in .ftr__grid>*:nth-child(2){transition-delay:.1s}.ftr.is-in .ftr__grid>*:nth-child(3){transition-delay:.2s}.ftr.is-in .ftr__grid>*:nth-child(4){transition-delay:.3s}
.no-js .ftr__grid>*{opacity:1;transform:none}

/* ---- back to top ---- */
.totop{position:fixed;left:22px;bottom:22px;z-index:96;width:46px;height:46px;border-radius:50%;border:1px solid var(--rule);background:rgba(255,255,255,.92);
  color:var(--navy);display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh-md);opacity:0;transform:translateY(16px);pointer-events:none;
  transition:opacity .35s var(--e-out),transform .35s var(--e-out),background .2s,color .2s}
.totop.is-on{opacity:1;transform:none;pointer-events:auto}
.totop:hover{background:var(--navy);color:#fff}
.totop svg{width:18px;height:18px}
.totop i{position:absolute;inset:-1px;border-radius:50%;background:conic-gradient(var(--gold) calc(var(--p,0) * 1%),transparent 0);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px))}
@media (max-width:960px){.totop{left:auto;right:12px;bottom:150px;width:40px;height:40px}}

/* ---- section spacing tune for the floating layout ---- */
main>.section--band+.section,main>.section+.section--band,main>.section--dark+.section,main>.section+.section--dark,main>.warroom+.section{padding-top:calc(var(--sec) - 10px)}

@media (hover:none){.tilt3d:hover{transform:none}.tilt3d .glare{display:none}}
@media (prefers-reduced-motion:reduce){
  .tilt3d:hover{transform:none}
  .tilt3d .glare{display:none}
  .h2-split .w,.js .pagehead h1 .w{opacity:1;transform:none;filter:none;animation:none;transition:none}
  .js .pagehead__sub,.js .pagehead .crumb{opacity:1;animation:none}
  [data-reveal] .compare tbody tr,.ftr__grid>*{opacity:1;transform:none;transition:none}
  .totop{transition:none}
}
/* stats card: sits below the hero, no overlap */
.hero--v3{padding-bottom:clamp(64px,8vw,104px)}
.stats{margin:clamp(28px,4vw,48px) auto 0}
.trust{padding-top:18px;margin-top:clamp(28px,4vw,48px)}
.hero__shape--3{display:none}
@media (max-width:640px){.stats{margin-top:24px}.hero--v3{padding-bottom:56px}}
/* no dot textures anywhere */
main>.section--band::before,.section--dark::after,.ctaband::after,.pagehead::after,.hero__dots,.hero__grain,.bgfx__grain,.bgfx__shape--dot{display:none!important}

/* ==========================================================================
   40. v4.3 — HERO SPLIT (reference-matched): copy left, fanned 3D cards right,
   flat green background, badge pill, bullets, amber CTA + play CTA, chips.
   ========================================================================== */
.hero--split{background:#2F3A28;text-align:left;padding:clamp(56px,7vw,96px) 0 clamp(56px,7vw,88px)}
.hero--split .hero__glow{background:radial-gradient(closest-side,rgba(165,179,137,.14),transparent 70%);top:30%}
.hero--split .hero__vignette{background:radial-gradient(ellipse at 50% 50%,transparent 60%,rgba(0,0,0,.28) 100%)}
.hero--split .hero__center{max-width:var(--wrap);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);grid-template-areas:"copy visual" "form form";
  gap:clamp(24px,4vw,64px) clamp(30px,5vw,80px);align-items:center;justify-items:stretch}
.hero__copy{grid-area:copy;display:flex;flex-direction:column;align-items:flex-start}
.hero__visual{grid-area:visual;display:grid;place-items:center;min-height:460px}
.hero--split .quickbar{grid-area:form;width:100%;margin-top:0}
/* badge: pill with shield glyph */
.hero--split .hero__badge{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.14);color:#EDEBE3;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:9px 16px 9px 12px;margin-bottom:26px}
.hero--split .hero__badge i{width:14px;height:14px;border-radius:0;background:none;margin:0 2px 0 0;animation:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l8 3.5v5.5c0 5-3.5 9.4-8 11-4.5-1.6-8-6-8-11V5.5z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l8 3.5v5.5c0 5-3.5 9.4-8 11-4.5-1.6-8-6-8-11V5.5z'/%3E%3C/svg%3E") center/contain no-repeat;background-color:#FFC15E}
/* headline: bold white, plain */
.hero--split .hero__title{font-size:clamp(2.5rem,5.2vw,4.5rem);line-height:1.02;letter-spacing:-.03em;max-width:14ch;margin:0 0 .4em;text-align:left}
.hero--split .hero__title .hl{background:none;-webkit-text-fill-color:#fff;color:#fff}
.hero--split .scribble{display:none}
.hero--split .hero__sub{font-size:1.06rem;color:#D9D6CB;max-width:52ch;margin:0 0 18px;text-align:left}
/* bullets */
.hero__points{display:flex;flex-direction:column;gap:12px;margin:6px 0 30px;color:#F2EFE6;font-size:1.02rem}
.hero__points li{position:relative;padding-left:22px}
.hero__points li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:#EDEBE3}
.js .hero__points li{opacity:0;transform:translateY(10px);animation:rise-in .7s var(--e-out) forwards}
.js .hero__points li:nth-child(1){animation-delay:.55s}.js .hero__points li:nth-child(2){animation-delay:.65s}.js .hero__points li:nth-child(3){animation-delay:.75s}.js .hero__points li:nth-child(4){animation-delay:.85s}
/* CTAs: amber primary + muted secondary, 10px radius */
.hero--split .hero__ctas{margin:0;justify-content:flex-start;gap:12px}
.hero--split .btn--gold{background:#FFC15E;color:#1F2618;border-radius:10px;box-shadow:0 12px 26px -12px rgba(255,193,94,.6)}
.hero--split .btn--gold:hover{background:#FFCB78;box-shadow:0 16px 30px -12px rgba(255,193,94,.7)}
.hero--split .btn--ghost-inv{background:rgba(255,255,255,.14);border-color:transparent;border-radius:10px;color:#fff}
.hero--split .btn--ghost-inv:hover{background:rgba(255,255,255,.22)}
.hero--split .btn__play{width:22px;height:22px;border-radius:50%;background:#fff;color:#2F3A28;padding:5px;flex:0 0 22px}
.hero__all{display:inline-flex;align-items:center;gap:8px;margin:20px 0 0;color:#fff;font-weight:600;font-size:.95rem;text-decoration:none;opacity:0;animation:rise-in .7s var(--e-out) 1s forwards}
.hero__all svg{width:14px;height:14px;transition:transform .3s var(--e-out)}
.hero__all:hover svg{transform:translateY(3px)}
/* trust chips: outlined pills */
.hero--split .hero__trust{justify-content:flex-start;margin-top:24px;gap:8px}
.hero--split .hero__trust li{border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:7px 14px;font-weight:600;color:#fff;font-size:.78rem;transition:background .25s,border-color .25s}
.hero--split .hero__trust li:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.55)}
.hero--split .hero__trust svg{width:13px;height:13px;color:#FFC15E}
/* quickbar: flatter to match */
.hero--split .quickbar{border-radius:16px;background:rgba(0,0,0,.18);border-color:rgba(255,255,255,.12);box-shadow:none}
.hero--split .quickbar__field input{border-radius:10px}
.hero--split .quickbar .btn{border-radius:10px}

/* ---- fanned 3D cards ---- */
.fan{position:relative;width:min(100%,540px);height:clamp(380px,34vw,470px);perspective:1500px;transform-style:preserve-3d;
  --tx:0deg;--ty:0deg;transform:rotateX(var(--tx)) rotateY(var(--ty));transition:transform .6s var(--e-out)}
.fan__card{position:absolute;left:50%;top:50%;width:clamp(200px,17vw,250px);aspect-ratio:3/4.3;margin:0;border-radius:22px;overflow:hidden;
  background:#1F2519;border:1px solid rgba(255,255,255,.18);box-shadow:0 40px 80px -30px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.04) inset;
  transform:translate(-50%,-50%) translateX(var(--x,0px)) translateY(var(--y,0px)) rotateZ(var(--rz,0deg)) rotateY(var(--ry,0deg)) translateZ(var(--z,0px)) scale(var(--s,1));
  transition:transform 1.1s var(--e-out),opacity 1.1s var(--e-out),filter 1.1s var(--e-out);will-change:transform;backface-visibility:hidden}
.fan__card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9)}
.fan__card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(31,37,25,.05) 30%,rgba(31,37,25,.9) 100%)}
.fan__card figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 16px 18px;z-index:2;color:#fff;display:flex;flex-direction:column;gap:6px}
.fan__tag{display:inline-block;align-self:flex-start;font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#FFC15E;background:rgba(0,0,0,.35);padding:4px 8px;border-radius:999px;backdrop-filter:blur(4px)}
.fan__card b{font-family:var(--head);font-weight:700;font-size:1.02rem;line-height:1.25;letter-spacing:-.01em}
.fan__row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.7rem;color:#D9D6CB}
.fan__sw{width:9px;height:9px;border-radius:2px;margin-left:4px}.fan__sw:first-child{margin-left:0}
.fan__sw--safe{background:#8B9A6E}.fan__sw--battle{background:#EAE2D6}.fan__sw--hard{background:#4A5639;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.fan__dot{width:8px;height:8px;border-radius:50%;background:#22D3B5;box-shadow:0 0 0 3px rgba(34,211,181,.25)}
.fan__meter{display:block;height:6px;border-radius:6px;background:rgba(255,255,255,.18);overflow:hidden;margin-top:4px}
.fan__meter i{display:block;height:100%;width:var(--w,0);background:#FFC15E;border-radius:6px}
/* positions: a = front, b = left-back, c = right-back */
.fan__card[data-pos="a"]{--x:0px;--y:0px;--rz:-3deg;--ry:0deg;--z:80px;--s:1;z-index:3;opacity:1}
.fan__card[data-pos="b"]{--x:-135px;--y:18px;--rz:-14deg;--ry:22deg;--z:0px;--s:.94;z-index:2;opacity:.92;filter:brightness(.85)}
.fan__card[data-pos="c"]{--x:135px;--y:14px;--rz:12deg;--ry:-22deg;--z:-10px;--s:.94;z-index:1;opacity:.9;filter:brightness(.8)}
.fan__shadow{position:absolute;left:50%;bottom:-6%;width:70%;height:40px;transform:translateX(-50%);border-radius:50%;background:rgba(0,0,0,.45);filter:blur(24px);z-index:0}
/* float + entrance */
.fan__inner,.fan{animation:fanfloat 7s ease-in-out infinite}
@keyframes fanfloat{0%,100%{translate:0 0}50%{translate:0 -9px}}
.js .fan__card{animation:fanin 1.2s var(--e-out) both}
.js .fan__card[data-pos="b"]{animation-delay:.15s}.js .fan__card[data-pos="c"]{animation-delay:.3s}
@keyframes fanin{from{opacity:0;transform:translate(-50%,-50%) translateY(60px) scale(.9)}}
.js .hero__visual{opacity:0;animation:fadein .8s ease .2s forwards}

@media (max-width:1180px){
  .fan__card[data-pos="b"]{--x:-110px}.fan__card[data-pos="c"]{--x:110px}
}
@media (max-width:960px){
  .hero--split .hero__center{grid-template-columns:1fr;grid-template-areas:"copy" "visual" "form";gap:34px}
  .hero__visual{min-height:0}
  .fan{height:380px;width:min(100%,460px)}
  .fan__card{width:200px}
  .fan__card[data-pos="b"]{--x:-105px}.fan__card[data-pos="c"]{--x:105px}
  .hero--split .quickbar{border-radius:16px}
}
@media (max-width:640px){
  .hero--split .hero__title{font-size:clamp(2.2rem,10vw,3rem)}
  .fan{height:330px}
  .fan__card{width:170px}
  .fan__card[data-pos="b"]{--x:-80px;--rz:-12deg}.fan__card[data-pos="c"]{--x:80px;--rz:10deg}
  .hero--split .hero__trust li{padding:6px 11px;font-size:.72rem}
}
@media (prefers-reduced-motion:reduce){
  .fan,.fan__inner{animation:none}
  .js .fan__card,.js .hero__visual,.js .hero__points li,.hero__all{animation:none;opacity:1;transform:none}
  .fan__card{transition:none}
}
.hero--split .hero__title{font-size:clamp(2.3rem,4.3vw,3.8rem);max-width:none;margin-bottom:.45em}
.hero--split .hero__title .ln{display:inline-block}
.hero--split .hero__title br{display:inline}
.hero--split .hero__center{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.hero--split .hero__title{font-size:clamp(2.2rem,3.9vw,3.4rem);white-space:nowrap}
@media (max-width:640px){.hero--split .hero__title{white-space:normal;font-size:clamp(2.1rem,9.5vw,2.8rem)}}
.fan__card[data-pos="b"]{--x:-120px}.fan__card[data-pos="c"]{--x:120px}
/* problem cards: fill dark olive on hover, text flips light */
.problem{transition:background .4s var(--e-out),color .4s,border-color .4s,transform .55s var(--e-out),box-shadow .55s var(--e-out)!important}
.problem:hover{background:var(--navy-deep);border-color:var(--navy-deep)}
.problem:hover h3{color:#fff}
.problem:hover p{color:#D9D6CB}
.problem:hover .problem__fix{color:#EDEBE3;border-top-color:rgba(255,255,255,.18)}
.problem:hover .problem__fix b{color:#FFC15E}
.problem:hover .problem__ico--img{background:rgba(255,255,255,.08)}
.problem:hover .glare{opacity:.5}
/* hero card stack: reference-matched motion (700ms cubic-bezier(.33,.1,.2,1), flat rotate, bottom fade) */
.fan{animation:none;transform:none;perspective:none;width:min(100%,560px);height:clamp(400px,36vw,500px);overflow:visible}
.fan__card{transform:translate(-50%,-50%);transition:transform .7s cubic-bezier(.33,.1,.2,1),opacity .7s cubic-bezier(.33,.1,.2,1);filter:none;opacity:1;width:clamp(200px,15vw,222px)}
.fan__card.is-front{pointer-events:auto}
.fan__shadow{display:none}
.fan::after{content:"";position:absolute;left:-10%;right:-10%;bottom:-2px;height:26%;pointer-events:none;z-index:30;background:linear-gradient(180deg,transparent 0,#2F3A28 55%,#2F3A28)}
.js .fan__card{animation:fanin 1s var(--e-out) both}
@keyframes fanin{from{opacity:0;transform:translate(-50%,-50%) translateY(50px) scale(.9)}}
@media (max-width:960px){.fan{height:440px}}
@media (max-width:640px){.fan{height:380px}.fan__card{width:170px}}
@media (prefers-reduced-motion:reduce){.fan__card{transition:none;animation:none}}
.fan__card::after{display:none}
.fan__card img{filter:none}
/* services carousel: continuous right → left glide */
.svc-marquee{overflow:hidden;margin:0 calc(-1 * var(--gut));padding:14px var(--gut) 24px;
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.svc-marquee .svc-track{display:flex;flex-wrap:nowrap;gap:22px;width:max-content;animation:svcmove calc(var(--n,8) * 5.5s) linear infinite;will-change:transform}
.svc-marquee:hover .svc-track,.svc-marquee:focus-within .svc-track{animation-play-state:paused}
.svc-marquee .svc-track>.card{flex:0 0 clamp(250px,22vw,300px)}
@keyframes svcmove{to{transform:translateX(calc(-50% - 11px))}}
@media (max-width:640px){.svc-marquee .svc-track>.card{flex-basis:78vw}}
@media (prefers-reduced-motion:reduce){.svc-marquee .svc-track{animation:none;flex-wrap:wrap;width:auto}}
/* hero stack: larger, sharper cards; entrance no longer blocks the glide */
.fan{width:min(100%,640px);height:clamp(500px,44vw,640px)}
.fan__card{width:clamp(250px,20vw,300px);border-radius:24px;border-color:rgba(255,255,255,.22)}
.fan__card img{filter:none;image-rendering:auto;transform:translateZ(0)}
.js .fan__card{animation:fanin .9s var(--e-out) backwards}
.hero--split .hero__center{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.hero--split .hero__visual{min-height:0}
@media (max-width:1180px){.fan__card{width:clamp(220px,19vw,260px)}}
@media (max-width:960px){.fan{height:500px}.fan__card{width:240px}}
@media (max-width:640px){.fan{height:400px}.fan__card{width:190px}}
.hero--split .hero__center{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);column-gap:clamp(24px,3vw,48px)}
.hero--split .hero__ctas .btn{white-space:nowrap}
.fan{width:min(100%,600px)}
.fan__card{width:clamp(240px,19vw,286px)}
.fan::after{display:none}
.fan__card{box-shadow:0 30px 60px -24px rgba(0,0,0,.65)}
/* services carousel v2: no edge fade, JS-driven glide, ‹ › buttons */
.svc-marquee{mask-image:none;-webkit-mask-image:none;position:relative;padding:14px var(--gut) 24px}
.svc-marquee .svc-track{animation:none;will-change:transform}
.svc-btn{position:absolute;top:calc(50% - 5px);transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1px solid var(--rule);background:#fff;color:var(--navy-deep);
  display:grid;place-items:center;cursor:pointer;box-shadow:var(--sh-md);z-index:5;transition:background .25s,color .25s,transform .25s var(--e-out),box-shadow .25s}
.svc-btn svg{width:20px;height:20px}
.svc-btn--prev{left:calc(var(--gut) - 24px)}
.svc-btn--next{right:calc(var(--gut) - 24px)}
.svc-btn:hover{background:var(--navy);color:#fff;transform:translateY(-50%) scale(1.06);box-shadow:0 16px 30px -12px rgba(46,54,36,.6)}
.svc-btn:active{transform:translateY(-50%) scale(.96)}
@media (max-width:640px){.svc-btn{width:40px;height:40px}.svc-btn--prev{left:6px}.svc-btn--next{right:6px}}
/* approach page phases: slide right → left on hover, back on leave */
.phase{position:relative;transition:transform .55s var(--e-out),box-shadow .55s var(--e-out),border-color .3s,background .3s}
.phase::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:4px 0 0 4px;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform .45s var(--e-out)}
.phase:hover{transform:translateX(-18px);box-shadow:var(--sh-md);border-color:rgba(139,154,110,.55);background:#fff}
.phase:hover::before{transform:scaleY(1)}
.phase__mark span{display:inline-block;transition:transform .55s var(--e-out),color .3s}
.phase:hover .phase__mark span{transform:translateX(-6px);color:var(--gold-deep)}
@media (hover:none){.phase:hover{transform:none}}
@media (prefers-reduced-motion:reduce){.phase,.phase::before,.phase__mark span{transition:none}.phase:hover{transform:none}}
/* approach phases: full 360° flip on hover, lands back upright */
.phases{perspective:1600px}
.phase{transform-style:preserve-3d;backface-visibility:visible}
.phase:hover{transform:none;animation:flip360 1s cubic-bezier(.45,.02,.2,1) 1 both}
.phase:hover::before{transform:scaleY(1)}
.phase:hover .phase__mark span{transform:none}
@keyframes flip360{0%{transform:perspective(1600px) rotateX(0)}50%{transform:perspective(1600px) rotateX(180deg) scale(.97)}100%{transform:perspective(1600px) rotateX(360deg)}}
@media (hover:none){.phase:hover{animation:none}}
@media (prefers-reduced-motion:reduce){.phase:hover{animation:none}}
.phase:hover{animation-duration:.55s}
/* approach phases: no hover effect */
.phase:hover{animation:none;transform:none;box-shadow:none;border-color:var(--rule);background:#fff}
.phase::before{display:none}
.phase:hover .phase__mark span{transform:none;color:var(--gold)}
/* dashboard flip card (uiverse "loud-frog-61"): hover → rotateY(180) rotateZ(180) reveals the back face */
.live__frame{perspective:1400px;background:none!important;border:0!important;padding:0!important;box-shadow:none!important;overflow:visible}
.live__frame::before,.live__frame::after{display:none}
.live__flip{position:relative;transform-style:preserve-3d;transition:transform 1.3s cubic-bezier(.4,.05,.2,1);will-change:transform;border-radius:22px}
.live__frame:hover .live__flip{transform:rotateY(180deg) rotateZ(180deg);cursor:pointer}
.live__front,.live__back{border-radius:22px;background:linear-gradient(160deg,#1F2519,#3A452F 60%,#2B3323);padding:22px;border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--sh-lg);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;position:relative}
.live__front::before,.live__back::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 80% 0%,rgba(139,154,110,.35),transparent 60%);pointer-events:none}
.live__front>*,.live__back>*{position:relative}
.live__back{position:absolute;inset:0;transform:rotateY(180deg) rotateZ(180deg);display:flex;flex-direction:column}
.live__back h3{color:#fff;font-size:clamp(1.3rem,1.8vw,1.7rem);margin:6px 0 16px;max-width:22ch}
.live__list{display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(255,255,255,.1)}
.live__list li{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:.9rem}
.live__list b{color:#fff;font-weight:600}
.live__list span{color:#B5B8A8}
.live__note{margin:14px 0 0;font-size:.82rem;color:#FFC15E}
.live__back .live__kpis{margin-top:auto}
.live__frame[data-reveal].is-in{transform:none}
@media (hover:none){.live__frame:hover .live__flip{transform:none}}
@media (max-width:640px){.live__back h3{font-size:1.15rem}.live__list li{grid-template-columns:1fr;gap:2px;padding:8px 0}}
@media (prefers-reduced-motion:reduce){.live__flip{transition:none}.live__frame:hover .live__flip{transform:none}}
/* footer background: video (assets/video/footer-bg.mp4) or canvas particles, under a dark tint */
.ftr{position:relative;isolation:isolate}
.ftr__bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.ftr__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease;filter:saturate(.9)}
.ftr.has-video .ftr__video{opacity:.55}
.ftr.has-video .ftr__particles{opacity:0}
.ftr__particles{position:absolute;inset:0;width:100%;height:100%;opacity:.9;transition:opacity 1s ease;mix-blend-mode:screen}
.ftr__tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,42,27,.55),rgba(35,42,27,.35) 40%,rgba(35,42,27,.7))}
.ftr>.wrap,.ftr__mark,.ftr__base,.ftr__bottom{position:relative;z-index:1}
.ftr::before{z-index:0}
@media (prefers-reduced-motion:reduce){.ftr__video,.ftr__particles{display:none}}
/* hero: video background under a flat green tint */
.hero--split{position:relative;background:#2F3A28}
.hero__bgvid{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.hero__bgvid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.hero--split.has-video .hero__bgvid video{opacity:1}
.hero__bgtint{position:absolute;inset:0;background:rgba(31,40,26,.66)}
.hero--split .hero__depth{z-index:0}
.hero--split .hero__glow,.hero--split .hero__shape,.hero--split .hero__sheen{display:none}
.hero--split .hero__center{position:relative;z-index:2}
@media (prefers-reduced-motion:reduce){.hero__bgvid video{display:none}}
/* section video background (Why CPSR) */
.sec__bgvid{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;border-radius:inherit}
.sec__bgvid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.has-video .sec__bgvid video{opacity:1}
.sec__bgtint{position:absolute;inset:0;background:rgba(31,40,26,.7)}
#why{position:relative;overflow:hidden}
#why::before{display:none}
#why>.wrap{position:relative;z-index:1}
@media (prefers-reduced-motion:reduce){.sec__bgvid video{display:none}}

/* ==========================================================================
   41. Contact page — one premium panel: dark info side + form; chips; next steps
   ========================================================================== */
.section--contact{padding-top:clamp(44px,5vw,72px)}
.cpanel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);border-radius:28px;overflow:hidden;box-shadow:var(--sh-lg);background:#fff;border:1px solid var(--rule)}
.cpanel__side{position:relative;background:var(--grad-hero);color:#fff;padding:clamp(28px,3.5vw,48px);display:flex;flex-direction:column;overflow:hidden}
.cpanel__side::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(600px 320px at 100% 0%,rgba(139,154,110,.35),transparent 60%)}
.cpanel__side::after{content:"";position:absolute;right:-90px;bottom:-110px;width:360px;height:360px;opacity:.07;background:url("../img/logo/cpsr-white.svg") center/contain no-repeat;pointer-events:none}
.cpanel__side>*{position:relative}
.cpanel__side h2{color:#fff;font-size:clamp(1.8rem,2.6vw,2.4rem);margin-bottom:.4em}
.cpanel__lead{color:#D9D6CB;font-size:1rem;margin:0 0 28px;max-width:34ch}
.cpanel__list{display:flex;flex-direction:column;gap:0;border-top:1px solid rgba(255,255,255,.12)}
.cpanel__list li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.12);align-items:start}
.cpanel__ico{width:44px;height:44px;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);display:grid;place-items:center;color:var(--gold-light);transition:background .25s,transform .3s var(--e-out)}
.cpanel__ico svg{width:20px;height:20px}
.cpanel__ico--wa{color:#25D366}
.cpanel__list li:hover .cpanel__ico{background:rgba(255,255,255,.14);transform:translateY(-2px)}
.cpanel__list b{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#B5B8A8;font-weight:700;margin-bottom:4px}
.cpanel__list a{display:block;color:#fff;font-weight:600;font-size:1rem;text-decoration:none;border-bottom:1px solid transparent;width:fit-content;transition:border-color .2s,color .2s}
.cpanel__list a:hover{color:#FFC15E;border-bottom-color:#FFC15E}
.cpanel__list span{display:block;font-size:.82rem;color:#B5B8A8;margin-top:3px}
.cpanel__addr{color:#EDEBE3!important;font-size:.92rem!important;margin-top:2px!important}
.cpanel__addr b{display:inline;font-size:.68rem;color:var(--gold-light);margin-right:6px}
.cpanel__conf{display:flex;gap:12px;align-items:flex-start;margin:auto 0 0;padding:16px 18px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);font-size:.86rem;color:#D9D6CB;line-height:1.5}
.cpanel__conf svg{width:20px;height:20px;flex:0 0 20px;color:#FFC15E;margin-top:2px}
.cpanel__conf b{color:#fff}
/* form side */
.cform{padding:clamp(28px,3.5vw,48px);display:flex;flex-direction:column;gap:22px;background:#fff}
.cform__head{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.cform__head h2{font-size:clamp(1.6rem,2.4vw,2.1rem);margin:0}
.cform__time{font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-deep);background:rgba(165,179,137,.2);border-radius:999px;padding:5px 11px;white-space:nowrap}
.cform__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px 20px}
.cform .f{grid-column:1/-1}
.cform .f--half{grid-column:span 1}
.cform .f label,.cform .f legend{font-size:.8rem;font-weight:700;color:var(--navy-deep);margin-bottom:7px}
.cform .f label span,.cform .f legend span{font-weight:500;color:var(--muted)}
.cform .f input[type=text],.cform .f input[type=tel],.cform .f input[type=email],.cform .f select,.cform .f textarea{
  background:#F6F3EC;border:1px solid transparent;border-radius:12px;padding:13px 15px;font-size:.96rem;transition:background .2s,border-color .2s,box-shadow .2s}
.cform .f input:hover,.cform .f select:hover,.cform .f textarea:hover{background:#F1EDE3}
.cform .f input:focus,.cform .f select:focus,.cform .f textarea:focus{background:#fff;border-color:var(--gold);box-shadow:0 0 0 4px rgba(191,131,31,.14)}
.cform .f input[aria-invalid="true"],.cform .f select[aria-invalid="true"]{border-color:var(--err);background:#fff}
.cform .f select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5639' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:40px}
.cform .f textarea{min-height:130px}
/* selectable chips */
.chips-select{display:flex;flex-wrap:wrap;gap:8px}
.chips-select label{position:relative;margin:0;cursor:pointer}
.chips-select input{position:absolute;opacity:0;width:0;height:0}
.chips-select span{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1px solid var(--rule);background:#fff;font-size:.86rem;font-weight:500;color:var(--ink);
  transition:background .2s,border-color .2s,color .2s,transform .2s var(--e-out)}
.chips-select span::before{content:"";width:8px;height:8px;border-radius:50%;border:1.5px solid var(--rule);transition:background .2s,border-color .2s}
.chips-select label:hover span{border-color:var(--navy);transform:translateY(-1px)}
.chips-select input:checked+span{background:var(--navy-deep);border-color:var(--navy-deep);color:#fff}
.chips-select input:checked+span::before{background:#FFC15E;border-color:#FFC15E}
.chips-select input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}
.cform .f--consent{border-top:1px solid var(--rule);padding-top:18px}
.cform .consent{font-size:.88rem;color:var(--muted)}
.cform__foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.cform__foot .btn>span{display:inline-flex;align-items:center;gap:9px}
.cform__note{margin:0;display:inline-flex;align-items:center;gap:8px;font-size:.84rem;color:var(--muted)}
.cform__note svg{width:16px;height:16px;color:var(--ok)}
.cform .form__status:empty{display:none}
/* next steps */
.cnext{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}
.cnext li{position:relative;padding:22px 22px 22px 24px;background:#fff;border:1px solid var(--rule);border-radius:18px;box-shadow:var(--sh-sm);transition:transform .35s var(--e-out),box-shadow .35s var(--e-out)}
.cnext li:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.cnext span{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--navy-deep);color:var(--gold-light);font-family:var(--head);font-weight:800;font-size:.82rem;margin-bottom:14px}
.cnext b{display:block;font-family:var(--head);font-size:1.05rem;color:var(--navy-deep);margin-bottom:6px}
.cnext p{margin:0;font-size:.9rem;color:var(--muted)}
@media (max-width:960px){
  .cpanel{grid-template-columns:1fr}
  .cpanel__side{order:2}
  .cnext{grid-template-columns:1fr}
}
@media (max-width:640px){
  .cform__grid{grid-template-columns:1fr}
  .cform .f--half{grid-column:1/-1}
  .cpanel{border-radius:20px}
}

/* ==========================================================================
   42. Mobile & responsive pass — phones ≤640, tablets ≤960, safe-area, touch
   ========================================================================== */
html{-webkit-tap-highlight-color:transparent}
img,video,svg,iframe{max-width:100%}
.wrap{padding-left:max(var(--gut),env(safe-area-inset-left));padding-right:max(var(--gut),env(safe-area-inset-right))}
button,.btn,input,select,textarea{font-size:max(16px,1em)}                  /* iOS: no zoom on focus */
.btn,.svc-btn,.pull__nav button,.testi__nav button,.live__legend button,.burger,.hdr__wa,.totop{min-height:44px;min-width:44px} /* touch targets */
.live__legend button{min-width:0}

@media (max-width:960px){
  /* hero */
  .hero--split{padding:34px 0 40px}
  .hero--split .hero__center{gap:26px}
  .hero--split .hero__title{font-size:clamp(2rem,8.4vw,2.9rem);white-space:normal}
  .hero--split .hero__sub{font-size:1rem}
  .hero__points{gap:9px;font-size:.95rem;margin-bottom:22px}
  .hero--split .hero__ctas .btn{flex:1 1 100%;white-space:normal}
  .hero__visual{order:3}
  .fan{width:100%;height:380px;max-width:100%;overflow:visible}
  .fan__card{width:min(58vw,230px)}
  .hero--split .quickbar{grid-template-columns:1fr;gap:8px;padding:10px;border-radius:18px}
  .hero--split .quickbar .btn{width:100%;min-height:52px}
  .hero--split .quickbar .btn>span{white-space:normal;justify-content:center}
  .hero--split .hero__all{margin-top:14px}
  /* war room */
  .live__copy{transform:none!important}
  .live__frame.is-in{transform:none!important}
  .live__copy .lead,.live__copy h2{max-width:100%;word-wrap:break-word}
  .ticks{grid-template-columns:1fr}
  /* services carousel: swipe natively on touch */
  .svc-marquee{overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 calc(-1*var(--gut));padding:10px var(--gut) 18px}
  .svc-marquee::-webkit-scrollbar{display:none}
  .svc-marquee .svc-track{transform:none!important;display:flex;gap:14px;width:max-content}
  .svc-marquee .svc-track>.card{flex:0 0 78vw;max-width:320px;scroll-snap-align:start;opacity:1!important;transform:none!important}
  .svc-marquee .svc-track>.card[aria-hidden]{display:none}
  .svc-btn{display:none}
  /* dashboard flip: tap toggles */
  .live__frame:hover .live__flip{transform:none}
  .live__frame.is-flipped .live__flip{transform:rotateY(180deg) rotateZ(180deg)}
  /* bento */
  .bento{grid-template-columns:1fr;gap:14px}
  .bento__cell{padding:22px}
  .bento__cell--big{min-height:0}
  .bento__cell--big h3{font-size:1.3rem}
  /* testimonials */
  .tgrid{gap:14px}
  /* story */
  .story__steps .step{grid-template-columns:44px 1fr;gap:14px;padding:22px 0}
  .step__dur{grid-column:2}
  /* contact + inner blocks */
  .cpanel__side{padding:26px 22px}
  .cform{padding:26px 22px}
  .caps--two,.models,.pillars,.people,.posts,.posts--4,.cases,.grid--2,.grid--3,.grid--4,.tracks{grid-template-columns:1fr}
  .srv{grid-template-columns:1fr}
  .phase{grid-template-columns:1fr}
  .compare{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .compare table,.compare tbody,.compare thead{min-width:560px}
  /* header: compact, no phone/CTA */
  .hdr__inner{min-height:64px;gap:12px}
  .hdr__end{gap:8px}
  .hdr.is-compact .hdr__inner{min-height:58px}
  .brand__txt span{display:none}
  .brand__logo{width:40px;height:40px;flex-basis:40px}
  /* sections */
  :root{--sec:clamp(48px,10vw,72px)}
  main>.section--band,main>.section--dark,main>.warroom{max-width:100%;border-radius:0}
  .sechead{margin-bottom:26px}
  h2{font-size:clamp(1.6rem,6.8vw,2.1rem)}
  .lead{font-size:1.05rem}
  /* floating UI */
  .wafab{bottom:calc(76px + env(safe-area-inset-bottom));right:12px}
  .wafab__txt{display:none}
  .wafab__ico{width:48px;height:48px}
  .totop{left:12px;right:auto;bottom:calc(76px + env(safe-area-inset-bottom));width:40px;height:40px}
  .cookie{left:10px;right:10px;bottom:calc(70px + env(safe-area-inset-bottom));padding:12px 14px;font-size:.82rem;gap:10px}
  .cookie__btns{width:100%;justify-content:flex-end}
  .mbar{left:0;right:0;bottom:0;border-radius:0;padding-bottom:env(safe-area-inset-bottom)}
  body{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  /* footer */
  .ftr__mark span{font-size:clamp(4rem,26vw,7rem)}
  .ftr__grid{grid-template-columns:1fr;gap:26px}
  .ftr__top{grid-template-columns:1fr;gap:18px}
  .nlform__row{flex-direction:column;border:0;gap:10px}
  .nlform__row input{border:1px solid rgba(255,255,255,.25);border-radius:12px}
  .nlform__row .btn{border:0;border-radius:12px}
  .ftr__base,.ftr__bottom{flex-direction:column;align-items:flex-start;gap:10px}
  /* finale / cta */
  .finale h2{font-size:clamp(1.9rem,8vw,2.6rem)}
  .finale__velocity{font-size:clamp(2.4rem,12vw,4rem)}
  .ctaband__inner{padding:40px var(--gut)}
  /* mega/drop: never on mobile */
  .drop,.mega{display:none}
  /* videos: lighter on mobile */
  .hero__bgvid video,.sec__bgvid video{opacity:.9}
  /* 3D tilt off */
  .tilt3d:hover{transform:none}
  .tilt3d .glare{display:none}
}
@media (max-width:420px){
  .hero--split .hero__title{font-size:clamp(1.9rem,9vw,2.4rem)}
  .fan__card{width:min(60vw,210px)}
  .fan{height:340px}
  .hero--split .hero__badge{font-size:.62rem;padding:7px 12px 7px 10px}
  .hero--split .hero__trust li{font-size:.7rem;padding:6px 10px}
  .stat{padding:16px 14px}
  .stat__v{font-size:1.9rem}
  .live__frame .live__front,.live__frame .live__back{padding:16px}
  .live__kpis{grid-template-columns:1fr 1fr}
  .cnext li,.tcard,.problem,.case__body{padding:20px 18px}
}
@media (max-width:960px) and (orientation:landscape){
  .hero--split{padding:26px 0 30px}
  .fan{height:300px}
}
/* tablets: two columns where it helps */
@media (min-width:641px) and (max-width:960px){
  .stats__row{grid-template-columns:repeat(2,1fr)}
  .problems{grid-template-columns:1fr 1fr}
  .cases,.posts,.posts--4,.tracks,.models,.people,.caps--two{grid-template-columns:repeat(2,1fr)}
  .cnext{grid-template-columns:repeat(3,1fr)}
  .tgrid{grid-template-columns:1fr 1fr}
  .tcard--feat{grid-column:1/-1}
  .bento{grid-template-columns:1fr 1fr}
  .bento__cell--big{grid-column:1/-1}
  .hero--split .hero__center{grid-template-columns:1fr}
  .hero--split .hero__ctas .btn{flex:0 1 auto}
  .svc-marquee .svc-track>.card{flex-basis:44vw}
}
@media (max-width:960px){
  .hero--split .hero__center{display:flex;flex-direction:column;align-items:stretch}
  .hero__copy,.hero__visual,.hero--split .quickbar{width:100%;max-width:100%}
  .hero__center{transform:none!important;opacity:1!important}
  .hero--split .hero__depth{transform:none!important}
  .hero__visual{min-height:0;display:block}
  .fan{height:300px;margin:0 auto}
  .hero--split .quickbar{margin-top:6px}
  .hero--split .quickbar .btn>span{flex-wrap:nowrap;white-space:nowrap}
  .cookie{max-width:calc(100% - 20px)}
}

/* ===== FAQ redesign: numbered accordion + dark help card ===== */
#faq .faq{gap:0;border:1px solid var(--rule);border-radius:20px;background:#fff;overflow:hidden;box-shadow:var(--sh-sm)}
#faq .faq details{border:0;border-radius:0;border-bottom:1px solid var(--rule);padding:0 22px;box-shadow:none;transition:background .3s}
#faq .faq details:last-child{border-bottom:0}
#faq .faq details[open]{background:linear-gradient(180deg,rgba(139,154,110,.10),rgba(139,154,110,.03))}
#faq .faq summary{display:flex;align-items:center;gap:16px;padding:20px 44px 20px 0;font-size:1.05rem}
#faq .faq summary:hover{padding-left:0;color:var(--navy)}
#faq .faq summary span{flex:1}
.faq__n{flex:0 0 34px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-family:var(--head);font-weight:800;font-style:normal;font-size:.74rem;
  background:var(--surface);color:var(--gold-deep);transition:background .3s,color .3s,transform .3s var(--e-out)}
#faq .faq details[open] .faq__n{background:var(--navy-deep);color:var(--gold-light);transform:rotate(-6deg)}
#faq .faq summary::before{display:none}
#faq .faq summary::after{right:2px;width:30px;height:30px;border:1px solid var(--rule);border-radius:50%;transform:none;top:calc(50% - 15px);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5639' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/14px no-repeat;transition:transform .35s var(--e-out),background-color .3s,border-color .3s}
#faq .faq details[open] summary::after{transform:rotate(45deg);background-color:var(--navy-deep);border-color:var(--navy-deep);top:calc(50% - 15px);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E")}
#faq .faq details>div{padding:0 44px 22px 50px}
#faq .faq p{color:var(--ink);font-size:.98rem;line-height:1.65}
.helpcard{position:sticky;top:110px;border-radius:22px;overflow:hidden;background:var(--grad-hero);color:#fff;box-shadow:var(--sh-lg);border:1px solid rgba(255,255,255,.08)}
.helpcard::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(500px 260px at 100% 0%,rgba(139,154,110,.35),transparent 60%)}
.helpcard__top{position:relative;padding:28px 26px 26px}
.helpcard__avs{display:flex;margin-bottom:18px}
.helpcard__avs span{width:40px;height:40px;border-radius:50%;border:2px solid #2E3624;background:var(--gold);color:#1F2618;display:grid;place-items:center;font-family:var(--head);font-weight:800;font-size:.72rem;margin-left:-10px}
.helpcard__avs span:first-child{margin-left:0}
.helpcard__avs span:nth-child(2){background:#C9D3B4}.helpcard__avs span:nth-child(3){background:#FFC15E}
.helpcard__eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#C9D3B4}
.helpcard__eyebrow i{width:8px;height:8px;border-radius:50%;background:#22D3B5;animation:dotpulse 2s ease-in-out infinite}
.helpcard h3{color:#fff;font-size:1.6rem;margin-bottom:.35em}
.helpcard__top p:not(.helpcard__eyebrow){color:#D9D6CB;font-size:.95rem;margin:0 0 20px}
.helpcard .btn--wa{width:100%}
.helpcard .btn--wa>span{display:inline-flex;align-items:center;gap:9px}
.helpcard__rows{position:relative;border-top:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.18)}
.helpcard__rows li{display:grid;grid-template-columns:40px 1fr;gap:14px;padding:18px 26px;border-bottom:1px solid rgba(255,255,255,.08);align-items:start}
.helpcard__rows li:last-child{border-bottom:0}
.helpcard__ico{width:40px;height:40px;border-radius:11px;background:rgba(255,255,255,.08);display:grid;place-items:center;color:var(--gold-light)}
.helpcard__ico svg{width:18px;height:18px}
.helpcard__rows b{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#B5B8A8;margin-bottom:3px}
.helpcard__rows a{display:block;color:#fff;font-weight:600;font-size:.98rem}
.helpcard__rows a:hover{color:#FFC15E}
.helpcard__rows small{display:block;font-size:.8rem;color:#B5B8A8;margin-top:3px}
@media (max-width:960px){.helpcard{position:static}}
@media (max-width:640px){#faq .faq summary{font-size:.98rem;gap:12px;padding-right:40px}#faq .faq details>div{padding-left:0}}
/* ===== photos: no directional gradients anywhere — light even scrim only where text sits on the image ===== */
.pagehead--photo .pagehead__photo img{opacity:1;filter:none}
.pagehead--photo .pagehead__photo::after{background:rgba(20,26,17,.38)}
.pagehead--photo h1,.pagehead--photo .pagehead__sub,.pagehead--photo .crumb{text-shadow:0 2px 18px rgba(0,0,0,.55)}
.ctaband__photo img{opacity:1;filter:none}
.ctaband__photo::after{background:rgba(20,26,17,.5)}
.card__media::after,.case__media::after,.post__thumb::after,.story__photo::after,.tab__media::after{display:none}
.card__media img,.case__media img,.post__thumb img,.story__photo img,.photo-frame img,.photo-band img,.figure__img img,.index__frame img{filter:none;opacity:1}
.bento__cell--big .bento__photo img{opacity:.55;filter:none}
.bento__cell--big .bento__photo::after{background:rgba(31,37,25,.55)}
.tcard--feat::before,.cpanel__side::before,.helpcard::before,.live__front::before,.live__back::before{display:none}
.card__media+.card__num{background:rgba(0,0,0,.5)}
/* ===== audit fixes ===== */
.ftr__social[hidden],.soc[hidden]{display:none}
.ftr__social a{width:40px;height:40px;padding:5px;border-radius:10px}
.ftr__col a,.ftr__base a,.topbar a,.crumb a,.more a,.link-arrow,.index__meta a,.post h3 a,.cpanel__list a,.helpcard__rows a{display:inline-block;padding:4px 0;margin:-4px 0}
.ftr__col ul{gap:6px}
.pull__dots i{height:12px;background-clip:content-box;padding:5px 0}
@media (max-width:960px){
  .wafab{bottom:calc(84px + env(safe-area-inset-bottom));right:12px;width:52px;height:52px;padding:0;justify-content:center}
  .wafab__ico{width:52px;height:52px}
  .totop{bottom:calc(84px + env(safe-area-inset-bottom))}
  .mbar{height:64px}
  .mbar a{padding:8px 6px}
  .ftr__base ul{gap:12px 18px}
  .ftr__base a,.ftr__col a,.topbar a{padding:8px 0;margin:-8px 0}
  .live__legend button{min-height:36px;padding:8px 12px}
  .svc-marquee .svc-track>.card .card__go{padding:10px 0}
  .avatars span,.tstrip__avs span,.helpcard__avs span{pointer-events:none}
}
/* leadership: real portraits */
.person__ph--photo{background:var(--navy-deep);background-image:none}
.person__ph--photo::after{display:none}
.person__ph--photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;transition:transform .8s var(--e-out)}
.person:hover .person__ph--photo img{transform:scale(1.04)}
/* tap targets ≥32px for inline text links on mobile */
@media (max-width:960px){
  .hero__all,.link-more,.finale__contact a,.ftr__built a,.cpanel__list a,.helpcard__rows a{display:inline-block;padding:8px 0;margin:-8px 0}
  .wafab{bottom:calc(92px + env(safe-area-inset-bottom))}
  .totop{bottom:calc(92px + env(safe-area-inset-bottom))}
}
/* page heads + CTA bands: no background photos — plain dark olive */
.pagehead__photo,.ctaband__photo{display:none!important}
.pagehead--photo{min-height:0;display:block}
.pagehead,.pagehead--photo{background:#2F3A28;padding:clamp(56px,7vw,96px) 0 clamp(48px,6vw,80px)}
.pagehead h1,.pagehead__sub,.crumb{text-shadow:none}
.ctaband{background:#2F3A28}
/* page head with a photo beside the heading */
.pagehead__grid{display:grid;grid-template-columns:1fr;gap:clamp(24px,4vw,64px);align-items:center}
.pagehead--side .pagehead__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.pagehead--side{padding:clamp(40px,5vw,72px) 0}
.pagehead__side{margin:0;aspect-ratio:16/10;border-radius:22px;overflow:hidden;box-shadow:var(--sh-lg);background:var(--navy-deep)}
.pagehead__side img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--e-out)}
.pagehead--side:hover .pagehead__side img{transform:scale(1.03)}
.js .pagehead__side{opacity:0;transform:translateY(18px) scale(.98);animation:card-in 1s var(--e-out) .25s forwards}
@media (max-width:960px){.pagehead--side .pagehead__grid{grid-template-columns:1fr;gap:22px}.pagehead__side{aspect-ratio:16/9;border-radius:16px}}
@media (prefers-reduced-motion:reduce){.js .pagehead__side{opacity:1;transform:none;animation:none}}
/* page heads: frr.mp4 video background under the tint */
.pagehead{position:relative;overflow:hidden}
.pagehead .sec__bgvid{border-radius:0}
.pagehead .sec__bgtint{background:rgba(31,40,26,.68)}
.pagehead .pagehead__grid{position:relative;z-index:1}
/* page heads: video shows through; text in site palette (cream / sage / gold) */
.pagehead .sec__bgvid video{opacity:1}
.pagehead.has-video{background:#141A11}
.pagehead .sec__bgtint{background:linear-gradient(180deg,rgba(20,26,17,.42),rgba(20,26,17,.32) 50%,rgba(20,26,17,.5))}
.pagehead .sec__bgvid video{filter:saturate(1.05) contrast(1.04)}
.pagehead h1{color:#F7F2EB;text-shadow:0 2px 24px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.4)}
.pagehead__sub{color:#E6EBDA;text-shadow:0 1px 14px rgba(0,0,0,.5);font-weight:500}
.pagehead .eyebrow--inv{color:#FFC15E}
.pagehead .eyebrow--inv::before{background:#FFC15E}
.crumb{color:#C9D3B4}
.crumb a{color:#EDEBE3}
.crumb a:hover{color:#FFC15E;border-bottom-color:#FFC15E}
.pagehead__side{border:1px solid rgba(255,255,255,.18);box-shadow:0 30px 60px -24px rgba(0,0,0,.7)}
.pagehead__copy>*{position:relative}
@media (max-width:960px){.pagehead .sec__bgtint{background:rgba(20,26,17,.5)}}
/* page heads over the light video: dark olive text, gold accents */
.pagehead .sec__bgtint{background:linear-gradient(180deg,rgba(247,242,235,.28),rgba(247,242,235,.18) 50%,rgba(247,242,235,.34))}
.pagehead h1{color:var(--navy-deep);text-shadow:0 1px 0 rgba(255,255,255,.6),0 6px 24px rgba(255,255,255,.35)}
.pagehead__sub{color:var(--ink);font-weight:500;text-shadow:0 1px 0 rgba(255,255,255,.5)}
.pagehead .eyebrow--inv{color:var(--gold-deep)}
.pagehead .eyebrow--inv::before{background:var(--gold)}
.crumb{color:var(--muted)}
.crumb a{color:var(--navy-deep)}
.crumb a:hover{color:var(--gold-deep);border-bottom-color:var(--gold)}
.pagehead .ph{border-bottom-color:var(--gold)}
.pagehead__side{border-color:rgba(255,255,255,.7)}

/* ==========================================================================
   43. Premium inner-page system
   ========================================================================== */
/* --- page head: readable "dossier" card on the video ---------------------- */
.pagehead .sec__bgtint{background:linear-gradient(90deg,rgba(20,26,17,.55) 0%,rgba(20,26,17,.35) 55%,rgba(20,26,17,.25) 100%)}
.pagehead--side .pagehead__copy,.pagehead:not(.pagehead--side) .pagehead__copy{position:relative;padding:clamp(26px,3vw,40px) clamp(26px,3vw,44px);border-radius:22px;
  background:rgba(20,26,17,.55);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.pagehead__copy::before{content:"";position:absolute;left:0;top:26px;bottom:26px;width:3px;border-radius:3px;background:var(--gold)}
.pagehead h1{color:#fff;text-shadow:none;font-size:clamp(2rem,3.6vw,3rem);margin-bottom:.4em}
.pagehead__sub{color:#E6EBDA;text-shadow:none;font-size:1.04rem}
.pagehead .eyebrow--inv{color:#FFC15E}.pagehead .eyebrow--inv::before{background:#FFC15E}
.crumb{color:#B5B8A8;margin-bottom:14px}
.crumb a{color:#EDEBE3}.crumb a:hover{color:#FFC15E;border-bottom-color:#FFC15E}
.pagehead__side{border:1px solid rgba(255,255,255,.35)}
.pagehead:not(.pagehead--side) .pagehead__grid{max-width:var(--wrap)}
.pagehead:not(.pagehead--side) .pagehead__copy{max-width:820px}
/* --- editorial intro ---------------------------------------------------- */
.section--intro .prose--lead{position:relative;padding-left:clamp(22px,3vw,40px);border-left:3px solid var(--gold)}
.prose--lead p:first-child{font-family:var(--head);font-weight:600;font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.4;color:var(--navy-deep);letter-spacing:-.01em}
.prose--lead p:first-child::first-letter{font-size:3.2em;float:left;line-height:.85;padding:.06em .12em 0 0;color:var(--gold-deep);font-weight:800}
.prose p{font-size:1.04rem;line-height:1.7}
.prose h2{font-size:clamp(1.5rem,2.4vw,2rem);margin:1.4em 0 .5em;padding-top:.6em;position:relative}
.prose h2::before{content:"";position:absolute;left:0;top:0;width:34px;height:2px;background:var(--gold);border-radius:2px}
.prose h2:first-child{padding-top:0}
.prose h2:first-child::before{display:none}
/* --- service rows: numbered, animated ------------------------------------ */
.srvlist{counter-reset:sv;gap:14px}
.srv{counter-increment:sv;grid-template-columns:64px minmax(0,1.05fr) minmax(0,1fr);gap:clamp(14px,2.4vw,32px);align-items:center;padding:26px 28px;border-radius:18px;position:relative;overflow:hidden}
.srv::before{content:counter(sv,decimal-leading-zero);font-family:var(--head);font-weight:800;font-size:1.9rem;line-height:1;color:var(--rule);letter-spacing:-.03em;transition:color .3s,transform .4s var(--e-out)}
.srv:hover::before{color:var(--gold);transform:translateY(-3px)}
.srv::after{left:-80%;width:60%}
.srv h2{font-size:1.28rem;margin-bottom:.25em}
.srv h2 a::after{content:" →";color:var(--gold);opacity:0;transition:opacity .25s,margin .25s}
.srv:hover h2 a::after{opacity:1;margin-left:4px}
.chips li{transition:background .2s,color .2s,border-color .2s,transform .3s var(--e-out)}
.srv:hover .chips li{border-color:rgba(139,154,110,.5)}
.chips li:hover{background:var(--navy-deep);color:#fff;border-color:var(--navy-deep);transform:translateY(-2px)}
/* --- capability rows (service pages) ----------------------------------- */
.caps{gap:16px;counter-reset:cap}
.cap{counter-increment:cap;position:relative;padding:26px 26px 26px 78px;border-radius:18px;background:#fff;box-shadow:var(--sh-sm)}
.cap::before{content:counter(cap,decimal-leading-zero);position:absolute;left:24px;top:24px;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--navy-deep);color:var(--gold-light);font-family:var(--head);font-weight:800;font-size:.8rem;transition:background .3s,color .3s,transform .4s var(--e-out)}
.cap:hover::before{background:var(--gold);color:#1F2618;transform:rotate(-6deg)}
.cap h3{font-size:1.2rem}
.cap__out{margin-top:10px;padding:10px 14px;border-radius:10px;background:rgba(139,154,110,.12);color:var(--navy-deep);font-size:.95rem}
.cap__out::before{content:"Outcome";display:inline-block;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);font-weight:800;margin-right:10px}
.caps--two{gap:18px}
.caps--two .cap{padding-left:26px;padding-top:70px}
.caps--two .cap::before{left:24px;top:22px}
/* --- ticks: card style ------------------------------------------------- */
.section--band .ticks{gap:12px}
.section--band .ticks li{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:14px 16px 14px 46px;box-shadow:var(--sh-sm);transition:transform .3s var(--e-out),box-shadow .3s var(--e-out),border-color .3s}
.section--band .ticks li::before{left:14px;top:16px;background:rgba(139,154,110,.18)}
.section--band .ticks li::after{left:19px;top:22px;border-color:var(--gold-deep)}
.section--band .ticks li:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:rgba(139,154,110,.5)}
/* --- models / phases / statements -------------------------------------- */
.model{border-radius:18px;position:relative;overflow:hidden}
.model::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold);transform:scaleY(0);transform-origin:bottom;transition:transform .4s var(--e-out)}
.model:hover::before{transform:scaleY(1)}
.phase{border-radius:18px}
.phase__mark span{background:linear-gradient(120deg,var(--gold-deep),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.stmts li{padding:18px 22px 18px 44px;background:#fff;border:1px solid var(--rule);border-radius:14px;box-shadow:var(--sh-sm)}
.stmts li::before{left:20px;top:26px}
/* --- inner FAQ ---------------------------------------------------------- */
.faq:not(#faq .faq){gap:0;border:1px solid var(--rule);border-radius:18px;background:#fff;overflow:hidden;box-shadow:var(--sh-sm)}
.faq:not(#faq .faq) details{border:0;border-bottom:1px solid var(--rule);border-radius:0;box-shadow:none}
.faq:not(#faq .faq) details:last-child{border-bottom:0}
.faq:not(#faq .faq) details[open]{background:linear-gradient(180deg,rgba(139,154,110,.1),rgba(139,154,110,.02))}
/* --- CTA band: gold rule, arrow button -------------------------------- */
.ctaband{border-radius:28px}
.ctaband::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),transparent);display:block;opacity:.9;z-index:1}
.ctaband h2{font-size:clamp(1.8rem,3vw,2.4rem)}
.ctaband .btn--gold{background:#FFC15E;color:#1F2618}
/* --- section rhythm on inner pages ------------------------------------- */
.section--intro{padding-bottom:clamp(28px,4vw,56px)}
.section--intro+.section{padding-top:clamp(28px,4vw,56px)}
main>.section--band{margin-top:clamp(12px,2vw,24px);margin-bottom:clamp(12px,2vw,24px)}
/* --- people / posts / cases: consistent radii + hover --------------------- */
.person__ph,.person__ph--photo{border-radius:18px}
.person{padding:8px;border-radius:22px;transition:background .3s,transform .4s var(--e-out)}
.person:hover{background:#fff;transform:translateY(-4px);box-shadow:var(--sh-md)}
.post,.case{border-radius:18px}
/* --- 404 --------------------------------------------------------------- */
.card .card__go{font-weight:600}
@media (max-width:960px){
  .pagehead--side .pagehead__copy,.pagehead:not(.pagehead--side) .pagehead__copy{padding:22px 20px;border-radius:16px}
  .pagehead__copy::before{top:20px;bottom:20px}
  .srv{grid-template-columns:1fr;padding:22px}
  .srv::before{font-size:1.4rem}
  .cap{padding:70px 22px 22px}
  .cap::before{left:22px;top:22px}
  .section--intro .prose--lead{padding-left:18px}
}
/* ===== service pages: capability list + sticky side card ===== */
.withside{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:clamp(24px,4vw,56px);align-items:start}
.withside .caps{max-width:none}
.sidecard{position:sticky;top:110px;border-radius:22px;overflow:hidden;background:var(--grad-hero);color:#fff;box-shadow:var(--sh-lg);border:1px solid rgba(255,255,255,.08)}
.sidecard__top{padding:26px 24px 22px}
.sidecard h3{color:#fff;font-size:1.35rem;margin:6px 0 .4em}
.sidecard__top>p:not(.eyebrow){color:#D9D6CB;font-size:.92rem;margin:0 0 18px}
.sidecard .btn{width:100%;margin-bottom:10px}
.sidecard .btn>span{display:inline-flex;align-items:center;gap:9px}
.sidecard .btn--gold{background:#FFC15E;color:#1F2618}
.sidecard__facts{margin:0;display:grid;grid-template-columns:1fr;border-top:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.18)}
.sidecard__facts div{display:flex;justify-content:space-between;gap:12px;padding:12px 24px;border-bottom:1px solid rgba(255,255,255,.08);font-size:.86rem}
.sidecard__facts dt{color:#B5B8A8;text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;font-weight:700;padding-top:2px}
.sidecard__facts dd{margin:0;color:#fff;font-weight:600;text-align:right}
.sidecard__more{padding:18px 24px 22px;background:rgba(0,0,0,.18)}
.sidecard__h{margin:0 0 10px;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-light);font-weight:700}
.sidecard__more li a{display:block;padding:7px 0;color:#EDEBE3;font-size:.9rem;border-bottom:1px solid rgba(255,255,255,.08);transition:color .2s,padding-left .25s var(--e-out)}
.sidecard__more li:last-child a{border-bottom:0}
.sidecard__more li a:hover{color:#FFC15E;padding-left:6px}
@media (max-width:960px){.withside{grid-template-columns:1fr}.sidecard{position:static}}
/* ===== final polish ===== */
/* reduced-motion carousel: hide clones, wrap into a grid */
@media (prefers-reduced-motion:reduce){
  .svc-marquee .svc-track{display:grid;grid-template-columns:repeat(4,1fr);width:auto;gap:20px;transform:none!important}
  .svc-marquee .svc-track>.card[aria-hidden]{display:none}
  .svc-marquee .svc-track>.card{flex:none}
  .svc-btn{display:none}
  @media (max-width:1120px){.svc-marquee .svc-track{grid-template-columns:repeat(2,1fr)}}
}
/* featured testimonial: quote sits top, footer bottom, comfortable gap */
.tcard--feat p{margin-bottom:auto;padding-bottom:26px}
/* scrollbar + selection in brand colours */
html{scrollbar-color:var(--sage) var(--surface)}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:var(--surface)}
::-webkit-scrollbar-thumb{background:var(--sage);border-radius:8px;border:2px solid var(--surface)}
::-webkit-scrollbar-thumb:hover{background:var(--navy)}
/* smoother section hand-offs: floating sections cast a faint shadow */
main>.section--band{box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 24px 60px -40px rgba(35,42,27,.25)}
/* headings: consistent tracking; lead paragraphs a touch larger */
h2{letter-spacing:-.025em}
.sechead p{font-size:1.1rem;line-height:1.6}
/* link focus rings consistent */
a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}
/* stat card: subtle top accent */
.stats{border-top:3px solid var(--gold)}
/* buttons: micro shine on gold */
.btn--gold{box-shadow:0 10px 24px -8px rgba(139,154,110,.55),inset 0 1px 0 rgba(255,255,255,.35)}
/* footer newsletter input focus */
.ftr__news input:focus{box-shadow:0 0 0 4px rgba(165,179,137,.25)}
/* image loading: fade in when decoded */
img[loading="lazy"]{transition:opacity .5s ease}
img[loading="lazy"].is-loading{opacity:0}
/* ===== About: where we work + accountability ===== */
.split--even{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.split--rev>:first-child{order:0}
.offices{margin:22px 0 0;display:flex;flex-direction:column;border-top:1px solid var(--rule)}
.offices div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--rule);font-size:.95rem}
.offices dt{color:var(--muted);font-weight:500}
.offices dd{margin:0;color:var(--navy-deep);font-weight:600;text-align:right}
.states{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.state{position:relative;padding:18px 18px 16px;background:#fff;border:1px solid var(--rule);border-radius:16px;box-shadow:var(--sh-sm);display:flex;flex-direction:column;gap:4px;overflow:hidden;
  transition:transform .35s var(--e-out),box-shadow .35s var(--e-out),border-color .3s}
.state::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold);transform:scaleY(0);transform-origin:bottom;transition:transform .35s var(--e-out)}
.state:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:rgba(139,154,110,.5)}
.state:hover::before{transform:scaleY(1)}
.state__n{font-family:var(--head);font-weight:800;font-size:.7rem;letter-spacing:.1em;color:var(--gold-deep)}
.state b{font-family:var(--head);font-size:1.05rem;color:var(--navy-deep)}
.state__tag{font-size:.78rem;color:var(--muted)}
.state--more{grid-column:1/-1;background:var(--navy-deep);border-color:var(--navy-deep)}
.state--more b{color:#fff}.state--more .state__tag{color:#B5B8A8}
.figure--static{position:static}
.figure__img--wide{aspect-ratio:4/3;border-radius:22px}
.section--intro+.section--band{margin-top:0}
@media (max-width:960px){.split--even{grid-template-columns:1fr}.split--rev>:first-child{order:2}.states{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.states{grid-template-columns:1fr}}
.figure--static .figure__img{aspect-ratio:4/3;border-radius:22px;max-width:100%}
.figure--static{width:100%;max-width:100%}
.split--rev{align-items:center}
main>.section--band .split--even{padding-bottom:0}
@media (max-width:960px){.figure--static .figure__img{aspect-ratio:16/10}}
.split--rev .figure--static .figure__img,.split--rev .figure--static .figure__img--wide{aspect-ratio:4/3!important;max-height:520px;border-radius:22px}
.split--rev .figure--static{margin:0;width:100%}
.split--rev .figure--static img{width:100%;height:100%;object-fit:cover}
/* ===== questionnaire content blocks ===== */
.philo{background:var(--navy-deep);color:#fff;border-radius:22px;padding:28px 26px;box-shadow:var(--sh-lg)}
.philo__h{margin:0 0 18px;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);font-weight:700}
.philo__item{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:16px 0;border-top:1px solid rgba(255,255,255,.12)}
.philo__item span{font-family:var(--head);font-weight:800;font-size:1.4rem;color:#FFC15E;line-height:1}
.philo__item b{display:block;color:#fff;font-family:var(--head);font-size:1.08rem;margin-bottom:4px}
.philo__item p{margin:0;color:#D9D6CB;font-size:.94rem}
.philo__foot{margin:18px 0 0;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);font-size:.88rem;color:#C9D3B4}
.mv__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.mv__card{padding:30px 28px;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}
.mv__card h2{font-size:clamp(1.4rem,2.2vw,1.9rem);color:#fff}
.mv__card p{color:#D9D6CB}
.mv__tag{margin-top:14px!important;padding-top:12px;border-top:1px solid rgba(255,255,255,.12);color:#FFC15E!important;font-weight:600;font-size:.92rem}
.values{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px}
.values li{padding:20px 20px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);transition:transform .3s var(--e-out),background .3s}
.values li:hover{transform:translateY(-3px);background:rgba(255,255,255,.08)}
.values b{display:block;font-family:var(--head);color:#fff;font-size:1.05rem;margin-bottom:6px}
.values span{color:#B5B8A8;font-size:.88rem}
.diffs{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:18px}
.diffs li{display:grid;grid-template-columns:44px 1fr;gap:4px 14px;padding:18px 20px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);transition:transform .3s var(--e-out),background .3s}
.diffs li:hover{transform:translateY(-3px);background:rgba(255,255,255,.08)}
.diffs li span{grid-row:1/3;font-family:var(--head);font-weight:800;font-size:1.1rem;color:#FFC15E}
.diffs li b{color:#fff;font-family:var(--head);font-size:1.02rem}
.diffs li p{margin:0;color:#D9D6CB;font-size:.9rem}
.bento__flow{margin-top:16px!important;font-size:.8rem!important;letter-spacing:.04em;color:#C9D3B4!important;font-weight:600}
.people--one{grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.people--one .person{padding:0;background:none;box-shadow:none;transform:none}
.people--one .person:hover{background:none;box-shadow:none;transform:none}
.people--one .person__ph{margin-bottom:0}
.people--one .person h3{font-size:clamp(1.6rem,2.6vw,2.2rem);margin-top:0}
.people--one .person p{font-size:1.02rem;line-height:1.65;color:var(--ink-2)}
.people--one .person__role{font-size:.8rem}
.person__links a{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--navy);border-bottom:1px solid var(--gold)}
.ticks--grid{grid-template-columns:repeat(2,1fr)}
.ticks--stack{grid-template-columns:1fr;gap:10px;margin-top:8px}
.ticks--stack li b{color:var(--navy-deep)}
.phase__mark span{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.1}
@media (min-width:961px){.people--one{display:grid}.people--one .person:first-child{display:contents}.people--one .person:first-child>*{grid-column:2}.people--one .person:first-child>.person__ph{grid-column:1;grid-row:1/8}}
@media (max-width:960px){.mv__grid,.values,.diffs,.ticks--grid{grid-template-columns:1fr}.people--one{grid-template-columns:1fr}}
@media (min-width:641px) and (max-width:960px){.values,.diffs{grid-template-columns:1fr 1fr}}
/* why-CPSR bento: full width regardless of intro length */
#why .sechead{max-width:70ch}
#why .sechead p{white-space:normal}
#why .bento{width:100%;grid-template-columns:repeat(6,minmax(0,1fr))}
#why .bento__cell{min-width:0}
#why .bento__cell--big{grid-column:span 4;grid-row:span 2}
#why .bento__cell--2{grid-column:span 2}
#why .bento__cell--3{grid-column:span 3}
@media (max-width:960px){#why .bento{grid-template-columns:1fr 1fr}#why .bento__cell--big{grid-column:1/-1;grid-row:auto}#why .bento__cell--2,#why .bento__cell--3{grid-column:span 1}}
@media (max-width:640px){#why .bento{grid-template-columns:1fr}#why .bento__cell--2,#why .bento__cell--3{grid-column:1/-1}}

/* ===== Message from the CEO ===== */
.ceo{position:relative}
.ceo__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,80px);align-items:center}
.ceo__photo{margin:0;position:relative;border-radius:26px;overflow:hidden;background:var(--navy-deep);box-shadow:var(--sh-lg);aspect-ratio:4/5;max-width:440px}
.ceo__photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;transition:transform 1.2s var(--e-out)}
.ceo:hover .ceo__photo img{transform:scale(1.03)}
.ceo__photo figcaption{position:absolute;left:14px;right:14px;bottom:14px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:14px 16px;border-radius:16px;
  background:rgba(20,26,17,.72);backdrop-filter:blur(10px);color:#fff;border:1px solid rgba(255,255,255,.12)}
.ceo__photo figcaption b{font-family:var(--head);font-size:1.02rem;display:block}
.ceo__photo figcaption span{font-size:.76rem;color:#C9D3B4;display:block}
.ceo__photo figcaption a{grid-row:1/3;width:38px;height:38px;border-radius:10px;background:#FFC15E;color:#1F2618;display:grid;place-items:center;transition:transform .3s var(--e-out)}
.ceo__photo figcaption a svg{width:18px;height:18px}
.ceo__photo figcaption a:hover{transform:translateY(-2px)}
.ceo__body h2{font-size:clamp(1.7rem,3vw,2.5rem);max-width:22ch}
.ceo__quote{position:relative;padding-left:26px;border-left:3px solid var(--gold);margin:20px 0 22px}
.ceo__quote::before{content:"\201C";position:absolute;left:-14px;top:-30px;font-family:Georgia,serif;font-size:5rem;line-height:1;color:rgba(139,154,110,.3)}
.ceo__quote p{font-size:1.04rem;line-height:1.7;color:var(--ink-2)}
.ceo__quote p:last-child{margin:0}
.ceo__sign{display:flex;align-items:center;gap:12px;margin:0 0 6px}
.ceo__sign img{width:40px;height:40px}
.ceo__sign b{display:block;font-family:var(--head);font-size:1.02rem;color:var(--navy-deep)}
.ceo__sign span{font-size:.78rem;color:var(--muted)}
.ceo .btnrow{margin-top:18px;align-items:center;gap:14px 26px}
/* core services list (services index) */
.core{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.core li{display:flex;align-items:center;gap:16px;padding:16px 20px;background:#fff;border:1px solid var(--rule);border-radius:16px;box-shadow:var(--sh-sm);transition:transform .3s var(--e-out),box-shadow .3s var(--e-out),border-color .3s}
.core li:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:rgba(139,154,110,.5)}
.core span{flex:0 0 40px;width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--navy-deep);color:var(--gold-light);font-family:var(--head);font-weight:800;font-size:.8rem}
.core b{font-family:var(--head);font-size:1.05rem;color:var(--navy-deep)}
/* 10-step process (approach page) */
.flowline{margin-top:14px!important;font-weight:600;color:var(--navy)!important;font-size:.9rem!important;letter-spacing:.02em}
.steps10{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;counter-reset:s10}
.steps10 li{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:22px 22px 22px 20px;background:#fff;border:1px solid var(--rule);border-radius:18px;box-shadow:var(--sh-sm);transition:transform .3s var(--e-out),box-shadow .3s var(--e-out),border-color .3s}
.steps10 li:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:rgba(139,154,110,.5)}
.steps10__n{font-family:var(--head);font-weight:800;font-size:1.6rem;color:var(--gold);line-height:1;letter-spacing:-.03em}
.steps10 h3{font-size:1.15rem;margin-bottom:.15em}
.steps10__tag{margin:0 0 8px!important;font-size:.74rem!important;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep)!important;font-weight:700}
.steps10 p{margin:0;color:var(--muted);font-size:.94rem}
@media (max-width:960px){.ceo__grid{grid-template-columns:1fr}.ceo__photo{max-width:100%;aspect-ratio:4/3}.core,.steps10{grid-template-columns:1fr}}
.ceo__photo figcaption{grid-template-columns:1fr auto;grid-template-areas:"name link" "role link"}
.ceo__photo figcaption b{grid-area:name}.ceo__photo figcaption span{grid-area:role}.ceo__photo figcaption a{grid-area:link;grid-row:auto}
.phase{grid-template-columns:150px minmax(0,1fr)}
.phase__mark span{font-size:clamp(1.3rem,2.2vw,1.9rem);line-height:1.15;display:block;white-space:normal}
.phase__body h2 span{display:inline-block;margin-left:8px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);font-weight:700;background:rgba(191,131,31,.12);padding:4px 9px;border-radius:999px}
@media (max-width:640px){.phase{grid-template-columns:1fr}}
/* header WhatsApp: solid green badge */
.hdr__wa{background:#25D366;color:#fff;border:0;box-shadow:0 8px 18px -8px rgba(37,211,102,.7)}
.hdr__wa:hover{background:#1FC15A;color:#fff;transform:translateY(-2px)}
.hdr__wa svg{width:22px;height:22px}
/* footer: WhatsApp badge alongside the social icons */
.soc--wa{background:#25D366;color:#fff;border-radius:8px}
.soc--wa svg{padding:5px;box-sizing:border-box}
/* nav: contact link styled as quiet text; hide on narrower desktops where the CTA button already exists */
.nav__item--contact>a{color:var(--muted)}
@media (max-width:1280px){.nav__item--contact{display:none}}
@media (max-width:1180px){.nav__item>a{padding:10px 9px;font-size:.88rem}}
/* ===== mobile tap targets: every inline link ≥ 32px tall ===== */
@media (max-width:960px){
  .crumb a,.finale__contact a,.srv h2 a,.thank a,.prose a,.aside__box a:not(.btn),.more a,.link-more,.link-arrow,.post h3 a,.index__item a,.cnext a,.ftr__col a,.ftr__base a{display:inline-block;padding:8px 0;margin:-8px 0;min-height:32px;line-height:1.3}
  .crumb{gap:6px 10px}
  .srv h2 a{padding:6px 0;margin:-6px 0}
}
/* ==========================================================================
   44. Brand palette alignment — logo gold (#BF831F) + logo navy (#022561)
   on the approved olive/cream canvas. Amber #FFC15E → brand gold family.
   ========================================================================== */
:root{--brand-navy:#022561;--brand-navy-deep:#001A45;--brand-gold:#BF831F;--brand-gold-2:#D9A648;--brand-gold-pale:#F3E3BF;--brand-green:#007242}
/* accents */
.eyebrow,.eyebrow::before{color:var(--brand-gold)}
.eyebrow::before{background:var(--brand-gold)}
.eyebrow--inv{color:var(--brand-gold-2)}
.mk{background-image:linear-gradient(120deg,rgba(191,131,31,.28),rgba(217,166,72,.38))}
.hl--scribble .scribble path,.scribble path{stroke:var(--brand-gold-2)}
.stat__v small,.ledger__row dd small,.bento__num small{color:var(--brand-gold)}
.stats{border-top-color:var(--brand-gold)}
.card__num,.tab__n,.track__n,.index__n,.step__n,.cap::before,.faq__n,.steps10__n,.state__n,.row__n,.core span,.cnext span,.philo__item span,.diffs li span{color:var(--brand-gold)}
.step__n,.cap::before,.core span,.cnext span{color:var(--brand-gold-2);background:var(--brand-navy)}
.faq__n{color:var(--brand-gold)}
#faq .faq details[open] .faq__n{background:var(--brand-navy);color:var(--brand-gold-2)}
.row__fix b,.cap__out::before,.index__cat,.post__cat,.case__tag,.tcard__stars i,.quote__stars{color:var(--brand-gold)}
.tcard__stars i{background:var(--brand-gold)}
.problem__fix b{color:var(--brand-green)}
.hero__all svg,.link-arrow::after,.more a::after,.card__go::after,.link-more::after{color:var(--brand-gold)}
/* buttons: gold CTA = logo gold; primary = logo navy */
.btn--gold{background:var(--brand-gold);color:#fff;border-color:var(--brand-gold);box-shadow:0 12px 26px -10px rgba(191,131,31,.6)}
.btn--gold:hover{background:var(--brand-gold-2);color:#1F2618}
.hero--split .btn--gold,.sidecard .btn--gold,.ctaband .btn--gold{background:var(--brand-gold);color:#fff}
.hero--split .btn--gold:hover,.sidecard .btn--gold:hover,.ctaband .btn--gold:hover{background:var(--brand-gold-2);color:#1F2618}
.btn--primary{background:var(--brand-navy);box-shadow:0 10px 24px -10px rgba(2,37,97,.6)}
.btn--primary:hover{background:var(--brand-navy-deep)}
.mbar__cta{background:var(--brand-navy)}
.hdr .btn--primary,.hdr .btn--gold{background:var(--brand-navy);color:#fff;border-color:var(--brand-navy)}
.hdr .btn--primary:hover,.hdr .btn--gold:hover{background:var(--brand-gold);border-color:var(--brand-gold);color:#fff}
.totop:hover,.svc-btn:hover,.pull__nav button:hover{background:var(--brand-navy);color:#fff}
.totop i{background:conic-gradient(var(--brand-gold) calc(var(--p,0) * 1%),transparent 0)}
/* links + focus */
a{color:var(--brand-navy)}
.prose a,.faq p a,.aside__box p a:not(.btn),.cookie p a{color:var(--brand-navy);border-bottom-color:var(--brand-gold)}
:focus-visible,a:focus-visible,button:focus-visible{outline-color:var(--brand-gold)}
.nav__item>a::before{background:var(--brand-gold)}
.nav__item>a[aria-current]{color:var(--brand-navy)}
.hdr__progress{background:var(--brand-gold)}
/* dark panels: gold accents */
.tcard--feat .tcard__mark,.tcard--feat .tcard__stars i{color:var(--brand-gold-2)}
.tcard--feat .tcard__av,.helpcard__avs span:nth-child(3),.orbit__core{background:var(--brand-gold-2);color:#1F2618}
.tcard__kpi b,.helpcard__eyebrow,.philo__item span,.diffs li span,.mv__tag,.sidecard__h,.live__note,.pagehead .eyebrow--inv,.ceo__photo figcaption a{color:var(--brand-gold-2)}
.ceo__photo figcaption a{background:var(--brand-gold-2);color:#1F2618}
.pagehead__copy::before,.ceo__quote,.section--intro .prose--lead{border-color:var(--brand-gold)}
.prose h2::before,.state::before,.model::before{background:var(--brand-gold)}
.ctaband::before{background:linear-gradient(90deg,var(--brand-gold),transparent)}
.bento__cell--accent{background:linear-gradient(135deg,var(--brand-gold-2),var(--brand-gold))}
.bento__cell--accent h3,.bento__cell--accent p{color:#1F2618}
.bento__cell--accent .btn{background:var(--brand-navy);color:#fff}
.live__frame .cell.safe{fill:var(--brand-gold)}.live__frame .cell.lit{fill:var(--brand-gold-2)!important}
.live__frame .bar{fill:var(--brand-gold)}.live__frame .line,.live__frame .dot,.live__frame .ping{stroke:var(--brand-gold-2);fill:var(--brand-gold-2)}
.live__frame .line{fill:none}.live__frame .ping{fill:none}
.lg-safe{background:var(--brand-gold)}.lg-all{background:var(--brand-gold-2)}
.live__legend button:hover,.live__legend button.is-active{border-color:var(--brand-gold);background:rgba(191,131,31,.18)}
.helpcard__avs span:first-child{background:var(--brand-gold)}
.fan__tag,.fan__meter i{color:var(--brand-gold-2);background:var(--brand-gold-2)}
.fan__tag{background:rgba(0,0,0,.35)}
.philo__item span{color:var(--brand-gold-2)}
.person__role,.quote__who span{color:var(--brand-gold)}
.ftr__col h2,.helpcard__h{color:var(--brand-gold-2)}
.ftr__built a{border-bottom-color:var(--brand-gold)}
.topbar__live,.topbar a{color:var(--brand-gold-2)}
.topbar a{border-bottom-color:var(--brand-gold)}
.hero__badge i{background:var(--brand-gold-2)}
.hero--split .hero__badge i{background-color:var(--brand-gold-2)}
.hero--split .hero__trust svg{color:var(--brand-gold-2)}
.chips-select input:checked+span{background:var(--brand-navy);border-color:var(--brand-navy)}
.chips-select input:checked+span::before{background:var(--brand-gold-2);border-color:var(--brand-gold-2)}
.cform .f input:focus,.cform .f select:focus,.cform .f textarea:focus{border-color:var(--brand-gold);box-shadow:0 0 0 4px rgba(191,131,31,.16)}
.cform__time{color:var(--brand-gold);background:var(--brand-gold-pale)}
.quickbar__field input:focus{border-color:var(--brand-gold);box-shadow:0 0 0 4px rgba(191,131,31,.25)}
.story__ring .fg{stroke:var(--brand-gold)}
.story__steps .step.is-active::before,.row::before,.index__item a::before{background:var(--brand-gold)}
.story__dur,.step__dur,.phase__body h2 span,.steps10__tag{color:var(--brand-gold)}
.phase__mark span{background-image:linear-gradient(120deg,var(--brand-gold),var(--brand-gold-2))}
.finale__contact a,.ftr__built a{border-bottom-color:var(--brand-gold)}
.stat{border-left:0}
/* WhatsApp stays WhatsApp green; success stays green */
/* header fit: never overflow */
.hdr__inner{gap:16px}
.nav__list{gap:0}
.nav__item>a{padding:10px 10px;font-size:.9rem}
.hdr__end .btn{white-space:nowrap;padding-inline:18px;font-size:.84rem}
.hdr__end .btn span{white-space:nowrap}
@media (max-width:1440px){.nav__item--contact{display:none}}
@media (max-width:1320px){.hdr__tel{display:none}}
@media (max-width:1200px){.nav__item>a{padding:10px 8px;font-size:.86rem}.brand__txt span{display:none}}
@media (max-width:1100px){.nav__item--careers{display:none}}
/* ===== dark surfaces: no navy text, ever ===== */
.section--dark a:not(.btn),.warroom a:not(.btn),.ctaband a:not(.btn),.ftr a:not(.btn):not(.soc),.tcard--feat a:not(.btn),.helpcard a:not(.btn),.sidecard a:not(.btn),.cpanel__side a:not(.btn),
.philo a,.mv a,.live__back a,.bento__cell a:not(.btn),.finale .finale__velocity a,.pagehead__copy a:not(.btn){color:var(--brand-gold-2)}
.section--dark a:not(.btn):hover,.warroom a:not(.btn):hover,.ctaband a:not(.btn):hover,.ftr a:not(.btn):not(.soc):hover{color:#fff}
.bento__cell--accent a:not(.btn){color:#1F2618}
/* bare .btn (no variant) on dark → gold; on light → navy outline */
.section--dark .btn:not([class*="btn--"]),.bento__cell .btn:not([class*="btn--"]){background:var(--brand-gold);color:#fff;border-color:var(--brand-gold)}
.btn:not([class*="btn--"]){border-color:var(--brand-navy);color:var(--brand-navy)}
.bento__cell--accent .btn{background:var(--brand-navy);color:#fff;border-color:var(--brand-navy)}
.bento__cell--accent .btn:hover{background:var(--brand-navy-deep)}
/* footer "All services" + legal links */
.ftr__col a b{color:var(--brand-gold-2)}
.ftr__base a,.ftr__built a{color:#D9D6CB}
.ftr__built a{color:#fff}
/* stat number gradient uses navy family only on light bg — fine; ensure dark stat tiles stay white */
.live__kpi b,.console__kpi b{color:#fff}
/* ===== contrast fixes ===== */
:root{--brand-gold-text:#8A5E12}                          /* AA on cream/beige */
.eyebrow,.eyebrow::before{color:var(--brand-gold-text)}
.eyebrow::before{background:var(--brand-gold)}
.case__tag,.post__cat,.index__cat,.step__dur,.story__dur,.person__role,.cform__time,.row__fix b,.cap__out::before,.steps10__tag,.phase__body h2 span,.state__n,.tab__n,.track__n,.index__n,.faq__n,.row__n{color:var(--brand-gold-text)}
.faq__n{background:var(--brand-gold-pale)}
.card__num{color:var(--brand-gold-text)}
.card__media+.card__num{color:#fff}
.section--dark .eyebrow,.warroom .eyebrow,.ctaband .eyebrow,.eyebrow--inv,.pagehead .eyebrow--inv,.ftr .eyebrow{color:var(--brand-gold-2)}
.cpanel__lead{color:#EDEBE3}
.cpanel__list span,.helpcard__rows small,.sidecard__facts dt,.sidecard__more li a{color:#D9D6CB}
.cpanel__list b,.helpcard__rows b{color:#C9D3B4}
.ftr__col h2,.sidecard__h{color:var(--brand-gold-2)}
/* footer links: light grey by default, gold on hover; accent links gold */
.ftr a:not(.btn):not(.soc){color:#D9D6CB}
.ftr a:not(.btn):not(.soc):hover{color:var(--brand-gold-2)}
.ftr__col a b,.ftr__built a{color:var(--brand-gold-2)}
.ftr__base a{color:#B5B8A8}
.ftr__base a:hover{color:#fff}
.ftr__built a,.ftr a.ftr__built__link{color:#fff!important;border-bottom-color:#E53935}
.ftr__built a:hover{color:#FF6B6B!important}
/* page-head video: no tint/gradient overlay */
.pagehead .sec__bgtint{display:none}
.pagehead .sec__bgvid video{filter:none;opacity:1}
.pagehead--side .pagehead__copy,.pagehead:not(.pagehead--side) .pagehead__copy{background:rgba(20,26,17,.72)}
/* page-head video: restore the dark olive tint */
.pagehead .sec__bgtint{display:block;background:linear-gradient(90deg,rgba(20,26,17,.55) 0%,rgba(20,26,17,.35) 55%,rgba(20,26,17,.25) 100%)}
.pagehead--side .pagehead__copy,.pagehead:not(.pagehead--side) .pagehead__copy{background:rgba(20,26,17,.55)}
/* footer: no particles, tighter spacing */
.ftr__bg,.ftr__particles,.ftr__video,.ftr__tint{display:none!important}
.ftr{padding-top:clamp(32px,4vw,48px)}
.ftr__top{padding-top:0}
.ftr__news{margin-bottom:24px;padding:18px 22px}
.ftr__grid{padding-bottom:22px;gap:26px}
.ftr__col ul{gap:6px}
.ftr__col h2{margin-bottom:10px}
.ftr__logo{width:64px;height:64px;margin-bottom:12px}
.ftr__line{margin-bottom:10px;font-size:1.05rem}
.ftr__neutral{margin-bottom:12px}
.ftr__base{padding-top:14px;padding-bottom:8px}
.ftr__bottom{padding-bottom:16px;gap:6px 20px}
.ftr__mark{display:none}
@media (max-width:960px){.ftr__grid{gap:18px}.ftr{padding-top:28px}}

/* ==========================================================================
   46. CONTACT v2 — premium editorial contact page + shared design tokens
   ========================================================================== */
:root{--ez:cubic-bezier(.22,1,.36,1);--terracotta:#B5654A;--sage-2:#8B9A6E;--r-card:20px;--r-field:12px}

/* ---- light page head (ivory, soft depth) ---- */
.pagehead--light{background:var(--paper,#F7F2EB);border-bottom:1px solid var(--rule);overflow:hidden}
.pagehead--light .sec__bgvid{display:none}
.pagehead--light .pagehead__depth{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.pagehead__glow{position:absolute;left:-10%;top:-40%;width:60%;height:140%;background:radial-gradient(closest-side,rgba(139,154,110,.16),transparent 70%);will-change:transform}
.pagehead__ring{position:absolute;right:6%;top:12%;width:340px;height:340px;border:1px solid rgba(74,86,57,.14);border-radius:50%;will-change:transform}
.pagehead__ring::after{content:"";position:absolute;inset:38px;border:1px solid rgba(74,86,57,.1);border-radius:50%}
.pagehead__grain{position:absolute;inset:0;opacity:.035;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.pagehead--light .pagehead__copy{background:none;border:0;box-shadow:none;backdrop-filter:none;padding:0;max-width:560px}
.pagehead--light .pagehead__copy::before{display:none}
.pagehead--light .eyebrow--inv{color:var(--brand-gold-text,#8A5E12)}
.pagehead--light .eyebrow--inv::before{background:var(--brand-gold,#BF831F)}
.pagehead--light h1{color:var(--navy-deep);font-size:clamp(2.6rem,5vw,4.2rem);line-height:1.02;letter-spacing:-.03em;margin-bottom:.45em}
.pagehead--light .pagehead__sub{color:var(--muted);font-size:1.08rem;line-height:1.6;max-width:52ch}
.pagehead--light .crumb{color:var(--muted)}
.pagehead--light .crumb a{color:var(--navy-deep)}
.pagehead--light .pagehead__side{border:0;box-shadow:var(--sh-lg);border-radius:var(--r-card)}
.pagehead--light .pagehead__side img{filter:saturate(.82) sepia(.08) contrast(1.02)}
/* entrance: eyebrow → headline line-by-line → sub → (photo) */
.js .pagehead--light .pagehead__copy>*{opacity:0;transform:translateY(14px);animation:ph-in .8s var(--ez) forwards}
.js .pagehead--light .pagehead__copy>.eyebrow{animation-delay:.05s}
.js .pagehead--light .pagehead__copy>h1{animation-delay:.18s;transform:translateY(22px)}
.js .pagehead--light .pagehead__copy>.pagehead__sub{animation-delay:.45s}
.js .pagehead--light .pagehead__side{opacity:0;transform:translateY(16px) scale(.985);animation:ph-in .9s var(--ez) .35s forwards}
@keyframes ph-in{to{opacity:1;transform:none}}
.js .pagehead--light h1 .w{animation:none;opacity:1;transform:none;filter:none}
.pagehead--light .pagehead__grid{padding-top:8px;padding-bottom:8px}

/* ---- layout ---- */
.section--contact{padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(40px,5vw,72px)}
.contactgrid{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.35fr);gap:clamp(24px,3.5vw,56px);align-items:start}
.cpanel{display:none}

/* ---- contact info blocks ---- */
.cinfo{display:flex;flex-direction:column;gap:12px;position:sticky;top:104px}
.cblock{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:16px;align-items:start;padding:18px 18px 18px 16px;background:#fff;border:1px solid var(--rule);border-radius:var(--r-card);
  color:var(--ink);text-decoration:none;box-shadow:var(--sh-sm);transition:transform .28s var(--ez),box-shadow .28s var(--ez),border-color .25s}
a.cblock:hover{transform:translateY(-2px);box-shadow:var(--sh-md);border-color:rgba(74,86,57,.45)}
.cblock--static{grid-template-columns:44px minmax(0,1fr)}
.cblock__ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex:0 0 44px}
.cblock__ico svg{width:20px;height:20px}
.cblock__ico--olive{background:rgba(74,86,57,.1);color:var(--navy,#4A5639)}
.cblock__ico--sage{background:rgba(139,154,110,.16);color:#4F6136}
.cblock__ico--amber{background:rgba(191,131,31,.12);color:#8A5E12}
.cblock__ico--terracotta{background:rgba(181,101,74,.12);color:var(--terracotta)}
.cblock__body{display:flex;flex-direction:column;gap:3px;min-width:0}
.cblock__body b{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.cblock__val{font-family:var(--head);font-weight:700;font-size:1.05rem;color:var(--navy-deep);line-height:1.3;word-break:break-word}
.cblock__sub{font-size:.85rem;color:var(--muted);line-height:1.5}
.cblock__sub em{font-style:normal;color:var(--ink);font-weight:600}
.cblock__go{align-self:center;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:rgba(139,154,110,.16);color:#4F6136;transition:transform .28s var(--ez),background .25s}
.cblock__go svg{width:15px;height:15px}
a.cblock:hover .cblock__go{transform:translateX(3px);background:#4F6136;color:#fff}
.cblock--wa{border-color:rgba(139,154,110,.45)}
.cblock--wa .cblock__val{color:#4F6136}
.cblock[hidden]{display:none}
.cconf{display:flex;gap:12px;align-items:flex-start;margin:6px 0 0;padding:14px 16px;border-radius:14px;background:rgba(139,154,110,.1);border:1px dashed rgba(74,86,57,.3);font-size:.86rem;color:var(--muted);line-height:1.55}
.cconf svg{width:18px;height:18px;flex:0 0 18px;color:#4F6136;margin-top:2px}
.cconf b{color:var(--navy-deep)}

/* ---- form ---- */
.cform--v2{padding:clamp(24px,3vw,40px);border-radius:var(--r-card);background:#fff;border:1px solid var(--rule);box-shadow:var(--sh-md);display:flex;flex-direction:column;gap:26px}
.cform--v2 .cform__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--rule)}
.cform--v2 .cform__head h2{font-size:clamp(1.5rem,2.2vw,1.9rem);margin:0;letter-spacing:-.02em;max-width:22ch}
.cform--v2 .cform__head .eyebrow{margin-bottom:8px}
.cform--v2 .cform__time{white-space:nowrap;margin-top:6px}
.fsec{border:0;margin:0;padding:0;min-width:0}
.fsec__head{display:flex;align-items:center;gap:12px;margin:0 0 14px;padding:0;font-family:var(--head);font-weight:700;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--navy-deep)}
.fsec__head span{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--navy-deep);color:var(--gold-light);font-size:.68rem;letter-spacing:.04em}
.fsec__head em{font-style:normal;font-weight:500;letter-spacing:.02em;text-transform:none;color:var(--muted);margin-left:2px}
.fsec__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 18px}
.fsec__grid .f{grid-column:1/-1}
.fsec__grid .f--half{grid-column:span 1}
.cform--v2 .f label{font-size:.82rem;font-weight:600;color:var(--navy-deep);margin-bottom:7px;display:flex;gap:6px;align-items:baseline}
.cform--v2 .f label i{color:var(--terracotta);font-style:normal;font-weight:700}
.cform--v2 .f label span{font-weight:500;color:var(--muted);font-size:.78rem}
.cform--v2 .f input[type=text],.cform--v2 .f input[type=tel],.cform--v2 .f input[type=email],.cform--v2 .f select,.cform--v2 .f textarea{
  background:#FBF8F2;border:1px solid var(--rule);border-radius:var(--r-field);padding:12px 14px;font-size:.96rem;color:var(--ink);min-height:48px;
  transition:border-color .22s var(--ez),box-shadow .22s var(--ez),background .22s}
.cform--v2 .f input::placeholder,.cform--v2 .f textarea::placeholder{color:#A09E95}
.cform--v2 .f input:hover,.cform--v2 .f select:hover,.cform--v2 .f textarea:hover{border-color:rgba(74,86,57,.45);background:#FDFBF7}
.cform--v2 .f input:focus,.cform--v2 .f select:focus,.cform--v2 .f textarea:focus{outline:0;background:#fff;border-color:var(--navy,#4A5639);box-shadow:0 0 0 4px rgba(74,86,57,.12)}
.cform--v2 .f input[aria-invalid="true"],.cform--v2 .f select[aria-invalid="true"]{border-color:var(--terracotta);background:#fff}
.cform--v2 .f input[aria-invalid="true"]:focus,.cform--v2 .f select[aria-invalid="true"]:focus{box-shadow:0 0 0 4px rgba(181,101,74,.14)}
.cform--v2 .f select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A5639' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:40px}
.cform--v2 .f textarea{min-height:128px;resize:vertical}
.f__err{display:block;min-height:0;margin:6px 0 0;font-size:.78rem;color:var(--terracotta);font-weight:500;opacity:0;transform:translateY(-3px);transition:opacity .2s,transform .2s var(--ez)}
.f__err:not(:empty){opacity:1;transform:none}
/* chips */
.cform--v2 .chips-select{gap:10px}
.cform--v2 .chips-select span{padding:11px 16px;border-radius:12px;background:#FBF8F2;border:1px solid var(--rule);font-size:.88rem;font-weight:500;color:var(--ink);gap:9px;transition:background .22s var(--ez),border-color .22s,color .22s,transform .22s var(--ez),box-shadow .22s}
.cform--v2 .chips-select span::before{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--rule);background:#fff;flex:0 0 16px;transition:background .2s,border-color .2s;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");background-size:0;background-position:center;background-repeat:no-repeat}
.cform--v2 .chips-select label:hover span{transform:translateY(-1px);border-color:var(--navy,#4A5639);box-shadow:var(--sh-sm)}
.cform--v2 .chips-select input:checked+span{background:rgba(74,86,57,.1);border-color:var(--navy,#4A5639);color:var(--navy-deep)}
.cform--v2 .chips-select input:checked+span::before{background-color:var(--navy,#4A5639);border-color:var(--navy,#4A5639);background-size:11px}
.cform--v2 .chips-select input:focus-visible+span{outline:3px solid var(--brand-gold,#BF831F);outline-offset:2px}
/* consent */
.fsec--consent .f{padding:14px 16px;border-radius:12px;background:#FBF8F2;border:1px solid var(--rule)}
.cform--v2 .consent{font-size:.9rem;color:var(--ink);gap:12px;align-items:flex-start}
.cform--v2 .consent input{width:18px;height:18px;margin-top:2px;accent-color:var(--navy,#4A5639);flex:0 0 18px}
.cform--v2 .consent a{color:var(--navy);border-bottom:1px solid var(--brand-gold,#BF831F)}
/* foot */
.cform--v2 .cform__foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;padding-top:6px}
.cform--v2 .btn--primary{background:var(--navy,#4A5639);border-color:var(--navy,#4A5639);color:#fff;box-shadow:0 10px 24px -12px rgba(46,54,36,.55);transition:transform .3s var(--ez),box-shadow .3s var(--ez),background .3s}
.cform--v2 .btn--primary:hover{transform:translateY(-2px);background:#55633F;box-shadow:0 16px 30px -12px rgba(46,54,36,.6)}
.cform--v2 .btn--primary:hover .btn__arrow{transform:translateX(4px)}
.cform--v2 .btn--primary:active{transform:translateY(0) scale(.99)}
.cform--v2 .btn--primary::after{display:none}
.cform--v2 .form__status{margin:0;padding:12px 14px;border-radius:12px;font-size:.9rem}
.cform--v2 .form__status:empty{display:none}
.cform--v2 .form__status[data-state="ok"]{background:rgba(94,122,58,.1);color:var(--ok);animation:ph-in .5s var(--ez)}
.cform--v2 .form__status[data-state="err"]{background:rgba(181,101,74,.1);color:var(--terracotta)}
.cform--v2 .form__status[data-state=ok]::before{display:none}

/* ---- three steps with connecting line ---- */
.section--process{padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,80px)}
.section--process .sechead{margin-bottom:34px}
.steps3{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:st}
.steps3::before{content:"";position:absolute;left:calc(16.66% + 22px);right:calc(16.66% + 22px);top:38px;height:1px;background:var(--rule)}
.steps3::after{content:"";position:absolute;left:calc(16.66% + 22px);right:calc(16.66% + 22px);top:38px;height:1px;background:var(--brand-gold,#BF831F);transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ez) .25s}
.steps3.is-in::after{transform:scaleX(1)}
.steps3 li{position:relative;text-align:center;padding:0 12px;opacity:0;transform:translateY(14px);transition:opacity .7s var(--ez),transform .7s var(--ez),box-shadow .28s var(--ez),border-color .28s}
.steps3.is-in li{opacity:1;transform:none}
.steps3.is-in li:nth-child(2){transition-delay:.13s}.steps3.is-in li:nth-child(3){transition-delay:.26s}
.steps3__n{display:grid;place-items:center;width:44px;height:44px;margin:16px auto 18px;border-radius:50%;background:#fff;border:1px solid var(--rule);color:var(--navy-deep);font-family:var(--head);font-weight:800;font-size:.82rem;position:relative;z-index:1;transition:background .3s,color .3s,border-color .3s,transform .3s var(--ez)}
.steps3 li:hover .steps3__n{background:var(--navy-deep);color:var(--gold-light);border-color:var(--navy-deep);transform:translateY(-3px)}
.steps3 li b{display:block;font-family:var(--head);font-size:1.1rem;color:var(--navy-deep);margin-bottom:6px}
.steps3 li p{margin:0 auto;max-width:30ch;font-size:.92rem;color:var(--muted);line-height:1.55}
.steps3 li:hover b{color:var(--navy)}
.no-js .steps3 li{opacity:1;transform:none}.no-js .steps3::after{transform:none}

/* ---- newsletter hierarchy ---- */
.ftr__news{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-card);padding:22px 24px}
.ftr__news .eyebrow{margin-bottom:6px;font-size:.66rem}
.ftr__news h2{font-size:1.25rem;margin-bottom:6px}
.ftr__news input{transition:border-color .22s var(--ez),box-shadow .22s var(--ez),background .22s}
.ftr__news input:focus{border-color:var(--brand-gold-2,#D9A648);box-shadow:0 0 0 4px rgba(217,166,72,.18);background:rgba(255,255,255,.1)}
.ftr__news .btn{transition:transform .3s var(--ez),box-shadow .3s var(--ez),background .3s}
.ftr__news .btn:hover{transform:translateY(-2px)}
.ftr__news .btn:hover .btn__arrow{transform:translateX(4px)}
/* footer: legal divider + secondary credit */
.ftr__base{border-top:1px solid rgba(255,255,255,.12)}
.ftr__col a{transition:color .22s var(--ez)}
.ftr__built{opacity:.75}
.ftr__built a{color:#D9D6CB!important;font-weight:500;border-bottom-color:rgba(255,255,255,.3)}
.ftr__built a:hover{color:#fff!important}

/* ---- header polish ---- */
.hdr{transition:background .3s,box-shadow .3s,backdrop-filter .3s}
.hdr.is-scrolled{background:rgba(247,242,235,.9);backdrop-filter:saturate(160%) blur(12px);box-shadow:0 8px 30px -18px rgba(35,42,27,.35)}
.nav__item>a{transition:color .2s var(--ez),background .2s}
.nav__item>a::before{height:2px;bottom:6px;transition:transform .28s var(--ez)}

/* ---- responsive ---- */
@media (max-width:1180px){.contactgrid{grid-template-columns:minmax(280px,.9fr) minmax(0,1.3fr);gap:24px}}
@media (max-width:960px){
  .contactgrid{grid-template-columns:1fr}
  .cinfo{position:static;order:2}
  .cform--v2{order:1}
  .steps3{grid-template-columns:1fr;gap:0;padding-left:8px}
  .steps3::before,.steps3::after{left:29px;right:auto;top:16px;bottom:16px;width:1px;height:auto;transform-origin:top}
  .steps3.is-in::after{transform:scaleY(1)}
  .steps3::after{transform:scaleY(0)}
  .steps3 li{display:grid;grid-template-columns:44px 1fr;gap:0 18px;text-align:left;padding:14px 0 22px}
  .steps3__n{margin:0;grid-row:1/3}
  .steps3 li p{margin:0}
  .pagehead--light .pagehead__ring{display:none}
  .fsec__grid{grid-template-columns:1fr}
  .fsec__grid .f--half{grid-column:1/-1}
}
@media (max-width:640px){
  .cform--v2{padding:20px 16px;gap:22px}
  .cform--v2 .cform__head{flex-direction:column}
  .cform--v2 .cform__time{align-self:flex-start;margin-top:0}
  .cblock{grid-template-columns:40px 1fr;gap:12px;padding:14px}
  .cblock__go{display:none}
  .cblock__ico{width:40px;height:40px;flex-basis:40px}
  .pagehead--light h1{font-size:clamp(2.1rem,9vw,2.8rem)}
}
@media (hover:none){a.cblock:hover,.steps3 li:hover .steps3__n{transform:none}}
@media (prefers-reduced-motion:reduce){
  .js .pagehead--light .pagehead__copy>*,.js .pagehead--light .pagehead__side{opacity:1;transform:none;animation:none}
  .steps3 li,.steps3::after{transition:none;opacity:1;transform:none}
  .pagehead__glow,.pagehead__ring{transform:none!important}
}
/* footer watermark: fully inside the footer, never clipped */
.ftr::before{right:24px;bottom:24px;width:min(420px,40vw);height:min(420px,40vw);opacity:.06;background-position:center;background-size:contain}
.ftr{overflow:hidden}
/* light page head must win over the dark/video variant */
section.pagehead.pagehead--light{background:var(--paper,#F7F2EB)!important;border-bottom:1px solid var(--rule)}
section.pagehead.pagehead--light .sec__bgvid,section.pagehead.pagehead--light .sec__bgtint{display:none!important}
section.pagehead.pagehead--light .pagehead__copy{background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;padding:0!important}
section.pagehead.pagehead--light .pagehead__copy::before{display:none!important}
section.pagehead.pagehead--light h1{color:var(--navy-deep)!important;text-shadow:none}
section.pagehead.pagehead--light .pagehead__sub{color:var(--muted)!important;text-shadow:none}
section.pagehead.pagehead--light .eyebrow--inv{color:#8A5E12!important}
section.pagehead.pagehead--light .eyebrow--inv::before{background:#BF831F!important}
section.pagehead.pagehead--light .crumb,section.pagehead.pagehead--light .crumb a{color:var(--muted)!important}
/* footer watermark: place inside, clip nothing */
footer.ftr::before{content:"";position:absolute;right:20px;bottom:110px;width:300px;height:300px;opacity:.07;background:url("../img/logo/cpsr-white.svg") center/contain no-repeat;pointer-events:none}
@media (max-width:960px){footer.ftr::before{width:180px;height:180px;right:12px;bottom:140px;opacity:.06}}
section.pagehead.pagehead--light h1{margin-bottom:.5em}
@media (max-width:960px){section.pagehead.pagehead--light h1{margin-bottom:.55em}.pagehead--light .pagehead__grid{gap:22px}}
/* last small tap targets on mobile */
@media (max-width:960px){
  .finale__contact a,.person__links a,.consent a,.cform--v2 .consent a{display:inline-block;padding:8px 2px;margin:-8px -2px;min-height:32px;line-height:1.4}
  .finale__contact dd{line-height:1.2}
}
@media (max-width:960px){.finale .finale__contact dd a{display:inline-flex;align-items:center;min-height:36px;padding:0 2px;margin:0;line-height:1.3}}
@media (max-width:960px){.ctaband__contact a{display:inline-flex;align-items:center;min-height:36px;padding:0 4px}}
/* ===== hero headline v2: italic gold second line, drawn underline, one soft sheen ===== */
.hero__title--v2{font-size:clamp(2.4rem,4.6vw,4.1rem);line-height:1.02;letter-spacing:-.035em;text-wrap:balance}
.hero__title--v2 .ln{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.hero__title--v2 .ln__in{display:inline-block;position:relative}
.hero__title--v2 .ln:first-child .ln__in{color:#fff}
.hl--gold{padding-right:.08em}
.hl--gold em{font-style:italic;font-weight:800;letter-spacing:-.03em;
  background:linear-gradient(92deg,#F3D48A 0%,#D9A648 38%,#BF831F 70%,#E4B866 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 6px 22px rgba(191,131,31,.28))}
.scribble--v2{position:absolute;left:0;right:0;bottom:-.04em;height:.22em;width:100%;overflow:visible}
.scribble--v2 path{fill:none;stroke:#D9A648;stroke-width:4;stroke-linecap:round;stroke-dasharray:320;stroke-dashoffset:320;opacity:.9;animation:scrib .85s cubic-bezier(.22,1,.36,1) 1.15s forwards}
.hl__sheen{position:absolute;inset:-6% -4%;pointer-events:none;background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.55) 50%,transparent 58%);
  -webkit-mask:linear-gradient(#000,#000);mix-blend-mode:screen;opacity:0;transform:translateX(-60%);animation:hl-sheen 1.4s cubic-bezier(.22,1,.36,1) 1.9s forwards}
@keyframes hl-sheen{0%{opacity:0;transform:translateX(-60%)}15%{opacity:.7}100%{opacity:0;transform:translateX(70%)}}
/* line reveal: masked rise with a slight blur settle */
.js .hero__title--v2 .ln__in{transform:translateY(105%);opacity:0;filter:blur(6px);animation:line-in2 1.05s cubic-bezier(.22,1,.36,1) .3s forwards}
.js .hero__title--v2 .ln:nth-child(3) .ln__in{animation-delay:.48s}
@keyframes line-in2{60%{filter:blur(0)}to{transform:none;opacity:1;filter:blur(0)}}
/* hover: underline re-draws, gold brightens */
.hero__title--v2:hover .hl--gold em{filter:drop-shadow(0 8px 26px rgba(217,166,72,.4)) brightness(1.06)}
.hero__title--v2:hover .scribble--v2 path{animation:scrib .7s cubic-bezier(.22,1,.36,1) forwards}
.hero__title--v2 .hl--gold em,.scribble--v2 path{transition:filter .4s}
/* retire the old scribble/hl styles on this title */
.hero__title--v2 .hl,.hero--split .hero__title--v2 .hl{background:none;-webkit-text-fill-color:initial}
.hero--split .hero__title--v2{white-space:normal}
@media (max-width:640px){.hero__title--v2{font-size:clamp(2.1rem,9.4vw,2.9rem)}.scribble--v2 path{stroke-width:3}}
@media (prefers-reduced-motion:reduce){.js .hero__title--v2 .ln__in{animation:none;transform:none;opacity:1;filter:none}.scribble--v2 path{animation:none;stroke-dashoffset:0}.hl__sheen{display:none}}
.hl--gold em{background:linear-gradient(92deg,#E9C77A 0%,#D9A648 45%,#C98F2E 100%);-webkit-background-clip:text;background-clip:text;padding-bottom:.06em}
.hero__title--v2 .ln:nth-child(3){padding-bottom:.28em;margin-bottom:-.2em}
.scribble--v2{bottom:-.02em;height:.2em}
.hl--gold em{display:inline-block;padding-right:.18em;margin-right:-.1em}
.hl--gold{padding-right:.12em}
/* mobile services carousel: ‹ › controls + dots below the swipe strip */
.svc-mnav{display:none}
@media (max-width:960px){
  .svc-mnav{display:flex;align-items:center;justify-content:center;gap:14px;margin:6px var(--gut) 0}
  .svc-mnav .svc-btn{position:static;transform:none;display:grid;width:46px;height:46px;box-shadow:var(--sh-sm)}
  .svc-mnav .svc-btn:hover{transform:none}
  .svc-mnav .svc-btn:disabled{opacity:.35;cursor:default}
  .svc-mnav .svc-btn:disabled:hover{background:#fff;color:var(--navy-deep)}
  .svc-mnav__dots{display:flex;gap:6px;align-items:center}
  .svc-mnav__dots i{width:6px;height:6px;border-radius:50%;background:var(--rule);transition:width .25s var(--e-out),background .25s}
  .svc-mnav__dots i.is-on{width:18px;border-radius:3px;background:var(--brand-gold,#BF831F)}
  /* one full card per view with a peek of the next */
  .svc-marquee{scroll-padding-left:var(--gut)}
  .svc-marquee .svc-track>.card{flex:0 0 min(78vw,320px);scroll-snap-align:start}
  .svc-marquee .svc-track{padding-right:calc(var(--gut) * 2)}
}
/* mobile: always a swipe strip (even under reduced motion) */
@media (max-width:960px) and (prefers-reduced-motion:reduce){
  .svc-marquee .svc-track{display:flex;flex-wrap:nowrap;width:max-content;grid-template-columns:none}
  .svc-marquee .svc-track>.card{flex:0 0 min(78vw,320px)}
  .svc-mnav .svc-btn{display:grid}
}
/* CEO portrait on mobile/tablet: keep portrait ratio, caption below the photo */
@media (max-width:960px){
  .ceo__photo{aspect-ratio:auto;max-width:360px;margin:0 auto;border-radius:22px;overflow:visible;background:none;box-shadow:none}
  .ceo__photo img{aspect-ratio:4/5;height:auto;border-radius:22px;box-shadow:var(--sh-lg);object-position:center 20%}
  .ceo__photo figcaption{position:static;margin-top:12px;background:var(--navy-deep);border:0;backdrop-filter:none;border-radius:16px}
  .ceo__grid{gap:26px}
}
@media (max-width:640px){.ceo__photo{max-width:100%}.ceo__photo img{aspect-ratio:4/5}}
/* ===== mobile visual pass ===== */
@media (max-width:960px){
  /* page-head side photo: proper 16:10 block, not a strip */
  .pagehead--side .pagehead__grid{grid-template-columns:1fr;gap:18px}
  .pagehead__side,section.pagehead.pagehead--light .pagehead__side{aspect-ratio:16/10;width:100%;max-width:100%;height:auto;min-height:200px;border-radius:16px}
  .pagehead__side img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
  /* drop cap: smaller on phones */
  .prose--lead p:first-child::first-letter{font-size:2.3em;line-height:.9;padding-right:.1em}
  /* case/insight cards: full-width media */
  .case__media,.post__thumb{aspect-ratio:16/9}
  /* CEO section: photo first */
  .ceo__photo{order:0}
  /* lead-page headline sizes */
  .pagehead h1{font-size:clamp(1.9rem,7.6vw,2.5rem)}
  /* bottom-of-page: no dead space before footer */
  main>.section:last-of-type{padding-bottom:clamp(36px,8vw,56px)}
}
@media (max-width:640px){
  .pagehead__side,section.pagehead.pagehead--light .pagehead__side{aspect-ratio:4/3;min-height:180px}
  .prose--lead p:first-child{font-size:1.15rem}
  .prose--lead p:first-child::first-letter{font-size:2.1em}
}
/* newsletter: input+button row, status message on its own line */
.ftr__news form.nlform{display:block}
.nlform__row{display:flex;gap:8px;align-items:center}
.nlform__row input{flex:1 1 auto;min-width:0}
.nlform__row .btn{flex:0 0 auto;white-space:nowrap}
.nlform__row .btn>span{display:inline-flex;align-items:center;gap:8px}
.nlform .form__status{display:block;margin:10px 0 0;font-size:.85rem;line-height:1.45;color:#C9D3B4}
.nlform .form__status:empty{display:none}
.nlform .form__status[data-state="ok"]{color:#A7D7A0}
.nlform .form__status[data-state="err"]{color:#F0A28C}
.nlform .form__status[data-state="err"] a{color:#fff;text-decoration:underline}
.nlform .form__status.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.nlform .form__status[data-state]:not(.sr){position:static;width:auto;height:auto;overflow:visible;clip:auto}
.nlform input[aria-invalid="true"]{border-color:#F0A28C}
@media (max-width:640px){.nlform__row{flex-direction:column;align-items:stretch}.nlform__row .btn{width:100%;min-height:46px}}
/* nav: no background pill on active/hover — colour + underline only */
.nav__item>a:hover,.nav__item>a[aria-current]{background:transparent;color:var(--brand-navy,#022561)}
.nav__item>a[aria-current]::before{transform:scaleX(1);transform-origin:left;background:var(--brand-gold,#BF831F)}
/* footer logo: larger */
.ftr__logo{width:104px;height:104px;margin-bottom:16px}
@media (max-width:960px){.ftr__logo{width:92px;height:92px}}
/* leadership card (single founder) on mobile/tablet: photo, then text with clear spacing */
@media (max-width:960px){
  .people--one{display:block}
  .people--one .person:first-child{display:block;padding:0}
  .people--one .person:first-child>*{grid-column:auto}
  .people--one .person__ph,.people--one .person__ph--photo{aspect-ratio:4/5;max-width:340px;margin:0 auto 22px;border-radius:20px;overflow:hidden}
  .people--one .person__ph--photo img{width:100%;height:100%;object-fit:cover;object-position:center 15%}
  .people--one .person h3{font-size:1.6rem;margin:0 0 .2em;line-height:1.15}
  .people--one .person__role{margin-bottom:12px}
  .people--one .person p{font-size:1rem}
}

/* ===== design review fixes ===== */
/* CTA band flows into the footer: no island gap */
main>.ctaband{margin-bottom:0;border-radius:28px 28px 0 0}
main>.ctaband+*{margin-top:0}
.ftr{margin-top:0}
main>.section:last-of-type+.ctaband,main>.section--band+.ctaband{margin-top:clamp(28px,4vw,48px)}
@media (max-width:640px){main>.ctaband{border-radius:18px 18px 0 0}}
/* impact: 5 cases → 3+2 grid with the last row centred */
.cases{grid-template-columns:repeat(6,1fr)}
.cases>.case{grid-column:span 3}
.cases>.case:nth-child(n+3):nth-last-child(-n+3){grid-column:span 2}
@media (max-width:960px){.cases{grid-template-columns:1fr}.cases>.case,.cases>.case:nth-child(n){grid-column:auto}}
/* solutions index: photo cards */
.grid--photo .card{padding-top:0}
.grid--photo .card__media{margin:0 -24px 18px;border-radius:var(--r) var(--r) 0 0}
.grid--photo .card{overflow:hidden}
/* leadership facts */
.factlist{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.factlist li{padding:22px 20px;background:#fff;border:1px solid var(--rule);border-radius:18px;box-shadow:var(--sh-sm)}
.factlist b{display:block;font-family:var(--head);font-weight:800;font-size:1.9rem;letter-spacing:-.03em;color:var(--navy-deep);line-height:1}
.factlist span{display:block;margin-top:8px;font-size:.86rem;color:var(--muted)}
@media (max-width:640px){.factlist{grid-template-columns:1fr 1fr}.factlist b{font-size:1.5rem}}
/* careers form: compact contact styling */
.cform--compact{padding:24px 22px;gap:14px;background:#fff}
.cform--compact .f{margin:0}
.cform--compact h2{font-size:1.4rem;margin-bottom:.2em}
.cform--compact .f input[type=text],.cform--compact .f input[type=tel],.cform--compact .f input[type=email],.cform--compact .f select{min-height:46px}
.cform--compact .consent{font-size:.86rem}
.cform--compact .btn{margin-top:4px}
.empty--card{display:flex;gap:14px;align-items:flex-start;padding:22px 24px;border-radius:18px;border:1px dashed rgba(74,86,57,.35);background:rgba(139,154,110,.08);color:var(--ink-2);font-size:.98rem;line-height:1.6}
.empty--card svg{width:24px;height:24px;flex:0 0 24px;color:var(--gold-deep);margin-top:2px}
/* service verify strip: connected timeline */
.steps--line{position:relative;grid-template-columns:repeat(4,1fr);gap:18px;counter-reset:s}
.steps--line::before{content:"";position:absolute;left:12.5%;right:12.5%;top:44px;height:1px;background:var(--rule)}
.steps--line .step{background:transparent;border:0;box-shadow:none;padding:0 8px;text-align:center;position:relative}
.steps--line .step:hover{transform:none;box-shadow:none}
.steps--line .step__n{margin:24px auto 16px;width:40px;height:40px;border-radius:50%;background:#fff;border:1px solid var(--rule);color:var(--navy-deep);display:grid;place-items:center;position:relative;z-index:1;transition:background .3s,color .3s,border-color .3s}
.steps--line .step:hover .step__n{background:var(--navy-deep);color:var(--gold-light);border-color:var(--navy-deep)}
.steps--line .step h3{margin:0 0 .35em;font-size:1.1rem}
.steps--line .step p{font-size:.92rem;max-width:26ch;margin:0 auto}
@media (max-width:960px){.steps--line{grid-template-columns:1fr;gap:0;padding-left:6px}.steps--line::before{left:26px;right:auto;top:20px;bottom:20px;width:1px;height:auto}.steps--line .step{display:grid;grid-template-columns:40px 1fr;gap:0 16px;text-align:left;padding:12px 0 20px}.steps--line .step__n{margin:0;grid-row:1/3}.steps--line .step p{margin:0;max-width:none}}
/* 404: compact section, no dead space */
body:has(.pagehead:not(.pagehead--side)) main>.section:last-of-type{padding-bottom:clamp(40px,6vw,72px)}
/* cta band: gentle top spacing, sits on the footer */
main>.ctaband{margin-top:clamp(24px,4vw,44px)}
/* mobile: floating WhatsApp hidden (dock has WhatsApp); back-to-top takes the right corner */
@media (max-width:960px){
  .wafab{display:none!important}
  .totop{left:auto;right:12px;bottom:calc(84px + env(safe-area-inset-bottom))}
}
/* mobile menu: anchored to the header's real bottom edge (set by JS); first item never hidden */
.mnav{inset:auto 0 0;top:66px;padding-top:18px;padding-bottom:calc(120px + env(safe-area-inset-bottom))}
.mnav .wrap>ul>li:first-child a{padding-top:14px}
@media (max-width:640px){.mnav{top:66px}}
/* mobile menu open: header pinned to the top, menu directly beneath it, page locked */
html.menu-open{overflow:hidden}
html.menu-open .hdr{position:fixed;top:0;left:0;right:0;z-index:100}
html.menu-open .topbar{display:none}
html.menu-open .mnav{top:66px!important}
@media (max-width:640px){html.menu-open .mnav{top:66px!important}}
/* header alignment: chevrons inline, everything on one centred row */
.hdr__inner{align-items:center}
.nav__list{align-items:center}
.nav__item>a{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;line-height:1;padding:10px 10px}
.nav__item--drop>a::after,.nav__item--mega>a::after{content:"";display:inline-block;width:5px;height:5px;margin:0 0 2px 2px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);opacity:.6;flex:0 0 auto;position:static}
.nav__item>a::before{bottom:4px}
.hdr__end{align-items:center}
.hdr__tel{line-height:1}
/* CEO message v2: quote headline, actions row with social connect */
.ceo__body h2{font-size:clamp(1.5rem,2.5vw,2.1rem);font-style:italic;font-weight:700;color:var(--navy-deep);max-width:26ch;line-height:1.25}
.ceo__quote::before{display:none}
.ceo__quote{margin-top:16px}
.ceo__quote p{font-size:1rem;line-height:1.65}
.ceo__quote strong{color:var(--navy-deep)}
.ceo__actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 28px;margin-top:22px}
.ceo__social{display:flex;align-items:center;gap:8px}
.ceo__social-label{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.ceo__social .soc{display:inline-flex;width:36px;height:36px;border-radius:9px;overflow:hidden;transition:transform .25s var(--e-out),box-shadow .25s}
.ceo__social .soc:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.ceo__social .soc svg{width:100%;height:100%;display:block}
.ceo__social .soc--wa{background:#25D366;color:#fff}
.ceo__social .soc--wa svg{padding:6px;box-sizing:border-box}
@media (max-width:640px){.ceo__actions{flex-direction:column;align-items:flex-start;gap:16px}.ceo__actions .btn{width:100%}}
/* ===== Leadership & Vision — royal blue / burnished gold / white ===== */
.ceo--royal{background:#0B2A6B;color:#fff;position:relative;overflow:hidden}
.ceo--royal::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0E3078 0%,#0B2A6B 60%,#081F52 100%);pointer-events:none}
.ceo--royal .wrap{position:relative}
.ceo--royal .ceo__grid{grid-template-columns:minmax(0,.78fr) 1px minmax(0,1.22fr);gap:clamp(28px,4vw,64px);align-items:start}
.ceo--royal .ceo__photo{max-width:420px;border-radius:14px;box-shadow:0 40px 80px -40px rgba(0,0,0,.7);background:#0E3078;position:sticky;top:110px}
.ceo--royal .ceo__photo img{filter:none}
.ceo--royal .ceo__grid::after{content:"";grid-column:2;align-self:stretch;width:1px;background:linear-gradient(180deg,transparent,#C9A24A 12%,#C9A24A 88%,transparent);opacity:.9}
.ceo--royal .ceo__grid>.ceo__photo{grid-column:1;order:0}
.ceo--royal .ceo__grid>.ceo__body{grid-column:3}
.ceo--royal .eyebrow--inv{color:#D9B25C}
.ceo--royal .eyebrow--inv::before{background:#C9A24A}
.ceo__heading{font-size:clamp(2rem,3.4vw,2.9rem);color:#fff;letter-spacing:-.025em;margin:6px 0 18px;font-style:normal}
.ceo__pull{font-family:var(--head);font-weight:600;font-style:italic;font-size:clamp(1.2rem,1.8vw,1.5rem);line-height:1.4;color:#F1E4BF;margin:0 0 22px;padding-left:18px;border-left:2px solid #C9A24A;max-width:34ch}
.ceo--royal .ceo__quote{border:0;padding:0;margin:0 0 26px}
.ceo--royal .ceo__quote::before{display:none}
.ceo--royal .ceo__quote p{color:rgba(255,255,255,.86);font-size:1rem;line-height:1.7;max-width:62ch}
.ceo--royal .ceo__quote p:last-child{color:#fff;font-weight:600}
.ceo__sign--v2{display:block;margin:0 0 22px;padding-top:18px;border-top:1px solid rgba(201,162,74,.35)}
.ceo__sig{height:64px;display:flex;align-items:flex-end;margin-bottom:6px}
.ceo__sig img{height:64px;width:auto;filter:brightness(0) invert(1);opacity:.92}
.ceo__sig img+.ceo__sig-fallback{display:none}
.ceo__sig-fallback{font-family:"Brush Script MT","Segoe Script","Lucida Handwriting",cursive;font-size:2.1rem;color:#F1E4BF;line-height:1;letter-spacing:.01em}
.ceo__sign--v2 b{display:block;color:#fff;font-family:var(--head);font-size:1.05rem}
.ceo__sign--v2 span{display:block;color:#D9B25C;font-size:.82rem;letter-spacing:.06em;margin-top:2px}
.ceo--royal .ceo__actions{gap:16px 26px}
.ceo--royal .btn--primary{background:#C9A24A;border-color:#C9A24A;color:#0B2A6B;box-shadow:0 12px 26px -12px rgba(201,162,74,.6)}
.ceo--royal .btn--primary:hover{background:#D9B25C;border-color:#D9B25C;color:#0B2A6B}
.ceo--royal .ceo__social-label{color:rgba(255,255,255,.6)}
.ceo--royal .ceo__social .soc{border-radius:8px;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.ceo--royal .ceo__social .soc:hover{box-shadow:0 12px 24px -12px rgba(0,0,0,.6)}
/* keep this section clean: no tilt/glare or bg decorations here */
.ceo--royal .glare{display:none}
@media (max-width:960px){
  .ceo--royal .ceo__grid{grid-template-columns:1fr;gap:26px}
  .ceo--royal .ceo__grid::after{display:none}
  .ceo--royal .ceo__grid>.ceo__photo,.ceo--royal .ceo__grid>.ceo__body{grid-column:1}
  .ceo--royal .ceo__photo{position:static;max-width:360px;margin:0 auto;aspect-ratio:auto}
  .ceo--royal .ceo__photo img{aspect-ratio:4/5;object-position:center 15%;border-radius:14px}
}
.ceo--royal .ceo__body h2.ceo__heading{color:#fff!important;font-style:normal!important;font-weight:800;max-width:none}
.ceo--royal .ceo__body h2.ceo__heading .w{color:#fff}
.ceo--royal .ceo__grid{position:relative}
.ceo--royal .ceo__divider{grid-column:2;align-self:stretch;width:1px;min-height:100%;background:linear-gradient(180deg,transparent,#C9A24A 12%,#C9A24A 88%,transparent)}
.ceo--royal .ceo__grid::after{display:none}
@media (max-width:960px){.ceo--royal .ceo__divider{display:none}}
.hdr__wa{display:none!important}
@media (max-width:960px){.hdr__end{gap:10px}}
.hdr__tel{display:none!important}

/* ---- 47. Hero carries the founder's message (client request) ---- */
.hero__copy--ceo{max-width:600px}
.hero__pull{font-family:var(--head);font-weight:600;font-style:italic;font-size:clamp(1.08rem,1.5vw,1.3rem);line-height:1.45;color:#F1E4BF;margin:18px 0 16px;padding-left:16px;border-left:2px solid var(--brand-gold-2);max-width:36ch;text-align:left}
.hero__msg{display:flex;flex-direction:column;gap:12px;margin:0 0 20px;max-width:56ch;text-align:left}
.hero__msg p{margin:0;color:#E4E1D6;font-size:1rem;line-height:1.65}
.js .hero__pull,.js .hero__msg p,.js .hero__sign,.js .hero__social{opacity:0;transform:translateY(10px);animation:rise-in .7s var(--e-out) forwards}
.js .hero__pull{animation-delay:.5s}.js .hero__msg p:nth-child(1){animation-delay:.6s}.js .hero__msg p:nth-child(2){animation-delay:.7s}.js .hero__msg p:nth-child(3){animation-delay:.8s}.js .hero__sign{animation-delay:.9s}.js .hero__social{animation-delay:1.1s}
.hero__sign{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0 0 22px;text-align:left}
.hero__sign .ceo__sig{margin:0 0 6px}
.hero__sign .ceo__sig img{height:56px;width:auto;filter:brightness(0) invert(1);opacity:.9}
.hero__sign .ceo__sig-fallback{font-family:"Segoe Script","Brush Script MT",cursive;font-size:1.6rem;color:#F1E4BF;line-height:1.1}
.hero__sign .ceo__sig img+.ceo__sig-fallback{display:none}
.hero__sign b{color:#fff;font-size:1.02rem}
.hero__sign span{color:#CFCBBF;font-size:.86rem}
.hero__social{margin-top:2px;justify-content:flex-start}
.hero__social .ceo__social-label{color:#CFCBBF}
.hero--split .hero__ctas{margin-bottom:18px}
@media (max-width:900px){
  .hero__copy--ceo{max-width:100%}
  .hero__pull{max-width:100%;font-size:1.05rem}
  .hero__msg p{font-size:.96rem}
  .hero__msg p:nth-child(2){display:none}
  .hero__sign{align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){.js .hero__pull,.js .hero__msg p,.js .hero__sign,.js .hero__social{animation:none;opacity:1;transform:none}}
@media (min-width:901px){
  .hero--split .hero__center{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);column-gap:clamp(32px,4vw,64px)}
  .hero--split .hero__visual{justify-items:end;align-items:center}
  .fan{width:min(100%,500px);height:clamp(440px,38vw,560px)}
  .fan__card{width:clamp(200px,15vw,236px)}
  .hero__copy--ceo{max-width:560px}
  .hero__msg{max-width:54ch}
}

/* hero without the headline: quote leads the block */
.hero__copy--ceo .hero__pull{margin-top:22px;font-size:clamp(1.25rem,1.9vw,1.6rem);max-width:30ch}
.hero__copy--ceo .hero__sign{margin-top:6px}


/* ---- 50. CEO portrait in the hero (replaces the card stack) ---- */
.heroceo{position:relative;margin:0;width:min(100%,300px);border-radius:20px;overflow:hidden;background:#141610;
  box-shadow:0 46px 90px -44px rgba(0,0,0,.85),0 0 0 1px rgba(255,255,255,.1) inset}
.heroceo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%}
.js .heroceo{opacity:0;transform:translateY(16px) scale(.985);animation:rise-in .9s var(--e-out) .35s forwards}
.hero--split .hero__visual{display:grid;place-items:center;min-height:0}
@media (max-width:900px){.heroceo{width:min(100%,238px);margin:0 auto}}
@media (prefers-reduced-motion:reduce){.js .heroceo{animation:none;opacity:1;transform:none}}
/* pull quote sits under the CEO photo */
.hero--split .hero__visual{display:flex;flex-direction:column;align-items:center;gap:0}
.hero__pull--under{margin:20px 0 0;width:min(100%,360px);max-width:100%;padding-left:16px;border-left:2px solid var(--brand-gold-2);font-size:clamp(1.02rem,1.3vw,1.18rem);line-height:1.45}
.js .hero__pull--under{opacity:0;transform:translateY(10px);animation:rise-in .7s var(--e-out) .75s forwards}
.hero__copy--ceo .hero__msg{margin-top:22px}
@media (max-width:900px){.hero__pull--under{width:min(100%,320px);margin-top:16px;font-size:1rem}}
@media (prefers-reduced-motion:reduce){.js .hero__pull--under{animation:none;opacity:1;transform:none}}

/* ---- 51. Client login: header link + login page ---- */
.nav__item--login{display:none}
@media (max-width:900px){.hdr__login{display:none}.mnav .nav__item--login{display:block}}

.loginpage{padding-top:clamp(56px,7vw,96px)}
.loginpage__wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,4vw,64px);align-items:start}
.loginbox{background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(24px,3vw,38px);box-shadow:var(--sh-md)}
.loginbox__head h1{font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.15;margin:6px 0 10px;letter-spacing:-.02em}
.loginbox__sub{color:var(--ink-2);font-size:.96rem;margin:0 0 22px}
.loginform .f{margin-bottom:16px}
.loginform label{display:block;font-size:.82rem;font-weight:650;letter-spacing:.02em;margin-bottom:6px;color:var(--ink)}
.loginform input[type=email],.loginform input[type=password],.loginform input[type=text]{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#FBFAF7;font:inherit;font-size:.98rem;transition:border-color .2s,box-shadow .2s}
.loginform input:focus{outline:none;border-color:var(--brand-navy);box-shadow:0 0 0 3px rgba(2,37,97,.12);background:#fff}
.loginform .f__pw{position:relative}
.loginform .f__pw input{padding-right:70px}
.f__pwbtn{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;font:inherit;font-size:.8rem;font-weight:650;color:var(--brand-navy);padding:6px 8px;border-radius:8px;cursor:pointer}
.f__pwbtn:hover{background:rgba(2,37,97,.07)}
.loginform__row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:4px 0 20px}
.check{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;font-weight:500;color:var(--ink-2);margin:0}
.check input{width:16px;height:16px;accent-color:var(--brand-navy)}
.loginform__help{font-size:.86rem;color:var(--brand-gold-text);font-weight:600}
.loginform__help:hover{text-decoration:underline}
.loginform__go{width:100%;justify-content:center}
.loginbox__foot{margin:18px 0 0;font-size:.88rem;color:var(--ink-2)}
.loginbox__foot a{color:var(--brand-navy);font-weight:600;border-bottom:1px solid rgba(2,37,97,.25)}
.loginside{padding-top:8px}
.loginside h2{font-size:clamp(1.2rem,1.7vw,1.5rem);margin:0 0 16px}
.loginside__list{display:flex;flex-direction:column;gap:14px;margin:0 0 20px;padding:0;list-style:none}
.loginside__list li{display:flex;flex-direction:column;gap:3px;padding-left:16px;border-left:2px solid var(--brand-gold-2)}
.loginside__list b{font-size:.98rem}
.loginside__list span{color:var(--ink-2);font-size:.92rem;line-height:1.55}
.loginside__note{font-size:.86rem;color:var(--muted);border-top:1px solid var(--line);padding-top:14px;margin:0}
@media (max-width:900px){.loginpage__wrap{grid-template-columns:1fr;gap:28px}.loginside{order:2}}
/* Testimonials nav item: hides with Careers on narrow desktops, stays in the mobile menu */
@media (max-width:1200px){.nav__item--testi{display:none}}
@media (max-width:900px){.mnav .nav__item--testi,.mnav .nav__item--careers,.mnav .nav__item--contact{display:block}}
/* header login chip — matches the CTA height, never wraps */
.hdr__login{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 18px;white-space:nowrap;line-height:1;
  border:1.5px solid rgba(2,37,97,.28);border-radius:999px;font-weight:650;font-size:.9rem;letter-spacing:.01em;color:var(--brand-navy);background:#fff;
  transition:background .25s,border-color .25s,color .25s,transform .25s var(--e-out),box-shadow .25s}
.hdr__login svg{width:17px;height:17px;flex:none}
.hdr__login:hover,.hdr__login:focus-visible{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff;transform:translateY(-1px);box-shadow:0 8px 18px -10px rgba(2,37,97,.6)}
.hdr__login[aria-current]{background:var(--brand-navy);border-color:var(--brand-navy);color:#fff}
.hdr.is-compact .hdr__login{height:38px;padding:0 15px;font-size:.86rem}
@media (max-width:1200px){.hdr__login{padding:0 13px}.hdr__login span{display:none}}
@media (max-width:900px){.hdr__login{display:none}}
