
:root{--bg:#f3f4f2;--panel:#e4e7e5;--card:#fbfcfb;--ink:#1e2327;--mute:#4f585f;--char:#404040;--char2:#353535;--green:#66c266;--green-ink:#1e2327;--on-char:#fff;--on-char-mute:#c9cfcc;--line:#c5cbc8;
box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#1a1a1a;--panel:#262626;--card:#202020;--ink:#eef1f3;--mute:#aab2b9;--char:#2e2e2e;--char2:#262626;--line:#3d3d3d}}
:root[data-theme="dark"]{--bg:#1a1a1a;--panel:#262626;--card:#202020;--ink:#eef1f3;--mute:#aab2b9;--char:#2e2e2e;--char2:#262626;--line:#3d3d3d}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 120px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:'Jost','Futura','Century Gothic','Trebuchet MS',sans-serif;font-size:1.0625rem;line-height:1.6}
img{max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:inherit;margin:0;line-height:1.1}
h1{font-weight:300;text-transform:uppercase;letter-spacing:.035em;font-size:clamp(2rem,5.6vw,3.9rem)}
h2{font-weight:400;font-size:clamp(1.5rem,3vw,2.05rem);letter-spacing:.01em;margin-bottom:.6em}
h3{font-weight:500;font-size:1.12rem}
p{margin:0 0 1em}
.wrap{max-width:1160px;margin:0 auto;padding:0 22px}
.prose{max-width:68ch}
:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--green);color:var(--green-ink);padding:10px 14px;z-index:100}
.skip:focus{left:10px}

/* header */
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--char);color:var(--on-char);border-bottom:3px solid var(--green)}
.hbar{display:flex;align-items:center;gap:18px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto}
.brand img{width:48px;height:48px;border-radius:50%}
.brand b{display:block;font-weight:400;font-size:1.35rem;letter-spacing:.08em;line-height:1}
.brand small{display:block;font-size:.66rem;letter-spacing:.32em;color:var(--on-char-mute);margin-top:4px}
nav.main{display:flex;align-items:center;gap:4px}
nav.main>a,nav.main summary{color:var(--on-char);text-decoration:none;padding:10px 12px;border-radius:4px;cursor:pointer;font-weight:500;list-style:none;font-size:1rem}
nav.main summary::-webkit-details-marker{display:none}
nav.main summary::after{content:"";display:inline-block;width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:0 0 3px 9px}
nav.main details[open] summary::after{transform:rotate(-135deg);margin-bottom:-1px}
nav.main>a:hover,nav.main summary:hover,nav.main details[open] summary{background:rgba(255,255,255,.1)}
nav.main details{position:relative}
@media(min-width:1061px){.hbar{position:relative}nav.main{position:static}nav.main details.svc-d{position:static}nav.main .drop.wide{left:22px;right:22px;width:auto}}
.drop{position:absolute;right:0;top:calc(100% + 12px);background:var(--card);color:var(--ink);border:1px solid var(--line);border-top:3px solid var(--green);border-radius:6px;padding:18px 20px;box-shadow:0 18px 40px rgba(0,0,0,.25);min-width:260px}
.drop.wide{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:6px 22px;width:min(1080px,96vw)}
.drop h4{margin:0 0 6px;font-size:.82rem;font-weight:600;color:var(--mute)}
.drop a{display:block;text-decoration:none;padding:5px 0}
.drop a:hover{color:var(--mute);text-decoration:underline}
.drop.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 26px;min-width:320px}
.hcall{background:var(--green);color:var(--green-ink);text-decoration:none;font-weight:600;padding:11px 16px;border-radius:40px;white-space:nowrap}
.menu-btn{display:none;background:none;border:1px solid rgba(255,255,255,.4);color:var(--on-char);border-radius:4px;padding:9px 12px;font:inherit;font-weight:500;cursor:pointer}

/* hero */
.hero{background:var(--char);color:var(--on-char);position:relative;overflow:hidden;padding:56px 0 64px}
.hero .wrap{position:relative}
.crumbs{font-size:.92rem;color:var(--on-char-mute);margin-bottom:18px}
.crumbs a{color:var(--on-char);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.crumbs span{margin:0 8px}
.hero h1{max-width:18ch}
.hero .lead{font-size:1.18rem;color:var(--on-char-mute);max-width:56ch;margin:18px 0 26px}
.hero.home{padding:80px 0 88px}
.hero.home h1{font-size:clamp(2.3rem,6.4vw,4.6rem);max-width:15ch}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;text-decoration:none;font-weight:600;padding:13px 22px;border-radius:40px;border:2px solid var(--green);font-size:1rem;cursor:pointer;font-family:inherit}
.btn.g{background:var(--green);color:var(--green-ink)}
.btn.o{color:var(--on-char);background:transparent}
.btn.d{background:var(--char);color:var(--on-char);border-color:var(--char)}

