/* ── DESIGN TOKENS ──────────────────────────────────────────────────────────
   LIGHT is the default theme. The dark palette is applied by setting
   data-theme="dark" on <html> (see theme.js).
   Only the values change between themes — no selector anywhere needs to know
   which theme is active.
   ------------------------------------------------------------------------- */
:root {
  /* surfaces */
  --obsidian: #F7F9FD;
  --midnight: #EDF2FA;
  --deep: #E3EBF7;
  --smoke: #E8EEF8;
  --card: #FFFFFF;
  --surface-hover: #F1F6FD;
  --gradient-stop: #EEF3FB;
  --field-bg: #FFFFFF;

  /* text */
  --white: #0B1220;
  --ice: #14203A;
  --muted: #5A6A85;
  --placeholder: rgba(90, 106, 133, 0.65);
  --on-accent: #FFFFFF;

  /* lines */
  --border: #DCE4F1;
  --border-soft: rgba(160, 178, 204, 0.55);
  --border-softer: rgba(160, 178, 204, 0.45);
  --border-faint: rgba(160, 178, 204, 0.35);
  --border-track: rgba(160, 178, 204, 0.5);
  --outline-border: rgba(11, 18, 32, 0.18);

  /* chrome */
  --nav-bg: rgba(247, 249, 253, 0.85);
  --nav-bg-top: rgba(247, 249, 253, 0);
  --nav-bg-solid: rgba(255, 255, 255, 0.97);

  /* neutral tints layered over a surface */
  --tint-1: rgba(11, 18, 32, 0.05);
  --tint-2: rgba(11, 18, 32, 0.03);
  --tint-3: rgba(11, 18, 32, 0.022);

  /* accents */
  --electric: #0057E0;
  --cyan: #0286AC;
  --gold: #8A6000;
  --mint: #00785A;
  --danger: #CE2B33;
  --attention: #B45309;   /* problem-section accent — caution, not error */

  /* download modal */
  --modal-bg: #FFFFFF;
  --modal-text: #101828;
  --modal-muted: #667085;
  --modal-field-bg: #F4F5F7;
  --modal-field-focus-bg: #FFFFFF;
  --modal-placeholder: #98A2B3;
  --modal-scrim: rgba(5, 8, 16, 0.55);
  --modal-shadow: rgba(16, 24, 40, 0.28);

  --radius: 14px;
  --font: 'Arial', 'Helvetica Neue', sans-serif;

  /* content shell — nav, sections and footer all align to this edge.
     Widened from 1440px up; see the extra-large tier. */
  --shell: 1160px;
  --shell-pad: 40px;
}

[data-theme="dark"] {
  /* surfaces */
  --obsidian: #0A0A0F;
  --midnight: #0D1B2A;
  --deep: #0F2942;
  --smoke: #1C2D40;
  --card: #111827;
  --surface-hover: #0D1520;
  --gradient-stop: #0A111F;
  --field-bg: rgba(10, 10, 15, 0.7);

  /* text */
  --white: #FFFFFF;
  --ice: #F0F4FF;
  --muted: #8899BB;
  --placeholder: rgba(136, 153, 187, 0.5);
  --on-accent: #FFFFFF;

  /* lines */
  --border: #1E3A5F;
  --border-soft: rgba(30, 58, 95, 0.5);
  --border-softer: rgba(30, 58, 95, 0.4);
  --border-faint: rgba(30, 58, 95, 0.3);
  --border-track: rgba(30, 58, 95, 0.6);
  --outline-border: rgba(255, 255, 255, 0.2);

  /* chrome */
  --nav-bg: rgba(10, 10, 15, 0.85);
  --nav-bg-top: rgba(10, 10, 15, 0);
  --nav-bg-solid: rgba(10, 10, 15, 0.97);

  /* neutral tints layered over a surface */
  --tint-1: rgba(255, 255, 255, 0.06);
  --tint-2: rgba(255, 255, 255, 0.03);
  --tint-3: rgba(255, 255, 255, 0.02);

  /* accents */
  --electric: #0066FF;
  --cyan: #00D4FF;
  --gold: #FFB800;
  --mint: #00D68F;
  --danger: #FF3B5C;
  --attention: #FFA733;

  /* download modal */
  --modal-bg: #111827;
  --modal-text: #F0F4FF;
  --modal-muted: #8899BB;
  --modal-field-bg: rgba(10, 10, 15, 0.6);
  --modal-field-focus-bg: rgba(10, 10, 15, 0.85);
  --modal-placeholder: #6B7C99;
  --modal-scrim: rgba(2, 4, 9, 0.75);
  --modal-shadow: rgba(0, 0, 0, 0.55);
}

/* ── ARABIC WEBFONT (self-hosted; only fetched on pages with lang="ar") ──
   El Messiri is a variable font (400–700 in one file), so the whole weight
   range costs two requests: one Arabic subset and one Latin subset for the
   Latin glyphs that appear inside Arabic copy (numerals, brand names, URLs). */

/* arabic */
@font-face {
  font-family: 'El Messiri';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/el-messiri-400-700-arabic.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

/* latin */
@font-face {
  font-family: 'El Messiri';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(fonts/el-messiri-400-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Arabic pages swap the family and get a little more leading — Arabic sets
   taller than Latin at the same size. */
[lang="ar"] {
  --font: 'El Messiri', 'Noto Sans Arabic', 'Segoe UI', Tahoma, sans-serif;
}

[lang="ar"] body {
  line-height: 1.8;
}

/* ── LANGUAGE MENU ──
   A globe + the active language code in the nav; clicking it opens a small
   dropdown listing every locale we ship. Driven by lang-menu.js. */
.lang-menu {
  position: relative;
  flex: none;
}

.lang-menu__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 36px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--card);
  color: var(--muted);
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: color .2s, border-color .2s, transform .2s;
}

.lang-menu__btn:hover {
  color: var(--electric);
  border-color: var(--electric);
  transform: translateY(-1px);
}

.lang-menu__btn:focus-visible {
  outline: 2px solid var(--electric);
  outline-offset: 2px;
}

.lang-menu__globe {
  width: 16px;
  height: 16px;
  display: block;
  flex: none;
}

/* the caret flips to point up while the menu is open */
.lang-menu__caret {
  width: 10px;
  height: 10px;
  display: block;
  flex: none;
  opacity: .75;
  transition: transform .2s;
}

.lang-menu__btn[aria-expanded="true"] .lang-menu__caret {
  transform: rotate(180deg);
}

.lang-menu__list {
  position: absolute;
  top: calc(100% + 8px);
  inset-inline-end: 0;
  z-index: 120;
  min-width: 168px;
  margin: 0;
  padding: 6px;
  list-style: none;
  background: var(--nav-bg-solid, var(--card));
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .22);
}

.lang-menu__list[hidden] {
  display: none;
}

.lang-menu__list li {
  margin: 0;
}

/* wins over the generic .nav-links a rules — these are menu rows, not links
   in the bar, so they take no underline and no tracking */
.nav-links .lang-menu__list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 12px;
  border-radius: 8px;
  color: var(--muted);
  font-size: 13px;
  letter-spacing: normal;
  text-decoration: none;
  transition: background .15s, color .15s;
}

.nav-links .lang-menu__list a:hover,
.nav-links .lang-menu__list a:focus-visible {
  background: color-mix(in srgb, var(--electric) 12%, transparent);
  color: var(--electric);
  outline: none;
}

/* the language you are already reading */
.nav-links .lang-menu__list a[aria-current="true"] {
  color: var(--white);
  font-weight: 700;
}

.lang-menu__abbr {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  opacity: .7;
}

/* each row is set in its own script so the native name reads correctly */
.lang-menu__list [lang="ar"] .lang-menu__name {
  font-family: 'El Messiri', 'Noto Sans Arabic', 'Segoe UI', Tahoma, sans-serif;
  font-size: 14px;
}

/* ── RESET (shared by every page) ── */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

/* ==========================================================================
   HOME  (index.html)
   ========================================================================== */

html.page-home {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

.page-home body {
  background: var(--obsidian);
  color: var(--white);
  font-family: var(--font);
  line-height: 1.6;
  overflow-x: hidden;
  cursor: none;
}

/* ── CUSTOM CURSOR ── */
.page-home #cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 12px;
  height: 12px;
  background: var(--electric);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  transition: width .2s, height .2s, background .2s, opacity .2s;
  mix-blend-mode: normal;
}

.page-home #cursor-ring {
  position: fixed;
  top: 0;
  left: 0;
  width: 40px;
  height: 40px;
  border: 1.5px solid rgba(0, 102, 255, 0.5);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%, -50%);
  transition: transform .12s ease-out, width .25s, height .25s, border-color .25s;
}

.page-home body:hover #cursor {
  opacity: 1;
}

.page-home a:hover~#cursor,
.page-home button:hover~#cursor {
  width: 20px;
  height: 20px;
  background: var(--cyan);
}

/* ── MOUSE PARALLAX CANVAS ── */
.page-home #bg-canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  opacity: 0.4;
}

/* ── BACK TO TOP ── */

/* ── NAV (shared by every page: home and legal) ── */

/* Keeps the nav logo flush with the container's content edge at every width.
   max() holds it at the padding value while the viewport is narrower than the
   shell, then tracks the centred shell once it is wider. */
.page-home nav,
.page-legal nav,
.page-home nav.scrolled,
.page-legal nav.scrolled {
  padding-inline: max(var(--shell-pad), calc((100% - var(--shell)) / 2 + var(--shell-pad)));
}

.page-home nav,
.page-legal nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-block: 20px;
  background: var(--nav-bg-top);
  backdrop-filter: blur(0px);
  transition: background .4s, backdrop-filter .4s, padding .4s;
}

.page-home nav.scrolled,
.page-legal nav.scrolled {
  background: var(--nav-bg);
  backdrop-filter: blur(20px);
  padding-block: 14px;
  border-bottom: 1px solid var(--border-soft);
}

.page-home .nav-logo svg {
  width: 36px;
  height: 36px;
}

.page-home .nav-logo-text {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--white);
}

.page-home .nav-logo-text span {
  color: var(--electric);
}

/* ── SECTIONS BASE ── */
.page-home section {
  position: relative;
  z-index: 1;
}

.page-home .container {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 var(--shell-pad);
}

.page-home .eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--electric);
  margin-bottom: 18px;
}

.page-home .section-title {
  font-size: clamp(32px, 5vw, 52px);
  font-weight: 700;
  line-height: 1.1;
  color: var(--white);
  margin-bottom: 20px;
}

.page-home .section-sub {
  font-size: 17px;
  color: var(--muted);
  line-height: 1.7;
  max-width: 640px;
}

/* ── HERO ── */
.page-home #hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 120px 0 80px;
  overflow: hidden;
}

.page-home .hero-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.page-home .hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(0, 102, 255, 0.1);
  border: 1px solid rgba(0, 102, 255, 0.3);
  padding: 6px 16px;
  border-radius: 40px;
  margin-bottom: 28px;
}

.page-home .hero-tag-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--cyan);
  animation: pulse 2s infinite;
}

.page-home .hero-tag span {
  font-size: 12px;
  color: var(--cyan);
  letter-spacing: 0.08em;
  font-weight: 600;
}

@keyframes pulse {

  0%,
  100% {
    opacity: 1;
    transform: scale(1)
  }

  50% {
    opacity: .5;
    transform: scale(0.8)
  }
}

.page-home .hero-headline {
  font-size: clamp(34px, 4.4vw, 54px);
  font-weight: 700;
  line-height: 1.22;
  letter-spacing: -0.02em;
  color: var(--white);
  margin-bottom: 28px;
}

