
:root{
  --red:#de292f; --red-600:#c31f25; --red-700:#a5181d;
  --ink:#0c0e13; --ink-2:#12151c; --ink-3:#1b1f28;
  --paper:#f4f5f7; --paper-2:#eceef1; --white:#ffffff;
  --text:#1a1d24; --muted:#5c6470; --line:rgba(12,14,19,.10);
  --maxw:1720px; --pad:clamp(1.2rem,4vw,4rem);
  --disp:"Google Sans Flex","Inter",system-ui,sans-serif;
  --label:"Google Sans Flex","Inter",system-ui,sans-serif;
  --body:"Google Sans Flex","Inter",system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{overflow-x:hidden;overflow-x:clip}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased;line-height:1.6}
h1,h2,h3,h4{font-family:var(--disp);text-transform:uppercase;line-height:1.0;letter-spacing:-.02em;text-wrap:balance;font-weight:500}
p{text-wrap:pretty}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
.wrap{width:88%;max-width:var(--maxw);margin-inline:auto;padding-inline:0}
@media(max-width:640px){.wrap{width:auto;padding-inline:var(--pad)}}
.eyebrow{font-family:var(--label);text-transform:uppercase;letter-spacing:.22em;font-weight:600;font-size:.78rem;color:var(--red)}
.red{color:var(--red)}
.dot{color:var(--red)}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--label);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;padding:1.05em 1.8em;border-radius:2px;cursor:pointer;transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s,color .25s,box-shadow .25s;will-change:transform}
button.btn{border:0}
.btn svg{width:1.15em;height:1.15em}
.btn-red{background:var(--red);color:#fff;box-shadow:0 10px 30px -12px rgba(225,34,40,.7)}
.btn-red:hover{background:var(--red-600);transform:translateY(-3px);box-shadow:0 18px 40px -14px rgba(225,34,40,.85)}
.btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.35)}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);transform:translateY(-3px)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:var(--ink-3);transform:translateY(-3px)}

/* ---------- Top utility bar ---------- */
.topbar{background:var(--red);color:#fff;font-family:var(--label);font-weight:600;font-size:.82rem;letter-spacing:.02em}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;min-height:40px;gap:1rem}
.topbar .socials{display:flex;gap:.6rem}
.topbar .socials a{width:24px;height:24px;display:grid;place-items:center;background:rgba(0,0,0,.18);border-radius:3px;transition:background .2s}
.topbar .socials a:hover{background:rgba(0,0,0,.4)}
.topbar .socials svg{width:13px;height:13px;fill:#fff}
@media(max-width:720px){.topbar .tagline{display:none}}

/* ---------- Header ---------- */
.header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.header.scrolled{box-shadow:0 12px 30px -18px rgba(0,0,0,.35)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:1.5rem}
.logo{height:56px;width:auto;aspect-ratio:4000/999}
.nav{display:flex;align-items:center;gap:2.1rem}
.nav a{font-family:var(--label);font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;color:var(--ink);position:relative;padding:.2em 0}
.nav a::after{content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;background:var(--red);transition:width .3s cubic-bezier(.2,.8,.2,1)}
.nav a:hover::after{width:100%}
.header .cta{display:flex;align-items:center;gap:1rem}
.callbtn{background:var(--ink);color:#fff;font-family:var(--disp);font-weight:600;font-size:1rem;letter-spacing:.01em;padding:.75em 1.25em;border-radius:2px;display:inline-flex;align-items:center;gap:.5em;transition:background .25s,transform .25s}
.callbtn:hover{background:var(--red);transform:translateY(-2px)}
.callbtn svg{width:1.1em;height:1.1em;fill:currentColor}
.menu-toggle{display:none;background:none;border:0;padding:.5rem;margin:-.5rem;cursor:pointer;color:var(--ink);line-height:0}
.menu-toggle .hamburger{display:block;width:26px;height:18px;position:relative}
.menu-toggle .hamburger span{position:absolute;left:0;height:2.5px;width:100%;background:currentColor;border-radius:2px;transition:transform .3s,opacity .2s,top .3s}
.menu-toggle .hamburger span:nth-child(1){top:0}
.menu-toggle .hamburger span:nth-child(2){top:7.75px}
.menu-toggle .hamburger span:nth-child(3){top:15.5px}
.menu-toggle[aria-expanded="true"] .hamburger span:nth-child(1){top:7.75px;transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] .hamburger span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .hamburger span:nth-child(3){top:7.75px;transform:rotate(-45deg)}
@media(max-width:1080px){.nav{display:none}.menu-toggle{display:inline-flex}.callbtn{display:none}}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:clamp(620px,92vh,1000px);display:flex;align-items:center;overflow:hidden;background:var(--ink)}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:70% 60%}
.hero__scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(100deg, rgba(8,10,15,.94) 0%, rgba(8,10,15,.82) 30%, rgba(8,10,15,.35) 58%, rgba(8,10,15,.15) 100%),
  linear-gradient(0deg, rgba(8,10,15,.75) 0%, rgba(8,10,15,0) 40%)}
