/* ============================================================
   /technology/document-verification/ — Key Technologies category
   template (seed). Scoped .p-document-verification. Tokens only.

   Hero: the customer-onboarding blue AURORA CARD, but a CENTERED,
   document-first composition (the ID is the centered hero, analyzed
   with callouts). How-it-works: HORIZONTAL left→right pipeline.
   Smart capture: a GRID of EQUAL cards, each with a bespoke CSS-drawn
   capture-experience visual (viewfinder · auto-detect · OCR · barcode/MRZ
   · NFC) on top and copy below. No borrowed screenshots.

   Arc: hero(card·centered doc) · threat · pipeline(horizontal) ·
   capture(equal card grid) · deepsight · global(map) · proof · certs · faq · cta.
   ============================================================ */

/* ---------- shared shell + primitives ---------- */
.p-document-verification .dv-inner {
  margin-inline: auto;
  width: 100%;
  max-width: var(--container-large);
  padding: var(--space-section-sm) var(--space-inline);
}
@media (min-width: 768px) { .p-document-verification .dv-inner { padding-block: var(--space-section-md); } }
@media (min-width: 1024px) { .p-document-verification .dv-inner { padding-inline: var(--space-inline-lg); } }

.p-document-verification .dv-intro {
  margin-top: 16px;
  max-width: 640px;
  font-size: var(--fs-xl);
  line-height: var(--leading-body);
  color: var(--color-grey-on-white);
}
.p-document-verification .dv-intro--on-dark { color: rgba(255, 255, 255, 0.66); }

/* real phone frame (reused in Smart capture media) */
.p-document-verification .dv-phone {
  padding: 9px;
  border-radius: 42px;
  border: 1px solid var(--color-grey-100);
  background: var(--color-white);
  box-shadow: none;
}
.p-document-verification .dv-phone__deck { display: grid; }
.p-document-verification .dv-phone__screen {
  grid-area: 1 / 1;
  display: block; width: 100%; height: auto;
  aspect-ratio: 390 / 844;
  object-fit: cover; object-position: top center;
  border-radius: 34px;
}

/* ============================================================
   1 · HERO — CO blue aurora CARD, centered document-first
   ============================================================ */