.page-home .hero-headline .accent {
  color: var(--electric);
}

.page-home .hero-headline .underline-word {
  position: relative;
  display: inline-block;
}

.page-home .hero-headline .underline-word::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 100%;
  height: 3px;
  background: var(--electric);
  border-radius: 2px;
}

.page-home .hero-sub {
  font-size: 18px;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 40px;
  max-width: 520px;
}

.page-home .hero-btns {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.page-home .btn-primary {
  background: var(--electric);
  color: var(--on-accent);
  padding: 15px 32px;
  border-radius: 50px;
  font-weight: 700;
  font-size: 15px;
  text-decoration: none;
  transition: background .2s, transform .25s, box-shadow .25s;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.page-home .btn-primary:hover {
  background: #0055DD;
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(0, 102, 255, 0.35);
}

.page-home .btn-outline {
  background: transparent;
  color: var(--white);
  padding: 15px 32px;
  border-radius: 50px;
  /* these two only matter when the class is on a <button>, which does not
     inherit the page font — see the "Request a document" trigger */
  font-family: inherit;
  cursor: pointer;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  border: 1.5px solid var(--outline-border);
  transition: border-color .2s, background .2s, transform .2s;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.page-home .btn-outline:hover {
  border-color: var(--electric);
  background: rgba(0, 102, 255, 0.08);
  transform: translateY(-2px);
}

.page-home .hero-stats {
  display: flex;
  gap: 40px;
  margin-top: 50px;
}

.page-home .hero-stat-val {
  font-size: 32px;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: -0.02em;
}

.page-home .hero-stat-lbl {
  font-size: 13px;
  color: var(--muted);
  margin-top: 2px;
}

.page-home .hero-right {
  position: relative;
}

.page-home .hero-visual {
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  max-width: 520px;
  margin: 0 auto;
}

.page-home .hero-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
}

.page-home .orb1 {
  width: 320px;
  height: 320px;
  background: rgba(0, 102, 255, 0.25);
  top: 10%;
  inset-inline-start: 5%;
}

.page-home .orb2 {
  width: 200px;
  height: 200px;
  background: rgba(0, 212, 255, 0.15);
  bottom: 15%;
  inset-inline-end: 5%;
}

.page-home .hero-card {
  position: relative;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 28px;
  backdrop-filter: blur(10px);
  z-index: 2;
}

.page-home .hero-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.page-home .hc-icon {
  width: 42px;
  height: 42px;
  background: rgba(0, 102, 255, 0.15);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-home .hc-title {
  font-size: 14px;
  font-weight: 600;
}

.page-home .hc-sub {
  font-size: 12px;
  color: var(--muted);
}

.page-home .report-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border-softer);
}

.page-home .report-item:last-child {
  border-bottom: none;
}

.page-home .ri-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.page-home .ri-label {
  font-size: 13px;
  color: var(--muted);
  flex: 1;
}

.page-home .ri-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 20px;
  letter-spacing: 0.05em;
}

.page-home .badge-gold {
  background: rgba(255, 184, 0, 0.15);
  color: var(--gold);
}

.page-home .badge-mint {
  background: rgba(0, 214, 143, 0.15);
  color: var(--mint);
}

.page-home .badge-electric {
  background: rgba(0, 102, 255, 0.15);
  color: var(--electric);
}

.page-home .badge-danger {
  background: rgba(255, 59, 92, 0.15);
  color: var(--danger);
}

.page-home .triage-bar {
  margin-top: 20px;
}

.page-home .triage-label {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 8px;
}

.page-home .triage-track {
  height: 6px;
  background: var(--border-track);
  border-radius: 3px;
  overflow: hidden;
}

.page-home .triage-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--electric), var(--cyan));
  border-radius: 3px;
  width: 0;
  transition: width 1.5s ease-out;
}

.page-home .floating-card {
  position: absolute;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px 18px;
  z-index: 3;
  animation: float 4s ease-in-out infinite;
}

.page-home .fc-top {
  top: -20px;
  inset-inline-end: -20px;
  animation-delay: 0s;
}

.page-home .fc-bottom {
  bottom: -20px;
  inset-inline-start: -20px;
  animation-delay: 2s;
}

@keyframes float {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-10px)
  }
}

.page-home .fc-num {
  font-size: 22px;
  font-weight: 700;
  color: var(--cyan);
}

.page-home .fc-lbl {
  font-size: 11px;
  color: var(--muted);
}

/* ── PROBLEM ── */
.page-home #problem {
  padding: 120px 0;
  background: linear-gradient(180deg, var(--obsidian) 0%, var(--gradient-stop) 100%);
}

.page-home .problem-top {
  text-align: center;
  margin-bottom: 72px;
}

.page-home .problem-top .section-sub {
  margin: 0 auto;
}

.page-home .problem-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.page-home .problem-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px;
  position: relative;
  overflow: hidden;
  transition: transform .3s, border-color .3s;
  cursor: default;
}

.page-home .problem-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--attention);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s ease;
}

.page-home .problem-card:hover::before {
  transform: scaleX(1);
}

.page-home .problem-card:hover {
  transform: translateY(-6px);
  border-color: rgba(255, 59, 92, 0.3);
}

.page-home .pc-icon {
  color: var(--attention);
  margin-bottom: 20px;
}

.page-home .pc-title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 10px;
}

.page-home .pc-body {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
}

.page-home .problem-stat {
  text-align: center;
  padding: 60px 0 0;
  display: flex;
  gap: 60px;
  justify-content: center;
  flex-wrap: wrap;
}

.page-home .pstat-val {
  font-size: 56px;
  font-weight: 700;
  color: var(--attention);
  letter-spacing: -0.03em;
}

.page-home .pstat-lbl {
  font-size: 14px;
  color: var(--muted);
  margin-top: 6px;
}

/* ── SOLUTION ── */
.page-home #solution {
  padding: 120px 0;
}

.page-home .solution-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.page-home .feature-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 40px;
}

.page-home .feature-item {
  display: flex;
  gap: 20px;
  padding: 24px 0;
  border-bottom: 1px solid var(--border-softer);
  cursor: default;
  transition: padding-left .3s;
}

.page-home .feature-item:hover {
  padding-inline-start: 8px;
}

.page-home .feature-item:last-child {
  border-bottom: none;
}

.page-home .fi-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 102, 255, 0.1);
  transition: background .3s;
}

.page-home .feature-item:hover .fi-icon {
  background: rgba(0, 102, 255, 0.2);
}

.page-home .fi-title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 6px;
}

.page-home .fi-body {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
}

.page-home .solution-visual {
  position: relative;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 36px;
  overflow: hidden;
}

.page-home .sv-glow {
  position: absolute;
  width: 300px;
  height: 300px;
  background: rgba(0, 102, 255, 0.12);
  filter: blur(80px);
  top: -50px;
  inset-inline-end: -50px;
  pointer-events: none;
}

.page-home .flow-step {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid var(--border-faint);
}

.page-home .flow-step:last-child {
  border-bottom: none;
}

.page-home .fs-num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
}

.page-home .fs-label {
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 4px;
}

.page-home .fs-sub {
  font-size: 12px;
  color: var(--muted);
}

.page-home .sv-timer {
  margin-top: 28px;
  background: rgba(0, 102, 255, 0.08);
  border: 1px solid rgba(0, 102, 255, 0.25);
  border-radius: 12px;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.page-home .syt-label {
  font-size: 12px;
  color: var(--muted);
}

.page-home .syt-val {
  font-size: 28px;
  font-weight: 700;
  color: var(--cyan);
}

/* ── METRICS ── */
.page-home #metrics {
  padding: 100px 0;
  background: var(--midnight);
}

.page-home .metrics-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
}

.page-home .metric-card {
  padding: 50px 40px;
  text-align: center;
  background: var(--obsidian);
  position: relative;
  overflow: hidden;
  transition: background .3s;
}

.page-home .metric-card:hover {
  background: var(--surface-hover);
}

.page-home .mc-val {
  font-size: clamp(48px, 6vw, 72px);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: 12px;
}

.page-home .mc-lbl {
  font-size: 15px;
  font-weight: 600;
  margin-bottom: 8px;
}

.page-home .mc-sub {
  font-size: 13px;
  color: var(--muted);
}

.page-home .metrics-comparison {
  margin-top: 60px;
}

.page-home .comparison-table {
  width: 100%;
  border-collapse: collapse;
}

.page-home .comparison-table th,
.page-home .comparison-table td {
  padding: 16px 24px;
  text-align: center;
  border-bottom: 1px solid var(--border-faint);
}

.page-home .comparison-table th {
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
}

.page-home .comparison-table td {
  font-size: 14px;
  color: var(--muted);
}

.page-home .comparison-table td:first-child {
  text-align: start;
  font-weight: 600;
  color: var(--white);
}

.page-home .comparison-table td.winner {
  color: var(--mint);
  font-weight: 700;
}

.page-home .comparison-table .header-xposer {
  color: var(--electric) !important;
  font-size: 12px !important;
}

.page-home .check {
  color: var(--mint);
  font-size: 16px;
}

.page-home .cross {
  color: var(--danger);
  font-size: 16px;
}

/* ── HOW IT WORKS ── */
.page-home #how {
  padding: 120px 0;
}

.page-home .how-top {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 72px;
}

.page-home .how-top .section-sub {
  margin: 0 auto;
}

.page-home .steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  position: relative;
}

.page-home .steps::before {
  content: '';
  position: absolute;
  top: 52px;
  left: calc(16.67% + 26px);
  right: calc(16.67% + 26px);
  height: 1px;
  background: linear-gradient(90deg, var(--electric), var(--cyan), var(--electric));
}

.page-home .step-card {
  text-align: center;
  padding: 0 32px;
  position: relative;
}

.page-home .step-num {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  margin: 0 auto 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  border: 2px solid var(--electric);
  background: var(--obsidian);
  color: var(--electric);
  position: relative;
  z-index: 1;
  transition: background .3s, color .3s;
}

.page-home .step-card:hover .step-num {
  background: var(--electric);
  color: var(--on-accent);
}

.page-home .step-title {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 12px;
}

.page-home .step-body {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.6;
}

.page-home .step-icon {
  margin-bottom: 16px;
}

/* ── TECH ── */
.page-home #tech {
  padding: 100px 0;
  background: linear-gradient(180deg, var(--obsidian) 0%, var(--midnight) 100%);
}

.page-home .tech-inner {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 80px;
  align-items: center;
}

.page-home .tech-stack {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 36px;
}

.page-home .tech-row {
  display: flex;
  align-items: center;
  gap: 0;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--border);
  transition: border-color .3s;
}

.page-home .tech-row:hover {
  border-color: rgba(0, 102, 255, 0.5);
}

.page-home .tech-layer {
  width: 160px;
  flex-shrink: 0;
  padding: 14px 18px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.page-home .tech-items {
  flex: 1;
  padding: 14px 18px;
  font-size: 12px;
  color: var(--muted);
  background: var(--card);
}

.page-home .tl-frontend {
  background: rgba(0, 212, 255, 0.12);
  color: var(--cyan);
}

.page-home .tl-backend {
  background: rgba(0, 102, 255, 0.12);
  color: var(--electric);
}

.page-home .tl-ai {
  background: rgba(255, 184, 0, 0.12);
  color: var(--gold);
}

.page-home .tl-voice {
  background: rgba(0, 214, 143, 0.12);
  color: var(--mint);
}

.page-home .tl-mcp {
  background: var(--tint-1);
  color: var(--muted);
}

.page-home .security-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.page-home .sec-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 16px;
  background: rgba(0, 214, 143, 0.08);
  border: 1px solid rgba(0, 214, 143, 0.25);
  border-radius: 40px;
  font-size: 12px;
  color: var(--mint);
  font-weight: 600;
}

