/* ==========================================================================
   Kanga Trees — Concept 1 "Canopy"
   Palette pulled from the client's own assets, not guessed:
     #2D5016  hsl(96 57% 20%)  = --primary on kangatrees.com.au
     #71C838  hsl(96 57% 50%)  = --chart-1 on kangatrees.com.au
     #FBBF24 / #F59E0B         = the amber used 77x across their live markup
     #EFE9DD                   = the bone of the KANGA wordmark on their card
     #7E8B33                   = the olive arch + TREES on their card (lifted
                                 for contrast on black; same hue, h=68)
     #C1A46B                   = the kangaroo tan on their card (h=41)
   Fonts: Oswald + Inter, both declared in their live stylesheet.
   ========================================================================== */

:root{
  --ink:#070806;
  --ink-2:#0C0E0A;
  --panel:#13160F;
  --panel-2:#191D13;
  --line:#272C1D;
  --line-2:#343A26;
  --bone:#EFE9DD;
  --bone-2:#C4BFB2;
  --bone-3:#8E8A7E;
  --olive:#7E8B33;
  --olive-lt:#9BAA45;
  --leaf:#71C838;
  --forest:#2D5016;
  --tan:#C1A46B;
  --amber:#FBBF24;
  --amber-2:#F59E0B;
  --red:#E2452F;
  --r:14px;
  --wrap:1200px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--ink); color:var(--bone);
  font:400 1rem/1.65 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow-x:hidden; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block; height:auto}
a{color:inherit}
h1,h2,h3,h4{
  font-family:Oswald,"Arial Narrow",sans-serif; font-weight:600;
  line-height:1.04; letter-spacing:.012em; margin:0; text-transform:uppercase;
}
p{margin:0 0 1em}
[hidden]{display:none !important}
:focus-visible{outline:3px solid var(--amber); outline-offset:3px; border-radius:4px}
.wrap{width:min(100% - 36px, var(--wrap)); margin-inline:auto}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}

/* ---------- concept note ---------- */
.cnote{
  background:var(--forest); color:#EAF3E2; font-size:.82rem; line-height:1.5;
  padding:11px 16px; display:flex; gap:14px; align-items:center; justify-content:center;
  text-align:center; position:relative; z-index:60;
}
.cnote strong{color:var(--amber)}
.cnote button{
  background:none; border:1px solid rgba(255,255,255,.34); color:inherit;
  border-radius:9px; font-size:1.15rem; line-height:1; cursor:pointer;
  min-width:40px; min-height:40px; display:inline-flex; align-items:center; justify-content:center;
  flex:0 0 auto;
}
.cnote button:hover{background:rgba(255,255,255,.12)}

