/* RFPExperts design v2 + pricing page extensions (from docs/). */
/* ── Reset ──────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Core palette */
  --navy:      #0f2340;
  --navy-mid:  #1a3a5c;
  --navy-lt:   #2a5080;
  --navy-pale: #eef3f9;
  --amber:     #b86c0a;
  --amber-lt:  #d4820f;
  --amber-bg:  #fef8f0;
  --amber-bdr: #e8c084;

  /* Neutrals — all pass WCAG AA on white */
  --gray-900:  #111827;  /* 16.8:1 on white */
  --gray-700:  #374151;  /* 7.9:1 on white  */
  --gray-500:  #6b7280;  /* 4.6:1 on white  */
  --gray-300:  #d1d5db;
  --gray-100:  #f3f4f6;
  --gray-50:   #f9fafb;
  --white:     #ffffff;

  /* Semantic */
  --green:     #15803d;  /* 5.8:1 on white */
  --green-bg:  #f0fdf4;
  --green-bdr: #86efac;
  --red:       #b91c1c;  /* 5.9:1 on white */
  --red-bg:    #fef2f2;
  --red-bdr:   #fca5a5;
  --gold-text: #92400e;  /* 7.2:1 on white */
  --gold-bg:   #fffbeb;
  --gold-bdr:  #fcd34d;

  /* Type */
  --serif: "Instrument Serif", Georgia, serif;
  --sans:  "Plus Jakarta Sans", system-ui, sans-serif;
  --mono:  "IBM Plex Mono", monospace;

  /* Spacing */
  --radius:    6px;
  --radius-lg: 12px;
  --shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);
  --shadow-md: 0 4px 16px rgba(0,0,0,.10), 0 2px 4px rgba(0,0,0,.06);
  --shadow-lg: 0 12px 40px rgba(0,0,0,.12), 0 4px 8px rgba(0,0,0,.06);
}

html { scroll-behavior: smooth; }

body {
  background: var(--white);
  color: var(--gray-900);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.site-main {
  flex: 1;
  width: 100%;
}

/* ── Header ─────────────────────────────────────────────────────────── */
header {
  background: var(--white);
  border-bottom: 1px solid var(--gray-300);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: var(--shadow-sm);
}

.header-inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 40px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

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

.logo-badge {
  background: var(--navy);
  color: var(--white);
  width: 32px;
  height: 32px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .03em;
  flex-shrink: 0;
}

.logo-text {
  font-family: var(--sans);
  font-weight: 700;
  font-size: 17px;
  color: var(--navy);
  letter-spacing: -.01em;
}

.header-nav {
  display: flex;
  align-items: center;
  gap: 28px;
}

.nav-link {
  font-size: 15px;
  font-weight: 500;
  color: var(--gray-700);
  text-decoration: none;
  transition: color .15s;
}
.nav-link:hover { color: var(--navy); }

.nav-signin {
  font-size: 15px;
  font-weight: 500;
  color: var(--navy);
  text-decoration: none;
  padding: 7px 16px;
  border: 1.5px solid var(--navy);
  border-radius: var(--radius);
  transition: background .15s, color .15s;
}
.nav-signin:hover { background: var(--navy); color: var(--white); }

.nav-cta {
  font-size: 15px;
  font-weight: 600;
  background: var(--amber);
  color: var(--white);
  text-decoration: none;
  padding: 8px 20px;
  border-radius: var(--radius);
  transition: background .15s;
  box-shadow: 0 1px 3px rgba(184,108,10,.3);
}
.nav-cta:hover { background: var(--amber-lt); }

/* ── Status ribbon ──────────────────────────────────────────────────── */
.status-ribbon {
  background: var(--navy);
  padding: 8px 40px;
  display: flex;
  align-items: center;
  gap: 0;
  overflow: hidden;
}

.status-inner {
  max-width: 1160px;
  margin: 0 auto;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 24px;
}

.status-item {
  font-family: var(--mono);
  font-size: 11px;
  color: rgba(255,255,255,.7);
  letter-spacing: .06em;
  display: flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}

.status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4ade80;
  animation: blink 2.5s ease-in-out infinite;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.35} }

