/**
 * Reports pages — HS 2028 Impact Report first.
 * Scoped under .rp-*; tokens match style.css :root (navy / teal / amber).
 * Design source: Sofia DESIGN-SPEC v4 (11 Oct 2026).
 */
:root {
  --rp-navy: #0F2B4F;
  --rp-teal: #0F6E56;
  --rp-teal-light: #1D9E75;
  --rp-amber: #B45309;
  --rp-amber-soft: #FEF3C7;
  --rp-amber-text: #92400E;
  --rp-grey-50: #F8FAFC;
  --rp-grey-100: #F1F5F9;
  --rp-grey-200: #E2E8F0;
  --rp-grey-600: #475569;
  --rp-error: #B42318;
  --rp-error-bg: #FEF3F2;
  --rp-radius: 6px;
  --rp-radius-lg: 12px;
}

/* ── Hub ─────────────────────────────────────────────────────────────── */
.rp-hub-head { background: var(--rp-grey-50); padding: 2.25rem 0 1.75rem; border-bottom: 1px solid var(--rp-grey-200); }
.rp-hub-head h1 { margin: 0 0 .5rem; color: var(--rp-navy); font-size: clamp(1.6rem, 3vw, 2rem); }
.rp-hub-head .rp-lead { margin: 0; color: var(--rp-grey-600); max-width: 40rem; font-size: 1.05rem; line-height: 1.55; }
.rp-cards { display: grid; gap: 1.25rem; padding: 2rem 0 1rem; grid-template-columns: 1fr; }
@media (min-width: 768px) {
  .rp-cards { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
}
@media (min-width: 1100px) {
  .rp-cards { grid-template-columns: 1fr 1fr 1fr; }
}
/* Single live type: card centred, max ~560px (no "More reports" placeholder). */
.rp-cards--single { max-width: 560px; margin: 0 auto; grid-template-columns: 1fr; }
.rp-rcard {
  background: #fff; border: 1px solid var(--rp-grey-200); border-radius: 14px;
  overflow: hidden; display: flex; flex-direction: column;
  box-shadow: 0 1px 2px rgba(15, 43, 79, .04);
}
.rp-rcard__art { aspect-ratio: 1200 / 630; background: var(--rp-grey-100); }
.rp-rcard__art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rp-rcard__body { padding: 1.15rem 1.25rem 1.35rem; display: flex; flex-direction: column; gap: .65rem; flex: 1; }
.rp-pill {
  display: inline-flex; align-items: center; width: fit-content;
  padding: .2rem .65rem; border-radius: 999px; font-size: .72rem; font-weight: 700;
  letter-spacing: .02em; text-transform: uppercase;
}
/* DES-028: white on amber — 5.02:1 (was soft amber text on cream). */
.rp-pill--interest { background: var(--rp-amber); color: #fff; }
.rp-pill--available { background: #DCF5EC; color: var(--rp-teal); }
.rp-pill--soon { background: var(--rp-grey-100); color: var(--rp-grey-600); }
.rp-rcard h2 { margin: 0; font-size: 1.15rem; color: var(--rp-navy); }
.rp-rcard h2 a { color: inherit; text-decoration: none; }
.rp-rcard h2 a:hover { color: var(--rp-teal); }
.rp-rcard h2 a:focus-visible { outline: 2px solid var(--rp-teal); outline-offset: 2px; }
.rp-rcard__summary { margin: 0; color: var(--rp-grey-600); font-size: .92rem; line-height: 1.55; }
.rp-rcard__foot {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  flex-wrap: wrap; margin-top: auto; padding-top: .5rem;
}
.rp-rcard__price { font-size: .95rem; color: var(--rp-navy); }
.rp-rcard__price strong { font-size: 1.15rem; }

/* Hub empty state */
.rp-empty { padding: 2.5rem 0 3rem; }
.rp-empty__box {
  max-width: 32rem; margin: 0 auto; text-align: center;
  border: 1px dashed var(--rp-grey-200); border-radius: var(--rp-radius-lg);
  padding: 2rem 1.5rem; background: #fff;
}
.rp-empty__box h2 { margin: 0 0 .75rem; color: var(--rp-navy); font-size: 1.25rem; }
.rp-empty__box p { margin: 0 0 1rem; color: var(--rp-grey-600); line-height: 1.55; }
.rp-empty__box p:last-child { margin-bottom: 0; }

/* ── Product page ────────────────────────────────────────────────────── */
.rp-hero {
  background: linear-gradient(135deg, #0F2B4F 0%, #1a3a5c 100%);
  color: #fff; padding: 2.5rem 0 2.25rem;
}
.rp-hero__grid {
  display: grid; gap: 2rem; align-items: center;
}
@media (min-width: 1100px) {
  .rp-hero__grid {
    grid-template-columns: 7fr 5fr; gap: 4rem;
  }
}
.rp-hero .rp-breadcrumb a { color: rgba(255,255,255,.72); }
.rp-hero .rp-breadcrumb a:hover { color: #fff; }
.rp-hero .rp-breadcrumb a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.rp-hero .rp-breadcrumb span[aria-current] { color: #fff; }
.rp-eyebrow {
  display: inline-block; color: #F59E0B; font-size: .75rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .75rem;
}
.rp-hero h1 {
  margin: 0 0 1.25rem; color: #fff;
  font-size: clamp(1.875rem, 5.2vw, 3rem); font-weight: 800;
  letter-spacing: -.02em; line-height: 1.12; max-width: 20ch;
}
.rp-hero .rp-intro {
  margin: 0 0 1.5rem; color: rgba(255,255,255,.82); font-size: 1.0625rem;
  line-height: 1.6; max-width: 38rem;
}
.rp-hero-actions {
  display: flex; flex-wrap: wrap; gap: .75rem; align-items: center;
  margin-bottom: 1.5rem;
}
@media (max-width: 599px) {
  .rp-hero-actions { flex-direction: column; align-items: stretch; }
  .rp-hero-actions .rp-btn { width: 100%; min-height: 48px; }
}

/* Hero trust row — teal-light tick circles */
.rp-hero-feats {
  list-style: none; margin: 0; padding: 1.25rem 0 0;
  border-top: 1px solid rgba(255,255,255,.14);
  display: grid; gap: .75rem 1.5rem; grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .rp-hero-feats { grid-template-columns: 1fr 1fr; }
}
.rp-hero-feats li {
  position: relative; padding-left: 1.85rem;
  color: rgba(255,255,255,.88); font-size: .9rem; line-height: 1.45;
}
.rp-hero-feats li::before {
  content: ''; position: absolute; left: 0; top: .1rem;
  width: 1.25rem; height: 1.25rem; border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Ccircle cx='10' cy='10' r='10' fill='%231D9E75'/%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M5 10.5l3.2 3.2L15 6.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

.rp-hero__visual { display: none; }
@media (min-width: 1100px) {
  .rp-hero__visual { display: block; }
}
.rp-hero-svg {
  max-width: 440px; margin-left: auto; aspect-ratio: 440 / 400;
}
.rp-hero-svg svg { display: block; width: 100%; height: auto; }

.rp-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: .7rem 1.25rem; border-radius: 8px;
  font-weight: 600; font-size: .95rem; text-decoration: none; border: none; cursor: pointer;
  transition: background 120ms, border-color 120ms, color 120ms;
}
.rp-btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.rp-section .rp-btn:focus-visible,
.rp-tier .rp-btn:focus-visible,
.rp-large .rp-btn:focus-visible,
.rp-sticky .rp-btn:focus-visible {
  outline-color: var(--rp-teal);
}
.rp-btn--primary { background: var(--rp-teal); color: #fff; }
.rp-btn--primary:hover { background: #0a5544; color: #fff; }
.rp-btn--outline {
  background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.45);
}
.rp-btn--outline:hover { background: rgba(255,255,255,.08); color: #fff; }
.rp-btn--outline-dark {
  background: #fff; color: var(--rp-navy); border: 1.5px solid var(--rp-grey-200);
}
.rp-btn--outline-dark:hover { background: var(--rp-grey-50); color: var(--rp-navy); }
.rp-link-light { color: rgba(255,255,255,.85); font-size: .92rem; }
.rp-link-light:hover { color: #fff; }

.rp-section { padding: 3rem 0; }
@media (min-width: 768px) { .rp-section { padding: 4rem 0; } }
@media (min-width: 1100px) { .rp-section { padding: 5rem 0; } }
.rp-section--alt { background: var(--rp-grey-50); border-top: 1px solid var(--rp-grey-200); border-bottom: 1px solid var(--rp-grey-200); }
.rp-section h2 {
  margin: 0 0 1rem; color: var(--rp-navy);
  font-size: clamp(1.25rem, 3vw, 1.75rem);
}
.rp-section p, .rp-section li { color: var(--rp-grey-600); line-height: 1.65; }

.rp-kicker {
  margin: 0 0 .5rem; color: var(--rp-teal); font-size: .75rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
}
.rp-lead {
  margin: 0 0 1.25rem; color: var(--rp-grey-600); font-size: 1.0625rem; line-height: 1.55;
  max-width: 40rem;
}
.rp-lead--narrow { max-width: 42rem; }

.rp-two {
  display: grid; gap: 1.75rem; align-items: start;
}
@media (min-width: 900px) {
  .rp-two { grid-template-columns: 1fr 1fr; gap: 4rem; }
}
@media (min-width: 1100px) {
  .rp-two { grid-template-columns: 6fr 5fr; }
}

.rp-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .7rem; }
.rp-list li {
  position: relative; padding-left: 2rem; color: var(--rp-grey-600); font-size: .95rem; line-height: 1.55;
}
.rp-list li::before {
  content: ''; position: absolute; left: 0; top: .15rem;
  width: 1.35rem; height: 1.35rem; border-radius: 50%;
  background: #DCF5EC
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%230F6E56' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M5 10.5l3.2 3.2L15 6.5'/%3E%3C/svg%3E")
    center / 14px no-repeat;
}

/* Placeholder only — dashed box. Live sample uses .rp-sample-live (DES-026). */
.rp-sample {
  border: 1px dashed var(--rp-grey-200); border-radius: var(--rp-radius-lg);
  aspect-ratio: 1200 / 1395; max-width: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  background: #fff; color: var(--rp-grey-600); text-align: center;
  padding: 1.5rem; gap: .65rem;
  box-shadow: 0 12px 32px rgba(15, 43, 79, .08);
}
.rp-sample__pill {
  display: inline-flex; padding: .25rem .7rem; border-radius: 999px;
  background: var(--rp-amber-soft); color: var(--rp-amber-text);
  font-size: .72rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
}
.rp-sample__title {
  margin: 0; color: var(--rp-navy); font-size: 1.05rem; font-weight: 700; line-height: 1.35;
}
.rp-sample__hint {
  margin: 0; font-size: .88rem; color: var(--rp-grey-600); line-height: 1.45; max-width: 18rem;
  font-weight: 400;
}

.rp-sample-live {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .65rem;
  max-width: 100%;
}
.rp-sample-live picture,
.rp-sample-live img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  border: 1px solid var(--rp-grey-200);
  border-radius: var(--rp-radius-lg);
  box-shadow: 0 12px 32px rgba(15, 43, 79, .08);
}
.rp-sample-live figcaption {
  margin: 0;
  font-size: .82rem;
  color: var(--rp-grey-600);
  font-weight: 400;
  line-height: 1.45;
}

.rp-tiers {
  display: grid; gap: 1rem; grid-template-columns: 1fr;
  align-items: stretch;
}
@media (min-width: 768px) {
  .rp-tiers { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
}
.rp-tier {
  background: #fff; border: 1px solid var(--rp-grey-200); border-radius: 14px;
  padding: 1.35rem 1.4rem; display: flex; flex-direction: column; gap: .55rem;
  position: relative;
}
@media (min-width: 1100px) {
  .rp-tier { padding: 2rem; }
}
/* Amber ring (not a thicker border) so content doesn't shift vs the other card. */
.rp-tier--featured {
  border-color: var(--rp-amber);
  box-shadow: 0 0 0 1px var(--rp-amber);
}
.rp-tier-tag {
  position: absolute; top: -.7rem; right: 1rem;
  background: var(--rp-amber); color: #fff;
  font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: .22rem .65rem; border-radius: 999px;
}
.rp-tier h3 { margin: 0; color: var(--rp-navy); font-size: 1.25rem; }
.rp-tier dl { margin: 0; display: grid; gap: .35rem; font-size: .9rem; }
.rp-tier dt { color: var(--rp-grey-600); }
.rp-tier dd { margin: 0; color: var(--rp-navy); font-weight: 600; }
.rp-tier__price {
  font-size: 2.5rem; font-weight: 800; color: var(--rp-navy);
  margin: .35rem 0; font-variant-numeric: tabular-nums; line-height: 1.1;
}
.rp-tier__once {
  display: inline-block; font-size: .85rem; font-weight: 600;
  color: var(--rp-grey-600); margin-left: .25rem; vertical-align: middle;
}
.rp-tier .rp-btn { margin-top: auto; width: 100%; }

.rp-large {
  margin-top: 1rem; background: #fff; border: 1px solid var(--rp-grey-200);
  border-radius: 14px; padding: 1.25rem 1.4rem;
  display: grid; gap: .75rem; align-items: center;
}
.rp-large h3 { margin: 0 0 .35rem; color: var(--rp-navy); font-size: 1.05rem; }
.rp-large p { margin: 0; font-size: .9rem; color: var(--rp-grey-600); line-height: 1.5; }
@media (min-width: 768px) {
  .rp-large { grid-template-columns: 1fr auto; }
}

.rp-notes { margin-top: 2rem; display: flex; flex-direction: column; gap: .55rem; font-size: .875rem; }
.rp-note {
  background: #fff; border-left: 4px solid var(--rp-navy);
  padding: .85rem 1rem; border-radius: 0 8px 8px 0; font-size: .9375rem;
  color: var(--rp-grey-600); line-height: 1.55;
}
.rp-note p { margin: 0 0 .4rem; }
.rp-note p:last-child { margin: 0; }
/* Nadia a11y: teal in-text links need underlines (contrast vs surrounding prose). */
.rp-notes a,
.rp-note a,
#your-data a,
.rp-legal-foot a,
.rp-card a {
  text-decoration: underline;
}

.rp-how-lead { margin: 0 0 .75rem; color: var(--rp-grey-600); }
.rp-how-sub { margin: 0 0 1.25rem; font-weight: 600; color: var(--rp-navy); }

.rp-steps {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 1.25rem; grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .rp-steps { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px) {
  .rp-steps { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
}
.rp-steps li { display: flex; gap: .85rem; align-items: flex-start; }
.rp-steps .rp-num {
  flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%;
  background: var(--rp-navy); color: #fff; display: flex; align-items: center;
  justify-content: center; font-weight: 700; font-size: 1rem;
}
.rp-steps h3 { margin: 0 0 .25rem; color: var(--rp-navy); font-size: 1.0625rem; }
.rp-steps p { margin: 0; font-size: .88rem; }

/* Why / Your data cards */
.rp-cards-3 {
  display: grid; gap: 1rem; grid-template-columns: 1fr;
  margin-top: 1.5rem;
}
@media (min-width: 768px) {
  .rp-cards-3 { grid-template-columns: 1fr 1fr 1fr; gap: 1.25rem; }
}
.rp-card {
  background: #fff; border: 1px solid var(--rp-grey-200); border-radius: var(--rp-radius-lg);
  padding: 1.15rem 1.2rem;
}
.rp-section--alt .rp-card { background: #fff; }
.rp-section:not(.rp-section--alt) .rp-card { background: var(--rp-grey-50); }
.rp-card h3 { margin: 0 0 .4rem; color: var(--rp-navy); font-size: 1.05rem; }
.rp-card p { margin: 0; font-size: .9rem; color: var(--rp-grey-600); line-height: 1.55; }

.rp-figures {
  margin: 1rem 0 0; padding: 1rem 1.15rem; border-radius: var(--rp-radius-lg);
  background: #fff; border: 1px solid var(--rp-grey-200);
  font-size: .95rem; color: var(--rp-navy);
}
.rp-figures p { margin: 0; color: var(--rp-navy); }

.rp-band {
  background: linear-gradient(135deg, #0F2B4F 0%, #1a3a5c 100%);
  color: #fff; padding: 2.5rem 0; text-align: center;
  border-radius: 0;
}
@media (min-width: 768px) {
  .rp-band .container {
    background: transparent;
  }
}
.rp-band h2 { color: #fff; margin: 0 0 .75rem; font-size: clamp(1.25rem, 3vw, 1.75rem); }
.rp-band p { color: rgba(255,255,255,.82); max-width: 36rem; margin: 0 auto 1.25rem; }
.rp-band-actions { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; align-items: center; }
.rp-legal-foot { padding: 1.5rem 0 2.5rem; font-size: .8125rem; color: var(--rp-grey-600); max-width: 58rem; }
.rp-legal-foot p { margin: 0 0 .4rem; }

/* DES-030: FAQ summaries need a taller tap target than the generic 24px line. */
#faq summary { min-height: 56px; display: flex; align-items: center; }
#faq summary:focus-visible { outline: 2px solid var(--rp-teal); outline-offset: 2px; }
#faq .faq-card,
#faq details { max-width: 48rem; }

/* Sticky mobile CTA — DES-031 */
.rp-sticky {
  display: none; position: fixed; left: 0; right: 0;
  bottom: calc(64px + env(safe-area-inset-bottom, 0px));
  z-index: 99; background: rgba(255,255,255,.97);
  border-top: 1px solid var(--rp-grey-200);
  padding: .55rem 1rem; gap: .75rem; align-items: center; justify-content: space-between;
}
.rp-sticky__meta { font-size: .78rem; color: var(--rp-grey-600); line-height: 1.3; }
.rp-sticky__meta strong { display: block; color: var(--rp-navy); font-size: .88rem; }
.rp-sticky .rp-btn { min-height: 44px; padding: .55rem 1rem; font-size: .88rem; white-space: nowrap; }
.rp-sticky-spacer { display: none; }
@media (max-width: 1099px) {
  .rp-sticky { display: flex; }
  .rp-sticky-spacer { display: block; height: 64px; }
}
body.kb-open .rp-sticky,
body.cookie-open .rp-sticky,
.rp-sticky.is-hidden { display: none !important; }

/* Register-interest form */
/* DES-027: do not zero container side padding with the shorthand. */
.rp-form-wrap { max-width: 560px; margin: 0 auto; padding-top: 2rem; padding-bottom: 3rem; }
.rp-form label { display: block; font-weight: 600; color: var(--rp-navy); font-size: .9rem; margin-bottom: .35rem; }
.rp-form .field { margin-bottom: 1.1rem; }
/* DES-029: inherit system form chrome + teal focus; reset raw fieldset border. */
.rp-form fieldset {
  border: 0; padding: 0; margin: 0 0 1.1rem; min-width: 0;
}
.rp-form input[type="text"],
.rp-form input[type="email"],
.rp-form select {
  width: 100%; min-height: 44px; padding: .6rem .75rem; border: 1px solid var(--rp-grey-200);
  border-radius: 8px; font: inherit; font-size: 1rem; background: #fff;
}
.rp-form input[type="text"]:focus,
.rp-form input[type="email"]:focus,
.rp-form select:focus {
  outline: 2px solid var(--rp-teal); outline-offset: 1px; border-color: var(--rp-teal);
}
.rp-form input[aria-invalid="true"],
.rp-form select[aria-invalid="true"],
.rp-form fieldset[aria-invalid="true"] { border-color: var(--rp-error); }
.rp-form .field-hint { margin: .35rem 0 0; font-size: .82rem; color: var(--rp-grey-600); }
.rp-form .field-error {
  margin: .35rem 0 0; font-size: .875rem; color: var(--rp-error); line-height: 1.4;
  display: flex; gap: .35rem; align-items: flex-start;
}
.rp-form .field-error[hidden] { display: none !important; }
.rp-form .consent { display: flex; gap: .65rem; align-items: flex-start; }
.rp-form .consent input { margin-top: .2rem; width: 1.15rem; height: 1.15rem; flex-shrink: 0; }
.rp-form .consent label { font-weight: 400; margin: 0; }
.form-summary {
  background: var(--rp-error-bg); border-left: 4px solid var(--rp-error);
  padding: .9rem 1rem; border-radius: 0 8px 8px 0; margin-bottom: 1.25rem;
}
.form-summary__title { margin: 0 0 .5rem; color: var(--rp-error); font-size: 1rem; }
.form-summary ul { margin: 0; padding-left: 1.1rem; }
.form-summary a { color: var(--rp-navy); }
.rp-success {
  background: #F0FDF4; border: 1px solid #BBF7D0; border-radius: 12px;
  padding: 1.25rem 1.4rem; color: #166534;
}

.rp-breadcrumb { font-size: .85rem; margin: 0 0 1.25rem; }
.rp-breadcrumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.rp-breadcrumb li:not(:last-child)::after { content: '›'; margin-left: .35rem; opacity: .6; }
.rp-breadcrumb a { text-decoration: none; }
.rp-breadcrumb a:hover { text-decoration: underline; }

.rp-table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rp-change-table {
  width: 100%; border-collapse: collapse; min-width: 36rem;
  background: #fff; border-radius: 12px; overflow: hidden;
}
.rp-change-table th, .rp-change-table td {
  text-align: left; padding: .85rem 1rem; border-bottom: 1px solid var(--rp-grey-200);
  vertical-align: top; font-size: .95rem;
}
.rp-change-table th { color: var(--rp-navy); font-weight: 700; }
.rp-change-table thead th { background: var(--rp-navy); color: #fff; }
.rp-checklist { margin: 0 0 1.5rem; padding-left: 1.25rem; display: flex; flex-direction: column; gap: .7rem; }
.rp-checklist li { color: var(--rp-grey-600); line-height: 1.55; }
.rp-glossary { margin: 1rem 0 0; display: grid; gap: .85rem; }
@media (min-width: 700px) { .rp-glossary { grid-template-columns: 1fr 1fr; } }
.rp-glossary div { margin: 0; }
.rp-glossary dt { font-weight: 700; color: var(--rp-navy); }
.rp-glossary dd { margin: .2rem 0 0; color: var(--rp-grey-600); }

@media (prefers-reduced-motion: reduce) {
  .rp-btn { transition: none; }
}