.p-document-verification .dv-hero {
  --hero-gutter: 0px;
  position: relative;
  display: flex;
  flex-direction: column;
  /* copy-only hero (Sofia 2026-08-13): the viewport lock existed so the
     big foot visual could bleed off the bottom — with the visuals retired
     the hero sizes to its copy */
  height: auto;
  overflow: hidden;
  /* FULL-BLEED band (Sofia, 2026-08-06: "don't use the rounded rectangle
     hero on these pages") — the gutter card retired, the aurora runs to
     the edges and fuses with the dark stats band below */
  background: var(--color-black);
}
@media (max-width: 767px) { .p-document-verification .dv-hero { height: auto; min-height: 0; } }
.p-document-verification .dv-hero__aurora {
  position: absolute;
  inset: 0;
  border-radius: 0;
  /* identical to the customer-onboarding hero card */
  background:
    radial-gradient(120% 95% at 12% 0%, color-mix(in oklab, var(--color-blue-500) 80%, transparent), transparent 62%),
    radial-gradient(110% 100% at 92% 100%, color-mix(in oklab, var(--color-blue-500) 65%, transparent), transparent 65%),
    /* bottom-left fill — without it the dark base peeks behind the ID row
       and reads as a black shadow smear (Nacim, 2026-07-30) */
    radial-gradient(110% 100% at 8% 100%, color-mix(in oklab, var(--color-blue-500) 55%, transparent), transparent 65%),
    color-mix(in oklab, var(--color-black) 86%, var(--color-blue-500));
}
.p-document-verification .dv-hero__inner {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-inline: auto;
  width: 100%;
  max-width: 960px;
  /* copy-only hero (Sofia 2026-08-13: technology heroes carry tag · title ·
     body · button, no visual) — the foot clearance that reserved the old
     fan/orb/phone space is gone; the hero closes under the actions */
  padding: 132px 20px 96px;
}
@media (min-width: 1024px) {
  /* Podium-ref editorial split (Sofia, 2026-08-06): the statement rides
     left at full display size, the support paragraph + actions sit right,
     baseline-aligned against it; the ID fan keeps the hero's foot. Same
     content, new geometry. */
  .p-document-verification .dv-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
    grid-template-areas:
      "kicker kicker"
      "title  side"
      "title  actions";
    align-content: center;
    column-gap: 64px;
    row-gap: 0;
    text-align: left;
    max-width: var(--container-large);
    padding: clamp(120px, 15svh, 168px) 24px clamp(96px, 14svh, 140px);
  }
  /* the __inner ancestor lifts these over the base centered rules that
     sit LATER in this sheet (Sofia, 2026-08-06: the swap line and the
     buttons must hold the same left edge as line one) */
  .p-document-verification .dv-hero__inner .dv-hero__kicker { grid-area: kicker; justify-self: start; }
  .p-document-verification .dv-hero__inner .dv-hero__title { grid-area: title; font-size: clamp(44px, 4.9vw, 72px); text-align: left; }
  .p-document-verification .dv-hero__inner .dv-swap { justify-items: start; text-align: left; }
  .p-document-verification .dv-hero__inner .dv-swap__word { justify-self: start; text-align: left; }
  .p-document-verification .dv-hero__inner .dv-hero__sub {
    grid-area: side;
    align-self: end;
    margin-top: 0;
    margin-inline: 0;
    text-align: left;
    max-width: 44ch;
  }
  .p-document-verification .dv-hero__inner .dv-hero__actions {
    grid-area: actions;
    align-self: start;
    justify-content: flex-start;
    margin-top: 28px;
  }
}
.p-document-verification .dv-hero__kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px 6px 10px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--color-blue-200);
  font-size: var(--fs-sm);
}
.p-document-verification .dv-hero__kicker .ds-icon { width: 16px; height: 16px; }
.p-document-verification .dv-hero__title {
  margin-top: clamp(14px, 2.4svh, 20px);
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: var(--track-tighter);
  line-height: 1.04;
  font-size: clamp(34px, 4.9vw, 60px);
  color: var(--color-white);
}
.p-document-verification .dv-hero__title-line { display: block; }
.p-document-verification .dv-hero__title-line--accent {
  background: linear-gradient(96deg, var(--color-blue-200), color-mix(in oklab, var(--color-blue-500) 60%, white) 75%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
/* rotating accent line — inline-grid stack (CO word-roll DNA): the browser
   sizes the slot to the widest phrase; words crossfade in place */
.p-document-verification .dv-swap {
  display: inline-grid;
  justify-items: center;
  white-space: nowrap;
  /* the parent must NOT carry the accent gradient/clip — bg-clip:text on the
     parent paints through every stacked phrase regardless of child opacity */
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  color: inherit;
}
.p-document-verification .dv-swap__word {
  grid-area: 1 / 1;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.5s var(--ease-out-expo), transform 0.5s var(--ease-out-expo);
  background: linear-gradient(96deg, var(--color-blue-200), color-mix(in oklab, var(--color-blue-500) 60%, white) 75%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.p-document-verification .dv-swap__word.is-active { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .p-document-verification .dv-swap__word { transition: none; }
}

.p-document-verification .dv-hero__sub {
  margin-top: clamp(10px, 1.8svh, 16px);
  max-width: 560px;
  font-size: var(--fs-body);
  line-height: var(--leading-body);
  color: rgba(255, 255, 255, 0.72);
}
@media (min-width: 768px) { .p-document-verification .dv-hero__sub { font-size: var(--fs-xl); } }
.p-document-verification .dv-hero__actions { margin-top: clamp(18px, 2.6svh, 28px); display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

/* the ID ROW — a centered cluster of 5 real IDs (from the Figma "🌎 IDs"
   library), tilted and overlapping, rising from the foot of the card and cut
   off at the bottom. Absolutely anchored to the card foot so it always
   bleeds; the cluster stays narrower than the card so the rounded bottom
   corners stay visible on both sides (owner order 2026-08-03). */
.p-document-verification .dv-hero__doc {
  /* aligned to the aurora CARD (not the page): the row is clipped by the
     card's bottom edge + rounded corners, so the cards read as cut off by
     the blue background exactly */
  position: absolute;
  left: var(--hero-gutter); right: var(--hero-gutter); bottom: var(--hero-gutter);
  height: min(400px, 50svh);
  border-radius: 0 0 28px 28px;
  overflow: hidden;
  z-index: 1;
  display: flex;
  justify-content: center;
  align-items: flex-end;
}
/* even, full-width bottom light — kills the dark aurora corner that read as
   a black shadow behind the left cards */
.p-document-verification .dv-hero__doc-glow {
  position: absolute; left: 0; right: 0; bottom: 0; height: 100%;
  background: linear-gradient(to top, color-mix(in oklab, var(--color-blue-500) 30%, transparent), transparent 78%);
}
.p-document-verification .dv-id {
  position: relative;
  flex: 0 0 auto;
  width: clamp(152px, 16.2vw, 236px);
  aspect-ratio: 1 / 1.585;
  /* ONE row, snug: tight enough to fit one more card per screen, small
     tilts keep content uncovered */
  margin-inline: calc(clamp(152px, 16.2vw, 236px) * -0.08);
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.2);
  transform-origin: bottom center;
  transform: translateY(var(--y, 46px)) rotate(var(--r, 0deg));
  transition: transform 0.35s var(--ease-out-expo);
}
/* subtle lift on hover — no z-index change: a card must never jump in
   front of its neighbors (Nacim, 2026-07-30) */
.p-document-verification .dv-id:hover {
  transform: translateY(calc(var(--y, 46px) - 16px)) rotate(var(--r, 0deg));
}
.p-document-verification .dv-id img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* small screens: 3 cards, slightly narrower, so the cluster still clears the
   card's rounded corners on both sides */
@media (max-width: 767px) {
  .p-document-verification .dv-id {
    width: clamp(120px, 34vw, 180px);
    margin-inline: calc(clamp(120px, 34vw, 180px) * -0.08);
  }
  .p-document-verification .dv-id:nth-of-type(1),
  .p-document-verification .dv-id:nth-of-type(5) { display: none; }
}

/* shared FOOT BAND for the sibling key-technology heroes (owner order
   2026-08-03): each page's hero visual lives ONLY in this band — the same
   box the DV ID row occupies (screenshot-approved placeholder) — anchored
   to the card foot, clipped by the card's bottom edge + rounded corners.
   The copy group above inherits the EXACT DV placement (no per-page
   geometry overrides). Visuals taller than the band get cut at the foot,
   like the ID row. */
.p-document-verification .dv-hero__foot {
  position: absolute;
  left: var(--hero-gutter); right: var(--hero-gutter); bottom: var(--hero-gutter);
  height: min(400px, 50svh);
  border-radius: 0 0 28px 28px;
  overflow: hidden;
  z-index: 1;
  display: flex;
  justify-content: center;
  /* visuals dock on the card's bottom edge (taller ones bleed past it via
     a negative bottom margin, like the ID row's translateY) — transforms
     stay free for the data-reveal animation */
  align-items: flex-end;
}
/* small screens: 3 cards, slightly narrower, so the cluster still clears the
   card's rounded corners on both sides */
@media (max-width: 767px) {
  .p-document-verification .dv-id {
    width: clamp(120px, 34vw, 180px);
    margin-inline: calc(clamp(120px, 34vw, 180px) * -0.08);
  }
  .p-document-verification .dv-id:nth-of-type(1),
  .p-document-verification .dv-id:nth-of-type(5) { display: none; }
}

/* ---------- stats band — its own section, right after the hero ---------- */
.p-document-verification .dv-stats { background: var(--color-white); border-bottom: 1px solid var(--color-border-light); }
.p-document-verification .dv-stats .dv-inner { padding-block: 44px; }
@media (min-width: 768px) { .p-document-verification .dv-stats .dv-inner { padding-block: 56px; } }
.p-document-verification .dv-stats__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 24px; }
@media (min-width: 768px) { .p-document-verification .dv-stats__grid { grid-template-columns: repeat(4, 1fr); gap: 40px; } }
.p-document-verification .dv-stats__item { text-align: center; }
@media (min-width: 768px) {
  .p-document-verification .dv-stats__item { text-align: left; padding-left: 32px; border-left: 1px solid var(--color-border-light); }
  .p-document-verification .dv-stats__item:first-child { padding-left: 0; border-left: 0; }
}
.p-document-verification .dv-stats__value {
  font-family: var(--font-display); font-weight: 500; letter-spacing: var(--track-tighter);
  font-size: clamp(36px, 4.4vw, 52px); line-height: 1; font-variant-numeric: tabular-nums;
}
.p-document-verification .dv-stats__cap { margin-top: 8px; font-size: var(--fs-sm); line-height: 1.4; color: var(--color-grey-on-white); }

/* ============================================================
   2 · THREAT (dark) — copy + fraud-type cards + stat band
   ============================================================ */
.p-document-verification .dv-threat { position: relative; background: var(--color-black); color: var(--color-white); overflow: hidden; }
.p-document-verification .dv-threat::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(900px 480px at 50% -10%, color-mix(in oklab, var(--color-red-500) 18%, transparent), transparent 60%);
  pointer-events: none;
}
.p-document-verification .dv-threat > .dv-inner { position: relative; }
.p-document-verification .dv-kicker--threat { color: color-mix(in oklab, var(--color-red-400) 82%, white); }
.p-document-verification .dv-threat__types { margin-top: 40px; display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .p-document-verification .dv-threat__types { grid-template-columns: repeat(3, 1fr); } }
.p-document-verification .dv-threat__type {
  padding: 24px; border-radius: var(--radius-lg);
  border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.03);
  transition: border-color 0.3s ease, background-color 0.3s ease, transform 0.3s var(--ease-out-expo);
}
.p-document-verification .dv-threat__type:hover { border-color: color-mix(in oklab, var(--color-red-400) 45%, transparent); background: rgba(255, 255, 255, 0.05); transform: translateY(-3px); }
.p-document-verification .dv-threat__type-num { font-family: var(--font-display); font-size: var(--fs-sm); color: color-mix(in oklab, var(--color-red-400) 82%, white); font-variant-numeric: tabular-nums; }
.p-document-verification .dv-threat__type-name { margin-top: 10px; font-family: var(--font-display); font-weight: 500; font-size: var(--fs-2xl); color: var(--color-white); }
.p-document-verification .dv-threat__type-line { margin-top: 8px; font-size: var(--fs-sm); line-height: 1.55; color: rgba(255, 255, 255, 0.6); }
.p-document-verification .dv-threat__stats { margin-top: 56px; display: grid; gap: 48px; grid-template-columns: 1fr; padding-top: 40px; border-top: 1px solid rgba(255, 255, 255, 0.12); }
@media (min-width: 640px) {
  .p-document-verification .dv-threat__stats { grid-template-columns: 1fr 1fr; gap: 0; }
  .p-document-verification .dv-threat__stat + .dv-threat__stat { padding-left: 56px; border-left: 1px solid rgba(255, 255, 255, 0.12); }
}
.p-document-verification .dv-threat__value {
  font-family: var(--font-display); font-weight: 500; letter-spacing: var(--track-tightest);
  font-size: clamp(40px, 5vw, 64px); line-height: 0.95; font-variant-numeric: tabular-nums;
  /* fit-content so the gradient spans the TEXT, not the column — at smaller
     sizes the red tail was landing past the glyphs and reading as plain white */
  width: fit-content;
  background: linear-gradient(90deg, var(--color-white) 32%, var(--color-red-500) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.p-document-verification .dv-threat__cap { margin-top: 18px; font-size: var(--fs-body); line-height: 1.5; color: rgba(255, 255, 255, 0.6); max-width: 360px; }

/* ============================================================
   3 · HOW IT WORKS — brand gradient card on WHITE; one glass CARD
   per step (5 across on desktop, stacked on mobile). Fits viewport.
   ============================================================ */
.p-document-verification .dv-pipe { background: var(--color-white); }

/* the card IS the brand aurora (same recipe as the hero card) */
.p-document-verification .dv-pipe__card {
  position: relative; overflow: hidden; color: var(--color-white);
  border-radius: 28px;
  padding: clamp(32px, 5vw, 64px) clamp(24px, 4vw, 56px) clamp(36px, 5vw, 64px);
  background:
    radial-gradient(120% 120% at 12% -10%, color-mix(in oklab, var(--color-blue-500) 72%, transparent), transparent 58%),
    radial-gradient(120% 130% at 92% 110%, color-mix(in oklab, var(--color-blue-500) 52%, transparent), transparent 60%),
    color-mix(in oklab, var(--color-black) 88%, var(--color-blue-500));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}
.p-document-verification .dv-pipe__head { max-width: 680px; margin-inline: auto; text-align: center; }
.p-document-verification .dv-pipe__head .dv-intro { margin-inline: auto; }

.p-document-verification .dv-pipe__flow {
  list-style: none; margin: clamp(40px, 6vw, 64px) 0 0; padding: 0;
  display: grid; gap: 16px; grid-template-columns: 1fr;
}
@media (min-width: 768px) { .p-document-verification .dv-pipe__flow { grid-template-columns: repeat(5, 1fr); } }

.p-document-verification .dv-pipe__node {
  position: relative; display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center;
  padding: 20px; border-radius: var(--radius-lg);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  transition: transform 0.3s var(--ease-out-expo), border-color 0.3s ease, background-color 0.3s ease;
}
.p-document-verification .dv-pipe__node:hover {
  transform: translateY(-4px);
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.09);
}
@media (min-width: 768px) {
  .p-document-verification .dv-pipe__node { display: block; text-align: center; padding: 28px 20px; }
}
.p-document-verification .dv-pipe__icon {
  width: 52px; height: 52px; border-radius: var(--radius-md); display: grid; place-items: center;
  background: color-mix(in oklab, var(--color-blue-500) 30%, transparent);
  border: 1px solid rgba(255, 255, 255, 0.18); color: var(--color-white);
}
@media (min-width: 768px) { .p-document-verification .dv-pipe__icon { margin-inline: auto; } }
.p-document-verification .dv-pipe__icon .ds-icon { width: 24px; height: 24px; }
.p-document-verification .dv-pipe__node-text { display: block; }
.p-document-verification .dv-pipe__num {
  display: block; font-family: var(--font-display); font-size: var(--fs-xs);
  letter-spacing: var(--track-wide); color: var(--color-blue-200); font-variant-numeric: tabular-nums;
}
@media (min-width: 768px) { .p-document-verification .dv-pipe__num { margin-top: 20px; } }
.p-document-verification .dv-pipe__name {
  display: block; margin-top: 4px; font-family: var(--font-display); font-weight: 500;
  letter-spacing: var(--track-tight); font-size: var(--fs-xl); line-height: 1.15; color: var(--color-white);
}
.p-document-verification .dv-pipe__line {
  display: block; margin-top: 8px; font-size: var(--fs-sm); line-height: 1.5; color: rgba(255, 255, 255, 0.66);
}

/* ============================================================
   4 · SMART CAPTURE (light) — a GRID of EQUAL cards, one per capture
   experience. Every card is the same size: a CSS-drawn PLACEHOLDER
   visual on top (camera viewfinder with live guidance · auto-detect
   shutter · OCR field read · barcode/MRZ match · NFC tap) with copy
   below. 3-up on desktop, 2-up on tablet, 1-up on mobile; the trailing
   row centers. All motion drops under prefers-reduced-motion.
   ============================================================ */
.p-document-verification .dv-capture { background: var(--color-background); border-top: 1px solid var(--color-border-light); }

/* header — kicker · title · intro (no CTA) */
.p-document-verification .dv-capture__head { max-width: 640px; }

/* 5-up card grid — all five fit, no scroll */
.p-document-verification .dv-capture__grid {
  list-style: none; margin: clamp(40px, 5vw, 56px) 0 0; padding: 0;
  display: grid; gap: 16px; grid-template-columns: 1fr;
}
@media (min-width: 560px) { .p-document-verification .dv-capture__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px) { .p-document-verification .dv-capture__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1120px) { .p-document-verification .dv-capture__grid { grid-template-columns: repeat(5, 1fr); } }

/* the card: copy on top, visual panel below; equal height across a row */
.p-document-verification .dv-cap {
  display: flex; flex-direction: column; overflow: hidden;
  border-radius: 20px; border: 1px solid var(--color-border-light); background: var(--color-white);
  transition: border-color 0.3s ease, transform 0.3s var(--ease-out-expo), box-shadow 0.3s ease;
}
.p-document-verification .dv-cap:hover {
  border-color: color-mix(in oklab, var(--color-blue-500) 32%, transparent);
  transform: translateY(-4px); box-shadow: none;
}
.p-document-verification .dv-cap__copy { padding: 20px 20px 16px; }
.p-document-verification .dv-cap__meta { display: flex; align-items: center; justify-content: space-between; }
.p-document-verification .dv-cap__chip {
  display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px;
  background: var(--color-blue-100); color: var(--color-blue-500);
  font-family: var(--font-display); font-size: var(--fs-xs); font-variant-numeric: tabular-nums;
}
.p-document-verification .dv-cap__arrow { display: inline-flex; color: var(--color-grey-300); }
.p-document-verification .dv-cap__name { margin-top: 14px; font-family: var(--font-display); font-weight: 500; letter-spacing: var(--track-tight); font-size: clamp(19px, 1.5vw, 22px); line-height: 1.14; color: var(--color-black); }
.p-document-verification .dv-cap__line { margin-top: 8px; font-size: var(--fs-sm); line-height: 1.5; color: var(--color-grey-on-white); }
.p-document-verification .dv-cap__viz {
  /* the real capture screen as an editorial device: rounded top, cut off at
     the bottom. Plate aspect = the screen art (1000x836) so it drops in 1:1,
     never distorted; the light plate shows through the transparent padding. */
  position: relative; overflow: hidden; margin: auto 16px 16px;
  aspect-ratio: 1000 / 836; border-radius: 12px;
  background: var(--color-background);
}
.p-document-verification .cap__screen {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center top; display: block;
}

/* --- shared status chip --- */
.p-document-verification .dv-chip {
  position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 7px;
  padding: 5px 11px 5px 9px; border-radius: 999px; white-space: nowrap;
  font-size: var(--fs-xs); font-weight: 500; color: var(--color-grey-500);
  background: var(--color-white); box-shadow: inset 0 0 0 1px var(--color-border-light);
}
.p-document-verification .dv-chip::before { content: ""; width: 13px; height: 13px; border-radius: 50%; background: var(--color-grey-300); flex: 0 0 auto; }
.p-document-verification .dv-chip--ok { color: var(--color-green-600); }
.p-document-verification .dv-chip--ok::before { background: var(--color-green-flow); box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-green-flow) 22%, transparent); }