.status-sep { color: rgba(255,255,255,.2); }

/* ── Layout ─────────────────────────────────────────────────────────── */
.page-wrap {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 40px;
}

/* ── Hero ────────────────────────────────────────────────────────────── */
.hero {
  padding: 80px 0 72px;
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 72px;
  align-items: start;
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  color: var(--amber);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 20px;
  background: var(--amber-bg);
  border: 1px solid var(--amber-bdr);
  padding: 4px 12px;
  border-radius: 100px;
}

.hero-eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--amber);
}

h1 {
  font-family: var(--serif);
  font-size: clamp(38px, 4.5vw, 58px);
  font-weight: 400;
  line-height: 1.08;
  color: var(--navy);
  margin-bottom: 24px;
  letter-spacing: -.01em;
}

h1 em {
  font-style: italic;
  color: var(--amber);
}

.hero-body {
  font-size: 17px;
  color: var(--gray-700);
  line-height: 1.72;
  max-width: 520px;
  margin-bottom: 36px;
}

/* Stats */
.stat-row {
  display: flex;
  gap: 0;
  margin-bottom: 40px;
  border: 1px solid var(--gray-300);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--gray-50);
}

.stat {
  flex: 1;
  padding: 16px 20px;
  border-right: 1px solid var(--gray-300);
}
.stat:last-child { border-right: none; }

.stat-value {
  font-family: var(--sans);
  font-size: 26px;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: -.02em;
  line-height: 1;
  margin-bottom: 3px;
}
.stat-value span { color: var(--amber); }

.stat-label {
  font-size: 12px;
  color: var(--gray-500);
  font-weight: 500;
  line-height: 1.3;
}

/* CTA row */
.cta-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}

.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  background: var(--navy);
  color: var(--white);
  padding: 13px 28px;
  border-radius: var(--radius);
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background .15s, transform .1s;
  box-shadow: 0 2px 8px rgba(15,35,64,.2);
}
.btn-primary:hover { background: var(--navy-mid); transform: translateY(-1px); }
.btn-primary:active { transform: translateY(0); }

.btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  background: var(--amber);
  color: var(--white);
  padding: 13px 28px;
  border-radius: var(--radius);
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background .15s;
}
.btn-secondary:hover { background: var(--amber-lt); }

.btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: 500;
  color: var(--gray-700);
  text-decoration: none;
  padding: 13px 20px;
  transition: color .15s;
}
.btn-ghost:hover { color: var(--navy); }

.btn-arrow { transition: transform .2s; }
.btn-primary:hover .btn-arrow,
.btn-secondary:hover .btn-arrow,
.btn-ghost:hover .btn-arrow { transform: translateX(3px); }

/* ── Sample analysis card ────────────────────────────────────────────── */
.sample-card {
  background: var(--white);
  border: 1px solid var(--gray-300);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  animation: rise .5s .1s ease both;
}

@keyframes rise {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.card-header {
  background: var(--navy);
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.card-header-title {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .1em;
  color: rgba(255,255,255,.6);
  text-transform: uppercase;
}

.card-verdict-badge {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .06em;
  background: rgba(74,222,128,.15);
  color: #4ade80;
  border: 1px solid rgba(74,222,128,.3);
  padding: 3px 10px;
  border-radius: 4px;
}

/* Score section */
.score-section {
  padding: 24px 20px 18px;
  display: flex;
  align-items: center;
  gap: 18px;
  border-bottom: 1px solid var(--gray-100);
}

.score-ring-wrap {
  position: relative;
  width: 76px;
  height: 76px;
  flex-shrink: 0;
}

.score-ring-wrap svg { transform: rotate(-90deg); }
.ring-track { fill: none; stroke: var(--gray-100); stroke-width: 6; }
.ring-fill {
  fill: none;
  stroke: var(--navy);
  stroke-width: 6;
  stroke-linecap: round;
  stroke-dasharray: 213;
  stroke-dashoffset: 213;
  transition: stroke-dashoffset 1.2s cubic-bezier(.4,0,.2,1);
}

.score-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.score-num {
  font-family: var(--sans);
  font-size: 22px;
  font-weight: 700;
  color: var(--navy);
  line-height: 1;
}
.score-denom {
  font-family: var(--mono);
  font-size: 9px;
  color: var(--gray-500);
  letter-spacing: .06em;
}

.score-info { flex: 1; }
.score-verdict {
  font-size: 16px;
  font-weight: 700;
  color: var(--green);
  margin-bottom: 3px;
}
.score-sol {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--gray-500);
  line-height: 1.5;
}

/* Findings */
.findings { padding: 4px 0; }

.finding {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 11px 20px;
  border-bottom: 1px solid var(--gray-100);
  transition: background .15s;
}
.finding:last-child { border-bottom: none; }
.finding:hover { background: var(--gray-50); }

.finding-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  flex-shrink: 0;
  margin-top: 1px;
  font-weight: 700;
}
.icon-pass { background: var(--green-bg); color: var(--green); }
.icon-warn { background: var(--gold-bg); color: var(--gold-text); }
.icon-fail { background: var(--red-bg); color: var(--red); }

