/* ============================================================
   ASIATIC CONTAINER LINES — shared site layer (LIGHT THEME)
   Built around the Asiatic logo: indigo #352E74, signal red #BB0000,
   on warm paper whites with indigo-tinted greys. Deep indigo footer.
   Variable NAMES kept from the dark build so components re-skin.
   ============================================================ */
@font-face{
  font-family:'Clash Display';
  src:url(../fonts/clash-display-200.woff2) format('woff2');
  font-weight:200 700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Switzer';
  src:url(../fonts/switzer-100.woff2) format('woff2');
  font-weight:100 900;font-style:normal;font-display:swap;
}
:root{
  --bg:#FBFBFE; --bg-2:#F3F3FA; --bg-3:#ECECF7;
  --line:rgba(27,24,57,0.10); --line-strong:rgba(27,24,57,0.22);
  --salt:#1B1839; --salt-dim:#5C5980;
  --brand:#352E74; --brand-hi:#4A42A6;
  --amber:#BB0000; --amber-hi:#D42B2B;
  --deck:#FFFFFF; --fog-surface:#F3F3FA; --ink:#1B1839; --slate:#5C5980;
  --hairline:#E6E5F1;
  --starboard:#0F9869; --starboard-ink:#0C7853; --starboard-surface:#E7FBF4;
  --beacon:#BF7411; --beacon-ink:#965B0D; --beacon-surface:#FCF2E6;
  --disp:'Clash Display',ui-sans-serif,system-ui,sans-serif;
  --body:'Switzer',ui-sans-serif,system-ui,sans-serif;
  --mono:'Geist Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --ui:cubic-bezier(0.23,1,0.32,1);
  --head-h:94px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--bg);color:var(--salt);font-family:var(--body);font-weight:400;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:var(--brand);color:#fff}
:root{caret-color:var(--brand)}
*{scrollbar-width:thin;scrollbar-color:var(--line-strong) var(--bg)}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:var(--bg)}
*::-webkit-scrollbar-thumb{background:var(--line-strong)}
:focus-visible{outline:2px solid var(--brand-hi);outline-offset:2px}

