
/*:root{--font-brand:'acumin-variable',-apple-system,system-ui,sans-serif}*/
:root{--font-brand:'Noto Sans',-apple-system,system-ui,sans-serif}
/* Acumin runs the whole site. Weight is driven by font-weight (the kit exposes 100–900);
   width is nudged separately so headings sit as wide as the wordmark. Inter's alternate
   glyph sets are switched off here — they mean nothing in Acumin. */
.has-acumin body{font-weight:350;font-feature-settings:normal;font-variation-settings:'wdth' 106}
.has-acumin h1,.has-acumin h2{font-weight:300;letter-spacing:-.022em;font-variation-settings:'wdth' 120}
.has-acumin h1{letter-spacing:-.03em;font-weight:280}
.has-acumin h3{font-weight:450;letter-spacing:-.012em}
.has-acumin .hero h1 em{font-weight:600}
.has-acumin .stat .n{font-weight:300;font-variation-settings:'wdth' 124}
.has-acumin .lede{font-weight:340}
.has-acumin .eyebrow,.has-acumin .trust-label,.has-acumin label,.has-acumin .map .pin,.has-acumin .ld-skip{font-weight:520;font-variation-settings:'wdth' 110}
.has-acumin .btn,.has-acumin .cons-list .k,.has-acumin .region .row b,.has-acumin .pillar-link{font-weight:560}
.has-acumin .brand,.has-acumin .f-col .fh{font-weight:500}


:root{
  --ink:#0A0E0C;
  --ink-2:#101614;
  --ink-3:#161E1B;
  --line:rgba(255,255,255,.10);
  --line-2:rgba(255,255,255,.18);
  --fg:#F2F4F1;
  --fg-2:rgba(242,244,241,.66);
  --fg-3:rgba(242,244,241,.56);
  --brand:#39B54A;        /* logo light green */
  --brand-dk:#009444;     /* logo dark green */
  --brand-lt:#5CC96B;     /* lifted for text and hovers */
  --max:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--fg);font-family:var(--font-brand);font-weight:300;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  font-feature-settings:'ss03','cv05','cv08'}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px}
h1,h2,h3{font-family:var(--font-brand);font-weight:250;line-height:1.06;letter-spacing:-.035em}
h1{font-size:clamp(2.5rem,6vw,4.7rem);letter-spacing:-.045em}
h2{font-size:clamp(1.9rem,3.7vw,2.75rem);letter-spacing:-.04em}
h3{font-size:1.24rem;line-height:1.28;font-weight:400;letter-spacing:-.02em}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:cover}
.eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brand-lt);font-weight:500}
.lede{font-size:clamp(1.05rem,1.5vw,1.22rem);color:var(--fg-2);max-width:62ch}
.muted{color:var(--fg-2)}

/* nav */
header{position:fixed;inset:0 0 auto 0;z-index:100;transition:background .35s,border-color .35s,backdrop-filter .35s;border-bottom:1px solid transparent}
header.solid{background:rgba(10,14,12,.88);backdrop-filter:blur(16px);border-bottom-color:var(--line)}
.nav{display:flex;align-items:center;gap:40px;height:78px}
.brand{font-size:1.32rem;letter-spacing:-.02em;white-space:nowrap}
.brand span{color:var(--brand-lt)}
.nav ul{display:flex;gap:30px;list-style:none;margin-left:auto;font-size:.86rem;letter-spacing:.02em;color:var(--fg-2)}
.nav ul a:hover{color:var(--fg)}
.nav-cta{display:flex;align-items:center;gap:18px}
.tel{font-size:.86rem;color:var(--fg-2);white-space:nowrap}
.tel:hover{color:var(--fg)}
.btn{display:inline-flex;align-items:center;gap:9px;padding:13px 24px;border-radius:999px;font-size:.85rem;font-weight:500;letter-spacing:.01em;border:1px solid var(--line-2);transition:all .25s;white-space:nowrap;cursor:pointer;font-family:inherit}
.btn:hover{border-color:var(--brand-lt);color:var(--brand-lt)}
.btn-solid{background:var(--brand);border-color:var(--brand);color:#0A0E0C}
.btn-solid:hover{background:var(--brand-lt);border-color:var(--brand-lt);color:#0A0E0C}
.burger{display:none;margin-left:auto;background:none;border:0;padding:10px;cursor:pointer;
  width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.burger i{display:block;width:22px;height:1.5px;background:var(--fg);transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .2s}
.burger[aria-expanded="true"] i:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* mobile panel */
#mnav{position:fixed;inset:0;z-index:99;background:rgba(10,14,12,.97);backdrop-filter:blur(20px);
  display:flex;flex-direction:column;padding:104px 24px 34px;opacity:0;visibility:hidden;
  transform:translateY(-8px);transition:opacity .35s,visibility .35s,transform .35s cubic-bezier(.2,.8,.2,1)}
#mnav.open{opacity:1;visibility:visible;transform:none}
#mnav a.mlink{display:flex;align-items:center;justify-content:space-between;padding:19px 2px;
  border-bottom:1px solid var(--line);font-size:1.3rem;letter-spacing:-.02em;color:var(--fg);
  opacity:0;transform:translateY(12px)}
#mnav.open a.mlink{opacity:1;transform:none;
  transition:opacity .45s ease calc(.08s + var(--i) * .045s),transform .45s cubic-bezier(.2,.8,.2,1) calc(.08s + var(--i) * .045s)}