.finding-content { flex: 1; }
.finding-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .08em;
  color: var(--gray-500);
  text-transform: uppercase;
  margin-bottom: 2px;
}
.finding-text {
  font-size: 13px;
  color: var(--gray-700);
  line-height: 1.4;
}
.finding-tag {
  display: inline-block;
  font-family: var(--mono);
  font-size: 10px;
  padding: 1px 6px;
  border-radius: 3px;
  border: 1px solid;
  margin-left: 6px;
  vertical-align: middle;
}
.tag-pass { color: var(--green); border-color: var(--green-bdr); background: var(--green-bg); }
.tag-warn { color: var(--gold-text); border-color: var(--gold-bdr); background: var(--gold-bg); }
.tag-fail { color: var(--red); border-color: var(--red-bdr); background: var(--red-bg); }

.card-cta {
  display: block;
  margin: 16px 20px;
  background: var(--amber);
  color: var(--white);
  text-align: center;
  padding: 12px;
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background .15s;
}
.card-cta:hover { background: var(--amber-lt); }

.card-foot {
  text-align: center;
  padding: 8px 20px 16px;
  font-family: var(--mono);
  font-size: 10px;
  color: var(--gray-500);
  letter-spacing: .05em;
}

/* ── Divider ─────────────────────────────────────────────────────────── */
.section-divider {
  border: none;
  border-top: 1px solid var(--gray-300);
  margin: 0;
}

/* ── Features ────────────────────────────────────────────────────────── */
.features-section {
  padding: 80px 0;
}

.section-label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--amber);
  text-transform: uppercase;
  margin-bottom: 12px;
}

.section-title {
  font-family: var(--serif);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 400;
  color: var(--navy);
  margin-bottom: 48px;
  max-width: 500px;
  line-height: 1.2;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.feature-card {
  padding: 28px 24px;
  border: 1px solid var(--gray-300);
  border-radius: var(--radius-lg);
  background: var(--white);
  transition: box-shadow .2s, border-color .2s, transform .2s;
}
.feature-card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--navy);
  transform: translateY(-2px);
}

.feature-num {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--gray-300);
  letter-spacing: .06em;
  margin-bottom: 14px;
}

.feature-heading {
  font-size: 17px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 10px;
  line-height: 1.25;
  letter-spacing: -.01em;
}

.feature-body {
  font-size: 14px;
  color: var(--gray-700);
  line-height: 1.65;
}

/* ── Tier section ────────────────────────────────────────────────────── */
.tier-section {
  background: var(--gray-50);
  border-top: 1px solid var(--gray-300);
  border-bottom: 1px solid var(--gray-300);
  padding: 72px 0;
}

.tier-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 0;
}

.tier-card {
  background: var(--white);
  border: 1px solid var(--gray-300);
  border-radius: var(--radius-lg);
  padding: 24px 20px;
  position: relative;
  transition: box-shadow .2s;
}
.tier-card:hover { box-shadow: var(--shadow-md); }

.tier-card.featured {
  border-color: var(--navy);
  border-width: 2px;
}
.tier-card.featured::before {
  content: "Most popular";
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--navy);
  color: var(--white);
  font-size: 11px;
  font-weight: 600;
  padding: 3px 12px;
  border-radius: 100px;
  white-space: nowrap;
  font-family: var(--mono);
  letter-spacing: .04em;
}