.page-home .tech-right {
  position: relative;
}

.page-home .tech-visual-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 32px;
  position: relative;
  overflow: hidden;
}

.page-home .tvc-glow {
  position: absolute;
  width: 250px;
  height: 250px;
  background: rgba(0, 102, 255, 0.1);
  filter: blur(70px);
  bottom: -60px;
  inset-inline-start: -60px;
  pointer-events: none;
}

.page-home .ai-process {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.page-home .aip-line {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--tint-2);
}

.page-home .aip-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.page-home .aip-text {
  font-size: 13px;
  color: var(--muted);
}

.page-home .aip-time {
  font-size: 11px;
  color: var(--muted);
  margin-inline-start: auto;
  font-family: monospace;
}

.page-home .aip-line.active {
  background: rgba(0, 102, 255, 0.1);
}

.page-home .aip-line.active .aip-text {
  color: var(--white);
}

/* ── COMPLIANCE ── */
.page-home #compliance {
  padding: 100px 0;
}

.page-home .compliance-inner {
  text-align: center;
}

.page-home .reg-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 48px;
}

.page-home .reg-badge {
  padding: 12px 24px;
  border-radius: 40px;
  background: var(--card);
  border: 1px solid var(--border);
  font-size: 13px;
  font-weight: 600;
  color: var(--white);
  transition: border-color .3s, transform .3s, background .3s;
}

.page-home .reg-badge:hover {
  border-color: var(--electric);
  background: rgba(0, 102, 255, 0.08);
  transform: translateY(-3px);
}

.page-home .target-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 72px;
}

.page-home .target-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 24px;
  text-align: start;
  transition: border-color .3s, transform .3s;
}

.page-home .target-card:hover {
  border-color: rgba(0, 102, 255, 0.4);
  transform: translateY(-4px);
}

.page-home .tc-icon {
  margin-bottom: 16px;
}

.page-home .tc-title {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 8px;
}

.page-home .tc-body {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
}

/* ── RESOURCES ── */
.page-home #resources {
  padding: 120px 0;
  background: var(--obsidian);
}

.page-home .bento {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: minmax(172px, auto);
  gap: 16px;
  margin-top: 56px;
}

.page-home .bento-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 26px;
  overflow: hidden;
  transition: border-color .3s, transform .3s;
}

.page-home .bento-card:hover {
  border-color: rgba(0, 102, 255, 0.4);
  transform: translateY(-4px);
}

.page-home .bento-card.feature {
  grid-column: span 2;
  grid-row: span 2;
  padding: 40px 36px;
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(0, 102, 255, 0.18), rgba(0, 102, 255, 0) 60%),
    var(--card);
}

.page-home .bento-card.wide {
  grid-column: span 2;
}

.page-home .bento-mark {
  position: absolute;
  inset-inline-end: -14px;
  bottom: -18px;
  width: 168px;
  height: 168px;
  color: var(--electric);
  opacity: 0.09;
  pointer-events: none;
}

.page-home .bc-title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
  margin-bottom: 8px;
}

.page-home .feature .bc-title {
  font-size: 28px;
  letter-spacing: -0.01em;
  margin-bottom: 14px;
}

.page-home .bc-body {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.6;
}

.page-home .feature .bc-body {
  font-size: 15px;
  max-width: 36ch;
}

/* the publication line under a resource card's blurb — page count, edition,
   date. Set in the mono-ish tracked style the eyebrows use so it reads as
   metadata rather than as more prose. */
.page-home .bc-meta {
  margin-top: 10px;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--electric);
}

.page-home .feature .bc-meta {
  font-size: 11.5px;
}

.page-home .res-link {
  display: inline-block;
  margin-top: auto;
  padding-top: 20px;
  font-size: 12px;
  font-weight: 600;
  color: var(--cyan);
  text-decoration: none;
  transition: color .2s;
}

.page-home .res-link:hover {
  color: var(--electric);
}

@media (max-width: 900px) {
  .page-home .bento {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: minmax(170px, auto);
  }

  .page-home .bento-card.feature {
    grid-row: span 1;
    padding: 32px 28px;
  }

  .page-home .feature .bc-title {
    font-size: 22px;
  }
}

@media (max-width: 560px) {
  .page-home .bento {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
  }

  .page-home .bento-card.feature,
  .page-home .bento-card.wide {
    grid-column: span 1;
  }
}

/* ── ROI ── */
.page-home #roi {
  padding: 120px 0;
  background: var(--midnight);
}

.page-home .roi-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.page-home .roi-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.page-home .roi-card {
  background: var(--obsidian);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px 24px;
  text-align: center;
  transition: transform .3s, border-color .3s;
}

.page-home .roi-card:hover {
  transform: translateY(-5px);
  border-color: rgba(0, 102, 255, 0.4);
}

.page-home .rc-val {
  font-size: 42px;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}

.page-home .rc-lbl {
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 8px;
}

.page-home .rc-sub {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
}

.page-home .risk-panel {
  margin-top: 24px;
  padding: 24px;
  border-radius: var(--radius);
  background: rgba(255, 59, 92, 0.08);
  border: 1px solid rgba(255, 59, 92, 0.25);
  grid-column: 1 / -1;
}

.page-home .rp-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--danger);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.page-home .rp-body {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
}

/* ── IMPLEMENT ── */
.page-home #implement {
  padding: 120px 0;
}

.page-home .impl-top {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 72px;
}

.page-home .impl-top .section-sub {
  margin: 0 auto;
}

.page-home .impl-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
}

.page-home .impl-card {
  padding: 36px 28px;
  border-inline-end: 1px solid var(--border);
  position: relative;
  transition: background .3s;
}

.page-home .impl-card:last-child {
  border-inline-end: none;
}

.page-home .impl-card:hover {
  background: var(--tint-3);
}

.page-home .impl-phase {
  display: inline-block;
  padding: 5px 14px;
  border-radius: 40px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 20px;
}

.page-home .impl-num {
  font-size: 48px;
  font-weight: 700;
  opacity: 0.12;
  position: absolute;
  top: 20px;
  inset-inline-end: 20px;
  letter-spacing: -0.03em;
}

.page-home .impl-title {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 12px;
}

.page-home .impl-body {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
}

.page-home .impl-promise {
  margin-top: 48px;
  padding: 24px 36px;
  border-radius: 14px;
  background: rgba(0, 102, 255, 0.08);
  border: 1px solid rgba(0, 102, 255, 0.2);
  text-align: center;
  font-size: 14px;
  color: var(--cyan);
  font-weight: 600;
  letter-spacing: 0.02em;
}

/* ── CTA & FORM ── */
.page-home #cta {
  padding: 140px 0;
  position: relative;
  overflow: hidden;
}

.page-home .cta-glow1 {
  position: absolute;
  width: 500px;
  height: 500px;
  background: rgba(0, 102, 255, 0.12);
  filter: blur(120px);
  top: -100px;
  inset-inline-start: -100px;
  pointer-events: none;
}

.page-home .cta-glow2 {
  position: absolute;
  width: 400px;
  height: 400px;
  background: rgba(0, 212, 255, 0.07);
  filter: blur(100px);
  bottom: -80px;
  inset-inline-end: -80px;
  pointer-events: none;
}

.page-home .cta-inner {
  text-align: center;
  position: relative;
  z-index: 1;
}

.page-home .cta-headline {
  font-size: clamp(40px, 6vw, 68px);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin-bottom: 24px;
}

.page-home .cta-sub {
  font-size: 18px;
  color: var(--muted);
  line-height: 1.7;
  max-width: 560px;
  margin: 0 auto 32px;
}

.page-home .cta-form-wrapper {
  max-width: 620px;
  margin: 0 auto;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 36px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4);
  text-align: start;
  position: relative;
  z-index: 2;
}

.page-home .cta-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.page-home .form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

/* grid/flex items refuse to shrink below their content's intrinsic width by
   default; inputs carry a wide intrinsic size, which blew the columns past
   the container (most visible in Arabic, whose glyphs are wider). */
.page-home .form-grid > * {
  min-width: 0;
}

.page-home .form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.page-home .form-group label {
  font-size: 13px;
  font-weight: 600;
  color: var(--white);
  letter-spacing: 0.02em;
}

.page-home .form-group input,
.page-home .form-group textarea {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  background: var(--field-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
  color: var(--white);
  font-family: var(--font);
  font-size: 14px;
  outline: none;
  transition: border-color .25s, box-shadow .25s;
}

.page-home .form-group input::placeholder,
.page-home .form-group textarea::placeholder {
  color: var(--placeholder);
}

.page-home .form-group input:focus,
.page-home .form-group textarea:focus {
  border-color: var(--electric);
  box-shadow: 0 0 0 3px rgba(0, 102, 255, 0.25);
}

.page-home .form-submit-btn {
  width: 100%;
  justify-content: center;
  padding: 16px;
  font-size: 16px;
  cursor: pointer;
  border: none;
  margin-top: 6px;
}

.page-home .form-success-msg {
  padding: 14px 18px;
  background: rgba(0, 214, 143, 0.12);
  border: 1px solid rgba(0, 214, 143, 0.3);
  border-radius: 10px;
  color: var(--mint);
  font-size: 14px;
  font-weight: 600;
  text-align: center;
  line-height: 1.5;
  animation: formFadeIn .3s ease;
}

.page-home .form-legal {
  margin-top: 12px;
  text-align: center;
  font-size: 13px;
  color: var(--muted);
}

.page-home .form-legal-link {
  color: var(--cyan);
  text-decoration: none;
  font-weight: 600;
  transition: color .2s ease;
}

.page-home .form-legal-link:hover {
  color: var(--white);
}

@keyframes formFadeIn {
  from {
    opacity: 0;
    transform: translateY(6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.page-home .cta-contacts {
  margin-top: 48px;
  display: flex;
  gap: 32px;
  justify-content: center;
  flex-wrap: wrap;
}

.page-home .cta-contact {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--muted);
  text-decoration: none;
  transition: color .2s;
}

.page-home .cta-contact:hover {
  color: var(--white);
}

/* ── FOOTER (shared by every page: home and legal) ──
   Multi-column: a brand block plus three link columns, then a thin bottom
   bar. The inner .container is the same shell the page sections use, so the
   footer lines up with the content above it and inherits the XL scaling. */
.page-home footer,
.page-legal footer {
  padding: clamp(56px, 4vw, 84px) 0 0;
  border-top: 1px solid var(--border-softer);
}

.page-home .footer-grid,
.page-legal .footer-grid {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 1fr;
  gap: clamp(32px, 3vw, 72px);
  align-items: start;
}

/* ── brand column ── */
.page-home .footer-brand-text,
.page-legal .footer-brand-text {
  margin-top: 18px;
  max-width: 38ch;
  font-size: 13px;
  line-height: 1.75;
  color: var(--muted);
}

.page-home .footer-badges,
.page-legal .footer-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}

.page-home .footer-badge,
.page-legal .footer-badge {
  padding: 6px 14px;
  border: 1px solid var(--border);
  border-radius: 40px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  background: var(--tint-3);
}

/* ── link columns ── */
.page-home .footer-col-title,
.page-legal .footer-col-title {
  margin-bottom: 18px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--white);
}

.page-home .footer-links,
.page-legal .footer-links {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.page-home .footer-links a,
.page-legal .footer-links a {
  width: fit-content;
  font-size: 13px;
  color: var(--muted);
  text-decoration: none;
  transition: color .2s, transform .2s;
}

.page-home .footer-links a:hover,
.page-legal .footer-links a:hover {
  color: var(--electric);
  transform: translateX(2px);
}

/* nudge the other way in RTL so "forward" still means forward */
[dir="rtl"] .page-home .footer-links a:hover,
[dir="rtl"] .page-legal .footer-links a:hover {
  transform: translateX(-2px);
}

/* ── bottom bar ── */
.page-home .footer-bottom,
.page-legal .footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: clamp(40px, 3vw, 64px);
  padding: 22px 0 26px;
  border-top: 1px solid var(--border-faint);
}

.page-home .footer-bottom p,
.page-legal .footer-bottom p {
  font-size: 12px;
  color: var(--muted);
}

.page-home .footer-bottom a,
.page-legal .footer-bottom a {
  color: var(--muted);
  text-decoration: none;
  transition: color .2s;
}

.page-home .footer-bottom a:hover,
.page-legal .footer-bottom a:hover {
  color: var(--electric);
}

@media (max-width: 900px) {
  .page-home .footer-grid,
  .page-legal .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 40px 32px;
  }

  /* the brand block spans the full width above the link columns */
  .page-home .footer-brand,
  .page-legal .footer-brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  .page-home .footer-grid,
  .page-legal .footer-grid {
    grid-template-columns: 1fr;
    gap: 34px;
  }

  .page-home .footer-bottom,
  .page-legal .footer-bottom {
    justify-content: flex-start;
  }
}

