/* ============================================================
   ITNS-Global · Products Suite
   Mobile-first. Every grid is fluid; no fixed page widths.
   Carbon token names retained so the palette stays the brand's.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --navy:#001141; --blue80:#002D9C; --blue70:#0043CE; --blue60:#0062FF;
  --blue50:#4589FF; --blue40:#78A9FF; --blue30:#A6C8FF; --blue20:#D0E2FF; --blue10:#EDF5FF;
  --cyan60:#0072C3; --cyan40:#33B1FF; --teal60:#007D79; --teal40:#08BDBA;
  --green50:#24A148; --gold:#F5A623; --orange40:#FF832B;
  --gray100:#161616; --gray90:#262626; --gray80:#393939; --gray70:#525252;
  --gray60:#6F6F6F; --gray50:#8D8D8D; --gray40:#A8A8A8; --gray30:#C6C6C6;
  --gray20:#E0E0E0; --gray10:#F4F4F4; --white:#fff;

  --sans:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  --serif:'IBM Plex Serif',Georgia,serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;

  --pad:20px;
  --maxw:1240px;
  --topbar-h:56px;
}

@media (min-width:768px)  { :root { --pad:32px; } }
@media (min-width:1200px) { :root { --pad:48px; } }

html { scroll-behavior:smooth; scroll-padding-top:calc(var(--topbar-h) + 56px); }

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

body {
  font-family:var(--sans);
  background:var(--white);
  color:var(--gray100);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg { max-width:100%; }
a { color:var(--blue70); }

.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.skip-link {
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--blue60); color:#fff; padding:10px 16px; font-size:14px;
}
.skip-link:focus { left:0; }

:focus-visible { outline:2px solid var(--blue60); outline-offset:2px; }

.wrap { max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad); }

/* ── SHARED TYPE ───────────────────────────────────────── */
.eyebrow {
  font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue70); margin-bottom:10px;
}
.eyebrow-light { color:var(--cyan40); }
.eyebrow-link { color:inherit; text-decoration:none; border-bottom:1px solid currentColor; }

/* ── BUTTONS ───────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--sans); font-size:15px; font-weight:500; line-height:1.2;
  padding:14px 22px; border:1px solid transparent; cursor:pointer;
  text-decoration:none; transition:background .15s,color .15s,border-color .15s;
  min-height:48px;
}
.btn-ico { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; flex:none; }
.btn-primary { background:var(--blue60); color:#fff; }
.btn-primary:hover { background:var(--blue70); }
.btn-accent { background:var(--gold); color:var(--gray100); font-weight:600; }
.btn-accent:hover { background:#e0951c; }
.btn-ghost { background:transparent; color:var(--blue70); border-color:var(--gray30); }
.btn-ghost:hover { border-color:var(--blue60); background:var(--blue10); }
.btn-block { width:100%; }
.btn-sm { padding:10px 16px; min-height:40px; font-size:14px; }

.linkish {
  background:none; border:0; padding:0; font:inherit;
  color:var(--blue70); text-decoration:underline; cursor:pointer;
}

/* ── TOPBAR ────────────────────────────────────────────── */
.topbar { background:var(--navy); position:sticky; top:0; z-index:100; }
.topbar-in {
  max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad);
  height:var(--topbar-h); display:flex; align-items:center; gap:16px;
  overflow:hidden;          /* nothing can spill out of the bar */
}
.topbar-logo {
  display:flex; align-items:center; text-decoration:none;
  margin-right:auto; flex:none; min-height:30px;
}
/* Height is capped in CSS so the header cannot be blown out by whatever
   pixel dimensions the source file happens to have. */
.topbar-logo-img { display:block; height:36px; width:auto; max-height:36px; max-width:200px; }
@media (max-width:599px) { .topbar-logo-img { height:28px; max-height:28px; max-width:150px; } }
.topbar-mark {
  width:26px; height:26px; background:var(--blue60); flex:none; position:relative;
}
.topbar-mark::after {
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(90deg,transparent 0 3px,rgba(255,255,255,.28) 3px 4px);
}
.topbar-words { display:flex; flex-direction:column; line-height:1.15; }
.topbar-name { font-size:12px; font-weight:600; color:var(--blue30); letter-spacing:.08em; text-transform:uppercase; }
.topbar-sub { font-size:10px; color:var(--blue40); }