.tier-name {
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 6px;
}

.tier-price {
  font-size: 28px;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: -.02em;
  margin-bottom: 4px;
  line-height: 1;
}
.tier-price span { font-size: 14px; font-weight: 400; color: var(--gray-500); }

.tier-tagline {
  font-size: 12px;
  color: var(--gray-500);
  margin-bottom: 18px;
  line-height: 1.4;
}

.tier-divider {
  border: none;
  border-top: 1px solid var(--gray-100);
  margin-bottom: 16px;
}

.tier-features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tier-features li {
  font-size: 13px;
  color: var(--gray-700);
  display: flex;
  align-items: flex-start;
  gap: 8px;
  line-height: 1.4;
}
.tier-features li::before {
  content: "✓";
  color: var(--green);
  font-weight: 700;
  flex-shrink: 0;
  font-size: 13px;
}

/* ── Intake form ─────────────────────────────────────────────────────── */
.intake-section {
  padding: 80px 0 96px;
}

.intake-grid {
  display: grid;
  grid-template-columns: 1fr 520px;
  gap: 72px;
  align-items: start;
}

.intake-title {
  font-family: var(--serif);
  font-size: clamp(32px, 3.5vw, 44px);
  font-weight: 400;
  color: var(--navy);
  line-height: 1.1;
  margin-bottom: 16px;
}

.intake-body {
  font-size: 16px;
  color: var(--gray-700);
  line-height: 1.7;
  margin-bottom: 32px;
}

.trust-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.trust-list li {
  font-size: 15px;
  color: var(--gray-700);
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.4;
}
.trust-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--green-bg);
  color: var(--green);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}

/* Form card */
.form-card {
  background: var(--white);
  border: 1px solid var(--gray-300);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}

.form-card-header {
  background: var(--navy);
  padding: 16px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.form-card-title {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .1em;
  color: rgba(255,255,255,.7);
  text-transform: uppercase;
}

.form-step-indicator {
  display: flex;
  gap: 6px;
}
.step-dot {
  width: 20px;
  height: 4px;
  border-radius: 2px;
  background: rgba(255,255,255,.25);
}
.step-dot.active { background: var(--amber); }

.form-fields {
  padding: 28px 24px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.field-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--gray-900);
  display: flex;
  align-items: center;
  gap: 6px;
}

.field-req {
  color: var(--amber);
  font-size: 14px;
}

.field-hint {
  font-size: 13px;
  color: var(--gray-500);
  line-height: 1.5;
}

.field-input {
  background: var(--white);
  border: 1.5px solid var(--gray-300);
  border-radius: var(--radius);
  padding: 11px 14px;
  font-family: var(--sans);
  font-size: 15px;
  color: var(--gray-900);
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  width: 100%;
}
.field-input:focus {
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(15,35,64,.08);
}
.field-input::placeholder { color: var(--gray-300); }

/* File drop */
.file-zone {
  border: 1.5px dashed var(--gray-300);
  border-radius: var(--radius);
  padding: 24px 16px;
  text-align: center;
  cursor: pointer;
  position: relative;
  transition: border-color .15s, background .15s;
}
.file-zone:hover {
  border-color: var(--navy);
  background: var(--gray-50);
}
.file-zone input[type="file"] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
}
.file-zone-icon {
  font-size: 28px;
  margin-bottom: 8px;
  display: block;
  color: var(--gray-300);
}
.file-zone-label {
  font-size: 14px;
  color: var(--gray-700);
  line-height: 1.5;
}
.file-zone-label strong {
  color: var(--navy);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.file-zone-sub {
  font-size: 12px;
  color: var(--gray-500);
  margin-top: 4px;
  font-family: var(--mono);
  letter-spacing: .04em;
}

/* Radio group */
.radio-group {
  display: flex;
  gap: 10px;
}

.radio-card {
  flex: 1;
  border: 1.5px solid var(--gray-300);
  border-radius: var(--radius);
  padding: 12px 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: border-color .15s, background .15s;
  position: relative;
}
.radio-card:has(input:checked) {
  border-color: var(--navy);
  background: #f0f4fa;
}
.radio-card input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.radio-circle {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1.5px solid var(--gray-300);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: border-color .15s;
}
.radio-card:has(input:checked) .radio-circle {
  border-color: var(--navy);
}
.radio-card:has(input:checked) .radio-circle::after {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--navy);
}
.radio-label-text {
  font-size: 14px;
  font-weight: 500;
  color: var(--gray-700);
}
.radio-card:has(input:checked) .radio-label-text { color: var(--navy); }

