:root{
  --ink:#16181c; --coal:#212429; --coal-2:#282c33; --paper:#f6f8fb; --white:#ffffff;
  --blue:#1b74e8; --sky:#2fb9f2; --line:rgba(22,24,28,.12); --line-dark:rgba(255,255,255,.14);
  --muted:#5b6572; --muted-dark:#aab4c0;
  --radius:16px; --maxw:1180px;
  --shadow:0 20px 50px -22px rgba(16,24,40,.35);
  --grad:linear-gradient(100deg,var(--blue),var(--sky));
}
*,*::before,*::after{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:'Outfit',system-ui,sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2.5rem)}
h1,h2,h3{line-height:1.08;letter-spacing:-.02em;font-weight:700}
h1{font-size:clamp(2.3rem,5.6vw,4.1rem)}
h2{font-size:clamp(1.9rem,4vw,3rem)}
h3{font-size:1.28rem}
.eyebrow{display:inline-flex;align-items:center;gap:.55em;font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--sky)}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--grad)}
.lede{font-size:1.12rem;color:var(--muted)}
.on-dark .lede{color:var(--muted-dark)}
.btn{display:inline-flex;align-items:center;gap:.5em;font-weight:600;font-size:1rem;padding:.9em 1.6em;border-radius:12px;transition:transform .2s,box-shadow .2s,background .2s;cursor:pointer;border:none;font-family:inherit}
.btn-primary{background:var(--grad);color:#fff;box-shadow:0 10px 24px -10px rgba(27,116,232,.55)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px -10px rgba(27,116,232,.6)}
.btn-ghost{border:1.5px solid var(--line);color:var(--ink);background:transparent}
.btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px)}
.btn-ghost-dark{border:1.5px solid var(--line-dark);color:#fff;background:transparent}
.btn-ghost-dark:hover{border-color:#fff;transform:translateY(-2px)}
.section{padding-block:clamp(3.6rem,8vw,6.5rem)}
.on-dark{background:var(--coal);color:#eef2f6}
.on-dark h2,.on-dark h3{color:#fff}

/* header */
header{position:fixed;top:0;left:0;right:0;z-index:50;background:transparent;border-bottom:1px solid transparent;transition:background .25s,border-color .25s,backdrop-filter .25s}
header.scrolled{background:#212429f2;backdrop-filter:blur(10px);border-bottom-color:var(--line-dark)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;gap:1rem;position:relative}
header .wrap{max-width:1800px;padding-inline:clamp(1.2rem,6vw,6rem)}
@media(min-width:1320px){.nav-links{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}}
.brand img{height:52px;width:auto}
.nav-links{display:flex;gap:1.7rem;align-items:center}
.nav-links a{color:#fff;font-weight:600;font-size:1.05rem;position:relative;padding-block:.3rem;text-shadow:0 1px 4px rgba(0,0,0,.35)}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--grad);transition:width .25s}
.nav-links a:hover{color:#fff}.nav-links a:hover::after{width:100%}
.nav-toggle{display:none;background:none;border:none;width:44px;height:44px;cursor:pointer}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{display:block;width:22px;height:2px;background:#fff;position:relative;transition:.25s;content:""}
.nav-toggle span::before{position:absolute;top:-7px}.nav-toggle span::after{position:absolute;top:7px}

/* hero */
.hero{background:radial-gradient(1100px 600px at 85% -10%,rgba(47,185,242,.26),transparent 55%),radial-gradient(700px 500px at -10% 110%,rgba(27,116,232,.30),transparent 60%),var(--coal);color:#eef2f6;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:center;padding-block:clamp(3.2rem,7vw,5.5rem)}
.hero h1{color:#fff;margin-top:1rem}
.hero h1 .accent{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lede{margin-top:1.2rem;max-width:46ch}
.hero-chips{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.6rem}
.chip{font-size:.82rem;font-weight:600;color:#dfe6ee;border:1px solid var(--line-dark);border-radius:999px;padding:.42rem .95rem;background:rgba(255,255,255,.04)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.9rem}

/* quote card */
.quote-card{background:var(--white);color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.7rem;max-width:430px;justify-self:end;width:100%}
.quote-card h3{font-size:1.25rem}
.quote-card p.small{font-size:.88rem;color:var(--muted);margin-top:.3rem}
.quote-card form{display:grid;gap:.75rem;margin-top:1.1rem}
.quote-card input,.quote-card select,.quote-card textarea{font:inherit;font-size:.95rem;padding:.75rem .85rem;border:1.5px solid var(--line);border-radius:10px;width:100%;background:var(--paper)}
.quote-card textarea{min-height:88px;resize:vertical}
.quote-card input:focus,.quote-card select:focus,.quote-card textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,116,232,.15)}
.quote-card .btn{width:100%;justify-content:center}

/* trust strip */
.strip{background:var(--coal-2);border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}
.strip-inner{display:flex;flex-wrap:wrap;gap:1rem 2.4rem;justify-content:center;padding-block:1.15rem;color:#dfe6ee;font-weight:600;font-size:.92rem}
.strip-inner span{display:inline-flex;align-items:center;gap:.5rem}
.strip-inner svg{color:var(--sky)}

/* services */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:2.4rem}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;transition:transform .25s,box-shadow .25s;position:relative;overflow:hidden}
.card::before{content:"";position:absolute;inset:0 auto auto 0;width:0;height:3px;background:var(--grad);transition:width .3s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card:hover::before{width:100%}
.card .ic{width:46px;height:46px;border-radius:12px;background:rgba(27,116,232,.1);color:var(--blue);display:grid;place-items:center;margin-bottom:1rem}
.card p{color:var(--muted);font-size:.95rem;margin-top:.5rem}

/* splits */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.2rem);align-items:center}
.split.flip>:first-child{order:2}
.split img{border-radius:var(--radius);box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover;width:100%}
.ticks{display:grid;gap:.7rem;margin-top:1.4rem;padding:0;list-style:none}
.ticks li{display:flex;gap:.65rem;align-items:flex-start;font-size:.98rem}
.ticks .t{flex:none;width:22px;height:22px;border-radius:50%;background:rgba(27,116,232,.12);color:var(--blue);display:grid;place-items:center;margin-top:.15rem}
.on-dark .ticks .t{background:rgba(47,185,242,.18);color:var(--sky)}
.on-dark .ticks li{color:#dfe6ee}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:2.4rem;counter-reset:s}
.step{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}
.step .n{counter-increment:s;font-size:2.2rem;font-weight:800;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.step .n::before{content:"0" counter(s)}
.step h3{font-size:1.08rem;margin-top:.5rem}
.step p{font-size:.9rem;color:var(--muted);margin-top:.4rem}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.4rem}
.gallery figure{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .4s}
.gallery figure:hover img{transform:scale(1.04)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:.7rem 1rem;font-size:.82rem;font-weight:600;color:#fff;background:linear-gradient(transparent,rgba(16,20,26,.82))}

/* faq */
.faq{max-width:760px;margin:2rem auto 0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:1.2rem 2.4rem 1.2rem 0;font-weight:600;font-size:1.05rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);color:var(--blue);font-size:1.5rem;font-weight:500;transition:transform .25s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq .a{padding:0 0 1.2rem;color:var(--muted);font-size:.97rem}

/* cta band */
.cta-band{background:radial-gradient(700px 380px at 80% -20%,rgba(47,185,242,.36),transparent 60%),var(--coal);color:#fff;border-radius:calc(var(--radius) + 6px);padding:clamp(2.4rem,5vw,4rem);text-align:center;box-shadow:var(--shadow)}
.cta-band .lede{max-width:52ch;margin:1rem auto 0}
.cta-band .btns{display:flex;justify-content:center;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}

/* footer */
footer{background:var(--coal);color:var(--muted-dark);margin-top:clamp(3rem,7vw,5rem)}
.f-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2rem;padding-block:3rem 2rem}
.f-top img{height:56px;width:auto}
.f-top p{font-size:.92rem;margin-top:1rem;max-width:36ch}
.f-col h5{color:#fff;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1rem}
.f-col ul{list-style:none;padding:0;display:grid;gap:.6rem}
.f-col a{font-size:.94rem}
.f-col a:hover{color:#fff}
.f-bottom{border-top:1px solid var(--line-dark);padding-block:1.4rem;font-size:.82rem;display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between}
.f-credit{display:block;text-align:center;padding:1rem 0 1.6rem;border-top:1px solid var(--line-dark);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase}
.f-credit a{color:#fff;font-weight:700;text-decoration:underline}

@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr}.quote-card{justify-self:stretch;max-width:none}
  .cards{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}.split.flip>:first-child{order:0}
  .gallery{grid-template-columns:1fr 1fr}
  .f-top{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .nav-links{display:none;position:fixed;inset:76px 0 auto 0;background:var(--coal);flex-direction:column;align-items:flex-start;padding:1rem 1.4rem 1.6rem;gap:0;border-bottom:1px solid var(--line-dark)}
  .nav-links.open{display:flex}
  .nav-links a{width:100%;padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:1.05rem}
  .nav-toggle{display:block}
  .cards{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}
}

/* inner pages */
.page-hero{background:radial-gradient(900px 500px at 85% -10%,rgba(47,185,242,.26),transparent 55%),var(--coal);color:#eef2f6;padding-top:calc(76px + clamp(2.6rem,6vw,4.2rem));padding-bottom:clamp(2.6rem,6vw,4.2rem)}
.page-hero h1{color:#fff;font-size:clamp(2rem,4.6vw,3.3rem);margin-top:.9rem}
.page-hero .lede{margin-top:1rem;max-width:56ch}
.crumbs{font-size:.82rem;color:var(--muted-dark)}
.crumbs a:hover{color:#fff}
.prose-cta{margin-top:1.7rem;display:flex;gap:.8rem;flex-wrap:wrap}

/* free-quote popup */
.qp-launcher{position:fixed;right:22px;bottom:20px;z-index:80;width:58px;height:58px;display:grid;place-items:center;background:var(--grad);color:#fff;border:none;border-radius:50%;padding:0;cursor:pointer;box-shadow:0 12px 28px -10px rgba(27,116,232,.65);transition:transform .2s}
.qp-launcher .ico-close{display:none}
.qp-launcher.is-open .ico-close{display:block}
.qp-launcher.is-open .ico-bolt{display:none}
.qp-launcher:hover{transform:translateY(-2px)}
.qp-panel{position:fixed;right:22px;bottom:92px;z-index:81;width:min(370px,calc(100vw - 40px));max-height:calc(100vh - 116px);overflow-y:auto;background:var(--white);color:var(--ink);border-radius:var(--radius);box-shadow:0 24px 60px -18px rgba(16,24,40,.5)}
.qp-panel[hidden]{display:none}
.qp-head{display:flex;gap:.8rem;align-items:flex-start;background:var(--grad);color:#fff;padding:1rem 1.1rem;border-radius:var(--radius) var(--radius) 0 0;position:sticky;top:0}
.qp-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;flex:none;border:2px solid rgba(255,255,255,.7)}
.qp-head-txt strong{font-size:1.02rem;display:block}
.qp-head-txt span{font-size:.78rem;line-height:1.35;display:block;margin-top:.15rem;color:rgba(255,255,255,.92)}
.qp-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#3ddc84;margin-right:.4em}
.qp-close{margin-left:auto;background:none;border:none;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .1rem;flex:none;font-family:inherit}
.qp-form{display:grid;gap:.6rem;padding:1rem 1.1rem 1.15rem}
.qp-form input,.qp-form select,.qp-form textarea{font:inherit;font-size:.92rem;padding:.65rem .8rem;border:1.5px solid var(--line);border-radius:10px;width:100%;background:var(--paper)}
.qp-form textarea{min-height:70px;resize:vertical}
.qp-form input:focus,.qp-form select:focus,.qp-form textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,116,232,.15)}
.qp-form .btn{width:100%;justify-content:center}
.qp-err{color:#b3261e;font-size:.82rem;display:none;margin:0}
.qp-err a{text-decoration:underline}
.qp-success{padding:2.2rem 1.4rem;text-align:center}
.qp-success .t{width:44px;height:44px;border-radius:50%;background:rgba(27,116,232,.12);color:var(--blue);display:grid;place-items:center;margin:0 auto 1rem;font-size:1.3rem;font-weight:700}
.qp-success h3{font-size:1.15rem}
.qp-success .small{font-size:.88rem;color:var(--muted);margin-top:.4rem}
@media(max-width:720px){
  .qp-launcher{right:14px;bottom:14px;width:52px;height:52px}
  .qp-panel{left:10px;right:10px;bottom:76px;width:auto;max-height:calc(100dvh - 96px)}
}

/* nav dropdowns */
.nav-dd{position:relative}
.nav-dd>a{display:inline-flex;align-items:center;gap:.35rem}
.nav-dd .car{transition:transform .2s}
.nav-dd:hover .car,.nav-dd:focus-within .car{transform:rotate(180deg)}
.dd-menu{position:absolute;top:100%;left:50%;transform:translateX(-50%);padding-top:.8rem;display:none;z-index:60}
.nav-dd:hover .dd-menu,.nav-dd:focus-within .dd-menu{display:block}
.dd-card{background:var(--white);border-radius:14px;box-shadow:0 24px 55px -20px rgba(16,24,40,.45);padding:.55rem;min-width:230px;display:grid;gap:.1rem}
.nav-links .dd-card a{display:block;padding:.55rem .9rem;border-radius:9px;font-size:.92rem;font-weight:500;color:var(--ink);white-space:nowrap;text-shadow:none}
.nav-links .dd-card a::after{display:none}
.nav-links .dd-card a:hover{background:rgba(27,116,232,.08);color:var(--blue)}
.dd-2col{grid-template-columns:1fr 1fr;min-width:400px}
.dd-2col .dd-all{grid-column:1/-1}
.nav-links .dd-card .dd-all{border-top:1px solid var(--line);margin-top:.3rem;padding-top:.65rem;color:var(--blue);font-weight:600}
@media(max-width:720px){
  .nav-dd{width:100%}
  .nav-links .nav-dd>a{width:100%;padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:1.05rem}
  .dd-menu{display:none!important}
}

/* photo hero */
.hero-photo{position:relative;isolation:isolate;overflow:hidden}
.hero-slides{position:absolute;inset:0;z-index:-2}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.4s ease}
.hero-slide.is-on{opacity:1}
.hero-photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(8,12,18,.82) 0%,rgba(8,12,18,.55) 40%,rgba(8,12,18,.22) 70%,rgba(8,12,18,.06) 100%)}
.hero-inner{padding-top:calc(76px + clamp(3.2rem,8vw,6.5rem));padding-bottom:clamp(4.2rem,10vw,8rem)}
.hero-inner h1{max-width:15ch;text-shadow:0 2px 10px rgba(0,0,0,.45)}
.hero-photo h1 .accent{background:none;-webkit-background-clip:initial;background-clip:initial;color:#fff}
.hero-inner .lede{color:#eef2f6;max-width:52ch;text-shadow:0 1px 6px rgba(0,0,0,.4)}
.hero-inner .eyebrow{color:#7fd4ff;text-shadow:0 1px 4px rgba(0,0,0,.5)}
.hero-inner .chip{background:rgba(10,14,20,.35);border-color:rgba(255,255,255,.28);text-shadow:0 1px 3px rgba(0,0,0,.4)}
.ig-pill{display:inline-flex;align-items:center;gap:.55rem;margin-top:1.5rem;padding:.55rem 1.15rem;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(10,14,20,.35);color:#fff;font-weight:600;font-size:.92rem;backdrop-filter:blur(4px);transition:background .2s,transform .2s;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.ig-pill:hover{background:rgba(10,14,20,.55);transform:translateY(-1px)}

/* header phone pill */
.phone-pill{display:inline-flex;align-items:center;gap:.5rem;border:1.5px solid rgba(255,255,255,.35);border-radius:12px;padding:.72em 1.15em;color:#fff;font-weight:600;font-size:.98rem;text-shadow:0 1px 4px rgba(0,0,0,.35);transition:border-color .2s,background .2s}
.phone-pill:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.phone-pill svg{color:var(--sky);flex:none}
@media(max-width:960px){.phone-pill span{display:none}.phone-pill{padding:.65em;border-radius:50%}}