/* --- viewfinder (framing · auto) --- */
.p-document-verification .dv-vf {
  position: relative; width: min(78%, 320px); aspect-ratio: 4 / 3; border-radius: 16px; overflow: hidden;
  background: radial-gradient(120% 120% at 50% 8%, color-mix(in oklab, var(--color-blue-500) 26%, var(--color-black)), var(--color-black) 78%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.p-document-verification .dv-vf__id {
  position: absolute; left: 50%; top: 52%; transform: translate(-50%, -50%);
  width: 60%; aspect-ratio: 1.585; border-radius: 8px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.06));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16);
}
.p-document-verification .dv-vf__id::before {
  content: ""; position: absolute; left: 12%; top: 22%; width: 26%; aspect-ratio: 3 / 4; border-radius: 4px;
  background: rgba(255, 255, 255, 0.3);
}
.p-document-verification .dv-vf__id::after {
  content: ""; position: absolute; right: 12%; top: 30%; width: 44%; height: 5px; border-radius: 3px;
  background: rgba(255, 255, 255, 0.3); box-shadow: none;
}
.p-document-verification .dv-vf__corner { position: absolute; width: 22px; height: 22px; border: 2.5px solid var(--color-blue-200); }
.p-document-verification .dv-vf__corner--tl { top: 16px; left: 16px; border-right: 0; border-bottom: 0; border-radius: 6px 0 0 0; }
.p-document-verification .dv-vf__corner--tr { top: 16px; right: 16px; border-left: 0; border-bottom: 0; border-radius: 0 6px 0 0; }
.p-document-verification .dv-vf__corner--bl { bottom: 16px; left: 16px; border-right: 0; border-top: 0; border-radius: 0 0 0 6px; }
.p-document-verification .dv-vf__corner--br { bottom: 16px; right: 16px; border-left: 0; border-top: 0; border-radius: 0 0 6px 0; }
.p-document-verification .dv-vf__scan {
  position: absolute; left: 14%; right: 14%; top: 24%; height: 2px;
  background: linear-gradient(90deg, transparent, var(--color-blue-200), transparent);
  box-shadow: none;
  animation: dv-scan 2.8s var(--ease-out-expo) infinite;
}
@keyframes dv-scan { 0% { top: 24%; opacity: 0; } 14% { opacity: 1; } 50% { top: 74%; opacity: 1; } 66%, 100% { top: 74%; opacity: 0; } }
.p-document-verification .dv-vf__chip--1 { top: 14px; right: 14px; }
.p-document-verification .dv-vf__chip--2 { bottom: 16px; left: 14px; }