/* trust strip */
.trust{background:var(--char2);color:var(--on-char);font-size:.98rem}
.trust ul{list-style:none;margin:0;padding:14px 0;display:flex;flex-wrap:wrap;gap:8px 28px}
.trust li{display:flex;align-items:center;gap:9px}
.trust li::before,.ticks li::before{content:"";width:12px;height:12px;border-radius:50%;border:3px solid var(--green);flex:none}

section.blk{padding:60px 0}
section.blk.alt{background:var(--panel)}
.sub{color:var(--mute);max-width:62ch;margin-top:-6px}

/* service lists */
.groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 30px}
@media(max-width:1060px) and (min-width:621px){.groups{grid-template-columns:1fr 1fr}}
.group h3{font-size:1.25rem;font-weight:400;padding-bottom:10px;border-bottom:2px solid var(--char);margin-bottom:4px}
.svc{list-style:none;margin:0;padding:0}
.svc a{display:block;text-decoration:none;padding:12px 0;border-bottom:1px solid var(--line)}
.svc a b{display:block;font-weight:500}
.svc a span{display:block;color:var(--mute);font-size:.95rem;line-height:1.45}
.svc a:hover b{text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:2px;text-underline-offset:4px}
.svc.two{columns:2;column-gap:40px}
.svc.two li{break-inside:avoid}

/* sectors */
.sectors{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--char)}
.sectors a{text-decoration:none;padding:22px 20px 24px 0;border-bottom:1px solid var(--line)}
.sectors a+a{padding-left:20px;border-left:1px solid var(--line)}
.sectors b{display:block;font-weight:400;font-size:1.35rem;margin-bottom:6px}
.sectors span{color:var(--mute);font-size:.97rem;display:block}
.sectors a:hover b{color:var(--mute)}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.chips a{display:inline-block;text-decoration:none;padding:9px 16px;border:1.5px solid var(--char);border-radius:40px;font-weight:500}
.chips a:hover,.chips a[aria-current]{background:var(--char);color:var(--on-char)}

/* two-col detail */
.two{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:48px;align-items:start}
.ticks{list-style:none;padding:0;margin:0 0 30px}
.ticks li{display:flex;gap:14px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}
.ticks li::before{margin-top:7px}
.quote{background:var(--char);color:var(--on-char);padding:28px;border-radius:8px;border-top:6px solid var(--green);position:sticky;top:130px}
.quote h3{font-weight:400;font-size:1.35rem;margin-bottom:10px}
.quote p{color:var(--on-char-mute)}
.quote .ph{display:block;font-size:1.7rem;font-weight:400;letter-spacing:.04em;color:var(--on-char);text-decoration:none;margin:4px 0 16px}

.about{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:56px;align-items:start}
.creds{border-left:3px solid var(--green);padding-left:28px}
.napit{font-size:2.4rem;font-weight:300;letter-spacing:.12em;line-height:1;margin-bottom:18px}
.napit small{display:block;font-size:.95rem;letter-spacing:.02em;color:var(--mute);margin-top:8px;font-weight:400}
.split{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.split a{display:block;text-decoration:none;background:var(--char);color:var(--on-char);padding:34px 32px 30px;border-radius:8px;border-top:6px solid var(--green)}
.split b{display:block;line-height:1.15;font-weight:300;text-transform:uppercase;letter-spacing:.06em;font-size:clamp(1.8rem,3.4vw,2.5rem);margin-bottom:10px}
.split span{display:block;color:var(--on-char-mute);max-width:44ch;margin-bottom:20px}
.split em{font-style:normal;font-weight:600;color:var(--green)}
.split a:hover em{text-decoration:underline;text-underline-offset:4px}

/* top bar */
.topbar{background:var(--char2);font-size:.92rem;border-bottom:1px solid rgba(255,255,255,.08)}
.topbar .wrap{display:flex;align-items:center;gap:22px;min-height:38px;justify-content:flex-end}
.topbar .tb-note{margin-right:auto;color:var(--on-char-mute)}
.topbar a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--on-char);font-weight:500}
.topbar a:hover{color:var(--green)}
.topbar svg{width:15px;height:15px;fill:var(--green)}
header.top{transition:box-shadow .3s}
header.top.scrolled{box-shadow:0 8px 24px rgba(0,0,0,.25)}
.hbar{transition:min-height .3s}
.brand img{transition:width .3s,height .3s}
header.top.scrolled .hbar{min-height:60px}
header.top.scrolled .brand img{width:40px;height:40px}

