/* ===== tokens ===== */
:root{--navy:#063b69;--navy2:#075b99;--blue:#087fc1;--sky:#79c9eb;--pale:#e1f4fc;--alt:#e6f3fb;--line:#cfe3ef;
  --sun:#f6c342;--sun2:#ffdc78;--ink:#18364e;--muted:#5b7186;--r:14px;--ease:cubic-bezier(.2,.8,.2,1)}

/* ===== base ===== */
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}
@supports (overflow:clip){html{overflow-x:clip}}
body{margin:0;font:16px/1.65 "Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:#fff;animation:pageIn .6s ease both}
@keyframes pageIn{from{opacity:0}to{opacity:1}}
a{color:inherit;text-decoration:none}
img,video,iframe{max-width:100%}
img{display:block}
ul,ol{list-style:none;margin:0;padding:0}
h1,h2,h3,.h3{line-height:1.2;margin:0 0 .5em;color:#073f70;font-weight:700}
h1{font-size:clamp(2rem,4.6vw,3.4rem);letter-spacing:-.02em}
h2{font-size:clamp(1.6rem,3vw,2.2rem)}
h3,.h3{font-size:1.2rem}
main,.footer,.pagehead{overflow-wrap:break-word}
.sprite{position:absolute;width:0;height:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
.center{text-align:center}
.narrow{max-width:760px;margin-inline:auto}
.narrow-text{max-width:820px}
.btn-row{margin-top:26px}
.skip{position:absolute;left:-999px}
.skip:focus{left:10px;top:10px;background:#fff;padding:8px;z-index:99}
.lead{font-size:1.15rem;max-width:640px;opacity:.92}
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--sky),var(--sun));z-index:100;transition:width .1s}

/* ===== buttons ===== */
.btn{display:inline-block;position:relative;overflow:hidden;background:var(--sun);color:var(--navy);font-weight:700;padding:12px 24px;border-radius:999px;border:0;cursor:pointer;font:inherit;font-weight:700;transition:.2s;box-shadow:0 4px 14px rgba(246,195,66,.35)}
.btn:hover{background:var(--sun2);transform:translateY(-2px)}
.btn:after{content:"";position:absolute;top:0;left:-130%;width:60%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-20deg);transition:left .7s}
.btn:hover:after{left:140%}
.btn-sm{padding:8px 18px}
.btn-lg{padding:15px 32px;font-size:1.05rem}
.btn-ghost{color:var(--navy);border:2px solid var(--navy);background:rgba(255,255,255,.6);box-shadow:none}
.btn-ghost:hover{background:var(--navy);color:#fff}

/* ===== top bar + header ===== */
.topbar{background:#052f54;color:#dbe6f3;font-size:.88rem}
.topbar-in{display:flex;justify-content:space-between;gap:12px;padding-block:8px;align-items:center}
.topbar-right{display:flex;gap:20px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.tb-link:hover{color:#fff;text-decoration:underline}
.tel{font-weight:700;color:var(--sun)}
.header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:3px solid var(--blue);box-shadow:0 5px 20px rgba(5,63,112,.10)}
.header-in{display:flex;align-items:center;justify-content:space-between;height:74px;transition:height .3s}
.header.scrolled .header-in{height:60px}
.header.scrolled{box-shadow:0 6px 24px rgba(13,53,88,.14)}
.logo{display:flex;align-items:center}
.wm{display:flex;flex-direction:column;line-height:1}
.wm b{font-size:1.5rem;font-weight:900;letter-spacing:.01em;color:var(--navy)}
.wm small{font-size:.62rem;font-weight:700;letter-spacing:.24em;color:#ff8a00;margin-top:4px}
.logo-light .wm b{color:#fff}
.nav>ul{display:flex;gap:6px;align-items:center}
.nav a{display:block;padding:10px 14px;font-weight:600;border-radius:8px}
.nav>ul>li>a:not(.btn):hover,.sub a:hover{background:#e4f4fc;color:var(--navy2)}
.nav .btn{padding:8px 18px}
.has-sub{position:relative}
.has-sub>a::after{content:" \25BE";font-size:.75em;opacity:.7}
.sub .has-sub>a::after{content:" \25B8"}
.sub{display:none;position:absolute;top:100%;left:0;min-width:210px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px rgba(18,38,63,.14);padding:8px}
.sub a{font-weight:500}
.sub .sub{top:-9px;left:100%}
.has-sub:hover>.sub,.has-sub:focus-within>.sub{display:block}
.caret,.burger{display:none;background:none;border:0;cursor:pointer;color:inherit}

/* ===== waves ===== */
.section{position:relative;padding:clamp(50px,7vw,90px) 0}
.has-div{padding-top:calc(clamp(50px,7vw,90px) + 46px)}
.has-iw{padding-block:clamp(130px,14vw,170px)}
.band-in{position:relative;z-index:2}
.divider{position:absolute;top:-1px;left:0;right:0;height:70px;overflow:hidden;pointer-events:none;z-index:1}
.divider svg,.wl svg,.iw svg{display:block;width:200%;height:100%}
.waves{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.wl{position:absolute;left:0;right:0;bottom:0;overflow:hidden;transform:translateY(calc(var(--sy,0)*var(--k,0)*1px))}
.drift{animation:drift 32s linear infinite}
.rev .drift{animation-direction:reverse}
@keyframes drift{to{transform:translateX(-50%)}}
.l1{height:min(78%,430px);--k:.22}.l1 svg{animation-duration:48s}
.l2{height:min(62%,330px);--k:.16}.l2 svg{animation-duration:38s}
.l3{height:min(46%,250px);--k:.10}.l3 svg{animation-duration:30s}
.l4{height:min(30%,170px);--k:.05}.l4 svg{animation-duration:36s}
.l5{height:min(13%,84px)}.l5 svg{animation-duration:26s}
.waves.sm .pw1{height:78%}.waves.sm .pw1 svg{animation-duration:40s}
.waves.sm .pw2{height:56%}.waves.sm .pw2 svg{animation-duration:30s}
.waves.sm .pw3{height:64px}.waves.sm .pw3 svg{animation-duration:24s}
.waves.fade{-webkit-mask-image:linear-gradient(180deg,#000 45%,transparent 92%);mask-image:linear-gradient(180deg,#000 45%,transparent 92%)}
.imgwaves{position:absolute;left:0;right:0;height:100px;overflow:hidden;pointer-events:none;z-index:1}
.imgwaves.top{top:-1px}.imgwaves.bottom{bottom:-1px}
.iw{position:absolute;left:0;right:0;overflow:hidden}
.imgwaves.top .iw{top:0}.imgwaves.bottom .iw{bottom:0}
.iw1{height:100%}.iw1 svg{animation-duration:46s}
.iw2{height:74%}.iw2 svg{animation-duration:34s}
.iw3{height:48%}.iw3 svg{animation-duration:26s}

/* ===== hero ===== */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff,#f3f5f7);min-height:clamp(600px,calc(100vh - 114px),760px);display:flex;align-items:center}
.hero-grid{position:relative;z-index:3;display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center;padding-block:40px 170px;width:100%}
.hero h1{color:var(--navy);font-size:clamp(2rem,3.5vw,3rem);margin-bottom:12px;line-height:1.14}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;color:var(--blue);font-weight:800;margin:0 0 14px}
.eyebrow-l{text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;font-weight:800;color:var(--sun2);margin:0 0 10px}
.hero .lead{color:#33506b;opacity:1}
.hero-kind{margin:0 0 10px;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:800;letter-spacing:.06em;min-height:1.6em}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}
.hero-cta .btn-lg{padding:13px 24px;font-size:1rem}
.guarantee{background:#fff;border-left:4px solid var(--sun);padding:10px 16px;font-size:.95rem;border-radius:8px;max-width:540px;margin:0;color:var(--navy);box-shadow:0 8px 24px rgba(13,53,88,.10)}
.hero-art{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;border:5px solid #fff;box-shadow:0 22px 44px rgba(13,53,88,.24);background:var(--pale)}
.hero-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease}
.hero-art img.on{opacity:1}
.w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em}
.w>span{display:inline-block;transform:translateY(115%);animation:maskUp .85s var(--ease) forwards;animation-delay:calc(var(--i)*.07s + .25s)}
@keyframes maskUp{to{transform:none}}
.rot{display:inline-block;color:var(--blue);min-width:1ch}
.rot:after{content:"";display:inline-block;width:3px;height:.9em;background:var(--sun);margin-left:4px;vertical-align:-.08em;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.rise{opacity:0;animation:rise .9s var(--ease) forwards;animation-delay:calc(var(--i)*.12s + .2s)}
@keyframes rise{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
.slide-r{opacity:0;animation:slideR 1.1s var(--ease) .5s forwards}
@keyframes slideR{from{opacity:0;transform:translateX(120px) scale(.92)}to{opacity:1;transform:none}}
@keyframes slideRm{from{opacity:0;transform:translateY(40px) scale(.96)}to{opacity:1;transform:none}}

/* ===== carousels ===== */
.c-viewport{overflow:hidden}
.c-track{display:flex;transition:transform .6s var(--ease)}
.c-item{flex:0 0 100%;min-width:0;padding:0 12px}
.arrow{width:46px;height:46px;border-radius:50%;border:2px solid #fff;background:rgba(255,255,255,.12);color:#fff;font-size:1.25rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.2s;flex:none;padding:0}
.arrow:hover{background:#fff;color:var(--blue)}
.c-nav{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:14px}
.c-dots{display:flex;gap:8px}
.c-dots button{width:11px;height:11px;border-radius:50%;border:0;background:rgba(255,255,255,.45);cursor:pointer;padding:0}
.c-dots button.on{background:var(--sun);transform:scale(1.25)}
.dark-nav .arrow{border-color:var(--blue);color:var(--blue);background:#fff}
.dark-nav .arrow:hover{background:var(--blue);color:#fff}
.dark-nav .c-dots button{background:var(--line)}
.dark-nav .c-dots button.on{background:var(--blue)}
.static .arrow,.static .c-nav{display:none}

/* ===== logo band ===== */
.trust{position:relative;background:linear-gradient(180deg,#063b69,#075b99);color:#fff;padding:26px 0 48px}
.logos-car{position:relative;padding:0 66px;max-width:1180px;margin:0 auto}
.logos-car.static{padding:0 22px}
.logos-car .arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3}
.logos-car .arrow.l{left:8px}.logos-car .arrow.r{right:8px}
.logo-tile{display:grid;place-items:center;height:104px;background:#fff;border-radius:14px;padding:12px 20px;box-shadow:0 8px 22px rgba(0,0,0,.14);transition:.25s}
.logo-tile:hover{transform:translateY(-4px)}
.logo-tile img{max-height:76px;max-width:100%;width:auto;object-fit:contain}

/* ===== cards ===== */
.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:34px}
.wrap.cards3{margin-top:0}
.card{display:block;background:#fff;border:1px solid #c9e2f1;border-radius:var(--r);padding:28px;box-shadow:0 10px 28px rgba(5,63,112,.09);transition:.25s}
a.card:hover{transform:translateY(-6px);border-color:var(--blue);box-shadow:0 20px 42px rgba(5,63,112,.18)}
.card.solution{position:relative;padding:0 0 20px;overflow:hidden}
.card-img{height:230px;overflow:hidden;position:relative;margin-bottom:18px}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card-img:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(5,63,112,.5))}
.solution:hover .card-img img{transform:scale(1.05)}
.solution h3{margin:0 56px 0 26px;font-size:1.28rem}
.more{position:absolute;right:24px;bottom:16px;color:var(--blue);font-weight:700;font-size:1.2rem;transition:transform .25s}
.solution:hover .more{transform:translateX(5px)}
h2.center:after{content:"";display:block;width:64px;height:4px;margin:14px auto 0;background:linear-gradient(90deg,var(--blue),var(--sun));border-radius:4px}

/* ===== numbered items ===== */
.alt{background:var(--alt)}
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:36px}
.steps li{background:linear-gradient(145deg,#fff,#eef8fd);border-radius:var(--r);padding:28px;border:1px solid #c8e2f1;box-shadow:0 10px 26px rgba(5,63,112,.08);transition:transform .25s,box-shadow .25s,border-color .25s}
.steps li:hover{transform:translateY(-7px);box-shadow:0 18px 35px rgba(5,63,112,.17);border-color:var(--blue)}
.steps h3,.steps .h3{margin-top:12px}
.steps p{margin:0;color:var(--muted);font-size:.95rem}
.num{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--navy));color:#fff;font-weight:800;transition:.3s;box-shadow:0 5px 12px rgba(8,127,193,.24)}
.steps li:hover .num{background:var(--sun);color:var(--navy);transform:scale(1.15) rotate(8deg)}

/* ===== blue bands ===== */
.vidband{background:linear-gradient(180deg,#06345b 0%,#075b99 55%,#087fc1 100%);color:#fff;overflow:hidden}
.vidband h2,.banner h2,.banner p,.reviews-blue h2,.contact-blue h2,.contact-blue p,.dark h2{color:#fff}
.vidband .lead,.banner .lead{margin-inline:auto}
.vid-wrap{max-width:900px;margin:30px auto 0;border-radius:16px;overflow:hidden;aspect-ratio:4/3;max-height:560px;border:4px solid rgba(255,255,255,.35);box-shadow:0 24px 54px rgba(0,0,0,.4);background:#06345b}
.vid-wrap .c-viewport,.vid-wrap .c-track{height:100%}
.vid-wrap .c-item{padding:0;height:100%}
.vid-wrap img{width:100%;height:100%;object-fit:cover}
.about-car .vid-wrap{margin-top:0;border-color:var(--line);box-shadow:0 18px 44px rgba(18,38,63,.2)}
.show-car,.about-car{max-width:900px;margin-inline:auto}
.banner{background:linear-gradient(180deg,#075b99,#087fc1);color:#fff;overflow:hidden}
.banner-in{position:relative;z-index:2;max-width:880px}
.reviews-blue{background:linear-gradient(180deg,#075b99 0%,#087fc1 50%,#06456f 100%);color:#fff;overflow:hidden}
.rev-car{max-width:1100px;margin:34px auto 0}
.rev-car .c-viewport{padding:8px 0 18px}
.rev-car .c-track{align-items:stretch}
.review-card{height:100%;display:flex;flex-direction:column;margin:0;padding:30px;color:var(--ink);background:linear-gradient(145deg,#fff,#f0f9fe);border:1px solid #c9e2f1;border-top:5px solid var(--sun);border-radius:16px;box-shadow:0 14px 34px rgba(5,63,112,.12);transition:transform .25s,box-shadow .25s}
.review-card:hover{transform:translateY(-5px)}
.review-card p{margin:0 0 14px}
.review-card cite{margin-top:auto;color:var(--navy2);font-style:normal;font-weight:700}
.contact-blue{background:linear-gradient(180deg,#06345b 0%,#075b99 55%,#087fc1 100%);color:#eaf7ff}
.contact-blue.section{overflow:hidden}
.big-tel{font-size:1.8rem;font-weight:800}
.ico{width:1em;height:1em;vertical-align:-.12em;color:var(--sun)}
.mail{text-decoration:underline}

/* ===== dark story section ===== */
.dark{background:linear-gradient(180deg,#06345b 0%,#063b69 100%);color:#eaf7ff;overflow:hidden}
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.split>*{min-width:0}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}
.stats div{background:rgba(255,255,255,.12);border-radius:var(--r);padding:20px 10px;text-align:center}
.stats b{display:block;font-size:clamp(1.5rem,2.6vw,2.2rem);color:var(--sun);line-height:1.1}
.stats span{font-size:.88rem;opacity:.9}
.feature{margin:0;border-radius:var(--r);overflow:hidden;border:4px solid rgba(255,255,255,.85);box-shadow:0 18px 40px rgba(0,0,0,.28);animation:floatcard 5.5s ease-in-out infinite}
.feature img{width:100%;height:100%;object-fit:cover}
@keyframes floatcard{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-14px) rotate(1deg)}}
.photo{margin:0;border-radius:var(--r);overflow:hidden;box-shadow:0 18px 40px rgba(5,63,112,.2)}
.photo img{width:100%;height:auto}
.article p{font-size:1.05rem}

/* ===== team ===== */
.avatars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 14px;justify-items:center}
.avatar-box{text-align:center}
.avatar-box b{display:block;margin-top:8px;font-size:.95rem;color:#073f70}
.avatar-box small{color:var(--muted)}
.avatar{display:grid;place-items:center;width:84px;height:84px;margin-inline:auto;border-radius:50%;color:#fff;font-weight:800;font-size:1.5rem;border:4px solid #fff;box-shadow:0 6px 16px rgba(0,0,0,.15);background:var(--navy2)}
.avatar-box:nth-child(2n) .avatar,.person:nth-child(2n) .avatar{background:var(--blue)}
.avatar-box:nth-child(3n) .avatar,.person:nth-child(3n) .avatar{background:var(--navy)}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:34px}
.person{background:#fff;border:1px solid #c9e2f1;border-radius:var(--r);padding:24px 14px;text-align:center;box-shadow:0 10px 28px rgba(5,63,112,.09);overflow-wrap:anywhere}
.person h3{margin:12px 0 2px;font-size:1.1rem}
.person p{margin:0;font-size:.93rem}
.person a:hover{color:var(--blue);text-decoration:underline}
.role{color:var(--muted);margin-bottom:8px!important}

/* ===== browse cards ===== */
.videos .vid{display:block;height:100%;background:#fff;border:1px solid #c9e2f1;border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(5,63,112,.10);transition:transform .25s,box-shadow .25s}
.videos .vid:hover{transform:translateY(-7px);box-shadow:0 20px 40px rgba(5,63,112,.19)}
.vthumb{height:220px;overflow:hidden;background:#dceff9}
.vthumb img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.videos .vid:hover .vthumb img{transform:scale(1.06)}
.videos h3{padding:14px 22px 6px;font-size:1.1rem}

/* ===== badges ===== */
.awards-big{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:36px 60px}
.awards-big figure{margin:0;flex:0 1 270px;text-align:center}
.awards-big img{width:100%;max-width:270px;height:auto;margin-inline:auto;transition:transform .3s}
.awards-big figure:hover img{transform:scale(1.06)}
.awards-big figcaption{margin-top:8px;font-weight:700;font-size:.9rem;color:var(--muted)}
.awards-big.small{justify-content:flex-start;gap:16px;margin-top:18px}
.awards-big.small figure{flex:0 1 170px}

/* ===== photo band ===== */
.photo-band{background:var(--photo) center/cover fixed,#0d3558;color:#fff;overflow:hidden}
.photo-band:before{content:"";position:absolute;inset:0;background:rgba(6,52,91,.68)}
.photo-band>.wrap{position:relative;z-index:2}
.photo-band h2{color:#fff}
.big-quote{margin:18px auto 28px;font-size:clamp(1.15rem,2.2vw,1.55rem);line-height:1.5;font-weight:600;font-style:italic;max-width:780px}

/* ===== areas + map ===== */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chips span{background:var(--alt);padding:6px 14px;border-radius:999px;font-size:.9rem;font-weight:600;border:1px solid var(--line)}
.map{height:320px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--pale)}
.map iframe{display:block;width:100%;height:100%;border:0}
.contact-lines{margin:18px 0 0}
.contact-lines a:hover{color:var(--blue);text-decoration:underline}

/* ===== forms ===== */
.formcard{padding:30px;background:#fff;color:var(--ink)}
.form label{display:block;font-weight:600;font-size:.9rem;margin-bottom:14px;color:var(--navy)}
.form input,.form textarea{display:block;width:100%;margin-top:6px;padding:12px 14px;border:1.5px solid #cbd5e1;border-radius:10px;font:inherit;background:#fff}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(8,127,193,.2)}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.hp{position:absolute;left:-9999px}
.errorlist{color:#c0262d;margin:4px 0 0;font-size:.82rem}
.flash{background:#dcfce7;border:1px solid #86efac;color:#166534;padding:14px 18px;border-radius:10px;margin-top:16px}

/* ===== inner pages ===== */
.pagehead{position:relative;overflow:hidden;padding:60px 0 120px;background:linear-gradient(120deg,#06345b,#087fc1);color:#fff}
.pagehead h1{color:#fff;margin-bottom:8px}
.pagehead .lead{margin:0}
.pg-in{position:relative;z-index:2}
.crumbs{font-size:.85rem;opacity:.8;margin:0 0 10px}
.crumbs a:hover{text-decoration:underline}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}
.filters button{padding:8px 18px;border-radius:99px;border:1.5px solid var(--line);font:inherit;font-weight:600;background:#fff;color:inherit;cursor:pointer;transition:.2s}
.filters button.on,.filters button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gal-item{margin:0;border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:0 8px 22px rgba(5,63,112,.12)}
.gal-item[hidden]{display:none}
.gal-item a{display:block;overflow:hidden;aspect-ratio:4/3}
.gal-item img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.gal-item:hover img{transform:scale(1.06)}
.gal-item figcaption{padding:10px 14px;text-align:center;font-weight:700;color:var(--navy)}
.lb{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:60px 70px;background:rgba(4,30,52,.93)}
.lb.open{display:flex}
.lb img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.lb .arrow{position:absolute;top:50%;transform:translateY(-50%)}
.lb-prev{left:12px}.lb-next{right:12px}
.lb .lb-close{top:12px;right:12px;transform:none;position:absolute}
.sitemap{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:28px}
.sitemap li{margin-bottom:6px}
.sitemap a:hover{text-decoration:underline}
.searchform{display:flex;gap:10px;margin-bottom:26px}
.searchform input{flex:1;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit}
.results li{padding:12px 0;border-bottom:1px solid var(--line)}
.results p{margin:4px 0 0;color:var(--muted)}

/* ===== footer ===== */
.footer{position:relative;background:#052b4b;color:#b9c7da;padding-top:110px}
.footer .divider{color:#fff}
.end-blue .footer .divider{color:#087fc1}
.end-alt .footer .divider{color:#e6f3fb}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:34px}
.footer-grid>*{min-width:0}
.footer .footer-h{color:#fff;font-size:.95rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin:18px 0 8px}
.footer .footer-grid>div>.footer-h:first-child{margin-top:0}
.footer p{margin-top:0}
.links li{margin-bottom:6px}
.links a:hover{color:var(--sun)}
.maplink{color:var(--sun);font-weight:600;overflow-wrap:anywhere}
.maplink:hover{text-decoration:underline}
.social{display:flex;gap:10px;flex-wrap:wrap}
.social a{width:38px;height:38px;border-radius:50%;background:#16263d;display:grid;place-items:center;font-weight:800;color:#fff;font-size:.95rem;transition:.2s}
.social svg{width:18px;height:18px;fill:#fff}
.social a:hover{background:var(--sun);color:#0b1626;transform:translateY(-2px)}
.social a:hover svg{fill:#0b1626}
.social.sm{gap:6px}
.social.sm a{width:26px;height:26px;font-size:.72rem;background:rgba(255,255,255,.12)}
.social.sm svg{width:14px;height:14px}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:40px;padding-block:18px;border-top:1px solid #1c2e48;font-size:.85rem;opacity:.85}
.legal-links{display:flex;flex-wrap:wrap;gap:18px}
.legal a:hover{color:var(--sun);text-decoration:underline}
.fab{display:none;position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;width:56px;height:56px;border-radius:50%;background:var(--sun);align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 10px 24px rgba(0,0,0,.25)}
.fab .ico{color:var(--navy)}

/* ===== scroll reveal (JS adds data-anim / .in) ===== */
.js [data-anim]{opacity:0;transition:opacity .85s var(--ease) var(--d,0ms),transform .85s var(--ease) var(--d,0ms)}
.js [data-anim=up]{transform:translateY(46px)}
.js [data-anim=left]{transform:translateX(-80px)}
.js [data-anim=right]{transform:translateX(80px)}
.js [data-anim=zoom]{transform:scale(.8)}
.js [data-anim].in{opacity:1;transform:none}

/* ===== balance short rows ===== */
@media(min-width:1101px){.gal{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(min-width:601px){.cards3:has(>:last-child:nth-child(2)){grid-template-columns:repeat(2,minmax(0,370px));justify-content:center}}

/* ===== small desktops ===== */
@media(min-width:981px) and (max-width:1180px){
  .nav>ul{gap:0}
  .nav a{padding:10px 9px;font-size:.93rem}
  .wm b{font-size:1.32rem}
}

/* ===== tablets and phones ===== */
@media(max-width:980px){
  .split,.footer-grid,.hero-grid{grid-template-columns:minmax(0,1fr)}
  .cards3,.steps,.gal{grid-template-columns:repeat(2,minmax(0,1fr))}
  .split{gap:30px}
  .hero-art{width:100%;max-width:520px;margin:0 auto}
  .js [data-anim=left],.js [data-anim=right]{transform:translateY(40px)}
  .slide-r{animation-name:slideRm}
  .fab{display:flex}
  .nav-open .fab{opacity:0;pointer-events:none}
  .legal{padding-bottom:88px}
  .topbar-right .tb-link{display:none}
  .photo-band{background-attachment:scroll}
  /* mobile menu */
  .burger{display:grid;place-items:center;width:46px;height:46px;padding:0;border-radius:10px;color:var(--navy);font-size:1.6rem;line-height:1}
  .burger:active{background:var(--alt)}
  .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:10px 22px 20px;max-height:calc(100vh - 74px);max-height:calc(100dvh - 74px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 18px 30px rgba(5,63,112,.14)}
  .nav-open .nav{display:block}
  .nav>ul{flex-direction:column;align-items:stretch}
  .nav a{padding:12px 14px}
  .nav .btn{text-align:center;margin-top:8px}
  .has-sub{display:flex;flex-wrap:wrap;align-items:center}
  .has-sub>a{flex:1}
  .has-sub>a::after,.sub .has-sub>a::after{content:""}
  .caret{display:grid;place-items:center;min-width:46px;min-height:46px;padding:0;font-size:1rem}
  .sub,.sub .sub{position:static;box-shadow:none;border:0;padding:0 0 4px 14px;min-width:0}
  .has-sub>.sub,.has-sub:hover>.sub,.has-sub:focus-within>.sub{display:none;flex-basis:100%}
  .has-sub.open>.sub{display:block}
}
@media(min-width:601px) and (max-width:980px){
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ===== phones ===== */
@media(max-width:700px){.imgwaves{height:64px}}
@media(max-width:600px){
  .wrap{padding:0 18px}
  .section{padding:44px 0}
  .has-div{padding-top:84px}
  .has-iw{padding-block:100px}
  .cards3,.steps,.row2{grid-template-columns:minmax(0,1fr)}
  .gal{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .topbar-in{flex-direction:column;gap:2px;padding-block:6px}
  .topbar .promo,.social.sm{display:none}
  .topbar-right{justify-content:center;width:100%}
  .topbar .tel{font-size:.95rem}
  .header-in{height:68px}
  .wm b{font-size:1.28rem}
  .wm small{font-size:.56rem;letter-spacing:.2em}
  .hero-grid{padding-block:28px 130px;gap:22px}
  .hero .lead,.lead{font-size:1.05rem}
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn,.btn{text-align:center;max-width:100%}
  .btn-lg{padding:14px 22px;font-size:1rem}
  .guarantee{max-width:none}
  .pagehead{padding:42px 0 96px}
  h2{font-size:clamp(1.5rem,6.6vw,1.9rem)}
  .formcard{padding:22px}
  .card-img{height:210px}
  .big-tel{font-size:clamp(1.35rem,6.6vw,1.8rem);overflow-wrap:anywhere}
  .stats{grid-template-columns:minmax(0,1fr)}
  .map{height:260px}
  .logos-car{padding:0 46px}
  .logos-car .arrow.l{left:2px}.logos-car .arrow.r{right:2px}
  .arrow{width:38px;height:38px;font-size:1.05rem}
  .c-item{padding:0 6px}
  .logo-tile{height:86px;padding:10px 12px}
  .logo-tile img{max-height:60px}
  .review-card{padding:24px}
  .vid-wrap{margin-top:24px;border-radius:12px}
  .awards-big{gap:22px 14px}
  .awards-big figure{flex:0 1 calc(50% - 8px)}
  .lb{padding:56px 10px}
  .lb .arrow{top:auto;bottom:8px;transform:none}
  .lb-prev{left:calc(50% - 50px)}.lb-next{right:calc(50% - 50px)}
  .legal{flex-direction:column;gap:14px}
}
@media(max-width:360px){
  .wrap{padding:0 14px}
  .wm b{font-size:1.14rem}
  .hero h1{font-size:1.75rem}
  .eyebrow{font-size:.74rem;letter-spacing:.1em}
  .avatar{width:68px;height:68px;font-size:1.25rem}
  .formcard{padding:18px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation:none!important;transition:none!important}
  .js [data-anim],.rise,.slide-r,.w>span{opacity:1!important;transform:none!important}
}