/* Form footer */
.form-footer {
  padding: 16px 24px 24px;
  border-top: 1px solid var(--gray-100);
}

.submit-btn {
  width: 100%;
  background: var(--navy);
  color: var(--white);
  border: none;
  border-radius: var(--radius);
  padding: 14px;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, transform .1s;
  letter-spacing: -.01em;
  margin-bottom: 10px;
}
.submit-btn:hover { background: var(--navy-mid); transform: translateY(-1px); }
.submit-btn:active { transform: translateY(0); }

.form-legal {
  font-size: 12px;
  color: var(--gray-500);
  text-align: center;
  line-height: 1.5;
}

/* ── Footer ─────────────────────────────────────────────────────────── */
footer {
  background: var(--navy);
  padding: 32px 40px;
}

.footer-inner {
  max-width: 1160px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.footer-brand {
  font-size: 15px;
  font-weight: 700;
  color: rgba(255,255,255,.9);
  font-family: var(--sans);
}

.footer-copy {
  font-size: 13px;
  color: rgba(255,255,255,.5);
  margin-top: 2px;
  font-family: var(--mono);
  letter-spacing: .04em;
}

.footer-links {
  display: flex;
  gap: 24px;
}
.footer-link {
  font-size: 13px;
  color: rgba(255,255,255,.6);
  text-decoration: none;
  transition: color .15s;
}
.footer-link:hover { color: rgba(255,255,255,.95); }

/* ── Animations ──────────────────────────────────────────────────────── */
@keyframes fade-up {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
.hero-content { animation: fade-up .5s ease both; }
.sample-card  { animation: rise .5s .12s ease both; }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 1000px) {
  .hero, .intake-grid { grid-template-columns: 1fr; gap: 48px; }
  .hero { padding: 56px 0 48px; }
  .features-grid { grid-template-columns: repeat(2, 1fr); }
  .tier-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .header-inner { padding: 0 20px; }
  .page-wrap { padding: 0 20px; }
  .status-ribbon { padding: 8px 20px; }
  .features-grid { grid-template-columns: 1fr; }
  .tier-grid { grid-template-columns: 1fr; }
  footer, .footer-inner { flex-direction: column; gap: 16px; text-align: center; }
  .form-fields { padding: 20px; }
  .form-card-header { padding: 14px 20px; }
  .form-footer { padding: 14px 20px 20px; }
  .radio-group { flex-direction: column; }
}

/* ── Pricing page (docs/rfpexperts_pricing.html) ─────────────────────────
   Scoped with .rfp-pricing-page so .tier-card / .hero-eyebrow do not override v2 marketing. */
.rfp-pricing-page .pricing-hero {
  background: var(--gray-50);
  border-bottom: 1px solid var(--gray-300);
  padding: 16px 0;
  text-align: center;
}

/* Same outer width + horizontal padding as .pricing-section (plan cards). */
.rfp-pricing-page .pricing-hero-inner {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 40px;
  box-sizing: border-box;
}

.rfp-pricing-page .pricing-banner {
  max-width: 100%;
  margin: 0 auto 1.5rem;
  padding: 0.85rem 1.1rem;
  border: 1px solid var(--gold-bdr);
  background: var(--gold-bg);
  color: var(--gold-text);
  border-radius: var(--radius);
  font-size: 14px;
  line-height: 1.5;
  text-align: center;
}
.rfp-pricing-page .pricing-hero .hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  color: var(--amber);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 16px;
  background: var(--amber-bg);
  border: 1px solid var(--amber-bdr);
  padding: 4px 14px;
  border-radius: 100px;
}
.rfp-pricing-page .pricing-hero .hero-eyebrow-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--amber);
}
.rfp-pricing-page .pricing-hero h1 {
  font-family: var(--serif);
  font-size: clamp(32px, 4vw, 48px);
  font-weight: 400;
  color: var(--navy);
  letter-spacing: -.01em;
  line-height: 1.1;
  margin: 0 0 16px;
}
.rfp-pricing-page .pricing-hero-lead {
  font-size: 17px;
  color: var(--gray-700);
  line-height: 1.7;
  max-width: none;
  padding: 0px 36px;
}

