/* ---------- fonts: EXACT reference faces via Google Fonts (loaded in <head>) ---------- */

/* ---------- tokens ---------- */
:root{
 --ink:#0b1622; --ink2:#39434f; --muted:#5c6a79; --line:#dbe4ee; --paper:#eef3f9; --sand:#ffffff; --sand2:#e6eef7;
 --brand:#0d3b5c; --brand2:#12507a; --brand-deep:#071e2f; --brand-bright:#1c6499;
 --accent:#f2a11a; --accent2:#ffbe46; --accent-d:#8f5e00;
 --ok:#186b3a; --alert:#a3301b; --ring:#12507a;
 --fd:'Plus Jakarta Sans','Inter',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
 --fb:'Inter',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
 --fw-semi:600; --fw-bold:700; --fw-black:800;
 --wrap:1180px; --measure:min(62ch,640px); --r:10px; --r2:16px; --rcard:1rem;
 --sh:0 1px 2px rgba(9,44,69,.05),0 10px 26px -14px rgba(9,44,69,.24);
 --sh-lift:0 26px 50px -24px rgba(9,44,69,.46);
 --glow:0 12px 26px -10px rgba(242,161,26,.6);
 --glow-h:0 18px 34px -10px rgba(242,161,26,.72);
 --barh:0px;
}
/* [hidden] must beat any author display rule (bug 3c) */
[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:#182430;font-family:var(--fb);font-size:17px;line-height:1.68;font-weight:400;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
[class*='ratio']{width:100%}
h1,h2,h3,h4{font-family:var(--fd);color:var(--ink);line-height:1.14;margin:0 0 .55em;font-weight:var(--fw-black);letter-spacing:-.02em}
h1{font-size:clamp(1.95rem,1.28rem + 2.7vw,3.15rem)}
h2{font-size:clamp(1.55rem,1.14rem + 1.8vw,2.35rem)}
h3{font-size:clamp(1.12rem,1rem + .5vw,1.32rem);font-weight:var(--fw-bold);letter-spacing:-.01em}
h4{font-size:1.02rem;font-weight:var(--fw-bold)}
p{margin:0 0 1.05em}
a{color:var(--brand2);text-underline-offset:3px}
a:hover{color:var(--brand)}
ul,ol{padding-left:1.15rem}
li{margin:0 0 .45em}
strong{font-weight:var(--fw-bold)}
button,input,select,textarea{font-family:inherit;font-size:1rem}
:focus-visible{outline:3px solid var(--ring);outline-offset:2px;border-radius:4px}
::selection{background:#ffe3a8;color:#111820 !important}
.skip{position:absolute;left:-9999px;top:0;background:var(--brand);color:#fff;padding:.7rem 1rem;z-index:200;border-radius:0 0 var(--r) 0}
.skip:focus{left:0}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- READING MEASURE (bug 3z) — capped on prose, released inside components ---------- */
main p,main li{max-width:var(--measure)}
main .g29168 p,main .g29168 li,main .ddc145 p,main .ddc145 li,main .fe1161 p,main .fe1161 li,
main .b3ad46 p,main .b6215e li,main .d4e58d li,main .checks li,main .striplist li,main .f74dd5 li,
main .e438ec p,main .a752e2 p,main .a752e2 li,main .jce1a1 p,main .herocard p,
main .herocard li,main .f75091 li,main .byline p,main table p,main table li{max-width:none}
.i55faa p{margin-inline:auto}

/* section eyebrow accent rule above H2 (design standard) */
.a237e6>.jb206e>h2::before,.i55faa>.jb206e>h2::before{
 content:"";display:block;width:46px;height:4px;border-radius:3px;
 background:linear-gradient(90deg,var(--accent),var(--accent2));margin:0 0 16px}
.i55faa>.jb206e>h2::before{margin-inline:auto}

/* ---------- niche motif divider (appliance-dial chevrons) ---------- */
.motif{height:12px;width:100%;
 background-image:linear-gradient(135deg,transparent 46%,rgba(242,161,26,.85) 0,rgba(242,161,26,.85) 54%,transparent 0);
 background-size:22px 22px;background-repeat:repeat-x}
.motif-soft{height:10px;width:100%;
 background-image:linear-gradient(135deg,transparent 47%,rgba(13,59,92,.16) 0,rgba(13,59,92,.16) 53%,transparent 0);
 background-size:18px 18px;background-repeat:repeat-x}

/* ---------- layout ---------- */
.jb206e{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:20px}
.a237e6{padding:clamp(46px,6vw,86px) 0}
.c1cace{background:var(--sand)}
/* prose-only sections read as a centred editorial column instead of a half-empty page */
.nar>.jb206e{max-width:700px}
/* FLEX card grids: a short last row centres instead of leaving empty cells */
.g29168{display:flex;flex-wrap:wrap;gap:22px;justify-content:center}
.g29168>*{min-width:0;overflow-wrap:anywhere;flex:0 1 100%}
@media(min-width:640px){.g2>*,.g3>*,.g4>*{flex:0 1 calc(50% - 11px)}}
@media(min-width:1000px){.g3>*{flex:0 1 calc(33.3333% - 14.667px)}.g4>*{flex:0 1 calc(25% - 16.5px)}}
.split{display:grid;gap:30px;grid-template-columns:minmax(0,1fr)}
@media(min-width:900px){.split{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center}}
.jc0469{overflow-wrap:anywhere}
div.jc0469{max-width:none}
.center{text-align:center;margin-inline:auto}

/* ---------- notification bar + header ---------- */
.topbar{background:var(--brand-deep);color:#eaf2f9;font-size:.86rem;min-height:38px;display:flex;align-items:center}
.topbar a{color:#ffd07a;font-weight:var(--fw-semi);text-decoration:none}
.topbar a:hover{color:#fff;text-decoration:underline}
.topbar .jb206e{display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;padding-block:7px}
/* NOTE bug 3w: flex lives on the direct child wrap only, never on <header> itself.
   NOTE design standard: no backdrop-filter on the header — it would trap the mega panel. */
.i48198{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 14px -8px rgba(9,44,69,.34)}
.i48198>.jb206e{display:flex;align-items:center;gap:18px;min-height:74px}
.brandlk{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);flex:0 0 auto}
.brandlk .bmark{width:44px;height:44px;border-radius:13px;background:linear-gradient(140deg,var(--brand),var(--brand-bright));color:#fff;display:grid;place-items:center;font-family:var(--fd);font-weight:var(--fw-black);font-size:1.02rem;flex:0 0 auto;box-shadow:0 8px 18px -8px rgba(13,59,92,.75);position:relative;overflow:hidden}
.brandlk .bmark::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.brandlk .bmark svg{width:23px;height:23px}
.brandlk .btxt{font-family:var(--fd);font-weight:var(--fw-black);font-size:1.1rem;line-height:1.12;letter-spacing:-.02em}
.brandlk .btxt span{display:block;font-family:var(--fb);font-weight:var(--fw-semi);font-size:.78rem;color:var(--accent-d);letter-spacing:.13em;text-transform:uppercase;margin-top:2px}
.d1da61{display:none;margin-left:auto;align-items:center;gap:4px}
@media(min-width:1060px){.d1da61{display:flex}}
.d1da61 a:not(.c16929),.d1da61 .dt{font-family:var(--fb);font-size:.97rem;font-weight:var(--fw-semi);color:#20303f;padding:10px 12px;border-radius:9px;text-decoration:none;background:none;border:0;cursor:pointer;line-height:1.3;display:inline-flex;align-items:center;gap:6px;position:relative}
.d1da61 a.c16929{font-family:var(--fb);font-size:.97rem;padding:11px 17px;border-radius:10px;text-decoration:none;border:0;line-height:1.3;align-items:center;gap:6px}
.d1da61 a:not(.c16929):hover,.d1da61 .dt:hover{background:var(--sand2);color:var(--brand)}
.d1da61 .dt svg{width:11px;height:11px;transition:transform .18s ease}
.d872f9{position:relative}
.d872f9.open .dt svg{transform:rotate(180deg)}
.d872f9.open .dt{background:var(--sand2);color:var(--brand)}
/* hover bridge on the TRIGGER container so no overflow clips it (bug 3g) */
.d872f9::after{content:"";position:absolute;left:0;right:0;top:100%;height:14px;display:none}
.d872f9:hover::after{display:block}
.j8e4f0{position:absolute;top:calc(100% + 12px);right:0;left:auto;display:none;background:#fff;border:1px solid var(--line);border-radius:var(--r2);box-shadow:0 30px 60px -22px rgba(9,44,69,.5);padding:22px;width:min(880px,calc(100vw - 32px));max-width:calc(100vw - 32px);z-index:95;overflow:hidden}
.j8e4f0::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
/* one open-state, one display value for hover AND click (bug 3q) */
.d872f9.open>.j8e4f0{display:block}
@media(hover:hover) and (pointer:fine){.d872f9:hover:not(.hov-off)>.j8e4f0{display:block}}
/* groups balanced across two columns so the panel is short enough not to scroll */
.c077f2{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(238px,100%),1fr));gap:2px 28px;align-content:start;max-height:min(72vh,620px);overflow-y:auto}
.ddg{min-width:0}
.ddg .ddh{margin-top:0}
.j8e4f0 .ddh{margin:14px 0 6px;padding-top:2px;font-family:var(--fd);font-weight:var(--fw-black);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-d);break-after:avoid;display:flex;align-items:center;gap:8px}
.j8e4f0 .ddh::before{content:"";width:16px;height:16px;flex:0 0 auto;border-radius:5px;background:linear-gradient(140deg,var(--accent),var(--accent2))}
.j8e4f0 .ddh:first-child{margin-top:0}
.j8e4f0 ul{list-style:none;padding:0;margin:0 0 4px;display:block;break-inside:avoid}
.j8e4f0 li{margin:0;min-width:0}
.j8e4f0 a{display:block;padding:6px 10px 6px 21px;border-radius:8px;font-size:.93rem;font-weight:var(--fw-semi);color:var(--ink2);text-decoration:none;line-height:1.4;position:relative;transition:background .14s ease,padding .14s ease}
/* decorative marker pinned in px, never top:50% — it drifts on a wrapped link (bug 3al) */
.j8e4f0 a::before{content:"";position:absolute;left:8px;top:15px;width:5px;height:5px;border-radius:50%;background:#b9c8d7}
.j8e4f0 a:hover{background:var(--sand2);color:var(--brand);padding-left:25px}
.j8e4f0 a:hover::before{background:var(--accent)}
.c16929{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#141a06;font-weight:var(--fw-black);border-radius:10px;padding:11px 17px;box-shadow:var(--glow);white-space:nowrap;transition:transform .15s ease,box-shadow .15s ease}
.c16929:not(.hidden){display:inline-flex}
.d1da61 a.c16929:hover{background:linear-gradient(135deg,var(--accent2),#ffcf6e);color:#141a06;transform:translateY(-2px);box-shadow:var(--glow-h)}
.d03589{margin-left:auto;width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;color:var(--brand)}
@media(min-width:1060px){.d03589{display:none}}
.d03589 svg{width:22px;height:22px}
/* mobile panel: height-capped, scrolls internally, groups collapsed (MOBILE MENU GATE) */
.h34786{display:none;border-top:1px solid var(--line);background:#fff;max-height:calc(100dvh - var(--hdrh,74px));overflow-y:auto;overscroll-behavior:contain}
.h34786.open{display:block}
.h34786 .jb206e{padding-block:14px}
.h34786 a:not(.ece553),.h34786 summary{display:block;width:100%;padding:13px 6px;border-bottom:1px solid var(--line);font-weight:var(--fw-semi);color:var(--ink);text-decoration:none;font-size:1rem;min-height:44px}
.h34786 a:not(.c16929):hover{color:var(--brand)}
.h34786 details ul{list-style:none;padding:0 0 8px 12px;margin:0}
.h34786 details ul a{font-weight:400;color:var(--ink2);border-bottom:0;padding:11px 6px;font-size:.95rem;min-height:42px}
.h34786 summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px}
.h34786 summary::-webkit-details-marker{display:none}
.h34786 summary::after{content:"+";color:var(--brand);font-weight:var(--fw-black);font-size:1.15rem;width:26px;height:26px;border-radius:8px;background:var(--sand2);display:grid;place-items:center;flex:0 0 auto;margin-left:auto}
.h34786 details[open] summary::after{content:"\2013"}

/* ---------- buttons ---------- */
.ece553{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--fd);font-weight:var(--fw-black);font-size:1.02rem;padding:15px 26px;border-radius:12px;text-decoration:none;border:2px solid transparent;cursor:pointer;line-height:1.25;text-align:center;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.ece553.pri{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#141a06;box-shadow:var(--glow)}
.ece553.pri:hover{background:linear-gradient(135deg,var(--accent2),#ffcf6e);color:#141a06;transform:translateY(-2px);box-shadow:var(--glow-h)}
.b5f289{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--fd);font-weight:var(--fw-bold);font-size:1.02rem;padding:15px 26px;border-radius:12px;text-decoration:none;border:1.5px solid rgba(255,255,255,.42);color:#fff;background:rgba(255,255,255,.06);line-height:1.25;transition:background .15s ease,border-color .15s ease}
.b5f289:hover{background:rgba(255,255,255,.16);color:#fff;border-color:#fff}
.ece553.dark{background:linear-gradient(135deg,var(--brand),var(--brand-bright));color:#fff;box-shadow:0 14px 28px -12px rgba(13,59,92,.7)}
.ece553.dark:hover{background:linear-gradient(135deg,var(--brand-bright),#227fc0);color:#fff;transform:translateY(-2px)}
.btnrow{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- hero ---------- */
.a27d00{position:relative;background:var(--brand-deep);color:#fff;overflow:hidden}
.a27d00::before{content:"";position:absolute;inset:0;
 background:
  radial-gradient(900px 460px at 86% 16%,rgba(28,100,153,.34),transparent 62%),
  radial-gradient(700px 420px at 96% 94%,rgba(242,161,26,.12),transparent 60%),
  linear-gradient(104deg,rgba(4,17,27,.94) 0%,rgba(6,26,41,.84) 40%,rgba(11,48,75,.5) 100%)}
.a27d00.img{background-size:cover;background-position:center}
.a27d00.img::after{content:"";position:absolute;inset:0;opacity:.5;
 background-image:linear-gradient(135deg,transparent 48%,rgba(255,255,255,.035) 0,rgba(255,255,255,.035) 52%,transparent 0);background-size:26px 26px}
.herogrid{position:relative;z-index:1;display:grid;gap:34px;grid-template-columns:minmax(0,1fr);align-items:center}
@media(min-width:1040px){.herogrid{grid-template-columns:minmax(0,1.42fr) minmax(320px,.58fr);gap:54px}}
.c486d9{position:relative;z-index:1;padding:clamp(56px,6.4vw,96px) 0;max-width:none}
@media(max-width:1039.98px){.c486d9{padding-bottom:clamp(30px,4vw,44px)}}
.a27d00 h1,.a27d00 h2,.a27d00 h3,.a27d00 p,.a27d00 li{color:#fff}
.a27d00 h1{font-size:clamp(2.5rem,1.7rem + 3.4vw,3.7rem);line-height:1.03;letter-spacing:-.03em;margin:0 0 .5em;font-weight:var(--fw-black)}
.a27d00 .ideeeb{font-size:clamp(1.08rem,1rem + .5vw,1.25rem);line-height:1.55;color:#e6eef6;margin-bottom:1.7em;max-width:var(--measure)}
.a27d00 .ideeeb strong{color:#fff;font-weight:var(--fw-bold)}
.acbb1c{display:inline-flex;align-items:center;gap:8px;font-family:var(--fd);font-weight:var(--fw-bold);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#ffd98a;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.22);padding:7px 15px;border-radius:999px;margin-bottom:24px;max-width:none}
.acbb1c::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent2);box-shadow:0 0 0 4px rgba(242,161,26,.22);flex:0 0 auto}
.opsline{display:none}
/* STAT STRIP: 4 big value / small label pairs under the hero CTAs — never orphans a row */
.f74dd5{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 26px;margin:36px 0 0;padding:28px 0 0;list-style:none;border-top:1px solid rgba(255,255,255,.2)}
@media(min-width:760px){.f74dd5{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 20px}}
.b1d48d{display:flex;flex-direction:column;gap:3px;background:none;border:0;padding:0;margin:0;font-family:var(--fb);font-size:.86rem;font-weight:400;color:#a9bccc;line-height:1.35;max-width:none;min-width:0}
.b1d48d::before{content:attr(data-v);font-family:var(--fd);font-weight:var(--fw-black);font-size:1.6rem;line-height:1;color:#fff;letter-spacing:-.02em;margin-bottom:4px}
/* on light sections the same class renders as a compact check chip */
.a237e6 .b1d48d,.c1cace .b1d48d{flex-direction:row;align-items:center;gap:8px;background:var(--sand2);color:#0e2f47;border:1px solid #c9d7e4;border-radius:999px;padding:7px 14px;font-size:.86rem;font-weight:var(--fw-semi)}
.a237e6 .b1d48d::before,.c1cace .b1d48d::before{content:"";width:14px;height:8px;border-left:2.5px solid var(--ok);border-bottom:2.5px solid var(--ok);border-top:0;transform:rotate(-45deg);margin:0;font-size:0}
/* hero contact card — fills the right of the fold whether or not a photo has landed */
.herocard{position:relative;z-index:1;background:linear-gradient(165deg,rgba(255,255,255,.14),rgba(255,255,255,.055));border:1px solid rgba(255,255,255,.26);border-radius:20px;padding:28px 28px 26px;box-shadow:0 30px 60px -28px rgba(0,0,0,.8)}
.herocard::before{content:"";position:absolute;inset:0;border-radius:20px;background:linear-gradient(165deg,rgba(7,30,47,.5),rgba(7,30,47,.72));z-index:-1}
@media(max-width:1039.98px){.herocard{margin-bottom:48px;max-width:540px}}
.herocard .hc-t{font-family:var(--fd);font-weight:var(--fw-black);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#ffd98a;margin:0 0 12px;max-width:none}
.herocard .hc-ph{display:block;font-family:var(--fd);font-weight:var(--fw-black);font-size:clamp(1.5rem,1.2rem + 1vw,1.85rem);letter-spacing:-.02em;color:#fff;text-decoration:none;line-height:1.1;margin-bottom:6px}
.herocard .hc-ph:hover{color:var(--accent2)}
.herocard .hc-s{font-size:.92rem;color:#c6d6e4;margin:0 0 18px}
.herocard .hc-l{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:10px}
.herocard .hc-l li{display:flex;gap:10px;align-items:flex-start;margin:0;font-size:.94rem;color:#e3ecf4;line-height:1.45}
.herocard .hc-l li::before{content:"";flex:0 0 auto;width:13px;height:7px;margin-top:7px;border-left:2.5px solid var(--accent2);border-bottom:2.5px solid var(--accent2);transform:rotate(-45deg)}
.herocard .ece553{width:100%}
.herocard .hc-f{margin:17px 0 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.2);font-size:.84rem;color:#a9bccc;line-height:1.5}

/* ---------- generic sections ---------- */
.f75091{font-size:.84rem;color:var(--muted);padding:12px 0 0}
.f75091 ol{list-style:none;display:flex;flex-wrap:wrap;gap:7px;padding:0;margin:0}
.f75091 li{margin:0}
.f75091 li+li::before{content:"/";margin-right:7px;color:#9aa7b4}
.f75091 a{color:var(--muted);text-decoration:none}
.f75091 a:hover{color:var(--brand);text-decoration:underline}
.g29f8d{position:relative;background:linear-gradient(165deg,#ffffff,#eaf2fa);border:1px solid #cfe0ee;border-left:5px solid var(--accent);border-radius:0 var(--r2) var(--r2) 0;padding:24px 26px;margin:0 0 34px;box-shadow:var(--sh)}
.g29f8d h2{font-size:1.06rem;margin-bottom:.4em;color:var(--brand)}
.g29f8d h2::before{display:none}
.g29f8d p{margin:0;color:#22303c}
.g7f73d{background:#fff;border:1px solid var(--line);border-radius:var(--rcard);padding:26px;box-shadow:var(--sh);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;display:flex;flex-direction:column}
.g7f73d:hover{transform:translateY(-4px);box-shadow:var(--sh-lift);border-color:#bacbdc}
.g7f73d h3{margin-bottom:.4em}
.g7f73d p:last-child{margin-bottom:0}
/* icon tile — brand gradient with a white glyph/numeral (design standard .num-badge) */
.b8c3b6{width:54px;height:54px;border-radius:15px;background:linear-gradient(140deg,var(--brand),var(--brand-bright));color:#fff;display:grid;place-items:center;margin-bottom:17px;font-family:var(--fd);font-weight:var(--fw-black);font-size:1.06rem;border:0;position:relative;box-shadow:0 12px 22px -12px rgba(13,59,92,.85);flex:0 0 auto}
.b8c3b6::after{content:"";position:absolute;inset:0;border-radius:15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.28)}
.b8c3b6 svg{width:27px;height:27px}
.g7f73d.warn .b8c3b6{background:linear-gradient(140deg,#b23e1c,#dd6636);box-shadow:0 12px 22px -12px rgba(163,48,27,.85)}
.g7f73d.good .b8c3b6{background:linear-gradient(140deg,#12602f,#2b8b51);box-shadow:0 12px 22px -12px rgba(24,107,58,.85)}
/* service links inside a card read as tags, not a run-on underlined blob */
.g7f73d span a.e7784f{display:inline-block;background:var(--sand2);border:1px solid #cfdeeb;color:var(--brand);border-radius:999px;padding:5px 12px;margin:6px 6px 0 0;font-size:.84rem;font-weight:var(--fw-bold);text-decoration:none;line-height:1.3;transition:background .14s ease,border-color .14s ease,transform .14s ease}
.g7f73d span a.e7784f:hover{background:#fff3dc;border-color:var(--accent);color:var(--accent-d);transform:translateY(-1px)}
/* process steps as connected cards */
.j6f514{list-style:none;padding:0;margin:0;display:grid;gap:14px}
@media(min-width:1040px){.j6f514{grid-template-columns:repeat(2,minmax(0,1fr))}.j6f514>li:nth-child(2n+1):last-child{grid-column:1/-1}}
.j6f514 li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:18px;align-items:start;margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--rcard);padding:20px 22px;box-shadow:var(--sh);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;max-width:none}
.j6f514 li:hover{transform:translateX(3px);border-color:#bacbdc;box-shadow:var(--sh-lift)}
.j6f514 h3{margin-bottom:.3em}
.j6f514 p{margin:0;max-width:var(--measure)}
.c1cace .j6f514 li{background:var(--paper)}
.f1d500{width:52px;height:52px;border-radius:15px;background:linear-gradient(135deg,var(--brand),var(--brand-bright));color:#fff;display:grid;place-items:center;font-family:var(--fd);font-weight:var(--fw-black);font-size:1.2rem;box-shadow:0 12px 22px -12px rgba(13,59,92,.85)}
/* checklists as boxed check rows */
.checks{list-style:none;padding:0;margin:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}
.checks li{position:relative;padding:13px 16px 13px 44px;margin:0;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px rgba(9,44,69,.05);font-size:.97rem;line-height:1.5;transition:border-color .15s ease,transform .15s ease}
.checks li:hover{border-color:#bacbdc;transform:translateY(-2px)}
.checks li::before{content:"";position:absolute;left:16px;top:1.3em;width:13px;height:7px;border-left:2.5px solid var(--ok);border-bottom:2.5px solid var(--ok);transform:rotate(-45deg)}
.c1cace .checks li{background:var(--paper)}
.a752e2{width:100%;border-collapse:collapse;font-size:.95rem;border-radius:var(--r2);overflow:hidden;box-shadow:var(--sh)}
.a752e2 th,.a752e2 td{border:1px solid var(--line);padding:13px 15px;text-align:left;vertical-align:top;background:#fff}
.a752e2 th[scope=row]{background:var(--paper);font-weight:var(--fw-semi);width:34%}
.a752e2 thead th{background:linear-gradient(135deg,var(--brand),var(--brand-bright));color:#fff;font-family:var(--fd);border-color:var(--brand)}
.a7e32a{background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--r2);padding:22px 24px;box-shadow:var(--sh)}
.a7e32a p:last-child{margin-bottom:0}
.e7784f{color:var(--brand2);font-weight:var(--fw-bold)}
.e7784f:hover{color:var(--accent-d)}

/* ---------- FAQ ---------- */
.ddc145{display:grid;gap:12px}
.ddc145 .item{border:1px solid var(--line);border-radius:var(--r2);background:#fff;overflow:hidden;box-shadow:var(--sh);transition:border-color .15s ease,box-shadow .15s ease}
.ddc145 .item:hover{border-color:#bacbdc;box-shadow:var(--sh-lift)}
.f0c7c9{width:100%;display:flex;justify-content:space-between;align-items:center;gap:14px;text-align:left;background:#fff;border:0;padding:18px 21px;cursor:pointer;font-family:var(--fd);font-weight:var(--fw-black);font-size:1.04rem;color:var(--ink);line-height:1.35}
.f0c7c9:hover{background:var(--paper)}
.f0c7c9 .ic{flex:0 0 auto;width:28px;height:28px;border-radius:9px;background:var(--sand2);color:var(--brand);display:grid;place-items:center;font-size:1.05rem;line-height:1;transition:transform .2s ease,background .2s ease,color .2s ease}
.f0c7c9[aria-expanded=true] .ic{background:linear-gradient(135deg,var(--brand),var(--brand-bright));color:#fff;transform:rotate(45deg)}
.g1c611{padding:0 21px 19px;color:var(--ink2)}
.g1c611 p:last-child{margin-bottom:0}
h3.faqh{margin:0}

/* ---------- action band + CTA ---------- */
.e438ec{position:relative;background:var(--brand);background-size:cover;background-position:center;color:#fff;border-radius:20px;overflow:hidden;box-shadow:0 30px 60px -28px rgba(9,44,69,.7)}
.e438ec::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(4,17,27,.93) 0%,rgba(7,34,54,.84) 46%,rgba(18,80,122,.58) 100%)}
.e438ec::after{content:"";position:absolute;left:0;right:0;bottom:0;height:8px;background-image:linear-gradient(135deg,transparent 46%,rgba(242,161,26,.9) 0,rgba(242,161,26,.9) 54%,transparent 0);background-size:20px 20px}
.e438ec .in{position:relative;padding:clamp(30px,4vw,52px);display:grid;gap:20px;align-items:center}
@media(min-width:860px){.e438ec .in{grid-template-columns:minmax(0,1.35fr) minmax(0,auto)}}
.e438ec h2,.e438ec p{color:#fff}
.e438ec h2::before{display:none}
.e438ec p:last-of-type{margin-bottom:0}
.i55faa{position:relative;background:linear-gradient(155deg,var(--brand-deep),var(--brand2));color:#fff;text-align:center;overflow:hidden}
.i55faa::after{content:"";position:absolute;left:0;right:0;top:0;height:8px;background-image:linear-gradient(135deg,transparent 46%,rgba(242,161,26,.9) 0,rgba(242,161,26,.9) 54%,transparent 0);background-size:20px 20px}
.i55faa h2,.i55faa p{color:#fff}
.i55faa p{color:#dfeaf3;max-width:62ch}

/* ---------- marquee ---------- */
.c83d3b{overflow:hidden;border-block:1px solid var(--line);background:#fff;padding:18px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.b2801c{display:flex;gap:132px;width:max-content;animation:mq 64s linear infinite}
.b2801c span{font-family:var(--fd);font-weight:var(--fw-black);font-size:1.04rem;color:#4a5d71;white-space:nowrap;letter-spacing:.01em}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-33.3333%)}}

/* ---------- ZIP widget ---------- */
.b3ad46{position:relative;background:linear-gradient(150deg,var(--brand-deep),var(--brand2));border:0;border-radius:20px;padding:30px 32px;box-shadow:0 26px 54px -28px rgba(9,44,69,.75);color:#fff;overflow:hidden}
.b3ad46::after{content:"";position:absolute;left:0;right:0;top:0;height:6px;background-image:linear-gradient(135deg,transparent 46%,rgba(242,161,26,.9) 0,rgba(242,161,26,.9) 54%,transparent 0);background-size:18px 18px}
.b3ad46 h2{color:#fff}
.b3ad46 h2::before{display:none}
.b3ad46>p{color:#cbdae8}
.b3ad46 .row{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.b3ad46 label{display:block;font-weight:var(--fw-semi);margin-bottom:2px}
.b3ad46 input{flex:1 1 200px;min-width:0;padding:14px 16px;border:2px solid rgba(255,255,255,.3);border-radius:12px;background:#fff;color:var(--ink)}
.b3ad46 input:focus-visible{border-color:var(--accent2)}
.gc510d{margin-top:16px;font-weight:var(--fw-semi);color:#fff;max-width:none}
.gc510d a{color:#ffd07a}
.gc510d:empty{display:none}

/* ---------- area / service grids ---------- */
.d4e58d,.b6215e{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));list-style:none;padding:0;margin:0}
.d4e58d li,.b6215e li{margin:0;min-width:0;max-width:none}
.d4e58d a,.b6215e a{position:relative;display:block;height:100%;background:#fff;border:1px solid var(--line);border-radius:13px;padding:15px 17px 15px 45px;text-decoration:none;color:var(--ink);font-weight:var(--fw-bold);font-size:.97rem;overflow-wrap:anywhere;box-shadow:var(--sh);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.d4e58d a::before,.b6215e a::before{content:"";position:absolute;left:17px;top:19px;width:13px;height:13px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:linear-gradient(140deg,var(--accent),var(--accent2));box-shadow:inset 0 0 0 3px rgba(255,255,255,.9)}
.d4e58d a:hover,.b6215e a:hover{border-color:var(--brand2);transform:translateY(-3px);box-shadow:var(--sh-lift);color:var(--brand)}
.c1cace .d4e58d a,.c1cace .b6215e a{background:var(--paper)}
.b6215e .zp{display:block;font-weight:400;font-size:.85rem;color:var(--muted)}
.striplist{display:flex;flex-wrap:wrap;gap:9px;padding:0;margin:12px 0 0;list-style:none;font-size:.93rem}
.striplist li{margin:0;color:var(--ink2)}
.striplist a{display:inline-block;padding:7px 13px;border-radius:999px;background:var(--sand2);border:1px solid #cfdeeb;color:var(--brand);font-weight:var(--fw-semi);font-size:.88rem;text-decoration:none;line-height:1.4;min-height:36px}
.striplist a:hover{background:#fff3dc;border-color:var(--accent);color:var(--accent-d)}

/* ---------- blog cards ---------- */
.jce1a1{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;box-shadow:var(--sh);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.jce1a1:hover{transform:translateY(-4px);box-shadow:var(--sh-lift);border-color:#bacbdc}
.h1d88e{width:100%;aspect-ratio:3/2;object-fit:cover;background:#e8eef4}
.jce1a1 .bd{padding:19px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.jce1a1 .mt{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--fw-semi)}
.jce1a1 h3{margin:0;font-size:1.08rem}
.jce1a1 a{text-decoration:none;color:inherit}
.jce1a1 a:hover h3{color:var(--brand)}
.hda53e{display:inline-block;background:linear-gradient(135deg,var(--sand2),#d8e6f4);color:var(--brand);border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:var(--fw-black);border:1px solid #cfdeeb}
.byline{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:.9rem;color:var(--muted);border-block:1px solid var(--line);padding:13px 0;margin:0 0 24px}
.byline strong{color:var(--ink)}

/* ---------- NAP / map / footer ---------- */
.fe1161{display:flex;flex-wrap:wrap;gap:18px}
.fe1161>*{min-width:0;flex:1 1 250px}
.fe1161 p,.fe1161 a{overflow-wrap:anywhere}
a[href^='mailto:']{overflow-wrap:anywhere}
.fe1161 .b{height:100%;background:#fff;border:1px solid var(--line);border-radius:var(--r2);padding:22px;box-shadow:var(--sh);transition:transform .15s ease,box-shadow .15s ease}
.fe1161 .b:hover{transform:translateY(-3px);box-shadow:var(--sh-lift)}
.fe1161 .b h3{color:var(--brand)}
.fe1161 .b p{margin:0}
.c1cace .fe1161 .b{background:var(--paper)}
.d3a090{position:relative;width:100%;height:360px;border-radius:var(--r2);overflow:hidden;border:1px solid var(--line);background:var(--sand);box-shadow:var(--sh)}
.d3a090 iframe{width:100%;height:100%;border:0;display:block}
.j1b31b{position:relative;background:var(--brand-deep);color:#c3d4e2;padding:58px 0 26px;font-size:.95rem}
.j1b31b::before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background-image:linear-gradient(135deg,transparent 46%,rgba(242,161,26,.85) 0,rgba(242,161,26,.85) 54%,transparent 0);background-size:20px 20px}
.j1b31b h2,.j1b31b h3{color:#fff;font-size:.86rem;letter-spacing:.1em;text-transform:uppercase;font-family:var(--fd);font-weight:var(--fw-black);margin-bottom:.9em}
.j1b31b a{color:#c3d4e2;text-decoration:none}
.j1b31b a:hover{color:#fff;text-decoration:underline}
.j26c8b{display:flex;flex-wrap:wrap;gap:32px}
.j26c8b>*{flex:1 1 215px;min-width:0}
.j26c8b>*:first-child{flex:1 1 300px}
.j26c8b ul{list-style:none;padding:0;margin:0}
.j26c8b li{margin:0 0 .5em}
.ad8ef4{border-top:1px solid rgba(255,255,255,.16);margin-top:38px;padding-top:22px;font-size:.86rem;color:#9fb2c4;line-height:1.6}
.ad8ef4 p{margin:0 0 .7em}
.j1b31b .fbrand{font-family:var(--fd);font-weight:var(--fw-black);color:#fff;font-size:1.18rem;margin-bottom:.5em;display:block;letter-spacing:-.01em}

/* ---------- sticky mobile call bar ---------- */
.e2d616{position:fixed;left:0;right:0;bottom:0;z-index:80;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(9,44,69,.14);padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px));display:flex;gap:9px}
.e2d616 a{flex:1 1 0;min-width:0}
.e2d616 .ece553{width:100%;padding:13px 10px;font-size:.98rem}
@media(min-width:1060px){.e2d616{display:none}}

/* ---------- lightbox ---------- */
.j8750f{position:fixed;inset:0;background:rgba(6,20,32,.92);z-index:120;display:grid;place-items:center;padding:22px}
.j8750f img{max-width:min(1100px,94vw);max-height:88vh;width:auto;border-radius:var(--r)}
.j8750f button{position:absolute;top:16px;right:16px;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:#111820;font-size:1.4rem;cursor:pointer;font-family:inherit;line-height:1}

/* feature image framing — portrait deliverables are cropped, never left to tower */
img[data-imgslot]{width:100%;aspect-ratio:16/11;object-fit:cover;max-height:440px}
.split img[data-imgslot]{aspect-ratio:4/3}

img[data-imgslot=feature],.split img{border-radius:var(--r2);box-shadow:var(--sh);border:1px solid var(--line)}
.e438ec img[data-imgslot=feature]{border:0}
/* UNFILLED image slots render as a designed frame, not a broken-image icon.
   Wrapped in :where() so it can never outrank real component sizing (bug 4c).
   The rule stops applying by itself the moment the image bot writes a real src. */
:where(img[src^="[Image"]){width:100%;aspect-ratio:16/9;max-height:440px;border-radius:var(--r2);
 border:1px solid var(--line);font-size:0;color:transparent;box-shadow:var(--sh);
 background-color:#e3ebf4;
 background-image:linear-gradient(135deg,rgba(13,59,92,.09) 46%,transparent 0,transparent 54%,rgba(13,59,92,.09) 0),
  linear-gradient(160deg,#eef4fa,#dce7f2);
 background-size:26px 26px,100% 100%}

/* ---------- reveal (with safety net in JS) ---------- */
.rv{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
 .rv{opacity:1;transform:none}
 .b2801c{animation:none}
}

/* ---------- mobile reserve (measured at QA, not copied between sites) ---------- */
@media(max-width:1059.98px){body{padding-bottom:calc(var(--barh) + env(safe-area-inset-bottom,0px))}}
@media(max-width:640px){
 .d4e58d a,.b6215e a{min-height:46px}
 .j1b31b li>a,.f75091 a{display:inline-block;min-height:38px}
}