.wrap{width:min(1440px,100%);margin-inline:auto;padding-inline:clamp(20px,5vw,80px)}
.eyebrow{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--amber)}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ---------- header ---------- */
/* white frosted-glass menu strip: transparent white + blur */
header.site{position:fixed;inset-inline:0;top:0;z-index:20;height:var(--head-h);display:flex;align-items:center;background:rgba(255,255,255,0.2);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);box-shadow:0 1px 0 rgba(27,24,57,0.05);transition:background 250ms var(--ui),box-shadow 250ms var(--ui)}
header.site.solid{background:rgba(255,255,255,0.45);box-shadow:0 1px 0 rgba(27,24,57,0.07),0 8px 30px rgba(27,24,57,0.07)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:1}
header.site .logo{display:inline-flex;align-items:center;flex-shrink:0}
header.site .logo img{height:64px;width:auto}
@media(max-width:720px){:root{--head-h:78px}header.site .logo img{height:48px}header.site nav.desk a.cta{font-size:14px;padding:9px 14px}}
header.site nav.desk{display:flex;gap:28px;align-items:center}
header.site nav.desk a{position:relative;font-family:var(--disp);font-size:18px;font-weight:600;letter-spacing:-0.01em;white-space:nowrap;color:var(--salt);padding:10px 2px;transition:color 150ms var(--ui)}
header.site nav.desk a:not(.cta)::after{content:"";position:absolute;left:2px;right:2px;bottom:4px;height:2px;border-radius:2px;background:var(--amber);transform:scaleX(0);transform-origin:left;transition:transform 220ms var(--ui)}
header.site nav.desk a:not(.cta):hover::after,header.site nav.desk a.is-on::after{transform:scaleX(1)}
header.site nav.desk a:hover{color:var(--brand)}
header.site nav.desk a.is-on{color:var(--brand)}
header.site nav.desk a.cta{color:#fff;background:var(--brand);font-size:17px;font-weight:600;padding:11px 22px;border-radius:4px;box-shadow:0 6px 18px rgba(53,46,116,0.22);transition:background 150ms var(--ui),box-shadow 150ms var(--ui)}
header.site nav.desk a.cta:hover{background:var(--brand-hi);box-shadow:0 8px 22px rgba(53,46,116,0.3)}
header.site nav.desk a.portal-link{color:var(--amber);font-weight:600}
header.site nav.desk a.portal-link:hover{color:var(--amber-hi)}

/* mobile menu */
.mbtn{display:none;background:none;border:1px solid var(--line-strong);border-radius:3px;width:44px;height:40px;cursor:pointer;position:relative;z-index:31}
.mbtn i{position:absolute;left:11px;right:11px;height:1.5px;background:var(--salt);transition:transform 250ms var(--ui),opacity 200ms,top 250ms var(--ui)}
.mbtn i:nth-child(1){top:13px}.mbtn i:nth-child(2){top:19px}.mbtn i:nth-child(3){top:25px}
body.menu-open .mbtn i:nth-child(1){top:19px;transform:rotate(45deg)}
body.menu-open .mbtn i:nth-child(2){opacity:0}
body.menu-open .mbtn i:nth-child(3){top:19px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:30;background:rgba(251,251,254,0.98);backdrop-filter:blur(10px);display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,8vw,64px);opacity:0;pointer-events:none;transition:opacity 300ms var(--ui)}
body.menu-open .mnav{opacity:1;pointer-events:auto}
.mnav a{font-family:var(--disp);font-weight:500;font-size:clamp(26px,7vw,40px);letter-spacing:-0.01em;color:var(--salt-dim);padding:10px 0;border-bottom:1px solid var(--line);transform:translateY(14px);opacity:0;transition:opacity 400ms var(--ui),transform 400ms var(--ui),color 150ms}
.mnav a:hover,.mnav a.is-on{color:var(--brand)}
.mnav a.is-on{color:var(--amber)}
body.menu-open .mnav a{opacity:1;transform:none}
body.menu-open .mnav a:nth-child(1){transition-delay:60ms}body.menu-open .mnav a:nth-child(2){transition-delay:100ms}
body.menu-open .mnav a:nth-child(3){transition-delay:140ms}body.menu-open .mnav a:nth-child(4){transition-delay:180ms}
body.menu-open .mnav a:nth-child(5){transition-delay:220ms}body.menu-open .mnav a:nth-child(6){transition-delay:260ms}
body.menu-open .mnav a:nth-child(7){transition-delay:300ms}body.menu-open .mnav a:nth-child(8){transition-delay:340ms}
body.menu-open .mnav a:nth-child(9){transition-delay:380ms}
.mnav .mfoot{margin-top:26px;font-family:var(--mono);font-size:11px;letter-spacing:0.12em;color:var(--salt-dim);text-transform:uppercase}
@media(max-width:1279px){
  header.site nav.desk a:not(.cta){display:none}
  header.site nav.desk{margin-left:auto}
  .mbtn{display:block}
}
@media(min-width:1280px){.mnav{display:none}}
body.menu-open{overflow:hidden}