#mnav a.mlink span{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3)}
.mnav-foot{margin-top:auto;padding-top:28px;display:grid;gap:12px}
.mnav-foot .btn{justify-content:center;padding:17px 24px;font-size:.95rem}
.mnav-social{display:flex;gap:12px;justify-content:center;margin-top:6px}

/* persistent call bar on phones */
.callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:98;
  background:rgba(10,14,12,.94);backdrop-filter:blur(16px);border-top:1px solid var(--line);
  padding:11px 16px calc(11px + env(safe-area-inset-bottom));gap:10px}
.callbar .btn{flex:1;justify-content:center;padding:14px 10px;font-size:.88rem}
body.navopen{overflow:hidden}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding-bottom:72px;overflow:hidden}
.hero-img{position:absolute;inset:0}
.hero-img img{filter:saturate(.92) contrast(1.04)}
.hero-img::after{content:'';position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(10,14,12,.80) 0%,rgba(10,14,12,.42) 30%,rgba(10,14,12,.80) 62%,var(--ink) 97%),
  linear-gradient(90deg,rgba(10,14,12,.68) 0%,rgba(10,14,12,.10) 62%)}
.hero-inner{position:relative;z-index:2;width:100%}
.hero h1{max-width:16ch;margin:22px 0 26px}
.hero h1 em{font-style:normal;font-weight:500;color:var(--brand-lt)}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.scroll-hint{position:absolute;bottom:30px;right:32px;z-index:2;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-3);writing-mode:vertical-rl}

/* trust — continuous accreditation marquee */
.trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink-2);
  padding:26px 0 30px;overflow:hidden}
.trust-label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-3);
  margin-bottom:22px}
.marquee{position:relative;width:100%;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;width:max-content;gap:14px;will-change:transform}
.js .marquee-track{animation:marquee var(--dur,46s) linear infinite}
@keyframes marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(-1 * var(--shift,50%)),0,0)}}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}
.trust .badge{flex:0 0 auto;width:210px;background:var(--ink);border:1px solid var(--line);
  border-radius:12px;display:flex;flex-direction:column;align-items:center;text-align:center;
  gap:4px;padding:24px 18px 22px;font-size:.74rem;color:var(--fg-3);line-height:1.4;
  transition:border-color .3s,background .3s}
.trust .badge:hover{border-color:var(--brand);background:var(--ink-3)}
.trust .badge img{width:100%;height:52px;object-fit:contain;background:#fff;border-radius:6px;padding:6px 10px;margin-bottom:10px}
.trust .badge b{font-weight:500;font-size:.95rem;color:var(--fg);letter-spacing:-.01em}
@media(prefers-reduced-motion:reduce){
  .js .marquee-track{animation:none;flex-wrap:wrap;justify-content:center;width:100%}
}
@media(max-width:720px){.trust .badge{width:172px;padding:20px 14px 18px}
  .trust .badge img{height:44px;padding:5px 8px}}

section{padding:110px 0}
.sec-head{max-width:70ch;margin-bottom:56px}
.sec-head h2{margin:16px 0 20px}

/* pillars */
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.pillar{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;min-height:440px;display:flex;flex-direction:column;justify-content:flex-end;transition:border-color .3s}
.pillar:hover{border-color:var(--line-2)}
.pillar-img{position:absolute;inset:0}
.pillar-img img{filter:saturate(.9) contrast(1.03)}
.pillar-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,12,.34) 0%,rgba(10,14,12,.72) 46%,rgba(10,14,12,.96) 84%)}
.pillar-body{position:relative;z-index:2;padding:36px}
.pillar-body h3{font-size:1.75rem;margin:14px 0 12px}
.pillar-body p{color:var(--fg-2);font-size:.95rem;margin-bottom:18px}
.pillar-link{font-size:.85rem;font-weight:500;color:var(--brand-lt);display:inline-flex;gap:8px;align-items:center}

/* services */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.svc{background:var(--ink);padding:34px 28px;min-height:210px;display:flex;flex-direction:column;transition:background .3s}
.svc:hover{background:var(--ink-3)}
.svc .num{font-size:.7rem;letter-spacing:.16em;color:var(--fg-3);margin-bottom:auto;position:relative;z-index:2}
.svc-img{position:relative;overflow:hidden}
.svc-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.02);z-index:0}
.svc-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,12,.45) 0%,rgba(10,14,12,.86) 55%,rgba(10,14,12,.96) 100%);z-index:1}
.svc-img h3,.svc-img p{position:relative;z-index:2}
.svc-img:hover img{transform:scale(1.04);transition:transform 1.2s cubic-bezier(.2,.7,.3,1)}
.svc h3{font-size:1.14rem;margin:26px 0 10px}
.svc p{font-size:.87rem;color:var(--fg-2);line-height:1.6}
a.svc{cursor:pointer}
a.svc:hover h3{color:var(--brand-lt)}
.svc-go{position:relative;z-index:2;margin-top:16px;font-size:.76rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--brand-lt);opacity:0;transform:translateY(4px);
  transition:opacity .28s,transform .28s}