/* hero ring */
svg.ring{position:absolute;right:-140px;top:50%;width:520px;height:520px;transform:translateY(-50%) rotate(-90deg);pointer-events:none;overflow:visible}
svg.ring circle{fill:none}
svg.ring .r1{stroke:var(--green);stroke-width:22;stroke-dasharray:1565;stroke-dashoffset:0}
svg.ring .r2{stroke:rgba(255,255,255,.18);stroke-width:1}

/* motion */
.btn,.hcall,.chips a,.split a,.svc a{transition:transform .2s ease,background-color .2s,color .2s,box-shadow .2s}
.btn:hover,.hcall:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.2)}
.split a:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(0,0,0,.2)}
.svc a:hover{transform:translateX(6px)}
@media(min-width:981px){nav.main details[open] .drop{animation:dropIn .22s ease-out}}
@keyframes dropIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.anim main.leaving{opacity:0;transform:translateY(10px);transition:opacity .16s,transform .16s}
.anim main.entering .hero h1,.anim main.entering .hero .lead,.anim main.entering .hero .btns,.anim main.entering .crumbs{animation:rise .7s cubic-bezier(.2,.7,.2,1) both}
.anim main.entering .hero .lead{animation-delay:.12s}
.anim main.entering .hero .btns{animation-delay:.22s}
.anim main.entering svg.ring .r1{animation:draw 1.4s cubic-bezier(.6,.1,.2,1) both .1s}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes draw{from{stroke-dashoffset:1565}to{stroke-dashoffset:0}}
.anim .rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.anim .rv.in{opacity:1;transform:none}