/* Six nav items now, so the spacing is tighter than the original three. */
.topbar-nav { display:none; align-items:center; gap:2px; }
.topbar-nav a {
  font-size:13.5px; color:var(--blue20); text-decoration:none;
  padding:8px 11px; white-space:nowrap;
  border-bottom:2px solid transparent;
  transition:color .15s, border-color .15s;
}
.topbar-nav a:hover { color:#fff; }
.topbar-nav a.is-current { color:#fff; font-weight:500; border-bottom-color:var(--blue60); }

.topbar-right { display:none; align-items:center; gap:10px; flex:none; }
.cur-select {
  font-family:var(--sans); font-size:13px; background:var(--blue80); color:#fff;
  border:1px solid var(--blue70); padding:7px 10px; min-height:36px;
}
.cur-select:focus { outline:2px solid var(--blue50); outline-offset:1px; }
.topbar-cta {
  font-size:13px; font-weight:500; color:#fff; background:var(--blue60);
  padding:9px 16px; text-decoration:none; white-space:nowrap;
}
.topbar-cta:hover { background:var(--blue50); }

.nav-toggle {
  display:flex; align-items:center; justify-content:center; flex:none;
  width:44px; height:44px; background:none; border:1px solid rgba(166,200,255,.25); cursor:pointer;
}
.nav-toggle-bars, .nav-toggle-bars::before, .nav-toggle-bars::after {
  display:block; width:18px; height:2px; background:var(--blue30); position:relative;
}
.nav-toggle-bars::before, .nav-toggle-bars::after { content:''; position:absolute; left:0; }
.nav-toggle-bars::before { top:-6px; }
.nav-toggle-bars::after  { top:6px; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars { background:transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::before { top:0; transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle-bars::after  { top:0; transform:rotate(-45deg); }

.mobile-nav { background:var(--blue80); padding:8px var(--pad) 16px; }
.mobile-nav a {
  display:block; padding:13px 0; color:var(--blue20); text-decoration:none;
  font-size:15px; border-bottom:1px solid rgba(166,200,255,.15);
}
.mobile-nav a:last-of-type { border-bottom:0; }
.mobile-nav a.is-current { color:#fff; font-weight:600; }

.mobile-cur { padding:16px 0 4px; }
.mobile-cur label {
  display:block; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--blue40); margin-bottom:8px;
}
.mobile-cur .cur-select { width:100%; font-size:16px; padding:11px 12px; min-height:46px; }

/* Raised from 900px: six nav items plus currency and CTA need the room. */
@media (min-width:1080px) {
  .topbar-nav { display:flex; }
  .topbar-right { display:flex; }
  .nav-toggle { display:none; }
  .mobile-nav { display:none !important; }
}

/* ── BREADCRUMB ────────────────────────────────────────── */
.crumb { background:var(--gray10); border-bottom:1px solid var(--gray20); }
.crumb ol {
  max-width:var(--maxw); margin:0 auto; padding:10px var(--pad);
  list-style:none; display:flex; flex-wrap:wrap; gap:8px; font-size:13px;
}
.crumb li + li::before { content:'/'; color:var(--gray40); margin-right:8px; }
.crumb a { color:var(--blue70); text-decoration:none; }
.crumb a:hover { text-decoration:underline; }
.crumb span { color:var(--gray70); }

/* ── HERO ──────────────────────────────────────────────── */
.hero { background:var(--navy); color:#fff; position:relative; overflow:hidden; }
.hero-rule { position:absolute; inset:0 0 auto; height:4px;
  background:linear-gradient(90deg,var(--blue60),var(--cyan40),var(--teal40)); }
.hero-in { max-width:var(--maxw); margin:0 auto; padding:56px var(--pad) 48px; }

.hero-h1 {
  font-family:var(--serif); font-weight:300;
  font-size:clamp(30px,6.2vw,56px); line-height:1.1; letter-spacing:-.02em;
  max-width:24ch;
}
.hero-h1 strong { display:block; font-weight:500; color:var(--blue40); }

.hero-lede {
  font-size:clamp(15px,2.1vw,18px); font-weight:300; color:var(--blue30);
  line-height:1.7; max-width:62ch; margin-top:22px;
}
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.hero .btn-ghost { color:var(--blue30); border-color:rgba(166,200,255,.35); }
.hero .btn-ghost:hover { background:rgba(255,255,255,.06); border-color:var(--blue40); }

.hero-facts {
  display:grid; gap:2px; margin-top:40px;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  border-top:1px solid rgba(166,200,255,.18); padding-top:22px;
}
.hero-facts dt {
  font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gray50); margin-bottom:5px;
}
.hero-facts dd { font-size:13px; color:var(--blue20); font-family:var(--mono); }

/* ── LEAD MAGNET ───────────────────────────────────────── */
.magnet { background:var(--gray100); color:#fff; }
.magnet-in {
  max-width:var(--maxw); margin:0 auto; padding:44px var(--pad);
  display:grid; gap:32px; align-items:start;
}
@media (min-width:900px) { .magnet-in { grid-template-columns:1.4fr 1fr; gap:56px; } }

.magnet-h { font-family:var(--serif); font-weight:400; font-size:clamp(23px,3.4vw,32px); line-height:1.2; }
.magnet-p { font-size:15px; color:var(--gray30); line-height:1.75; margin:16px 0 26px; max-width:58ch; }

.magnet-list { list-style:none; display:grid; gap:12px; }
.magnet-list li {
  display:flex; align-items:flex-start; gap:10px;
  font-size:14px; color:var(--gray20);
  border-bottom:1px solid var(--gray80); padding-bottom:12px;
}
.tick { width:15px; height:15px; flex:none; margin-top:4px; fill:none; stroke:var(--teal40); stroke-width:2.5; }

/* ── CATALOGUE LAYOUT ──────────────────────────────────── */
.catalogue {
  max-width:var(--maxw); margin:0 auto; padding:0 var(--pad) 64px;
  display:grid; gap:32px;
}
@media (min-width:1000px) {
  .catalogue { grid-template-columns:250px 1fr; gap:56px; padding-top:8px; }
}

.rail { padding-top:32px; }
.rail-in { position:static; }
@media (min-width:1000px) {
  .rail-in { position:sticky; top:calc(var(--topbar-h) + 24px); }
}

.rail-search { position:relative; margin-bottom:18px; }
.rail-search input {
  width:100%; font-family:var(--sans); font-size:15px;
  padding:12px 12px 12px 38px; border:1px solid var(--gray30);
  background:var(--white); min-height:46px;
}
.rail-search input:focus { border-color:var(--blue60); outline:none; box-shadow:0 0 0 2px var(--blue20); }
.rail-search-ico {
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  width:16px; height:16px; fill:none; stroke:var(--gray60); stroke-width:2; pointer-events:none;
}

.rail-nav { display:flex; flex-direction:column; border-top:1px solid var(--gray20); }
.rail-nav a {
  display:flex; align-items:baseline; gap:10px; padding:12px 0;
  border-bottom:1px solid var(--gray20); text-decoration:none;
  color:var(--gray80); font-size:14px; border-left:2px solid transparent; padding-left:10px;
}
.rail-nav a:hover { color:var(--blue70); background:var(--blue10); }
.rail-nav a.on { border-left-color:var(--blue60); color:var(--blue70); font-weight:500; }
.rail-idx { font-family:var(--mono); font-size:11px; color:var(--gray50); flex:none; }
.rail-txt { flex:1; line-height:1.35; }
.rail-n { font-family:var(--mono); font-size:11px; color:var(--gray50); }
.rail-note { font-size:12px; color:var(--gray60); margin-top:14px; min-height:18px; }

/* ── CATEGORY + CARDS ──────────────────────────────────── */
.cats { padding-top:8px; }
.cat { padding:40px 0; border-top:1px solid var(--gray20); }
.cat:first-child { border-top:0; padding-top:24px; }

.cat-head { display:flex; align-items:flex-start; gap:14px; }
.cat-head-ico {
  width:42px; height:42px; background:var(--blue10); flex:none;
  display:flex; align-items:center; justify-content:center;
}
.cat-ico { width:21px; height:21px; fill:none; stroke:var(--blue60); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.cat-h2 { font-family:var(--serif); font-weight:400; font-size:clamp(21px,3vw,28px); line-height:1.2; }
.cat-blurb { font-size:15px; color:var(--gray70); line-height:1.7; margin:14px 0 26px; max-width:70ch; }

.cards { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }

.card {
  border:1px solid var(--gray20); padding:22px 20px 18px;
  display:flex; flex-direction:column; position:relative;
  background:var(--white); transition:border-color .15s,box-shadow .15s;
}
.card:hover { border-color:var(--blue40); box-shadow:0 6px 20px rgba(0,17,65,.09); }
.card-featured { border-color:var(--blue30); background:var(--blue10); }

.card-flag {
  position:absolute; top:0; right:0;
  font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  background:var(--blue60); color:#fff; padding:4px 9px;
}
.card-flag-soon { background:var(--teal60); }

.card-h3 { font-size:17px; font-weight:600; line-height:1.3; margin-bottom:8px; padding-right:20px; }
.card-h3 a { color:var(--gray100); text-decoration:none; }
.card-h3 a::after { content:''; position:absolute; inset:0; }
.card-h3 a:hover { color:var(--blue70); }

.card-tag { font-size:14px; color:var(--gray70); line-height:1.55; margin-bottom:20px; }

.card-foot {
  margin-top:auto; padding-top:14px; border-top:1px solid var(--gray20);
  display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap;
}
.card-price { display:flex; align-items:baseline; gap:5px; flex-wrap:wrap; }
.card-from { font-size:11px; color:var(--gray60); text-transform:uppercase; letter-spacing:.08em; }
.card-price .amount { font-family:var(--mono); font-size:19px; color:var(--gray100); }
.card-freq { font-size:11px; color:var(--gray60); }
.card-price-consult { font-size:13px; color:var(--gray70); font-style:italic; }
.card-link { font-size:13px; color:var(--blue70); text-decoration:none; display:inline-flex; align-items:center; gap:5px; }
.card-ico { width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:2; }

.no-results { padding:48px 0; font-size:16px; color:var(--gray70); }

.closer {
  margin-top:40px; padding:36px 28px; background:var(--blue10);
  border-left:4px solid var(--blue60);
}
.closer-h { font-family:var(--serif); font-weight:400; font-size:clamp(20px,3vw,26px); }
.closer-p { font-size:15px; color:var(--gray70); line-height:1.7; margin:12px 0 22px; max-width:62ch; }
.closer-actions { display:flex; flex-wrap:wrap; gap:12px; }

/* ── PRODUCT HERO ──────────────────────────────────────── */
.prod-hero { background:var(--navy); color:#fff; }
.prod-hero-accent { background:var(--gray100); }
.prod-hero-in { max-width:var(--maxw); margin:0 auto; padding:44px var(--pad) 40px; }
.prod-hero .eyebrow, .prod-hero-accent .eyebrow { color:var(--cyan40); }

.prod-h1 {
  font-family:var(--serif); font-weight:300;
  font-size:clamp(27px,5.2vw,46px); line-height:1.14; letter-spacing:-.015em; max-width:26ch;
}
.prod-lede { font-size:clamp(15px,2vw,18px); color:var(--blue30); line-height:1.65; margin-top:16px; max-width:58ch; }
.prod-hero-accent .prod-lede { color:var(--gray30); }

.chiplist { list-style:none; display:flex; flex-wrap:wrap; gap:7px; margin-top:22px; }
.chip {
  font-size:11px; font-weight:500; letter-spacing:.05em; text-transform:uppercase;
  color:var(--blue30); border:1px solid rgba(166,200,255,.32); padding:5px 10px;
}
.prod-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.prod-hero .btn-ghost, .prod-hero-accent .btn-ghost { color:var(--blue30); border-color:rgba(166,200,255,.35); }
.prod-hero .btn-ghost:hover { background:rgba(255,255,255,.07); }

.statline {
  display:grid; gap:18px; margin-top:34px; padding-top:22px;
  border-top:1px solid rgba(166,200,255,.18);
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
}
.statline dt { font-family:var(--mono); font-size:clamp(19px,3vw,26px); font-weight:400; color:#fff; line-height:1; }
.statline dd { font-size:12px; color:var(--gray50); margin-top:6px; line-height:1.45; }

/* ── SPINE ─────────────────────────────────────────────── */
.spine {
  position:sticky; top:var(--topbar-h); z-index:60;
  background:var(--white); border-bottom:1px solid var(--gray20);
}
.spine-in {
  max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad);
  display:flex; gap:2px; overflow-x:auto; scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.spine-in::-webkit-scrollbar { display:none; }
.spine-in a {
  flex:none; padding:14px 14px; font-size:13px; color:var(--gray70);
  text-decoration:none; white-space:nowrap; border-bottom:2px solid transparent;
}
.spine-in a:hover { color:var(--blue70); }
.spine-in a.on { color:var(--blue70); border-bottom-color:var(--blue60); font-weight:500; }

/* ── PRODUCT BODY ──────────────────────────────────────── */
.prod-body { max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad); }

.sec { padding:44px 0; border-top:1px solid var(--gray20); }
.sec:first-child { border-top:0; }
.sec-h { font-family:var(--serif); font-weight:400; font-size:clamp(21px,3.2vw,30px); line-height:1.2; margin-bottom:20px; }
.sec-lead {
  font-family:var(--serif); font-size:clamp(16px,2.2vw,19px); font-weight:300;
  color:var(--gray80); line-height:1.65; border-left:3px solid var(--blue60);
  padding-left:18px; margin-bottom:20px; max-width:68ch;
}
.sec-p { font-size:15px; color:var(--gray70); line-height:1.8; margin-bottom:16px; max-width:72ch; }
.sec-p-lead { color:var(--gray80); }

.sec-dark {
  background:var(--gray100); color:#fff; border-top:0;
  margin-inline:calc(var(--pad)*-1); padding:44px var(--pad);
}
.sec-dark .sec-h { color:#fff; }

/* Features */
.feats { display:grid; gap:1px; background:var(--gray20); border:1px solid var(--gray20);
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.feat { background:var(--white); padding:22px 20px; }
.feat-n { font-family:var(--mono); font-size:11px; color:var(--blue60); display:block; margin-bottom:8px; }
.feat-h { font-size:15px; font-weight:600; margin-bottom:9px; line-height:1.35; }
.feat-p { font-size:14px; color:var(--gray70); line-height:1.7; }

/* Outcomes */
.outs { display:grid; gap:2px; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); }
.out { background:var(--gray90); padding:24px 20px; }
.out-n { font-family:var(--mono); font-size:clamp(20px,3vw,28px); color:var(--blue50); line-height:1; margin-bottom:12px; }
.out-h { font-size:15px; font-weight:600; color:#fff; margin-bottom:9px; }
.out-p { font-size:13.5px; color:var(--gray40); line-height:1.7; }

/* Pricing */
.plans { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); margin-bottom:18px; }
.plan { border:1px solid var(--gray20); padding:24px 20px; position:relative; display:flex; flex-direction:column; }
.plan-featured { border-color:var(--blue60); border-width:2px; }
.plan-flag {
  position:absolute; top:-1px; right:-1px; background:var(--blue60); color:#fff;
  font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:4px 9px;
}
.plan-h { font-size:17px; font-weight:600; margin-bottom:5px; }
.plan-note { font-size:13px; color:var(--gray60); margin-bottom:16px; }
.plan-price { display:flex; align-items:baseline; gap:7px; flex-wrap:wrap; margin-bottom:4px; }
.plan-price .amount { font-family:var(--mono); font-size:clamp(24px,4vw,32px); color:var(--gray100); line-height:1; }
.plan-freq { font-size:13px; color:var(--gray60); }
.plan-consult { font-size:17px; color:var(--gray70); font-style:italic; }
.plan-sub { font-size:13px; color:var(--gray70); margin-bottom:16px; }
.plan-sub .amount { font-family:var(--mono); color:var(--gray100); font-size:15px; }
.plan-list { list-style:none; display:grid; gap:10px; margin-top:14px; padding-top:16px; border-top:1px solid var(--gray20); }
.plan-list li { display:flex; align-items:flex-start; gap:9px; font-size:14px; color:var(--gray80); line-height:1.5; }
.plan-list .tick { stroke:var(--green50); }
.pricing-note { font-size:13px; color:var(--gray60); line-height:1.7; max-width:70ch; }

/* Cases */
.cases { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
.case { background:var(--blue10); border-left:4px solid var(--blue60); padding:22px 20px; }
.case-ind { font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--blue70); margin-bottom:8px; }
.case-h { font-size:16px; font-weight:600; margin-bottom:9px; line-height:1.35; }
.case-p { font-size:14px; color:var(--gray70); line-height:1.7; }
.case-m { font-family:var(--mono); font-size:14px; color:var(--blue70); margin-top:14px; line-height:1.5; }

/* Steps */
.steps { list-style:none; display:grid; gap:2px; }
.step { display:flex; gap:16px; background:var(--gray10); padding:18px 20px; align-items:flex-start; }
.step-n { font-family:var(--mono); font-size:13px; color:#fff; background:var(--blue60);
  width:34px; height:34px; display:flex; align-items:center; justify-content:center; flex:none; }
.step-h { font-size:15px; font-weight:600; margin-bottom:5px; }
.step-p { font-size:14px; color:var(--gray70); line-height:1.65; }

/* Specs */
.spec-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.spec { width:100%; border-collapse:collapse; min-width:520px; }
.spec th, .spec td { padding:13px 16px; font-size:14px; text-align:left; vertical-align:top;
  border-bottom:1px solid var(--gray20); }
.spec th { font-weight:600; color:var(--gray80); width:210px; }
.spec td { color:var(--gray70); line-height:1.65; }
.spec tr:nth-child(even) th, .spec tr:nth-child(even) td { background:var(--gray10); }

/* FAQs */
.faqs { border-top:1px solid var(--gray20); max-width:80ch; }
.faq { border-bottom:1px solid var(--gray20); }
.faq-q {
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:17px 0; font-size:16px; font-weight:500; cursor:pointer; list-style:none;
  color:var(--gray100);
}
.faq-q::-webkit-details-marker { display:none; }
.faq-q:hover { color:var(--blue70); }
.faq-ico { width:17px; height:17px; flex:none; fill:none; stroke:currentColor; stroke-width:2; transition:transform .18s; }
.faq[open] .faq-ico { transform:rotate(180deg); }
.faq-a { padding:0 0 20px; }
.faq-a p { font-size:15px; color:var(--gray70); line-height:1.8; max-width:72ch; }

/* ── FORM ──────────────────────────────────────────────── */
.sec-form { display:grid; gap:28px; }
@media (min-width:900px) { .sec-form { grid-template-columns:1fr 300px; gap:44px; align-items:start; } }

.lead-form { background:var(--gray10); padding:28px 24px; border-top:3px solid var(--blue60); }
.lead-h { font-family:var(--serif); font-weight:400; font-size:clamp(20px,3vw,26px); margin-bottom:8px; }
.lead-intro { font-size:14.5px; color:var(--gray70); line-height:1.65; margin-bottom:24px; max-width:56ch; }

.lead-grid { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.field { display:flex; flex-direction:column; }
.field-wide { grid-column:1/-1; }
.field label { font-size:13px; font-weight:600; color:var(--gray80); margin-bottom:6px; }
.req { color:var(--blue70); }
.opt { font-weight:400; color:var(--gray50); }
.field input, .field select, .field textarea {
  font-family:var(--sans); font-size:16px; padding:12px 13px;
  border:1px solid var(--gray30); background:var(--white); color:var(--gray100);
  min-height:48px; width:100%;
}
.field textarea { min-height:110px; resize:vertical; line-height:1.6; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline:none; border-color:var(--blue60); box-shadow:0 0 0 2px var(--blue20);
}
.field.has-error input, .field.has-error select { border-color:#DA1E28; }
.field-msg { font-size:12.5px; color:#DA1E28; margin-top:5px; }

.hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.lead-actions { margin-top:22px; }
.lead-privacy { font-size:12.5px; color:var(--gray60); line-height:1.6; margin-top:14px; max-width:52ch; }

.contact-card { background:var(--blue10); padding:24px 20px; border-left:3px solid var(--blue60); }
.contact-h { font-size:15px; font-weight:600; margin-bottom:16px; }
.contact-list { list-style:none; display:grid; gap:13px; margin-bottom:16px; }
.contact-list li { display:flex; align-items:center; gap:10px; font-size:14.5px; }
.contact-list a { color:var(--blue70); text-decoration:none; word-break:break-word; }
.contact-list a:hover { text-decoration:underline; }
.contact-ico { width:16px; height:16px; flex:none; fill:none; stroke:var(--blue60); stroke-width:1.6; }
.contact-note { font-size:13px; color:var(--gray70); line-height:1.65; margin-bottom:16px; }

/* ── SIBLINGS ──────────────────────────────────────────── */
.siblings { padding:36px 0 56px; border-top:1px solid var(--gray20); }
.sib-h { font-size:13px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--gray60); margin-bottom:16px; }
.sib-list { list-style:none; display:grid; gap:1px; background:var(--gray20);
  border:1px solid var(--gray20); grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.sib-list a { display:block; background:var(--white); padding:18px 18px; text-decoration:none; height:100%; }
.sib-list a:hover { background:var(--blue10); }
.sib-name { display:block; font-size:15px; font-weight:600; color:var(--gray100); margin-bottom:5px; }
.sib-tag { display:block; font-size:13px; color:var(--gray70); line-height:1.55; }

/* ── STICKY CONVERSION BAR (mobile) ────────────────────── */
.stickybar {
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  background:var(--navy); color:#fff; padding:10px var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  border-top:2px solid var(--blue60);
  transform:translateY(110%); transition:transform .22s ease;
}
.stickybar.on { transform:translateY(0); }
.stickybar-name { font-size:13px; color:var(--blue30); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (min-width:900px) { .stickybar { display:none; } }

/* ── THANK YOU / 404 ───────────────────────────────────── */
.thanks, .notfound { max-width:var(--maxw); margin:0 auto; padding:72px var(--pad) 96px; }
.thanks-in { max-width:60ch; }
.thanks-tick {
  width:52px; height:52px; background:var(--green50); display:flex;
  align-items:center; justify-content:center; margin-bottom:24px;
}
.thanks-ico { width:26px; height:26px; fill:none; stroke:#fff; stroke-width:2.5; }
.thanks-h { font-family:var(--serif); font-weight:400; font-size:clamp(26px,4.4vw,38px); line-height:1.2; }
.thanks-p { font-size:17px; color:var(--gray70); line-height:1.75; margin:16px 0; }
.thanks-sub { font-size:14.5px; color:var(--gray70); line-height:1.7; margin-bottom:28px; }
.thanks-actions { display:flex; flex-wrap:wrap; gap:12px; }
.notfound h1 { font-family:var(--serif); font-weight:400; font-size:clamp(24px,4vw,34px); margin-bottom:14px; }
.notfound p { font-size:16px; color:var(--gray70); margin-bottom:20px; }

/* ── HOMEPAGE · SECTION 1 — HERO ───────────────────────── */
.hero {
  background:var(--navy); color:#fff;
  position:relative; overflow:hidden;
  min-height:clamp(420px,66vh,660px);
  display:flex; align-items:center;
}

/* Background photograph */
.hero-img {
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center 45%;
}

/* Navy wash — keeps the headline legible over any photograph and
   stops the image overwhelming the brand colour. */
.hero-wash {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(100deg,
    rgba(0,17,65,.95) 0%,
    rgba(0,17,65,.86) 40%,
    rgba(0,17,65,.60) 70%,
    rgba(0,17,65,.38) 100%);
}

.hero-grid {
  position:absolute; inset:0; z-index:2;
  background-image:
    linear-gradient(rgba(0,98,255,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,98,255,.07) 1px, transparent 1px);
  background-size:44px 44px;
}
.hero-bg .hero-grid {
  mask-image:linear-gradient(90deg,#000 0%,#000 50%,transparent 88%);
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 50%,transparent 88%);
}

.hero-in {
  position:relative; z-index:3;
  max-width:var(--maxw); margin:0 auto; width:100%;
  padding:64px var(--pad) 68px;
}
.hero-copy { max-width:60ch; }

.hero-eyebrow {
  font-size:11.5px; font-weight:600; letter-spacing:.13em; text-transform:uppercase;
  color:var(--cyan40); margin-bottom:18px; line-height:1.5;
  display:flex; align-items:center; gap:12px;
}
.hero-eyebrow::before { content:''; width:28px; height:2px; background:var(--cyan40); flex:none; }

.hero-h1 {
  font-family:var(--serif); font-weight:300;
  font-size:clamp(30px,5.2vw,52px); line-height:1.1; letter-spacing:-.02em; max-width:19ch;
}
.hero-h1 strong { display:block; font-weight:500; color:var(--blue40); }

.hero-p {
  font-size:clamp(15px,1.9vw,17.5px); font-weight:300;
  color:var(--blue20); line-height:1.75; margin-top:22px; max-width:56ch;
}

.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.hero .btn-ghost { color:var(--blue20); border-color:rgba(166,200,255,.4); }
.hero .btn-ghost:hover { background:rgba(255,255,255,.09); border-color:var(--blue40); }

@media (max-width:700px) {
  /* A wide crop rarely keeps text legible on a narrow screen, so the
     wash goes near-solid: readability wins over the photograph. */
  .hero-bg .hero-wash {
    background:linear-gradient(180deg, rgba(0,17,65,.93) 0%, rgba(0,17,65,.97) 100%);
  }
  .hero-bg .hero-grid { mask-image:none; -webkit-mask-image:none; }
}



/* ── DEV BANNER (only while SITE_LIVE is false) ─────────── */
.devbar {
  background:var(--gold); color:var(--gray100);
  font-size:12.5px; font-weight:500; text-align:center;
  padding:7px var(--pad); line-height:1.5;
}
.devbar code {
  font-family:var(--mono); font-size:11.5px;
  background:rgba(0,0,0,.14); padding:1px 5px;
}

/* ══ FOOTER + LEGAL PAGES — from the footer package, unmodified ══ */
/* ═══════════════════════════════════════════════════════════════
   ITNS-Global · Complete Footer + Legal Page Styles
   ─────────────────────────────────────────────────────────────
   HOW TO USE:
   Append the entire contents of this file to assets/css/main.css
   (Replace the existing .site-footer block starting at line ~288)
═══════════════════════════════════════════════════════════════ */

/* ── SITE FOOTER ───────────────────────────────────────────── */
.site-footer { background:var(--gray100); padding:0; display:block; }

.site-footer__accent {
  height: 4px;
  background: linear-gradient(90deg, var(--blue60) 0%, var(--cyan40) 50%, var(--teal40) 100%);
}

.site-footer__main {
  max-width: 1280px;
  margin: 0 auto;
  padding: 60px 48px 44px;
  display: grid;
  grid-template-columns: 300px 1fr 1fr 1fr 1fr;
  gap: 48px;
  align-items: start;
}

/* Brand column */
.footer-brand-col  { /* no extra styles needed */ }
.footer-brand-logo { display:flex; align-items:center; gap:10px; text-decoration:none; margin-bottom:16px; }
.footer-brand-mark {
  width:30px; height:30px; background:var(--blue60);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; position:relative;
}
.footer-brand-mark::after {
  content:''; position:absolute; inset:0;
  background: repeating-linear-gradient(90deg,transparent 0,transparent 3px,rgba(255,255,255,0.22) 3px,rgba(255,255,255,0.22) 4px);
}
.footer-brand-name { font-size:12px; font-weight:600; color:var(--white); letter-spacing:0.08em; text-transform:uppercase; line-height:1.2; }
.footer-brand-sub  { font-size:9px; color:var(--blue40); margin-top:1px; }
.footer-brand-desc { font-size:12px; color:var(--gray60); line-height:1.75; margin-bottom:18px; }
.footer-brand-reg  {
  font-size:10.5px; color:var(--gray70); line-height:1.65;
  border-top:1px solid rgba(255,255,255,0.07); padding-top:14px;
}
.footer-brand-reg strong { color:var(--gray50); display:block; margin-bottom:2px; font-weight:500; }

/* Nav columns shared */
.footer-col-title {
  font-size:9px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--white); margin-bottom:16px; padding-bottom:11px; position:relative;
}
.footer-col-title::after {
  content:''; position:absolute; bottom:0; left:0;
  width:18px; height:2px; background:var(--blue60);
}
.footer-nav { list-style:none; display:flex; flex-direction:column; gap:8px; }
.footer-nav li a {
  font-size:12px; color:var(--gray60); text-decoration:none;
  display:flex; align-items:center; gap:7px;
  transition:color 0.14s ease;
}
.footer-nav li a:hover { color:var(--white); }
.footer-nav li a::before {
  content:''; width:3px; height:3px;
  background:var(--blue60); border-radius:50%; flex-shrink:0;
}
.footer-nav-badge {
  font-size:8px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
  background:var(--blue60); color:var(--white); padding:1px 5px; margin-left:2px;
}

/* Contact column */
.footer-contact-item { display:flex; align-items:flex-start; gap:9px; margin-bottom:13px; }
.footer-contact-icon {
  width:13px; height:13px; flex-shrink:0; margin-top:3px;
  stroke:var(--blue50); fill:none; stroke-width:1.5;
  stroke-linecap:round; stroke-linejoin:round;
}
.footer-contact-label { font-size:9px; font-weight:600; letter-spacing:0.1em; text-transform:uppercase; color:var(--gray70); display:block; margin-bottom:1px; }
.footer-contact-value { font-size:12.5px; color:var(--white); text-decoration:none; display:block; line-height:1.4; }
.footer-contact-value:hover { color:var(--blue40); }
.footer-contact-note  { font-size:10px; color:var(--gray60); margin-top:1px; display:block; }

/* Social */
.footer-social {
  display:flex; gap:7px; flex-wrap:wrap;
  margin-top:18px; padding-top:16px;
  border-top:1px solid rgba(255,255,255,0.07);
}
.footer-social-link {
  width:30px; height:30px;
  background:rgba(0,98,255,0.1); border:1px solid rgba(0,98,255,0.2);
  display:flex; align-items:center; justify-content:center;
  text-decoration:none; transition:background 0.14s, border-color 0.14s;
}
.footer-social-link:hover { background:rgba(0,98,255,0.28); border-color:var(--blue60); }
.footer-social-link svg { width:13px; height:13px; fill:var(--gray60); transition:fill 0.14s; }
.footer-social-link:hover svg { fill:var(--white); }

/* Divider */
.site-footer__divider {
  height:1px; background:rgba(255,255,255,0.07);
  max-width:1280px; margin:0 auto;
  margin-left:48px; margin-right:48px;
}

/* Bottom strip */
.site-footer__bottom {
  max-width:1280px; margin:0 auto;
  padding:16px 48px;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px;
}
.footer-copyright { font-size:10.5px; color:var(--gray70); line-height:1.5; }
.footer-copyright span { color:var(--gray50); }
.footer-legal-links { display:flex; align-items:center; flex-wrap:wrap; }
.footer-legal-links a {
  font-size:10px; color:var(--gray70); text-decoration:none;
  padding:0 11px; border-right:1px solid rgba(255,255,255,0.07);
  line-height:1; transition:color 0.14s;
}
.footer-legal-links a:first-child { padding-left:0; }
.footer-legal-links a:last-child  { border-right:none; }
.footer-legal-links a:hover { color:var(--blue40); }


/* ═══════════════════════════════════════════════════════════════
   LEGAL PAGES
═══════════════════════════════════════════════════════════════ */
.legal-topbar {
  background:var(--navy); padding:0 48px; height:52px;
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid rgba(166,200,255,0.1);
  position:sticky; top:0; z-index:50;
}
.legal-topbar-logo { display:flex; align-items:center; gap:10px; text-decoration:none; }
.legal-topbar-mark {
  width:26px; height:26px; background:var(--blue60);
  display:flex; align-items:center; justify-content:center; position:relative;
}
.legal-topbar-mark::after {
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(90deg,transparent 0,transparent 3px,rgba(255,255,255,0.25) 3px,rgba(255,255,255,0.25) 4px);
}
.legal-topbar-name { font-size:11px; font-weight:500; color:var(--blue30); letter-spacing:0.08em; text-transform:uppercase; }
.legal-topbar-links { display:flex; align-items:center; gap:24px; }
.legal-topbar-links a { font-size:11px; color:var(--blue40); text-decoration:none; }
.legal-topbar-links a:hover { color:var(--white); }
.legal-topbar-back {
  font-size:10px; font-weight:500; color:var(--white);
  background:var(--blue60); padding:5px 14px; text-decoration:none; letter-spacing:0.04em;
}

.legal-hero {
  background:var(--navy); padding:44px 48px 48px; position:relative; overflow:hidden;
}
.legal-hero-bg  { position:absolute; inset:0; background-image:linear-gradient(rgba(0,98,255,0.06) 1px,transparent 1px),linear-gradient(90deg,rgba(0,98,255,0.06) 1px,transparent 1px); background-size:40px 40px; }
.legal-hero-bar { position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,var(--blue60),var(--cyan40),var(--teal40)); }
.legal-hero-inner { position:relative; z-index:1; max-width:1280px; margin:0 auto; }
.legal-hero-eyebrow { font-size:9px; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--cyan40); margin-bottom:10px; display:flex; align-items:center; gap:10px; }
.legal-hero-eyebrow::before { content:''; width:18px; height:2px; background:var(--cyan40); }
.legal-hero-title { font-family:'IBM Plex Serif',serif; font-size:34px; font-weight:300; color:var(--white); line-height:1.15; }
.legal-hero-title strong { font-weight:500; color:var(--blue40); }
.legal-hero-meta { font-size:11px; color:var(--gray60); font-family:'IBM Plex Mono',monospace; margin-top:8px; }

.legal-breadcrumb { background:var(--white); border-bottom:1px solid var(--gray20); padding:11px 48px; display:flex; align-items:center; gap:8px; }
.legal-breadcrumb a { font-size:11px; color:var(--blue60); text-decoration:none; }
.legal-breadcrumb span { font-size:11px; color:var(--gray50); }
.legal-breadcrumb .current { font-size:11px; color:var(--gray70); font-weight:500; }

.legal-body {
  max-width:1280px; margin:0 auto;
  padding:52px 48px 80px;
  display:grid; grid-template-columns:200px 1fr; gap:56px; align-items:start;
}

.legal-toc { position:sticky; top:76px; }
.legal-toc-title { font-size:9px; font-weight:700; letter-spacing:0.14em; text-transform:uppercase; color:var(--gray50); margin-bottom:12px; }
.legal-toc-nav { list-style:none; display:flex; flex-direction:column; gap:1px; }
.legal-toc-nav a {
  font-size:11.5px; color:var(--gray60); text-decoration:none;
  display:block; padding:5px 12px;
  border-left:2px solid var(--gray20);
  transition:color 0.13s, border-color 0.13s;
  line-height:1.45;
}
.legal-toc-nav a:hover { color:var(--blue60); border-left-color:var(--blue60); }
.legal-toc-back { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--blue60); text-decoration:none; margin-bottom:20px; font-weight:500; }
.legal-toc-back:hover { color:var(--blue80); }
.legal-toc-back svg { width:12px; height:12px; stroke:currentColor; fill:none; stroke-width:2; }

.legal-content { min-width:0; }
.legal-updated {
  display:inline-flex; align-items:center; gap:8px;
  font-size:10px; font-family:'IBM Plex Mono',monospace; color:var(--gray50);
  background:var(--gray10); border:1px solid var(--gray20);
  padding:4px 12px; margin-bottom:32px;
}
.legal-content section { scroll-margin-top:80px; }
.legal-content h2 {
  font-family:'IBM Plex Serif',serif; font-size:20px; font-weight:300;
  color:var(--gray100); margin-bottom:12px;
  margin-top:44px; padding-top:44px;
  border-top:1px solid var(--gray20);
}
.legal-content h2:first-of-type { margin-top:0; padding-top:0; border-top:none; }
.legal-content h2 strong { font-weight:500; }
.legal-content h3 { font-size:13.5px; font-weight:600; color:var(--gray90); margin:20px 0 7px; }
.legal-content p  { font-size:13px; color:var(--gray70); line-height:1.8; margin-bottom:12px; }
.legal-content ul,.legal-content ol { margin:10px 0 14px 18px; }
.legal-content li { font-size:12.5px; color:var(--gray70); line-height:1.75; margin-bottom:5px; }
.legal-content a  { color:var(--blue60); text-decoration:none; }
.legal-content a:hover { text-decoration:underline; }
.legal-content strong { color:var(--gray90); font-weight:600; }
.legal-info-box { background:var(--blue10); border-left:3px solid var(--blue60); padding:14px 18px; margin:18px 0; }
.legal-info-box p { color:var(--blue80); margin-bottom:0; font-size:12.5px; }
.legal-warn-box { background:#FFF2E8; border-left:3px solid var(--orange40); padding:14px 18px; margin:18px 0; }
.legal-warn-box p { color:#7A3500; margin-bottom:0; font-size:12.5px; }
.legal-table { width:100%; border-collapse:collapse; margin:16px 0; font-size:12.5px; }
.legal-table th { background:var(--gray100); color:var(--white); font-size:10px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; padding:9px 13px; text-align:left; }
.legal-table td { padding:9px 13px; color:var(--gray70); border-bottom:1px solid var(--gray20); vertical-align:top; line-height:1.6; }
.legal-table tr:nth-child(even) td { background:var(--gray10); }
.legal-contact-box {
  background:var(--navy); padding:24px 28px; margin-top:32px;
  display:grid; grid-template-columns:1fr 1fr; gap:24px;
}
.legal-contact-box h3 { color:var(--white); font-size:13px; margin-bottom:12px; margin-top:0; }
.legal-contact-box p  { color:var(--blue30); font-size:12px; margin-bottom:6px; }
.legal-contact-box a  { color:var(--cyan40); }

/* Responsive */
@media (max-width:1024px) {
  .site-footer__main { grid-template-columns:1fr 1fr 1fr; gap:32px; }
  .footer-brand-col  { grid-column:1/-1; max-width:480px; }
  .legal-body { grid-template-columns:1fr; gap:36px; }
  .legal-toc  { position:static; }
}
@media (max-width:640px) {
  .site-footer__main { grid-template-columns:1fr 1fr; padding:40px 24px 32px; gap:28px; }
  .footer-brand-col  { grid-column:1/-1; }
  .site-footer__bottom  { flex-direction:column; align-items:flex-start; padding:14px 24px; }
  .site-footer__divider { margin-left:24px; margin-right:24px; }
  .legal-hero { padding:32px 24px 36px; }
  .legal-topbar { padding:0 24px; }
  .legal-breadcrumb { padding:10px 24px; }
  .legal-body { padding:32px 24px 60px; }
}
/* Footer brand image — the package styles .footer-brand-mark but the
   markup uses .footer-brand-mark2 with a nested <img>, which nothing
   sized. Capped here so any source file renders at the same scale. */
.footer-brand-mark2 { display:flex; align-items:center; flex:none; }
.footer-brand-mark2 .logo { display:block; line-height:0; }
.footer-brand-mark2 .logo img {
  display:block; height:40px; width:auto; max-width:220px;
}
@media (max-width:640px) {
  .footer-brand-mark2 .logo img { height:34px; max-width:180px; }
}






/* ══ OVERVIEW PAGE — profile package CSS, scoped to .ovp ══ */

.ovp *, .ovp *::before, .ovp *::after{ box-sizing: border-box; margin: 0; padding: 0; }
:root{
  --blue-90: #001141;
  --blue-80: #002D9C;
  --blue-70: #0043CE;
  --blue-60: #0062FF;
  --blue-50: #4589FF;
  --blue-40: #78A9FF;
  --blue-30: #A6C8FF;
  --blue-20: #D0E2FF;
  --blue-10: #EDF5FF;
  --cyan-60: #0072C3;
  --cyan-40: #33B1FF;
  --teal-60: #007D79;
  --teal-40: #08BDBA;
  --green-50: #24A148;
  --purple-60: #8A3FFC;
  --orange-60: #FF832B;
  --yellow-30: #F1C21B;
  --gray-100: #161616;
  --gray-90: #262626;
  --gray-80: #393939;
  --gray-70: #525252;
  --gray-60: #6F6F6F;
  --gray-50: #8D8D8D;
  --gray-40: #A8A8A8;
  --gray-30: #C6C6C6;
  --gray-20: #E0E0E0;
  --gray-10: #F4F4F4;
  --white: #FFFFFF;
  
}
.ovp{
  font-family: 'IBM Plex Sans', sans-serif;
  background:#fff;
  color: var(--gray-100);
  font-size: 14px;
  line-height: 1.6;
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}
.ovp .page{
    width:100%;
    max-width:1400px;
    margin:0 auto;
    background:var(--white);
    overflow:hidden;
    position:relative;
    box-shadow:none;
}
.ovp .page{
    margin-bottom:0;
}
.ovp .cover{
  background: var(--blue-90);
  min-height: 850px;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}
.ovp .cover-grid{
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(0,98,255,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,98,255,0.08) 1px, transparent 1px);
  background-size: 40px 40px;
}
.ovp .cover-bar{
  position: absolute; top: 0; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, var(--blue-60), var(--cyan-40), var(--teal-40));
}
.ovp .cover-ring{
  position: absolute; border-radius: 50%;
  border: 1px solid rgba(0,98,255,0.18);
}
.ovp .cover-header{
  padding: 40px 56px 0;
  position: relative; z-index: 2;
  display: flex; align-items: center; justify-content: space-between;
}
.ovp .cover-logo{ display: flex; align-items: center; gap: 12px; }
.ovp .cover-logo-wrap{ display: flex; align-items: center; gap: 14px; }
.ovp .cover-logo-mark{
  width: 40px; height: 40px; background: var(--blue-60);
  display: flex; align-items: center; justify-content: center; position: relative;
}
.ovp .cover-logo-mark::after{
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0, transparent 4px,
    rgba(255,255,255,0.22) 4px, rgba(255,255,255,0.22) 5px);
}
.ovp .cover-logo-text{
  font-size: 14px; font-weight: 600; color: var(--blue-30);
  letter-spacing: 0.06em; text-transform: uppercase;
}
.ovp .cover-logo-sub{
  font-size: 11px; font-weight: 300; color: var(--blue-40);
  letter-spacing: 0.04em; margin-top: 2px;
}
.ovp .cover-doc-label{
  font-size: 11px; font-family: 'IBM Plex Mono', monospace;
  color: var(--gray-50); text-align: right; line-height: 1.5;
}
.ovp .cover-body{
  flex: 1; padding: 0 56px;
  display: flex; flex-direction: column; justify-content: center;
  position: relative; z-index: 2; margin-top: 60px;
}
.ovp .cover-eyebrow{
  font-size: 11px; font-weight: 500; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--cyan-40);
  margin-bottom: 20px;
  display: flex; align-items: center; gap: 14px;
}
.ovp .cover-eyebrow::before{
  content: ''; display: block;
  width: 32px; height: 2px; background: var(--cyan-40);
}
.ovp .cover-title{
  font-family: 'IBM Plex Serif', serif;
  font-size: 60px; font-weight: 300;
  color: var(--white); line-height: 1.05;
  letter-spacing: -0.02em; margin-bottom: 8px;
}
.ovp .cover-title strong{ font-weight: 500; color: var(--blue-40); display: block; }
.ovp .cover-divider{
  width: 64px; height: 3px; background: var(--blue-60); margin: 28px 0;
}
.ovp .cover-tagline{
  font-size: 17px; font-weight: 300; color: var(--blue-30);
  max-width: 500px; line-height: 1.7; margin-bottom: 48px;
}
.ovp .cover-tags{
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 56px;
}
.ovp .cover-tag{
  font-size: 11px; font-weight: 500; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--blue-30);
  border: 1px solid rgba(166,200,255,0.3); padding: 5px 12px;
}
.ovp .cover-stats{
  display: grid; grid-template-columns: repeat(4,1fr);
  border-top: 1px solid rgba(166,200,255,0.15);
  margin-bottom: 48px;
}
.ovp .cover-stat{ padding: 24px 0 8px; border-right: 1px solid rgba(166,200,255,0.1); }
.ovp .cover-stat:last-child{ border-right: none; }
.ovp .cover-stat + .cover-stat{ padding-left: 24px; }
.ovp .cover-stat-num{
  font-size: 34px; font-weight: 300; color: var(--white);
  letter-spacing: -0.02em; font-family: 'IBM Plex Mono', monospace; line-height: 1;
}
.ovp .cover-stat-num span{ font-size: 18px; color: var(--blue-40); }
.ovp .cover-stat-label{ font-size: 11px; color: var(--gray-50); margin-top: 6px; line-height: 1.4; }
.ovp .cover-footer{
  padding: 20px 56px;
  border-top: 1px solid rgba(166,200,255,0.1);
  display: flex; align-items: center; justify-content: space-between;
  position: relative; z-index: 2;
}
.ovp .cover-footer-text{ font-size: 11px; color: var(--gray-60); }
.ovp .cover-footer-url{ font-size: 11px; font-family: 'IBM Plex Mono', monospace; color: var(--blue-50); }
.ovp .sec-hdr{
  padding: 70px 80px;; position: relative; overflow: hidden;
}
.ovp .sec-hdr-bg{
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 24px 24px;
}
.ovp .sec-hdr-label{
  font-size: 10px; font-weight: 500; letter-spacing: 0.14em;
  text-transform: uppercase; color: rgba(166,200,255,0.7);
  margin-bottom: 10px; position: relative; z-index: 1;
}
.ovp .sec-hdr-title{
  font-size: 30px; font-weight: 300; color: var(--white);
  font-family: 'IBM Plex Serif', serif; position: relative; z-index: 1;
}
.ovp .sec-hdr-title strong{ font-weight: 500; color: var(--blue-40); }
.ovp .pf{
  padding: 12px 56px; border-top: 1px solid var(--gray-20);
  display: flex; justify-content: space-between; align-items: center;
}
.ovp .pf span{ font-size: 10px; font-family: 'IBM Plex Mono', monospace; color: var(--gray-50); }
.ovp .sec-body{ padding:70px 80px; }
.ovp .ov-grid{
  display: grid; grid-template-columns: 1fr 260px; gap: 48px; align-items: start;
}
.ovp .ov-lead{
  font-size: 18px; font-weight: 300; color: var(--gray-80);
  line-height: 1.65; margin-bottom: 24px;
  font-family: 'IBM Plex Serif', serif;
  border-left: 3px solid var(--blue-60); padding-left: 20px;
}
.ovp .ov-body{ font-size: 13px; color: var(--gray-70); line-height: 1.75; margin-bottom: 16px; }
.ovp .ov-sidebar{
  background: var(--blue-10); border-left: 3px solid var(--blue-60); padding: 24px;
}
.ovp .ov-sidebar-title{
  font-size: 10px; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--blue-70); margin-bottom: 14px;
}
.ovp .ov-sidebar-item{
  display: flex; align-items: flex-start; gap: 10px;
  margin-bottom: 11px; font-size: 12px; color: var(--gray-80); line-height: 1.5;
}
.ovp .ov-dot{
  width: 6px; height: 6px; background: var(--blue-60);
  border-radius: 50%; flex-shrink: 0; margin-top: 4px;
}
.ovp .hr{ height: 1px; background: var(--gray-20); margin: 28px 0; }
.ovp .sol-grid{
  display: grid; grid-template-columns: 1fr 1fr; gap: 2px;
  background: var(--gray-20); border: 1px solid var(--gray-20);
}
.ovp .sol-card{
  background: var(--white); padding: 28px;
  position: relative;
}
.ovp .sol-card::before{
  content: ''; position: absolute;
  top: 0; left: 0; width: 3px; height: 100%; background: var(--blue-60);
}
.ovp .sol-icon{
  width: 40px; height: 40px; background: var(--blue-10);
  display: flex; align-items: center; justify-content: center; margin-bottom: 14px;
}
.ovp .sol-icon svg{ width: 22px; height: 22px; fill: none; stroke: var(--blue-60); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ovp .sol-name{ font-size: 13px; font-weight: 600; color: var(--gray-100); margin-bottom: 8px; letter-spacing: 0.01em; }
.ovp .sol-desc{ font-size: 12px; color: var(--gray-70); line-height: 1.65; }
.ovp .sol-tags{ margin-top: 12px; display: flex; flex-wrap: wrap; gap: 5px; }
.ovp .sol-tag{
  font-size: 10px; font-family: 'IBM Plex Mono', monospace;
  color: var(--blue-70); background: var(--blue-10);
  border: 1px solid var(--blue-30); padding: 2px 7px;
}
.ovp .cat-grid{
  display: grid; grid-template-columns: repeat(3,1fr); gap: 2px;
  background: var(--gray-20);
}
.ovp .cat-card{ background: var(--white); padding: 24px 22px; }
.ovp .cat-badge{
  display: inline-block; font-size: 9px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--white); padding: 3px 8px; margin-bottom: 12px;
}
.ovp .cat-name{ font-size: 14px; font-weight: 600; color: var(--gray-100); margin-bottom: 6px; }
.ovp .cat-desc{ font-size: 12px; color: var(--gray-60); line-height: 1.55; margin-bottom: 14px; }
.ovp .cat-count{
  font-size: 28px; font-weight: 300; font-family: 'IBM Plex Mono', monospace;
  color: var(--gray-40); line-height: 1;
}
.ovp .cat-count span{ font-size: 12px; color: var(--gray-50); margin-left: 4px; }
.ovp .prod-section{ padding: 0 56px 40px; }
.ovp .prod-cat-header{
  display: flex; align-items: center; gap: 14px;
  padding: 14px 0; margin-top: 28px; margin-bottom: 12px;
  border-bottom: 2px solid var(--gray-20);
}
.ovp .prod-cat-dot{ width: 12px; height: 12px; flex-shrink: 0; }
.ovp .prod-cat-title{ font-size: 12px; font-weight: 600; color: var(--gray-80); letter-spacing: 0.04em; text-transform: uppercase; }
.ovp .prod-cat-count{ font-size: 10px; font-family: 'IBM Plex Mono', monospace; color: var(--gray-50); margin-left: auto; }
.ovp .prod-row{
  display: grid; grid-template-columns: 52px 1fr 180px;
  gap: 0; padding: 10px 0;
  border-bottom: 1px solid var(--gray-10);
  align-items: start;
}
.ovp .prod-row:last-child{ border-bottom: none; }
.ovp .prod-num{
  font-size: 10px; font-family: 'IBM Plex Mono', monospace;
  color: var(--gray-50); padding-top: 2px;
}
.ovp .prod-name{ font-size: 12.5px; font-weight: 500; color: var(--gray-100); margin-bottom: 3px; }
.ovp .prod-desc{ font-size: 11px; color: var(--gray-60); line-height: 1.5; }
.ovp .prod-type{
  font-size: 10px; font-weight: 500; letter-spacing: 0.06em;
  text-transform: uppercase; padding: 3px 8px; text-align: center;
  margin-top: 2px; display: inline-block;
}
.ovp .process-steps{
  display: grid; grid-template-columns: repeat(5,1fr);
  gap: 0; position: relative;
}
.ovp .process-steps::before{
  content: ''; position: absolute;
  top: 20px; left: 10%; right: 10%; height: 2px;
  background: var(--blue-30); z-index: 0;
}
.ovp .proc-step{
  display: flex; flex-direction: column; align-items: center;
  text-align: center; position: relative; z-index: 1; padding: 0 8px;
}
.ovp .proc-num{
  width: 40px; height: 40px; background: var(--blue-60); color: var(--white);
  font-size: 13px; font-weight: 500; font-family: 'IBM Plex Mono', monospace;
  display: flex; align-items: center; justify-content: center; margin-bottom: 14px;
  flex-shrink: 0;
}
.ovp .proc-num.done{ background: var(--teal-60); }
.ovp .proc-name{ font-size: 11px; font-weight: 600; color: var(--gray-80); margin-bottom: 5px; }
.ovp .proc-desc{ font-size: 11px; color: var(--gray-60); line-height: 1.5; }
.ovp .val-grid{
  display: grid; grid-template-columns: repeat(3,1fr); gap: 2px;
  background: var(--gray-100);
}
.ovp .val-card{ background: var(--gray-90); padding: 28px 24px; }
.ovp .val-num{
  font-size: 38px; font-weight: 300; font-family: 'IBM Plex Mono', monospace;
  color: var(--blue-60); letter-spacing: -0.03em; line-height: 1; margin-bottom: 14px;
}
.ovp .val-num sup{ font-size: 16px; vertical-align: super; color: var(--blue-50); }
.ovp .val-label{ font-size: 12px; font-weight: 600; color: var(--white); margin-bottom: 8px; }
.ovp .val-desc{ font-size: 12px; color: var(--gray-40); line-height: 1.65; }
.ovp .cta-block{
  background: var(--blue-90); padding:70px 80px;;
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; justify-content: center;
  min-height: 420px;
}
.ovp .cta-bg{
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(0,98,255,0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0,98,255,0.07) 1px, transparent 1px);
  background-size: 32px 32px;
}
.ovp .cta-inner{
  display: grid; grid-template-columns: 1fr 220px;
  gap: 56px; align-items: center; position: relative; z-index: 1;
}
.ovp .cta-label{
  font-size: 10px; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--cyan-40); margin-bottom: 14px;
}
.ovp .cta-title{
  font-size: 32px; font-weight: 300; color: var(--white);
  font-family: 'IBM Plex Serif', serif; line-height: 1.2; margin-bottom: 18px;
}
.ovp .cta-title strong{ font-weight: 500; color: var(--blue-40); }
.ovp .cta-desc{ font-size: 13px; color: var(--blue-30); line-height: 1.7; margin-bottom: 28px; }
.ovp .cta-btn{
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--blue-60); color: var(--white);
  font-size: 12px; font-weight: 500; padding: 11px 22px;
  text-decoration: none; letter-spacing: 0.03em; cursor: pointer;
}
.ovp .cta-contact{ background: var(--blue-80); border: 1px solid var(--blue-70); padding: 24px; }
.ovp .cta-cl{ font-size: 9px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--blue-30); margin-bottom: 18px; }
.ovp .cta-ci{ display: flex; align-items: flex-start; gap: 10px; margin-bottom: 14px; }
.ovp .cta-ci svg{ width: 15px; height: 15px; stroke: var(--blue-40); fill: none; stroke-width: 1.5; stroke-linecap: round; flex-shrink: 0; margin-top: 2px; }
.ovp .cta-ct{ font-size: 11px; color: var(--blue-20); line-height: 1.5; }
.ovp .cta-ct strong{ display: block; font-weight: 500; color: var(--white); font-size: 12px; }
.ovp .bc{
  background: var(--gray-100); padding: 36px 56px;
  display: flex; align-items: center; justify-content: space-between;
}
.ovp .bc-brand{ font-size: 12px; color: var(--gray-50); }
.ovp .bc-brand strong{ font-weight: 600; color: var(--white); display: block; margin-bottom: 3px; }
.ovp .bc-legal{ font-size: 10px; color: var(--gray-60); max-width: 340px; line-height: 1.6; }
.ovp .bc-url{ font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--blue-50); }
.ovp .dark-sec{ background: var(--gray-100); padding:70px 80px; position: relative; overflow: hidden; }
.ovp .dark-sec-pattern{
  position: absolute; inset: 0;
  background-image: repeating-linear-gradient(-45deg, transparent 0, transparent 20px,
    rgba(255,255,255,0.015) 20px, rgba(255,255,255,0.015) 21px);
}
.ovp .info-boxes{ display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 24px; }
.ovp .info-box{ padding: 20px 22px; background: var(--gray-10); }
.ovp .info-box-title{
  font-size: 10px; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; margin-bottom: 8px;
}
.ovp .info-box-body{ font-size: 12px; color: var(--gray-70); line-height: 1.7; }
.ovp .logo{
    position: absolute;
    top: 15px;
    left: 10px;
    z-index: 999;
}
.ovp .logo img{
    width: auto !important;
    height: 40px !important;
}
.ovp .sol-card, .ovp .cat-card, .ovp .val-card, .ovp .info-box{
    transition:.3s;
}
.ovp .sol-card:hover, .ovp .cat-card:hover, .ovp .val-card:hover, .ovp .info-box:hover{
    transform:translateY(-6px);
    box-shadow:0 12px 40px rgba(0,0,0,.1);
}@media(max-width:1200px){
.ovp .cat-grid, .ovp .val-grid{
        grid-template-columns:repeat(2,1fr);
    }
.ovp .cta-inner{
        grid-template-columns:1fr;
    }}@media(max-width:992px){
.ovp .sol-grid{
        grid-template-columns:1fr;
    }
.ovp .cat-grid, .ovp .val-grid{
        grid-template-columns:1fr 1fr;
    }
.ovp .process-steps{
        grid-template-columns:1fr;
    }
.ovp .process-steps:before{
        display:none;
    }
.ovp .info-boxes{
        grid-template-columns:1fr;
    }}@media(max-width:768px){
.ovp .cover-title{
        font-size:42px;
    }
.ovp .cover-stats{
        grid-template-columns:1fr;
    }
.ovp .cat-grid, .ovp .val-grid{
        grid-template-columns:1fr;
    }
.ovp .cover-header, .ovp .cover-body, .ovp .sec-body, .ovp .sec-hdr, .ovp .dark-sec, .ovp .cta-block{
        padding-left:25px;
        padding-right:25px;
    }}

/* ── HOMEPAGE · SECTION 2 — SOLUTIONS ──────────────────── */
.sol { background:var(--gray100); color:#fff; }
.sol-in { max-width:var(--maxw); margin:0 auto; padding:64px var(--pad) 68px; }

.sol-head { display:grid; gap:28px; align-items:center; margin-bottom:56px; }
@media (min-width:900px) {
  .sol-head-split { grid-template-columns:1fr 1.05fr; gap:52px; }
}

.sol-eyebrow {
  font-size:11px; font-weight:600; letter-spacing:.15em; text-transform:uppercase;
  color:var(--blue40); margin-bottom:16px;
}
.sol-h2 {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(28px,4.4vw,44px); line-height:1.15; letter-spacing:-.015em;
  max-width:16ch; margin-bottom:22px;
}
.sol-lede {
  font-size:14.5px; font-weight:500; color:var(--gray30);
  line-height:1.7; max-width:46ch; margin-bottom:14px;
}
.sol-lede:last-child { margin-bottom:0; }

/* Image is cropped to a fixed ratio so any source shape sits flush. */
.sol-shot { line-height:0; }
.sol-shot img {
  display:block; width:100%; height:auto;
  aspect-ratio:16/11; object-fit:cover;
  border-radius:8px;
}
@media (max-width:899px) { .sol-shot img { aspect-ratio:16/9; } }

.sol-grid {
  display:grid; gap:44px 56px;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
}
@media (min-width:900px) { .sol-grid { grid-template-columns:repeat(2,1fr); } }

.sol-item-h {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(21px,2.8vw,28px); line-height:1.2; margin-bottom:14px;
}
.sol-item-p {
  font-size:14px; font-weight:500; color:var(--gray30);
  line-height:1.7; max-width:48ch;
}

.sol-foot {
  margin-top:64px; padding-top:40px;
  border-top:1px solid var(--gray80);
  display:flex; flex-direction:column; align-items:center; gap:20px; text-align:center;
}
.sol-foot-line { font-size:14px; font-weight:600; color:var(--gray20); max-width:52ch; line-height:1.6; }
.sol-foot .btn { min-width:140px; }

/* ── HOMEPAGE · SECTION 2 — CREDIBILITY BAND ───────────── */
.cred { background:var(--blue10); border-bottom:1px solid var(--blue20); }
.cred-in { max-width:var(--maxw); margin:0 auto; padding:44px var(--pad) 40px; }

/* Keyword-bearing H2 — the first subheading a crawler reads. */
.cred-h {
  font-family:var(--sans); font-size:clamp(15px,2vw,18px); font-weight:600;
  color:var(--blue80); line-height:1.5; max-width:62ch; margin-bottom:30px;
}

.cred-grid {
  display:grid; gap:1px; background:var(--blue20);
  border:1px solid var(--blue20);
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
}
@media (min-width:900px) { .cred-grid { grid-template-columns:repeat(4,1fr); } }

.cred-item { background:var(--white); padding:22px 20px; }
.cred-fig {
  font-family:var(--mono); font-size:clamp(26px,3.4vw,34px); font-weight:400;
  color:var(--blue70); line-height:1; letter-spacing:-.02em;
}
.cred-unit { font-size:.5em; color:var(--gray60); margin-left:3px; letter-spacing:0; }
.cred-label { font-size:13px; color:var(--gray70); line-height:1.6; margin-top:10px; }
.cred-label a { color:inherit; text-decoration:none; border-bottom:1px solid var(--blue30); }
.cred-label a:hover { color:var(--blue70); border-bottom-color:var(--blue60); }

/* ── CONTACT PAGE ──────────────────────────────────────── */
.ct-hero { background:var(--navy); color:#fff; }
.ct-hero-in { max-width:var(--maxw); margin:0 auto; padding:52px var(--pad) 48px; }
.ct-h1 {
  font-family:var(--serif); font-weight:300;
  font-size:clamp(28px,4.6vw,46px); line-height:1.12; letter-spacing:-.02em; max-width:20ch;
}
.ct-lede {
  font-size:clamp(15px,1.9vw,17.5px); font-weight:300; color:var(--blue20);
  line-height:1.75; max-width:58ch; margin-top:18px;
}

.ct-body {
  max-width:var(--maxw); margin:0 auto; padding:52px var(--pad) 64px;
  display:grid; gap:36px; align-items:start;
}
@media (min-width:1000px) { .ct-body { grid-template-columns:1.7fr 1fr; gap:48px; } }

.ct-next { margin-top:44px; padding-top:36px; border-top:1px solid var(--gray20); }
.ct-next-h, .ct-faq-h {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(20px,2.8vw,26px); line-height:1.25; margin-bottom:22px;
}
.ct-steps { list-style:none; display:grid; gap:2px; }
.ct-step { display:flex; gap:16px; background:var(--gray10); padding:18px 20px; align-items:flex-start; }
.ct-step-n {
  font-family:var(--mono); font-size:12px; color:#fff; background:var(--blue60);
  width:32px; height:32px; display:flex; align-items:center; justify-content:center; flex:none;
}
.ct-step-h { font-size:15px; font-weight:600; margin-bottom:5px; }
.ct-step-p { font-size:14px; color:var(--gray70); line-height:1.65; }

.ct-faq { margin-top:44px; padding-top:36px; border-top:1px solid var(--gray20); }

.ct-side { display:grid; gap:16px; }
@media (min-width:1000px) { .ct-side { position:sticky; top:calc(var(--topbar-h) + 20px); } }
.ct-card { background:var(--blue10); border-left:3px solid var(--blue60); padding:24px 22px; }
.ct-card-quiet { background:var(--gray10); border-left-color:var(--gray30); }
.ct-card-h { font-size:15px; font-weight:600; margin-bottom:16px; }
.ct-card-p { font-size:14px; color:var(--gray70); line-height:1.7; margin-bottom:18px; }
.ct-addr { font-style:normal; font-size:14px; color:var(--gray70); line-height:1.75; }
.ct-cin { font-family:var(--mono); font-size:11.5px; color:var(--gray60); margin-top:12px; }

/* ── FORM ALERTS (server-rendered, works without JavaScript) ── */
.form-alert {
  padding:14px 16px; margin-bottom:22px; font-size:14px; line-height:1.6;
  border-left:4px solid var(--gray40); background:var(--white);
}
.form-alert strong { display:block; margin-bottom:3px; }
.form-alert-error { border-left-color:#DA1E28; background:#FFF1F1; color:#750E13; }
.form-alert-ok    { border-left-color:var(--green50); background:#DEFBE6; color:#044317; }

/* ── HOMEPAGE · SECTION 4 — PRODUCTS SUITE ─────────────── */
.ps { background:var(--white); border-top:1px solid var(--gray20); }
.ps-in { max-width:var(--maxw); margin:0 auto; padding:60px var(--pad) 64px; }

.ps-h2 {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(24px,3.6vw,36px); line-height:1.2; letter-spacing:-.01em;
  max-width:26ch; margin-bottom:16px;
}
.ps-lede {
  font-size:clamp(15px,1.9vw,17px); color:var(--gray70);
  line-height:1.75; max-width:70ch; margin-bottom:36px;
}

.ps-grid {
  display:grid; gap:1px; background:var(--gray20);
  border:1px solid var(--gray20);
  grid-template-columns:repeat(auto-fit,minmax(270px,1fr));
}
/* Five cards read better as 3 + 2 than 4 + 1. */
@media (min-width:1000px) { .ps-grid { grid-template-columns:repeat(3,1fr); } }

.ps-card { background:var(--white); padding:26px 22px; display:flex; flex-direction:column; }
.ps-card-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.ps-ico {
  width:38px; height:38px; background:var(--blue10);
  display:flex; align-items:center; justify-content:center;
}
.ps-svg { width:19px; height:19px; fill:none; stroke:var(--blue60); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.ps-n {
  font-family:var(--mono); font-size:11.5px; color:var(--gray60);
  letter-spacing:.04em;
}

.ps-card-h { font-size:17px; font-weight:600; line-height:1.3; margin-bottom:10px; }
.ps-card-h a { color:var(--gray100); text-decoration:none; }
.ps-card-h a:hover { color:var(--blue70); text-decoration:underline; }
.ps-card-p { font-size:13.5px; color:var(--gray70); line-height:1.7; margin-bottom:18px; }

.ps-links {
  list-style:none; margin-top:auto; padding-top:14px;
  border-top:1px solid var(--gray20); display:grid; gap:8px;
}
.ps-links a {
  font-size:13.5px; color:var(--blue70); text-decoration:none;
  display:inline-flex; align-items:baseline; gap:7px;
}
.ps-links a::before { content:'›'; color:var(--gray40); }
.ps-links a:hover { text-decoration:underline; }

.ps-foot { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; align-items:center; }

/* Products Suite — conversion tile in the empty sixth cell */
.ps-card-cta { background:var(--blue10); }
.ps-cta-h { color:var(--blue80); }
.ps-cta-actions { margin-top:auto; padding-top:14px; }
.ps-cta-link {
  display:block; text-align:center; margin-top:12px;
  font-size:13.5px; color:var(--blue70); text-decoration:none;
}
.ps-cta-link:hover { text-decoration:underline; }

/* ── HOMEPAGE · SECTION 5 — WHY ITNS-GLOBAL ────────────── */
.why { background:var(--gray100); color:#fff; }
.why-in { max-width:var(--maxw); margin:0 auto; padding:60px var(--pad) 64px; }

.why-h2 {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(24px,3.6vw,36px); line-height:1.2;
  max-width:24ch; margin-bottom:40px;
}

.why-grid {
  display:grid; gap:2px;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}
@media (min-width:900px) { .why-grid { grid-template-columns:repeat(3,1fr); } }

.why-item { background:var(--gray90); padding:30px 26px; }
.why-fig {
  font-family:var(--mono); font-size:clamp(30px,4.4vw,42px);
  color:var(--blue50); line-height:1; letter-spacing:-.03em; margin-bottom:18px;
}
.why-unit { font-size:.38em; color:var(--gray50); margin-left:5px; letter-spacing:0; }
.why-h3 { font-size:16.5px; font-weight:600; color:#fff; line-height:1.35; margin-bottom:12px; }
.why-p { font-size:14px; color:var(--gray40); line-height:1.75; }

.why-foot { margin-top:34px; font-size:14.5px; color:var(--gray40); }
.why-foot a {
  color:var(--blue40); text-decoration:none; font-weight:500;
  display:inline-flex; align-items:center; gap:6px;
}
.why-foot a:hover { text-decoration:underline; }
.why-foot .inline-ico,
.inline-ico {
  width:14px; height:14px; flex:none;
  fill:none; stroke:currentColor; stroke-width:2;
}
/* ── HOMEPAGE · SECTION 6 — FREE AUDIT BAND ────────────── */
.audit { background:var(--navy); color:#fff; }
.audit-in {
  max-width:var(--maxw); margin:0 auto; padding:56px var(--pad) 60px;
  display:grid; gap:34px; align-items:start;
}
@media (min-width:900px) { .audit-in { grid-template-columns:1.35fr 1fr; gap:56px; } }

.audit-h2 {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(24px,3.6vw,36px); line-height:1.2; max-width:20ch; margin-bottom:18px;
}
.audit-p {
  font-size:clamp(15px,1.9vw,17px); font-weight:300; color:var(--blue20);
  line-height:1.75; max-width:60ch;
}
.audit-actions { margin-top:28px; }

.audit-list { list-style:none; display:grid; gap:13px; }
.audit-list li {
  display:flex; align-items:flex-start; gap:11px;
  font-size:14px; color:var(--blue20); line-height:1.55;
  border-bottom:1px solid rgba(166,200,255,.18); padding-bottom:13px;
}
.audit-list li:last-child { border-bottom:0; }
.audit-list .tick { stroke:var(--teal40); }

/* ── HOMEPAGE · SECTION 7 — FAQ ────────────────────────── */
.hfaq { background:var(--gray10); border-top:1px solid var(--gray20); }
.hfaq-in {
  max-width:var(--maxw); margin:0 auto; padding:60px var(--pad) 64px;
  display:grid; gap:36px; align-items:start;
}
@media (min-width:1000px) {
  .hfaq-split { grid-template-columns:.85fr 1.15fr; gap:52px; }
  /* Image tracks the questions instead of scrolling away. */
  .hfaq-split .hfaq-shot { position:sticky; top:calc(var(--topbar-h) + 24px); }
}

.hfaq-shot { line-height:0; }
.hfaq-shot img {
  display:block; width:100%; height:auto;
  aspect-ratio:4/3; object-fit:cover; border-radius:8px;
}
@media (max-width:999px) { .hfaq-shot img { aspect-ratio:16/9; } }

.hfaq-h2 {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(24px,3.6vw,34px); line-height:1.2; max-width:22ch; margin-bottom:26px;
}
.hfaq .faqs { border-top:1px solid var(--gray20); max-width:none; }
.hfaq .faq { border-bottom-color:var(--gray20); }

.hfaq-foot { margin-top:26px; font-size:14.5px; }
.hfaq-foot a {
  color:var(--blue70); text-decoration:none; font-weight:500;
  display:inline-flex; align-items:center; gap:7px;
}
.hfaq-foot a:hover { text-decoration:underline; }

/* Inline arrow icons must be sized wherever they appear. */
.inline-ico { width:14px; height:14px; flex:none; fill:none; stroke:currentColor; stroke-width:2; }

/* ── SOLUTIONS PAGE ────────────────────────────────────── */
.sln-hero { background:var(--navy); color:#fff; }
.sln-hero-in { max-width:var(--maxw); margin:0 auto; padding:52px var(--pad) 44px; }
.sln-h1 {
  font-family:var(--serif); font-weight:300;
  font-size:clamp(28px,4.6vw,46px); line-height:1.12; letter-spacing:-.02em; max-width:22ch;
}
.sln-lede {
  font-size:clamp(15px,1.9vw,17.5px); font-weight:300; color:var(--blue20);
  line-height:1.75; max-width:62ch; margin-top:18px;
}
.sln-jump { display:flex; flex-wrap:wrap; gap:8px; margin-top:26px; }
.sln-jump a {
  font-size:12.5px; font-weight:500; color:var(--blue20); text-decoration:none;
  border:1px solid rgba(166,200,255,.35); padding:7px 13px;
}
.sln-jump a:hover { background:rgba(255,255,255,.08); border-color:var(--blue40); color:#fff; }

.sln { border-top:1px solid var(--gray20); }
.sln-alt { background:var(--gray10); }
.sln-in {
  max-width:var(--maxw); margin:0 auto; padding:56px var(--pad);
  display:grid; gap:34px; align-items:start;
}
@media (min-width:1000px) {
  .sln-split { grid-template-columns:1.25fr .75fr; gap:52px; }
  /* Alternate the image side so the page does not read as a single column. */
  .sln-alt .sln-split { grid-template-columns:.75fr 1.25fr; }
  .sln-alt .sln-copy { order:2; }
  .sln-alt .sln-shot { order:1; }
  .sln-split .sln-shot { position:sticky; top:calc(var(--topbar-h) + 24px); }
}

.sln-eyebrow {
  font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue70); margin-bottom:12px;
}
.sln-h2 {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(23px,3.4vw,33px); line-height:1.2; max-width:22ch; margin-bottom:14px;
}
.sln-sub {
  font-family:var(--serif); font-size:clamp(16px,2.1vw,19px); font-weight:300;
  color:var(--gray80); line-height:1.6; border-left:3px solid var(--blue60);
  padding-left:16px; margin-bottom:20px; max-width:62ch;
}
.sln-p { font-size:15px; color:var(--gray70); line-height:1.8; max-width:70ch; margin-bottom:26px; }

.sln-h3 {
  font-size:11px; font-weight:600; letter-spacing:.13em; text-transform:uppercase;
  color:var(--gray60); margin-bottom:14px;
}
.sln-list { list-style:none; display:grid; gap:11px; margin-bottom:24px; }
.sln-list li {
  display:flex; align-items:flex-start; gap:10px;
  font-size:14.5px; color:var(--gray80); line-height:1.6;
}
.sln-list .tick { stroke:var(--green50); margin-top:4px; }

.sln-who {
  font-size:14px; color:var(--gray70); line-height:1.7; max-width:66ch;
  background:var(--blue10); border-left:3px solid var(--blue60);
  padding:14px 16px; margin-bottom:26px;
}
.sln-alt .sln-who { background:var(--white); }
.sln-who strong { color:var(--blue80); }

.sln-products { padding-top:22px; border-top:1px solid var(--gray20); }
.sln-plist { list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.sln-plist a {
  display:inline-flex; align-items:center; gap:7px;
  font-size:13.5px; font-weight:500; color:var(--blue70); text-decoration:none;
  border:1px solid var(--gray30); padding:8px 13px; background:var(--white);
}
.sln-plist a:hover { border-color:var(--blue60); background:var(--blue10); }

.sln-shot { line-height:0; }
.sln-shot img {
  display:block; width:100%; height:auto;
  aspect-ratio:3/4; object-fit:cover; border-radius:8px;
}
@media (max-width:999px) { .sln-shot img { aspect-ratio:16/9; } }

.sln-faq { background:var(--white); border-top:1px solid var(--gray20); }
.sln-faq-in { max-width:900px; margin:0 auto; padding:56px var(--pad) 60px; }
.sln-faq-h {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(23px,3.4vw,32px); line-height:1.2; margin-bottom:24px;
}

.sln-cta { background:var(--navy); color:#fff; }
.sln-cta-in { max-width:var(--maxw); margin:0 auto; padding:52px var(--pad) 56px; }
.sln-cta-h {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(23px,3.4vw,32px); line-height:1.2; max-width:20ch;
}
.sln-cta-p { font-size:16px; color:var(--blue20); line-height:1.75; max-width:56ch; margin:14px 0 26px; }
.sln-cta-actions { display:flex; flex-wrap:wrap; gap:12px; }
.sln-cta .btn-ghost { color:var(--blue20); border-color:rgba(166,200,255,.4); }
.sln-cta .btn-ghost:hover { background:rgba(255,255,255,.09); }

/* ── PLATFORMS PAGE ────────────────────────────────────── */
.pf-hero { background:var(--navy); color:#fff; }
.pf-hero-in { max-width:var(--maxw); margin:0 auto; padding:52px var(--pad) 44px; }
.pf-h1 {
  font-family:var(--serif); font-weight:300;
  font-size:clamp(28px,4.6vw,46px); line-height:1.12; letter-spacing:-.02em; max-width:22ch;
}
.pf-lede {
  font-size:clamp(15px,1.9vw,17.5px); font-weight:300; color:var(--blue20);
  line-height:1.75; max-width:64ch; margin-top:18px;
}
.pf-lede-dark { color:var(--gray70); font-weight:400; }

.pf-jump { display:flex; flex-wrap:wrap; gap:8px; margin-top:26px; }
.pf-jump a {
  font-size:12.5px; font-weight:500; color:var(--blue20); text-decoration:none;
  border:1px solid rgba(166,200,255,.35); padding:7px 13px;
}
.pf-jump a:hover { background:rgba(255,255,255,.08); border-color:var(--blue40); color:#fff; }

.pf-sec { border-top:1px solid var(--gray20); }
.pf-sec:nth-of-type(even) { background:var(--gray10); }
.pf-in { max-width:var(--maxw); margin:0 auto; padding:56px var(--pad); }
.pf-in-narrow { max-width:900px; }

.pf-eyebrow {
  font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
  color:var(--blue70); margin-bottom:12px;
}
.pf-h2 {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(23px,3.4vw,33px); line-height:1.2; max-width:26ch; margin-bottom:16px;
}
.pf-h3 {
  font-size:11px; font-weight:600; letter-spacing:.13em; text-transform:uppercase;
  color:var(--gray60); margin-bottom:14px;
}
.pf-sub { font-size:15px; color:var(--gray70); line-height:1.8; max-width:72ch; margin-bottom:32px; }

/* Vendor-neutrality note */
.pf-note {
  background:var(--blue10); border-left:4px solid var(--blue60);
  padding:18px 20px; font-size:14.5px; color:var(--gray80);
  line-height:1.75; max-width:80ch; margin-bottom:32px;
}
.pf-note strong { color:var(--blue80); }

/* Cloud provider cards */
.pf-clouds { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
@media (min-width:900px) { .pf-clouds { grid-template-columns:repeat(3,1fr); } }
.pf-cloud { border:1px solid var(--gray20); background:var(--white); padding:24px 22px; }
.pf-tag {
  font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:.08em;
  color:#fff; background:var(--blue60); display:inline-block; padding:4px 10px; margin-bottom:14px;
}
.pf-cloud-h { font-size:17px; font-weight:600; margin-bottom:12px; }
.pf-services {
  font-family:var(--mono); font-size:12px; color:var(--gray60);
  line-height:1.8; margin-bottom:14px;
}
.pf-when { font-size:14px; color:var(--gray70); line-height:1.7; }

/* Tool / capability cards */
.pf-tools { display:grid; gap:1px; background:var(--gray20); border:1px solid var(--gray20);
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); }
.pf-tool { background:var(--white); padding:24px 22px; }
.pf-tool-h { font-size:16px; font-weight:600; margin-bottom:10px; }
.pf-tool-p { font-size:14px; color:var(--gray70); line-height:1.7; }

/* Application stack */
.pf-stack { display:grid; gap:2px; }
.pf-stack-row {
  display:grid; gap:6px; background:var(--white);
  border-left:3px solid var(--blue60); padding:18px 20px;
}
@media (min-width:800px) { .pf-stack-row { grid-template-columns:180px 1fr; gap:24px; align-items:baseline; } }
.pf-sec:nth-of-type(even) .pf-stack-row { background:var(--white); }
.pf-stack-t, .pf-stack-row dt { font-size:14px; font-weight:600; color:var(--gray100); }
.pf-stack-d, .pf-stack-row dd { font-size:14px; color:var(--gray70); line-height:1.75; }
.pf-stack-list { list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.pf-stack-list li {
  font-family:var(--mono); font-size:11.5px; color:var(--blue70);
  background:var(--blue10); border:1px solid var(--blue20); padding:4px 9px;
}
.pf-stack-note {
  margin-top:22px; font-size:13.5px; color:var(--gray60);
  line-height:1.7; max-width:76ch; font-style:italic;
}

/* Product links */
.pf-products { margin-top:30px; padding-top:22px; border-top:1px solid var(--gray20); }
.pf-plist { list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.pf-plist a {
  display:inline-flex; align-items:center; gap:7px;
  font-size:13.5px; font-weight:500; color:var(--blue70); text-decoration:none;
  border:1px solid var(--gray30); padding:8px 13px; background:var(--white);
}
.pf-plist a:hover { border-color:var(--blue60); background:var(--blue10); }

.pf-shot { line-height:0; margin-bottom:28px; }
.pf-shot img {
  display:block; width:100%; height:auto;
  aspect-ratio:16/9; object-fit:cover; border-radius:8px;
}

/* Closing band */
.pf-cta { background:var(--navy); color:#fff; }
.pf-cta-in { max-width:var(--maxw); margin:0 auto; padding:52px var(--pad) 56px; }
.pf-cta-h {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(23px,3.4vw,32px); line-height:1.2; max-width:22ch;
}
.pf-cta-p { font-size:16px; color:var(--blue20); line-height:1.75; max-width:58ch; margin:14px 0 26px; }
.pf-cta-actions { display:flex; flex-wrap:wrap; gap:12px; }
.pf-cta .btn-ghost { color:var(--blue20); border-color:rgba(166,200,255,.4); }
.pf-cta .btn-ghost:hover { background:rgba(255,255,255,.09); }

/* ── HOMEPAGE · SECTION 8 — CONNECT ────────────────────── */
.cn { background:var(--navy); color:#fff; }
.cn-in {
  max-width:var(--maxw); margin:0 auto; padding:60px var(--pad) 64px;
  display:grid; gap:36px; align-items:start;
}
@media (min-width:1000px) {
  .cn-split { grid-template-columns:1.25fr .75fr; gap:52px; }
  .cn-split .cn-shot { position:sticky; top:calc(var(--topbar-h) + 24px); }
}

.cn-h2 {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(24px,3.6vw,36px); line-height:1.2; max-width:20ch; margin-bottom:16px;
}
.cn-lede {
  font-size:clamp(15px,1.9vw,17px); font-weight:300; color:var(--blue20);
  line-height:1.75; max-width:60ch; margin-bottom:32px;
}

.cn-form { background:var(--gray90); padding:28px 24px; border-top:3px solid var(--blue50); }
.cn-grid { display:grid; gap:16px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.cn-form .field label { color:var(--gray20); }
.cn-form .field input,
.cn-form .field textarea {
  background:var(--gray100); border-color:var(--gray70); color:#fff;
}
.cn-form .field input::placeholder,
.cn-form .field textarea::placeholder { color:var(--gray60); }
.cn-form .field input:focus,
.cn-form .field textarea:focus {
  border-color:var(--blue50); box-shadow:0 0 0 2px rgba(69,137,255,.25);
}
.cn-form .req { color:var(--blue40); }
.cn-form .opt { color:var(--gray50); }
.cn-form .field-msg { color:#FF8389; }
.cn-form .has-error input,
.cn-form .has-error textarea { border-color:#FF8389; }

.cn-actions { margin-top:22px; }
.cn-privacy { font-size:12.5px; color:var(--gray50); line-height:1.6; margin-top:14px; max-width:52ch; }

.cn-alt { margin-top:22px; font-size:14px; color:var(--gray40); line-height:1.7; }
.cn-alt a { color:var(--blue30); text-decoration:none; }
.cn-alt a:hover { text-decoration:underline; }

.cn-shot { line-height:0; }
.cn-shot img {
  display:block; width:100%; height:auto;
  aspect-ratio:3/4; object-fit:cover; border-radius:8px;
}
@media (max-width:999px) { .cn-shot img { aspect-ratio:16/9; } }

/* Capability blocks in Section 3 now link through */
.sol-item-h a { color:inherit; text-decoration:none; }
.sol-item-h a:hover { color:var(--blue40); text-decoration:underline; }