/* Plus Jakarta Sans — self-hosted (latin + latin-ext). Generated from Google Fonts. */
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/jakarta-700-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/jakarta-700-italic-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;
}
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/jakarta-800-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/jakarta-800-italic-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;
}
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/jakarta-400-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/jakarta-400-normal-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;
}
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/jakarta-500-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/jakarta-500-normal-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;
}
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/jakarta-600-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/jakarta-600-normal-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;
}
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/jakarta-700-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/jakarta-700-normal-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;
}
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/jakarta-800-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(fonts/jakarta-800-normal-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;
}
/* ============================================================
   CHANCE PAYMENTS — BASE KIT
   Design tokens + reusable components for all landing pages.
   Match to homepage: navy + red, bold grotesque, light/dark
   sections, floating pill nav, animated backgrounds.
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root {
  /* Brand */
  --cp-red:        #e0241c;   /* primary accent: eyebrows, CTAs, checks */
  --cp-red-600:    #c41d16;
  --cp-red-soft:   #fcebe9;   /* light red pill bg */
  --cp-navy:       #173a6d;   /* primary button / brand blue */
  --cp-navy-700:   #122e57;
  --cp-navy-deep:  #0b1f3f;
  --cp-blue:       #2b5fa8;   /* secondary accent / link */
  --cp-ink:        #0f1a2e;   /* headings on light */
  --cp-green:      #16a34a;   /* success */

  /* Surfaces — light */
  --cp-bg:         #ffffff;
  --cp-bg-2:       #f5f7fa;   /* off-white section */
  --cp-bg-3:       #eef2f8;   /* tinted wash */
  --cp-card:       #ffffff;
  --cp-border:     #e6eaf1;
  --cp-border-2:   #dde3ec;

  /* Surfaces — dark */
  --cp-dark:       #0a0b0d;   /* near-black section */
  --cp-dark-2:     #0c1322;   /* navy-black */
  --cp-dark-card:  rgba(255,255,255,.045);
  --cp-dark-border:rgba(255,255,255,.09);

  /* Text */
  --cp-text:       #4b5568;   /* body on light */
  --cp-muted:      #8893a3;   /* secondary on light */
  --cp-on-dark:    rgba(255,255,255,.72);
  --cp-on-dark-mut:rgba(255,255,255,.50);

  /* Type */
  --cp-font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;

  /* Radii */
  --cp-r-pill: 999px;
  --cp-r-sm:   12px;
  --cp-r-md:   16px;
  --cp-r-card: 20px;
  --cp-r-lg:   28px;

  /* Shadows */
  --cp-sh-sm:   0 1px 2px rgba(15,26,46,.04), 0 4px 12px rgba(15,26,46,.05);
  --cp-sh:      0 12px 34px -14px rgba(15,26,46,.16);
  --cp-sh-lg:   0 36px 70px -26px rgba(15,26,46,.24);
  --cp-sh-navy: 0 16px 30px -12px rgba(18,46,87,.50);
  --cp-sh-red:  0 16px 30px -12px rgba(224,36,28,.42);

  /* Layout */
  --cp-maxw: 1200px;
  --cp-gutter: clamp(20px, 5vw, 56px);
  --cp-section-y: clamp(72px, 9vw, 132px);

  /* Motion */
  --cp-ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- 2. RESET / BASE ---------- */
/* Layered so pages with their own stylesheets (the homepage app bundles
   Tailwind, whose utilities live in @layer) can override these element
   resets — unlayered rules would beat any layered ones regardless of
   specificity. On the static pages nothing competes, so behavior is
   unchanged. */
@layer cp-base {
  *, *::before, *::after { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scrollbar-gutter: stable; overflow-x: clip; }
  body {
    margin: 0;
    overflow-x: clip;
    font-family: var(--cp-font);
    color: var(--cp-text);
    background: var(--cp-bg);
    font-size: 17px;
    line-height: 1.6;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
  img { max-width: 100%; display: block; }
  a { color: inherit; text-decoration: none; }
  button { font-family: inherit; }
  ::selection { background: var(--cp-red); color: #fff; }
}

/* ---------- 3. LAYOUT ---------- */
.cp-container { width: 100%; max-width: var(--cp-maxw); margin-inline: auto; padding-inline: var(--cp-gutter); }
.cp-section { padding-block: var(--cp-section-y); position: relative; }
.cp-section--tight { padding-block: clamp(48px, 6vw, 84px); }
.cp-section--dark { background: var(--cp-dark); color: #fff; }
.cp-section--soft { background: var(--cp-bg-2); }
.cp-section--wash {
  background: linear-gradient(180deg, #fff 0%, var(--cp-bg-3) 100%);
}
.cp-grid { display: grid; gap: clamp(20px, 2.4vw, 32px); }

/* ---------- 4. TYPE ---------- */
.cp-display, .cp-h1, .cp-h2, .cp-h3 { color: var(--cp-ink); font-weight: 800; line-height: 1.04; letter-spacing: -.02em; margin: 0; text-wrap: balance; }
.cp-display { font-size: clamp(44px, 6.4vw, 84px); line-height: .98; }
.cp-h1 { font-size: clamp(38px, 5vw, 66px); }
.cp-h2 { font-size: clamp(30px, 3.8vw, 50px); }
.cp-h3 { font-size: clamp(20px, 1.7vw, 24px); letter-spacing: -.01em; line-height: 1.15; }
.cp-section--dark .cp-display,
.cp-section--dark .cp-h1,
.cp-section--dark .cp-h2,
.cp-section--dark .cp-h3 { color: #fff; }

.cp-lead { font-size: clamp(17px, 1.3vw, 20px); line-height: 1.6; color: var(--cp-text); max-width: 56ch; }
.cp-section--dark .cp-lead { color: var(--cp-on-dark); }
.cp-text-red { color: var(--cp-red); }
.cp-text-navy { color: var(--cp-navy); }

/* Eyebrow — red uppercase label */
.cp-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--cp-red); margin: 0 0 18px;
}
.cp-eyebrow--center { justify-content: center; }

/* Pill badge with dot */
.cp-pill {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 8px 16px; border-radius: var(--cp-r-pill);
  background: var(--cp-red-soft); color: var(--cp-red);
  font-size: 14px; font-weight: 600; letter-spacing: .01em;
  border: 1px solid rgba(224,36,28,.14);
}
.cp-pill__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--cp-red); box-shadow: 0 0 0 4px rgba(224,36,28,.18); }
.cp-section--dark .cp-pill { background: rgba(224,36,28,.14); border-color: rgba(224,36,28,.3); }

.cp-section-head { max-width: 720px; margin-inline: auto; text-align: center; }
.cp-section-head .cp-lead { margin-inline: auto; }

/* ---------- 5. BUTTONS ---------- */
.cp-btn {
  --bg: var(--cp-navy); --fg: #fff; --bd: transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 15px 26px; border-radius: var(--cp-r-pill);
  font-size: 16px; font-weight: 700; letter-spacing: -.01em;
  background: var(--bg); color: var(--fg); border: 1.5px solid var(--bd);
  cursor: pointer; white-space: nowrap;
  transition: transform .25s var(--cp-ease), box-shadow .25s var(--cp-ease), background .2s, color .2s;
}
.cp-btn:hover { transform: translateY(-2px); }
.cp-btn:active { transform: translateY(0); }
.cp-btn svg { width: 18px; height: 18px; }
.cp-btn--navy  { --bg: var(--cp-navy); box-shadow: var(--cp-sh-navy); }
.cp-btn--navy:hover { --bg: var(--cp-navy-700); }
.cp-btn--red   { --bg: var(--cp-red); box-shadow: var(--cp-sh-red); }
.cp-btn--red:hover { --bg: var(--cp-red-600); }
.cp-btn--ghost { --bg: transparent; --fg: var(--cp-ink); --bd: var(--cp-border-2); }
.cp-btn--ghost:hover { --bg: var(--cp-bg-2); --bd: var(--cp-navy); }
.cp-btn--dark-ghost { --bg: rgba(255,255,255,.06); --fg: #fff; --bd: rgba(255,255,255,.22); backdrop-filter: blur(6px); }
.cp-btn--dark-ghost:hover { --bg: rgba(255,255,255,.12); }
.cp-btn--lg { padding: 17px 32px; font-size: 17px; }
.cp-btn--block { width: 100%; }
.cp-btn .cp-arrow { transition: transform .25s var(--cp-ease); }
.cp-btn:hover .cp-arrow { transform: translateX(4px); }

.cp-trustline { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; font-size: 14px; color: var(--cp-muted); font-weight: 500; }
.cp-trustline span { display: inline-flex; align-items: center; gap: 8px; }
.cp-trustline span::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--cp-red); }

/* ---------- 6. NAV (floating pill) ---------- */
.cp-nav-wrap { position: sticky; top: 0; z-index: 80; padding: 16px var(--cp-gutter); display: flex; justify-content: center; pointer-events: none; font-family: var(--cp-font); font-size: 17px; line-height: 1.6; }
.cp-nav {
  pointer-events: auto;
  display: flex; align-items: center; gap: 10px;
  width: 100%; max-width: 940px;
  padding: 9px 9px 15px 22px;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(16px) saturate(140%);
  border: 1px solid rgba(15,26,46,.06);
  border-radius: var(--cp-r-pill);
  box-shadow: 0 10px 34px -14px rgba(15,26,46,.22);
}
.cp-nav__links { display: flex; align-items: center; gap: 6px; margin-inline: auto; }
.cp-nav__links a {
  padding: 9px 14px; border-radius: var(--cp-r-pill);
  font-size: 15px; font-weight: 600; color: #36404f;
  transition: background .2s, color .2s;
}
.cp-nav__links a:hover { background: var(--cp-bg-2); color: var(--cp-ink); }
.cp-nav__cta { display: flex; align-items: center; gap: 8px; }
.cp-nav .cp-btn { padding: 12px 20px; font-size: 15px; }
.cp-nav__burger { display: none; }

/* Mobile menu */
.cp-mobile { display: none; position: fixed; inset: 78px 16px auto; z-index: 79; background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-card); box-shadow: var(--cp-sh-lg); padding: 14px; font-family: var(--cp-font); font-size: 17px; line-height: 1.6; }
.cp-mobile.is-open { display: grid; gap: 4px; }
.cp-mobile a { padding: 13px 16px; border-radius: var(--cp-r-sm); font-weight: 600; color: var(--cp-ink); }
.cp-mobile a:hover { background: var(--cp-bg-2); }
.cp-mobile .cp-btn { margin-top: 8px; }
.cp-mobile__group { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--cp-muted); padding: 12px 16px 4px; }