.page-home .footer-logo,
.page-legal .footer-logo {
  display: flex;
  align-items: center;
  gap: 8px;
}

.page-home .footer-logo span,
.page-legal .footer-logo span {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.page-home .footer-logo .dot,
.page-legal .footer-logo .dot {
  color: var(--electric);
}

.page-home footer p,
.page-legal footer p {
  font-size: 12px;
  color: var(--muted);
}

/* wins over the rule above, which is one specificity point higher than a
   bare class selector */
.page-home footer p.footer-brand-text,
.page-legal footer p.footer-brand-text {
  font-size: 13px;
}

.page-home footer a,
.page-legal footer a {
  color: var(--muted);
  text-decoration: none;
}

.page-home footer a:hover,
.page-legal footer a:hover {
  color: var(--white);
}

/* ── SCROLL REVEAL ── */
.page-home .reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity .8s ease, transform .8s ease;
}

.page-home .reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.page-home .reveal-left {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity .8s ease, transform .8s ease;
}

.page-home .reveal-left.visible {
  opacity: 1;
  transform: translateX(0);
}

.page-home .reveal-right {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity .8s ease, transform .8s ease;
}

.page-home .reveal-right.visible {
  opacity: 1;
  transform: translateX(0);
}

.page-home .delay-1 {
  transition-delay: .1s;
}

.page-home .delay-2 {
  transition-delay: .2s;
}

.page-home .delay-3 {
  transition-delay: .3s;
}

.page-home .delay-4 {
  transition-delay: .4s;
}

/* ── MOBILE & TABLET RESPONSIVENESS ── */
@media (max-width: 900px) {
  .page-home nav,
  .page-legal nav {
    padding-block: 16px;
  }

  .page-home nav.scrolled,
  .page-legal nav.scrolled {
    padding-block: 12px;
  }

  :root {
    --shell-pad: 24px;
  }

  .page-home .hero-inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .page-home .hero-right {
    display: none;
  }

  .page-home .problem-grid {
    grid-template-columns: 1fr 1fr;
  }

  .page-home .solution-inner {
    grid-template-columns: 1fr;
  }

  .page-home .metrics-grid {
    grid-template-columns: 1fr;
  }

  .page-home .steps {
    grid-template-columns: 1fr;
  }

  .page-home .steps::before {
    display: none;
  }

  .page-home .tech-inner {
    grid-template-columns: 1fr;
  }

  .page-home .target-grid {
    grid-template-columns: 1fr 1fr;
  }

  .page-home .roi-inner {
    grid-template-columns: 1fr;
  }

  .page-home .impl-steps {
    grid-template-columns: 1fr 1fr;
  }

  .page-home .hero-stats {
    gap: 28px;
  }

  /* Form & CTA Medium Devices (Tablets) */
  .page-home #cta {
    padding: 90px 0;
  }

  .page-home .cta-form-wrapper {
    max-width: 580px;
    padding: 30px 24px;
  }

  .page-home .form-grid {
    gap: 16px;
  }

  .page-home .cta-contacts {
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .page-home .form-grid {
    grid-template-columns: 1fr;
  }

  .page-home .cta-form-wrapper {
    padding: 24px 20px;
  }
}

@media (max-width: 600px) {
  .page-home .problem-grid {
    grid-template-columns: 1fr;
  }

  .page-home .target-grid {
    grid-template-columns: 1fr;
  }

  .page-home .impl-steps {
    grid-template-columns: 1fr;
  }

  .page-home .impl-card {
    border-inline-end: none;
    border-bottom: 1px solid var(--border);
  }

  .page-home .roi-cards {
    grid-template-columns: 1fr;
  }

  .page-home body {
    cursor: auto;
  }

  .page-home #cursor,
  .page-home #cursor-ring {
    display: none;
  }

  /* Form & CTA Mobile Devices */
  .page-home #cta {
    padding: 60px 0;
  }

  .page-home .cta-form-wrapper {
    padding: 20px 16px;
    border-radius: 14px;
  }

  .page-home .cta-form {
    gap: 16px;
  }

  .page-home .form-group input,
  .page-home .form-group textarea {
    padding: 12px 14px;
    font-size: 15px;
  }

  .page-home .form-submit-btn {
    padding: 14px;
    font-size: 15px;
  }

  .page-home .cta-contacts {
    flex-direction: column;
    gap: 14px;
    align-items: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-home * {
    animation: none !important;
    transition: none !important;
  }

  .page-home .reveal,
  .page-home .reveal-left,
  .page-home .reveal-right {
    opacity: 1;
    transform: none;
  }
}

/* ==========================================================================
   TRUST & RESOURCES  (trust.html, resources.html)
   ========================================================================== */

/* nav styling is shared — see the NAV block above.
   The nav is fixed, so the hero carries the top offset (matches the home
   hero and the legal hero). */
















/* footer styling is shared — see the FOOTER block above. */

@media (max-width: 860px) {
}

/* ==========================================================================
   LEGAL  (terms-conditions.html)
   ========================================================================== */

html.page-legal {
  scroll-behavior: smooth;
}

.page-legal body {
  background: var(--obsidian);
  color: var(--white);
  font-family: var(--font);
  line-height: 1.6;
}

.page-legal a {
  color: var(--cyan);
}

/* ── NAV ── styling is shared — see the NAV block near the top. ── */

.page-legal .nav-logo svg {
  width: 32px;
  height: 32px;
}

.page-legal .nav-logo-text {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--white);
}

.page-legal .nav-logo-text span {
  color: var(--electric);
}

.page-legal .nav-back {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--muted);
  font-size: 14px;
  text-decoration: none;
  transition: color .2s;
}

.page-legal .nav-back:hover {
  color: var(--white);
}

/* ── LAYOUT ── */
.page-legal .legal-hero {
  padding: 150px 0 56px;
  border-bottom: 1px solid var(--border-softer);
  background: linear-gradient(180deg, rgba(0, 102, 255, 0.06) 0%, transparent 100%);
}

.page-legal .container {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 var(--shell-pad);
}

.page-legal .eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--electric);
  margin-bottom: 16px;
}

.page-legal .legal-title {
  font-size: clamp(32px, 5vw, 48px);
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 16px;
}

.page-legal .legal-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  margin-top: 20px;
  font-size: 13px;
  color: var(--muted);
}

.page-legal .legal-meta strong {
  color: var(--white);
}

.page-legal .legal-body {
  padding: 64px 0 120px;
}

.page-legal .legal-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 64px;
  align-items: start;
}

/* ── TOC SIDEBAR ── */
.page-legal .toc {
  position: sticky;
  z-index: 10;
  top: 110px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 24px;
}

.page-legal .toc-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 16px;
}

.page-legal .toc ol {
  list-style: none;
  counter-reset: toc;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.page-legal .toc li {
  counter-increment: toc;
}

.page-legal .toc a {
  display: flex;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 13px;
  color: var(--muted);
  text-decoration: none;
  transition: background .2s, color .2s;
}

.page-legal .toc a::before {
  content: counter(toc, decimal-leading-zero);
  font-size: 11px;
  font-weight: 700;
  color: var(--electric);
  flex-shrink: 0;
  font-family: monospace;
}

.page-legal .toc a:hover,
.page-legal .toc a.active {
  background: rgba(0, 102, 255, 0.1);
  color: var(--white);
}

/* ── ARTICLE ── */
.page-legal .legal-article {
  max-width: 760px;
}

.page-legal .legal-intro {
  font-size: 16px;
  color: var(--muted);
  line-height: 1.8;
  padding: 20px 24px;
  background: var(--card);
  border: 1px solid var(--border);
  border-inline-start: 3px solid var(--electric);
  border-radius: 10px;
  margin-bottom: 56px;
}

.page-legal .legal-section {
  padding-bottom: 44px;
  margin-bottom: 44px;
  border-bottom: 1px solid var(--border-softer);
  scroll-margin-top: 110px;
}

.page-legal .legal-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.page-legal .legal-section-head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 18px;
}

.page-legal .legal-num {
  font-family: monospace;
  font-size: 14px;
  font-weight: 700;
  color: var(--electric);
  flex-shrink: 0;
}

.page-legal .legal-section h2 {
  font-size: 22px;
  font-weight: 700;
  color: var(--white);
}

.page-legal .legal-section p {
  font-size: 15px;
  color: var(--muted);
  line-height: 1.8;
  margin-bottom: 14px;
}

.page-legal .legal-section p:last-child {
  margin-bottom: 0;
}

.page-legal .legal-section ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 14px 0;
}

.page-legal .legal-section ul li {
  position: relative;
  padding-inline-start: 22px;
  font-size: 15px;
  color: var(--muted);
  line-height: 1.7;
}

.page-legal .legal-section ul li::before {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--electric);
}

.page-legal .legal-section strong {
  color: var(--white);
  font-weight: 600;
}

