/* ============ TOKENS ============ */
:root{
  --ink:#0A1020; --ink-2:#1D2637; --body:#48546A; --muted:#66738A;
  --line:#E6EBF2; --line-2:#EEF2F8;
  --bg:#FFFFFF; --bg-soft:#F5F8FD; --bg-tint:#EEF3FF;
  --brand:#1664fe; --brand-600:#0f4fd6; --brand-050:#EAF1FF; --brand-2:#4d93ff;
  --grad:linear-gradient(135deg,#1664fe 0%,#4d93ff 100%);
  --grad-soft:linear-gradient(135deg,#EAF1FF 0%,#EAF6FF 100%);
  --shadow-sm:0 1px 2px rgba(13,30,70,.06),0 1px 3px rgba(13,30,70,.05);
  --shadow-md:0 10px 30px rgba(15,45,120,.09);
  --shadow-lg:0 28px 64px rgba(15,45,120,.15);
  --r-sm:10px; --r:16px; --r-lg:22px; --r-xl:28px;
  --maxw:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif; color:var(--body); background:var(--bg); line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:"Sora","Inter",sans-serif; color:var(--ink); line-height:1.12; letter-spacing:-.022em; font-weight:700}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
.container{max-width:var(--maxw); margin:0 auto; padding:0 24px}
section[id]{scroll-margin-top:96px}
.grad-text{background:var(--grad); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; padding-right:.02em}
.eyebrow{display:inline-flex; align-items:center; gap:8px; font-family:"Inter"; font-weight:600; font-size:13px; letter-spacing:.15em; text-transform:uppercase; color:var(--brand)}
.eyebrow::before{content:""; width:22px; height:2px; background:var(--grad); border-radius:2px}
.section{padding:100px 0}
.section-head{max-width:730px; margin:0 auto 58px; text-align:center}
.section-head h2{font-size:clamp(28px,4vw,45px); margin:15px 0 16px}
.section-head p{font-size:18px; color:var(--muted)}

/* ============ BUTTONS ============ */
.btn{display:inline-flex; align-items:center; gap:9px; font-weight:600; font-size:15px; padding:13px 22px; border-radius:12px; border:1px solid transparent; cursor:pointer; transition:.22s ease; white-space:nowrap; font-family:"Inter"}
.btn svg{width:17px;height:17px}
.btn-primary{background:var(--brand); color:#fff; box-shadow:0 8px 20px rgba(22,100,254,.26)}
.btn-primary:hover{background:var(--brand-600); transform:translateY(-2px); box-shadow:0 14px 28px rgba(22,100,254,.32)}
.btn-ghost{background:#fff; color:var(--ink); border-color:var(--line)}
.btn-ghost:hover{border-color:var(--brand); color:var(--brand); transform:translateY(-2px)}
.btn-white{background:#fff; color:var(--brand)} .btn-white:hover{transform:translateY(-2px); box-shadow:var(--shadow-md)}
.link-arrow{display:inline-flex; align-items:center; gap:7px; font-weight:600; color:var(--brand); font-size:15px}
.link-arrow svg{width:16px;height:16px; transition:.2s}
.link-arrow:hover svg{transform:translateX(4px)}

/* ============ ANNOUNCEMENT ============ */
.announce{background:linear-gradient(90deg,#0A1B44,#123A8F); color:#d9e4fb; font-size:13.5px}
.announce .container{display:flex; align-items:center; justify-content:center; gap:14px; padding:9px 24px; flex-wrap:wrap}
.announce b{color:#fff}
.announce .pill{background:rgba(77,147,255,.24); color:#bcd4ff; font-weight:700; font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:3px 9px; border-radius:20px}
.announce a{color:#bcd4ff; font-weight:600; display:inline-flex; align-items:center; gap:5px}
.announce a svg{width:14px;height:14px}

/* ============ HEADER ============ */
.site-header{position:sticky; top:0; z-index:60; background:rgba(255,255,255,.85); backdrop-filter:saturate(180%) blur(14px); border-bottom:1px solid var(--line)}
.nav{display:flex; align-items:center; justify-content:space-between; height:74px}
.brand-link{display:inline-flex; align-items:center}
.brand-img{height:34px; width:auto; display:block}
.nav-links{display:flex; align-items:center; gap:4px; list-style:none}
.nav-links > li{position:relative}
.nav-links > li > a{display:flex; align-items:center; gap:5px; padding:10px 14px; border-radius:10px; font-weight:500; font-size:15px; color:var(--ink-2); transition:.18s}
.nav-links > li > a:hover{background:var(--bg-soft); color:var(--brand)}
.nav-links .caret{width:14px;height:14px; opacity:.6}

/* mega menu */
.mega{position:absolute; top:calc(100% + 10px); left:0; transform:translateY(8px); width:1140px; max-width:calc(100vw - 48px); background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transition:.2s; display:grid; grid-template-columns:1.75fr 1fr; overflow:hidden}
.mega-sol{display:block; width:1040px}
.mega-sol .mega-sol-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:2px 18px; padding:26px 30px}
.msol-col{display:flex; flex-direction:column; min-width:0}
.msol-label{font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:#8a97ad; padding:0 10px; margin:0 0 6px}
.msol-label + .msol-item{margin-top:0}
.mega-sol-grid .msol-item{padding:8px 10px; font-size:14px; border-radius:9px; gap:0}
.mm-body .mm-sublabel{display:block; font-size:10.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#9aa6bb; padding:13px 10px 3px 6px}
.nav-links > li:hover .mega{opacity:1; visibility:visible; transform:translateY(0)}
.mega-main{padding:32px; display:grid; grid-template-columns:1fr 1fr; gap:14px 24px}
.mega-item{display:flex; flex-direction:column; gap:6px; padding:18px 20px; border-radius:13px; transition:.16s}
.mega-item .mega-title{font-family:"Sora",sans-serif; font-weight:700; font-size:14.5px; color:#0f1b30; line-height:1.25; margin-bottom:1px}
.mega-item:hover{background:var(--bg-soft)}
.mega-logo{height:30px; width:auto; max-width:154px; object-fit:contain; object-position:left center}
.mega-item span{font-size:13px; color:var(--muted); line-height:1.5; display:block}
.msol-item{display:flex; align-items:center; gap:12px; padding:16px 17px; border-radius:12px; font-weight:600; font-size:15px; color:var(--ink-2); transition:.16s}
.msol-item:hover{background:var(--bg-soft); color:var(--brand)}
.mega-ico{width:38px;height:38px;flex:0 0 auto; border-radius:10px; background:var(--grad-soft); display:grid; place-items:center; color:var(--brand)}
.mega-ico svg{width:19px;height:19px}
.mega-feature{background:linear-gradient(150deg,#0A1B44,#123A8F); color:#fff; padding:30px 28px; display:flex; flex-direction:column; justify-content:space-evenly; gap:0}
.mega-feat-eyebrow{font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#9dc2ff; font-weight:700}
.mega-feature h4{color:#fff; font-size:17px; line-height:1.22}
.mega-feature p{font-size:12.5px; color:#c6d5ee; line-height:1.5}
.mega-feat-cta{margin-top:6px; font-size:12.5px; font-weight:700; color:#fff}
.mega-feature:hover .mega-feat-cta{text-decoration:underline}
.mf-flow{display:flex; align-items:center}
.mf-text{display:flex; flex-direction:column; gap:7px}
.mf-node{width:37px; height:37px; border-radius:11px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.13); display:grid; place-items:center; flex:none; color:#9dc2ff}
.mf-node svg{width:18px; height:18px}
.mf-line{flex:1; height:2px; background:linear-gradient(90deg, rgba(157,194,255,.45), rgba(157,194,255,.18))}

.nav-right{display:flex; align-items:center; gap:14px}
.lang{display:flex; align-items:center; background:var(--bg-soft); border:1px solid var(--line); border-radius:10px; overflow:hidden}
.lang button{border:0; background:transparent; padding:7px 11px; font-size:13px; font-weight:700; color:var(--muted); cursor:pointer; font-family:"Inter"}
.lang button.active{background:var(--brand); color:#fff}
.hamburger{display:none; width:44px;height:44px; border:1px solid var(--line); border-radius:11px; background:#fff; cursor:pointer; align-items:center; justify-content:center}
.hamburger svg{width:22px;height:22px; color:var(--ink)}

/* ============ HERO ============ */
.hero{position:relative; overflow:hidden; border-bottom:1px solid var(--line-2); background:
   radial-gradient(55% 100% at 85% -8%, #D8E6FF 0%, rgba(216,230,255,0) 60%),
   radial-gradient(46% 85% at 2% 108%, #DCEBFF 0%, rgba(220,235,255,0) 55%),
   linear-gradient(180deg,#EFF5FF 0%, #FFFFFF 72%)}
.hero-glow{position:absolute; top:-12%; right:-6%; width:620px; height:620px; background:radial-gradient(circle, rgba(22,100,254,.15), transparent 62%); filter:blur(18px); pointer-events:none; z-index:0}
.hero .container{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; padding-top:94px; padding-bottom:106px}
.hero-badge{display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-sm); border-radius:30px; padding:6px 15px 6px 6px; font-size:13px; font-weight:600; color:var(--ink-2); margin-bottom:22px}
.hero-badge .dot{width:22px;height:22px; border-radius:50%; background:var(--grad); display:grid; place-items:center}
.hero-badge .dot svg{width:12px;height:12px;color:#fff}
.hero h1{font-size:clamp(35px,5.2vw,59px); font-weight:800; line-height:1.08; margin-bottom:22px}
.hero p.lead{font-size:19px; color:var(--body); max-width:560px; margin-bottom:32px}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:36px}
.hero-mini{display:flex; gap:34px; flex-wrap:wrap}
.hero-mini .m{display:flex; flex-direction:column}
.hero-mini .m b{font-family:"Sora"; font-size:27px; color:var(--ink); font-weight:800; line-height:1}
.hero-mini .m span{font-size:13px; color:var(--muted); margin-top:6px}

.hero-visual{position:relative}
.hv-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); box-shadow:var(--shadow-lg); overflow:hidden}
.hv-top{display:flex; align-items:center; gap:8px; padding:14px 18px; border-bottom:1px solid var(--line-2); background:var(--bg-soft)}
.hv-top .d{width:11px;height:11px;border-radius:50%}
.hv-top .d1{background:#FF5F57}.hv-top .d2{background:#FEBC2E}.hv-top .d3{background:#28C840}
.hv-top .t{margin-left:8px; font-size:12.5px; font-weight:600; color:var(--muted); font-family:"Inter"}
.hv-body{padding:20px}
.hv-row{display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 15px; border:1px solid var(--line); border-radius:14px; margin-bottom:11px; background:#fff; transition:.3s}
.hv-row:hover{border-color:#cdd8ea; transform:translateX(2px)}
.hv-left{display:flex; align-items:center; gap:12px}
.hv-ico{width:38px;height:38px;border-radius:11px; display:grid; place-items:center; flex:0 0 auto}
.hv-ico svg{width:19px;height:19px}
.i-blue{background:#EAF1FF;color:#1664fe}.i-cyan{background:#E6F2FF;color:#2b7fff}.i-green{background:#E6F7EE;color:#12A85B}.i-amber{background:#FFF3E0;color:#E5920B}
.hv-h{font-family:"Inter"; font-size:14px; font-weight:700; color:var(--ink); margin-bottom:1px; letter-spacing:normal}
.hv-row p{font-size:12px; color:var(--muted); margin:0}
.tag{font-size:11px; font-weight:700; padding:4px 10px; border-radius:20px; white-space:nowrap}
.tag-ok{background:#E6F7EE;color:#12A85B}.tag-scan{background:#EAF1FF;color:#1664fe}
.hv-bar{height:7px;border-radius:6px;background:#EDF1F7;overflow:hidden;margin-top:6px}
.hv-bar i{display:block;height:100%;background:var(--grad);border-radius:6px;width:0;animation:fill 2.2s .3s ease forwards}
@keyframes fill{to{width:82%}}
.float-chip{position:absolute; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-md); padding:11px 14px; display:flex; align-items:center; gap:10px; font-size:13px; font-weight:600; color:var(--ink)}
.float-chip svg{width:18px;height:18px}
.fc-1{top:-22px; right:-14px; animation:floaty 5s ease-in-out infinite}
.fc-2{bottom:-20px; left:-20px; animation:floaty 6s ease-in-out .8s infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* ============ TRUST MARQUEE ============ */
.trust{padding:56px 0 28px; border-top:1px solid var(--line-2)}
.trust .tl{text-align:center; font-size:13px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:var(--muted); margin-bottom:32px}
.marquee{position:relative; overflow:hidden; -webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee-track{display:flex; align-items:center; gap:80px; width:max-content; animation:scrollx 120s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes scrollx{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee img{height:108px; width:auto; max-width:340px; object-fit:contain; filter:grayscale(1); opacity:.62; transition:.25s; flex:0 0 auto}
.marquee img:hover{filter:grayscale(0); opacity:1}

/* ============ PRODUCTS ============ */
.products{background:var(--bg-soft)}
.prod-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:24px}
.prod-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:32px; transition:.25s; display:flex; flex-direction:column}
.prod-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.prod-logo-img{height:34px; width:auto; max-width:210px; object-fit:contain; object-position:left center; margin-bottom:16px}
.prod-name{font-family:"Sora",sans-serif; font-size:20px; font-weight:800; color:var(--ink); letter-spacing:-.01em; line-height:1.2; margin-bottom:12px}
.prod-card > p{font-size:15px; color:var(--body); margin-bottom:20px}
.feat{list-style:none; margin:0 0 24px; display:flex; flex-direction:column; gap:10px}
.feat li{display:flex; align-items:flex-start; gap:10px; font-size:14.5px; color:var(--ink-2); font-weight:500}
.feat li svg{width:18px;height:18px;color:var(--brand); flex:0 0 auto; margin-top:2px}
.prod-card .link-arrow{margin-top:auto}

/* ============ LIFECYCLE ============ */
.flow{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; position:relative}
.flow::before{content:""; position:absolute; top:33px; left:12%; right:12%; height:2px; background:var(--grad); opacity:.3; z-index:0}
.flow-step{position:relative; z-index:1; text-align:center; padding:0 8px}
.flow-num{width:66px;height:66px; margin:0 auto 18px; border-radius:20px; background:#fff; border:1px solid var(--line); box-shadow:var(--shadow-md); display:grid; place-items:center; color:var(--brand)}
.flow-num svg{width:28px;height:28px}
.flow-step h3{font-size:18px; margin-bottom:8px}
.flow-step p{font-size:14px; color:var(--muted)}
.flow-step .step-i{position:absolute; top:-8px; left:50%; transform:translateX(20px); width:24px;height:24px;border-radius:50%; background:var(--grad); color:#fff; font-size:12px; font-weight:700; display:grid;place-items:center; font-family:"Sora"}

/* ============ NUMBERS ============ */
.numbers{background:linear-gradient(135deg,#081235 0%,#0f2f8c 55%,#1664fe 115%); color:#fff; position:relative; overflow:hidden}
.numbers::after{content:""; position:absolute; inset:0; background:radial-gradient(42% 60% at 86% 18%, rgba(77,147,255,.35), transparent 60%); pointer-events:none}
.numbers .section-head h2{color:#fff}
.numbers .section-head p{color:#b9c9e8}
.num-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; position:relative; z-index:1}
.num-cell{text-align:center; padding:22px; border:1px solid rgba(255,255,255,.13); border-radius:var(--r-lg); background:rgba(255,255,255,.05)}
.num-cell b{display:block; font-family:"Sora"; font-size:clamp(34px,4.4vw,50px); font-weight:800; line-height:1; background:linear-gradient(120deg,#fff,#a9c9ff); -webkit-background-clip:text; background-clip:text; color:transparent}
.num-cell span{display:block; margin-top:10px; font-size:14.5px; color:#c6d5ee; font-weight:500}

/* ============ WHY ============ */
.why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px}
.why-card{padding:30px; border:1px solid var(--line); border-radius:var(--r-lg); background:#fff; transition:.25s}
.why-card:hover{border-color:#d7e0ef; box-shadow:var(--shadow-md); transform:translateY(-4px)}
.why-ico{width:52px;height:52px;border-radius:14px; background:var(--grad); display:grid;place-items:center; color:#fff; margin-bottom:18px; box-shadow:0 8px 18px rgba(22,100,254,.24)}
.why-ico svg{width:25px;height:25px}
.why-card h3{font-size:18px; margin-bottom:9px}
.why-card p{font-size:14.5px; color:var(--muted)}

/* ============ SPOTLIGHT ============ */
.spotlight{background:var(--bg-soft)}
.spot-wrap{background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); overflow:hidden; display:grid; grid-template-columns:1.15fr .85fr; box-shadow:var(--shadow-md)}
.spot-l{padding:54px}
.spot-l .eyebrow{margin-bottom:16px}
.spot-l h2{font-size:clamp(24px,3vw,35px); margin-bottom:16px}
.spot-l p{font-size:16.5px; color:var(--body); margin-bottom:28px}
.spot-r{background:linear-gradient(135deg,#0A1B44,#123A8F); color:#fff; padding:54px; display:flex; flex-direction:column; justify-content:center; gap:22px}
.spot-stat b{font-family:"Sora"; font-size:40px; font-weight:800; background:linear-gradient(120deg,#fff,#a9c9ff); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1}
.spot-stat span{display:block; color:#c6d5ee; font-size:14px; margin-top:6px}
.spot-stat + .spot-stat{border-top:1px solid rgba(255,255,255,.15); padding-top:22px}

/* ============ RESOURCES ============ */
.res-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
.res-card{border:1px solid var(--line); border-radius:var(--r-lg); background:#fff; padding:30px; transition:.25s; display:flex; flex-direction:column}
.res-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.res-ico{width:50px;height:50px;border-radius:14px; background:var(--grad-soft); display:grid;place-items:center; color:var(--brand); margin-bottom:18px}
.res-ico svg{width:24px;height:24px}
.res-kicker{font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--brand); margin-bottom:8px}
.res-card h3{font-size:19px; margin-bottom:10px}
.res-card p{font-size:14.5px; color:var(--muted); margin-bottom:20px}
.res-card .link-arrow{margin-top:auto}

/* ============ SOLUTIONS + COMPLIANCE ============ */
.solutions-sec{background:var(--bg-soft)}
.sol-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.sol-card{display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:28px; transition:.25s}
.sol-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.sol-ico{width:50px;height:50px;border-radius:14px; background:var(--grad-soft); display:grid;place-items:center; color:var(--brand); margin-bottom:18px}
.sol-ico svg{width:25px;height:25px}
.sol-card h3{font-size:18px; margin-bottom:9px}
.sol-card p{font-size:14.5px; color:var(--muted); margin-bottom:18px}
.sol-card .link-arrow{margin-top:auto; font-size:14px}
.compliance{background:#fff; border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2)}
.compliance .container{display:flex; align-items:center; justify-content:center; gap:26px 40px; flex-wrap:wrap; padding-top:32px; padding-bottom:32px}
.comp-label{font-size:13px; font-weight:600; letter-spacing:.05em; color:var(--muted); text-transform:uppercase}
.comp-badges{display:flex; gap:12px; flex-wrap:wrap; justify-content:center}
.comp-badges span{font-family:"Sora",sans-serif; font-weight:700; font-size:14px; color:var(--ink-2); border:1px solid var(--line); border-radius:10px; padding:8px 16px; background:var(--bg-soft)}

/* ============ FAQ ============ */
.faq-list{max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:12px}
.faq-item{border:1px solid var(--line); border-radius:14px; background:#fff; overflow:hidden; transition:.2s}
.faq-item[open]{border-color:#cdd8ea; box-shadow:var(--shadow-sm)}
.faq-item summary{list-style:none; cursor:pointer; padding:20px 22px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-family:"Sora",sans-serif; font-weight:700; font-size:16.5px; color:var(--ink); letter-spacing:-.01em}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary svg{width:20px;height:20px; color:var(--brand); flex:0 0 auto; transition:.25s}
.faq-item[open] summary svg{transform:rotate(180deg)}
.faq-a{padding:0 22px 22px; font-size:15px; color:var(--body); line-height:1.7}

/* ============ CTA BAND ============ */
.cta-band{padding:0 0 100px}
.cta-inner{background:linear-gradient(135deg,#1664fe 0%,#0b3fbf 100%); border-radius:var(--r-xl); padding:64px; text-align:center; color:#fff; position:relative; overflow:hidden}
.cta-inner::before{content:""; position:absolute; inset:0; background:radial-gradient(50% 120% at 15% 10%, rgba(255,255,255,.20), transparent 50%)}
.cta-inner > *{position:relative; z-index:1}
.cta-inner h2{color:#fff; font-size:clamp(26px,3.4vw,40px); margin-bottom:14px}
.cta-inner p{font-size:18px; color:rgba(255,255,255,.92); max-width:570px; margin:0 auto 30px}

/* ============ CONTACT ============ */
.contact{background:var(--bg-soft)}
.contact-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:52px; align-items:start}
.contact-l h2{font-size:clamp(28px,3.6vw,40px); margin:14px 0 16px}
.contact-l > p{font-size:17px; color:var(--muted); margin-bottom:30px}
.ci{display:flex; gap:14px; margin-bottom:20px; align-items:flex-start}
.ci-ico{width:44px;height:44px;border-radius:12px;background:#fff;border:1px solid var(--line); display:grid;place-items:center;color:var(--brand); flex:0 0 auto}
.ci-ico svg{width:20px;height:20px}
.ci-h{font-family:"Inter"; font-size:15px; font-weight:700; color:var(--ink); margin-bottom:2px; letter-spacing:normal}
.ci a,.ci span{font-size:14.5px; color:var(--muted)}
.ci a:hover{color:var(--brand)}
.form{background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); padding:36px; box-shadow:var(--shadow-md)}
.frow{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.field{margin-bottom:16px}
.field label{display:block; font-size:13px; font-weight:600; color:var(--ink-2); margin-bottom:7px}
.field input,.field textarea{width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:11px; font-family:"Inter"; font-size:14.5px; color:var(--ink); background:var(--bg-soft); transition:.18s}
.field input:focus,.field textarea:focus{outline:none; border-color:var(--brand); background:#fff; box-shadow:0 0 0 4px rgba(22,100,254,.1)}
.field textarea{resize:vertical; min-height:110px}
.consent{display:flex; gap:10px; align-items:flex-start; margin-bottom:18px}
.consent input{margin-top:3px; width:16px;height:16px; accent-color:var(--brand); flex:0 0 auto}
.consent label{font-size:12.5px; color:var(--muted); line-height:1.5}
.consent a{color:var(--brand); font-weight:600}
.form .btn-primary{width:100%; justify-content:center; padding:15px}
.form-note{text-align:center; font-size:12.5px; color:var(--muted); margin-top:12px}

/* ============ FOOTER ============ */
.footer{background:#080D1A; color:#93a3b8; padding:74px 0 0}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:32px; padding-bottom:54px}
.foot-logo{height:40px; width:auto; display:block; margin-bottom:18px}
.foot-brand p{font-size:14px; color:#8394ab; max-width:280px; margin-bottom:20px}
.socials{display:flex; gap:10px}
.socials a{width:40px;height:40px;border-radius:11px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.09); display:grid;place-items:center; color:#c3d0e2; transition:.2s}
.socials a:hover{background:var(--brand); color:#fff; border-color:var(--brand); transform:translateY(-3px)}
.socials a svg{width:19px;height:19px}
.foot-h{color:#fff; font-family:"Inter"; font-size:14px; font-weight:700; letter-spacing:.03em; margin-bottom:18px}
.foot-col ul{list-style:none; display:flex; flex-direction:column; gap:11px}
.foot-col a{font-size:14px; color:#93a3b8; transition:.16s}
.foot-col a:hover{color:#fff}
.foot-bottom{border-top:1px solid rgba(255,255,255,.09); padding:22px 0; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap}
.foot-bottom p{font-size:13px; color:#7787a0}
.foot-legal{display:flex; gap:22px; flex-wrap:wrap}
.foot-legal a{font-size:13px; color:#7787a0}
.foot-legal a:hover{color:#fff}

/* ============ PRODUCT / SOLUTION PAGES ============ */
.breadcrumb{border-bottom:1px solid var(--line-2); background:var(--bg-soft)}
.breadcrumb .container{display:flex; gap:9px; align-items:center; padding:13px 24px; font-size:13px; color:var(--muted); flex-wrap:wrap}
.breadcrumb a:hover{color:var(--brand)}
.breadcrumb svg{width:13px;height:13px;opacity:.5}
.pp-hero{position:relative; overflow:hidden; border-bottom:1px solid var(--line-2); background:radial-gradient(52% 100% at 88% -12%, var(--pp-tint,#D8E6FF) 0%, rgba(216,230,255,0) 60%), linear-gradient(180deg,#F2F7FF 0%,#FFFFFF 78%)}
.pp-hero .container{display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center; padding:60px 24px 70px; position:relative; z-index:1}
.pp-logo{height:42px; width:auto; max-width:250px; object-fit:contain; object-position:left center; margin-bottom:22px}
.pp-cat{display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--pp-accent,var(--brand)); margin-bottom:14px}
.pp-hero h1{font-size:clamp(29px,4.3vw,46px); font-weight:800; margin-bottom:18px}
.pp-hero .lead{font-size:18px; color:var(--body); margin-bottom:26px; max-width:560px}
.pp-meta{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:30px}
.pp-meta span{font-size:12.5px; font-weight:600; color:var(--ink-2); background:#fff; border:1px solid var(--line); border-radius:20px; padding:7px 13px; display:inline-flex; gap:6px; align-items:center}
.pp-meta svg{width:14px;height:14px;color:var(--pp-accent,var(--brand))}
.pp-cta{display:flex; gap:13px; flex-wrap:wrap}
.cap-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.cap-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:26px; transition:.25s}
.cap-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:#d7e0ef}
.cap-ico{width:48px;height:48px;border-radius:13px; background:var(--grad-soft); display:grid;place-items:center; color:var(--pp-accent,var(--brand)); margin-bottom:16px}
.cap-ico svg{width:24px;height:24px}
.cap-card h3{font-size:17px; margin-bottom:8px}
.cap-card p{font-size:14px; color:var(--muted)}
.plat-wrap{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:840px; margin:0 auto}
.plat-wrap span{font-size:13.5px; font-weight:600; color:var(--ink-2); background:#fff; border:1px solid var(--line); border-radius:10px; padding:9px 15px}
.edge-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px}
.edge-item{display:flex; gap:13px; align-items:flex-start; background:#fff; border:1px solid var(--line); border-radius:14px; padding:19px 20px}
.ei-ico{width:34px;height:34px;flex:0 0 auto;border-radius:9px;background:#E6F7EE;color:#12A85B;display:grid;place-items:center}
.ei-ico svg{width:18px;height:18px}
.edge-item h3{font-size:15px; margin-bottom:3px}
.edge-item p{font-size:13.5px; color:var(--muted); margin:0}
.lic-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px}
.lic-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:26px 22px; text-align:center; transition:.25s}
.lic-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)}
.lic-card.feat{border:2px solid var(--brand)}
.lic-tier{font-family:"Sora",sans-serif; font-size:19px; font-weight:800; color:var(--ink); margin-bottom:8px}
.lic-card p{font-size:13.5px; color:var(--muted)}
.lic-meta{display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin-bottom:28px}
.lic-meta span{font-size:13px; font-weight:600; color:var(--ink-2); background:var(--bg-soft); border:1px solid var(--line); border-radius:20px; padding:8px 15px; display:inline-flex; gap:7px; align-items:center}
.lic-meta svg{width:15px;height:15px;color:var(--brand)}
.lic-note{max-width:780px; margin:28px auto 0; text-align:center; font-size:13.5px; color:var(--muted); line-height:1.7}
.pp-viz{position:relative; z-index:1}
.pp-viz .hv-ico{background:var(--pp-soft,#EAF1FF); color:var(--pp-accent,var(--brand))}
.pp-orbit{position:absolute; inset:-8% -6%; z-index:0; pointer-events:none}
.pp-orbit i{position:absolute; border:1.5px solid var(--pp-ring,rgba(22,100,254,.13)); border-radius:50%; inset:0; animation:ppspin 24s linear infinite}
.pp-orbit i:nth-child(2){inset:12%; animation-duration:18s; animation-direction:reverse}
.pp-orbit i:nth-child(3){inset:26%; animation-duration:30s}
@keyframes ppspin{to{transform:rotate(360deg)}}

/* ============ SCREENSHOT FRAME ============ */
.shotframe{max-width:940px; margin:0 auto; border:1px solid var(--line); border-radius:16px; overflow:hidden; box-shadow:var(--shadow-lg); background:#fff}
.shotframe .bar{display:flex; align-items:center; gap:7px; padding:11px 16px; border-bottom:1px solid var(--line-2); background:var(--bg-soft)}
.shotframe .bar i{width:11px;height:11px;border-radius:50%;display:block}
.shotframe .bar .u{margin-left:10px; font-size:12px; color:var(--muted); font-family:"Inter"}
.shotframe img{width:100%; height:auto; display:block}
.shot-cap{max-width:940px; margin:14px auto 0; text-align:center; font-size:13px; color:var(--muted)}

/* ============ PACKAGE / FEATURE TABLE ============ */
.pkg-wrap{max-width:960px; margin:0 auto; overflow-x:auto; border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:var(--shadow-md)}
.pkg-table{width:100%; border-collapse:collapse; min-width:660px}
.pkg-table th,.pkg-table td{padding:13px 16px; border-bottom:1px solid var(--line-2); font-size:14px; text-align:left}
.pkg-table thead th{background:#fff; font-family:"Sora",sans-serif; font-weight:800; color:var(--ink); border-bottom:2px solid var(--line)}
.pkg-table thead th:not(:first-child){text-align:center; width:108px}
.pkg-table td:not(:first-child){text-align:center}
.pkg-table tbody tr:hover{background:var(--bg-soft)}
.pkg-grp td{background:var(--bg-soft); font-family:"Sora",sans-serif; font-weight:700; font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--brand)}
.pkg-feat{color:var(--ink-2); font-weight:500}
.pkg-y{color:var(--brand); font-weight:800}
.pkg-n{color:#cbd4df}
.pkg-star{color:#E5920B; font-weight:700}
.pkg-th-tier{font-family:"Sora",sans-serif}
.pkg-note{max-width:960px; margin:18px auto 0; font-size:13px; color:var(--muted); text-align:center; line-height:1.7}

/* ============ 2-ROW MARQUEE ============ */
.trust-2 .marquee + .marquee{margin-top:24px}
.marquee.rev .marquee-track{animation-direction:reverse}
.trust-2 .marquee img{width:150px; height:54px; max-width:none; object-fit:contain; object-position:center; padding:2px 14px; box-sizing:border-box}
@media(max-width:620px){.trust-2 .marquee img{width:104px; height:40px; padding:2px 8px}}

/* ============ COMPLIANCE SECTION ============ */
.compliance2{background:var(--bg-soft)}
.comp-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:720px; margin:6px auto 34px}
.comp-stat{text-align:center; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:24px 18px; transition:.25s}
.comp-stat:hover{transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:#d7e0ef}
.comp-stat b{display:block; font-family:"Sora",sans-serif; font-size:clamp(30px,4vw,42px); font-weight:800; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1}
.comp-stat span{display:block; margin-top:8px; font-size:13.5px; color:var(--muted); font-weight:500}
.reg-badges{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:920px; margin:0 auto 34px}
.reg-badges span{font-family:"Sora",sans-serif; font-weight:700; font-size:13px; color:var(--ink-2); background:#fff; border:1px solid var(--line); border-radius:10px; padding:9px 15px; transition:.2s}
.reg-badges span:hover{border-color:var(--brand); color:var(--brand); transform:translateY(-2px); box-shadow:var(--shadow-sm)}
.map-reg{font-family:"Sora",sans-serif; font-weight:700; color:var(--ink); white-space:nowrap}
.map-prod{display:inline-block; font-size:12px; font-weight:700; color:var(--brand); background:var(--brand-050); border-radius:20px; padding:4px 11px; white-space:nowrap}

/* ============ SECTOR SCENARIO CARDS ============ */
.scn-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px}
.scn-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; transition:.25s}
.scn-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.scn-head{display:flex; align-items:center; gap:12px; padding:20px 22px; border-bottom:1px solid var(--line-2); background:var(--bg-soft)}
.scn-head .scn-ico{width:42px;height:42px;flex:0 0 auto;border-radius:11px;background:var(--grad-soft);color:var(--pp-accent,var(--brand));display:grid;place-items:center}
.scn-head .scn-ico svg{width:21px;height:21px}
.scn-head h3{font-size:16.5px}
.scn-body{padding:20px 22px}
.scn-body .lab{font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; display:block}
.scn-body .brain{font-size:14px; color:var(--body); margin-bottom:16px}
.scn-body .muscle{font-size:14px; color:var(--ink-2)}
.scn-body .muscle .lab{color:var(--pp-accent,var(--brand))}

/* ============ INTERACTIVITY ============ */
.nav-links > li > a{position:relative}
.nav-links > li > a::after{content:""; position:absolute; left:14px; right:14px; bottom:5px; height:2px; background:var(--grad); border-radius:2px; transform:scaleX(0); transform-origin:left; transition:transform .25s ease}
.nav-links > li > a:hover::after{transform:scaleX(1)}
.cap-ico,.why-ico,.sol-ico,.res-ico,.scn-ico{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.cap-card:hover .cap-ico,.why-card:hover .why-ico,.sol-card:hover .sol-ico,.res-card:hover .res-ico{transform:translateY(-3px) scale(1.07)}
.hero-badge .dot{animation:pulse 2.6s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(22,100,254,.35)}50%{box-shadow:0 0 0 7px rgba(22,100,254,0)}}
.btn svg{transition:transform .2s ease}
.btn:hover svg{transform:translateX(3px)}
.plat-wrap span,.comp-badges span{transition:.2s}
.plat-wrap span:hover,.comp-badges span:hover{border-color:var(--brand); color:var(--brand); transform:translateY(-2px)}
@media (max-width:980px){ .scn-grid{grid-template-columns:1fr} }

/* ============ REVEAL ============ */
.reveal{opacity:0; transform:translateY(24px); transition:.7s cubic-bezier(.16,.84,.44,1)}
.reveal.in{opacity:1; transform:none}

/* ============ MOBILE ============ */
.mobile-menu{display:none}
@media (max-width:1040px){
  .nav-links{gap:0}
  .nav-links > li > a{padding:10px 10px; font-size:14.5px}
}
@media (max-width:980px){
  .nav-links,.nav-right .btn{display:none}
  .hamburger{display:flex}
  .hero .container{grid-template-columns:1fr; gap:44px; padding-top:52px; padding-bottom:64px}
  .hero-visual{max-width:480px}
  .prod-grid,.why-grid,.num-grid,.res-grid,.sol-grid,.flow{grid-template-columns:1fr 1fr}
  .flow::before{display:none}
  .spot-wrap,.contact-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .section{padding:74px 0}
  .mobile-menu.open{display:flex; flex-direction:column; position:fixed; inset:0; z-index:120; background:#fff; animation:mmIn .3s cubic-bezier(.16,.84,.44,1)}
  .mm-head{display:flex; align-items:center; gap:12px; height:66px; padding:0 16px; border-bottom:1px solid var(--line-2); flex:none}
  .mm-head .brand-img{height:29px; width:auto}
  .mm-close{width:42px;height:42px;border:1px solid var(--line); border-radius:11px; background:#fff; display:grid;place-items:center; cursor:pointer; color:var(--ink); margin-left:auto}
  .mm-body{flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:10px 14px 26px; display:flex; flex-direction:column}
  .mm-body > .btn-primary{width:100%; justify-content:center; padding:15px; font-size:16px; margin-top:18px; box-shadow:0 10px 24px rgba(22,100,254,.28)}
  .lang button{padding:6px 11px; font-size:12.5px}
}
@media (max-width:620px){
  .prod-grid,.why-grid,.num-grid,.res-grid,.sol-grid,.flow{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .frow{grid-template-columns:1fr}
  .compliance .container{flex-direction:column; gap:16px; text-align:center}
  .spot-l,.spot-r{padding:34px}
  .cta-inner{padding:42px 26px}
  .hero-mini{gap:24px}
  .marquee img{height:70px; max-width:150px}
  .announce .container{font-size:12.5px}
}

/* ============ CONTEXT / VISION ============ */
.ctx-lead{max-width:840px; margin:0 auto 46px; text-align:center; font-size:19px; color:var(--body); line-height:1.75}
.ctx-lead b{color:var(--ink-2); font-weight:700}
.ctx-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px}
.ctx-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; transition:.25s}
.ctx-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:#d7e0ef}
.ctx-ico{width:46px;height:46px;border-radius:12px; background:var(--grad-soft); color:var(--pp-accent,var(--brand)); display:grid;place-items:center; margin-bottom:15px; transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.ctx-card:hover .ctx-ico{transform:translateY(-3px) scale(1.07)}
.ctx-ico svg{width:23px;height:23px}
.ctx-card h3{font-size:16px; margin-bottom:7px}
.ctx-card p{font-size:13.5px; color:var(--muted)}
.contrast{display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:960px; margin:46px auto 0}
.contrast .col{border:1px solid var(--line); border-radius:var(--r-lg); padding:30px; background:#fff}
.contrast .col.bad{background:var(--bg-soft)}
.contrast .col.good{border-color:var(--pp-accent,var(--brand)); box-shadow:0 14px 34px var(--pp-ring,rgba(22,100,254,.14))}
.contrast .col h3{font-size:17px; margin-bottom:18px; display:flex; align-items:center; gap:9px}
.contrast .col.bad h3{color:var(--muted)}
.contrast .col.good h3{color:var(--pp-accent,var(--brand))}
.contrast .cl{list-style:none; display:flex; flex-direction:column; gap:13px}
.contrast .cl li{display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--ink-2); line-height:1.5}
.contrast .cl svg{width:18px;height:18px;flex:0 0 auto;margin-top:1px}
.contrast .bad .cl svg{color:#C0392B}
.contrast .good .cl svg{color:#12A85B}

/* ============ DATASHEET ============ */
.datasheet{background:var(--bg-soft)}
.ds-wrap{display:grid; grid-template-columns:1fr .94fr; gap:48px; align-items:center; max-width:1060px; margin:0 auto}
.ds-frame{border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--shadow-lg); background:#fff; transition:.3s}
.ds-frame:hover{transform:translateY(-5px); box-shadow:0 34px 70px rgba(15,45,120,.20)}
.ds-frame img{width:100%; height:auto; display:block}
.ds-side .eyebrow{margin-bottom:14px}
.ds-side h2{font-size:clamp(24px,3vw,34px); margin-bottom:14px}
.ds-side p{font-size:15.5px; color:var(--body); margin-bottom:22px}
.ds-list{list-style:none; display:flex; flex-direction:column; gap:11px; margin-bottom:28px}
.ds-list li{display:flex; gap:10px; align-items:flex-start; font-size:14.5px; color:var(--ink-2); font-weight:500}
.ds-list svg{width:18px;height:18px;color:var(--pp-accent,var(--brand));flex:0 0 auto;margin-top:2px}
.ds-actions{display:flex; gap:12px; flex-wrap:wrap}

/* ============ USE CASES ============ */
.uc-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px}
.uc-card{position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:26px 26px 24px; transition:.25s; border-top:3px solid var(--pp-accent,var(--brand))}
.uc-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.uc-tag{font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--pp-accent,var(--brand)); margin-bottom:10px; display:block}
.uc-card h3{font-size:17px; margin-bottom:9px}
.uc-card p{font-size:14px; color:var(--muted)}

/* ============ ACTIVE NAV STATE ============ */
.nav-links > li > a.active{color:var(--brand)}
.nav-links > li > a.active::after{transform:scaleX(1)}
.mega-item.active,.msol-item.active{background:var(--brand-050)}
.mega-item.active span{color:var(--ink-2)}
.breadcrumb span[aria-current]{color:var(--ink-2); font-weight:600}

@media (max-width:980px){
  .ctx-grid{grid-template-columns:1fr 1fr}
  .contrast,.ds-wrap{grid-template-columns:1fr}
  .uc-grid{grid-template-columns:1fr}
}
@media (max-width:620px){ .ctx-grid{grid-template-columns:1fr} }

/* ============ REVIEW PLATFORMS ============ */
.reviews{background:var(--bg-soft)}
.rev-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; max-width:1000px; margin:0 auto}
.rev-card{display:flex; flex-direction:column; align-items:center; text-align:center; gap:9px; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:26px 20px; transition:.25s}
.rev-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:#d7e0ef}
.rev-logo{font-family:"Sora",sans-serif; font-weight:800; font-size:15.5px; color:var(--ink); line-height:1.2}
.rev-stars{display:flex; gap:3px; color:#F5A623}
.rev-stars svg{width:16px;height:16px}
.rev-card p{font-size:12.5px; color:var(--muted); margin:0}
.rev-card .link-arrow{font-size:13px; margin-top:2px}
@media(max-width:860px){.rev-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.rev-grid{grid-template-columns:1fr}}

/* ============ TESTIMONIALS ============ */
.tmn-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.tmn-card{display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:30px; transition:.25s}
.tmn-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.tmn-stars{display:flex; gap:3px; color:#F5A623; margin-bottom:12px}
.tmn-stars svg{width:16px;height:16px}
.tmn-card blockquote{font-size:15.5px; color:var(--ink-2); line-height:1.65; margin:0 0 22px; border:0; padding:0}
.tmn-who{display:flex; align-items:center; gap:12px; margin-top:auto}
.tmn-av{width:44px;height:44px;border-radius:50%; background:var(--grad); color:#fff; display:grid; place-items:center; font-family:"Sora"; font-weight:800; font-size:15px; flex:0 0 auto}
.tmn-name{font-family:"Inter"; font-weight:700; font-size:14px; color:var(--ink)}
.tmn-role{font-size:12.5px; color:var(--muted)}
@media(max-width:900px){.tmn-grid{grid-template-columns:1fr}}

/* ============ REGULATION MAP TABLE ============ */
.map-table{width:100%; border-collapse:collapse; min-width:700px; table-layout:fixed}
.map-table col.c-reg{width:25%} .map-table col.c-ctl{width:50%} .map-table col.c-by{width:25%}
.map-table th,.map-table td{padding:13px 18px; border-bottom:1px solid var(--line-2); font-size:13.5px; text-align:left; vertical-align:middle}
.map-table thead th{background:var(--bg-soft); font-family:"Sora",sans-serif; font-weight:800; color:var(--ink); font-size:11.5px; letter-spacing:.05em; text-transform:uppercase; border-bottom:2px solid var(--line)}
.map-table tbody tr:hover{background:var(--bg-soft)}
.map-table .map-reg{font-family:"Sora",sans-serif; font-weight:700; color:var(--ink); font-size:13px}
.map-scope{display:inline-block; font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; padding:2px 7px; border-radius:6px; margin-top:5px}
.map-scope.g{background:#E6F1FB; color:#185FA5} .map-scope.l{background:#FBEDEA; color:#c5482f}
.map-by{display:flex; flex-wrap:wrap; gap:6px}
.map-by span{font-size:11.5px; font-weight:700; color:var(--brand); background:var(--brand-050); border-radius:20px; padding:4px 10px; white-space:nowrap}
@media(max-width:620px){ .tmn-stars svg,.rev-stars svg{width:14px;height:14px} }

/* ============ CERTIFICATES ============ */
.cert-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.cert-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; transition:.25s; display:flex; flex-direction:column}
.cert-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.cert-imgwrap{background:var(--bg-soft); border-bottom:1px solid var(--line-2); display:grid; place-items:center; padding:22px; height:230px}
.cert-imgwrap img{max-height:186px; max-width:100%; width:auto; object-fit:contain; box-shadow:var(--shadow-sm); border-radius:4px}
.cert-body{padding:22px 24px; display:flex; flex-direction:column; flex:1}
.cert-badge{align-self:flex-start; font-family:"Sora",sans-serif; font-weight:800; font-size:12px; letter-spacing:.04em; color:var(--brand); background:var(--brand-050); border-radius:8px; padding:4px 10px; margin-bottom:11px}
.cert-body h3{font-size:16px; margin-bottom:7px}
.cert-body p{font-size:13.5px; color:var(--muted); margin-bottom:14px}
.cert-view{margin-top:auto; display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--brand)}
.cert-view svg{width:15px;height:15px; transition:.2s}
.cert-card:hover .cert-view svg{transform:translateX(3px)}
@media(max-width:900px){.cert-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.cert-grid{grid-template-columns:1fr}}

/* ============ POLICIES ============ */
.pol-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px}
.pol-card{display:flex; gap:16px; align-items:flex-start; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; transition:.25s}
.pol-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:#d7e0ef}
.pol-ico{width:44px;height:44px;flex:0 0 auto; border-radius:12px; background:var(--grad-soft); color:var(--brand); display:grid; place-items:center}
.pol-ico svg{width:22px;height:22px}
.pol-card h3{font-size:15.5px; margin-bottom:5px}
.pol-card p{font-size:13px; color:var(--muted); margin-bottom:11px}
.pol-card .link-arrow{font-size:13px}
@media(max-width:760px){.pol-grid{grid-template-columns:1fr}}
.legal-list{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; max-width:920px; margin:0 auto}
.legal-list a{font-size:13px; font-weight:600; color:var(--ink-2); background:#fff; border:1px solid var(--line); border-radius:10px; padding:9px 15px; transition:.2s; display:inline-flex; align-items:center; gap:7px}
.legal-list a svg{width:14px;height:14px;color:var(--brand)}
.legal-list a:hover{border-color:var(--brand); color:var(--brand); transform:translateY(-2px)}

/* ============ CORPORATION SUBMENU ============ */
.nav-links > li > .submenu{position:absolute; top:calc(100% + 10px); left:0; min-width:250px; background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:var(--shadow-lg); opacity:0; visibility:hidden; transform:translateY(8px); transition:.2s; padding:12px; display:flex; flex-direction:column; gap:2px}
.nav-links > li:hover > .submenu{opacity:1; visibility:visible; transform:translateY(0)}
.submenu a{padding:12px 14px; border-radius:11px; font-size:14px; font-weight:500; color:var(--ink-2); transition:.16s}
.submenu a::after{display:none}
.submenu a:hover{background:var(--bg-soft); color:var(--brand)}

/* ============ CERT INFO (standard visual, no photo) ============ */
.cert2-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.cert2-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; transition:.25s; display:flex; flex-direction:column}
.cert2-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.cert2-visual{height:158px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:13px; background:radial-gradient(120% 120% at 50% -10%, #E6EFFF 0%, #F5F8FD 72%); border-bottom:1px solid var(--line-2)}
.cert2-visual .ico{width:58px;height:58px; border-radius:16px; background:#fff; box-shadow:var(--shadow-sm); display:grid; place-items:center; color:var(--brand); transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.cert2-card:hover .cert2-visual .ico{transform:translateY(-3px) scale(1.06)}
.cert2-visual .ico svg{width:30px;height:30px}
.cert2-num{font-family:"Sora",sans-serif; font-weight:800; font-size:13.5px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:20px; padding:5px 15px; box-shadow:var(--shadow-sm)}
.cert2-body{padding:24px; display:flex; flex-direction:column; flex:1}
.cert2-body h3{font-size:16px; margin-bottom:7px}
.cert2-body p{font-size:13.5px; color:var(--muted)}
.cert2-status{margin-top:16px; padding-top:14px; border-top:1px solid var(--line-2); display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:700; color:#12A85B}
.cert2-status svg{width:16px;height:16px}
@media(max-width:900px){.cert2-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.cert2-grid{grid-template-columns:1fr}}

/* ============ PARTNERSHIP MODELS ============ */
.ptr-models{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.ptr-model{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:28px; transition:.25s; border-top:3px solid var(--brand)}
.ptr-model:hover{transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.ptr-model .num{font-family:"Sora",sans-serif; font-weight:800; font-size:12.5px; letter-spacing:.04em; color:var(--brand); margin-bottom:11px; display:block}
.ptr-model h3{font-size:17px; margin-bottom:10px}
.ptr-model p{font-size:13.5px; color:var(--muted); line-height:1.6}
@media(max-width:900px){.ptr-models{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.ptr-models{grid-template-columns:1fr}}

/* ============ BLOG ============ */
.blog-filters{display:flex; flex-wrap:wrap; gap:9px; justify-content:center; max-width:940px; margin:0 auto 44px}
.blog-filter{font-size:13px; font-weight:600; color:var(--ink-2); background:#fff; border:1px solid var(--line); border-radius:20px; padding:8px 16px; cursor:pointer; transition:.18s; font-family:"Inter"}
.blog-filter:hover{border-color:var(--brand); color:var(--brand)}
.blog-filter.active{background:var(--brand); color:#fff; border-color:var(--brand)}
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px}
.blog-card{display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; transition:.25s}
.blog-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.blog-cover{aspect-ratio:16/9; position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:16px}
.blog-cover::before{content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 85% 0%, rgba(255,255,255,.22), transparent 55%)}
.blog-cover .bc-ico{position:absolute; right:-14px; top:-14px; width:118px; height:118px; opacity:.2; color:#fff}
.blog-cover .bc-ico svg{width:100%; height:100%}
.blog-cover .bc-cat{position:relative; z-index:1; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#fff; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.3); border-radius:20px; padding:4px 12px}
.blog-cardbody{padding:22px 24px; display:flex; flex-direction:column; flex:1}
.blog-meta{font-size:12px; color:var(--muted); margin-bottom:9px; font-weight:600}
.blog-card h3{font-size:17px; line-height:1.3; margin-bottom:9px}
.blog-card p{font-size:13.5px; color:var(--muted); margin-bottom:16px; flex:1}
.blog-tags{display:flex; flex-wrap:wrap; gap:7px}
.blog-tags span{font-size:11px; font-weight:600; color:var(--ink-2); background:var(--bg-soft); border:1px solid var(--line); border-radius:8px; padding:3px 9px}
.blog-empty{text-align:center; color:var(--muted); padding:40px; font-size:15px}
/* category gradients */
.c-dlp{background:linear-gradient(135deg,#1664fe,#0b3fbf)}
.c-cls{background:linear-gradient(135deg,#c5482f,#8f2f1c)}
.c-dsc{background:linear-gradient(135deg,#0f7d8c,#0a4f59)}
.c-fim{background:linear-gradient(135deg,#3e8c44,#256b2b)}
.c-dspm{background:linear-gradient(135deg,#5b4bd6,#3a2f9e)}
.c-comp{background:linear-gradient(135deg,#0f4fd6,#0a2f8c)}
.c-threat{background:linear-gradient(135deg,#c0392b,#7a2117)}
.c-cloud{background:linear-gradient(135deg,#1f8fd6,#125e93)}
@media(max-width:980px){.blog-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.blog-grid{grid-template-columns:1fr}}

/* ============ BLOG ARTICLE ============ */
.art-hero{position:relative; min-height:340px; display:flex; align-items:flex-end; overflow:hidden; border-bottom:1px solid var(--line-2)}
.art-hero::before{content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 82% 0%, rgba(255,255,255,.20), transparent 55%)}
.art-hero .art-ico{position:absolute; right:-30px; top:-30px; width:230px; height:230px; opacity:.16; color:#fff}
.art-hero .art-ico svg{width:100%;height:100%}
.art-hero .container{position:relative; z-index:1; padding:56px 24px 40px}
.art-hero .bc-cat{display:inline-block; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#fff; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.32); border-radius:20px; padding:5px 14px; margin-bottom:16px}
.art-hero h1{color:#fff; font-size:clamp(26px,4vw,42px); max-width:820px; margin-bottom:14px}
.art-hero .art-meta{color:rgba(255,255,255,.9); font-size:14px; font-weight:600}
.article{max-width:760px; margin:0 auto}
.article .lead{font-size:19px; color:var(--body); line-height:1.75; margin-bottom:30px}
.article h2{font-size:24px; margin:36px 0 14px}
.article p{font-size:16px; color:var(--ink-2); line-height:1.8; margin-bottom:18px}
.article ul{margin:0 0 20px; padding-left:22px; color:var(--ink-2); font-size:16px; line-height:1.75}
.article ul li{margin-bottom:8px}
.article .art-tags{display:flex; flex-wrap:wrap; gap:8px; margin:34px 0 0; padding-top:24px; border-top:1px solid var(--line-2)}
.article .art-tags span{font-size:12px; font-weight:600; color:var(--ink-2); background:var(--bg-soft); border:1px solid var(--line); border-radius:8px; padding:5px 12px}
.art-cta{max-width:760px; margin:34px auto 0; background:var(--grad-soft); border:1px solid var(--brand-050); border-radius:var(--r-lg); padding:28px 30px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap}
.art-cta p{font-family:"Sora",sans-serif; font-weight:700; color:var(--ink); font-size:16px; margin:0}
.related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
@media(max-width:900px){.related-grid{grid-template-columns:1fr} .art-cta{flex-direction:column; align-items:flex-start}}

/* ============ BLOG FEATURED ============ */
.blog-featured{display:grid; grid-template-columns:1.05fr 1fr; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:#fff; margin-bottom:42px; transition:.25s}
.blog-featured:hover{box-shadow:var(--shadow-lg); border-color:#d7e0ef; transform:translateY(-3px)}
.bf-media{position:relative; min-height:300px; display:flex; align-items:flex-end; padding:22px; overflow:hidden}
.bf-media::before{content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 85% 0%, rgba(255,255,255,.22), transparent 55%)}
.bf-media .bc-ico{position:absolute; right:-24px; top:-24px; width:190px; height:190px; opacity:.2; color:#fff}
.bf-media .bc-ico svg{width:100%;height:100%}
.bf-media .bc-cat{position:relative; z-index:1; font-size:11.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#fff; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.3); border-radius:20px; padding:5px 13px}
.bf-body{padding:38px 42px; display:flex; flex-direction:column; justify-content:center}
.bf-tag{font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--brand); margin-bottom:12px}
.bf-body h2{font-size:27px; line-height:1.2; margin-bottom:13px}
.bf-body p{font-size:15px; color:var(--muted); margin-bottom:18px}
.bf-meta{font-size:12.5px; color:var(--muted); font-weight:600}
@media(max-width:820px){.blog-featured{grid-template-columns:1fr} .bf-media{min-height:190px} .bf-body{padding:30px 26px}}

/* ============ PAGINATION ============ */
.blog-pager{display:flex; align-items:center; justify-content:center; gap:8px; margin-top:46px; flex-wrap:wrap}
.blog-pager button{min-width:42px; height:42px; padding:0 13px; border:1px solid var(--line); background:#fff; border-radius:11px; font-family:"Inter"; font-weight:600; font-size:14px; color:var(--ink-2); cursor:pointer; transition:.18s}
.blog-pager button:hover:not(:disabled){border-color:var(--brand); color:var(--brand)}
.blog-pager button.active{background:var(--brand); color:#fff; border-color:var(--brand)}
.blog-pager button:disabled{opacity:.4; cursor:default}
.blog-pager .pg-gap{color:var(--muted); padding:0 2px}

/* ============ ARTICLE AUTHOR + SHARE ============ */
.art-back{display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:600; color:var(--brand); margin-bottom:18px}
.art-back svg{width:16px;height:16px}
.art-author{display:flex; align-items:center; gap:12px; max-width:760px; margin:0 auto 26px}
.art-av{width:44px;height:44px;border-radius:50%; background:var(--grad); color:#fff; display:grid; place-items:center; font-family:"Sora"; font-weight:800; font-size:14px; flex:0 0 auto}
.art-author .an{font-family:"Inter"; font-weight:700; font-size:14px; color:var(--ink)}
.art-author .ar{font-size:12.5px; color:var(--muted)}
.art-share{display:flex; align-items:center; gap:10px; max-width:760px; margin:28px auto 0; padding-top:24px; border-top:1px solid var(--line-2)}
.art-share .sl{font-size:13px; font-weight:600; color:var(--muted); margin-right:2px}
.art-share a,.art-share button{width:38px;height:38px; border:1px solid var(--line); border-radius:10px; background:#fff; display:grid; place-items:center; color:var(--ink-2); cursor:pointer; transition:.18s}
.art-share a:hover,.art-share button:hover{border-color:var(--brand); color:var(--brand); transform:translateY(-2px)}
.art-share svg{width:17px;height:17px}

/* ============ LEGAL PAGES ============ */
.legal-doc{max-width:820px; margin:0 auto}
.legal-updated{font-size:13px; color:var(--muted); margin-bottom:22px; font-weight:600}
.legal-doc h2{font-size:21px; margin:34px 0 12px}
.legal-doc p{font-size:15.5px; color:var(--ink-2); line-height:1.8; margin-bottom:16px}
.legal-doc ul{margin:0 0 18px; padding-left:22px; color:var(--ink-2); font-size:15.5px; line-height:1.75}
.legal-doc ul li{margin-bottom:8px}
.legal-doc a{color:var(--brand); font-weight:600}

/* ============ BLOG DETAIL SIDEBAR ============ */
.art-layout{display:grid; grid-template-columns:minmax(0,760px) 300px; gap:48px; justify-content:center; align-items:start}
.art-main{min-width:0}
.art-main .article,.art-main .art-author,.art-main .art-share,.art-main .art-cta{max-width:none; margin-left:0; margin-right:0}
.art-side{position:sticky; top:96px}
.side-head{font-family:"Sora",sans-serif; font-weight:800; font-size:13px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink); margin-bottom:6px}
.side-post{display:flex; gap:13px; align-items:center; padding:14px 0; border-bottom:1px solid var(--line-2)}
.side-post:last-child{border-bottom:0}
.sp-thumb{width:62px;height:62px;flex:0 0 auto; border-radius:12px; position:relative; overflow:hidden; display:grid; place-items:center; color:#fff}
.sp-thumb::before{content:""; position:absolute; inset:0; background:radial-gradient(120% 120% at 80% 0%, rgba(255,255,255,.26), transparent 55%)}
.sp-thumb svg{width:24px;height:24px; position:relative; z-index:1}
.sp-body{min-width:0}
.sp-title{font-family:"Inter"; font-weight:600; font-size:13px; color:var(--ink); line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.side-post:hover .sp-title{color:var(--brand)}
.sp-date{font-size:11px; color:var(--muted); margin-top:3px}
@media(max-width:980px){.art-layout{grid-template-columns:1fr} .art-side{position:static; margin-top:14px}}

/* ============ FOOTER PRODUCT POLICIES ============ */
.footer .container{display:flex; flex-direction:column}
.foot-policies{order:2; border-top:1px solid rgba(255,255,255,.09); margin-top:2px; padding:15px 0 2px; display:flex; flex-wrap:nowrap; justify-content:center; gap:0 20px; align-items:center; overflow-x:auto}
.foot-policies .fp-label{font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#c3d0e2; white-space:nowrap; flex:none}
.foot-policies a{font-size:12px; color:#93a3b8; transition:.16s; white-space:nowrap; flex:none}
.foot-policies a:hover{color:#fff}
@media(max-width:760px){ .foot-policies{flex-wrap:wrap; justify-content:center; gap:8px 16px} }

/* ============ ABOUT PAGE ============ */
.ab-hero{position:relative; overflow:hidden; background:linear-gradient(150deg,#0a1a3c 0%,#0e2657 48%,#12397f 100%); color:#fff}
.ab-hero::before{content:""; position:absolute; inset:0; background:radial-gradient(44% 88% at 84% -6%, rgba(64,124,255,.5), transparent 60%); pointer-events:none}
.ab-hero .container{position:relative; z-index:1; padding:76px 24px 0; max-width:1040px}
.ab-eyebrow{display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#8fb4ff; margin-bottom:15px}
.ab-hero h1{font-family:"Sora",sans-serif; font-weight:800; color:#fff; font-size:clamp(31px,4.6vw,53px); line-height:1.07; letter-spacing:-.02em; margin:0 0 20px; max-width:17ch}
.ab-hero .lead{font-size:clamp(16px,1.4vw,19px); line-height:1.62; color:#c7d5ef; max-width:62ch; margin:0}
.ab-hstats{display:grid; grid-template-columns:repeat(4,1fr); margin-top:54px; border-top:1px solid rgba(255,255,255,.13)}
.ab-hstats .it{padding:26px 18px 32px; border-right:1px solid rgba(255,255,255,.13)}
.ab-hstats .it:last-child{border-right:none}
.ab-hstats .n{font-family:"Sora",sans-serif; font-weight:800; font-size:clamp(25px,3vw,35px); letter-spacing:-.01em}
.ab-hstats .l{font-size:13px; color:#9fb2d6; margin-top:5px}
@media(max-width:720px){ .ab-hstats{grid-template-columns:1fr 1fr} .ab-hstats .it:nth-child(2){border-right:none} }
.ab-split{display:grid; grid-template-columns:1.02fr .98fr; gap:54px; align-items:center}
.ab-split h2{font-family:"Sora",sans-serif; font-size:clamp(25px,3.1vw,38px); letter-spacing:-.02em; margin:0 0 18px}
.ab-split p{color:#55617a; line-height:1.72; margin:0 0 16px; max-width:58ch}
.ab-visual svg{width:100%; height:auto; display:block; filter:drop-shadow(0 24px 44px rgba(16,40,90,.14))}
@media(max-width:860px){ .ab-split{grid-template-columns:1fr; gap:36px} .ab-visual{order:-1} }
.ab-mv{display:grid; grid-template-columns:1fr 1fr; gap:24px}
.mv-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); padding:36px; position:relative; overflow:hidden}
.mv-card::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(180deg,#1664fe,#0b3fbf)}
.mv-ic{width:52px; height:52px; border-radius:14px; display:grid; place-items:center; background:#EAF1FF; color:var(--brand); margin-bottom:18px}
.mv-ic svg{width:26px; height:26px}
.mv-card h3{font-family:"Sora",sans-serif; font-size:22px; margin:0 0 12px}
.mv-card p{color:#55617a; line-height:1.7; margin:0}
@media(max-width:720px){ .ab-mv{grid-template-columns:1fr} }
.ab-flow{display:grid; grid-template-columns:repeat(5,1fr); gap:16px}
.abf{position:relative; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:24px 20px}
.abf .ic{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;color:#fff;margin-bottom:14px}
.abf .ic svg{width:22px;height:22px}
.abf .st{font-family:"Sora",sans-serif; font-weight:800; font-size:12px; color:var(--brand); letter-spacing:.06em; text-transform:uppercase}
.abf h4{font-size:16px; margin:7px 0 8px}
.abf p{font-size:13.5px; color:#55617a; line-height:1.6; margin:0 0 14px}
.abf .pd{font-size:12px; font-weight:600; color:#5b6b86; border-top:1px solid var(--line); padding-top:11px}
@media(max-width:900px){ .ab-flow{grid-template-columns:1fr 1fr} }
@media(max-width:560px){ .ab-flow{grid-template-columns:1fr} }
.ab-sectors{display:flex; flex-wrap:wrap; gap:12px}
.sec-chip{display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line); border-radius:100px; padding:10px 18px}
.sec-chip .c{font-family:"Sora",sans-serif; font-weight:800; color:var(--brand); font-size:15px}
.sec-chip .s{font-size:14px; color:#0f1b30; font-weight:500}
.ab-team{display:grid; grid-template-columns:1fr 1fr; gap:22px; max-width:860px; margin:0 auto}
.tm-card{display:flex; gap:20px; align-items:flex-start; background:#fff; border:1px solid var(--line); border-radius:var(--r-xl); padding:28px}
.tm-av{width:64px; height:64px; border-radius:50%; flex:none; display:grid; place-items:center; font-family:"Sora",sans-serif; font-weight:800; font-size:24px; color:#fff; background:linear-gradient(140deg,#1664fe,#0b3fbf)}
.tm-card h3{font-size:19px; margin:2px 0 3px}
.tm-role{font-size:13.5px; font-weight:700; color:var(--brand); margin-bottom:9px}
.tm-card p{font-size:13.5px; color:#55617a; line-height:1.6; margin:0}
@media(max-width:620px){ .ab-team{grid-template-columns:1fr} }
.ab-eco{display:flex; flex-wrap:wrap; gap:14px}
.eco-badge{flex:1 1 220px; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:20px 22px}
.eco-badge .t{font-family:"Sora",sans-serif; font-weight:700; font-size:15px; margin-bottom:5px}
.eco-badge .d{font-size:13px; color:#55617a; line-height:1.55}
.ab-partners{margin-top:26px; font-size:14.5px; color:#55617a}
.ab-partners b{color:#0f1b30; font-weight:600}

/* ============ SCREENSHOT GALLERY ============ */
.gal-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px 32px}
.gal-card{margin:0}
@keyframes galFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.gal-card img{width:100%; height:auto; display:block; transition:transform .4s cubic-bezier(.16,.84,.44,1); animation:galFloat 6s ease-in-out infinite; will-change:transform}
.gal-card:nth-child(2) img{animation-delay:-1.5s}
.gal-card:nth-child(3) img{animation-delay:-3s}
.gal-card:nth-child(4) img{animation-delay:-4.4s}
.gal-card:nth-child(5) img{animation-delay:-2.2s}
.gal-card:nth-child(6) img{animation-delay:-3.7s}
.gal-card:hover img{animation-play-state:paused; transform:translateY(-8px) scale(1.02)}
@media(prefers-reduced-motion:reduce){.gal-card img{animation:none}}
.gal-card figcaption{margin-top:2px; font-size:14px; color:#55617a; line-height:1.55; text-align:center; padding:0 14px}
@media(max-width:760px){ .gal-grid{grid-template-columns:1fr} }

/* ============ POLICY (clickable → modal) ============ */
.pol-btn{cursor:pointer; text-align:left; width:100%; font-family:inherit; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; transition:.25s; display:flex; gap:16px; align-items:flex-start}
.pol-btn:hover{transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:#d7e0ef}
.pol-btn h3{font-size:15.5px; margin-bottom:5px; color:var(--ink)}
.pol-btn p{font-size:13px; color:var(--muted); margin-bottom:10px}
.pol-open{display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; color:var(--brand)}
.pol-open svg{width:15px;height:15px}

/* ============ MODAL ============ */
.modal{position:fixed; inset:0; z-index:120; display:none; align-items:center; justify-content:center; padding:24px}
.modal.open{display:flex}
.modal-veil{position:absolute; inset:0; background:rgba(8,13,26,.55)}
.modal-box{position:relative; z-index:1; width:100%; max-width:640px; max-height:86vh; overflow:auto; background:#fff; border-radius:var(--r-xl); box-shadow:var(--shadow-lg); padding:42px 44px}
.modal-x{position:absolute; top:16px; right:16px; width:40px;height:40px; border:1px solid var(--line); border-radius:11px; background:#fff; cursor:pointer; display:grid; place-items:center; color:var(--ink)}
.modal-x:hover{background:var(--bg-soft); color:var(--brand)}
.modal-x svg{width:20px;height:20px}
.modal-body .m-badge{display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--brand); background:var(--brand-050); border-radius:8px; padding:4px 11px; margin-bottom:14px}
.modal-body h3{font-size:22px; margin-bottom:16px}
.modal-body p{font-size:14.5px; color:var(--body); line-height:1.75; margin-bottom:13px}
.modal-note{margin-top:18px; padding-top:16px; border-top:1px solid var(--line-2); font-size:12.5px; color:var(--muted)}
.modal-note a{color:var(--brand); font-weight:600}
@media(max-width:560px){.modal-box{padding:30px 24px}}

/* ============ CONTACT OFFICES ============ */
.off-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px}
.off-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; transition:.25s; display:flex; flex-direction:column}
.off-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:#d7e0ef}
.off-img{height:154px; position:relative; overflow:hidden; background:linear-gradient(135deg,#0A1B44 0%,#123A8F 55%,#1b57d0 100%)}
.off-hero{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px}
.off-hero::after{content:""; position:absolute; width:150px; height:150px; border:1px solid rgba(255,255,255,.12); border-radius:50%; }
.off-pin{width:32px; height:32px; color:#bcd4ff; position:relative}
.off-hero-city{font-family:"Sora",sans-serif; font-weight:800; font-size:21px; color:#fff; position:relative; letter-spacing:.01em}
.off-img img{width:100%; height:100%; object-fit:cover}
.off-flag{position:absolute; top:12px; left:12px; background:#fff; border-radius:20px; padding:5px 13px; font-size:12px; font-weight:700; color:var(--ink); box-shadow:var(--shadow-sm)}
.off-body{padding:24px; display:flex; flex-direction:column; gap:13px; flex:1}
.off-city{font-family:"Sora",sans-serif; font-weight:800; font-size:18px; color:var(--ink)}
.off-row{display:flex; gap:11px; align-items:flex-start; font-size:13.5px; color:var(--body); line-height:1.5}
.off-row svg{width:17px;height:17px;color:var(--brand);flex:0 0 auto;margin-top:2px}

/* ============ MOBILE RESPONSIVE COMPLETION ============ */
html{overflow-x:clip}
img,svg,video,iframe{max-width:100%}
@media (max-width:980px){
  .pp-hero .container{grid-template-columns:1fr; gap:32px; padding:44px 24px 52px}
  .pp-hero .pp-visual,.pp-hero .shotframe{max-width:540px; margin-left:auto; margin-right:auto}
  .cap-grid,.lic-grid,.comp-stats,.off-grid,.contrast,.ds-wrap{grid-template-columns:1fr 1fr}
  .ds-wrap{gap:30px} .ds-visual{order:-1}
  [style*="grid-template-columns:repeat(3,1fr)"]{grid-template-columns:repeat(2,1fr) !important}
  [style*="grid-template-columns:repeat(4,1fr)"]{grid-template-columns:repeat(2,1fr) !important}
}
@media (max-width:640px){
  .container{padding:0 17px}
  .section{padding:54px 0}
  .cap-grid,.lic-grid,.comp-stats,.edge-grid,.off-grid,.contrast,.ds-wrap{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .hero-mini .m b{font-size:23px}
  .hero p.lead,.pp-hero .lead{font-size:16.5px}
  [style*="grid-template-columns:repeat(3,1fr)"],[style*="grid-template-columns:repeat(4,1fr)"],[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr !important}
  .hero-cta{width:100%}
  .hero-cta .btn{flex:1 1 46%; justify-content:center}
}
@media (max-width:400px){
  .container{padding:0 14px}
  .foot-grid{grid-template-columns:1fr}
  .hero-cta .btn{flex:1 1 100%}
}

/* enlarge homepage "Trusted by" logos (references marquee only, not partners) */
#references .marquee img{width:172px; height:64px}
@media(max-width:620px){ #references .marquee img{width:120px; height:48px} }

/* ===== mobile menu accordion (expandable sub-menus) ===== */
@keyframes mmIn{from{opacity:0; transform:translateX(22px)}to{opacity:1; transform:none}}
@keyframes mmSub{from{opacity:0; transform:translateY(-6px)}to{opacity:1; transform:none}}
.mm-body > a{padding:15px 12px; font-size:16px; font-weight:600; color:var(--ink); border-bottom:1px solid var(--line-2); border-radius:12px; display:block; transition:.15s}
.mm-body > a:active{background:var(--bg-soft)}
.mm-group{border-bottom:1px solid var(--line-2)}
.mm-group.open{background:linear-gradient(180deg,var(--brand-050),rgba(234,241,255,0)); border-radius:14px; border-bottom-color:transparent; margin:1px 0}
.mm-acc{width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; background:none; border:0; padding:15px 12px; font-size:16px; font-weight:600; color:var(--ink); cursor:pointer; font-family:inherit; text-align:left; border-radius:12px}
.mm-acc:active{background:var(--bg-soft)}
.mm-acc svg{width:20px; height:20px; opacity:.5; transition:transform .28s; flex:none}
.mm-group.open > .mm-acc{color:var(--brand)}
.mm-group.open > .mm-acc svg{transform:rotate(180deg); opacity:1; color:var(--brand)}
.mm-sub{display:none; flex-direction:column; padding:0 8px 12px 16px; gap:1px}
.mm-group.open > .mm-sub{display:flex; animation:mmSub .25s ease}
.mm-body .mm-sub a{display:flex; align-items:center; gap:11px; padding:12px 10px; font-size:14.5px; font-weight:500; color:var(--ink-2); border-bottom:0; border-radius:10px}
.mm-body .mm-sub a::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--brand); opacity:.45; flex:none}
.mm-body .mm-sub a:active{background:#fff; color:var(--brand)}