.svc-go i{font-style:normal;display:inline-block;transition:transform .28s}
a.svc:hover .svc-go,a.svc:focus-visible .svc-go{opacity:1;transform:none}
a.svc:hover .svc-go i{transform:translateX(4px)}
a.svc:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
@media(hover:none){.svc-go{opacity:1;transform:none}}

/* consultancy */
.cons{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.cons-media{border-radius:14px;overflow:hidden;aspect-ratio:3/2;border:1px solid var(--line)}
.cons-media.tall{aspect-ratio:4/5}
.cons-media img{filter:saturate(.94)}
.cons-list{list-style:none;margin-top:30px}
.cons-list li{padding:20px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:baseline}
.cons-list li:last-child{border-bottom:1px solid var(--line)}
.cons-list .k{font-size:.95rem;font-weight:500}
.cons-list .v{font-size:.87rem;color:var(--fg-2);grid-column:2}
.dot{width:6px;height:6px;border-radius:50%;background:var(--brand);margin-top:8px}

/* stats */
.stats{background:var(--ink-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.stat .n{font-size:clamp(2.3rem,4.4vw,3.4rem);line-height:1;color:var(--brand-lt);font-weight:250;letter-spacing:-.045em;font-variant-numeric:tabular-nums}
.stat .l{font-size:.85rem;color:var(--fg-2);margin-top:12px;max-width:22ch}

/* regions */
.regions{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:14px}
.region{border:1px solid var(--line);border-radius:14px;padding:32px;transition:border-color .3s,background .3s}
.region:hover{border-color:var(--line-2);background:var(--ink-2)}
.region{padding:0;overflow:hidden;display:flex;flex-direction:column}
.region-body{padding:28px 30px 30px}
.map{position:relative;aspect-ratio:16/10;background:var(--ink-3);border-bottom:1px solid var(--line)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;
  filter:invert(1) hue-rotate(178deg) saturate(.55) brightness(.92) contrast(1.05)}
.map::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,14,12,.32) 0%,rgba(10,14,12,0) 40%,rgba(10,14,12,.55) 100%)}
.map .pin{position:absolute;left:16px;bottom:14px;z-index:3;font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--fg-2);background:rgba(10,14,12,.72);padding:6px 12px;border-radius:999px;
  border:1px solid var(--line-2);backdrop-filter:blur(6px)}
.region h3{font-size:1.3rem;margin-bottom:6px}
.region .area{font-size:.85rem;color:var(--fg-2);margin-bottom:22px}
.region .row{font-size:.85rem;color:var(--fg-2);padding:10px 0;border-top:1px solid var(--line);display:flex;gap:12px}
.region .row b{font-weight:500;color:var(--fg);min-width:62px}

/* quote */
.quote{background:var(--ink-2);border-top:1px solid var(--line)}
.quote-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:start}
form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.f-full{grid-column:1/-1}
label{display:block;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);margin-bottom:9px}
input,select,textarea{width:100%;background:transparent;border:1px solid var(--line-2);border-radius:8px;padding:14px 16px;color:var(--fg);font-family:inherit;font-size:.92rem;font-weight:300;transition:border-color .25s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand)}
select option{background:var(--ink-2);color:var(--fg)}
textarea{resize:vertical;min-height:120px}
input:user-invalid,textarea:user-invalid,.invalid input,.invalid textarea{border-color:#E24B4A}
.err{display:none;font-style:normal;font-size:.76rem;color:#F09595;margin-top:7px}
.invalid .err{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formnote{font-size:.78rem;color:var(--fg-3);margin-top:14px;text-align:center}
.formstate{display:none;padding:20px 22px;border-radius:var(--radius,10px);border:1px solid var(--line-2);
  font-size:.92rem;line-height:1.6}
.formstate.show{display:block}
.formstate.ok{border-color:var(--brand);color:var(--fg);background:rgba(57,181,74,.08)}
.formstate.bad{border-color:#E24B4A;color:#F09595}
.q-points{list-style:none;margin-top:28px}
.q-points li{padding:14px 0;border-top:1px solid var(--line);font-size:.9rem;color:var(--fg-2);display:flex;gap:12px}
.q-points li::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--brand);flex:none;margin-top:9px}

footer{padding:70px 0 40px;border-top:1px solid var(--line)}
.f-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:48px}
.f-col .fh{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-3);margin-bottom:18px;font-weight:500}
.f-col a,.f-col p{display:block;font-size:.87rem;color:var(--fg-2);margin-bottom:11px}
.f-col a:hover{color:var(--brand-lt)}
.f-bot{border-top:1px solid var(--line);padding-top:26px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.8rem;color:var(--fg-3)}

/* Content is visible by default. The scroll reveal is opt-in, applied only once
   JS has confirmed it can run — so a script failure degrades to a readable page
   rather than a blank one. */
.reveal{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(26px);
  transition:opacity .8s cubic-bezier(.2,.7,.3,1),transform .8s cubic-bezier(.2,.7,.3,1)}
.js .reveal.in{opacity:1;transform:none}