.hero__spark{position:absolute;inset:0;z-index:2;pointer-events:none}
.hero .wrap{position:relative;z-index:3;width:100%;padding-block:clamp(3rem,7vh,6rem)}
.hero__inner{max-width:72rem}
.hero .eyebrow{color:#fff;opacity:.85}
.hero .eyebrow b{color:var(--red)}
.hero h1{color:#fff;font-weight:500;font-size:clamp(2.3rem,5vw,4.6rem);margin:.4em 0 .22em;letter-spacing:-.03em;line-height:1.02}
.hero h1 .l2{display:block}
.hero__tag{font-family:var(--disp);font-weight:500;text-transform:uppercase;color:#fff;font-size:clamp(1.15rem,2.2vw,1.75rem);letter-spacing:.02em;margin-bottom:1.4rem}
.hero__sub{color:rgba(255,255,255,.82);font-size:clamp(1.02rem,1.3vw,1.22rem);max-width:40rem;margin-bottom:2rem}
.hero__ctas{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2.4rem}
.hero__pills{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;padding-top:1.7rem;border-top:1px solid rgba(255,255,255,.16)}
.pill{display:flex;align-items:center;gap:.6rem;color:#fff;font-family:var(--label);font-weight:600;font-size:.98rem}
.pill .ic{width:34px;height:34px;border-radius:50%;background:var(--red);display:grid;place-items:center;flex:none;box-shadow:0 6px 18px -8px rgba(225,34,40,.9)}
.pill .ic svg{width:17px;height:17px;fill:#fff}

/* ---------- Trust strip ---------- */
.trust{background:var(--ink);color:#fff;border-top:1px solid rgba(255,255,255,.06)}
.trust .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem clamp(1.5rem,4vw,3.5rem);min-height:70px;text-align:center}
.trust .stmt{font-family:var(--disp);font-weight:500;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(.95rem,1.5vw,1.25rem)}
.trust .stmt .red{color:var(--red)}
.trust .sep{width:6px;height:6px;background:var(--red);border-radius:50%;flex:none}

/* ---------- Section base ---------- */
/* Long single words (e.g. "Telecommunications") must not overflow narrow screens */
h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}
section{position:relative}
.sec{padding-block:clamp(4.5rem,9vw,8rem)}
.sec-head{max-width:60rem;margin-bottom:clamp(2.5rem,5vw,4rem)}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head h2{font-size:clamp(2.3rem,5vw,4.4rem);color:var(--ink);margin:.3em 0 .35em}
.sec-head .lede{color:var(--muted);font-size:clamp(1.05rem,1.3vw,1.2rem);max-width:44rem}
.sec-head.center .lede{margin-inline:auto}

/* ---------- Intro split ---------- */
.intro{background:var(--paper)}
.intro__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.intro__media{position:relative}
.intro__media img{width:100%;height:100%;object-fit:cover;border-radius:4px;aspect-ratio:4/3}
.intro__media .badge{position:absolute;left:-18px;bottom:-18px;background:var(--red);color:#fff;padding:1.1rem 1.4rem;border-radius:3px;box-shadow:0 20px 40px -18px rgba(225,34,40,.8)}
.intro__media .badge b{font-family:var(--disp);font-weight:600;font-size:2.6rem;display:block;line-height:1}
.intro__media .badge span{font-family:var(--label);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}
.intro h3{font-size:clamp(1.1rem,1.5vw,1.35rem);color:var(--muted);font-weight:600;letter-spacing:.02em}
.intro h2{font-size:clamp(2rem,4vw,3.4rem);color:var(--ink);margin:.15em 0 .7em}
.intro p{color:var(--muted);margin-bottom:1.1rem;font-size:1.06rem}
.intro .facts{display:flex;gap:2.4rem;margin:1.6rem 0 2rem;flex-wrap:wrap}
.intro .facts b{font-family:var(--disp);font-weight:600;font-size:2.4rem;color:var(--ink);display:block;line-height:1}
.intro .facts span{color:var(--muted);font-size:.9rem;font-weight:500}
@media(max-width:900px){.intro__grid{grid-template-columns:1fr}}

/* ---------- Services ---------- */
.services{background:var(--white)}
.svc-feature{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,2.5vw,2rem);margin-bottom:clamp(1.2rem,2.5vw,2rem)}
.svc-lg{position:relative;min-height:420px;border-radius:5px;overflow:hidden;display:flex;align-items:flex-end;color:#fff;isolation:isolate}
.svc-lg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.svc-lg::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(8,10,15,.92) 0%,rgba(8,10,15,.45) 45%,rgba(8,10,15,.12) 100%)}
.svc-lg:hover img{transform:scale(1.06)}
.svc-lg .body{padding:clamp(1.6rem,3vw,2.6rem)}
.svc-lg .tag{font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:var(--red);background:#fff;display:inline-block;padding:.35em .7em;border-radius:2px;margin-bottom:.9rem}
.svc-lg h3{font-size:clamp(1.9rem,3vw,2.8rem);margin-bottom:.4rem}
.svc-lg p{color:rgba(255,255,255,.85);max-width:34rem;margin-bottom:1.1rem}
.svc-lg .more{font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;color:#fff;display:inline-flex;align-items:center;gap:.5em}
.svc-lg .more svg{width:1em;height:1em;transition:transform .3s}
.svc-lg:hover .more svg{transform:translateX(5px)}
.svc-sm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.5vw,2rem)}
.svc-sm{background:var(--paper);border-radius:5px;padding:clamp(1.6rem,2.5vw,2.2rem);transition:transform .3s,box-shadow .3s;border-top:3px solid transparent}
.svc-sm:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(0,0,0,.4);border-top-color:var(--red)}
.svc-sm .ic{width:56px;height:56px;border-radius:50%;background:var(--ink);display:grid;place-items:center;margin-bottom:1.1rem;transition:background .3s}
.svc-sm:hover .ic{background:var(--red)}
.svc-sm .ic svg{width:26px;height:26px;fill:#fff}
.svc-sm h3{font-size:1.5rem;color:var(--ink);margin-bottom:.4rem}
.svc-sm p{color:var(--muted);font-size:.98rem}
@media(max-width:900px){.svc-feature{grid-template-columns:1fr}.svc-sm-grid{grid-template-columns:1fr}}

/* ---------- Why / stats band ---------- */
.why{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.why__circuit{position:absolute;inset:0;z-index:0;opacity:.5;pointer-events:none}
.why .wrap{position:relative;z-index:1}
.why .sec-head h2{color:#fff}
.why .sec-head .lede{color:rgba(255,255,255,.72)}
.why__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2.5vw,2rem)}
.why__card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:5px;padding:1.8rem}
.why__card .ic{width:48px;height:48px;border-radius:50%;background:var(--red);display:grid;place-items:center;margin-bottom:1.1rem}
.why__card .ic svg{width:22px;height:22px;fill:#fff}
.why__card h3{font-size:1.4rem;margin-bottom:.4rem}
.why__card p{color:rgba(255,255,255,.7);font-size:.96rem}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:clamp(2.5rem,5vw,4rem);border-top:1px solid rgba(255,255,255,.12);padding-top:clamp(2rem,4vw,3rem)}
.stat b{font-family:var(--disp);font-weight:600;font-size:clamp(2.6rem,5vw,4rem);color:var(--red);display:block;line-height:1}
.stat span{color:rgba(255,255,255,.75);font-family:var(--label);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem}
@media(max-width:900px){.why__grid{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr;gap:1.8rem}}

/* ---------- Service area ---------- */
.area{background:var(--paper)}
.area__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.towns{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
.town{display:flex;align-items:center;gap:.6rem;background:#fff;border:1px solid var(--line);border-radius:3px;padding:.8rem 1rem;font-family:var(--label);font-weight:600;font-size:.98rem;transition:border-color .25s,transform .25s}
.town:hover{border-color:var(--red);transform:translateX(4px)}
.town svg{width:16px;height:16px;fill:var(--red);flex:none}
@media(max-width:900px){.area__grid{grid-template-columns:1fr}.towns{grid-template-columns:1fr 1fr}}

/* ---------- Reviews ---------- */
.reviews{background:var(--white)}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.5vw,2rem)}
.rev{background:var(--paper);border-radius:5px;padding:clamp(1.6rem,2.5vw,2.2rem);display:flex;flex-direction:column;gap:1rem}
.rev .stars{display:flex;gap:3px}
.rev .stars svg{width:20px;height:20px;fill:var(--red)}
.rev p{color:var(--text);font-size:1.05rem;flex:1}
.rev .who{font-family:var(--label);font-weight:700;color:var(--ink)}
.rev .who span{display:block;color:var(--muted);font-weight:500;font-size:.85rem}
@media(max-width:900px){.rev-grid{grid-template-columns:1fr}}

/* ---------- CTA band ---------- */
.cta-band{position:relative;overflow:hidden;background:var(--red);color:#fff;text-align:center;isolation:isolate}
.cta-band::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--cta-bg) center/cover no-repeat}
.cta-band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(165,21,27,.82),rgba(120,14,18,.9)),radial-gradient(120% 120% at 50% 0%,rgba(225,34,40,.5),rgba(10,10,12,.55))}
.cta-band h2{font-size:clamp(2.2rem,5vw,4rem);margin-bottom:.4em}
.cta-band p{max-width:40rem;margin:0 auto 2rem;font-size:1.15rem;opacity:.92}
.cta-band .btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.cta-band .btn-dark{background:var(--ink)}
.cta-band .btn-white{background:#fff;color:var(--ink)}
.cta-band .btn-white:hover{transform:translateY(-3px);background:var(--paper)}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:rgba(255,255,255,.7);padding-block:clamp(3.5rem,6vw,5rem) 2rem}
.footer__grid{display:grid;grid-template-columns:2.3fr 1fr 1fr 1fr;gap:2.5rem}
.footer__cta{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;margin:.3rem 0 1.5rem}
.footer__cta .btn{margin-top:0}
.footer h3{color:#fff;font-family:var(--label);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.82rem;margin-bottom:1.2rem}
.footer a{color:rgba(255,255,255,.7);display:block;padding:.3em 0;transition:color .2s,padding-left .2s}
.footer a:hover{color:#fff;padding-left:4px}
.footer a.btn{display:inline-flex;width:auto;padding:.95em 1.35em;color:#fff;white-space:nowrap}
.footer a.btn:hover{padding-left:1.7em;color:#fff}
.footer .logo-f{height:40px;margin-bottom:1.4rem;aspect-ratio:4000/999}
.footer .desc{font-size:.96rem;margin-bottom:1.2rem;max-width:26rem}
.footer .nap{font-size:.96rem;line-height:1.75}
.footer .nap b{color:#fff;font-family:var(--disp);font-size:1.5rem;font-weight:600}
.footer__bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:3rem;padding-top:1.6rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.85rem}
@media(max-width:900px){.footer__grid{grid-template-columns:1fr 1fr}.footer__intro{grid-column:1/-1}}
@media(max-width:560px){.footer__grid{grid-template-columns:1fr}}
/* Footer accents — red top line, heading underlines, chevron bullets on link columns */
.footer{border-top:3px solid var(--red)}
.footer h3{position:relative;padding-bottom:.7rem}
.footer h3::after{content:"";position:absolute;left:0;bottom:0;width:30px;height:2px;background:var(--red)}
.footer__grid>div:not(.footer__intro) a{display:flex;align-items:center}
.footer__grid>div:not(.footer__intro) a::before{content:"";flex:0 0 auto;width:6px;height:6px;margin-right:.65rem;border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(-45deg);transition:transform .2s}
.footer__grid>div:not(.footer__intro) a:hover::before{transform:rotate(-45deg) translate(2px,2px)}
.footer__bottom{border-top-color:rgba(222,41,47,.35)}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(34px)}
.reveal.in,.reveal.reveal-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important}
  .hero__spark,.why__circuit{display:none}
  *{animation:none!important;transition:none!important}
}
@media(scripting:none){.reveal{opacity:1;transform:none}}

.logo-link{display:inline-flex;align-items:center}
.mobile-nav{display:none;flex-direction:column;padding:1rem var(--pad) 1.5rem;background:#fff;border-bottom:1px solid var(--line);gap:.2rem}
.mobile-nav[hidden]{display:none}
.mobile-nav.open{display:flex}
.mobile-nav a{font-family:var(--label);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.95rem;color:var(--ink);padding:.8rem 0;border-bottom:1px solid var(--line)}
.mobile-nav .mobile-call{color:var(--red)}
@media(min-width:1081px){.mobile-nav{display:none!important}}

.skip-to-content{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;display:none!important}

/* ---------- Mega menu ---------- */
.nav-item{position:relative;display:flex;align-items:center}
.nav-item>a{display:inline-flex;align-items:center;gap:.35em}
.nav-item>a .chev{width:.75em;height:.75em;transition:transform .3s}
.nav-item.has-mega:hover>a .chev{transform:rotate(180deg)}
.mega{position:absolute;top:100%;left:0;padding-top:18px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s cubic-bezier(.2,.8,.2,1),transform .25s cubic-bezier(.2,.8,.2,1),visibility .25s;z-index:70}
.nav-item.has-mega:hover .mega,.nav-item.has-mega:focus-within .mega{opacity:1;visibility:visible;transform:translateY(0)}
.mega-inner{display:flex;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 34px 70px -24px rgba(0,0,0,.4);overflow:hidden;width:max-content;max-width:min(880px,92vw)}
.mega-groups{display:flex;gap:2.2rem;padding:1.7rem 1.9rem}
.mega-group h4{font-family:var(--label);text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;color:var(--muted);margin-bottom:.9rem;font-weight:600}
.mega-link{display:flex;gap:.85rem;align-items:flex-start;padding:.55rem .6rem;border-radius:5px;transition:background .2s;min-width:220px}
.mega-link:hover{background:var(--paper)}
.mega-link .mi{width:36px;height:36px;border-radius:7px;background:var(--ink);display:grid;place-items:center;flex:none;transition:background .2s}
.mega-link:hover .mi{background:var(--red)}
.mega-link .mi svg{width:19px;height:19px;fill:#fff}
.mega a{text-transform:none;letter-spacing:0}
.mega a::after{display:none!important}
.mega-link b{display:block;font-family:var(--label);font-weight:600;font-size:.98rem;color:var(--ink);margin-bottom:.1rem}
.mega-link em{display:block;font-style:normal;font-size:.82rem;color:var(--muted);line-height:1.35}
.mega-feature{background:var(--ink);color:#fff;padding:1.7rem;width:260px;flex:none;display:flex;flex-direction:column}
.mega-feature .tag{font-family:var(--label);font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;color:var(--red);margin-bottom:.7rem}
.mega-feature h5{font-family:var(--disp);font-size:1.4rem;text-transform:uppercase;letter-spacing:-.01em;margin-bottom:.55rem;font-weight:500;line-height:1.05}
.mega-feature p{font-size:.86rem;color:rgba(255,255,255,.72);margin-bottom:1.1rem;flex:1}
.mega-feature .btn{width:100%;justify-content:center;margin-bottom:.8rem}
.mega-feature .mega-all{font-family:var(--label);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:#fff}
.mobile-nav .mobile-sub{padding-left:1.2rem;font-size:.85rem;color:var(--muted);text-transform:none;letter-spacing:0}
@media(max-width:1080px){.mega{display:none!important}}

/* ---------- Mega menu — full-width dark band ---------- */
.nav-item{position:static}
.mega{position:absolute;left:0;right:0;top:100%;width:100%;padding-top:0;z-index:70}
.mega-inner{background:var(--ink);border:0;border-top:3px solid var(--red);border-radius:0;box-shadow:0 40px 70px -26px rgba(0,0,0,.6);width:100%;overflow:hidden}
.mega-row{max-width:var(--maxw);margin-inline:auto;padding:2.6rem var(--pad);display:flex;gap:clamp(2rem,4vw,4rem);align-items:stretch;width:100%}
.mega-groups{display:flex;gap:clamp(2rem,5vw,5rem);flex:1;padding:0}
.mega-group{flex:1;min-width:0}
.mega-groups .mega-group--2col{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 1rem;align-content:start;flex:1.9}
.mega-groups .mega-group--2col h4{grid-column:1/-1}
.mega-group h4{color:var(--red);letter-spacing:.18em;font-size:.75rem;margin-bottom:1.2rem}
.mega-link{min-width:0;gap:1rem;padding:.7rem .7rem;border-radius:6px}
.mega-link:hover{background:rgba(255,255,255,.06)}
.mega-link .mi{width:46px;height:46px;border-radius:9px;background:rgba(255,255,255,.08)}
.mega-link:hover .mi{background:var(--red)}
.mega-link .mi svg{width:23px;height:23px}
.mega a{color:#fff}
.mega-link b{color:#fff;font-size:1.08rem;margin-bottom:.15rem}
.mega-link em{color:rgba(255,255,255,.6);font-size:.9rem}
.mega-feature{background:var(--red);color:#fff;width:clamp(280px,24vw,360px);padding:2rem;border-radius:8px}
.mega-feature .tag{color:rgba(255,255,255,.85)}
.mega-feature h5{font-size:1.6rem;color:#fff}
.mega-feature p{color:rgba(255,255,255,.9);font-size:.92rem}
.mega-feature .btn.btn-red{background:#fff;color:var(--ink)}
.mega-feature .btn.btn-red:hover{background:var(--ink);color:#fff}
.mega-feature .mega-all{color:#fff;opacity:.9}
@media(max-width:1080px){.mega{display:none!important}}

.mega-inner{max-width:none!important}

/* ---------- Interior page hero ---------- */
.page-hero{position:relative;min-height:clamp(360px,52vh,520px);display:flex;align-items:center;overflow:hidden;background:var(--ink);padding-block:clamp(3rem,6vh,5rem)}
.page-hero__bg{position:absolute;inset:0;z-index:0}
.page-hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 52%}
/* Testimonials (page-id-34): faces sit high in the handshake photo — raise the crop focal point so they aren't cut off */
body.page-id-34 .page-hero__bg img{object-position:center 30%}
/* Service-area hub (page-id-32): Boston skyline sits in the upper half — raise the focal point off the dark water/van */
body.page-id-32 .page-hero__bg img{object-position:center 38%}
.page-hero__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(8,10,15,.92) 0%,rgba(8,10,15,.78) 42%,rgba(8,10,15,.42) 100%),linear-gradient(0deg,rgba(8,10,15,.6),rgba(8,10,15,0) 60%)}
.page-hero .wrap{position:relative;z-index:2;width:100%}
.page-hero__inner{max-width:60rem}
.page-hero h1{color:#fff;font-weight:500;font-size:clamp(2.2rem,5vw,4rem);letter-spacing:-.03em;margin:.35em 0 .3em;line-height:1.02}
.page-hero .eyebrow{color:var(--red)}
.page-hero__sub{color:rgba(255,255,255,.82);font-size:clamp(1.02rem,1.3vw,1.2rem);max-width:44rem;margin-bottom:1.8rem}
.page-hero__ctas{display:flex;flex-wrap:wrap;gap:1rem}

/* ---------- Checklist grid ---------- */
.checklist__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.5vw,2rem)}
.checklist__item{display:flex;gap:1rem;align-items:flex-start;background:var(--paper);border-radius:6px;padding:1.5rem 1.6rem;border-top:3px solid transparent;transition:border-color .25s,transform .25s,box-shadow .25s}
.checklist__item:hover{border-top-color:var(--red);transform:translateY(-4px);box-shadow:0 24px 44px -28px rgba(0,0,0,.4)}
.checklist__item .ck{width:36px;height:36px;border-radius:50%;background:var(--red);display:grid;place-items:center;flex:none}
.checklist__item .ck svg{width:18px;height:18px;fill:#fff}
.checklist__item h3{font-size:1.2rem;color:var(--ink);margin-bottom:.35rem;text-transform:none;letter-spacing:0;line-height:1.2}
.checklist__item p{color:var(--muted);font-size:.95rem}
@media(max-width:900px){.checklist__grid{grid-template-columns:1fr}}

/* Mega hover bridge — covers the gap between the nav link and the full-width panel.
   Inherits the panel's visibility, so it's only hoverable while the menu is open
   (won't spuriously trigger on the header's bottom edge when closed). */
.mega::before{content:"";position:absolute;left:0;right:0;top:-48px;height:48px;background:transparent}

.nav-item.mega-open .mega{opacity:1;visibility:visible;transform:translateY(0)}

/* Mega link padding + feature button polish */
.mega-group{display:flex;flex-direction:column;gap:.4rem}
.mega-group h4{margin-bottom:.5rem}
.mega-link{padding:.95rem 1.1rem;gap:1.1rem;align-items:center}
.mega-feature .btn.btn-red{background:#fff;color:var(--ink);font-weight:700;padding:1.1em 1.7em;box-shadow:0 12px 26px -8px rgba(0,0,0,.5)}
.mega-feature .btn.btn-red:hover{background:var(--ink);color:#fff;transform:translateY(-3px);box-shadow:0 18px 34px -10px rgba(0,0,0,.6)}
.mega-cta svg{width:1.05em;height:1.05em}

/* Footer copyright line — inline links */
.footer__bottom a{display:inline!important;padding:0!important;color:rgba(255,255,255,.72)}
.footer__bottom a:hover{color:#fff;padding-left:0!important}
.footer__bottom span{line-height:1.7}

/* Home icon in nav */
.nav-home{display:inline-flex;align-items:center;color:var(--ink);transition:color .2s}
.nav-home svg{width:21px;height:21px}
.nav-home:hover{color:var(--red)}
.nav-home::after{content:none!important}

/* More generous mega link padding + clearer hover */
.mega-link{padding:1.15rem 1.4rem;gap:1.15rem}
.mega-link:hover{background:rgba(255,255,255,.1)}
.mega-group{gap:.55rem}

/* ===== Contact section + estimate form ===== */
/* Form ALWAYS on the left (wider) column; heading/info stays first in DOM for natural mobile reading order. */
.contact__grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:3rem;align-items:start}
.contact__grid .contact__form{grid-column:1;grid-row:1}
.contact__grid .contact__info{grid-column:2;grid-row:1}
@media(max-width:860px){.contact__grid{grid-template-columns:1fr;gap:2rem}.contact__grid .contact__form,.contact__grid .contact__info{grid-column:auto;grid-row:auto}}
.contact__info h2{font-size:clamp(1.9rem,3.5vw,2.8rem);color:var(--ink);margin:.2em 0 .5em}
.contact__info .lede{color:var(--muted);margin-bottom:1.6rem}
.contact__list{list-style:none;margin:0 0 1.4rem;padding:0;display:flex;flex-direction:column;gap:1rem}
.contact__list li{display:flex;align-items:center;gap:.9rem;font-size:1.05rem;color:var(--ink)}
.contact__list li a{color:var(--ink);font-weight:600}
.contact__list li a:hover{color:var(--red)}
.contact__list .ci{flex:0 0 42px;height:42px;display:grid;place-items:center;background:var(--red);border-radius:10px}
.contact__list .ci svg{width:20px;height:20px;fill:#fff}
.contact__area{color:var(--muted);font-size:.95rem}
.contact__form{background:#fff;border:1px solid #e7e9ee;border-radius:16px;padding:2rem;box-shadow:0 24px 60px -30px rgba(15,18,28,.35)}
.contact__form h3{font-size:1.5rem;color:var(--ink);margin:0 0 1.2rem}
.est-form .fld{margin-bottom:1rem;display:flex;flex-direction:column}
.est-form .two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.est-form .three{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem}
@media(max-width:520px){.est-form .two,.est-form .three{grid-template-columns:1fr}}
.est-form label{font-size:.85rem;font-weight:600;color:var(--ink);margin-bottom:.35rem}
.est-form label span{color:var(--red)}
.est-form input,.est-form select,.est-form textarea{width:100%;padding:.8rem .9rem;border:1px solid #d7dbe3;border-radius:10px;font:inherit;color:var(--ink);background:#fbfbfd}
.est-form input:focus,.est-form select:focus,.est-form textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(222,41,47,.14)}
.est-form textarea{resize:vertical}
.est-form .btn{margin-top:.5rem;width:100%;justify-content:center;border-radius:10px;box-shadow:none;padding:1.1em 1.8em}
.est-form .btn:hover{box-shadow:0 12px 26px -14px rgba(225,34,40,.6)}
.est-testfill{margin-top:.7rem;width:100%;padding:.72rem 1rem;border-radius:10px;background:#f1f3f7;color:var(--ink);border:1px dashed #b7bfcc;font-family:var(--label);font-weight:600;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .2s}
.est-testfill:hover{background:#e6e9ef}
.est-form .form-err{margin-top:.6rem;color:var(--red);font-weight:600;font-size:.92rem}
.est-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-fine{margin-top:.9rem;font-size:.9rem;color:var(--muted);text-align:center}
.form-fine a{color:var(--red);font-weight:600}
.form-note{padding:.85rem 1rem;border-radius:10px;margin-bottom:1.1rem;font-size:.95rem}
.form-note.ok{background:#e8f6ec;border:1px solid #b7e3c2;color:#1c6b34}
.form-note.err{background:#fdeceb;border:1px solid #f4c2bf;color:#a3221f}

/* ===== Mega menu padding fix (beat .nav a specificity) + nav active states ===== */
/* `.nav a` (0,1,1) was overriding `.mega-link` (0,1,0) → horizontal padding collapsed to 0.
   `.mega a.mega-link` (0,2,1) wins and restores real padding on rest / hover / active. */
.mega a.mega-link{padding:1.05rem 1.35rem;gap:1.15rem;align-items:center;border-radius:9px}
.mega a.mega-link:hover,
.mega a.mega-link.is-active{background:rgba(255,255,255,.12)}
.mega a.mega-link.is-active .mi,
.mega a.mega-link:hover .mi{background:var(--red)}
.mega-group{gap:.5rem}
/* breathing room so hover/active boxes never crowd the neighbour above */
.mega-groups{padding-block:.2rem}

/* Active top-level nav item + Services trigger (current page) */
.nav>a.is-active,
.nav-item.is-active>a{color:var(--red)}
.nav>a.is-active::after,
.nav-item.is-active>a::after{width:100%}
.nav-home.is-active{color:var(--red)}

/* ===== Third-party embed (Elfsight reviews, etc.) ===== */
/* Reviews slider: fill the full 88% site width (widget was capped narrower before) */
.embed-sec .embed-wrap{max-width:none;margin:2rem auto 0;min-height:120px}
/* Let the reviews heading + subtext use full width so they don't wrap tight on desktop */
.embed-sec .sec-head,.embed-sec .sec-head .lede{max-width:none}

/* ===== News / blog index ===== */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,2.5vw,2rem)}
.news-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .3s,box-shadow .3s,border-color .3s}
.news-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(0,0,0,.4);border-color:transparent}
.news-card__media{position:relative;aspect-ratio:16/10;background:var(--paper-2);overflow:hidden}
.news-card__img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.news-card:hover .news-card__img{transform:scale(1.05)}
.news-card__fallback{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,var(--ink-2),var(--ink))}
.news-card__fallback svg{width:44px;height:44px;fill:var(--red)}
.news-card__cat{position:absolute;left:.85rem;top:.85rem;font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;color:#fff;background:rgba(12,14,19,.78);padding:.35em .7em;border-radius:3px;backdrop-filter:blur(4px)}
.news-card__body{display:flex;flex-direction:column;flex:1;padding:clamp(1.3rem,2vw,1.7rem)}
.news-card__date{font-family:var(--label);font-weight:600;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:var(--muted);margin:0 0 .5rem}
.news-card__title{font-size:1.3rem;color:var(--ink);margin:0 0 .55rem;text-transform:none;letter-spacing:-.01em;line-height:1.15;transition:color .2s}
.news-card:hover .news-card__title{color:var(--red)}
.news-card__excerpt{color:var(--muted);font-size:.95rem;line-height:1.55;margin:0 0 1.1rem}
.news-card__more{margin-top:auto;font-family:var(--label);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.82rem;color:var(--red);display:inline-flex;align-items:center;gap:.5em}
.news-card__more svg{width:1.05em;height:1.05em;transition:transform .3s}
.news-card:hover .news-card__more svg{transform:translateX(5px)}
.news-pager{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:clamp(2.5rem,5vw,4rem)}
.news-pager a,.news-pager span{font-family:var(--label);font-weight:600;font-size:.9rem;min-width:2.6em;text-align:center;padding:.6em .85em;border:1px solid var(--line);border-radius:3px;color:var(--ink);text-decoration:none;transition:background .2s,color .2s,border-color .2s}
.news-pager a:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.news-pager .current{background:var(--red);color:#fff;border-color:var(--red)}
.news-pager .dots{border-color:transparent;background:none}
.news-empty{text-align:center;color:var(--muted);font-size:1.1rem}
@media(max-width:900px){.news-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.news-grid{grid-template-columns:1fr}}


/* ===== Blog / article template styles (aq-core single.php) — scoped to single posts.
   Layout/typography lifted from the AutoForge engine build; palette remapped to Sartell red/black. ===== */
body.single-post *,body.single-post ::before,body.single-post ::after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(222,41,47,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
body.single-post .bg-brand-700 :is(h1,h2,h3,h4),body.single-post .bg-brand-800 :is(h1,h2,h3,h4),body.single-post .bg-brand-900 :is(h1,h2,h3,h4){color:inherit}
body.single-post main blockquote a,body.single-post main details a,body.single-post main li a:not(.btn):not(.btn-primary):not(.hero-btn),body.single-post main p a:not(.btn):not(.btn-primary):not(.hero-btn),body.single-post main summary a{transition:color .15s}
body.single-post main blockquote a:hover,body.single-post main details a:hover,body.single-post main li a:not(.btn):not(.btn-primary):not(.hero-btn):hover,body.single-post main p a:not(.btn):not(.btn-primary):not(.hero-btn):hover,body.single-post main summary a:hover{color:#a5181d!important}
body.single-post .btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-width:2px;border-color:transparent;padding:.75rem 1.5rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.5rem;font-weight:600;text-decoration-line:none;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
body.single-post .btn-primary:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(222 41 47/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}
body.single-post .btn-primary{border-radius:4px;box-sizing:border-box}
body.single-post .btn-primary,body.single-post .btn-primary:focus,body.single-post .btn-primary:hover{text-decoration:none}
body.single-post .btn-primary{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1));background:#de292f;color:#fff}
body.single-post .btn-primary:hover{background:#a5181d;color:#fff}
body.single-post .btn-outline-light{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-width:2px;border-color:transparent;padding:.75rem 1.5rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.5rem;font-weight:600;text-decoration-line:none;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
body.single-post .btn-outline-light:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:rgb(222 41 47/var(--tw-ring-opacity,1));--tw-ring-offset-width:2px}
body.single-post .btn-outline-light{border-radius:4px;box-sizing:border-box}
body.single-post .btn-outline-light,body.single-post .btn-outline-light:focus,body.single-post .btn-outline-light:hover{text-decoration:none}
body.single-post .btn-outline-light{--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}
body.single-post .btn-outline-light:hover{background-color:hsla(0,0%,100%,.1)}
body.single-post .container-x{margin-left:auto;margin-right:auto;max-width:1400px;padding-left:1rem;padding-right:1rem}
@media (min-width:640px){body.single-post .container-x{padding-left:1.5rem;padding-right:1.5rem}}
@media (min-width:1024px){body.single-post .container-x{padding-left:2rem;padding-right:2rem}}
body.single-post .container-edge{width:100%;padding-left:30px;padding-right:30px}
@media (min-width:768px){body.single-post .container-edge{padding-left:3%;padding-right:3%}body.single-post .container-edge--wide{padding-left:6%;padding-right:6%}}
body.single-post .article-body{--tw-text-opacity:1;color:rgb(26 29 36/var(--tw-text-opacity,1));font-size:1.0625rem;line-height:1.8}
body.single-post .article-body>p:first-of-type{font-size:1.125rem;line-height:1.75rem;line-height:1.625;--tw-text-opacity:1;color:rgb(27 31 40/var(--tw-text-opacity,1))}
body.single-post .article-body p{margin-top:1.25rem;margin-bottom:1.25rem}
body.single-post .article-body h2{margin-top:3rem;margin-bottom:1rem;font-size:1.5rem;line-height:2rem;--tw-text-opacity:1;color:rgb(27 31 40/var(--tw-text-opacity,1))}
@media (min-width:768px){body.single-post .article-body h2{font-size:1.875rem;line-height:2.25rem}}
body.single-post .article-body h3{margin-top:2.25rem;margin-bottom:.75rem;font-size:1.25rem;line-height:1.75rem;--tw-text-opacity:1;color:rgb(27 31 40/var(--tw-text-opacity,1))}
body.single-post .article-body ul{margin-top:1.25rem;margin-bottom:1.25rem;list-style-type:disc}
body.single-post .article-body ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}
body.single-post .article-body ul{padding-left:1.5rem}
body.single-post .article-body ol{margin-top:1.25rem;margin-bottom:1.25rem;list-style-type:decimal}
body.single-post .article-body ol>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}
body.single-post .article-body ol{padding-left:1.5rem}
body.single-post .article-body li{padding-left:.25rem}
body.single-post .article-body strong{font-weight:600;--tw-text-opacity:1;color:rgb(27 31 40/var(--tw-text-opacity,1))}
body.single-post .article-body a{font-weight:500;--tw-text-opacity:1;color:rgb(165 24 29/var(--tw-text-opacity,1));text-decoration-line:underline}
body.single-post .article-body blockquote{margin-top:1.75rem;margin-bottom:1.75rem;border-left-width:4px;--tw-border-opacity:1;border-color:rgb(222 41 47/var(--tw-border-opacity,1));padding-left:1.25rem;font-style:italic;--tw-text-opacity:1;color:rgb(26 29 36/var(--tw-text-opacity,1))}
body.single-post .article-body table{margin-top:2rem;margin-bottom:2rem;width:100%;border-collapse:collapse;overflow:hidden;border-radius:.5rem;font-size:.875rem;line-height:1.25rem;box-shadow:0 0 0 1px #e6e8ec}
body.single-post .article-body thead :is(h1,h2,h3,h4){color:inherit}
body.single-post .article-body thead{--tw-bg-opacity:1;background-color:rgb(27 31 40/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}
body.single-post .article-body td,body.single-post .article-body th{border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(230 232 236/var(--tw-border-opacity,1));padding:.75rem 1rem;text-align:left;vertical-align:top}
body.single-post .article-body thead th{--tw-border-opacity:1;border-color:rgb(27 31 40/var(--tw-border-opacity,1));font-weight:600}
body.single-post .article-body tbody tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(244 245 247/var(--tw-bg-opacity,1))}
body.single-post .article-body tbody tr:last-child td{border-bottom-width:0}
body.single-post .article-body h2,body.single-post .article-body h3{scroll-margin-top:140px}
body.single-post .article-toc{margin-bottom:2.25rem;border-radius:.75rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(230 232 236/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(244 245 247/var(--tw-bg-opacity,1));padding:1.25rem}
@media (min-width:768px){body.single-post .article-toc{padding:1.5rem}}
body.single-post .article-toc__label{margin:0 0 .75rem;font-size:.75rem;line-height:1rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;--tw-text-opacity:1;color:rgb(92 100 112/var(--tw-text-opacity,1))}
body.single-post .article-toc ul{margin:0;list-style-type:none}
body.single-post .article-toc ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}
body.single-post .article-toc ul{padding:0}
body.single-post .article-toc li{margin:0;line-height:1.375}
body.single-post .article-toc a{font-size:.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(26 29 36/var(--tw-text-opacity,1));text-decoration-line:none;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
body.single-post .article-toc a:hover{--tw-text-opacity:1;color:rgb(165 24 29/var(--tw-text-opacity,1))}
body.single-post .absolute{position:absolute}
body.single-post .relative{position:relative}
body.single-post .left-4{left:1rem}
body.single-post .top-4{top:1rem}
body.single-post .mx-auto{margin-left:auto;margin-right:auto}
body.single-post .my-16{margin-top:4rem;margin-bottom:4rem}
body.single-post .\!mt-0{margin-top:0!important}
body.single-post .\!mt-2{margin-top:.5rem!important}
body.single-post .\!mt-5{margin-top:1.25rem!important}
body.single-post .mb-8{margin-bottom:2rem}
body.single-post .mt-10{margin-top:2.5rem}
body.single-post .mt-3{margin-top:.75rem}
body.single-post .mt-5{margin-top:1.25rem}
body.single-post .mt-8{margin-top:2rem}
body.single-post .line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}
body.single-post .flex{display:flex}
body.single-post .inline-flex{display:inline-flex}
body.single-post .grid{display:grid}
body.single-post .hidden{display:none}
body.single-post .aspect-\[16\/10\]{aspect-ratio:16/10}
body.single-post .aspect-\[3\/2\]{aspect-ratio:3/2}
body.single-post .h-4{height:1rem}
body.single-post .h-full{height:100%}
body.single-post .w-4{width:1rem}
body.single-post .w-full{width:100%}
body.single-post .max-w-\[1000px\]{max-width:1000px}
body.single-post .max-w-\[820px\]{max-width:820px}
body.single-post .flex-1{flex:1 1 0%}
body.single-post .flex-col{flex-direction:column}
body.single-post .flex-wrap{flex-wrap:wrap}
body.single-post .items-start{align-items:flex-start}
body.single-post .items-end{align-items:flex-end}
body.single-post .items-center{align-items:center}
body.single-post .justify-center{justify-content:center}
body.single-post .justify-between{justify-content:space-between}
body.single-post .gap-1\.5{gap:.375rem}
body.single-post .gap-2{gap:.5rem}
body.single-post .gap-3{gap:.75rem}
body.single-post .gap-4{gap:1rem}
body.single-post .gap-6{gap:1.5rem}
body.single-post .gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}
body.single-post .gap-y-1{row-gap:.25rem}
body.single-post .overflow-hidden{overflow:hidden}
body.single-post .rounded-2xl{border-radius:1rem}
body.single-post .rounded-full{border-radius:9999px}
body.single-post .rounded-lg{border-radius:.5rem}
body.single-post .rounded-xl{border-radius:.75rem}
body.single-post .border{border-width:1px}
body.single-post .border-t{border-top-width:1px}
body.single-post .border-brand-100{--tw-border-opacity:1;border-color:rgb(230 232 236/var(--tw-border-opacity,1))}
body.single-post .bg-brand-100{--tw-bg-opacity:1;background-color:rgb(230 232 236/var(--tw-bg-opacity,1))}
body.single-post .bg-brand-50{--tw-bg-opacity:1;background-color:rgb(244 245 247/var(--tw-bg-opacity,1))}
body.single-post .bg-brand-800{--tw-bg-opacity:1;background-color:rgb(27 31 40/var(--tw-bg-opacity,1))}
body.single-post .bg-brand-900{--tw-bg-opacity:1;background-color:rgb(12 14 19/var(--tw-bg-opacity,1))}
body.single-post .bg-brand-900\/80{background-color:rgba(12,14,19,.8)}
body.single-post .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}
body.single-post .bg-white\/10{background-color:hsla(0,0%,100%,.1)}
body.single-post .object-cover{-o-object-fit:cover;object-fit:cover}
body.single-post .p-6{padding:1.5rem}
body.single-post .p-8{padding:2rem}
body.single-post .px-3{padding-left:.75rem;padding-right:.75rem}
body.single-post .px-3\.5{padding-left:.875rem;padding-right:.875rem}
body.single-post .py-1{padding-top:.25rem;padding-bottom:.25rem}
body.single-post .py-1\.5{padding-top:.375rem;padding-bottom:.375rem}
body.single-post .py-10{padding-top:2.5rem;padding-bottom:2.5rem}
body.single-post .py-12{padding-top:3rem;padding-bottom:3rem}
body.single-post .pb-12{padding-bottom:3rem}
body.single-post .pt-4{padding-top:1rem}
body.single-post .pt-6{padding-top:1.5rem}
body.single-post .pt-8{padding-top:2rem}
body.single-post .text-center{text-align:center}
body.single-post .text-2xl{font-size:1.5rem;line-height:2rem}
body.single-post .text-3xl{font-size:1.875rem;line-height:2.25rem}
body.single-post .text-\[11px\]{font-size:11px}
body.single-post .text-lg{font-size:1.125rem;line-height:1.75rem}
body.single-post .text-sm{font-size:.875rem;line-height:1.25rem}
body.single-post .text-xs{font-size:.75rem;line-height:1rem}
body.single-post .font-medium{font-weight:500}
body.single-post .font-semibold{font-weight:600}
body.single-post .uppercase{text-transform:uppercase}
body.single-post .leading-\[1\.15\]{line-height:1.15}
body.single-post .leading-relaxed{line-height:1.625}
body.single-post .tracking-\[0\.18em\]{letter-spacing:.18em}
body.single-post .tracking-wider{letter-spacing:.05em}
body.single-post .text-accent-400{--tw-text-opacity:1;color:rgb(222 41 47/var(--tw-text-opacity,1))}
body.single-post .text-accent-700{--tw-text-opacity:1;color:rgb(165 24 29/var(--tw-text-opacity,1))}
body.single-post .text-brand-500{--tw-text-opacity:1;color:rgb(92 100 112/var(--tw-text-opacity,1))}
body.single-post .text-brand-700{--tw-text-opacity:1;color:rgb(26 29 36/var(--tw-text-opacity,1))}
body.single-post .text-brand-800{--tw-text-opacity:1;color:rgb(27 31 40/var(--tw-text-opacity,1))}
body.single-post .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}
body.single-post .text-white\/30{color:hsla(0,0%,100%,.3)}
body.single-post .text-white\/60{color:hsla(0,0%,100%,.6)}
body.single-post .no-underline{text-decoration-line:none}
body.single-post .shadow,body.single-post .shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
body.single-post .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}
body.single-post .shadow-md,body.single-post .shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
body.single-post .shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}
body.single-post .ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}
body.single-post .ring-1,body.single-post .ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}
body.single-post .ring-inset{--tw-ring-inset:inset}
body.single-post .ring-white\/15{--tw-ring-color:hsla(0,0%,100%,.15)}
body.single-post .backdrop-blur-sm{--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}
body.single-post .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
body.single-post .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
body.single-post .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}
body.single-post .duration-200{transition-duration:.2s}
body.single-post .duration-300{transition-duration:.3s}
body.single-post .duration-\[600ms\]{transition-duration:.6s}
body.single-post .ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}
@media (min-width:1024px){body.single-post .ka-article-layout{display:grid;grid-template-columns:minmax(0,820px) 16rem;gap:3.5rem;justify-content:center;align-items:start}body.single-post .ka-article-main{grid-column:1;grid-row:1;min-width:0}body.single-post .ka-toc-aside{grid-column:2;grid-row:1;position:sticky;top:152px;max-height:calc(100vh - 180px);overflow-y:auto}body.single-post .ka-toc-aside .article-toc{margin-bottom:0}}
body.single-post .hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
body.single-post .hover\:border-brand-200:hover{--tw-border-opacity:1;border-color:rgb(220 223 228/var(--tw-border-opacity,1))}
body.single-post .hover\:bg-white\/15:hover{background-color:hsla(0,0%,100%,.15)}
body.single-post .hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}
body.single-post .hover\:underline:hover{text-decoration-line:underline}
body.single-post .hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}
body.single-post .hover\:shadow-lg:hover,body.single-post .hover\:shadow-xl:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}
body.single-post .group[open] .group-open\:rotate-45{--tw-rotate:45deg}
body.single-post .group:hover .group-hover\:translate-x-1,body.single-post .group[open] .group-open\:rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
body.single-post .group:hover .group-hover\:translate-x-1{--tw-translate-x:0.25rem}
body.single-post .group:hover .group-hover\:scale-\[1\.04\]{--tw-scale-x:1.04;--tw-scale-y:1.04;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
body.single-post .group:hover .group-hover\:bg-accent-500{--tw-bg-opacity:1;background-color:rgb(222 41 47/var(--tw-bg-opacity,1))}
body.single-post .group:hover .group-hover\:text-accent-300{--tw-text-opacity:1;color:rgb(244 182 184/var(--tw-text-opacity,1))}
body.single-post .group:hover .group-hover\:text-accent-600{--tw-text-opacity:1;color:rgb(195 31 37/var(--tw-text-opacity,1))}
body.single-post .group:hover .group-hover\:text-accent-700{--tw-text-opacity:1;color:rgb(165 24 29/var(--tw-text-opacity,1))}
body.single-post .group:hover .group-hover\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}
@media (min-width:640px){body.single-post .sm\:inline{display:inline}body.single-post .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:768px){body.single-post .md\:mb-10{margin-bottom:2.5rem}body.single-post .md\:mt-10{margin-top:2.5rem}body.single-post .md\:flex-row{flex-direction:row}body.single-post .md\:items-center{align-items:center}body.single-post .md\:gap-10{gap:2.5rem}body.single-post .md\:p-12{padding:3rem}body.single-post .md\:py-14{padding-top:3.5rem;padding-bottom:3.5rem}body.single-post .md\:py-16{padding-top:4rem;padding-bottom:4rem}body.single-post .md\:pb-16{padding-bottom:4rem}body.single-post .md\:pt-10{padding-top:2.5rem}body.single-post .md\:text-3xl{font-size:1.875rem;line-height:2.25rem}body.single-post .md\:text-4xl{font-size:2.25rem;line-height:2.5rem}}
@media (min-width:1024px){body.single-post .lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}body.single-post .lg\:gap-8{gap:2rem}body.single-post .lg\:text-5xl{font-size:3rem;line-height:1}}

/* scoped preflight-lite + editorial overrides */
body.single-post [class*="border"]{border-style:solid}
body.single-post .article-body h2,body.single-post .article-body h3{text-transform:none;letter-spacing:-.01em}
body.single-post .ka-toc-aside .article-toc a{text-transform:none}
