
:root{
  --cyan:#00a8d8;
  --cyan-bright:#16c4f3;
  --cyan-deep:#007c9f;
  --ink:#171a1d;
  --charcoal:#3f4247;
  --slate:#65717a;
  --dark-muted:#a4b3bc;
  --mist:#eef4f6;
  --warm:#f4efe9;
  --white:#ffffff;
  --line:rgba(23,26,29,.12);
  --shadow:0 24px 80px rgba(15,30,38,.14);
  --shadow-sm:0 14px 36px rgba(15,30,38,.10);
  --radius:26px;
  --radius-sm:16px;
  --container:min(1180px,calc(100% - 40px));
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--white);font-family:Inter,"Avenir Next","Segoe UI",Arial,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
::selection{background:rgba(0,168,216,.22)}
.container{width:var(--container);margin-inline:auto}
.section{padding:100px 0}
.section-sm{padding:70px 0}
.bg-mist{background:var(--mist)}
.bg-warm{background:var(--warm)}
.bg-ink{background:var(--ink);color:var(--white)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:800;color:var(--cyan-deep)}
.eyebrow:before{content:"";width:32px;height:3px;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--cyan-bright))}
.bg-ink .eyebrow{color:var(--cyan-bright)}
.display{font-size:clamp(2.8rem,6vw,6rem);line-height:.98;letter-spacing:-.055em;margin:.26em 0 .24em;font-weight:850}
.h1{font-size:clamp(2.6rem,5vw,5.3rem);line-height:1.02;letter-spacing:-.05em;margin:.25em 0}
.h2{font-size:clamp(2rem,4vw,3.8rem);line-height:1.06;letter-spacing:-.04em;margin:.25em 0}
.h3{font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.2;letter-spacing:-.025em;margin:.2em 0}
.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--slate);max-width:760px}
.bg-ink .lead{color:var(--dark-muted)}
.muted{color:var(--slate)}
.bg-ink .muted{color:var(--dark-muted)}
.bg-ink .feature p{color:var(--dark-muted)}
.kicker{font-weight:750;color:var(--cyan-deep)}
.stack{display:grid;gap:24px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.split{display:grid;grid-template-columns:1.04fr .96fr;gap:70px;align-items:center}
.actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 22px;border-radius:999px;border:1px solid transparent;font-weight:800;transition:.25s var(--ease);white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn-primary{background:linear-gradient(135deg,var(--cyan),var(--cyan-bright));color:#04242e;box-shadow:0 14px 34px rgba(0,168,216,.28)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 20px 42px rgba(0,168,216,.35)}
.btn-dark{background:var(--ink);color:var(--white)}
.btn-dark:hover{background:var(--charcoal);transform:translateY(-3px)}
.btn-outline{border-color:rgba(23,26,29,.18);background:rgba(255,255,255,.75);backdrop-filter:blur(12px)}
.btn-outline:hover{border-color:var(--cyan);color:var(--cyan-deep);transform:translateY(-3px)}
.bg-ink .btn-outline{border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff}
.icon-btn{width:48px;height:48px;border:1px solid var(--line);background:#fff;border-radius:50%;display:grid;place-items:center;transition:.2s}
.icon-btn:hover{border-color:var(--cyan);transform:translateY(-2px)}
.topbar{background:var(--ink);color:rgba(255,255,255,.78);font-size:.86rem}
.topbar-inner{height:38px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.topbar-links{display:flex;align-items:center;gap:20px}
.topbar a:hover{color:var(--cyan-bright)}
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.88);backdrop-filter:blur(20px);border-bottom:1px solid rgba(23,26,29,.08)}
.nav{height:84px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand img{width:195px;height:auto}
.nav-links{display:flex;align-items:center;gap:6px}
.nav-links>a,.nav-drop>button{padding:12px 13px;border:0;background:transparent;border-radius:12px;font-weight:720;color:#30363a}
.nav-links>a:hover,.nav-links>a.active,.nav-drop>button:hover,.nav-drop.active>button{background:var(--mist);color:var(--cyan-deep)}
.nav-drop{position:relative}
.nav-drop>button{display:flex;align-items:center;gap:5px}
.nav-drop-menu{position:absolute;top:calc(100% + 12px);left:0;width:310px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm);opacity:0;visibility:hidden;transform:translateY(8px);transition:.2s}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{opacity:1;visibility:visible;transform:none}
.nav-drop-menu a{display:flex;justify-content:space-between;padding:10px 12px;border-radius:10px;font-size:.94rem}
.nav-drop-menu a:hover{background:var(--mist);color:var(--cyan-deep)}
.nav-cta{display:flex;align-items:center;gap:10px}
.menu-toggle{display:none;width:48px;height:48px;border:1px solid var(--line);background:#fff;border-radius:14px;place-items:center}
.menu-toggle span,.menu-toggle:before,.menu-toggle:after{content:"";display:block;width:21px;height:2px;background:var(--ink);transition:.2s}
.menu-toggle span{margin:5px 0}
.hero{position:relative;min-height:760px;display:grid;align-items:center;overflow:hidden;background:linear-gradient(115deg,#fff 0%,#fff 45%,rgba(255,255,255,.25) 70%)}
.hero-media{position:absolute;inset:0 0 0 43%;z-index:-2}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.18) 34%,rgba(23,26,29,.08)),linear-gradient(0deg,rgba(23,26,29,.38),transparent 55%)}
.hero:after{content:"";position:absolute;right:-180px;top:-170px;width:500px;height:500px;border:90px solid rgba(22,196,243,.14);border-radius:50%;z-index:-1}
.hero-copy{max-width:700px;padding:80px 0}
.hero-copy .lead{max-width:630px}
.trust-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.trust-chip{display:flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid rgba(23,26,29,.1);border-radius:999px;background:rgba(255,255,255,.78);font-size:.88rem;font-weight:720;backdrop-filter:blur(12px)}
.trust-chip i{width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px rgba(0,168,216,.12)}
.hero-float{position:absolute;right:5vw;bottom:38px;max-width:320px;padding:22px;border:1px solid rgba(255,255,255,.25);border-radius:22px;background:rgba(23,26,29,.72);color:#fff;backdrop-filter:blur(16px);box-shadow:var(--shadow)}
.hero-float strong{display:block;font-size:1.1rem}
.hero-float p{margin:.35em 0 0;color:var(--dark-muted);font-size:.92rem}
.stats{margin-top:clamp(32px,5vw,72px);position:relative;z-index:5}
.stat-panel{display:grid;grid-template-columns:repeat(4,1fr);background:var(--ink);color:#fff;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.stat{padding:28px 30px;border-right:1px solid rgba(255,255,255,.1)}
.stat:last-child{border:0}
.stat strong{font-size:clamp(1.9rem,3vw,3.1rem);line-height:1;display:block;letter-spacing:-.05em;color:var(--cyan-bright)}
.stat span{display:block;margin-top:8px;color:var(--dark-muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.12em}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:42px}
.section-head>div:first-child{max-width:720px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 40px rgba(15,30,38,.05);transition:.3s var(--ease)}
.card:hover{transform:translateY(-7px);box-shadow:var(--shadow-sm);border-color:rgba(0,168,216,.34)}
.service-card{padding:28px;min-height:310px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.service-card:after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(0,168,216,.08);right:-70px;top:-70px;transition:.3s}
.service-card:hover:after{transform:scale(1.35)}
.service-icon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(145deg,var(--mist),#fff);border:1px solid rgba(0,168,216,.16);color:var(--cyan-deep)}
.service-icon svg{width:28px;height:28px}
.service-card p{color:var(--slate)}
.service-card .more{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-weight:800;color:var(--cyan-deep)}
.image-frame{position:relative;border-radius:32px;overflow:hidden;min-height:520px;box-shadow:var(--shadow)}
.image-frame img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.image-frame:after{content:"";position:absolute;inset:auto 22px 22px auto;width:145px;height:145px;border-radius:28px 6px 28px 28px;background:linear-gradient(135deg,rgba(0,168,216,.95),rgba(22,196,243,.78));mix-blend-mode:multiply}
.feature-list{display:grid;gap:16px;margin:30px 0}
.feature{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start}
.feature-num{width:44px;height:44px;border-radius:14px;background:var(--mist);color:var(--cyan-deep);display:grid;place-items:center;font-weight:850}
.feature p{margin:.2em 0;color:var(--slate)}
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:48px}
.process-step{padding:28px 26px;border-top:1px solid rgba(255,255,255,.18);position:relative}
.process-step:before{content:"";position:absolute;top:-6px;left:28px;width:12px;height:12px;border-radius:50%;background:var(--cyan-bright);box-shadow:0 0 0 7px rgba(22,196,243,.14)}
.process-step .step{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--cyan-bright);font-weight:800}
.process-step p{color:var(--dark-muted)}
.gallery-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;grid-template-rows:290px 250px;gap:16px}
.gallery-item{border-radius:22px;overflow:hidden;position:relative;cursor:pointer;border:0;padding:0;background:#ddd}
.gallery-item:first-child{grid-row:1/3}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:.45s var(--ease)}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item:after{content:"View project";position:absolute;left:16px;bottom:16px;padding:9px 13px;border-radius:999px;background:rgba(255,255,255,.9);font-size:.82rem;font-weight:800;opacity:0;transform:translateY(8px);transition:.2s}
.gallery-item:hover:after{opacity:1;transform:none}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.filter-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 15px;font-weight:750}
.filter-btn.active,.filter-btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.work-card{border-radius:22px;overflow:hidden;position:relative;aspect-ratio:4/3;background:var(--mist);cursor:pointer}
.work-card.hidden{display:none}
.work-card img{width:100%;height:100%;object-fit:cover;transition:.45s}
.work-card:hover img{transform:scale(1.06)}
.work-meta{position:absolute;inset:auto 14px 14px 14px;padding:14px 16px;border-radius:15px;background:rgba(23,26,29,.75);color:#fff;backdrop-filter:blur(13px)}
.work-meta small{color:var(--cyan-bright);text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.testimonial-shell{position:relative;padding:48px;border-radius:32px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.quote-mark{font-size:6rem;line-height:.6;color:var(--cyan);font-family:Georgia,serif;opacity:.55}
.testimonial-slide{display:none}
.testimonial-slide.active{display:block;animation:fade .35s ease}
.testimonial-slide blockquote{font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.5;letter-spacing:-.02em;margin:18px 0 28px}
.reviewer{display:flex;align-items:center;gap:14px}
.reviewer-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-weight:850}
.slider-controls{position:absolute;right:28px;bottom:28px;display:flex;gap:8px}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.value{padding:30px;border-radius:24px;background:#fff;border:1px solid var(--line)}
.value .num{font-size:3rem;line-height:1;color:rgba(0,168,216,.3);font-weight:900}
.value p{color:var(--slate)}
.blog-card{overflow:hidden}
.blog-card img{width:100%;height:220px;object-fit:cover}
.blog-card-body{padding:24px}
.blog-card .date{font-size:.78rem;color:var(--cyan-deep);font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.blog-card p{color:var(--slate)}
.cta-band{position:relative;overflow:hidden;border-radius:34px;padding:64px;background:var(--ink);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:50px}
.cta-band:before{content:"";position:absolute;right:-120px;top:-170px;width:380px;height:380px;border:76px solid rgba(22,196,243,.16);border-radius:50%}
.cta-band>div{position:relative}
.cta-band p{color:var(--dark-muted);max-width:620px}
.page-hero{padding:110px 0 82px;background:linear-gradient(135deg,var(--mist),#fff);position:relative;overflow:hidden}
.page-hero:after{content:"";position:absolute;right:-120px;top:-200px;width:440px;height:440px;border-radius:50%;border:80px solid rgba(0,168,216,.10)}
.breadcrumbs{display:flex;gap:8px;align-items:center;font-size:.86rem;color:var(--slate)}
.breadcrumbs span{color:var(--cyan-deep)}
.service-hero{display:grid;grid-template-columns:1fr .95fr;gap:50px;align-items:center}
.service-hero-image{height:460px;border-radius:30px;overflow:hidden;box-shadow:var(--shadow)}
.service-hero-image img{width:100%;height:100%;object-fit:cover}
.service-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.detail-card{padding:28px;border:1px solid var(--line);border-radius:22px;background:#fff}
.detail-card p{color:var(--slate)}
.detail-card .mini-icon{width:42px;height:42px;border-radius:13px;background:var(--mist);color:var(--cyan-deep);display:grid;place-items:center;margin-bottom:18px}
.faq{display:grid;gap:12px}
.faq-item{border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}
.faq-q{width:100%;border:0;background:#fff;text-align:left;padding:20px 22px;display:flex;justify-content:space-between;gap:20px;font-weight:800}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s var(--ease)}
.faq-a p{padding:0 22px 20px;margin:0;color:var(--slate)}
.faq-item.open .faq-a{max-height:260px}
.faq-item.open .faq-q span:last-child{transform:rotate(45deg)}
.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:34px}
.contact-panel{padding:36px;border-radius:28px;background:var(--ink);color:#fff}
.contact-panel p{color:var(--dark-muted)}
.contact-list{display:grid;gap:18px;margin-top:32px}
.contact-line{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center}
.contact-line i{width:44px;height:44px;border-radius:14px;background:rgba(22,196,243,.14);color:var(--cyan-bright);display:grid;place-items:center;font-style:normal}
.form-card{padding:34px;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:var(--shadow-sm)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.field{display:grid;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-size:.86rem;font-weight:800;color:#394147}
.field input,.field select,.field textarea{width:100%;border:1px solid rgba(23,26,29,.16);border-radius:14px;padding:14px 15px;background:#fbfdfe;outline:none;transition:.2s}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(0,168,216,.1);background:#fff}
.form-note{font-size:.82rem;color:var(--slate)}
.form-success{display:none;padding:15px 18px;border-radius:14px;background:#e9f9f0;color:#17623b;font-weight:750;margin-top:16px}
.form-success.show{display:block}
.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.choice{position:relative}
.choice input{position:absolute;opacity:0}
.choice label{display:block;border:1px solid var(--line);border-radius:16px;padding:18px;background:#fff;cursor:pointer;transition:.2s}
.choice input:checked+label{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(0,168,216,.1);background:var(--mist)}
.quote-layout{display:grid;grid-template-columns:1fr 340px;gap:34px;align-items:start}
.quote-side{position:sticky;top:125px;padding:28px;border-radius:24px;background:var(--ink);color:#fff}
.quote-side p{color:var(--dark-muted)}
.checklist{display:grid;gap:12px;margin:24px 0 0;padding:0;list-style:none}
.checklist li{display:flex;gap:10px;align-items:flex-start}
.checklist li:before{content:"✓";color:var(--cyan-bright);font-weight:900}
.article{max-width:820px;margin:auto}
.article h2{font-size:2rem;letter-spacing:-.03em;margin-top:2em}
.article p{color:#4f5960;font-size:1.06rem}
.article .article-image{height:440px;border-radius:28px;object-fit:cover;width:100%;margin:35px 0}
.tag-row{display:flex;gap:8px;flex-wrap:wrap}
.tag{padding:7px 11px;border-radius:999px;background:var(--mist);font-size:.8rem;font-weight:750;color:var(--cyan-deep)}
.footer{background:#101316;color:#fff;padding-top:75px}
.footer-grid{display:grid;grid-template-columns:1.3fr .8fr .9fr .9fr;gap:45px;padding-bottom:54px}
.footer-logo{background:#fff;border-radius:14px;padding:10px 12px;width:210px}
.footer p,.footer a{color:var(--dark-muted)}
.footer a:hover{color:var(--cyan-bright)}
.footer h4{margin:0 0 18px;font-size:.95rem;text-transform:uppercase;letter-spacing:.12em}
.footer-links{display:grid;gap:10px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.09);padding:20px 0;display:flex;justify-content:space-between;gap:20px;color:var(--dark-muted);font-size:.83rem}
.version-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;background:rgba(22,196,243,.1);color:var(--cyan-bright);font-size:.75rem;font-weight:800}
.version-badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cyan-bright)}
.floating-cta{position:fixed;right:20px;bottom:84px;z-index:40;display:flex;align-items:center;gap:10px;padding:13px 18px;border-radius:999px;background:var(--ink);color:#fff;box-shadow:var(--shadow);font-weight:800}
.floating-cta:hover{background:var(--cyan-deep)}
.reveal{opacity:0;transform:translateY(22px);transition:.7s var(--ease)}
.reveal.visible{opacity:1;transform:none}
@keyframes fade{from{opacity:.2;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1050px){
  .nav-links{position:fixed;inset:123px 18px auto 18px;max-height:calc(100vh - 145px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow);display:none;flex-direction:column;align-items:stretch}
  body.menu-open .nav-links{display:flex}
  .nav-links>a,.nav-drop>button{width:100%;text-align:left;padding:14px}
  .nav-drop-menu{position:static;width:auto;box-shadow:none;border:0;background:var(--mist);opacity:1;visibility:visible;transform:none;display:none;margin-top:6px}
  .nav-drop.open .nav-drop-menu{display:block}
  .menu-toggle{display:grid}.nav-cta .btn{display:none}
  .hero-media{left:35%}.hero-copy{max-width:620px}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .split,.service-hero,.contact-grid,.quote-layout{grid-template-columns:1fr}
  .quote-side{position:static}
  .process{grid-template-columns:repeat(2,1fr)}
  .gallery-grid{grid-template-columns:1.25fr .75fr;grid-template-rows:260px 220px}.gallery-item:nth-child(4){display:none}
  .footer-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  :root{--container:min(1180px,calc(100% - 26px))}
  .section{padding:74px 0}.section-sm{padding:54px 0}
  .topbar-inner{height:auto;min-height:38px;padding:8px 0}.topbar-links span{display:none}.topbar-links{gap:12px}
  .nav{height:74px}.brand img{width:165px}
  .hero{min-height:760px;background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.9) 58%,rgba(255,255,255,.2) 100%)}
  .hero-media{inset:44% 0 0}.hero-media:after{background:linear-gradient(180deg,#fff 0%,rgba(255,255,255,.06) 38%,rgba(23,26,29,.35))}
  .hero-copy{align-self:start;padding:70px 0 270px}.hero-float{display:none}
  .stats{margin-top:28px}.stat-panel{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.1)}
  .section-head{display:block}.section-head .actions{margin-top:24px}
  .grid-2,.grid-3,.grid-4,.values,.service-detail-grid,.form-grid,.choice-grid{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .image-frame{min-height:390px}.process{grid-template-columns:1fr}.process-step{padding-left:30px}
  .gallery-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:250px 180px}.gallery-item:first-child{grid-row:auto;grid-column:1/3}.gallery-item:nth-child(4){display:block}
  .work-grid{grid-template-columns:1fr}
  .testimonial-shell{padding:32px 24px 90px}.slider-controls{left:24px;right:auto}
  .cta-band{padding:42px 28px;display:block}.cta-band .actions{margin-top:25px}
  .page-hero{padding:85px 0 60px}.service-hero-image{height:330px}
  .footer-grid{grid-template-columns:1fr}.footer-bottom{display:block}.footer-bottom>span{display:block;margin-top:7px}
  .floating-cta{right:12px;bottom:72px;padding:12px 15px}.floating-cta span{display:none}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Enhanced service storytelling — V2.0.1 */
.service-page-hero{padding-bottom:64px}
.service-hero-image{position:relative;isolation:isolate}
.service-hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(8,17,22,.76));pointer-events:none}
.hero-image-label{position:absolute;z-index:2;left:24px;right:24px;bottom:22px;color:#fff;display:flex;justify-content:space-between;align-items:end;gap:18px}
.hero-image-label small{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:rgba(255,255,255,.72)}
.hero-image-label strong{font-size:1.08rem;text-align:right}
.service-trust-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.service-trust-row span{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(23,26,29,.1);border-radius:999px;background:rgba(255,255,255,.64);font-size:.82rem;font-weight:760;color:var(--charcoal)}
.service-trust-row i{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(0,168,216,.12)}
.detail-card{position:relative;overflow:hidden;transition:.3s var(--ease)}
.detail-card:after{content:"";position:absolute;right:-60px;bottom:-80px;width:150px;height:150px;border-radius:50%;background:linear-gradient(135deg,rgba(0,168,216,.11),rgba(22,196,243,.02));transition:.35s var(--ease)}
.detail-card:hover{transform:translateY(-6px);border-color:rgba(0,168,216,.32);box-shadow:var(--shadow-sm)}
.detail-card:hover:after{transform:scale(1.25)}
.transformation-section{position:relative;overflow:hidden}
.transformation-section:before{content:"";position:absolute;left:-180px;bottom:-240px;width:520px;height:520px;border:90px solid rgba(22,196,243,.08);border-radius:50%}
.transformation-head{position:relative}
.transformation-stage{display:grid;grid-template-columns:minmax(0,.9fr) 92px minmax(0,1.1fr);align-items:stretch;gap:0;position:relative}
.before-state,.after-state{min-height:540px;border-radius:30px;overflow:hidden;position:relative}
.before-state{padding:40px;background:linear-gradient(145deg,#242a2e,#121619);border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 28px 80px rgba(0,0,0,.22)}
.before-state:before,.before-state:after{content:"";position:absolute;border:1px solid rgba(22,196,243,.13);border-radius:48% 52% 55% 45%;transform:rotate(-12deg)}
.before-state:before{width:430px;height:270px;left:-110px;top:40px}
.before-state:after{width:340px;height:210px;left:-55px;top:78px}
.state-top{display:flex;align-items:center;justify-content:space-between;gap:14px;position:relative;z-index:2;margin-bottom:26px}
.state-top small{text-transform:uppercase;letter-spacing:.13em;font-size:.68rem;color:rgba(255,255,255,.5)}
.phase-label{display:inline-flex;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);font-size:.75rem;text-transform:uppercase;letter-spacing:.13em;font-weight:850;color:#fff}
.phase-label-after{background:linear-gradient(135deg,var(--cyan),var(--cyan-bright));color:#05252e;border-color:transparent}
.condition-visual{height:150px;position:relative;z-index:1;margin-bottom:auto;display:grid;place-items:center}
.condition-visual span{position:absolute;width:78%;height:52%;border:1px solid rgba(255,255,255,.1);border-radius:50%;transform:rotate(-8deg)}
.condition-visual span:nth-child(2){width:60%;height:68%;transform:rotate(14deg)}
.condition-visual span:nth-child(3){width:42%;height:42%;transform:rotate(-22deg);border-color:rgba(22,196,243,.24)}
.condition-visual b{width:70px;height:70px;border-radius:22px;display:grid;place-items:center;background:rgba(22,196,243,.10);border:1px solid rgba(22,196,243,.24);color:var(--cyan-bright);font-size:2rem;box-shadow:0 18px 50px rgba(0,0,0,.2)}
.before-state h3,.after-state h3{font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.05;letter-spacing:-.04em;margin:0 0 14px;position:relative;z-index:2}
.before-state>p,.after-copy>p{color:rgba(255,255,255,.67);margin:0;position:relative;z-index:2}
.condition-list{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:10px;position:relative;z-index:2}
.condition-list li{display:flex;gap:10px;align-items:flex-start;color:rgba(255,255,255,.78);font-size:.91rem}
.condition-list li span{flex:0 0 24px;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.08);color:var(--cyan-bright);font-weight:900}
.transformation-bridge{display:flex;flex-direction:column;justify-content:center;align-items:center;color:#fff;position:relative;z-index:3}
.transformation-bridge:before{content:"";position:absolute;top:16%;bottom:16%;width:1px;background:linear-gradient(transparent,rgba(22,196,243,.45),transparent)}
.transformation-bridge span{width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--cyan-bright));color:#05252e;display:grid;place-items:center;font-size:1.7rem;box-shadow:0 14px 36px rgba(0,168,216,.3);position:relative}
.transformation-bridge small{position:absolute;bottom:18%;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,255,255,.42)}
.after-state{box-shadow:0 28px 80px rgba(0,0,0,.25)}
.after-state>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.7s var(--ease)}
.after-state:hover>img{transform:scale(1.045)}
.after-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,15,20,.04) 15%,rgba(5,15,20,.88) 90%)}
.after-copy{position:absolute;inset:auto 0 0;padding:40px;color:#fff}
.result-pills{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.result-pills span{padding:8px 11px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px);font-size:.76rem;font-weight:760}
.outcome-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.outcome-card{padding:32px;border:1px solid rgba(23,26,29,.09);border-radius:24px;background:rgba(255,255,255,.78);box-shadow:0 16px 45px rgba(15,30,38,.06);transition:.3s var(--ease)}
.outcome-card:hover{transform:translateY(-7px);background:#fff;box-shadow:var(--shadow-sm)}
.outcome-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,var(--ink),var(--charcoal));color:var(--cyan-bright);font-weight:850;margin-bottom:22px}
.outcome-card p{color:var(--slate);margin-bottom:0}
.service-vision-section{padding-top:86px;padding-bottom:86px}
.service-vision{position:relative;min-height:620px;border-radius:34px;overflow:hidden;box-shadow:var(--shadow);isolation:isolate}
.service-vision>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:1s var(--ease)}
.service-vision:hover>img{transform:scale(1.035)}
.service-vision-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,16,20,.94) 0%,rgba(9,16,20,.76) 44%,rgba(9,16,20,.12) 76%),linear-gradient(0deg,rgba(9,16,20,.42),transparent 55%)}
.service-vision-copy{position:absolute;left:0;top:0;bottom:0;width:min(620px,65%);padding:64px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;color:#fff}
.vision-tag{display:inline-flex;padding:8px 12px;border-radius:999px;background:rgba(22,196,243,.12);border:1px solid rgba(22,196,243,.28);color:var(--cyan-bright);text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:850}
.service-vision-copy h2{font-size:clamp(2.3rem,4.7vw,4.7rem);line-height:1;letter-spacing:-.055em;margin:24px 0 18px}
.service-vision-copy p{max-width:540px;color:rgba(255,255,255,.72);font-size:1.08rem;margin:0 0 28px}
.service-process-section{position:relative;overflow:hidden}
.service-process-section:after{content:"";position:absolute;right:-160px;top:-190px;width:480px;height:480px;border:88px solid rgba(22,196,243,.07);border-radius:50%}
.service-process{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.16);position:relative;z-index:1}
.service-process-step{padding:30px 24px 10px;border-right:1px solid rgba(255,255,255,.09);position:relative}
.service-process-step:last-child{border-right:0}
.service-process-step:before{content:"";position:absolute;top:-7px;left:24px;width:13px;height:13px;border-radius:50%;background:var(--cyan-bright);box-shadow:0 0 0 7px rgba(22,196,243,.12)}
.service-process-step>span{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--cyan-bright);font-weight:850}
.service-process-step h3{font-size:1.18rem;line-height:1.2;margin:14px 0 9px;color:#fff}
.service-process-step p{margin:0;color:rgba(255,255,255,.6);font-size:.9rem}
.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.option-card{display:grid;grid-template-columns:58px 1fr;gap:20px;align-items:start;padding:26px;border:1px solid var(--line);border-radius:22px;background:#fff;transition:.3s var(--ease)}
.option-card:hover{border-color:rgba(0,168,216,.34);transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.option-card>span{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:var(--mist);color:var(--cyan-deep);font-weight:850}
.option-card h3{font-size:1.15rem;margin:0 0 6px}
.option-card p{color:var(--slate);margin:0;font-size:.92rem}
.inspiration-grid{display:grid;grid-template-columns:1.15fr .85fr .85fr;gap:18px}
.inspiration-card{appearance:none;border:0;padding:0;background:var(--ink);min-height:410px;border-radius:26px;overflow:hidden;position:relative;text-align:left;color:#fff;isolation:isolate;box-shadow:0 16px 50px rgba(15,30,38,.12)}
.inspiration-card:nth-child(2),.inspiration-card:nth-child(3){min-height:360px;margin-top:50px}
.inspiration-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.55s var(--ease)}
.inspiration-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(7,14,18,.9));z-index:1}
.inspiration-card:hover img{transform:scale(1.06)}
.inspiration-caption{position:absolute;z-index:2;left:24px;right:24px;bottom:24px;display:grid;gap:4px;transform:translateY(4px);transition:.3s var(--ease)}
.inspiration-caption strong{font-size:1.1rem}
.inspiration-caption small{color:var(--cyan-bright);line-height:1.45}
.inspiration-card:hover .inspiration-caption{transform:none}
.service-faq-layout{align-items:start}
.faq-contact-card{margin-top:34px;padding:24px;border-radius:22px;background:var(--ink);color:#fff;box-shadow:var(--shadow-sm)}
.faq-contact-card strong{display:block;font-size:1.05rem}
.faq-contact-card p{color:var(--dark-muted);margin:7px 0 14px}
.faq-contact-card a{display:inline-flex;align-items:center;gap:10px;color:var(--cyan-bright);font-weight:850}

@media(max-width:1050px){
  .transformation-stage{grid-template-columns:1fr 70px 1fr}
  .before-state,.after-state{min-height:560px}
  .service-process{grid-template-columns:repeat(3,1fr)}
  .service-process-step:nth-child(3){border-right:0}
  .service-process-step:nth-child(n+4){margin-top:44px}
  .inspiration-grid{grid-template-columns:1fr 1fr}
  .inspiration-card:first-child{grid-column:1/3;min-height:480px}
  .inspiration-card:nth-child(2),.inspiration-card:nth-child(3){margin-top:0}
}
@media(max-width:760px){
  .service-page-hero{padding-bottom:36px}
  .hero-image-label{left:18px;right:18px;bottom:16px;display:block}
  .hero-image-label strong{display:block;text-align:left;margin-top:4px}
  .service-trust-row{gap:7px}.service-trust-row span{font-size:.75rem}
  .transformation-head{margin-bottom:30px}
  .transformation-stage{grid-template-columns:1fr;gap:18px}
  .before-state,.after-state{min-height:500px;padding:28px;border-radius:24px}
  .transformation-bridge{height:52px;flex-direction:row;gap:12px}
  .transformation-bridge:before{left:10%;right:10%;top:50%;bottom:auto;width:auto;height:1px}
  .transformation-bridge span{width:50px;height:50px;transform:rotate(90deg)}
  .transformation-bridge small{display:none}
  .after-copy{padding:28px}
  .outcome-grid,.option-grid{grid-template-columns:1fr}
  .service-vision{min-height:610px;border-radius:26px}
  .service-vision-overlay{background:linear-gradient(180deg,rgba(9,16,20,.22),rgba(9,16,20,.94) 67%)}
  .service-vision-copy{inset:auto 0 0;width:100%;padding:32px}
  .service-process{grid-template-columns:1fr;border-top:0}
  .service-process-step,.service-process-step:nth-child(n+4){margin-top:0;padding:24px 0 24px 42px;border-right:0;border-left:1px solid rgba(255,255,255,.16)}
  .service-process-step:before{top:29px;left:-7px}
  .inspiration-grid{grid-template-columns:1fr}
  .inspiration-card,.inspiration-card:first-child,.inspiration-card:nth-child(2),.inspiration-card:nth-child(3){grid-column:auto;min-height:330px;margin-top:0}
}

/* =========================================================
   V2.0.2 — Locked-template additions only
   1) Interactive before/after comparison
   2) Alternate homepage hero sample
   ========================================================= */

/* Interactive before & after */
.transformation-section{
  background:
    radial-gradient(circle at 10% 15%,rgba(22,196,243,.10),transparent 28%),
    radial-gradient(circle at 92% 82%,rgba(0,168,216,.08),transparent 25%),
    #111518;
}
.transformation-section:after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);
}
.transformation-section>.container{position:relative;z-index:1}
.ba-comparison{--ba-position:52%;position:relative;padding:16px;border:1px solid rgba(255,255,255,.12);border-radius:34px;background:rgba(255,255,255,.055);box-shadow:0 40px 110px rgba(0,0,0,.34);backdrop-filter:blur(22px)}
.ba-toolbar{min-height:72px;padding:8px 12px 16px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#fff}
.ba-toolbar-copy{display:flex;align-items:center;gap:13px}
.ba-toolbar-copy>div{display:grid;line-height:1.25}
.ba-toolbar-copy strong{font-size:.94rem}
.ba-toolbar-copy small{margin-top:4px;color:rgba(255,255,255,.48);font-size:.76rem}
.ba-live-dot{width:11px;height:11px;border-radius:50%;background:var(--cyan-bright);box-shadow:0 0 0 7px rgba(22,196,243,.11),0 0 24px rgba(22,196,243,.8);animation:baPulse 2.4s ease-in-out infinite}
.ba-view-state{padding:8px 12px;border:1px solid rgba(255,255,255,.10);border-radius:999px;background:rgba(0,0,0,.18);color:rgba(255,255,255,.72);font-size:.73rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800}
.ba-viewport{position:relative;isolation:isolate;height:clamp(460px,58vw,700px);overflow:hidden;border-radius:25px;background:#0c1012;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);touch-action:pan-y;cursor:ew-resize}
.ba-media{position:absolute;inset:0;overflow:hidden}
.ba-media img{width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none}
.ba-media-after{z-index:1}
.ba-media-after img{filter:saturate(1.07) contrast(1.03)}
.ba-media-before{z-index:2;clip-path:inset(0 calc(100% - var(--ba-position)) 0 0);will-change:clip-path}
.ba-media-before img{filter:grayscale(.9) saturate(.3) brightness(.62) contrast(.92);transform:scale(1.025)}
.ba-image-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,10,12,.03),rgba(5,10,12,.08) 55%,rgba(5,10,12,.48));pointer-events:none}
.ba-before-treatment{position:absolute;inset:0;background:
  linear-gradient(125deg,rgba(20,25,28,.20),rgba(8,12,14,.66)),
  repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0,rgba(255,255,255,.035) 1px,transparent 1px,transparent 13px);mix-blend-mode:normal;pointer-events:none}
.ba-before-treatment:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 40%,transparent 0 18%,rgba(0,0,0,.18) 58%,rgba(0,0,0,.4) 100%)}
.ba-image-label{position:absolute;top:24px;display:grid;gap:2px;padding:10px 13px;border-radius:14px;border:1px solid rgba(255,255,255,.16);background:rgba(8,13,16,.55);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.18);backdrop-filter:blur(14px);pointer-events:none}
.ba-image-label b{font-size:.76rem;text-transform:uppercase;letter-spacing:.14em}
.ba-image-label small{color:rgba(255,255,255,.62);font-size:.68rem}
.ba-image-label-before{left:24px}
.ba-image-label-before b{color:#fff}
.ba-image-label-after{right:24px}
.ba-image-label-after b{color:var(--cyan-bright)}
.ba-divider{position:absolute;z-index:4;left:var(--ba-position);top:0;bottom:0;width:2px;transform:translateX(-1px);background:linear-gradient(transparent 2%,rgba(255,255,255,.92) 14%,#fff 86%,transparent 98%);box-shadow:0 0 22px rgba(0,0,0,.55);pointer-events:none;will-change:left}
.ba-handle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:82px;height:82px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid rgba(255,255,255,.65);background:rgba(10,17,20,.76);color:#fff;box-shadow:0 18px 45px rgba(0,0,0,.32),0 0 0 8px rgba(22,196,243,.11),0 0 38px rgba(22,196,243,.26);backdrop-filter:blur(16px)}
.ba-handle i{font-style:normal;font-size:1.45rem;line-height:1;color:var(--cyan-bright)}
.ba-handle b{width:2px;height:27px;border-radius:999px;background:rgba(255,255,255,.58)}
.ba-range{position:absolute;z-index:5;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none}
.ba-range:focus-visible{opacity:1;outline:0;background:transparent}
.ba-range:focus-visible::-webkit-slider-thumb{width:88px;height:88px;border-radius:50%;background:transparent;border:3px solid var(--cyan-bright);box-shadow:0 0 0 6px rgba(22,196,243,.18);-webkit-appearance:none}
.ba-range:focus-visible::-moz-range-thumb{width:88px;height:88px;border-radius:50%;background:transparent;border:3px solid var(--cyan-bright);box-shadow:0 0 0 6px rgba(22,196,243,.18)}
.ba-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 4px 2px;color:rgba(255,255,255,.55)}
.ba-controls p{display:flex;align-items:center;gap:9px;margin:0;font-size:.78rem}
.ba-controls p span{color:var(--cyan-bright);font-size:1rem}
.ba-preset-group{display:flex;gap:7px;flex-wrap:wrap}
.ba-preset-group button{min-height:38px;padding:0 13px;border-radius:999px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.04);color:rgba(255,255,255,.65);font-size:.74rem;font-weight:800;transition:.22s var(--ease)}
.ba-preset-group button:hover,.ba-preset-group button.active{color:#05252e;background:linear-gradient(135deg,var(--cyan),var(--cyan-bright));border-color:transparent;transform:translateY(-2px)}
.ba-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.ba-story-card{position:relative;padding:30px;border-radius:24px;border:1px solid rgba(255,255,255,.09);overflow:hidden}
.ba-story-card:after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-90px;top:-105px;border:32px solid rgba(255,255,255,.035)}
.ba-story-before{background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.025))}
.ba-story-after{background:linear-gradient(145deg,rgba(0,168,216,.13),rgba(22,196,243,.035))}
.ba-story-kicker{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.52);font-size:.72rem;text-transform:uppercase;letter-spacing:.13em;font-weight:850}
.ba-story-kicker span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:rgba(255,255,255,.08);color:var(--cyan-bright);letter-spacing:0}
.ba-story-card h3{position:relative;z-index:1;margin:18px 0 8px;color:#fff;font-size:clamp(1.35rem,2.4vw,2.05rem);line-height:1.08;letter-spacing:-.035em}
.ba-story-card>p{position:relative;z-index:1;margin:0;color:rgba(255,255,255,.62)}
.ba-story-card .condition-list{margin-top:22px}
.ba-story-card .result-pills{position:relative;z-index:1}
.ba-story-after .result-pills span{background:rgba(22,196,243,.10);border-color:rgba(22,196,243,.22);color:rgba(255,255,255,.84)}
.ba-disclaimer{display:flex;align-items:flex-start;gap:10px;padding:15px 6px 2px;color:rgba(255,255,255,.43);font-size:.72rem}
.ba-disclaimer>span{flex:0 0 22px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);font-weight:800}
.ba-disclaimer p{margin:1px 0 0;line-height:1.5}
@keyframes baPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.75);opacity:.62}}