/* auto-detect variant */
.p-document-verification .dv-vf__detect {
  position: absolute; inset: 20%; border: 2px dashed color-mix(in oklab, var(--color-blue-200) 72%, transparent); border-radius: 8px;
  animation: dv-detect 3.2s var(--ease-out-expo) infinite;
}
@keyframes dv-detect {
  0%, 34% { inset: 22%; border-style: dashed; border-color: color-mix(in oklab, var(--color-blue-200) 55%, transparent); }
  54%, 100% { inset: 17%; border-style: solid; border-color: var(--color-blue-200); }
}
.p-document-verification .dv-vf__shutter {
  position: absolute; inset: 0; border: 3px solid color-mix(in oklab, var(--color-blue-500) 60%, transparent); border-radius: 16px;
  opacity: 0; animation: dv-shutter 3.2s var(--ease-out-expo) infinite;
}
@keyframes dv-shutter { 0%, 58% { opacity: 0; } 62% { opacity: 1; } 80%, 100% { opacity: 0; } }
.p-document-verification .dv-vf__chip--auto { bottom: 14px; left: 50%; transform: translateX(-50%); }

/* --- OCR field read --- */
.p-document-verification .dv-ocr {
  position: relative; overflow: hidden; width: min(80%, 300px);
  display: grid; grid-template-columns: auto 1fr; gap: 16px; align-items: center;
  padding: 18px; border-radius: 14px; background: var(--color-white);
  box-shadow: inset 0 0 0 1px var(--color-border-light);
}
.p-document-verification .dv-ocr__photo { width: 52px; aspect-ratio: 3 / 4; border-radius: 8px; background: linear-gradient(150deg, var(--color-blue-200), var(--color-blue-100)); box-shadow: inset 0 0 0 1px var(--color-border-light); }
.p-document-verification .dv-ocr__rows { display: grid; gap: 9px; }
.p-document-verification .dv-ocr__row { height: 9px; border-radius: 5px; background: var(--color-grey-100); }
.p-document-verification .dv-ocr__row--1 { width: 86%; background: color-mix(in oklab, var(--color-blue-500) 24%, var(--color-blue-100)); }
.p-document-verification .dv-ocr__row--2 { width: 62%; }
.p-document-verification .dv-ocr__row--3 { width: 74%; }
.p-document-verification .dv-ocr__read {
  position: absolute; left: 0; right: 0; top: 0; height: 34%;
  background: linear-gradient(180deg, color-mix(in oklab, var(--color-blue-500) 16%, transparent), transparent);
  border-bottom: 2px solid color-mix(in oklab, var(--color-blue-500) 55%, transparent);
  animation: dv-read 2.6s var(--ease-out-expo) infinite;
}
@keyframes dv-read { 0% { transform: translateY(-10%); opacity: 0; } 12% { opacity: 1; } 82% { transform: translateY(230%); opacity: 1; } 100% { transform: translateY(230%); opacity: 0; } }