/* Billing toggle */
.rfp-pricing-page .billing-toggle {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: var(--white);
  border: 1px solid var(--gray-300);
  border-radius: 100px;
  padding: 6px 6px 6px 16px;
  box-shadow: var(--shadow-sm);
  font-size: 14px;
  font-weight: 500;
  color: var(--gray-700);
}
.rfp-pricing-page .billing-badge {
  background: var(--green-bg);
  color: var(--green);
  border: 1px solid var(--green-bdr);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  padding: 4px 12px;
  border-radius: 100px;
  letter-spacing: .04em;
}

/* ── Pricing grid ────────────────────────────────────────────────────── */
.rfp-pricing-page .pricing-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: 16px 16px 16px;
}

.rfp-pricing-page .pricing-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  align-items: start;
}

/* ── Tier cards (pricing route only) ─────────────────────────────────── */
.rfp-pricing-page .pricing-section .tier-card {
  background: var(--white);
  border: 1px solid var(--gray-300);
  border-radius: var(--radius-lg);
  padding: 28px 22px 24px;
  position: relative;
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s, transform .2s;
  animation: pricing-fade-up .4s ease both;
}
.rfp-pricing-page .pricing-section .tier-card:nth-child(1) { animation-delay: .05s; }
.rfp-pricing-page .pricing-section .tier-card:nth-child(2) { animation-delay: .10s; }
.rfp-pricing-page .pricing-section .tier-card:nth-child(3) { animation-delay: .15s; }
.rfp-pricing-page .pricing-section .tier-card:nth-child(4) { animation-delay: .20s; }
.rfp-pricing-page .pricing-section .tier-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }

@keyframes pricing-fade-up {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Featured (Sportsman) */
.rfp-pricing-page .pricing-section .tier-card.featured {
  border-color: var(--navy);
  border-width: 2px;
  box-shadow: var(--shadow-md);
}
.rfp-pricing-page .pricing-section .tier-card.featured:hover { box-shadow: var(--shadow-lg); }

.rfp-pricing-page .pricing-section .featured-ribbon {
  position: absolute;
  top: -13px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--navy);
  color: var(--white);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 100px;
  white-space: nowrap;
}

/* Tier header */
.rfp-pricing-page .pricing-section .tier-name {
  font-family: var(--sans);
  font-size: 20px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 4px;
  letter-spacing: -.01em;
}
.rfp-pricing-page .pricing-section .featured .tier-name { color: var(--navy); }

.rfp-pricing-page .pricing-section .tier-tagline {
  font-size: 13px;
  color: var(--gray-500);
  margin-bottom: 20px;
  line-height: 1.4;
}

/* Price block */
.rfp-pricing-page .pricing-section .price-block {
  margin-bottom: 6px;
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.rfp-pricing-page .pricing-section .price-amount {
  font-family: var(--sans);
  font-size: 38px;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: -.03em;
  line-height: 1;
}
.rfp-pricing-page .pricing-section .price-period {
  font-size: 15px;
  font-weight: 400;
  color: var(--gray-500);
}
.rfp-pricing-page .pricing-section .price-value {
  font-size: 12px;
  color: var(--gray-500);
  font-style: italic;
  margin-bottom: 20px;
  line-height: 1.4;
}

/* Quota callout */
.rfp-pricing-page .pricing-section .quota-callout {
  background: var(--navy-pale);
  border: 1px solid #c8d9ee;
  border-radius: var(--radius);
  padding: 10px 14px;
  margin-bottom: 20px;
  font-size: 13px;
  color: var(--navy);
  line-height: 1.5;
}
.rfp-pricing-page .pricing-section .quota-callout strong { font-weight: 700; }
.rfp-pricing-page .pricing-section .quota-overage {
  font-family: var(--mono);
  font-size: 11px;
  color: var(--navy-lt);
  margin-top: 3px;
}

/* Divider */
.rfp-pricing-page .pricing-section .tier-divider {
  border: none;
  border-top: 1px solid var(--gray-100);
  margin: 0 0 18px;
}

/* Features list */
.rfp-pricing-page .pricing-section .features-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 9px;
  flex: 1;
  margin-bottom: 24px;
}
.rfp-pricing-page .pricing-section .features-list li {
  font-size: 13px;
  color: var(--gray-700);
  display: flex;
  align-items: flex-start;
  gap: 9px;
  line-height: 1.45;
}
.rfp-pricing-page .pricing-section .check {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--green-bg);
  color: var(--green);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}
