@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#081D33;--deep:#07131F;--orange:#F04A23;--off:#F4F1EA;--white:#fff;--gray:#73777A;--text:#0b1724;--pad:clamp(24px,5vw,80px)}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;font-family:Manrope,Arial,sans-serif;background:var(--off);color:var(--text);overflow-x:hidden}a{color:inherit;text-decoration:none}img,video{max-width:100%;display:block}.container{width:min(1480px,100%);margin:auto;padding-inline:var(--pad)}
body.menu-open{overflow:hidden}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;text-transform:uppercase}.display{font-size:clamp(46px,6vw,100px);line-height:.9;letter-spacing:-.055em;margin:.25em 0}.copy{font-size:clamp(17px,1.35vw,21px);line-height:1.6;max-width:760px}.btn{display:inline-flex;align-items:center;gap:16px;padding:17px 24px;border:1px solid currentColor;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;transition:.35s}.btn.primary{background:var(--orange);border-color:var(--orange);color:#fff}.btn:hover{transform:translateY(-2px)}.btn span{transition:.3s}.btn:hover span{transform:translateX(5px)}
.site-mark{position:fixed;z-index:100;left:28px;top:24px;color:white;font-weight:800;letter-spacing:-.04em;font-size:20px;mix-blend-mode:difference}.top-actions{position:fixed;z-index:100;top:18px;right:26px;display:flex;gap:10px;align-items:center;color:#fff}.top-actions .phone{font-size:13px;padding:14px 16px;background:rgba(7,19,31,.55);backdrop-filter:blur(10px)}.side-nav{position:fixed;z-index:99;right:28px;top:50%;transform:translateY(-50%);display:grid;gap:13px;color:#fff;text-align:right}.side-nav a{font-size:11px;font-weight:700;letter-spacing:.12em;opacity:.45;position:relative;padding-right:20px;transition:.3s}.side-nav a:after{content:'';position:absolute;right:0;top:50%;height:6px;width:6px;border-radius:50%;background:var(--orange);transform:scale(0);transition:.3s}.side-nav a:hover,.side-nav a.active{opacity:1}.side-nav a.active:after{transform:scale(1)}
.mobile-header,.mobile-menu{display:none}.hero{min-height:100vh;position:relative;color:#fff;display:flex;align-items:end;overflow:hidden;background:#0c1c2c}.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9)}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,19,31,.82),rgba(7,19,31,.26) 60%,rgba(7,19,31,.45))}.hero-content{position:relative;z-index:2;padding:150px var(--pad) 70px;width:min(1500px,100%);margin:auto}.hero h1{font-size:clamp(66px,9vw,150px);line-height:.78;letter-spacing:-.075em;margin:22px 0 30px;max-width:1050px}.hero .hero-bottom{display:flex;justify-content:space-between;gap:40px;align-items:end;max-width:1150px}.hero .hero-bottom .copy{max-width:650px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.trust-line{margin-top:24px;font-size:13px;letter-spacing:.05em;opacity:.85}
section{position:relative}.intro{padding:140px 0 120px;background:var(--off)}.intro-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:6vw;align-items:center}.intro-art{position:relative;min-height:620px}.intro-art img{width:86%;height:620px;object-fit:cover;margin-left:auto}.intro-art:after{content:'';position:absolute;width:220px;height:220px;border:26px solid var(--orange);border-radius:50%;left:-30px;bottom:40px;mix-blend-mode:multiply}
.metrics{padding:90px 0 120px}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #b9b5ad}.metric{padding:32px 20px 20px 0;border-right:1px solid #b9b5ad}.metric:last-child{border-right:0}.metric strong{display:block;font-size:clamp(52px,6vw,96px);letter-spacing:-.06em}.metric span{font-size:12px;letter-spacing:.14em;font-weight:800}
.horizontal-shell{background:var(--deep);color:#fff;overflow:hidden}.services-track{display:flex;width:500vw}.service-panel{width:100vw;min-height:100vh;flex:0 0 100vw;padding:clamp(90px,9vw,140px) var(--pad);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5vw;position:relative}.service-panel .num{position:absolute;top:50px;left:var(--pad);font-size:clamp(90px,18vw,300px);line-height:.75;color:rgba(255,255,255,.05);font-weight:800}.service-panel img{width:100%;height:min(72vh,760px);object-fit:cover}.service-panel h3{font-size:clamp(48px,6vw,96px);line-height:.9;letter-spacing:-.055em;margin:18px 0}.service-panel .service-name{color:var(--orange);font-size:12px;font-weight:800;letter-spacing:.14em}.service-panel.circle img{aspect-ratio:1;border-radius:50%;height:auto}.service-panel.reverse .visual{order:2}.service-panel.storm{background:linear-gradient(135deg,#07131F 30%,#172a3c)}.service-panel.storm .visual{transform:rotate(-2deg)}.service-panel:nth-child(4){background:#101a22}.service-panel:nth-child(5){background:#0b2338}.service-progress{position:absolute;z-index:3;left:50%;bottom:25px;transform:translateX(-50%);display:flex;gap:24px;font-size:11px;letter-spacing:.1em}.service-progress span{opacity:.4}.service-progress span.active{opacity:1;color:var(--orange)}
.before-after{padding:130px 0}.transform-grid{display:grid;gap:70px}.compare{display:grid;grid-template-columns:1fr 1fr;gap:16px}.compare img{width:100%;height:520px;object-fit:cover}.compare-label{position:absolute;background:var(--deep);color:#fff;padding:10px 13px;font-size:11px;font-weight:800;letter-spacing:.1em}.compare .frame{position:relative}.compare .frame:nth-child(2) .compare-label{background:var(--orange)}
.why{background:var(--navy);color:#fff;padding:130px 0}.why-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw}.benefit{padding:28px 0;border-bottom:1px solid rgba(255,255,255,.2);display:grid;grid-template-columns:48px 1fr}.benefit b{font-size:13px;color:var(--orange)}.benefit h4{margin:0 0 8px;font-size:24px}.benefit p{margin:0;color:#c8d0d6;line-height:1.6}
.parallax{height:95vh;overflow:hidden;color:#fff;display:flex;align-items:center}.parallax img{position:absolute;inset:-10%;width:120%;height:120%;object-fit:cover}.parallax:after{content:'';position:absolute;inset:0;background:rgba(7,19,31,.5)}.parallax .container{position:relative;z-index:2}.parallax .display{font-size:clamp(62px,8vw,132px);max-width:1050px}
.mission{padding:140px 0}.mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid #bbb7ae}.mission-block{padding:70px 7vw 50px 0}.mission-block+ .mission-block{border-left:1px solid #bbb7ae;padding-left:7vw;padding-right:0}
.reviews{padding:130px 0;background:#fff}.review-stage{max-width:1100px;margin-top:70px}.stars{font-size:28px;letter-spacing:.2em;color:var(--orange)}.review-quote{font-size:clamp(30px,4vw,60px);line-height:1.16;letter-spacing:-.035em;margin:28px 0}.review-meta{display:flex;justify-content:space-between;border-top:1px solid #ddd;padding-top:20px}
.projects{padding:130px 0}.masonry{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;margin-top:60px}.masonry .col{display:grid;gap:22px}.project{position:relative;overflow:hidden;cursor:pointer}.project img{width:100%;height:100%;object-fit:cover;transition:.6s}.project.tall{height:720px}.project.mid{height:470px}.project.small{height:360px}.project-overlay{position:absolute;inset:0;background:linear-gradient(transparent,rgba(7,19,31,.85));color:#fff;display:flex;align-items:end;padding:28px;opacity:0;transition:.4s}.project:hover img{transform:scale(1.04)}.project:hover .project-overlay{opacity:1}
.process{padding:130px 0;background:#fff}.process-wrap{max-width:950px;margin-left:auto}.step{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:32px 0;border-bottom:1px solid #ddd}.step strong{font-size:13px;color:var(--orange)}.step h4{font-size:26px;margin:0 0 8px}.step p{margin:0;color:#656a70}
.area{padding:130px 0;background:var(--off)}.map{margin-top:50px;width:100%;height:520px;border:0;filter:grayscale(1) contrast(.9)}
.storm-cta,.final-cta{min-height:72vh;padding:100px var(--pad);display:flex;align-items:center;color:#fff;background-size:cover;background-position:center}.storm-cta{background-image:linear-gradient(rgba(7,19,31,.75),rgba(7,19,31,.75)),url('https://images.unsplash.com/photo-1522771739844-6a9f6d5f14af?auto=format&fit=crop&w=2000&q=85')}.final-cta{background:var(--deep)}
.footer{background:#030b12;color:#fff;padding:90px var(--pad) 28px}.footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:50px}.footer h4{font-size:14px;letter-spacing:.1em}.footer a,.footer p{color:#bfc7ce;font-size:14px;line-height:1.9}.footer-brand{font-size:34px;font-weight:800;letter-spacing:-.04em}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #26323d;margin-top:70px;padding-top:25px;color:#a9b2ba;font-size:12px}.floating{position:fixed;z-index:120;right:24px;bottom:22px;width:58px;height:58px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-size:23px;box-shadow:0 8px 28px rgba(0,0,0,.25);animation:pulse 2.4s infinite}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(240,74,35,.35)}50%{box-shadow:0 0 0 15px rgba(240,74,35,0)}}
.page-hero{min-height:68vh;display:flex;align-items:end;color:#fff;background-size:cover;background-position:center;position:relative;padding:150px var(--pad) 65px}.page-hero:after{content:'';position:absolute;inset:0;background:rgba(7,19,31,.62)}.page-hero>*{position:relative;z-index:1}.page-hero h1{font-size:clamp(58px,8vw,126px);line-height:.83;letter-spacing:-.065em;margin:0;max-width:1100px}.content-section{padding:120px 0}.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;padding:80px 0;border-bottom:1px solid #c8c4bb}.service-detail:nth-child(even) .service-img{order:2}.service-detail img{width:100%;height:560px;object-fit:cover}.service-detail ul{padding-left:18px;line-height:2}.portfolio-filters{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0}.filter-btn{border:1px solid #a9aaa8;background:transparent;padding:11px 15px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.filter-btn.active{background:var(--orange);color:white;border-color:var(--orange)}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw}.contact-list{display:grid;gap:18px;margin-top:35px}.contact-list div{border-bottom:1px solid #ccc;padding-bottom:18px}.form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form .full{grid-column:1/-1}.form input,.form select,.form textarea{width:100%;padding:16px;border:1px solid #b9b9b9;background:transparent;font:inherit}.form textarea{min-height:150px}.coming{min-height:50vh;display:grid;place-items:center;text-align:center}.coming h2{font-size:clamp(60px,10vw,160px);margin:0;letter-spacing:-.06em}
.lightbox{position:fixed;z-index:999;inset:0;background:rgba(3,11,18,.96);display:none;align-items:center;justify-content:center;padding:40px}.lightbox.open{display:flex}.lightbox img{max-height:82vh;max-width:85vw}.lightbox .close{position:absolute;top:24px;right:30px;color:#fff;font-size:34px;cursor:pointer}
@media(max-width:900px){.site-mark,.top-actions,.side-nav{display:none}.mobile-header{display:flex;position:fixed;z-index:150;top:0;left:0;right:0;padding:18px 20px;justify-content:space-between;align-items:center;color:white;background:linear-gradient(rgba(7,19,31,.7),transparent)}.mobile-logo{font-weight:800}.hamb{width:42px;height:42px;border:1px solid rgba(255,255,255,.5);background:rgba(7,19,31,.35);color:white}.mobile-menu{position:fixed;z-index:140;inset:0;background:var(--deep);color:#fff;padding:110px 30px 30px;display:flex;flex-direction:column;gap:18px;transform:translateY(-105%);transition:.5s}.mobile-menu.open{transform:translateY(0)}.mobile-menu a{font-size:clamp(32px,9vw,60px);font-weight:800;line-height:1}.hero-content{padding-top:120px}.hero .hero-bottom{display:block}.intro-grid,.why-grid,.mission-grid,.contact-grid{grid-template-columns:1fr}.intro-art{min-height:460px}.intro-art img{height:460px}.metrics-grid{grid-template-columns:1fr 1fr}.metric:nth-child(2){border-right:0}.services-track{display:block;width:auto}.service-panel{width:auto;min-height:auto;grid-template-columns:1fr;padding:95px 22px}.service-panel .visual,.service-panel.reverse .visual{order:0}.service-panel img{height:430px}.service-panel.circle img{height:auto}.service-progress{display:none}.compare{grid-template-columns:1fr}.compare img{height:380px}.mission-block+ .mission-block{border-left:0;border-top:1px solid #bbb7ae;padding-left:0}.masonry{grid-template-columns:1fr}.project.tall,.project.mid,.project.small{height:430px}.footer-grid{grid-template-columns:1fr 1fr}.service-detail,.service-detail:nth-child(even){grid-template-columns:1fr}.service-detail:nth-child(even) .service-img{order:0}.service-detail img{height:420px}.form{grid-template-columns:1fr}.form .full{grid-column:auto}}
@media(max-width:560px){:root{--pad:20px}.hero h1{font-size:clamp(58px,19vw,92px)}.display{font-size:clamp(44px,13vw,72px)}.metrics-grid{grid-template-columns:1fr}.metric{border-right:0}.service-panel h3{font-size:clamp(44px,13vw,70px)}.service-panel img{height:330px}.compare img{height:280px}.footer-grid{grid-template-columns:1fr}.footer-bottom{display:block;line-height:2}.page-hero{min-height:58vh}.page-hero h1{font-size:clamp(48px,15vw,80px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ===== Horizontal storytelling hardening ===== */
.word-mask{display:inline-block;overflow:hidden;vertical-align:top;margin-right:.14em;margin-bottom:-.08em}.word-inner{display:inline-block;will-change:transform,opacity}
.horizontal-shell{position:relative;height:100vh;min-height:720px;overflow:hidden;isolation:isolate}
.services-track{height:100%;will-change:transform}
.service-panel{height:100vh;min-height:720px;overflow:hidden}
.service-panel .visual{will-change:transform;overflow:hidden}
.service-panel .visual img{transform:scale(1.015);transition:filter .45s ease}
.service-panel:not(.is-active) .visual img{filter:saturate(.78) brightness(.88)}
.service-panel.is-active .visual img{filter:saturate(1) brightness(1)}
.service-progress{position:absolute;left:50%;right:auto;bottom:26px;top:auto;transform:translateX(-50%);z-index:12;padding:10px 16px;border:1px solid rgba(255,255,255,.14);background:rgba(7,19,31,.45);backdrop-filter:blur(8px)}
.service-progress span{position:relative;transition:opacity .25s ease,color .25s ease,transform .25s ease}.service-progress span:after{content:'';position:absolute;left:0;right:100%;bottom:-5px;height:2px;background:var(--orange);transition:right .3s ease}.service-progress span.active{transform:translateY(-2px)}.service-progress span.active:after{right:0}
@media(max-width:900px){.horizontal-shell{height:auto;min-height:0;overflow:visible}.services-track{height:auto}.service-panel{height:auto;min-height:auto}.word-mask{margin-right:.11em}}

/* ===== 2026-08-31 reference navigation + horizontal-from-first-slide ===== */
:root{--rail:128px;--content-vw:calc(100vw - var(--rail))}
html,body{background:#07131F}
body{overflow-x:hidden}
body.menu-open{overflow:hidden}
main{margin-left:var(--rail);width:var(--content-vw);background:var(--off)}

/* Fixed left rail inspired by the supplied reference */
.left-rail{position:fixed;z-index:300;inset:0 auto 0 0;width:var(--rail);background:#050505;color:#fff;border-right:1px solid rgba(255,255,255,.08)}
.rail-hamb{position:absolute;top:0;left:0;width:var(--rail);height:112px;border:0;border-bottom:1px solid rgba(255,255,255,.09);background:#050505;color:#fff;cursor:pointer;display:grid;place-content:center;gap:10px}
.hamb span{display:block;width:44px;height:3px;background:currentColor;border-radius:10px;transition:transform .45s cubic-bezier(.76,0,.24,1),width .35s ease}
.hamb span+span{width:44px}
.hamb.is-open span:first-child{transform:translateY(6.5px) rotate(45deg)}
.hamb.is-open span:last-child{transform:translateY(-6.5px) rotate(-45deg)}
.rail-logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:104px;color:#fff;text-align:center;text-decoration:none;line-height:.9}
.rail-logo strong{display:block;font-size:17px;letter-spacing:-.055em;font-weight:800}
.rail-logo span{display:block;margin-top:7px;font-size:8px;letter-spacing:.42em;padding-left:.42em;font-weight:700}
.rail-cta{position:absolute;left:18px;right:18px;bottom:28px;min-height:92px;border:1px solid rgba(255,255,255,.7);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:14px;color:#fff;text-decoration:none;transition:background .3s,color .3s,border-color .3s}
.rail-cta span{font-size:9px;letter-spacing:.22em;opacity:.72}.rail-cta strong{font-size:16px;line-height:1;margin-top:4px}.rail-cta i{position:absolute;right:11px;bottom:11px;font-size:10px;color:var(--orange)}
.rail-cta:hover{background:var(--orange);border-color:var(--orange)}.rail-cta:hover i{color:#fff}
.site-mark,.top-actions,.side-nav{display:none!important}

/* Full-screen menu opens from the rail */
.menu-overlay{display:flex!important;position:fixed;z-index:250;left:var(--rail);right:0;top:0;bottom:0;background:#07131F;color:#fff;padding:clamp(70px,8vw,120px) clamp(42px,7vw,120px);transform:translateX(-105%);transition:transform .75s cubic-bezier(.76,0,.24,1);visibility:hidden;pointer-events:none}
.menu-overlay.open{transform:translateX(0);visibility:visible;pointer-events:auto}
.menu-overlay-inner{width:100%;max-width:1300px;margin:auto;display:grid;grid-template-columns:1fr .55fr;grid-template-rows:auto 1fr auto;column-gap:7vw;height:min(760px,88vh)}
.menu-kicker{grid-column:1/-1;color:var(--orange);font-size:11px;font-weight:800;letter-spacing:.18em}
.menu-links{align-self:center;display:grid}.menu-links a{font-size:clamp(42px,5.6vw,92px);font-weight:700;line-height:.91;letter-spacing:-.055em;color:#fff;text-decoration:none;display:flex;align-items:flex-start;gap:18px;padding:5px 0;opacity:.5;transition:opacity .25s,transform .25s}.menu-links a span{font-size:9px;letter-spacing:.12em;color:var(--orange);margin-top:.55em}.menu-links a:hover,.menu-links a.active{opacity:1;transform:translateX(8px)}
.menu-meta{align-self:end;display:grid;gap:12px;font-size:13px;color:rgba(255,255,255,.62)}.menu-meta a{color:#fff}.menu-meta i{color:var(--orange);margin-right:7px}
.mobile-header{display:none}

/* The horizontal story starts at page load */
.horizontal-shell{width:100%;height:100vh;min-height:680px;background:var(--deep);overflow:hidden;position:relative;isolation:isolate}
.services-track{display:flex;width:max-content;height:100%;will-change:transform}
.horizontal-panel{width:var(--content-vw);flex:0 0 var(--content-vw);height:100vh;min-height:680px}
.hero-slide{position:relative;display:flex;align-items:end;padding:0;overflow:hidden;background:#07131F}
.hero-slide .hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.95) contrast(1.02)}
.hero-slide:after{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(4,10,15,.79),rgba(4,10,15,.24) 63%,rgba(4,10,15,.42)),linear-gradient(0deg,rgba(4,10,15,.48),transparent 58%)}
.hero-slide .hero-content{position:relative;z-index:2;width:100%;max-width:none;margin:0;padding:clamp(110px,12vh,160px) clamp(42px,6vw,105px) clamp(58px,7vh,88px)}
.hero-slide h1{max-width:1000px}
.service-panel{width:var(--content-vw);flex:0 0 var(--content-vw);height:100vh;min-height:680px}
.service-progress{left:50%;bottom:24px;white-space:nowrap}
.service-progress span:first-child{font-size:9px;letter-spacing:.16em}

/* The vertical sections resume only after the full horizontal track ends. */
.intro{padding-top:130px}

@media(max-width:900px){
  :root{--rail:0px;--content-vw:100vw}
  main{margin-left:0;width:100%}
  .left-rail{display:none}
  .mobile-header{display:flex;position:fixed;z-index:310;top:0;left:0;right:0;padding:16px 18px;justify-content:space-between;align-items:center;color:#fff;background:linear-gradient(rgba(5,5,5,.78),rgba(5,5,5,0));pointer-events:none}
  .mobile-logo,.mobile-hamb{pointer-events:auto}.mobile-logo{font-weight:800;font-size:14px;letter-spacing:-.04em}.mobile-logo span{font-size:8px;letter-spacing:.23em;margin-left:4px}
  .mobile-hamb{width:58px;height:58px;border:1px solid rgba(255,255,255,.55);background:rgba(5,5,5,.45);display:grid;place-content:center;gap:8px;color:#fff}.mobile-hamb span{width:28px;height:2px}.mobile-hamb span+span{width:28px}
  .menu-overlay{left:0;padding:95px 24px 34px;transform:translateY(-105%)}.menu-overlay.open{transform:translateY(0)}
  .menu-overlay-inner{display:flex;flex-direction:column;height:100%;max-width:none}.menu-kicker{margin-bottom:30px}.menu-links{margin:auto 0}.menu-links a{font-size:clamp(37px,11vw,58px);gap:12px}.menu-meta{margin-top:auto}
  .horizontal-shell{height:auto;min-height:0;overflow:visible}
  .services-track{display:block;width:100%;height:auto;transform:none!important}
  .horizontal-panel,.hero-slide,.service-panel{width:100%;height:auto;min-height:0;flex:none}
  .hero-slide{min-height:100svh}
  .hero-slide .hero-content{padding:120px 22px 50px}
  .service-progress{display:none}
}

/* ===== Footer correction + global icon treatment ===== */
.footer{
  margin-left:var(--rail);
  width:var(--content-vw);
  padding:clamp(72px,8vw,110px) clamp(34px,5vw,82px) 26px;
  overflow:hidden;
}
.footer-grid{
  width:100%;
  max-width:1500px;
  margin:0 auto;
  grid-template-columns:minmax(250px,1.35fr) repeat(3,minmax(160px,1fr));
  gap:clamp(28px,4vw,64px);
  align-items:start;
}
.footer-col{min-width:0}.footer-col h4{display:flex;align-items:center;gap:10px;margin:0 0 24px;color:#fff}.footer-col h4 i{color:var(--orange);width:18px;text-align:center}
.footer-brand{display:inline-block;color:#fff;font-size:clamp(27px,2.5vw,38px);font-weight:800;letter-spacing:-.055em;line-height:.92}.footer-brand span{font-size:.78em;letter-spacing:-.025em}.footer-tagline{margin:18px 0 24px!important;letter-spacing:.09em;font-size:11px!important;color:#fff!important;font-weight:800}
.footer-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.footer-list li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;color:#bfc7ce;font-size:13px;line-height:1.5}.footer-list i{color:var(--orange);margin-top:3px;text-align:center;font-size:12px}.footer-list a{font-size:13px;line-height:1.5;overflow-wrap:anywhere;transition:color .25s,transform .25s}.footer-list a:hover{color:#fff}.footer-links li i{font-size:9px;margin-top:6px}.footer-links li:hover i{transform:translateX(3px)}
.footer-social{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.footer-social a{width:40px;height:40px;border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;color:#fff;border-radius:50%;transition:.3s}.footer-social a:hover{background:var(--orange);border-color:var(--orange);transform:translateY(-3px)}
.footer-bottom{max-width:1500px;margin:64px auto 0;display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center}.footer-bottom span:nth-child(2){text-align:center}.footer-bottom i{color:var(--orange);margin-right:7px}.footer-bottom a{color:#a9b2ba;font-size:12px}.footer-bottom a:hover{color:#fff}
.page-hero{background-color:#07131F;background-repeat:no-repeat;background-size:cover;background-position:center 42%}.page-hero:after{background:linear-gradient(90deg,rgba(4,10,15,.78),rgba(4,10,15,.32) 65%,rgba(4,10,15,.55))}
.service-detail .service-img{overflow:hidden}.service-detail .service-img img{transition:transform .7s ease;object-position:center}.service-detail:hover .service-img img{transform:scale(1.025)}
@media(max-width:1100px) and (min-width:901px){.footer-grid{grid-template-columns:1.2fr 1fr 1fr}.footer-col:last-child{grid-column:2/4}.footer-bottom{grid-template-columns:1fr 1fr}.footer-bottom span:nth-child(2){text-align:right}.footer-bottom a{grid-column:1/-1}}
@media(max-width:900px){.footer{margin-left:0;width:100%;padding:70px 24px 24px}.footer-grid{grid-template-columns:1fr 1fr}.footer-bottom{grid-template-columns:1fr;gap:12px}.footer-bottom span:nth-child(2){text-align:left}}
@media(max-width:560px){.footer-grid{grid-template-columns:1fr}.footer-col:last-child{grid-column:auto}.footer-bottom{margin-top:48px}}


/* ===== 2026-08-31 typography, responsive and homepage refinements ===== */
/* Desktop title scale: major titles never exceed 100px. */
.display{font-size:clamp(46px,6vw,100px);max-width:100%}
.hero h1,.hero-slide h1{font-size:clamp(64px,7.2vw,100px);max-width:1000px}
.page-hero h1{font-size:clamp(56px,6.5vw,100px);max-width:1050px}
.service-panel h3{font-size:clamp(48px,5.7vw,90px)}
.parallax .display{font-size:clamp(54px,6vw,100px);max-width:980px}

/* Mission / Vision intentionally smaller than general section headings. */
.mission-block .display{font-size:clamp(44px,4.5vw,72px);line-height:.94;letter-spacing:-.05em}
.mission-block .copy{max-width:620px}

/* Before / After: stronger roofing imagery presentation. */
.compare .frame{overflow:hidden;background:#0d1720}
.compare img{height:clamp(360px,38vw,560px);object-fit:cover;object-position:center;transition:transform .7s ease}
.compare .frame:hover img{transform:scale(1.025)}
.transform-grid .compare:first-child .frame:first-child img{object-position:center 42%}
.transform-grid .compare:first-child .frame:nth-child(2) img{object-position:center 55%}
.transform-grid .compare:nth-child(2) .frame:first-child img{object-position:center 35%}
.transform-grid .compare:nth-child(2) .frame:nth-child(2) img{object-position:center 55%}

/* Full-bleed parallax band. It intentionally escapes the content column so
   the photograph reaches the right viewport edge while the fixed rail stays left. */
.parallax{width:100vw;margin-left:calc(-1 * var(--rail));min-height:80vh;height:92vh;padding-left:var(--rail);overflow:hidden;background:#07131F}
.parallax img{inset:0;width:100%;height:118%;max-width:none;object-fit:cover;object-position:center;transform-origin:center}
.parallax .container{width:100%;max-width:none;margin:0;padding-left:clamp(42px,6vw,105px);padding-right:clamp(42px,6vw,105px)}

/* Prevent animated word wrappers from creating accidental overflow. */
.display,.page-hero h1,.hero h1,.hero-slide h1,.service-panel h3{overflow-wrap:normal;word-break:normal}
.word-mask{max-width:100%}

@media(max-width:900px){
  /* Mobile type is intentionally much smaller so no heading escapes viewport. */
  .display{font-size:clamp(36px,10.8vw,58px);line-height:.94;letter-spacing:-.045em}
  .hero h1,.hero-slide h1{font-size:clamp(46px,13vw,68px);line-height:.84;letter-spacing:-.06em}
  .page-hero h1{font-size:clamp(42px,11.8vw,64px);line-height:.88}
  .service-panel h3{font-size:clamp(38px,10.5vw,56px);line-height:.92}
  .parallax{width:100%;margin-left:0;padding-left:0;height:78svh;min-height:560px}
  .parallax .container{padding-inline:22px}
  .parallax .display{font-size:clamp(38px,10.5vw,58px);max-width:92%}
  .mission-block .display{font-size:clamp(34px,9.5vw,50px);line-height:.96}
  .copy{font-size:clamp(16px,4.4vw,19px);line-height:1.55}
  .review-quote{font-size:clamp(26px,7.5vw,42px)}
  .benefit h4,.step h4{font-size:clamp(20px,5.8vw,25px)}
  .compare img{height:clamp(260px,72vw,380px)}
  .word-mask{margin-right:.09em;max-width:100%}
}

@media(max-width:560px){
  .display{font-size:clamp(34px,10.2vw,50px)}
  .hero h1,.hero-slide h1{font-size:clamp(44px,12.6vw,62px)}
  .page-hero h1{font-size:clamp(40px,11vw,56px)}
  .service-panel h3{font-size:clamp(36px,10vw,50px)}
  .mission-block .display{font-size:clamp(32px,9vw,44px)}
  .parallax .display{font-size:clamp(36px,9.8vw,50px)}
  .hero-actions{width:100%}.hero-actions .btn{max-width:100%;white-space:normal;text-align:left}
  .footer-brand{max-width:100%}
}


/* ===== 2026-08-31 menu/footer fit refinements ===== */
/* Desktop overlay: smaller editorial navigation so all seven items remain visible. */
.menu-overlay-inner{height:min(720px,90vh)}
.menu-links a{
  font-size:clamp(36px,4.4vw,68px);
  line-height:.94;
  padding:3px 0;
}
.menu-links a span{font-size:8px;margin-top:.62em}

/* Contact metadata must never inherit the large menu-link scale. */
.menu-meta{min-width:0;max-width:100%;overflow:hidden}
.menu-meta a,.menu-meta span,.menu-meta p{
  font-size:13px;
  line-height:1.45;
  overflow-wrap:anywhere;
  word-break:break-word;
  max-width:100%;
}

/* Keep the fixed rail CTA fully inside its outlined box. */
.rail-cta{left:12px;right:12px;padding:12px 10px;min-width:0}
.rail-cta span{font-size:8px;letter-spacing:.16em}
.rail-cta strong{
  font-size:12px;
  letter-spacing:-.025em;
  max-width:100%;
  white-space:nowrap;
}
.rail-cta i{right:8px;bottom:8px;font-size:9px}

/* Privacy link removed: footer bottom now uses two balanced columns. */
.footer-bottom{grid-template-columns:auto 1fr}
.footer-bottom span:nth-child(2){text-align:right}

@media(max-width:1100px) and (min-width:901px){
  .menu-links a{font-size:clamp(34px,4.2vw,54px)}
  .footer-bottom{grid-template-columns:auto 1fr}
  .footer-bottom span:nth-child(2){text-align:right}
}

@media(max-width:900px){
  .menu-overlay{padding:88px 20px 24px}
  .menu-overlay-inner{height:100%;overflow-y:auto;overflow-x:hidden}
  .menu-kicker{font-size:10px;margin-bottom:22px}
  .menu-links{margin:18px 0 28px;gap:0}
  .menu-links a{
    font-size:clamp(28px,8.6vw,40px);
    line-height:1.02;
    letter-spacing:-.045em;
    gap:10px;
    padding:4px 0;
    max-width:100%;
  }
  .menu-links a span{font-size:7px;margin-top:.55em;flex:0 0 auto}
  .menu-meta{margin-top:auto;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);gap:8px;width:100%}
  .menu-meta a,.menu-meta span,.menu-meta p{
    font-size:clamp(12px,3.6vw,15px)!important;
    line-height:1.4!important;
    font-weight:600;
    letter-spacing:-.015em;
    max-width:100%;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  .footer-bottom{grid-template-columns:1fr}
  .footer-bottom span:nth-child(2){text-align:left}
}

@media(max-width:430px){
  .menu-overlay{padding:82px 18px 20px}
  .menu-links a{font-size:clamp(26px,8.2vw,34px)}
  .menu-meta a,.menu-meta span,.menu-meta p{font-size:12px!important}
  .mobile-logo{font-size:12px}.mobile-logo span{font-size:7px}
}
