/* Self-hosted web fonts (latin subset, from Google Fonts, SIL Open Font License; rebuilt from site.json
   fonts_css_google). Same origin: no extra connections before text paints. */
@font-face { font-family: "DM Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/dm-mono-61f4626a.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; }
@font-face { font-family: "DM Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/dm-mono-61f4626a.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; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/ibm-plex-sans-f6667783.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; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/ibm-plex-sans-f6667783.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; }
@font-face { font-family: "IBM Plex Sans"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/ibm-plex-sans-f6667783.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; }
@font-face { font-family: "Schibsted Grotesk"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/schibsted-grotesk-2b16fb28.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; }
@font-face { font-family: "Schibsted Grotesk"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/schibsted-grotesk-2b16fb28.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; }
@font-face { font-family: "Schibsted Grotesk"; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/schibsted-grotesk-2b16fb28.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; }
/* end self-hosted fonts */
/* Metric-matched local fallbacks (measured against the web fonts in Chrome, 2026-10-26) so text does not
   reflow when the web font swaps in: keeps CLS near zero on slow connections. */
@font-face { font-family: "Plex Sans Fallback"; src: local("Arial"), local("ArialMT"), local("Arimo"), local("Liberation Sans"); font-weight: 100 500; size-adjust: 100.65%; ascent-override: 101.34%; descent-override: 26.83%; line-gap-override: 0%; }
@font-face { font-family: "Plex Sans Fallback"; src: local("Arial"), local("ArialMT"), local("Arimo"), local("Liberation Sans"); font-weight: 501 650; size-adjust: 100.65%; ascent-override: 101.34%; descent-override: 26.83%; line-gap-override: 0%; }
@font-face { font-family: "Plex Sans Fallback"; src: local("Arial Bold"), local("Arial-BoldMT"), local("Arimo Bold"), local("Liberation Sans Bold"); font-weight: 651 1000; size-adjust: 100.65%; ascent-override: 101.34%; descent-override: 26.83%; line-gap-override: 0%; }
@font-face { font-family: "Schibsted Fallback"; src: local("Arial"), local("ArialMT"), local("Arimo"), local("Liberation Sans"); font-weight: 100 500; size-adjust: 103.52%; ascent-override: 94.67%; descent-override: 25.12%; line-gap-override: 0%; }
@font-face { font-family: "Schibsted Fallback"; src: local("Arial"), local("ArialMT"), local("Arimo"), local("Liberation Sans"); font-weight: 501 650; size-adjust: 103.52%; ascent-override: 94.67%; descent-override: 25.12%; line-gap-override: 0%; }
@font-face { font-family: "Schibsted Fallback"; src: local("Arial Bold"), local("Arial-BoldMT"), local("Arimo Bold"), local("Liberation Sans Bold"); font-weight: 651 1000; size-adjust: 105.27%; ascent-override: 93.10%; descent-override: 24.70%; line-gap-override: 0%; }

/* WhenLeads design system: confident B2B data company.
   White canvas, deep navy ink, cobalt for action, a single signal-lime highlight used as a
   background (never as text). Schibsted Grotesk headlines, IBM Plex Sans text, DM Mono data.
   Large type, generous space, rounded 10px surfaces. Light only. */
:root {
  --bg: #ffffff;
  --panel: #f5f7fb;
  --card: #ffffff;
  --ink: #0a1630;
  --ink-2: #4a5672;
  --line: #e1e6ef;
  --line-strong: #a7b1c4;
  --link: #2346ff;
  --focus: #2346ff;
  --accent: #2346ff;
  --accent-on: #ffffff;
  --accent-hover: #1634d6;
  --accent-ink: #2346ff;
  --signal: #d7ff3c;
  --ok: #157347;
  --warn: #a35f00;
  --warn-ink: #7a4700;
  --bad: #b42318;
  --font-body: "IBM Plex Sans", "Plex Sans Fallback", "Helvetica Neue", Arial, sans-serif;
  --font-head: "Schibsted Grotesk", "Schibsted Fallback", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "DM Mono", ui-monospace, Menlo, monospace;
  --fw-head: 800;
  --ls-head: -0.03em;
  --radius: 10px;
  --radius-sm: 8px;
  --radius-btn: 999px;
  --maxw: 1320px;
  --fs-h1: clamp(2.6rem, 7vw, 5rem);
}
.site-header { border-bottom: 1px solid var(--line); }
.brand { display: inline-flex; align-items: baseline; text-decoration: none; color: var(--ink); font: 800 1.45rem/1 var(--font-head); letter-spacing: -0.03em; margin: 0; }
.brand__leads { font-weight: 600; }
.brand__dot { width: .5rem; height: .5rem; background: var(--signal); border: 2px solid var(--ink); border-radius: 50%; margin-left: .2rem; transform: translateY(-.05rem); }
.brand--footer { margin-bottom: .75rem; font-size: 1.25rem; }
.btn { font-weight: 600; }
.btn--sm { min-height: 40px; padding: .45rem 1.1rem; font-size: .95rem; }
.site-nav .btn { color: var(--accent-on); padding: .45rem 1.1rem; }
.eyebrow { font-family: var(--font-mono); color: var(--ink); background: var(--signal); display: inline-block; padding: .3rem .55rem; border-radius: 4px; letter-spacing: .06em; }

.hero { padding: clamp(3rem, 8vw, 6rem) 0 clamp(2.5rem, 6vw, 4.5rem); border-bottom: 1px solid var(--line); }
.hero__grid { display: grid; gap: 2.5rem 4rem; grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 1024px) { .hero__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.hero h1 { max-width: 7.7em; }
.hero h1 em { font-style: normal; background: linear-gradient(transparent 62%, var(--signal) 62%); }
.hero .lede { font-size: clamp(1.15rem, 2vw, 1.4rem); margin-bottom: 1.75rem; max-width: 46ch; }
.feed-card { min-width: 0; background: var(--panel); color: var(--ink); border: 1px solid var(--line); border-top: 4px solid var(--accent); border-radius: 14px; padding: 1rem; box-shadow: 0 18px 44px rgba(10, 22, 48, .08); }
.feed-card__head { display: flex; justify-content: space-between; gap: 1rem; font: 500 .8rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .06em; margin: .25rem .25rem 1rem; color: var(--accent); }
.feed-card .table-wrap { background: #fff; color: var(--ink); border: 1px solid var(--line); margin: 0; }
.feed-card td:first-child { font-family: var(--font-mono); font-size: .85rem; white-space: nowrap; }

.page-head { border-bottom: 1px solid var(--line); }
.split { border-top-color: var(--line); padding: 2.5rem 0; }
.split__head h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
thead th { font-family: var(--font-mono); font-weight: 500; text-transform: uppercase; font-size: .75rem; letter-spacing: .06em; color: var(--ink-2); }
.status { font: 500 .78rem/1 var(--font-mono); text-transform: uppercase; letter-spacing: .05em; padding: .3rem .5rem; border-radius: 4px; text-decoration: none; }
.status--open { background: var(--signal); color: var(--ink); }
.status--waitlist { background: var(--panel); color: var(--ink-2); border: 1px solid var(--line); }
.price-table td strong { font-family: var(--font-head); font-size: 1.1rem; }
.form-card { box-shadow: 0 16px 40px rgba(10, 22, 48, .08); }
.checks { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 1rem; }
.yn__opts { display: flex; flex-wrap: wrap; gap: 0 1.25rem; }
.site-footer { background: var(--panel); }
.site-footer__legal { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); }

/* ---------- media, hero and motion (structure in shared motion.css; this is the bold look) ----------
   Bigger moves, diagonal wipes, lime spotlight on ink cards. */
:root {
  --mo-dist: 28px; --mo-dur: 650ms; --mo-wipe-dur: 650ms; --mag-max: 10px; --parallax-max: 80px; --tilt-max: 4deg;
  --wipe-start: polygon(0 0, 0 0, -30% 100%, -30% 100%); --wipe-end: polygon(0 0, 130% 0, 100% 100%, -30% 100%);
  --progress: var(--accent); --spot: rgba(215, 255, 60, .16); --hero-h: min(78vh, 680px);
}
.hero--media h1, .page-head--split h1 { font-size: clamp(2.6rem, 5.4vw, 4.4rem); max-width: 7.05em; }
.hero-media__frame { border-radius: 18px; }
.hero-media--split .hero-media__frame { border-radius: 18px 0 0 18px; }
.media img { border-radius: 14px; }
.kinetic { border-bottom: 1px solid var(--line); background: var(--bg); }
.kinetic__item { color: var(--ink); }
.kinetic__sep { width: .75rem; height: .75rem; background: var(--signal); border: 2px solid var(--ink); }
.cta-band--ink { background: var(--panel); color: var(--ink); border: 1px solid var(--line); border-left: 6px solid var(--accent); border-radius: 18px; }
.cta-band--ink h2 { color: var(--ink); }
.cta-band--ink .cta-band__body > p { color: var(--ink-2); }
.cta-band--ink .btn--ghost { color: var(--ink); border-color: var(--ink); }
.cta-band--ink .btn--ghost:hover { background: #fff; }
.cta-band--ink :focus-visible { outline-color: var(--focus); }
.photo-note { margin: 1.25rem 0 0; }

/* phones: the two-column alert fields table reads as label over value instead of scrolling sideways */
@media (max-width: 639px) {
  .feed-card .table-wrap { overflow: visible; background: #fff; }
  .feed-card table, .feed-card tbody, .feed-card tr, .feed-card td { display: block; width: 100%; }
  .feed-card thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .feed-card tr { padding: .55rem .8rem; border-bottom: 1px solid var(--line); }
  .feed-card tr:last-child { border-bottom: 0; }
  .feed-card td { padding: 0; border: 0; white-space: normal !important; }
  .feed-card td:first-child { font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; color: var(--ink-2); }
  .feed-card .table-wrap + .table-hint { display: none; }
}