/* ---------- buttons & links ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 26px;border-radius:3px;background:var(--brand);color:#fff;font-family:var(--body);font-size:15px;font-weight:500;transition:background 150ms var(--ui),transform 120ms var(--ui),box-shadow 150ms var(--ui);cursor:pointer;border:0;box-shadow:0 2px 10px rgba(53,46,116,0.25)}
.btn:hover{background:var(--brand-hi);box-shadow:0 4px 18px rgba(53,46,116,0.3)}
.btn:active{transform:scale(0.985)}
.btn.ghost{background:transparent;border:1px solid var(--line-strong);color:var(--salt);box-shadow:none}
.btn.ghost:hover{border-color:var(--brand-hi);background:rgba(53,46,116,0.06)}
.btn.amber{background:var(--amber);box-shadow:0 2px 10px rgba(187,0,0,0.25)}
.btn.amber:hover{background:var(--amber-hi)}
.btn.wa{background:#128C4B;box-shadow:0 2px 10px rgba(18,140,75,0.25)}
.btn.wa:hover{background:#17A85B}
.tl{font-size:14.5px;color:var(--brand);border-bottom:1px solid rgba(53,46,116,0.35);padding-bottom:3px;transition:border-color 150ms var(--ui),color 150ms var(--ui)}
.tl:hover{color:var(--amber);border-color:var(--amber)}
.morelink{display:inline-flex;align-items:center;gap:10px;margin-top:22px;font-family:var(--mono);font-size:13px;color:var(--brand);border-bottom:1px solid rgba(53,46,116,0.35);padding-bottom:4px;transition:border-color 150ms var(--ui),color 150ms var(--ui)}
.morelink:hover{color:var(--amber);border-color:var(--amber)}

/* ---------- reveals (shared animation system) ---------- */
[data-rv]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ui),transform .7s var(--ui);transition-delay:var(--d,0ms)}
[data-rv="left"]{transform:translateX(-26px)}
[data-rv="right"]{transform:translateX(26px)}
[data-rv="scale"]{transform:scale(0.94)}
[data-rv].on{opacity:1;transform:none}
.dline{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ui);transition-delay:var(--d,0ms)}
.on .dline,.dline.on{stroke-dashoffset:0}

/* ---------- inner page furniture ---------- */
.pg{background:var(--bg);min-height:60vh;padding-top:calc(var(--head-h) + clamp(30px,5vw,64px));padding-bottom:clamp(60px,8vw,100px)}
.pg .eyebrow{margin-bottom:14px}
.pg h1{font-family:var(--disp);font-weight:600;font-size:clamp(34px,5vw,64px);letter-spacing:-0.02em;line-height:1.02;max-width:20ch;text-wrap:balance;color:var(--ink)}
.pg h1 b{font-weight:700;color:var(--brand)}
.pg .lead{margin-top:18px;max-width:58ch;color:var(--salt-dim);font-size:clamp(15px,1.2vw,17.5px)}
.pg h2.sec{font-family:var(--disp);font-weight:600;font-size:clamp(26px,3.2vw,42px);letter-spacing:-0.02em;line-height:1.06;text-wrap:balance;color:var(--ink)}

/* section node + rail */
.fs{position:relative;padding-block:clamp(72px,9vw,128px)}
.fs .in{position:relative;padding-inline-start:38px}
.fs .in::before{content:'';position:absolute;inset-inline-start:0;top:8px;bottom:calc(-1 * clamp(72px,9vw,128px));width:1px;background:linear-gradient(180deg,var(--line-strong),var(--line))}
.fs:last-child .in::before,.fs.endrail .in::before{bottom:8px}
.fs .pnode{position:absolute;inset-inline-start:-13px;top:-4px;width:27px;height:27px;color:var(--amber)}
.fs h2{font-family:var(--disp);font-weight:600;font-size:clamp(30px,3.8vw,52px);letter-spacing:-0.02em;line-height:1.05;margin-top:14px;max-width:24ch;text-wrap:balance;color:var(--ink)}
.fs .lead{margin-top:16px;max-width:56ch;color:var(--salt-dim);font-size:clamp(14.5px,1.15vw,17px)}

