/* Catalyst Sign-Up Page — site styles
   Built on the CRO Catalyst design tokens (blue + white enterprise). */

@import url('assets/tokens.css');

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.6;
  color: hsl(var(--foreground));
  background: hsl(var(--background));
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; display: block; }
button { font-family: inherit; }
a { color: inherit; }

/* ===== Layout primitives ===== */
.container { max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.container-wide { max-width: 1320px; margin: 0 auto; padding: 0 32px; }
@media (max-width: 720px) { .container, .container-wide { padding: 0 20px; } }

.section { padding: 96px 0; }
.section-tight { padding: 64px 0; }
@media (max-width: 720px) {
  .section { padding: 64px 0; }
  .section-tight { padding: 48px 0; }
}

.divider { border-top: 1px solid hsl(var(--border)); }

/* ===== Type ===== */
.eyebrow {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: hsl(var(--primary));
}
.eyebrow-muted {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
}
.h-display {
  font-size: clamp(44px, 6vw, 76px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.012em;
  margin: 0;
}
.h-section {
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: -0.008em;
  margin: 0;
}
.h-card {
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0;
}
.lede {
  font-size: 20px;
  line-height: 1.55;
  color: hsl(var(--foreground) / .72);
  margin: 0;
}
.body { font-size: 17px; line-height: 1.6; color: hsl(var(--foreground) / .82); }
.section-head { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; max-width: 720px; }
.section-head.center { align-items: center; text-align: center; margin: 0 auto; }
.muted { color: hsl(var(--muted-foreground)); }
.mono { font-family: var(--font-mono); }

/* ===== Buttons ===== */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 48px;
  padding: 0 22px;
  border-radius: 6px;
  border: 1px solid transparent;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  text-decoration: none;
  transition: background .12s ease, border-color .12s ease, color .12s ease;
  white-space: nowrap;
}
.btn-primary { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); }
.btn-primary:hover { background: hsl(218 64% 27%); }
.btn-secondary {
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  border-color: hsl(var(--border));
}
.btn-secondary:hover { background: hsl(var(--accent)); }
.btn-ghost { background: transparent; color: hsl(var(--foreground)); }
.btn-ghost:hover { background: hsl(var(--accent)); }
.btn-link {
  display: inline-flex; align-items: center; gap: 4px;
  background: none; border: none; padding: 0; cursor: pointer;
  font-size: 14px; font-weight: 500; color: hsl(var(--primary));
}
.btn-link:hover { text-decoration: underline; }
.btn-sm { height: 36px; padding: 0 14px; font-size: 13px; }
.btn-lg { height: 54px; padding: 0 28px; font-size: 16px; }

