/* KRATOS Consultants website styles */
/* Palette: black, dark navy, white only. Layout: Bouncer template kit, section order kept 1:1 (top bar, header, hero + 3 boxes, counter/about, video, offers, why choose us, callout, skills, team, FAQ, testimonials, 24/7 CTA, footer). Single deliberate look. */
:root{
  --ink:#0a1a33;--ink-2:#10244a;--ink-3:#000000;   /* dark navy, lighter navy, black */
  --paper:#ffffff;--paper-2:#f2f4f8;
  --gold:#0a1a33;--gold-2:#0a1a33;                  /* accent = navy on light surfaces */
  --on-accent:#ffffff;
  --text:#0b1220;--muted:#4a5568;--muted-d:#b8c2d3;
  --line:#dfe4ec;--line-d:#22375c;
  --display:"Century Gothic","CenturyGothic","Didact Gothic","AppleGothic",Futura,sans-serif;
  --body:"Century Gothic","CenturyGothic","Didact Gothic","AppleGothic",Futura,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
/* on dark surfaces the accent flips to white */
.topbar,header.nav,.hero,.band.dark,.video .txt,.cta,.pagehead,footer,.inq,.form,.tst article,.boxes article:nth-child(2),.counter{--gold:#ffffff;--gold-2:#ffffff;--on-accent:#0a1a33}
body{margin:0;background:var(--paper);color:var(--text);font:400 15.5px/1.7 var(--body)}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;line-height:1.15;margin:0;text-wrap:balance;font-weight:700}
p{margin:0}
.wrap{max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 13px/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--gold)}
.h2{font-size:clamp(24px,3.2vw,40px)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;font:600 14px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;border:2px solid var(--gold);background:var(--gold);color:var(--on-accent);cursor:pointer;transition:background .2s,color .2s}
.btn:hover{background:transparent;color:var(--gold)}
.btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.btn.ghost:hover{background:#fff;color:var(--ink)}
.btn:focus-visible,a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #4d7cc7;outline-offset:3px}
.tbd{color:var(--gold);opacity:.75;font-style:italic}
.stack{display:grid;gap:16px}

/* top bar + header (Bouncer: two info blocks, logo, menu, socials) */
.topbar{background:var(--ink-3);color:var(--muted-d);font-size:14px;border-bottom:1px solid var(--line-d)}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:8px 32px;align-items:center;padding-block:12px}
.topbar .info{display:flex;align-items:center;gap:10px}
.topbar .info svg{width:30px;height:30px;color:var(--gold)}
.topbar .info small{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.topbar .info b{color:#fff;font-weight:600}
.topbar .soc{margin-left:auto;display:flex;gap:14px;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.topbar .soc a:hover{color:var(--gold)}
header.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--ink);border-bottom:1px solid var(--line-d)}
header.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:16px}
.logo img{display:block;height:auto;max-width:60vw;width:170px}
footer .logo img{width:220px}
.logo{display:flex;align-items:center;gap:10px;color:#fff;font:700 19px/1 var(--display);letter-spacing:.06em}
.logo small{display:block;font:500 10px/1 var(--body);letter-spacing:.3em;color:var(--gold);margin-top:3px}
nav.menu{display:flex;gap:2px;flex-wrap:wrap;align-items:center}
nav.menu > a,nav.menu .dd > a{color:#dbe2ee;font:600 13px/1 var(--body);letter-spacing:.05em;text-transform:uppercase;padding:12px 9px;display:block;white-space:nowrap}
nav.menu a.on,nav.menu a:hover{color:var(--gold)}
.dd{position:relative}
.dd .sub{position:absolute;top:100%;left:0;min-width:260px;background:var(--paper);box-shadow:0 14px 30px rgba(0,0,0,.25);border-top:3px solid #fff;display:none;padding:8px 0}
.dd:hover .sub,.dd:focus-within .sub{display:block}
.dd .sub a{display:block;padding:9px 18px;color:var(--text);--gold:#0a1a33;font-size:14px;font-weight:500}
.dd .sub a:hover{color:var(--ink);background:var(--paper-2)}
.hdr-cta{white-space:nowrap}
@media(max-width:1260px){.hdr-cta{display:none}}
@media(max-width:1060px){header.nav .wrap{flex-wrap:wrap}}
@media(max-width:760px){.topbar .soc{margin-left:0}.dd .sub{position:static;box-shadow:none}}

.page[hidden]{display:none!important}

/* photo slots (template images are replaced in Elementor) */
.ph{position:relative;max-width:100%;background:linear-gradient(160deg,#1d3a6b,#000000);display:flex;align-items:flex-end;padding:18px;color:#8fa0bd;font-size:11px;letter-spacing:.12em;text-transform:uppercase}

/* hero */
.hero{background:linear-gradient(100deg,rgba(0,0,0,.92) 0%,rgba(10,26,51,.9) 50%,rgba(10,26,51,.6) 100%),repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 2px,transparent 2px 14px),radial-gradient(circle at 80% 30%,#1d3a6b,#0a1a33 70%);color:#fff}
.hero .wrap{padding-block:100px 160px;display:grid;gap:22px}
.hero h1{font-size:clamp(15px,3.8vw,52px);max-width:none;letter-spacing:0}
.hero h1 .l{display:block;white-space:nowrap}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p{color:var(--muted-d);max-width:62ch;font-size:17px}
.ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}

/* 3 boxes overlapping hero */
.boxes{position:relative;margin-top:-100px;z-index:2}
.boxes .grid{display:grid;grid-template-columns:repeat(3,1fr);box-shadow:0 18px 40px rgba(0,0,0,.18)}
.boxes article{background:var(--paper);padding:34px 30px;display:grid;gap:12px;align-content:start;border-right:1px solid var(--line)}
.boxes article:nth-child(2){background:var(--ink);color:#fff}
.boxes article:nth-child(2) p{color:var(--muted-d)}
.boxes article:nth-child(2) .ico,.boxes article:nth-child(2) .more{color:#fff}
.boxes article:last-child{border-right:0}
.boxes h3{font-size:20px}
.boxes p{color:var(--muted);font-size:15px}
.ico{width:46px;height:46px;color:var(--gold);flex:none}
.more{font:600 13px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);justify-self:start}
@media(max-width:860px){.boxes .grid{grid-template-columns:1fr}.boxes article{border-right:0;border-bottom:1px solid var(--line)}}

section.band{padding-block:96px}
.band.grey{background:var(--paper-2)}
.band.dark{background:var(--ink);color:#fff}
.band.dark p{color:var(--muted-d)}
.head{display:grid;gap:14px;margin-bottom:46px;max-width:720px}
.head.center{margin-inline:auto;text-align:center;justify-items:center}
.head p{color:var(--muted)}

.split{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center}
.split > *{min-width:0}
@media(max-width:900px){.split{grid-template-columns:1fr}}
.framed{position:relative;z-index:0}
.framed .ph{aspect-ratio:4/4.4}
.framed::after{content:"";position:absolute;inset:18px -18px -18px 18px;border:3px solid var(--ink);z-index:-1}
.counter{position:absolute;top:28px;right:-14px;background:var(--ink-3);color:#fff;border:1px solid var(--line-d);padding:20px 24px;display:grid;line-height:1;z-index:1}
.counter b{font:700 35px/1 var(--display)}
.counter span{font:600 12px/1.3 var(--body);letter-spacing:.12em;text-transform:uppercase;margin-top:6px;max-width:13ch}
.mv{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.mv div{border-left:3px solid var(--gold);padding-left:16px}
.mv h4{font-size:18px;margin-bottom:6px}
.mv p{color:var(--muted);font-size:15px}
@media(max-width:560px){.mv{grid-template-columns:1fr}}
.values{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.values li{font:600 13px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;padding:9px 12px;background:var(--paper-2);border:1px solid var(--line)}

/* video slot */
.video{display:grid;grid-template-columns:1.2fr 1fr;align-items:stretch}
.video > *{min-width:0}
.video .ph{min-height:420px;justify-content:center;align-items:center;flex-direction:column;gap:16px}
.play{width:86px;height:86px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 14px rgba(255,255,255,.18)}
.video .txt{background:var(--ink-3);color:#fff;padding:56px 48px;display:grid;gap:18px;align-content:center}
.video .txt p{color:var(--muted-d)}
@media(max-width:900px){.video{grid-template-columns:1fr}.video .ph{min-height:260px}.video .txt{padding:40px 24px}}

/* offer cards */
.svc{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:1020px){.svc{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.svc{grid-template-columns:1fr}}
.svc article{background:#fff;padding:32px 26px;display:grid;gap:14px;align-content:start;border-bottom:3px solid transparent;transition:border-color .2s,transform .2s}
.band:not(.grey) .svc article{background:var(--paper-2)}
.svc article:hover{border-color:var(--gold);transform:translateY(-3px)}
.svc h3{font-size:18px}
.svc p{color:var(--muted);font-size:15px}
.center-cta{display:flex;justify-content:center;margin-top:46px}

/* why choose us: two images + counter */
.duo{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.duo .ph:first-child{aspect-ratio:3/4.4}
.duo .ph:last-child{aspect-ratio:3/4.4;margin-top:60px}
.duo .counter{top:auto;bottom:-20px;right:auto;left:50%;transform:translateX(-50%)}
.checks{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:20px 28px}
@media(max-width:620px){.checks{grid-template-columns:1fr}}
.checks li{display:grid;grid-template-columns:28px 1fr;gap:12px}
.checks li svg{width:26px;height:26px;color:var(--gold);margin-top:2px}
.checks h4{font-size:16px;color:#fff;margin-bottom:4px}
.band:not(.dark) .checks h4{color:var(--text)}
.checks p{font-size:14.5px}

/* callout / ticker */
.ticker{background:var(--ink-3);color:#fff;overflow:hidden;padding-block:20px}
.ticker .lead{font:700 14px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}
.ticker .track{display:flex;gap:44px;width:max-content;animation:tick 40s linear infinite}
.ticker span{font:700 19px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;display:flex;align-items:center;gap:44px}
.ticker span::after{content:"";width:8px;height:8px;background:#fff;transform:rotate(45deg)}
@keyframes tick{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker .track{animation:none;flex-wrap:wrap;width:auto}}

/* skills slot (rows, no invented percentages) */
.rows{display:grid;gap:18px}
.rows div{display:grid;gap:8px}
.rows b{font:600 15px/1 var(--body);letter-spacing:.08em;text-transform:uppercase}
.rows i{display:block;height:6px;background:linear-gradient(90deg,var(--ink-3),var(--ink-2))}
.rows span{color:var(--muted);font-size:14.5px}

/* team slot */
.team{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:1020px){.team{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.team{grid-template-columns:1fr}}
.team article{background:#fff;display:grid}
.team .ph{aspect-ratio:3/3.6}
.team .meta{padding:20px;text-align:center;border-bottom:3px solid var(--gold)}
.team h3{font-size:18px}
.team small{color:var(--muted);font-size:14px}

/* faq */
.faq{display:grid;grid-template-columns:1fr 1.4fr;gap:50px;align-items:start}
.faq > *{min-width:0}
@media(max-width:900px){.faq{grid-template-columns:1fr}}
.inq{background:var(--ink-3);color:#fff;padding:34px;display:grid;gap:14px;margin-top:26px}
.inq p{color:var(--muted-d)}
details{background:#fff;border:1px solid var(--line);margin-bottom:12px}
summary{cursor:pointer;list-style:none;padding:18px 22px;font:600 17px/1.35 var(--body);display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--gold);font:700 19px/1 var(--display)}
details[open] summary::after{content:"–"}
details[open] summary{color:var(--gold)}
details p{padding:0 22px 20px;color:var(--muted)}

/* testimonials slot */
.tst{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
@media(max-width:1000px){.tst{grid-template-columns:1fr}}
.tst .qm{width:38px;height:28px;color:#4d7cc7}
.tst article{background:var(--ink-2);padding:32px;display:flex;flex-direction:column;gap:18px;height:100%;border-left:3px solid var(--gold)}
.tst article q{flex:1}
.tst .who{margin-top:auto;padding-top:18px;border-top:1px solid var(--line-d)}
.tst q{font-size:15px;line-height:1.7;color:#e6ebf3;quotes:none}
.tst .who{display:flex;gap:14px;align-items:center}
.tst .av{width:52px;height:52px;border-radius:50%;background:#1d3a6b;flex:none;display:grid;place-items:center;color:#fff}
.tst .who b{display:block;color:#fff;font-family:var(--display);font-size:16px;text-transform:uppercase}
.tst .who small{color:var(--muted-d)}

/* 24/7 CTA */
.cta{background:linear-gradient(90deg,rgba(0,0,0,.95),rgba(10,26,51,.92)),repeating-linear-gradient(45deg,rgba(255,255,255,.04) 0 2px,transparent 2px 16px),#0a1a33;color:#fff}
.cta .wrap{display:grid;grid-template-columns:1fr 1.5fr auto;gap:40px;align-items:center;padding-block:80px}
.cta .wrap > *{min-width:0}
@media(max-width:960px){.cta .wrap{grid-template-columns:1fr}}
.cta .call{display:flex;gap:14px;align-items:center}
.cta .call svg{width:54px;height:54px;color:var(--gold)}
.cta .call small{display:block;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.cta .call strong{font:700 21px/1.1 var(--display)}
.cta h2{font-size:clamp(22px,2.8vw,32px);margin-bottom:12px}
.cta p{color:var(--muted-d)}

/* footer */
footer{background:var(--ink-3);color:var(--muted-d);font-size:15px}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1.1fr 1.1fr;gap:36px;padding-block:70px 40px}
footer .cols > *{min-width:0}
@media(max-width:900px){footer .cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){footer .cols{grid-template-columns:1fr}}
footer h4{color:#fff;font-size:20px;margin-bottom:16px}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
footer a:hover{color:var(--gold)}
footer .base{border-top:1px solid var(--line-d);padding-block:18px;font-size:13px;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}

/* inner banner */
.pagehead{background:linear-gradient(90deg,rgba(0,0,0,.95),rgba(10,26,51,.85)),repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 2px,transparent 2px 14px),#0a1a33;color:#fff}
.pagehead .wrap{padding-block:84px;display:grid;gap:12px;justify-items:center;text-align:center}
.pagehead h1{font-size:clamp(28px,4.6vw,52px)}
.crumb{font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-d)}
.crumb a:hover{color:var(--gold)}
.crumb b{color:var(--gold);font-weight:600}
.prose{display:grid;gap:16px;color:var(--muted)}
.prose p{max-width:68ch}
.band.dark .prose{color:var(--muted-d)}

/* single service */
.ss{display:grid;grid-template-columns:330px 1fr;gap:48px;align-items:start}
.ss > *{min-width:0}
@media(max-width:900px){.ss{grid-template-columns:1fr}}
.side{display:grid;gap:26px}
.side .list{background:var(--paper-2);padding:26px}
.side .list h4{font-size:18px;margin-bottom:14px}
.side .list a{display:flex;justify-content:space-between;gap:10px;padding:13px 16px;background:#fff;margin-bottom:8px;font-weight:600;font-size:15px;border-left:3px solid transparent}
.side .list a::after{content:"›";color:var(--gold);font-size:20px;line-height:1}
.side .list a.on,.side .list a:hover{background:var(--ink);color:#fff;border-color:var(--ink-3)}
.side .list a.on::after,.side .list a:hover::after{color:#fff}
.form{background:var(--ink);color:#fff;padding:28px;display:grid;gap:12px}
.form h4{font-size:18px}
.form p{color:var(--muted-d);font-size:14.5px}
label{font-size:15px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
input,textarea,select{width:100%;font:inherit;padding:12px 14px;border:1px solid var(--line);background:#fff;color:var(--text)}
.form input,.form textarea{border-color:var(--line-d);background:var(--ink-2);color:#fff}
textarea{min-height:110px;resize:vertical}
.ok{font-size:15px;color:var(--gold)}
.ss .main{display:grid;gap:22px}
.ss .main .ph{aspect-ratio:16/8}
.ss h2{font-size:clamp(24px,3.2vw,36px)}
.inc{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
@media(max-width:620px){.inc{grid-template-columns:1fr}}
.inc li{display:grid;grid-template-columns:26px 1fr;gap:10px;font-weight:500;background:var(--paper-2);padding:14px 16px}
.inc li svg{width:22px;height:22px;color:var(--gold);margin-top:1px}
.note{font-size:15px;letter-spacing:.1em;text-transform:uppercase;background:var(--ink);color:#fff;padding:8px 12px;justify-self:start}

/* contact */
.cinfo{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:56px}
@media(max-width:820px){.cinfo{grid-template-columns:1fr}}
.cinfo article{background:var(--paper-2);padding:30px;display:grid;gap:10px;justify-items:center;text-align:center}
.cinfo h3{font-size:18px}
.cform{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cform .full{grid-column:1/-1}
.cform > div{display:grid;gap:6px;min-width:0}
@media(max-width:620px){.cform{grid-template-columns:1fr}}

/* justified body text */
p:not(.crumb):not(.lead):not(.ok),.tst q,.rows span,.checks p{text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto}
.head.center p,.cinfo p,.pagehead p,.topbar p{text-align:center}

/* live news */
.news{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.news > *{min-width:0}
@media(max-width:860px){.news{grid-template-columns:1fr}}
.feed{background:var(--paper-2);padding:28px;display:grid;gap:10px;align-content:start;border-top:3px solid var(--ink)}
.feed-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.feed-h h3{font-size:22px}
.live{display:inline-flex;align-items:center;gap:8px;font:600 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:#fff;padding:7px 10px}
.live i{width:8px;height:8px;border-radius:50%;background:#fff;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.live i{animation:none}}
.src{display:grid;grid-template-columns:1fr auto;gap:2px 12px;background:#fff;padding:16px 18px;border-left:3px solid transparent;transition:border-color .2s}
.src:hover{border-color:var(--ink)}
.src b{font:700 16px/1.1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.src span{grid-column:1;color:var(--muted);font-size:14px}
.src em{grid-row:1/3;grid-column:2;align-self:center;font-style:normal;font:600 13px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.feed-note{font-size:13.5px;color:var(--muted);margin-top:6px}

.item{display:grid;gap:6px;background:#fff;padding:16px 18px;border-left:3px solid transparent;transition:border-color .2s}
.item:hover{border-color:var(--ink)}
.item .meta{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.item .meta b{color:var(--ink);font-weight:600}
.item strong{font-weight:600;font-size:16px;line-height:1.4;color:var(--text)}
.item:hover strong{text-decoration:underline;text-underline-offset:3px}
.more-src{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:8px;font-size:14px}
.more-src span{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:12px}
.more-src a{font-weight:600;color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* ===== hover & motion ===== */
:root{--ease:cubic-bezier(.2,.7,.2,1)}
/* hero load sequence */
.hero .eyebrow,.hero h1 .l,.hero p,.hero .ctas{animation:rise .9s var(--ease) both}
.hero h1 .l:nth-child(1){animation-delay:.12s}.hero h1 .l:nth-child(2){animation-delay:.24s}
.hero p{animation-delay:.38s}.hero .ctas{animation-delay:.5s}
.pagehead h1,.pagehead .crumb{animation:rise .8s var(--ease) both}.pagehead .crumb{animation-delay:.15s}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
/* scroll reveal (only for items below the fold; always resolves to visible) */
.rv{transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0s)}
.rv.pre{opacity:0;transform:translateY(34px)}
.rv.pre.from-l{transform:translateX(-40px)}.rv.pre.from-r{transform:translateX(40px)}
/* heading accent bar grows in */
.head h2::after,.stack > h2::after{content:"";display:block;width:0;height:3px;background:var(--gold);margin-top:16px;transition:width .9s var(--ease) .2s}
.head.center h2::after{margin-inline:auto}
.rv:not(.pre) .head h2::after,.head.rv:not(.pre) h2::after,.rv:not(.pre) > h2::after,.stack.rv:not(.pre) > h2::after{width:64px}
/* buttons: lift + shine */
.btn{position:relative;overflow:hidden;transition:background .25s,color .25s,transform .25s var(--ease),box-shadow .25s}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(0,0,0,.25)}
.btn:hover::before{transform:translateX(120%)}
/* nav underline */
nav.menu > a,nav.menu .dd > a{position:relative}
nav.menu > a::after,nav.menu .dd > a::after{content:"";position:absolute;left:9px;right:9px;bottom:4px;height:2px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
nav.menu > a:hover::after,nav.menu .dd > a:hover::after,nav.menu a.on::after{transform:scaleX(1)}
.dd .sub a{transition:padding .25s var(--ease),background .2s,color .2s}
.dd .sub a:hover{padding-left:26px}
.dd .sub{animation:drop .25s var(--ease)}
@keyframes drop{from{opacity:0;transform:translateY(8px)}}
/* cards lift */
.boxes article,.svc article,.team article,.cinfo article,.tst article,.card,.feed,.inq,.mv div{transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .3s,border-color .3s}
.boxes article:hover,.svc article:hover,.team article:hover,.cinfo article:hover,.card:hover{transform:translateY(-8px);box-shadow:0 22px 40px rgba(10,26,51,.18)}
.tst article:hover{transform:translateY(-6px);box-shadow:0 22px 40px rgba(0,0,0,.4)}
.mv div:hover{transform:translateX(6px)}
.svc article:hover{background:var(--ink);color:#fff;--gold:#fff}
.svc article:hover p{color:var(--muted-d)}
.svc article:hover .more{color:#fff}
/* icons react */
.ico{transition:transform .45s var(--ease)}
.boxes article:hover .ico,.svc article:hover .ico,.cinfo article:hover .ico,.srow:hover .ico{transform:translateY(-4px) rotate(-8deg) scale(1.12)}
.checks li svg{transition:transform .4s var(--ease)}
.checks li:hover svg{transform:scale(1.2) rotate(-10deg)}
.checks li h4{transition:transform .3s var(--ease)}
.checks li:hover h4{transform:translateX(4px)}
/* "learn more" arrow */
.more{display:inline-flex;align-items:center;gap:6px}
.more::after{content:"→";transition:transform .3s var(--ease)}
article:hover .more::after,.more:hover::after{transform:translateX(6px)}
/* image slots: slow zoom */
.ph{overflow:hidden;background-size:115% 115%;background-position:center;transition:background-size 1.2s var(--ease),filter .6s}
.ph:hover,.framed:hover .ph,.team article:hover .ph{background-size:140% 140%;filter:brightness(1.15)}
.counter{transition:transform .4s var(--ease)}
.framed:hover .counter,.duo:hover .counter{transform:translateY(-6px)}
.duo:hover .counter{transform:translate(-50%,-6px)}
.play{animation:ping 2.4s ease-out infinite;transition:transform .3s var(--ease)}
.video .ph:hover .play{transform:scale(1.12)}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(255,255,255,.35)}70%{box-shadow:0 0 0 22px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
/* lists, links, news */
.item,.src,.side .list a,.jump a{transition:transform .3s var(--ease),border-color .3s,background .3s,color .3s}
.item:hover,.src:hover{transform:translateX(6px)}
.side .list a:hover{transform:translateX(4px)}
footer ul a{display:inline-block;transition:transform .3s var(--ease),color .2s}
footer ul a:hover{transform:translateX(6px);color:#fff}
.topbar .soc a{transition:color .2s,letter-spacing .3s}
.topbar .soc a:hover{letter-spacing:.14em;color:#fff}
.values li{transition:background .25s,color .25s,transform .25s var(--ease)}
.values li:hover{background:var(--ink);color:#fff;transform:translateY(-3px)}
details{transition:border-color .3s,box-shadow .3s}
details:hover{border-color:var(--ink);box-shadow:0 8px 20px rgba(10,26,51,.08)}
details[open] p{animation:rise .45s var(--ease)}
summary::after{transition:transform .3s var(--ease)}
details[open] summary::after{transform:rotate(180deg)}
.rows i{transform-origin:left;transition:transform 1.2s var(--ease) .2s}
.rv.pre .rows i,.rows.rv.pre i{transform:scaleX(0)}
.ticker:hover .track{animation-play-state:paused}
.logo img{transition:transform .35s var(--ease),filter .35s}
.logo:hover img{transform:scale(1.04);filter:drop-shadow(0 0 10px rgba(77,124,199,.45))}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv.pre{opacity:1;transform:none}.rv.pre .rows i,.rows.rv.pre i{transform:none}}

.rrs-badge{width:64px;height:64px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 1px var(--line);transition:transform .45s var(--ease)}
.rrs-badge img{width:54px;height:auto}
.svc article > .ico{height:64px;width:46px}
.svc article:hover .rrs-badge{transform:translateY(-4px) rotate(-8deg) scale(1.08)}
.rrs-panel{display:grid;grid-template-columns:150px 1fr;gap:28px;align-items:center;background:var(--paper-2);padding:26px 30px;border-left:3px solid var(--ink)}
.rrs-panel img{width:150px;height:auto;max-width:100%}
.rrs-panel p{color:var(--muted)}
.rrs-panel > div{display:grid;gap:12px;justify-items:start}
@media(max-width:560px){.rrs-panel > div{justify-items:center}}
@media(max-width:560px){.rrs-panel{grid-template-columns:1fr;justify-items:center;text-align:center}}

.ph.photo{padding:0;background:#000}
.ph.photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block;transition:transform 1.2s var(--ease)}
.ph.photo:hover img{transform:scale(1.06)}
.ss .main .ph.photo{aspect-ratio:16/9}

.dash{display:grid;gap:22px;margin-top:10px;padding-top:30px;border-top:1px solid var(--line)}
.dash-h{display:grid;gap:12px}
.dash-h h3{font-size:24px}
.dash-h p{color:var(--muted)}
.frame{margin:0;background:var(--ink-3);padding:0 0 0;box-shadow:0 24px 50px rgba(10,26,51,.25);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.frame:hover{transform:translateY(-6px);box-shadow:0 34px 60px rgba(10,26,51,.32)}
.frame .bar{display:flex;align-items:center;gap:7px;padding:10px 14px;background:var(--ink)}
.frame .bar i{width:10px;height:10px;border-radius:50%;background:#33507f}
.frame .bar span{margin-left:10px;color:var(--muted-d);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.frame img{display:block;width:100%;height:auto;background:#f6f4ef}
.dash-pts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media(max-width:900px){.dash-pts{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.dash-pts{grid-template-columns:1fr}}
.dash-pts li{background:var(--paper-2);padding:16px;display:grid;gap:6px;align-content:start;border-top:3px solid var(--ink);transition:transform .3s var(--ease),background .3s}
.dash-pts li:hover{transform:translateY(-4px);background:var(--ink);color:#fff}
.dash-pts li:hover span{color:var(--muted-d)}
.dash-pts b{font-size:15px;text-transform:uppercase;letter-spacing:.04em}
.dash-pts span{font-size:14px;color:var(--muted)}

/* consulting steps */
.ph.photo.kb img{animation:kb 18s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1) translate(0,0)}to{transform:scale(1.14) translate(-3%,2%)}}
.steps{display:grid;gap:22px;margin-top:10px;padding-top:30px;border-top:1px solid var(--line)}
.step-track{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.step-track::before,.track-fill{content:"";position:absolute;left:calc(100%/12);right:calc(100%/12);top:27px;height:3px;background:var(--line)}
.track-fill{background:var(--ink);transform-origin:left;transform:scaleX(var(--p,0));transition:transform .8s var(--ease);z-index:0}
.step{position:relative;z-index:1;display:flex;justify-content:center}
.step-btn{all:unset;cursor:pointer;display:grid;justify-items:center;gap:10px;text-align:center}
.step .num{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#fff;border:3px solid var(--line);font:700 17px/1 var(--display);color:var(--muted);transition:all .45s var(--ease)}
.step .nm{font:600 13px/1.2 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);transition:color .3s}
.step.done .num{border-color:var(--ink);color:var(--ink)}
.step.on .num{background:var(--ink);border-color:var(--ink);color:#fff;transform:scale(1.15);box-shadow:0 0 0 8px rgba(10,26,51,.12)}
.step.on .nm,.step.done .nm{color:var(--ink)}
.step-btn:hover .num{border-color:var(--ink);color:var(--ink)}
.step-btn:focus-visible .num{outline:2px solid #4d7cc7;outline-offset:3px}
.step-detail{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;background:var(--ink);color:#fff;padding:26px 30px;min-height:130px}
.step-detail.swap{animation:rise .55s var(--ease)}
.sd-num{font:700 52px/1 var(--display);color:rgba(255,255,255,.25)}
.sd-t{font-size:20px;margin-bottom:6px}
.sd-d{color:var(--muted-d)}
.step-ctrl{display:flex;justify-content:flex-end}
.btn.ghost-dark{background:transparent;color:var(--ink);border-color:var(--ink);padding:10px 18px;font-size:12px}
.btn.ghost-dark:hover{background:var(--ink);color:#fff}
@media(max-width:700px){.step-track{grid-template-columns:repeat(3,1fr);row-gap:20px}.step-track::before,.track-fill{display:none}.step-detail{grid-template-columns:1fr}.sd-num{font-size:38px}}

[hidden]{display:none!important}

/* training slideshow */
.ph.slides{position:relative}
.ph.slides .sl{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 1.1s var(--ease)}
.ph.slides .sl.on{opacity:1}
.ph.slides .sl img{width:100%;height:100%;object-fit:cover;transform:scale(1.02)}
.ph.slides .sl.on img{animation:kb2 6s ease-out both}
@keyframes kb2{from{transform:scale(1.02)}to{transform:scale(1.12)}}
.ph.slides figcaption{position:absolute;left:0;right:0;bottom:0;padding:44px 24px 20px;background:linear-gradient(transparent,rgba(0,0,0,.82));color:#fff;font:600 17px/1.3 var(--body);letter-spacing:.02em;display:grid;gap:6px;transform:translateY(14px);opacity:0;transition:transform .8s var(--ease) .35s,opacity .8s var(--ease) .35s}
.ph.slides .sl.on figcaption{transform:none;opacity:1}
.ph.slides figcaption span{font-size:12px;letter-spacing:.16em;color:rgba(255,255,255,.7)}
.sl-dots{position:absolute;right:18px;bottom:22px;display:flex;gap:8px;z-index:2}
.sl-dots button{all:unset;cursor:pointer;width:30px;height:16px;display:grid;align-items:center}
.sl-dots i{display:block;height:3px;background:rgba(255,255,255,.4);transition:background .3s,height .3s}
.sl-dots button.on i{background:#fff;height:4px}
.sl-dots button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.ph.slides:hover .sl.on img{animation-play-state:paused}
@media(max-width:560px){.ph.slides figcaption{font-size:14px;padding-right:110px}}

/* K-9 sniffing animation (14s loop) */
.k9scene{display:grid;gap:22px;margin-top:10px;padding-top:30px;border-top:1px solid var(--line)}
.k9stage{position:relative;background:var(--paper-2);padding:20px 10px 8px;overflow:hidden}
.k9svg{display:block;width:100%;height:auto}
.k9status{position:absolute;top:14px;left:18px;font:600 12px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);display:flex;align-items:center;gap:8px}
.k9status::before{content:"";width:8px;height:8px;border-radius:50%;background:#4d7cc7;animation:pulse 1.2s ease-in-out infinite}
.dog{animation:dogWalk 14s linear infinite}
@keyframes dogWalk{0%{transform:translateX(-200px)}10%{transform:translateX(2px)}22%{transform:translateX(2px)}32%{transform:translateX(168px)}44%{transform:translateX(168px)}54%{transform:translateX(382px)}72%{transform:translateX(382px)}82%{transform:translateX(566px)}92%{transform:translateX(566px)}100%{transform:translateX(1060px)}}
.dog .head{transform-box:fill-box;transform-origin:10% 80%;animation:sniff 14s ease-in-out infinite}
@keyframes sniff{0%,10%,22%,32%,44%,54%,72%,82%,92%,100%{transform:rotate(0)}12%,20%,34%,42%,56%,62%,84%,90%{transform:rotate(24deg)}16%,38%,59%,87%{transform:rotate(30deg)}64%,70%{transform:rotate(-6deg)}}
.dog .nose{transform-box:fill-box;transform-origin:center;animation:twitch .35s ease-in-out infinite}
@keyframes twitch{50%{transform:scale(1.35)}}
.dog .scent circle{animation:scent 1.1s ease-in infinite;opacity:0}
.dog .scent circle:nth-child(2){animation-delay:.35s}.dog .scent circle:nth-child(3){animation-delay:.7s}
@keyframes scent{0%{opacity:0;transform:translate(10px,10px)}40%{opacity:.9}100%{opacity:0;transform:translate(-22px,-12px)}}
.dog .leg{transform-box:fill-box;transform-origin:50% 0;animation:legs 14s linear infinite}
.dog .l2,.dog .l3{animation-name:legs2}
@keyframes legs{0%,10%,32%,54%,82%{animation-timing-function:steps(1)}0%,1%,3%,5%,7%,9%,23%,25%,27%,29%,31%,45%,47%,49%,51%,53%,73%,75%,77%,79%,81%,93%,95%,97%,99%{transform:rotate(16deg)}2%,4%,6%,8%,24%,26%,28%,30%,46%,48%,50%,52%,74%,76%,78%,80%,94%,96%,98%{transform:rotate(-16deg)}10%,22%,32%,44%,54%,72%,82%,92%{transform:rotate(0)}}
@keyframes legs2{0%,1%,3%,5%,7%,9%,23%,25%,27%,29%,31%,45%,47%,49%,51%,53%,73%,75%,77%,79%,81%,93%,95%,97%,99%{transform:rotate(-16deg)}2%,4%,6%,8%,24%,26%,28%,30%,46%,48%,50%,52%,74%,76%,78%,80%,94%,96%,98%{transform:rotate(16deg)}10%,22%,32%,44%,54%,72%,82%,92%{transform:rotate(0)}}
.dog .tail{transform-box:fill-box;transform-origin:100% 100%;animation:wag .5s ease-in-out infinite alternate}
@keyframes wag{from{transform:rotate(-10deg)}to{transform:rotate(14deg)}}
.it .ring{transform-box:fill-box;transform-origin:center;opacity:0;animation:alertRing 14s ease-out infinite}
@keyframes alertRing{0%,60%{opacity:0;transform:scale(.6)}63%{opacity:1;transform:scale(1)}67%{opacity:.4;transform:scale(1.25)}70%{opacity:1;transform:scale(1)}74%,100%{opacity:0;transform:scale(1.3)}}
.alert-tag{opacity:0;animation:tag 14s ease-out infinite}
@keyframes tag{0%,61%{opacity:0;transform:translate(530px,90px)}64%,72%{opacity:1;transform:translate(530px,76px)}76%,100%{opacity:0;transform:translate(530px,70px)}}
.it{transition:none;animation:itemPing 14s ease-in-out infinite}
.it1{animation-name:it1}.it2{animation-name:it2}.it3{animation-name:it3}.it4{animation-name:it4}
@keyframes it1{0%,10%,23%,100%{stroke:var(--ink)}12%,21%{stroke:#4d7cc7}}
@keyframes it2{0%,32%,45%,100%{stroke:var(--ink)}34%,43%{stroke:#4d7cc7}}
@keyframes it3{0%,54%,74%,100%{stroke:var(--ink)}56%,72%{stroke:#4d7cc7}}
@keyframes it4{0%,82%,93%,100%{stroke:var(--ink)}84%,91%{stroke:#4d7cc7}}
@media(prefers-reduced-motion:reduce){.dog{transform:translateX(382px)}.alert-tag{opacity:1}}

/* equipment live-feed image */
.ss .main .ph.photo.eqv{aspect-ratio:1600/757;overflow:hidden}
.ph.eqv img{animation:none;transition:transform 1.2s var(--ease)}
.ph.eqv:hover img{transform:none}
.ph.eqv::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.035) 0 1px,transparent 1px 3px);mix-blend-mode:multiply}
.ph.eqv .scan{position:absolute;left:0;right:0;top:0;height:22%;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(77,124,199,.18) 70%,rgba(77,124,199,.55) 100%);border-bottom:2px solid rgba(77,124,199,.8);animation:scanY 5s linear infinite}
@keyframes scanY{from{transform:translateY(-100%)}to{transform:translateY(460%)}}
.ph.eqv .rec,.ph.eqv .cam-ts,.ph.eqv .cam-id{position:absolute;z-index:2;font:700 12px/1 var(--body);letter-spacing:.12em;color:#fff;background:rgba(10,26,51,.85);padding:7px 10px}
.ph.eqv .rec{top:14px;left:14px;display:flex;align-items:center;gap:7px}
.ph.eqv .rec i{width:9px;height:9px;border-radius:50%;background:#e5484d;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.ph.eqv .cam-ts{top:14px;right:14px;font-variant-numeric:tabular-nums}
.ph.eqv .cam-id{bottom:14px;left:14px}
.spot{all:unset;position:absolute;z-index:3;width:0;height:0;cursor:pointer}
.spot i{position:absolute;left:-9px;top:-9px;width:18px;height:18px;border-radius:50%;background:var(--ink);border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35);transition:transform .3s var(--ease),background .3s}
.spot i::before,.spot i::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid var(--ink);animation:spotPing 2.2s ease-out infinite}
.spot i::after{animation-delay:1.1s}
@keyframes spotPing{from{transform:scale(1);opacity:.9}to{transform:scale(3);opacity:0}}
.spot.on i{background:#4d7cc7;transform:scale(1.25)}
.spot .tip{position:absolute;left:18px;top:-18px;white-space:nowrap;text-transform:none;letter-spacing:.01em;background:var(--ink);color:#fff;padding:9px 12px;display:grid;gap:3px;font-size:12.5px;color:var(--muted-d);box-shadow:0 10px 24px rgba(0,0,0,.3);opacity:0;transform:translateX(-8px);transition:opacity .35s var(--ease),transform .35s var(--ease);pointer-events:none}
.spot .tip b{color:#fff;font-size:13px;letter-spacing:.04em;text-transform:uppercase}
.spot.lft .tip{left:auto;right:18px;transform:translateX(8px)}
.spot.on .tip{opacity:1;transform:none}
.spot:focus-visible i{outline:2px solid #4d7cc7;outline-offset:4px}
@media(max-width:620px){.spot .tip{font-size:11px;padding:6px 8px}.spot .tip b{font-size:11px}.ph.eqv .cam-id{display:none}}

/* home: protective team image */
.framed.team-shot .ph{aspect-ratio:4/4.4}
.ph.pan img{width:100%;height:100%;object-fit:cover;object-position:22% 50%;animation:panX 16s ease-in-out infinite alternate}
@keyframes panX{0%{object-position:12% 50%;transform:scale(1.04)}100%{object-position:62% 50%;transform:scale(1.12)}}
.ph.pan .sheen{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);transform:translateX(-120%);animation:sheen 7s ease-in-out infinite}
@keyframes sheen{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.framed.team-shot::after{animation:frameIn 1.4s var(--ease) both}
@keyframes frameIn{from{inset:0;opacity:0}to{inset:18px -18px -18px 18px;opacity:1}}
.framed.team-shot:hover::after{inset:10px -10px -10px 10px;transition:inset .5s var(--ease)}
.framed.team-shot .counter{animation:float 4s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-8px)}}
.framed.team-shot:hover .ph.pan img{animation-play-state:paused}

/* about: gear spotlight */
@property --x{syntax:'<percentage>';inherits:true;initial-value:50%}
@property --y{syntax:'<percentage>';inherits:true;initial-value:50%}
@property --r{syntax:'<length>';inherits:true;initial-value:600px}
.framed.gear-wrap .ph.gear{aspect-ratio:1600/899;--x:50%;--y:50%;--r:600px;transition:--x .9s var(--ease),--y .9s var(--ease),--r .9s var(--ease)}
.framed.gear-wrap .counter{top:auto;bottom:-52px;right:-18px;padding:14px 18px;z-index:3}
.framed.gear-wrap .counter b{font-size:34px}
.framed.gear-wrap .counter span{max-width:none;white-space:nowrap}
.framed.gear-wrap{margin-bottom:40px}
.ph.gear img{transform:none!important}
.ph.gear .spot-dim{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--x) var(--y),transparent 0,transparent var(--r),rgba(0,0,0,.66) calc(var(--r) + 36px));opacity:0;transition:opacity .6s}
.ph.gear.live .spot-dim{opacity:1}
.ph.gear .gear-ring{position:absolute;transform:translate(-50%,-50%);border-radius:50%;border:2px solid rgba(255,255,255,.85);box-shadow:0 0 0 6px rgba(77,124,199,.25);pointer-events:none;opacity:0;transition:left .9s var(--ease),top .9s var(--ease),width .9s var(--ease),height .9s var(--ease),opacity .4s}
.ph.gear.live .gear-ring{opacity:1;animation:ringPulse 1.3s ease-in-out infinite}
@keyframes ringPulse{50%{box-shadow:0 0 0 14px rgba(77,124,199,0)}}
.ph.gear .gear-tag{position:absolute;transform:translate(-50%,0);background:#fff;color:var(--ink);padding:8px 12px;display:grid;gap:3px;text-align:center;white-space:nowrap;box-shadow:0 10px 24px rgba(0,0,0,.35);opacity:0;transition:left .9s var(--ease),top .9s var(--ease)}
.ph.gear .gear-tag.above{transform:translate(-50%,-100%)}
.ph.gear .gear-tag.in{animation:tagIn .7s var(--ease) .35s both}
@keyframes tagIn{from{opacity:0;margin-top:8px}to{opacity:1;margin-top:0}}
.ph.gear .gear-tag em{font-style:normal;font-size:11px;letter-spacing:.14em;color:var(--muted)}
.ph.gear .gear-tag b{font-size:14px;letter-spacing:.06em;text-transform:uppercase}
.ph.gear .gear-bar{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.15)}
.ph.gear .gear-bar i{display:block;height:100%;width:0;background:#fff;transition:width .9s var(--ease)}
.ph.gear.paused .gear-ring{animation-play-state:paused}
@media(max-width:560px){.ph.gear .gear-tag b{font-size:12px}}

.ph.pan.veh img{object-position:100% 50%;animation:panVeh 16s ease-in-out infinite alternate}
@keyframes panVeh{0%{object-position:100% 50%;transform:none}100%{object-position:0% 50%;transform:none}}
.duo:hover .ph.pan img{animation-play-state:paused}

.ph.photo.shirt{background:#fff;display:grid;place-items:center}
.ph.photo.shirt img{object-fit:contain;width:92%;height:92%;animation:shirtFloat 5s ease-in-out infinite;filter:drop-shadow(0 18px 18px rgba(10,26,51,.25))}
@keyframes shirtFloat{0%,100%{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-12px) rotate(1.5deg)}}
.duo:hover .ph.shirt img{animation-play-state:paused}

.ph.photo.kbz img{object-position:center 30%;animation:kbz 12s ease-in-out infinite alternate}
@keyframes kbz{from{transform:scale(1)}to{transform:scale(1.1) translateY(-2%)}}
.duo:hover .ph.kbz img{animation-play-state:paused}

.ph.pan.socop img{object-position:100% 50%;animation:panSoc 16s ease-in-out infinite alternate}
@keyframes panSoc{0%{object-position:100% 50%;transform:none}100%{object-position:0% 50%;transform:none}}

.ph.pan.sweep img{animation:panSweep 18s ease-in-out infinite alternate}
@keyframes panSweep{0%{object-position:78% 50%;transform:scale(1.03)}100%{object-position:30% 50%;transform:scale(1.1)}}
.framed.svc-shot::after{animation:frameIn 1.4s var(--ease) both}
.framed.svc-shot:hover .ph img{animation-play-state:paused}

.ph.pan.trsess img{animation:panTr 16s ease-in-out infinite alternate}
@keyframes panTr{0%{object-position:12% 50%;transform:none}100%{object-position:88% 50%;transform:none}}

.ph.photo.ride{background:#fff;display:grid;place-items:end center;overflow:hidden}
.ph.photo.ride img{object-fit:contain;object-position:center bottom;width:100%;height:100%;animation:rideIn 1.6s var(--ease) both,idle 3s ease-in-out 1.6s infinite}
@keyframes rideIn{from{transform:translateX(70%)}to{transform:none}}
@keyframes idle{50%{transform:translateY(-3px)}}
.ph.photo.ride::before{content:"";position:absolute;left:8%;right:8%;bottom:5%;height:10px;border-radius:50%;background:rgba(10,26,51,.18);filter:blur(6px)}
.duo:hover .ph.ride img{animation-play-state:paused}

.video.novid{grid-template-columns:1fr;background:var(--ink-3)}
.video.novid .txt{max-width:1180px;margin:0 auto;width:100%;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:80px}
.video.novid .txt p{max-width:75ch}

/* top bar: white */
.topbar{background:#fff;color:var(--muted);border-bottom:1px solid var(--line);--gold:#0a1a33;--gold-2:#0a1a33}
.topbar .info svg{color:var(--ink)}
.topbar .info b{color:var(--ink)}
.topbar .soc a{color:var(--ink)}
.topbar .soc a:hover{color:#4d7cc7}

/* footer: white */
footer{background:#fff;color:var(--muted);border-top:1px solid var(--line);--gold:#0a1a33;--gold-2:#0a1a33}
footer h4{color:var(--ink)}
footer a{color:var(--muted)}
footer ul a:hover,footer a:hover{color:var(--ink)}
footer .base{border-top-color:var(--line);color:var(--muted)}
footer .logo:hover img{filter:none}
footer .cols > .stack{align-content:start}

/* ===== mobile view ===== */
html,body{overflow-x:clip}
.menu-btn{display:none}
@media(max-width:1060px){
  header.nav .wrap{flex-wrap:nowrap;padding-block:12px}
  .menu-btn{display:inline-grid;place-items:center;width:46px;height:42px;background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;cursor:pointer;flex:none;margin-left:auto}
  .menu-btn span,.menu-btn span::before,.menu-btn span::after{display:block;width:22px;height:2px;background:#fff;position:relative;transition:transform .3s,background .3s}
  .menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0}
  .menu-btn span::before{top:-7px}.menu-btn span::after{top:7px}
  header.nav.open .menu-btn span{background:transparent}
  header.nav.open .menu-btn span::before{transform:translateY(7px) rotate(45deg)}
  header.nav.open .menu-btn span::after{transform:translateY(-7px) rotate(-45deg)}
  nav.menu{position:absolute;left:0;right:0;top:100%;background:var(--ink);flex-direction:column;align-items:stretch;gap:0;padding:8px max(16px,env(safe-area-inset-right,0px)) 18px max(16px,env(safe-area-inset-left,0px));border-top:1px solid var(--line-d);box-shadow:0 18px 30px rgba(0,0,0,.35);display:none;max-height:calc(100vh - 80px);overflow-y:auto}
  header.nav.open nav.menu{display:flex;animation:drop .25s var(--ease)}
  nav.menu > a,nav.menu .dd > a{padding:15px 4px;font-size:14px;border-bottom:1px solid var(--line-d)}
  nav.menu > a::after,nav.menu .dd > a::after{display:none}
  nav.menu a.on{color:#fff;border-left:3px solid #fff;padding-left:12px}
  .dd .sub{position:static;display:block;box-shadow:none;border:0;background:transparent;padding:4px 0 6px;min-width:0;animation:none}
  .dd .sub a{color:var(--muted-d);padding:9px 0 9px 18px;font-size:13.5px;background:transparent}
  .dd .sub a:hover{background:transparent;color:#fff;padding-left:24px}
  .hdr-cta{display:none}
  header.nav{position:sticky}
}
@media(max-width:700px){
  .topbar .wrap{gap:6px 18px;padding-block:8px;justify-content:center}
  .topbar .info small{display:none}
  .topbar .info svg{width:18px;height:18px}
  .topbar .info{gap:6px;font-size:13px}
  .topbar .soc{margin-left:0;font-size:12px}
  .logo img{width:132px}
  .hero .wrap{padding-block:48px 120px;gap:16px}
  .hero h1{font-size:4.75vw;letter-spacing:0}
  .hero p{font-size:15.5px}
  .ctas .btn{flex:1 1 100%;justify-content:center}
  section.band{padding-block:64px}
  .head{margin-bottom:30px}
  .pagehead .wrap{padding-block:52px}
  .cta .wrap{padding-block:56px;gap:24px}
  .cta .call strong{font-size:22px}
  .framed::after{inset:12px -10px -12px 10px}
  .counter{right:6px!important;top:12px;padding:12px 16px}
  .counter b{font-size:34px}
  .duo .counter{left:50%;right:auto!important}
  .framed.gear-wrap .counter{top:auto;bottom:-40px}
  .ss .main{order:-1}
  .ss{gap:36px}
  .btn{padding:13px 22px}
  footer .cols{padding-block:48px 28px;gap:28px}
  footer .base{flex-direction:column}
  .step-detail{padding:20px}
  .dash-pts li,.inc li{padding:14px}
  .news{gap:20px}.feed{padding:20px}
}
@media(max-width:600px){
  p:not(.crumb):not(.lead):not(.ok),.tst q,.rows span,.checks p{text-align:left;hyphens:manual}
}

html{scroll-behavior:smooth}body{margin:0}img{max-width:100%}[hidden]{display:none!important}

/* responsive fixes (round 2) */
@media(max-width:900px){
  .framed .counter{right:6px}
  .framed.gear-wrap .counter{right:6px}
}
@media(max-width:700px){
  .k9stage{padding:34px 0 4px}
  .k9-labels text{font-size:30px;letter-spacing:1px}
  .k9status{top:10px;left:12px;font-size:11px}
  .ph.gear .gear-tag{padding:6px 9px}
  .ph.gear .gear-tag em{font-size:10px}
  .ph.gear .gear-tag b{font-size:11px}
  .step .num{width:46px;height:46px;font-size:15px}
}

/* ===== Our Values boxes ===== */
.vmini{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.vmini li{display:grid;justify-items:center;gap:9px;padding:16px 8px 14px;background:#fff;border:1px solid var(--line);border-bottom:3px solid var(--ink);text-align:center;transition:transform .3s var(--ease),background .3s,color .3s,box-shadow .3s}
.vmini li svg{width:28px;height:28px;color:var(--ink);transition:color .3s,transform .4s var(--ease)}
.vmini li span{font:600 12px/1.2 var(--body);letter-spacing:.07em;text-transform:uppercase;color:var(--ink)}
.vmini li:hover{background:var(--ink);transform:translateY(-4px);box-shadow:0 12px 24px rgba(10,26,51,.18)}
.vmini li:hover svg,.vmini li:hover span{color:#fff}
.vmini li:hover svg{transform:scale(1.12)}
.vgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.vcard{position:relative;background:#fff;border:1px solid var(--line);padding:34px 26px 30px;display:grid;gap:14px;align-content:start;overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s,background .35s,color .35s}
.vcard::before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:var(--ink);transform:scaleX(.18);transform-origin:left;transition:transform .45s var(--ease),background .35s}
.vcard .vnum{position:absolute;top:18px;right:22px;font:700 34px/1 var(--display);color:rgba(10,26,51,.08);transition:color .35s}
.vcard .vico{width:60px;height:60px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;transition:background .35s,color .35s,transform .45s var(--ease)}
.vcard .vico svg{width:28px;height:28px}
.vcard h4{font-size:18px;letter-spacing:.06em;color:var(--ink);transition:color .35s}
.vcard p{text-align:left!important;font-size:14.5px;line-height:1.6;color:var(--muted);transition:color .35s}
.vcard:hover{background:var(--ink);transform:translateY(-8px);box-shadow:0 22px 40px rgba(10,26,51,.22)}
.vcard:hover::before{transform:scaleX(1);background:#4d7cc7}
.vcard:hover .vico{background:#fff;color:var(--ink);transform:rotate(-8deg) scale(1.06)}
.vcard:hover h4{color:#fff}.vcard:hover p{color:var(--muted-d)}.vcard:hover .vnum{color:rgba(255,255,255,.14)}
@media(max-width:1020px){.vgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.vgrid{gap:12px}.vcard{padding:24px 16px 20px}.vcard p{font-size:13.5px}.vcard .vico{width:50px;height:50px}.vmini{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.vcard h4{font-size:13.5px;letter-spacing:.02em}.vcard .vnum{font-size:26px;top:14px;right:14px}}


/* enquiry form status */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.ok{font-weight:600;padding:12px 14px;border-left:3px solid #2f9e5b;background:rgba(47,158,91,.1);color:#1e6b3e!important}
.form .ok{color:#bff0d2!important;background:rgba(47,158,91,.18)}
.ok.err{border-left-color:#d64545;background:rgba(214,69,69,.1);color:#9b2c2c!important}
.form .ok.err{color:#ffd0d0!important;background:rgba(214,69,69,.2)}
button[disabled]{opacity:.7;cursor:wait}