/* ── vector logo ─────────────────────────────── */
.logo{position:relative;display:block;flex:none;line-height:0}
.lgo{display:block;width:100%;height:auto;overflow:visible}
.lgo-tree{transform-box:fill-box;transform-origin:50% 100%;animation:sway 11s ease-in-out infinite}
/* starts and ends at 0deg so it can begin mid-sequence without snapping sideways */
@keyframes sway{
  0%{transform:rotate(0)}
  25%{transform:rotate(.4deg)}
  50%{transform:rotate(0)}
  75%{transform:rotate(-.4deg)}
  100%{transform:rotate(0)}
}
.lgo-lf{transform-box:fill-box;transform-origin:50% 50%;will-change:transform,opacity;
  animation:leafdrift var(--dur,9s) cubic-bezier(.35,.05,.35,1) calc(var(--i,0) * .42s) infinite}
@keyframes leafdrift{
  0%{transform:translate3d(0,0,0) rotate(0) scale(1);opacity:0}
  7%{opacity:1}
  52%{opacity:1}
  100%{transform:translate3d(var(--dx),var(--dy),0) rotate(var(--rot)) scale(.55);opacity:0}
}
/* the small nav mark: same motion, dialled down so it reads at 112px */
.brand .lgo-lf{animation-duration:calc(var(--dur,9s) * 1.25)}
.brand .lgo-tree{animation-duration:14s}
.logo.still .lgo-lf,.logo.still .lgo-tree{animation:none}

/* nav + footer lockups */
.brand{display:flex;align-items:center}
.brand .logo{width:112px}
.f-col .brand .logo{width:186px}

/* ── loader: staged brand reveal ─────────────── */
/* The loader only exists when JS is running, and it force-dismisses at 7s even if
   the script dies mid-sequence. It never blocks the page. */
#loader{display:none}
.js #loader{position:fixed;inset:0;z-index:999;background:var(--ink);display:flex;align-items:center;
  justify-content:center;overflow:hidden;transition:opacity .9s cubic-bezier(.4,0,.2,1),visibility .9s;
  animation:ldfailsafe 1ms linear 7s forwards}
@keyframes ldfailsafe{to{opacity:0;visibility:hidden;pointer-events:none}}
/* shown once per browser session, not on every page view */
.js.seen #loader{display:none}
#loader.gone{opacity:0;visibility:hidden;pointer-events:none}
#loader::before{content:'';position:absolute;inset:0;margin:auto;width:92vmin;height:92vmin;border-radius:50%;
  background:radial-gradient(circle,rgba(57,181,74,.15) 0%,rgba(57,181,74,.05) 38%,transparent 66%);
  animation:ldglow 3.2s cubic-bezier(.2,.7,.3,1) both}
@keyframes ldglow{0%{opacity:0;transform:scale(.55)}50%{opacity:1}100%{opacity:.45;transform:scale(1.12)}}
#loader .logo{width:min(58vw,520px);height:auto;position:relative;z-index:2;opacity:0;transition:opacity .25s}
#loader.ready .logo{opacity:1}
#loader.out .logo{transition:transform 1.15s cubic-bezier(.36,0,.14,1),opacity .85s cubic-bezier(.4,0,1,1);
  transform:scale(1.06);opacity:0}
#loader.out::before{opacity:0;transition:opacity .6s}

.ld-bar{position:absolute;left:50%;bottom:11vh;transform:translateX(-50%);width:min(44vw,280px);
  height:1px;background:var(--line);z-index:2;overflow:hidden}
.ld-bar i{display:block;height:100%;width:0;background:var(--brand);animation:ldbar 2.85s cubic-bezier(.35,0,.12,1) both}
@keyframes ldbar{to{width:100%}}
#loader.out .ld-bar{opacity:0;transition:opacity .4s}
.ld-skip{position:absolute;bottom:5.5vh;left:50%;transform:translateX(-50%);z-index:2;font-size:.66rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);animation:fadein .6s ease 1.8s both}
@keyframes fadein{from{opacity:0}to{opacity:1}}

/* nothing runs until the fonts and the SVG are in */
#loader .lgo *,.ld-bar i,.ld-skip,#loader::before{animation-play-state:paused}
#loader.ready .lgo *,#loader.ready .ld-bar i,#loader.ready .ld-skip,#loader.ready::before{animation-play-state:running}

/* the tree is revealed by a feathered gradient mask sweeping up through it */
#loader .lgo-wipe{will-change:transform;transform:translateY(1604px);
  animation:ldwipe 1.5s cubic-bezier(.22,1,.36,1) .18s both}
@keyframes ldwipe{from{transform:translateY(1604px)}to{transform:translateY(-642px)}}
#loader .lgo-treewrap{transform-box:fill-box;transform-origin:50% 100%;
  animation:ldlift 1.65s cubic-bezier(.22,1,.36,1) .18s both}
@keyframes ldlift{from{transform:translateY(46px) scale(1.02)}to{transform:none}}
#loader .lgo-tree{animation-delay:1.9s}

/* each letter rises out of its own clip box */
#loader .lgo-ltr{will-change:transform,opacity;
  animation:ldltr .8s cubic-bezier(.2,1,.3,1) calc(.92s + var(--i) * .042s) both}
@keyframes ldltr{
  from{opacity:0;transform:translateY(calc(var(--h) * 1px))}
  to{opacity:1;transform:none}
}
#loader .lgo-tag{transform-box:fill-box;transform-origin:0 100%;
  animation:ldtag .95s cubic-bezier(.2,1,.3,1) 1.95s both}