.rfp-pricing-page .pricing-section .featured .check {
  background: var(--green-bg);
  color: var(--green);
}

.rfp-pricing-page .pricing-section .check.check-x {
  background: var(--red-bg);
  color: var(--red);
}

.rfp-pricing-page .pricing-section .feature-missing {
  color: var(--gray-500);
}

/* Feature category labels */
.rfp-pricing-page .pricing-section .feature-category {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .08em;
  color: var(--gray-300);
  text-transform: uppercase;
  padding: 4px 0 2px;
  display: block;
}

/* CTA */
.rfp-pricing-page .pricing-section .tier-cta { margin-top: auto; }

.rfp-pricing-page .pricing-section .btn-subscribe {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  padding: 12px;
  border-radius: var(--radius);
  text-decoration: none;
  transition: background .15s, color .15s, transform .1s;
  border: none;
  cursor: pointer;
  letter-spacing: -.01em;
}

.rfp-pricing-page .pricing-section .btn-subscribe-navy {
  background: var(--navy);
  color: var(--white);
  box-shadow: 0 2px 6px rgba(15,35,64,.15);
}
.rfp-pricing-page .pricing-section .btn-subscribe-navy:hover { background: var(--navy-mid); transform: translateY(-1px); }

.rfp-pricing-page .pricing-section .btn-subscribe-amber {
  background: var(--amber);
  color: var(--white);
  box-shadow: 0 2px 6px rgba(184,108,10,.2);
}
.rfp-pricing-page .pricing-section .btn-subscribe-amber:hover { background: var(--amber-lt); transform: translateY(-1px); }

.rfp-pricing-page .pricing-section .btn-subscribe-outline {
  background: transparent;
  color: var(--navy);
  border: 1.5px solid var(--navy);
}
.rfp-pricing-page .pricing-section .btn-subscribe-outline:hover { background: var(--navy); color: var(--white); }

.rfp-pricing-page .pricing-section .cta-sub {
  text-align: center;
  margin-top: 10px;
  font-size: 12px;
  color: var(--gray-500);
}
.rfp-pricing-page .pricing-section .cta-sub a {
  color: var(--amber);
  text-decoration: none;
  font-weight: 500;
}
.rfp-pricing-page .pricing-section .cta-sub a:hover { text-decoration: underline; }

/* ── Add-on strip ────────────────────────────────────────────────────── */
.rfp-pricing-page .addon-strip {
  max-width: 1200px;
  margin: 0 auto 64px;
  padding: 0 40px;
}

.rfp-pricing-page .addon-card {
  background: var(--amber-bg);
  border: 1px solid var(--amber-bdr);
  border-radius: var(--radius-lg);
  padding: 24px 28px;
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
}

.rfp-pricing-page .addon-badge {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  background: var(--amber);
  color: var(--white);
  padding: 4px 12px;
  border-radius: 100px;
  white-space: nowrap;
  flex-shrink: 0;
}

.rfp-pricing-page .addon-content { flex: 1; min-width: 240px; }

.rfp-pricing-page .addon-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 4px;
}

.rfp-pricing-page .addon-desc {
  font-size: 14px;
  color: var(--gray-700);
  line-height: 1.5;
}