/* --- barcode + MRZ match --- */
.p-document-verification .dv-code {
  position: relative; width: min(82%, 300px); display: grid; gap: 12px;
  padding: 18px; border-radius: 14px; background: var(--color-white);
  box-shadow: inset 0 0 0 1px var(--color-border-light);
}
.p-document-verification .dv-code__bars {
  height: 44px; border-radius: 6px; background-color: var(--color-white);
  background-image:
    repeating-linear-gradient(90deg, var(--color-grey-600) 0 2px, transparent 2px 5px),
    repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.7) 0 3px, transparent 3px 7px);
  box-shadow: inset 0 0 0 1px var(--color-border-light);
}
.p-document-verification .dv-code__mrz {
  font-family: var(--font-display); font-weight: 500; font-size: var(--fs-xs);
  letter-spacing: 0; color: var(--color-grey-400); font-variant-numeric: tabular-nums;
  white-space: nowrap; overflow: hidden; text-overflow: clip;
}
.p-document-verification .dv-code__chip { top: 12px; right: 12px; }

/* --- NFC chip read --- */
.p-document-verification .dv-nfc { position: relative; width: 100%; height: 100%; display: grid; place-items: center; }
.p-document-verification .dv-nfc__passport {
  position: relative; z-index: 1; width: 48%; max-width: 184px; aspect-ratio: 1.4; border-radius: 12px;
  background: linear-gradient(150deg, color-mix(in oklab, var(--color-blue-500) 82%, var(--color-black)), var(--color-blue-500));
  box-shadow: none;
  display: grid; place-items: center;
}
.p-document-verification .dv-nfc__chip {
  width: 30%; aspect-ratio: 4 / 3; border-radius: 5px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.62));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
}
.p-document-verification .dv-nfc__wave {
  position: absolute; border-radius: 50%; border: 2px solid color-mix(in oklab, var(--color-blue-500) 55%, transparent);
  width: 44%; aspect-ratio: 1; opacity: 0; animation: dv-nfc-wave 2.8s var(--ease-out-expo) infinite;
}
.p-document-verification .dv-nfc__wave--2 { animation-delay: 0.5s; }
.p-document-verification .dv-nfc__wave--3 { animation-delay: 1s; }
@keyframes dv-nfc-wave { 0% { transform: scale(0.9); opacity: 0.7; } 70%, 100% { transform: scale(2.4); opacity: 0; } }
.p-document-verification .dv-nfc__label { bottom: 14px; left: 50%; transform: translateX(-50%); }