/* ---------- emergency strip ---------- */
.estrip{
  background:linear-gradient(90deg,var(--amber-2),var(--amber));
  color:#1A1200; font-weight:700; font-size:.83rem; letter-spacing:.02em;
}
.estrip .wrap{
  display:flex; gap:6px 12px; align-items:center; justify-content:center;
  flex-wrap:wrap; padding:9px 0; text-align:center;
}
.estrip .msg{display:inline-flex; align-items:center; gap:8px}
.estrip a{color:#1A1200; text-decoration:none; font-weight:800; display:inline-flex; align-items:center; gap:6px; min-height:40px; padding-inline:6px}
.estrip a:hover{text-decoration:underline}
.pulse{width:9px; height:9px; border-radius:50%; background:#8C1B0B; flex:0 0 auto; animation:pulse 2.1s infinite}
@keyframes pulse{0%,100%{opacity:1; transform:scale(1)}50%{opacity:.4; transform:scale(.72)}}

/* ---------- header ---------- */
.hd{
  position:sticky; top:0; z-index:50; background:rgba(7,8,6,.9);
  backdrop-filter:blur(12px); border-bottom:1px solid var(--line);
}
.hd-in{display:flex; align-items:center; gap:18px; min-height:70px; padding:10px 0}
.brand{display:flex; align-items:center; gap:11px; text-decoration:none; flex:1 1 auto; min-width:0; padding-block:6px; min-height:44px}
.brand img{width:46px; height:auto; flex:0 0 auto}
.brand b{
  font-family:Oswald,sans-serif; font-weight:600; font-size:1.16rem; letter-spacing:.09em;
  text-transform:uppercase; color:var(--bone); white-space:nowrap;
}
.brand b i{color:var(--olive-lt); font-style:normal}
.nav{display:none; gap:26px}
.nav a{
  text-decoration:none; color:var(--bone-2); font-size:.87rem; font-weight:500;
  letter-spacing:.03em; padding:10px 0; min-height:40px; display:inline-flex; align-items:center;
}
.nav a:hover{color:var(--amber)}
.hd-cta{display:flex; align-items:center; gap:10px; flex:0 0 auto}
.tel{
  display:none; align-items:center; gap:7px; text-decoration:none; color:var(--bone);
  font-weight:600; font-size:.9rem; min-height:40px; padding:6px 4px;
}
.tel:hover{color:var(--amber)}
.burger{
  width:46px; height:44px; border:1px solid var(--line-2); background:var(--panel);
  border-radius:11px; display:inline-flex; flex-direction:column; gap:5px;
  align-items:center; justify-content:center; cursor:pointer; flex:0 0 auto;
}
.burger span{width:19px; height:2px; background:var(--bone); border-radius:2px}
.mmenu{display:none; flex-direction:column; padding:8px 0 18px; border-top:1px solid var(--line)}
.mmenu.open{display:flex}
.mmenu a{
  text-decoration:none; color:var(--bone); font-family:Oswald,sans-serif; text-transform:uppercase;
  letter-spacing:.06em; font-size:1.02rem; padding:15px 4px; border-bottom:1px solid var(--line);
  min-height:52px; display:flex; align-items:center;
}
.mmenu .mm-cta{
  margin-top:16px; border:0; background:var(--amber); color:#1A1200; border-radius:12px;
  justify-content:center; font-weight:700; padding:16px;
}
.mmenu .mm-tel{color:var(--amber)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:Oswald,sans-serif; font-weight:600; text-transform:uppercase; letter-spacing:.06em;
  font-size:.95rem; padding:15px 26px; border-radius:12px; text-decoration:none;
  border:1px solid transparent; cursor:pointer; min-height:52px; transition:transform .16s, background .16s, border-color .16s;
}
.btn:active{transform:translateY(1px)}
.btn-p{background:var(--amber); color:#1A1200}
.btn-p:hover{background:#FFD256}
.btn-g{background:var(--forest); color:#EDF6E6; border-color:#3F6E22}
.btn-g:hover{background:#37631B}
.btn-o{background:transparent; color:var(--bone); border-color:var(--line-2)}
.btn-o:hover{border-color:var(--olive-lt); color:var(--amber)}
.btn-sm{padding:11px 17px; font-size:.84rem; min-height:44px}
.btn-full{width:100%}

/* ---------- hero ---------- */
.hero{position:relative; overflow:hidden; background:var(--ink)}
.hero-bg{position:absolute; inset:0; z-index:0; overflow:hidden}
.hero-bg img{
  width:100%; height:100%; object-fit:cover; object-position:52% 30%;
  opacity:.5; filter:saturate(.9) contrast(1.04);
}
.hero-bg::after{
  content:""; position:absolute; left:0; top:0; right:0; bottom:0;
  background:
    linear-gradient(180deg, rgba(7,8,6,.72) 0%, rgba(7,8,6,.34) 34%, rgba(7,8,6,.94) 100%),
    radial-gradient(120% 80% at 78% 22%, rgba(126,139,51,.22), transparent 62%);
}
.hero-in{position:relative; z-index:1; padding:62px 0 46px}
.eyebrow{
  display:inline-flex; align-items:center; gap:9px; font-family:Oswald,sans-serif;
  text-transform:uppercase; letter-spacing:.2em; font-size:.72rem; color:var(--amber);
  border:1px solid rgba(251,191,36,.34); border-radius:999px; padding:8px 15px;
  background:rgba(251,191,36,.07); margin-bottom:22px;
}
.hero h1{
  font-size:clamp(2.85rem, 12.4vw, 6.6rem); font-weight:700; line-height:.94; letter-spacing:-.005em;
  margin:0 0 22px; max-width:15ch;
}
.hero h1 em{font-style:normal; color:var(--amber); display:block}
.hero h1 span.sm{display:block; color:var(--olive-lt); font-size:.42em; letter-spacing:.09em; margin-top:14px; font-weight:500}
.hero p.lede{font-size:1.06rem; color:var(--bone-2); max-width:46ch; margin:0 0 28px; line-height:1.7}
.hero-btns{display:flex; flex-direction:column; gap:12px; margin-bottom:30px}
.chips{display:flex; flex-wrap:wrap; gap:9px}
.chip{
  display:inline-flex; align-items:center; gap:7px; font-size:.8rem; font-weight:600;
  color:var(--bone-2); background:rgba(255,255,255,.05); border:1px solid var(--line-2);
  border-radius:999px; padding:9px 14px; min-height:38px;
}
.chip svg{color:var(--leaf); flex:0 0 auto}
.hero-loc{
  display:inline-flex; align-items:center; gap:8px; margin-top:26px; font-size:.83rem;
  color:var(--bone-3); letter-spacing:.05em; text-transform:uppercase; font-family:Oswald,sans-serif;
}
.hero-loc i{width:7px; height:7px; border-radius:50%; background:var(--leaf); font-style:normal}

/* ---------- section shell ---------- */
section{position:relative}
.sec{padding:64px 0}
.sec-alt{background:var(--ink-2); border-block:1px solid var(--line)}
.shead{margin-bottom:38px}
.kicker{
  font-family:Oswald,sans-serif; text-transform:uppercase; letter-spacing:.22em;
  font-size:.72rem; color:var(--olive-lt); margin:0 0 12px; font-weight:500;
}
.shead h2{font-size:clamp(2rem, 7.6vw, 3.3rem); font-weight:700; line-height:1}
.shead h2 em{font-style:normal; color:var(--amber)}
.shead p{margin:16px 0 0; color:var(--bone-2); max-width:62ch; font-size:1.01rem}

/* ---------- emergency panel ---------- */
.emg{background:linear-gradient(160deg,#1A0F06,#0B0A06 62%); border-block:1px solid #3A2A0C}
.emg-in{display:grid; gap:30px; padding:58px 0}
.emg h2{font-size:clamp(1.95rem,7.4vw,3.1rem); font-weight:700}
.emg h2 em{font-style:normal; color:var(--amber); display:block}
.emg ul{list-style:none; margin:22px 0 26px; padding:0; display:grid; gap:12px}
.emg li{display:flex; gap:11px; align-items:flex-start; color:var(--bone-2); font-size:.96rem; line-height:1.55}
.emg li svg{color:var(--amber); flex:0 0 auto; margin-top:3px}
.emg-card{
  background:rgba(251,191,36,.06); border:1px solid rgba(251,191,36,.3); border-radius:18px;
  padding:26px 22px; text-align:center;
}
.emg-card .lbl{font-family:Oswald,sans-serif; text-transform:uppercase; letter-spacing:.18em; font-size:.7rem; color:var(--amber); margin:0 0 10px}
.emg-card .num{
  font-family:Oswald,sans-serif; font-weight:700; font-size:clamp(1.75rem,7.6vw,2.5rem);
  color:var(--bone); text-decoration:none; display:block; letter-spacing:.02em; margin-bottom:6px;
}
.emg-card .num:hover{color:var(--amber)}
.emg-card .sub{font-size:.83rem; color:var(--bone-3); margin:0 0 18px}

/* ---------- job reel ---------- */
.reel-filters{display:flex; gap:9px; overflow-x:auto; padding:2px 0 16px; margin-bottom:6px; scrollbar-width:none}
.reel-filters::-webkit-scrollbar{display:none}
.fbtn{
  flex:0 0 auto; background:var(--panel); border:1px solid var(--line-2); color:var(--bone-2);
  border-radius:999px; padding:11px 18px; font-size:.84rem; font-weight:600; cursor:pointer;
  min-height:44px; font-family:Inter,sans-serif; transition:background .15s,color .15s,border-color .15s;
}
.fbtn:hover{border-color:var(--olive)}
.fbtn.on{background:var(--amber); color:#1A1200; border-color:var(--amber)}
.reel{
  display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding-bottom:14px; scrollbar-width:thin; -webkit-overflow-scrolling:touch;
}
.reel::-webkit-scrollbar{height:6px}
.reel::-webkit-scrollbar-thumb{background:var(--line-2); border-radius:99px}
.jcard{
  flex:0 0 clamp(230px, 74vw, 320px); scroll-snap-align:start; background:var(--panel);
  border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:opacity .25s, transform .25s;
}
.jcard.out{display:none}
.jcard figure{margin:0; position:relative; background:#0A0B08}
.jcard img{width:100%; aspect-ratio:4/5; object-fit:cover}
.jcard .tag{
  position:absolute; left:12px; top:12px; background:rgba(7,8,6,.82); border:1px solid var(--line-2);
  color:var(--amber); font-family:Oswald,sans-serif; text-transform:uppercase; letter-spacing:.1em;
  font-size:.66rem; padding:6px 10px; border-radius:8px; backdrop-filter:blur(6px);
}
.jcard figcaption{padding:16px 16px 18px; font-size:.9rem; color:var(--bone-2); line-height:1.5}
.reel-note{margin:14px 0 0; font-size:.82rem; color:var(--bone-3)}
.reel-empty{padding:34px 4px; color:var(--bone-3); font-size:.94rem}

/* ---------- services ---------- */
.svcs{display:grid; gap:14px}
.svc{
  background:var(--panel); border:1px solid var(--line); border-radius:16px; padding:24px 20px;
  position:relative; overflow:hidden; transition:border-color .18s, transform .18s;
}
.svc:hover{border-color:var(--olive); transform:translateY(-2px)}
.svc::before{
  content:""; position:absolute; left:0; top:0; width:100%; height:2px;
  background:linear-gradient(90deg,var(--olive),transparent); opacity:.7;
}
.svc .ic{
  width:44px; height:44px; border-radius:12px; background:rgba(126,139,51,.16);
  border:1px solid rgba(126,139,51,.4); display:flex; align-items:center; justify-content:center;
  color:var(--leaf); margin-bottom:15px;
}
.svc h3{font-size:1.22rem; margin:0 0 9px; letter-spacing:.03em}
.svc p{margin:0; color:var(--bone-2); font-size:.93rem; line-height:1.6}
.svc .urg{
  display:inline-block; margin-top:13px; font-family:Oswald,sans-serif; font-size:.66rem;
  letter-spacing:.16em; text-transform:uppercase; color:var(--amber);
  border:1px solid rgba(251,191,36,.35); border-radius:7px; padding:5px 9px;
}

/* ---------- standards band ---------- */
.std{
  background:var(--panel-2); border:1px solid var(--line-2); border-radius:18px;
  padding:30px 22px; margin-top:34px;
}
.std h3{font-size:1.3rem; margin:0 0 12px; color:var(--bone)}
.std p{margin:0; color:var(--bone-2); font-size:.95rem}
.std .as{color:var(--leaf); font-weight:700; font-family:Oswald,sans-serif; letter-spacing:.05em}

/* ---------- about split ---------- */
.split{display:grid; gap:34px; align-items:center}
.split-media{position:relative; border-radius:20px; overflow:hidden; border:1px solid var(--line-2)}
.split-media img{width:100%; aspect-ratio:4/5; object-fit:cover}
.split-media .stamp{
  position:absolute; left:16px; bottom:16px; background:rgba(7,8,6,.86); backdrop-filter:blur(8px);
  border:1px solid var(--line-2); border-radius:14px; padding:14px 16px;
}
.split-media .stamp b{
  display:block; font-family:Oswald,sans-serif; font-size:1.5rem; color:var(--amber); line-height:1;
}
.split-media .stamp span{font-size:.76rem; color:var(--bone-2); letter-spacing:.06em; text-transform:uppercase}
.pillars{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:26px}
.pillar{background:var(--panel); border:1px solid var(--line); border-radius:13px; padding:16px 14px}
.pillar b{display:block; font-family:Oswald,sans-serif; font-size:.98rem; letter-spacing:.04em; color:var(--bone); text-transform:uppercase}
.pillar span{font-size:.79rem; color:var(--bone-3)}

/* ---------- coverage ---------- */
.regions{display:grid; gap:12px}
.region{background:var(--panel); border:1px solid var(--line); border-radius:15px; overflow:hidden}
.region > button{
  width:100%; background:none; border:0; color:var(--bone); text-align:left; cursor:pointer;
  padding:18px 20px; display:flex; align-items:center; justify-content:space-between; gap:14px;
  font-family:Oswald,sans-serif; text-transform:uppercase; letter-spacing:.05em; font-size:1rem;
  min-height:56px;
}
.region > button:hover{color:var(--amber)}
.region > button .cnt{font-family:Inter,sans-serif; font-size:.78rem; color:var(--bone-3); letter-spacing:0; text-transform:none}
.region > button .arw{transition:transform .22s; color:var(--olive-lt); flex:0 0 auto}
.region.open > button .arw{transform:rotate(180deg)}
.region .body{display:none; padding:0 20px 20px}
.region.open .body{display:block}
.subs{display:flex; flex-wrap:wrap; gap:7px; margin:0; padding:0; list-style:none}
.subs li{
  font-size:.8rem; color:var(--bone-2); background:rgba(255,255,255,.04);
  border:1px solid var(--line); border-radius:8px; padding:7px 11px;
}
.cov-foot{
  margin-top:20px; background:var(--panel-2); border:1px solid var(--line-2); border-radius:15px;
  padding:22px 20px; text-align:center;
}
.cov-foot p{margin:0 0 16px; color:var(--bone-2); font-size:.95rem}

/* ---------- reviews ---------- */
.mocklbl{
  display:inline-flex; align-items:center; gap:8px; background:rgba(251,191,36,.09);
  border:1px dashed rgba(251,191,36,.45); color:var(--amber); border-radius:10px;
  padding:10px 14px; font-size:.79rem; font-weight:600; margin-bottom:24px; line-height:1.5;
}
.revs{display:grid; gap:13px}
.rev{background:var(--panel); border:1px solid var(--line); border-radius:15px; padding:22px 20px; position:relative}
.rev .stars{color:var(--amber); letter-spacing:.16em; font-size:.86rem; margin-bottom:11px}
.rev p{margin:0 0 15px; font-size:.95rem; color:var(--bone-2); line-height:1.65}
.rev .who{display:flex; align-items:center; gap:11px}
.rev .av{
  width:36px; height:36px; border-radius:50%; background:rgba(126,139,51,.22); border:1px solid var(--line-2);
  display:flex; align-items:center; justify-content:center; font-family:Oswald,sans-serif;
  color:var(--olive-lt); font-size:.95rem; flex:0 0 auto;
}
.rev .who b{font-size:.88rem; color:var(--bone); display:block; font-weight:600}
.rev .who span{font-size:.75rem; color:var(--bone-3)}

/* ---------- quote form ---------- */
.qwrap{display:grid; gap:30px}
.qside h2{font-size:clamp(1.95rem,7.2vw,3rem)}
.qside h2 em{font-style:normal; color:var(--amber); display:block}
.qside p{color:var(--bone-2); font-size:1rem}
.qlinks{display:grid; gap:12px; margin-top:24px}
.qlink{
  display:flex; align-items:center; gap:14px; text-decoration:none; background:var(--panel);
  border:1px solid var(--line); border-radius:14px; padding:16px 18px; min-height:64px;
  transition:border-color .16s;
}
.qlink:hover{border-color:var(--olive)}
.qlink .ic{
  width:40px; height:40px; border-radius:11px; background:rgba(251,191,36,.12);
  display:flex; align-items:center; justify-content:center; color:var(--amber); flex:0 0 auto;
}
.qlink b{display:block; font-size:.98rem; color:var(--bone); font-weight:600}
.qlink span{font-size:.79rem; color:var(--bone-3)}
.qform{background:var(--panel); border:1px solid var(--line-2); border-radius:20px; padding:26px 20px}
.qform h3{font-size:1.35rem; margin:0 0 6px}
.qform > p{font-size:.87rem; color:var(--bone-3); margin:0 0 22px}
.fld{margin-bottom:16px}
.fld label{display:block; font-size:.79rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--bone-2); margin-bottom:7px}
.fld input,.fld select,.fld textarea{
  width:100%; background:var(--ink); border:1px solid var(--line-2); border-radius:12px;
  padding:14px 15px; color:var(--bone); font:400 1rem/1.5 Inter,sans-serif; min-height:52px;
}
.fld textarea{min-height:112px; resize:vertical}
.fld input::placeholder,.fld textarea::placeholder{color:#6A665C}
.fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--olive); outline:none}
.fld select{appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239BAA45' stroke-width='2.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:44px}
.fnote{font-size:.78rem; color:var(--bone-3); margin:14px 0 0; line-height:1.55}
.qok{
  display:none; text-align:center; padding:34px 18px; border:1px solid rgba(113,200,56,.4);
  background:rgba(113,200,56,.07); border-radius:18px;
}
.qok.show{display:block}
.qok[hidden]{display:none !important}
.qok .tick{
  width:56px; height:56px; border-radius:50%; background:rgba(113,200,56,.17);
  display:flex; align-items:center; justify-content:center; margin:0 auto 16px; color:var(--leaf);
}
.qok h3{margin:0 0 10px; font-size:1.3rem}
.qok p{margin:0; color:var(--bone-2); font-size:.93rem}

/* ---------- footer ---------- */
.ft{background:#050604; border-top:1px solid var(--line); padding:52px 0 30px}
.ft-top{display:grid; gap:32px; margin-bottom:34px}
.ft-brand img{width:150px; height:auto; margin-bottom:16px}
.ft-brand p{color:var(--bone-3); font-size:.9rem; max-width:38ch; line-height:1.7}
.ft-contact{display:grid; gap:9px; margin-top:18px}
.ft-contact a,.ft-contact span{
  display:flex; align-items:center; gap:10px; color:var(--bone-2); text-decoration:none;
  font-size:.9rem; min-height:40px;
}
.ft-contact a:hover{color:var(--amber)}
.ft-contact svg{color:var(--olive-lt); flex:0 0 auto}
.ft-col h4{font-size:.86rem; letter-spacing:.16em; color:var(--bone-3); margin:0 0 15px; font-weight:500}
.ft-col ul{list-style:none; margin:0; padding:0; display:grid; gap:2px}
.ft-col a{
  color:var(--bone-2); text-decoration:none; font-size:.88rem; display:inline-block;
  padding:9px 2px; min-height:40px;
}
.ft-col a:hover{color:var(--amber)}
.disc{
  font-size:.79rem; color:#6C685E; margin:0 0 22px; max-width:78ch; line-height:1.65;
  border-top:1px solid var(--line); padding-top:22px;
}
.ft-bot{
  display:flex; flex-wrap:wrap; gap:12px 20px; justify-content:space-between; align-items:center;
  font-size:.82rem; color:var(--bone-3);
}
.by{color:var(--bone-3); text-decoration:none; display:inline-block; padding:10px 2px; min-height:40px}
.by b{color:var(--olive-lt); font-weight:700}
.by:hover b{color:var(--amber)}

/* ---------- sticky mobile call bar ---------- */
.callbar{
  position:fixed; left:0; right:0; bottom:0; z-index:55; display:flex; gap:10px;
  padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(7,8,6,.94);
  backdrop-filter:blur(12px); border-top:1px solid var(--line-2);
}
.callbar .btn{flex:1 1 0; min-width:0; font-size:.85rem; padding:14px 10px}

/* ---------- motion ---------- */
.sprog{position:fixed; left:0; top:0; height:3px; width:100%; background:var(--amber); transform:scaleX(0); transform-origin:0 50%; z-index:70}
.reveal{opacity:0; transform:translateY(20px); filter:blur(7px); transition:opacity .72s ease, transform .72s cubic-bezier(.2,.7,.3,1), filter .72s ease}
.reveal.in{opacity:1; transform:none; filter:none}
.word{display:inline-block; opacity:0; transform:translateY(24px); filter:blur(9px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.3,1), filter .6s ease}
.word.in{opacity:1; transform:none; filter:none}
html:not(.js) .reveal,html:not(.js) .word{opacity:1; transform:none; filter:none}
@media (prefers-reduced-motion:reduce){
  .reveal,.word{opacity:1 !important; transform:none !important; filter:none !important; transition:none}
  .pulse{animation:none}
}

/* ---------- responsive ---------- */
@media (min-width:700px){
  .hero-btns{flex-direction:row; flex-wrap:wrap}
  .hero-btns .btn{flex:0 0 auto}
  .svcs{grid-template-columns:repeat(2,1fr)}
  .revs{grid-template-columns:repeat(2,1fr)}
  .emg-in{grid-template-columns:1.35fr .8fr; align-items:center; padding:74px 0}
  .ft-top{grid-template-columns:1.5fr 1fr 1fr}
  .qwrap{grid-template-columns:1fr 1fr; align-items:start}
  .split{grid-template-columns:.9fr 1.1fr; gap:44px}
  .regions{grid-template-columns:repeat(2,1fr)}
  .hero-in{padding:96px 0 78px}
  .sec{padding:88px 0}
  .callbar{display:none}
  body{padding-bottom:0 !important}
}
@media (min-width:1024px){
  .nav{display:flex}
  .tel{display:inline-flex}
  .burger{display:none}
  .mmenu{display:none !important}
  .svcs{grid-template-columns:repeat(3,1fr)}
  .revs{grid-template-columns:repeat(3,1fr)}
  .regions{grid-template-columns:repeat(3,1fr)}
  .hero-in{padding:120px 0 96px}
  .jcard{flex:0 0 330px}
  .hero-bg img{object-position:60% 26%}
}

/* ---------- mobile usability pass ---------- */
@media (max-width:699px){
  body{padding-bottom:82px}
  .wrap{width:min(100% - 30px, var(--wrap))}
  .hero h1{max-width:none}
  .hero-btns .btn{width:100%}
  .brand b{font-size:1.02rem; letter-spacing:.07em}
  .brand img{width:40px}
  .shead h2{letter-spacing:0}
  /* the dot orphans itself beside a two line message on a narrow phone */
  .pulse{display:none}
  .estrip .wrap{padding:10px 0}
  .std{padding:24px 18px}
  .emg-card{padding:22px 18px}
  .pillars{grid-template-columns:1fr}
}
@media (max-width:380px){
  .brand b{font-size:.92rem}
  .brand img{width:34px}
  .chip{font-size:.75rem; padding:8px 11px}
}
