/* ============================================================
   GIS MAPPERS — CORPORATE LIGHT DESIGN SYSTEM · v3.0
   Single source of truth for every page.
   White / light-grey surfaces · navy text · blue & teal accents
   Display: Archivo · Body: Instrument Sans
   ============================================================ */

:root{
  /* Surfaces */
  --bg:#FFFFFF;
  --bg-soft:#F5F8FB;
  --bg-mist:#EBF1F8;
  --navy-950:#081527;
  --navy-900:#0B1C36;
  --navy-800:#122A4C;
  --navy-750:#1A3560;
  /* Text */
  --ink:#122843;
  --body:#3A4A61;
  --muted:#5B6B82;
  --soft:#71809A;
  /* On-dark text */
  --on-dark:#F4F8FD;
  --on-dark-soft:#B9C6D9;
  --on-dark-faint:#8C9CB5;
  /* Lines */
  --line:#DCE4EE;
  --line-soft:#E7EDF5;
  --line-dark:rgba(244,248,253,.14);
  /* Accents */
  --blue:#1156B5;
  --blue-deep:#0D479A;
  --blue-soft:#E8F0FB;
  --teal:#0E7C85;
  --teal-soft:#E4F3F4;
  --amber-ink:#8A5B00;
  --amber-soft:#FFF3D9;
  --red:#C2242E;
  /* Type */
  --f-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --f-body:"Instrument Sans","Helvetica Neue",Arial,sans-serif;
  --f-mono:"IBM Plex Mono","SFMono-Regular",Consolas,monospace;
  /* Layout */
  --w:1240px;
  --gutter:clamp(20px,4vw,44px);
  --r:10px;
  --r-sm:8px;
  --sh-sm:0 1px 2px rgba(16,32,58,.05),0 4px 14px rgba(16,32,58,.06);
  --sh-md:0 2px 4px rgba(16,32,58,.05),0 14px 34px rgba(16,32,58,.10);
  --ease:cubic-bezier(.23,.7,.32,1);

  /* ---- Legacy variable aliases (kept for residual inline styles) ---- */
  --void:#FFFFFF;--basalt-900:#F5F8FB;--basalt-800:#FFFFFF;--basalt-700:#EBF1F8;
  --paper:#FFFFFF;--paper-2:#F5F8FB;--paper-3:#E7EDF5;--mist:#DCE4EE;
  --white:#122843;--faint:#71809A;--ink-soft:#3A4A61;
  --ink-900:#122843;--ink-700:#3A4A61;--ink-500:#5B6B82;--ink-300:#71809A;
  --line-strong:#C7D3E2;--line-ink:#DCE4EE;
  --amber:#1156B5;--amber-hi:#1156B5;--amber-dim:#E8F0FB;
  --indigo:#1156B5;--indigo-dim:#E8F0FB;--teal-dim:#E4F3F4;
  --electric:#1156B5;--electric-deep:#0D479A;--cyan:#0E7C85;--cyan-bright:#0E7C85;
  --bg-900:#FFFFFF;--bg-850:#FFFFFF;--bg-800:#F5F8FB;
  --navy-700:#EBF1F8;--navy-600:#DCE4EE;--navy-500:#C7D3E2;
  --glass:#FFFFFF;--glass-2:#FFFFFF;
  --glass-line:#DCE4EE;--glass-line-strong:#C7D3E2;
  --grad-aqua:linear-gradient(135deg,#1156B5,#0E7C85);
  --grad-teal:linear-gradient(135deg,#0E7C85,#1156B5);
  --grad-glow:linear-gradient(135deg,#1156B5,#0D479A);
  --grad-ink:linear-gradient(180deg,#F7FAFD,#EDF3FA);
  --ramp:linear-gradient(90deg,#123B5C,#2E7F8C 30%,#3AC0AD 55%,#7FB1F5 80%,#1156B5);
  --sh-lg:0 22px 54px rgba(16,32,58,.13);--sh-cyan:none;--sh-electric:none;
  --f-head:"Archivo","Helvetica Neue",Arial,sans-serif;
}

/* ============ Reset & base ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--f-body);
  font-size:17px;line-height:1.65;
  color:var(--body);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
@media(max-width:640px){body{font-size:16px}}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{font:inherit;background:none;border:0;cursor:pointer;color:inherit}
::selection{background:var(--blue);color:#fff}
:focus-visible{outline:3px solid #7FB1F5;outline-offset:2px;border-radius:4px}

.container{max-width:var(--w);margin-inline:auto;padding-inline:var(--gutter)}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--navy-900);color:#fff;padding:12px 20px;z-index:400;font-size:15px;border-radius:0 0 8px 0}
.skip-link:focus{left:0}

/* ============ Typography ============ */
h1,h2,h3,h4{font-family:var(--f-display);font-weight:700;line-height:1.14;letter-spacing:-.015em;color:var(--ink);text-wrap:balance}
.t-hero{font-size:clamp(34px,4.6vw,58px);font-weight:800;letter-spacing:-.02em;line-height:1.08}
.t-xl,.h-xl{font-size:clamp(28px,3.4vw,42px);font-weight:800;letter-spacing:-.02em}
.t-lg,.h-lg{font-size:clamp(23px,2.6vw,32px)}
.t-md,.h-md{font-size:clamp(18px,1.9vw,22px)}
.lead{font-size:clamp(17px,1.5vw,19px);line-height:1.65;color:var(--muted);max-width:64ch}
p{max-width:70ch}
strong{font-weight:600;color:var(--ink)}
.mono{font-family:var(--f-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:500}
.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue);margin-bottom:18px;font-weight:600;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--blue);border-radius:2px}
.eyebrow .dot{display:none}
.eyebrow--indigo,.eyebrow--ink{color:var(--blue)}
.eyebrow--teal{color:var(--teal)}.eyebrow--teal::before{background:var(--teal)}
.text-grad{color:var(--blue);background:none;-webkit-text-fill-color:inherit}
.center{text-align:center}
.mt-lg{margin-top:clamp(40px,5vw,64px)}
.mt-md{margin-top:clamp(24px,3vw,40px)}
.divider{height:1px;background:var(--line);border:0}
.elev-strip{height:3px;background:linear-gradient(90deg,var(--blue),var(--teal));border:0;opacity:.9}

/* ============ Buttons & links ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--f-body);font-size:15.5px;font-weight:600;letter-spacing:.01em;
  padding:13px 26px;border-radius:var(--r-sm);
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease);
  border:1.5px solid transparent;white-space:nowrap;text-align:center;
}
.btn svg{width:16px;height:16px;flex:none;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn--solid,.btn--primary,.btn--electric{background:var(--blue);color:#FFFFFF;box-shadow:0 4px 14px rgba(17,86,181,.22)}
.btn--solid:hover,.btn--primary:hover,.btn--electric:hover{background:var(--blue-deep);color:#fff;transform:translateY(-2px)}
.btn--ghost,.btn--glass,.btn--ghost-ink{border-color:#B9C6D9;color:var(--ink);background:#FFFFFF}
.btn--ghost:hover,.btn--glass:hover,.btn--ghost-ink:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}
.btn--sm{padding:10px 18px;font-size:14.5px}
.btn--lg{padding:15px 32px;font-size:16.5px}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
/* buttons placed on dark bands */
.cta-band .btn--ghost,.cta-band .btn--glass,.panel-ink .btn--ghost,.panel-ink .btn--glass,
.section--dark .btn--ghost,.section--dark .btn--glass,.site-footer .btn--ghost{
  background:transparent;border-color:rgba(244,248,253,.4);color:#F4F8FD;
}
.cta-band .btn--ghost:hover,.cta-band .btn--glass:hover,.panel-ink .btn--ghost:hover,.panel-ink .btn--glass:hover,
.section--dark .btn--ghost:hover,.section--dark .btn--glass:hover{border-color:#fff;background:rgba(255,255,255,.08);color:#fff}
.tlink,.arrow-link{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--f-body);font-size:15.5px;font-weight:600;
  color:var(--blue);padding-bottom:2px;border-bottom:1.5px solid transparent;
  transition:border-color .25s var(--ease),gap .25s var(--ease),color .2s;
}
.tlink:hover,.arrow-link:hover{border-color:var(--blue);gap:12px}
.tlink svg,.arrow-link svg{width:15px;height:15px}
.tlink--ink,.tlink--indigo{color:var(--blue)}
.tlink--teal{color:var(--teal)}.tlink--teal:hover{border-color:var(--teal)}

/* ============ Canonical header ============ */
.utility{display:none}
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  padding:0;
}
.site-header .container{max-width:1360px;display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px}
.brand{display:flex;align-items:center;flex:none}
.brand img{display:block;height:46px;width:auto;max-width:185px;object-fit:contain;filter:none}
.nav-links{display:flex;align-items:center;gap:2px}
.nav-links>li{position:relative}
.nav-links>li>a{
  display:flex;align-items:center;gap:6px;
  font-size:15.5px;font-weight:500;color:#33465F;
  padding:9px 12px;border-radius:var(--r-sm);
  transition:color .2s,background .2s;
}
.nav-links>li>a:hover{color:var(--blue);background:var(--blue-soft)}
.nav-links>li.active>a{color:var(--blue);font-weight:600}
.nav-links .chev{display:inline-flex}
.nav-links .chev svg{width:13px;height:13px;color:#8C9CB5;transition:transform .25s var(--ease)}
.nav-links>li:hover .chev svg,.nav-links>li:focus-within .chev svg{transform:rotate(180deg)}
.nav-links .dmark{display:none}
/* Dropdown */
.drop{
  position:absolute;top:calc(100% + 10px);left:0;
  min-width:290px;max-width:340px;background:#fff;border:1px solid var(--line);border-radius:12px;
  padding:8px;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;
  box-shadow:var(--sh-md);z-index:110;
}
.nav-links>li:last-child .drop,.nav-links>li:nth-last-child(2) .drop{left:auto;right:0}
.nav-links li:hover .drop,.nav-links li:focus-within .drop{opacity:1;visibility:visible;transform:translateY(0)}
.drop a{display:block;padding:9px 14px;border-radius:8px;font-size:15px;color:#33465F;transition:background .2s,color .2s;line-height:1.4}
.drop a:hover{background:var(--blue-soft);color:var(--blue)}
.drop a b{font-weight:600;color:inherit}
.drop .drop-foot{margin-top:6px;padding:10px 14px 6px;border-top:1px solid var(--line-soft)}
.drop .drop-foot a{padding:0;color:var(--blue);font-weight:600;display:inline-flex;align-items:center;gap:7px}
.nav-cta{display:flex;align-items:center;gap:14px;flex:none}
.nav-cta .btn{padding:11px 20px;font-size:15px}
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:10px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;
}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:all .3s var(--ease)}
.nav-toggle span::before,.nav-toggle span::after{content:none}
body.menu-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .nav-toggle span:nth-child(2){opacity:0}
body.menu-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1259px){
  .nav-links{display:none}
  .nav-cta .btn{display:none}
  .nav-toggle{display:flex}
}
/* 10-item nav: compact spacing on mid-size desktops so nothing wraps or overflows */
@media(min-width:1260px) and (max-width:1520px){
  .site-header .container{gap:14px}
  .brand img{height:42px;max-width:160px}
  .nav-links{gap:0}
  .nav-links>li>a{padding:9px 8px;font-size:14.5px}
  .nav-cta .btn{padding:10px 14px;font-size:14px}
}
@media(max-width:640px){
  .site-header .container{height:66px}
  .brand img{height:40px;max-width:160px}
}

/* Mobile drawer */
.menu-backdrop{display:none}
.mobile-menu{
  position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;background:#fff;
  padding:92px var(--gutter) 44px;overflow-y:auto;
  opacity:0;visibility:hidden;transition:opacity .28s var(--ease),visibility .28s;
}
@media(max-width:640px){.mobile-menu{padding-top:82px}}
body.menu-open .mobile-menu{opacity:1;visibility:visible}
body.menu-open{overflow:hidden}
.mobile-menu>a,.mobile-menu .grp{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:14px 2px;border-bottom:1px solid var(--line-soft);
  font-family:var(--f-display);font-size:19px;font-weight:600;color:var(--ink);text-align:left;
}
.mobile-menu .grp svg{width:16px;height:16px;transition:transform .3s;color:#8C9CB5}
.mobile-menu .grp[aria-expanded="true"] svg{transform:rotate(180deg)}
.mobile-menu a.sub{display:none;padding:11px 2px 11px 18px;font-family:var(--f-body);font-size:16px;font-weight:400;color:var(--body);border-bottom:1px solid var(--line-soft)}
.mobile-menu a.sub.open{display:flex}
.mobile-menu .m-cta{margin-top:26px;display:flex;flex-direction:column;gap:12px}
.mobile-menu .btn{width:100%;margin-top:24px}
.mobile-menu .m-contact{margin-top:24px;font-size:15px;line-height:2.1;color:var(--muted)}
.mobile-menu .m-contact a{color:var(--body)}

/* ============ Sections ============ */
.section{padding:clamp(60px,7.5vw,104px) 0;position:relative;background:var(--bg)}
.section--tight{padding:clamp(40px,5vw,64px) 0}
.section--mist,.section--paper2,.s-basalt{background:var(--bg-soft)}
.s-paper,.s-paper--grid,.section--navy{background:var(--bg)}
.section--alt{background:var(--bg-soft)}
/* Deep-navy accent band (short content only) */
.section--dark{background:var(--navy-900);color:var(--on-dark-soft)}
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4{color:#fff}
.section--dark p{color:var(--on-dark-soft)}
.section--dark .lead{color:var(--on-dark-soft)}
.section--dark .eyebrow{color:#8FC1FF}.section--dark .eyebrow::before{background:#8FC1FF}
.section--dark .flist li,.section--dark .feature-list li{color:var(--on-dark-soft)}
.section--dark .flist svg{color:#6FD3C5}
.section--dark .divider{background:var(--line-dark)}
.s-head{max-width:760px;margin-bottom:clamp(36px,4.5vw,56px)}
.s-head.center{margin-inline:auto;text-align:center}
.s-head.center .eyebrow{justify-content:center}
.s-head .lead{margin-top:16px}
.s-head-row{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:flex-end;margin-bottom:clamp(36px,4.5vw,56px)}
.s-head-row .s-head{margin-bottom:0}

/* ============ Page hero (interior pages) ============ */
.page-hero,.hero--inner{
  position:relative;overflow:hidden;
  background:linear-gradient(160deg,#F7FAFD 0%,#EDF3FA 60%,#E5EEF8 100%);
  border-bottom:1px solid var(--line);
  padding:clamp(48px,6vw,84px) 0;
}
.hero--inner{min-height:auto}
.page-hero .ph-field,.hero-field,.hero-contours,.hero__grid{display:none!important}
.hero__bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero__bg img{width:100%;height:100%;object-fit:cover;opacity:1;filter:saturate(.92)}
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#F7FAFD 0%,#F7FAFD 34%,rgba(247,250,253,.96) 52%,rgba(247,250,253,.82) 66%,rgba(247,250,253,.42) 82%,rgba(238,244,250,.14) 100%);
}
@media(max-width:820px){
  .hero__bg img{opacity:.22}
  .hero__bg::after{background:linear-gradient(180deg,rgba(247,250,253,.92),rgba(247,250,253,.86))}
}
.page-hero .container,.hero--inner .container{position:relative;z-index:2}
.page-hero h1,.hero--inner h1{font-size:clamp(30px,4vw,48px);font-weight:800;max-width:22ch}
.page-hero .lead,.hero--inner p.lead,.hero--inner .container>div>p{margin-top:18px;color:var(--muted)}
.hero--inner p{color:var(--muted);font-size:clamp(16.5px,1.5vw,18.5px);max-width:64ch}
.crumbs,.breadcrumb{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:14px;color:var(--muted);margin-bottom:22px;
}
.crumbs a,.breadcrumb a{color:var(--muted);font-weight:500;transition:color .2s}
.crumbs a:hover,.breadcrumb a:hover{color:var(--blue)}
.crumbs .sep{color:#A8B6C9}
.breadcrumb svg{width:13px;height:13px;color:#A8B6C9}
.crumbs span:last-child,.breadcrumb span:last-child{color:var(--ink);font-weight:500}

/* Legacy globe hero → simple light hero */
.hero--globe{background:linear-gradient(160deg,#F7FAFD,#E9F1F9);border-bottom:1px solid var(--line);padding:clamp(48px,6vw,84px) 0;min-height:auto}
.hero--globe h1{font-size:clamp(30px,4vw,48px);max-width:none}
.hero--globe .lead{margin:20px 0 30px}
.hg-grid{display:grid;grid-template-columns:1fr;gap:0;align-items:center}
.hg-globe,.globe-panel,.globe-readout,.hero-readout,.hero-status{display:none!important}

/* Home hero (rebuilt homepage) */
.home-hero{
  position:relative;overflow:hidden;border-bottom:1px solid var(--line);
  background:linear-gradient(160deg,#F7FAFD 0%,#EDF3FA 55%,#E3EDF8 100%);
}
.home-hero .container{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,72px);align-items:center;padding-top:clamp(48px,6vw,88px);padding-bottom:clamp(48px,6vw,88px)}
@media(max-width:960px){.home-hero .container{grid-template-columns:1fr;padding-top:44px;padding-bottom:52px}}
.home-hero h1{font-size:clamp(31px,3.9vw,52px);font-weight:800;letter-spacing:-.02em;line-height:1.1}
.home-hero .lead{margin:20px 0 30px}
.home-hero .hh-media{position:relative}
.home-hero .hh-media .img-frame{aspect-ratio:4/3;box-shadow:var(--sh-md)}
.home-hero .hh-badge{
  position:absolute;left:-14px;bottom:22px;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-md);padding:13px 18px;display:flex;align-items:center;gap:12px;max-width:290px;
}
@media(max-width:640px){.home-hero .hh-badge{left:10px;bottom:12px;padding:10px 14px}}
.home-hero .hh-badge svg{width:22px;height:22px;color:var(--teal);flex:none}
.home-hero .hh-badge b{display:block;font-size:14.5px;color:var(--ink);line-height:1.3}
.home-hero .hh-badge small{font-size:13px;color:var(--muted)}
/* Hero 3D relief globe */
.home-hero .hh-media--globe{position:relative}
.hh-globe{position:relative;aspect-ratio:1/1;max-width:600px;margin:0 auto;user-select:none;-webkit-user-select:none}
.hh-globe::before{
  content:"";position:absolute;inset:4%;border-radius:50%;
  background:radial-gradient(circle at 38% 30%,rgba(255,255,255,.95) 0%,rgba(205,224,243,.75) 42%,rgba(190,213,238,.30) 62%,transparent 74%);
  filter:blur(10px);
}
.hh-globe::after{
  content:"";position:absolute;left:16%;right:16%;bottom:-3%;height:8%;border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(18,48,92,.25),transparent 68%);
  filter:blur(5px);
}
.hh-globe canvas,.hh-globe img{position:absolute;inset:0;width:100%;height:100%;display:block}
.home-hero .hh-badge{z-index:3}
.hh-globe canvas{cursor:grab;touch-action:pan-y}
.hh-globe canvas:active{cursor:grabbing}
@media (max-width:960px){.hh-globe{max-width:440px}}
.hh-points{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:26px}
.hh-points li{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:500;color:var(--muted)}
.hh-points svg{width:15px;height:15px;color:var(--teal);flex:none}

/* ============ Cards ============ */
.card,.glass{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-sm);color:var(--body);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s;
}
.card:hover,.glass:hover{transform:translateY(-3px);box-shadow:var(--sh-md);border-color:#C7D6EA}
.card h1,.card h2,.card h3,.card h4,.glass h3,.glass h4{color:var(--ink)}
.card p,.glass p{color:var(--muted)}
.card-pad{padding:clamp(22px,2.6vw,32px)}
.grid{display:grid;gap:24px}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:980px){.grid--3,.grid--4,.grid-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.grid--2,.grid--3,.grid--4,.grid-2,.grid-3{grid-template-columns:1fr}}
.icon-chip{
  width:46px;height:46px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--blue-soft);color:var(--blue);border:1px solid #D3E2F6;margin-bottom:16px;flex:none;
}
.icon-chip svg{width:21px;height:21px}
.icon-chip--ghost{background:var(--teal-soft);color:var(--teal);border-color:#C9E6E8}
/* Dark navy sidebar/summary panel — short text only */
.panel-ink{
  background:var(--navy-900);border:1px solid var(--navy-800);border-radius:var(--r);
  color:var(--on-dark-soft);box-shadow:var(--sh-md);
}
.panel-ink h1,.panel-ink h2,.panel-ink h3,.panel-ink h4{color:#fff}
.panel-ink p{color:var(--on-dark-soft)}
.panel-ink .divider{background:var(--line-dark)}
.panel-ink .cinfo{border-color:var(--line-dark)}
.panel-ink .cinfo b{color:#fff}
.panel-ink .cinfo a,.panel-ink .cinfo p,.panel-ink .cinfo span{color:var(--on-dark-soft)}
.panel-ink .icon-chip{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#7FD8CB}
.panel-ink a.cinfo:hover b{color:#8FC1FF}
.cinfo{display:flex;gap:14px;align-items:center}
.cinfo b{color:var(--ink)}

/* Feature lists */
.flist,.feature-list{display:grid;gap:11px}
.flist li,.feature-list li{
  display:flex;gap:11px;align-items:flex-start;font-size:15.5px;color:var(--body);line-height:1.55;
}
.flist svg{width:17px;height:17px;flex:none;color:var(--teal);margin-top:3px}
.feature-list li::before{content:"✓";color:var(--teal);font-weight:700;flex:none}
.flist--pill li{background:var(--bg-soft);border:1px solid var(--line);border-radius:999px;padding:8px 16px}

/* Prose */
.prose p{color:var(--body);margin-bottom:16px}
.prose h2,.prose h3{color:var(--ink);margin:26px 0 12px}
.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose ul{margin:14px 0}

/* Pills / chips */
.pill-row{display:flex;flex-wrap:wrap;gap:10px}
.pill{
  display:inline-flex;align-items:center;gap:8px;
  font-size:14.5px;font-weight:500;color:var(--body);
  background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 18px;
  transition:all .2s;
}
.pill:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{
  font-size:13px;font-weight:500;letter-spacing:.02em;
  border:1px solid var(--line);color:var(--muted);background:#fff;padding:6px 13px;border-radius:999px;
}
.chip--amber{color:var(--blue);border-color:#C4D8F3;background:var(--blue-soft)}
.tag-spec{font-family:var(--f-mono);font-size:12.5px;color:var(--muted);letter-spacing:.05em}

/* Status labels (software truthfulness) */
.status,.product-status,.software-suite-card__status{
  display:inline-flex;align-items:center;gap:7px;
  font-size:12.5px;font-weight:600;letter-spacing:.03em;
  padding:5px 12px;border-radius:999px;border:1px solid;line-height:1.4;
}
.status--live{color:#0B6B4F;border-color:#BCE3D3;background:#E9F7F1}
.status--custom{color:var(--blue);border-color:#C4D8F3;background:var(--blue-soft)}
.status--dev,.status--ent{color:var(--amber-ink);border-color:#EED9A9;background:var(--amber-soft)}
.product-status{color:var(--blue);border-color:#C4D8F3;background:var(--blue-soft)}

/* ============ Image frames & media ============ */
.img-frame,.media-frame{position:relative;overflow:hidden;border-radius:var(--r);background:var(--bg-mist);border:1px solid var(--line)}
.img-frame img,.media-frame img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.img-frame::before,.img-frame .scan{display:none}
.img-frame::after,.media-frame::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(16,32,58,.06)}
.img-frame:hover img,.media-frame:hover img{transform:scale(1.025)}
.img-frame .cap{
  position:absolute;left:12px;bottom:11px;z-index:4;
  font-size:12.5px;font-weight:600;letter-spacing:.04em;
  color:#fff;background:rgba(11,28,54,.72);padding:6px 12px;border-radius:6px;backdrop-filter:blur(4px);
}
.media-badge{position:absolute;top:12px;left:12px;z-index:4;font-size:12.5px;font-weight:600;background:#fff;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:5px 11px}
.media-frame--glow{box-shadow:var(--sh-md)}
.product-visual-label{
  position:absolute;top:12px;left:12px;z-index:4;font-size:12px;font-weight:600;letter-spacing:.04em;
  background:rgba(11,28,54,.78);color:#fff;border-radius:6px;padding:5px 11px;
}

/* ============ Split layouts ============ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.split--tight{gap:clamp(26px,3.5vw,52px)}
@media(max-width:920px){.split{grid-template-columns:1fr}}

/* Spec / terminal lists → clean bordered list */
.speclist{display:grid;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
.speclist li{display:flex;gap:12px;align-items:baseline;padding:14px 20px;border-bottom:1px solid var(--line-soft);font-size:15.5px;color:var(--body)}
.speclist li:last-child{border-bottom:0}
.speclist li::before{content:"›";color:var(--blue);font-weight:700;flex:none}
.speclist li b{color:var(--ink);font-weight:600}

/* ============ Editorial index rows ============ */
.index-list{border-top:1px solid var(--line)}
.index-row{
  display:grid;grid-template-columns:64px 1.15fr 1.6fr auto;gap:clamp(16px,3vw,38px);align-items:center;
  padding:24px 8px;border-bottom:1px solid var(--line);
  transition:background .25s var(--ease);position:relative;border-radius:6px;
}
.index-row:hover{background:var(--bg-soft)}
.index-row .i-num{font-family:var(--f-mono);font-size:13.5px;color:#9AA9BE;letter-spacing:.04em}
.index-row h3{font-size:clamp(17px,1.8vw,21px);font-weight:700;color:var(--ink)}
.index-row .i-desc{font-size:15px;color:var(--muted);line-height:1.55;max-width:52ch}
.index-row .i-go{
  width:42px;height:42px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;
  display:flex;align-items:center;justify-content:center;transition:all .25s var(--ease);
}
.index-row .i-go svg{width:15px;height:15px;color:var(--ink)}
.index-row:hover .i-go{background:var(--blue);border-color:var(--blue)}
.index-row:hover .i-go svg{color:#fff}
@media(max-width:820px){
  .index-row{grid-template-columns:40px 1fr auto}
  .index-row .i-desc{display:none}
}
.index-list--dark{border-top-color:var(--line)}
.index-list--dark .index-row{border-bottom-color:var(--line)}

/* ============ Division cards (homepage / about) ============ */
.divisions{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:960px){.divisions{grid-template-columns:1fr}}
.division{
  --dc:var(--blue);
  background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);
  padding:0;display:flex;flex-direction:column;overflow:hidden;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);position:relative;
}
.division:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.division--software{--dc:var(--teal)}
.division--geo{--dc:#345C8F}
.division .d-media{aspect-ratio:16/9;overflow:hidden;border-bottom:3px solid var(--dc)}
.division .d-media img{width:100%;height:100%;object-fit:cover}
.division .d-body{padding:26px 26px 28px;display:flex;flex-direction:column;flex:1}
.division .d-num{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.12em;color:var(--dc);margin-bottom:12px;text-transform:uppercase;font-weight:600;display:flex;align-items:center;justify-content:space-between}
.division h3{font-size:21px;margin-bottom:4px}
.division .d-tag{font-size:13.5px;font-weight:600;letter-spacing:.04em;color:var(--dc);margin-bottom:14px}
.division p{font-size:15.5px;color:var(--muted);margin-bottom:18px}
.division ul{margin:0 0 24px;display:grid;gap:9px}
.division ul li{font-size:14.5px;color:var(--body);padding-left:20px;position:relative;line-height:1.5}
.division ul li::before{content:"";position:absolute;left:0;top:9px;width:9px;height:2px;background:var(--dc);border-radius:2px}
.division .tlink{margin-top:auto;color:var(--dc)}
.division .tlink:hover{border-color:var(--dc)}

/* ============ Product tiles ============ */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:22px}
.tile{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);
  padding:26px 24px;display:flex;flex-direction:column;gap:12px;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.tile:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.tile .t-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tile .t-icon{width:44px;height:44px;border-radius:11px;background:var(--blue-soft);border:1px solid #D3E2F6;display:flex;align-items:center;justify-content:center;color:var(--blue);flex:none}
.tile .t-icon svg{width:20px;height:20px}
.tile h3{font-size:18px;font-weight:700}
.tile p{font-size:14.5px;color:var(--muted);line-height:1.6;flex:1}
.tile .tlink{font-size:14.5px}
.tile--geo .t-icon{background:var(--teal-soft);border-color:#C9E6E8;color:var(--teal)}

/* ============ Software product cards ============ */
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:26px}
.product-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;box-shadow:var(--sh-sm);transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.product-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.product-card__visual{position:relative;aspect-ratio:16/9;background:var(--bg-mist);overflow:hidden;border-bottom:1px solid var(--line)}
.product-card__visual img{width:100%;height:100%;object-fit:cover;object-position:top left}
.product-card__body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:12px;flex:1}
.product-card__body h3{font-size:19px}
.product-card__summary{font-size:15px;color:var(--muted);line-height:1.6}
.product-card__body .flist{gap:8px}
.product-card__body .flist li{font-size:14.5px}
.product-card__users{font-size:13.5px;color:var(--muted)}
.product-card__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.product-feature{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,64px);align-items:center}
@media(max-width:920px){.product-feature{grid-template-columns:1fr}}
.product-feature__visual{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh-md)}
.software-suite-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px}
.software-suite-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:var(--sh-sm)}
.software-suite-card__top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.software-suite-card__icon{width:44px;height:44px;border-radius:11px;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center}
.software-feature-list{display:grid;gap:10px}
.why-software-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px}
.software-stack-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh-sm)}

/* ============ Project cards & dossier ============ */
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:24px}
.proj-card{
  display:flex;flex-direction:column;border:1px solid var(--line);background:#fff;border-radius:var(--r);
  overflow:hidden;box-shadow:var(--sh-sm);
  transition:border-color .3s,transform .3s var(--ease),box-shadow .3s var(--ease);
}
.proj-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.proj-card .img-frame{border-radius:0;border:0;aspect-ratio:16/10}
.proj-card .pc-body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.proj-card .pc-cat{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.proj-card h3{font-size:17.5px;line-height:1.35;flex:1}
.proj-card .pc-meta{font-size:13px;color:var(--muted);letter-spacing:.02em;display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line-soft);padding-top:12px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px}
.filters button{
  font-size:14px;font-weight:500;padding:9px 18px;border:1px solid var(--line);border-radius:999px;
  color:var(--body);background:#fff;transition:all .25s;
}
.filters button:hover{color:var(--blue);border-color:var(--blue)}
.filters button.active{background:var(--blue);border-color:var(--blue);color:#fff}
.dossier{
  display:grid;grid-template-columns:1.15fr 1fr;border:1px solid var(--line);background:#fff;
  border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-md);
}
@media(max-width:920px){.dossier{grid-template-columns:1fr}}
.dossier .do-media{position:relative;min-height:340px}
.dossier .do-media .img-frame{position:absolute;inset:0;border-radius:0;border:0}
.dossier .do-body{padding:clamp(26px,4vw,48px)}
.dossier .do-body h3{font-size:clamp(21px,2.3vw,28px);margin:8px 0 16px}
.spec-table{width:100%;border-collapse:collapse;margin:20px 0 26px}
.spec-table th,.spec-table td{text-align:left;padding:11px 6px;border-bottom:1px solid var(--line-soft);font-size:14.5px;vertical-align:top}
.spec-table th{font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);width:34%;white-space:nowrap;padding-right:18px}
.spec-table td{color:var(--ink)}
.spec-table tr:last-child th,.spec-table tr:last-child td{border-bottom:0}
.spec-table td .hl{color:var(--blue);font-weight:600}

/* ============ Steps / process ============ */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:920px){.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}
.step{padding:22px;border-radius:var(--r)}
.step .num{display:block;font-family:var(--f-mono);font-size:13px;font-weight:600;color:var(--blue);letter-spacing:.1em;margin-bottom:14px}
.section--dark .step{background:rgba(255,255,255,.05);border:1px solid var(--line-dark)}
.section--dark .step .num{color:#8FC1FF}
.rail{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff}
@media(max-width:920px){.rail{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.rail{grid-template-columns:1fr}}
.rail .step{padding:30px 26px;border-right:1px solid var(--line);border-radius:0;position:relative}
.rail .step:last-child{border-right:0}
@media(max-width:920px){.rail .step:nth-child(2){border-right:0}.rail .step:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:560px){.rail .step{border-right:0;border-bottom:1px solid var(--line)}.rail .step:last-child{border-bottom:0}}
.rail .step .r-num{font-family:var(--f-mono);font-size:12.5px;font-weight:600;color:var(--blue);letter-spacing:.1em;margin-bottom:26px;display:block}
.rail .step h3{font-size:17.5px;margin-bottom:8px}
.rail .step p{font-size:14.5px;color:var(--muted);line-height:1.6}
.rail--dark{border-color:var(--line)}
.rail--dark .step{border-color:var(--line)}

/* ============ Value props ============ */
.props{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(22px,3vw,38px)}
.prop{border-top:3px solid var(--blue);padding-top:20px;background:none;box-shadow:none;border-radius:0}
.prop .p-k{font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:10px}
.prop h3{font-size:17.5px;margin-bottom:9px;color:var(--ink)}
.prop p{font-size:15px;color:var(--muted);line-height:1.65}

/* ============ Stats ============ */
.stat-bar{
  margin-top:clamp(40px,5vw,60px);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:var(--sh-sm);
}
.stat-bar .st{padding:22px 24px;border-right:1px solid var(--line-soft)}
.stat-bar .st:last-child{border-right:0}
.stat-bar b{display:block;font-family:var(--f-display);font-size:clamp(26px,2.6vw,36px);font-weight:800;letter-spacing:-.02em;color:var(--ink);line-height:1.15}
.stat-bar b .unit{color:var(--blue)}
.stat-bar span{font-size:13px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
@media(max-width:760px){.stat-bar .st{border-right:0;border-bottom:1px solid var(--line-soft)}.stat-bar .st:last-child{border-bottom:0}}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px}
.stat b{display:block;font-family:var(--f-display);font-size:clamp(26px,2.6vw,36px);font-weight:800;color:var(--ink)}
.stat span{font-size:13.5px;color:var(--muted)}
.hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-top:36px}
.hero-stats .st{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:16px 18px;box-shadow:var(--sh-sm)}

/* ============ Logo wall / marquee ============ */
.proof-strip{padding:44px 0;border-bottom:1px solid var(--line)}
.proof-strip .p-label{font-size:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:center;margin-bottom:30px}
.marquee{overflow:hidden;position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.marquee-track{display:flex;align-items:center;gap:clamp(44px,6vw,80px);width:max-content;animation:marq 48s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track img{height:34px;width:auto;filter:grayscale(1);opacity:.62;transition:all .3s}
.marquee-track img:hover{filter:none;opacity:1}
@keyframes marq{to{transform:translateX(-50%)}}
.logo-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px;align-items:center}
.logo-wall img{height:36px;width:auto;margin-inline:auto;filter:grayscale(1);opacity:.65;transition:all .3s}
.logo-wall img:hover{filter:none;opacity:1}
.trust-strip{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:center}

/* ============ Team ============ */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:24px}
.person{border:1px solid var(--line);background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-sm)}
.person .img-frame{border-radius:0;border:0;aspect-ratio:1/1.05}
.person .pe-body{padding:18px 20px 20px}
.person h3{font-size:17px}
.person .role{font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--blue);margin-top:6px;line-height:1.6}
.team-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);padding:26px;display:flex;flex-direction:column;gap:14px}
.team-card__head{display:flex;flex-direction:column;align-items:stretch;gap:14px}
/* Full portrait photo — entire image shown, never cropped */
.team-card__avatar{width:100%;height:auto;aspect-ratio:4/5;border-radius:10px;overflow:hidden;flex:none;border:1px solid var(--line);background:linear-gradient(165deg,#E7EFF8 0%,#F5F9FD 55%,#EDF3FA 100%)}
img.team-card__avatar{object-fit:contain;object-position:center bottom;display:block;transition:transform .45s var(--ease)}
.team-card:hover img.team-card__avatar{transform:scale(1.03)}
.team-card__avatar img{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.team-card{transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.team-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.team-card__icon{width:76px;height:76px;border-radius:50%;flex:none;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center;border:2px solid #D3E2F6}
.team-card__icon svg{width:30px;height:30px}
.team-card__id h3{font-size:18px}
.team-card__role{font-size:13.5px;font-weight:600;color:var(--blue);letter-spacing:.03em;margin-top:4px}
.team-card__exp{font-size:14.5px;color:var(--muted)}
.team-card p{font-size:15px;color:var(--body)}
.team-card__skills{display:flex;flex-wrap:wrap;gap:8px}
.team-card__skills span{font-size:12.5px;font-weight:500;background:var(--bg-soft);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 11px}
.team-card__regions{font-size:13px;color:var(--muted);border-top:1px solid var(--line-soft);padding-top:12px;margin-top:auto}

/* ============ FAQ / accordions ============ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:20px 4px;font-family:var(--f-display);font-size:17.5px;font-weight:600;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-mono);color:var(--blue);font-size:21px;transition:transform .3s;flex:none}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 4px 22px;color:var(--body);font-size:15.5px;max-width:72ch}
.acc details{background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:10px;padding:0 18px}
.acc summary{cursor:pointer;padding:16px 0;font-weight:600;color:var(--ink)}

/* ============ Sector photo tiles ============ */
.sector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.sector-card{
  position:relative;display:block;border-radius:var(--r);overflow:hidden;aspect-ratio:16/11;
  border:1px solid var(--line);box-shadow:var(--sh-sm);background:var(--navy-900);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.sector-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.sector-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.sector-card:hover img{transform:scale(1.05)}
.sector-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,28,54,0) 38%,rgba(11,28,54,.82) 100%)}
.sector-card b{
  position:absolute;left:16px;right:14px;bottom:14px;z-index:2;
  font-family:var(--f-display);font-size:16.5px;font-weight:700;color:#fff;line-height:1.3;
  text-shadow:0 1px 6px rgba(11,28,54,.5);
}
.sector-card .sc-go{
  position:absolute;top:12px;right:12px;z-index:2;width:34px;height:34px;border-radius:9px;
  background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center;
  opacity:0;transform:translateY(-4px);transition:all .3s var(--ease);
}
.sector-card:hover .sc-go{opacity:1;transform:none}
.sector-card .sc-go svg{width:15px;height:15px;color:var(--navy-900)}

/* ============ CTA band ============ */
.cta-band--photo .cb-photo{position:absolute;inset:0;z-index:0;pointer-events:none}
.cta-band--photo .cb-photo img{width:100%;height:100%;object-fit:cover;opacity:.22;filter:saturate(.7)}
.cta-band--photo .container{z-index:2}
.cta-band{
  position:relative;overflow:hidden;
  padding:clamp(64px,8vw,110px) 0;text-align:center;
  background:linear-gradient(150deg,var(--navy-900),var(--navy-800));color:var(--on-dark-soft);
}
.cta-band::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 75% 65% at 50% 115%,rgba(17,86,181,.35),transparent 70%);
}
.cta-band .container{position:relative;max-width:820px}
.cta-band h2{margin-bottom:16px;color:#fff}
.cta-band p,.cta-band .lead{color:var(--on-dark-soft);margin-inline:auto}
.cta-band .lead{margin-bottom:36px}
.cta-band .btn-row{justify-content:center}
.cta-band .quick{
  margin-top:40px;display:flex;flex-wrap:wrap;gap:12px 34px;justify-content:center;
  font-size:14.5px;color:var(--on-dark-faint);
}
.cta-band .quick a{color:var(--on-dark-soft);display:inline-flex;align-items:center;gap:9px;transition:color .2s}
.cta-band .quick a:hover{color:#8FC1FF}
.cta-band .quick svg{width:15px;height:15px}
.cta-band .eyebrow{color:#8FC1FF}.cta-band .eyebrow::before{background:#8FC1FF}
.float-cta{display:none}

/* ============ Forms ============ */
.form-panel,.form-card{border:1px solid var(--line);background:#fff;border-radius:var(--r);box-shadow:var(--sh-sm);padding:clamp(24px,3.5vw,40px)}
.f-grid,.form-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:640px){.f-grid,.form-2{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-size:14.5px;font-weight:600;color:var(--ink);letter-spacing:.01em}
.field label .req{color:var(--red)}
.field input,.field select,.field textarea{
  font-family:var(--f-body);font-size:16px;color:var(--ink);
  background:#fff;border:1.5px solid #C7D3E2;border-radius:var(--r-sm);
  padding:13px 15px;transition:border-color .25s,box-shadow .25s;width:100%;
}
.field textarea{min-height:130px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(17,86,181,.14)}
.field input::placeholder,.field textarea::placeholder{color:#93A1B5}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235B6B82' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:38px}
.field.err input,.field.err select,.field.err textarea{border-color:#D64550}
.form-note{font-size:14px;color:var(--muted);display:flex;align-items:flex-start;gap:9px;margin-top:16px;max-width:none}
.form-note svg{width:15px;height:15px;color:var(--blue);flex:none;margin-top:3px}
.form-status,.form-msg{padding:15px 19px;border-radius:var(--r-sm);font-size:15.5px;display:none;margin-bottom:20px}
.form-status.show,.form-msg.show{display:block}
.form-status.is-error,.form-msg.is-error{border:1px solid #E5A6AC;background:#FCEFF0;color:#8F1721}
.form-status.is-info,.form-msg.is-info{border:1px solid #A9C6EC;background:#EEF5FE;color:#174F91}
.form-status.is-success,.form-msg.is-success{border:1px solid #A9D9C2;background:#EBF7F1;color:#0B6B4F}
/* contact channels */
.chan{display:flex;gap:16px;align-items:flex-start;padding:20px 0;border-bottom:1px solid var(--line-soft)}
.chan:last-child{border-bottom:0}
.chan .c-ic{width:44px;height:44px;flex:none;background:var(--blue-soft);border:1px solid #D3E2F6;border-radius:11px;display:flex;align-items:center;justify-content:center;color:var(--blue)}
.chan .c-ic svg{width:19px;height:19px}
.chan b{display:block;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.chan a,.chan span{display:block;font-size:16px;color:var(--ink);line-height:1.75}
.chan a:hover{color:var(--blue)}
.chan small{color:var(--muted);font-size:13.5px}

/* ============ Footer ============ */
.site-footer{background:var(--navy-900);color:var(--on-dark-soft);padding:clamp(52px,6.5vw,80px) 0 0;border-top:0}
.site-footer::before{content:"";display:block;height:3px;background:linear-gradient(90deg,var(--blue),var(--teal));margin-top:calc(-1*clamp(52px,6.5vw,80px));margin-bottom:clamp(52px,6.5vw,80px)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:clamp(28px,4vw,56px);padding-bottom:48px}
@media(max-width:920px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}
.f-brand .f-logo{display:inline-flex;background:#fff;border-radius:10px;padding:9px 14px;margin-bottom:20px}
.f-brand .f-logo img{display:block;height:44px;width:auto;object-fit:contain}
.f-brand p{font-size:14.5px;color:var(--on-dark-soft);max-width:36ch;margin-bottom:20px;line-height:1.7}
.foot-grid h4{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#fff;font-weight:600;margin-bottom:18px}
.foot-grid ul{display:grid;gap:10px}
.foot-grid ul a{font-size:14.5px;color:var(--on-dark-soft);transition:color .2s}
.foot-grid ul a:hover{color:#8FC1FF}
.f-contact li{font-size:14px;color:var(--on-dark-soft);line-height:1.7}
.f-contact b{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-faint);display:block;font-weight:600;margin-top:13px}
.f-contact li:first-child b{margin-top:0}
.f-contact a{color:var(--on-dark-soft)}
.f-contact a:hover{color:#8FC1FF}
.foot-badges{display:flex;flex-wrap:wrap;gap:9px;padding:20px 0;border-top:1px solid var(--line-dark)}
.foot-badges .chip{background:rgba(255,255,255,.06);border-color:var(--line-dark);color:var(--on-dark-soft)}
.foot-bottom{
  display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center;
  padding:22px 0 28px;border-top:1px solid var(--line-dark);
  font-size:13.5px;color:var(--on-dark-faint);
}
.foot-bottom a{color:var(--on-dark-faint)}
.foot-bottom a:hover{color:#8FC1FF}
.foot-bottom .legal{display:flex;gap:20px;flex-wrap:wrap}

/* ============ WhatsApp float ============ */
.wa-float{
  position:fixed;right:20px;bottom:20px;z-index:80;
  width:52px;height:52px;border-radius:50%;background:#1FAF56;color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 26px rgba(16,32,58,.28);transition:transform .3s var(--ease);
}
.wa-float:hover{transform:translateY(-3px) scale(1.05)}
.wa-float svg{width:26px;height:26px}

/* ============ Reveal (JS-gated so content never hides without JS) ============ */
.reveal{opacity:1;transform:none}
html.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
html.js .reveal.in{opacity:1;transform:none}
html.js .reveal.d1{transition-delay:.07s}html.js .reveal.d2{transition-delay:.14s}html.js .reveal.d3{transition-delay:.21s}html.js .reveal.d4{transition-delay:.28s}

/* ============ Misc legacy helpers ============ */
.reticle::before,.reticle::after,.reticle .rt::before,.reticle .rt::after{content:none}
.hero-dashboard,.hero-map,.hero-node,.hero-brandmark,.hero-cards,.hero-metrics--software{display:none}
.svc-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);padding:24px;display:flex;flex-direction:column;gap:12px}
.div-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);padding:26px}
.foot-social{display:flex;gap:10px}
.foot-social a{width:40px;height:40px;border-radius:10px;border:1px solid var(--line-dark);background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;color:var(--on-dark-soft);transition:all .2s}
.foot-social a:hover{color:#fff;border-color:#8FC1FF}
.foot-social svg{width:17px;height:17px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  html.js .reveal{opacity:1;transform:none}
}
@media print{
  .site-header,.site-footer,.wa-float,.cta-band,.nav-toggle,.mobile-menu{display:none!important}
  body{color:#000;background:#fff}
}


/* ============ Team card region icon fix ============ */
.team-card__regions{display:flex;align-items:flex-start;gap:10px}
.team-card__regions svg{width:18px;height:18px;flex:none;color:var(--blue);margin-top:2px}
.team-card__regions span{display:block}

/* ============ Rich GeoSystems tiles ============ */
.tile--geo{overflow:hidden}
.tile--geo .tile-media{margin:-26px -24px 6px;border-bottom:1px solid var(--line-soft);background:var(--bg-soft);aspect-ratio:16/10;overflow:hidden}
.tile--geo .tile-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s var(--ease)}
.tile--geo:hover .tile-media img{transform:scale(1.04)}
.tile-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.tile-tags span{font-size:12px;font-weight:600;color:var(--teal);background:var(--teal-soft);border:1px solid #C9E6E8;border-radius:999px;padding:5px 10px;letter-spacing:.01em}

/* ============ GeoSystems detail media ============ */
.hero--geo{min-height:360px;display:flex;align-items:center}
.hero--geo .hero__bg img{object-position:center center}
.geo-showcase{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.95fr);gap:24px;margin:28px 0 30px;align-items:stretch}
.geo-showcase__media{height:100%;min-height:320px}
.geo-showcase__media img{width:100%;height:100%;object-fit:cover;display:block}
.geo-showcase__panel{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh-sm);padding:22px}
.geo-showcase__panel h3{font-size:22px;margin:8px 0 0}
.geo-specs{display:grid;gap:14px;margin-top:18px}
.geo-spec{background:var(--bg-soft);border:1px solid var(--line);border-radius:16px;padding:16px}
.geo-spec h4{font-size:15px;font-weight:700;margin:0 0 6px;color:var(--ink)}
.geo-spec p{font-size:14.5px;color:var(--muted);margin:0}
@media(max-width:900px){
  .geo-showcase{grid-template-columns:1fr}
  .hero--geo{min-height:320px}
}


/* ============ Software catalog cards ============ */
.product-card__visual img{object-position:center center}
.product-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.product-tags span{font-size:12px;font-weight:600;color:var(--blue);background:var(--blue-soft);border:1px solid #D3E2F6;border-radius:999px;padding:5px 10px;letter-spacing:.01em}
.product-card__eyebrow{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.product-count-note{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh-sm);font-size:13.5px;color:var(--muted)}
.software-detail-hero{min-height:360px;display:flex;align-items:center}
.software-detail-hero .hero__bg img{object-position:center center}
.software-showcase{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:24px;align-items:stretch;margin:28px 0 14px}
.software-showcase__media{height:100%;min-height:310px}
.software-showcase__media img{width:100%;height:100%;object-fit:cover;display:block}
.software-showcase__panel{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--sh-sm);padding:22px}
.software-showcase__panel h3{font-size:22px;margin:8px 0 0}
.software-specs{display:grid;gap:14px;margin-top:18px}
.software-spec{background:var(--bg-soft);border:1px solid var(--line);border-radius:16px;padding:16px}
.software-spec h4{font-size:15px;font-weight:700;margin:0 0 6px;color:var(--ink)}
.software-spec p{font-size:14.5px;color:var(--muted);margin:0}
.software-product-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.software-product-pills .pill{background:#fff}
@media(max-width:900px){
  .software-showcase{grid-template-columns:1fr}
  .software-detail-hero{min-height:320px}
}