/* ===== Nav ===== */
.nav {
  position: sticky; top: 0; z-index: 30;
  background: hsl(var(--background) / .92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid hsl(var(--border));
}
.nav-row {
  display: flex; align-items: center; justify-content: space-between;
  height: 64px; gap: 24px;
}
.nav-brand { display: flex; align-items: center; gap: 10px; font-weight: 700; letter-spacing: -.01em; }
.nav-mark {
  width: 28px; height: 28px; border-radius: 6px;
  background: hsl(var(--primary)); color: #fff;
  display: flex; align-items: center; justify-content: center;
}
.nav-mark-img {
  width: 30px; height: 30px; display: block; object-fit: contain;
  flex-shrink: 0;
}
/* Full Invesp logo (mark + wordmark) — sized up so it reads clearly in the bar. */
.nav-logo-full {
  height: 46px; width: auto; display: block; flex-shrink: 0;
}
@media (max-width: 600px) { .nav-logo-full { height: 38px; } }
/* The mark is a blue gradient — fine on the white nav, but the default
   Invesp brand + dark style variants use a dark bar, so flip it to white. */
body.brand-invesp .nav-mark-img,
body.style-contrast .nav-mark-img,
body.style-remix .nav-mark-img { filter: brightness(0) invert(1); }
.nav-brand-name { font-size: 15px; }
.nav-brand-sub  { font-size: 9px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: hsl(var(--muted-foreground)); margin-top: 1px; }
.nav-links { display: flex; align-items: center; gap: 28px; }
.nav-links a {
  font-size: 17px; color: hsl(var(--foreground));
  text-decoration: none; font-weight: 500;
  display: inline-flex; align-items: center; min-height: 44px;
}
.nav-links a:hover { color: hsl(var(--primary)); }
.nav-cta { display: flex; align-items: center; gap: 8px; }
.nav-cta .btn-sm { font-size: 15px; }
@media (max-width: 880px) { .nav-links { display: none; } }
@media (max-width: 600px) { .nav-cta .btn-secondary { display: none; } }

/* ===== Hero ===== */
.hero { position: relative; padding: 96px 0 80px; overflow: hidden; }
.hero-grid {
  display: grid; grid-template-columns: 1.05fr 1fr; gap: 72px; align-items: center;
}
@media (max-width: 980px) { .hero-grid { grid-template-columns: 1fr; gap: 48px; } }

.hero-eyebrow-row { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.hero-eyebrow-pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 12px; border-radius: 9999px;
  background: hsl(var(--primary) / .08);
  color: hsl(var(--primary));
  font-size: 12px; font-weight: 600; letter-spacing: .04em;
}
.hero-eyebrow-pill .dot { width: 6px; height: 6px; border-radius: 9999px; background: hsl(var(--success)); }
.hero h1 { margin-bottom: 24px; }
/* Keyword eyebrow promoted to <h1>: reads as the small kicker above the
   big promise line, which is now a non-heading .h-display element. */
.hero h1.hero-keyword-h1 {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.3;
  margin: 0 0 16px;
  color: hsl(var(--muted-foreground));
}
.hero .hero-headline { margin: 0 0 24px; }
.hero-lede { max-width: 540px; margin-bottom: 32px; }
.hero-cta-row { display: flex; gap: 12px; margin-bottom: 40px; flex-wrap: wrap; }

.hero-trust {
  display: flex; gap: 32px; flex-wrap: wrap;
  padding-top: 28px; border-top: 1px solid hsl(var(--border));
}
.hero-trust-item .num { font-size: 28px; font-weight: 700; letter-spacing: -.01em; }
.hero-trust-item .lbl { font-size: 14px; color: hsl(var(--muted-foreground)); margin-top: 4px; }

/* ===== Hero product screenshot ===== */
.hero-frame {
  position: relative;
  border-radius: 12px;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  box-shadow: 0 30px 60px -20px rgb(15 23 42 / 0.18), 0 12px 24px -12px rgb(15 23 42 / 0.12);
  overflow: hidden;
}
.hero-frame img { display: block; width: 100%; height: auto; }
.hero-frame-bar {
  display: flex; align-items: center; gap: 6px;
  padding: 10px 14px;
  background: hsl(var(--muted));
  border-bottom: 1px solid hsl(var(--border));
}
.hero-frame-dot { width: 10px; height: 10px; border-radius: 9999px; }
.hero-frame-dot.r { background: #ef4444; }
.hero-frame-dot.y { background: #f59e0b; }
.hero-frame-dot.g { background: #10b981; }
.hero-frame-url {
  margin-left: 12px; font-size: 12px; color: hsl(var(--muted-foreground));
  font-family: var(--font-mono);
}
.hero-floating-card {
  position: absolute;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 10px;
  padding: 14px 18px;
  box-shadow: var(--shadow-lg);
  display: flex; flex-direction: column; gap: 4px;
}
.hero-floating-card.tl { top: -16px; left: -24px; }
.hero-floating-card.br { bottom: -16px; right: -16px; }
.hero-floating-card .card-num { font-size: 22px; font-weight: 700; letter-spacing: -.015em; }
.hero-floating-card .card-num .delta { color: hsl(var(--success)); margin-left: 6px; font-size: 14px; font-weight: 600; }
.hero-floating-card .card-lbl { font-size: 11px; color: hsl(var(--muted-foreground)); }

/* ===== Background bits ===== */
.hero-bg-grid {
  position: absolute; inset: 0; z-index: -1;
  background-image:
    linear-gradient(hsl(var(--border) / .5) 1px, transparent 1px),
    linear-gradient(90deg, hsl(var(--border) / .5) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 30%, transparent 80%);
  opacity: .55;
}

/* ===== Hero variant: Centered ===== */
.hero-centered { padding: 96px 0 64px; text-align: center; }
.hero-centered .hero-eyebrow-row { justify-content: center; }
.hero-centered h1 { max-width: 18ch; margin-left: auto; margin-right: auto; }
.hero-centered .hero-lede { margin-left: auto; margin-right: auto; }
.hero-centered .hero-cta-row { justify-content: center; }
.hero-centered .hero-trust { justify-content: center; border-top: none; padding-top: 8px; gap: 48px; }
.hero-centered .hero-frame-wrap { margin-top: 64px; max-width: 1080px; margin-left: auto; margin-right: auto; }

/* ===== Hero variant: Editorial ===== */
.hero-editorial { padding: 64px 0 32px; }
.hero-editorial .hero-grid { grid-template-columns: 1fr; gap: 48px; }
.hero-editorial h1 {
  font-size: clamp(56px, 9vw, 128px);
  letter-spacing: -0.04em;
  line-height: 0.96;
  font-weight: 800;
  max-width: 14ch;
}
.hero-editorial h1 em {
  font-style: normal;
  color: hsl(var(--primary));
}
.hero-editorial .hero-lede { font-size: 22px; max-width: 640px; }
.hero-editorial .hero-frame-wrap { margin-top: 32px; }
.hero-editorial .hero-meta-row {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 32px; padding: 32px 0; border-top: 1px solid hsl(var(--border)); border-bottom: 1px solid hsl(var(--border));
  margin-bottom: 48px;
}
@media (max-width: 720px) {
  .hero-editorial .hero-meta-row { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
.hero-editorial .meta-num { font-size: 36px; font-weight: 700; letter-spacing: -.02em; line-height: 1; }
.hero-editorial .meta-lbl { font-size: 12px; color: hsl(var(--muted-foreground)); margin-top: 6px; }

/* ===== Logo strip ===== */
.logo-strip { padding: 72px 0; border-bottom: 1px solid hsl(var(--border)); background: hsl(0 0% 100%); }

.logo-strip-head {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  margin-bottom: 64px; text-align: center;
}
.logo-strip-title {
  margin: 0;
  max-width: 28ch;
  text-wrap: balance;
}
.logo-strip-label {
  font-size: 14px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: hsl(var(--muted-foreground));
}
.logo-strip-meta {
  display: inline-flex; flex-wrap: wrap; justify-content: center;
  gap: 12px; font-size: 15px;
  color: hsl(var(--muted-foreground));
}
.logo-strip-meta strong { color: hsl(var(--foreground)); font-weight: 600; }
.logo-strip-meta .sep { opacity: .4; }

/* Unified grid — 6 columns desktop, 3 tablet, 2 mobile.
   Fixed-size cells + object-fit ensure every logo gets the SAME visual area
   regardless of source PNG dimensions. */
.logo-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px;
  align-items: center;
  justify-items: stretch;
}
@media (max-width: 1024px) { .logo-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px)  { .logo-grid { grid-template-columns: repeat(2, 1fr); } }

/* Each cell: fixed height, generous padding. The image fills the
   remaining space via object-fit: contain. Grayscale + opacity at rest
   unifies the wall — full color on hover. */
.logo-cell {
  width: 100%;
  height: 96px;
  display: flex; align-items: center; justify-content: center;
  padding: 22px 28px;
  box-sizing: border-box;
}
.logo-cell img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  filter: grayscale(1);
  opacity: 0.82;
  transition: filter .2s ease, opacity .2s ease;
}
.logo-cell:hover img {
  filter: grayscale(0);
  opacity: 1;
}

/* Grouped rows (original layout, still available) */
.logo-rows { display: flex; flex-direction: column; gap: 0; }
.logo-row-2 {
  display: grid; grid-template-columns: 200px 1fr; gap: 40px;
  padding: 28px 0;
  align-items: center;
  border-top: 1px solid hsl(var(--border) / .6);
}
.logo-row-2:first-child { border-top: none; }
@media (max-width: 880px) {
  .logo-row-2 { grid-template-columns: 1fr; gap: 16px; padding: 24px 0; }
}
.logo-row-anchor { display: flex; flex-direction: column; gap: 4px; }
.logo-row-name {
  font-size: 18px; font-weight: 700; letter-spacing: -.012em;
  color: hsl(var(--foreground));
}
.logo-row-meta {
  font-size: 12px;
  color: hsl(var(--muted-foreground));
}
.logo-row-marks {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 16px 32px;
}
.logo-row-marks .logo-cell { width: 180px; height: 72px; padding: 12px 18px; }

/* ===== Benefits (6 tiles) ===== */
.benefits-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  margin-top: 64px;
  border: 1px solid hsl(var(--border)); border-radius: 12px;
  overflow: hidden;
}
@media (max-width: 980px) { .benefits-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .benefits-grid { grid-template-columns: 1fr; } }
.benefit-tile {
  padding: 32px;
  border-right: 1px solid hsl(var(--border));
  border-bottom: 1px solid hsl(var(--border));
  background: hsl(var(--card));
}
.benefit-tile:nth-child(3n) { border-right: none; }
.benefit-tile:nth-last-child(-n+3) { border-bottom: none; }
@media (max-width: 980px) {
  .benefit-tile { border-right: 1px solid hsl(var(--border)) !important; border-bottom: 1px solid hsl(var(--border)) !important; }
  .benefit-tile:nth-child(2n) { border-right: none !important; }
  .benefit-tile:nth-last-child(-n+2):nth-child(even) { border-bottom: none !important; }
}
.benefit-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 8px;
  background: hsl(var(--primary) / .10); color: hsl(var(--primary));
  font-size: 13px; font-weight: 700; font-family: var(--font-mono);
  margin-bottom: 16px;
}
.benefit-title { font-size: 17px; font-weight: 600; letter-spacing: -.005em; margin: 0 0 8px 0; }
.benefit-body { font-size: 16px; line-height: 1.6; color: hsl(var(--foreground) / .82); margin: 0; }

/* ===== How we help ===== */
.help-list { margin-top: 48px; display: flex; flex-direction: column; gap: 0; }
.help-row {
  display: grid; grid-template-columns: 80px 1.1fr 1.5fr; gap: 32px;
  padding: 28px 0;
  border-top: 1px solid hsl(var(--border));
  align-items: start;
}
.help-row:last-child { border-bottom: 1px solid hsl(var(--border)); }
@media (max-width: 800px) { .help-row { grid-template-columns: 60px 1fr; gap: 16px; } .help-row .help-body { grid-column: 1 / -1; padding-left: 76px; } }
.help-num { font-family: var(--font-mono); font-size: 13px; color: hsl(var(--muted-foreground)); padding-top: 4px; }
.help-title { font-size: 22px; font-weight: 600; letter-spacing: -.01em; margin: 0; }
.help-body { font-size: 17px; line-height: 1.6; color: hsl(var(--foreground) / .82); margin: 0; }

/* ===== Plans ===== */
.plans-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  margin-top: 64px;
}
@media (max-width: 980px) { .plans-grid { grid-template-columns: 1fr; } }

.plan {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 12px;
  padding: 32px;
  display: flex; flex-direction: column; gap: 24px;
  position: relative;
}
.plan-featured {
  border: 1px solid hsl(var(--primary));
  box-shadow: 0 0 0 4px hsl(var(--primary) / .08), 0 20px 40px -20px hsl(var(--primary) / .25);
  transform: translateY(-8px);
}
@media (max-width: 980px) { .plan-featured { transform: none; } }
.plan-badge {
  position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
  padding: 4px 12px; border-radius: 9999px;
  background: hsl(var(--primary)); color: hsl(var(--primary-foreground));
  font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
}
.plan-meta-pill {
  display: inline-flex; padding: 4px 10px; border-radius: 4px;
  font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  background: hsl(var(--muted)); color: hsl(var(--muted-foreground));
  width: fit-content;
}
.plan-name { font-size: 24px; font-weight: 700; letter-spacing: -.015em; margin: 0; }
.plan-for { font-size: 15px; color: hsl(var(--muted-foreground)); line-height: 1.55; margin: 0; }
.plan-price-row { display: flex; align-items: baseline; gap: 6px; padding: 16px 0; border-top: 1px solid hsl(var(--border)); border-bottom: 1px solid hsl(var(--border)); }
.plan-price { font-size: 36px; font-weight: 700; letter-spacing: -.02em; }
.plan-price-prefix { font-size: 14px; color: hsl(var(--muted-foreground)); }
.plan-price-suffix { font-size: 14px; color: hsl(var(--muted-foreground)); }
.plan-features { display: flex; flex-direction: column; gap: 10px; padding: 0; margin: 0; list-style: none; flex: 1; }
.plan-feature { display: flex; gap: 10px; align-items: flex-start; font-size: 16px; line-height: 1.55; }
.plan-feature .check {
  flex-shrink: 0; width: 18px; height: 18px; border-radius: 9999px;
  background: hsl(var(--primary) / .12); color: hsl(var(--primary));
  display: inline-flex; align-items: center; justify-content: center;
  margin-top: 1px;
}
.plan-feature.inherited .check { background: hsl(var(--muted)); color: hsl(var(--muted-foreground)); }
.plan-cta { display: flex; flex-direction: column; gap: 8px; }

.plan-fineprint {
  margin-top: 32px; text-align: center;
  font-size: 13px; color: hsl(var(--muted-foreground));
  max-width: 720px; margin-left: auto; margin-right: auto;
}

/* ===== Plans variant: Comparison Table ===== */
.plans-table-wrap {
  margin-top: 64px;
  border: 1px solid hsl(var(--border));
  border-radius: 12px;
  overflow: hidden;
  background: hsl(var(--card));
}
.plans-table {
  width: 100%; border-collapse: collapse; font-size: 14px;
}
.plans-table thead th {
  text-align: left; padding: 24px 24px 20px;
  vertical-align: top;
  border-bottom: 1px solid hsl(var(--border));
}
.plans-table thead th.featured-col { background: hsl(var(--primary) / .04); position: relative; }
.plans-table thead th.featured-col::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: hsl(var(--primary));
}
.plans-table thead th + th { border-left: 1px solid hsl(var(--border)); }
.plans-table tbody td { padding: 14px 24px; border-bottom: 1px solid hsl(var(--border)); vertical-align: top; }
.plans-table tbody td + td { border-left: 1px solid hsl(var(--border)); }
.plans-table tbody td.featured-col { background: hsl(var(--primary) / .04); }
.plans-table tbody tr:last-child td { border-bottom: none; }
.plans-table .row-label { font-weight: 500; background: hsl(var(--muted) / .4); }
.plans-table .row-section { background: hsl(var(--muted)); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: hsl(var(--muted-foreground)); }
.plans-table .col-meta { display: flex; flex-direction: column; gap: 8px; }
.plans-table .col-name { font-size: 22px; font-weight: 700; letter-spacing: -.015em; margin: 0; }
.plans-table .col-price { font-size: 24px; font-weight: 700; letter-spacing: -.015em; }
.plans-table .col-price small { font-size: 13px; font-weight: 400; color: hsl(var(--muted-foreground)); }
.plans-table .col-cta { margin-top: 8px; }
.plans-table .check-icon { color: hsl(var(--primary)); }
.plans-table .dash { color: hsl(var(--muted-foreground)); }
@media (max-width: 880px) {
  .plans-table-wrap { overflow-x: auto; }
  .plans-table { min-width: 720px; }
}