.page-legal .legal-callout {
  margin-top: 18px;
  padding: 16px 20px;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.6;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.page-legal .callout-mint {
  background: rgba(0, 214, 143, 0.08);
  border: 1px solid rgba(0, 214, 143, 0.25);
  color: var(--mint);
}

.page-legal .callout-warn {
  background: rgba(255, 184, 0, 0.08);
  border: 1px solid rgba(255, 184, 0, 0.25);
  color: var(--gold);
}

.page-legal .callout-danger {
  background: rgba(255, 59, 92, 0.08);
  border: 1px solid rgba(255, 59, 92, 0.25);
  color: var(--danger);
}

.page-legal .legal-contact-card {
  margin-top: 8px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: space-between;
  align-items: center;
}

.page-legal .legal-contact-card a.btn {
  background: var(--electric);
  color: var(--on-accent);
  padding: 12px 24px;
  border-radius: 40px;
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  white-space: nowrap;
  transition: background .2s;
}

.page-legal .legal-contact-card a.btn:hover {
  background: #0055DD;
}

/* ── FOOTER ── styling is shared — see the FOOTER block near the top. ── */

/* ── BACK TO TOP ── */

/* ── MOBILE TOC TOGGLE ── */
.page-legal .toc-toggle {
  display: none;
  width: 100%;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 18px;
  color: var(--white);
  font-size: 14px;
  font-weight: 600;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  margin-bottom: 20px;
}

.page-legal .toc-toggle svg {
  transition: transform .25s;
}

.page-legal .toc-toggle.open svg {
  transform: rotate(180deg);
}

/* ── RESPONSIVE ── */
@media (max-width: 980px) {
  .page-legal .legal-layout {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .page-legal .toc-toggle {
    display: flex;
  }

  .page-legal .toc {
    position: static;
    display: none;
    margin-bottom: 32px;
  }

  .page-legal .toc.open {
    display: block;
  }
}

@media (max-width: 900px) {
  .page-legal nav {
    padding: 16px 24px;
  }

  /* --shell-pad already drops to 24px in the 900px block above */

  .page-legal .legal-hero {
    padding: 120px 0 40px;
  }

  .page-legal .legal-body {
    padding: 40px 0 80px;
  }
}

@media (max-width: 600px) {
  .page-legal .legal-title {
    font-size: 28px;
  }

  .page-legal .legal-meta {
    flex-direction: column;
    gap: 6px;
  }

  .page-legal .legal-intro {
    padding: 16px 18px;
    font-size: 14px;
    margin-bottom: 36px;
  }

  .page-legal .legal-section h2 {
    font-size: 18px;
  }

  .page-legal .legal-section-head {
    gap: 10px;
  }

  .page-legal .legal-contact-card {
    flex-direction: column;
    align-items: flex-start;
    text-align: start;
  }

  .page-legal .legal-contact-card a.btn {
    width: 100%;
    text-align: center;
  }

}

@media (prefers-reduced-motion: reduce) {
  .page-legal * {
    transition: none !important;
  }
}

/* ==========================================================================
   RTL  (applies when <html dir="rtl">)

   Everything that can be expressed with logical properties already is —
   these are the cases CSS logical properties do not cover: gradient angles,
   transform-origin, and the signed translateX of the entrance animations.
   ========================================================================== */

/* progress fill and the step connector run start -> end */
[dir="rtl"] .page-home .triage-fill {
  background: linear-gradient(270deg, var(--electric), var(--cyan));
}

[dir="rtl"] .page-home .steps::before {
  background: linear-gradient(270deg, var(--electric), var(--cyan), var(--electric));
}

/* the problem-card accent bar wipes in from the start edge */
[dir="rtl"] .page-home .problem-card::before {
  transform-origin: right;
}

/* reveal-left / reveal-right are named for the direction they enter FROM,
   so their offsets mirror */
[dir="rtl"] .page-home .reveal-left {
  transform: translateX(40px);
}

[dir="rtl"] .page-home .reveal-right {
  transform: translateX(-40px);
}

[dir="rtl"] .page-home .reveal-left.visible,
[dir="rtl"] .page-home .reveal-right.visible {
  transform: translateX(0);
}

/* Directional arrow icons drawn as inline SVG (the submit button) must
   mirror; a text arrow is swapped in the markup instead. */
[dir="rtl"] .form-submit-btn svg,
[dir="rtl"] .btn-primary svg {
  transform: scaleX(-1);
}

/* Browsers force direction:ltr on tel/url/number inputs. In an RTL page that
   flips text-align:start and the logical padding to the left — straight into
   the field icon, which sits on the left.

   direction:rtl alone would fix the alignment but reorder the number's groups
   ("+966 50 123 4567" renders as "4567 123 50 966+"), because the spaces are
   bidi-neutral and pick up the paragraph direction. unicode-bidi:plaintext
   gives each value its own direction from its first strong character: the
   Arabic placeholder stays RTL, the phone number stays a single LTR run —
   while the field itself aligns and pads to the RTL side. */
[dir="rtl"] input[type="tel"],
[dir="rtl"] input[type="url"],
[dir="rtl"] input[type="number"] {
  direction: rtl;
  unicode-bidi: plaintext;
  /* plaintext resolves a digits-only value to LTR, which would left-align it;
     pin the alignment so the field matches its siblings either way */
  text-align: right;
}

/* ── ARABIC TYPOGRAPHY ──────────────────────────────────────────────────────
   Arabic is cursive: letters join within a word. Positive tracking pulls those
   joins apart and negative tracking crushes them, so the Latin letter-spacing
   used throughout the design has to be neutralised on Arabic pages.
   -------------------------------------------------------------------------- */
[lang="ar"] body,
[lang="ar"] h1,
[lang="ar"] h2,
[lang="ar"] h3,
[lang="ar"] p,
[lang="ar"] a,
[lang="ar"] span,
[lang="ar"] div,
[lang="ar"] label,
[lang="ar"] th,
[lang="ar"] td,
[lang="ar"] button,
[lang="ar"] input,
[lang="ar"] textarea {
  letter-spacing: normal;
}

/* the eyebrow relies on wide tracking for its look; give Arabic word-spacing
   instead, which is safe for cursive script */
[lang="ar"] .eyebrow {
  letter-spacing: normal;
  word-spacing: 0.25em;
}

/* ==========================================================================
   THEME TOGGLE  (unscoped — the same control on every page)
   ========================================================================== */

.theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex: none;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 50%;
  background: var(--card);
  color: var(--muted);
  cursor: pointer;
  transition: color .2s, border-color .2s, background .2s, transform .2s;
}

.theme-toggle:hover {
  color: var(--electric);
  border-color: var(--electric);
  transform: translateY(-1px);
}

.theme-toggle:focus-visible {
  outline: 2px solid var(--electric);
  outline-offset: 2px;
}

.theme-toggle svg {
  width: 17px;
  height: 17px;
  display: block;
}

/* one icon per theme — the inactive one is removed from the flow */
.theme-toggle .icon-moon {
  display: block;
}

.theme-toggle .icon-sun {
  display: none;
}

[data-theme="dark"] .theme-toggle .icon-moon {
  display: none;
}

[data-theme="dark"] .theme-toggle .icon-sun {
  display: block;
}

/* ==========================================================================
   SITE NAV + BACK TO TOP  (shared — identical on every page, so these are
   declared once rather than per page scope. Only the <nav> container itself
   differs per page: fixed on the homepage and the legal page, sticky on the
   trust/resources pages.)
   ========================================================================== */

.nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 36px;
}

.nav-links a {
  color: var(--muted);
  font-size: 14px;
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: color .2s;
}

/* ── NAV LINK HOVER / ACTIVE ──
   Scoped to the bar's own direct links, which keeps the pill-shaped children
   (the language menu button and the demo CTA) and the rows inside the
   language dropdown out of it — they carry their own treatments. */
.nav-links > a:not(.nav-cta) {
  position: relative;
  transition: color .2s, text-shadow .2s;
}

/* The underline sits outside the box (bottom is negative) so showing it
   never changes the link's height or nudges the row's vertical centring.
   scaleX from the centre works in both LTR and RTL. */
.nav-links > a:not(.nav-cta)::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -7px;
  height: 2px;
  border-radius: 2px;
  background: var(--electric);
  transform: scaleX(0);
  transition: transform .25s ease;
  pointer-events: none;
}

.nav-links > a:not(.nav-cta):hover::after,
.nav-links > a:not(.nav-cta).active::after {
  transform: scaleX(1);
}

.nav-links a:hover,
.nav-links a.active {
  color: var(--white);
}

/* Arial ships only 400 and 700 — a 600 renders as 700 and widens
   "Trust & Security" by 8px, which shoves the links beside it on hover.
   Thickening the strokes instead gives the slight weight bump with
   identical metrics, so nothing moves. */
.nav-links > a:not(.nav-cta):hover,
.nav-links > a:not(.nav-cta).active {
  text-shadow: 0.3px 0 0 currentColor, -0.3px 0 0 currentColor;
}

.nav-cta {
  background: var(--electric);
  color: var(--on-accent) !important;
  padding: 9px 22px;
  border-radius: 40px;
  font-weight: 600;
  font-size: 13px;
  transition: background .2s, transform .2s !important;
}

.nav-cta:hover {
  background: #0055DD;
  transform: translateY(-1px);
  color: var(--on-accent) !important;
}

.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
}

.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--white);
  transition: .3s;
}

#back-to-top {
  position: fixed;
  inset-inline-end: 28px;
  bottom: 28px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--electric);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity .25s, transform .25s, background .2s;
  z-index: 90;
}

#back-to-top.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

#back-to-top:hover {
  background: #0055DD;
}

@media (max-width: 900px) {
  .nav-links {
    display: none;
  }

  /* the mobile menu stacks the links, so keep each underline to the width
     of its own text rather than the full drawer */
  .nav-links > a:not(.nav-cta),
  .lang-menu {
    align-self: flex-start;
  }

  /* in the drawer the dropdown hangs below the button, aligned to its start
     edge rather than to the drawer's far edge */
  .lang-menu__list {
    inset-inline-end: auto;
    inset-inline-start: 0;
  }

  .hamburger {
    display: flex;
  }
}

@media (max-width: 600px) {
  #back-to-top {
    inset-inline-end: 16px;
    bottom: 16px;
    width: 40px;
    height: 40px;
  }
}


/* ==========================================================================
   DOWNLOAD MODAL  (loaded with download-modal.js)
   ========================================================================== */

.dl-overlay,
.dl-overlay *,
.dl-overlay *::before,
.dl-overlay *::after {
  box-sizing: border-box;
}

.dl-overlay {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: var(--modal-scrim);
  backdrop-filter: blur(4px);
  overflow-y: auto;
}

.dl-overlay.open {
  display: flex;
}

.dl-modal {
  position: relative;
  width: 100%;
  max-width: 820px;
  background: var(--modal-bg);
  color: var(--modal-text);
  border-radius: 26px;
  padding: 44px 48px 34px;
  box-shadow: 0 30px 80px var(--modal-shadow);
  font-family: var(--font, Arial, Helvetica, sans-serif);
  animation: dlIn .22s ease-out;
}

@keyframes dlIn {
  from {
    opacity: 0;
    transform: translateY(14px) scale(.985)
  }

  to {
    opacity: 1;
    transform: none
  }
}

.dl-close {
  position: absolute;
  top: 22px;
  inset-inline-end: 22px;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: var(--electric);
  color: var(--on-accent);
  font-size: 19px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, transform .2s;
}

.dl-close:hover {
  background: var(--electric);
  filter: brightness(.85);
  transform: scale(1.06);
}

.dl-title {
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -.01em;
  margin: 0 0 6px;
}

.dl-sub {
  font-size: 13px;
  color: var(--modal-muted);
  margin: 0 0 30px;
}

.dl-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.dl-field {
  position: relative;
  min-width: 0;
}

.dl-field.full {
  grid-column: 1 / -1;
}

.dl-field input {
  width: 100%;
  min-width: 0;
  height: 52px;
  padding-block: 0;
  padding-inline: 20px 46px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: var(--modal-field-bg);
  font: inherit;
  font-size: 14px;
  color: var(--modal-text);
  outline: none;
  transition: border-color .2s, background .2s;
}

.dl-field input::placeholder {
  color: var(--modal-placeholder);
}

.dl-field input:focus {
  border-color: var(--electric);
  background: var(--modal-field-focus-bg);
}

.dl-field.invalid input {
  border-color: var(--danger);
  background: color-mix(in srgb, var(--danger) 8%, transparent);
}

.dl-field .dl-icon {
  position: absolute;
  top: 50%;
  inset-inline-end: 18px;
  transform: translateY(-50%);
  color: var(--modal-placeholder);
  pointer-events: none;
}