@keyframes ldtag{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
#loader .lgo-lf{animation-delay:calc(1.7s + var(--i) * .055s)}

/* wide banner */
.banner{margin-top:44px;border-radius:14px;overflow:hidden;border:1px solid var(--line);position:relative}
.banner img{aspect-ratio:16/7;filter:saturate(.9) contrast(1.02)}
.banner figcaption{position:absolute;left:0;right:0;bottom:0;padding:56px 32px 24px;font-size:.88rem;
  color:var(--fg-2);background:linear-gradient(180deg,transparent,rgba(10,14,12,.9))}

/* careers */
.careers{background:var(--ink)}
.careers-in{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.careers-media{border-radius:14px;overflow:hidden;aspect-ratio:3/4;border:1px solid var(--line)}
.careers-media img{filter:saturate(.92)}

/* social */
.social{display:flex;gap:12px;margin-top:20px}
.social a{width:40px;height:40px;border:1px solid var(--line-2);border-radius:50%;display:flex;
  align-items:center;justify-content:center;transition:border-color .25s,background .25s,transform .25s}
.social a:hover{border-color:var(--brand-lt);background:var(--ink-3);transform:translateY(-2px)}
.social svg{width:17px;height:17px;fill:var(--fg-2)}
.social a:hover svg{fill:var(--brand-lt)}

/* brand band */
.brandband{background:var(--ink-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}
.brandband .logo{width:min(64vw,520px);height:auto;margin:0 auto 34px}
.brandband p{max-width:56ch;margin:0 auto;color:var(--fg-2);font-size:1.02rem}

@media(prefers-reduced-motion:reduce){
  .lgo *{animation:none!important;transform:none!important;opacity:1!important}
  #loader .lgo-wipe{transform:translateY(-642px)!important}
  .reveal{opacity:1;transform:none}
}

@media(max-width:1000px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .stat-grid{grid-template-columns:repeat(2,1fr);gap:32px}
  .cons,.quote-grid,.careers-in{grid-template-columns:1fr;gap:40px}
  .banner img{aspect-ratio:4/3}
  .careers-media{aspect-ratio:4/3}
  .pillars,.regions{grid-template-columns:1fr}
  .f-top{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .wrap{padding:0 20px}
  .nav ul,.tel{display:none}
  .burger{display:flex}
  .nav-cta{display:none}
  .callbar{display:flex}
  body{padding-bottom:74px}
  .scroll-hint{display:none}
  section{padding:76px 0}
  .svc-grid{grid-template-columns:1fr}
  form{grid-template-columns:1fr}
  .scroll-hint{display:none}
}

/* ── print ─────────────────────────────────────────────────────────── */
@media print{
  :root{--ink:#fff;--ink-2:#fff;--ink-3:#fff;--fg:#111;--fg-2:#333;--fg-3:#555;
        --line:#ccc;--line-2:#bbb;--brand:#009444;--brand-lt:#007134}
  *{background:transparent!important;color:#111!important;box-shadow:none!important}
  body{background:#fff!important;font-size:11pt;line-height:1.5}
  #loader,#mnav,.callbar,.burger,.scroll-hint,.hero-img,.phero-img,.map,.banner,
  .svc-img img,.pillar-img,.social,.ld-bar,.ld-skip,form,.pcta,.related,.brandband{display:none!important}
  header{position:static!important;border-bottom:1px solid #ccc}
  .hero,.phero{min-height:auto!important;padding:0 0 18pt!important}
  h1{font-size:22pt}h2{font-size:15pt}h3{font-size:12pt}
  a{color:#111!important;text-decoration:none}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#666!important}
  .reveal{opacity:1!important;transform:none!important}
  section{padding:14pt 0!important;page-break-inside:avoid}
  .faq[open] p,.faq p{display:block!important}
  .lgo-leaves{display:none}
}

/* ── diagrams ─────────────────────────────────────────────────────── */
.dia{margin:34px 0 8px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--ink-2)}
.dia svg{display:block;width:100%;height:auto}
.dia figcaption{padding:18px 26px 22px;font-size:.86rem;color:var(--fg-3);line-height:1.6;
  border-top:1px solid var(--line)}
.d-sky{fill:var(--ink-2)}
.d-ground{stroke:var(--line-2);stroke-width:2}
.d-trunk{fill:var(--brand-dk);opacity:.9}
.d-canopy{fill:var(--brand);opacity:.16;stroke:var(--brand);stroke-width:1.5;stroke-dasharray:3 5}
.d-limb path,.d-limb{fill:none;stroke:var(--brand-dk);stroke-width:7;stroke-linecap:round;opacity:.75}
.d-struct{fill:none;stroke:var(--fg-3);stroke-width:2}
.d-door{fill:var(--line)}
.d-cut line{stroke:var(--brand);stroke-width:2.5;stroke-dasharray:7 6}
.d-num circle{fill:var(--brand);stroke:none}
.d-num text{fill:#0A0E0C;font-size:17px;font-weight:600;text-anchor:middle;font-family:inherit}
.d-pulley{fill:var(--brand-lt)}
.d-rope{fill:none;stroke:var(--brand-lt);stroke-width:2;stroke-dasharray:2 5}
.d-key text{fill:var(--fg-3);font-size:14px;font-family:inherit;text-anchor:middle;letter-spacing:.02em}
.d-cap text{fill:var(--fg);font-size:25px;font-family:inherit;letter-spacing:-.02em}
.d-cap .d-sub{fill:var(--fg-3);font-size:15px}
.d-alert{fill:none;stroke:#E2A04A;stroke-width:2;stroke-dasharray:5 4}
.d-crack{stroke:#E2A04A;stroke-width:3;stroke-linecap:round}
.d-cable{fill:none;stroke:var(--brand-lt);stroke-width:3}
.d-node{fill:var(--brand-lt)}
.d-dim line{stroke:var(--line-2);stroke-width:1.5}
.d-dim .d-dim-2{stroke:var(--brand);opacity:.7}
.d-rpa{fill:var(--brand);opacity:.10;stroke:var(--brand);stroke-width:2}
.d-drip{fill:none;stroke:var(--line-2);stroke-width:1.5;stroke-dasharray:5 6}
.d-roots path{fill:none;stroke:var(--brand-dk);stroke-width:4;stroke-linecap:round;opacity:.85}
.d-fence line{stroke:var(--brand-lt);stroke-width:3;stroke-linecap:round}
.d-machine rect,.d-machine circle{fill:none;stroke:var(--fg-3);stroke-width:2}
.d-no{stroke:#E24B4A;stroke-width:3;stroke-linecap:round}
.d-soil-bad rect{fill:#1A1512;stroke:var(--line)}
.d-soil-bad .d-pan{fill:#2A211B;stroke:none}
.d-soil-good rect{fill:#141C17;stroke:var(--line)}
.d-pore circle{fill:var(--brand);opacity:.30}
.d-root-bad{fill:none;stroke:#B4763C;stroke-width:4;stroke-linecap:round}
.d-root-good{fill:none;stroke:var(--brand);stroke-width:4;stroke-linecap:round}
@media(max-width:700px){.d-key text{font-size:18px}.d-cap text{font-size:30px}.d-cap .d-sub{font-size:19px}}

.rc-note{font-size:.72rem;color:var(--fg-3);display:inline-block;margin-top:6px}
.rc-note a{text-decoration:underline}
.rc-note a:hover{color:var(--brand-lt)}
.grecaptcha-badge{visibility:hidden}

/* ── hero video ───────────────────────────────────────────────────── */
.hero-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  opacity:0;transition:opacity 1.6s ease .3s;filter:saturate(.9) contrast(1.02) brightness(.88)}
.js .hero-vid.playing{opacity:1}
.hero-img{z-index:1}
.hero-img img{opacity:1;transition:opacity 1.6s ease .3s}
.hero-img.behind img{opacity:0}
@media(prefers-reduced-motion:reduce){.hero-vid{display:none}}
@media(max-width:720px){.hero-vid{display:none}}

/* ── section dividers ─────────────────────────────────────────────── */
.divider{height:132px;background-image:var(--tex);background-size:cover;background-position:center;
  position:relative;opacity:.5;filter:grayscale(.35) brightness(.55) contrast(1.1)}
.divider::after{content:'';position:absolute;inset:0;background:
  linear-gradient(180deg,var(--ink) 0%,rgba(10,14,12,.25) 46%,var(--ink) 100%)}
@media(max-width:720px){.divider{height:84px}}

/* ── sub-pages ──────────────────────────────────────────────────── */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--brand);color:#0A0E0C;
  padding:12px 20px;border-radius:0 0 8px 0;font-size:.85rem;font-weight:500}
.skip:focus{left:0}
.subpage{padding-top:0}
.phero{position:relative;min-height:62svh;display:flex;align-items:flex-end;padding:150px 0 60px;overflow:hidden}
.phero-img{position:absolute;inset:0}
.phero-img img{filter:saturate(.9) contrast(1.03)}
.phero-img::after{content:'';position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(10,14,12,.86) 0%,rgba(10,14,12,.5) 34%,rgba(10,14,12,.86) 70%,var(--ink) 99%),
  linear-gradient(90deg,rgba(10,14,12,.72) 0%,rgba(10,14,12,.12) 66%)}
.phero-in{position:relative;z-index:2}
.phero h1{max-width:15ch;margin:14px 0 22px;font-size:clamp(2.2rem,5.2vw,4.1rem)}
.crumb{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);display:flex;gap:10px}
.crumb a:hover{color:var(--brand-lt)}

.prose{max-width:74ch}
.prose h2{margin:14px 0 22px}
.prose p{color:var(--fg-2);margin-bottom:18px;font-size:1.01rem}
.prose p.note{font-size:.87rem;color:var(--fg-3);border-left:2px solid var(--line-2);padding-left:16px;border-radius:0}
.prose strong{color:var(--fg);font-weight:500}
.prose h3{margin:26px 0 10px}
.ticks{list-style:none;margin:8px 0 22px}
.ticks li{position:relative;padding:13px 0 13px 26px;border-top:1px solid var(--line);
  color:var(--fg-2);font-size:.96rem}
.ticks li:last-child{border-bottom:1px solid var(--line)}
.ticks li::before{content:'';position:absolute;left:2px;top:22px;width:6px;height:6px;
  border-radius:50%;background:var(--brand)}
section.faqs,section.pcta,section.related{padding:80px 0}

/* approvals */
.approvals{padding:20px 0 70px}
.app-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:none}
.app{border:1px solid var(--line);border-radius:14px;padding:34px 32px;background:var(--ink-2)}
.app h3{font-size:1.42rem;margin:12px 0 8px}
.app-cat{color:var(--brand-lt)!important;font-size:.92rem!important;font-weight:500;margin-bottom:16px!important}
.app p{font-size:.95rem}
.app-meta{font-size:.78rem!important;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3)!important;
  border-top:1px solid var(--line);padding-top:16px;margin:20px 0 0!important}

/* tables */
.tablewrap{overflow-x:auto;margin:8px 0 22px;border:1px solid var(--line);border-radius:12px}
table.zones{width:100%;border-collapse:collapse;font-size:.92rem;min-width:520px}
table.zones th{text-align:left;padding:15px 18px;background:var(--ink-2);font-weight:500;
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3)}
table.zones td{padding:14px 18px;border-top:1px solid var(--line);color:var(--fg-2)}
table.zones td:first-child{color:var(--fg)}

.two-up{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:8px 0 24px}
.panel{border:1px solid var(--line);border-radius:12px;padding:26px 24px;background:var(--ink-2)}
.panel h3{margin:0 0 10px;font-size:1.1rem}
.panel p{margin:0;font-size:.93rem}

/* emergency */
.emerg{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:8px 0 24px}
.ecard{border:1px solid var(--line-2);border-radius:12px;padding:20px 22px;display:block;
  transition:border-color .25s,background .25s}
.ecard:hover{border-color:var(--brand);background:var(--ink-2)}
.ecard span{display:block;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-3);margin-bottom:8px}
.ecard b{font-size:1.32rem;font-weight:400;letter-spacing:-.02em}
.ecard.alt b{color:var(--brand-lt)}

/* faqs */
.faq{border-top:1px solid var(--line)}
.faq:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{padding:20px 40px 20px 0;cursor:pointer;font-size:1.02rem;position:relative;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';position:absolute;right:6px;top:18px;font-size:1.3rem;
  color:var(--brand-lt);transition:transform .3s}
.faq[open] summary::after{transform:rotate(45deg)}
.faq p{padding:0 0 22px;color:var(--fg-2);font-size:.96rem;margin:0}

.pcta{background:var(--ink-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pcta .hero-actions{margin-top:26px}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:22px}
.rel{border:1px solid var(--line);border-radius:12px;padding:22px 24px;display:flex;
  align-items:center;justify-content:space-between;gap:12px;transition:border-color .25s,background .25s}
.rel:hover{border-color:var(--brand);background:var(--ink-2)}
.rel i{font-style:normal;color:var(--brand-lt)}

@media(max-width:900px){
  .app-grid,.two-up{grid-template-columns:1fr}
  .phero{min-height:auto;padding:132px 0 48px}
}

/* hub grids */
.hub-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.hubcard{border:1px solid var(--line);border-radius:14px;padding:30px 28px;background:var(--ink-2);
  display:flex;flex-direction:column;transition:border-color .3s,background .3s,transform .3s}
.hubcard:hover{border-color:var(--brand);background:var(--ink-3);transform:translateY(-3px)}
.hubcard h3{font-size:1.22rem;margin-bottom:10px}
.hubcard p{color:var(--fg-2);font-size:.92rem;line-height:1.6;margin-bottom:18px;flex:1}
.hubcard .pillar-link{font-size:.82rem}
.svc h3 a{transition:color .25s}
.svc h3 a:hover{color:var(--brand-lt)}

/* ── page form ────────────────────────────────────────────────────── */
.qgrid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start}
.pform{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.pform .f-full{grid-column:1/-1}
.q-points{list-style:none;margin-top:24px}
.q-points li{padding:13px 0;border-top:1px solid var(--line);font-size:.9rem;color:var(--fg-2);display:flex;gap:12px}
.q-points li::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--brand);flex:none;margin-top:9px}
@media(max-width:900px){.qgrid{grid-template-columns:1fr;gap:36px}.pform{grid-template-columns:1fr}}

/* file upload — the browser default button is light-on-light against this form */
input[type=file]{padding:10px 12px;font-size:.86rem;color:var(--fg-3);cursor:pointer}
input[type=file]::file-selector-button{margin-right:14px;padding:8px 14px;border:1px solid var(--line-2);
  border-radius:6px;background:var(--ink-3);color:var(--fg);font-family:inherit;font-size:.85rem;
  cursor:pointer;transition:border-color .25s}
input[type=file]::file-selector-button:hover{border-color:var(--brand)}
/* hero focal point, where the default centre crop hides the subject */
.phero-img img.focus-low{object-position:center 72%}

/* ── 404 ──────────────────────────────────────────────────────────── */
.nf{min-height:70svh;display:flex;align-items:center;text-align:center}
.nf .wrap{max-width:60ch}
.nf h1{margin-bottom:20px}
.nf .hero-actions{justify-content:center}
.nf-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:34px}
.nf-links a{border:1px solid var(--line);border-radius:999px;padding:9px 18px;font-size:.85rem;color:var(--fg-2)}
.nf-links a:hover{border-color:var(--brand);color:var(--brand-lt)}

/* ══════════════════════════════════════════════════════════════════════
   UTILITY CLASSES — extracted verbatim from former inline style="…"
   attributes during the Drupal-readiness refactor. Declarations are
   unchanged; these exist only so no markup carries inline CSS.
   Placed last so they win against equal-specificity rules, exactly as
   an inline style did.
   ══════════════════════════════════════════════════════════════════════ */
.f-blurb{margin-top:20px;max-width:34ch}
.btn-block{width:100%;justify-content:center}
.lnk-inherit{color:inherit;text-decoration:underline}
.is-hidden{display:none;visibility:hidden}
.h2-tight{margin:16px 0 20px}
.mt-30{margin-top:30px}
.mt-32{margin-top:32px}
.mt-80{margin-top:80px}
.sec-flush-top{padding-top:0}
.wrap-pad-y{padding-top:80px;padding-bottom:80px}
.mx-auto{margin:0 auto}
.stat-unit{font-size:.5em}
.media-first{order:-1}
.stats-flush{border-bottom:0}

/* divider textures — the image path was an inline custom property */
.divider--bark{--tex:url('../assets/div-bark.jpg')}
.divider--rings{--tex:url('../assets/div-rings.jpg')}
.divider--mulch{--tex:url('../assets/div-mulch.jpg')}
.divider--branch{--tex:url('../assets/div-branch.jpg')}

/* mobile-nav stagger — replaces style="--i:N" on each link.
   Values identical to the inline ones that were removed. */
#mnav a.mlink:nth-of-type(1){--i:0}
#mnav a.mlink:nth-of-type(2){--i:1}
#mnav a.mlink:nth-of-type(3){--i:2}
#mnav a.mlink:nth-of-type(4){--i:3}
#mnav a.mlink:nth-of-type(5){--i:4}
#mnav a.mlink:nth-of-type(6){--i:5}
#mnav a.mlink:nth-of-type(7){--i:6}

.region-primary-menu {
  margin-left: auto;
  border: none;
}

.region-content {
  border: none;
}

.region-content:hover {
  border: none;
  background: var(--ink);
}


.view-service-collection .view-content {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 32px;
  display: grid;
  grid-template-columns: repeat(auto-fill,minmax(280px,1fr));
  gap: 18px;
}



.webform-submission-subcontractor-application-form {
    display: grid;
    grid-template-columns: 1fr;
    gap: 36px;
    max-width: var(--max);
    margin-top: 100px;
    margin-bottom: 0;
    margin-left: auto;
    margin-right: auto;
    padding: 0 32px;
    align-items: start;

  @media(min-width: 900px) {
    gap: 60px;    
  }
}
.webform-submission-subcontractor-application-form {
  .webform-button--draft {
    margin-bottom: 1rem;
  }
  .webform-button--submit {
    margin-left: 0;
    margin-right: 0;
  }
 }

.webform-submission-mulch-order-form-2026-form,
.webform-submission-free-quote-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 32px;
  align-items: start;

  @media(min-width: 900px) {
    grid-template-columns: .9fr 1.1fr;
    gap: 60px;    
  }
}

.webform-submission-form .hero-actions {
  align-items: center;
  flex-wrap: nowrap;
}

.webform-submission-form .hero-actions .btn {
  min-width: 175px;
  justify-content: center;
}

.block-views-blockrelated-services-block-1 {
  padding: 110px 0;
}

.block-views-blockrelated-services-block-1 .view-related-services {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 32px;
}

.block-views-blockrelated-services-block-1 .view-content {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px,1fr));
  gap: 14px;
  margin-top: 22px;
}


.breadcrumb li::before {
  content: "/";
}

.hub-grid .views-row {
  max-width: 366px;
}

.block-views-blockservice-collection-block-1,
.block-views-blockservice-collection-block-2 {
  padding: 80px 0;
}


.field--name-field-questions {
  margin-bottom: 22px;
}

.ticks p {
  margin-bottom: 0;
}

.user-logged-in #hdr {
  top: 80px;
} 

.hubcard p {
  font-size: 0.8rem;
}



.user-pass, 
.user-login-form {
  max-width: 900px;
  margin: auto;
  padding-top: 400px;
}


#block-arb-innovations-2026-userloginandpassresetlinks .field--name-body{
  max-width: 900px;
  margin-top: 100px;
  margin-bottom: 100px;
  margin-left: auto;
  margin-right: auto;
}

#block-arb-innovations-2026-userloginandpassresetlinks .field--name-body a {
padding: 25px;
  margin: 1rem;
  display: inline-block;
  text-decoration: underline;
  
}


.page-node-type-page .node__content .field--name-body {
  max-width: 74ch;
  margin: 4rem auto;
  padding-top: 100px;
}

.page-node-type-page .node__content .field--name-body li {
  list-style: inherit;
  position: relative;
  padding: 13px 0 13px 26px;
  border-top: 1px solid var(--line);
  color: var(--fg-2);
  font-size: .96rem;
}

.page-node-type-page .node__content .field--name-body li::marker {
  color: var(--brand);;
}

.page-node-type-page .node__content strong {
  color: var(--fg);
  font-weight: 500;
}

.phero-in {
  max-width: 675px;
  width: 100%;
}


header,
#mnav {
  max-width: 100vw;
}