/* ---------- cards / grids ---------- */
.svcgrid{display:grid;gap:18px;margin-top:44px}
@media(min-width:860px){.svcgrid{grid-template-columns:1fr 1fr}}
.svccard{border:1px solid var(--hairline);border-radius:4px;background:#FFFFFF;padding:26px 26px 30px;box-shadow:0 1px 3px rgba(27,24,57,0.05);transition:border-color 180ms var(--ui),transform 180ms var(--ui),box-shadow 180ms var(--ui)}
.svccard:hover{border-color:rgba(53,46,116,0.35);transform:translateY(-3px);box-shadow:0 14px 34px rgba(27,24,57,0.10)}
.svccard .tag{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;color:var(--amber);border:1px solid rgba(187,0,0,0.3);border-radius:3px;padding:4px 10px;background:rgba(187,0,0,0.04)}
.svccard h3{font-family:var(--disp);font-weight:500;font-size:22px;letter-spacing:-0.01em;margin-top:14px;color:var(--ink)}
.svccard p{margin-top:10px;color:var(--salt-dim);font-size:14.5px;max-width:52ch}
.cellgrid{display:grid;gap:18px;margin-top:44px}
@media(min-width:860px){.cellgrid.c3{grid-template-columns:1fr 1fr 1fr}.cellgrid.c2{grid-template-columns:1fr 1fr}}
.cell{border:1px solid var(--hairline);border-radius:4px;background:#FFFFFF;padding:26px;box-shadow:0 1px 3px rgba(27,24,57,0.05)}
.cell .k{font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--amber)}
.cell .v{margin-top:12px;font-size:15.5px;color:var(--salt);line-height:1.8}
.cell a{border-bottom:1px solid rgba(53,46,116,0.3);color:var(--brand)}
.cell a:hover{border-color:var(--amber);color:var(--amber)}

/* proof strip */
.proofs{display:grid;gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:4px;margin-top:30px;overflow:hidden}
@media(min-width:760px){.proofs{grid-template-columns:repeat(3,1fr)}}
.proofs>div{background:#FFFFFF;padding:22px 24px}
.proofs .k{font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--salt-dim)}
.proofs .v{font-family:var(--disp);font-weight:500;font-size:19px;color:var(--ink);margin-top:8px}
.proofs .m{font-family:var(--mono);font-size:12px;color:var(--amber);margin-top:6px}

/* ---------- data table ---------- */
.dtbl{margin-top:30px;overflow-x:auto;border:1px solid var(--hairline);border-radius:4px;background:#FFFFFF;box-shadow:0 1px 3px rgba(27,24,57,0.05)}
.dtbl table{border-collapse:collapse;width:100%;min-width:720px;font-size:13.5px}
.dtbl th,.dtbl td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--hairline);white-space:nowrap;color:var(--salt)}
.dtbl tr:last-child td{border-bottom:0}
.dtbl thead th{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;color:var(--slate);border-bottom:1px solid var(--brand)}
.dtbl td{font-family:var(--mono);font-variant-numeric:tabular-nums}
.dtbl tbody tr:hover td{background:#FAFAFE}
.dtbl .lane{color:var(--ink)}
.dtbl .lane b{color:var(--amber);font-weight:500}
.chip{display:inline-flex;align-items:center;gap:7px;padding:4px 11px 4px 8px;border-radius:3px;border:1px solid;font-family:var(--mono);font-size:12.5px;font-weight:500}
.chip svg{width:13px;height:13px;display:block}
.chip.dk-open{background:var(--starboard-surface);color:var(--starboard-ink);border-color:var(--starboard)}
.chip.dk-closing{background:var(--beacon-surface);color:var(--beacon-ink);border-color:var(--beacon)}
.chip.dk-closed{background:#FCEAEA;color:#A32B2B;border-color:rgba(187,0,0,0.4)}

/* ---------- forms ---------- */
.formcard{margin-top:40px;border:1px solid var(--hairline);border-radius:4px;background:#FFFFFF;padding:clamp(22px,3vw,36px);max-width:760px;box-shadow:0 1px 3px rgba(27,24,57,0.05)}
.formcard label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--salt-dim);margin:18px 0 8px}
.formcard input,.formcard select,.formcard textarea{width:100%;background:#FBFBFE;border:1px solid var(--line-strong);border-radius:3px;color:var(--salt);font-family:var(--body);font-size:15px;padding:12px 14px}
.formcard input:focus,.formcard select:focus,.formcard textarea:focus{outline:2px solid var(--brand-hi);outline-offset:1px;border-color:transparent}
.formcard .grid2{display:grid;gap:0 18px}
@media(min-width:640px){.formcard .grid2{grid-template-columns:1fr 1fr}}
.formcard .row{margin-top:26px;display:flex;gap:16px;flex-wrap:wrap}
.handoff{display:none;margin-top:26px;border-inline-start:3px solid var(--amber);background:rgba(187,0,0,0.04);padding:18px 20px;border-radius:3px}
.handoff.show{display:block}
.handoff p{color:var(--salt-dim);font-size:14px}
.handoff .row{margin-top:14px;display:flex;gap:14px;flex-wrap:wrap}

/* ---------- CTA band ---------- */
.ctaband{position:relative;z-index:5;border-top:1px solid var(--hairline);background:radial-gradient(90% 120% at 50% 0%,rgba(53,46,116,0.06),transparent 55%),var(--bg-2)}
.ctaband .wrap{padding-block:clamp(70px,9vw,120px);text-align:center}
.ctaband h2{font-family:var(--disp);font-weight:600;font-size:clamp(30px,4.4vw,58px);letter-spacing:-0.02em;max-width:22ch;margin-inline:auto;text-wrap:balance;color:var(--ink)}
.ctaband p{margin:18px auto 0;max-width:52ch;color:var(--salt-dim)}
.ctaband .row{margin-top:32px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap}

/* ---------- portal band ---------- */
.portalband{position:relative;z-index:5;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);background:radial-gradient(110% 140% at 80% 10%,rgba(53,46,116,0.10),transparent 55%),linear-gradient(180deg,#F5F5FB,#FBFBFE);overflow:hidden}
.portalband .wrap{padding-block:clamp(64px,8vw,110px);position:relative;z-index:2}
.portalband .grid{display:grid;gap:40px;align-items:center}
@media(min-width:960px){.portalband .grid{grid-template-columns:1.05fr 1fr}}
.portalband h2{font-family:var(--disp);font-weight:600;font-size:clamp(28px,3.6vw,48px);letter-spacing:-0.02em;line-height:1.06;margin-top:14px;text-wrap:balance;color:var(--ink)}
.portalband .lead{margin-top:16px;color:var(--salt-dim);max-width:52ch}
.portalband ul.feat{list-style:none;margin-top:22px;display:grid;gap:10px}
.portalband ul.feat li{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--salt-dim)}
.portalband ul.feat li svg{flex:0 0 auto;width:17px;height:17px;margin-top:2px;color:var(--starboard)}
.portalband .row{margin-top:30px;display:flex;gap:16px;flex-wrap:wrap}

/* ---------- floating WhatsApp chat ---------- */
.wafab{position:fixed;right:22px;bottom:22px;z-index:25;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(37,211,102,0.4),0 2px 6px rgba(27,24,57,0.18);transition:transform 180ms var(--ui),box-shadow 180ms var(--ui);animation:waglow 3s ease-in-out infinite}
.wafab svg{width:30px;height:30px;fill:#fff}
.wafab:hover{transform:translateY(-3px) scale(1.05);animation-play-state:paused;box-shadow:0 8px 26px rgba(37,211,102,0.6),0 3px 10px rgba(27,24,57,0.2)}
@keyframes waglow{0%,100%{box-shadow:0 4px 16px rgba(37,211,102,0.32),0 2px 6px rgba(27,24,57,0.18)}50%{box-shadow:0 4px 26px rgba(37,211,102,0.62),0 2px 6px rgba(27,24,57,0.18)}}
@media(max-width:720px){.wafab{right:16px;bottom:16px;width:52px;height:52px}.wafab svg{width:28px;height:28px}}

/* ---------- ticker / marquee ---------- */
.marquee{position:relative;z-index:5;overflow:hidden;border-block:1px solid var(--hairline);background:#F3F3FA}
.marquee .track{display:flex;gap:0;width:max-content;animation:mq 42s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee span{font-family:var(--mono);font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--salt-dim);padding:14px 28px;white-space:nowrap}
.marquee b{color:var(--amber);font-weight:500}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- stat counters ---------- */
.stats{display:grid;gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:4px;overflow:hidden}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}
@media(max-width:759px){.stats{grid-template-columns:1fr 1fr}}
.stats>div{background:#FFFFFF;padding:24px}
.stats .n{font-family:var(--disp);font-weight:600;font-size:clamp(30px,3.4vw,46px);color:var(--brand);font-variant-numeric:tabular-nums}
.stats .n b{color:var(--amber);font-weight:600}
.stats .l{font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--salt-dim);margin-top:8px}

/* ---------- footer: deep indigo, bookending the light page ---------- */
footer.site{position:relative;z-index:5;border-top:3px solid var(--amber);background:#221D5B}
footer.site .fgrid{display:grid;gap:34px;padding-block:clamp(44px,6vw,70px)}
@media(min-width:860px){footer.site .fgrid{grid-template-columns:2fr 1fr 1fr 1.2fr}}
footer.site .fl img{height:46px;width:auto;background:#FFFFFF;border-radius:6px;padding:7px 12px;box-sizing:content-box}
footer.site .fl p{margin-top:16px;color:#B5B1DC;font-size:13.5px;max-width:34ch}
footer.site h4{font-family:var(--mono);font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:#8F89C9;font-weight:500}
footer.site ul{list-style:none;margin-top:14px}
footer.site li{margin-top:9px}
footer.site li a{color:#CDCAE9;font-size:14px;transition:color 150ms var(--ui)}
footer.site li a:hover{color:#FFFFFF}
footer.site .fbase{border-top:1px solid rgba(255,255,255,0.14);padding-block:20px;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
footer.site .fbase p{font-family:var(--mono);font-size:11px;letter-spacing:0.08em;color:#8F89C9}

/* ---------- voyage progress line (home) ---------- */
.voyage{position:fixed;z-index:15;top:calc(var(--head-h) + 10px);bottom:24px;left:22px;width:1px;background:var(--line);display:none}
.voyage i{position:absolute;inset:0;background:linear-gradient(180deg,var(--brand),var(--amber));transform:scaleY(0);transform-origin:top}
.voyage s{position:absolute;left:50%;top:0;width:9px;height:9px;border:1px solid var(--amber);border-radius:50%;transform:translate(-50%,-50%);background:#fff}
@media(min-width:980px){body.on-home .voyage{display:block}}


/* ---------- services mega dropdown ---------- */
.navdrop{position:relative;display:flex;align-items:center}
.navdrop>a{cursor:pointer}
.mnav .mlab{font-family:var(--mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--salt-dim);padding:16px 0 4px}
.navdrop>a .car{display:inline-block;width:9px;height:6px;margin-left:7px;vertical-align:middle;transition:transform 200ms var(--ui)}
.navdrop:hover>a .car,.navdrop:focus-within>a .car{transform:rotate(180deg)}
.dpanel{position:absolute;top:calc(100% + 8px);left:-24px;width:580px;display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:14px;background:rgba(255,255,255,0.93);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);border:1px solid var(--hairline);border-radius:8px;box-shadow:0 24px 60px rgba(27,24,57,0.16),0 2px 8px rgba(27,24,57,0.06);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity 200ms var(--ui),transform 240ms var(--ui)}
.navdrop::after{content:"";position:absolute;top:100%;left:0;right:0;height:10px}
.navdrop:hover .dpanel,.navdrop:focus-within .dpanel{opacity:1;pointer-events:auto;transform:none}
header.site nav.desk .dpanel a{font-family:var(--body);font-size:13px;font-weight:400;letter-spacing:0;white-space:normal;color:var(--salt);padding:10px 12px;border-radius:5px;display:block;transition:background 140ms var(--ui),color 140ms var(--ui)}
header.site nav.desk .dpanel a::after{display:none}
header.site nav.desk .dpanel a:hover{background:rgba(53,46,116,0.07);color:var(--brand)}
.dpanel a b{display:block;font-family:var(--disp);font-weight:600;font-size:15px;letter-spacing:-0.01em}
.dpanel a span{display:block;margin-top:2px;font-size:12px;color:var(--salt-dim);line-height:1.35}
header.site nav.desk .dpanel a.dall{grid-column:1/-1;text-align:center;border-top:1px solid var(--hairline);border-radius:0;margin-top:8px;padding-top:13px;color:var(--brand);font-family:var(--mono);font-size:11px;letter-spacing:0.12em;text-transform:uppercase}
header.site nav.desk .dpanel a.dall:hover{color:var(--amber);background:none}
.mnav .msub{display:grid;grid-template-columns:1fr 1fr;gap:2px 18px;padding:10px 0 14px;border-bottom:1px solid var(--line)}
.mnav .msub a{font-family:var(--body);font-size:14.5px;font-weight:500;color:var(--salt-dim);padding:6px 0;border:0}
.mnav .msub a:hover{color:var(--brand)}

/* ---------- service detail pages ---------- */
.pg h1 .hw{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:0.08em;margin-bottom:-0.08em}
.pg h1 .hw span{display:inline-block;transform:translateY(112%);transition:transform 1s var(--ui)}
.pg h1 .hw:nth-child(2) span{transition-delay:90ms}
.pg h1 .hw:nth-child(3) span{transition-delay:180ms}
.loaded .pg h1 .hw span{transform:none}
.pg h1 b.rd2{color:var(--amber)}
.svcstats{margin-top:34px;display:flex;gap:clamp(18px,2.4vw,44px);flex-wrap:wrap}
.svcstats .n{font-family:var(--disp);font-weight:600;font-size:clamp(24px,2.4vw,36px);letter-spacing:-0.02em;color:var(--brand)}
.svcstats .l{font-family:var(--mono);font-size:10.5px;letter-spacing:0.13em;text-transform:uppercase;color:var(--salt-dim);margin-top:4px}
.svchero{position:relative;margin-top:clamp(30px,4vw,54px);border:1px solid var(--line);border-radius:8px;background:radial-gradient(120% 130% at 70% 0%,#EFF1F9 0%,#E7EAF6 55%,#DFE3F3 100%);padding:clamp(18px,3vw,40px);overflow:hidden}
.svchero svg{display:block;width:min(880px,100%);margin-inline:auto;height:auto}
.svchero .dline{stroke:var(--brand);stroke-width:1.6;fill:none;stroke-linecap:round}
.svchero .dline.a{stroke:var(--amber)}
.svchero .dline.s{stroke:var(--salt-dim);opacity:0.75}
.svchero .fillbox{fill:rgba(53,46,116,0.07);stroke:var(--brand);stroke-width:1.4}
.svchero .fillbox.r{fill:rgba(187,0,0,0.07);stroke:var(--amber)}
.svchero .beacon{animation:svcblink 2.2s ease-in-out infinite}
.svchero .cap{margin-top:12px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--salt-dim)}
@keyframes svcblink{0%,100%{opacity:0.25}50%{opacity:1}}
.svc-bob{animation:svcbob 5.5s ease-in-out infinite}
@keyframes svcbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.svc-drift{animation:svcdrift 8s ease-in-out infinite alternate}
@keyframes svcdrift{0%{transform:translateX(-26px)}100%{transform:translateX(26px)}}
.svc-wave{animation:svcwave 4.5s ease-in-out infinite}
@keyframes svcwave{0%,100%{transform:translateX(0)}50%{transform:translateX(-16px)}}
.svcsec{padding-block:clamp(34px,5vw,64px)}
.svcsec h2.sec{font-family:var(--disp);font-weight:600;font-size:clamp(26px,3.2vw,42px);letter-spacing:-0.02em;line-height:1.06;color:var(--ink)}
.storyrows{margin-top:30px;border-top:1px solid var(--line)}
.storyrow{display:grid;grid-template-columns:76px 1fr;gap:18px;padding:28px 0;border-bottom:1px solid var(--line);align-items:start}
.storyrow .no{font-family:var(--disp);font-weight:600;font-size:36px;color:var(--brand);opacity:0.85;line-height:1}
.storyrow h3{font-family:var(--disp);font-weight:600;font-size:21px;letter-spacing:-0.01em;color:var(--ink)}
.storyrow p{margin-top:8px;font-size:14.5px;color:var(--salt-dim);max-width:70ch;line-height:1.6}
.incgrid{margin-top:30px;display:grid;grid-template-columns:1.2fr 0.8fr;gap:clamp(20px,3vw,44px);align-items:start}
@media(max-width:900px){.incgrid{grid-template-columns:1fr}}
.inclist{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:640px){.inclist{grid-template-columns:1fr}}
.incitem{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:3px;background:var(--deck);padding:14px 16px;font-size:14px;color:var(--salt);line-height:1.5;transition:border-color 160ms var(--ui),transform 160ms var(--ui)}
.incitem:hover{border-color:rgba(53,46,116,0.35);transform:translateY(-1px)}
.incitem svg{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:var(--starboard)}
.factpanel{border:1px solid var(--line);border-left:3px solid var(--amber);border-radius:3px;background:var(--bg-2);padding:8px 22px 14px}
.factrow{padding:12px 0;border-bottom:1px solid var(--line)}
.factrow:last-child{border-bottom:0}
.factrow .k{font-family:var(--mono);font-size:10px;letter-spacing:0.13em;text-transform:uppercase;color:var(--amber)}
.factrow .v{margin-top:3px;font-size:14px;color:var(--salt);line-height:1.5}
.relgrid{margin-top:26px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.relcard{display:block;border:1px solid var(--line);border-radius:3px;background:var(--deck);padding:20px;transition:border-color 180ms var(--ui),box-shadow 180ms var(--ui),transform 180ms var(--ui)}
.relcard:hover{border-color:rgba(53,46,116,0.42);box-shadow:0 12px 30px rgba(27,24,57,0.1);transform:translateY(-2px)}
.relcard .tag{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--amber)}
.relcard h3{margin-top:8px;font-family:var(--disp);font-weight:600;font-size:18px;letter-spacing:-0.01em;color:var(--ink)}
.relcard p{margin-top:6px;font-size:13px;color:var(--salt-dim);line-height:1.5}
.relcard .arr{display:inline-block;margin-top:10px;color:var(--brand);font-size:14px}


/* ---------- service hero image collage ---------- */
.svcgrid{display:grid;grid-template-columns:1.02fr 0.98fr;gap:clamp(28px,4vw,64px);align-items:center}
@media(max-width:980px){.svcgrid{grid-template-columns:1fr}}
.svcvis{position:relative;padding-bottom:13%}
@media(max-width:980px){.svcvis{margin-top:10px}}
.svcvis .ph{overflow:hidden;border-radius:10px;border:1px solid var(--line);background:var(--bg-2);box-shadow:0 24px 60px rgba(27,24,57,0.2)}
.svcvis .ph img{display:block;width:100%;height:100%;object-fit:cover;animation:svcken 18s ease-in-out infinite alternate}
.svcvis .ph1{width:86%;aspect-ratio:7/5;animation:svcbob 7s ease-in-out infinite}
.svcvis .ph2{position:absolute;right:0;bottom:0;width:54%;aspect-ratio:5/4;border:5px solid #fff;box-shadow:0 20px 48px rgba(27,24,57,0.3);animation:svcbob 7s ease-in-out 1.4s infinite}
.svcvis .ph2 img{animation-delay:3s;animation-duration:22s}
@keyframes svcken{0%{transform:scale(1.03) translateX(0)}100%{transform:scale(1.14) translateX(-3%)}}
.svcvis .vchip{position:absolute;left:-10px;top:-14px;z-index:2;font-family:var(--mono);font-size:10px;letter-spacing:0.13em;text-transform:uppercase;color:#fff;background:var(--brand);border-radius:3px;padding:8px 13px;box-shadow:0 8px 22px rgba(53,46,116,0.4);animation:svcbob 6s ease-in-out 0.8s infinite;max-width:78%}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  .wafab{animation:none}
  .svchero .beacon,.svc-bob,.svc-drift,.svc-wave,.svcvis .ph,.svcvis .ph img,.svcvis .vchip{animation:none}
  .pg h1 .hw span{transform:none;transition:none}
  .dpanel{transition:none}
  html{scroll-behavior:auto}
  [data-rv]{opacity:1;transform:none;transition:none}
  .dline{stroke-dashoffset:0;transition:none}
  .marquee .track{animation:none}
  .voyage{display:none !important}
  .mnav a{transition:none}
}