/* Alternate homepage hero concept sample */
.home-hero-sample{padding-top:118px;background:linear-gradient(180deg,#fff 0%,#f2f7f9 100%)}
.sample-section-label{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:22px}
.sample-section-label span{display:inline-flex;align-items:center;gap:9px;color:var(--cyan-deep);font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;font-weight:900}
.sample-section-label span:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px rgba(0,168,216,.11)}
.sample-section-label p{margin:0;color:var(--slate);font-size:.84rem}
.hero-concept{position:relative;overflow:hidden;border-radius:36px;background:#111518;color:#fff;box-shadow:0 40px 120px rgba(15,30,38,.22)}
.hero-concept:before{content:"";position:absolute;left:-160px;top:-190px;width:450px;height:450px;border-radius:50%;border:78px solid rgba(22,196,243,.075)}
.hero-concept:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(90deg,#000,transparent 70%)}
.hero-concept-grid{position:relative;z-index:2;display:grid;grid-template-columns:.88fr 1.12fr;min-height:720px}
.hero-concept-copy{padding:72px 56px 64px;display:flex;flex-direction:column;justify-content:center}
.hero-concept-topline{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:24px;margin-bottom:auto;border-bottom:1px solid rgba(255,255,255,.10);color:rgba(255,255,255,.7);font-size:.78rem;text-transform:uppercase;letter-spacing:.13em;font-weight:800}
.hero-concept-topline small{color:rgba(255,255,255,.38);font-size:.69rem}
.hero-concept-copy .eyebrow{margin-top:62px;color:var(--cyan-bright)}
.hero-concept-copy h2{margin:20px 0 20px;max-width:650px;font-size:clamp(3rem,5.4vw,6rem);line-height:.94;letter-spacing:-.06em}
.hero-concept-copy>p{max-width:590px;margin:0 0 30px;color:rgba(255,255,255,.62);font-size:1.05rem}
.hero-concept-link{padding-inline:10px;color:#fff;border-radius:0;border-bottom:1px solid rgba(255,255,255,.26)}
.hero-concept-link:hover{color:var(--cyan-bright);border-color:var(--cyan-bright)}
.hero-concept-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:auto;padding-top:38px}
.hero-concept-proof>div{padding:0 18px;border-left:1px solid rgba(255,255,255,.10)}
.hero-concept-proof>div:first-child{padding-left:0;border-left:0}
.hero-concept-proof strong{display:block;color:var(--cyan-bright);font-size:1.65rem;line-height:1}
.hero-concept-proof span{display:block;margin-top:8px;color:rgba(255,255,255,.43);font-size:.69rem;text-transform:uppercase;letter-spacing:.08em;line-height:1.35}
.hero-concept-visual{position:relative;display:grid;grid-template-rows:1fr auto;min-width:0;padding:18px 18px 18px 0}
.hero-concept-media{position:relative;overflow:hidden;min-height:590px;border-radius:28px;background:#242a2e}
.hero-concept-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .22s ease,transform .8s var(--ease)}
.hero-concept-media.is-switching img{opacity:.25;transform:scale(1.025)}
.hero-concept-gradient{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,12,15,.02),rgba(5,12,15,.08) 45%,rgba(5,12,15,.78)),linear-gradient(90deg,rgba(5,12,15,.14),transparent 42%)}
.hero-concept-caption{position:absolute;left:34px;right:150px;bottom:34px;display:grid;gap:5px}
.hero-concept-caption span{color:var(--cyan-bright);font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;font-weight:850}
.hero-concept-caption strong{font-size:clamp(1.45rem,2.4vw,2.45rem);line-height:1.06;letter-spacing:-.035em}
.hero-concept-badge{position:absolute;right:24px;top:24px;display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid rgba(255,255,255,.18);border-radius:17px;background:rgba(10,16,19,.52);backdrop-filter:blur(14px)}
.hero-concept-badge>span{width:9px;height:9px;border-radius:50%;background:var(--cyan-bright);box-shadow:0 0 18px var(--cyan-bright)}
.hero-concept-badge div{display:grid}
.hero-concept-badge small{color:rgba(255,255,255,.48);font-size:.6rem;text-transform:uppercase;letter-spacing:.12em}
.hero-concept-badge strong{font-size:.82rem}
.hero-concept-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:10px}
.hero-concept-tabs button{min-height:70px;padding:12px 14px;border:1px solid rgba(255,255,255,.10);border-radius:16px;background:rgba(255,255,255,.035);color:rgba(255,255,255,.54);text-align:left;font-size:.75rem;font-weight:800;transition:.22s var(--ease)}
.hero-concept-tabs button span{display:block;margin-bottom:3px;color:rgba(255,255,255,.3);font-size:.63rem}
.hero-concept-tabs button:hover,.hero-concept-tabs button.active{background:rgba(22,196,243,.10);border-color:rgba(22,196,243,.34);color:#fff;transform:translateY(-2px)}
.hero-concept-tabs button.active span{color:var(--cyan-bright)}
.hero-concept-marquee{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:18px;min-height:58px;border-top:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.34);font-size:.66rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800}
.hero-concept-marquee i{width:4px;height:4px;border-radius:50%;background:var(--cyan)}

@media(max-width:1050px){
  .hero-concept-grid{grid-template-columns:1fr;min-height:0}
  .hero-concept-copy{padding:54px 44px 48px}
  .hero-concept-topline{margin-bottom:0}
  .hero-concept-copy .eyebrow{margin-top:54px}
  .hero-concept-proof{margin-top:44px}
  .hero-concept-visual{padding:0 18px 18px}
  .hero-concept-media{min-height:620px}
}
@media(max-width:760px){
  .ba-comparison{padding:10px;border-radius:25px}
  .ba-toolbar{align-items:flex-start;padding:7px 5px 12px}
  .ba-view-state{display:none}
  .ba-viewport{height:500px;border-radius:19px}
  .ba-image-label{top:14px;padding:8px 10px}
  .ba-image-label-before{left:14px}.ba-image-label-after{right:14px}
  .ba-handle{width:66px;height:66px;gap:7px}
  .ba-handle b{height:22px}
  .ba-controls{align-items:flex-start;flex-direction:column;padding:13px 3px 0}
  .ba-preset-group{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}
  .ba-preset-group button{padding:0 7px;font-size:.67rem}
  .ba-controls p{display:none}
  .ba-story-grid{grid-template-columns:1fr}
  .ba-story-card{padding:24px;border-radius:20px}
  .sample-section-label{align-items:flex-start;flex-direction:column;gap:8px}
  .home-hero-sample{padding-top:90px}
  .hero-concept{border-radius:26px}
  .hero-concept-copy{padding:38px 24px 34px}
  .hero-concept-topline{align-items:flex-start;flex-direction:column;gap:6px;padding-bottom:17px}
  .hero-concept-copy .eyebrow{margin-top:40px}
  .hero-concept-copy h2{font-size:clamp(2.7rem,14vw,4.3rem)}
  .hero-concept-proof{grid-template-columns:1fr 1fr;gap:22px 0}
  .hero-concept-proof>div:nth-child(3){display:none}
  .hero-concept-visual{padding:0 10px 10px}
  .hero-concept-media{min-height:480px;border-radius:20px}
  .hero-concept-caption{left:22px;right:22px;bottom:24px}
  .hero-concept-badge{right:14px;top:14px;padding:9px 11px}
  .hero-concept-tabs{grid-template-columns:1fr;gap:6px}
  .hero-concept-tabs button{min-height:50px;display:flex;align-items:center;gap:10px}
  .hero-concept-tabs button span{display:inline;margin:0}
  .hero-concept-marquee{justify-content:flex-start;overflow:hidden;padding:0 20px;white-space:nowrap}
}
@media(max-width:480px){
  .ba-viewport{height:430px}
  .ba-toolbar-copy small{display:none}
  .ba-image-label small{display:none}
  .hero-concept-proof strong{font-size:1.45rem}
}
@media(prefers-reduced-motion:reduce){
  .ba-live-dot{animation:none}
  .hero-concept-media img,.ba-preset-group button,.hero-concept-tabs button{transition:none}
}

/* ========================================================================
   V2.0.3 — ADVANCED INTERACTIVE VISUAL SYSTEM
   The established template structure remains intact. These rules elevate the
   home experience and polish shared components without changing page content.
   ======================================================================== */

.site-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:200;pointer-events:none;background:transparent}
.site-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--cyan-deep),var(--cyan-bright),#8deaff);transform:scaleX(0);transform-origin:left;box-shadow:0 0 18px rgba(22,196,243,.65)}
.cursor-aura{position:fixed;left:0;top:0;width:360px;height:360px;margin:-180px 0 0 -180px;border-radius:50%;pointer-events:none;z-index:5;opacity:0;background:radial-gradient(circle,rgba(22,196,243,.13),rgba(22,196,243,.035) 38%,transparent 70%);mix-blend-mode:screen;transition:opacity .35s ease;will-change:transform}
body.has-pointer .cursor-aura{opacity:1}

/* A sharper, architectural shared shell. */
.site-header{box-shadow:0 8px 38px rgba(8,18,23,.045);transition:background .3s ease,box-shadow .3s ease,border-color .3s ease}
.site-header.is-scrolled{background:rgba(255,255,255,.96);box-shadow:0 15px 50px rgba(8,18,23,.12);border-color:rgba(23,26,29,.1)}
.nav-links>a,.nav-drop>button{position:relative;overflow:hidden}
.nav-links>a:after,.nav-drop>button:after{content:"";position:absolute;left:14px;right:14px;bottom:7px;height:2px;border-radius:99px;background:linear-gradient(90deg,var(--cyan),var(--cyan-bright));transform:scaleX(0);transform-origin:right;transition:transform .32s var(--ease)}
.nav-links>a:hover:after,.nav-links>a.active:after,.nav-drop>button:hover:after,.nav-drop.active>button:after{transform:scaleX(1);transform-origin:left}
.nav-cta .btn{box-shadow:0 12px 34px rgba(0,168,216,.24)}