/* Nav dropdown (Solutions menu) */
.cp-has-menu { position: relative; }
.cp-has-menu::after { content: ""; position: absolute; top: 100%; left: -10px; right: -10px; height: 18px; }
.cp-nav__trigger { display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px; border-radius: var(--cp-r-pill); font-family: inherit; font-size: 15px; font-weight: 600; color: #36404f; background: none; border: none; cursor: pointer; }
.cp-nav__trigger:hover, .cp-has-menu:hover .cp-nav__trigger, .cp-has-menu:focus-within .cp-nav__trigger { background: var(--cp-bg-2); color: var(--cp-ink); }
.cp-nav__trigger svg { width: 14px; height: 14px; transition: transform .25s var(--cp-ease); }
.cp-has-menu:hover .cp-nav__trigger svg, .cp-has-menu:focus-within .cp-nav__trigger svg { transform: rotate(180deg); }
.cp-menu { position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%) translateY(8px); width: 360px; background: #fff; border: 1px solid var(--cp-border); border-radius: 20px; box-shadow: var(--cp-sh-lg); padding: 10px; opacity: 0; visibility: hidden; transition: opacity .22s var(--cp-ease), transform .22s var(--cp-ease); display: grid; gap: 2px; z-index: 90; }
.cp-has-menu:hover .cp-menu, .cp-has-menu:focus-within .cp-menu, .cp-menu.is-open { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
.cp-menu a { display: flex; align-items: center; gap: 13px; padding: 11px 12px; border-radius: 13px; color: var(--cp-ink); }
.cp-menu a:hover { background: var(--cp-bg-2); }
.cp-menu__ico { width: 36px; height: 36px; flex: none; border-radius: 10px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; }
.cp-menu__ico svg { width: 18px; height: 18px; }
.cp-menu b { display: block; font-size: 14.5px; font-weight: 700; line-height: 1.2; }
.cp-menu small { font-size: 12.5px; color: var(--cp-muted); }
@media (max-width: 760px) { .cp-has-menu { display: none; } }

/* Logo */
.cp-logo { display: inline-flex; align-items: center; gap: 11px; }
.cp-logo__mark {
  width: 38px; height: 38px; border-radius: 50%; flex: none; position: relative;
  background:
    radial-gradient(circle at 32% 30%, #fff 0%, #eaf0fb 28%, #c9d6ee 55%, #9fb4d8 78%, #7e96c4 100%);
  box-shadow: inset 0 0 0 1px rgba(23,58,109,.18), inset -3px -3px 8px rgba(23,58,109,.22), 0 2px 6px rgba(15,26,46,.16);
  overflow: hidden;
}
.cp-logo__mark::before {
  content: ""; position: absolute; inset: 0; border-radius: 50%;
  background:
    repeating-linear-gradient(115deg, transparent 0 5px, rgba(43,95,168,.16) 5px 6px),
    radial-gradient(circle at 70% 75%, rgba(224,36,28,.35), transparent 50%);
  mix-blend-mode: multiply;
}
.cp-logo__text { display: flex; flex-direction: column; line-height: 1; }
.cp-logo__a { font-weight: 800; font-size: 18px; letter-spacing: .02em; color: var(--cp-red); font-style: italic; }
.cp-logo__b { font-weight: 700; font-size: 11px; letter-spacing: .22em; color: var(--cp-navy); }
.cp-section--dark .cp-logo__b { color: #cdd8ee; }

/* ---------- 7. HERO ---------- */
.cp-hero { position: relative; overflow: hidden; }
.cp-hero__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.cp-hero__copy > * + * { margin-top: 26px; }
.cp-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.cp-underline { position: relative; white-space: nowrap; }
.cp-underline::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: .06em; height: .09em;
  background: linear-gradient(90deg, var(--cp-blue), var(--cp-red)); border-radius: 2px;
}

/* ---------- 8. DEVICE / DASHBOARD MOCK ---------- */
.cp-device {
  position: relative; border-radius: var(--cp-r-lg);
  background: #0a0b0f; padding: 14px;
  border: 1px solid rgba(255,255,255,.1);
  box-shadow: 0 4px 0 rgba(255,255,255,.7), var(--cp-sh-lg);
}
.cp-device__screen {
  border-radius: 20px; background:
    linear-gradient(180deg, #14161d, #0a0b0f),
    radial-gradient(120% 60% at 50% 0%, rgba(43,95,168,.18), transparent 60%);
  background-blend-mode: normal;
  padding: 22px; color: #fff; position: relative; overflow: hidden;
}
.cp-device__screen::before {
  content: ""; position: absolute; inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 30px 30px; opacity: .5; pointer-events: none;
}
.cp-device__row { display: flex; justify-content: space-between; align-items: center; position: relative; }
.cp-tag-live { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 700; letter-spacing: .08em; padding: 6px 11px; border-radius: var(--cp-r-pill); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); color: #fff; }
.cp-tag-live i { width: 6px; height: 6px; border-radius: 50%; background: var(--cp-red); box-shadow: 0 0 8px var(--cp-red); animation: cp-blink 1.6s infinite; }
@keyframes cp-blink { 50% { opacity: .35; } }
.cp-device__label { font-size: 13px; color: rgba(255,255,255,.55); margin-top: 14px; }
.cp-device__big { font-size: clamp(40px, 4vw, 54px); font-weight: 800; letter-spacing: -.02em; line-height: 1; margin-top: 2px; }
.cp-device__big b { color: var(--cp-red); font-weight: 800; }
.cp-device__stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 20px; }
.cp-device__stat { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07); border-radius: 14px; padding: 13px 14px; }
.cp-device__stat small { font-size: 11px; color: rgba(255,255,255,.45); display: block; }
.cp-device__stat b { font-size: 18px; font-weight: 700; }
.cp-device__panel { background: #fff; color: var(--cp-ink); border-radius: 16px; padding: 16px; margin-top: 18px; }
.cp-device__panel h5 { margin: 0 0 12px; font-size: 15px; font-weight: 700; }
.cp-bar { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; font-size: 13px; align-items: center; margin-bottom: 10px; color: #5a6478; }
.cp-bar b { color: var(--cp-ink); font-weight: 700; }
.cp-bar__track { grid-column: 1 / -1; height: 7px; border-radius: 6px; background: #eef1f6; overflow: hidden; }
.cp-bar__fill { height: 100%; border-radius: 6px; background: linear-gradient(90deg, var(--cp-red), #f0584f); }

/* ---------- 9. MARQUEE ---------- */
.cp-marquee { overflow: hidden; padding: 18px 0; border-block: 1px solid var(--cp-border); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.cp-marquee__track { display: flex; gap: 14px; width: max-content; animation: cp-marquee 34s linear infinite; }
.cp-marquee:hover .cp-marquee__track { animation-play-state: paused; }
@keyframes cp-marquee { to { transform: translateX(-50%); } }
.cp-chip { display: inline-flex; align-items: center; gap: 9px; padding: 11px 18px; border-radius: var(--cp-r-pill); border: 1px solid var(--cp-border); background: #fff; font-weight: 600; font-size: 15px; color: var(--cp-ink); white-space: nowrap; box-shadow: var(--cp-sh-sm); }
.cp-chip svg { width: 17px; height: 17px; color: var(--cp-red); }

/* ---------- 10. STATS ROW ---------- */
.cp-stats { display: grid; grid-template-columns: repeat(4, 1fr); }
.cp-stat { text-align: center; padding: 8px 16px; position: relative; }
.cp-stat + .cp-stat::before { content: ""; position: absolute; left: 0; top: 14%; height: 72%; width: 1px; background: var(--cp-border-2); }
.cp-stat b { display: block; font-size: clamp(34px, 4vw, 52px); font-weight: 800; color: var(--cp-navy); letter-spacing: -.03em; line-height: 1; }
.cp-stat span { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--cp-muted); }
.cp-section--dark .cp-stat b { color: #fff; }

/* ---------- 11. CARDS ---------- */
.cp-card { background: var(--cp-card); border: 1px solid var(--cp-border); border-radius: var(--cp-r-card); padding: 28px; box-shadow: var(--cp-sh-sm); transition: transform .3s var(--cp-ease), box-shadow .3s var(--cp-ease), border-color .3s; }
.cp-card:hover { transform: translateY(-4px); box-shadow: var(--cp-sh); border-color: var(--cp-border-2); }
.cp-card__icon { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; background: var(--cp-bg-3); color: var(--cp-navy); margin-bottom: 18px; }
.cp-card__icon svg { width: 24px; height: 24px; }
.cp-card h3 { margin: 0 0 8px; color: var(--cp-ink); }
.cp-card p { margin: 0; font-size: 15.5px; color: var(--cp-text); }

/* Dark capability card */
.cp-card--dark { background: var(--cp-dark-card); border-color: var(--cp-dark-border); box-shadow: none; backdrop-filter: blur(6px); }
.cp-card--dark:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.16); }
.cp-card--dark h3 { color: #fff; }
.cp-card--dark p { color: var(--cp-on-dark); }
.cp-card--dark .cp-card__icon { background: rgba(43,95,168,.18); color: #9dc0f5; border: 1px solid rgba(255,255,255,.08); }

/* Industry card (centered) */
.cp-icard { text-align: center; padding: 28px 18px; }
.cp-icard .cp-card__icon { margin-inline: auto; }
.cp-icard h3 { font-size: 17px; }

/* ---------- 12. BENTO (What's included) ---------- */
.cp-bento { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(16px,1.6vw,22px); }
.cp-bento__col { display: grid; gap: clamp(16px,1.6vw,22px); }
.cp-bento__feature {
  position: relative; overflow: hidden; color: #fff; border-radius: var(--cp-r-card);
  padding: 34px; min-height: 320px; display: flex; flex-direction: column; justify-content: space-between;
  background: linear-gradient(135deg, var(--cp-navy-deep) 0%, #2a3a63 45%, #7a2b3f 78%, #b8392f 100%);
}
.cp-bento__feature .cp-card__icon { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.16); }
.cp-bento__feature h3 { color: #fff; font-size: clamp(22px,2vw,28px); margin-bottom: 10px; }
.cp-bento__feature p { color: rgba(255,255,255,.78); margin: 0; max-width: 40ch; }
.cp-bento__big { position: absolute; right: 26px; bottom: 18px; font-size: clamp(64px, 8vw, 104px); font-weight: 800; letter-spacing: -.04em; line-height: .8; color: rgba(255,255,255,.92); }
.cp-bento__big sup { font-size: .32em; font-weight: 700; vertical-align: super; }

/* ---------- 13. TIMELINE / PROCESS ---------- */
.cp-steps { position: relative; }
.cp-steps__line { position: absolute; top: 22px; left: 6%; right: 6%; height: 2px; background: var(--cp-border-2); }
.cp-steps__grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; position: relative; }
.cp-step__node { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto 22px; background: #fff; border: 1px solid var(--cp-border-2); font-weight: 800; color: var(--cp-navy); box-shadow: var(--cp-sh-sm); }
.cp-step__card { text-align: center; }
.cp-step__card .cp-card__icon { margin: 0 auto 14px; }

/* Numbered list (How a payment flows) */
.cp-flow { display: grid; gap: 4px; }
.cp-flow__item { display: grid; grid-template-columns: auto 1fr; gap: 16px; padding: 14px 0; }
.cp-flow__ico { width: 44px; height: 44px; border-radius: 12px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; position: relative; }
.cp-flow__ico svg { width: 20px; height: 20px; }
.cp-flow__item:not(:last-child) .cp-flow__ico::after { content: ""; position: absolute; top: 100%; left: 50%; width: 2px; height: 28px; background: var(--cp-border-2); transform: translateX(-50%); }
.cp-flow h4 { margin: 0; font-size: 16px; color: var(--cp-ink); font-weight: 700; }
.cp-flow small { color: var(--cp-muted); font-size: 13px; }

/* ---------- 14. FAQ ---------- */
.cp-faq { display: grid; gap: 14px; max-width: 860px; margin-inline: auto; }
.cp-faq__item { background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); overflow: hidden; transition: border-color .25s, box-shadow .25s; }
.cp-faq__item[open] { border-color: rgba(224,36,28,.45); box-shadow: 0 20px 44px -16px rgba(224,36,28,.45), 0 0 0 4px rgba(224,36,28,.07); }
.cp-faq__q { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 18px; padding: 22px 24px; font-weight: 700; font-size: 17px; color: var(--cp-ink); }
.cp-faq__q::-webkit-details-marker { display: none; }
.cp-faq__num { width: 38px; height: 38px; flex: none; border-radius: 50%; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; font-size: 13px; font-weight: 800; transition: background .3s, color .3s; }
.cp-faq__item[open] .cp-faq__q { color: var(--cp-red); }
.cp-faq__item[open] .cp-faq__num { background: var(--cp-red); color: #fff; }
.cp-faq__plus { margin-left: auto; width: 34px; height: 34px; flex: none; border: 1px solid var(--cp-border-2); border-radius: 50%; display: grid; place-items: center; position: relative; transition: transform .3s var(--cp-ease), background .2s, color .2s, border-color .2s; }
.cp-faq__plus::before, .cp-faq__plus::after { content: ""; position: absolute; background: currentColor; border-radius: 2px; }
.cp-faq__plus::before { width: 13px; height: 2px; }
.cp-faq__plus::after { width: 2px; height: 13px; transition: opacity .25s; }
.cp-faq__item[open] .cp-faq__plus { transform: rotate(45deg); background: var(--cp-red); color: #fff; border-color: var(--cp-red); }
.cp-faq__a { padding: 0 24px 24px 80px; color: var(--cp-text); font-size: 16px; }

/* ---------- 15. CONTACT FORM ---------- */
.cp-form { background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); padding: clamp(24px,3vw,38px); box-shadow: var(--cp-sh); }
.cp-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.cp-field { display: flex; flex-direction: column; gap: 7px; }
.cp-field.cp-col-2 { grid-column: 1 / -1; }
.cp-field label { font-size: 14px; font-weight: 700; color: var(--cp-ink); }
.cp-field label .req { color: var(--cp-red); }
.cp-input, .cp-select, .cp-textarea {
  font-family: inherit; font-size: 15px; color: var(--cp-ink);
  padding: 13px 15px; border: 1px solid var(--cp-border-2); border-radius: var(--cp-r-sm);
  background: var(--cp-bg-2); transition: border-color .2s, box-shadow .2s, background .2s; width: 100%;
}
.cp-input:focus, .cp-select:focus, .cp-textarea:focus { outline: none; border-color: var(--cp-navy); background: #fff; box-shadow: 0 0 0 4px rgba(23,58,109,.1); }
.cp-textarea { resize: vertical; min-height: 120px; }
/* Contact: stretch the form to the same height as the info column (textarea absorbs the slack) */
@media (min-width: 861px) {
  #contact .cp-split > .cp-reveal:last-child { display: flex; flex-direction: column; }
  #contact .cp-form { flex: 1; display: flex; flex-direction: column; }
  #contact .cp-form__grid { flex: 1; grid-template-rows: auto auto auto 1fr; }
  #contact .cp-form__grid .cp-col-2:last-of-type { min-height: 0; }
  #contact .cp-form__grid .cp-col-2:last-of-type .cp-textarea { flex: 1 1 auto; }
}
.cp-select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238893a3' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 40px; }

/* Contact info cards */
.cp-info { display: grid; gap: 14px; }
.cp-info__item { display: flex; align-items: center; gap: 16px; padding: 18px; border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); background: #fff; box-shadow: var(--cp-sh-sm); }
.cp-info__ico { width: 48px; height: 48px; flex: none; border-radius: 13px; background: var(--cp-red); color: #fff; display: grid; place-items: center; box-shadow: var(--cp-sh-red); }
.cp-info__ico svg { width: 22px; height: 22px; }
.cp-info__item > span:last-child { min-width: 0; }
.cp-info__item small { display: block; font-size: 13px; color: var(--cp-muted); font-weight: 600; }
.cp-info__item b { font-size: 17px; color: var(--cp-ink); overflow-wrap: anywhere; }

/* Floating proof tag (live transaction) */
.cp-proof { display: inline-flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--cp-border); border-radius: 14px; padding: 12px 16px; box-shadow: var(--cp-sh); }
.cp-proof__ico { width: 34px; height: 34px; border-radius: 50%; background: #e7f7ee; color: var(--cp-green); display: grid; place-items: center; }
.cp-proof small { display: block; font-size: 12px; color: var(--cp-muted); }
.cp-proof b { font-size: 14px; color: var(--cp-ink); }

/* ---------- 16. CTA BANNER ---------- */
.cp-cta {
  position: relative; overflow: hidden; border-radius: var(--cp-r-lg); color: #fff; text-align: center;
  padding: clamp(48px, 7vw, 96px) var(--cp-gutter);
  background: var(--cp-dark);
}
.cp-cta__inner { position: relative; z-index: 2; max-width: 720px; margin-inline: auto; }
.cp-cta__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; margin-top: 32px; }

/* ---------- 17. FOOTER ---------- */
.cp-footer { background: #fff; border-top: 1px solid var(--cp-border); padding-block: clamp(48px,6vw,72px) 36px; }
.cp-footer__grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; }
.cp-footer__about { max-width: 34ch; font-size: 15px; color: var(--cp-text); }
.cp-footer h6 { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--cp-muted); margin: 0 0 18px; font-weight: 700; }
.cp-footer__links { display: grid; gap: 12px; }
.cp-footer__links a { font-weight: 600; color: #3a4658; }
.cp-footer__links a:hover { color: var(--cp-navy); }
.cp-footer__contact { display: grid; gap: 12px; }
.cp-footer__contact a, .cp-footer__contact span { display: flex; align-items: center; gap: 10px; font-size: 15px; color: #3a4658; }
.cp-footer__contact svg { width: 17px; height: 17px; color: var(--cp-red); }
.cp-footer__social { display: flex; gap: 10px; margin-top: 22px; }
.cp-footer__social a { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--cp-border); display: grid; place-items: center; color: var(--cp-navy); transition: background .2s, color .2s, border-color .2s; }
.cp-footer__social a:hover { background: var(--cp-navy); color: #fff; border-color: var(--cp-navy); }
.cp-footer__bar { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--cp-border); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 14px; color: var(--cp-muted); }
.cp-footer__legal { display: inline-flex; gap: 20px; }
.cp-footer__legal a { color: var(--cp-muted); text-decoration: none; transition: color .2s; }
.cp-footer__legal a:hover { color: var(--cp-navy); }

/* ---------- Legal pages (Privacy / Terms) — minimal layout ---------- */
.cp-legalbar { background: #0a0a0a; color: #fff; }
.cp-legalbar__inner { max-width: 768px; margin-inline: auto; padding: 22px clamp(16px,5vw,24px); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.cp-legalbar__back { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; color: rgba(255,255,255,.8); text-decoration: none; transition: color .2s; }
.cp-legalbar__back:hover { color: #fff; }
.cp-legalbar__tag { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .25em; color: rgba(255,255,255,.4); }
.cp-legal { padding: clamp(44px,6vw,80px) clamp(16px,5vw,24px) clamp(64px,9vw,110px); }
.cp-legal__inner { max-width: 768px; margin-inline: auto; }
.cp-legal__badge { display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px; border-radius: var(--cp-r-pill); background: var(--cp-bg-3); color: var(--cp-navy); font-size: 12.5px; font-weight: 700; border: 1px solid var(--cp-border); margin-bottom: 18px; }
.cp-legal__badge svg { color: var(--cp-navy); }
.cp-legal h1 { margin: 0 0 12px; }
.cp-legal__updated { color: var(--cp-muted); font-size: 14.5px; margin: 0 0 36px; }
.cp-legal__intro { font-size: 18px; line-height: 1.6; color: var(--cp-text); margin: 0 0 40px; }
.cp-legal__sections { display: grid; gap: 40px; }
.cp-legal__sections h2 { font-size: clamp(20px,2.6vw,26px); margin: 0 0 14px; color: var(--cp-ink); letter-spacing: -.01em; }
.cp-legal__sections p { margin: 0 0 14px; color: var(--cp-text); line-height: 1.7; }
.cp-legal__sections p:last-child { margin-bottom: 0; }
.cp-legal__sections ul { margin: 0 0 14px; padding-left: 0; list-style: none; display: grid; gap: 10px; }
.cp-legal__sections li { position: relative; padding-left: 26px; color: var(--cp-text); line-height: 1.6; }
.cp-legal__sections li::before { content: ""; position: absolute; left: 4px; top: 9px; width: 7px; height: 7px; border-radius: 50%; background: var(--cp-red); }
.cp-legal__sections a { color: var(--cp-navy); font-weight: 600; }
.cp-legal__notice { margin-top: 48px; border: 1px solid #f3d9a4; background: #fdf6e7; color: #7a5a18; border-radius: var(--cp-r-md); padding: 18px 20px; font-size: 14px; line-height: 1.6; }


/* ---------- 18. ANIMATED BACKGROUNDS ---------- */
.cp-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.cp-bg canvas, .cp-bg video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-bg + * { position: relative; z-index: 1; }
.cp-bg__scrim { position: absolute; inset: 0; }
.cp-bg__scrim--dark { background: radial-gradient(120% 100% at 50% 0%, transparent 30%, rgba(10,11,13,.55) 100%); }
.cp-bg__scrim--bottom { background: linear-gradient(180deg, transparent 55%, var(--cp-dark) 100%); }
/* Aurora (light hero) — pure CSS drifting blobs */
.cp-bg--aurora { background: linear-gradient(180deg, #f3f5fa, #e9eef7); }
.cp-bg--aurora::before, .cp-bg--aurora::after {
  content: ""; position: absolute; width: 60vw; height: 60vw; border-radius: 50%;
  filter: blur(70px); opacity: .55; mix-blend-mode: multiply;
}
.cp-bg--aurora::before { background: radial-gradient(circle, rgba(43,95,168,.5), transparent 60%); top: -20%; left: -10%; animation: cp-float1 18s ease-in-out infinite; }
.cp-bg--aurora::after { background: radial-gradient(circle, rgba(224,36,28,.32), transparent 60%); bottom: -25%; right: -5%; animation: cp-float2 22s ease-in-out infinite; }
@keyframes cp-float1 { 50% { transform: translate(8vw, 6vh) scale(1.15); } }
@keyframes cp-float2 { 50% { transform: translate(-7vw, -5vh) scale(1.1); } }
/* Streaks (dark, diagonal) — CSS fallback under canvas + atmospheric glow */
.cp-bg--dark-base { background-color: var(--cp-dark); background-image: radial-gradient(65% 80% at 22% 26%, rgba(43,95,168,.20), transparent 62%); }

/* ---------- 19. SCROLL REVEAL (gated on .cp-js so no-JS shows content) ---------- */
html.cp-js .cp-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--cp-ease), transform .7s var(--cp-ease); }
html.cp-js .cp-reveal.is-in { opacity: 1; transform: none; }
/* in-viewport-at-load elements show instantly (robust even if a transition can't run) */
html.cp-js .cp-reveal.is-shown { opacity: 1 !important; transform: none !important; transition: none !important; }
.cp-reveal[data-delay="1"] { transition-delay: .08s; }
.cp-reveal[data-delay="2"] { transition-delay: .16s; }
.cp-reveal[data-delay="3"] { transition-delay: .24s; }

/* ---------- 20. UTILITIES ---------- */
/* Checklist (inside cards / features) */
.cp-list { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 11px; }
.cp-list li { position: relative; padding-left: 28px; font-size: 15.5px; color: var(--cp-text); }
.cp-list li::before {
  content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0241c' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;
}
.cp-section--dark .cp-list li { color: var(--cp-on-dark); }

/* Hero "at a glance" stat tiles */
.cp-statpanel { background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); padding: 26px; box-shadow: var(--cp-sh-lg); }
.cp-statpanel__label { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--cp-muted); margin: 0 0 18px; }
.cp-quad { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cp-quad__tile { background: var(--cp-bg-2); border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); padding: 20px; }
.cp-quad__tile b { display: block; font-size: clamp(22px,2.4vw,28px); font-weight: 800; color: var(--cp-navy); letter-spacing: -.02em; line-height: 1.05; }
.cp-quad__tile span { font-size: 13.5px; color: var(--cp-muted); }

.cp-center { text-align: center; }

/* ---------- 20b. PRODUCT CARDS (POS hardware) ---------- */
.cp-product { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-card); overflow: hidden; box-shadow: var(--cp-sh-sm); transition: transform .3s var(--cp-ease), box-shadow .3s var(--cp-ease), border-color .3s; }
.cp-product:hover { transform: translateY(-5px); box-shadow: var(--cp-sh); border-color: var(--cp-border-2); }
.cp-product__media { position: relative; aspect-ratio: 4/3; background: linear-gradient(160deg,#eef2f8,#dfe7f2); }
.cp-product__media--dark { background: #0c1322; }
.cp-product__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-product__body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.cp-product__body h3 { margin: 0; color: var(--cp-ink); }
.cp-product__price { margin: 8px 0 0; font-weight: 700; color: var(--cp-navy); font-size: 15px; }
.cp-product__price b { font-size: 22px; letter-spacing: -.02em; }
.cp-product__price span { color: var(--cp-muted); font-weight: 600; }
.cp-product__desc { margin: 14px 0 0; font-size: 15px; color: var(--cp-text); }
.cp-product .cp-list { margin-top: 16px; }
.cp-product .cp-btn { margin-top: auto; }
.cp-product__cta { padding-top: 20px; }
.cp-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.cp-tag { font-size: 12px; font-weight: 700; letter-spacing: .02em; padding: 5px 12px; border-radius: var(--cp-r-pill); background: var(--cp-bg-3); color: var(--cp-navy); }

/* Product requirements callout (POS) */
.cp-product__req { margin-top: 18px; padding: 15px 16px; border-radius: var(--cp-r-sm); background: var(--cp-bg-2); border: 1px solid var(--cp-border); }
.cp-product__req > b { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--cp-navy); margin-bottom: 11px; }
.cp-product__req > b svg { width: 15px; height: 15px; color: var(--cp-red); }
.cp-reqs { display: flex; flex-wrap: wrap; gap: 8px; }
.cp-reqs span { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; color: var(--cp-ink); background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-pill); padding: 7px 12px; }
.cp-reqs span svg { width: 14px; height: 14px; color: var(--cp-navy); flex: none; }
.cp-reqs span.req-extra { border-color: rgba(224,36,28,.28); background: var(--cp-red-soft); color: var(--cp-red-600); }
.cp-reqs span.req-extra svg { color: var(--cp-red); }
/* wider 2-up product cards read like a real product page */
.cp-product--wide .cp-product__body { padding: 28px clamp(24px,2.4vw,34px) 30px; }
.cp-product--wide .cp-product__media { aspect-ratio: 16/10; }

/* eCommerce pricing breakdown (ecp-*) */
.ecp-bar { display: flex; height: 16px; border-radius: 8px; overflow: hidden; margin: 6px 0 20px; }
.ecp-bar > span { display: block; }
.ecp-bar__net { background: var(--cp-navy); }
.ecp-bar__mk { background: var(--cp-red); }
.ecp-bar__you { background: #c9d3e2; }
.ecp-legend { display: grid; gap: 14px; }
.ecp-legend > span { display: grid; grid-template-columns: auto 1fr; gap: 10px 11px; align-items: start; font-size: 14.5px; font-weight: 700; color: var(--cp-ink); }
.ecp-legend small { grid-column: 2; font-size: 13px; font-weight: 500; color: var(--cp-muted); }
.ecp-dot { width: 13px; height: 13px; border-radius: 4px; margin-top: 3px; }
.ecp-dot--net { background: var(--cp-navy); }
.ecp-dot--mk { background: var(--cp-red); }
.ecp-dot--you { background: #c9d3e2; }
.ecp-note { margin: 18px 0 0; font-size: 12.5px; color: var(--cp-muted); line-height: 1.5; }

/* ============================================================
   FAQ GRID — homepage (cp-faqbox). 2-per-row; open item spans
   full width & centers, with a smooth height animation.
   ============================================================ */
.cp-faqgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; max-width: 980px; margin-inline: auto; align-items: start; }
.cp-faqbox { background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); box-shadow: var(--cp-sh-sm); overflow: hidden; transition: border-color .3s var(--cp-ease), box-shadow .3s var(--cp-ease); }
.cp-faqbox.is-open { grid-column: 1 / -1; border-color: rgba(224,36,28,.45); box-shadow: 0 20px 44px -16px rgba(224,36,28,.45), 0 0 0 4px rgba(224,36,28,.07); }
.cp-faqbox__q { width: 100%; display: flex; align-items: center; gap: 14px; padding: 20px 22px; background: none; border: none; font-family: inherit; text-align: left; cursor: pointer; color: var(--cp-ink); }
.cp-faqbox__num { width: 34px; height: 34px; flex: none; border-radius: 50%; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; font-size: 12px; font-weight: 800; font-variant-numeric: tabular-nums; transition: background .3s, color .3s; }
.cp-faqbox__title { font-weight: 700; font-size: 16px; letter-spacing: -.01em; line-height: 1.25; }
.cp-faqbox__plus { margin-left: auto; width: 30px; height: 30px; flex: none; border: 1px solid var(--cp-border-2); border-radius: 50%; display: grid; place-items: center; position: relative; transition: transform .3s var(--cp-ease), background .25s, color .25s, border-color .25s; }
.cp-faqbox__plus::before, .cp-faqbox__plus::after { content: ""; position: absolute; background: currentColor; border-radius: 2px; }
.cp-faqbox__plus::before { width: 12px; height: 2px; }
.cp-faqbox__plus::after { width: 2px; height: 12px; transition: opacity .25s; }
.cp-faqbox.is-open .cp-faqbox__num { background: var(--cp-red); color: #fff; }
.cp-faqbox.is-open .cp-faqbox__title { color: var(--cp-red); }
.cp-faqbox.is-open .cp-faqbox__plus { transform: rotate(45deg); background: var(--cp-red); color: #fff; border-color: var(--cp-red); }
.cp-faqbox.is-open .cp-faqbox__plus::after { opacity: 1; }
.cp-faqbox__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .42s var(--cp-ease); }
.cp-faqbox.is-open .cp-faqbox__a { grid-template-rows: 1fr; }
.cp-faqbox__inner { overflow: hidden; }
.cp-faqbox__answer { padding: 0 24px 24px 70px; color: var(--cp-text); font-size: 15.5px; line-height: 1.6; opacity: 0; transition: opacity .35s var(--cp-ease) .08s; }
.cp-faqbox.is-open .cp-faqbox__answer { opacity: 1; }
@media (max-width: 760px) {
  .cp-faqgrid { grid-template-columns: 1fr; }
  .cp-faqbox__answer { padding-left: 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .cp-faqbox__a { transition: none; }
}

/* ---------- 20c. COMPARE TABLE ---------- */
.cp-table-wrap { border: 1px solid var(--cp-border); border-radius: var(--cp-r-card); overflow: hidden; overflow-x: auto; box-shadow: var(--cp-sh-sm); }
.cp-table { width: 100%; border-collapse: collapse; min-width: 640px; }
.cp-table th, .cp-table td { padding: 18px 20px; text-align: left; border-bottom: 1px solid var(--cp-border); font-size: 15px; }
.cp-table thead th { background: var(--cp-ink); color: #fff; font-weight: 700; font-size: 15px; letter-spacing: -.01em; }
.cp-table thead th:first-child { background: var(--cp-navy-deep); }
.cp-table tbody th { font-weight: 700; color: var(--cp-ink); background: var(--cp-bg-2); white-space: nowrap; }
.cp-table tbody tr:last-child td, .cp-table tbody tr:last-child th { border-bottom: none; }
.cp-table tbody tr:hover td { background: var(--cp-bg-2); }
.cp-table .yes { color: var(--cp-green); font-weight: 700; }
.cp-table .price { color: var(--cp-navy); font-weight: 800; }

/* ---------- 20d. PARTNER GRID ---------- */
.cp-partners { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.cp-partner { background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-card); padding: 28px 20px; text-align: center; box-shadow: var(--cp-sh-sm); transition: transform .3s var(--cp-ease), box-shadow .3s var(--cp-ease), border-color .3s; }
.cp-partner:hover { transform: translateY(-4px); box-shadow: var(--cp-sh); border-color: var(--cp-border-2); }
.cp-partner__logo { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 16px; display: grid; place-items: center; background: var(--cp-bg-3); color: var(--cp-navy); font-weight: 800; font-size: 24px; }
.cp-partner h3 { margin: 0; font-size: 17px; color: var(--cp-ink); }
.cp-partner p { margin: 6px 0 0; font-size: 13.5px; color: var(--cp-muted); }

/* ---------- 20e. BLOG ---------- */
.cp-post-meta { display: flex; align-items: center; gap: 12px; font-size: 13px; color: var(--cp-muted); font-weight: 600; }
.cp-cat { display: inline-flex; align-items: center; padding: 5px 12px; border-radius: var(--cp-r-pill); background: var(--cp-red-soft); color: var(--cp-red); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.cp-postcard { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-card); overflow: hidden; box-shadow: var(--cp-sh-sm); transition: transform .3s var(--cp-ease), box-shadow .3s var(--cp-ease), border-color .3s; }
.cp-postcard:hover { transform: translateY(-5px); box-shadow: var(--cp-sh); border-color: var(--cp-border-2); }
.cp-postcard__media { aspect-ratio: 16/10; background: linear-gradient(160deg,#e9eef7,#d7e0ee); position: relative; }
.cp-postcard__body { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.cp-postcard__body h3 { margin: 0; font-size: 20px; line-height: 1.2; color: var(--cp-ink); }
.cp-postcard__body p { margin: 0; font-size: 15px; color: var(--cp-text); }
.cp-postcard__more { margin-top: auto; color: var(--cp-navy); font-weight: 700; font-size: 14.5px; display: inline-flex; align-items: center; gap: 7px; }
.cp-postcard:hover .cp-postcard__more { gap: 11px; }
.cp-postcard__author { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--cp-muted); }
.cp-avatar { width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg,var(--cp-navy),var(--cp-blue)); color: #fff; display: grid; place-items: center; font-size: 13px; font-weight: 700; }
/* Featured post (first) */
.cp-blog-featured { display: grid; grid-template-columns: 1.05fr .95fr; gap: 0; background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); overflow: hidden; box-shadow: var(--cp-sh); }
.cp-pager { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin-top: clamp(32px, 4vw, 48px); }
.cp-pagebtn { min-width: 42px; height: 42px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--cp-border); background: #fff; border-radius: var(--cp-r-md); font-family: inherit; font-size: 15px; font-weight: 700; color: var(--cp-ink); cursor: pointer; transition: background .2s var(--cp-ease), border-color .2s, color .2s, box-shadow .2s; }
.cp-pagebtn:hover:not(:disabled) { border-color: var(--cp-navy); box-shadow: var(--cp-sh-sm); }
.cp-pagebtn.is-current { background: var(--cp-navy); border-color: var(--cp-navy); color: #fff; }
.cp-pagebtn:disabled { opacity: .4; cursor: not-allowed; }
.cp-blog-featured__media { background: linear-gradient(160deg,#dfe7f2,#cdd9ec); min-height: 340px; position: relative; }
.cp-blog-featured__body { padding: clamp(28px,3vw,46px); display: flex; flex-direction: column; justify-content: center; gap: 16px; }
/* Article body */
.cp-article { max-width: 760px; margin-inline: auto; }
.cp-article p { font-size: 18px; line-height: 1.7; color: #3c4555; margin: 0 0 24px; }
.cp-article h2 { font-size: clamp(26px,2.6vw,34px); margin: 44px 0 16px; }
.cp-article h3 { font-size: 22px; margin: 32px 0 12px; color: var(--cp-ink); }
.cp-article ul { margin: 0 0 24px; padding-left: 0; list-style: none; display: grid; gap: 12px; }
.cp-article ul li { position: relative; padding-left: 28px; font-size: 17px; color: #3c4555; }
.cp-article ul li::before { content: ""; position: absolute; left: 0; top: 9px; width: 8px; height: 8px; border-radius: 50%; background: var(--cp-red); }
.cp-article blockquote { margin: 32px 0; padding: 6px 0 6px 26px; border-left: 4px solid var(--cp-red); font-size: 22px; line-height: 1.45; font-weight: 600; color: var(--cp-ink); font-style: italic; }
.cp-article__lead { font-size: 21px !important; line-height: 1.6 !important; color: var(--cp-text) !important; }

/* ---------- 20f. UNIQUE SECTION MODULES (per-page variety) ---------- */
/* Feature rows — alternating media + text */
.cp-featrow { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px,5vw,68px); align-items: center; }
.cp-featrow + .cp-featrow { margin-top: clamp(40px,6vw,84px); }
.cp-featrow--rev .cp-featrow__media { order: 2; }
.cp-featrow__media { border-radius: var(--cp-r-lg); overflow: hidden; box-shadow: var(--cp-sh); aspect-ratio: 5/4; background: linear-gradient(160deg,#eef2f8,#dce6f3); position: relative; }
.cp-featrow__num { display: inline-block; font-size: 13px; font-weight: 800; color: var(--cp-red); letter-spacing: .14em; text-transform: uppercase; margin-bottom: 12px; }

/* Logo strip (integrations) */
.cp-logostrip { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.cp-logochip { display: inline-flex; align-items: center; gap: 11px; padding: 14px 22px; border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); background: #fff; font-weight: 700; color: var(--cp-ink); box-shadow: var(--cp-sh-sm); }
.cp-logochip__mark { width: 30px; height: 30px; border-radius: 8px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; font-weight: 800; font-size: 13px; }

/* Integration logo grid (real brand logos) */
.cp-logogrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 880px; margin-inline: auto; }
.cp-logocard { display: flex; align-items: center; justify-content: center; gap: 13px; min-height: 84px; padding: 20px 18px; background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); box-shadow: var(--cp-sh-sm); transition: transform .28s var(--cp-ease), box-shadow .28s, border-color .28s; }
.cp-logocard:hover { transform: translateY(-4px); box-shadow: var(--cp-sh); border-color: var(--cp-border-2); }
.cp-logocard img { height: 28px; width: auto; display: block; flex: none; }
.cp-logocard--logo img { height: auto; width: auto; max-height: 30px; max-width: 78%; }
.cp-logocard b { font-size: 16px; font-weight: 700; color: var(--cp-ink); letter-spacing: -.01em; }
.cp-logocard__wm { font-size: 20px; font-weight: 800; color: var(--cp-navy); letter-spacing: -.02em; }
.cp-logocard__wm i { font-style: normal; color: var(--cp-red); }
@media (max-width: 760px) { .cp-logogrid { grid-template-columns: repeat(2, 1fr); max-width: 520px; } }
@media (max-width: 430px) { .cp-logogrid { grid-template-columns: 1fr; max-width: 320px; } }

/* Preferred Partners — brand rows with real logos */
.pp-rows { border-bottom: 1px solid var(--cp-border); }
.pp-row { display: grid; grid-template-columns: 190px 1fr; gap: 24px; align-items: center; padding: 22px 0; border-top: 1px solid var(--cp-border); }
.pp-row .cp-eyebrow { margin: 0; }
.pp-brands { display: flex; flex-wrap: wrap; gap: 11px; }
.pp-brand { display: inline-flex; align-items: center; gap: 9px; padding: 9px 16px; border-radius: var(--cp-r-pill); background: #fff; border: 1px solid var(--cp-border); box-shadow: var(--cp-sh-sm); font-weight: 700; font-size: 14.5px; color: var(--cp-ink); transition: transform .2s var(--cp-ease), box-shadow .2s, border-color .2s; }
.pp-brand:hover { transform: translateY(-2px); box-shadow: var(--cp-sh); border-color: var(--cp-border-2); }
.pp-brand img { height: 18px; width: auto; display: block; flex: none; }
@media (max-width: 640px) { .pp-row { grid-template-columns: 1fr; gap: 12px; padding: 20px 0; } }

/* POS — "hardware is one piece" package layout */
.pos-pkg { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(20px,3vw,40px); align-items: stretch; max-width: 980px; margin-inline: auto; }
.pos-pkg__piece { position: relative; border-radius: var(--cp-r-lg); padding: clamp(26px,3vw,40px); background: var(--cp-bg-2); border: 1px solid var(--cp-border); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; text-align: center; }
.pos-pkg__tag { position: absolute; top: 18px; left: 18px; font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: 6px 12px; border-radius: var(--cp-r-pill); background: #fff; border: 1px solid var(--cp-border); color: var(--cp-navy); }
.pos-pkg__piece p { margin: 0; color: var(--cp-muted); font-size: 14px; max-width: 24ch; }
.pos-pkg__device { width: 156px; padding: 16px; border-radius: 24px; background: linear-gradient(160deg,#1d2740,#0f1a2e); box-shadow: var(--cp-sh-lg); }
.pos-pkg__screen { background: #f6f8fc; border-radius: 11px; padding: 15px; text-align: center; }
.pos-pkg__screen b { display: block; font-size: 23px; font-weight: 800; color: var(--cp-ink); font-variant-numeric: tabular-nums; }
.pos-pkg__screen span { font-size: 11px; color: var(--cp-green); font-weight: 700; }
.pos-pkg__keys { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin-top: 14px; }
.pos-pkg__keys i { height: 18px; border-radius: 5px; background: rgba(255,255,255,.12); }
.pos-pkg__rest { display: flex; flex-direction: column; justify-content: center; }
.pos-pkg__rest h3 { font-size: clamp(20px,2.2vw,26px); margin: 0 0 22px; color: var(--cp-ink); letter-spacing: -.01em; }
.pos-pkg__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.pos-pkg__list li { display: flex; gap: 14px; align-items: flex-start; }
.pos-pkg__ico { flex: none; width: 44px; height: 44px; border-radius: 13px; background: #fdecec; color: var(--cp-red); display: grid; place-items: center; }
.pos-pkg__list b { display: block; font-size: 16px; color: var(--cp-ink); margin-bottom: 3px; }
.pos-pkg__list span { font-size: 14px; color: var(--cp-text); line-height: 1.5; }
@media (max-width: 760px) { .pos-pkg { grid-template-columns: 1fr; } }

/* eCommerce — "Why Chance" consolidated panel */
.ec-why { padding: 6px clamp(20px,2.4vw,28px); }
.ec-why__item { display: flex; gap: 16px; align-items: flex-start; padding: 20px 0; border-bottom: 1px solid var(--cp-border); }
.ec-why__item:last-child { border-bottom: none; }
.ec-why__ico { flex: none; width: 46px; height: 46px; border-radius: 13px; background: #fdecec; color: var(--cp-red); display: grid; place-items: center; }
.ec-why__item h3 { font-size: 17px; margin: 0 0 4px; color: var(--cp-ink); letter-spacing: -.01em; }
.ec-why__item p { margin: 0; color: var(--cp-text); font-size: 14.5px; line-height: 1.5; }

/* Big chip grid (verticals / use-of-funds) */
.cp-chipgrid { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.cp-bigchip { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; border-radius: var(--cp-r-pill); background: #fff; border: 1px solid var(--cp-border); font-weight: 600; color: var(--cp-ink); box-shadow: var(--cp-sh-sm); transition: transform .25s var(--cp-ease), border-color .25s; }
.cp-bigchip:hover { transform: translateY(-3px); border-color: var(--cp-navy); }
.cp-bigchip svg { width: 18px; height: 18px; color: var(--cp-red); }
.cp-section--dark .cp-bigchip { background: var(--cp-dark-card); border-color: var(--cp-dark-border); color: #fff; }

/* Mini steps (compact horizontal process) */
.cp-mini { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; counter-reset: s; }
.cp-mini__item { position: relative; padding-top: 14px; }
.cp-mini__item::before { counter-increment: s; content: "0" counter(s); display: block; font-size: 32px; font-weight: 800; color: var(--cp-red); letter-spacing: -.02em; line-height: 1; margin-bottom: 12px; }
.cp-mini__item h4 { margin: 0 0 6px; font-size: 17px; color: var(--cp-ink); }
.cp-mini__item p { margin: 0; font-size: 14.5px; color: var(--cp-text); }
.cp-section--dark .cp-mini__item h4 { color: #fff; }
.cp-section--dark .cp-mini__item p { color: var(--cp-on-dark); }

/* Generic mock card (checkout / funding / settlement / savings) */
.cp-mock { background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); box-shadow: var(--cp-sh-lg); padding: 26px; }
.cp-mock__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.cp-mock__title { font-weight: 700; color: var(--cp-ink); font-size: 16px; }
.cp-mock__line { display: flex; justify-content: space-between; align-items: center; padding: 13px 0; border-top: 1px solid var(--cp-border); font-size: 15px; color: var(--cp-text); }
.cp-mock__line b { color: var(--cp-ink); font-weight: 600; }
.cp-mock__total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 15px; margin-top: 4px; border-top: 2px solid var(--cp-ink); }
.cp-mock__total span { font-size: 14px; color: var(--cp-muted); font-weight: 600; }
.cp-mock__total b { font-size: clamp(26px,3vw,34px); font-weight: 800; color: var(--cp-ink); letter-spacing: -.02em; }
.cp-mock__big { font-size: clamp(36px,4.5vw,52px); font-weight: 800; color: var(--cp-navy); letter-spacing: -.03em; line-height: 1; }
.cp-mock__pill { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: var(--cp-r-pill); background: #e7f7ee; color: var(--cp-green); }
.cp-mock__seg { display: flex; gap: 8px; margin: 4px 0 2px; }
.cp-mock__seg button { flex: 1; padding: 10px; border-radius: 10px; border: 1px solid var(--cp-border-2); background: var(--cp-bg-2); font-family: inherit; font-weight: 700; font-size: 14px; color: var(--cp-navy); cursor: pointer; }
.cp-mock__seg button.on { background: var(--cp-navy); color: #fff; border-color: var(--cp-navy); }
.cp-mock__bar { height: 8px; border-radius: 6px; background: var(--cp-bg-3); overflow: hidden; }
.cp-mock__bar i { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg,var(--cp-navy),var(--cp-blue)); }

/* Status stack (approval) */
.cp-status { display: flex; align-items: center; gap: 13px; padding: 14px 16px; border-radius: 14px; background: #fff; border: 1px solid var(--cp-border); box-shadow: var(--cp-sh-sm); margin-bottom: 10px; }
.cp-status__dot { width: 30px; height: 30px; flex: none; border-radius: 50%; display: grid; place-items: center; background: #e7f7ee; color: var(--cp-green); }
.cp-status__dot svg { width: 16px; height: 16px; }
.cp-status--wait .cp-status__dot { background: var(--cp-bg-3); color: var(--cp-muted); }
.cp-status b { display: block; font-size: 15px; color: var(--cp-ink); }
.cp-status small { font-size: 13px; color: var(--cp-muted); }

/* Dark hero helper */
.cp-hero--dark { background: var(--cp-dark); color: #fff; overflow: hidden; }
.cp-hero--dark .cp-statpanel { background: var(--cp-dark-card); border-color: var(--cp-dark-border); box-shadow: none; backdrop-filter: blur(6px); }
.cp-hero--dark .cp-quad__tile { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.09); }
.cp-hero--dark .cp-quad__tile b { color: #fff; }
.cp-hero--dark .cp-statpanel__label { color: var(--cp-on-dark-mut); }
.cp-hero--dark .cp-btn--ghost { --fg: #fff; --bd: rgba(255,255,255,.22); --bg: rgba(255,255,255,.05); }
.cp-hero--dark .cp-lead { color: var(--cp-on-dark); }
.cp-hero--dark .cp-display, .cp-hero--dark .cp-h1, .cp-hero--dark .cp-h2, .cp-hero--dark .cp-h3 { color: #fff; }
.cp-hero--dark .cp-trustline { color: var(--cp-on-dark-mut); }

/* ---------- 20g. INDUSTRIES — editorial index list ---------- */
.cp-indexlist { border-top: 1px solid var(--cp-border-2); }
.cp-indexrow { display: grid; grid-template-columns: 72px 1fr auto; gap: 28px; align-items: center; padding: 30px 10px; border-bottom: 1px solid var(--cp-border-2); transition: padding .35s var(--cp-ease), background .35s; }
.cp-indexrow:hover { background: var(--cp-bg-2); padding-inline: 26px; }
.cp-indexrow__num { font-size: clamp(26px,3vw,40px); font-weight: 800; color: var(--cp-border-2); letter-spacing: -.03em; transition: color .35s; }
.cp-indexrow:hover .cp-indexrow__num { color: var(--cp-red); }
.cp-indexrow__name { display: block; font-size: clamp(21px,2.3vw,30px); font-weight: 800; color: var(--cp-ink); letter-spacing: -.02em; line-height: 1.1; }
.cp-indexrow__desc { display: block; color: var(--cp-muted); margin-top: 6px; font-size: 15px; max-width: 54ch; }
.cp-indexrow__ico { width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--cp-border-2); display: grid; place-items: center; color: var(--cp-navy); transition: transform .35s var(--cp-ease), background .35s, color .35s, border-color .35s; }
.cp-indexrow:hover .cp-indexrow__ico { background: var(--cp-navy); color: #fff; border-color: var(--cp-navy); transform: rotate(-8deg); }

/* Split dark statement band (asymmetric CTA, not centered) */
.cp-band-dark { position: relative; overflow: hidden; background: var(--cp-dark); color: #fff; border-radius: var(--cp-r-lg); padding: clamp(40px,5vw,72px); }
.cp-band-dark__grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: center; }

/* Light split CTA variant */
.cp-cta-split { display: grid; grid-template-columns: 1.5fr 1fr; gap: 36px; align-items: center; padding: clamp(28px,4vw,52px); }
.cp-cta-split .cp-hero__actions { justify-content: flex-end; }
@media (max-width: 760px) { .cp-cta-split { grid-template-columns: 1fr; } .cp-cta-split .cp-hero__actions { justify-content: flex-start; } }

/* ---------- 20i. PEAK POLISH ---------- */
/* Tabular numerals on every data figure (no jitter) */
.cp-stat b, .cp-device__big, .cp-device__stat b, .cp-mock__big, .cp-mock__total b, .cp-quad__tile b, .cp-bento__big, .cp-indexrow__num, .cp-step__node, .cp-faq__num, [data-count] { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }

/* Eyebrow leading tick — designed detail on left-aligned eyebrows */
.cp-eyebrow:not(.cp-eyebrow--center)::before { content: ""; display: inline-block; width: 26px; height: 2px; border-radius: 2px; background: currentColor; }

/* Film grain over dark animated backgrounds (kills banding, reads cinematic) */
.cp-bg--dark-base::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .05; mix-blend-mode: overlay; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* Soft glow behind mocks on dark heroes */
.cp-hero--dark .cp-statpanel, .cp-hero--dark .cp-card, .cp-hero--dark .cp-mock { box-shadow: 0 30px 80px -24px rgba(0,0,0,.6), 0 0 130px -30px rgba(43,95,168,.55); }

/* Button press physics */
.cp-btn:active { transform: translateY(0) scale(.97); }

/* Sequenced reveal for status stacks (gated on cp-js so no-JS shows them) */
html.cp-js .cp-seq > .cp-status { opacity: 0; transform: translateX(14px); transition: opacity .5s var(--cp-ease), transform .5s var(--cp-ease); }
html.cp-js .cp-seq > .cp-status.is-in { opacity: 1; transform: none; }

/* Active page state in nav */
.cp-nav__links a.is-current, .cp-nav__trigger.is-current { color: var(--cp-navy); background: var(--cp-bg-2); }
.cp-mobile a.is-current { background: var(--cp-bg-2); color: var(--cp-navy); }

/* Live pulse on in-progress status */
.cp-status--wait .cp-status__dot { animation: cp-pulse 2.2s ease-in-out infinite; }
@keyframes cp-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(136,147,163,.45); } 50% { box-shadow: 0 0 0 7px rgba(136,147,163,0); } }

/* ============================================================
   PAGE-ONLY ELEMENTS — HIGH-RISK (hr-*). Used on no other page.
   ============================================================ */
.hr-compare { position: relative; display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); overflow: hidden; box-shadow: var(--cp-sh); }
.hr-compare__side { padding: clamp(24px,3vw,40px); }
.hr-compare__side--bad { background: #fff5f4; }
.hr-compare__side--good { background: linear-gradient(160deg,#0c1322,#15294a); color: #fff; padding-left: clamp(48px, 6vw, 78px); }
.hr-compare__label { font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 16px; }
.hr-compare__side--bad .hr-compare__label { color: var(--cp-red); }
.hr-compare__side--good .hr-compare__label { color: #7fb2ff; }
.hr-compare__item { display: flex; gap: 12px; align-items: flex-start; padding: 11px 0; font-size: 15.5px; }
.hr-compare__side--bad .hr-compare__item { color: #864542; }
.hr-compare__side--good .hr-compare__item { color: rgba(255,255,255,.86); }
.hr-compare__mark { width: 24px; height: 24px; flex: none; border-radius: 50%; display: grid; place-items: center; margin-top: 1px; }
.hr-compare__side--bad .hr-compare__mark { background: #f6d8d4; color: var(--cp-red); }
.hr-compare__side--good .hr-compare__mark { background: rgba(127,178,255,.18); color: #7fb2ff; }
.hr-compare__arrow { position: absolute; left: calc(50% - 20px); top: 50%; transform: translate(-50%,-50%); width: 58px; height: 58px; border-radius: 50%; background: var(--cp-navy); color: #fff; display: grid; place-items: center; box-shadow: 0 0 0 6px #fff, var(--cp-sh); z-index: 3; }
.hr-verts { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.hr-vert { border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); padding: 22px; background: #fff; box-shadow: var(--cp-sh-sm); transition: transform .3s var(--cp-ease), box-shadow .3s, border-color .3s; }
.hr-vert:hover { transform: translateY(-5px); box-shadow: var(--cp-sh); border-color: var(--cp-navy); }
.hr-vert__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.hr-vert__ico { width: 42px; height: 42px; border-radius: 11px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; }
.hr-meter { display: flex; gap: 3px; align-items: flex-end; }
.hr-meter i { width: 6px; height: 18px; border-radius: 2px; background: var(--cp-border-2); }
.hr-meter i.on { background: var(--cp-red); }
.hr-vert h3 { font-size: 16px; margin: 0; }
.hr-vert small { color: var(--cp-green); font-weight: 700; font-size: 12.5px; display: inline-flex; align-items: center; gap: 5px; }
.hr-verts__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 22px; margin-top: 22px; }
.hr-legend { display: inline-flex; align-items: center; gap: 10px; font-size: 13.5px; font-weight: 600; color: var(--cp-muted); }
.hr-ask { display: inline-flex; align-items: center; gap: 7px; font-size: 14.5px; font-weight: 700; color: var(--cp-navy); }
.hr-ask svg { transition: transform .2s var(--cp-ease); }
.hr-ask:hover svg { transform: translateX(3px); }
.hr-track { position: relative; max-width: 720px; margin-inline: auto; padding-left: 46px; }
/* The rail is positioned by JS (mountHrTrack) so the gradient line begins and ends
   exactly at the first and last dots — rounded caps keep both ends smooth. */
.hr-track__rail { position: absolute; left: 15px; width: 3px; border-radius: 999px; background: linear-gradient(180deg, var(--cp-navy), var(--cp-red)); pointer-events: none; }
.hr-stage { position: relative; padding-bottom: 34px; }
.hr-stage:last-child { padding-bottom: 0; }
.hr-stage__dot { position: absolute; left: -46px; top: -2px; width: 32px; height: 32px; border-radius: 50%; background: #fff; border: 2px solid var(--cp-navy); display: grid; place-items: center; font-weight: 800; font-size: 13px; color: var(--cp-navy); font-variant-numeric: tabular-nums; z-index: 2; }
.hr-stage h3 { margin: 0 0 4px; font-size: 19px; }
.hr-stage p { margin: 0; color: var(--cp-text); }

/* -------- Horizontal process flow (high-risk) -------- */
.hr-flow { --hr-flow-h: 6px; margin-top: 40px; }
.hr-flow__bar { position: relative; height: var(--hr-flow-h); border-radius: 999px; background: #e8ecf1; margin-bottom: 50px; }
.hr-flow__track { position: absolute; inset: 0; border-radius: 999px; }
.hr-flow__fill { position: absolute; left: 0; top: 0; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--cp-navy), var(--cp-red)); }
.hr-flow__steps { position: absolute; top: 50%; left: 0; right: 0; display: flex; justify-content: space-between; align-items: center; }
.hr-flow__step { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-top: -14px; }
.hr-flow__dot { width: 28px; height: 28px; border-radius: 50%; background: #fff; border: 2px solid #c8cdd4; display: grid; place-items: center; font-weight: 800; font-size: 11px; color: var(--cp-muted); font-variant-numeric: tabular-nums; z-index: 2; }
.hr-flow__step--done .hr-flow__dot { background: var(--cp-red); border-color: var(--cp-red); color: #fff; }
.hr-flow__step:last-child .hr-flow__dot { background: #fff; border-color: var(--cp-red); color: var(--cp-red); }
.hr-flow__label { font-size: 13.5px; font-weight: 700; color: var(--cp-muted); white-space: nowrap; }
.hr-flow__step--done .hr-flow__label { color: var(--cp-ink); }
.hr-flow__step:last-child .hr-flow__label { color: var(--cp-red); }
.hr-flow__meta { display: flex; align-items: center; gap: 12px; }
.hr-flow__days { font-size: 15px; font-weight: 800; color: var(--cp-ink); }
.hr-flow__note { font-size: 13.5px; color: var(--cp-muted); }
@media (max-width: 640px) { .hr-flow__step { gap: 6px; } .hr-flow__label { font-size: 11.5px; } .hr-flow__dot { width: 24px; height: 24px; font-size: 10px; } }

.hr-doc { background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); box-shadow: var(--cp-sh); overflow: hidden; }
.hr-doc__bar { background: var(--cp-ink); color: #fff; padding: 16px 22px; display: flex; align-items: center; gap: 11px; font-weight: 700; }
.hr-doc__bar svg { color: #7fb2ff; }
.hr-doc__body { padding: 6px 22px 18px; }
.hr-doc__line { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--cp-border); color: var(--cp-ink); font-weight: 600; font-size: 15px; }
.hr-doc__line:last-child { border-bottom: none; }
.hr-doc__check { width: 24px; height: 24px; border-radius: 7px; background: #e7f7ee; color: var(--cp-green); display: grid; place-items: center; flex: none; }
@media (max-width: 860px) { .hr-verts { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 760px) { .hr-compare { grid-template-columns: 1fr; } .hr-compare__side--good { padding-left: clamp(24px,3vw,40px); } .hr-compare__arrow { left: 50%; transform: translate(-50%,-50%) rotate(90deg); } }

/* ============================================================
   POS PINNED PANEL — pos-hardware only (pos-pin*). CSS-sticky
   scroll-pinned section; panels swap by scroll progress.
   ============================================================ */
.pos-pin { position: relative; }
.pos-pin__sticky { position: sticky; top: 0; min-height: 100vh; display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(28px, 5vw, 72px); align-items: center; padding-block: 8vh; }
.pos-pin__intro .cp-h2 { margin-bottom: 14px; }
.pos-steps { margin-top: 30px; display: grid; gap: 4px; }
.pos-step { display: grid; grid-template-columns: auto 1fr; gap: 16px; padding: 16px 0; opacity: .4; transition: opacity .4s var(--cp-ease); }
.pos-step.is-on { opacity: 1; }
.pos-step__num { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--cp-border-2); font-weight: 800; font-size: 14px; color: var(--cp-muted); font-variant-numeric: tabular-nums; transition: background .35s var(--cp-ease), color .35s, border-color .35s; }
.pos-step.is-on .pos-step__num { background: var(--cp-navy); color: #fff; border-color: var(--cp-navy); }
.pos-step h3 { margin: 6px 0 4px; font-size: clamp(18px, 1.7vw, 22px); color: var(--cp-ink); }
.pos-step p { margin: 0; font-size: 15px; color: var(--cp-text); max-width: 42ch; }
.pos-step__bar { grid-column: 1 / -1; height: 2px; margin-top: 14px; background: var(--cp-border); border-radius: 2px; overflow: hidden; }
.pos-step__bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--cp-navy), var(--cp-red)); border-radius: 2px; transition: width .12s linear; }

.pos-stage { position: relative; border-radius: var(--cp-r-lg); overflow: hidden; aspect-ratio: 4/3.2; background: linear-gradient(155deg, var(--cp-navy-deep) 0%, #243a63 55%, #7a2b3f 110%); box-shadow: var(--cp-sh-lg); }
.pos-stage::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 34px 34px; opacity: .55; pointer-events: none; }
.pos-screen { position: absolute; inset: 0; display: grid; place-items: center; padding: clamp(22px, 3vw, 40px); opacity: 0; visibility: hidden; transform: translateY(16px) scale(.985); transition: opacity .5s var(--cp-ease), transform .5s var(--cp-ease), visibility .5s; }
.pos-screen.is-on { opacity: 1; visibility: visible; transform: none; }
.pos-ui { width: 100%; max-width: 340px; background: #fff; border-radius: 18px; box-shadow: 0 30px 60px -22px rgba(0,0,0,.5); padding: 20px; position: relative; z-index: 1; }
.pos-ui__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.pos-ui__head b { font-size: 15px; color: var(--cp-ink); }
.pos-ui__tag { font-size: 11px; font-weight: 700; letter-spacing: .04em; padding: 5px 10px; border-radius: var(--cp-r-pill); background: #e7f7ee; color: var(--cp-green); }
.pos-ui__row { display: flex; justify-content: space-between; align-items: center; padding: 9px 0; font-size: 14px; color: var(--cp-text); border-top: 1px solid var(--cp-border); }
.pos-ui__row:first-of-type { border-top: none; }
.pos-ui__row b { color: var(--cp-ink); font-variant-numeric: tabular-nums; }
.pos-ui__total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 8px; padding-top: 12px; border-top: 2px solid var(--cp-ink); }
.pos-ui__total span { font-size: 13px; color: var(--cp-muted); font-weight: 600; }
.pos-ui__total b { font-size: 26px; font-weight: 800; color: var(--cp-ink); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.pos-ui__staff { display: flex; align-items: center; gap: 11px; padding: 10px 0; border-top: 1px solid var(--cp-border); }
.pos-ui__staff:first-of-type { border-top: none; }
.pos-ui__avatar { width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, var(--cp-navy), var(--cp-blue)); color: #fff; display: grid; place-items: center; font-size: 12px; font-weight: 700; flex: none; }
.pos-ui__staff span:not(.pos-ui__avatar) { font-size: 14px; color: var(--cp-ink); font-weight: 600; }
.pos-ui__staff small { margin-left: auto; font-size: 11px; font-weight: 700; padding: 4px 9px; border-radius: var(--cp-r-pill); }
.pos-ui__staff small.on { background: #e7f7ee; color: var(--cp-green); }
.pos-ui__staff small.off { background: var(--cp-bg-3); color: var(--cp-muted); }
.pos-ui__inv { padding: 9px 0; }
.pos-ui__inv:not(:last-child) { border-bottom: 1px solid var(--cp-border); }
.pos-ui__inv-top { display: flex; justify-content: space-between; font-size: 13.5px; color: var(--cp-ink); margin-bottom: 7px; }
.pos-ui__inv-top b { font-variant-numeric: tabular-nums; }
.pos-ui__bartrack { height: 7px; border-radius: 5px; background: var(--cp-bg-3); overflow: hidden; }
.pos-ui__bartrack i { display: block; height: 100%; border-radius: 5px; background: linear-gradient(90deg, var(--cp-navy), var(--cp-blue)); }
.pos-ui__chart { display: flex; align-items: flex-end; gap: 9px; height: 110px; margin-top: 6px; }
.pos-ui__chart i { flex: 1; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, var(--cp-navy), #3a63a8); }
.pos-ui__chart i:last-child { background: linear-gradient(180deg, var(--cp-red), #f0584f); }
@media (max-width: 860px) {
  .pos-pin { height: auto !important; }
  .pos-pin__sticky { position: static; min-height: 0; grid-template-columns: 1fr; gap: 28px; padding-block: 0; }
  .pos-step { opacity: 1; }
  .pos-step__bar { display: none; }
  .pos-stage { aspect-ratio: 4/3; }
  .pos-screen { position: relative; opacity: 1; visibility: visible; transform: none; }
  .pos-screen:not(:first-child) { display: none; }
}

/* ============================================================
   PAGE-ONLY ELEMENTS — CRYPTO (cr-*)
   ============================================================ */
.cr-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; }
.cr-node { background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); padding: 26px 20px; text-align: center; box-shadow: var(--cp-sh-sm); }
.cr-node__ico { width: 48px; height: 48px; border-radius: 12px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; margin: 0 auto 12px; }
.cr-node b { display: block; color: var(--cp-ink); font-size: 15px; }
.cr-node small { color: var(--cp-muted); font-size: 13px; }
.cr-node .amt { font-size: 22px; font-weight: 800; color: var(--cp-navy); letter-spacing: -.02em; margin-top: 8px; display: block; font-variant-numeric: tabular-nums; }
.cr-conn { color: var(--cp-border-2); padding: 0 10px; }
.cr-settle { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.cr-opt { position: relative; border: 1px solid var(--cp-border); border-radius: var(--cp-r-card); padding: 28px; background: #fff; box-shadow: var(--cp-sh-sm); transition: transform .3s var(--cp-ease), box-shadow .3s, border-color .3s; }
.cr-opt:hover { transform: translateY(-4px); box-shadow: var(--cp-sh); border-color: var(--cp-navy); }
.cr-opt__tag { position: absolute; top: 24px; right: 24px; font-size: 12px; font-weight: 700; color: var(--cp-navy); background: var(--cp-bg-3); padding: 5px 12px; border-radius: var(--cp-r-pill); }
.cr-opt__ico { width: 52px; height: 52px; border-radius: 14px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; margin-bottom: 16px; }
/* Rails transit map — two payment lines merging into one settlement terminal */
.cr-map-wrap { overflow-x: auto; padding: 4px 0 6px; }
.cr-map { display: block; width: 100%; min-width: 660px; max-width: 920px; height: auto; margin-inline: auto; font-family: var(--cp-font); }
.cr-map__line { fill: none; stroke-width: 3; stroke-linecap: round; }
.cr-map__line--digital { stroke: rgba(224,36,28,.26); }
.cr-map__line--trad { stroke: rgba(23,58,109,.24); }
.cr-map__pulse { fill: none; stroke-width: 3.4; stroke-linecap: round; stroke-dasharray: 46 954; }
.cr-map__pulse--digital { stroke: var(--cp-red); filter: drop-shadow(0 0 5px rgba(224,36,28,.85)); animation: cr-pulse 3.4s linear infinite; }
.cr-map__pulse--trad { stroke: var(--cp-blue); filter: drop-shadow(0 0 5px rgba(43,95,168,.85)); animation: cr-pulse 3.4s linear infinite; animation-delay: 1.2s; }
@keyframes cr-pulse { from { stroke-dashoffset: 1000; } to { stroke-dashoffset: 0; } }
.cr-map__stop { fill: #fff; stroke-width: 3; }
.cr-map__stop--digital { stroke: var(--cp-red); }
.cr-map__stop--trad { stroke: var(--cp-blue); }
.cr-map__stopg { transition: transform .2s var(--cp-ease); }
.cr-map__label { fill: var(--cp-ink); font-weight: 700; font-size: 17px; }
.cr-map__linename { font-weight: 800; font-size: 14px; letter-spacing: .04em; }
.cr-map__linename--digital { fill: var(--cp-red); }
.cr-map__linename--trad { fill: var(--cp-navy); }
.cr-map__term { fill: var(--cp-navy); }
.cr-map__termhalo { fill: rgba(23,58,109,.10); animation: cr-termpulse 3s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes cr-termpulse { 0%,100% { transform: scale(.82); opacity: .6; } 50% { transform: scale(1.08); opacity: 1; } }
.cr-map__termlabel { fill: var(--cp-ink); font-weight: 800; font-size: 19px; }
.cr-map__termsub { fill: var(--cp-muted); font-weight: 600; font-size: 13.5px; }
@media (prefers-reduced-motion: reduce) { .cr-map__pulse { animation: none; stroke-dashoffset: 120; } .cr-map__termhalo { animation: none; } }
@media (max-width: 760px) { .cr-flow { grid-template-columns: 1fr; gap: 14px; } .cr-conn { transform: rotate(90deg); justify-self: center; } .cr-settle { grid-template-columns: 1fr; } }

/* ============================================================
   PAGE-ONLY ELEMENTS — FUNDING (fn-*)
   ============================================================ */
/* Interactive funding estimator */
.fn-est { position: relative; display: grid; grid-template-columns: 1.04fr .96fr; gap: clamp(18px,2.6vw,32px); max-width: 980px; margin-inline: auto; align-items: stretch; }
/* soft blue + red glow held fully inside the cards' footprint — no bleed, no frame */
.fn-est::before { content: ""; position: absolute; inset: 14% 12%; z-index: 0; pointer-events: none; border-radius: 40px; filter: blur(34px); opacity: .5; background: radial-gradient(46% 70% at 18% 22%, rgba(43,95,168,.55), transparent 70%), radial-gradient(48% 74% at 84% 82%, rgba(224,36,28,.5), transparent 70%); }
.fn-est__control, .fn-est__result { position: relative; z-index: 1; }
.fn-est__control { background-color: #fff; background-image: linear-gradient(150deg, rgba(43,95,168,.22), rgba(255,255,255,0) 48%, rgba(224,36,28,.2)); border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); box-shadow: var(--cp-sh); padding: clamp(26px,3vw,40px); display: flex; flex-direction: column; justify-content: space-between; gap: 20px; }
.fn-est__eyebrow { display: block; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--cp-red); margin-bottom: 10px; }
.fn-est__q { font-size: 15px; font-weight: 700; color: var(--cp-ink); margin: 0; }
.fn-est__hint { margin: 0; font-size: 13px; color: var(--cp-muted); line-height: 1.5; }
.fn-est__slider { -webkit-appearance: none; appearance: none; width: 100%; height: 8px; border-radius: 999px; background: var(--cp-bg-3); outline: none; cursor: pointer; }
.fn-est__slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 26px; height: 26px; border-radius: 50%; background: #fff; border: 3px solid var(--cp-red); box-shadow: var(--cp-sh); cursor: grab; transition: transform .15s var(--cp-ease); }
.fn-est__slider::-webkit-slider-thumb:active { transform: scale(1.12); cursor: grabbing; }
.fn-est__slider::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 3px solid var(--cp-red); box-shadow: var(--cp-sh); cursor: grab; }
.fn-est__slider:focus-visible { box-shadow: 0 0 0 4px rgba(224,36,28,.2); }
.fn-est__scale { display: flex; justify-content: space-between; margin-top: 13px; font-size: 12px; color: var(--cp-muted); font-weight: 600; }
.fn-est__segs { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin-top: 20px; }
.fn-est__seg { text-align: center; font-size: 12.5px; font-weight: 700; color: var(--cp-muted); padding: 9px 4px; border-radius: var(--cp-r-pill); background: var(--cp-bg-2); border: 1px solid transparent; transition: color .25s, background .25s, border-color .25s, box-shadow .25s; }
.fn-est__seg.is-active { color: var(--cp-navy); background: #fff; border-color: var(--cp-navy); box-shadow: var(--cp-sh-sm); }
.fn-est__result { background: linear-gradient(160deg,#15294a,#0c1322); color: #fff; border-radius: var(--cp-r-lg); padding: clamp(26px,3vw,40px); box-shadow: var(--cp-sh-lg); }
.fn-est__badge { display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: 6px 13px; border-radius: var(--cp-r-pill); background: var(--cp-red); color: #fff; }
.fn-est__label { margin-top: 18px; font-size: 13px; color: rgba(255,255,255,.7); font-weight: 600; }
.fn-est__amt { font-size: clamp(38px,6vw,54px); font-weight: 800; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; margin-top: 4px; }
.fn-est__perks { list-style: none; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid rgba(255,255,255,.13); display: grid; gap: 11px; }
.fn-est__perks li { display: flex; gap: 11px; align-items: center; font-size: 14.5px; color: rgba(255,255,255,.9); }
.fn-est__perks svg { color: #7fb2ff; flex: none; }
.fn-est__decide { margin-top: 18px; font-size: 14px; color: rgba(255,255,255,.75); }
.fn-est__decide b { color: #fff; font-variant-numeric: tabular-nums; }
.fn-est__result .cp-btn { margin-top: 22px; width: 100%; }
@media (max-width: 760px) { .fn-est { grid-template-columns: 1fr; } }
.fn-alloc { max-width: 760px; margin-inline: auto; }
.fn-alloc__bar { display: flex; height: 56px; border-radius: 14px; overflow: hidden; box-shadow: var(--cp-sh-sm); }
.fn-alloc__seg { display: grid; place-items: center; color: #fff; font-weight: 700; font-size: 13px; }
.fn-alloc__legend { display: flex; flex-wrap: wrap; gap: 20px; justify-content: center; margin-top: 20px; }
.fn-alloc__key { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--cp-text); font-weight: 600; }
.fn-alloc__dot { width: 12px; height: 12px; border-radius: 3px; }
.fn-types { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.fn-type { border: 1px solid var(--cp-border); border-radius: var(--cp-r-card); overflow: hidden; background: #fff; box-shadow: var(--cp-sh-sm); transition: transform .3s var(--cp-ease), box-shadow .3s; }
.fn-type:hover { transform: translateY(-4px); box-shadow: var(--cp-sh); }
.fn-type__head { padding: 22px; background: var(--cp-bg-2); border-bottom: 1px solid var(--cp-border); display: flex; align-items: center; gap: 12px; }
.fn-type__head .cp-card__icon { margin: 0; width: 42px; height: 42px; }
.fn-type__head h3 { margin: 0; font-size: 18px; }
.fn-type__row { display: flex; justify-content: space-between; gap: 12px; padding: 13px 22px; border-bottom: 1px solid var(--cp-border); font-size: 14.5px; }
.fn-type__row:last-child { border-bottom: none; }
.fn-type__row span { color: var(--cp-muted); }
.fn-type__row b { color: var(--cp-ink); text-align: right; }
@media (max-width: 860px) { .fn-types { grid-template-columns: 1fr; } }

/* ============================================================
   PAGE-ONLY ELEMENTS — MERCHANT (mp-*)
   ============================================================ */
/* ---- Interactive "ways to accept" switcher ---- */
.mp-switch { max-width: 1040px; margin-inline: auto; }
.mp-switch__tabs { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin-bottom: 22px; }
.mp-switch__tab { display: flex; align-items: center; gap: 12px; text-align: left; padding: 14px 16px; border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); background: #fff; box-shadow: var(--cp-sh-sm); cursor: pointer; font-family: inherit; position: relative; overflow: hidden; transition: transform .25s var(--cp-ease), box-shadow .25s, border-color .25s; }
.mp-switch__tab::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--cp-red); transform: scaleY(0); transform-origin: bottom; transition: transform .3s var(--cp-ease); }
.mp-switch__tab:hover { transform: translateY(-3px); box-shadow: var(--cp-sh); }
.mp-switch__tab.is-active { border-color: var(--cp-navy); box-shadow: var(--cp-sh); }
.mp-switch__tab.is-active::before { transform: scaleY(1); }
.mp-switch__tabico { flex: none; width: 40px; height: 40px; border-radius: 11px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; transition: background .25s, color .25s; }
.mp-switch__tab.is-active .mp-switch__tabico { background: var(--cp-navy); color: #fff; }
.mp-switch__tabtxt { display: flex; flex-direction: column; line-height: 1.2; }
.mp-switch__tabtxt b { font-size: 15px; color: var(--cp-ink); }
.mp-switch__tabtxt i { font-style: normal; font-size: 12px; color: var(--cp-muted); }

.mp-switch__stage { border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); background: #fff; box-shadow: var(--cp-sh); overflow: hidden; }
.mp-switch__panel { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(24px,4vw,52px); align-items: center; padding: clamp(26px,3.4vw,46px); }
.mp-switch__panel[hidden] { display: none; }
.mp-switch__panel.is-active { animation: mp-panelin .45s var(--cp-ease) both; }
@keyframes mp-panelin { 0% { opacity: 0; transform: translateY(14px); } 100% { opacity: 1; transform: none; } }
.mp-switch__kicker { display: inline-block; font-size: 12.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--cp-red); margin-bottom: 12px; }
.mp-switch__copy h3 { font-size: clamp(20px,2.4vw,26px); margin: 0 0 10px; color: var(--cp-ink); line-height: 1.18; }
.mp-switch__copy > p { margin: 0 0 18px; color: var(--cp-text); font-size: 15px; }
.mp-switch__list { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 10px; }
.mp-switch__list li { position: relative; padding-left: 28px; font-size: 14.5px; color: var(--cp-text); }
.mp-switch__list li::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--cp-bg-3) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23173a6d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat; }

/* ---- CSS device mockups (no images needed) ---- */
.mp-switch__visual { display: grid; place-items: center; min-height: 280px; }
.mp-dev { position: relative; font-family: inherit; }
.mp-dev__amt { font-weight: 800; font-variant-numeric: tabular-nums; color: var(--cp-ink); }
.mp-dev__sub { display: block; font-size: 11px; color: var(--cp-muted); margin-top: 3px; }
.mp-dev__pay { background: var(--cp-navy); color: #fff; text-align: center; font-weight: 700; font-size: 13.5px; padding: 11px; border-radius: 10px; }
.mp-dev__field { height: 13px; border-radius: 5px; background: var(--cp-bg-3); }
/* terminal */
.mp-dev--terminal { width: 220px; padding: 18px 18px 22px; border-radius: 26px; background: linear-gradient(160deg,#1d2740,#0f1a2e); box-shadow: var(--cp-sh-lg); }
.mp-dev--terminal .mp-dev__screen { background: #f6f8fc; border-radius: 12px; padding: 16px; text-align: center; }
.mp-dev--terminal .mp-dev__amt { font-size: 24px; }
.mp-dev__keys { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin: 16px 4px 0; }
.mp-dev__keys i { height: 22px; border-radius: 6px; background: rgba(255,255,255,.12); }
.mp-dev__slot { height: 6px; border-radius: 4px; background: rgba(255,255,255,.22); margin: 16px 12px 0; }
.mp-dev__card { position: absolute; right: -16px; bottom: 30px; width: 74px; height: 46px; border-radius: 8px; background: linear-gradient(135deg,var(--cp-red),#b51910); box-shadow: var(--cp-sh); transform: rotate(8deg); }
.mp-dev__card::after { content: ""; position: absolute; left: 9px; top: 13px; width: 16px; height: 12px; border-radius: 3px; background: rgba(255,255,255,.7); }
/* browser */
.mp-dev--browser { width: 300px; border-radius: 16px; background: #fff; border: 1px solid var(--cp-border); box-shadow: var(--cp-sh-lg); overflow: hidden; }
.mp-dev__bar { display: flex; gap: 7px; padding: 12px 14px; background: var(--cp-bg-2); border-bottom: 1px solid var(--cp-border); }
.mp-dev__bar i { width: 9px; height: 9px; border-radius: 50%; background: var(--cp-border); }
.mp-dev__cart { padding: 20px; display: grid; gap: 11px; }
.mp-dev__line { height: 14px; width: 70%; border-radius: 5px; background: var(--cp-ink); }
.mp-dev__line--sm { width: 45%; height: 10px; background: var(--cp-bg-3); }
.mp-dev--browser .mp-dev__pay { margin-top: 6px; }
/* virtual terminal */
.mp-dev--vt { width: 250px; padding: 22px; border-radius: 18px; background: #fff; border: 1px solid var(--cp-border); box-shadow: var(--cp-sh-lg); }
.mp-dev__vtlabel { display: block; font-size: 12px; font-weight: 700; color: var(--cp-muted); margin-bottom: 14px; }
.mp-dev__field--wide { height: 16px; margin-bottom: 16px; }
.mp-dev__pad { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-bottom: 16px; }
.mp-dev__pad i { height: 30px; border-radius: 8px; background: var(--cp-bg-2); display: grid; place-items: center; font-style: normal; font-weight: 700; font-size: 13px; color: var(--cp-ink); }
/* phone */
.mp-dev--phone { width: 168px; height: 300px; border-radius: 30px; background: linear-gradient(160deg,#1d2740,#0f1a2e); padding: 12px; box-shadow: var(--cp-sh-lg); }
.mp-dev__notch { width: 56px; height: 6px; border-radius: 4px; background: rgba(255,255,255,.25); margin: 4px auto 10px; }
.mp-dev__pscreen { height: calc(100% - 30px); border-radius: 20px; background: #f6f8fc; display: grid; place-content: center; justify-items: center; gap: 14px; text-align: center; padding: 16px; }
.mp-dev__pscreen .mp-dev__amt { font-size: 28px; }
.mp-dev__wave { width: 56px; height: 56px; border-radius: 50%; background: radial-gradient(circle, transparent 36%, var(--cp-navy) 37%, var(--cp-navy) 44%, transparent 45%, transparent 56%, var(--cp-navy) 57%, var(--cp-navy) 64%, transparent 65%); animation: mp-pulse 1.8s var(--cp-ease) infinite; }
@keyframes mp-pulse { 0%,100% { opacity: .55; transform: scale(.94); } 50% { opacity: 1; transform: scale(1.04); } }
@media (prefers-reduced-motion: reduce) { .mp-switch__panel.is-active { animation: none; } .mp-dev__wave { animation: none; } }
.mp-rate { max-width: 720px; margin-inline: auto; background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); box-shadow: var(--cp-sh); padding: clamp(24px,3vw,38px); }
.mp-rate__row { display: grid; grid-template-columns: 170px 1fr 56px; gap: 16px; align-items: center; padding: 15px 0; border-bottom: 1px solid var(--cp-border); }
.mp-rate__label { font-weight: 700; color: var(--cp-ink); font-size: 14.5px; }
.mp-rate__label small { display: block; font-weight: 500; color: var(--cp-muted); font-size: 12.5px; }
.mp-rate__track { height: 9px; border-radius: 6px; background: #e3e9f2; overflow: hidden; }
.mp-rate__fill { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg,var(--cp-navy),var(--cp-blue)); transform: scaleX(0); transform-origin: left; transition: transform 1s var(--cp-ease); }
.mp-rate__fill--mut { background: linear-gradient(90deg,var(--cp-navy),var(--cp-blue)); }
.cp-reveal.is-in .mp-rate__fill, .cp-reveal.is-shown .mp-rate__fill { transform: scaleX(1); }
.mp-rate__row:nth-child(2) .mp-rate__fill { transition-delay: .12s; }
.mp-rate__row:nth-child(3) .mp-rate__fill { transition-delay: .24s; }
@media (prefers-reduced-motion: reduce) { .mp-rate__fill { transition: none; transform: scaleX(1); } }
.mp-rate__val { font-variant-numeric: tabular-nums; font-weight: 800; color: var(--cp-navy); text-align: right; }
.mp-rate__total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 20px; padding-top: 18px; border-top: 2px solid var(--cp-ink); }
.mp-rate__total span { font-weight: 700; color: var(--cp-ink); }
.mp-rate__total b { font-size: 26px; color: var(--cp-navy); font-variant-numeric: tabular-nums; }

/* ---- Without vs With Chance comparison ---- */
.mp-compare { position: relative; max-width: 980px; margin-inline: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; }
.mp-compare__col { border-radius: var(--cp-r-lg); padding: clamp(24px,3vw,36px); }
.mp-compare__col--bad { background: var(--cp-bg-2); border: 1px solid var(--cp-border); }
.mp-compare__col--good { background: linear-gradient(155deg,#1d3a66,#122a52); box-shadow: var(--cp-sh-lg); color: #fff; }
.mp-compare__head { margin-bottom: 18px; }
.mp-compare__tag { display: inline-block; font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; padding: 5px 11px; border-radius: var(--cp-r-pill); margin-bottom: 12px; }
.mp-compare__col--bad .mp-compare__tag { background: #fdecec; color: var(--cp-red); }
.mp-compare__col--good .mp-compare__tag { background: rgba(255,255,255,.16); color: #fff; }
.mp-compare__head h3 { margin: 0; font-size: clamp(18px,2.2vw,22px); color: var(--cp-ink); }
.mp-compare__col--good .mp-compare__head h3 { color: #fff; }
.mp-compare__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 13px; }
.mp-compare__list li { display: flex; align-items: flex-start; gap: 12px; font-size: 14.5px; line-height: 1.45; color: var(--cp-text); }
.mp-compare__col--good .mp-compare__list li { color: rgba(255,255,255,.92); }
.mp-compare__ico { flex: none; width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; margin-top: 1px; }
.mp-compare__ico--x { background: #fdecec; color: var(--cp-red); }
.mp-compare__ico--check { background: rgba(255,255,255,.16); color: #fff; }
.mp-compare__cta { margin-top: 24px; }
.mp-compare__vs { position: absolute; left: 50%; top: 54px; transform: translate(-50%,-50%); z-index: 2; }
.mp-compare__vs span { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #fff; border: 1px solid var(--cp-border); box-shadow: var(--cp-sh); font-weight: 800; font-size: 13px; color: var(--cp-muted); text-transform: uppercase; }
@media (max-width: 720px) {
  .mp-compare { grid-template-columns: 1fr; gap: 16px; }
  .mp-compare__vs { display: none; }
}

@media (max-width: 860px) { .mp-switch__tabs { grid-template-columns: repeat(2,1fr); } .mp-switch__panel { grid-template-columns: 1fr; } .mp-switch__visual { order: -1; min-height: 0; } }
@media (max-width: 760px) { .mp-rate__row { grid-template-columns: 1fr 56px; } .mp-rate__track { display: none; } }
@media (max-width: 460px) { .mp-switch__tabtxt i { display: none; } }

/* ============================================================
   PAGE-ONLY ELEMENTS — ECOMMERCE (ec-*)
   ============================================================ */
.ec-stack { display: grid; gap: 14px; max-width: 720px; margin-inline: auto; }
.ec-layer { position: relative; display: flex; align-items: center; gap: 16px; padding: 20px 24px; border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); background: #fff; box-shadow: var(--cp-sh-sm); }
.ec-layer__ico { width: 44px; height: 44px; border-radius: 11px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; flex: none; }
.ec-layer b { display: block; color: var(--cp-ink); font-size: 16px; }
.ec-layer small { color: var(--cp-muted); font-size: 13.5px; }
.ec-layer__tag { margin-left: auto; font-size: 12px; font-weight: 700; color: var(--cp-navy); background: var(--cp-bg-3); padding: 6px 13px; border-radius: var(--cp-r-pill); white-space: nowrap; }
.ec-layer:not(:last-child)::after { content: ""; position: absolute; left: 46px; top: 100%; height: 14px; width: 2px; background: var(--cp-border-2); z-index: 1; }
.ec-ways { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.ec-way { border: 1px solid var(--cp-border); border-radius: var(--cp-r-card); overflow: hidden; background: #fff; box-shadow: var(--cp-sh-sm); transition: transform .3s var(--cp-ease), box-shadow .3s; }
.ec-way:hover { transform: translateY(-5px); box-shadow: var(--cp-sh); }
.ec-way__top { height: 6px; background: linear-gradient(90deg,var(--cp-navy),var(--cp-red)); }
.ec-way__body { padding: 26px; }
.ec-way__ico { width: 50px; height: 50px; border-radius: 13px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; margin-bottom: 16px; }
.ec-way h3 { margin: 0 0 8px; }
.ec-way p { margin: 0; font-size: 14.5px; color: var(--cp-text); }
@media (max-width: 860px) { .ec-ways { grid-template-columns: 1fr; } }

/* ---------- ANIMATION POLISH ---------- */
@keyframes cp-answer { from { opacity: 0; transform: translateY(-8px); } }
@keyframes cp-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

/* Accessible focus rings (keyboard only) — also helps dev handoff */
.cp-btn:focus-visible, .cp-nav__links a:focus-visible, .cp-nav__trigger:focus-visible, .cp-mobile a:focus-visible, .cp-faq__q:focus-visible, .cp-input:focus-visible, .cp-select:focus-visible, .cp-textarea:focus-visible, .cp-footer a:focus-visible, .cp-indexrow:focus-visible, .cp-postcard:focus-visible { outline: 3px solid rgba(43,95,168,.55); outline-offset: 3px; border-radius: 8px; }

/* ---------- LIVE PRODUCT MOTION ---------- */
[data-live] { transition: color .7s var(--cp-ease); }
[data-live].cp-tick { color: var(--cp-red); transition: none; }
@keyframes cp-flowpulse { 0%, 60%, 100% { box-shadow: 0 0 0 0 rgba(43,95,168,0); } 30% { box-shadow: 0 0 0 7px rgba(43,95,168,.14); } }
@media (prefers-reduced-motion: no-preference) {
  .cp-flow__item .cp-flow__ico { animation: cp-flowpulse 3.2s ease-in-out infinite; }
  .cp-flow__item:nth-child(2) .cp-flow__ico { animation-delay: .4s; }
  .cp-flow__item:nth-child(3) .cp-flow__ico { animation-delay: .8s; }
  .cp-flow__item:nth-child(4) .cp-flow__ico { animation-delay: 1.2s; }
}

/* ============================================================
   INDUSTRY EXPLORER — homepage only (ind-*). Interactive tabs.
   ============================================================ */
.ind-explorer { display: grid; grid-template-columns: minmax(300px, 380px) 1fr; gap: clamp(20px, 2.6vw, 36px); align-items: stretch; }
.ind-list { display: flex; flex-direction: column; gap: 6px; }
.ind-tab { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; padding: 16px 18px; border: 1px solid transparent; border-radius: var(--cp-r-md); background: transparent; font-family: inherit; cursor: pointer; color: #46506180; transition: background .25s var(--cp-ease), border-color .25s, box-shadow .25s, transform .2s; position: relative; }
.ind-tab__ico { width: 44px; height: 44px; flex: none; border-radius: 12px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; transition: background .25s, color .25s; }
.ind-tab__ico svg { width: 22px; height: 22px; }
.ind-tab__txt { display: flex; flex-direction: column; line-height: 1.2; }
.ind-tab__txt b { font-size: 16.5px; font-weight: 700; color: var(--cp-ink); transition: color .25s; }
.ind-tab__txt small { font-size: 13px; color: var(--cp-muted); }
.ind-tab__chev { margin-left: auto; color: var(--cp-border-2); transition: transform .25s var(--cp-ease), color .25s; }
.ind-tab:hover { background: #fff; border-color: var(--cp-border); box-shadow: var(--cp-sh-sm); }
.ind-tab.is-on { background: #fff; border-color: var(--cp-border); box-shadow: var(--cp-sh); transform: translateX(2px); }
.ind-tab.is-on::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 4px; border-radius: 0 4px 4px 0; background: var(--cp-red); }
.ind-tab.is-on .ind-tab__ico { background: var(--cp-navy); color: #fff; }
.ind-tab.is-on .ind-tab__chev { transform: translateX(4px); color: var(--cp-navy); }

.ind-stage { position: relative; border-radius: var(--cp-r-lg); overflow: hidden; min-height: 472px; border: 1px solid var(--cp-border); box-shadow: var(--cp-sh-lg); background: var(--cp-dark); }
.ind-panel { position: absolute; inset: 0; display: grid; grid-template-rows: .85fr 1.15fr; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .5s var(--cp-ease), transform .5s var(--cp-ease), visibility .5s; }
.ind-panel.is-on { opacity: 1; visibility: visible; transform: none; }
.ind-panel__visual { position: relative; overflow: hidden; display: grid; place-items: center; background: linear-gradient(150deg, var(--cp-navy-deep) 0%, #243a63 55%, #7a2b3f 100%); }
.ind-panel__visual::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 34px 34px; opacity: .5; }
.ind-panel__glyph { position: relative; z-index: 1; width: 96px; height: 96px; border-radius: 26px; display: grid; place-items: center; color: #fff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(4px); }
.ind-panel__glyph svg { width: 46px; height: 46px; }
.ind-panel__stat { position: absolute; top: 18px; right: 18px; z-index: 2; display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border-radius: var(--cp-r-pill); background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .01em; backdrop-filter: blur(6px); }
.ind-panel__stat i { width: 6px; height: 6px; border-radius: 50%; background: #6ee7a8; box-shadow: 0 0 8px #6ee7a8; }
.ind-panel__body { background: #fff; padding: clamp(24px, 2.6vw, 34px); display: flex; flex-direction: column; }
.ind-panel__body h3 { margin: 0 0 8px; font-size: clamp(22px, 2vw, 28px); color: var(--cp-ink); letter-spacing: -.01em; }
.ind-panel__body p { margin: 0; color: var(--cp-text); font-size: 15.5px; max-width: 52ch; }
.ind-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 20px; }
.ind-tags span { display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: var(--cp-r-pill); background: var(--cp-bg-2); border: 1px solid var(--cp-border); font-size: 13.5px; font-weight: 600; color: var(--cp-ink); }
.ind-tags svg { width: 14px; height: 14px; color: var(--cp-red); }
/* richer feature list (fills the body, equalizes every tab) */
.ind-feat { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: clamp(16px, 2.2vw, 26px); align-content: center; flex: 1 1 auto; }
.ind-feat li { display: flex; gap: 15px; align-items: flex-start; }
.ind-feat__ico { flex: none; width: 38px; height: 38px; border-radius: 11px; background: #fdecec; color: var(--cp-red); display: grid; place-items: center; margin-top: 1px; }
.ind-feat__ico svg { width: 20px; height: 20px; }
.ind-feat__txt { display: flex; flex-direction: column; gap: 3px; }
.ind-feat__txt b { font-size: 16.5px; font-weight: 700; color: var(--cp-ink); letter-spacing: -.005em; }
.ind-feat__txt span { font-size: 14.5px; color: var(--cp-muted); line-height: 1.5; }
@media (max-width: 860px) {
  .ind-explorer { grid-template-columns: 1fr; }
  .ind-list { flex-direction: row; overflow-x: auto; gap: 8px; padding-bottom: 6px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .ind-list::-webkit-scrollbar { display: none; }
  .ind-tab { flex: none; width: auto; }
  .ind-tab__txt small, .ind-tab__chev { display: none; }
  .ind-tab.is-on { transform: none; }
  .ind-stage { min-height: 540px; }
}

/* ============================================================
   SCROLL-FX LAYER — directional reveals, stagger, parallax,
   nav scroll-progress. Square-style "every section flows".
   ============================================================ */
/* Scroll progress line on the nav pill — full rounded track integrated into the pill */
.cp-nav { position: relative; }
.cp-nav__progressclip { position: absolute; inset: 0; border-radius: var(--cp-r-pill); overflow: hidden; pointer-events: none; }
.cp-nav__progress { position: absolute; left: 0; right: 0; bottom: 5px; height: 2px; background: rgba(15,26,46,.05); -webkit-mask-image: linear-gradient(90deg, transparent 0, transparent 22px, #000 54px, #000 calc(100% - 54px), transparent calc(100% - 22px), transparent 100%); mask-image: linear-gradient(90deg, transparent 0, transparent 22px, #000 54px, #000 calc(100% - 54px), transparent calc(100% - 22px), transparent 100%); }
.cp-nav__progress i { display: block; height: 100%; width: 0%; border-radius: 999px; background: linear-gradient(90deg, var(--cp-navy), var(--cp-red)); transition: width .15s var(--cp-ease); }


/* Directional reveals (gated on cp-js, reduced-motion safe via §22) */
html.cp-js [data-anim] { opacity: 0; will-change: transform, opacity; transition: opacity .7s var(--cp-ease), transform .7s var(--cp-ease); }
html.cp-js [data-anim="up"]    { transform: translateY(30px); }
html.cp-js [data-anim="left"]  { transform: translateX(-40px); }
html.cp-js [data-anim="right"] { transform: translateX(40px); }
html.cp-js [data-anim="zoom"]  { transform: scale(.94); }
html.cp-js [data-anim].is-in   { opacity: 1; transform: none; }
/* Stagger children of a [data-stagger] container */
html.cp-js [data-stagger] > * { opacity: 0; transform: translateY(26px); transition: opacity .6s var(--cp-ease), transform .6s var(--cp-ease); }
html.cp-js [data-stagger].is-in > * { opacity: 1; transform: none; }
html.cp-js [data-stagger].is-in > *:nth-child(1) { transition-delay: .04s; }
html.cp-js [data-stagger].is-in > *:nth-child(2) { transition-delay: .12s; }
html.cp-js [data-stagger].is-in > *:nth-child(3) { transition-delay: .20s; }
html.cp-js [data-stagger].is-in > *:nth-child(4) { transition-delay: .28s; }
html.cp-js [data-stagger].is-in > *:nth-child(5) { transition-delay: .36s; }
html.cp-js [data-stagger].is-in > *:nth-child(6) { transition-delay: .44s; }
html.cp-js [data-stagger].is-in > *:nth-child(7) { transition-delay: .52s; }
html.cp-js [data-stagger].is-in > *:nth-child(8) { transition-delay: .60s; }
@media (prefers-reduced-motion: no-preference) {
  .cp-faq__item[open] .cp-faq__a { animation: cp-answer .42s var(--cp-ease); }
  .cp-hero .cp-device, .cp-hero .cp-mock, .cp-hero .cp-statpanel { animation: cp-float 7s ease-in-out infinite; will-change: transform; }
}

/* ---------- 20h. FAQ PAGE — two-column with sticky aside + categories ---------- */
.cp-faqpage { display: grid; grid-template-columns: 340px 1fr; gap: clamp(32px,5vw,64px); align-items: start; }
.cp-faqpage__aside { position: sticky; top: 104px; }
.cp-faqcat { margin-bottom: 36px; }
.cp-faqcat:last-child { margin-bottom: 0; }
.cp-faqcat__label { font-size: 13px; text-transform: uppercase; letter-spacing: .12em; color: var(--cp-red); font-weight: 700; margin: 0 0 16px; }

@media (max-width: 860px) {
  .cp-faqpage { grid-template-columns: 1fr; }
  .cp-faqpage__aside { position: static; }
  .cp-band-dark__grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .cp-indexrow { grid-template-columns: 56px 1fr; }
  .cp-indexrow__ico { display: none; }
}
.cp-mt-s { margin-top: 14px; } .cp-mt-m { margin-top: 26px; } .cp-mt-l { margin-top: 44px; }
.cp-cols-2 { grid-template-columns: repeat(2,1fr); }
.cp-cols-3 { grid-template-columns: repeat(3,1fr); }
.cp-cols-4 { grid-template-columns: repeat(4,1fr); }
.cp-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,72px); align-items: center; }
.cp-check { display: flex; align-items: flex-start; gap: 14px; margin: 16px 0; }
.cp-check__ico { width: 26px; height: 26px; flex: none; border-radius: 50%; background: var(--cp-red); color: #fff; display: grid; place-items: center; margin-top: 1px; }
.cp-check__ico svg { width: 15px; height: 15px; }
.cp-check span { font-weight: 600; color: var(--cp-ink); }
.cp-section--dark .cp-check span { color: #fff; }

/* ---------- 21. RESPONSIVE ---------- */
@media (max-width: 980px) {
  .cp-hero__grid, .cp-split, .cp-bento { grid-template-columns: 1fr; }
  .cp-featrow { grid-template-columns: 1fr; gap: 28px; }
  .cp-featrow--rev .cp-featrow__media { order: 0; }
  .cp-mini { grid-template-columns: repeat(2,1fr); gap: 28px; }
  .cp-cols-3, .cp-cols-4, .cp-steps__grid, .cp-device__stats { grid-template-columns: repeat(2,1fr); }
  .cp-partners { grid-template-columns: repeat(2,1fr); }
  .cp-blog-featured { grid-template-columns: 1fr; }
  .cp-blog-featured__media { min-height: 240px; }
  .cp-footer__grid { grid-template-columns: 1fr 1fr; }
  .cp-footer__about { grid-column: 1 / -1; }
  .cp-steps__line { display: none; }
  .cp-form__grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .cp-nav__links { display: none; }
  .cp-nav__cta { display: none !important; }
  .cp-nav { padding: 9px 9px 9px 14px; }
  .cp-nav__burger { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--cp-border); background: #fff; margin-left: auto; cursor: pointer; }
  .cp-stats { grid-template-columns: repeat(2,1fr); gap: 28px 0; }
  .cp-stat:nth-child(3)::before { display: none; }
  /* Ensure hero content clears the floating sticky nav (~82px tall on mobile) */
  .cp-hero { padding-top: 90px !important; }
  /* Stack hero CTA buttons vertically + full width so long text never overflows */
  .cp-hero__actions { flex-direction: column; align-items: stretch; }
  .cp-hero__actions .cp-btn { justify-content: center; width: 100%; box-sizing: border-box; }
}
@media (max-width: 540px) {
  .cp-cols-3, .cp-cols-4, .cp-cols-2, .cp-steps__grid { grid-template-columns: 1fr; }
  .cp-footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .hr-verts { grid-template-columns: 1fr; }
  .cp-footer__contact a, .cp-footer__contact span { overflow-wrap: anywhere; }
  .cp-faq__a { padding-left: 24px; }
  @layer cp-base { body { font-size: 16px; } }
}

/* ---------- 22. REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  html.cp-js .cp-reveal { opacity: 1 !important; transform: none !important; }
}

/* ---------- Real logo image (wired in from the old design) ---------- */
.cp-logo__img { height: 36px; width: auto; display: block; }
.cp-footer .cp-logo__img { height: 44px; }
@media (max-width: 760px) { .cp-logo__img { height: 32px; } }

/* ---------- POS product card video (real device clips) ---------- */
.cp-product__media video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- Smoother red accent on hover ---------- */
.cp-card__icon { transition: background .35s var(--cp-ease), color .35s var(--cp-ease); }
.cp-card:not(.cp-card--dark):hover .cp-card__icon { background: var(--cp-red-soft); color: var(--cp-red); }
.cp-faqbox__title { transition: color .3s var(--cp-ease); }

/* ---------- Careers — animated residual-book card ---------- */
.cp-residual__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.cp-residual__label { font-weight: 700; color: var(--cp-ink); }
.cp-residual__big { font-size: 46px; font-weight: 800; color: var(--cp-ink); letter-spacing: -.02em; margin-top: 12px; line-height: 1; font-variant-numeric: tabular-nums; }
.cp-residual__big small { font-size: 16px; color: var(--cp-muted); font-weight: 600; margin-left: 2px; }
.cp-residual__sub { color: var(--cp-muted); font-size: 13.5px; margin: 6px 0 0; font-weight: 500; line-height: 1.5; }
.cp-residual__chart { position: relative; height: 150px; margin-top: 22px; }
.cp-residual__grid { position: absolute; left: 0; right: 0; height: 1px; background: var(--cp-border); }
.cp-residual__grid:nth-child(1) { top: 0; }
.cp-residual__grid:nth-child(2) { top: 50%; }
.cp-residual__grid:nth-child(3) { bottom: 0; }
.cp-residual__bars { position: absolute; inset: 0; display: flex; align-items: flex-end; gap: 9px; }
.cp-residual__bars i { flex: 1; height: var(--h); border-radius: 6px 6px 0 0; background: linear-gradient(180deg, #2b5fa8, #173a6d); transform: scaleY(0); transform-origin: bottom; transition: transform .9s var(--cp-ease); will-change: transform; }
.cp-residual__bars i.is-peak { background: linear-gradient(180deg, #f0584f, var(--cp-red)); box-shadow: 0 8px 22px -8px rgba(224,36,28,.5); }
.cp-reveal.is-in .cp-residual__bars i, .cp-reveal.is-shown .cp-residual__bars i { transform: scaleY(1); }
.cp-residual__bars i:nth-child(1) { transition-delay: .05s; }
.cp-residual__bars i:nth-child(2) { transition-delay: .13s; }
.cp-residual__bars i:nth-child(3) { transition-delay: .21s; }
.cp-residual__bars i:nth-child(4) { transition-delay: .29s; }
.cp-residual__bars i:nth-child(5) { transition-delay: .37s; }
.cp-residual__bars i:nth-child(6) { transition-delay: .45s; }
.cp-residual__axis { display: flex; justify-content: space-between; font-size: 12px; color: var(--cp-muted); margin-top: 9px; font-weight: 600; }
.cp-residual__foot { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--cp-border); }
.cp-residual__foot b { display: block; font-size: 16px; font-weight: 800; color: var(--cp-navy); letter-spacing: -.01em; }
.cp-residual__foot small { color: var(--cp-muted); font-size: 12.5px; }
@media (prefers-reduced-motion: reduce) { .cp-residual__bars i { transform: scaleY(1) !important; } }

/* Careers — "Why partner" gradient benefit panel */
.cr-perks { position: relative; display: grid; grid-template-columns: repeat(2,1fr); gap: clamp(14px,1.8vw,20px); padding: clamp(22px,3vw,40px); border-radius: var(--cp-r-lg); overflow: hidden; box-shadow: var(--cp-sh-lg); background: linear-gradient(125deg, #16356a 0%, #122a52 46%, #4f1410 118%); }
.cr-perks::before { content: ""; position: absolute; width: 60%; height: 120%; right: -8%; top: -30%; background: radial-gradient(circle at 70% 30%, rgba(224,36,28,.42), transparent 62%); pointer-events: none; }
.cr-perk { position: relative; z-index: 1; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.12); border-radius: var(--cp-r-md); padding: clamp(20px,2.4vw,28px); transition: transform .3s var(--cp-ease), background .3s, border-color .3s; }
.cr-perk:hover { transform: translateY(-4px); background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.22); }
.cr-perk__ico { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; color: #fff; margin-bottom: 16px; background: linear-gradient(135deg, var(--cp-red), #b51910); box-shadow: 0 10px 22px -8px rgba(224,36,28,.6); }
.cr-perk h3 { color: #fff; font-size: 18px; margin: 0 0 8px; letter-spacing: -.01em; }
.cr-perk p { color: rgba(255,255,255,.78); font-size: 14.5px; line-height: 1.55; margin: 0; }
@media (max-width: 680px) { .cr-perks { grid-template-columns: 1fr; } }

/* ---------- Apply chooser cards ---------- */
.cp-apply { display: flex; flex-direction: column; text-decoration: none; }
.cp-apply:hover { border-color: rgba(23,58,109,.5); }
.cp-apply__tag { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--cp-navy); margin: 0 0 6px; }
.cp-apply__tag--muted { color: var(--cp-muted); }
.cp-apply h2 { margin: 0 0 8px; }
.cp-apply > p { color: var(--cp-text); font-size: 15px; margin: 0 0 20px; flex: 1; }
.cp-apply__cta { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--cp-navy); }
.cp-apply__cta--muted { color: #3a4658; }
.cp-apply__cta svg { width: 16px; height: 16px; transition: transform .25s var(--cp-ease); }
.cp-apply:hover .cp-apply__cta svg { transform: translateX(4px); }
.cp-apply__sq { background: transparent; color: inherit; }
.cp-apply__sq img { width: 30px; height: 30px; object-fit: contain; }

/* ---------- Application forms (apply-standard / apply-high-risk) ---------- */
.cp-back { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 14px; color: var(--cp-navy); }
.cp-back:hover { color: var(--cp-red); }
.cp-note { display: flex; align-items: flex-start; gap: 12px; background: var(--cp-bg-3); border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); padding: 16px 18px; color: var(--cp-text); font-size: 14.5px; margin-bottom: 22px; }
.cp-note svg { color: var(--cp-navy); flex: none; margin-top: 1px; }
.cp-applysec__head { margin-bottom: 16px; }
.cp-applysec__head h2 { margin: 0; }
.cp-applysec__head p { margin: 4px 0 0; color: var(--cp-muted); font-size: 14px; }
.cp-applyform > .cp-applysec + .cp-applysec,
.cp-applyform > .cp-applysubmit { border-top: 1px solid var(--cp-border); margin-top: 28px; padding-top: 26px; }
.cp-check-row { display: flex; align-items: flex-start; gap: 12px; font-size: 14.5px; color: var(--cp-text); cursor: pointer; }
.cp-check-row input { width: 20px; height: 20px; flex: none; margin-top: 2px; accent-color: var(--cp-navy); }
.cp-disclosure { background: var(--cp-bg-2); border: 1px solid var(--cp-border); border-radius: var(--cp-r-md); padding: 20px 22px; }
.cp-disclosure h3 { margin: 0 0 8px; font-size: 16px; color: var(--cp-ink); }
.cp-disclosure p { margin: 0; font-size: 13.5px; color: var(--cp-text); line-height: 1.6; }
.cp-applysubmit { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.cp-applysubmit__fine { margin: 0; font-size: 12.5px; color: var(--cp-muted); }
.cp-applied { text-align: center; max-width: 560px; margin: 0 auto; padding: 48px 32px; }
.cp-applied__ico { width: 64px; height: 64px; border-radius: 50%; background: #e7f7ee; color: var(--cp-green); display: grid; place-items: center; margin: 0 auto 18px; }
.cp-applied h2 { margin: 0 0 10px; }
.cp-applied p { color: var(--cp-text); margin: 0 0 22px; }

/* ---------- Form submit status ---------- */
.cp-formstatus { margin: 14px 0 0; font-size: 14px; font-weight: 600; }
.cp-formstatus.is-ok { color: var(--cp-green); }
.cp-formstatus.is-err { color: var(--cp-red); }
.cp-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Real cobe earth globe (Global Reach) ---------- */
.cp-globe-wrap { display: grid; place-items: center; }
.cp-globe { width: 100%; max-width: 520px; aspect-ratio: 1 / 1; opacity: 0; transition: opacity 1s ease; }
/* readability scrim over banner background videos (CTAs + mid-page sections).
   NOTE: these elements also carry .cp-bg--dark-base, whose ::after noise sets
   opacity:.05 + mix-blend-mode:overlay on the SAME pseudo-element — so we must
   reset both here or the scrim renders at 5% and looks like it's missing. */
.cp-bg[data-cp-bg-video]::after { content: ""; position: absolute; inset: 0; opacity: 1; mix-blend-mode: normal; background: linear-gradient(180deg, rgba(10,11,13,.5), rgba(10,11,13,.68)); pointer-events: none; }
/* top-of-page hero banners only: flat black overlay (~45%) */
.cp-hero .cp-bg[data-cp-bg-video]::after { background: rgba(0,0,0,.45); }

/* ---------- Hero fills BEHIND the floating header (no white block up top) ----------
   Must be >= the real flow height of .cp-nav-wrap (16px padding + pill + 16px,
   ~120px on desktop) or a sliver of white body shows above dark heroes. */
:root { --cp-nav-h: 124px; }
/* Pull the hero up under the sticky nav so its background (aurora / dark / video)
   covers the top of the page, then pad the content clear of the pill — with extra
   breathing room up top, as requested. */
.cp-hero { margin-top: calc(var(--cp-nav-h) * -1); padding-top: calc(var(--cp-nav-h) + clamp(34px, 5vw, 72px)) !important; }
/* Anchor jumps (footer FAQ link, article TOC) land clear of the floating pill.
   scroll-margin is inert outside of scroll-to-anchor, so [id] is safe. */
[id] { scroll-margin-top: calc(var(--cp-nav-h) + 12px); }

/* ---------- CTA banners: title always white on the dark background ---------- */
.cp-cta .cp-h2, .cp-cta h2, .cp-cta__inner h2 { color: #fff; }

/* ===================== Assistant chat widget ===================== */
.cp-chat { position: fixed; right: clamp(14px,3vw,26px); bottom: clamp(14px,3vw,26px); z-index: 200; font-family: var(--cp-font); }
.cp-chat__launch { display: inline-flex; align-items: center; gap: 9px; padding: 13px 20px 13px 16px; border-radius: var(--cp-r-pill); background: var(--cp-navy); color: #fff; border: none; cursor: pointer; box-shadow: var(--cp-sh-navy); font-weight: 700; font-size: 15px; font-family: inherit; position: relative; transition: transform .2s var(--cp-ease), box-shadow .2s; }
.cp-chat__launch:hover { transform: translateY(-2px); box-shadow: 0 20px 38px -12px rgba(18,46,87,.6); }
.cp-chat__launch svg { width: 22px; height: 22px; }
.cp-chat__pulse { position: absolute; top: -3px; right: -3px; width: 13px; height: 13px; border-radius: 50%; background: var(--cp-red); border: 2.5px solid #fff; box-shadow: 0 0 0 0 rgba(224,36,28,.6); animation: cp-chatpulse 2s infinite; }
@keyframes cp-chatpulse { 0% { box-shadow: 0 0 0 0 rgba(224,36,28,.55); } 70% { box-shadow: 0 0 0 8px rgba(224,36,28,0); } 100% { box-shadow: 0 0 0 0 rgba(224,36,28,0); } }
.cp-chat.is-open .cp-chat__launch { display: none; }

.cp-chat__panel { position: absolute; right: 0; bottom: 0; width: min(380px, calc(100vw - 28px)); height: min(560px, calc(100vh - 110px)); background: #fff; border: 1px solid var(--cp-border); border-radius: 22px; box-shadow: var(--cp-sh-lg); display: flex; flex-direction: column; overflow: hidden; transform-origin: bottom right; animation: cp-chatin .26s var(--cp-ease); }
@keyframes cp-chatin { from { opacity: 0; transform: translateY(14px) scale(.96); } to { opacity: 1; transform: none; } }
.cp-chat__head { background: linear-gradient(135deg, var(--cp-navy-deep), var(--cp-navy)); color: #fff; padding: 16px 16px; display: flex; align-items: center; justify-content: space-between; flex: none; }
.cp-chat__bot { display: flex; align-items: center; gap: 11px; }
.cp-chat__avatar { width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.18); display: grid; place-items: center; flex: none; }
.cp-chat__avatar svg { width: 21px; height: 21px; }
.cp-chat__head b { display: block; font-size: 15px; font-weight: 700; }
.cp-chat__head small { font-size: 12px; opacity: .85; display: inline-flex; align-items: center; gap: 6px; }
.cp-chat__on { width: 7px; height: 7px; border-radius: 50%; background: #34d399; box-shadow: 0 0 6px #34d399; }
.cp-chat__close { background: none; border: none; color: #fff; font-size: 24px; line-height: 1; cursor: pointer; opacity: .85; padding: 0 4px; }
.cp-chat__close:hover { opacity: 1; }

.cp-chat__body { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 11px; background: var(--cp-bg-2); }
.cp-chat__msg { max-width: 86%; padding: 11px 14px; border-radius: 16px; font-size: 14.5px; line-height: 1.5; }
.cp-chat__msg a { color: inherit; font-weight: 700; text-decoration: underline; }
.cp-chat__msg--bot { background: #fff; border: 1px solid var(--cp-border); color: var(--cp-ink); border-bottom-left-radius: 5px; align-self: flex-start; box-shadow: var(--cp-sh-sm); }
.cp-chat__msg--user { background: var(--cp-navy); color: #fff; border-bottom-right-radius: 5px; align-self: flex-end; }
.cp-chat__cta { display: inline-flex; align-items: center; gap: 6px; margin-top: 11px; background: var(--cp-red); color: #fff !important; padding: 8px 14px; border-radius: var(--cp-r-pill); font-weight: 700; font-size: 13.5px; text-decoration: none !important; }
.cp-chat__cta:hover { background: var(--cp-red-600); }
.cp-chat__typing { display: inline-flex; gap: 4px; align-items: center; }
.cp-chat__typing span { width: 7px; height: 7px; border-radius: 50%; background: var(--cp-muted); animation: cp-chatdot 1s infinite; }
.cp-chat__typing span:nth-child(2) { animation-delay: .15s; } .cp-chat__typing span:nth-child(3) { animation-delay: .3s; }
@keyframes cp-chatdot { 0%,60%,100% { opacity: .3; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } }

.cp-chat__quick { display: flex; flex-wrap: wrap; gap: 7px; padding: 10px 14px; background: var(--cp-bg-2); border-top: 1px solid var(--cp-border); }
.cp-chat__chip { background: #fff; border: 1px solid var(--cp-border-2); color: var(--cp-navy); padding: 8px 13px; border-radius: var(--cp-r-pill); font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; transition: background .15s, border-color .15s, transform .15s; }
.cp-chat__chip:hover { background: var(--cp-bg-3); border-color: var(--cp-navy); transform: translateY(-1px); }
.cp-chat__input { display: flex; gap: 8px; padding: 11px 12px; border-top: 1px solid var(--cp-border); background: #fff; flex: none; }
.cp-chat__input input { flex: 1; border: 1px solid var(--cp-border-2); border-radius: var(--cp-r-pill); padding: 10px 16px; font-size: 14px; font-family: inherit; outline: none; color: var(--cp-ink); }
.cp-chat__input input:focus { border-color: var(--cp-navy); box-shadow: 0 0 0 3px rgba(23,58,109,.1); }
.cp-chat__input button { background: var(--cp-navy); color: #fff; border: none; border-radius: 50%; width: 40px; height: 40px; flex: none; cursor: pointer; display: grid; place-items: center; }
.cp-chat__input button:hover { background: var(--cp-navy-700); }
.cp-chat__input button svg { width: 18px; height: 18px; }
@media (max-width: 480px) { .cp-chat__panel { width: calc(100vw - 24px); height: min(70vh, 540px); } .cp-chat__launch span:not(.cp-chat__pulse) { display: none; } .cp-chat__launch { padding: 14px; } }
@media (prefers-reduced-motion: reduce) { .cp-chat__panel, .cp-chat__pulse, .cp-chat__typing span { animation: none; } }

.cp-chat__panel[hidden] { display: none; }

/* ---------- Chat message pop-in animation ---------- */
@keyframes cp-msgin { 0% { opacity: 0; transform: translateY(12px) scale(.9); } 100% { opacity: 1; transform: none; } }
.cp-chat__msg { animation: cp-msgin .36s cubic-bezier(.34, 1.56, .64, 1) both; will-change: transform, opacity; }
.cp-chat__msg--bot { transform-origin: bottom left; }
.cp-chat__msg--user { transform-origin: bottom right; }
.cp-chat__quick .cp-chat__chip { animation: cp-msgin .3s var(--cp-ease) both; }
.cp-chat__quick .cp-chat__chip:nth-child(2) { animation-delay: .04s; }
.cp-chat__quick .cp-chat__chip:nth-child(3) { animation-delay: .08s; }
.cp-chat__quick .cp-chat__chip:nth-child(4) { animation-delay: .12s; }
.cp-chat__quick .cp-chat__chip:nth-child(5) { animation-delay: .16s; }
.cp-chat__quick .cp-chat__chip:nth-child(6) { animation-delay: .20s; }
@media (prefers-reduced-motion: reduce) { .cp-chat__msg, .cp-chat__chip { animation: none !important; } }

/* ---------- 404 page ---------- */
.cp-404 { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 6px; padding: 48px clamp(20px,5vw,24px); }
.cp-404 .cp-logo__img { height: 40px; margin-bottom: 30px; }
.cp-404__code { font-size: clamp(64px,12vw,120px); font-weight: 800; line-height: 1; letter-spacing: -.04em; background: linear-gradient(120deg, var(--cp-navy), var(--cp-red)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cp-404 h1 { margin: 14px 0 8px; }
.cp-404 p { color: var(--cp-text); max-width: 46ch; margin: 0 0 28px; }
.cp-404__actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.cp-404__links { display: flex; gap: 8px 20px; flex-wrap: wrap; justify-content: center; margin-top: 40px; font-size: 14.5px; }
.cp-404__links a { color: var(--cp-muted); text-decoration: none; transition: color .2s; }
.cp-404__links a:hover { color: var(--cp-navy); }

/* Careers — partner program cards */
.cr-progs { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.cr-prog { position: relative; background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); padding: 30px 26px 26px; box-shadow: var(--cp-sh-sm); overflow: hidden; transition: transform .3s var(--cp-ease), box-shadow .3s, border-color .3s; }
.cr-prog::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--cp-navy), var(--cp-red)); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--cp-ease); }
.cr-prog:hover { transform: translateY(-6px); box-shadow: var(--cp-sh); border-color: var(--cp-navy); }
.cr-prog:hover::before { transform: scaleX(1); }
.cr-prog__num { position: absolute; top: 16px; right: 22px; font-size: 42px; font-weight: 800; line-height: 1; color: var(--cp-bg-3); letter-spacing: -.04em; }
.cr-prog__ico { width: 50px; height: 50px; border-radius: 14px; background: var(--cp-navy); color: #fff; display: grid; place-items: center; margin-bottom: 18px; box-shadow: 0 10px 22px -10px rgba(18,46,87,.55); }
.cr-prog h3 { font-size: 19px; margin: 0 0 8px; color: var(--cp-ink); letter-spacing: -.01em; }
.cr-prog > p { margin: 0 0 18px; color: var(--cp-text); font-size: 14.5px; line-height: 1.55; }
.cr-prog__list { list-style: none; margin: 0; padding: 18px 0 0; border-top: 1px solid var(--cp-border); display: grid; gap: 11px; }
.cr-prog__list li { display: flex; gap: 10px; align-items: center; font-size: 14px; color: var(--cp-text); }
.cr-prog__list svg { flex: none; width: 16px; height: 16px; color: var(--cp-red); }
@media (max-width: 860px) { .cr-progs { grid-template-columns: 1fr; } }

/* ---------- Branded blog covers (category-colored, fill image placeholders) ---------- */
.cp-cover { position: absolute; inset: 0; display: grid; place-items: center; overflow: hidden; background: linear-gradient(140deg, var(--cov1,#21457f), var(--cov2,#0e1a30)); }
.cp-cover::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.16) 1px, transparent 1.4px); background-size: 18px 18px; opacity: .45; }
.cp-cover::after { content: ""; position: absolute; width: 130%; height: 150%; right: -25%; top: -45%; background: radial-gradient(circle, rgba(255,255,255,.18), transparent 62%); pointer-events: none; }
.cp-cover__ico { position: relative; z-index: 1; width: 54px; height: 54px; color: rgba(255,255,255,.92); }
.cp-cover--payments { --cov1:#21457f; --cov2:#0e1a30; }
.cp-cover--highrisk { --cov1:#cc241b; --cov2:#7c1410; }
.cp-cover--hardware { --cov1:#2b5fa8; --cov2:#15346a; }
.cp-cover--crypto { --cov1:#3f3f9e; --cov2:#191b46; }
.cp-cover--pricing { --cov1:#0f766e; --cov2:#0a3f3a; }
.cp-cover--funding { --cov1:#16894a; --cov2:#0b4a26; }
.cp-cover--compliance { --cov1:#4b5a73; --cov2:#1e2a3f; }

/* Reusable hero preview-card list (Industries / Preferred Partners heroes) */
.cp-mocklist { display: grid; margin-top: 8px; }
.cp-mocklist__row { display: flex; align-items: center; gap: 12px; padding: 11px 2px; border-top: 1px solid var(--cp-border); font-size: 14.5px; font-weight: 600; color: var(--cp-ink); }
.cp-mocklist__row:first-child { border-top: none; }
.cp-mocklist__ico { width: 34px; height: 34px; border-radius: 9px; background: var(--cp-bg-3); color: var(--cp-navy); display: grid; place-items: center; flex: none; }
.cp-mocklist__ico img { width: 18px; height: 18px; display: block; }
.cp-mocklist__check { margin-left: auto; color: var(--cp-green); width: 18px; height: 18px; flex: none; }
.cp-mocklist__foot { margin: 14px 0 0; font-size: 12.5px; color: var(--cp-muted); }

/* Apply page — what-happens-next + reassurance strip */
.ap-num { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--cp-red); color: #fff; font-weight: 800; font-size: 13.5px; margin-bottom: 12px; }
.ap-trust { display: flex; flex-wrap: wrap; gap: 14px 30px; justify-content: center; }
.ap-trust__item { display: inline-flex; align-items: center; gap: 9px; font-size: 14.5px; font-weight: 600; color: var(--cp-text); }
.ap-trust__item svg { width: 18px; height: 18px; color: var(--cp-red); flex: none; }

/* ---------- Micro-interactions ---------- */
.cp-btn:active { transform: translateY(0) scale(.98); transition-duration: .06s; }
.cp-postcard__media, .cp-blog-featured__media { overflow: hidden; }
.cp-postcard .cp-cover, .cp-postcard__media img, .cp-blog-featured .cp-cover, .cp-blog-featured__media img { transition: transform .55s var(--cp-ease); }
.cp-postcard:hover .cp-cover, .cp-postcard:hover .cp-postcard__media img { transform: scale(1.06); }
.cp-blog-featured:hover .cp-cover, .cp-blog-featured:hover .cp-blog-featured__media img { transform: scale(1.04); }
.cp-footer__links a { display: inline-block; transition: color .2s var(--cp-ease), transform .2s var(--cp-ease); }
.cp-footer__links a:hover { transform: translateX(3px); }
@media (prefers-reduced-motion: reduce) { .cp-postcard:hover .cp-cover, .cp-postcard:hover .cp-postcard__media img, .cp-blog-featured:hover .cp-cover { transform: none; } }

/* ---------- Footer polish ---------- */
.cp-footer { position: relative; }
.cp-footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--cp-navy), var(--cp-red)); }
.cp-footer__trust { display: grid; gap: 10px; margin-top: 24px; }
.cp-footer__trustitem { display: inline-flex; align-items: center; gap: 9px; font-size: 13px; font-weight: 600; color: var(--cp-muted); }
.cp-footer__trustitem svg { width: 16px; height: 16px; color: var(--cp-green); flex: none; }

/* ---------- Testimonials ---------- */
.cp-quotes { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.cp-quote { background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); padding: 28px 26px; box-shadow: var(--cp-sh-sm); display: flex; flex-direction: column; transition: transform .3s var(--cp-ease), box-shadow .3s, border-color .3s; }
.cp-quote:hover { transform: translateY(-4px); box-shadow: var(--cp-sh); border-color: var(--cp-border-2); }
.cp-quote__stars { color: #f5a623; font-size: 15px; letter-spacing: 3px; margin-bottom: 14px; }
.cp-quote blockquote { margin: 0 0 22px; font-size: 15.5px; line-height: 1.62; color: var(--cp-text); flex: 1; }
.cp-quote figcaption { display: flex; align-items: center; gap: 12px; }
.cp-quote__av { width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg, var(--cp-navy), var(--cp-blue)); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 14px; flex: none; }
.cp-quote figcaption b { display: block; font-size: 15px; color: var(--cp-ink); }
.cp-quote figcaption span { font-size: 13px; color: var(--cp-muted); }
@media (max-width: 860px) { .cp-quotes { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; } }

/* ---------- Apply form — guided sidebar ---------- */
.cp-applywrap { max-width: 960px; }
.cp-applyaside { position: sticky; top: 96px; }
.cp-applyaside__card { background: #fff; border: 1px solid var(--cp-border); border-radius: var(--cp-r-lg); box-shadow: var(--cp-sh-sm); padding: 26px 24px; }
.cp-applyaside__card h3 { font-size: 17px; margin: 0 0 16px; color: var(--cp-ink); }
.cp-applyaside__list { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 11px; }
.cp-applyaside__list li { position: relative; padding-left: 24px; font-size: 13.8px; color: var(--cp-text); line-height: 1.5; }
.cp-applyaside__list li::before { content: ""; position: absolute; left: 3px; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--cp-red); }
.cp-applyaside__note { display: flex; gap: 10px; align-items: flex-start; font-size: 12.8px; color: var(--cp-text); background: var(--cp-bg-2); border-radius: var(--cp-r-md); padding: 13px 14px; line-height: 1.5; margin-bottom: 18px; }
.cp-applyaside__note svg { color: var(--cp-green); flex: none; width: 18px; height: 18px; margin-top: 1px; }
.cp-applyaside__next { border-top: 1px solid var(--cp-border); padding-top: 16px; margin-bottom: 18px; }
.cp-applyaside__next b { display: block; font-size: 14px; color: var(--cp-ink); margin-bottom: 6px; }
.cp-applyaside__next p { margin: 0; font-size: 13px; color: var(--cp-muted); line-height: 1.6; }
@media (max-width: 920px) { .cp-applywrap { grid-template-columns: 1fr; } .cp-applyaside { position: static; } }

/* ---------- Glow CTA ring (animated noise-gradient button wrapper) ----------
   Vanilla port of the React "NoiseBackground" component, in brand colors.
   Usage:  <span class="cp-glow" data-cp-glow><a class="cp-btn ...">…</a></span>
   Dark sections: add .cp-glow--dark. Colors override via --g1/--g2/--g3.
   chance.js animates --gx/--gy (px) with a springy random walk; without JS it
   renders as a clean static ring, and prefers-reduced-motion gets a static
   centered glow. Noise is an inline SVG (no external asset). */
.cp-glow {
  --g1: rgb(224,36,28);    /* brand red */
  --g2: rgb(47,102,182);   /* brand blue */
  --g3: rgb(255,122,112);  /* soft coral */
  --gx: 70; --gy: 22; --noise-o: .22;
  position: relative; display: inline-flex; padding: 6px;
  border-radius: var(--cp-r-pill); background: #e3ecf6;
  overflow: hidden; isolation: isolate; vertical-align: middle;
  box-shadow: inset 0 .5px 1px rgba(15,26,46,.28), 0 1px 0 rgba(255,255,255,.9);
}
.cp-glow--dark { background: rgba(255,255,255,.07);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.55), 0 1px 0 rgba(255,255,255,.07); }
.cp-glow__l, .cp-glow__strip, .cp-glow__noise { position: absolute; inset: 0; pointer-events: none; }
.cp-glow__l1 { opacity: .5;  background: radial-gradient(circle at calc(var(--gx)*1px)    calc(var(--gy)*1px),    var(--g1) 0%, transparent 55%); }
.cp-glow__l2 { opacity: .4;  background: radial-gradient(circle at calc(var(--gx)*.7px)   calc(var(--gy)*.7px),   var(--g2) 0%, transparent 55%); }
.cp-glow__l3 { opacity: .3;  background: radial-gradient(circle at calc(var(--gx)*1.25px) calc(var(--gy)*1.25px), var(--g3) 0%, transparent 55%); }
.cp-glow__strip { inset: 0 0 auto 0; height: 3px; opacity: .85; filter: blur(2px);
  border-radius: var(--cp-r-pill) var(--cp-r-pill) 0 0;
  background: linear-gradient(to right, var(--g1), var(--g2), var(--g3));
  transform: translateX(calc(var(--gx)*.1px - 50px)); }
.cp-glow__noise { opacity: var(--noise-o); mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size: 160px 160px; }
.cp-glow > .cp-btn { position: relative; z-index: 2; }
@media (prefers-reduced-motion: reduce) { .cp-glow__strip { transform: none; } }

/* ---------- Glare tilt cards (vanilla port of GlareCard, brand foil) ----------
   Usage: add data-cp-glare to any .cp-card. Pointer-tracked 3D tilt + moving
   glare + brand-color holographic foil on hover (chance.js drives the vars).
   Touch devices and prefers-reduced-motion get the normal static card. */
[data-cp-glare] { position: relative; overflow: hidden; }
.cp-glare__shine, .cp-glare__foil { position: absolute; inset: 0; border-radius: inherit;
  pointer-events: none; opacity: var(--g-o, 0); transition: opacity var(--g-dur, 300ms) ease; z-index: 2; }
.cp-glare__shine {
  background: radial-gradient(farthest-corner circle at var(--gm-x,50%) var(--gm-y,50%),
    rgba(255,255,255,.9) 10%, rgba(255,255,255,.55) 22%, rgba(255,255,255,0) 85%);
  mix-blend-mode: soft-light; }
.cp-glare__foil {
  background: repeating-linear-gradient(115deg,
      rgba(224,36,28,.55) 0%, rgba(255,122,112,.55) 6%, rgba(120,170,230,.55) 12%,
      rgba(47,102,182,.55) 18%, rgba(23,58,109,.55) 24%, rgba(224,36,28,.55) 30%)
    var(--gbg-x,50%) var(--gbg-y,50%) / 300% 300% no-repeat;
  mix-blend-mode: overlay; }

/* ---------- Cutout pins on blog covers (CutoutCard-style fillet corners) ----------
   .cp-cutpin sits in the cover's top-right, .cp-cutlabel in the bottom-left,
   both in the card's surface color with concave (inverted-radius) corners that
   blend into the artwork — rendered by the generator in scripts/build-blog.js. */
.cp-cutpin { position: absolute; top: 0; right: 0; z-index: 2; background: var(--pin-bg, var(--cp-card));
  color: var(--cp-navy); font-size: 11px; font-weight: 800; letter-spacing: .09em;
  text-transform: uppercase; line-height: 1; padding: 9px 16px 11px 18px;
  border-bottom-left-radius: 18px; }
.cp-cutpin::before, .cp-cutpin::after { content: ""; position: absolute; width: 18px; height: 18px;
  background: radial-gradient(circle at 0 100%, rgba(0,0,0,0) 17.5px, var(--pin-bg, var(--cp-card)) 18px); }
.cp-cutpin::before { top: 0; left: -18px; }
.cp-cutpin::after { top: 100%; right: 0; }
.cp-cutlabel { position: absolute; left: 0; bottom: 0; z-index: 2; background: var(--cp-card);
  color: var(--cp-red); font-size: 11px; font-weight: 800; letter-spacing: .09em;
  text-transform: uppercase; line-height: 1; padding: 11px 18px 9px 16px;
  border-top-right-radius: 18px; }
.cp-cutlabel::before, .cp-cutlabel::after { content: ""; position: absolute; width: 18px; height: 18px;
  background: radial-gradient(circle at 100% 0, rgba(0,0,0,0) 17.5px, var(--cp-card) 18px); }
.cp-cutlabel::before { bottom: 100%; left: 0; }
.cp-cutlabel::after { right: -18px; bottom: 0; }

/* ---------- Article TOC ("On this page" rail, desktop) ---------- */
.cp-artgrid { position: relative; }
.cp-toc { display: none; }
@media (min-width: 1200px) {
  .cp-artgrid { display: grid; grid-template-columns: 208px minmax(0, 760px); gap: 56px; justify-content: center; align-items: start; }
  .cp-artgrid .cp-article { margin-inline: 0; }
  .cp-toc { display: block; position: sticky; top: 118px; padding-left: 18px; }
}
.cp-toc__t { font-size: 11px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--cp-text); margin-bottom: 14px; }
.cp-toc__rail { position: absolute; left: 0; top: 34px; bottom: 6px; width: 2px; background: var(--cp-border); border-radius: 2px; }
.cp-toc__rail i { position: absolute; left: 0; top: 0; width: 2px; height: var(--read, 0%); background: var(--cp-red); border-radius: 2px; transition: height .25s linear; }
.cp-toc__dot { position: absolute; left: -3px; top: 0; width: 8px; height: 8px; border-radius: 50%; background: var(--cp-red); box-shadow: 0 0 0 4px var(--cp-bg); transform: translateY(var(--dot, 4px)); transition: transform .45s cubic-bezier(.22,1,.36,1); }
.cp-toc ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cp-toc a { font-size: 13.5px; line-height: 1.45; color: var(--cp-text); text-decoration: none; display: block; transition: color .2s, transform .3s var(--cp-ease); }
.cp-toc a:hover { color: var(--cp-navy); }
.cp-toc li.is-on a { color: var(--cp-ink); font-weight: 700; transform: translateX(4px); }

/* ---------- Article share row ---------- */
.cp-share { display: flex; gap: 8px; align-items: center; margin-top: 18px; }
.cp-share button, .cp-share a { display: inline-flex; align-items: center; gap: 7px; padding: 8px 13px; border-radius: 999px; border: 1px solid var(--cp-border); background: var(--cp-card); color: var(--cp-ink); font-size: 13px; font-weight: 700; cursor: pointer; text-decoration: none; transition: transform .25s var(--cp-ease), border-color .2s, box-shadow .25s var(--cp-ease); }
.cp-share button:hover, .cp-share a:hover { transform: translateY(-2px); border-color: var(--cp-border-2); box-shadow: var(--cp-sh-sm); }
.cp-share svg { width: 14px; height: 14px; }
.cp-share .is-copied { border-color: var(--cp-red); color: var(--cp-red); animation: cp-share-pop .35s var(--cp-ease); }
@keyframes cp-share-pop { 40% { transform: scale(1.08); } }

/* ---------- Inline subscribe card on articles ---------- */
.cp-artsub { max-width: 760px; margin: clamp(28px,4vw,40px) auto 0; padding: 30px 32px; display: flex; gap: 24px; align-items: center; flex-wrap: wrap; justify-content: space-between; position: relative; overflow: hidden; }
.cp-artsub::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: linear-gradient(180deg, var(--cp-red), var(--cp-navy)); }
.cp-artsub h3 { margin: 0 0 4px; }
.cp-artsub p { margin: 0; color: var(--cp-text); font-size: 15px; }
.cp-artsub form { display: flex; gap: 10px; flex-wrap: wrap; flex: 1; min-width: 280px; justify-content: flex-end; }
.cp-artsub .cp-input { flex: 1; min-width: 200px; max-width: 280px; }
.cp-artsub.is-done { border-color: var(--cp-red); }

/* ---------- Rolling-digit odometer (funding estimator) ---------- */
.cp-odo { display: inline-flex; align-items: baseline; }
.cp-odo__c { display: inline-block; }
.cp-odo__d { display: inline-block; height: 1em; overflow: hidden; }
.cp-odo__r { display: flex; flex-direction: column; transition: transform .55s cubic-bezier(.22,1,.36,1); will-change: transform; }
.cp-odo__r i { height: 1em; line-height: 1; font-style: normal; }
@media (prefers-reduced-motion: reduce) { .cp-odo__r { transition: none; } }

/* ---------- Apply-form progress (injected into the sticky sidebar) ---------- */
.cp-applyprog { margin-bottom: 16px; }
.cp-applyprog__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.cp-applyprog__head b { font-size: 15px; color: var(--cp-ink); }
.cp-applyprog__pct { font-size: 13px; font-weight: 800; color: var(--cp-red); font-variant-numeric: tabular-nums; }
.cp-applyprog__bar { height: 6px; border-radius: 999px; background: var(--cp-bg-3); overflow: hidden; margin-bottom: 14px; }
.cp-applyprog__bar i { display: block; height: 100%; width: var(--p, 0%); border-radius: inherit; background: linear-gradient(90deg, var(--cp-navy), var(--cp-red)); transition: width .5s cubic-bezier(.22,1,.36,1); }
.cp-applyprog__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.cp-applyprog__list li { display: flex; gap: 10px; align-items: center; font-size: 13.5px; color: var(--cp-text); transition: color .2s; }
.cp-applyprog__list li .d { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--cp-border-2); display: grid; place-items: center; flex: none; transition: background .25s, border-color .25s; }
.cp-applyprog__list li .d svg { width: 10px; height: 10px; opacity: 0; transform: scale(.4); transition: opacity .25s, transform .35s cubic-bezier(.34,1.56,.64,1); }
.cp-applyprog__list li.is-cur { color: var(--cp-ink); font-weight: 700; }
.cp-applyprog__list li.is-cur .d { border-color: var(--cp-navy); }
.cp-applyprog__list li.is-done { color: var(--cp-ink); }
.cp-applyprog__list li.is-done .d { background: var(--cp-red); border-color: var(--cp-red); color: #fff; }
.cp-applyprog__list li.is-done .d svg { opacity: 1; transform: scale(1); }

/* Hero background video, light treatment (the original homepage hero) */
.cp-bg--whitewash[data-cp-bg-video]::after,
.cp-hero .cp-bg--whitewash[data-cp-bg-video]::after {
  background: linear-gradient(90deg, rgba(255,255,255,.72), rgba(255,255,255,.12) 60%),
              linear-gradient(180deg, rgba(255,255,255,.5), rgba(255,255,255,.22) 50%, rgba(255,255,255,.6));
}
.cp-underline--red::after { background: rgba(224,36,28,.3); }

/* ---------- Application forms, original layout (navy bars, docs, disclosures) ---------- */
.cp-appbar { background: var(--cp-navy); color: #fff; border-radius: 12px; padding: 12px 20px; margin-bottom: 22px; }
.cp-appbar h2 { margin: 0; font-size: 13.5px; letter-spacing: .08em; text-transform: uppercase; color: #fff; }
.cp-grid3f { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 720px) { .cp-grid3f { grid-template-columns: 1fr; } }
.cp-checkline { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; color: var(--cp-ink); font-size: 15px; margin: 18px 0 10px; cursor: pointer; }
.cp-checkline input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--cp-navy); flex: none; }
.cp-subq { margin: 0 0 6px 28px; }
.cp-docgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 26px; list-style: none; margin: 14px 0 20px; padding: 0; }
@media (max-width: 720px) { .cp-docgrid { grid-template-columns: 1fr; } }
.cp-docgrid li { position: relative; padding-left: 18px; font-size: 14px; color: #3c4555; }
.cp-docgrid li::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 7px; border-radius: 50%; background: var(--cp-red); }
.cp-drop { border: 2px dashed var(--cp-border-2); border-radius: 14px; padding: 30px 20px; text-align: center; color: var(--cp-text); cursor: pointer; transition: border-color .2s, background .2s; }
.cp-drop:hover, .cp-drop.is-over { border-color: var(--cp-navy); background: var(--cp-bg-3); }
.cp-drop b { color: var(--cp-ink); }
.cp-drop small { display: block; margin-top: 6px; }
.cp-drop svg { display: block; margin: 0 auto 8px; color: var(--cp-navy); }
.cp-filelist { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; }
.cp-filelist li { display: flex; gap: 8px; align-items: center; font-size: 13.5px; color: var(--cp-ink); background: var(--cp-bg-3); border-radius: 8px; padding: 7px 10px; }
.cp-filelist li button { margin-left: auto; border: 0; background: none; cursor: pointer; color: var(--cp-red); font-weight: 800; font-size: 14px; }
.cp-fileslot { border: 1px solid var(--cp-border); border-radius: 14px; padding: 16px 18px; }
.cp-fileslot b { display: block; color: var(--cp-ink); font-size: 14.5px; }
.cp-fileslot small { color: var(--cp-text); font-size: 12.5px; }
.cp-slotbtn { margin-top: 12px; border: 1.5px dashed var(--cp-border-2); border-radius: 10px; padding: 9px 14px; display: inline-flex; gap: 8px; align-items: center; cursor: pointer; font-weight: 700; font-size: 13.5px; color: var(--cp-navy); background: none; transition: border-color .2s; max-width: 100%; overflow: hidden; }
.cp-slotbtn:hover { border-color: var(--cp-navy); }
.cp-slotbtn.has-file { border-style: solid; border-color: var(--cp-navy); }
.cp-disc { list-style: none; margin: 14px 0 18px; padding: 0; display: grid; gap: 12px; }
.cp-disc li { display: flex; gap: 9px; font-size: 13.5px; line-height: 1.6; color: #3c4555; }
.cp-disc li b { color: var(--cp-navy); flex: none; }
.cp-pricecard { border: 1px solid var(--cp-border); background: var(--cp-bg-3); border-radius: 14px; padding: 18px 20px; max-width: 440px; margin-top: 20px; }
.cp-pricecard h3 { margin: 0 0 10px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--cp-navy); }
.cp-pricecard .row { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid var(--cp-border); font-size: 14.5px; color: #3c4555; }
.cp-pricecard .row:last-of-type { border-bottom: 0; }
.cp-pricecard .row b { color: var(--cp-navy); }
.cp-pricecard p { margin: 10px 0 0; font-size: 12px; color: var(--cp-text); font-style: italic; }
.cp-securenote { display: flex; gap: 10px; align-items: center; background: var(--cp-bg-3); border-radius: 12px; padding: 14px 18px; color: var(--cp-text); font-size: 14px; margin: 6px 0 18px; }
.cp-securenote svg { flex: none; color: var(--cp-navy); }

/* ---------- Hero device: Recent Activity ticker (from the original mockup) ---------- */
.cp-tx { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.cp-tx li { display: flex; align-items: center; gap: 10px; animation: cp-tx-in .45s var(--cp-ease); }
@keyframes cp-tx-in { from { opacity: 0; transform: translateY(-7px); } }
.cp-tx__badge { width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; font-size: 12px; font-weight: 800; flex: none; }
.cp-tx__badge[data-t="visa"]       { background: rgba(224,36,28,.22);  color: #ff9d97; }
.cp-tx__badge[data-t="mastercard"] { background: rgba(249,115,22,.22); color: #fdba74; }
.cp-tx__badge[data-t="amex"]       { background: rgba(6,182,212,.22);  color: #67e8f9; }
.cp-tx__badge[data-t="usdc"]       { background: rgba(16,185,129,.22); color: #6ee7b7; }
.cp-tx__badge[data-t="ach"]        { background: rgba(139,92,246,.22); color: #c4b5fd; }
.cp-tx__who { display: flex; flex-direction: column; line-height: 1.25; color: #fff; font-size: 13px; font-weight: 700; }
.cp-tx__who small { font-size: 10.5px; font-weight: 600; color: rgba(255,255,255,.55); display: inline-flex; align-items: center; gap: 5px; }
.cp-tx__who small i { width: 5px; height: 5px; border-radius: 50%; background: #34d399; }
.cp-tx__who small.is-proc i { background: #fbbf24; }
.cp-tx li > b { margin-left: auto; color: #fff; font-size: 13px; font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) { .cp-tx li { animation: none; } }

/* Application forms: keep inputs in a row bottom-aligned even when one
   label wraps to two lines and its neighbors don't. */
.cp-applyform .cp-field > .cp-input,
.cp-applyform .cp-field > .cp-select { margin-top: auto; }

/* ---------- Application pages: minimal top bar (the original form chrome) ---------- */
.cp-formtop { background: #fff; border-bottom: 1px solid var(--cp-border); }
.cp-formtop__in { max-width: 1280px; margin-inline: auto; padding: 14px clamp(16px,3vw,32px); display: flex; align-items: center; gap: 16px; }
.cp-formtop__back { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; color: #374151; text-decoration: none; }
.cp-formtop__back:hover { color: var(--cp-navy); }
.cp-formtop__right { margin-left: auto; display: flex; align-items: center; gap: 16px; }
.cp-formtop__share { display: inline-flex; align-items: center; gap: 8px; font: inherit; font-weight: 600; font-size: 15px; color: #111827; background: #fff; border: 1px solid var(--cp-border); border-radius: 999px; padding: 9px 18px; cursor: pointer; transition: border-color .2s, box-shadow .2s; }
.cp-formtop__share:hover { border-color: var(--cp-border-2); box-shadow: var(--cp-sh-sm); }
.cp-formtop__logo { height: 34px; width: auto; display: block; }

/* ---------- Cursor spotlight on dark bands ---------- */
.cp-band-dark .cp-spot { position: absolute; inset: 0; pointer-events: none; z-index: 1; opacity: 0; transition: opacity .45s var(--cp-ease);
  background: radial-gradient(380px circle at var(--spx,50%) var(--spy,50%), rgba(140,180,235,.16), rgba(255,255,255,.05) 45%, transparent 70%); }
.cp-band-dark:hover .cp-spot { opacity: 1; }

/* ---------- Partner pills: brand glow hover ---------- */
.pp-brand:hover { border-color: var(--cp-navy); color: var(--cp-navy); transform: translateY(-3px);
  box-shadow: 0 12px 26px -12px rgba(23,58,109,.45), var(--cp-sh-sm); }
.pp-brand img { transition: transform .25s var(--cp-ease); }
.pp-brand:hover img { transform: scale(1.18); }

/* ---------- Contact: step cards with cutout number tabs ---------- */
.cp-cutpin--soft { --pin-bg: var(--cp-bg-2); color: var(--cp-red); padding: 8px 14px 10px 16px; font-size: 12px; }
.cp-stepgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 960px; margin-inline: auto; }
@media (max-width: 760px) { .cp-stepgrid { grid-template-columns: 1fr; } }
.cp-stepcard { position: relative; overflow: hidden; background: var(--cp-card); border: 1px solid var(--cp-border); border-radius: var(--cp-r-card); padding: 30px 24px 24px; box-shadow: var(--cp-sh-sm); transition: transform .3s var(--cp-ease), box-shadow .3s var(--cp-ease); }
.cp-stepcard:hover { transform: translateY(-3px); box-shadow: var(--cp-sh); }
.cp-stepcard h4 { margin: 0 0 6px; font-size: 17px; color: var(--cp-ink); }
.cp-stepcard p { margin: 0; font-size: 14.5px; color: var(--cp-text); }
