:root{--gv-green:#86A550;--gv-navy:#102A33;--gv-white:#FFFFFF;--gv-soft-grey:#EFF2EC;--gv-orange:#DC8E4F;--gv-gold:#EAC36F;--gv-earth-brown:#8E7046;--gv-mist-grey:#BAC5C9;
--forest:var(--gv-navy);--forest-deep:var(--gv-navy);--navy:var(--gv-navy);--sage:var(--gv-green);--acid:var(--gv-gold);--lime:var(--gv-green);--orange:var(--gv-orange);--cream:var(--gv-soft-grey);--paper:var(--gv-white);--ink:var(--gv-navy);--muted:rgba(16,42,51,.72);--line:rgba(16,42,51,.16);--font:'DM Sans',Arial,Helvetica,sans-serif;--radius:3px;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}button,a,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #DC8E4F;outline-offset:4px}[hidden]{display:none!important}::selection{background:#EFF2EC;color:var(--forest-deep)}.site-width{width:min(1280px,calc(100% - 80px));margin-inline:auto}.section-space{padding:128px 0}.cream{background:var(--cream)}.eyebrow{display:flex;align-items:center;gap:13px;margin:0 0 29px;font-size:11px;font-weight:750;letter-spacing:.21em;line-height:1.3}.eyebrow.ink{color:#86A550}.eyebrow.light{color:rgba(16,42,51,0.690)}.tiny-bar,.kicker-line{height:2px;width:29px;background:var(--orange);flex:none}.headline{font-size:clamp(40px,4.15vw,67px);line-height:1.095;letter-spacing:-.054em;font-weight:650;margin:0;color:var(--ink)}.headline span{color:#102A33;font-weight:450}.text-arrow{font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:22px;letter-spacing:-.01em;transition:gap .25s var(--ease)}.text-arrow:hover{gap:31px}.text-arrow span{font-size:19px;font-weight:400}.text-arrow.light{color:#FFFFFF}.text-arrow.dark{color:var(--forest)}.btn{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:space-between;gap:25px;min-height:59px;padding:0 19px 0 25px;border-radius:3px;font-size:13.5px;font-weight:750;letter-spacing:-.01em;transition:background .25s,color .25s,border-color .25s,transform .25s;white-space:nowrap}.btn:hover{transform:translateY(-2px)}.btn-dark{background:var(--forest-deep);color:#FFFFFF}.btn-dark:hover{background:#102A33}.btn-accent{background:var(--lime);color:#102A33}.btn-accent:hover{background:#EFF2EC}.btn-outline{border-color:#BAC5C9;background:transparent;color:var(--forest)}.btn-outline:hover{background:var(--forest);border-color:var(--forest);color:#FFFFFF}.btn-transparent{border-color:rgba(255,255,255,0.5);color:#FFFFFF;background:rgba(255,255,255,0.07);backdrop-filter:blur(6px)}.btn-transparent:hover{background:rgba(255,255,255,0.17)}.btn-icon{display:grid;place-items:center;width:32px;height:32px;flex:none;border:1px solid currentColor;border-radius:100%;font-size:18px;font-weight:400;line-height:1;opacity:.88}.skip-link{position:absolute;top:-60px;left:10px;background:#FFFFFF;color:#102A33;padding:12px;z-index:100}.skip-link:focus{top:10px}
/* top bar / navigation */
.topbar{height:37px;background:#102A33;color:rgba(16,42,51,0.690);font-size:11px;letter-spacing:.015em}.topbar-inner{height:100%;display:flex;justify-content:space-between;align-items:center}.topbar-region,.topbar-right,.topbar-right a{display:flex;align-items:center;gap:10px}.topbar-right{gap:24px}.topbar-right a{font-weight:700;color:#FFFFFF}.topbar-right a>span{font-size:15px;color:var(--lime)}.topbar-divider{width:1px;height:13px;background:#86A550}.mini-dot{display:inline-block;width:6px;height:6px;border-radius:100%;background:#86A550;vertical-align:middle;flex:none}.header{height:91px;position:relative;z-index:80;background:#FFFFFF;transition:box-shadow .24s}.header.is-scrolled{box-shadow:0 10px 32px rgba(16,42,51,0.071)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:100%;gap:29px}.brand{display:flex;align-items:center;flex:none}.brand img{width:193px;height:auto}.desktop-nav{display:flex;align-items:center;gap:27px;margin-left:auto;height:100%}.nav-link{color:#102A33;font-size:13px;font-weight:650;position:relative;padding:35px 0;border:0;background:none;transition:color .2s;white-space:nowrap;display:inline-flex;gap:8px;align-items:center}.nav-link:hover,.nav-link.active{color:#102A33}.nav-link.active:after{content:"";height:2px;position:absolute;left:0;right:0;bottom:23px;background:#86A550}.chevron{display:inline-block;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-1px) rotate(45deg)}.nav-parent{height:100%;display:flex;align-items:center;position:static}.nav-actions{display:flex;align-items:center;gap:18px}.contact-link{display:flex;align-items:center;gap:8px;color:#102A33;font-size:12px;font-weight:750;white-space:nowrap}.contact-link svg{height:16px;width:16px}.nav-quote{min-height:47px;padding:0 9px 0 18px;gap:14px;font-size:12px}.nav-quote .btn-icon{height:27px;width:27px;font-size:16px}.menu-toggle{display:none}.mobile-nav{display:none}.mega-menu{opacity:0;visibility:hidden;transform:translateY(9px);position:absolute;z-index:98;left:50%;top:calc(100% - 1px);width:min(1100px,calc(100% - 70px));padding:34px 40px 26px;background:#FFFFFF;box-shadow:0 28px 65px rgba(16,42,51,0.188);transition:opacity .22s,transform .22s,visibility .22s;translate:-50% 0;border-top:3px solid #86A550}.mega-menu.open,.nav-parent:focus-within .mega-menu{opacity:1;visibility:visible;transform:translateY(0)}.mega-head{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid #EFF2EC;padding-bottom:19px}.mega-head .eyebrow{margin-bottom:8px}.mega-head h3{font-size:27px;line-height:1.1;font-weight:600;letter-spacing:-.04em;margin:0}.mega-note{font-size:12px;color:#102A33}.mega-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;padding:17px 0;background:linear-gradient(#FFFFFF,#FFFFFF);}.mega-link{display:flex;align-items:center;gap:15px;padding:16px 12px;transition:background .2s}.mega-link:hover{background:#EFF2EC}.mega-link>img{width:38px;height:38px;object-fit:contain}.mega-link span{font-size:13px;font-weight:750;display:grid;gap:5px;line-height:1.15}.mega-link small{font-size:11px;font-weight:450;color:#102A33}.mega-link i{font-size:15px;color:#102A33;font-style:normal;margin-left:auto}.mega-bottom{border-top:1px solid #EFF2EC;padding:16px 4px 0;display:flex;justify-content:space-between;color:#86A550;font-size:11px}.mega-bottom>span{display:flex;align-items:center;gap:8px}.mega-bottom a{color:#102A33;font-weight:700}
/* hero */
.hero{height:min(820px,calc(100svh - 128px));min-height:650px;position:relative;overflow:hidden;background:#102A33;color:#FFFFFF}.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%;filter:saturate(.92)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,42,51,0.94) 0%,rgba(16,42,51,0.79) 27%,rgba(16,42,51,0.35) 61%,rgba(16,42,51,0.06) 100%),linear-gradient(0deg,rgba(16,42,51,0.62),transparent 33%)}.hero-inner{position:relative;z-index:1;height:100%;display:flex;align-items:center}.hero-copy{padding-bottom:60px;max-width:860px}.hero-kicker{font-size:11px;letter-spacing:.18em;color:rgba(16,42,51,0.690);margin-bottom:29px}.hero h1{font-size:clamp(54px,5vw,85px);font-weight:550;letter-spacing:-.069em;line-height:1.055;max-width:900px;margin:0 0 27px;text-wrap:balance}.hero h1 span:not(.hero-stop){font-weight:400;color:rgba(16,42,51,0.690)}.hero-stop{color:#DC8E4F}.hero-desc{max-width:510px;font-size:16px;line-height:1.78;color:rgba(16,42,51,0.690);margin:0 0 34px;font-weight:400}.hero-actions{display:flex;align-items:center;gap:33px}.hero-side{position:absolute;right:0;top:22%;display:flex;flex-direction:column;align-items:center;gap:31px}.hero-vertical{writing-mode:vertical-rl;letter-spacing:.26em;font-size:10px;font-weight:700;color:#FFFFFF}.hero-counter{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:10px;letter-spacing:.15em}.hero-counter>div{width:1px;height:56px;background:#BAC5C9}.hero-bottom{position:absolute;left:0;right:0;bottom:0;min-height:124px;display:flex;align-items:center;gap:22px;border-top:1px solid rgba(239,242,236,0.298)}.hero-proof{display:flex;align-items:center;gap:14px;flex:0 0 auto}.hero-proof .proof-icon{display:grid;place-items:center;width:43px;height:43px;border:1px solid rgba(239,242,236,0.396);border-radius:100%;color:rgba(16,42,51,0.690)}.proof-icon svg{width:18px;height:18px}.hero-proof strong,.hero-proof span{display:block}.hero-proof strong{font-size:12px;font-weight:750;margin-bottom:5px}.hero-proof span{font-size:11px;color:rgba(16,42,51,0.690)}.hero-proof-divider{width:1px;height:31px;background:rgba(239,242,236,0.333);margin-inline:9px}.hero-scroll{margin-left:auto;display:flex;align-items:center;gap:20px;color:#EFF2EC;font-size:10px;font-weight:750;letter-spacing:.16em;white-space:nowrap}.scroll-arrow{display:grid;place-items:center;width:39px;height:39px;border:1px solid rgba(186,197,201,0.502);border-radius:100%;font-size:23px;font-weight:400;letter-spacing:0}.visual-disclaimer{position:absolute;right:12px;bottom:8px;font-size:9px;color:rgba(255,255,255,0.678);z-index:2;letter-spacing:.08em}.location-marquee{background:#EFF2EC;min-height:52px;color:#102A33}.marquee-inner{height:52px;display:flex;align-items:center;justify-content:space-between;gap:20px}.marquee-inner span{font-size:10px;letter-spacing:.19em;font-weight:750;white-space:nowrap}.marquee-inner i{font-style:normal;color:#86A550;font-size:16px}
/* intro */
.intro{background:#FFFFFF}.intro-grid{display:grid;grid-template-columns:1.43fr .57fr;gap:80px;align-items:end}.intro-left .eyebrow{margin-bottom:26px}.intro-left h2{max-width:960px}.intro-right{border-left:1px solid #EFF2EC;padding-left:29px;padding-bottom:4px}.small-index{font-size:10px;font-weight:750;letter-spacing:.22em;color:#102A33}.intro-right p{font-size:16px;line-height:1.83;color:#102A33;margin:19px 0 25px;max-width:390px}
/* services slider */
.services{overflow:hidden;padding-bottom:101px}.services-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:43px}.services-head .headline{max-width:920px}.section-sub{font-size:15px;color:#102A33;margin:18px 0 0}.carousel-actions{display:flex;align-items:center;gap:9px;padding-bottom:4px}.carousel-position{font-size:12px;letter-spacing:.09em;color:#102A33;white-space:nowrap;margin-right:13px}.carousel-position b{color:#102A33;font-size:19px;font-weight:650}.circle-arrow{display:grid;place-items:center;width:47px;height:47px;border:1px solid #102A33;border-radius:100%;background:transparent;color:#102A33;font-size:20px;transition:background .2s,color .2s,border .2s}.circle-arrow:hover{background:var(--forest);color:#FFFFFF;border-color:var(--forest)}.services-track{display:flex;gap:17px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-left:max(56px,calc((100vw - 1280px)/2));padding-right:56px;overscroll-behavior-inline:contain}.services-track::-webkit-scrollbar{display:none}.service-card{flex:0 0 clamp(300px,30.3vw,449px);scroll-snap-align:start;position:relative;height:517px;overflow:hidden;background:#102A33;color:#FFFFFF}.service-card>img:first-child{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.service-card:hover>img:first-child{transform:scale(1.07)}.service-tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,42,51,0.38) 0%,transparent 43%,rgba(16,42,51,0.88) 100%)}.service-card-top,.service-card-bottom{position:absolute;left:25px;right:25px;z-index:1}.service-card-top{top:23px;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.1em;font-weight:700}.service-card-top img{height:34px;width:34px;object-fit:contain;filter:grayscale(1) brightness(0) invert(1)}.service-card-bottom{bottom:26px;padding-right:50px}.service-overline{font-size:10px;letter-spacing:.14em;color:rgba(16,42,51,0.690);font-weight:750}.service-card h3{font-size:31px;letter-spacing:-.045em;font-weight:550;line-height:1.1;margin:10px 0 11px}.service-card p{font-size:12.5px;color:rgba(16,42,51,0.690);line-height:1.6;margin:0;max-width:315px}.service-cta{position:absolute;bottom:1px;right:0;width:42px;height:42px;border-radius:100%;background:#EFF2EC;border:0;color:#102A33;font-size:22px;display:grid;place-items:center;transition:transform .2s}.service-cta:hover{transform:rotate(45deg)}.service-footer{display:flex;justify-content:space-between;align-items:center;padding-top:31px;gap:20px}.service-footer p{font-size:13px;color:#102A33}.link-underlined{color:#102A33;border:0;background:none;border-bottom:1px solid #102A33;padding:0 0 6px;font-size:13px;font-weight:750}
/* promise */
.promise{position:relative;overflow:hidden;background:#102A33;color:#FFFFFF;padding:122px 0 102px}.promise-watermark{position:absolute;right:-100px;top:-110px;width:650px;height:650px;opacity:.13;filter:brightness(0) invert(1);pointer-events:none}.promise-inner{position:relative}.promise-head{max-width:950px;margin-bottom:78px}.promise-head .eyebrow{margin-bottom:28px}.promise-head h2{font-size:clamp(49px,5.3vw,83px);font-weight:450;letter-spacing:-.066em;line-height:1.11;margin:0 0 27px}.promise-head h2 span{color:rgba(16,42,51,0.690)}.promise-head>p:last-child{font-size:16px;line-height:1.7;color:rgba(16,42,51,0.690);max-width:475px}.promise-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(186,197,201,0.314)}.promise-grid article{min-height:253px;padding:29px 29px 0 0;border-right:1px solid rgba(186,197,201,0.251);display:flex;flex-direction:column;position:relative}.promise-grid article+article{padding-left:28px}.promise-grid article:last-child{border-right:0}.promise-num{font-size:11px;letter-spacing:.13em;color:rgba(16,42,51,0.690)}.promise-symbol{position:absolute;right:27px;top:24px;font-size:22px;color:rgba(16,42,51,0.690);font-weight:300}.promise-grid h3{font-size:21px;letter-spacing:-.035em;font-weight:600;line-height:1.28;margin:auto 0 13px;max-width:220px}.promise-grid p{font-size:12px;line-height:1.68;color:rgba(16,42,51,0.690);margin:0;max-width:265px}
/* process */
.process{background:#FFFFFF}.process-grid{display:grid;grid-template-columns:.92fr 1fr;gap:9%;align-items:center}.process-image{position:relative;align-self:stretch;min-height:720px;max-height:900px;background:#EFF2EC}.process-image>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.photo-index{position:absolute;top:23px;left:26px;right:26px;color:#FFFFFF;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.16em;font-weight:750;text-shadow:0 1px 6px rgba(16,42,51,0.600)}.process-image-tag{position:absolute;right:-32px;bottom:58px;padding:20px 27px;display:flex;gap:24px;align-items:center;background:#BAC5C9;color:#102A33;box-shadow:0 12px 35px rgba(16,42,51,0.125)}.process-image-tag b{font-size:57px;letter-spacing:-.07em;font-weight:450}.process-image-tag span{font-size:14px;line-height:1.4;font-weight:650}.process-content .headline{font-size:clamp(39px,3.85vw,61px);max-width:670px}.process-lead{max-width:620px;font-size:15px;color:#102A33;line-height:1.8;margin:26px 0 29px}.process-steps{margin-bottom:31px}.process-step{display:grid;grid-template-columns:45px 1fr 18px;gap:13px;padding:20px 0;border-top:1px solid #EFF2EC}.process-step:last-child{border-bottom:1px solid #EFF2EC}.process-step>span:first-child{font-size:12px;letter-spacing:.11em;color:#86A550;font-weight:750;padding-top:3px}.process-step h3{font-size:17px;font-weight:700;letter-spacing:-.026em;margin:0 0 6px}.process-step p{font-size:13px;line-height:1.62;color:#102A33;max-width:500px;margin:0}.step-plus{font-size:19px;color:#86A550;font-weight:300}
/* projects */
.projects-top{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:35px}.projects-top>p{max-width:355px;color:#102A33;line-height:1.7;font-size:14px}.projects-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:19px}.project-feature{height:587px;position:relative;background:#102A33;overflow:hidden;color:#FFFFFF}.project-feature>img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.project-feature:hover>img{transform:scale(1.04)}.project-feature:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(16,42,51,0.812),transparent 60%)}.project-overlay{position:absolute;z-index:1;left:32px;right:32px;bottom:35px}.project-overlay>span{font-size:10px;letter-spacing:.2em;color:rgba(16,42,51,0.690)}.project-overlay h3{font-size:41px;line-height:1.08;letter-spacing:-.051em;font-weight:500;margin:14px 0 0}.project-round{position:absolute;right:0;bottom:0;height:53px;width:53px;border-radius:100%;background:#EFF2EC;border:0;color:#102A33;font-size:25px}.image-tag,.mini-label{position:absolute;top:18px;left:19px;z-index:1;background:rgba(255,255,255,0.863);padding:8px 10px;font-size:9px;letter-spacing:.12em;color:#102A33;font-weight:750}.project-stack{display:grid;grid-template-rows:1fr 1fr;gap:19px}.project-mini{position:relative;overflow:hidden;background:#86A550}.project-mini img{height:100%;width:100%;object-fit:cover;transition:transform .7s}.project-mini:hover img{transform:scale(1.05)}.project-mini:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(16,42,51,0.718),transparent 55%)}.project-mini-footer{position:absolute;bottom:19px;left:23px;right:22px;z-index:1;display:flex;align-items:center;justify-content:space-between;color:#FFFFFF}.project-mini-footer h3{font-size:22px;font-weight:550;letter-spacing:-.04em;margin:0}.project-mini-footer span{font-size:26px}.compare-block{margin-top:91px}.compare-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:25px}.compare-head .eyebrow{margin-bottom:9px}.compare-head h3{font-size:36px;font-weight:550;letter-spacing:-.05em;margin:0}.compare-head>p{font-size:12px;line-height:1.6;max-width:450px;color:#102A33}.compare-head>p strong{color:#102A33}.compare{position:relative;height:480px;overflow:hidden;background:#BAC5C9;user-select:none}.compare-after,.compare-before img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 49%;inset:0}.compare-before{position:absolute;inset:0;clip-path:inset(0 50% 0 0)}.compare-before img{filter:grayscale(.85) brightness(.64) sepia(.26)}.compare-divider{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#FFFFFF;transform:translateX(-50%);pointer-events:none;z-index:3}.compare-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:68px;height:68px;background:#EFF2EC;color:#102A33;box-shadow:0 5px 30px rgba(16,42,51,0.314);border-radius:100%;font-size:27px;letter-spacing:-.11em;font-weight:450}.compare input[type=range]{position:absolute;z-index:4;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize}.compare-chip{position:absolute;z-index:2;bottom:24px;background:#FFFFFF;padding:9px 12px;color:#102A33;font-size:10px;font-weight:800;letter-spacing:.1em}.compare-left{left:25px}.compare-right{right:25px}.compare-foot{display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:11px;color:#102A33;margin-top:21px}.compare-foot .text-arrow{font-size:12px;white-space:nowrap}
/* areas */
.areas{background:#FFFFFF}.areas-grid{display:grid;grid-template-columns:.94fr 1fr;gap:9%;align-items:center}.areas-visual{min-height:590px}.areas-graphic{height:590px;background:#EFF2EC;position:relative;overflow:hidden;color:#102A33}.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.667) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.667) 1px,transparent 1px);background-size:49px 49px;opacity:.5}.areas-graphic:before{content:"";position:absolute;top:-50px;left:15%;width:500px;height:740px;border-radius:48% 52% 60% 40%;background:#EFF2EC;transform:rotate(36deg)}.areas-graphic:after{content:"";position:absolute;top:135px;left:26%;width:275px;height:315px;border:2px solid #EFF2EC;border-radius:38% 53% 46% 35%;transform:rotate(-13deg)}.map-orbit{position:absolute;border-radius:100%;border:1px solid #86A550;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%)}.orbit-one{width:290px;height:290px}.orbit-two{width:460px;height:460px;border-style:dashed}.map-center{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);padding:14px 20px;background:var(--forest);color:#FFFFFF;font-weight:800;font-size:11px;letter-spacing:.13em;display:flex;align-items:center;gap:9px;box-shadow:0 10px 34px rgba(16,42,51,0.188)}.map-pin{height:9px;width:9px;border-radius:50%;background:#EFF2EC;border:2px solid #FFFFFF}.map-place{position:absolute;z-index:2;font-size:9px;letter-spacing:.16em;font-weight:800;color:#102A33}.map-place:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#86A550;margin-right:7px}.pin-a{top:68%;left:32%}.pin-b{top:62%;right:12%}.pin-c{top:30%;left:17%}.pin-d{top:26%;right:20%}.pin-e{top:81%;left:57%}.areas-graphic-bottom{position:absolute;bottom:18px;left:22px;right:22px;display:flex;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:.13em;z-index:2}.areas-content .headline{font-size:clamp(44px,4vw,63px)}.areas-content>p:not(.eyebrow){font-size:15px;line-height:1.8;color:#102A33;max-width:470px;margin:23px 0 32px}.areas-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 25px;margin:0 0 24px}.areas-list a{font-size:13px;font-weight:650;padding:13px 1px;border-bottom:1px solid #EFF2EC;transition:color .2s}.areas-list a:hover{color:#86A550}.areas-list .more-area{display:none}.areas-list.expanded .more-area{display:block}.area-toggle{border:0;padding:0;background:none}
/* trust */
.trust{background:#EFF2EC}.trust-grid{display:grid;grid-template-columns:1fr .9fr;gap:12%;align-items:center}.trust .headline{font-size:clamp(43px,4vw,64px)}.trust-intro{font-size:15px;line-height:1.8;color:#102A33;max-width:490px;margin:23px 0 44px}.trust-credentials{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:500px}.trust-numeric{font-size:65px;letter-spacing:-.075em;font-weight:550;line-height:1;color:#102A33}.trust-numeric span{font-size:24px;color:#86A550}.trust-credentials p{font-size:12px;line-height:1.65;color:#86A550;margin:13px 0 0}.trust-credentials small{display:block;color:#102A33}.reviews-frame{background:#FFFFFF;min-height:400px;box-shadow:0 20px 45px rgba(16,42,51,0.043);padding:32px;display:flex;flex-direction:column}.review-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #EFF2EC;padding-bottom:21px;gap:15px}.google-mark{font-size:11px;font-weight:800;letter-spacing:.12em;color:#86A550;display:flex;align-items:center;gap:8px}.google-mark span{display:grid;place-items:center;border-radius:100%;height:29px;width:29px;background:#EFF2EC;font-size:17px;color:#86A550;letter-spacing:0}.review-stars{font-size:16px;color:#EAC36F;letter-spacing:.17em}.reviews-empty{display:flex;flex-direction:column;align-items:start;justify-content:center;flex:1}.quote-mark{font-size:89px;line-height:.7;color:rgba(16,42,51,0.690);font-weight:350;margin:30px 0 10px}.reviews-empty h3{font-size:34px;font-weight:550;line-height:1.1;letter-spacing:-.055em;margin:0 0 17px}.reviews-empty p{font-size:12px;line-height:1.8;max-width:360px;color:#102A33;margin:0 0 22px}.review-footer{border-top:1px solid #EFF2EC;padding-top:19px;display:flex;justify-content:space-between;color:#102A33;font-size:10px;font-weight:750;letter-spacing:.1em}.review-footer span:last-child{font-size:20px;color:#102A33}
/* insights */
.insights-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:35px}.insights-heading>p{max-width:350px;font-size:13px;line-height:1.75;color:#102A33}.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.insight-card{background:#FFFFFF;min-width:0}.insight-media{height:239px;position:relative;overflow:hidden}.insight-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}.insight-card:hover .insight-media img{transform:scale(1.05)}.insight-media>span{position:absolute;top:15px;left:16px;background:rgba(255,255,255,0.918);padding:9px 11px;color:#86A550;font-size:9px;font-weight:800;letter-spacing:.14em}.insight-copy{padding:24px 25px 26px;min-height:275px;display:flex;flex-direction:column}.insight-meta{font-size:10px;letter-spacing:.13em;color:#86A550;font-weight:800;display:flex;justify-content:space-between;gap:10px}.insight-meta span{color:rgba(16,42,51,0.690)}.insight-copy h3{font-size:21px;line-height:1.32;letter-spacing:-.035em;font-weight:650;margin:20px 0 12px}.insight-copy p{font-size:12px;line-height:1.75;color:#102A33;margin:0 0 18px}.insight-link{margin-top:auto;padding-top:12px;font-size:10px;font-weight:800;letter-spacing:.13em;color:#86A550;border-top:1px solid #EFF2EC}
/* FAQ */
.faq-section{background:#FFFFFF}.faq-grid{display:grid;grid-template-columns:.75fr 1fr;gap:10%}.faq-grid .headline{font-size:clamp(40px,3.6vw,59px)}.faq-grid>div>p:not(.eyebrow){font-size:14px;color:#102A33;line-height:1.7;margin:20px 0 29px}.faq-list{border-top:1px solid #EFF2EC}.faq-list details{border-bottom:1px solid #EFF2EC}.faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;font-size:16px;font-weight:650;letter-spacing:-.02em;padding:23px 2px;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:23px;font-weight:400;color:#86A550;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{max-width:620px;margin:0 40px 22px 0;color:#102A33;font-size:13px;line-height:1.78}
/* CTA footer */
.final-cta{height:530px;position:relative;overflow:hidden;color:#FFFFFF;background:#102A33}.final-cta>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%}.cta-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,42,51,0.937) 0%,rgba(16,42,51,0.867) 32%,rgba(16,42,51,0.565) 65%,rgba(16,42,51,0.251) 100%)}.final-cta-inner{height:100%;position:relative;z-index:1;display:flex;flex-direction:column;align-items:start;justify-content:center}.final-cta .eyebrow{margin-bottom:24px}.final-cta h2{font-size:clamp(51px,5vw,81px);font-weight:500;letter-spacing:-.065em;line-height:1.06;margin:0 0 22px}.final-cta h2 span{color:rgba(16,42,51,0.690)}.final-cta p:not(.eyebrow){font-size:15px;line-height:1.7;color:rgba(16,42,51,0.690);max-width:490px;margin:0 0 25px}.cta-buttons{display:flex;gap:13px}.footer{background:#102A33;color:#FFFFFF;padding-top:77px}.footer-upper{display:grid;grid-template-columns:1.55fr .7fr .8fr 1fr;gap:6%;padding-bottom:77px}.footer-brand>img{width:214px;height:auto}.footer-brand p{font-size:26px;line-height:1.35;letter-spacing:-.04em;font-weight:450;margin:40px 0 22px;color:rgba(16,42,51,0.690)}.footer-gold-line{display:block;width:77px;height:2px;background:#DC8E4F}.footer-col{display:flex;flex-direction:column;align-items:start;gap:14px}.footer-col h3{font-size:11px;font-weight:800;letter-spacing:.15em;color:rgba(16,42,51,0.690);margin:4px 0 14px;text-transform:uppercase}.footer-col a{font-size:13px;color:rgba(16,42,51,0.690);line-height:1.3;transition:color .2s}.footer-col a:hover{color:rgba(16,42,51,0.690)}.footer-contact p{font-size:12px;color:rgba(16,42,51,0.690);line-height:1.7;margin:0}.footer-quote{margin-top:8px;background:none;border:0;border-bottom:1px solid #BAC5C9;padding:0 0 7px;color:rgba(16,42,51,0.690);font-weight:750;font-size:13px}.footer-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(186,197,201,0.165);min-height:79px;gap:20px;color:rgba(16,42,51,0.690);font-size:11px}.footer-bottom>div{display:flex;gap:23px}.footer-bottom a:hover{color:#FFFFFF}.floating-contact{position:fixed;bottom:25px;right:24px;z-index:55;display:flex;align-items:center;gap:11px;background:#BAC5C9;color:#102A33;border:1px solid #EFF2EC;padding:14px 17px;border-radius:100px;box-shadow:0 10px 38px rgba(16,42,51,0.212);font-size:12px;font-weight:750;transition:transform .2s}.floating-contact:hover{transform:translateY(-3px)}.floating-contact svg{height:20px;width:20px}
/* form dialog */
.dialog-shell{position:fixed;inset:0;z-index:250;visibility:hidden;pointer-events:none;opacity:0;transition:opacity .22s,visibility .22s}.dialog-shell.open{visibility:visible;pointer-events:auto;opacity:1}.dialog-backdrop{position:absolute;inset:0;background:rgba(16,42,51,0.800);backdrop-filter:blur(7px)}.quote-panel{position:absolute;right:0;top:0;bottom:0;overflow-y:auto;width:min(535px,100%);background:#EFF2EC;color:#102A33;padding:51px 49px;transform:translateX(20px);transition:transform .25s var(--ease)}.dialog-shell.open .quote-panel{transform:translateX(0)}.dialog-close{position:absolute;right:26px;top:25px;background:none;border:1px solid #BAC5C9;border-radius:100%;width:38px;height:38px;font-size:26px;color:#102A33;display:grid;place-items:center}.quote-panel-head>img{width:162px;height:auto;margin-bottom:48px}.quote-panel-head>span:not(.quote-step-caption){font-size:11px;letter-spacing:.19em;font-weight:800;color:#86A550}.quote-panel-head h2{font-size:45px;letter-spacing:-.065em;line-height:1.08;margin:14px 0 18px;font-weight:550}.quote-panel-head p{font-size:13px;color:#102A33;line-height:1.7;margin:0 0 28px}.quote-progress{height:3px;background:#EFF2EC;overflow:hidden;margin-bottom:13px}.quote-progress span{display:block;width:33.3%;height:100%;background:#86A550;transition:width .2s}.quote-step-caption{display:block;font-size:10px;letter-spacing:.13em;font-weight:800;color:#86A550;margin-bottom:30px}.form-step{display:flex;flex-direction:column;gap:18px}.form-step label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:750;color:#102A33}.form-step label em{font-style:normal;color:#DC8E4F}.form-step input,.form-step textarea,.form-step select{appearance:none;border:1px solid #BAC5C9;background:#FFFFFF;color:#102A33;border-radius:3px;min-height:49px;padding:12px 15px;font-size:13px;width:100%;outline:none;transition:border-color .2s}.form-step input:focus,.form-step textarea:focus,.form-step select:focus{border-color:#86A550;box-shadow:0 0 0 3px rgba(239,242,236,0.176)}.form-step textarea{min-height:123px;resize:vertical}.form-note{font-size:12px;color:#102A33;margin-top:8px;min-height:17px}.form-buttons{margin-top:10px;display:flex;align-items:center;gap:11px;justify-content:space-between}.form-buttons .btn{flex:1}.form-buttons .btn-back{flex:0 0 auto}.form-buttons .btn-next{margin-left:auto}.quote-demo-note{margin-top:20px;font-size:11px;color:#102A33;line-height:1.5}.quote-complete{padding-top:35px}.complete-mark{width:58px;height:58px;border-radius:100%;background:#BAC5C9;display:grid;place-items:center;color:#102A33;font-size:28px;margin-bottom:25px}.quote-complete h3{font-size:32px;letter-spacing:-.04em;margin:0 0 14px}.quote-complete p{font-size:14px;color:#86A550;line-height:1.75;margin-bottom:25px}.toast{position:fixed;left:50%;bottom:25px;z-index:300;transform:translate(-50%,10px);opacity:0;pointer-events:none;background:#102A33;color:#FFFFFF;padding:13px 20px;border-radius:4px;box-shadow:0 7px 30px rgba(16,42,51,0.314);font-size:12px;transition:opacity .3s,transform .3s;max-width:80vw;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}
/* reveal with JS enhancement only */
.js [data-reveal]{opacity:0;transform:translateY(25px);transition:opacity .85s var(--ease),transform .85s var(--ease)}.js [data-reveal].revealed{opacity:1;transform:translateY(0)}
@media(min-width:1680px){.services-track{padding-left:calc((100vw - 1280px)/2)}}
@media(max-width:1380px){.site-width{width:min(1280px,calc(100% - 76px))}.desktop-nav{gap:17px}.nav-inner{gap:18px}.contact-link{display:none}.hero-copy{max-width:800px}.hero h1{font-size:clamp(57px,5.6vw,78px)}.hero-proof-divider{margin-inline:0}.services-track{padding-left:38px}.process-grid{gap:6%}.footer-upper{gap:4%}}
@media(max-width:1100px){.site-width{width:calc(100% - 62px)}.desktop-nav{gap:12px}.nav-link{font-size:11.8px}.brand img{width:166px}.nav-quote{font-size:11px}.hero{min-height:660px;height:740px}.hero h1{font-size:66px}.hero-side{display:none}.hero-bottom{gap:17px}.hero-proof{gap:8px}.hero-proof .proof-icon{width:37px;height:37px}.hero-proof strong{font-size:11px}.hero-proof span{font-size:10px}.hero-scroll{display:none}.intro-grid{gap:44px}.process-grid{gap:5%}.process-image{min-height:650px}.process-content .headline{font-size:42px}.promise-grid article{padding-right:18px}.promise-grid article+article{padding-left:18px}.promise-grid h3{font-size:18px}.areas-grid{gap:5%}.areas-visual,.areas-graphic{min-height:530px;height:530px}.footer-upper{grid-template-columns:1.1fr .75fr .8fr 1.15fr}}
@media(max-width:900px){.site-width{width:calc(100% - 44px)}.topbar-right{gap:12px}.header{height:77px}.desktop-nav{display:none}.brand img{width:179px}.nav-actions{gap:14px}.contact-link{display:flex}.contact-link span{display:none}.nav-quote{min-height:42px}.menu-toggle{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;width:43px;height:43px;background:#EFF2EC;border:0;border-radius:2px}.menu-toggle span{width:20px;height:1.5px;background:#102A33;transition:transform .2s,opacity .2s}.menu-toggle.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-nav{display:flex;position:absolute;top:100%;left:0;right:0;background:#FFFFFF;box-shadow:0 24px 35px rgba(16,42,51,0.114);padding:10px 25px 27px;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .2s,visibility .2s,transform .2s}.mobile-nav.open{opacity:1;visibility:visible;transform:translateY(0)}.mobile-nav>a{font-size:16px;font-weight:600;padding:15px 2px;border-bottom:1px solid #EFF2EC}.mobile-nav>button{background:#102A33;border:0;color:#FFFFFF;padding:19px 22px;font-size:14px;text-align:left;margin-top:16px;display:flex;justify-content:space-between}.hero{height:750px}.hero-copy{max-width:720px}.hero h1{font-size:clamp(57px,7.3vw,72px)}.hero-bottom{gap:14px}.hero-proof-divider{display:none}.hero-proof{flex:1}.hero-proof .proof-icon{display:none}.hero-proof strong{font-size:10.5px}.hero-proof span{font-size:9.5px}.marquee-inner span{font-size:9px}.intro-grid{grid-template-columns:1fr;gap:35px}.intro-right{max-width:620px}.section-space{padding:95px 0}.service-card{flex-basis:355px;height:485px}.services-track{padding-left:22px;padding-right:22px}.promise-grid{grid-template-columns:repeat(2,1fr)}.promise-grid article{min-height:230px;border-bottom:1px solid rgba(186,197,201,0.251)}.promise-grid article:nth-child(2){border-right:0}.promise-grid article:nth-child(3){padding-left:0;border-bottom:0}.promise-grid article:nth-child(4){border-bottom:0}.process-grid{grid-template-columns:1fr;gap:65px}.process-image{min-height:560px;max-height:610px}.process-image-tag{right:20px}.process-content .headline{max-width:700px}.projects-top{align-items:start;flex-direction:column;gap:5px}.projects-top>p{max-width:560px}.project-feature{height:535px}.project-overlay h3{font-size:32px}.project-mini-footer h3{font-size:19px}.areas-grid{grid-template-columns:1fr;gap:60px}.areas-visual{min-height:470px}.areas-graphic{height:470px;min-height:470px}.areas-content .headline{font-size:60px}.trust-grid{gap:6%}.insight-grid{gap:12px}.insight-media{height:200px}.insight-copy{padding:21px 17px}.insight-copy h3{font-size:18px}.footer-upper{grid-template-columns:repeat(3,1fr);row-gap:47px}.footer-brand{grid-column:span 3}.footer-brand p{margin:22px 0}.footer-bottom{flex-wrap:wrap;padding:22px 0}}
@media(max-width:640px){.site-width{width:calc(100% - 36px)}html{scroll-padding-top:72px}.topbar{height:30px}.topbar-inner{font-size:10px}.topbar-right>span{display:none}.topbar-divider{display:none}.topbar-region{font-size:9px}.topbar-right a{font-size:10px}.header{height:69px}.brand img{width:152px}.nav-quote{display:none}.contact-link svg{width:19px;height:19px}.menu-toggle{height:39px;width:39px}.hero{height:760px;min-height:710px}.hero-shade{background:linear-gradient(90deg,rgba(16,42,51,0.910),rgba(16,42,51,0.569)),linear-gradient(0deg,rgba(16,42,51,0.722),transparent 40%)}.hero-bg{object-position:55% center}.hero-inner{align-items:start;padding-top:100px}.hero-copy{padding:0}.hero .eyebrow{font-size:9px;letter-spacing:.15em;margin-bottom:23px}.hero h1{font-size:clamp(49px,11.6vw,66px);line-height:1.09;max-width:500px;margin-bottom:22px;letter-spacing:-.07em}.hero-desc{font-size:13px;max-width:420px;line-height:1.75}.hero-actions{gap:17px;align-items:start;flex-direction:column}.hero-actions .btn{min-height:53px}.hero-actions .text-arrow{font-size:13px}.hero-bottom{min-height:112px;align-items:center;gap:8px}.hero-proof{flex:1;min-width:0}.hero-proof strong{font-size:10px;line-height:1.25}.hero-proof span{display:none}.hero-proof:first-child{flex:1.06}.marquee-inner{overflow-x:auto;justify-content:start;gap:32px;scrollbar-width:none}.marquee-inner span{font-size:10px}.section-space{padding:81px 0}.headline,.process-content .headline,.areas-content .headline{font-size:clamp(39px,9.2vw,52px)}.eyebrow{font-size:9.5px;letter-spacing:.19em;margin-bottom:24px}.intro-grid{gap:30px}.intro-right{padding-left:19px}.intro-right p{font-size:14px}.services{padding-bottom:72px}.services-head{display:block;margin-bottom:24px}.section-sub{font-size:13px;line-height:1.6}.carousel-actions{margin-top:25px;justify-content:start}.services-track{padding-inline:18px;gap:12px}.service-card{flex-basis:min(84vw,350px);height:478px}.service-card-bottom{left:20px;right:18px}.service-card h3{font-size:28px}.service-footer{align-items:start;flex-direction:column;padding-top:20px}.service-footer p{margin:0}.promise{padding:84px 0 68px}.promise-head{margin-bottom:38px}.promise-head h2{font-size:clamp(45px,10.1vw,63px)}.promise-head>p:last-child{font-size:14px}.promise-grid{grid-template-columns:1fr}.promise-grid article,.promise-grid article+article,.promise-grid article:nth-child(3){border-right:0;border-bottom:1px solid rgba(186,197,201,0.314);padding:22px 0;min-height:0}.promise-grid article:last-child{border-bottom:0}.promise-num{font-size:10px}.promise-symbol{right:4px}.promise-grid h3{margin:24px 0 9px;max-width:none;font-size:21px}.promise-grid p{max-width:390px}.process-grid{gap:46px}.process-image{min-height:450px;max-height:485px}.process-image-tag{bottom:28px;padding:13px 16px;gap:13px}.process-image-tag b{font-size:40px}.process-image-tag span{font-size:12px}.process-lead{font-size:14px}.process-step{grid-template-columns:32px 1fr 14px;gap:10px}.process-step h3{font-size:16px}.process-step p{font-size:12px}.projects-top{margin-bottom:22px}.projects-grid{display:flex;flex-direction:column;gap:13px}.project-feature{height:450px}.project-overlay{left:20px;right:20px;bottom:26px}.project-overlay h3{font-size:31px}.project-stack{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:230px;gap:12px}.project-mini-footer{left:13px;right:13px;bottom:13px}.project-mini-footer h3{font-size:17px}.mini-label{font-size:8px;top:9px;left:8px;padding:6px}.compare-block{margin-top:65px}.compare-head{display:block}.compare-head h3{font-size:30px}.compare-head>p{font-size:11px}.compare{height:320px}.compare-chip{bottom:10px;font-size:8px;padding:7px}.compare-left{left:9px}.compare-right{right:9px}.compare-handle{width:50px;height:50px;font-size:21px}.compare-foot{display:block;font-size:11px}.compare-foot .text-arrow{margin-top:15px}.areas-grid{gap:45px}.areas-visual,.areas-graphic{height:370px;min-height:370px}.map-orbit.orbit-one{width:210px;height:210px}.map-orbit.orbit-two{width:325px;height:325px}.areas-graphic:before{left:4%;width:350px;height:480px}.map-place{font-size:8px}.pin-c{left:8%}.pin-b{right:6%}.pin-d{right:10%}.areas-graphic-bottom{font-size:7.5px;left:13px;right:13px}.areas-list{gap:0 18px}.areas-list a{font-size:12px}.trust-grid{grid-template-columns:1fr;gap:45px}.trust-intro{margin-bottom:27px}.trust-numeric{font-size:58px}.trust-credentials p{font-size:11px}.reviews-frame{min-height:340px;padding:22px}.reviews-empty h3{font-size:29px}.insights-heading{display:block}.insights-heading>p{max-width:450px;margin-top:20px}.insight-grid{grid-template-columns:1fr;gap:17px}.insight-media{height:250px}.insight-copy{min-height:0;padding:22px}.insight-copy h3{font-size:23px}.faq-grid{grid-template-columns:1fr;gap:39px}.faq-list summary{font-size:14px}.final-cta{height:540px}.final-cta-inner{align-items:start}.final-cta h2{font-size:clamp(49px,10vw,66px)}.final-cta p:not(.eyebrow){font-size:13px}.cta-buttons{flex-direction:column;gap:11px;align-items:start}.cta-buttons .btn{min-width:225px}.footer{padding-top:61px}.footer-upper{grid-template-columns:1fr 1fr;gap:37px 15px;padding-bottom:45px}.footer-brand{grid-column:span 2}.footer-brand>img{width:187px}.footer-brand p{font-size:24px}.footer-col{gap:13px}.footer-col h3{font-size:11px;margin-bottom:8px}.footer-col a{font-size:12px}.footer-contact{grid-column:span 2}.footer-bottom{font-size:10px;gap:15px}.footer-bottom>span:nth-child(2){display:none}.footer-bottom>div{gap:18px}.floating-contact{bottom:13px;right:11px;padding:11px;border-radius:100%;height:47px;width:47px;justify-content:center}.floating-contact span{display:none}.floating-contact svg{width:20px;height:20px}.quote-panel{padding:39px 25px}.quote-panel-head>img{width:150px;margin-bottom:40px}.quote-panel-head h2{font-size:39px}}
@media(max-width:380px){.hero h1{font-size:47px}.topbar-right a{font-size:9px}.hero-bottom{gap:2px}.hero-proof strong{font-size:9px}.final-cta h2{font-size:44px}.project-mini-footer h3{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.js [data-reveal]{opacity:1;transform:none}}

/* Keep the floating call action out of the opening hero composition. */
.floating-contact{opacity:0;pointer-events:none;transform:translateY(14px)}.floating-contact.show{opacity:1;pointer-events:auto;transform:translateY(0)}.floating-contact.show:hover{transform:translateY(-3px)}

.floating-whatsapp{position:fixed;bottom:84px;right:24px;z-index:55;display:flex;align-items:center;gap:10px;background:#FFFFFF;color:#102A33;border:1px solid #EFF2EC;border-radius:100px;padding:11px 15px;box-shadow:0 9px 26px rgba(16,42,51,0.137);font-size:12px;font-weight:750;opacity:0;pointer-events:none;transform:translateY(14px);transition:opacity .2s,transform .2s;cursor:pointer}.floating-whatsapp.show{opacity:1;pointer-events:auto;transform:translateY(0)}.floating-whatsapp.show:hover{transform:translateY(-3px)}.floating-whatsapp svg{width:20px;height:20px}@media(max-width:640px){.floating-whatsapp{right:11px;bottom:68px;width:47px;height:47px;padding:12px;justify-content:center}.floating-whatsapp span{display:none}}


/* ====================================================================
   GREEN VISTA WEBSITE STYLE CONTRACT, November 2026
   1280px content canvas, 18px general reading text, DM Sans throughout.
   Brand-approved colours only: green, navy, white, soft grey,
   warm orange, gold, earth brown, mist grey + transparent tints.
   ==================================================================== */
html{scroll-padding-top:98px}
body{font-family:var(--font);font-size:18px;line-height:1.65;color:var(--gv-navy);background:var(--gv-white)}
.site-width{width:min(1280px,calc(100% - 80px));margin-inline:auto}
.section-space{padding:114px 0}
.headline{color:var(--gv-navy);font-weight:650;letter-spacing:-.052em}
.headline span{color:rgba(16,42,51,.62);font-weight:450}
.eyebrow.ink{color:var(--gv-green)}
.eyebrow.light{color:var(--gv-white)}
.tiny-bar,.kicker-line{background:var(--gv-orange)}
.text-arrow.dark{color:var(--gv-navy)}
.text-arrow.light{color:var(--gv-white)}
.btn{font-size:15px;min-height:56px;padding-inline:23px 12px;font-weight:700}
.btn-dark{background:var(--gv-navy);color:var(--gv-white)}
.btn-dark:hover{background:var(--gv-green);color:var(--gv-navy)}
.btn-accent{background:var(--gv-green);color:var(--gv-navy)}
.btn-accent:hover{background:var(--gv-gold);color:var(--gv-navy)}
.btn-outline{color:var(--gv-navy);border-color:rgba(16,42,51,.35)}
.btn-outline:hover{background:var(--gv-navy);color:var(--gv-white);border-color:var(--gv-navy)}
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--gv-orange);outline-offset:3px}

/* Navigation: approved navy, with brand-green micro-accent only. */
.topbar{background:var(--gv-navy);color:var(--gv-white)}
.topbar-right a{color:var(--gv-white)}
.topbar-right a>span{color:var(--gv-gold)}
.mini-dot{background:var(--gv-green)}
.header{background:var(--gv-white)}
.nav-link{font-size:14px;color:var(--gv-navy)}
.nav-link:hover,.nav-link.active{color:var(--gv-navy)}
.nav-link.active:after{background:var(--gv-green)}
.contact-link{color:var(--gv-navy);font-size:14px}
.nav-quote{font-size:13px;background:var(--gv-navy);color:var(--gv-white)}
.mega-menu{border-top:3px solid var(--gv-green);background:var(--gv-white)}
.mega-link span{font-size:15px;color:var(--gv-navy)}
.mega-link small{font-size:12px;color:rgba(16,42,51,.67)}
.mega-link:hover{background:var(--gv-soft-grey)}
.mega-bottom a{color:var(--gv-navy)}

/* Hero uses navy as a transparent shade rather than introducing another dark green. */
.hero{background:var(--gv-navy)}
.hero-shade{background:linear-gradient(90deg,rgba(16,42,51,.96) 0%,rgba(16,42,51,.80) 29%,rgba(16,42,51,.36) 65%,rgba(16,42,51,.07) 100%),linear-gradient(0deg,rgba(16,42,51,.52),transparent 33%)}
.hero-copy{max-width:805px;padding-bottom:48px}
.hero h1{font-size:clamp(54px,5vw,78px);line-height:1.08;color:var(--gv-white)}
.hero h1 span:not(.hero-stop){color:var(--gv-white)}
.hero-stop{color:var(--gv-gold)}
.hero-desc{font-size:18px;line-height:1.67;max-width:585px;color:var(--gv-white)}
.hero-kicker{color:var(--gv-white)}
.hero .btn-accent{background:var(--gv-green);color:var(--gv-navy)}
.hero-bottom{border-top-color:rgba(255,255,255,.24)}
.hero-proof strong{font-size:14px;color:var(--gv-white)}
.hero-proof span{font-size:12px;color:rgba(255,255,255,.85)}
.hero-proof .proof-icon{border-color:rgba(255,255,255,.43);color:var(--gv-white)}
.hero .text-arrow{font-size:15px}
.location-marquee{background:var(--gv-soft-grey);color:var(--gv-navy)}
.marquee-inner span{color:var(--gv-navy)}
.marquee-inner i{color:var(--gv-green)}

/* Reading typography, including the service cards, area links and form. */
.intro-right p,.section-sub,.process-lead,.process-step p,
.areas-content>p:not(.eyebrow),.trust-intro,.insights-heading>p,
.insight-copy p,.faq-grid>div>p:not(.eyebrow),.faq-list details p,
.quote-panel-head p,.quote-complete p{font-size:18px;line-height:1.7;color:rgba(16,42,51,.78)}
.intro-right p{max-width:405px}
.process-step p{max-width:540px}
.process-step h3{font-size:20px}
.projects-top>p{font-size:18px;line-height:1.7;color:rgba(16,42,51,.76)}
.areas-list a{font-size:16px;color:var(--gv-navy)}
.trust-credentials p{font-size:16px;line-height:1.62;color:rgba(16,42,51,.75)}
.trust-credentials small{color:rgba(16,42,51,.68)}
.trust-numeric{color:var(--gv-navy)}
.trust-numeric span{color:var(--gv-green)}
.insight-copy h3{font-size:23px;line-height:1.28}
.insight-copy p{line-height:1.6}
.insight-link{color:var(--gv-navy);border-top-color:rgba(16,42,51,.16)}
.faq-list summary{font-size:18px}
.faq-list summary span{color:var(--gv-green)}
.services{padding-bottom:100px}
.services-track{padding-left:max(40px,calc((100vw - 1280px)/2));padding-right:40px}
.service-card{flex:0 0 clamp(285px,28vw,400px);height:515px;background:var(--gv-navy)}
.service-tint{background:linear-gradient(180deg,rgba(16,42,51,.20) 0%,transparent 37%,rgba(16,42,51,.90) 100%)}
.service-card-bottom p{font-size:16px;line-height:1.53}
.service-card-top{font-size:12px}
.cream,.trust,.section-soft{background:var(--gv-soft-grey)}
.promise-grid p{font-size:15px;color:rgba(255,255,255,.81);line-height:1.68}
.promise-grid h3{font-size:22px;color:var(--gv-white)}
.promise-grid .promise-num,.promise-symbol{color:var(--gv-gold)}
.process-image,.areas-graphic{background:var(--gv-soft-grey)}
.trust .headline{color:var(--gv-navy)}
.insights{background:var(--gv-soft-grey)}
.insight-card{background:var(--gv-white)}
.insight-media>span{color:var(--gv-navy);background:var(--gv-soft-grey)}
.final-cta{background:var(--gv-navy)}
.cta-overlay{background:linear-gradient(90deg,rgba(16,42,51,.95),rgba(16,42,51,.82) 36%,rgba(16,42,51,.40) 68%,rgba(16,42,51,.08))}
.final-cta-inner>p:not(.eyebrow){font-size:18px;line-height:1.65;color:var(--gv-white);max-width:620px}
.footer{background:var(--gv-navy);color:var(--gv-white)}
.footer-col a{font-size:15px;color:rgba(255,255,255,.84)}
.footer-col h3{font-size:12px;color:var(--gv-gold)}
.footer-contact p{font-size:15px;color:rgba(255,255,255,.77)}
.footer-bottom{font-size:12px;color:rgba(255,255,255,.72)}
.footer-brand p{color:var(--gv-white)}
.footer-gold-line{background:var(--gv-orange)}
.footer-quote{color:var(--gv-white);border-bottom-color:var(--gv-gold);font-size:15px}
.quote-panel{background:var(--gv-soft-grey);color:var(--gv-navy)}
.quote-panel-head h2{color:var(--gv-navy)}
.quote-panel-head p{font-size:16px}
.form-step label{font-size:15px;color:var(--gv-navy)}
.form-step input,.form-step textarea,.form-step select{font-size:17px;background:var(--gv-white);color:var(--gv-navy)}
.quote-demo-note{font-size:12px;color:rgba(16,42,51,.65)}
.floating-whatsapp{background:var(--gv-white);color:var(--gv-navy);border-color:var(--gv-mist-grey)}

@media(max-width:1380px){
 .site-width{width:min(1280px,calc(100% - 72px))}
 .services-track{padding-left:36px;padding-right:36px}
 .hero h1{font-size:clamp(52px,5.1vw,75px)}
}
@media(max-width:1100px){
 .site-width{width:calc(100% - 60px)}
 .hero h1{font-size:clamp(48px,6.2vw,66px)}
 .nav-link{font-size:13px}
 .nav-quote{font-size:12px}
 .process-lead,.areas-content>p:not(.eyebrow),.trust-intro{font-size:18px}
}
@media(max-width:900px){
 .site-width{width:calc(100% - 44px)}
 .hero{height:750px;min-height:710px}
 .hero h1{font-size:clamp(51px,7.5vw,67px)}
 .hero-desc{font-size:18px}
 .services-track{padding-left:22px;padding-right:22px}
 .mobile-nav>a{font-size:17px}
}
@media(max-width:640px){
 .site-width{width:calc(100% - 36px)}
 .section-space{padding:84px 0}
 .hero{height:790px;min-height:740px}
 .hero-inner{padding-top:87px}
 .hero-shade{background:linear-gradient(90deg,rgba(16,42,51,.93),rgba(16,42,51,.47)),linear-gradient(0deg,rgba(16,42,51,.64),transparent 44%)}
 .hero h1{font-size:clamp(45px,11vw,61px);line-height:1.08;max-width:500px}
 .hero-desc{font-size:18px;line-height:1.58;max-width:390px;margin-bottom:28px}
 .hero-actions .btn{min-height:55px}
 .hero-actions .text-arrow{font-size:15px}
 .hero-proof strong{font-size:11px}
 .hero-proof span{display:none}
 .intro-right p,.section-sub,.process-lead,.process-step p,
 .areas-content>p:not(.eyebrow),.trust-intro,.insights-heading>p,
 .insight-copy p,.faq-grid>div>p:not(.eyebrow),.faq-list details p,
 .quote-panel-head p,.quote-complete p,.projects-top>p{font-size:18px;line-height:1.6}
 .service-card{flex-basis:min(82vw,380px);height:500px}
 .service-card-bottom p{font-size:16px}
 .process-step h3{font-size:20px}
 .areas-list a{font-size:15px}
 .trust-credentials p{font-size:15px}
 .insight-copy h3{font-size:23px}
 .faq-list summary{font-size:18px;line-height:1.4}
 .footer-col a{font-size:15px}
 .footer-contact p{font-size:15px}
 .quote-panel-head p{font-size:16px}
 .topbar{background:var(--gv-navy)}
}
@media(max-width:380px){
 .hero h1{font-size:43px}
 .hero-desc{font-size:18px}
}

/* High-contrast text on photography, reviewed against brand navy shade. */
.service-card-top,.service-card-top span,.service-card-bottom,
.service-card .service-overline,.service-card h3,.service-card p{color:var(--gv-white)}
.service-card .service-overline{font-size:11px;letter-spacing:.13em}
.service-card p{font-size:18px;line-height:1.48;max-width:310px}
.service-card .service-cta{color:var(--gv-navy);background:var(--gv-soft-grey)}
.service-footer p{font-size:18px;color:rgba(16,42,51,.78)}
.promise-grid p{font-size:18px;line-height:1.55}
.promise-grid article{min-height:280px;padding-bottom:9px}
.promise-grid h3{font-size:22px}
@media(max-width:640px){
 .service-card p{font-size:18px;line-height:1.45}
 .promise-grid p{font-size:18px}
 .service-footer p{font-size:18px}
}


/* ===============================================================
   Homepage refinement v3 | Client-approved brand and layout only
   - True inline SVG icons for CTA and directional button controls
   - No mixed grey/dark display headings on light backgrounds
   - Three projects in one aligned row on desktop
   - Hero remains one static image; old pagination removed from DOM
   =============================================================== */
.svg-icon{display:inline-block;width:18px;height:18px;flex:none;stroke:currentColor;vertical-align:middle;overflow:visible;pointer-events:none}
.btn-icon .svg-icon{width:16px;height:16px}
.nav-quote .btn-icon .svg-icon{width:13px;height:13px}
.circle-arrow .svg-icon,.service-cta .svg-icon,.project-round .svg-icon{width:20px;height:20px}
.project-round{display:grid;place-items:center}
.text-arrow>span{display:inline-flex;align-items:center;justify-content:center}
.text-arrow>span .svg-icon{width:17px;height:17px}
.project-mini-footer>span .svg-icon{width:21px;height:21px}
.link-underlined,.footer-quote{display:inline-flex;align-items:center;gap:12px}
.link-underlined>.svg-icon,.footer-quote>.svg-icon{width:15px;height:15px}
.mobile-nav [data-open-quote]{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mobile-nav [data-open-quote]>.svg-icon{width:18px;height:18px}
.btn-back{gap:9px;justify-content:flex-start}
.btn-back>.svg-icon{width:16px;height:16px}
.dialog-close{display:grid;place-items:center}
.dialog-close>.svg-icon{width:21px;height:21px}
.scroll-arrow{display:grid;place-items:center}
.scroll-arrow>.svg-icon{width:15px;height:15px}
.hero-side{gap:0} /* hero only uses a decorative vertical kicker; no slide count */

/* Headline rule: a single consistent ink colour per background.
   The client-approved #102A33 on light surfaces, pure white on dark/photo. */
.headline,.headline span,
.intro .headline,.intro .headline span,
.services .headline,.services .headline span,
.process .headline,.process .headline span,
.projects .headline,.projects .headline span,
.areas .headline,.areas .headline span,
.trust .headline,.trust .headline span,
.insights .headline,.insights .headline span,
.faq-section .headline,.faq-section .headline span,
.projects-top h2,.projects-top h2 span,
.compare-head h3,.insight-card h3,.process-step h3,
.quote-panel-head h2,.quote-complete h3 {color:#102A33}
.promise-head h2,.promise-head h2 span,.promise-grid h3,
.final-cta h2,.final-cta h2 span,.hero h1,.hero h1 span:not(.hero-stop),
.project-overlay h3,.project-mini-footer h3 {color:#FFFFFF}
.hero .hero-stop{color:#EAC36F}

/* Equal-width editorial project row: three feature cards on one line. */
@media(min-width:820px){
  .projects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:stretch}
  .projects-grid>.project-stack{display:contents}
  .projects-grid>.project-feature,.projects-grid .project-mini{height:438px;min-width:0;width:100%}
  .projects-grid .project-mini img{width:100%;height:100%;object-fit:cover}
  .projects-grid .project-overlay{left:24px;right:24px;bottom:26px}
  .projects-grid .project-overlay h3{font-size:clamp(25px,2.45vw,36px);max-width:295px;padding-right:24px}
  .projects-grid .project-mini-footer{left:22px;right:22px;bottom:24px}
  .projects-grid .project-mini-footer h3{font-size:clamp(19px,1.66vw,24px);max-width:230px;line-height:1.15}
}
@media(min-width:820px) and (max-width:1050px){
 .projects-grid{gap:12px}
 .projects-grid>.project-feature,.projects-grid .project-mini{height:365px}
 .projects-grid .project-overlay{left:17px;right:17px;bottom:19px}
 .projects-grid .project-overlay h3{font-size:25px;max-width:250px}
 .projects-grid .project-mini-footer{left:15px;right:15px;bottom:17px}
 .projects-grid .project-mini-footer h3{font-size:19px}
}
@media(max-width:819px){
  /* Retain original mobile stack + paired compact cards. */
  .projects-grid{display:flex;flex-direction:column}
  .projects-grid>.project-stack{display:grid}
}

/* Preserve sensible image-card heights at intermediate viewport widths. */
@media(max-width:819px){
 .projects-grid>.project-stack{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;gap:12px}
 .projects-grid .project-mini{height:clamp(230px,30vw,260px)}
}