/* Cinematic three-video hero. */
.cinematic-hero{position:relative;height:calc(100svh - 122px);min-height:730px;max-height:1050px;overflow:hidden;background:#080d10;color:#fff;isolation:isolate}
.cinematic-hero__stage,.cinematic-slide{position:absolute;inset:0}
.cinematic-slide{opacity:0;visibility:hidden;clip-path:inset(0 0 0 100%);transition:opacity .9s var(--ease),clip-path 1.15s cubic-bezier(.7,0,.2,1),visibility 0s 1.15s;z-index:1}
.cinematic-slide.is-active{opacity:1;visibility:visible;clip-path:inset(0);transition-delay:0s;z-index:2}
.cinematic-slide.is-leaving{opacity:1;visibility:visible;clip-path:inset(0 100% 0 0);z-index:3}
.cinematic-slide__media{position:absolute;inset:-4%;will-change:transform;transition:transform 1.2s var(--ease)}
.cinematic-slide__media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,12,15,.08),rgba(7,12,15,.24) 55%,rgba(7,12,15,.76))}
.cinematic-slide__media video{width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.08) brightness(.78);transform:scale(1.055);transition:transform 9s linear,filter 1s ease}
.cinematic-slide.is-active .cinematic-slide__media video{transform:scale(1.01);filter:saturate(1) contrast(1.06) brightness(.82)}
.cinematic-slide__wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,10,13,.93) 0%,rgba(5,10,13,.7) 35%,rgba(5,10,13,.21) 68%,rgba(5,10,13,.11)),radial-gradient(circle at 68% 48%,transparent 0,rgba(6,11,14,.08) 30%,rgba(6,11,14,.58) 100%);z-index:1}
.cinematic-slide__grid{position:absolute;inset:0;z-index:2;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);background-size:100px 100px;mask-image:linear-gradient(90deg,#000,transparent 74%)}
.cinematic-slide__inner{position:relative;z-index:4;height:100%;display:flex;align-items:center;padding-bottom:110px}
.cinematic-slide__copy{width:min(940px,79%);padding:55px 0 0}
.cinematic-slide__index{display:flex;align-items:center;gap:14px;margin-bottom:28px;font-size:.72rem;text-transform:uppercase;letter-spacing:.17em;font-weight:820;color:rgba(255,255,255,.7);opacity:0;transform:translateY(20px);transition:.62s .2s var(--ease)}
.cinematic-slide__index span{color:var(--cyan-bright);font-size:.82rem}
.cinematic-slide__index i{width:54px;height:1px;background:linear-gradient(90deg,var(--cyan-bright),rgba(255,255,255,.2))}
.cinematic-slide__index b{font-weight:750}
.cinematic-slide__family{margin:0 0 12px;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--cyan-bright);opacity:0;transform:translateY(24px);transition:.65s .28s var(--ease)}
.cinematic-slide h1,.cinematic-slide h2{margin:0;max-width:1040px;font-size:clamp(3rem,6.1vw,7rem);line-height:.91;letter-spacing:-.064em;font-weight:900;text-wrap:balance;text-shadow:0 18px 45px rgba(0,0,0,.28);opacity:0;transform:translateY(35px);transition:.78s .33s var(--ease)}
.cinematic-slide h1 em,.cinematic-slide h2 em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px var(--cyan-bright);filter:drop-shadow(0 0 20px rgba(22,196,243,.28))}
.cinematic-slide__rule{width:min(620px,70vw);height:1px;margin:30px 0 20px;background:rgba(255,255,255,.17);overflow:hidden;opacity:0;transition:opacity .6s .58s ease}
.cinematic-slide__rule span{display:block;width:31%;height:100%;background:linear-gradient(90deg,var(--cyan-bright),rgba(22,196,243,.05));transform:translateX(-100%);transition:transform .75s .7s var(--ease)}
.cinematic-slide__estimate{margin:0;font-size:clamp(.86rem,1.25vw,1.08rem);font-weight:850;letter-spacing:.16em;color:rgba(255,255,255,.86);opacity:0;transform:translateY(20px);transition:.62s .61s var(--ease)}
.cinematic-slide__actions{display:flex;align-items:center;gap:24px;margin-top:32px;opacity:0;transform:translateY(20px);transition:.65s .72s var(--ease)}
.cinematic-slide.is-active .cinematic-slide__index,.cinematic-slide.is-active .cinematic-slide__family,.cinematic-slide.is-active h1,.cinematic-slide.is-active h2,.cinematic-slide.is-active .cinematic-slide__estimate,.cinematic-slide.is-active .cinematic-slide__actions{opacity:1;transform:none}
.cinematic-slide.is-active .cinematic-slide__rule{opacity:1}
.cinematic-slide.is-active .cinematic-slide__rule span{transform:none}
.cinematic-slide__actions .btn-primary{min-height:58px;padding:0 28px;color:#03212a;box-shadow:0 18px 55px rgba(0,168,216,.35)}
.cinematic-link{display:inline-flex;align-items:center;gap:13px;min-height:50px;color:#fff;font-weight:800;border-bottom:1px solid rgba(255,255,255,.35);transition:border-color .3s,color .3s}
.cinematic-link:hover{color:var(--cyan-bright);border-color:var(--cyan-bright)}
.cinematic-link span{font-size:1.3rem}
.cinematic-hero__interface{position:absolute;left:50%;bottom:34px;z-index:12;transform:translateX(-50%);display:grid;grid-template-columns:auto minmax(390px,680px) auto;align-items:end;gap:34px}
.cinematic-hero__controls{display:flex;gap:8px}
.cinematic-control{width:50px;height:50px;border:1px solid rgba(255,255,255,.24);border-radius:50%;background:rgba(7,13,16,.38);backdrop-filter:blur(15px);color:#fff;display:grid;place-items:center;transition:.3s var(--ease)}
.cinematic-control:hover{background:var(--cyan);border-color:var(--cyan);color:#031f27;transform:translateY(-3px)}
.cinematic-control--pause{width:42px;height:42px;margin:4px 0 0 3px;font-size:.72rem}
.cinematic-hero__nav{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cinematic-hero__nav button{position:relative;display:grid;grid-template-columns:auto 1fr;gap:0 10px;text-align:left;border:0;background:transparent;color:rgba(255,255,255,.54);padding:0 5px 11px;transition:.3s}
.cinematic-hero__nav button span{font-size:.64rem;letter-spacing:.12em;color:rgba(255,255,255,.36)}
.cinematic-hero__nav button b{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cinematic-hero__nav button i{grid-column:1/-1;display:block;height:2px;margin-top:9px;background:rgba(255,255,255,.18);overflow:hidden}
.cinematic-hero__nav button i em{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--cyan),var(--cyan-bright));transform:scaleX(0);transform-origin:left;transition:transform .08s linear;will-change:transform}
.cinematic-hero__nav button.is-active{color:#fff}
.cinematic-hero__nav button.is-active span{color:var(--cyan-bright)}
.cinematic-hero__nav button.is-active i em{animation:none}
.cinematic-hero__contact{text-align:right;padding-bottom:7px}
.cinematic-hero__contact span{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.46)}
.cinematic-hero__contact a{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:3px;font-size:.95rem;font-weight:850;color:#fff}
.cinematic-hero__contact a b{color:var(--cyan-bright)}
.cinematic-scroll{position:absolute;right:27px;top:50%;z-index:12;display:flex;align-items:center;gap:11px;transform:rotate(90deg) translateX(50%);transform-origin:right top;color:rgba(255,255,255,.58);font-size:.62rem;text-transform:uppercase;letter-spacing:.18em;font-weight:800}
.cinematic-scroll span{position:relative;width:44px;height:1px;background:rgba(255,255,255,.28);overflow:hidden}
.cinematic-scroll span:after{content:"";position:absolute;inset:0;background:var(--cyan-bright);animation:scrollLine 2s ease-in-out infinite}
@keyframes scrollLine{0%{transform:translateX(-110%)}60%,100%{transform:translateX(110%)}}
.cinematic-hero__edge-word{position:absolute;right:-.025em;top:7%;z-index:1;font-size:clamp(9rem,22vw,25rem);line-height:1;font-weight:950;letter-spacing:-.1em;color:rgba(255,255,255,.027);pointer-events:none;writing-mode:vertical-rl}

/* Home transition area and live capability rail. */
.home-v203 .stats{margin-top:0;padding:clamp(32px,5vw,72px) 0 36px;background:#080d10;width:100%;position:relative}
.home-v203 .stat-panel{width:var(--container);margin-inline:auto;border-radius:24px;background:linear-gradient(110deg,#0d1519,#101b20);border:1px solid rgba(255,255,255,.1);box-shadow:0 38px 90px rgba(2,9,12,.28);transform:none}
.home-v203 .stat{position:relative;padding:30px 32px;overflow:hidden}
.home-v203 .stat:before{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--cyan-bright),transparent);transform:scaleX(0);transition:transform .45s var(--ease)}
.home-v203 .stat:hover:before{transform:scaleX(1)}
.home-v203 .stat strong{font-size:clamp(2rem,3vw,3.35rem)}
.capability-rail{padding:42px 0 15px;background:linear-gradient(180deg,#eef5f7 0,#fff 100%);overflow:auto;scrollbar-width:none}
.capability-rail::-webkit-scrollbar{display:none}
.capability-rail__track{display:flex;width:max-content;min-width:100%;border-top:1px solid rgba(23,26,29,.11);border-bottom:1px solid rgba(23,26,29,.11)}
.capability-rail__track a{display:flex;align-items:center;gap:12px;min-width:245px;padding:22px 28px;border-right:1px solid rgba(23,26,29,.11);font-weight:850;letter-spacing:-.015em;transition:background .3s,color .3s,padding .3s}
.capability-rail__track a span{font-size:.63rem;letter-spacing:.12em;color:var(--cyan-deep)}
.capability-rail__track a i{margin-left:auto;font-style:normal;color:var(--cyan-deep);opacity:0;transform:translate(-8px,8px);transition:.3s}
.capability-rail__track a:hover{background:var(--ink);color:#fff;padding-left:35px}
.capability-rail__track a:hover i{opacity:1;transform:none;color:var(--cyan-bright)}

/* Advanced home card, section and gallery behavior. */
.home-v203 .section{position:relative;overflow:hidden}
.home-v203 .section-head .h2{max-width:820px}
.home-v203 .section-head{margin-bottom:54px}
.home-v203 .service-card,.home-v203 .blog-card,.home-v203 .testimonial-shell{--mx:50%;--my:50%;transform-style:preserve-3d;will-change:transform}
.home-v203 .service-card{min-height:340px;padding:31px;background:radial-gradient(circle at var(--mx) var(--my),rgba(22,196,243,.13),transparent 34%),linear-gradient(145deg,#fff,#f8fbfc);border-color:rgba(7,49,62,.12);box-shadow:0 20px 60px rgba(9,37,47,.07)}
.home-v203 .service-card:before{content:"";position:absolute;left:0;top:30px;bottom:30px;width:3px;border-radius:0 99px 99px 0;background:linear-gradient(180deg,transparent,var(--cyan-bright),transparent);transform:scaleY(.25);opacity:.35;transition:.4s var(--ease)}
.home-v203 .service-card:hover:before{transform:scaleY(1);opacity:1}
.home-v203 .service-card:hover{border-color:rgba(0,168,216,.34);box-shadow:0 35px 80px rgba(7,38,49,.15)}
.home-v203 .service-icon{width:65px;height:65px;border-radius:21px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.75),0 13px 30px rgba(0,168,216,.12);transition:transform .4s var(--ease),background .4s}
.home-v203 .service-card:hover .service-icon{transform:translateZ(28px) rotate(-5deg);background:linear-gradient(145deg,var(--cyan),var(--cyan-bright));color:#04242e}
.home-v203 .service-card .more span:last-child{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--mist);transition:.3s}
.home-v203 .service-card:hover .more span:last-child{background:var(--ink);color:var(--cyan-bright);transform:rotate(-35deg)}
.home-v203 .bg-mist{background:radial-gradient(circle at 8% 16%,rgba(22,196,243,.11),transparent 27%),linear-gradient(135deg,#edf4f6,#f8fbfc 55%,#eef5f7)}
.home-v203 .image-frame{border-radius:8px 46px 8px 46px;box-shadow:0 38px 90px rgba(9,29,37,.19)}
.home-v203 .image-frame:before{content:"";position:absolute;inset:13px;z-index:2;border:1px solid rgba(255,255,255,.35);border-radius:4px 35px 4px 35px;pointer-events:none}
.home-v203 .feature{padding:15px;border-radius:18px;transition:.3s;background:transparent}
.home-v203 .feature:hover{background:#fff;box-shadow:0 15px 38px rgba(11,35,43,.08);transform:translateX(8px)}
.home-v203 .bg-ink{background:radial-gradient(circle at 90% 0,rgba(0,168,216,.14),transparent 33%),linear-gradient(135deg,#11171b,#070c0f)}
.home-v203 .process-step{min-height:225px;border-color:rgba(255,255,255,.14);overflow:hidden}
.home-v203 .process-step:after{content:attr(data-step);position:absolute;right:10px;bottom:-35px;font-size:8rem;font-weight:950;line-height:1;color:rgba(255,255,255,.025)}
.home-v203 .process-step:hover{background:rgba(255,255,255,.035)}
.home-v203 .gallery-item{border-radius:8px 32px 8px 32px;box-shadow:0 18px 44px rgba(8,29,37,.12)}
.home-v203 .gallery-item:after{content:"View project ↗";position:absolute;left:18px;bottom:18px;padding:8px 12px;border-radius:999px;background:rgba(6,15,18,.68);backdrop-filter:blur(12px);color:#fff;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;opacity:0;transform:translateY(10px);transition:.35s}
.home-v203 .gallery-item:hover:after{opacity:1;transform:none}
.home-v203 .gallery-item img{transition:transform .8s var(--ease),filter .5s}
.home-v203 .gallery-item:hover img{transform:scale(1.075);filter:saturate(1.12)}
.home-v203 .testimonial-shell{border-radius:8px 42px 8px 42px;border:1px solid rgba(23,26,29,.1);box-shadow:0 35px 85px rgba(33,27,20,.12);background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,255,255,.72))}
.home-v203 .blog-card{border-radius:8px 30px 8px 30px;overflow:hidden}
.home-v203 .blog-card img{transition:transform .7s var(--ease)}
.home-v203 .blog-card:hover img{transform:scale(1.065)}
.home-v203 .cta-band{position:relative;isolation:isolate;border-radius:8px 44px 8px 44px;background:radial-gradient(circle at 80% 30%,rgba(22,196,243,.24),transparent 30%),linear-gradient(120deg,#0b1216,#172229);box-shadow:0 35px 90px rgba(5,19,25,.22);overflow:hidden}
.home-v203 .cta-band:after{content:"EDGE";position:absolute;right:-20px;bottom:-55px;z-index:-1;font-size:10rem;line-height:1;font-weight:950;letter-spacing:-.08em;color:rgba(255,255,255,.035)}

/* Shared detail-page refinements: architectural depth and richer interaction. */
.page-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 85% 15%,rgba(22,196,243,.12),transparent 30%),linear-gradient(135deg,#f4f9fa,#fff 58%,#edf5f7)}
.page-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(0,124,159,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(0,124,159,.04) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,#000,transparent 75%)}
.service-hero-image,.detail-card,.outcome-card,.option-card,.inspiration-card,.ba-comparison,.service-vision{box-shadow:0 28px 78px rgba(9,35,44,.12)}
.detail-card,.outcome-card,.option-card{background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(22,196,243,.11),transparent 38%),#fff;transition:transform .38s var(--ease),box-shadow .38s,border-color .38s;transform-style:preserve-3d}
.detail-card:hover,.outcome-card:hover,.option-card:hover{transform:translateY(-8px);box-shadow:0 38px 80px rgba(9,35,44,.16);border-color:rgba(0,168,216,.35)}
.ba-comparison{border-color:rgba(22,196,243,.22);box-shadow:0 45px 110px rgba(0,0,0,.34),inset 0 0 0 1px rgba(255,255,255,.05)}
.ba-handle{box-shadow:0 0 0 9px rgba(22,196,243,.15),0 18px 45px rgba(0,0,0,.35)}
.service-vision{border-radius:8px 44px 8px 44px}
.inspiration-card{border-radius:8px 30px 8px 30px}
.cta-band{border:1px solid rgba(255,255,255,.07)}
.reveal{opacity:0;transform:translateY(35px);filter:blur(4px);transition:opacity .8s var(--ease),transform .8s var(--ease),filter .8s var(--ease)}
.reveal.visible{opacity:1;transform:none;filter:none}
.magnetic{will-change:transform}

@media(max-width:1180px){
  .cinematic-hero__interface{grid-template-columns:auto 1fr;gap:24px}
  .cinematic-hero__contact{display:none}
  .cinematic-slide__copy{width:86%}
}
@media(max-width:900px){
  .cinematic-hero{height:calc(100svh - 110px);min-height:700px}
  .cinematic-slide__wash{background:linear-gradient(90deg,rgba(5,10,13,.92),rgba(5,10,13,.55) 72%,rgba(5,10,13,.3)),linear-gradient(0deg,rgba(5,10,13,.72),transparent 55%)}
  .cinematic-slide__inner{align-items:center;padding-bottom:160px}
  .cinematic-slide__copy{width:100%;padding-top:10px}
  .cinematic-slide h1,.cinematic-slide h2{font-size:clamp(3.1rem,10vw,6rem)}
  .cinematic-hero__interface{bottom:24px;grid-template-columns:auto 1fr;align-items:center}
  .cinematic-hero__nav button b{display:none}
  .cinematic-hero__nav{min-width:260px}
  .cinematic-hero__nav button{grid-template-columns:1fr;padding:0 2px 10px;text-align:center}
  .cinematic-hero__nav button i{grid-column:auto}
  .cinematic-scroll{display:none}
}
@media(max-width:640px){
  .cursor-aura{display:none}
  .cinematic-hero{height:calc(100svh - 104px);min-height:690px;max-height:none}
  .cinematic-slide__media{inset:0}
  .cinematic-slide__media video{transform:scale(1.12)}
  .cinematic-slide__wash{background:linear-gradient(90deg,rgba(4,9,12,.91),rgba(4,9,12,.48)),linear-gradient(0deg,rgba(4,9,12,.88) 0,transparent 65%)}
  .cinematic-slide__grid{background-size:60px 60px;opacity:.1}
  .cinematic-slide__inner{padding-bottom:165px;align-items:center}
  .cinematic-slide__copy{padding-top:0}
  .cinematic-slide__index{margin-bottom:20px}
  .cinematic-slide__family{font-size:.68rem;letter-spacing:.14em}
  .cinematic-slide h1,.cinematic-slide h2{font-size:clamp(2.65rem,13.2vw,4.25rem);line-height:.92;letter-spacing:-.06em}
  .cinematic-slide__rule{margin:23px 0 17px;width:100%}
  .cinematic-slide__estimate{font-size:.73rem;line-height:1.5;letter-spacing:.12em}
  .cinematic-slide__actions{gap:15px;margin-top:25px;align-items:flex-start;flex-direction:column}
  .cinematic-slide__actions .btn-primary{min-height:52px;padding:0 21px}
  .cinematic-link{min-height:38px}
  .cinematic-hero__interface{grid-template-columns:auto 1fr;bottom:20px;gap:12px}
  .cinematic-hero__controls{gap:5px}
  .cinematic-control{width:42px;height:42px}
  .cinematic-control--pause{display:none}
  .cinematic-hero__nav{min-width:0;gap:5px}
  .cinematic-hero__edge-word{display:none}
  .home-v203 .stat-panel{grid-template-columns:repeat(2,1fr);transform:none}
  .home-v203 .stat:nth-child(2){border-right:0}
  .home-v203 .stat{padding:23px 20px;border-bottom:1px solid rgba(255,255,255,.1)}
  .home-v203 .stat:nth-child(3),.home-v203 .stat:nth-child(4){border-bottom:0}
  .capability-rail{padding-top:32px}
  .capability-rail__track a{min-width:220px;padding:19px 22px}
}
@media(prefers-reduced-motion:reduce){
  .cinematic-slide,.cinematic-slide__media video,.cinematic-slide__index,.cinematic-slide__family,.cinematic-slide h1,.cinematic-slide h2,.cinematic-slide__estimate,.cinematic-slide__actions,.cinematic-slide__rule span,.cinematic-hero__nav button i em,.cinematic-scroll span:after{transition:none!important;animation:none!important}
  .cinematic-slide.is-active .cinematic-hero__nav button i em{transform:scaleX(1)}
  .cursor-aura{display:none}
}
.home-v203 .process-step:nth-child(1):after{content:"01"}
.home-v203 .process-step:nth-child(2):after{content:"02"}
.home-v203 .process-step:nth-child(3):after{content:"03"}
.home-v203 .process-step:nth-child(4):after{content:"04"}
.cinematic-slide__estimate + .cinematic-slide__family{margin:11px 0 0;color:rgba(255,255,255,.6);letter-spacing:.12em;text-transform:none;font-size:.82rem}

/* ========================================================================
   V2.0.5 — LOCKED INTERACTION, NAVIGATION & TYPOGRAPHY UPGRADE
   Approved V2.0.4 layouts/content remain intact. This layer adds the requested
   wheel-led hero sequence, persistent navigation, modern type and industry icons.
   ======================================================================== */
:root{
  --font-body:"Manrope","Avenir Next","Segoe UI",Arial,sans-serif;
  --font-display:"Space Grotesk","Manrope","Avenir Next","Segoe UI",Arial,sans-serif;
  --header-glass:rgba(248,252,253,.82);
  --header-line:rgba(4,55,70,.11);
}
body{font-family:var(--font-body);font-weight:450;letter-spacing:-.008em}
h1,h2,h3,h4,h5,h6,.display,.h1,.h2,.h3,.cinematic-slide h1,.cinematic-slide h2,.hero-concept-copy h2{font-family:var(--font-display);font-optical-sizing:auto}
.display,.h1,.h2{font-weight:690;letter-spacing:-.055em}
.h3{font-weight:680;letter-spacing:-.035em}
.lead{font-weight:430;letter-spacing:-.018em;line-height:1.72}
.btn,.nav-links>a,.nav-drop>button,.eyebrow{letter-spacing:-.006em}
.ui-icon,.nav-chevron,.nav-arrow,.nav-service-arrow,.btn-icon{display:block;width:20px;height:20px;flex:0 0 auto}

/* Modern utility bar */
.topbar{position:relative;z-index:72;overflow:hidden;background:linear-gradient(105deg,#071116 0%,#101b20 55%,#0a151a 100%);color:rgba(255,255,255,.74);border-bottom:1px solid rgba(255,255,255,.07)}
.topbar:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 15% 0,rgba(22,196,243,.16),transparent 28%),linear-gradient(90deg,transparent,rgba(255,255,255,.025),transparent)}
.topbar-inner{position:relative;height:46px;gap:28px}
.topbar-promise{display:flex;align-items:center;gap:11px;min-width:0}
.topbar-icon-wrap{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:rgba(22,196,243,.1);color:var(--cyan-bright);box-shadow:inset 0 0 0 1px rgba(22,196,243,.14)}
.topbar-icon-wrap .ui-icon{width:16px;height:16px}
.topbar-promise>div{display:flex;align-items:center;gap:10px;min-width:0}
.topbar-promise strong{color:#fff;font-size:.72rem;text-transform:uppercase;letter-spacing:.105em;white-space:nowrap}
.topbar-promise strong:after{content:"";display:inline-block;width:3px;height:3px;margin-left:10px;border-radius:50%;vertical-align:middle;background:var(--cyan-bright);box-shadow:0 0 12px rgba(22,196,243,.9)}
.topbar-promise span{font-size:.73rem;white-space:nowrap;color:rgba(255,255,255,.5)}
.topbar-links{gap:8px;margin-left:auto}
.topbar-link,.topbar-service-area{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 10px;border-radius:999px;border:1px solid transparent;font-size:.74rem;font-weight:700;letter-spacing:.005em;white-space:nowrap}
.topbar-link{color:rgba(255,255,255,.78);transition:.25s var(--ease)}
.topbar-link:hover{color:#fff;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.08)}
.topbar-service-area{color:rgba(255,255,255,.52)}
.topbar-link .ui-icon,.topbar-service-area .ui-icon{width:15px;height:15px;color:var(--cyan-bright)}

/* Persistent architectural navigation */
.site-header{position:sticky;top:0;z-index:70;background:var(--header-glass);border-color:var(--header-line);backdrop-filter:blur(24px) saturate(1.35);-webkit-backdrop-filter:blur(24px) saturate(1.35);transition:background .34s var(--ease),box-shadow .34s var(--ease),border-color .34s var(--ease)}
.site-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(0,168,216,.32),transparent);opacity:.42}
.site-header.is-scrolled{background:rgba(250,253,254,.96);box-shadow:0 18px 55px rgba(4,26,34,.13);border-color:rgba(4,55,70,.13)}
.site-header.is-scrolled:after{opacity:1}
.nav{height:88px;gap:22px;transition:height .34s var(--ease)}
.site-header.is-scrolled .nav{height:72px}
.brand{display:flex;align-items:center;gap:12px;min-width:188px}
.brand-mark{display:block}
.brand img{display:block;width:184px;transition:width .34s var(--ease),transform .34s var(--ease)}
.site-header.is-scrolled .brand img{width:166px}
.brand-descriptor{display:none;padding-left:12px;border-left:1px solid rgba(7,49,62,.14);max-width:120px;color:var(--slate);font-size:.63rem;line-height:1.35;text-transform:uppercase;letter-spacing:.1em;font-weight:800}
.nav-links{gap:2px}
.nav-links>a,.nav-drop>button{min-height:44px;padding:0 11px;border-radius:999px;color:#28343a;font-size:.84rem;font-weight:730;transition:color .25s var(--ease),background .25s var(--ease),transform .25s var(--ease)}
.nav-links>a:hover,.nav-links>a.active,.nav-drop>button:hover,.nav-drop.active>button{background:rgba(0,168,216,.08);color:#006f90}
.nav-links>a:after,.nav-drop>button:after{left:17px;right:17px;bottom:5px;height:2px}
.nav-drop>button{display:flex;align-items:center;gap:6px}
.nav-chevron{width:15px;height:15px;transition:transform .28s var(--ease)}
.nav-drop:hover .nav-chevron,.nav-drop:focus-within .nav-chevron,.nav-drop.open .nav-chevron{transform:rotate(180deg)}
.nav-cta{gap:9px}
.nav-call{display:flex;align-items:center;gap:9px;min-height:46px;padding:0 10px;color:#233137;border-radius:14px;transition:.25s var(--ease)}
.nav-call:hover{background:var(--mist);color:var(--cyan-deep)}
.nav-call>.ui-icon{width:20px;height:20px;color:var(--cyan-deep)}
.nav-call>span{display:grid;line-height:1.15}
.nav-call small{font-size:.56rem;text-transform:uppercase;letter-spacing:.09em;color:var(--slate);font-weight:800}
.nav-call strong{margin-top:3px;font-family:var(--font-display);font-size:.76rem;letter-spacing:-.01em}
.nav-estimate{min-height:48px;padding-inline:18px;box-shadow:0 14px 34px rgba(0,168,216,.23)}
.nav-estimate .btn-icon{width:17px;height:17px;transition:transform .25s var(--ease)}
.nav-estimate:hover .btn-icon{transform:translate(2px,-2px)}
.menu-toggle{position:relative;overflow:hidden;border-radius:50%;background:linear-gradient(145deg,#fff,#edf4f6);box-shadow:0 8px 22px rgba(8,31,40,.08)}
.menu-toggle:after{position:absolute;transform:translateY(7px)}
.menu-toggle:before{position:absolute;transform:translateY(-7px)}
body.menu-open .menu-toggle span{transform:scaleX(0)}
body.menu-open .menu-toggle:before{transform:rotate(45deg)}
body.menu-open .menu-toggle:after{transform:rotate(-45deg)}

/* Service mega menu with construction-specific iconography */
.nav-drop-menu{left:50%;top:calc(100% + 16px);width:min(780px,calc(100vw - 36px));padding:16px;border-radius:26px;border:1px solid rgba(5,55,70,.12);background:rgba(255,255,255,.975);box-shadow:0 32px 90px rgba(4,28,36,.18);transform:translate(-42%,12px);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{transform:translate(-42%,0)}
.nav-drop-intro{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:17px 18px 18px;margin-bottom:9px;border-radius:18px;background:radial-gradient(circle at 85% 20%,rgba(22,196,243,.16),transparent 32%),linear-gradient(125deg,#101a1f,#17252b);color:#fff}
.nav-drop-intro>div{display:grid;gap:5px}
.nav-drop-kicker{color:var(--cyan-bright);font-size:.61rem;text-transform:uppercase;letter-spacing:.15em;font-weight:850}
.nav-drop-intro strong{font-family:var(--font-display);max-width:430px;font-size:1.05rem;line-height:1.25;letter-spacing:-.025em}
.nav-drop-intro>a{display:inline-flex!important;align-items:center;gap:8px;flex:0 0 auto;padding:10px 13px!important;border:1px solid rgba(255,255,255,.13);border-radius:999px!important;background:rgba(255,255,255,.06);color:#fff!important;font-size:.7rem!important;text-transform:uppercase;letter-spacing:.06em;font-weight:850}
.nav-drop-intro>a:hover{background:var(--cyan)!important;color:#03242d!important}
.nav-arrow{width:15px;height:15px}
.nav-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.nav-drop-menu .nav-service-link{position:relative;display:grid;grid-template-columns:43px 1fr 18px;align-items:center;gap:11px;min-height:76px;padding:10px 12px;border-radius:16px;color:#27343a;transition:.25s var(--ease)}
.nav-drop-menu .nav-service-link:hover{background:linear-gradient(135deg,rgba(0,168,216,.095),rgba(22,196,243,.035));color:#005f7b;transform:translateX(3px)}
.nav-service-icon{display:grid;place-items:center;width:43px;height:43px;border:1px solid rgba(0,168,216,.14);border-radius:14px;background:linear-gradient(145deg,#f2f8fa,#fff);color:var(--cyan-deep);box-shadow:0 8px 22px rgba(5,65,82,.07)}
.nav-service-icon .ui-icon{width:23px;height:23px}
.nav-service-link>span:nth-child(2){display:grid;gap:3px;min-width:0}
.nav-service-link strong{font-size:.82rem;line-height:1.2}
.nav-service-link small{overflow:hidden;color:#748087;font-size:.66rem;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.nav-service-arrow{width:15px;height:15px;color:var(--cyan-deep);opacity:0;transform:translate(-5px,5px);transition:.25s var(--ease)}
.nav-service-link:hover .nav-service-arrow{opacity:1;transform:none}

/* Wheel-directed hero sequencing */
.cinematic-hero{height:calc(100svh - 134px);min-height:720px}
.cinematic-slide h1,.cinematic-slide h2{font-weight:710;letter-spacing:-.07em}
.cinematic-slide__index,.cinematic-slide__estimate,.cinematic-slide__family,.cinematic-hero__nav button b{font-family:var(--font-body)}
.cinematic-scroll{right:22px;gap:13px;padding:8px 11px;border-radius:999px;background:rgba(5,12,15,.32);border:1px solid rgba(255,255,255,.09);backdrop-filter:blur(12px);transition:background .3s,border-color .3s,color .3s}
.cinematic-scroll>span:first-child{width:42px;height:1px}
.cinematic-scroll>.cinematic-scroll__copy{display:grid;width:auto;height:auto;gap:2px;background:none;overflow:visible;line-height:1.05}
.cinematic-scroll>.cinematic-scroll__copy:after{display:none}
.cinematic-scroll__copy small{color:rgba(255,255,255,.38);font-size:.47rem;letter-spacing:.16em}
.cinematic-scroll__copy b{color:rgba(255,255,255,.72);font-size:.58rem;white-space:nowrap}
.cinematic-hero.is-wheel-complete .cinematic-scroll{color:#041f27;background:linear-gradient(135deg,var(--cyan),var(--cyan-bright));border-color:transparent;box-shadow:0 12px 30px rgba(0,168,216,.25)}
.cinematic-hero.is-wheel-complete .cinematic-scroll__copy small,.cinematic-hero.is-wheel-complete .cinematic-scroll__copy b{color:#04242d}
.cinematic-hero.is-wheel-complete .cinematic-scroll>span:first-child{background:rgba(3,36,45,.3)}
.cinematic-hero.is-wheel-complete .cinematic-scroll>span:first-child:after{background:#04242d}
.cinematic-hero.is-wheel-transitioning .cinematic-slide__grid{opacity:.23}
.cinematic-hero.is-wheel-transitioning:after{content:"";position:absolute;z-index:11;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,transparent,var(--cyan-bright),transparent);animation:heroWheelPulse 1s var(--ease) both;pointer-events:none}
@keyframes heroWheelPulse{0%{transform:scaleX(0);opacity:0}35%{opacity:1}100%{transform:scaleX(1);opacity:0}}

@media(min-width:1380px){.brand-descriptor{display:block}.nav{width:min(1320px,calc(100% - 56px))}}
@media(max-width:1220px){.nav-call{display:none}.nav{gap:14px}.nav-links>a,.nav-drop>button{padding-inline:9px}}
@media(max-width:1050px){
  .topbar-promise span,.topbar-service-area{display:none}
  .topbar-inner{height:42px}
  .site-header{position:sticky}
  .nav{height:78px}.site-header.is-scrolled .nav{height:68px}
  .brand img,.site-header.is-scrolled .brand img{width:172px}
  .nav-links{position:absolute;inset:auto 13px;top:calc(100% + 10px);max-height:calc(100svh - 105px);padding:14px;border-radius:24px;background:rgba(255,255,255,.985);box-shadow:0 28px 90px rgba(4,28,36,.2);backdrop-filter:blur(22px)}
  .nav-links>a,.nav-drop>button{min-height:50px;border-radius:14px;font-size:.92rem}
  .nav-drop-menu{position:static;width:auto;padding:8px;margin:5px 0 7px;border:0;border-radius:18px;background:var(--mist);box-shadow:none;opacity:1;visibility:visible;transform:none!important;display:none}
  .nav-drop.open .nav-drop-menu{display:block}
  .nav-drop-intro{display:none}
  .nav-service-grid{grid-template-columns:1fr}
  .nav-drop-menu .nav-service-link{min-height:66px;background:rgba(255,255,255,.66)}
  .nav-estimate{display:none!important}
  .menu-toggle{display:grid}
  .cinematic-hero{height:calc(100svh - 120px)}
}
@media(max-width:760px){
  .topbar-inner{min-height:38px;padding:5px 0}
  .topbar-promise strong:after,.topbar-email{display:none}
  .topbar-promise strong{font-size:.63rem;letter-spacing:.08em}
  .topbar-link{padding-inline:7px}
  .topbar-link span{font-size:.68rem}
  .nav{height:72px}.site-header.is-scrolled .nav{height:64px}
  .brand img,.site-header.is-scrolled .brand img{width:158px}
  .cinematic-hero{height:calc(100svh - 110px);min-height:680px}
  .cinematic-scroll{display:none}
}
@media(max-width:430px){.topbar-promise{display:none}.topbar-links{width:100%;justify-content:space-between}.topbar-link{min-height:30px}.brand img,.site-header.is-scrolled .brand img{width:148px}}
@media(prefers-reduced-motion:reduce){.cinematic-hero.is-wheel-transitioning:after{animation:none;display:none}.site-header,.nav,.brand img{transition:none!important}}
.menu-toggle:before,.menu-toggle:after{left:50%;top:50%;margin:-1px 0 0 -10.5px}
@media(max-width:760px){.topbar-link span{display:inline}.topbar-email{display:none}}

/* V2.0.24 — Original live-site homepage slider recreation. */
.original-home-slider{position:relative;width:100%;height:calc(100vh - 92px);min-height:620px;max-height:920px;overflow:hidden;background:#111;color:#fff}
.original-home-slider__slide{position:absolute;inset:0;opacity:0;visibility:hidden;z-index:0;background:#111;transition:opacity .8s ease,visibility 0s linear .8s}
.original-home-slider__slide.is-active{opacity:1;visibility:visible;z-index:1;transition-delay:0s}
.original-home-slider__video{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;background:#111;transform:none!important;filter:none!important;animation:none!important}
.original-home-slider__shade{position:absolute;inset:0;background:rgba(0,0,0,.42);pointer-events:none}
.original-home-slider__copy{position:absolute;z-index:2;left:50%;top:50%;width:min(1040px,calc(100% - 48px));transform:translate(-50%,-50%);text-align:center;color:#fff}
.original-home-slider__copy h2{margin:0;color:#fff;font-family:Montserrat,Arial,Helvetica,sans-serif;font-size:clamp(28px,3.65vw,56px);font-weight:700;line-height:1.16;letter-spacing:.005em;text-transform:uppercase;text-shadow:0 2px 14px rgba(0,0,0,.38)}
.original-home-slider__copy hr{width:88px;height:2px;margin:26px auto 24px;border:0;background:#fff;opacity:.95}
.original-home-slider__copy p{margin:15px 0 0;color:#fff;font-family:Montserrat,Arial,Helvetica,sans-serif;font-size:clamp(16px,1.45vw,22px);font-weight:400;line-height:1.4}
@media(max-width:782px){.original-home-slider{height:76vh;min-height:560px}.original-home-slider__copy{width:calc(100% - 34px)}.original-home-slider__copy h2{font-size:clamp(25px,8.2vw,42px);line-height:1.14}.original-home-slider__copy hr{margin:20px auto 18px}.original-home-slider__copy p{margin-top:12px}}
@media(prefers-reduced-motion:reduce){.original-home-slider__slide{transition:none}}

/* ========================================================================
   V2.0.26 — FULL-HEIGHT WHEEL HERO (NAVIGATION REVERTED TO V2.0.24)
   Automatic video-end sequencing and wheel navigation are independent.
   ======================================================================== */
.original-home-slider{height:calc(100svh - 132px);min-height:620px;max-height:none;isolation:isolate;outline:0;background:#071116}
.original-home-slider:focus-visible{box-shadow:inset 0 0 0 3px var(--cyan-bright)}
.original-home-slider:before{content:"";position:absolute;z-index:5;left:0;right:0;top:0;height:2px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--cyan-bright),transparent);opacity:0;transform:translateX(-100%)}
.original-home-slider.is-wheel-transitioning:before{opacity:.92;animation:heroWheelSweep .82s var(--ease) both}
@keyframes heroWheelSweep{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.original-home-slider__slide{transition:opacity .82s cubic-bezier(.22,.72,.24,1),visibility 0s linear .82s}
.original-home-slider__slide.is-active{transition-delay:0s}
.original-home-slider__shade{background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.38) 48%,rgba(0,0,0,.68)),linear-gradient(90deg,rgba(2,16,22,.32),transparent 42%,rgba(2,16,22,.16))}
.original-home-slider__copy{top:47%;width:min(1120px,calc(100% - 64px))}
.original-home-slider__copy h2{font-family:var(--font-display);font-size:clamp(31px,3.75vw,62px);font-weight:690;line-height:1.08;letter-spacing:-.045em;text-wrap:balance}
.original-home-slider__copy hr{width:92px;height:3px;margin:25px auto 23px;background:linear-gradient(90deg,var(--cyan-bright),#fff);border-radius:99px}
.original-home-slider__copy p{font-family:var(--font-body);font-size:clamp(14px,1.15vw,18px);font-weight:750;letter-spacing:.16em;text-transform:uppercase}
.original-home-slider__slide .original-home-slider__copy{opacity:0;transform:translate(-50%,calc(-50% + 18px));transition:opacity .55s var(--ease),transform .7s var(--ease)}
.original-home-slider__slide.is-active .original-home-slider__copy{opacity:1;transform:translate(-50%,-50%);transition-delay:.16s}
.original-home-slider__meta{position:absolute;z-index:6;left:clamp(22px,4vw,66px);right:clamp(22px,4vw,66px);bottom:clamp(24px,4.3vh,48px);display:flex;align-items:flex-end;justify-content:space-between;gap:24px;color:#fff;pointer-events:none}
.original-home-slider__counter{display:flex;align-items:center;gap:12px;font-family:var(--font-display);font-size:.72rem;font-weight:750;letter-spacing:.16em}
.original-home-slider__counter span:first-child{color:var(--cyan-bright);font-size:1.15rem}
.original-home-slider__counter i{display:block;width:54px;height:1px;background:rgba(255,255,255,.42)}
.original-home-slider__wheel{display:flex;align-items:center;gap:12px;font-size:.65rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.original-home-slider__mouse{position:relative;display:block;width:25px;height:38px;border:1px solid rgba(255,255,255,.55);border-radius:99px}
.original-home-slider__mouse i{position:absolute;top:8px;left:50%;width:3px;height:7px;margin-left:-1.5px;border-radius:99px;background:var(--cyan-bright);animation:heroWheelDot 1.7s ease-in-out infinite}
@keyframes heroWheelDot{0%{opacity:0;transform:translateY(-2px)}25%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translateY(11px)}}
@media(max-width:1050px){.original-home-slider{height:calc(100svh - 120px);min-height:570px}}
@media(max-width:620px){.original-home-slider{height:calc(100svh - 114px);min-height:540px}.original-home-slider__copy{top:45%;width:calc(100% - 34px)}.original-home-slider__copy h2{font-size:clamp(27px,8.5vw,41px);line-height:1.09}.original-home-slider__copy p{font-size:.68rem;letter-spacing:.12em}.original-home-slider__meta{left:19px;right:19px;bottom:21px}.original-home-slider__counter i{width:34px}.original-home-slider__wheel>span:last-child{max-width:112px;line-height:1.45;text-align:right}}
@media(prefers-reduced-motion:reduce){.original-home-slider:before,.original-home-slider__mouse i{animation:none!important}.original-home-slider__slide .original-home-slider__copy{transition:none!important;transform:translate(-50%,-50%)}}


/* ========================================================================
   V2.0.28 — CINEMATIC INTERACTIVE VIDEO HERO
   Staged sequence: scene reveal → copy reveal → native video playback.
   ======================================================================== */
.hero-cinematic-v228{
  --hero-pointer-x:50%;
  --hero-pointer-y:44%;
  --hero-cyan:#18c8f3;
  --hero-cyan-soft:rgba(24,200,243,.24);
  --hero-glass:rgba(5,22,29,.56);
  height:calc(100svh - 132px);
  min-height:660px;
  max-height:none;
  isolation:isolate;
  overflow:hidden;
  background:#031016;
  outline:0;
}
.hero-cinematic-v228:focus-visible{box-shadow:inset 0 0 0 3px var(--hero-cyan)}
.hero-cinematic-v228:before{
  content:"";
  position:absolute;
  z-index:4;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at var(--hero-pointer-x) var(--hero-pointer-y),rgba(21,201,241,.16),transparent 27%),
    linear-gradient(180deg,rgba(2,13,18,.04),rgba(2,13,18,.12) 44%,rgba(2,13,18,.58));
  transition:background-position .25s ease;
}
.hero-cinematic-v228:after{
  content:"";
  position:absolute;
  z-index:12;
  left:-25%;
  top:0;
  width:22%;
  height:100%;
  pointer-events:none;
  opacity:0;
  transform:skewX(-10deg) translateX(-180%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),rgba(24,200,243,.42),transparent);
  mix-blend-mode:screen;
}
.hero-cinematic-v228.is-transitioning:after{animation:heroV228Sweep 1.05s cubic-bezier(.2,.8,.2,1) both}
@keyframes heroV228Sweep{
  0%{opacity:0;transform:skewX(-10deg) translateX(-180%)}
  24%{opacity:.85}
  100%{opacity:0;transform:skewX(-10deg) translateX(740%)}
}

.hero-cinematic-v228 .original-home-slider__slide{
  z-index:0;
  opacity:0;
  visibility:hidden;
  clip-path:inset(0 0 0 100%);
  background:#031016;
  transition:
    clip-path .76s cubic-bezier(.77,0,.18,1),
    opacity .5s ease,
    visibility 0s linear .8s;
  will-change:clip-path,opacity;
}
.hero-cinematic-v228[data-transition-direction="backward"] .original-home-slider__slide{clip-path:inset(0 100% 0 0)}
.hero-cinematic-v228 .original-home-slider__slide.is-leaving{
  z-index:1;
  opacity:1;
  visibility:visible;
  clip-path:inset(0);
}
.hero-cinematic-v228 .original-home-slider__slide.is-active{
  z-index:2;
  opacity:1;
  visibility:visible;
  clip-path:inset(0);
  transition-delay:0s;
}
.hero-cinematic-v228 .original-home-slider__video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  background:#031016;
  transform:none!important;
  filter:none!important;
  animation:none!important;
}
.hero-cinematic-v228 .original-home-slider__shade{
  z-index:1;
  background:
    linear-gradient(90deg,rgba(1,12,17,.7),rgba(2,16,22,.27) 48%,rgba(1,12,17,.3)),
    linear-gradient(180deg,rgba(0,7,10,.18),transparent 38%,rgba(0,7,10,.76));
}
.hero-cinematic-v228__beam{
  position:absolute;
  z-index:2;
  inset:0;
  pointer-events:none;
  opacity:.62;
  background:
    linear-gradient(105deg,transparent 0 48%,rgba(24,200,243,.09) 49%,transparent 50%),
    repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(255,255,255,.045) calc(25% - 1px) 25%);
}
.hero-cinematic-v228 .original-home-slider__slide.is-entering .hero-cinematic-v228__beam{animation:heroV228Beam .76s cubic-bezier(.2,.8,.2,1) both}
@keyframes heroV228Beam{0%{opacity:0;transform:translateX(-7%)}100%{opacity:.62;transform:translateX(0)}}

.hero-cinematic-v228__ambient{position:absolute;z-index:3;inset:0;overflow:hidden;pointer-events:none}
.hero-cinematic-v228__ambient i{position:absolute;border:1px solid rgba(24,200,243,.16);border-radius:50%;opacity:.6}
.hero-cinematic-v228__ambient i:nth-child(1){width:48vw;height:48vw;min-width:520px;min-height:520px;right:-19vw;top:-26vw}
.hero-cinematic-v228__ambient i:nth-child(2){width:23vw;height:23vw;min-width:260px;min-height:260px;right:7vw;top:-9vw;border-color:rgba(255,255,255,.1)}
.hero-cinematic-v228__ambient i:nth-child(3){width:12px;height:12px;right:clamp(25px,8vw,140px);top:29%;border:0;background:var(--hero-cyan);box-shadow:0 0 0 9px rgba(24,200,243,.09),0 0 45px 12px rgba(24,200,243,.28);animation:heroV228Pulse 2.8s ease-in-out infinite}
@keyframes heroV228Pulse{0%,100%{transform:scale(.78);opacity:.45}50%{transform:scale(1.08);opacity:1}}

.hero-cinematic-v228__frame{position:absolute;z-index:7;inset:clamp(18px,2.2vw,34px);pointer-events:none}
.hero-cinematic-v228__frame span{position:absolute;width:34px;height:34px;opacity:.55}
.hero-cinematic-v228__frame span:before,.hero-cinematic-v228__frame span:after{content:"";position:absolute;background:rgba(255,255,255,.72)}
.hero-cinematic-v228__frame span:before{width:34px;height:1px}.hero-cinematic-v228__frame span:after{width:1px;height:34px}
.hero-cinematic-v228__frame span:nth-child(1){left:0;top:0}
.hero-cinematic-v228__frame span:nth-child(2){right:0;top:0;transform:rotate(90deg)}
.hero-cinematic-v228__frame span:nth-child(3){right:0;bottom:0;transform:rotate(180deg)}
.hero-cinematic-v228__frame span:nth-child(4){left:0;bottom:0;transform:rotate(270deg)}

.hero-cinematic-v228 .original-home-slider__copy{
  z-index:6;
  left:clamp(25px,7.5vw,132px);
  top:47%;
  width:min(940px,calc(100% - 50px));
  transform:translateY(-50%);
  text-align:left;
  color:#fff;
}
.hero-cinematic-v228 .original-home-slider__copy [data-hero-copy-item]{
  opacity:0;
  transform:translateY(34px);
  filter:blur(8px);
  transition:
    opacity .62s cubic-bezier(.2,.8,.2,1),
    transform .78s cubic-bezier(.16,1,.3,1),
    filter .7s ease;
}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible .original-home-slider__copy [data-hero-copy-item]{opacity:1;transform:translateY(0);filter:blur(0)}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible [data-hero-copy-item]:nth-child(1){transition-delay:.02s}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible [data-hero-copy-item]:nth-child(2){transition-delay:.12s}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible [data-hero-copy-item]:nth-child(3){transition-delay:.22s}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible [data-hero-copy-item]:nth-child(4){transition-delay:.3s}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible [data-hero-copy-item]:nth-child(5){transition-delay:.38s}
.hero-cinematic-v228 .original-home-slider__copy h2{
  max-width:900px;
  margin:0;
  color:#fff;
  font-family:var(--font-display);
  font-size:clamp(39px,5.1vw,82px);
  font-weight:650;
  line-height:.98;
  letter-spacing:-.055em;
  text-transform:uppercase;
  text-wrap:balance;
  text-shadow:0 12px 44px rgba(0,0,0,.36);
}
.hero-cinematic-v228 .original-home-slider__copy h2 em{font-style:normal;color:var(--hero-cyan);text-shadow:0 0 30px rgba(24,200,243,.28)}
.hero-cinematic-v228 .original-home-slider__copy .hero-cinematic-v228__secondary{max-width:720px;font-size:clamp(19px,2.05vw,32px);font-weight:580;line-height:1.18;letter-spacing:-.025em}
.hero-cinematic-v228 .original-home-slider__copy hr{width:96px;height:3px;margin:28px 0 24px;border:0;border-radius:99px;background:linear-gradient(90deg,var(--hero-cyan),rgba(255,255,255,.85));transform-origin:left center}
.hero-cinematic-v228__eyebrow{display:flex;align-items:center;gap:13px;margin:0 0 25px!important;color:rgba(255,255,255,.82)!important;font-size:.72rem!important;font-weight:800!important;letter-spacing:.2em!important;text-transform:uppercase}
.hero-cinematic-v228__eyebrow i{display:inline-block;width:38px;height:1px;background:var(--hero-cyan)}
.hero-cinematic-v228__eyebrow span:last-child{color:var(--hero-cyan)}
.hero-cinematic-v228__family{margin:16px 0 0!important;color:rgba(255,255,255,.76)!important;font-family:var(--font-body)!important;font-size:.76rem!important;font-weight:750!important;line-height:1.4!important;letter-spacing:.19em!important;text-transform:uppercase}

.hero-cinematic-v228__dock{
  position:absolute;
  z-index:9;
  left:clamp(22px,4vw,64px);
  right:clamp(22px,4vw,64px);
  bottom:clamp(24px,3.6vh,42px);
  display:grid;
  grid-template-columns:minmax(360px,1fr) auto auto;
  align-items:end;
  gap:clamp(20px,3vw,48px);
  padding:17px 18px 16px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:19px;
  background:linear-gradient(135deg,rgba(2,20,27,.67),rgba(4,31,40,.42));
  box-shadow:0 22px 65px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.08);
  backdrop-filter:blur(18px) saturate(125%);
}
.hero-cinematic-v228__chapters{display:grid;grid-template-columns:repeat(3,minmax(72px,1fr));gap:10px}
.hero-cinematic-v228__chapter{appearance:none;display:grid;gap:9px;min-width:0;padding:0 4px 2px;border:0;background:transparent;color:rgba(255,255,255,.54);text-align:left;cursor:pointer;transition:color .25s ease,transform .25s ease}
.hero-cinematic-v228__chapter:hover,.hero-cinematic-v228__chapter:focus-visible{color:#fff;transform:translateY(-2px);outline:0}
.hero-cinematic-v228__chapter.is-active{color:#fff}
.hero-cinematic-v228__chapter-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.hero-cinematic-v228__chapter-head b{font-family:var(--font-display);font-size:.7rem;letter-spacing:.13em}
.hero-cinematic-v228__chapter-head small{font-size:.58rem;font-weight:750;letter-spacing:.08em;color:rgba(255,255,255,.48)}
.hero-cinematic-v228__chapter.is-active .hero-cinematic-v228__chapter-head b{color:var(--hero-cyan)}
.hero-cinematic-v228__track{position:relative;display:block;width:100%;height:3px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.16)}
.hero-cinematic-v228__track i{position:absolute;inset:0;display:block;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,var(--hero-cyan),#fff);will-change:transform}
.hero-cinematic-v228__time{display:flex;align-items:center;gap:10px;padding-bottom:2px;color:rgba(255,255,255,.76);font-family:var(--font-display);font-size:.64rem;font-weight:700;letter-spacing:.11em;white-space:nowrap}
.hero-cinematic-v228__time i{width:28px;height:1px;background:rgba(255,255,255,.3)}
.hero-cinematic-v228__controls{display:flex;align-items:center;gap:8px}
.hero-cinematic-v228__controls button{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.17);border-radius:50%;background:rgba(255,255,255,.07);color:#fff;cursor:pointer;backdrop-filter:blur(8px);transition:transform .25s ease,border-color .25s ease,background .25s ease,color .25s ease}
.hero-cinematic-v228__controls button:hover,.hero-cinematic-v228__controls button:focus-visible{transform:translateY(-2px);border-color:rgba(24,200,243,.7);background:rgba(24,200,243,.14);color:var(--hero-cyan);outline:0}
.hero-cinematic-v228__controls button:nth-child(2){width:48px;height:48px;border-color:rgba(24,200,243,.54);background:rgba(24,200,243,.12)}
.hero-cinematic-v228__controls span{font-size:1rem;line-height:1}

.hero-cinematic-v228 .original-home-slider__meta{left:clamp(22px,4vw,64px);right:clamp(22px,4vw,64px);top:clamp(24px,3.2vh,38px);bottom:auto;z-index:9;align-items:center}
.hero-cinematic-v228 .original-home-slider__counter{padding:9px 12px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(4,22,29,.32);backdrop-filter:blur(10px)}
.hero-cinematic-v228 .original-home-slider__wheel{padding:9px 12px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(4,22,29,.3);backdrop-filter:blur(10px)}
.hero-cinematic-v228 .original-home-slider__mouse{width:20px;height:30px}
.hero-cinematic-v228 .original-home-slider__mouse i{top:6px}

.hero-cinematic-v228.is-buffering .hero-cinematic-v228__controls button:nth-child(2):after{content:"";position:absolute;width:56px;height:56px;border:1px solid transparent;border-top-color:var(--hero-cyan);border-radius:50%;animation:heroV228Spin .9s linear infinite}
.hero-cinematic-v228__controls button:nth-child(2){position:relative}
@keyframes heroV228Spin{to{transform:rotate(360deg)}}

@media(max-width:1050px){
  .hero-cinematic-v228{height:calc(100svh - 120px);min-height:620px}
  .hero-cinematic-v228 .original-home-slider__copy{left:clamp(25px,5vw,58px);width:calc(100% - 50px)}
  .hero-cinematic-v228__dock{grid-template-columns:1fr auto;gap:18px}
  .hero-cinematic-v228__time{display:none}
}
@media(max-width:720px){
  .hero-cinematic-v228{height:calc(100svh - 110px);min-height:650px}
  .hero-cinematic-v228 .original-home-slider__copy{left:22px;top:43%;width:calc(100% - 44px);transform:translateY(-50%)}
  .hero-cinematic-v228 .original-home-slider__copy h2{font-size:clamp(34px,10.6vw,55px);line-height:1.01;letter-spacing:-.05em}
  .hero-cinematic-v228 .original-home-slider__copy .hero-cinematic-v228__secondary{font-size:clamp(17px,5.2vw,24px);line-height:1.2}
  .hero-cinematic-v228__eyebrow{margin-bottom:18px!important;font-size:.61rem!important;letter-spacing:.14em!important}
  .hero-cinematic-v228 .original-home-slider__copy hr{margin:21px 0 18px}
  .hero-cinematic-v228__family{font-size:.63rem!important;letter-spacing:.13em!important}
  .hero-cinematic-v228__dock{left:15px;right:15px;bottom:16px;grid-template-columns:1fr auto;padding:13px;border-radius:16px}
  .hero-cinematic-v228__chapter-head small{display:none}
  .hero-cinematic-v228__chapters{gap:7px}
  .hero-cinematic-v228__controls button{width:38px;height:38px}
  .hero-cinematic-v228__controls button:first-child{display:none}
  .hero-cinematic-v228__controls button:nth-child(2){width:42px;height:42px}
  .hero-cinematic-v228 .original-home-slider__meta{left:15px;right:15px;top:16px}
  .hero-cinematic-v228 .original-home-slider__counter{display:none}
  .hero-cinematic-v228 .original-home-slider__wheel{margin-left:auto;font-size:.55rem;letter-spacing:.1em}
  .hero-cinematic-v228__frame{inset:12px}
}
@media(max-width:430px){
  .hero-cinematic-v228 .original-home-slider__copy{top:41%}
  .hero-cinematic-v228 .original-home-slider__copy h2{font-size:clamp(31px,10vw,43px)}
  .hero-cinematic-v228__dock{gap:9px}
  .hero-cinematic-v228__controls button:last-child{display:none}
}
@media(prefers-reduced-motion:reduce){
  .hero-cinematic-v228:after,.hero-cinematic-v228__ambient i:nth-child(3),.hero-cinematic-v228 .original-home-slider__slide.is-entering .hero-cinematic-v228__beam{animation:none!important}
  .hero-cinematic-v228 .original-home-slider__slide{transition:none!important;clip-path:inset(0)!important}
  .hero-cinematic-v228 .original-home-slider__copy [data-hero-copy-item]{transition:none!important;filter:none!important}
}

/* ========================================================================
   V2.0.28 — REFINED HERO COMPOSITION + PRECISION NAVIGATION
   Improves hero text rhythm, cinematic scene changes, menu spacing and the
   service mega-menu alignment while preserving all established functionality.
   ======================================================================== */

/* Header width, spacing and visual hierarchy */
.topbar-inner,
.site-header .nav{
  width:min(1420px,calc(100% - 48px));
}
.topbar-inner{
  height:44px;
  gap:clamp(18px,2vw,34px);
}
.topbar-promise>div{gap:12px}
.topbar-promise strong{font-size:.68rem;letter-spacing:.12em}
.topbar-promise span{font-size:.7rem}
.topbar-links{gap:5px}
.topbar-link,.topbar-service-area{min-height:30px;padding-inline:11px}

.site-header{
  background:rgba(250,253,254,.93);
  border-bottom:1px solid rgba(8,50,63,.09);
  box-shadow:0 7px 30px rgba(5,31,40,.045);
}
.site-header.is-scrolled{
  background:rgba(252,254,255,.975);
  box-shadow:0 16px 46px rgba(4,28,36,.12);
}
.site-header .nav{
  height:84px;
  justify-content:flex-start;
  gap:clamp(18px,2vw,34px);
}
.site-header.is-scrolled .nav{height:70px}
.brand{flex:0 0 auto;min-width:178px;gap:10px}
.brand img{width:178px}
.site-header.is-scrolled .brand img{width:162px}
.brand-descriptor{max-width:128px;padding-left:13px;font-size:.6rem;line-height:1.45;letter-spacing:.115em}
.nav-links{
  flex:1 1 auto;
  justify-content:center;
  gap:4px;
  min-width:0;
}
.nav-links>a,.nav-drop>button{
  min-height:46px;
  padding:0 13px;
  border-radius:13px;
  color:#27353b;
  font-size:.81rem;
  font-weight:760;
  letter-spacing:-.004em;
}
.nav-links>a:hover,.nav-links>a.active,.nav-drop>button:hover,.nav-drop.active>button,.nav-drop:focus-within>button{
  color:#006d8c;
  background:linear-gradient(145deg,rgba(0,168,216,.105),rgba(22,196,243,.045));
}
.nav-links>a:after,.nav-drop>button:after{
  left:13px;
  right:13px;
  bottom:4px;
  height:2px;
}
.nav-drop>button{gap:7px}
.nav-chevron{width:14px;height:14px}
.nav-cta{flex:0 0 auto;gap:8px;margin-left:auto}
.nav-call{min-height:46px;padding:0 9px;border:1px solid transparent}
.nav-call:hover{border-color:rgba(0,168,216,.14);background:rgba(0,168,216,.055)}
.nav-estimate{min-height:46px;padding-inline:17px;font-size:.79rem;box-shadow:0 11px 28px rgba(0,168,216,.22)}

/* Precisely centered services mega menu */
.nav-drop-menu{
  left:50%;
  top:calc(100% + 13px);
  width:min(900px,calc(100vw - 48px));
  padding:18px;
  border:1px solid rgba(7,59,73,.12);
  border-radius:25px;
  background:rgba(253,255,255,.985);
  box-shadow:0 34px 92px rgba(4,28,36,.2),0 3px 10px rgba(4,28,36,.05);
  transform:translate(-50%,16px) scale(.985);
  transform-origin:50% 0;
  transition:opacity .24s ease,visibility .24s ease,transform .34s cubic-bezier(.16,1,.3,1);
}
.nav-drop-menu:before{
  content:"";
  position:absolute;
  left:50%;
  top:-7px;
  width:14px;
  height:14px;
  border-left:1px solid rgba(7,59,73,.12);
  border-top:1px solid rgba(7,59,73,.12);
  background:rgba(253,255,255,.985);
  transform:translateX(-50%) rotate(45deg);
}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{
  transform:translate(-50%,0) scale(1);
}
.nav-drop-intro{
  position:relative;
  min-height:104px;
  padding:21px 23px;
  margin-bottom:12px;
  border-radius:19px;
  overflow:hidden;
  background:
    linear-gradient(110deg,rgba(9,25,31,.98),rgba(14,43,53,.96)),
    #0b1b21;
}
.nav-drop-intro:after{
  content:"";
  position:absolute;
  right:-46px;
  top:-68px;
  width:210px;
  height:210px;
  border:1px solid rgba(25,204,244,.22);
  border-radius:50%;
  box-shadow:0 0 0 26px rgba(25,204,244,.035),0 0 0 52px rgba(25,204,244,.025);
  pointer-events:none;
}
.nav-drop-intro>div,.nav-drop-intro>a{position:relative;z-index:1}
.nav-drop-intro>div{gap:7px}
.nav-drop-kicker{font-size:.58rem;letter-spacing:.17em}
.nav-drop-intro strong{max-width:500px;font-size:1.08rem;line-height:1.28;letter-spacing:-.028em}
.nav-drop-intro>a{
  min-height:42px;
  padding:0 15px!important;
  gap:9px;
  font-size:.66rem!important;
  letter-spacing:.075em;
}
.nav-service-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 10px;
}
.nav-drop-menu .nav-service-link{
  grid-template-columns:48px minmax(0,1fr) 18px;
  gap:13px;
  min-height:88px;
  padding:12px 14px;
  border:1px solid rgba(7,66,82,.065);
  border-radius:17px;
  background:linear-gradient(145deg,rgba(247,251,252,.84),rgba(255,255,255,.96));
  transition:transform .28s cubic-bezier(.16,1,.3,1),background .25s ease,border-color .25s ease,box-shadow .28s ease,color .25s ease;
}
.nav-drop-menu .nav-service-link:hover{
  transform:translateY(-2px);
  border-color:rgba(0,168,216,.2);
  background:linear-gradient(145deg,rgba(235,249,253,.98),#fff);
  box-shadow:0 12px 28px rgba(4,56,70,.09);
}
.nav-service-icon{
  width:48px;
  height:48px;
  border-radius:15px;
  box-shadow:0 7px 19px rgba(5,65,82,.065);
}
.nav-service-icon .ui-icon{width:24px;height:24px}
.nav-service-link>span:nth-child(2){gap:5px;align-content:center}
.nav-service-link strong{font-size:.82rem;line-height:1.18;letter-spacing:-.012em}
.nav-service-link small{
  display:-webkit-box;
  overflow:hidden;
  color:#69777d;
  font-size:.64rem;
  line-height:1.42;
  white-space:normal;
  text-overflow:clip;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.nav-service-arrow{align-self:center}

/* More spacious hero content composition */
.hero-cinematic-v228{
  --hero-copy-left:clamp(30px,7.25vw,126px);
  --hero-copy-width:min(900px,calc(100% - 60px));
  background:#020d12;
}
.hero-cinematic-v228:before{
  background:
    radial-gradient(circle at var(--hero-pointer-x) var(--hero-pointer-y),rgba(21,201,241,.14),transparent 29%),
    linear-gradient(180deg,rgba(1,11,15,.03),rgba(2,13,18,.11) 43%,rgba(1,10,14,.63));
}
.hero-cinematic-v228 .original-home-slider__shade{
  background:
    linear-gradient(90deg,rgba(1,11,15,.78) 0,rgba(2,15,20,.46) 36%,rgba(2,15,20,.16) 67%,rgba(1,10,14,.3) 100%),
    linear-gradient(180deg,rgba(0,7,10,.16),transparent 35%,rgba(0,7,10,.78));
}
.hero-cinematic-v228 .original-home-slider__copy{
  left:var(--hero-copy-left);
  top:44%;
  width:var(--hero-copy-width);
  max-width:900px;
  padding:clamp(25px,2.6vw,40px) clamp(24px,3vw,46px) clamp(27px,2.8vw,42px);
  border-left:3px solid var(--hero-cyan);
  border-radius:0 28px 28px 0;
  background:linear-gradient(90deg,rgba(2,17,23,.75),rgba(2,17,23,.35) 68%,rgba(2,17,23,0));
  box-shadow:-18px 0 60px rgba(0,0,0,.18);
  transform:translateY(-50%);
  text-align:left;
}
.hero-cinematic-v228 .original-home-slider__copy:before{
  content:"";
  position:absolute;
  left:-3px;
  top:0;
  width:3px;
  height:100%;
  background:linear-gradient(180deg,transparent,var(--hero-cyan) 18%,#fff 52%,var(--hero-cyan) 82%,transparent);
  filter:drop-shadow(0 0 12px rgba(24,200,243,.6));
}
.hero-cinematic-v228__eyebrow{
  gap:12px;
  margin:0 0 21px!important;
  font-size:.66rem!important;
  letter-spacing:.19em!important;
  line-height:1.2!important;
}
.hero-cinematic-v228__eyebrow i{width:34px}
.hero-cinematic-v228 .original-home-slider__copy h2{
  max-width:810px;
  margin:0;
  font-size:clamp(40px,4.55vw,74px);
  font-weight:670;
  line-height:1.01;
  letter-spacing:-.048em;
  text-wrap:pretty;
}
.hero-cinematic-v228__line{display:block}
.hero-cinematic-v228__line + .hero-cinematic-v228__line{margin-top:.07em}
.hero-cinematic-v228 .original-home-slider__copy .hero-cinematic-v228__secondary{
  max-width:680px;
  font-size:clamp(18px,1.8vw,29px);
  font-weight:590;
  line-height:1.24;
  letter-spacing:-.023em;
}
.hero-cinematic-v228 .original-home-slider__copy hr{
  width:88px;
  height:3px;
  margin:24px 0 21px;
}
.hero-cinematic-v228__family{
  margin:14px 0 0!important;
  font-size:.7rem!important;
  line-height:1.45!important;
  letter-spacing:.17em!important;
}

/* Stagger heading lines separately for a cleaner editorial entrance */
.hero-cinematic-v228 .original-home-slider__copy h2[data-hero-copy-item]{
  opacity:1;
  transform:none;
  filter:none;
}
.hero-cinematic-v228 .original-home-slider__copy h2[data-hero-copy-item] .hero-cinematic-v228__line{
  opacity:0;
  transform:translateY(1.05em);
  filter:blur(7px);
  transition:opacity .58s ease,transform .82s cubic-bezier(.16,1,.3,1),filter .7s ease;
}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible h2[data-hero-copy-item] .hero-cinematic-v228__line{
  opacity:1;
  transform:translateY(0);
  filter:blur(0);
}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible h2[data-hero-copy-item] .hero-cinematic-v228__line:first-child{transition-delay:.11s}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible h2[data-hero-copy-item] .hero-cinematic-v228__line:last-child{transition-delay:.2s}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible [data-hero-copy-item]:nth-child(3){transition-delay:.31s}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible [data-hero-copy-item]:nth-child(4){transition-delay:.4s}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible [data-hero-copy-item]:nth-child(5){transition-delay:.49s}

/* Direction-aware cinematic pane transition */
.hero-cinematic-v228 .original-home-slider__slide{
  clip-path:polygon(104% 0,104% 0,100% 100%,100% 100%);
  transform:scale(1.018);
  transition:
    clip-path .92s cubic-bezier(.72,0,.16,1),
    transform 1.05s cubic-bezier(.16,1,.3,1),
    opacity .46s ease,
    visibility 0s linear 1s;
  will-change:clip-path,transform,opacity;
}
.hero-cinematic-v228[data-transition-direction="backward"] .original-home-slider__slide{
  clip-path:polygon(-4% 0,-4% 0,0 100%,0 100%);
}
.hero-cinematic-v228 .original-home-slider__slide.is-leaving{
  transform:scale(1);
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
}
.hero-cinematic-v228 .original-home-slider__slide.is-active{
  transform:scale(1);
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
  transition-delay:0s;
}
.hero-cinematic-v228 .original-home-slider__slide:after{
  content:"";
  position:absolute;
  z-index:5;
  top:-12%;
  bottom:-12%;
  left:-4px;
  width:4px;
  opacity:0;
  background:linear-gradient(180deg,transparent,var(--hero-cyan),#fff,var(--hero-cyan),transparent);
  box-shadow:0 0 36px rgba(24,200,243,.75);
  transform:skewX(-7deg);
  pointer-events:none;
}
.hero-cinematic-v228 .original-home-slider__slide.is-entering:after{animation:heroV228Edge 1s cubic-bezier(.72,0,.16,1) both}
.hero-cinematic-v228[data-transition-direction="backward"] .original-home-slider__slide.is-entering:after{left:auto;right:-4px;animation-name:heroV228EdgeBack}
@keyframes heroV228Edge{0%{left:100%;opacity:0}18%{opacity:1}82%{opacity:.9}100%{left:0;opacity:0}}
@keyframes heroV228EdgeBack{0%{right:100%;opacity:0}18%{opacity:1}82%{opacity:.9}100%{right:0;opacity:0}}

.hero-cinematic-v228__transition{
  position:absolute;
  z-index:11;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}
.hero-cinematic-v228__transition span{
  position:absolute;
  top:0;
  bottom:0;
  width:25.1%;
  opacity:0;
  background:linear-gradient(135deg,rgba(3,18,24,.99),rgba(6,45,56,.96) 62%,rgba(12,105,128,.94));
  box-shadow:inset -1px 0 rgba(255,255,255,.08);
  will-change:transform,opacity;
}
.hero-cinematic-v228__transition span:nth-child(1){left:0}
.hero-cinematic-v228__transition span:nth-child(2){left:25%}
.hero-cinematic-v228__transition span:nth-child(3){left:50%}
.hero-cinematic-v228__transition span:nth-child(4){left:75%}
.hero-cinematic-v228.is-transitioning .hero-cinematic-v228__transition span:nth-child(odd){animation:heroV228CurtainDown 1.08s cubic-bezier(.72,0,.18,1) both}
.hero-cinematic-v228.is-transitioning .hero-cinematic-v228__transition span:nth-child(even){animation:heroV228CurtainUp 1.08s cubic-bezier(.72,0,.18,1) both}
.hero-cinematic-v228.is-transitioning .hero-cinematic-v228__transition span:nth-child(2){animation-delay:.035s}
.hero-cinematic-v228.is-transitioning .hero-cinematic-v228__transition span:nth-child(3){animation-delay:.07s}
.hero-cinematic-v228.is-transitioning .hero-cinematic-v228__transition span:nth-child(4){animation-delay:.105s}
.hero-cinematic-v228[data-transition-direction="backward"].is-transitioning .hero-cinematic-v228__transition span:nth-child(odd){animation-name:heroV228CurtainUp}
.hero-cinematic-v228[data-transition-direction="backward"].is-transitioning .hero-cinematic-v228__transition span:nth-child(even){animation-name:heroV228CurtainDown}
@keyframes heroV228CurtainDown{
  0%{opacity:0;transform:translateY(-105%)}
  28%{opacity:1;transform:translateY(0)}
  52%{opacity:1;transform:translateY(0)}
  100%{opacity:0;transform:translateY(105%)}
}
@keyframes heroV228CurtainUp{
  0%{opacity:0;transform:translateY(105%)}
  28%{opacity:1;transform:translateY(0)}
  52%{opacity:1;transform:translateY(0)}
  100%{opacity:0;transform:translateY(-105%)}
}
.hero-cinematic-v228__transition i{
  position:absolute;
  left:-20%;
  top:0;
  width:15%;
  height:100%;
  opacity:0;
  transform:skewX(-11deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),rgba(24,200,243,.62),transparent);
  mix-blend-mode:screen;
}
.hero-cinematic-v228.is-transitioning .hero-cinematic-v228__transition i{animation:heroV228TransitionScan 1.12s cubic-bezier(.2,.8,.2,1) both}
.hero-cinematic-v228[data-transition-direction="backward"].is-transitioning .hero-cinematic-v228__transition i{animation-name:heroV228TransitionScanBack}
@keyframes heroV228TransitionScan{0%{left:-20%;opacity:0}28%{opacity:1}100%{left:115%;opacity:0}}
@keyframes heroV228TransitionScanBack{0%{left:115%;opacity:0}28%{opacity:1}100%{left:-20%;opacity:0}}

/* Refinements to the bottom interface */
.hero-cinematic-v228__dock{
  left:clamp(24px,4.2vw,70px);
  right:clamp(24px,4.2vw,70px);
  bottom:clamp(22px,3.2vh,36px);
  grid-template-columns:minmax(360px,1fr) auto auto;
  gap:clamp(20px,2.6vw,42px);
  padding:15px 17px 14px;
  border-radius:18px;
  background:linear-gradient(135deg,rgba(2,18,24,.72),rgba(4,31,40,.48));
}
.hero-cinematic-v228__chapters{gap:12px}
.hero-cinematic-v228__chapter{gap:8px;padding:0 3px 2px}
.hero-cinematic-v228__track{height:4px;background:rgba(255,255,255,.14)}
.hero-cinematic-v228__controls{gap:7px}
.hero-cinematic-v228__controls button{width:40px;height:40px}
.hero-cinematic-v228__controls button:nth-child(2){width:46px;height:46px}

@media(max-width:1300px){
  .site-header .nav{gap:16px}
  .nav-links>a,.nav-drop>button{padding-inline:10px;font-size:.78rem}
  .brand img{width:169px}.site-header.is-scrolled .brand img{width:156px}
}
@media(max-width:1220px){
  .site-header .nav{width:min(1260px,calc(100% - 36px))}
  .nav-call{display:none}
  .nav-links>a,.nav-drop>button{padding-inline:9px}
}
@media(max-width:1050px){
  .topbar-inner,.site-header .nav{width:calc(100% - 28px)}
  .site-header .nav{height:76px}.site-header.is-scrolled .nav{height:66px}
  .nav-links{justify-content:flex-start;gap:4px}
  .nav-drop-menu{
    position:static;
    width:auto;
    padding:9px;
    margin:6px 0 8px;
    border-radius:18px;
    transform:none!important;
  }
  .nav-drop-menu:before{display:none}
  .nav-service-grid{grid-template-columns:1fr;gap:6px}
  .nav-drop-menu .nav-service-link{min-height:72px;padding:10px 11px;grid-template-columns:44px minmax(0,1fr) 16px}
  .nav-service-icon{width:44px;height:44px}
  .hero-cinematic-v228{--hero-copy-left:clamp(25px,5vw,58px);--hero-copy-width:calc(100% - 50px)}
  .hero-cinematic-v228 .original-home-slider__copy{top:43%;padding:28px 32px}
  .hero-cinematic-v228__dock{grid-template-columns:1fr auto}
}
@media(max-width:720px){
  .topbar-inner,.site-header .nav{width:calc(100% - 24px)}
  .site-header .nav{height:70px}.site-header.is-scrolled .nav{height:62px}
  .brand img,.site-header.is-scrolled .brand img{width:154px}
  .hero-cinematic-v228{--hero-copy-left:18px;--hero-copy-width:calc(100% - 36px);min-height:650px}
  .hero-cinematic-v228 .original-home-slider__copy{
    top:41.5%;
    padding:22px 20px 24px 22px;
    border-left-width:2px;
    border-radius:0 20px 20px 0;
    background:linear-gradient(90deg,rgba(2,17,23,.8),rgba(2,17,23,.34) 76%,rgba(2,17,23,0));
  }
  .hero-cinematic-v228 .original-home-slider__copy h2{font-size:clamp(32px,9.6vw,48px);line-height:1.015;letter-spacing:-.045em}
  .hero-cinematic-v228 .original-home-slider__copy .hero-cinematic-v228__secondary{font-size:clamp(16px,4.7vw,22px);line-height:1.25}
  .hero-cinematic-v228__eyebrow{margin-bottom:16px!important;font-size:.58rem!important;letter-spacing:.13em!important}
  .hero-cinematic-v228 .original-home-slider__copy hr{width:72px;margin:18px 0 16px}
  .hero-cinematic-v228__family{margin-top:11px!important;font-size:.6rem!important;letter-spacing:.12em!important}
  .hero-cinematic-v228__dock{left:13px;right:13px;bottom:13px;padding:12px;border-radius:15px;gap:10px}
  .hero-cinematic-v228__chapters{gap:7px}
}
@media(max-width:430px){
  .topbar-inner{width:calc(100% - 18px)}
  .site-header .nav{width:calc(100% - 20px)}
  .brand img,.site-header.is-scrolled .brand img{width:145px}
  .hero-cinematic-v228 .original-home-slider__copy{top:39.5%;padding:20px 17px 21px}
  .hero-cinematic-v228 .original-home-slider__copy h2{font-size:clamp(29px,9.35vw,40px)}
}
@media(prefers-reduced-motion:reduce){
  .hero-cinematic-v228__transition,.hero-cinematic-v228 .original-home-slider__slide:after{display:none!important}
  .hero-cinematic-v228 .original-home-slider__slide{transform:none!important}
  .hero-cinematic-v228 .original-home-slider__copy h2[data-hero-copy-item] .hero-cinematic-v228__line{transition:none!important;transform:none!important;filter:none!important}
}
@media(min-width:1051px){
  .nav-drop:after{content:"";position:absolute;left:-22px;right:-22px;top:100%;height:18px}
}
/* Release transition-only compositing before native video playback begins. */
.hero-cinematic-v228 .original-home-slider__slide.is-active.is-playing{
  clip-path:none;
  transform:none;
  will-change:auto;
}

/* ========================================================================
   V2.0.29 — SAFE HERO TYPOGRAPHY + MODERN NAVIGATION SYSTEM
   Prevents hero copy clipping at every supported viewport and modernizes the
   utility bar, primary menu and Services mega menu without changing routes.
   ======================================================================== */

/* Modern utility rail */
.topbar{
  min-height:42px;
  overflow:visible;
  background:
    radial-gradient(circle at 16% -140%,rgba(28,201,242,.22),transparent 42%),
    linear-gradient(100deg,#061218 0%,#0a1c24 48%,#07151c 100%);
  border-bottom:1px solid rgba(255,255,255,.075);
  box-shadow:inset 0 -1px rgba(0,0,0,.2);
}
.topbar:after{
  content:"";
  position:absolute;
  right:4%;
  bottom:0;
  width:210px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(24,200,243,.7),transparent);
}
.topbar-inner{
  width:min(1460px,calc(100% - 56px));
  height:42px;
  gap:20px;
}
.topbar-promise{flex:0 1 auto;gap:10px}
.topbar-icon-wrap{
  width:27px;
  height:27px;
  border-radius:50%;
  background:rgba(24,200,243,.1);
  box-shadow:inset 0 0 0 1px rgba(24,200,243,.18),0 0 24px rgba(24,200,243,.05);
}
.topbar-promise>div{display:grid;gap:1px!important}
.topbar-promise strong{
  color:#f8fcfd;
  font-size:.64rem;
  letter-spacing:.13em;
  line-height:1.15;
}
.topbar-promise strong:after{display:none}
.topbar-promise span{font-size:.64rem;color:rgba(255,255,255,.5);line-height:1.25}
.topbar-availability{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:28px;
  padding:0 12px;
  margin-inline:auto;
  border:1px solid rgba(24,200,243,.15);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(24,200,243,.09),rgba(255,255,255,.025));
  color:rgba(255,255,255,.72);
  font-size:.62rem;
  font-weight:750;
  letter-spacing:.075em;
  text-transform:uppercase;
  white-space:nowrap;
}
.topbar-availability i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#48e0a4;
  box-shadow:0 0 0 4px rgba(72,224,164,.1),0 0 14px rgba(72,224,164,.55);
  animation:v229AvailabilityPulse 2.2s ease-in-out infinite;
}
@keyframes v229AvailabilityPulse{50%{opacity:.55;transform:scale(.78)}}
.topbar-links{flex:0 0 auto;gap:3px}
.topbar-link,.topbar-service-area{
  min-height:30px;
  padding:0 10px;
  border-radius:10px;
  font-size:.67rem;
  letter-spacing:.01em;
}
.topbar-service-area{border-right:1px solid rgba(255,255,255,.08);border-radius:0;padding-right:14px;margin-right:3px}
.topbar-link:hover{background:rgba(255,255,255,.065);border-color:rgba(255,255,255,.08)}
.topbar-phone{color:#fff}

/* Modern primary navigation */
.site-header{
  background:rgba(248,252,253,.9);
  border-bottom:1px solid rgba(4,52,65,.1);
  box-shadow:0 8px 34px rgba(4,28,36,.055);
  backdrop-filter:blur(26px) saturate(145%);
  -webkit-backdrop-filter:blur(26px) saturate(145%);
}
.site-header:before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(110deg,rgba(255,255,255,.58),transparent 34%,rgba(24,200,243,.025));
}
.site-header.is-scrolled{
  background:rgba(252,254,255,.975);
  box-shadow:0 17px 48px rgba(4,28,36,.13);
}
.site-header .nav{
  position:relative;
  width:min(1460px,calc(100% - 56px));
  height:82px;
  gap:clamp(16px,1.7vw,28px);
}
.site-header.is-scrolled .nav{height:68px}
.brand{min-width:174px;gap:11px}
.brand img{width:174px}
.site-header.is-scrolled .brand img{width:158px}
.brand-descriptor{
  display:block;
  max-width:112px;
  padding-left:11px;
  font-size:.56rem;
  line-height:1.42;
  letter-spacing:.105em;
}
.nav-links{
  flex:1 1 auto;
  justify-content:center;
  gap:2px;
  min-width:0;
  padding:5px;
  border:1px solid rgba(7,61,75,.075);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(237,245,247,.82),rgba(250,253,254,.66));
  box-shadow:inset 0 1px rgba(255,255,255,.8),0 8px 24px rgba(5,44,56,.035);
}
.nav-links>a,.nav-drop>button{
  min-height:42px;
  padding:0 12px;
  border-radius:13px;
  color:#26363d;
  font-size:.77rem;
  font-weight:760;
  letter-spacing:-.005em;
  white-space:nowrap;
}
.nav-links>a:after,.nav-drop>button:after{display:none}
.nav-links>a:hover,.nav-links>a.active,.nav-drop>button:hover,.nav-drop.active>button,.nav-drop:focus-within>button{
  color:#006b89;
  background:#fff;
  box-shadow:0 7px 18px rgba(4,48,60,.08),inset 0 0 0 1px rgba(0,168,216,.09);
  transform:translateY(-1px);
}
.nav-drop>button{gap:6px}
.nav-chevron{width:13px;height:13px}
.nav-cta{gap:8px;margin-left:0}
.nav-call{
  min-height:44px;
  padding:0 7px;
  border-radius:13px;
}
.nav-call small{font-size:.52rem}
.nav-call strong{font-size:.71rem}
.nav-estimate{
  position:relative;
  min-height:46px;
  padding:0 16px 0 18px;
  gap:10px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.22);
  border-radius:14px;
  background:linear-gradient(135deg,#069ec8 0%,#1ec8ed 58%,#37d5ef 100%);
  box-shadow:0 13px 30px rgba(0,168,216,.24),inset 0 1px rgba(255,255,255,.32);
  font-size:.75rem;
  letter-spacing:.015em;
}
.nav-estimate:before{
  content:"";
  position:absolute;
  top:-70%;
  left:-35%;
  width:34%;
  height:240%;
  transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.36),transparent);
  transition:left .55s cubic-bezier(.16,1,.3,1);
}
.nav-estimate:hover:before{left:115%}
.nav-estimate>*{position:relative;z-index:1}
.nav-estimate .btn-icon{width:16px;height:16px}

/* Services mega menu: editorial introduction + aligned capability grid */
.nav-drop-menu{
  left:50%;
  top:calc(100% + 14px);
  width:min(1040px,calc(100vw - 48px));
  padding:12px;
  border:1px solid rgba(5,57,71,.12);
  border-radius:26px;
  background:rgba(252,254,255,.985);
  box-shadow:0 38px 100px rgba(3,26,34,.22),0 4px 14px rgba(3,26,34,.06);
  transform:translate(-50%,15px) scale(.985);
  transform-origin:50% 0;
  backdrop-filter:blur(28px) saturate(145%);
  -webkit-backdrop-filter:blur(28px) saturate(145%);
}
.nav-drop:hover .nav-drop-menu,.nav-drop:focus-within .nav-drop-menu{transform:translate(-50%,0) scale(1)}
.nav-drop-menu:before{
  left:50%;
  top:-7px;
  width:14px;
  height:14px;
  background:rgba(252,254,255,.985);
}
.nav-drop-layout{
  display:grid;
  grid-template-columns:minmax(238px,.72fr) minmax(0,2fr);
  gap:12px;
}
.nav-drop-intro{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  min-height:390px;
  padding:28px 25px;
  margin:0;
  border-radius:20px;
  background:
    radial-gradient(circle at 82% 14%,rgba(25,204,244,.22),transparent 26%),
    linear-gradient(145deg,#07171e 0%,#0b2732 64%,#0b3542 100%);
}
.nav-drop-intro:before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  pointer-events:none;
}
.nav-drop-intro:after{
  right:-72px;
  top:-72px;
  width:240px;
  height:240px;
}
.nav-drop-intro .nav-drop-kicker{position:relative;z-index:1;margin-bottom:12px;font-size:.59rem;letter-spacing:.18em}
.nav-drop-intro strong{
  position:relative;
  z-index:1;
  max-width:270px;
  font-size:clamp(1.12rem,1.45vw,1.42rem);
  line-height:1.25;
  letter-spacing:-.035em;
}
.nav-drop-intro p{
  position:relative;
  z-index:1;
  max-width:260px;
  margin:13px 0 22px;
  color:rgba(255,255,255,.57);
  font-size:.69rem;
  line-height:1.55;
}
.nav-drop-intro>a{
  position:relative;
  z-index:1;
  display:inline-flex!important;
  min-height:42px;
  padding:0 14px!important;
  border:1px solid rgba(255,255,255,.15);
  border-radius:12px!important;
  background:rgba(255,255,255,.07);
  font-size:.64rem!important;
}
.nav-service-area{min-width:0;padding:12px 10px 10px}
.nav-service-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  min-height:48px;
  padding:0 6px 12px;
  border-bottom:1px solid rgba(7,65,80,.08);
}
.nav-service-heading span{
  color:#14282f;
  font-family:var(--font-display);
  font-size:.9rem;
  font-weight:750;
  letter-spacing:-.02em;
}
.nav-service-heading small{max-width:390px;color:#728087;font-size:.63rem;line-height:1.45;text-align:right}
.nav-service-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  padding-top:8px;
}
.nav-drop-menu .nav-service-link{
  grid-template-columns:44px minmax(0,1fr) 17px;
  gap:11px;
  min-height:73px;
  padding:9px 10px;
  border:1px solid transparent;
  border-radius:15px;
  background:transparent;
}
.nav-drop-menu .nav-service-link:hover{
  transform:translateY(-2px);
  border-color:rgba(0,168,216,.13);
  background:linear-gradient(135deg,rgba(232,248,252,.92),rgba(255,255,255,.98));
  box-shadow:0 10px 22px rgba(4,57,70,.075);
}
.nav-service-icon{width:44px;height:44px;border-radius:13px}
.nav-service-icon .ui-icon{width:22px;height:22px}
.nav-service-link strong{font-size:.78rem;line-height:1.16}
.nav-service-link small{
  display:block;
  overflow:hidden;
  font-size:.61rem;
  line-height:1.35;
  white-space:nowrap;
  text-overflow:ellipsis;
  -webkit-line-clamp:unset;
}
.nav-service-arrow{width:14px;height:14px;align-self:center}

/* Hero copy safety: reserve fixed safe zones for top metadata and controls. */
.hero-cinematic-v228{
  --hero-safe-top:clamp(104px,14vh,142px);
  --hero-safe-bottom:clamp(126px,17vh,166px);
  --hero-copy-left:clamp(28px,6.4vw,110px);
  --hero-copy-width:min(1080px,calc(100% - (var(--hero-copy-left) + 34px)));
  height:calc(100svh - 124px);
  min-height:700px;
  overflow:clip;
}
.hero-cinematic-v228 .original-home-slider__copy{
  top:var(--hero-safe-top);
  bottom:var(--hero-safe-bottom);
  left:var(--hero-copy-left);
  width:var(--hero-copy-width);
  max-width:1080px;
  min-height:0;
  padding:clamp(22px,2.2vw,34px) clamp(22px,2.6vw,42px);
  overflow:visible;
  transform:none;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:flex-start;
  border-left:3px solid var(--hero-cyan);
  border-radius:0 26px 26px 0;
  background:linear-gradient(90deg,rgba(2,17,23,.78),rgba(2,17,23,.36) 72%,rgba(2,17,23,0));
}
.hero-cinematic-v228 .original-home-slider__copy>*{flex:0 0 auto;max-width:100%}
.hero-cinematic-v228 .original-home-slider__copy h2{
  width:100%;
  max-width:1000px;
  padding:.06em 0 .1em;
  overflow:visible;
  font-size:clamp(36px,4.25vw,68px);
  line-height:1.065;
  letter-spacing:-.045em;
  text-wrap:balance;
  word-break:normal;
  overflow-wrap:normal;
}
.hero-cinematic-v228__line{
  display:block;
  max-width:100%;
  padding-block:.035em .075em;
  overflow:visible;
}
.hero-cinematic-v228__line + .hero-cinematic-v228__line{margin-top:0}
.hero-cinematic-v228 .original-home-slider__copy .hero-cinematic-v228__secondary{
  width:auto;
  max-width:780px;
  padding:.05em 0 .1em;
  font-size:clamp(17px,1.65vw,27px);
  line-height:1.3;
  letter-spacing:-.018em;
}
.hero-cinematic-v228__eyebrow{margin-bottom:clamp(13px,1.8vh,20px)!important}
.hero-cinematic-v228 .original-home-slider__copy hr{margin:clamp(15px,2vh,22px) 0 clamp(13px,1.8vh,19px)}
.hero-cinematic-v228__family{margin-top:clamp(7px,1vh,12px)!important}
.hero-cinematic-v228__dock{bottom:clamp(17px,2.5vh,28px)}
.hero-cinematic-v228 .original-home-slider__meta{top:clamp(17px,2.5vh,28px)}

/* Short desktop displays receive a compact but never clipped composition. */
@media (min-width:721px) and (max-height:790px){
  .hero-cinematic-v228{
    --hero-safe-top:88px;
    --hero-safe-bottom:118px;
    min-height:620px;
  }
  .hero-cinematic-v228 .original-home-slider__copy{padding:18px 30px}
  .hero-cinematic-v228 .original-home-slider__copy h2{font-size:clamp(34px,4vw,58px);line-height:1.045}
  .hero-cinematic-v228__eyebrow{margin-bottom:10px!important}
  .hero-cinematic-v228 .original-home-slider__copy hr{margin:12px 0 11px}
  .hero-cinematic-v228__family{margin-top:4px!important}
  .hero-cinematic-v228__dock{bottom:14px;padding-block:12px}
  .hero-cinematic-v228 .original-home-slider__meta{top:14px}
}

@media(max-width:1440px){
  .brand-descriptor{display:none}
  .nav-call{display:none}
  .site-header .nav{gap:15px}
  .nav-links>a,.nav-drop>button{padding-inline:10px}
}
@media(max-width:1220px){
  .topbar-availability{display:none}
  .topbar-inner,.site-header .nav{width:calc(100% - 36px)}
  .brand{min-width:158px}
  .brand img{width:158px}
  .site-header.is-scrolled .brand img{width:150px}
  .nav-links{padding:4px}
  .nav-links>a,.nav-drop>button{min-height:40px;padding-inline:8px;font-size:.72rem}
  .nav-estimate{padding-inline:14px;font-size:.7rem}
}
@media(max-width:1050px){
  .topbar-inner,.site-header .nav{width:calc(100% - 28px)}
  .topbar-promise span,.topbar-service-area{display:none}
  .topbar-promise>div{display:block!important}
  .topbar-links{margin-left:auto}
  .site-header .nav{height:72px}
  .site-header.is-scrolled .nav{height:64px}
  .nav-links{
    padding:15px;
    border:0;
    border-radius:0;
    background:#fff;
    box-shadow:0 26px 55px rgba(4,28,36,.16);
  }
  .nav-links>a,.nav-drop>button{min-height:46px;padding:0 13px;font-size:.82rem;border-radius:12px}
  .nav-drop-menu{position:static;width:auto;padding:7px;margin:7px 0 10px;border-radius:18px;transform:none!important;box-shadow:none}
  .nav-drop-menu:before{display:none}
  .nav-drop-layout{display:block}
  .nav-drop-intro{min-height:0;padding:21px;margin:0 0 7px;border-radius:15px}
  .nav-drop-intro:before{inset:9px}
  .nav-drop-intro strong{max-width:520px;font-size:1.08rem}
  .nav-drop-intro p{max-width:600px;margin:9px 0 15px}
  .nav-service-area{padding:4px}
  .nav-service-heading{display:none}
  .nav-service-grid{grid-template-columns:1fr;gap:5px;padding:0}
  .nav-drop-menu .nav-service-link{min-height:68px;grid-template-columns:42px minmax(0,1fr) 16px;padding:8px 9px}
  .nav-service-icon{width:42px;height:42px}
  .nav-service-link small{white-space:normal}
  .hero-cinematic-v228{
    --hero-safe-top:94px;
    --hero-safe-bottom:132px;
    --hero-copy-left:clamp(22px,5vw,52px);
    --hero-copy-width:calc(100% - (var(--hero-copy-left) + 24px));
    height:calc(100svh - 106px);
    min-height:680px;
  }
  .hero-cinematic-v228 .original-home-slider__copy{padding:23px 27px}
  .hero-cinematic-v228 .original-home-slider__copy h2{font-size:clamp(34px,6.2vw,57px)}
}
@media(max-width:720px){
  .topbar{min-height:38px}
  .topbar-inner{height:38px;width:calc(100% - 22px)}
  .topbar-promise{display:none}
  .topbar-links{width:100%;justify-content:space-between}
  .topbar-link{font-size:.63rem;padding:0 7px}
  .topbar-email{display:none}
  .topbar-service-area{display:inline-flex;border-right:0;margin:0;padding:0;color:rgba(255,255,255,.62)}
  .site-header .nav{width:calc(100% - 22px);height:68px}
  .site-header.is-scrolled .nav{height:61px}
  .brand img,.site-header.is-scrolled .brand img{width:150px}
  .nav-estimate{display:none}
  .hero-cinematic-v228{
    --hero-safe-top:76px;
    --hero-safe-bottom:116px;
    --hero-copy-left:16px;
    --hero-copy-width:calc(100% - 32px);
    height:calc(100svh - 106px);
    min-height:700px;
  }
  .hero-cinematic-v228 .original-home-slider__copy{
    top:var(--hero-safe-top);
    bottom:var(--hero-safe-bottom);
    left:var(--hero-copy-left);
    width:var(--hero-copy-width);
    padding:20px 18px 22px 20px;
    transform:none;
    border-radius:0 18px 18px 0;
  }
  .hero-cinematic-v228 .original-home-slider__copy h2{
    font-size:clamp(29px,9.2vw,44px);
    line-height:1.08;
    letter-spacing:-.04em;
  }
  .hero-cinematic-v228 .original-home-slider__copy .hero-cinematic-v228__secondary{font-size:clamp(15px,4.7vw,21px);line-height:1.3}
  .hero-cinematic-v228__eyebrow{font-size:.56rem!important;letter-spacing:.12em!important}
  .hero-cinematic-v228__family{font-size:.58rem!important;letter-spacing:.105em!important}
  .hero-cinematic-v228__dock{left:11px;right:11px;bottom:11px;padding:11px}
  .hero-cinematic-v228 .original-home-slider__meta{left:12px;right:12px;top:12px}
}
@media(max-width:430px){
  .hero-cinematic-v228{--hero-safe-top:70px;--hero-safe-bottom:110px;min-height:680px}
  .hero-cinematic-v228 .original-home-slider__copy{padding:18px 15px 19px 17px}
  .hero-cinematic-v228 .original-home-slider__copy h2{font-size:clamp(27px,8.9vw,38px)}
  .hero-cinematic-v228__eyebrow i{width:24px}
}
@media(prefers-reduced-motion:reduce){
  .topbar-availability i{animation:none!important}
  .nav-estimate:before{display:none}
}

/* ========================================================================
   V2.0.30 — LEFT-ANCHORED HERO COPY SAFETY
   Locks V2.0.29 and corrects the reported right-shift/cutoff by using a
   smaller left inset, an explicit right-side safety gutter and tighter fluid
   typography at desktop, tablet and mobile widths.
   ======================================================================== */
.hero-cinematic-v228{
  --hero-copy-left:clamp(18px,3.7vw,58px);
  --hero-copy-right:clamp(24px,11vw,190px);
  --hero-copy-width:min(950px,calc(100% - var(--hero-copy-left) - var(--hero-copy-right)));
}
.hero-cinematic-v228 .original-home-slider__copy{
  left:var(--hero-copy-left)!important;
  right:auto!important;
  width:var(--hero-copy-width)!important;
  max-width:950px!important;
  margin:0!important;
  padding-left:clamp(20px,2.35vw,36px)!important;
  padding-right:clamp(18px,2.1vw,32px)!important;
  overflow:visible!important;
  text-align:left!important;
  transform:none!important;
}
.hero-cinematic-v228 .original-home-slider__copy h2{
  width:100%!important;
  max-width:900px!important;
  margin-right:auto!important;
  font-size:clamp(34px,3.8vw,62px)!important;
  line-height:1.055!important;
  letter-spacing:-.042em!important;
  text-wrap:pretty!important;
  overflow:visible!important;
}
.hero-cinematic-v228 .original-home-slider__copy .hero-cinematic-v228__secondary{
  max-width:720px!important;
  font-size:clamp(16px,1.55vw,25px)!important;
}
.hero-cinematic-v228__line{
  width:100%;
  max-width:100%!important;
  white-space:normal!important;
  overflow:visible!important;
}

/* Medium desktop and landscape tablet: keep the long second line comfortably
   inside the viewport instead of allowing it to approach the right edge. */
@media (max-width:1180px){
  .hero-cinematic-v228{
    --hero-copy-left:clamp(18px,3vw,36px);
    --hero-copy-right:clamp(20px,5vw,58px);
    --hero-copy-width:calc(100% - var(--hero-copy-left) - var(--hero-copy-right));
  }
  .hero-cinematic-v228 .original-home-slider__copy{
    max-width:880px!important;
    padding-left:clamp(18px,2.4vw,28px)!important;
    padding-right:clamp(16px,2.2vw,26px)!important;
  }
  .hero-cinematic-v228 .original-home-slider__copy h2{
    max-width:820px!important;
    font-size:clamp(32px,4.45vw,52px)!important;
  }
}

@media (max-width:900px){
  .hero-cinematic-v228{
    --hero-copy-left:18px;
    --hero-copy-right:18px;
    --hero-copy-width:calc(100% - 36px);
  }
  .hero-cinematic-v228 .original-home-slider__copy{
    max-width:none!important;
    padding:21px 20px 23px 22px!important;
  }
  .hero-cinematic-v228 .original-home-slider__copy h2{
    max-width:760px!important;
    font-size:clamp(31px,5.7vw,48px)!important;
    line-height:1.07!important;
  }
  .hero-cinematic-v228 .original-home-slider__copy .hero-cinematic-v228__secondary{
    max-width:650px!important;
    font-size:clamp(15px,2.7vw,22px)!important;
  }
}

@media (max-width:720px){
  .hero-cinematic-v228{
    --hero-copy-left:12px;
    --hero-copy-right:12px;
    --hero-copy-width:calc(100% - 24px);
  }
  .hero-cinematic-v228 .original-home-slider__copy{
    padding:18px 15px 20px 17px!important;
  }
  .hero-cinematic-v228 .original-home-slider__copy h2{
    max-width:100%!important;
    font-size:clamp(27px,8.35vw,40px)!important;
    line-height:1.09!important;
    letter-spacing:-.037em!important;
  }
  .hero-cinematic-v228 .original-home-slider__copy .hero-cinematic-v228__secondary{
    font-size:clamp(14px,4.25vw,20px)!important;
  }
}

@media (max-width:430px){
  .hero-cinematic-v228{
    --hero-copy-left:10px;
    --hero-copy-right:10px;
    --hero-copy-width:calc(100% - 20px);
  }
  .hero-cinematic-v228 .original-home-slider__copy{
    padding:16px 13px 18px 15px!important;
  }
  .hero-cinematic-v228 .original-home-slider__copy h2{
    font-size:clamp(25px,8vw,34px)!important;
  }
}

/* ========================================================================
   V2.0.31 — OUR PROCESS TIMELINE DOT LAYERING
   Keeps the V2.0.30 layout locked while placing each process marker fully
   inside its card, above the connector rule, so no dot is clipped or hidden.
   ======================================================================== */
.home-v203 .process-step{
  border-top:0;
  padding-top:36px;
  background-image:linear-gradient(
    to bottom,
    transparent 0,
    transparent 6px,
    rgba(255,255,255,.18) 6px,
    rgba(255,255,255,.18) 7px,
    transparent 7px,
    transparent 100%
  );
  background-repeat:no-repeat;
  background-size:100% 100%;
}
.home-v203 .process-step:hover{
  background-color:rgba(255,255,255,.035);
  background-image:linear-gradient(
    to bottom,
    transparent 0,
    transparent 6px,
    rgba(255,255,255,.22) 6px,
    rgba(255,255,255,.22) 7px,
    transparent 7px,
    transparent 100%
  );
}
.home-v203 .process-step:before{
  top:0;
  left:28px;
  z-index:3;
  width:14px;
  height:14px;
  background:var(--cyan-bright);
  box-shadow:
    0 0 0 4px #0d1418,
    0 0 0 8px rgba(22,196,243,.15),
    0 0 24px rgba(22,196,243,.42);
}
@media(max-width:760px){
  .home-v203 .process-step{
    padding-top:34px;
  }
  .home-v203 .process-step:before{
    left:30px;
  }
}

/* ========================================================================
   V2.0.32 — COHESIVE PRIMARY NAVIGATION
   Refines the top navigation into one consistent visual system, replaces the
   awkward Services chevron with a compact plus/minus control, and introduces
   a cleaner active-page treatment across desktop and mobile navigation.
   ======================================================================== */

/* Header proportions and shared alignment */
.topbar-inner,
.site-header .nav{
  width:min(1420px,calc(100% - 56px));
}
.site-header{
  background:rgba(250,253,254,.94);
  border-bottom:1px solid rgba(7,54,67,.09);
  box-shadow:0 10px 38px rgba(5,32,40,.06);
}
.site-header.is-scrolled{
  background:rgba(253,255,255,.985);
  box-shadow:0 18px 52px rgba(5,32,40,.13);
}
.site-header .nav{
  height:80px;
  gap:clamp(16px,1.6vw,26px);
}
.site-header.is-scrolled .nav{height:68px}
.brand{min-width:170px}
.brand img{width:170px}
.site-header.is-scrolled .brand img{width:158px}

/* Calm, consistent navigation rail */
.nav-links{
  flex:1 1 auto;
  justify-content:center;
  gap:clamp(1px,.25vw,5px);
  min-width:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.nav-links>a,
.nav-drop>button{
  position:relative;
  isolation:isolate;
  min-height:46px;
  padding:0 clamp(10px,.75vw,14px);
  overflow:visible;
  border:0;
  border-radius:11px;
  background:transparent;
  color:#26373e;
  font-size:.78rem;
  font-weight:760;
  letter-spacing:-.006em;
  white-space:nowrap;
  transform:none;
  box-shadow:none;
  transition:color .24s var(--ease),background .24s var(--ease),box-shadow .24s var(--ease);
}
.nav-links>a:hover,
.nav-drop>button:hover,
.nav-drop:focus-within>button{
  color:#006b89;
  background:rgba(0,168,216,.065);
  box-shadow:inset 0 0 0 1px rgba(0,168,216,.075);
  transform:none;
}
.nav-links>a.active,
.nav-drop.active>button{
  color:#005f7a;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(225,246,251,.78));
  box-shadow:
    inset 0 0 0 1px rgba(0,168,216,.14),
    0 8px 20px rgba(5,83,102,.075);
}
.nav-links>a:after,
.nav-drop>button:after{
  content:"";
  display:block!important;
  position:absolute;
  left:50%;
  right:auto;
  bottom:5px;
  width:0;
  height:2px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--cyan),var(--cyan-bright));
  opacity:0;
  transform:translateX(-50%)!important;
  transform-origin:center!important;
  transition:width .28s var(--ease),opacity .28s var(--ease);
}
.nav-links>a.active:after,
.nav-drop.active>button:after{
  width:22px;
  opacity:1;
}
.nav-links>a:hover:after,
.nav-drop>button:hover:after,
.nav-drop:focus-within>button:after{
  width:16px;
  opacity:.68;
}
.nav-links>a.active:hover:after,
.nav-drop.active>button:hover:after,
.nav-drop.active:focus-within>button:after{
  width:22px;
  opacity:1;
}

/* Services trigger: compact plus/minus rather than an unrelated arrow */
.nav-drop>button{gap:8px}
.nav-services-indicator{
  position:relative;
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  flex:0 0 20px;
  border:1px solid rgba(0,130,166,.12);
  border-radius:7px;
  background:rgba(0,168,216,.07);
  color:var(--cyan-deep);
  transition:background .24s var(--ease),border-color .24s var(--ease),transform .3s var(--ease);
}
.nav-services-indicator>span{
  position:absolute;
  width:8px;
  height:1.5px;
  border-radius:999px;
  background:currentColor;
  transition:transform .3s var(--ease),opacity .24s var(--ease);
}
.nav-services-indicator>span:last-child{transform:rotate(90deg)}
.nav-drop.open .nav-services-indicator{
  border-color:rgba(0,168,216,.2);
  background:rgba(0,168,216,.13);
  transform:rotate(180deg);
}
.nav-drop.open .nav-services-indicator>span:last-child{
  opacity:0;
  transform:rotate(90deg) scaleX(0);
}
@media(min-width:1051px){
  .nav-drop:hover .nav-services-indicator,
  .nav-drop:focus-within .nav-services-indicator{
    border-color:rgba(0,168,216,.2);
    background:rgba(0,168,216,.13);
    transform:rotate(180deg);
  }
  .nav-drop:hover .nav-services-indicator>span:last-child,
  .nav-drop:focus-within .nav-services-indicator>span:last-child{
    opacity:0;
    transform:rotate(90deg) scaleX(0);
  }
}

/* CTA and logo use the same radius and visual weight as the navigation tabs */
.nav-cta{gap:9px}
.nav-call{border-radius:11px}
.nav-estimate{
  min-height:46px;
  border-radius:12px;
  padding-inline:18px 15px;
  box-shadow:0 13px 30px rgba(0,168,216,.22),inset 0 1px rgba(255,255,255,.3);
}

/* Services mega menu: cleaner hierarchy, balanced spacing, no decorative arrows */
.nav-drop-menu{
  top:calc(100% + 16px);
  width:min(1000px,calc(100vw - 56px));
  padding:10px;
  border:1px solid rgba(5,57,71,.115);
  border-radius:24px;
  background:rgba(253,255,255,.99);
  box-shadow:0 34px 90px rgba(3,27,35,.2),0 5px 16px rgba(3,27,35,.055);
  transform:translate(-50%,12px) scale(.99);
}
.nav-drop:hover .nav-drop-menu,
.nav-drop:focus-within .nav-drop-menu{
  transform:translate(-50%,0) scale(1);
}
.nav-drop-layout{
  grid-template-columns:minmax(245px,.76fr) minmax(0,2fr);
  gap:10px;
}
.nav-drop-intro{
  min-height:356px;
  padding:27px 24px;
  border-radius:18px;
}
.nav-drop-intro strong{
  max-width:270px;
  font-size:clamp(1.12rem,1.35vw,1.36rem);
}
.nav-drop-intro p{margin:13px 0 20px}
.nav-drop-intro>a{
  min-height:41px;
  border-radius:11px!important;
}
.nav-service-area{padding:10px 8px 8px}
.nav-service-heading{
  min-height:50px;
  padding:0 6px 12px;
  align-items:center;
}
.nav-service-heading small{max-width:360px}
.nav-service-grid{
  gap:6px;
  padding-top:8px;
}
.nav-drop-menu .nav-service-link{
  position:relative;
  grid-template-columns:44px minmax(0,1fr) 8px;
  gap:11px;
  min-height:71px;
  padding:9px 10px;
  border:1px solid transparent;
  border-radius:14px;
  background:transparent;
  color:#27373e;
}
.nav-drop-menu .nav-service-link:after{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--cyan);
  opacity:0;
  transform:scale(.45);
  box-shadow:0 0 0 4px rgba(0,168,216,.08);
  transition:opacity .22s var(--ease),transform .22s var(--ease);
}
.nav-drop-menu .nav-service-link:hover{
  color:#005f78;
  transform:translateY(-1px);
  border-color:rgba(0,168,216,.12);
  background:linear-gradient(135deg,rgba(232,248,252,.9),rgba(255,255,255,.98));
  box-shadow:0 9px 20px rgba(4,57,70,.065);
}
.nav-drop-menu .nav-service-link:hover:after,
.nav-drop-menu .nav-service-link.is-current:after{
  opacity:1;
  transform:scale(1);
}
.nav-drop-menu .nav-service-link.is-current{
  color:#005f78;
  border-color:rgba(0,168,216,.16);
  background:linear-gradient(135deg,rgba(222,245,251,.95),rgba(249,254,255,.99));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.65);
}
.nav-drop-menu .nav-service-link.is-current .nav-service-icon{
  color:#034c61;
  border-color:rgba(0,168,216,.2);
  background:linear-gradient(145deg,rgba(24,200,243,.22),rgba(238,250,253,.95));
}
.nav-service-link small{
  white-space:normal;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
  text-overflow:ellipsis;
}
.nav-service-arrow{display:none!important}

@media(max-width:1440px){
  .site-header .nav{gap:14px}
  .nav-links>a,.nav-drop>button{padding-inline:10px;font-size:.75rem}
}
@media(max-width:1220px){
  .topbar-inner,.site-header .nav{width:calc(100% - 36px)}
  .nav-drop-menu{width:min(920px,calc(100vw - 36px))}
  .nav-links>a,.nav-drop>button{padding-inline:8px;font-size:.71rem}
  .nav-services-indicator{width:18px;height:18px;flex-basis:18px;border-radius:6px}
  .nav-services-indicator>span{width:7px}
}
@media(max-width:1050px){
  .site-header .nav{width:calc(100% - 28px)}
  .site-header .brand{min-width:0;max-width:calc(100% - 62px)}
  .site-header .nav-cta{margin-left:auto;flex:0 0 auto}
  .menu-toggle{margin-left:auto}
  .nav-links{
    position:fixed;
    inset:var(--mobile-nav-top, 124px) 14px auto;
    max-height:calc(100dvh - var(--mobile-nav-top, 124px) - 12px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:13px;
    border:1px solid rgba(7,54,67,.1);
    border-radius:20px;
    background:rgba(253,255,255,.985);
    box-shadow:0 28px 70px rgba(4,28,36,.18);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);
  }
  .nav-links>a,.nav-drop>button{
    min-height:48px;
    padding:0 14px;
    border-radius:12px;
    font-size:.86rem;
  }
  .nav-links>a.active,
  .nav-drop.active>button{
    background:linear-gradient(90deg,rgba(226,247,252,.95),rgba(248,253,254,.9));
    box-shadow:inset 0 0 0 1px rgba(0,168,216,.13);
  }
  .nav-links>a:after,
  .nav-drop>button:after{
    left:12px;
    bottom:8px;
    transform:none!important;
  }
  .nav-links>a.active:after,
  .nav-drop.active>button:after{width:20px}
  .nav-drop>button{display:flex;justify-content:space-between;align-items:center}
  .nav-drop-menu{
    width:auto;
    margin:7px 0 9px;
    padding:7px;
    border-radius:16px;
    background:#f1f7f9;
  }
  .nav-drop-intro{display:none}
  .nav-service-area{padding:0}
  .nav-service-grid{grid-template-columns:1fr;gap:5px;padding:0}
  .nav-drop-menu .nav-service-link{
    grid-template-columns:42px minmax(0,1fr) 8px;
    min-height:66px;
    padding:8px 9px;
    background:rgba(255,255,255,.72);
  }
  .nav-service-link small{-webkit-line-clamp:1;line-clamp:1}
  .nav-drop:not(.open) .nav-services-indicator{transform:none;border-color:rgba(0,130,166,.12);background:rgba(0,168,216,.07)}
  .nav-drop:not(.open) .nav-services-indicator>span:last-child{opacity:1;transform:rotate(90deg)}
}
@media(max-width:720px){
  .topbar-inner{width:calc(100% - 22px)}
  .site-header .nav{width:calc(100% - 22px)}
  .brand img,.site-header.is-scrolled .brand img{width:148px}
  .menu-toggle{width:44px;height:44px;border-radius:12px}
  .nav-links{inset:var(--mobile-nav-top, 114px) 11px auto;max-height:calc(100dvh - var(--mobile-nav-top, 114px) - 10px)}
}
@media(prefers-reduced-motion:reduce){
  .nav-services-indicator,
  .nav-services-indicator>span{transition:none!important}
}
@media (min-width:1051px) and (max-width:1100px){
  .nav-drop-menu{width:min(890px,calc(100vw - 36px))}
}

/* ========================================================================
   V2.0.33 — SUBMENU TRIGGER ALIGNMENT
   Normalizes menu links and the Services submenu trigger to the same fixed
   height, padding model, line-height and vertical centering. The existing
   plus/minus indicator remains visually unchanged.
   ======================================================================== */
.nav-links > a,
.nav-links > .nav-drop > button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:46px;
  min-height:46px;
  margin:0;
  padding-block:0;
  line-height:1;
  vertical-align:middle;
}
.nav-links > .nav-drop{
  position:relative;
  display:flex;
  align-items:center;
  height:46px;
  min-height:46px;
  margin:0;
}
.nav-links > .nav-drop > button{flex:0 0 auto}

@media(max-width:1050px){
  .nav-links > a,
  .nav-links > .nav-drop > button{
    height:48px;
    min-height:48px;
  }
  .nav-links > a{justify-content:flex-start}
  .nav-links > .nav-drop{
    display:block;
    width:100%;
    height:auto;
    min-height:0;
  }
  .nav-links > .nav-drop > button{
    width:100%;
    justify-content:space-between;
  }
}



/* --------------------------------------------------------------------------
   V2.0.39 — Locked static Our Work archive
   -------------------------------------------------------------------------- */
.work-static-main{overflow:hidden}
.work-hero{position:relative;padding:clamp(72px,8vw,118px) 0 74px;background:
  radial-gradient(circle at 78% 12%,rgba(22,196,243,.13),transparent 34%),
  linear-gradient(180deg,#f8fbfc 0%,#fff 74%)}
.work-hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(23,26,29,.12),transparent)}
.work-hero-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(440px,1.12fr);gap:clamp(42px,6vw,86px);align-items:center}
.work-hero-copy .breadcrumbs{margin-bottom:28px}
.work-hero-copy .h1{max-width:760px;margin:12px 0 22px}
.work-hero-copy .lead{max-width:700px}
.work-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.work-hero-visual{position:relative;min-height:520px;border-radius:34px;overflow:hidden;box-shadow:0 34px 90px rgba(13,29,36,.18);isolation:isolate}
.work-hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(9,18,22,.68) 100%);pointer-events:none}
.work-hero-visual img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .8s var(--ease)}
.work-hero-visual:hover img{transform:scale(1.035)}
.work-hero-badge{position:absolute;z-index:2;left:24px;bottom:24px;display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid rgba(255,255,255,.2);border-radius:18px;background:rgba(10,20,25,.7);backdrop-filter:blur(16px);color:#fff}
.work-hero-badge strong{font-family:"Space Grotesk",sans-serif;font-size:2rem;line-height:1;color:var(--cyan-bright)}
.work-hero-badge span{max-width:130px;font-size:.76rem;line-height:1.3;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.72)}

.work-proof{background:var(--charcoal);color:#fff}
.work-proof-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.work-proof-grid>div{padding:26px 34px;display:flex;align-items:center;justify-content:center;gap:14px;border-right:1px solid rgba(255,255,255,.08)}
.work-proof-grid>div:last-child{border-right:0}
.work-proof-grid strong{flex:0 0 auto;font-family:"Space Grotesk",sans-serif;font-size:1.6rem;line-height:1;color:var(--cyan-bright);text-align:right}
.work-proof-grid span{display:block;max-width:190px;font-size:.82rem;line-height:1.35;color:rgba(255,255,255,.64);text-transform:uppercase;letter-spacing:.07em}

.work-archive-section{position:relative}
.work-section-head{align-items:end}
.work-section-head>p{max-width:560px;margin:0;color:var(--slate);line-height:1.75}
.work-feature-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}
.work-album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.work-archive-card{position:relative;display:block;min-height:360px;border-radius:26px;overflow:hidden;background:var(--charcoal);box-shadow:0 16px 50px rgba(12,28,35,.1);isolation:isolate;text-decoration:none}
.work-archive-card.is-primary{min-height:500px}
.work-archive-card.is-primary+.work-archive-card{min-height:500px}
.work-archive-media{position:absolute;inset:0}
.work-archive-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,13,16,.02) 16%,rgba(6,13,16,.88) 100%)}
.work-archive-media img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease),filter .65s var(--ease)}
.work-archive-card:hover .work-archive-media img{transform:scale(1.055);filter:saturate(1.08)}
.work-archive-overlay{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:26px;color:#fff;display:grid;gap:10px}
.work-archive-kicker{display:flex;justify-content:space-between;gap:12px;align-items:center;text-transform:uppercase;letter-spacing:.12em;font-size:.67rem;color:var(--cyan-bright);font-weight:800}
.work-archive-kicker b{padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff;letter-spacing:.05em;font-size:.64rem}
.work-archive-overlay>strong{font-family:"Space Grotesk",sans-serif;font-size:clamp(1.45rem,2vw,2rem);line-height:1.08;letter-spacing:-.03em}
.work-archive-overlay>span:last-child{font-size:.82rem;color:rgba(255,255,255,.72);display:flex;align-items:center;gap:8px}
.work-archive-overlay i{font-style:normal;color:var(--cyan-bright)}
.work-archive-card.is-compact{min-height:300px}
.work-related-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}

.work-cta-section{padding-top:20px}
.work-cta-panel{position:relative;overflow:hidden;border-radius:30px;padding:clamp(34px,5vw,64px);background:
  radial-gradient(circle at 92% 15%,rgba(22,196,243,.23),transparent 27%),
  var(--charcoal);color:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:36px;align-items:center}
.work-cta-panel:before{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-90px;bottom:-190px}
.work-cta-panel .h2{color:#fff;margin:8px 0 12px;max-width:760px}
.work-cta-panel p{margin:0;color:rgba(255,255,255,.67);max-width:720px}
.work-cta-panel .actions{position:relative;z-index:1;justify-content:flex-end}

.work-detail-hero{padding:clamp(60px,7vw,100px) 0 66px;background:linear-gradient(180deg,#f8fbfc 0%,#fff 100%)}
.work-detail-hero .breadcrumbs{margin-bottom:32px}
.work-detail-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(420px,1.14fr);gap:clamp(40px,6vw,84px);align-items:center}
.work-detail-copy .h1{margin:10px 0 20px}
.work-detail-copy .lead{max-width:710px}
.work-detail-meta{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0}
.work-detail-meta span{display:flex;align-items:baseline;gap:7px;padding:11px 14px;border-radius:14px;background:var(--mist);border:1px solid rgba(23,26,29,.08);font-size:.78rem;color:var(--slate)}
.work-detail-meta strong{font-family:"Space Grotesk",sans-serif;font-size:1.12rem;color:var(--charcoal)}
.work-detail-cover{position:relative;min-height:500px;border-radius:30px;overflow:hidden;box-shadow:0 30px 80px rgba(10,30,38,.16)}
.work-detail-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(7,15,19,.76))}
.work-detail-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.work-detail-cover-label{position:absolute;z-index:2;left:24px;right:24px;bottom:24px;color:#fff;display:flex;justify-content:space-between;gap:18px;align-items:end}
.work-detail-cover-label span{font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.65)}
.work-detail-cover-label strong{font-family:"Space Grotesk",sans-serif;font-size:1.15rem;text-align:right}

.work-gallery-section{background:#fff}
.work-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:dense;gap:14px}
.work-photo{appearance:none;border:0;padding:0;position:relative;display:block;overflow:hidden;border-radius:18px;background:var(--mist);aspect-ratio:4/3;cursor:zoom-in;box-shadow:inset 0 0 0 1px rgba(23,26,29,.05)}
.work-photo:nth-child(9n+1),.work-photo:nth-child(9n+6){grid-column:span 2;grid-row:span 2;aspect-ratio:auto;min-height:420px}
.work-photo[hidden]{display:none!important}
.work-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease),filter .3s var(--ease)}
.work-photo:hover img{transform:scale(1.045)}
.work-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(7,15,18,.64));opacity:.65;transition:.3s}
.work-photo:hover:after{opacity:1}
.work-photo>span{position:absolute;z-index:2;left:12px;bottom:11px;padding:7px 9px;border-radius:10px;background:rgba(7,15,18,.55);backdrop-filter:blur(9px);color:rgba(255,255,255,.88);font-size:.67rem;letter-spacing:.08em;text-transform:uppercase}
.work-load-more-wrap{display:flex;justify-content:center;margin-top:34px}
.work-load-more span{margin-left:7px;padding:3px 7px;border-radius:999px;background:rgba(0,168,216,.12);font-size:.74rem}

@media(max-width:1050px){
  .work-hero-grid,.work-detail-grid{grid-template-columns:1fr}
  .work-hero-visual,.work-detail-cover{min-height:480px}
  .work-album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .work-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .work-photo:nth-child(9n+1),.work-photo:nth-child(9n+6){grid-column:span 2;grid-row:span 1;min-height:320px}
  .work-cta-panel{grid-template-columns:1fr}
  .work-cta-panel .actions{justify-content:flex-start}
}
@media(max-width:760px){
  .work-hero{padding:54px 0 48px}
  .work-hero-visual,.work-detail-cover{min-height:360px;border-radius:24px}
  .work-proof-grid{grid-template-columns:1fr}
  .work-proof-grid>div{justify-content:flex-start;padding:18px 4px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .work-proof-grid>div:last-child{border-bottom:0}
  .work-feature-grid,.work-album-grid,.work-related-strip{grid-template-columns:1fr}
  .work-archive-card,.work-archive-card.is-primary,.work-archive-card.is-primary+.work-archive-card{min-height:340px}
  .work-section-head>p{margin-top:14px}
  .work-detail-hero{padding:50px 0 48px}
  .work-detail-meta{display:grid;grid-template-columns:1fr 1fr}
  .work-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .work-photo,.work-photo:nth-child(9n+1),.work-photo:nth-child(9n+6){grid-column:auto;grid-row:auto;min-height:0;aspect-ratio:1/1}
  .work-cta-panel{border-radius:22px}
}
@media(max-width:480px){
  .work-hero-actions,.work-detail-copy .actions{display:grid}
  .work-hero-actions .btn,.work-detail-copy .actions .btn{width:100%;justify-content:center}
  .work-detail-meta{grid-template-columns:1fr}
  .work-photo-grid{grid-template-columns:1fr 1fr}
}

/* V2.0.41: genuine Fancybox and reliable initial archive photo display. */
.work-gallery-section .work-photo{opacity:1!important;transform:none!important;filter:none!important;transition:box-shadow .25s ease,background .25s ease;text-decoration:none}
.work-gallery-section .work-photo:not(.is-deferred):not(.is-image-unavailable){display:block}
.work-gallery-section .work-photo img{display:block}
.work-gallery-section .work-photo.is-image-ready:hover{box-shadow:0 15px 40px rgba(10,30,38,.17)}
.work-gallery-section .work-photo:focus-visible{outline:3px solid var(--cyan-bright,#00a8d8);outline-offset:4px}
.work-gallery-section .work-photo.is-image-unavailable{display:none!important}
.work-gallery-empty[hidden]{display:none!important}
.work-gallery-empty{margin:25px 0;padding:22px 24px;background:var(--mist);border:1px solid rgba(23,26,29,.1);border-radius:16px;color:var(--slate)}
/* Project videos on individual Our Work galleries. Hidden completely when no videos are assigned. */
.work-video-section{overflow:hidden;background:var(--ink)}
.work-video-section .work-section-head .h2{color:#fff}
.work-video-section .work-section-head>p{color:var(--dark-muted)}
.work-video-section .eyebrow{color:var(--cyan-bright)}
.work-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.work-video-grid.is-single{grid-template-columns:minmax(0,980px);justify-content:center}
.work-video-card{position:relative;aspect-ratio:16/9;border-radius:24px;overflow:hidden;background:#050b0e;box-shadow:0 24px 68px rgba(0,0,0,.28)}
.work-video-card video{display:block;width:100%;height:100%;object-fit:contain;background:#050b0e}
@media(max-width:760px){.work-video-grid{grid-template-columns:1fr}.work-video-card{border-radius:18px}}


/* V2.0.42 — count only successfully verified photos in every static gallery. */
.work-load-more-wrap[hidden], .work-load-more[hidden], .work-gallery-loading[hidden] {display:none!important}
.work-gallery-loading{color:var(--slate);font-size:.89rem;text-align:center;margin:20px auto 0}

/* V2.0.44 — preserve the locked service design while accommodating real live-site content lengths. */
.service-overview-section{padding-top:32px}
.service-overview-shell{display:grid;grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);gap:36px;padding:clamp(28px,4vw,48px);border:1px solid var(--line);border-radius:30px;background:linear-gradient(145deg,#fff 0%,#f7fbfc 100%);box-shadow:var(--shadow-sm)}
.service-overview-shell.no-list{grid-template-columns:1fr}
.service-overview-copy{max-width:780px}
.service-overview-copy .h2{margin-bottom:18px}
.service-overview-copy>p{color:var(--slate);line-height:1.75;margin:0 0 15px}
.service-overview-copy>p:last-child{margin-bottom:0}
.service-overview-closing{padding-top:17px;margin-top:20px!important;border-top:1px solid var(--line);color:var(--ink)!important;font-weight:600}
.service-overview-list{display:grid;gap:10px;align-content:start}
.service-overview-item{padding:16px 18px;border:1px solid rgba(7,65,80,.1);border-radius:16px;background:rgba(255,255,255,.86)}
.service-overview-item strong{display:block;margin-bottom:5px;color:var(--ink);font-family:var(--font-display);font-size:.94rem}
.service-overview-item p{margin:0;color:var(--slate);font-size:.88rem;line-height:1.58}
.service-detail-grid .detail-card{padding:0}
.detail-card-copy{position:relative;z-index:1;padding:28px}
.detail-card-media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--mist)}
.detail-card-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(4,22,28,.12));pointer-events:none}
.detail-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.detail-card:hover .detail-card-media img{transform:scale(1.035)}
.detail-card-link{display:inline-flex;align-items:center;gap:9px;margin-top:18px;color:var(--cyan-deep);font-size:.78rem;font-weight:800;text-decoration:none}
.detail-card-link span{transition:transform .25s var(--ease)}
.detail-card-link:hover span{transform:translateX(4px)}
.service-detail-grid.is-single{grid-template-columns:1fr}
.service-detail-grid.is-single .detail-card.has-media{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr);align-items:stretch}
.service-detail-grid.is-single .detail-card-media{aspect-ratio:auto;min-height:320px}
.service-areas-note{margin:20px 0 0;color:var(--slate);font-size:.84rem}
.service-areas-note strong{color:var(--ink)}
@media(max-width:900px){
  .service-overview-shell{grid-template-columns:1fr}
  .service-detail-grid.is-single .detail-card.has-media{grid-template-columns:1fr}
  .service-detail-grid.is-single .detail-card-media{min-height:0;aspect-ratio:16/9}
}
@media(max-width:640px){
  .service-overview-section{padding-top:16px}
  .service-overview-shell{padding:24px 20px;border-radius:22px;gap:24px}
  .service-overview-item{padding:14px 15px}
  .detail-card-copy{padding:24px 21px}
}


/* V2.0.45 — Retaining Walls live-content parity: Read More, video and supporting images. */
.service-media-section{padding-top:36px}
.service-media-head{align-items:end}
.service-media-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);gap:22px;align-items:stretch}
.service-media-layout.no-video{grid-template-columns:1fr}
.service-media-layout.video-only{grid-template-columns:1fr}
.service-media-layout.video-only .service-media-video{width:100%;max-width:980px;margin-inline:auto}
.service-media-video{border-radius:26px;overflow:hidden;background:var(--ink);box-shadow:var(--shadow-sm)}
.service-media-video-frame{position:relative;aspect-ratio:16/9;min-height:100%}
.service-media-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.service-media-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.service-media-photo{position:relative;min-height:180px;padding:0;border:0;border-radius:20px;overflow:hidden;background:var(--mist);cursor:pointer;box-shadow:var(--shadow-sm)}
.service-media-photo:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.35);border-radius:inherit;pointer-events:none}
.service-media-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s var(--ease)}
.service-media-photo:hover img{transform:scale(1.04)}
@media(max-width:980px){.service-media-layout{grid-template-columns:1fr}.service-media-video-frame{min-height:0}}
@media(max-width:560px){.service-media-section{padding-top:18px}.service-media-grid{grid-template-columns:1fr}.service-media-photo{min-height:220px}}

/* V2.0.48 — locked service-media cleanup and image-path correction. */
.service-media-video-frame video{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover;background:#05090b}
.subdetail-page-hero{padding-bottom:58px}
.subdetail-page-hero .service-hero-image{min-height:440px}
.subdetail-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.subdetail-feature-card{position:relative;min-height:230px;padding:28px 26px;border:1px solid rgba(15,39,47,.1);border-radius:24px;background:#fff;box-shadow:0 18px 52px rgba(10,35,43,.07);overflow:hidden}
.subdetail-feature-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--cyan),transparent 72%)}
.subdetail-feature-card>span{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;background:rgba(0,173,222,.1);color:var(--cyan-deep);font-size:.72rem;font-weight:850;letter-spacing:.08em}
.subdetail-feature-card h3{margin:28px 0 10px;font-family:var(--font-display);font-size:1.22rem;letter-spacing:-.02em}
.subdetail-feature-card p{margin:0;color:var(--slate);line-height:1.72}
.subdetail-copy-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:clamp(36px,6vw,88px);align-items:start}
.subdetail-copy-intro{position:sticky;top:calc(var(--site-header-height,80px) + 28px)}
.subdetail-copy-stack{display:grid;gap:16px}
.subdetail-copy-card{display:grid;grid-template-columns:58px 1fr;gap:20px;padding:25px 26px;border:1px solid rgba(15,39,47,.1);border-radius:22px;background:#fff;box-shadow:0 15px 44px rgba(10,35,43,.06)}
.subdetail-copy-card>span{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:16px;background:var(--ink);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.08em}
.subdetail-copy-card h3{margin:2px 0 8px;font-family:var(--font-display);font-size:1.25rem;letter-spacing:-.02em}
.subdetail-copy-card p{margin:0;color:var(--slate);line-height:1.78}
.subdetail-gallery-section .section-head .h2,.subdetail-gallery-section .section-head .lead{color:#fff}
.subdetail-gallery-section .eyebrow{color:var(--cyan-bright)}
.subdetail-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.subdetail-gallery-card{position:relative;display:block;min-height:310px;padding:0;border:0;border-radius:24px;overflow:hidden;background:#0f171b;cursor:pointer;box-shadow:0 22px 55px rgba(0,0,0,.22)}
.subdetail-gallery-card:after{content:"↗";position:absolute;right:18px;top:18px;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(8,17,22,.76);color:#fff;font-size:1rem;backdrop-filter:blur(10px)}
.subdetail-gallery-card img{display:block;width:100%;height:100%;min-height:310px;object-fit:cover;transition:transform .5s var(--ease)}
.subdetail-gallery-card:hover img{transform:scale(1.045)}
.subdetail-gallery-card>span{position:absolute;left:18px;right:18px;bottom:16px;padding:12px 14px;border-radius:14px;background:rgba(8,17,22,.76);color:#fff;font-size:.82rem;font-weight:750;text-align:left;backdrop-filter:blur(10px)}
.subdetail-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}
.subdetail-related-card{display:grid;grid-template-columns:120px minmax(0,1fr);min-height:132px;border:1px solid rgba(15,39,47,.1);border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 16px 46px rgba(10,35,43,.07);transition:transform .28s var(--ease),box-shadow .28s var(--ease)}
.subdetail-related-card:hover{transform:translateY(-4px);box-shadow:0 22px 58px rgba(10,35,43,.11)}
.subdetail-related-media{min-height:132px;overflow:hidden;background:var(--mist)}
.subdetail-related-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s var(--ease)}
.subdetail-related-card:hover .subdetail-related-media img{transform:scale(1.04)}
.subdetail-related-copy{display:flex;flex-direction:column;justify-content:center;padding:18px 19px}
.subdetail-related-copy small{text-transform:uppercase;letter-spacing:.1em;font-size:.61rem;font-weight:800;color:var(--cyan-deep)}
.subdetail-related-copy strong{margin:7px 0 12px;font-family:var(--font-display);font-size:1rem;line-height:1.25;color:var(--ink)}
.subdetail-related-copy i{font-style:normal;font-size:.76rem;font-weight:800;color:var(--cyan-deep)}
@media(max-width:1040px){
  .subdetail-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .subdetail-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  .subdetail-page-hero{padding-bottom:34px}
  .subdetail-page-hero .service-hero-image{min-height:330px}
  .subdetail-copy-grid{grid-template-columns:1fr}
  .subdetail-copy-intro{position:static}
}
@media(max-width:620px){
  .subdetail-feature-grid,.subdetail-gallery-grid{grid-template-columns:1fr}
  .subdetail-feature-card{min-height:0;padding:24px 21px}
  .subdetail-copy-card{grid-template-columns:48px 1fr;padding:21px 18px;gap:14px}
  .subdetail-copy-card>span{width:42px;height:42px;border-radius:14px}
  .subdetail-gallery-card,.subdetail-gallery-card img{min-height:260px}
  .subdetail-related-card{grid-template-columns:105px minmax(0,1fr)}
}

/* V2.0.49 — locked sub-detail bullets + conditional media slider. */
.subdetail-bullet-head{align-items:end}
.subdetail-bullet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.subdetail-bullet-card{padding:30px;border:1px solid rgba(15,39,47,.1);border-radius:24px;background:#fff;box-shadow:0 18px 52px rgba(10,35,43,.07)}
.subdetail-bullet-card h3{margin:0 0 20px;font-family:var(--font-display);font-size:clamp(1.22rem,2vw,1.55rem);letter-spacing:-.025em}
.subdetail-bullet-card ul{display:grid;gap:14px;margin:0;padding:0;list-style:none}
.subdetail-bullet-card li{position:relative;display:grid;gap:4px;padding:0 0 14px 26px;border-bottom:1px solid rgba(15,39,47,.08)}
.subdetail-bullet-card li:last-child{padding-bottom:0;border-bottom:0}
.subdetail-bullet-card li:before{content:"";position:absolute;left:1px;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px rgba(0,173,222,.1)}
.subdetail-bullet-card strong{font-size:.96rem;color:var(--ink)}
.subdetail-bullet-card span{color:var(--slate);line-height:1.68}

.subdetail-media-section{overflow:hidden}
.subdetail-media-section .section-head .h2,.subdetail-media-section .section-head .lead{color:#fff}
.subdetail-media-section .eyebrow{color:var(--cyan-bright)}
.subdetail-media-head{align-items:end}
.subdetail-media-videos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0 auto 34px}
.subdetail-media-videos.is-single{grid-template-columns:minmax(0,1040px);justify-content:center}
.subdetail-media-videos .subdetail-media-video{max-width:none;margin:0}
.subdetail-media-video{max-width:1040px;margin:0 auto 34px;border-radius:26px;overflow:hidden;background:#050b0e;box-shadow:0 28px 72px rgba(0,0,0,.35)}
.subdetail-media-video-frame{position:relative;aspect-ratio:16/9}
.subdetail-media-video iframe,.subdetail-media-video video{display:block;width:100%;height:100%;border:0;aspect-ratio:16/9;background:#050b0e}
.subdetail-media-slider{margin-top:18px}
.subdetail-media-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;color:rgba(255,255,255,.72);font-size:.78rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}
.subdetail-media-controls{display:flex;gap:9px}
.subdetail-media-controls button{display:grid;place-items:center;width:44px;height:44px;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(255,255,255,.07);color:#fff;font-size:1.05rem;cursor:pointer;transition:background .2s ease,border-color .2s ease,opacity .2s ease}
.subdetail-media-controls button:hover:not(:disabled){background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.4)}
.subdetail-media-controls button:disabled{opacity:.28;cursor:default}
.subdetail-media-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,35%);gap:16px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:none;padding:2px 2px 12px}
.subdetail-media-track::-webkit-scrollbar{display:none}
.subdetail-media-slide{position:relative;display:block;min-height:300px;border-radius:22px;overflow:hidden;background:#111c21;scroll-snap-align:start;box-shadow:0 22px 55px rgba(0,0,0,.24)}
.subdetail-media-slide[hidden]{display:none!important}
.subdetail-media-slide:after{content:"↗";position:absolute;right:16px;top:16px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(5,13,17,.72);color:#fff;backdrop-filter:blur(9px)}
.subdetail-media-slide img{display:block;width:100%;height:100%;min-height:300px;object-fit:cover;transition:transform .45s var(--ease)}
.subdetail-media-slide:hover img{transform:scale(1.035)}
.subdetail-media-slide>span{position:absolute;left:16px;bottom:15px;display:grid;place-items:center;min-width:42px;height:34px;padding:0 12px;border-radius:999px;background:rgba(5,13,17,.76);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.08em;backdrop-filter:blur(9px)}

@media(max-width:900px){
  .subdetail-bullet-grid{grid-template-columns:1fr}
  .subdetail-media-videos{grid-template-columns:1fr}
  .subdetail-media-track{grid-auto-columns:minmax(280px,64%)}
}
@media(max-width:640px){
  .subdetail-bullet-card{padding:24px 20px}
  .subdetail-media-track{grid-auto-columns:88%}
  .subdetail-media-slide,.subdetail-media-slide img{min-height:245px}
  .subdetail-media-toolbar{align-items:flex-end}
}

/* V2.0.50 — balanced sub-detail service details + uncropped media slider. */
@media(min-width:901px){
  .subdetail-bullet-grid.is-single{grid-template-columns:1fr}
  .subdetail-bullet-grid.is-single .subdetail-bullet-card{width:100%}
  .subdetail-bullet-grid.is-single .subdetail-bullet-card ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px;row-gap:0}
  .subdetail-bullet-grid.is-single .subdetail-bullet-card li{align-content:start;align-items:start;margin:0;padding:16px 0 16px 30px;min-height:0}
  .subdetail-bullet-grid.is-single .subdetail-bullet-card li:before{left:2px;top:calc(16px + .58em)}
  .subdetail-bullet-grid.is-single .subdetail-bullet-card li strong{display:block;margin:0;line-height:1.35}
  .subdetail-bullet-grid.is-single .subdetail-bullet-card li span{display:block;margin:0;line-height:1.72}
}
.subdetail-media-track{grid-auto-columns:calc((100% - 32px)/3);scroll-padding-inline:2px}
.subdetail-media-slide{height:clamp(300px,28vw,390px);min-height:0}
.subdetail-media-slide img{width:100%;height:100%;min-height:0;object-fit:contain;background:#111c21;transition:none}
.subdetail-media-slide:hover img{transform:none}
@media(max-width:900px){
  .subdetail-media-track{grid-auto-columns:calc((100% - 16px)/2)}
}
@media(max-width:640px){
  .subdetail-bullet-grid.is-single .subdetail-bullet-card ul{grid-template-columns:1fr}
  .subdetail-media-track{grid-auto-columns:100%}
  .subdetail-media-slide{height:clamp(245px,78vw,360px);min-height:0}
  .subdetail-media-slide img{min-height:0}
}


/* V2.0.51 — uniform sub-detail media frames without cropping source images. */
.subdetail-media-slide{isolation:isolate;background:#0d181d}
.subdetail-media-slide>.subdetail-media-image-frame{position:absolute;inset:0;display:grid;place-items:center;width:auto;min-width:0;height:auto;min-height:0;padding:0;border-radius:0;overflow:hidden;background:#0d181d;color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:normal;backdrop-filter:none}
.subdetail-media-slide>.subdetail-media-image-frame:before{content:"";position:absolute;inset:-24px;background-image:var(--subdetail-media-image);background-size:cover;background-position:center;filter:blur(22px) saturate(.82);transform:scale(1.12);opacity:.42}
.subdetail-media-slide>.subdetail-media-image-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,17,22,.12),rgba(7,17,22,.28))}
.subdetail-media-slide>.subdetail-media-image-frame img{position:relative;z-index:1;display:block;width:100%;height:100%;min-height:0;object-fit:contain;background:transparent;transition:none}
.subdetail-media-slide:hover>.subdetail-media-image-frame img{transform:none}
.subdetail-media-slide>.subdetail-media-index{position:absolute;z-index:3;left:16px;bottom:15px;display:grid;place-items:center;min-width:42px;height:34px;padding:0 12px;border-radius:999px;background:rgba(5,13,17,.76);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.08em;backdrop-filter:blur(9px)}
.capability-rail__track a{flex:1 1 25%}


/* V2.0.52 — live-style uniform media thumbnails + centered four-service home rail. */
.subdetail-media-slide{
  aspect-ratio:4/3;
  height:auto;
  min-height:0;
  background:#101b20;
}
.subdetail-media-slide>.subdetail-media-image-frame{
  position:absolute;
  inset:0;
  display:block;
  width:auto;
  min-width:0;
  height:auto;
  min-height:0;
  padding:0;
  overflow:hidden;
  background:#101b20;
}
.subdetail-media-slide>.subdetail-media-image-frame:before,
.subdetail-media-slide>.subdetail-media-image-frame:after{display:none}
.subdetail-media-slide>.subdetail-media-image-frame img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
  object-position:center;
  background:transparent;
  transition:transform .45s var(--ease);
}
.subdetail-media-slide:hover>.subdetail-media-image-frame img{transform:scale(1.025)}

.capability-rail{overflow:visible}
.capability-rail__track{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  width:var(--container);
  min-width:0;
  margin:0 auto;
  border:1px solid rgba(23,26,29,.11);
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,.72);
  box-shadow:0 14px 40px rgba(9,37,47,.05);
}
.capability-rail__track a{
  min-width:0;
  justify-content:center;
  text-align:center;
  gap:10px;
  padding:22px 14px;
  border-right:1px solid rgba(23,26,29,.11);
  white-space:nowrap;
}
.capability-rail__track a:last-child{border-right:0}
.capability-rail__track a i{display:none}
.capability-rail__track a:hover{padding:22px 14px;background:var(--ink);color:#fff}
.capability-rail__track a:hover span{color:var(--cyan-bright)}

@media(max-width:820px){
  .capability-rail__track{grid-template-columns:repeat(2,minmax(0,1fr))}
  .capability-rail__track a{border-bottom:1px solid rgba(23,26,29,.11)}
  .capability-rail__track a:nth-child(2n){border-right:0}
  .capability-rail__track a:nth-last-child(-n+2){border-bottom:0}
}
@media(max-width:520px){
  .capability-rail__track a{padding:18px 10px;white-space:normal;line-height:1.25}
  .capability-rail__track a:hover{padding:18px 10px}
}


/* V2.0.53 — estimate form completeness + site-wide responsive overflow safeguards. */
.quote-layout{grid-template-columns:minmax(0,1fr) minmax(330px,370px)}
.quote-layout>*{min-width:0}
.quote-side{min-width:0;overflow:visible}
.quote-side .h2{max-width:100%;font-size:clamp(1.9rem,2.65vw,2.85rem);line-height:1.08;letter-spacing:-.035em;text-wrap:balance;overflow-wrap:normal;word-break:normal}
.quote-side p,.quote-side li,.quote-side a{max-width:100%;overflow-wrap:anywhere}
.choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.choice{min-width:0}
.choice label{height:100%;min-width:0;padding:17px 16px;overflow-wrap:anywhere}
.choice label strong{display:inline-block;line-height:1.25}
.choice label small{display:inline-block;margin-top:4px;line-height:1.35}

html,body{max-width:100%}
body{overflow-x:clip}
main,section,header,footer,.container{min-width:0}
img,video,iframe,svg{max-width:100%}
iframe,video{display:block}
.breadcrumbs{flex-wrap:wrap;min-width:0}
.breadcrumbs>*{min-width:0}
.grid-2>*,.grid-3>*,.grid-4>*,.values>*,.service-detail-grid>*,.form-grid>*,.quote-layout>*,.split>*,.service-hero>*,.footer-grid>*{min-width:0}
.field,.field input,.field select,.field textarea{min-width:0}
.contact-line{min-width:0}
.contact-line>div,.contact-line strong,.footer a,.footer p{min-width:0;overflow-wrap:anywhere}
.article,.article p,.article h1,.article h2,.article h3{min-width:0;overflow-wrap:break-word}
.actions{min-width:0}

@media(max-width:1050px){
  .quote-layout{grid-template-columns:1fr}
  .quote-side{width:100%;max-width:none}
}
@media(max-width:760px){
  .choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-card{padding:clamp(22px,6vw,32px)}
  .quote-side{padding:clamp(22px,6vw,28px)}
  .quote-side .h2{font-size:clamp(1.8rem,8vw,2.45rem)}
  .btn{max-width:100%;white-space:normal;text-align:center;line-height:1.25;padding-top:13px;padding-bottom:13px;height:auto}
  .article .article-image{height:clamp(240px,62vw,380px)}
}
@media(max-width:480px){
  :root{--container:min(1180px,calc(100% - 22px))}
  .choice-grid{grid-template-columns:1fr}
  .choice label{padding:16px}
  .page-hero{padding-left:0;padding-right:0}
  .breadcrumbs{font-size:.78rem;line-height:1.45}
  .h1{font-size:clamp(2.15rem,12vw,3.25rem)}
  .h2{font-size:clamp(1.8rem,9.5vw,2.6rem)}
  .section{padding:64px 0}
  .section-sm{padding:48px 0}
  .cta-band{padding:36px 22px}
}

/* V2.0.53 tablet section-head safety discovered during 768px responsive QA. */
.section-head>*{min-width:0}
@media(max-width:820px){
  .section-head{display:block}
  .section-head .actions{margin-top:24px}
}


/* V2.0.54 — requested URL, responsive and homepage interaction fixes only. */

/* Services vision card: content-driven height on tablets and phones so wrapped copy and CTA never clip. */
@media(max-width:900px){
  .service-vision-section{padding-top:clamp(54px,8vw,72px);padding-bottom:clamp(54px,8vw,72px)}
  .service-vision{display:block;min-height:0;height:auto;overflow:hidden}
  .service-vision>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .service-vision-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,16,20,.18) 0%,rgba(9,16,20,.7) 38%,rgba(9,16,20,.96) 72%)}
  .service-vision-copy{position:relative;inset:auto;width:100%;min-height:0;padding:clamp(190px,31vw,270px) clamp(28px,5vw,42px) clamp(34px,6vw,52px);justify-content:flex-end}
  .service-vision-copy h2{font-size:clamp(2.35rem,8vw,4.35rem);line-height:.98;margin-top:20px;overflow-wrap:break-word}
  .service-vision-copy p{margin-bottom:24px}
  .service-vision-copy .btn{align-self:flex-start;max-width:100%}
}
@media(max-width:520px){
  .service-vision-copy{padding:clamp(150px,42vw,205px) 24px 32px}
  .service-vision-copy h2{font-size:clamp(2.2rem,12vw,3.35rem)}
}

/* Mobile services dropdown participates in normal document flow; following menu items are pushed down. */
@media(max-width:1050px){
  .nav-links{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;overflow-anchor:none;scroll-behavior:auto}
  .nav-links>a{flex:0 0 auto}
  .nav-links>.nav-drop{display:block!important;width:100%;height:auto!important;min-height:0!important;flex:0 0 auto!important;overflow:visible!important}
  .nav-links>.nav-drop>button{width:100%}
  .nav-drop.open>.nav-drop-menu{position:relative!important;inset:auto!important;display:block!important;width:100%!important;height:auto!important;max-height:none!important;margin:7px 0 10px!important;float:none!important;overflow:visible!important;opacity:1!important;visibility:visible!important;transform:none!important}
  .nav-drop.open>.nav-drop-menu .nav-drop-layout,
  .nav-drop.open>.nav-drop-menu .nav-service-area,
  .nav-drop.open>.nav-drop-menu .nav-service-grid{height:auto!important;max-height:none!important;overflow:visible!important}
}

/* Homepage testimonials: stack before the iPad Mini layout becomes cramped; reserve control space. */
@media(max-width:900px){
  .home-testimonials .grid-2{grid-template-columns:1fr;gap:34px;align-items:start!important}
  .home-testimonials .grid-2>div:first-child{max-width:680px}
  .home-testimonials .testimonial-shell{width:100%;padding:clamp(34px,6vw,48px) clamp(28px,5vw,44px) 94px}
  .home-testimonials .testimonial-slide blockquote{max-width:760px}
  .home-testimonials .slider-controls{left:auto;right:clamp(28px,5vw,44px);bottom:30px}
}
@media(max-width:520px){
  .home-testimonials .testimonial-shell{padding:30px 22px 90px}
  .home-testimonials .slider-controls{right:22px;bottom:24px}
  .home-testimonials .reviewer{align-items:flex-start}
}

/* Homepage capability row: fixed number column and consistent content alignment at every breakpoint. */
.capability-rail__track a{
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:center;
  justify-content:stretch;
  column-gap:10px;
  text-align:left;
  white-space:normal;
}
.capability-rail__track a span{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:50%;
  background:rgba(0,168,216,.08);
  line-height:1;
}
.capability-rail__track a:hover span{background:rgba(22,196,243,.14)}
.home-v203 .service-card{display:grid;grid-template-rows:auto auto 1fr auto;align-content:start}
.home-v203 .service-card .more{align-self:end}
@media(max-width:520px){
  .capability-rail__track a{grid-template-columns:30px minmax(0,1fr);gap:8px;padding:16px 10px}
  .capability-rail__track a:hover{padding:16px 10px}
  .capability-rail__track a span{width:30px;height:30px}
}

/* Hero skip control sits directly beneath the existing scroll instruction. */
.hero-cinematic-v228__explore{display:grid;justify-items:end;gap:7px;pointer-events:none}
.hero-cinematic-v228__skip{pointer-events:auto;display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(4,22,29,.32);color:rgba(255,255,255,.82);font-size:.6rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;backdrop-filter:blur(10px);transition:.22s var(--ease)}
.hero-cinematic-v228__skip:hover,.hero-cinematic-v228__skip:focus-visible{color:#fff;border-color:rgba(24,200,243,.48);background:rgba(24,200,243,.14);outline:none}
@media(max-width:720px){
  .hero-cinematic-v228__explore{gap:5px}
  .hero-cinematic-v228__skip{font-size:.55rem;padding:6px 9px;letter-spacing:.08em}
}

/* Featured Work remains visually identical while its anchors now open Fancybox. */
.home-v203 .gallery-item{display:block;text-decoration:none;color:inherit}

/* Homepage estimate CTA: content-driven tablet/mobile layout with no clipped action. */
@media(max-width:900px){
  .home-estimate-section .cta-band{display:grid;grid-template-columns:1fr;align-items:start;gap:26px;padding:clamp(38px,7vw,54px) clamp(28px,6vw,46px);min-height:0;height:auto}
  .home-estimate-section .cta-band .actions{margin:0;justify-content:flex-start;position:relative;z-index:2}
  .home-estimate-section .cta-band .btn{max-width:100%}
}
@media(max-width:520px){
  .home-estimate-section .cta-band{padding:34px 22px;gap:22px}
  .home-estimate-section .cta-band .actions,.home-estimate-section .cta-band .btn{width:100%}
  .home-estimate-section .cta-band .btn{justify-content:center}
}

/* V2.0.55 — requested hero-skip parity + large-screen service vision wrapping fix only. */

/* Keep Skip Slider directly beneath the explore control with the same footprint and visual weight. */
.hero-cinematic-v228__explore{
  width:max-content;
  max-width:100%;
  margin-left:auto;
  justify-items:stretch;
}
.hero-cinematic-v228__explore>.original-home-slider__wheel,
.hero-cinematic-v228__skip{
  box-sizing:border-box;
  width:100%;
  min-height:48px;
}
.hero-cinematic-v228__skip{
  justify-content:center;
  gap:12px;
  padding:9px 12px;
  border-color:rgba(255,255,255,.12);
  background:rgba(4,22,29,.30);
  color:rgba(255,255,255,.78);
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.15em;
}
.hero-cinematic-v228__skip>span{
  flex:0 0 20px;
  width:20px;
  height:30px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.55);
  border-radius:99px;
  color:var(--hero-cyan);
  font-size:.72rem;
  line-height:1;
}
@media(max-width:720px){
  .hero-cinematic-v228__skip{
    padding:9px 12px;
    font-size:.55rem;
    letter-spacing:.1em;
  }
}

/* Large-screen service vision cards: content drives height and copy uses a wider readable measure. */
@media(min-width:901px){
  .service-vision{
    display:block;
    min-height:0;
    height:auto;
  }
  .service-vision-copy{
    position:relative;
    inset:auto;
    width:min(820px,74%);
    min-height:620px;
    padding:clamp(58px,5vw,76px);
    justify-content:center;
  }
  .service-vision-copy h2{
    width:100%;
    max-width:720px;
    margin:22px 0 18px;
    font-size:clamp(3rem,4vw,4.25rem);
    line-height:.98;
    letter-spacing:-.05em;
    text-wrap:balance;
    overflow-wrap:normal;
    word-break:normal;
  }
  .service-vision-copy p{
    width:100%;
    max-width:700px;
    margin:0 0 28px;
    font-size:clamp(1rem,1.15vw,1.08rem);
    line-height:1.55;
    text-wrap:balance;
  }
  .service-vision-copy .btn{align-self:flex-start}
}


/* V2.0.56 — requested Our Work CTA, Services CTA, footer and process-marker fixes only. */

/* Our Work: the bottom prompt now uses the same section spacing + CTA band as other pages. */
.work-cta-section{padding-top:70px}
@media(max-width:760px){.work-cta-section{padding-top:54px}}
@media(max-width:480px){.work-cta-section{padding-top:48px}}

/* Services main-page CTA: keep the estimate action fully inside the card at every width. */
.services-main-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(28px,4vw,50px)}
.services-main-cta>*{min-width:0}
.services-main-cta .actions{position:relative;z-index:2;min-width:0;max-width:100%;justify-content:flex-end}
.services-main-cta .btn{box-sizing:border-box;max-width:100%;white-space:normal;text-align:center}
@media(max-width:900px){
  .services-main-cta{grid-template-columns:1fr;align-items:start}
  .services-main-cta .actions{justify-content:flex-start;margin:0}
}
@media(max-width:520px){
  .services-main-cta .actions,
  .services-main-cta .btn{width:100%}
  .services-main-cta .btn{justify-content:center}
}

/* Homepage Our Process: match the marker outline used by Services > Integrated Approach. */
.home-v203 .process-step{
  overflow:visible;
  border-top:1px solid rgba(255,255,255,.18);
  padding-top:28px;
  background-image:none;
}
.home-v203 .process-step:hover{background-image:none}
.home-v203 .process-step:before{
  top:-6px;
  left:28px;
  z-index:3;
  width:12px;
  height:12px;
  background:var(--cyan-bright);
  box-shadow:0 0 0 7px rgba(22,196,243,.14);
}
.home-v203 .process-step:after{bottom:0}
@media(max-width:760px){
  .home-v203 .process-step{padding-top:28px}
  .home-v203 .process-step:before{top:-6px;left:28px}
}

/* V2.0.57 — Our Work CTA button containment fix only. */
.work-cta-section .cta-band{
  display:grid;
  grid-template-columns:minmax(0,1fr) max-content;
  align-items:center;
  gap:clamp(28px,4vw,50px);
}
.work-cta-section .cta-band>*{min-width:0}
.work-cta-section .cta-band .actions{
  position:relative;
  z-index:2;
  min-width:0;
  max-width:100%;
  justify-content:flex-end;
  margin:0;
}
.work-cta-section .cta-band .btn{
  box-sizing:border-box;
  max-width:100%;
  white-space:normal;
  text-align:center;
  line-height:1.25;
}
@media(max-width:1100px){
  .work-cta-section .cta-band{grid-template-columns:1fr;align-items:start}
  .work-cta-section .cta-band .actions{justify-content:flex-start}
}
@media(max-width:520px){
  .work-cta-section .cta-band .actions,
  .work-cta-section .cta-band .btn{width:100%}
  .work-cta-section .cta-band .btn{justify-content:center}
}


/* V2.0.61: About > Our Approach card text visibility only. */
.about-approach-section .card .h3{color:var(--ink)}
.about-approach-section .card p{color:var(--slate)}


/* ========================================================================
   V2.0.79 — OUR WORK STAT ALIGNMENT + COMPACT MOBILE SERVICES MENU
   Keep statistic values and labels vertically centered, and anchor the mobile
   navigation to the header itself instead of using a fixed descendant. This
   avoids iOS Safari clipping/retaining the Services panel scroll position.
   ======================================================================== */
.work-hero-badge strong{line-height:1}
.work-hero-badge span{display:block;line-height:1.3}

@media(max-width:1050px){
  .site-header .nav{position:relative}
  .nav-links{
    position:absolute!important;
    top:calc(100% + 10px)!important;
    right:0!important;
    bottom:auto!important;
    left:0!important;
    max-height:var(--mobile-nav-max-height,calc(100dvh - 124px))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    overflow-anchor:none;
    -webkit-overflow-scrolling:touch;
    scroll-behavior:auto!important;
    scroll-padding-top:13px;
    z-index:100;
  }
  .nav-links>.nav-drop{scroll-margin-top:13px}
  .nav-drop.open>.nav-drop-menu{overflow:visible!important}
}

@media(max-width:760px){
  .work-proof-grid>div{align-items:center;gap:14px}
  .work-proof-grid strong{min-width:58px;text-align:right}
  .work-proof-grid span{max-width:none;line-height:1.35}
}

/* ========================================================================
   V2.0.82 — MOBILE SERVICES MENU + SHARED COMPONENT INTERACTIONS
   Use the verified small-screen nav alignment and extend the existing Home
   feature/process interaction treatment to the same components elsewhere.
   ======================================================================== */
@media(max-width:1050px){
  .nav-links{justify-content:unset!important}
}

body:not(.home-v203) .feature{
  transition:background-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease);
}
body:not(.home-v203) .feature:hover{
  background:#fff;
  box-shadow:0 15px 38px rgba(11,35,43,.08);
  transform:translateX(8px);
}
body:not(.home-v203) .process-step{
  transition:background-color .3s var(--ease);
}
body:not(.home-v203) .process-step:hover{
  background:rgba(255,255,255,.035);
}
@media(prefers-reduced-motion:reduce){
  body:not(.home-v203) .feature,
  body:not(.home-v203) .process-step{transition:none!important}
  body:not(.home-v203) .feature:hover{transform:none}
}


/* ========================================================================
   V2.0.83 — SMOOTH SHARED INTERACTIONS + MOBILE FEATURED WORK
   Match the complete Home feature-row surface treatment on equivalent
   non-home components so hover motion has the same padded, rounded canvas.
   On phones, keep every Home Featured Work project full-width so its title
   and archive metadata are never squeezed into the former two-column grid.
   ======================================================================== */
body:not(.home-v203) .feature{
  padding:15px;
  border-radius:18px;
  background:transparent;
  transition:background-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease);
}
body:not(.home-v203) .process-step{
  background-color:transparent;
  transition:background-color .3s var(--ease);
}

@media(max-width:760px){
  .home-v203 .gallery-grid{
    grid-template-columns:1fr;
    grid-template-rows:none;
    grid-auto-rows:250px;
  }
  .home-v203 .gallery-item:first-child{
    grid-column:auto;
    grid-row:auto;
  }
}

/* ========================================================================
   V2.0.84 — SERVICE DETAIL PROCESS HOVER PARITY
   Match the Services page process-step hover treatment on the equivalent
   five-step process section used by service detail pages only.
   ======================================================================== */
.service-process-step{
  transition:opacity .7s var(--ease),transform .7s var(--ease),background-color .3s var(--ease);
}
.service-process-step:hover{
  background:rgba(255,255,255,.035);
}


/* ========================================================================
   V2.0.87 — RESPONSIVE QA + HOMEPAGE H1 + DESKTOP MEGA MENU SAFETY
   Scoped fixes from the October 12, 2026 QA report. Earlier versioned rules
   remain intact; these final overrides align the active layout behavior.
   ======================================================================== */

/* The first hero slide is the document H1; keep its visual/animation treatment
   identical to the existing primary H2 slides. */
.hero-cinematic-v228 .original-home-slider__copy h1{
  width:100%!important;
  max-width:900px!important;
  margin:0 auto 0 0!important;
  padding:.06em 0 .1em;
  overflow:visible!important;
  color:#fff;
  font-family:var(--font-display);
  font-size:clamp(34px,3.8vw,62px)!important;
  font-weight:670;
  line-height:1.055!important;
  letter-spacing:-.042em!important;
  text-transform:uppercase;
  text-wrap:pretty!important;
  word-break:normal;
  overflow-wrap:normal;
  text-shadow:0 12px 44px rgba(0,0,0,.36);
}
.hero-cinematic-v228 .original-home-slider__copy h1[data-hero-copy-item]{opacity:1;transform:none;filter:none}
.hero-cinematic-v228 .original-home-slider__copy h1[data-hero-copy-item] .hero-cinematic-v228__line{
  opacity:0;
  transform:translateY(1.05em);
  filter:blur(7px);
  transition:opacity .58s ease,transform .82s cubic-bezier(.16,1,.3,1),filter .7s ease;
}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible h1[data-hero-copy-item] .hero-cinematic-v228__line{opacity:1;transform:translateY(0);filter:blur(0)}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible h1[data-hero-copy-item] .hero-cinematic-v228__line:first-child{transition-delay:.11s}
.hero-cinematic-v228 .original-home-slider__slide.is-copy-visible h1[data-hero-copy-item] .hero-cinematic-v228__line:last-child{transition-delay:.2s}

/* Desktop Services menu is anchored to the header navigation container rather
   than the Services trigger so the panel cannot bleed off the viewport. */
@media(min-width:1181px){
  .site-header .nav{position:relative}
  .nav-links>.nav-drop{position:static}
  .nav-drop-menu{
    left:50%;
    width:min(1000px,calc(100% - 48px));
    transform:translate(-50%,12px) scale(.99);
  }
  .nav-drop:hover .nav-drop-menu,
  .nav-drop:focus-within .nav-drop-menu{transform:translate(-50%,0) scale(1)}
  .nav-drop-menu:before{display:none}
}

/* Keep the call CTA on normal laptop widths where the full desktop nav remains. */
@media(min-width:1201px) and (max-width:1440px){
  .nav-call{display:flex}
}

/* Remove the 0.71/0.72rem compressed navigation state immediately above the
   drawer breakpoint. */
@media(min-width:1181px) and (max-width:1220px){
  .nav-links>a,.nav-drop>button{padding-inline:8px;font-size:.75rem}
  .nav-estimate{padding-inline:13px;font-size:.7rem}
}

/* Engage the existing mobile drawer at 1180px instead of waiting until 1050px. */
@media(max-width:1180px){
  .site-header .nav{position:relative;width:calc(100% - 28px)}
  .site-header .brand{min-width:0;max-width:calc(100% - 62px)}
  .site-header .nav-cta{margin-left:auto;flex:0 0 auto}
  .nav-call{display:none}
  .nav-estimate{display:none}
  .menu-toggle{display:grid;margin-left:auto}
  .nav-links{
    position:absolute!important;
    top:calc(100% + 10px)!important;
    right:0!important;
    bottom:auto!important;
    left:0!important;
    z-index:100;
    display:none;
    flex-direction:column;
    align-items:stretch;
    justify-content:unset!important;
    gap:4px;
    max-height:var(--mobile-nav-max-height,calc(100dvh - 124px))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    overflow-anchor:none;
    -webkit-overflow-scrolling:touch;
    scroll-behavior:auto!important;
    scroll-padding-top:13px;
    padding:13px;
    border:1px solid rgba(7,54,67,.1);
    border-radius:20px;
    background:rgba(253,255,255,.985);
    box-shadow:0 28px 70px rgba(4,28,36,.18);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);
  }
  body.menu-open .nav-links{display:flex}
  .nav-links>a,.nav-drop>button{
    width:100%;
    height:48px;
    min-height:48px;
    padding:0 14px;
    border-radius:12px;
    font-size:.86rem;
    text-align:left;
  }
  .nav-links>a{justify-content:flex-start}
  .nav-links>.nav-drop{position:relative;display:block!important;width:100%;height:auto!important;min-height:0!important;flex:0 0 auto!important;overflow:visible!important;scroll-margin-top:13px}
  .nav-links>.nav-drop>button{width:100%;justify-content:space-between}
  .nav-drop-menu{
    position:relative!important;
    inset:auto!important;
    display:none!important;
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    margin:7px 0 10px!important;
    padding:7px;
    float:none!important;
    overflow:visible!important;
    border:0;
    border-radius:16px;
    background:#f1f7f9;
    box-shadow:none;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
  }
  .nav-drop.open>.nav-drop-menu{display:block!important}
  .nav-drop-menu:before{display:none}
  .nav-drop-intro{display:none}
  .nav-service-area{padding:0}
  .nav-service-heading{display:none}
  .nav-service-grid{grid-template-columns:1fr;gap:5px;padding:0;height:auto!important;max-height:none!important;overflow:visible!important}
  .nav-drop-menu .nav-service-link{grid-template-columns:42px minmax(0,1fr) 8px;min-height:66px;padding:8px 9px;background:rgba(255,255,255,.72)}
  .nav-service-link small{white-space:normal;-webkit-line-clamp:1;line-clamp:1}
  .nav-drop:not(.open) .nav-services-indicator{transform:none;border-color:rgba(0,130,166,.12);background:rgba(0,168,216,.07)}
  .nav-drop:not(.open) .nav-services-indicator>span:last-child{opacity:1;transform:rotate(90deg)}
}

/* Short laptop screens: reserve a larger dock-safe zone and compact the copy
   without changing the desktop composition on taller displays. */
@media(min-width:1181px) and (max-width:1440px) and (max-height:820px){
  .hero-cinematic-v228{
    --hero-safe-top:72px;
    --hero-safe-bottom:128px;
    height:calc(100svh - 118px);
    min-height:560px;
  }
  .hero-cinematic-v228 .original-home-slider__copy{padding:14px 26px}
  .hero-cinematic-v228 .original-home-slider__copy h1,
  .hero-cinematic-v228 .original-home-slider__copy h2{font-size:clamp(31px,3.45vw,50px)!important;line-height:1.035!important}
  .hero-cinematic-v228 .original-home-slider__copy .hero-cinematic-v228__secondary{font-size:clamp(15px,1.45vw,21px)!important;line-height:1.2!important}
  .hero-cinematic-v228__eyebrow{margin-bottom:8px!important}
  .hero-cinematic-v228 .original-home-slider__copy hr{margin:9px 0 8px}
  .hero-cinematic-v228__family{margin-top:2px!important}
  .hero-cinematic-v228__dock{bottom:12px;padding-block:10px}
  .hero-cinematic-v228 .original-home-slider__meta{top:12px}
}

@media(max-width:1180px){
  .hero-cinematic-v228 .original-home-slider__copy h1{max-width:820px!important;font-size:clamp(32px,4.45vw,52px)!important}
}
@media(max-width:900px){
  .hero-cinematic-v228 .original-home-slider__copy h1{max-width:760px!important;font-size:clamp(31px,5.7vw,48px)!important;line-height:1.07!important}
}
@media(max-width:720px){
  .hero-cinematic-v228 .original-home-slider__copy h1{max-width:100%!important;font-size:clamp(27px,8.35vw,40px)!important;line-height:1.09!important;letter-spacing:-.037em!important}
}
@media(max-width:430px){
  .hero-cinematic-v228 .original-home-slider__copy h1{font-size:clamp(25px,8vw,34px)!important}
}
@media(prefers-reduced-motion:reduce){
  .hero-cinematic-v228 .original-home-slider__copy h1[data-hero-copy-item] .hero-cinematic-v228__line{transition:none!important;transform:none!important;filter:none!important;opacity:1!important}
}