/* ===== How it works ===== */
.steps {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  margin-top: 56px;
  position: relative;
}
@media (max-width: 880px) { .steps { grid-template-columns: 1fr; } }
.step {
  padding: 32px 32px 32px 0;
  border-top: 2px solid hsl(var(--primary));
  position: relative;
}
.step + .step { padding-left: 32px; border-left: 1px solid hsl(var(--border)); }
@media (max-width: 880px) {
  .step + .step { padding-left: 0; border-left: none; }
}
.step-num { font-family: var(--font-mono); font-size: 12px; font-weight: 600; color: hsl(var(--primary)); letter-spacing: .04em; }
.step-week { font-size: 12px; color: hsl(var(--muted-foreground)); margin-left: 8px; }
.step-title { font-size: 22px; font-weight: 600; letter-spacing: -.01em; margin: 12px 0 12px 0; }
.step-body { font-size: 17px; line-height: 1.6; color: hsl(var(--foreground) / .82); margin: 0; }

/* ===== Pod ===== */
.pod-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px;
  margin-top: 56px;
}
/* If a single pod-row is orphaned on the last row (odd count), center it */
.pod-grid > .pod-row:last-child:nth-child(odd) {
  grid-column: 1 / -1;
  max-width: calc(50% - 12px);
  justify-self: center;
}
@media (max-width: 720px) {
  .pod-grid { grid-template-columns: 1fr; }
  .pod-grid > .pod-row:last-child:nth-child(odd) { max-width: none; }
}
.pod-row {
  display: grid; grid-template-columns: 220px 1fr; gap: 32px; align-items: start;
  padding: 24px;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 8px;
}
.pod-row:hover { border-color: hsl(var(--primary) / .4); }
@media (max-width: 720px) { .pod-row { grid-template-columns: 1fr; gap: 12px; } }
.pod-role-block { display: flex; flex-direction: column; gap: 12px; }
.pod-avatar {
  width: 48px; height: 48px; border-radius: 9999px;
  background: hsl(var(--primary) / .10); color: hsl(var(--primary));
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 15px; letter-spacing: -.01em;
}
.pod-role { font-size: 17px; font-weight: 600; margin: 0; }
.pod-desc { font-size: 16px; line-height: 1.6; color: hsl(var(--foreground) / .82); margin: 0; }