.dl-err {
  display: block;
  min-height: 16px;
  font-size: 11px;
  color: var(--danger);
  padding: 4px 4px 0;
}

.dl-legend {
  font-size: 15px;
  font-weight: 700;
  margin: 16px 0 14px;
}

.dl-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.dl-radios {
  display: flex;
  align-items: center;
  gap: 26px;
}

.dl-check,
.dl-radio {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 13.5px;
  color: var(--modal-text);
  cursor: pointer;
}

.dl-check input,
.dl-radio input {
  width: 17px;
  height: 17px;
  accent-color: var(--electric);
  cursor: pointer;
  margin: 0;
  flex: none;
}

.dl-check a {
  color: var(--electric);
  text-decoration: underline;
}

.dl-check.invalid {
  color: var(--danger);
}

.dl-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 26px;
}

.dl-submit {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 0;
  border-radius: 999px;
  padding: 15px 34px;
  background: var(--electric);
  color: var(--on-accent);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition: background .2s, transform .2s, box-shadow .2s;
}

.dl-submit:hover {
  background: var(--electric);
  filter: brightness(.85);
  transform: translateY(-1px);
  box-shadow: 0 10px 24px color-mix(in srgb, var(--electric) 32%, transparent);
}

/* ── REQUEST-A-DOCUMENT MODE ──
   The same modal serves the gated download and the document request; these
   two fields only exist in the second, and the confirmation replaces the
   form once the request is away. */
.dl-req-only {
  display: none;
}

.dl-mode-request .dl-req-only {
  display: block;
}

/* fields the download gate asks for that the shorter request form does not */
.dl-mode-request .dl-dl-only {
  display: none;
}

/* the request form has no phone, so "preferred mode of contact" goes with it
   and the privacy check is left alone on its row */
.dl-mode-request .dl-row {
  justify-content: flex-start;
  margin-top: 18px;
}

.dl-field textarea {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 96px;
  resize: vertical;
  padding: 16px 20px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: var(--modal-field-bg);
  font: inherit;
  font-size: 14px;
  line-height: 1.6;
  color: var(--modal-text);
  outline: none;
  transition: border-color .2s, background .2s;
}

.dl-field textarea::placeholder {
  color: var(--modal-placeholder);
}

.dl-field textarea:focus {
  border-color: var(--electric);
  background: var(--modal-field-focus-bg);
}

.dl-field.invalid textarea {
  border-color: var(--danger);
  background: color-mix(in srgb, var(--danger) 8%, transparent);
}

.dl-formerr {
  margin: 14px 0 0;
  font-size: 12px;
  color: var(--danger);
}

.dl-formerr:empty {
  margin: 0;
}

.dl-done {
  padding: 18px 0 6px;
  text-align: center;
}

.dl-done-mark {
  width: 52px;
  height: 52px;
  margin: 0 auto 18px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--mint);
  background: rgba(0, 214, 143, 0.12);
  border: 1px solid rgba(0, 214, 143, 0.3);
}

.dl-done-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--modal-text);
  margin: 0 0 8px;
}

.dl-done-body {
  font-size: 13px;
  line-height: 1.7;
  color: var(--modal-muted);
  margin: 0 auto;
  max-width: 44ch;
}

.dl-foot {
  margin: 26px 0 0;
  font-size: 12px;
  color: var(--modal-muted);
}

.dl-foot a {
  color: var(--electric);
}

@media (max-width:720px) {
  .dl-modal {
    padding: 38px 22px 26px;
    border-radius: 20px;
  }

  .dl-grid {
    grid-template-columns: 1fr;
  }

  .dl-title {
    font-size: 22px;
  }

  .dl-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 12px;
  }

  .dl-actions {
    justify-content: stretch;
  }

  .dl-submit {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   EXTRA-LARGE SCREENS  (≥ 1440px — large desktops, 2K, ultrawide, 4K)
   --------------------------------------------------------------------------
   The layouts below 1440px are untouched. From 1440px up the page stops
   sitting in a 1160px column on a much wider canvas: the shell widens
   fluidly, the nav aligns to that shell, vertical rhythm and display type
   scale with the viewport, and the small UI text steps up in three tiers so
   it stays readable at 2K/4K viewing distances.

   `--shell` is the single source of truth for the content column width — the
   containers and the fixed nav both read it, so they always line up.
   ========================================================================== */

@media (min-width: 1440px) {

  :root {
    /* content column: 88vw, never below 1160px, capped so line lengths stay sane */
    --shell: clamp(1160px, 88vw, 1760px);
    --shell-pad: clamp(40px, 3vw, 72px);
  }

  /* the base .container and nav rules already read --shell / --shell-pad,
     which this tier widens — nothing further to restate here. */

  /* ── NAV ───────────────────────────────────────────────────────────────── */
  .page-home .nav-logo img,
  .page-legal .nav-logo img,
  .page-home .footer-logo img,
  .page-legal .footer-logo img {
    width: clamp(170px, 11vw, 230px);
    height: auto;
  }

  .nav-links {
    gap: clamp(36px, 2.5vw, 56px);
  }

  .nav-cta {
    padding: clamp(9px, 0.7vw, 13px) clamp(22px, 1.6vw, 32px);
  }

  .page-home .nav-logo svg,
  .page-legal .nav-logo svg {
    width: clamp(36px, 2.4vw, 48px);
    height: clamp(36px, 2.4vw, 48px);
  }

  /* ── VERTICAL RHYTHM ───────────────────────────────────────────────────── */
  .page-home #hero {
    padding: clamp(120px, 8vw, 180px) 0 clamp(80px, 5.5vw, 120px);
  }

  .page-home #problem,
  .page-home #solution,
  .page-home #how,
  .page-home #resources,
  .page-home #roi,
  .page-home #implement {
    padding: clamp(120px, 8vw, 180px) 0;
  }

  .page-home #metrics,
  .page-home #tech,
  .page-home #compliance {
    padding: clamp(100px, 6.6vw, 150px) 0;
  }

  .page-home #cta {
    padding: clamp(140px, 9.2vw, 210px) 0;
  }

  .page-legal .legal-hero {
    padding: clamp(150px, 10vw, 210px) 0 clamp(56px, 3.8vw, 84px);
  }

  .page-legal .legal-body {
    padding: clamp(64px, 4.4vw, 100px) 0 clamp(120px, 8vw, 170px);
  }

  /* ── DISPLAY TYPE (fluid) ──────────────────────────────────────────────── */
  .page-home .section-title {
    font-size: clamp(52px, 3.4vw, 76px);
  }

  .page-home .hero-headline {
    font-size: clamp(54px, 3.5vw, 78px);
  }

  .page-home .cta-headline {
    font-size: clamp(68px, 4.4vw, 100px);
  }

  .page-home .hero-sub {
    max-width: clamp(520px, 34vw, 700px);
  }

  .page-home .section-sub {
    max-width: clamp(640px, 42vw, 860px);
  }

  .page-home .cta-sub {
    max-width: clamp(560px, 38vw, 760px);
  }

  /* These centred intros are sized to hold their headline on the intended
     two lines, so their width has to track the headline's growth.
     .problem-top has no auto margins and must not gain a max-width. */
  .page-home .how-top,
  .page-home .impl-top {
    max-width: clamp(600px, 41vw, 900px);
  }

  .page-home .problem-top,
  .page-home .how-top,
  .page-home .impl-top {
    margin-bottom: clamp(72px, 5vw, 110px);
  }

  .page-home .hero-stat-val {
    font-size: clamp(32px, 2.1vw, 46px);
  }

  .page-home .fc-num {
    font-size: clamp(22px, 1.5vw, 31px);
  }

  .page-home .pstat-val {
    font-size: clamp(56px, 3.7vw, 80px);
  }

  .page-home .syt-val,
  .page-home .feature .bc-title {
    font-size: clamp(28px, 1.9vw, 39px);
  }

  .page-home .mc-val {
    font-size: clamp(72px, 4.6vw, 100px);
  }

  .page-home .rc-val {
    font-size: clamp(42px, 2.8vw, 58px);
  }

  .page-home .impl-num {
    font-size: clamp(48px, 3.2vw, 68px);
  }

  .page-legal .legal-title {
    font-size: clamp(48px, 3.1vw, 66px);
  }

  .page-legal .legal-section h2 {
    font-size: clamp(22px, 1.45vw, 31px);
  }

  /* ── GRIDS & GAPS ──────────────────────────────────────────────────────── */
  .page-home .hero-inner {
    gap: clamp(60px, 4.5vw, 110px);
  }

  .page-home .solution-inner,
  .page-home .tech-inner,
  .page-home .roi-inner {
    gap: clamp(80px, 5.5vw, 130px);
  }

  .page-home .problem-grid {
    gap: clamp(20px, 1.5vw, 32px);
  }

  .page-home .target-grid,
  .page-home .bento {
    gap: clamp(16px, 1.2vw, 28px);
  }

  .page-home .target-grid {
    margin-top: clamp(72px, 5vw, 110px);
  }

  .page-home .bento {
    margin-top: clamp(56px, 4vw, 90px);
  }

  .page-home .bento {
    grid-auto-rows: minmax(clamp(172px, 11vw, 250px), auto);
  }

  .page-home .roi-cards,
  .page-home .form-grid,
  .page-home .cta-form {
    gap: clamp(20px, 1.4vw, 28px);
  }

  .page-home .reg-grid {
    gap: clamp(12px, 1vw, 20px);
    margin-top: clamp(48px, 3.4vw, 76px);
  }

  .page-home .cta-contacts {
    gap: clamp(32px, 2.4vw, 52px);
    margin-top: clamp(48px, 3.4vw, 76px);
  }

  /* ── CARD INTERIORS ────────────────────────────────────────────────────── */
  .page-home .problem-card {
    padding: clamp(28px, 2vw, 44px);
  }

  .page-home .target-card {
    padding: clamp(28px, 2vw, 44px) clamp(24px, 1.8vw, 38px);
  }

  .page-home .bento-card {
    padding: clamp(28px, 2vw, 42px) clamp(26px, 1.9vw, 40px);
  }

  .page-home .bento-card.feature {
    padding: clamp(40px, 2.8vw, 60px) clamp(36px, 2.6vw, 54px);
  }

  .page-home .metric-card {
    padding: clamp(50px, 3.4vw, 74px) clamp(40px, 2.8vw, 60px);
  }

  .page-home .impl-card {
    padding: clamp(36px, 2.5vw, 54px) clamp(28px, 2vw, 42px);
  }

  .page-home .hero-card {
    padding: clamp(28px, 2vw, 40px);
  }

  .page-home .cta-form-wrapper {
    max-width: clamp(620px, 42vw, 820px);
    padding: clamp(36px, 2.6vw, 56px);
  }

  .page-home .comparison-table th,
  .page-home .comparison-table td {
    padding: clamp(18px, 1.3vw, 26px) clamp(20px, 1.5vw, 30px);
  }

  /* ── STEPS (the connector line tracks the badge size) ───────────────────── */
  .page-home .steps {
    --step-dot: clamp(52px, 3.6vw, 74px);
  }

  .page-home .step-num {
    width: var(--step-dot);
    height: var(--step-dot);
    margin-bottom: clamp(28px, 2vw, 42px);
  }

  .page-home .steps::before {
    top: var(--step-dot);
    left: calc(16.67% + var(--step-dot) / 2);
    right: calc(16.67% + var(--step-dot) / 2);
  }

  .page-home .step-card {
    padding: 0 clamp(32px, 2.4vw, 56px);
  }

  /* ── HERO VISUAL ───────────────────────────────────────────────────────── */
  .page-home .hero-visual {
    max-width: clamp(520px, 34vw, 720px);
  }

  .page-home .orb1 {
    width: clamp(320px, 21vw, 440px);
    height: clamp(320px, 21vw, 440px);
  }

  .page-home .orb2 {
    width: clamp(200px, 13vw, 280px);
    height: clamp(200px, 13vw, 280px);
  }

  .page-home .cta-glow1 {
    width: clamp(500px, 33vw, 700px);
    height: clamp(500px, 33vw, 700px);
  }

  .page-home .cta-glow2 {
    width: clamp(400px, 26vw, 560px);
    height: clamp(400px, 26vw, 560px);
  }

  /* ── ICONS ─────────────────────────────────────────────────────────────── */
  .page-home .pc-icon svg,
  .page-home .tc-icon svg {
    width: clamp(32px, 2.1vw, 44px);
    height: auto;
  }

  .page-home .step-icon svg {
    width: clamp(36px, 2.4vw, 50px);
    height: auto;
  }

  .page-home .fi-icon {
    width: clamp(48px, 3.2vw, 66px);
    height: clamp(48px, 3.2vw, 66px);
  }

  .page-home .hc-icon {
    width: clamp(42px, 2.8vw, 58px);
    height: clamp(42px, 2.8vw, 58px);
  }

  /* ── DOC / LEGAL READING COLUMNS ───────────────────────────────────────── */
  /* Prose blocks (trust.html) are full-bleed in the shell; at 1760px+ that
     would produce 200-character lines. Cap them into a reading column that
     stays flush with the page title's left edge instead of centring, so the
     page reads as one left-aligned column. Card grids (resources.html) are
     unaffected and keep the full shell width. */
  .page-legal .legal-layout {
    grid-template-columns: clamp(260px, 18vw, 320px) 1fr;
    gap: clamp(64px, 4.6vw, 100px);
  }

  .page-legal .legal-article {
    max-width: clamp(760px, 52vw, 980px);
  }

  /* ── DOWNLOAD MODAL ────────────────────────────────────────────────────── */
  .dl-modal {
    max-width: clamp(820px, 48vw, 980px);
    padding: clamp(44px, 3vw, 58px) clamp(48px, 3.3vw, 64px) clamp(34px, 2.4vw, 46px);
  }

  .dl-title {
    font-size: clamp(26px, 1.7vw, 35px);
  }

  .dl-field input {
    height: clamp(52px, 3.5vw, 66px);
  }

  .dl-grid {
    gap: clamp(16px, 1.2vw, 24px);
  }

  #back-to-top {
    inset-inline-end: clamp(28px, 2.2vw, 52px);
    bottom: clamp(28px, 2.2vw, 52px);
  }

  /* ── UI TEXT — TIER 1 (×1.1) ───────────────────────────────────────────── */
  .page-home .ri-badge {
    font-size: 11px;
  }

  .page-home .eyebrow,
  .page-home .fc-lbl,
  .page-home .comparison-table th,
  .page-home .tech-layer,
  .page-home .aip-time,
  .page-home .impl-phase,
  .page-legal .eyebrow,
  .page-legal .toc-title,
  .page-legal .toc a::before,
  .dl-err {
    font-size: 12px;
  }

  .lang-menu__btn,
  .page-home .hero-tag span,
  .page-home .hc-sub,
  .page-home .triage-label,
  .page-home .fs-sub,
  .page-home .syt-label,
  .page-home .tech-items,
  .page-home .sec-badge,
  .page-home .tc-body,
  .page-home .bc-body,
  .page-home .res-link,
  .page-home .rc-sub,
  .page-home footer p,
  .page-legal footer p,
  .dl-foot {
    font-size: 13px;
  }

  .page-home .comparison-table .header-xposer {
    font-size: 13px !important;
  }

  .page-home .hero-stat-lbl,
  .page-home .ri-label,
  .page-home .pc-body,
  .page-home .fi-body,
  .page-home .fs-num,
  .page-home .mc-sub,
  .page-home .aip-text,
  .page-home .reg-badge,
  .page-home .rp-body,
  .page-home .impl-body,
  .page-home .form-group label,
  .page-home .form-legal,
  .page-legal .legal-meta,
  .page-legal .toc a,
  .page-legal .legal-callout,
  .nav-cta,
  .dl-sub {
    font-size: 14px;
  }

  .page-home .hc-title,
  .page-home .pstat-lbl,
  .page-home .fs-label,
  .page-home .comparison-table td,
  .page-home .step-body,
  .page-home .rc-lbl,
  .page-home .rp-title,
  .page-home .impl-promise,
  .page-home .form-group input,
  .page-home .form-group textarea,
  .page-home .form-success-msg,
  .page-home .cta-contact,
  .page-legal .nav-back,
  .page-legal .legal-num,
  .page-legal .legal-contact-card a.btn,
  .page-legal .toc-toggle,
  .nav-links a,
  .dl-field input,
  .dl-submit {
    font-size: 15px;
  }

  .page-home .btn-primary,
  .page-home .btn-outline,
  .page-home .mc-lbl,
  .page-home .tc-title,
  .page-home .bc-title,
  .page-home .feature .bc-body,
  .page-legal .legal-section p,
  .page-legal .legal-section ul li,
  .dl-legend {
    font-size: 17px;
  }

  .page-home .check,
  .page-home .cross,
  .page-home .pc-title,
  .page-home .fi-title,
  .page-home .impl-title,
  .page-home .form-submit-btn,
  .page-home .footer-logo span,
  .page-legal .legal-intro,
  .page-legal .footer-logo span {
    font-size: 18px;
  }

  .page-home .section-sub,
  .page-legal .nav-logo-text {
    font-size: 19px;
  }

  .page-home .nav-logo-text,
  .page-home .hero-sub,
  .page-home .step-num,
  .page-home .step-title,
  .page-home .cta-sub {
    font-size: 20px;
  }

  .dl-close {
    font-size: 21px;
  }

  .page-home .btn-primary,
  .page-home .btn-outline {
    padding: clamp(15px, 1.1vw, 20px) clamp(32px, 2.3vw, 44px);
  }
}