/* ============================================================
   5 · DEEPSIGHT (dark) — big stat + copy
   ============================================================ */
.p-document-verification .dv-deepsight { position: relative; background: var(--color-black); color: var(--color-white); overflow: hidden; }
.p-document-verification .dv-deepsight::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(800px 480px at 82% 20%, color-mix(in oklab, var(--color-blue-500) 30%, transparent), transparent 60%);
  pointer-events: none;
}
.p-document-verification .dv-deepsight__grid { position: relative; display: grid; gap: 40px; }
@media (min-width: 1024px) { .p-document-verification .dv-deepsight__grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 64px; align-items: center; } }
.p-document-verification .dv-deepsight__big { font-family: var(--font-display); font-weight: 500; letter-spacing: var(--track-tighter); font-size: clamp(84px, 15vw, 200px); line-height: 0.9; color: var(--color-white); font-variant-numeric: tabular-nums; }
.p-document-verification .dv-deepsight__bigcap { margin-top: 12px; max-width: 380px; font-size: var(--fs-xl); line-height: 1.4; color: rgba(255, 255, 255, 0.8); }
.p-document-verification .dv-deepsight__cta { margin-top: 32px; }
.p-document-verification .dv-deepsight__support { margin-top: 20px; max-width: 480px; font-size: var(--fs-body); line-height: var(--leading-body); color: rgba(255, 255, 255, 0.6); }
.p-document-verification .dv-deepsight__statblock { justify-self: center; text-align: center; }

/* ============================================================
   6 · GLOBAL COVERAGE (light) — big interactive world map + pins
   ============================================================ */
/* 6 · GLOBAL COVERAGE — dark full-width composition (ecomflow ref,
   Sofia 2026-08-06): stat-accented title left, intro right, hairline
   into three feature columns, the dotted map full-width below. Phrases
   on ink take Blue 200 (site rule); the pin ping is retired. */
.p-document-verification .dv-global {
  background: var(--color-black);
  color: var(--color-white);
}
.p-document-verification .dv-global__head { display: grid; gap: 24px; }
@media (min-width: 900px) {
  .p-document-verification .dv-global__head {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 72px;
    align-items: end;
  }
}
.p-document-verification .dv-global__title {
  margin-top: 20px;
  max-width: 28ch;
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: var(--track-tighter);
  font-size: clamp(30px, 3.6vw, 44px);
  line-height: 1.12;
  color: var(--color-white);
}
.p-document-verification .dv-global__title-accent {
  display: block;
  color: var(--color-blue-200);
}
.p-document-verification .dv-global__intro {
  max-width: 52ch;
  font-size: var(--fs-body);
  line-height: var(--leading-body);
  color: rgba(255, 255, 255, 0.7);
}
/* the coverage split (Sofia 2026-08-13, the age-assurance recipe):
   boxed point chips left, framed map card right */
.p-document-verification .dv-global__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  margin-top: 48px;
  align-items: center;
}
@media (min-width: 900px) {
  .p-document-verification .dv-global__grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 56px;
  }
}
/* copy-in-split variant (digital-id · ocr): kicker/title/intro ride the
   LEFT column of the grid itself (no __head above), the grid IS the
   section inner — no head-to-grid beat to reserve */
.p-document-verification .dv-inner.dv-global__grid { margin-top: 0; }
.p-document-verification .dv-global__copy .dv-intro { color: rgba(255, 255, 255, 0.7); }
.p-document-verification .dv-global__copy .dv-global__points { margin-top: 32px; }
/* the split's closing stats: white figures on ink (site rule — big
   numbers on dark are ALWAYS solid white, never the blue gradient) */