/* ===== Why ===== */
.why-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0;
  margin-top: 56px;
  border-top: 1px solid hsl(var(--border));
  border-left: 1px solid hsl(var(--border));
}
@media (max-width: 720px) { .why-grid { grid-template-columns: 1fr; } }
.why-row {
  padding: 40px;
  border-right: 1px solid hsl(var(--border));
  border-bottom: 1px solid hsl(var(--border));
}
.why-num {
  font-family: var(--font-mono);
  font-size: 12px; font-weight: 600; color: hsl(var(--primary));
  letter-spacing: .04em;
  margin-bottom: 16px;
}
.why-title { font-size: 22px; font-weight: 600; letter-spacing: -.01em; line-height: 1.2; margin: 0 0 12px 0; }
.why-body { font-size: 17px; line-height: 1.6; color: hsl(var(--foreground) / .82); margin: 0; }

/* ===== Testimonials ===== */
.testimonials-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  margin-top: 56px;
}
@media (max-width: 980px) { .testimonials-grid { grid-template-columns: 1fr; } }
.testimonial {
  padding: 32px;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 8px;
  display: flex; flex-direction: column; gap: 24px;
}
.testimonial-stat { font-size: 40px; font-weight: 700; letter-spacing: -.02em; line-height: 1; color: hsl(var(--primary)); }
.testimonial-quote { font-size: 18px; line-height: 1.6; margin: 0; }
.testimonial-meta { display: flex; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid hsl(var(--border)); margin-top: auto; }
.testimonial-avatar {
  width: 40px; height: 40px; border-radius: 9999px;
  background: hsl(var(--primary)); color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  font-weight: 600; font-size: 13px;
}
.testimonial-name { font-size: 14px; font-weight: 600; }
.testimonial-role { font-size: 12px; color: hsl(var(--muted-foreground)); }