/* gallery + reviews */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.gallery figure{margin:0;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}
.gallery figure{cursor:zoom-in}
.gallery figure:hover img{transform:scale(1.04)}
.lbox{position:fixed;inset:0;z-index:200;background:rgba(20,20,20,.92);display:grid;place-items:center;padding:calc(env(safe-area-inset-top,0px) + 20px) 20px calc(env(safe-area-inset-bottom,0px) + 20px)}
.lbox figure{margin:0;max-width:min(1100px,100%);text-align:center}
.lbox img{max-width:100%;max-height:80vh;border-radius:6px;display:block;margin:0 auto}
.lbox figcaption{color:#e6e6e6;margin-top:12px}
.lbox button{position:absolute;top:calc(env(safe-area-inset-top,0px) + 12px);right:16px;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:#222;font-size:1.6rem;cursor:pointer}
.gallery figcaption{padding:12px 14px;font-size:.95rem;color:var(--mute)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.filters button{font:inherit;font-weight:500;padding:8px 15px;border-radius:40px;border:1.5px solid var(--char);background:transparent;color:var(--ink);cursor:pointer}
.filters button[aria-pressed="true"]{background:var(--char);color:var(--on-char)}
.empty{border:2px dashed var(--line);border-radius:10px;padding:44px 28px;text-align:center;color:var(--mute)}
.empty b{display:block;color:var(--ink);font-weight:500;font-size:1.2rem;margin-bottom:6px}
.reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.review{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--green);border-radius:8px;padding:24px}
.review .stars{color:var(--green);letter-spacing:3px;font-size:1.1rem;margin-bottom:10px}
.review p{font-size:1.05rem}
.review footer{all:unset;display:block;color:var(--mute);font-size:.95rem}
.addr{font-style:normal;margin-bottom:12px;line-height:1.55}
.social{display:flex;gap:10px;margin-top:16px}
.social a,.social span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1.5px solid rgba(255,255,255,.3)}
.social svg{width:18px;height:18px;fill:var(--on-char)}
.social a:hover{background:var(--green);border-color:var(--green)}
.social a:hover svg{fill:var(--green-ink)}
.social span{opacity:.55}
footer .legal{display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between;align-items:flex-start}
footer .legal>span:first-child{max-width:78ch}
.legal-links{display:flex;gap:22px}
.legal-links a{color:var(--on-char);text-decoration:underline;text-underline-offset:3px}
.legal-copy h2{font-size:1.35rem;margin:1.6em 0 .5em}
.legal-copy h2:first-child{margin-top:0}
.updated{color:var(--mute);font-size:.95rem;margin-top:2em}
.badges{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-bottom:22px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 20px}
.badge{display:block;border-radius:6px}
.badge img{height:66px;max-width:100%;width:auto;display:block}
.badge.wide img{height:48px}
a.badge{transition:transform .2s,box-shadow .2s}
a.badge:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(0,0,0,.18)}
.split a.full{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:end;gap:10px 40px}
.split a.full span{max-width:70ch;margin-bottom:0}
.split.three{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:24px}
.split.three a{padding:26px 26px 24px}
.split.three b{font-size:clamp(1.2rem,1.75vw,1.5rem);letter-spacing:.03em;overflow-wrap:break-word}
.note{border-left:3px solid var(--green);padding:10px 16px;background:var(--panel);border-radius:0 6px 6px 0}
.btn.wa{display:inline-flex;align-items:center;gap:8px}
.btn .wai{width:18px;height:18px;fill:currentColor;flex:none}
.tagline{color:var(--green);font-size:clamp(1.35rem,2.6vw,1.9rem);font-weight:400;letter-spacing:.02em;margin:14px 0 0}
.anim main.entering .hero .tagline{animation:rise .7s cubic-bezier(.2,.7,.2,1) both .08s}
.revband{background:var(--panel);border-bottom:1px solid var(--line)}
.revband .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 30px;padding-top:22px;padding-bottom:22px}
.revband .badges{margin:0;padding:10px 16px}
.revband .badge img{height:52px}.revband .badge.wide img{height:40px}
.revlink{display:flex;align-items:center;gap:16px;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 22px;transition:transform .2s,box-shadow .2s}
.revlink:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.15)}
.revlink .stars{color:#f5b400;font-size:1.35rem;letter-spacing:2px}
.revlink b{display:block;font-weight:500;font-size:1.1rem}
.revlink small{display:block;color:var(--mute);font-size:.92rem}
.flowsec{overflow:hidden}
.flow{display:grid;gap:18px}
.flow a{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,18rem) minmax(0,1fr) auto;align-items:center;gap:10px 34px;text-decoration:none;background:var(--char);color:var(--on-char);border-radius:8px;padding:26px 30px 26px 36px;transition:background-color .5s ease,box-shadow .5s ease,opacity .8s ease,transform .8s ease}
.flow a::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--green);transform-origin:top}
.flow b{font-weight:300;text-transform:uppercase;letter-spacing:.05em;font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.15}
.flow span{color:var(--on-char-mute)}
.flow em{font-style:normal;font-weight:600;color:var(--green);white-space:nowrap}
.flow a:hover em{text-decoration:underline;text-underline-offset:4px}
.flow a.focus{background:#474747;box-shadow:0 0 0 1px rgba(102,194,102,.7),0 10px 24px rgba(0,0,0,.16)}
.anim .flow a{opacity:0;transform:translateY(24px)}
.anim .flow a.on{opacity:1;transform:none}
.anim .flow a::before{transform:scaleY(0)}
.anim .flow a.on::before{animation:charge .6s ease-out .2s forwards}
@keyframes charge{to{transform:scaleY(1)}}
@keyframes current{0%{left:-40%;opacity:1}100%{left:120%;opacity:1}}
.nbsplit{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.nbcard{display:block;text-decoration:none;background:var(--char);color:var(--on-char);border-radius:10px;border-top:6px solid var(--green);padding:32px 32px 28px;transition:transform .2s,box-shadow .2s}
.nbcard:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(0,0,0,.2)}
.nbcard b{display:block;font-weight:300;text-transform:uppercase;letter-spacing:.05em;font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.1;margin-bottom:12px}
.nbcard span{display:block;color:var(--on-char-mute);margin-bottom:16px}
.nbcard .ticks{margin-bottom:18px}.nbcard .ticks li{border-color:rgba(255,255,255,.14);padding:8px 0}
.nbcard em{font-style:normal;font-weight:600;color:var(--green)}
.evgrid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:34px;align-items:start;margin-top:10px}
.evstep{border:0;margin:0 0 26px;padding:0}
.evstep legend{display:flex;align-items:center;gap:12px;font-size:1.2rem;font-weight:500;margin-bottom:12px;padding:0}
.evn{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--char);color:var(--on-char);font-size:.95rem;flex:none}
.evsub{color:var(--mute);margin:-4px 0 12px;font-size:.97rem}
.evopts{display:flex;flex-wrap:wrap;gap:10px}
.evopt{position:relative;cursor:pointer}
.evopt input{position:absolute;opacity:0;pointer-events:none}
.evopt span{display:block;padding:11px 18px;border:1.5px solid var(--line);border-radius:40px;background:var(--card);font-weight:500;transition:background .2s,border-color .2s,color .2s}
.evopt input:checked+span{background:var(--char);border-color:var(--char);color:var(--on-char)}
.evopt input:focus-visible+span{outline:3px solid var(--green);outline-offset:2px}
.evopt.chk span{border-radius:8px}
.evopt.off{opacity:.4;cursor:not-allowed}
.evtether{margin-top:14px}
.evchargers{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.evc{position:relative;cursor:pointer}
.evc input{position:absolute;opacity:0;pointer-events:none}
.evcb{display:block;height:100%;padding:18px 18px 16px;border:1.5px solid var(--line);border-radius:10px;background:var(--card);transition:border-color .2s,box-shadow .2s}
.evcb b{display:block;font-weight:500;font-size:1.08rem;margin-bottom:8px}
.evcb ul{margin:0 0 12px;padding-left:18px;color:var(--mute);font-size:.93rem}
.evcb i{font-style:normal;font-weight:600}
.evc input:checked+.evcb{border-color:var(--green);box-shadow:0 0 0 2px var(--green)}
.evc input:focus-visible+.evcb{outline:3px solid var(--green);outline-offset:2px}
.evsum{position:sticky;top:130px;background:var(--char);color:var(--on-char);border-radius:10px;border-top:6px solid var(--green);padding:28px}
.evsum h3{font-weight:400;font-size:1.25rem;margin-bottom:6px}
.evprice{font-size:clamp(2rem,4vw,2.6rem);font-weight:300;letter-spacing:.02em;color:var(--green);margin-bottom:8px}
.evnote{color:#ffd580;font-size:.95rem;margin:0 0 10px}.evnote:empty{display:none}
.evnote a{color:#ffd580}
.evlines{list-style:none;padding:0;margin:0 0 16px;font-size:.93rem}
.evlines li{display:flex;justify-content:space-between;gap:14px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.12);color:var(--on-char-mute)}
.evlines b{color:var(--on-char);font-weight:500;white-space:nowrap}
.evpc{font-size:.86rem;line-height:1.5;color:var(--on-char-mute);border-top:1px solid rgba(255,255,255,.12);padding-top:12px}
.evpc b{color:var(--on-char);font-weight:500}
.evpc a{color:var(--on-char)}
.evvat{color:var(--on-char-mute);font-size:.9rem;margin:-6px 0 12px}
.evcta{background:var(--bg)}
.evctabox{display:grid;grid-template-columns:minmax(0,1.5fr) auto;align-items:center;gap:30px 48px;background:var(--char);color:var(--on-char);border-radius:12px;border-left:8px solid var(--green);padding:clamp(28px,4vw,48px)}
.evkick{color:var(--green);font-weight:600;margin:0 0 6px}
.evctabox h2{color:var(--on-char);font-weight:300;font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.1;margin-bottom:14px}
.evctalead{color:var(--on-char-mute);font-size:1.08rem;max-width:58ch}
.evease{margin:0}.evease li{border-color:rgba(255,255,255,.14);padding:8px 0}
.evbig{font-size:clamp(1.15rem,2vw,1.35rem);padding:20px 34px;white-space:nowrap;box-shadow:0 0 0 0 rgba(102,194,102,.55);animation:pulse 2.4s ease-out infinite}
.evbig:hover{box-shadow:0 10px 24px rgba(0,0,0,.25)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(102,194,102,.5)}70%{box-shadow:0 0 0 16px rgba(102,194,102,0)}100%{box-shadow:0 0 0 0 rgba(102,194,102,0)}}
.heroevq{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin:0 0 22px}
.heroevq span{color:var(--on-char-mute);font-size:.98rem;max-width:30ch}
.anim main.entering .hero .heroevq{animation:rise .7s cubic-bezier(.2,.7,.2,1) both .17s}
.faqs{background:var(--bg)}
.faqlist{max-width:820px}
.faqlist details{border-bottom:1px solid var(--line)}
.faqlist summary{cursor:pointer;list-style:none;padding:18px 40px 18px 0;font-weight:500;font-size:1.08rem;position:relative}
.faqlist summary::-webkit-details-marker{display:none}
.faqlist summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:300;color:var(--green)}
.faqlist details[open] summary::after{content:"\2212"}
.faqlist details p{margin:0 0 18px;color:var(--mute);max-width:68ch}
.revsec{background:var(--panel)}
.rcar{position:relative;max-width:860px}
.rtrack{display:grid;overflow:hidden}
.rslide{grid-area:1/1;margin:0;background:var(--card);border:1px solid var(--line);border-left:6px solid var(--green);border-radius:10px;padding:clamp(24px,4vw,40px);opacity:0;transform:translateX(30px);transition:opacity .7s ease,transform .7s ease;pointer-events:none}
.rslide.act{opacity:1;transform:none;pointer-events:auto}
.rslide .stars,.review .stars{color:#f5b400}
.rslide blockquote{margin:10px 0 18px;font-size:clamp(1.08rem,1.9vw,1.3rem);line-height:1.6}
.rslide blockquote::before{content:"\201C";color:var(--green);font-size:2.4rem;line-height:0;vertical-align:-.45em;margin-right:4px}
.rslide figcaption,.review footer{color:var(--mute);font-size:.95rem;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}
.rslide figcaption b,.review footer b{color:var(--ink);font-weight:500}
.revsvc{color:var(--mute)}
.revsrc{font-size:.82rem;border:1px solid var(--line);border-radius:20px;padding:2px 10px}
.rnav{display:flex;align-items:center;gap:14px;margin-top:16px}
.rnav button{font:inherit;width:42px;height:42px;border-radius:50%;border:1.5px solid var(--char);background:transparent;color:var(--ink);cursor:pointer}
.rnav button:hover{background:var(--char);color:var(--on-char)}
.rdots{display:flex;gap:8px}.rdots i{cursor:pointer;width:9px;height:9px;border-radius:50%;background:var(--line);transition:background .3s}.rdots i.act{background:var(--green)}
.revbtns{margin-top:22px}
.rnav .rplay{font-size:.75rem;letter-spacing:-1px}
.rbar{flex:1;max-width:160px;height:3px;background:var(--line);border-radius:3px;overflow:hidden}
.rbar i{display:block;height:100%;width:0;background:var(--green)}
.btn.revo{color:var(--ink)}
.hero.hasbg{isolation:isolate}
.herobg{position:absolute;inset:0;z-index:-1;overflow:hidden;background:var(--char)}
.herobg i{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;animation:bgcycle 24s linear infinite;will-change:opacity,transform}
.herobg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(38,38,38,.95) 0%,rgba(38,38,38,.88) 32%,rgba(38,38,38,.5) 54%,rgba(38,38,38,.14) 76%,rgba(38,38,38,.06) 100%),linear-gradient(0deg,rgba(102,194,102,.06),rgba(102,194,102,.06))}
.herobg i.fit-right{background-size:auto 100%;background-position:right center;background-repeat:no-repeat}
.hero.hasbg h1,.hero.hasbg .lead,.hero.hasbg .tagline{text-shadow:0 2px 18px rgba(0,0,0,.55)}
@keyframes bgcycle{0%{opacity:0;transform:scale(1.12)}5%{opacity:1}25%{opacity:1}31%{opacity:0;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
.hero.hasbg svg.ring{opacity:.35}
@media(max-width:620px){.herobg::after{background:linear-gradient(180deg,rgba(38,38,38,.88),rgba(38,38,38,.82)),linear-gradient(0deg,rgba(102,194,102,.10),rgba(102,194,102,.10))}}
@media(prefers-reduced-motion:reduce){.herobg i{animation:none!important}.herobg i:first-child{opacity:1}}
.projcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,560px),1fr));gap:20px;margin-bottom:28px;max-width:980px}
.projcard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);text-decoration:none;background:var(--char);color:var(--on-char);border-radius:10px;overflow:hidden;border-left:6px solid var(--green);transition:transform .2s,box-shadow .2s;min-height:240px}
.projcard:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(0,0,0,.2)}
.pimg{background-size:cover;background-position:center}
.pbody{padding:24px;display:flex;flex-direction:column;gap:8px}
.pbody em{font-style:normal;color:var(--green);font-weight:600;font-size:.9rem}
.pbody b{font-weight:300;text-transform:uppercase;letter-spacing:.04em;font-size:1.5rem;line-height:1.15}
.pbody>span{color:var(--on-char-mute);font-size:.97rem}
.pbody i{font-style:normal;font-weight:600;color:var(--green);margin-top:auto}
.ppartner{margin-top:22px;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--green);border-radius:8px;padding:14px 18px}
.ppartner b{display:block;font-weight:600;margin-bottom:2px}
.pnote{margin-top:22px;color:var(--mute);font-size:.92rem;font-style:italic}
.pfacts{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:6px 0 18px}
.pfacts dt{color:var(--on-char-mute)}.pfacts dd{margin:0;color:var(--on-char)}
@media(max-width:620px){.projcard{grid-template-columns:1fr}.pimg{height:200px}}
.gallery.strip{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/4);grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:thin}
.gallery.strip figure{scroll-snap-align:start}
.gallery.strip.more{-webkit-mask-image:linear-gradient(90deg,#000 86%,transparent);mask-image:linear-gradient(90deg,#000 86%,transparent)}
.gallery.strip.more.end{-webkit-mask-image:none;mask-image:none}
.gallery.strip figcaption{font-size:.88rem;padding:10px 12px}
section.blk.slim{padding:34px 0}
.totop{position:fixed;right:18px;bottom:calc(env(safe-area-inset-bottom,0px) + 18px);z-index:55;width:46px;height:46px;border-radius:50%;border:0;background:var(--char);color:var(--on-char);font-size:1.3rem;box-shadow:0 6px 18px rgba(0,0,0,.25);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s}
.totop.show{opacity:1;pointer-events:auto}
@media(max-width:1060px){.gallery.strip{grid-auto-columns:calc((100% - 16px)/2.2)}}
@media(max-width:620px){
 section.blk{padding:38px 0}
 .gallery.strip{grid-auto-columns:72%}
 .two>aside.quote{display:none}
 .contact .big{font-size:1.9rem;margin:4px 0}
 .contact .grid>div:first-child .btns{display:none}
 .contact{padding:44px 0}
 footer{padding:30px 0 96px}
 footer .cols{grid-template-columns:1fr;gap:0}
 footer .fcontact{margin-bottom:14px}
 footer .fsvc{grid-template-columns:1fr 1fr}
 footer details{border-top:1px solid rgba(255,255,255,.12)}
 footer summary{cursor:pointer;padding:8px 0;display:flex;justify-content:space-between;align-items:center}
 footer summary h4{margin:0}
 footer summary::after{content:"+";color:var(--green);font-size:1.4rem;line-height:1}
 footer details[open] summary::after{content:"\2212"}
 footer details>ul,footer details>.fsvc{padding-bottom:14px}
 .totop{bottom:calc(env(safe-area-inset-bottom,0px) + 70px)}
}
@media(min-width:621px){footer summary{pointer-events:none}}
.midcta{display:none}
@media(max-width:620px){.midcta{display:block;background:var(--char);color:var(--on-char);padding:14px 0;border-top:3px solid var(--green)}
 .midcta .wrap{display:flex;align-items:center;gap:10px}
 .midcta span{flex:1;font-weight:500;font-size:1.02rem}
 .midcta .btn{padding:10px 16px;font-size:.95rem}}
.projlink{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;text-decoration:none;background:var(--card);border:1px solid var(--line);border-left:6px solid var(--green);border-radius:8px;padding:14px 20px;margin-bottom:22px;transition:box-shadow .2s}
.projlink:hover{box-shadow:0 8px 20px rgba(0,0,0,.12)}
.projlink b{display:block;font-weight:500;font-size:1.08rem}
.projlink small{display:block;color:var(--mute);font-size:.92rem}
.projlink em{font-style:normal;font-weight:600;white-space:nowrap}
.reviewus{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:40px;align-items:center}
.steps{padding-left:22px;margin:0 0 24px}.steps li{padding:6px 0;font-size:1.05rem}
.qrbox{margin:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;text-align:center;max-width:320px;justify-self:center}
.qrbox #qr svg{width:100%;height:auto;display:block}
.qrbox figcaption{color:#444;margin-top:10px;font-size:.95rem}
@media(max-width:780px){.reviewus{grid-template-columns:1fr}}
.alsorated{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:16px 0 28px;color:var(--mute);font-size:.95rem}
.alsorated a{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:20px;padding:5px 14px;text-decoration:none;color:var(--ink);background:var(--card);font-weight:500}
.alsorated a:hover{border-color:var(--green)}
.gfirst{background:var(--card);border:1px solid var(--line);border-left:6px solid var(--green);border-radius:8px;padding:14px 18px;margin-bottom:6px}
.gfirst b{display:block;font-weight:600}.gfirst span{color:var(--mute)}
.freviews{margin-top:14px;font-size:.9rem}.freviews a{color:var(--on-char)}
.why{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.why h3{font-weight:500;margin-bottom:6px}
.why div{border-top:3px solid var(--green);padding-top:14px}
.why p{color:var(--mute);margin:0}

/* contact */
.contact{background:var(--char);color:var(--on-char);padding:64px 0}
.contact .grid{display:grid;grid-template-columns:1fr 1.15fr;gap:48px}
.contact .big{display:block;font-size:clamp(2rem,5vw,3.1rem);font-weight:300;letter-spacing:.04em;text-decoration:none;margin:10px 0}
.contact p{color:var(--on-char-mute)}
.contact p a{color:var(--on-char)}
form{display:grid;gap:14px}
label{font-weight:500;font-size:.95rem;display:grid;gap:6px}
input,select,textarea{font:inherit;padding:12px 14px;border-radius:6px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.06);color:var(--on-char);width:100%}
select option{color:#1e2327}
textarea{min-height:110px;resize:vertical}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fnote{font-size:.9rem;color:var(--on-char-mute);margin:0}

footer{background:var(--char2);color:var(--on-char-mute);padding:40px 0 40px;font-size:.95rem}
footer .cols{display:grid;grid-template-columns:1fr 2.6fr 1fr 1fr;gap:28px}
footer h4{color:var(--on-char);font-weight:500;margin:0 0 10px;font-size:1rem}
footer ul{list-style:none;padding:0;margin:0}
footer li{padding:2px 0}
footer h5{color:var(--on-char);font-weight:500;font-size:.85rem;margin:0 0 4px;opacity:.85}
footer .fsvc{display:grid;grid-template-columns:repeat(3,1fr);gap:0 22px}
footer .fsvc ul+h5{margin-top:12px}
footer summary{list-style:none;cursor:default}
footer summary::-webkit-details-marker{display:none}
footer{font-size:.9rem}
footer a{text-decoration:none;color:var(--on-char-mute)}
footer a:hover{color:var(--on-char);text-decoration:underline}
footer .legal{border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:18px}

.stick{display:none}

@media(max-width:1060px){
  .menu-btn{display:block}
  nav.main{display:none;position:absolute;left:0;right:0;top:100%;background:var(--char);flex-direction:column;align-items:stretch;padding:8px 16px 18px;border-bottom:3px solid var(--green);max-height:calc(100vh - 90px);overflow:auto}
  header.top.open nav.main{display:flex}
  nav.main>a,nav.main summary{padding:13px 6px;border-bottom:1px solid rgba(255,255,255,.12);border-radius:0}
  .drop,.drop.wide,.drop.cols{position:static;width:auto;min-width:0;box-shadow:none;border:0;background:transparent;color:var(--on-char);padding:6px 6px 12px 14px;display:block}
  .drop h4{color:var(--on-char-mute);margin-top:10px}
  .drop a{padding:8px 0}
  .hcall{display:none}
  .groups{grid-template-columns:1fr}
  .sectors{grid-template-columns:1fr 1fr}
  .sectors a:nth-child(odd){padding-left:0;border-left:0}
  .two{grid-template-columns:1fr}
  .quote{position:static}
  .why{grid-template-columns:1fr 1fr}
  .about{grid-template-columns:1fr;gap:30px}
  .split,.split.three,.nbsplit,.evgrid,.evctabox{grid-template-columns:1fr}
  .evbig{white-space:normal;text-align:center}
  .evsum{position:static}
  .flow a{grid-template-columns:1fr;padding:22px 22px 22px 28px}
  .flow em{margin-top:4px}
  .split a.full{grid-template-columns:1fr}
  .split a.full span{margin-bottom:10px}
  .contact .grid{grid-template-columns:1fr}
  footer .cols{grid-template-columns:1fr 1fr}
  svg.ring{width:360px;height:360px;right:-190px;opacity:.55}
  .topbar .tb-note{display:none}
  .topbar .wrap{justify-content:space-between;gap:12px}
}
@media(max-width:620px){
  .brand small{letter-spacing:.2em}
  .topbar{font-size:.84rem}
  .topbar svg{width:13px;height:13px}
  .sectors{grid-template-columns:1fr}
  .sectors a,.sectors a+a{padding-left:0;border-left:0}
  .why{grid-template-columns:1fr}
  .svc.two{columns:1}
  .frow{grid-template-columns:1fr}
  footer .cols{grid-template-columns:1fr}
  .hero{padding:40px 0 48px}.hero.home{padding:52px 0 60px}
  .stick{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;padding-bottom:env(safe-area-inset-bottom,0px);background:var(--char)}
  .stick a{text-align:center;padding:15px;font-weight:600;text-decoration:none}
  .stick .c{background:var(--green);color:var(--green-ink)}
  .stick .m{color:var(--on-char)}
  .stick .w{color:var(--on-char);border-left:1px solid rgba(255,255,255,.15);border-right:1px solid rgba(255,255,255,.15)}
}
@media(min-width:621px) and (max-width:1060px){.split.three{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