.p-document-verification .dv-global__big {
  margin-top: 36px;
  display: flex;
  gap: 48px;
  flex-wrap: wrap;
}
.p-document-verification .dv-global__bigstat .stat-on-dark {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: var(--track-tighter);
  font-size: clamp(38px, 5vw, 52px);
  line-height: 1;
}
.p-document-verification .dv-global__bigcap {
  margin-top: 8px;
  font-size: var(--fs-sm);
  line-height: var(--leading-snug);
  color: rgba(255, 255, 255, 0.6);
}
.p-document-verification .dv-global__points {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  list-style: none;
}
.p-document-verification .dv-global__point {
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
  padding: 18px 20px;
}
.p-document-verification .dv-global__point-head {
  display: flex;
  align-items: center;
  gap: 10px;
}
.p-document-verification .dv-global__icon {
  display: inline-flex;
  width: 18px;
  height: 18px;
  color: var(--color-blue-200);
}
.p-document-verification .dv-global__icon .ds-icon { width: 18px; height: 18px; }
.p-document-verification .dv-global__name {
  font-weight: 600;
  font-size: var(--fs-body);
  color: var(--color-white);
}
.p-document-verification .dv-global__line {
  display: block;
  margin-top: 10px;
  max-width: 40ch;
  font-size: var(--fs-sm);
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.6);
}
.p-document-verification .dv-global__map {
  position: relative;
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  overflow: hidden;
  background:
    radial-gradient(120% 90% at 50% 0%, color-mix(in oklab, var(--color-blue-500) 12%, transparent), transparent 62%),
    rgba(255, 255, 255, 0.02);
}
.p-document-verification .dv-global__map img {
  width: 100%;
  height: auto;
  display: block;
  /* the framed card keeps the map's natural blue (the aa-cover look) */
  opacity: 0.9;
}
.p-document-verification .dv-global__pin {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: 12px;
  height: 12px;
  transform: translate(-50%, -50%);
}
.p-document-verification .dv-global__pin::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--color-blue-500);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-blue-500) 30%, transparent);
}
.p-document-verification .dv-global__pin-label {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translate(-50%, 4px);
  padding: 5px 10px;
  border-radius: var(--radius-md);
  background: var(--color-white);
  color: var(--color-black);
  font-size: var(--fs-xs);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.p-document-verification .dv-global__pin:hover,
.p-document-verification .dv-global__pin:focus-visible { z-index: 2; }
.p-document-verification .dv-global__pin:hover .dv-global__pin-label,
.p-document-verification .dv-global__pin:focus-visible .dv-global__pin-label {
  opacity: 1;
  transform: translate(-50%, 0);
}

/* ============================================================
   7 · PROOF (light) — billboard stats + client logo wall
   ============================================================ */
.p-document-verification .dv-proof { background: var(--color-white); border-top: 1px solid var(--color-border-light); }
.p-document-verification .dv-proof__head { display: grid; gap: 16px; margin-bottom: 40px; }
@media (min-width: 900px) { .p-document-verification .dv-proof__head { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 72px; align-items: end; } }
.p-document-verification .dv-proof__label { font-size: var(--fs-sm); color: var(--color-grey-on-white); }
.p-document-verification .dv-proof__split { display: grid; gap: 48px; }
@media (min-width: 900px) { .p-document-verification .dv-proof__split { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: 72px; align-items: start; } }
.p-document-verification .dv-proof__stats { display: flex; flex-direction: column; gap: 32px; }
.p-document-verification .dv-proof__value { display: flex; align-items: baseline; gap: 14px; font-family: var(--font-display); font-weight: 500; letter-spacing: var(--track-tighter); font-size: 64px; line-height: 1; font-variant-numeric: tabular-nums; }
@media (min-width: 768px) { .p-document-verification .dv-proof__value { font-size: 80px; } }
.p-document-verification .dv-proof__rest { font-size: 26px; color: var(--color-grey-400); }
@media (min-width: 768px) { .p-document-verification .dv-proof__rest { font-size: 30px; } }
.p-document-verification .dv-proof__cap { margin-top: 10px; max-width: 32ch; font-size: var(--fs-body); line-height: var(--leading-snug); color: var(--color-grey-on-white); }
.p-document-verification .dv-proof__logos { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--color-border-light); border-radius: 16px; overflow: hidden; background: var(--color-white); }
.p-document-verification .dv-proof__logo { display: flex; align-items: center; justify-content: center; min-height: 96px; padding: 20px; border-top: 1px solid var(--color-border-light); border-left: 1px solid var(--color-border-light); }
.p-document-verification .dv-proof__logo:nth-child(-n + 3) { border-top: none; }
.p-document-verification .dv-proof__logo:nth-child(3n + 1) { border-left: none; }
.p-document-verification .dv-proof__logo img { max-width: 100%; height: 24px; width: auto; }

/* CERTS + FAQ blocks retired 2026-08-03: those bands are now the shared TrustBand + FaqSection components; styles live in components/trust-band.css and components/faq-section.css. */

/* ============================================================
   Reduced motion
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  .p-document-verification .dv-doc-card__scan,
  .p-document-verification .dv-callout,
  .p-document-verification .dv-global__pin::after,
  .p-document-verification .dv-vf__scan,
  .p-document-verification .dv-vf__detect,
  .p-document-verification .dv-vf__shutter,
  .p-document-verification .dv-ocr__read,
  .p-document-verification .dv-nfc__wave { animation: none; }
  .p-document-verification .dv-callout { opacity: 1; transform: none; }
  /* rest the capture mockups in a legible, "captured" state */
  .p-document-verification .dv-vf__detect { inset: 17%; border-style: solid; border-color: var(--color-blue-200); }
  .p-document-verification .dv-vf__shutter { opacity: 1; }
  .p-document-verification .dv-ocr__read { opacity: 0; }
  .p-document-verification .dv-nfc__wave--1 { opacity: 0.5; transform: scale(1.6); }
  .p-document-verification .dv-nfc__wave--2,
  .p-document-verification .dv-nfc__wave--3 { opacity: 0; }
}

