:root{--navy:#0a1c36;--navy2:#132c52;--navy3:#1d3b6b;--accent:#f5a623;--accent2:#d98a06;--ink:#1a2232;--muted:#5b6578;--bg:#fff;--soft:#f3f5f9;--line:#e2e7ef;--star:#fbbc04;--r:18px;--rs:12px;--shadow:0 1px 2px rgba(10,28,54,.06),0 8px 28px rgba(10,28,54,.08);--shadow2:0 18px 50px rgba(10,28,54,.16);--head:76px}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--head) + 12px);-webkit-text-size-adjust:100%}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);line-height:1.65;font-size:16px;overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:'Poppins','Inter',sans-serif;line-height:1.18;color:var(--navy);letter-spacing:-.01em}
h2{font-size:clamp(1.65rem,1.1rem + 2.4vw,2.6rem);margin-bottom:.9rem}
h3{font-size:1.15rem}
h1 span,h2 span{color:var(--accent2)}
.dark h2 span,.hero h1 span,.pagehero h1 span,.cta h2 span{color:var(--accent)}
p+p{margin-top:1rem}
.wrap{width:min(1200px,100% - 32px);margin-inline:auto}
section{padding:clamp(56px,4rem + 3vw,108px) 0}
.soft{background:var(--soft)}
.center{text-align:center}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent2);margin-bottom:.7rem}
.eyebrow::before{content:"";width:22px;height:2px;background:currentColor;border-radius:2px}
.center .eyebrow::after{content:"";width:22px;height:2px;background:currentColor;border-radius:2px}
.lead{color:var(--muted);font-size:clamp(1rem,.95rem + .3vw,1.12rem);max-width:720px}
.center .lead{margin-inline:auto}
.head{margin-bottom:clamp(28px,4vw,52px)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--accent);color:var(--navy);font-weight:700;padding:.9rem 1.55rem;border-radius:999px;transition:background .2s,transform .2s,box-shadow .2s;border:0;cursor:pointer;font-size:1rem;line-height:1.2;min-height:48px;box-shadow:0 6px 18px rgba(245,166,35,.32)}
.btn:hover{background:#ffb83d;transform:translateY(-2px)}
.btn.ghost{background:rgba(255,255,255,.08);color:#fff;border:1.5px solid rgba(255,255,255,.7);box-shadow:none;backdrop-filter:blur(4px)}
.btn.ghost:hover{background:#fff;color:var(--navy)}
.btn.line{background:#fff;color:var(--navy);border:1.5px solid var(--line);box-shadow:none}
.btn.line:hover{border-color:var(--navy)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:200;background:#fff;padding:.6rem 1rem}

/* stars + google badge */
.stars{display:inline-flex;gap:1px;color:var(--star);font-size:1rem;letter-spacing:1px;line-height:1}
.gbadge{display:inline-flex;align-items:center;gap:.75rem;background:#fff;color:var(--ink);border-radius:999px;padding:.5rem 1rem .5rem .55rem;box-shadow:var(--shadow);font-size:.9rem;line-height:1.2;transition:transform .2s}
.gbadge:hover{transform:translateY(-2px)}
.gbadge .gl{width:34px;height:34px;flex:none}
.gbadge b{font-size:1.05rem;color:var(--navy)}
.gbadge small{color:var(--muted);display:block;font-size:.78rem}

/* hero */
.hero{position:relative;min-height:min(88vh,800px);display:flex;align-items:center;color:#fff;overflow:hidden;padding:clamp(64px,10vw,120px) 0}
.hero .slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.2s;transform:scale(1.06)}
.hero .slide.on{opacity:1;animation:kb 9s linear forwards}
@keyframes kb{to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(10,28,54,.94) 0%,rgba(10,28,54,.78) 45%,rgba(10,28,54,.3) 100%)}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(24px,4vw,64px);align-items:center}
.hero h1{color:#fff;font-size:clamp(2.1rem,1.2rem + 4vw,4rem);margin:.2rem 0 1rem;font-weight:800}
.hero p.sub{color:#d6deeb;font-size:clamp(1rem,.95rem + .35vw,1.18rem);max-width:600px}
.hero .eyebrow{color:var(--accent)}
.ctas{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.8rem 0 1.6rem}
.hero .gbadge{background:rgba(255,255,255,.96)}
.hero-review{background:rgba(255,255,255,.97);color:var(--ink);border-radius:var(--r);padding:1.6rem;box-shadow:var(--shadow2);position:relative}
.hero-review::before{content:"“";position:absolute;top:-.35em;right:.3em;font:800 7rem/1 Georgia,serif;color:rgba(245,166,35,.25)}
.hero-review p{font-size:1.02rem;margin:.7rem 0 1rem;color:var(--ink)}
.hero-review .who{display:flex;align-items:center;gap:.7rem;font-size:.88rem;color:var(--muted)}
.hero-review .who b{color:var(--navy);display:block;font-size:.95rem}
.hero-review .rot{transition:opacity .4s}
.hero-review .rot.fade{opacity:0}
.av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;flex:none;font-size:1rem}
.gmini{width:18px;height:18px;margin-left:auto;flex:none}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr}.hero{min-height:auto}.hero-review{max-width:560px}}
@media(max-width:520px){.ctas .btn{flex:1 1 100%}.hero-review{padding:1.25rem}}

/* stat strip */
.stats{background:var(--navy);color:#fff;padding:0}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stats .s{padding:1.6rem 1rem;text-align:center;border-right:1px solid rgba(255,255,255,.08)}
.stats .s:last-child{border-right:0}
.stats b{display:block;font:800 clamp(1.5rem,1.1rem + 1.6vw,2.2rem)/1.1 'Poppins',sans-serif;color:var(--accent)}
.stats span{font-size:.86rem;color:#b9c5d8}
@media(max-width:720px){.stats .wrap{grid-template-columns:1fr 1fr}.stats .s:nth-child(2){border-right:0}.stats .s:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.08)}}

/* grids & cards */
.grid{display:grid;gap:clamp(18px,2.4vw,28px)}
.g2{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(28px,5vw,72px)}
.g3{grid-template-columns:repeat(3,1fr)}
@media(max-width:960px){.g3{grid-template-columns:1fr 1fr}}
@media(max-width:860px){.g2{grid-template-columns:1fr}}
@media(max-width:600px){.g3{grid-template-columns:1fr}}
.card{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s;display:flex;flex-direction:column;border:1px solid rgba(10,28,54,.05)}
.card:hover{transform:translateY(-5px);box-shadow:var(--shadow2)}
.card .img{aspect-ratio:16/10;overflow:hidden;background:var(--soft)}
.card .img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .img img{transform:scale(1.05)}
.card .body{padding:1.35rem 1.4rem 1.5rem;display:flex;flex-direction:column;flex:1}
.card h3{margin-bottom:.45rem}
.card p{color:var(--muted);font-size:.95rem;flex:1}
.more{display:inline-block;margin-top:1rem;font-weight:700;color:var(--accent2);font-size:.92rem}

/* about pics */
.pics{position:relative;display:grid;grid-template-columns:1.2fr 1fr;gap:14px}
.pics img{border-radius:var(--r);width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.pics img:nth-child(2){margin-top:44px}
.pics .stat{position:absolute;left:50%;bottom:-18px;transform:translateX(-50%);background:var(--accent);color:var(--navy);padding:.9rem 1.4rem;border-radius:var(--rs);font-weight:600;text-align:center;box-shadow:var(--shadow2);white-space:nowrap;font-size:.9rem}
.pics .stat b{display:block;font:800 1.9rem/1 'Poppins',sans-serif}

/* partners */
.partners{overflow:hidden;display:flex;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);margin-top:1.4rem}
.track{display:flex;gap:2.4rem;padding-right:2.4rem;animation:mq 45s linear infinite;flex:none;align-items:center}
.track img{height:52px;width:auto;filter:grayscale(1);opacity:.7;transition:.2s}
.track img:hover{filter:none;opacity:1}
@keyframes mq{to{transform:translateX(-100%)}}

/* dark why */
.dark{background:radial-gradient(1200px 500px at 90% 0%,var(--navy3),transparent 60%),var(--navy);color:#cdd6e4}
.dark h2,.dark h3{color:#fff}
.why{display:grid;gap:1.3rem;margin-top:1.6rem}
.why>div{display:flex;gap:1rem;align-items:flex-start}
.why i{flex:none;width:52px;height:52px;border-radius:14px;background:rgba(245,166,35,.14);color:var(--accent);display:grid;place-items:center;font:800 1.1rem 'Poppins',sans-serif;font-style:normal}
.why h3{font-size:1.05rem;margin-bottom:.2rem}
.why span{font-size:.95rem}
.why-img{border-radius:var(--r);width:100%;object-fit:cover;aspect-ratio:4/5;max-height:620px}

/* checks */
.checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.2rem;margin-top:1.4rem}
.checks li,.bullets li{position:relative;padding-left:1.8rem;font-weight:500}
.checks li::before,.bullets li::before{content:"";position:absolute;left:0;top:.3em;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%230a1c36' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/80% no-repeat}
.bullets{list-style:none;display:grid;gap:.6rem;margin:1.2rem 0 1.6rem}
@media(max-width:520px){.checks{grid-template-columns:1fr}}

/* reviews */
.rv-top{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:clamp(24px,3vw,40px)}
.rv-top .head{margin:0}
.rv-score{display:flex;align-items:center;gap:1rem;background:#fff;border-radius:var(--r);padding:1rem 1.3rem;box-shadow:var(--shadow)}
.rv-score .big{font:800 2.6rem/1 'Poppins',sans-serif;color:var(--navy)}
.rv-score small{display:block;color:var(--muted);font-size:.85rem}
.rv-score .gl{width:40px;height:40px}
.rv-rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 2*22px)/3);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 20px;scrollbar-width:none;overscroll-behavior-x:contain}
.rv-rail::-webkit-scrollbar{display:none}
@media(max-width:960px){.rv-rail{grid-auto-columns:calc((100% - 22px)/2)}}
@media(max-width:600px){.rv-rail{grid-auto-columns:86%;gap:14px}}
.rv{scroll-snap-align:start;background:#fff;border-radius:var(--r);padding:1.4rem 1.4rem 1.3rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.8rem;border:1px solid rgba(10,28,54,.05)}
.rv .who{display:flex;align-items:center;gap:.7rem;font-size:.85rem;color:var(--muted);line-height:1.3}
.rv .who b{color:var(--navy);display:block;font-size:.95rem}
.rv p{font-size:.96rem;color:var(--ink);flex:1}
.rv .tag{align-self:flex-start;font-size:.75rem;font-weight:600;background:var(--soft);color:var(--navy2);padding:.25rem .65rem;border-radius:999px}
.rv-ctl{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.6rem;flex-wrap:wrap}
.rv-ctl .arrows{display:flex;gap:.5rem}
.rv-ctl button{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line);background:#fff;cursor:pointer;font-size:1.2rem;color:var(--navy);transition:.2s}
.rv-ctl button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.rv-ctl .links{display:flex;gap:.7rem;flex-wrap:wrap}
@media(max-width:600px){.rv-ctl .links{width:100%}.rv-ctl .links .btn{flex:1}}

/* single quote strip used across pages */
.quote-strip{background:var(--soft);padding:clamp(40px,5vw,64px) 0}
.quote-strip figure{max-width:860px;margin:0 auto;text-align:center}
.quote-strip blockquote{font:600 clamp(1.15rem,1rem + 1vw,1.6rem)/1.45 'Poppins',sans-serif;color:var(--navy);margin:.8rem 0 1.1rem}
.quote-strip figcaption{display:inline-flex;align-items:center;gap:.6rem;color:var(--muted);font-size:.9rem}
.quote-strip figcaption b{color:var(--navy)}
.mini-rv{display:flex;align-items:center;gap:.7rem;margin-top:1.4rem;padding:1rem 1.1rem;border-left:3px solid var(--accent);background:var(--soft);border-radius:0 var(--rs) var(--rs) 0;font-size:.93rem}
.mini-rv p{margin:0;color:var(--ink)}
.mini-rv small{display:block;color:var(--muted);margin-top:.3rem}

/* cta */
.cta{position:relative;background-size:cover;background-position:center;color:#fff}
.cta::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(10,28,54,.93),rgba(10,28,54,.72))}
.cta .wrap{position:relative}
.cta h2{color:#fff;max-width:820px;margin-inline:auto}
.cta p{color:#d6deeb;max-width:680px;margin:0 auto 1.8rem}
.cta .ctas{justify-content:center;margin:0}

/* page hero */
.pagehero{position:relative;background-size:cover;background-position:center;color:#fff;padding:clamp(72px,9vw,128px) 0 clamp(56px,7vw,96px)}
.pagehero::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(10,28,54,.94),rgba(10,28,54,.55))}
.pagehero .wrap{position:relative}
.pagehero h1{color:#fff;font-size:clamp(2rem,1.3rem + 3vw,3.3rem);margin:.4rem 0 .8rem;max-width:820px}
.pagehero p{color:#d6deeb;max-width:640px;font-size:1.08rem}
.crumb{font-size:.86rem;color:#b9c5d8}
.crumb a:hover{color:#fff}
.pagehero .gbadge{margin-top:1.6rem}

/* service / fleet rows */
.svc{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:center;padding:clamp(28px,4vw,48px) 0;border-bottom:1px solid var(--line)}
.svc:last-child{border-bottom:0}
.svc:nth-child(even) .media{order:2}
.svc .media img{border-radius:var(--r);width:100%;aspect-ratio:4/3;object-fit:cover;box-shadow:var(--shadow)}
.svc .num{font:800 .85rem 'Poppins',sans-serif;color:var(--accent2);letter-spacing:.14em}
.svc h2{font-size:clamp(1.5rem,1.1rem + 1.6vw,2.1rem)}
.svc .btn{margin-top:1.4rem}
@media(max-width:860px){.svc{grid-template-columns:1fr}.svc:nth-child(even) .media{order:0}}
.svc-nav{display:flex;gap:.5rem;overflow-x:auto;padding:4px 2px 14px;margin-bottom:.5rem;scrollbar-width:none}
.svc-nav::-webkit-scrollbar{display:none}
.svc-nav a{flex:none;padding:.55rem 1rem;border-radius:999px;background:var(--soft);font-weight:600;font-size:.88rem;color:var(--navy);border:1px solid var(--line)}
.svc-nav a:hover{background:var(--navy);color:#fff}

/* gallery + amenities */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gallery img{border-radius:var(--rs);aspect-ratio:1;object-fit:cover;width:100%}
.gallery img:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto;height:100%}
@media(max-width:720px){.gallery{grid-template-columns:1fr 1fr}.gallery img:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:16/10}}
.amen{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.amen div{background:#fff;border:1px solid var(--line);border-radius:var(--rs);padding:1.1rem 1.2rem;font-weight:600;color:var(--navy);display:flex;gap:.7rem;align-items:center}
.amen div::before{content:"✓";flex:none;width:28px;height:28px;border-radius:50%;background:rgba(245,166,35,.16);color:var(--accent2);display:grid;place-items:center;font-size:.9rem}
@media(max-width:900px){.amen{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.amen{grid-template-columns:1fr}}

/* forms */
.quote-wrap{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(20px,3vw,36px);align-items:start}
@media(max-width:960px){.quote-wrap{grid-template-columns:1fr}}
form.quote{background:#fff;border-radius:var(--r);padding:clamp(1.2rem,3vw,2.2rem);box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.2rem}
form.quote h3{grid-column:1/-1;font-size:1rem;color:var(--accent2);text-transform:uppercase;letter-spacing:.1em;margin-top:.6rem;padding-top:1rem;border-top:1px solid var(--line)}
form.quote h3:first-child{margin-top:0;padding-top:0;border-top:0}
form.quote label{display:flex;flex-direction:column;gap:.35rem;font-size:.86rem;font-weight:600;color:var(--navy)}
form.quote .full{grid-column:1/-1}
form.quote input,form.quote select,form.quote textarea{border:1.5px solid var(--line);border-radius:10px;padding:.8rem .9rem;font-size:1rem;background:#fbfcfe;width:100%;min-height:50px;font-weight:400;transition:border .2s}
form.quote input:focus,form.quote select:focus,form.quote textarea:focus{outline:0;border-color:var(--accent);background:#fff}
form.quote .btn{width:100%}
@media(max-width:600px){form.quote{grid-template-columns:1fr}}
aside.side{display:grid;gap:18px;position:sticky;top:calc(var(--head) + 16px)}
@media(max-width:960px){aside.side{position:static}}
.panel{background:#fff;border-radius:var(--r);padding:1.4rem;box-shadow:var(--shadow)}
.panel.navy{background:var(--navy);color:#cdd6e4}
.panel.navy h3{color:#fff}
.panel h3{margin-bottom:.6rem}
.panel a b{color:var(--accent)}

.contact-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.contact-cards>div{background:#fff;border-radius:var(--r);padding:1.4rem;box-shadow:var(--shadow);border:1px solid rgba(10,28,54,.05)}
.contact-cards h3{margin-bottom:.5rem;font-size:1.05rem}
.contact-cards p{color:var(--muted);font-size:.95rem;overflow-wrap:anywhere}
.contact-cards a b{color:var(--navy)}
@media(max-width:960px){.contact-cards{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.contact-cards{grid-template-columns:1fr}}
.map{width:100%;height:clamp(300px,45vw,460px);border:0;border-radius:var(--r);margin-top:28px;box-shadow:var(--shadow)}

/* mobile action bar */
.mbar{display:none}
@media(max-width:720px){
 .mbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:55;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(10,28,54,.08)}
 .mbar .btn{min-height:50px;padding:.7rem;font-size:.98rem}
 .mbar .btn.line{box-shadow:none}
}

/* reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
.nf{min-height:60vh;display:grid;place-items:center;text-align:center}
/* seo landing pages */
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chips a{padding:.55rem 1rem;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:600;font-size:.9rem;color:var(--navy);transition:.2s}
.chips a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.loc-group{padding:1.6rem 0;border-bottom:1px solid var(--line)}
.loc-group h2{font-size:1.4rem}
.loc-group .chips a{background:var(--soft)}
.facts{list-style:none;display:grid;gap:.6rem;margin-bottom:.4rem}
.facts li{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px dashed var(--line);padding-bottom:.5rem;font-size:.94rem;text-align:right}
.facts b{color:var(--navy);text-align:left}
.faq{border-bottom:1px solid var(--line);padding:1.1rem 0}
.faq summary{cursor:pointer;font-weight:700;color:var(--navy);font-size:1.05rem;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::after{content:"+";color:var(--accent2);font-size:1.4rem;line-height:1}
.faq[open] summary::after{content:"–"}
.faq p{margin-top:.6rem;color:var(--muted)}

/* ===== brand v3: icons ===== */
.ic{width:1.15em;height:1.15em;flex:none;vertical-align:-.18em}
.btn .ic{width:1.1em;height:1.1em}
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s;z-index:-1}
.btn:hover::after{transform:translateX(120%)}
.btn:hover .ic{transform:translateX(2px)}
.btn .ic{transition:transform .2s}
.btn.sm{padding:.6rem 1.1rem;min-height:40px;font-size:.88rem}

/* topbar */
.topbar{background:#06132a;color:#9fb0c9;font-size:.82rem}
.topbar .wrap{display:flex;justify-content:space-between;gap:1.5rem;padding:.45rem 0;flex-wrap:wrap}
.topbar .wrap>div{display:flex;gap:1.6rem;flex-wrap:wrap;align-items:center}
.topbar .ic{color:var(--accent);margin-right:.25rem}
.topbar b,.topbar a:hover{color:#fff}
.topbar .g{color:var(--star)}

/* header */
header.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid rgba(10,28,54,.06);transition:box-shadow .3s,background .3s}
header.nav.scrolled{box-shadow:0 10px 30px rgba(10,28,54,.1);background:rgba(255,255,255,.97)}
header.nav>.wrap{display:flex;align-items:center;gap:1.2rem;height:var(--head);transition:height .3s}
header.nav.scrolled>.wrap{height:66px}
header.nav .logo img{height:38px;width:auto}
nav.menu{display:flex;align-items:center;gap:.2rem;margin-left:auto}
.nl{display:inline-flex;align-items:center;gap:.25rem;font-weight:600;color:var(--navy);font-size:.94rem;padding:.6rem .8rem;border-radius:10px;background:none;border:0;cursor:pointer;transition:background .2s,color .2s;white-space:nowrap}
.nl:hover,.dd.open>.nl,.nl.active{color:var(--accent2)}
.nl:hover{background:var(--soft)}
.chev{width:15px;height:15px;transition:transform .25s}
.dd{position:static}
.dd.open .chev{transform:rotate(180deg)}
.mega{position:absolute;left:0;right:0;top:100%;padding-top:8px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .22s,transform .22s,visibility .22s;pointer-events:none}
.mega-in{width:min(1200px,100% - 32px);margin:0 auto;background:#fff;border-radius:22px;box-shadow:0 30px 70px rgba(10,28,54,.22),0 0 0 1px rgba(10,28,54,.05);padding:22px;display:grid;gap:22px;max-height:calc(100vh - 140px);overflow:auto}
@media(min-width:1101px){.dd:hover>.mega,.dd:focus-within>.mega{opacity:1;visibility:visible;transform:none;pointer-events:auto}.dd:hover .chev{transform:rotate(180deg)}}
.dd.open>.mega{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.mm-svc{grid-template-columns:1fr 290px}
.mm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
.mm-item{display:flex;gap:.8rem;align-items:center;padding:.7rem .8rem;border-radius:14px;transition:background .2s,transform .2s}
.mm-item:hover{background:var(--soft);transform:translateX(3px)}
.mm-item b{display:block;color:var(--navy);font-size:.92rem;line-height:1.25}
.mm-item small{color:var(--muted);font-size:.8rem}
.mm-ic{width:42px;height:42px;padding:9px;border-radius:12px;flex:none;color:var(--navy);background:linear-gradient(135deg,#fff4df,#ffe2a8);box-shadow:inset 0 0 0 1px rgba(217,138,6,.18);transition:.25s}
.mm-item:hover .mm-ic{background:linear-gradient(135deg,var(--accent),#ffcf73);transform:rotate(-6deg) scale(1.05)}
.mm-feat{border-radius:16px;padding:1.4rem;color:#cdd6e4;display:flex;flex-direction:column;gap:.7rem;align-items:flex-start}
.mm-feat h4{color:#fff;font-size:1.15rem}
.mm-feat p{font-size:.9rem}
.mm-feat .eyebrow{color:var(--accent);margin:0}
.mm-all{font-size:.86rem;font-weight:600;color:#fff;margin-top:auto}
.mm-fleet{grid-template-columns:1fr 290px}
.mm-vehs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.mm-veh{border-radius:16px;padding:.8rem;background:var(--soft);transition:.25s;display:block}
.mm-veh:hover{background:#fff;box-shadow:var(--shadow2);transform:translateY(-4px)}
.mm-veh img{width:100%;aspect-ratio:16/10;object-fit:contain;margin-bottom:.6rem}
.mm-veh b{display:block;color:var(--navy)}
.mm-veh small{color:var(--muted);font-size:.82rem}
.mm-amen{list-style:none;display:grid;gap:.55rem;font-size:.9rem;color:#fff}
.mm-amen .ic{color:var(--accent);margin-right:.5rem}
.mm-loc{grid-template-columns:repeat(4,1fr) 260px}
.mm-loc h5{font:700 .75rem 'Inter',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--accent2);margin-bottom:.7rem}
.mm-loc ul{list-style:none;display:grid;gap:.15rem}
.mm-loc li a{display:block;padding:.3rem .5rem;margin-left:-.5rem;border-radius:8px;font-size:.9rem;color:var(--ink)}
.mm-loc li a:hover{background:var(--soft);color:var(--accent2)}
.mm-loc .mm-feat{align-items:center;text-align:center}
.mega-sm .mega-in{width:min(760px,100% - 32px);grid-template-columns:1fr 1fr 1fr}
.h-ctas{display:flex;align-items:center;gap:.7rem;flex:none}
.callcta{display:flex;align-items:center;gap:.6rem;padding:.35rem .9rem .35rem .4rem;border-radius:999px;border:1.5px solid var(--line);transition:.2s;line-height:1.15}
.callcta:hover{border-color:var(--navy);background:var(--soft)}
.callcta small{display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent2)}
.callcta b{color:var(--navy);font-size:.95rem;white-space:nowrap}
.pulse{position:relative;width:38px;height:38px;border-radius:50%;background:var(--navy);color:var(--accent);display:grid;place-items:center;flex:none}
.pulse::before,.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);animation:ring 2.4s infinite;opacity:0}
.pulse::after{animation-delay:1.2s}
@keyframes ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.7);opacity:0}}
.pulse .ic{width:18px;height:18px;animation:wiggle 4s infinite}
@keyframes wiggle{0%,88%,100%{transform:rotate(0)}90%,94%{transform:rotate(-14deg)}92%,96%{transform:rotate(14deg)}}
.btn.quote{padding:.75rem 1.25rem;min-height:46px;font-size:.93rem}
.m-ctas{display:none}
.burger{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;position:relative;flex:none}
.burger span,.burger span::before,.burger span::after{position:absolute;left:12px;width:20px;height:2px;background:var(--navy);border-radius:2px;transition:.25s;content:""}
.burger span{top:22px}.burger span::before{top:-6px;left:0}.burger span::after{top:6px;left:0}
.burger[aria-expanded=true] span{background:transparent}
.burger[aria-expanded=true] span::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded=true] span::after{top:0;transform:rotate(-45deg)}
@media(max-width:1240px) and (min-width:1101px){.callcta small{display:none}.nl{padding:.6rem .55rem}}
@media(max-width:1100px){
 .burger{display:block}
 .h-ctas{margin-left:auto}
 .callcta{padding:.35rem}.callcta>span:last-child{display:none}
 nav.menu{position:fixed;top:var(--head);left:0;right:0;bottom:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:.6rem 16px calc(1.5rem + env(safe-area-inset-bottom));overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-10px);transition:.28s}
 header.nav.scrolled nav.menu{top:66px}
 nav.menu.open{opacity:1;visibility:visible;transform:none}
 .nl{width:100%;justify-content:space-between;padding:1rem .3rem;font-size:1.08rem;border-bottom:1px solid var(--line);border-radius:0}
 .nl:hover{background:none}
 .mega{position:static;padding:0;opacity:1;visibility:visible;transform:none;pointer-events:auto;display:none}
 .dd.open>.mega{display:block}
 .mega-in,.mega-sm .mega-in{width:100%;box-shadow:none;border-radius:0;padding:.6rem 0 1rem;grid-template-columns:1fr!important;max-height:none;gap:14px}
 .mm-grid{grid-template-columns:1fr 1fr}
 .mm-vehs{grid-template-columns:1fr 1fr 1fr;gap:8px}
 .mm-loc{grid-template-columns:1fr 1fr!important}
 .mm-feat{display:none}
 .m-ctas{display:grid;gap:.7rem;margin-top:1.4rem}
 .m-ctas .btn{min-height:54px;font-size:1.02rem}
 .btn.call{background:var(--navy);color:#fff;box-shadow:none}
 body.menu-open{overflow:hidden}
}
@media(max-width:720px){.topbar{display:none}:root{--head:66px}header.nav .logo img{height:30px}.btn.quote{display:none}.mm-grid{grid-template-columns:1fr}.mm-vehs{grid-template-columns:1fr 1fr}}
@media(max-width:380px){header.nav .logo img{height:26px}}

/* ===== geometric backgrounds ===== */
.geo{position:relative;isolation:isolate;overflow:hidden;background-color:var(--navy);--mx:70%;--my:30%}
.geo::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(900px 500px at 85% 0%,rgba(29,59,107,.55),transparent 70%)}
.mm-feat.geo{background:radial-gradient(400px 260px at 100% 0%,#1d3b6b,transparent 70%),var(--navy)}
.hero.geo,.pagehero.geo,.cta.geo{background-color:transparent}
.hero.geo::after,.pagehero.geo::after,.cta.geo::after{z-index:1}
.pagehero.geo::before,.cta.geo::before{z-index:0}
.pagehero .wrap,.cta .wrap{z-index:2}
.dark.geo::after{z-index:0}.dark .wrap{position:relative;z-index:1}
.geo-fx{position:absolute;inset:0;z-index:1;pointer-events:none}
.geo-fx svg{width:100%;height:100%}
.rt{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-dasharray:6 10;opacity:.45;animation:dash 30s linear infinite}
.r2{stroke:#7fb2ff;opacity:.3;animation-duration:42s}
.r3{opacity:.25;animation-direction:reverse;animation-duration:50s}
@keyframes dash{to{stroke-dashoffset:-1000}}
.nd{fill:var(--accent);filter:drop-shadow(0 0 6px var(--accent));animation:blink 3s ease-in-out infinite}
.nd:nth-of-type(2){animation-delay:1s}.nd:nth-of-type(3){animation-delay:2s}
@keyframes blink{50%{opacity:.25}}
.hero .wrap{z-index:3}
.hero::after{z-index:0}
.hero .slide{z-index:-1}
.hero.geo::before{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(100deg,rgba(10,28,54,.95) 0%,rgba(10,28,54,.8) 45%,rgba(10,28,54,.35) 100%)}
.hero-review{animation:float 7s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-8px)}}

/* ===== seals ===== */
.seals{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.seal{flex:none;filter:drop-shadow(0 10px 22px rgba(0,0,0,.25));transition:transform .4s}
.seal:hover{transform:scale(1.06) rotate(-4deg)}
.seal-bg{fill:var(--navy)}
.seal-line{fill:none;stroke:var(--accent);stroke-width:1.2;opacity:.7}
.seal-line+.seal-line{stroke-dasharray:2 4}
.seal-ring{font:700 9.2px 'Inter',sans-serif;fill:#e9eef6;letter-spacing:.06em}
.seal-spin{transform-origin:68px 68px;animation:spin 28s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.seal-big{font:800 30px 'Poppins',sans-serif;fill:var(--accent);text-anchor:middle}
.seal-small{font:700 9px 'Inter',sans-serif;fill:#fff;text-anchor:middle;letter-spacing:.14em}
.seal-stars{font-size:11px;fill:var(--star);text-anchor:middle;letter-spacing:1px}
.seal-ic{color:var(--accent)}
.seal-google .seal-bg{fill:#fff}.seal-google .seal-ring{fill:var(--navy)}.seal-google .seal-big{fill:var(--navy)}
.seal-safety .seal-bg{fill:#13294b}
.seal-canada .seal-bg{fill:#a8834a}.seal-canada .seal-line{stroke:#fff}.seal-canada .seal-ic{color:#fff}.seal-canada .seal-ring{fill:#fff}

/* why icons, service tiles */
.why i{font-style:normal}
.why i .ic{width:26px;height:26px}
.svc-icons{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.svc-tile{position:relative;background:#fff;border-radius:var(--r);padding:1.4rem;border:1px solid var(--line);transition:.3s;overflow:hidden;display:flex;flex-direction:column;gap:.5rem}
.svc-tile::before{content:"";position:absolute;inset:auto -40% -60% auto;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(245,166,35,.22),transparent 65%);transition:.4s;opacity:0}
.svc-tile:hover{transform:translateY(-6px);box-shadow:var(--shadow2);border-color:transparent}
.svc-tile:hover::before{opacity:1;inset:auto -20% -40% auto}
.svc-tile .mm-ic{width:52px;height:52px;padding:12px}
.svc-tile:hover .mm-ic{background:linear-gradient(135deg,var(--accent),#ffcf73);transform:rotate(-6deg)}
.svc-tile h3{font-size:1.02rem}
.svc-tile small{color:var(--muted)}
.svc-tile .go{margin-top:auto;color:var(--accent2);font-weight:700;font-size:.86rem;display:flex;align-items:center;gap:.3rem}
@media(max-width:1000px){.svc-icons{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.svc-icons{grid-template-columns:1fr 1fr;gap:10px}.svc-tile{padding:1rem}}
.hero-icon{width:64px;height:64px;padding:14px;border-radius:18px;background:linear-gradient(135deg,var(--accent),#ffcf73);color:var(--navy);margin-bottom:.4rem;box-shadow:0 10px 30px rgba(245,166,35,.35)}

/* ===== footer ===== */
footer.ft{background:#061226;color:#9fadc4;font-size:.93rem}
.ft-cta{padding:clamp(48px,6vw,80px) 0}
.ft-cta>.wrap{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;position:relative;z-index:1}
.ft-cta h2{color:#fff;margin-bottom:.4rem}
.ft-cta h2 span{color:var(--accent)}
.ft-cta p{color:#c4cfe0}
.ft-cta .ctas{margin:1.4rem 0 0}
.ft-cta .eyebrow{color:var(--accent)}
.ft-contact{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;transform:translateY(-50%);margin-bottom:-20px}
.ft-contact a{display:flex;align-items:center;gap:.8rem;background:#0d1f3d;border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:1rem 1.1rem;transition:.25s;box-shadow:0 18px 40px rgba(0,0,0,.3)}
.ft-contact a:hover{transform:translateY(-4px);border-color:rgba(245,166,35,.5)}
.ft-contact small{display:block;font-size:.75rem;color:#8293ae}
.ft-contact b{color:#fff;font-size:.92rem;overflow-wrap:anywhere}
.ft-ic{width:42px;height:42px;padding:10px;border-radius:12px;background:rgba(245,166,35,.12);color:var(--accent);flex:none}
.ft-cols{display:grid;grid-template-columns:1.6fr 1.2fr 1fr 1fr 1fr;gap:2rem;padding-bottom:3rem}
.ft-cols h4{color:#fff;margin-bottom:1rem;font-size:.95rem;position:relative;padding-bottom:.6rem}
.ft-cols h4::after{content:"";position:absolute;left:0;bottom:0;width:26px;height:2px;background:var(--accent);border-radius:2px}
.ft-cols ul{list-style:none;display:grid;gap:.45rem}
.ft-cols a{transition:color .2s,padding .2s}
.ft-cols ul a:hover{color:#fff;padding-left:4px}
.ft-brand img{margin-bottom:1rem;height:auto}
.ft-brand .gbadge{margin-top:1.2rem}
.social{display:flex;gap:.5rem;margin-top:1.2rem}
.social a{width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.06);display:grid;place-items:center;color:#fff;transition:.25s}
.social a:hover{background:var(--accent);color:var(--navy);transform:translateY(-3px)}
.social .ic{width:20px;height:20px}
.ft-bottom{border-top:1px solid rgba(255,255,255,.07);padding:1.2rem 0 calc(1.2rem + 74px);font-size:.84rem}
.ft-bottom .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.ft-links{display:flex;gap:1.2rem;align-items:center}
.ft-links a:hover{color:#fff}
.totop{width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--navy);display:grid;place-items:center}
.totop:hover{transform:translateY(-3px)}
@media(min-width:721px){.ft-bottom{padding-bottom:1.2rem}}
@media(max-width:1100px){.ft-cols{grid-template-columns:1fr 1fr 1fr}.ft-brand{grid-column:1/-1}.ft-contact{grid-template-columns:1fr 1fr;transform:none;margin:2rem auto}}
@media(max-width:600px){.ft-cols{grid-template-columns:1fr 1fr}.ft-contact{grid-template-columns:1fr}.ft-cta .seals{justify-content:center;width:100%}.ft-cta .seal{width:84px;height:84px}}
.mbar .ic{width:18px;height:18px}

/* staggered reveal */
.reveal{transition-delay:var(--d,0ms)}
.stats b span{font:inherit;color:inherit}
.ft-cta{padding:clamp(40px,5vw,64px) 0 clamp(64px,7vw,96px)}
.ft-promise{color:#fff;font-size:clamp(1.4rem,1rem + 1.6vw,2.1rem);margin-bottom:.5rem}
.ft-promise span{color:var(--accent)}
/* review fixes */
@media(min-width:900px){.wrap{width:min(1200px,100% - 64px)}.mega-in{width:min(1200px,100% - 64px)}}
@media(max-width:1240px) and (min-width:1101px){.callcta{padding:.35rem}.callcta>span:last-child{display:none}header.nav>.wrap{gap:.6rem}}
.hero{min-height:min(80vh,720px)}
.rv .tag{margin-top:auto}
.card p{color:#4a5468}
.stats .s{border-color:rgba(255,255,255,.14)}
/* mobile review fixes */
.chips a,.svc-nav a{min-height:44px;display:inline-flex;align-items:center}
body.menu-open .mbar{display:none}
@media(max-width:600px){.ft-cols ul{gap:0}.ft-cols ul a{display:block;padding:.45rem 0}.social a{width:44px;height:44px}.totop{width:44px;height:44px}}
@media(max-width:480px){.seals .seal{width:84px;height:84px}.seals{gap:.6rem}}
@media(max-width:960px) and (min-width:601px){.g3>:last-child:nth-child(odd){grid-column:span 2}}
.crumb{font-size:.9rem}
.ft-cta>.wrap>div:first-child{flex:1 1 380px}
/* partner logos in original brand colours */
.track{gap:1.1rem;padding-right:1.1rem}
.track img,.track img:hover{filter:none;opacity:1;height:78px;width:auto;background:#fff;padding:10px 16px;border-radius:14px;box-shadow:0 2px 10px rgba(10,28,54,.07);border:1px solid var(--line)}
@media(max-width:600px){.track img,.track img:hover{height:62px;padding:8px 12px}}

/* quote form: honeypot (hidden from people) and inline error */
.quote .hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;opacity:0}
.quote .form-err{color:#c0392b;font-weight:600;margin:0}
.quote .form-err:empty{display:none}
.quote .cf-turnstile{margin-bottom:10px}