/* ===== FAQ ===== */
.faq-list { margin-top: 48px; max-width: 920px; }
.faq-item {
  border-top: 1px solid hsl(var(--border));
}
.faq-item:last-child { border-bottom: 1px solid hsl(var(--border)); }
.faq-q {
  width: 100%; text-align: left;
  background: none; border: none;
  padding: 24px 0;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  font-size: 24px; font-weight: 700; letter-spacing: -.01em;
  color: hsl(var(--foreground));
  cursor: pointer;
}
.faq-q:hover { color: hsl(var(--primary)); }
.faq-icon {
  flex-shrink: 0; width: 28px; height: 28px; border-radius: 9999px;
  background: hsl(var(--muted)); color: hsl(var(--muted-foreground));
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s, color .15s, transform .15s;
}
.faq-item.open .faq-icon { background: hsl(var(--primary)); color: #fff; transform: rotate(45deg); }
.faq-a {
  display: none;
  padding: 0 0 24px 0;
  font-size: 18px; line-height: 1.7; color: hsl(var(--foreground) / .9);
  max-width: 800px;
}
.faq-item.open .faq-a { display: block; }
.faq-a .faq-ol {
  margin: 14px 0 0;
  padding-left: 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.faq-a .faq-ol li { padding-left: 4px; }

/* ===== Final CTA ===== */
.final-cta {
  background: hsl(var(--sidebar));
  color: #fff;
  border-radius: 16px;
  padding: 80px 64px;
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px;
  align-items: center;
  position: relative; overflow: hidden;
}
@media (max-width: 880px) { .final-cta { grid-template-columns: 1fr; padding: 56px 32px; } }
.final-cta::before {
  content: '';
  position: absolute; right: -120px; top: -120px;
  width: 480px; height: 480px; border-radius: 9999px;
  background: hsl(218 80% 62% / .15);
  filter: blur(40px);
}
.final-cta h2 { font-size: clamp(32px, 4vw, 44px); font-weight: 700; line-height: 1.1; letter-spacing: -.02em; margin: 0; }
.final-cta p { color: rgb(220 226 240 / .85); font-size: 16px; line-height: 1.55; margin: 12px 0 32px 0; }
.final-cta .btn-primary { background: hsl(218 80% 62%); color: #0b1322; }
.final-cta .btn-primary:hover { background: hsl(218 80% 70%); }
.final-cta .btn-secondary { background: transparent; border-color: rgb(255 255 255 / .25); color: #fff; }
.final-cta .btn-secondary:hover { background: rgb(255 255 255 / .08); }

.final-cta-side { position: relative; z-index: 2; }
.final-cta-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.final-cta-list li { display: flex; align-items: center; gap: 12px; font-size: 14px; color: rgb(220 226 240 / .85); }
.final-cta-list .check { flex-shrink: 0; width: 20px; height: 20px; border-radius: 9999px; background: hsl(218 80% 62% / .25); color: hsl(218 80% 70%); display: inline-flex; align-items: center; justify-content: center; }

/* ===== Footer ===== */
.footer { padding: 48px 0; border-top: 1px solid hsl(var(--border)); margin-top: 96px; color: hsl(var(--muted-foreground)); font-size: 13px; }
.footer-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.footer-links { display: flex; gap: 24px; }
.footer-links a { text-decoration: none; }
.footer-links a:hover { color: hsl(var(--foreground)); }

/* ===== Header dropdown (Guides) ===== */
.nav-dropdown { position: relative; display: flex; align-items: center; }
.nav-dropdown-trigger { display: inline-flex; align-items: center; gap: 5px; font-size: 17px; font-weight: 500; color: hsl(var(--foreground)); background: none; border: none; cursor: pointer; padding: 0; font-family: inherit; }
.nav-dropdown-trigger svg { transition: transform .18s ease; margin-top: 1px; }
.nav-dropdown:hover .nav-dropdown-trigger, .nav-dropdown:focus-within .nav-dropdown-trigger { color: hsl(var(--primary)); }
.nav-dropdown:hover .nav-dropdown-trigger svg, .nav-dropdown:focus-within .nav-dropdown-trigger svg { transform: rotate(180deg); }
.nav-dropdown::after { content: ""; position: absolute; top: 100%; left: -10px; right: -10px; height: 18px; }
.nav-dropdown-menu { position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%) translateY(6px); min-width: 210px; background: #fff; border: 1px solid hsl(var(--border)); border-radius: 12px; box-shadow: 0 18px 40px -12px rgb(15 23 42 / .22); padding: 8px; display: flex; flex-direction: column; gap: 2px; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .16s ease, transform .16s ease; z-index: 40; }
.nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown:focus-within .nav-dropdown-menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.nav-dropdown-menu a { display: block; padding: 9px 12px; border-radius: 8px; font-size: 15px; font-weight: 500; color: hsl(var(--foreground)); text-decoration: none; white-space: nowrap; }
.nav-dropdown-menu a:hover { background: hsl(var(--muted) / .6); color: hsl(var(--primary)); }
/* Dark-nav themes (default Invesp brand + high-contrast/remix variants) force
   every `.nav-links a` white. The Guides trigger is a <button>, so it gets
   skipped and stays dark/invisible on the navy bar — match it to the siblings.
   The menu links ARE `.nav-links a`, so they get forced white and vanish on the
   white popover — force them back to readable dark text (higher specificity +
   !important to beat the brand override). */
body.brand-invesp .nav-dropdown-trigger,
body.style-contrast .nav-dropdown-trigger,
body.style-remix .nav-dropdown-trigger { color: #fff; }
body.brand-invesp .nav-dropdown:hover .nav-dropdown-trigger,
body.brand-invesp .nav-dropdown:focus-within .nav-dropdown-trigger { color: hsl(263 82% 84%); }
body.style-contrast .nav-dropdown:hover .nav-dropdown-trigger,
body.style-contrast .nav-dropdown:focus-within .nav-dropdown-trigger,
body.style-remix .nav-dropdown:hover .nav-dropdown-trigger,
body.style-remix .nav-dropdown:focus-within .nav-dropdown-trigger { color: hsl(218 80% 70%); }
body.brand-invesp .nav-dropdown-menu a,
body.style-contrast .nav-dropdown-menu a,
body.style-remix .nav-dropdown-menu a { color: hsl(var(--foreground)) !important; }
body.brand-invesp .nav-dropdown-menu a:hover,
body.style-contrast .nav-dropdown-menu a:hover,
body.style-remix .nav-dropdown-menu a:hover { color: hsl(var(--primary)) !important; }

/* ===== Footer (redesigned, two-tone) ===== */
.footer { padding: 0; margin-top: 120px; border-top: 1px solid hsl(var(--border)); color: hsl(var(--foreground)); font-size: 14px; }
.footer-grid { display: grid; grid-template-columns: 1fr 420px; align-items: stretch; }
.footer-main { background: #fff; padding: 72px clamp(24px,5vw,80px) 64px; }
.footer-logo { display: inline-block; margin-bottom: 56px; }
.footer-logo img { height: 54px; width: auto; display: block; }
.footer-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.footer-col h4, .footer-col h3 { font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: hsl(var(--foreground)); margin: 0 0 18px; }
.footer-col a { display: block; font-size: 14px; line-height: 1.45; color: hsl(var(--muted-foreground)); text-decoration: none; margin-bottom: 12px; }
.footer-col a:hover { color: hsl(var(--primary)); }
.footer-side { background: linear-gradient(150deg, #2f93da 0%, #1d6fb5 100%); color: #fff; padding: 72px clamp(28px,3.4vw,56px) 64px; display: flex; flex-direction: column; }
.footer-sub-title { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 18px; color: #fff; }
.footer-sub-form { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 48px; }
.footer-sub-form input { width: 100%; max-width: 300px; padding: 13px 16px; border: none; border-radius: 8px; font-size: 15px; font-family: inherit; background: #fff; color: hsl(var(--foreground)); }
.footer-sub-form input::placeholder { color: hsl(var(--muted-foreground)); }
.footer-sub-btn { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 8px; border: none; background: rgba(255,255,255,.22); color: #fff; cursor: pointer; transition: background .15s ease; }
.footer-sub-btn:hover { background: rgba(255,255,255,.36); }
.footer-contact { margin-top: auto; display: flex; flex-direction: column; gap: 18px; }
.footer-hq { font-size: 18px; line-height: 1.4; font-weight: 600; color: #fff; text-decoration: none; }
.footer-hq:hover { text-decoration: underline; }
.footer-contact-line { display: inline-flex; align-items: center; gap: 11px; font-size: 16px; color: #fff; text-decoration: none; }
.footer-contact-line svg { flex-shrink: 0; opacity: .9; }
.footer-contact-line:hover { text-decoration: underline; }
.footer-social { display: flex; gap: 18px; margin-top: 10px; }
.footer-social a { color: #fff; opacity: .92; display: inline-flex; transition: opacity .15s ease, transform .15s ease; }
.footer-social a:hover { opacity: 1; transform: translateY(-1px); }
.footer-bottom { background: #fff; border-top: 1px solid hsl(var(--border)); padding: 20px 0; color: hsl(var(--muted-foreground)); font-size: 13px; }
.footer-bottom .footer-row { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.footer-bottom a { color: hsl(var(--muted-foreground)); text-decoration: none; }
.footer-bottom a:hover { color: hsl(var(--primary)); }
@media (max-width: 980px) { .footer-grid { grid-template-columns: 1fr; } .footer-side { padding-top: 56px; } }
@media (max-width: 640px) { .footer-cols { grid-template-columns: 1fr 1fr; gap: 28px 24px; } }
@media (max-width: 420px) { .footer-cols { grid-template-columns: 1fr; } }

/* ===== Tweaks panel positioning ===== */
.tweak-grp { display: flex; flex-direction: column; gap: 8px; }

/* SVG check */
.icon-check svg { width: 100%; height: 100%; }

/* ===== Selection ===== */
::selection { background: hsl(var(--primary) / .2); color: hsl(var(--foreground)); }

/* ===== Focus visibility (WCAG 2.4.7) =====
   Strong, visible focus ring on all interactive elements when keyboard-
   focused. 3px ring at ≥3:1 contrast against any background. */
*:focus { outline: none; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid hsl(var(--primary));
  outline-offset: 2px;
  border-radius: 4px;
}
/* Strong focus ring for cases where the element sits on a dark/primary bg */
.btn-primary:focus-visible {
  outline-color: #fff;
  box-shadow: 0 0 0 3px hsl(var(--primary));
}

/* ===== WCAG 2.2 target sizes (≥24px) + field label ===== */
.nav-dropdown-trigger { min-height: 44px; }
.footer-col a { padding: 3px 0; }
.footer-social a { width: 40px; height: 40px; align-items: center; justify-content: center; }
.footer-social { gap: 10px; margin-left: -8px; }
.footer-sub-label { display: block; font-size: 14px; font-weight: 500; color: #fff; margin: 0 0 2px; }
/* Keep the focus ring visible where links sit on dark royal bands */
.hero a:focus-visible, .final-cta a:focus-visible { outline-color: #fff; }