/* ============================================================
   proof2 — Variante B (Split editorial), elegida por Nacim 2026-08-01
   Ported pixel-for-pixel from the preview's .pv-b block
   (previews/proof-variants.astro + proof-variants.css). Replaces
   .dv-proof in the page arc (same position); the TrustBand stays after.
   One headline claim carries the weight on the left ("Verified proof"
   check + stat-grad big number + lead + sub); a tight 3×3 logo grid
   answers on the right; three supporting numbers run as a hairline
   row underneath. The big claim is each page's STRONGEST VERIFIED
   claim from its own fact bank — see .context/website-fanout/PROOF-B-SPEC.md.
   The .dv-proof rules above stay untouched until the
   round-3 swap removes the last consumer.
   ============================================================ */
.p-document-verification .dv-proof2 {
  background: var(--color-white);
  border-top: 1px solid var(--color-border-light);
}
.p-document-verification .dv-proof2__split { display: grid; gap: 40px; }
@media (min-width: 900px) {
  .p-document-verification .dv-proof2__split {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: 72px;
    align-items: center;
  }
}
.p-document-verification .dv-proof2__verified {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: var(--fs-sm);
  color: var(--color-blue-500);
}
.p-document-verification .dv-proof2__big { margin-top: 20px; }
.p-document-verification .dv-proof2__num {
  display: block;
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: var(--track-tighter);
  font-size: 64px;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
@media (min-width: 768px) { .p-document-verification .dv-proof2__num { font-size: 84px; } }
.p-document-verification .dv-proof2__lead {
  display: block;
  margin-top: 18px;
  /* two lines max across every page carrying this stat (Sofia,
     2026-08-03) — 38ch lands the longest lead in the fleet on 2 */
  max-width: 38ch;
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.01em;
  font-size: 24px;
  line-height: 1.2;
  color: var(--color-black);
}
@media (min-width: 768px) { .p-document-verification .dv-proof2__lead { font-size: 28px; } }
.p-document-verification .dv-proof2__sub {
  margin-top: 18px;
  max-width: 40ch;
  font-size: var(--fs-sm);
  line-height: var(--leading-snug);
  color: var(--color-grey-on-white);
}
/* the 3×3 client wall — the home logo-wall's SEPARATE ROUNDED TILES
   (Sofia 2026-08-13: the one wall recipe on every technology page;
   promoted from docv-page.css, the fused hairline matrix is retired) */
.p-document-verification .dv-proof2__logos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.p-document-verification .dv-proof2__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 84px;
  padding: 20px 24px;
  border: 1px solid var(--color-border-light);
  border-radius: 16px;
  background: var(--color-white);
}
.p-document-verification .dv-proof2__logo img { max-width: 100%; height: 22px; width: auto; }

.p-document-verification .dv-proof2__strip {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--color-border-light);
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}
@media (min-width: 640px) { .p-document-verification .dv-proof2__strip { grid-template-columns: repeat(3, 1fr); gap: 0; } }
.p-document-verification .dv-proof2__cell { padding-right: 32px; }
@media (min-width: 640px) {
  .p-document-verification .dv-proof2__cell + .dv-proof2__cell { padding-left: 40px; border-left: 1px solid var(--color-border-light); }
}
.p-document-verification .dv-proof2__cell-value {
  display: block;
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: var(--track-tight);
  font-size: 32px;
  line-height: 1;
  color: var(--color-black);
  font-variant-numeric: tabular-nums;
}
.p-document-verification .dv-proof2__cell-rest { font-size: 22px; color: var(--color-grey-400); }
.p-document-verification .dv-proof2__cell-cap {
  display: block;
  margin-top: 10px;
  font-size: var(--fs-sm);
  line-height: var(--leading-snug);
  color: var(--color-grey-on-white);
}

/* ── THE technology-hero viewport frame (Sofia 2026-08-13, perfected on
   deepfake-detection then rolled to ALL technology pages): hero + stat
   band own the first viewport together — the frame locks to 100svh, the
   hero flexes to absorb the slack, the copy group rides high, and the
   stat band closes the screen with a deep white foot. Wrapper:
   <div class="dv-viewport"> around dv-hero + dv-stats. ── */
.p-document-verification .dv-viewport {
  display: flex;
  flex-direction: column;
  min-height: 100svh;
}
.p-document-verification .dv-viewport .dv-hero {
  flex: 1;
  min-height: 0;
}
/* the copy group PINS to the same top seat on every page (Sofia
   2026-08-13: "the exact same hero layout on all technology pages") —
   centering made each page land differently with its copy height.
   The seat is measured from the page top: dark full-bleed heroes get NO
   body banner seat (highlights-ticker.css), so the 54px strip + 88px
   floating nav overlay the hero — the seat clears both plus breathing */
.p-document-verification .dv-viewport .dv-hero__inner {
  padding-top: clamp(160px, 21svh, 204px);
  padding-bottom: 96px;
  justify-content: flex-start;
}
@media (min-width: 1024px) {
  .p-document-verification .dv-viewport .dv-hero__inner { align-content: start; }
}
.p-document-verification .dv-viewport .dv-stats { flex: none; }
/* symmetric band (Sofia 2026-08-13): the foot equals the 48px head */
.p-document-verification .dv-viewport .dv-stats .dv-inner {
  padding-block: 48px;
}