/* ── ≥1920px — full-HD desktops and up: recompose the widest grids ───────── */
@media (min-width: 1920px) {

  /* 4 resource cards read better as one row than as a 2×2 at this width */
  /* ── UI TEXT — TIER 2 (×1.2) ───────────────────────────────────────────── */
  .page-home .ri-badge {
    font-size: 12px;
  }

  .page-home .eyebrow,
  .page-home .fc-lbl,
  .page-home .comparison-table th,
  .page-home .tech-layer,
  .page-home .aip-time,
  .page-home .impl-phase,
  .page-legal .eyebrow,
  .page-legal .toc-title,
  .page-legal .toc a::before,
  .dl-err {
    font-size: 13px;
  }

  .lang-menu__btn,
  .page-home .hero-tag span,
  .page-home .hc-sub,
  .page-home .triage-label,
  .page-home .fs-sub,
  .page-home .syt-label,
  .page-home .tech-items,
  .page-home .sec-badge,
  .page-home .tc-body,
  .page-home .bc-body,
  .page-home .res-link,
  .page-home .rc-sub,
  .page-home footer p,
  .page-legal footer p,
  .dl-foot {
    font-size: 14px;
  }

  .page-home .comparison-table .header-xposer {
    font-size: 14px !important;
  }

  .page-home .hero-stat-lbl,
  .page-home .ri-label,
  .page-home .pc-body,
  .page-home .fi-body,
  .page-home .fs-num,
  .page-home .mc-sub,
  .page-home .aip-text,
  .page-home .reg-badge,
  .page-home .rp-body,
  .page-home .impl-body,
  .page-home .form-group label,
  .page-home .form-legal,
  .page-legal .legal-meta,
  .page-legal .toc a,
  .page-legal .legal-callout,
  .nav-cta,
  .dl-sub {
    font-size: 16px;
  }

  .page-home .hc-title,
  .page-home .pstat-lbl,
  .page-home .fs-label,
  .page-home .comparison-table td,
  .page-home .step-body,
  .page-home .rc-lbl,
  .page-home .rp-title,
  .page-home .impl-promise,
  .page-home .form-group input,
  .page-home .form-group textarea,
  .page-home .form-success-msg,
  .page-home .cta-contact,
  .page-legal .nav-back,
  .page-legal .legal-num,
  .page-legal .legal-contact-card a.btn,
  .page-legal .toc-toggle,
  .nav-links a,
  .dl-field input,
  .dl-submit {
    font-size: 17px;
  }

  .page-home .btn-primary,
  .page-home .btn-outline,
  .page-home .mc-lbl,
  .page-home .tc-title,
  .page-home .bc-title,
  .page-home .feature .bc-body,
  .page-legal .legal-section p,
  .page-legal .legal-section ul li,
  .dl-legend {
    font-size: 18px;
  }

  .page-home .check,
  .page-home .cross,
  .page-home .pc-title,
  .page-home .fi-title,
  .page-home .impl-title,
  .page-home .form-submit-btn,
  .page-home .footer-logo span,
  .page-legal .legal-intro,
  .page-legal .footer-logo span {
    font-size: 19px;
  }

  .page-home .section-sub,
  .page-legal .nav-logo-text {
    font-size: 20px;
  }

  .page-home .nav-logo-text,
  .page-home .hero-sub,
  .page-home .step-num,
  .page-home .step-title,
  .page-home .cta-sub {
    font-size: 22px;
  }

  .dl-close {
    font-size: 23px;
  }

}


/* ── ≥2560px — 4K / ultrawide: widest shell and the last text step ───────── */
@media (min-width: 2560px) {

  :root {
    --shell: clamp(1760px, 76vw, 2100px);
    --shell-pad: 80px;
  }

  .page-home .section-title {
    font-size: 84px;
  }

  .page-home .hero-headline {
    font-size: 86px;
  }

  .page-home .cta-headline {
    font-size: 110px;
  }

  .page-home .how-top,
  .page-home .impl-top {
    max-width: 1000px;
  }

  /* ── UI TEXT — TIER 3 (×1.32) ──────────────────────────────────────────── */
  .page-home .ri-badge {
    font-size: 13px;
  }

  .page-home .eyebrow,
  .page-home .fc-lbl,
  .page-home .comparison-table th,
  .page-home .tech-layer,
  .page-home .aip-time,
  .page-home .impl-phase,
  .page-legal .eyebrow,
  .page-legal .toc-title,
  .page-legal .toc a::before,
  .dl-err {
    font-size: 15px;
  }

  .lang-menu__btn,
  .page-home .hero-tag span,
  .page-home .hc-sub,
  .page-home .triage-label,
  .page-home .fs-sub,
  .page-home .syt-label,
  .page-home .tech-items,
  .page-home .sec-badge,
  .page-home .tc-body,
  .page-home .bc-body,
  .page-home .res-link,
  .page-home .rc-sub,
  .page-home footer p,
  .page-legal footer p,
  .dl-foot {
    font-size: 16px;
  }

  .page-home .comparison-table .header-xposer {
    font-size: 16px !important;
  }

  .page-home .hero-stat-lbl,
  .page-home .ri-label,
  .page-home .pc-body,
  .page-home .fi-body,
  .page-home .fs-num,
  .page-home .mc-sub,
  .page-home .aip-text,
  .page-home .reg-badge,
  .page-home .rp-body,
  .page-home .impl-body,
  .page-home .form-group label,
  .page-home .form-legal,
  .page-legal .legal-meta,
  .page-legal .toc a,
  .page-legal .legal-callout,
  .nav-cta,
  .dl-sub {
    font-size: 17px;
  }

  .page-home .hc-title,
  .page-home .pstat-lbl,
  .page-home .fs-label,
  .page-home .comparison-table td,
  .page-home .step-body,
  .page-home .rc-lbl,
  .page-home .rp-title,
  .page-home .impl-promise,
  .page-home .form-group input,
  .page-home .form-group textarea,
  .page-home .form-success-msg,
  .page-home .cta-contact,
  .page-legal .nav-back,
  .page-legal .legal-num,
  .page-legal .legal-contact-card a.btn,
  .page-legal .toc-toggle,
  .nav-links a,
  .dl-field input,
  .dl-submit {
    font-size: 18px;
  }

  .page-home .btn-primary,
  .page-home .btn-outline,
  .page-home .mc-lbl,
  .page-home .tc-title,
  .page-home .bc-title,
  .page-home .feature .bc-body,
  .page-legal .legal-section p,
  .page-legal .legal-section ul li,
  .dl-legend {
    font-size: 20px;
  }

  .page-home .check,
  .page-home .cross,
  .page-home .pc-title,
  .page-home .fi-title,
  .page-home .impl-title,
  .page-home .form-submit-btn,
  .page-home .footer-logo span,
  .page-legal .legal-intro,
  .page-legal .footer-logo span {
    font-size: 21px;
  }

  .page-home .section-sub,
  .page-legal .nav-logo-text {
    font-size: 22px;
  }

  .page-home .nav-logo-text,
  .page-home .hero-sub,
  .page-home .step-num,
  .page-home .step-title,
  .page-home .cta-sub {
    font-size: 24px;
  }

  .dl-close {
    font-size: 25px;
  }

}