.rfp-pricing-page .addon-price {
  font-family: var(--sans);
  font-size: 22px;
  font-weight: 700;
  color: var(--amber);
  white-space: nowrap;
  flex-shrink: 0;
}
.rfp-pricing-page .addon-price span { font-size: 13px; font-weight: 400; color: var(--gray-500); }

.rfp-pricing-page .addon-btn {
  display: inline-block;
  font-size: 14px;
  font-weight: 600;
  background: var(--amber);
  color: var(--white);
  padding: 10px 22px;
  border-radius: var(--radius);
  text-decoration: none;
  transition: background .15s;
  flex-shrink: 0;
}
.rfp-pricing-page .addon-btn:hover { background: var(--amber-lt); }

/* ── FAQ / Billing notes ─────────────────────────────────────────────── */
.rfp-pricing-page .billing-section {
  background: var(--gray-50);
  border-top: 1px solid var(--gray-300);
  padding: 56px 40px;
}
.rfp-pricing-page .billing-inner {
  max-width: 800px;
  margin: 0 auto;
}
.rfp-pricing-page .billing-title {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 400;
  color: var(--navy);
  margin-bottom: 32px;
  text-align: center;
}
.rfp-pricing-page .faq-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}
.rfp-pricing-page .faq-item {
  background: var(--white);
  border: 1px solid var(--gray-300);
  border-radius: var(--radius-lg);
  padding: 20px 22px;
}
.rfp-pricing-page .faq-q {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 8px;
  line-height: 1.3;
}
.rfp-pricing-page .faq-a {
  font-size: 14px;
  color: var(--gray-700);
  line-height: 1.65;
}
.rfp-pricing-page .faq-a a { color: var(--amber); }

/* ── Feature comparison (collapsed on mobile) ────────────────────────── */
.rfp-pricing-page .comparison-section {
  max-width: 1200px;
  margin: 0 auto 64px;
  padding: 0 40px;
}
.rfp-pricing-page .comparison-title {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 400;
  color: var(--navy);
  margin-bottom: 24px;
}
.rfp-pricing-page .comparison-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.rfp-pricing-page .comparison-table th {
  background: var(--navy);
  color: var(--white);
  padding: 12px 16px;
  text-align: left;
  font-weight: 600;
  font-size: 13px;
}
.rfp-pricing-page .comparison-table th:first-child { border-radius: 6px 0 0 0; }
.rfp-pricing-page .comparison-table th:last-child  { border-radius: 0 6px 0 0; }
.rfp-pricing-page .comparison-table th:not(:first-child) { text-align: center; }

.rfp-pricing-page .comparison-table td {
  padding: 10px 16px;
  border-bottom: 1px solid var(--gray-100);
  color: var(--gray-700);
  vertical-align: middle;
}
.rfp-pricing-page .comparison-table td:not(:first-child) { text-align: center; }
.rfp-pricing-page .comparison-table tr:last-child td { border-bottom: none; }
.rfp-pricing-page .comparison-table tr:hover td { background: var(--gray-50); }

.rfp-pricing-page .comparison-table .row-group td {
  background: var(--gray-100);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gray-500);
  padding: 8px 16px;
}

.rfp-pricing-page .check-yes  { color: var(--green); font-size: 16px; font-weight: 700; }
.rfp-pricing-page .check-no   { color: var(--gray-300); font-size: 16px; }
.rfp-pricing-page .check-text { font-family: var(--mono); font-size: 12px; color: var(--navy); font-weight: 500; }


@media (max-width: 1100px) {
  .rfp-pricing-page .pricing-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .rfp-pricing-page .pricing-hero-inner { padding-left: 20px; padding-right: 20px; }
  .rfp-pricing-page .pricing-section,
  .rfp-pricing-page .addon-strip,
  .rfp-pricing-page .comparison-section { padding-left: 20px; padding-right: 20px; }
  .rfp-pricing-page .billing-section { padding: 40px 20px; }
  .rfp-pricing-page .pricing-grid { grid-template-columns: 1fr; }
  .rfp-pricing-page .faq-grid { grid-template-columns: 1fr; }
  .rfp-pricing-page .comparison-section { display: none; }
  .rfp-pricing-page .addon-card { flex-direction: column; align-items: flex-start; gap: 16px; }
}