/* ==========================================================================
   SUB-PAGES  (trust.html, resources.html — class="page-home page-<name>")
   --------------------------------------------------------------------------
   These pages run on the home page's design system: they carry .page-home, so
   the nav, hero vocabulary (.hero-tag/.hero-headline/.hero-card), section
   type (.eyebrow/.section-title/.section-sub), .bento, .reg-badge,
   .comparison-table, .feature-item, .aip-line, .reveal animations and the
   whole extra-large scaling tier all apply unchanged.

   What lives here is only what the sub-pages add on top: a shorter hero than
   the home page's full-viewport one, their section rhythm, and one card
   variant. Everything is written with the same clamp() scaling as the rest of
   the sheet, and this block sits after the XL tier so these rules stay
   authoritative at every width.
   ========================================================================== */

/* ── SHORT HERO (shared by every sub-page) ── */
.page-home .sub-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(150px, 10vw, 220px) 0 clamp(70px, 5vw, 110px);
}

.page-home .sub-hero-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(60px, 4.5vw, 110px);
  align-items: center;
}

.page-home .sub-hero-visual {
  position: relative;
  width: 100%;
  max-width: clamp(520px, 34vw, 720px);
  margin: 0 auto;
  /* .hero-visual is a square on the home page, where the card and both
     floating cards fill it. The sub-pages carry a shorter card, so the
     square left dead space underneath and pushed the centred left column
     visibly below the card. Height follows the card here instead. */
  aspect-ratio: auto;
}

@media (max-width: 900px) {
  .page-home .sub-hero-inner {
    grid-template-columns: 1fr;
    gap: 48px;
  }

  .page-home .sub-hero-right {
    display: none;
  }
}

/* ── CARD VARIANT ──
   Same shape and hover as the home page's .problem-card, in the electric
   accent rather than the problem section's caution accent. */
.page-home .sub-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 1.5vw, 32px);
  margin-top: clamp(56px, 4vw, 90px);
}

.page-home .sub-card {
  position: relative;
  overflow: hidden;
  display: block;
  text-decoration: none;
  color: inherit;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: clamp(28px, 2vw, 44px);
  transition: transform .3s, border-color .3s;
}

.page-home .sub-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--electric);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .4s ease;
}

.page-home .sub-card:hover::before {
  transform: scaleX(1);
}

.page-home .sub-card:hover {
  transform: translateY(-6px);
  border-color: rgba(0, 102, 255, 0.3);
}

.page-home .sc-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 20px;
}

.page-home .sc-icon {
  color: var(--electric);
}

/* status pill — mint = done, gold = in flight */
.page-home .sc-status {
  flex-shrink: 0;
  padding: 5px 12px;
  border-radius: 40px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.page-home .status-done {
  background: rgba(0, 214, 143, 0.1);
  border: 1px solid rgba(0, 214, 143, 0.3);
  color: var(--mint);
}

.page-home .status-progress {
  background: rgba(255, 184, 0, 0.1);
  border: 1px solid rgba(255, 184, 0, 0.3);
  color: var(--gold);
}

.page-home .sub-card h3 {
  font-size: 16px;
  font-weight: 700;
  margin-bottom: 10px;
}

.page-home .sub-card p {
  font-size: 13px;
  color: var(--muted);
  line-height: 1.6;
}

/* ── PANEL CALLOUT (used inside the visual panels) ── */
.page-home .panel-note {
  margin-top: 28px;
  background: rgba(0, 102, 255, 0.08);
  border: 1px solid rgba(0, 102, 255, 0.25);
  border-radius: 12px;
  padding: 20px;
}

.page-home .pn-label {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 4px;
}

.page-home .pn-val {
  font-size: 22px;
  font-weight: 700;
  color: var(--cyan);
}

/* ── CENTRED CLOSING SECTION ── */
.page-home .closing-inner {
  position: relative;
  z-index: 1;
  text-align: center;
}

.page-home .closing-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 40px;
}

@media (max-width: 980px) {
  .page-home .sub-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 620px) {
  .page-home .sub-grid {
    grid-template-columns: 1fr;
  }
}

/* ── SECTION RHYTHM (mirrors the home page's alternating surfaces) ── */
.page-trust #certifications {
  padding: clamp(100px, 7vw, 160px) 0;
  background: linear-gradient(180deg, var(--obsidian) 0%, var(--gradient-stop) 100%);
}

.page-trust #protection {
  padding: clamp(120px, 8vw, 180px) 0;
}

.page-trust #governance {
  padding: clamp(100px, 6.6vw, 150px) 0;
  background: linear-gradient(180deg, var(--obsidian) 0%, var(--midnight) 100%);
}

.page-trust #subprocessors {
  padding: clamp(100px, 6.6vw, 150px) 0;
  background: var(--midnight);
}

.page-trust #contact,
.page-resources #contact {
  position: relative;
  overflow: hidden;
  padding: clamp(140px, 9.2vw, 210px) 0;
}

.page-resources #more {
  padding: clamp(100px, 6.6vw, 150px) 0;
  background: linear-gradient(180deg, var(--obsidian) 0%, var(--gradient-stop) 100%);
}

/* ── SUBPROCESSOR TABLE ── */
.page-trust .subproc-wrap {
  margin-top: clamp(48px, 3.4vw, 76px);
  overflow-x: auto;
}

.page-trust .comparison-table {
  width: 100%;
  border-collapse: collapse;
}

.page-trust .comparison-table thead {
  background-color: #1E3A5F;
}

.page-trust .comparison-table th {
  padding: 16px 20px;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  color: #FFFFFF;
  border: 1px solid #1E3A5F;
}

.page-trust .comparison-table th:first-child {
  text-align: left;
}

.page-trust .comparison-table td {
  padding: 14px 20px;
  border: 1px solid var(--border-faint);
  font-size: 14px;
  color: var(--white);
  background-color: var(--card);
}

.page-trust .comparison-table td:first-child {
  font-weight: 600;
  text-align: left;
  background-color: #FAFBFC;
}

.page-trust .comparison-table tbody tr:hover {
  background-color: var(--surface-hover);
}

.page-trust .comparison-table tbody tr:hover td:first-child {
  background-color: #F1F6FD;
}

/* Region columns - center aligned */
.page-trust .comparison-table tbody td:not(:first-child) {
  text-align: center;
  font-weight: 500;
}

/* Checkmark styling */
.page-trust .comparison-table .tick {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background-color: #DCEDDB;
  color: #00785A;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 600;
}

/* X mark styling */
.page-trust .comparison-table .cross {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background-color: #F5DEDD;
  color: #CE2B33;
  border-radius: 4px;
  font-size: 16px;
  font-weight: 600;
}

.page-trust .table-note {
  margin-top: 20px;
  font-size: 12px;
  color: var(--muted);
}

/* Dark mode overrides for subprocessor table */
[data-theme="dark"] .page-trust .comparison-table thead {
  background-color: #0F2942;
}

[data-theme="dark"] .page-trust .comparison-table th {
  border-color: #0F2942;
  color: #FFFFFF;
}

[data-theme="dark"] .page-trust .comparison-table td {
  background-color: var(--card);
  color: var(--white);
}

[data-theme="dark"] .page-trust .comparison-table td:first-child {
  background-color: #0D1520;
}

[data-theme="dark"] .page-trust .comparison-table tbody tr:hover td:first-child {
  background-color: #0F2942;
}

[data-theme="dark"] .page-trust .comparison-table .tick {
  background-color: #1A3A2A;
  color: #7EC9A8;
}

[data-theme="dark"] .page-trust .comparison-table .cross {
  background-color: #3A1F23;
  color: #F4A9AE;
}

/* (the centred closing section and the card/hero responsive rules are shared —
   see .closing-inner / .sub-grid / .sub-hero-inner in the block above) */

/* ==========================================================================
   MOBILE SECTION RHYTHM
   The section paddings above are fixed pixel values tuned for a desktop
   viewport — 120px top + 120px bottom leaves ~240px of empty space between
   two sections, which is over half the height of a phone screen. Scale the
   vertical rhythm down in two steps so the gaps stay proportional to the
   viewport instead of to the design width.

   Declared last on purpose: it has to outrank the per-page section rules
   (.page-trust #protection and friends), which carry the same specificity
   and sit further up the file. #cta already had its own mobile sizes.
   ========================================================================== */

@media (max-width: 900px) {
  .page-home #problem,
  .page-home #solution,
  .page-home #metrics,
  .page-home #how,
  .page-home #tech,
  .page-home #compliance,
  .page-home #roi,
  .page-home #resources,
  .page-home #implement,
  .page-trust #certifications,
  .page-trust #protection,
  .page-trust #governance,
  .page-trust #subprocessors,
  .page-resources #more {
    padding: 80px 0;
  }

  .page-home #hero {
    padding: 104px 0 56px;
  }

  /* the sub-page hero (trust / resources) sits under a sticky nav rather than
     a fixed one, so it needs no extra clearance beyond the rhythm */
  .page-home .sub-hero {
    padding: 96px 0 56px;
  }

  .page-trust #contact,
  .page-resources #contact {
    padding: 96px 0;
  }
}

@media (max-width: 600px) {
  .page-home #problem,
  .page-home #solution,
  .page-home #metrics,
  .page-home #how,
  .page-home #tech,
  .page-home #compliance,
  .page-home #roi,
  .page-home #resources,
  .page-home #implement,
  .page-trust #certifications,
  .page-trust #protection,
  .page-trust #governance,
  .page-trust #subprocessors,
  .page-resources #more {
    padding: 56px 0;
  }

  /* the hero clears the fixed nav, so its top padding stays taller than the
     rest of the rhythm */
  .page-home #hero {
    padding: 88px 0 40px;
  }

  .page-home .sub-hero {
    padding: 80px 0 40px;
  }

  .page-trust #contact,
  .page-resources #contact {
    padding: 68px 0;
  }
}
