/* =============================================================
   Riskwright — rwt.css
   Instrument panel meets earth science.
   ============================================================= */

/* ---- CSS Custom Properties ---- */
:root {
  --panel-900: #0D1117;
  --panel-800: #161B22;
  --panel-700: #21262D;
  --panel-600: #30363D;
  --panel-400: #484F58;
  --threshold-amber: #D4863A;
  --threshold-amber-dim: #9E6328;
  --drought-terracotta: #B94A2C;
  --precipitation-teal: #2D7A6E;
  --index-olive: #4A6741;
  --reading-primary: #F0F4F8;
  --reading-muted: #8B949E;
  --reading-faint: #484F58;
  --surface-light: #F6F8FA;
  --surface-cream: #EFF1F3;
  --ink-900: #1A2028;
  --ink-700: #2D3748;
  --ink-500: #4A5568;
  --ink-300: #718096;

  --font-heading: 'DM Serif Display', Georgia, serif;
  --font-body: 'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  --font-mono: 'IBM Plex Mono', 'Courier New', monospace;

  --container-width: 1200px;
  --section-pad-v: 5rem;
  --section-pad-v-sm: 3rem;
  --radius-sm: 4px;
  --radius-md: 8px;
  --transition: 0.2s ease;
}

/* ---- Reset & Base ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--ink-900);
  background: #fff;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; }

button { cursor: pointer; font-family: inherit; border: none; background: none; }

ul, ol { list-style: none; }

/* ---- Typography Base ---- */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 400;
  line-height: 1.2;
}

/* ---- Container ---- */
.rwt-container {
  max-width: var(--container-width);
  margin: 0 auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

/* ---- Buttons ---- */
.rwt-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.9375rem;
  letter-spacing: 0.01em;
  border-radius: var(--radius-sm);
  transition: background var(--transition), color var(--transition), border-color var(--transition);
  white-space: nowrap;
}

.rwt-btn--primary {
  background: var(--threshold-amber);
  color: var(--panel-900);
  border: 2px solid var(--threshold-amber);
}
.rwt-btn--primary:hover { background: #c27633; border-color: #c27633; color: var(--panel-900); }

.rwt-btn--outline-light {
  background: transparent;
  color: var(--reading-primary);
  border: 2px solid var(--reading-primary);
}
.rwt-btn--outline-light:hover { background: var(--reading-primary); color: var(--panel-900); }

.rwt-btn--outline-dark {
  background: transparent;
  color: var(--ink-900);
  border: 2px solid var(--ink-900);
}
.rwt-btn--outline-dark:hover { background: var(--ink-900); color: #fff; }

.rwt-btn--ghost-dark {
  background: transparent;
  color: var(--reading-muted);
  border: 2px solid transparent;
  text-decoration: none;
}
.rwt-btn--ghost-dark:hover { color: var(--reading-primary); text-decoration: underline; }

.rwt-btn--ghost-light {
  background: transparent;
  color: var(--ink-500);
  border: 2px solid transparent;
}
.rwt-btn--ghost-light:hover { color: var(--ink-900); text-decoration: underline; }

/* ---- Section Backgrounds ---- */
.rwt-section--dark {
  background: var(--panel-900);
  color: var(--reading-primary);
}
.rwt-section--dark-alt {
  background: var(--panel-800);
  color: var(--reading-primary);
}
.rwt-section--light {
  background: var(--surface-light);
  color: var(--ink-900);
}
.rwt-section--light-alt {
  background: var(--surface-cream);
  color: var(--ink-900);
}
.rwt-section--white {
  background: #fff;
  color: var(--ink-900);
}
.rwt-section--cream {
  background: var(--surface-cream);
  color: var(--ink-900);
}

/* ---- NAV ---- */
.rwt-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  padding: 1rem 0;
  transition: background var(--transition), box-shadow var(--transition), padding var(--transition);
}

/* Dark-top pages: nav transparent → dark on scroll */
.rwt-page--dark-top .rwt-nav {
  background: transparent;
}
.rwt-page--dark-top .rwt-nav.rwt-nav--scrolled {
  background: var(--panel-800);
  box-shadow: 0 1px 0 var(--panel-600);
  padding: 0.625rem 0;
}

/* Light-top pages: nav always light bg */
.rwt-page--light-top .rwt-nav {
  background: #fff;
  border-bottom: 1px solid var(--surface-cream);
}
.rwt-page--light-top .rwt-nav.rwt-nav--scrolled {
  box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  padding: 0.625rem 0;
}

.rwt-nav__inner {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.rwt-nav__logo img {
  height: 32px;
  width: auto;
}

.rwt-nav__links {
  display: flex;
  align-items: center;
  gap: 1.75rem;
  margin-left: auto;
}

.rwt-nav__link {
  font-size: 0.9rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  transition: color var(--transition);
  position: relative;
}

/* Dark-top nav link colors */
.rwt-page--dark-top .rwt-nav .rwt-nav__link {
  color: var(--reading-muted);
}
.rwt-page--dark-top .rwt-nav .rwt-nav__link:hover {
  color: var(--reading-primary);
}
.rwt-page--dark-top .rwt-nav .rwt-nav__link.active {
  color: var(--threshold-amber);
}
.rwt-page--dark-top .rwt-nav .rwt-nav__link.active::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--threshold-amber);
}

/* Light-top nav link colors */
.rwt-page--light-top .rwt-nav .rwt-nav__link {
  color: var(--ink-500);
}
.rwt-page--light-top .rwt-nav .rwt-nav__link:hover {
  color: var(--ink-900);
}
.rwt-page--light-top .rwt-nav .rwt-nav__link.active {
  color: var(--threshold-amber-dim);
}

/* Nav CTA */
.rwt-page--dark-top .rwt-nav .rwt-btn--ghost-dark {
  color: var(--reading-muted);
}
.rwt-page--dark-top .rwt-nav .rwt-btn--ghost-dark:hover {
  color: var(--reading-primary);
}
.rwt-page--light-top .rwt-nav .rwt-btn--ghost-dark {
  color: var(--ink-500);
}
.rwt-page--light-top .rwt-nav .rwt-btn--ghost-dark:hover {
  color: var(--ink-900);
}

/* Dropdown */
.rwt-nav__dropdown {
  position: relative;
}
.rwt-nav__dropdown-toggle {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.9rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  transition: color var(--transition);
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
}
.rwt-page--dark-top .rwt-nav .rwt-nav__dropdown-toggle {
  color: var(--reading-muted);
}
.rwt-page--dark-top .rwt-nav .rwt-nav__dropdown-toggle:hover {
  color: var(--reading-primary);
}
.rwt-page--light-top .rwt-nav .rwt-nav__dropdown-toggle {
  color: var(--ink-500);
}
.rwt-page--light-top .rwt-nav .rwt-nav__dropdown-toggle:hover {
  color: var(--ink-900);
}
.rwt-nav__dropdown-toggle svg {
  width: 12px;
  height: 12px;
  transition: transform var(--transition);
}
.rwt-nav__dropdown.open .rwt-nav__dropdown-toggle svg {
  transform: rotate(180deg);
}
.rwt-nav__dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  background: var(--panel-800);
  border: 1px solid var(--panel-600);
  border-radius: var(--radius-md);
  min-width: 220px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  overflow: hidden;
}
.rwt-nav__dropdown.open .rwt-nav__dropdown-menu { display: block; }
.rwt-nav__dropdown-item {
  display: block;
  padding: 0.75rem 1.25rem;
  font-size: 0.875rem;
  color: var(--reading-muted);
  transition: background var(--transition), color var(--transition);
}
.rwt-nav__dropdown-item:hover {
  background: var(--panel-700);
  color: var(--reading-primary);
}

/* Mobile nav */
.rwt-nav__hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  margin-left: auto;
  padding: 4px;
  background: none;
  border: none;
}
.rwt-nav__hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--reading-primary);
  transition: transform 0.3s, opacity 0.3s;
}
.rwt-page--light-top .rwt-nav .rwt-nav__hamburger span {
  background: var(--ink-900);
}
.rwt-nav__mobile-menu {
  display: none;
  flex-direction: column;
  gap: 0;
  padding: 1rem 0;
  border-top: 1px solid var(--panel-600);
  margin-top: 1rem;
}
.rwt-page--light-top .rwt-nav .rwt-nav__mobile-menu {
  border-top-color: var(--surface-cream);
}
.rwt-nav__mobile-menu.open { display: flex; }
.rwt-nav__mobile-link {
  display: block;
  padding: 0.75rem 0;
  font-size: 0.95rem;
  font-weight: 400;
  color: var(--reading-muted);
  border-bottom: 1px solid var(--panel-600);
  transition: color var(--transition);
}
.rwt-page--light-top .rwt-nav .rwt-nav__mobile-link {
  color: var(--ink-500);
  border-bottom-color: var(--surface-cream);
}
.rwt-nav__mobile-link:hover { color: var(--reading-primary); }
.rwt-page--light-top .rwt-nav .rwt-nav__mobile-link:hover { color: var(--ink-900); }
.rwt-nav__mobile-cta {
  margin-top: 1rem;
}

@media (max-width: 768px) {
  .rwt-nav__links { display: none; }
  .rwt-nav__hamburger { display: flex; }
}

/* ---- FOOTER ---- */
.rwt-footer {
  background: var(--panel-900);
  color: var(--reading-primary);
  padding: 4rem 0 2rem;
}
.rwt-footer__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem 3rem;
  margin-bottom: 3rem;
}
.rwt-footer__col-heading {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--reading-muted);
  margin-bottom: 1rem;
}
.rwt-footer__col-links {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.rwt-footer__col-links a {
  font-size: 0.875rem;
  color: var(--reading-muted);
  transition: color var(--transition);
}
.rwt-footer__col-links a:hover { color: var(--reading-primary); }
.rwt-footer__bottom {
  border-top: 1px solid var(--panel-700);
  padding-top: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.rwt-footer__bottom-text {
  font-size: 0.8125rem;
  color: var(--reading-faint);
}
.rwt-footer__bottom-links {
  display: flex;
  gap: 1.5rem;
}
.rwt-footer__bottom-links a {
  font-size: 0.8125rem;
  color: var(--reading-faint);
  transition: color var(--transition);
}
.rwt-footer__bottom-links a:hover { color: var(--reading-muted); }

@media (max-width: 768px) {
  .rwt-footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
}
@media (max-width: 480px) {
  .rwt-footer__grid { grid-template-columns: 1fr; }
}

/* ---- COOKIE BANNER ---- */
.cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background: var(--panel-800);
  border-top: 1px solid var(--panel-600);
}
.cookie-banner__inner {
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 1rem clamp(1.25rem, 4vw, 2.5rem);
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
}
.cookie-banner__text {
  flex: 1;
  font-size: 0.875rem;
  color: var(--reading-muted);
}
.cookie-banner__text a {
  color: var(--threshold-amber);
  text-decoration: underline;
}
.cookie-banner__actions { display: flex; gap: 0.75rem; }
.cookie-banner__btn {
  padding: 0.5rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background var(--transition);
  font-family: var(--font-body);
}
.cookie-banner__btn--primary {
  background: var(--threshold-amber);
  color: var(--panel-900);
  border: none;
}
.cookie-banner__btn--primary:hover { background: #c27633; }

/* ============================================================
   HOME PAGE (index.html)
   Layout tree:
   body → .rwt-section (full-width bg) → .rwt-container (max-width 1200px) → components
   Hero: .rwt-section.hero → .rwt-container → .rwt-hero__grid (grid 5fr 4fr)
   ============================================================ */

/* Hero */
.rwt-hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  position: relative;
  padding-top: 5rem;
  overflow: hidden;
  background: var(--panel-900);
}
.rwt-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.rwt-hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.35;
}
.rwt-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(13,17,23,0.92) 40%, rgba(13,17,23,0.6) 100%);
  z-index: 1;
}
.rwt-hero__grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 5fr 4fr;
  gap: 4rem;
  align-items: center;
  padding-block: 6rem;
}
.rwt-hero__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.rwt-hero__kicker {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--threshold-amber);
  margin-bottom: 1.25rem;
}
.rwt-hero__headline {
  font-size: clamp(2.5rem, 5vw, 4rem);
  line-height: 1.1;
  margin-bottom: 1.5rem;
}
.rwt-hero__headline .line-amber { color: var(--threshold-amber); display: block; font-style: italic; }
.rwt-hero__headline .line-white { color: var(--reading-primary); display: block; font-style: italic; }
.rwt-hero__sub {
  font-size: 1.0625rem;
  font-weight: 300;
  color: var(--reading-muted);
  max-width: 520px;
  margin-bottom: 2.5rem;
  line-height: 1.7;
}
.rwt-hero__actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  align-items: center;
}
.rwt-hero__chart {
  background: var(--panel-800);
  border: 1px solid var(--panel-600);
  border-radius: var(--radius-md);
  padding: 1.5rem;
}
.rwt-hero__chart-title {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  color: var(--reading-muted);
  text-transform: uppercase;
  margin-bottom: 1rem;
}

@media (max-width: 900px) {
  .rwt-hero__grid { grid-template-columns: 1fr; gap: 3rem; }
  .rwt-hero__chart { display: none; }
}

/* Mechanism Strip */
.rwt-mechanism-strip {
  padding: var(--section-pad-v) 0;
  background: var(--panel-800);
}
.rwt-mechanism-strip__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}
.rwt-mechanism-strip__step { border-left: 2px solid var(--panel-600); padding-left: 1.5rem; }
.rwt-mechanism-strip__num {
  font-family: var(--font-mono);
  font-size: 2.5rem;
  font-weight: 500;
  color: var(--threshold-amber);
  line-height: 1;
  margin-bottom: 0.5rem;
}
.rwt-mechanism-strip__title {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--reading-primary);
  margin-bottom: 0.625rem;
}
.rwt-mechanism-strip__desc {
  font-size: 0.875rem;
  color: var(--reading-muted);
  line-height: 1.65;
}
.rwt-mechanism-strip__rule {
  border-top: 1px solid var(--panel-600);
  margin-top: 3rem;
}

@media (max-width: 700px) {
  .rwt-mechanism-strip__grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* Trigger Demo */
.rwt-trigger-demo {
  padding: var(--section-pad-v) 0;
  background: var(--panel-900);
}
.rwt-trigger-demo__headline {
  font-size: clamp(1.75rem, 3.5vw, 2.75rem);
  font-style: italic;
  color: var(--reading-primary);
  margin-bottom: 2.5rem;
  text-align: center;
}
.rwt-trigger-demo__panels {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 2rem;
  align-items: start;
}
.rwt-trigger-demo__readout {
  background: var(--panel-800);
  border: 1px solid var(--panel-600);
  border-radius: var(--radius-md);
  padding: 2rem;
}
.rwt-readout__label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--reading-muted);
  margin-bottom: 0.5rem;
}
.rwt-readout__value {
  font-family: var(--font-mono);
  font-size: 3rem;
  font-weight: 500;
  color: var(--threshold-amber);
  line-height: 1;
  margin-bottom: 0.5rem;
}
.rwt-readout__threshold {
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  color: var(--reading-muted);
  margin-bottom: 1.25rem;
}
.rwt-readout__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.875rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-family: var(--font-mono);
  font-weight: 500;
  letter-spacing: 0.06em;
}
.rwt-readout__badge--active {
  background: rgba(185, 74, 44, 0.15);
  color: var(--drought-terracotta);
  border: 1px solid var(--drought-terracotta);
}
.rwt-readout__coords {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--reading-faint);
  margin-top: 1.25rem;
}
.rwt-trigger-demo__chart-panel {
  background: var(--panel-800);
  border: 1px solid var(--panel-600);
  border-radius: var(--radius-md);
  padding: 1.5rem;
}
.rwt-trigger-demo__chart-caption {
  font-size: 0.75rem;
  color: var(--reading-faint);
  margin-top: 1rem;
  font-style: italic;
}

@media (max-width: 900px) {
  .rwt-trigger-demo__panels { grid-template-columns: 1fr; }
}

/* Coverage Cards */
.rwt-coverage-cards {
  padding: var(--section-pad-v) 0;
  background: var(--surface-light);
}
.rwt-coverage-cards__section-label {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--threshold-amber-dim);
  margin-bottom: 1rem;
}
.rwt-coverage-cards__heading {
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2.5rem;
}
.rwt-coverage-cards__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
.rwt-coverage-card {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-md);
  min-height: 400px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.rwt-coverage-card__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.rwt-coverage-card__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.rwt-coverage-card:hover .rwt-coverage-card__bg img { transform: scale(1.03); }
.rwt-coverage-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(13,17,23,0.92) 40%, rgba(13,17,23,0.3) 100%);
  z-index: 1;
}
.rwt-coverage-card__content {
  position: relative;
  z-index: 2;
  padding: 2rem;
}
.rwt-coverage-card__label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--threshold-amber);
  margin-bottom: 0.75rem;
}
.rwt-coverage-card__title {
  font-size: 1.5rem;
  font-style: italic;
  color: var(--reading-primary);
  margin-bottom: 1rem;
  line-height: 1.2;
}
.rwt-coverage-card__metrics {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  margin-bottom: 1.5rem;
}
.rwt-coverage-card__metric {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--reading-muted);
}
.rwt-coverage-card__metric::before {
  content: '— ';
  color: var(--threshold-amber);
}
.rwt-coverage-card__cta {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--threshold-amber);
  transition: color var(--transition);
}
.rwt-coverage-card__cta:hover { color: var(--reading-primary); }

@media (max-width: 700px) {
  .rwt-coverage-cards__grid { grid-template-columns: 1fr; }
  .rwt-coverage-card { min-height: 320px; }
}

/* Why Parametric */
.rwt-why-parametric {
  padding: var(--section-pad-v) 0;
  background: var(--surface-cream);
}
.rwt-why-parametric__headline {
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 3rem;
}
.rwt-why-parametric__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3rem;
}
.rwt-why-col__stat {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 3.5rem);
  color: var(--threshold-amber-dim);
  line-height: 1;
  margin-bottom: 0.5rem;
}
.rwt-why-col__label {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.875rem;
  letter-spacing: 0.04em;
  color: var(--ink-900);
  margin-bottom: 0.625rem;
}
.rwt-why-col__desc {
  font-size: 0.875rem;
  color: var(--ink-500);
  line-height: 1.65;
}

@media (max-width: 700px) {
  .rwt-why-parametric__grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* Data Sources Strip */
.rwt-data-sources {
  padding: var(--section-pad-v) 0;
  background: var(--panel-900);
}
.rwt-data-sources__headline {
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-style: italic;
  color: var(--reading-primary);
  margin-bottom: 2.5rem;
}
.rwt-data-sources__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
.rwt-data-sources__text {
  font-size: 0.9375rem;
  color: var(--reading-muted);
  line-height: 1.75;
}
.rwt-data-sources__text p + p { margin-top: 1rem; }

@media (max-width: 700px) {
  .rwt-data-sources__grid { grid-template-columns: 1fr; }
}

/* Testimonials */
.rwt-testimonials {
  padding: var(--section-pad-v) 0;
  background: var(--surface-light);
}
.rwt-testimonials__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2.5rem;
}
.rwt-testimonials__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}
.rwt-testimonial {
  background: #fff;
  border: 1px solid var(--surface-cream);
  border-radius: var(--radius-md);
  padding: 2rem;
  position: relative;
}
.rwt-testimonial__quote-mark {
  font-family: var(--font-heading);
  font-size: 4rem;
  color: var(--threshold-amber);
  line-height: 1;
  margin-bottom: 0.5rem;
  display: block;
}
.rwt-testimonial__text {
  font-size: 0.9375rem;
  color: var(--ink-700);
  line-height: 1.7;
  font-style: italic;
  margin-bottom: 1.5rem;
}
.rwt-testimonial__attr {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--ink-300);
  line-height: 1.5;
}

@media (max-width: 700px) {
  .rwt-testimonials__grid { grid-template-columns: 1fr; }
}

/* CTA Footer Band */
.rwt-cta-band {
  padding: var(--section-pad-v) 0;
  background: var(--panel-900);
  text-align: center;
}
.rwt-cta-band__headline {
  font-size: clamp(1.75rem, 4vw, 3rem);
  font-style: italic;
  color: var(--reading-primary);
  margin-bottom: 1rem;
}
.rwt-cta-band__sub {
  font-size: 1rem;
  color: var(--reading-muted);
  margin-bottom: 2.5rem;
  max-width: 500px;
  margin-inline: auto;
}
.rwt-cta-band__actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
}

/* ============================================================
   SECTION PADDING UTILITY
   ============================================================ */
.rwt-section-pad {
  padding: var(--section-pad-v) 0;
}
.rwt-section-pad--sm {
  padding: var(--section-pad-v-sm) 0;
}

/* ============================================================
   HOW IT WORKS PAGE
   ============================================================ */
.rwt-page-hero {
  padding: 9rem 0 5rem;
  background: var(--panel-900);
}
.rwt-page-hero__kicker {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--threshold-amber);
  margin-bottom: 1rem;
}
.rwt-page-hero__headline {
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-style: italic;
  color: var(--reading-primary);
  margin-bottom: 1.25rem;
  max-width: 800px;
}
.rwt-page-hero__sub {
  font-size: 1rem;
  font-weight: 300;
  color: var(--reading-muted);
  max-width: 620px;
  line-height: 1.7;
}
.rwt-page-hero--light {
  background: var(--surface-light);
}
.rwt-page-hero--light .rwt-page-hero__headline {
  color: var(--ink-900);
}
.rwt-page-hero--light .rwt-page-hero__sub {
  color: var(--ink-500);
}
.rwt-page-hero--light .rwt-page-hero__kicker {
  color: var(--threshold-amber-dim);
}

/* Hero with image */
.rwt-page-hero--with-image {
  position: relative;
  overflow: hidden;
}
.rwt-page-hero__bg-img {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.rwt-page-hero__bg-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.3;
}
.rwt-page-hero__bg-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(13,17,23,0.9) 50%, rgba(13,17,23,0.5) 100%);
}
.rwt-page-hero__content {
  position: relative;
  z-index: 1;
}

/* Hero visual anchor (sub-page weight rule) */
.rwt-page-hero__visual-anchor {
  display: flex;
  gap: 1.5rem;
  margin-top: 2rem;
  flex-wrap: wrap;
}
.rwt-page-hero__stat-chip {
  background: var(--panel-800);
  border: 1px solid var(--panel-600);
  border-radius: var(--radius-md);
  padding: 0.875rem 1.25rem;
}
.rwt-page-hero__stat-val {
  font-family: var(--font-mono);
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--threshold-amber);
  line-height: 1;
}
.rwt-page-hero__stat-lbl {
  font-size: 0.75rem;
  color: var(--reading-muted);
  margin-top: 0.25rem;
}

/* Steps list */
.rwt-steps {
  padding: var(--section-pad-v) 0;
  background: var(--panel-800);
}
.rwt-steps__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--reading-primary);
  margin-bottom: 3rem;
}
.rwt-step {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 2rem;
  align-items: start;
  padding: 2rem 0;
  border-bottom: 1px solid var(--panel-700);
}
.rwt-step:last-child { border-bottom: none; }
.rwt-step--even { background: var(--panel-900); margin-inline: calc(-1 * clamp(1.25rem, 4vw, 2.5rem)); padding-inline: clamp(1.25rem, 4vw, 2.5rem); }
.rwt-step__num {
  font-family: var(--font-mono);
  font-size: 2rem;
  font-weight: 500;
  color: var(--threshold-amber);
  line-height: 1;
  text-align: right;
  padding-top: 0.2rem;
}
.rwt-step__title {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--reading-primary);
  margin-bottom: 0.625rem;
}
.rwt-step__desc {
  font-size: 0.9rem;
  color: var(--reading-muted);
  line-height: 1.7;
}

@media (max-width: 600px) {
  .rwt-step { grid-template-columns: 1fr; }
  .rwt-step__num { text-align: left; }
}

/* ============================================================
   DATA SOURCES TABLE
   ============================================================ */
.rwt-data-ref {
  padding: var(--section-pad-v) 0;
  background: var(--surface-light);
}
.rwt-data-ref__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2.5rem;
}
.rwt-data-ref__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.rwt-data-col {
  padding: 1.75rem;
  background: #fff;
  border: 1px solid var(--surface-cream);
  border-radius: var(--radius-md);
}
.rwt-data-col__name {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: var(--threshold-amber-dim);
  text-transform: uppercase;
  margin-bottom: 0.75rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--surface-cream);
}
.rwt-data-col__desc {
  font-size: 0.875rem;
  color: var(--ink-500);
  line-height: 1.65;
  margin-bottom: 1rem;
}
.rwt-data-col__metric {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--precipitation-teal);
}

@media (max-width: 700px) {
  .rwt-data-ref__grid { grid-template-columns: 1fr; }
}

/* Basis Risk / text+chart layout */
.rwt-basis-risk {
  padding: var(--section-pad-v) 0;
  background: var(--surface-cream);
}
.rwt-basis-risk__inner {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 4rem;
  align-items: start;
}
.rwt-basis-risk__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 1.25rem;
}
.rwt-basis-risk__body {
  font-size: 0.9375rem;
  color: var(--ink-500);
  line-height: 1.75;
}
.rwt-basis-risk__body p + p { margin-top: 1rem; }
.rwt-basis-risk__chart {
  background: #fff;
  border: 1px solid var(--surface-cream);
  border-radius: var(--radius-md);
  padding: 1.5rem;
}
.rwt-basis-risk__chart-title {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-300);
  margin-bottom: 1rem;
}

@media (max-width: 700px) {
  .rwt-basis-risk__inner { grid-template-columns: 1fr; }
}

/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.rwt-faq {
  padding: var(--section-pad-v) 0;
  background: var(--surface-light);
}
.rwt-faq__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2.5rem;
}
.rwt-faq__list {
  max-width: 800px;
  margin: 0 auto;
}
.rwt-faq__item {
  border-bottom: 1px solid var(--surface-cream);
}
.rwt-faq__item:first-child {
  border-top: 1px solid var(--surface-cream);
}
.rwt-faq__q {
  width: 100%;
  text-align: left;
  padding: 1.25rem 0;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--ink-900);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-body);
  transition: color var(--transition);
}
.rwt-faq__q:hover { color: var(--threshold-amber-dim); }
.rwt-faq__q-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border: 1px solid var(--surface-cream);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform var(--transition), background var(--transition);
  color: var(--ink-300);
  font-size: 0.875rem;
  font-weight: 700;
}
.rwt-faq__item.open .rwt-faq__q-icon {
  transform: rotate(45deg);
  background: var(--threshold-amber-dim);
  color: #fff;
  border-color: var(--threshold-amber-dim);
}
.rwt-faq__a {
  display: none;
  padding-bottom: 1.25rem;
  font-size: 0.9rem;
  color: var(--ink-500);
  line-height: 1.75;
}
.rwt-faq__item.open .rwt-faq__a { display: block; }

/* ============================================================
   TRIGGER TABLE
   ============================================================ */
.rwt-trigger-table {
  padding: var(--section-pad-v) 0;
  background: var(--panel-800);
}
.rwt-trigger-table__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--reading-primary);
  margin-bottom: 2rem;
}
.rwt-table-wrap {
  overflow-x: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--panel-600);
}
.rwt-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}
.rwt-table thead tr {
  background: var(--panel-700);
}
.rwt-table th {
  padding: 0.875rem 1.25rem;
  text-align: left;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--reading-muted);
  white-space: nowrap;
}
.rwt-table td {
  padding: 0.875rem 1.25rem;
  border-bottom: 1px solid var(--panel-700);
  color: var(--reading-muted);
  vertical-align: top;
}
.rwt-table tr:last-child td { border-bottom: none; }
.rwt-table tr:hover td { background: var(--panel-700); }
.rwt-table .val {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--threshold-amber);
}
.rwt-table .cat-drought { color: var(--drought-terracotta); }
.rwt-table .cat-wind { color: var(--precipitation-teal); }
.rwt-table .cat-heat { color: var(--threshold-amber); }
.rwt-table .cat-flood { color: var(--index-olive); }

/* Trigger mini sparkline in table */
.rwt-sparkline { vertical-align: middle; }

/* ============================================================
   METHODOLOGY SECTION
   ============================================================ */
.rwt-methodology {
  padding: var(--section-pad-v) 0;
  background: var(--surface-light);
}
.rwt-methodology__inner {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 4rem;
  align-items: start;
}
.rwt-methodology__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 1.25rem;
}
.rwt-methodology__body {
  font-size: 0.9375rem;
  color: var(--ink-500);
  line-height: 1.75;
}
.rwt-methodology__body p + p { margin-top: 1rem; }
.rwt-methodology__steps-list {
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.rwt-methodology__step-item {
  display: flex;
  gap: 0.875rem;
  align-items: flex-start;
}
.rwt-methodology__step-dot {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--threshold-amber-dim);
  margin-top: 0.55rem;
}
.rwt-methodology__step-text {
  font-size: 0.875rem;
  color: var(--ink-500);
  line-height: 1.65;
}

@media (max-width: 700px) {
  .rwt-methodology__inner { grid-template-columns: 1fr; }
}

/* Data Source Reference Table */
.rwt-datasource-ref {
  padding: var(--section-pad-v) 0;
  background: var(--surface-cream);
}
.rwt-datasource-ref__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2rem;
}
.rwt-datasource-ref__table-wrap {
  overflow-x: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-cream);
  box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.rwt-datasource-ref__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  background: #fff;
}
.rwt-datasource-ref__table thead tr {
  background: var(--surface-light);
}
.rwt-datasource-ref__table th {
  padding: 0.875rem 1.25rem;
  text-align: left;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-300);
}
.rwt-datasource-ref__table td {
  padding: 0.875rem 1.25rem;
  border-bottom: 1px solid var(--surface-cream);
  color: var(--ink-500);
  vertical-align: top;
}
.rwt-datasource-ref__table tr:last-child td { border-bottom: none; }
.rwt-datasource-ref__table .mono { font-family: var(--font-mono); font-size: 0.8rem; color: var(--threshold-amber-dim); }
.rwt-datasource-ref__table .url { font-family: var(--font-mono); font-size: 0.75rem; color: var(--precipitation-teal); }

/* ============================================================
   COVERAGE PAGES TRIGGER METRICS
   ============================================================ */
.rwt-trigger-metrics {
  padding: var(--section-pad-v) 0;
  background: var(--panel-800);
}
.rwt-trigger-metrics__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--reading-primary);
  margin-bottom: 0.75rem;
}
.rwt-trigger-metrics__sub {
  font-size: 0.9375rem;
  color: var(--reading-muted);
  margin-bottom: 2.5rem;
}
.rwt-trigger-metrics__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
.rwt-metric-card {
  background: var(--panel-900);
  border: 1px solid var(--panel-600);
  border-radius: var(--radius-md);
  padding: 1.5rem;
}
.rwt-metric-card__name {
  font-family: var(--font-mono);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--threshold-amber);
  margin-bottom: 0.5rem;
}
.rwt-metric-card__threshold {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--reading-muted);
  margin-bottom: 0.875rem;
}
.rwt-metric-card__desc {
  font-size: 0.8125rem;
  color: var(--reading-muted);
  line-height: 1.6;
  margin-bottom: 1rem;
}
.rwt-metric-card__payout {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--precipitation-teal);
}

@media (max-width: 700px) {
  .rwt-trigger-metrics__grid { grid-template-columns: 1fr; }
}

/* Crops / Asset Types (3-col) */
.rwt-asset-types {
  padding: var(--section-pad-v) 0;
  background: var(--surface-light);
}
.rwt-asset-types__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2.5rem;
}
.rwt-asset-types__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.rwt-asset-col {
  padding: 1.75rem;
  background: #fff;
  border: 1px solid var(--surface-cream);
  border-radius: var(--radius-md);
}
.rwt-asset-col__label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--threshold-amber-dim);
  margin-bottom: 0.75rem;
}
.rwt-asset-col__heading {
  font-size: 1.125rem;
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 0.875rem;
}
.rwt-asset-col__items {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.rwt-asset-col__item {
  font-size: 0.875rem;
  color: var(--ink-500);
  display: flex;
  gap: 0.5rem;
}
.rwt-asset-col__item::before { content: '—'; color: var(--threshold-amber-dim); }
.rwt-asset-col__window {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--precipitation-teal);
  margin-top: 1rem;
}

@media (max-width: 700px) {
  .rwt-asset-types__grid { grid-template-columns: 1fr; }
}

/* Coverage Scenario */
.rwt-scenario {
  padding: var(--section-pad-v) 0;
  background: var(--surface-cream);
}
.rwt-scenario__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2.5rem;
}
.rwt-scenario__grid {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 3rem;
  align-items: start;
}
.rwt-scenario__details {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.rwt-scenario__row {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--surface-cream);
}
.rwt-scenario__row:last-child { border-bottom: none; }
.rwt-scenario__key {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-300);
  padding-top: 0.15rem;
}
.rwt-scenario__val {
  font-family: var(--font-mono);
  font-size: 0.875rem;
  color: var(--ink-700);
}
.rwt-scenario__val--highlight { color: var(--threshold-amber-dim); }
.rwt-scenario__chart-panel {
  background: #fff;
  border: 1px solid var(--surface-cream);
  border-radius: var(--radius-md);
  padding: 1.5rem;
}
.rwt-scenario__chart-title {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-300);
  margin-bottom: 1rem;
}

@media (max-width: 700px) {
  .rwt-scenario__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.rwt-about-story {
  padding: var(--section-pad-v) 0;
  background: #fff;
}
.rwt-about-story__inner {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 4rem;
  align-items: start;
}
.rwt-about-story__body {
  font-size: 0.9375rem;
  color: var(--ink-500);
  line-height: 1.8;
}
.rwt-about-story__body p + p { margin-top: 1.25rem; }
.rwt-about-story__pull {
  font-family: var(--font-heading);
  font-size: 1.375rem;
  font-style: italic;
  color: var(--ink-900);
  border-left: 3px solid var(--threshold-amber-dim);
  padding-left: 1.25rem;
  margin: 1.75rem 0;
  line-height: 1.45;
}
.rwt-about-story__img {
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4/3;
}
.rwt-about-story__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 800px) {
  .rwt-about-story__inner { grid-template-columns: 1fr; }
  .rwt-about-story__img { aspect-ratio: 16/9; }
}

/* Team Grid */
.rwt-team {
  padding: var(--section-pad-v) 0;
  background: var(--surface-cream);
}
.rwt-team__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2.5rem;
}
.rwt-team__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.rwt-team-card {
  background: #fff;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--surface-cream);
}
.rwt-team-card__portrait {
  aspect-ratio: 6/7;
  overflow: hidden;
}
.rwt-team-card__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
}
.rwt-team-card__info { padding: 1.25rem 1.5rem; }
.rwt-team-card__name {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1rem;
  color: var(--ink-900);
  margin-bottom: 0.25rem;
}
.rwt-team-card__title {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--threshold-amber-dim);
  margin-bottom: 0.75rem;
}
.rwt-team-card__bio {
  font-size: 0.8125rem;
  color: var(--ink-500);
  line-height: 1.65;
}

@media (max-width: 800px) {
  .rwt-team__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 500px) {
  .rwt-team__grid { grid-template-columns: 1fr; }
}

/* Operating Principles */
.rwt-principles {
  padding: var(--section-pad-v) 0;
  background: var(--surface-light);
}
.rwt-principles__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2.5rem;
}
.rwt-principles__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.5rem;
}
.rwt-principle {
  padding-top: 1.25rem;
  border-top: 2px solid var(--threshold-amber-dim);
}
.rwt-principle__title {
  font-size: 1.125rem;
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 0.75rem;
}
.rwt-principle__body {
  font-size: 0.875rem;
  color: var(--ink-500);
  line-height: 1.7;
}

@media (max-width: 700px) {
  .rwt-principles__grid { grid-template-columns: 1fr; }
}

/* Location Block */
.rwt-location {
  padding: var(--section-pad-v-sm) 0;
  background: var(--surface-cream);
}
.rwt-location__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}
.rwt-location__address-label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--threshold-amber-dim);
  margin-bottom: 0.75rem;
}
.rwt-location__address {
  font-size: 0.9375rem;
  color: var(--ink-700);
  line-height: 1.7;
}
.rwt-location__address a { color: var(--threshold-amber-dim); }
.rwt-location__address a:hover { text-decoration: underline; }
.rwt-location__why-headline {
  font-size: 1rem;
  font-weight: 600;
  color: var(--ink-900);
  margin-bottom: 0.75rem;
}
.rwt-location__why-body {
  font-size: 0.875rem;
  color: var(--ink-500);
  line-height: 1.7;
}

@media (max-width: 700px) {
  .rwt-location__inner { grid-template-columns: 1fr; }
}

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.rwt-contact {
  padding: var(--section-pad-v) 0;
  background: #fff;
}
.rwt-contact__inner {
  display: grid;
  grid-template-columns: 3fr 2fr;
  gap: 4rem;
  align-items: start;
}
.rwt-contact-form {
  background: #fff;
  border-radius: var(--radius-md);
}
.rwt-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}
.rwt-form-row--single {
  grid-template-columns: 1fr;
}
.rwt-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  margin-bottom: 0;
}
.rwt-form-group label {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--ink-700);
  letter-spacing: 0.02em;
}
.rwt-form-group input,
.rwt-form-group select,
.rwt-form-group textarea {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--ink-900);
  background: var(--surface-light);
  border: 1px solid var(--surface-cream);
  border-radius: var(--radius-sm);
  padding: 0.75rem 1rem;
  transition: border-color var(--transition);
  width: 100%;
}
.rwt-form-group input:focus,
.rwt-form-group select:focus,
.rwt-form-group textarea:focus {
  outline: none;
  border-color: var(--threshold-amber-dim);
}
.rwt-form-group textarea { resize: vertical; min-height: 120px; }
.rwt-form-submit { margin-top: 1.5rem; }
.rwt-contact__sidebar-heading {
  font-size: 1.125rem;
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 1.25rem;
}
.rwt-contact__info-block { margin-bottom: 2rem; }
.rwt-contact__info-label {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-300);
  margin-bottom: 0.375rem;
}
.rwt-contact__info-val {
  font-size: 0.9rem;
  color: var(--ink-700);
}
.rwt-contact__info-val a { color: var(--threshold-amber-dim); }
.rwt-contact__info-val a:hover { text-decoration: underline; }
.rwt-contact-info-strip {
  padding: var(--section-pad-v) 0;
  background: var(--surface-cream);
}
.rwt-contact-info-strip__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}

@media (max-width: 800px) {
  .rwt-contact__inner { grid-template-columns: 1fr; }
  .rwt-contact-info-strip__inner { grid-template-columns: 1fr; }
}
@media (max-width: 500px) {
  .rwt-form-row { grid-template-columns: 1fr; }
}

/* ============================================================
   BLOG PAGE
   ============================================================ */
.rwt-blog-grid-section {
  padding: var(--section-pad-v) 0;
  background: var(--surface-cream);
}
.rwt-blog-grid-section__headline {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2.5rem;
}
.rwt-blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.75rem;
}
.rwt-blog-card {
  background: #fff;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--surface-cream);
  transition: box-shadow var(--transition), transform var(--transition);
  color: inherit;
  display: flex;
  flex-direction: column;
}
.rwt-blog-card:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,0.1);
  transform: translateY(-2px);
}
.rwt-blog-card__cover {
  aspect-ratio: 3/2;
  overflow: hidden;
}
.rwt-blog-card__cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.rwt-blog-card:hover .rwt-blog-card__cover img { transform: scale(1.04); }
.rwt-blog-card__body {
  padding: 1.25rem 1.5rem 1.5rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.rwt-blog-card__cat {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--threshold-amber-dim);
  margin-bottom: 0.625rem;
}
.rwt-blog-card__title {
  font-family: var(--font-heading);
  font-size: 1.0625rem;
  font-style: italic;
  color: var(--ink-900);
  line-height: 1.35;
  margin-bottom: 0.625rem;
}
.rwt-blog-card__excerpt {
  font-size: 0.8125rem;
  color: var(--ink-500);
  line-height: 1.6;
  margin-bottom: 1rem;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rwt-blog-card__date {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  color: var(--ink-300);
  margin-top: auto;
}

@media (max-width: 900px) {
  .rwt-blog-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .rwt-blog-grid { grid-template-columns: 1fr; }
}

/* Newsletter Band */
.rwt-newsletter-band {
  padding: 4rem 0;
  background: var(--panel-900);
  text-align: center;
}
.rwt-newsletter-band__headline {
  font-size: clamp(1.25rem, 3vw, 1.875rem);
  font-style: italic;
  color: var(--reading-primary);
  margin-bottom: 0.5rem;
}
.rwt-newsletter-band__sub {
  font-size: 0.9rem;
  color: var(--reading-muted);
  margin-bottom: 2rem;
}
.rwt-newsletter-band__form {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  flex-wrap: wrap;
  max-width: 500px;
  margin: 0 auto;
}
.rwt-newsletter-band__input {
  flex: 1;
  min-width: 240px;
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--reading-primary);
  background: var(--panel-800);
  border: 1px solid var(--panel-600);
  border-radius: var(--radius-sm);
  padding: 0.75rem 1rem;
}
.rwt-newsletter-band__input::placeholder { color: var(--reading-faint); }
.rwt-newsletter-band__input:focus { outline: none; border-color: var(--threshold-amber); }

/* ============================================================
   ARTICLE PAGES
   Layout tree:
   body → .rwt-article-page → .rwt-article-hero (max-width 900px) →
   .rwt-article-body (max-width 720px) → .rwt-related (full section)
   ============================================================ */
.rwt-article-hero-section {
  padding: 8rem 0 3rem;
  background: var(--surface-light);
}
.rwt-article-meta-row {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}
.rwt-article-cat {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--threshold-amber-dim);
}
.rwt-article-date {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--ink-300);
}
.rwt-article-author {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--ink-300);
}
.rwt-article-hero-headline {
  font-size: clamp(1.875rem, 4vw, 3rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 1rem;
  line-height: 1.15;
  max-width: 800px;
}
.rwt-article-hero-sub {
  font-size: 1rem;
  color: var(--ink-500);
  line-height: 1.7;
  max-width: 680px;
  font-weight: 300;
}
.rwt-article-cover-wrap {
  max-width: 900px;
  margin: 2.5rem auto 0;
  border-radius: var(--radius-md);
  overflow: hidden;
}
.rwt-article-cover-wrap img {
  width: 100%;
  height: auto;
  display: block;
}
.rwt-article-body-section {
  padding: 3rem 0 5rem;
  background: #fff;
}
.rwt-article-body {
  max-width: 720px;
  margin: 0 auto;
  padding-inline: clamp(1rem, 4vw, 2.5rem);
}
.rwt-article-body h2 {
  font-size: 1.5rem;
  font-style: italic;
  color: var(--ink-900);
  margin-top: 2.5rem;
  margin-bottom: 0.875rem;
}
.rwt-article-body h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--ink-900);
  margin-top: 2rem;
  margin-bottom: 0.625rem;
  font-family: var(--font-body);
}
.rwt-article-body p {
  margin-bottom: 1.25rem;
  font-size: 0.9625rem;
  color: var(--ink-500);
  line-height: 1.8;
}
.rwt-article-body ul,
.rwt-article-body ol {
  padding-left: 1.75rem;
  margin-bottom: 1.25rem;
  list-style: disc;
}
.rwt-article-body ol { list-style: decimal; }
.rwt-article-body li {
  font-size: 0.9375rem;
  color: var(--ink-500);
  line-height: 1.7;
  margin-bottom: 0.5rem;
}
.rwt-article-body blockquote {
  border-left: 3px solid var(--threshold-amber-dim);
  padding: 0.75rem 1.5rem;
  margin: 1.75rem 0;
  font-style: italic;
  color: var(--ink-700);
  font-size: 1rem;
  background: var(--surface-cream);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.rwt-article-body pre {
  background: var(--panel-900);
  color: var(--reading-primary);
  border-radius: var(--radius-md);
  padding: 1.25rem 1.5rem;
  overflow-x: auto;
  margin: 1.5rem 0;
}
.rwt-article-body code {
  font-family: var(--font-mono);
  font-size: 0.85em;
  background: var(--surface-cream);
  color: var(--threshold-amber-dim);
  padding: 0.15em 0.4em;
  border-radius: 3px;
}
.rwt-article-body pre code {
  background: transparent;
  color: var(--reading-primary);
  padding: 0;
}
.rwt-article-body img {
  max-width: 100%;
  border-radius: var(--radius-sm);
  margin-block: 1.5rem;
}

/* Related Articles */
.rwt-related {
  padding: 4rem 0;
  background: var(--surface-cream);
}
.rwt-related__headline {
  font-size: 1.375rem;
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 2rem;
}
.rwt-related__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

@media (max-width: 900px) {
  .rwt-related__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .rwt-related__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   LOGIN PAGES
   Layout tree:
   body (min-height 100vh, dark bg) → .rwt-auth-split (grid 1fr 1fr, full height)
     .rwt-auth-left (panel-900 bg, brand panel)
     .rwt-auth-right (panel-800 bg, form panel → form max-width 380px)
   ============================================================ */
.rwt-auth-page {
  min-height: 100vh;
  background: var(--panel-900);
  display: flex;
}
.rwt-auth-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 100%;
  min-height: 100vh;
}
.rwt-auth-left {
  background: var(--panel-900);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem clamp(2rem, 6vw, 5rem);
}
.rwt-auth-left__logo { margin-bottom: 2.5rem; }
.rwt-auth-left__logo img { height: 36px; width: auto; }
.rwt-auth-left__tagline {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-style: italic;
  color: var(--reading-primary);
  line-height: 1.25;
  margin-bottom: 1.25rem;
}
.rwt-auth-left__sub {
  font-size: 0.9rem;
  color: var(--reading-muted);
  line-height: 1.7;
  max-width: 380px;
}
.rwt-auth-left__decoration {
  margin-top: 3rem;
}
.rwt-auth-right {
  background: var(--panel-800);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 3rem clamp(2rem, 5vw, 4rem);
  border-left: 1px solid var(--panel-600);
}
.rwt-auth-form {
  width: 100%;
  max-width: 380px;
}
.rwt-auth-form__title {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1.375rem;
  color: var(--reading-primary);
  margin-bottom: 0.375rem;
}
.rwt-auth-form__sub {
  font-size: 0.875rem;
  color: var(--reading-muted);
  margin-bottom: 2rem;
}
.rwt-auth-field {
  margin-bottom: 1rem;
}
.rwt-auth-field label {
  display: block;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--reading-muted);
  margin-bottom: 0.375rem;
  letter-spacing: 0.02em;
}
.rwt-auth-field input,
.rwt-auth-field select {
  width: 100%;
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--reading-primary);
  background: var(--panel-700);
  border: 1px solid var(--panel-600);
  border-radius: var(--radius-sm);
  padding: 0.75rem 1rem;
  transition: border-color var(--transition);
}
.rwt-auth-field input::placeholder { color: var(--reading-faint); }
.rwt-auth-field input:focus,
.rwt-auth-field select:focus {
  outline: none;
  border-color: var(--threshold-amber);
}
.rwt-auth-field select option { background: var(--panel-700); color: var(--reading-primary); }
.rwt-auth-form__submit { margin-top: 1.5rem; width: 100%; justify-content: center; }
.rwt-auth-form__ghost-link {
  display: block;
  text-align: center;
  margin-top: 1rem;
  font-size: 0.8125rem;
  color: var(--reading-muted);
  transition: color var(--transition);
}
.rwt-auth-form__ghost-link:hover { color: var(--reading-primary); }
.rwt-auth-form__demo-note {
  margin-top: 1.5rem;
  padding: 1rem;
  background: var(--panel-700);
  border: 1px solid var(--panel-600);
  border-radius: var(--radius-sm);
  font-size: 0.8125rem;
  color: var(--reading-muted);
  line-height: 1.6;
}
.rwt-auth-form__demo-note a { color: var(--threshold-amber); }
.rwt-auth-reset-card {
  background: var(--panel-800);
  border: 1px solid var(--panel-600);
  border-radius: var(--radius-md);
  padding: 2.5rem;
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
}

@media (max-width: 700px) {
  .rwt-auth-split { grid-template-columns: 1fr; }
  .rwt-auth-left { padding: 3rem 2rem; min-height: auto; }
}

/* ============================================================
   LEGAL PAGES
   Layout tree:
   body → .rwt-legal-hero (light bg) → .rwt-legal-body (white bg)
   → .rwt-legal-wrap (max-width 800px, margin auto)
   ============================================================ */
.rwt-legal-hero {
  padding: 8rem 0 3rem;
  background: var(--surface-light);
  border-bottom: 1px solid var(--surface-cream);
}
.rwt-legal-hero__badge {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--threshold-amber-dim);
  margin-bottom: 0.75rem;
}
.rwt-legal-hero__title {
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 0.5rem;
}
.rwt-legal-hero__meta {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--ink-300);
}
.rwt-legal-body {
  padding: 4rem 0 6rem;
  background: #fff;
}
.rwt-legal-wrap {
  max-width: 800px;
  margin: 0 auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}
.legal-article header.legal-header { margin-bottom: 3rem; }
.legal-article .legal-header h1 { display: none; }
.legal-article .legal-meta {
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--ink-300);
  margin-bottom: 0.25rem;
}
.legal-article section { margin-bottom: 2.5rem; }
.legal-article h2 {
  font-size: 1.25rem;
  font-style: italic;
  color: var(--ink-900);
  margin-bottom: 0.875rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--surface-cream);
}
.legal-article h3 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--ink-700);
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
  font-family: var(--font-body);
}
.legal-article p {
  font-size: 0.9rem;
  color: var(--ink-500);
  line-height: 1.8;
  margin-bottom: 1rem;
}
.legal-article ul {
  padding-left: 1.5rem;
  list-style: disc;
  margin-bottom: 1rem;
}
.legal-article li {
  font-size: 0.9rem;
  color: var(--ink-500);
  line-height: 1.75;
  margin-bottom: 0.375rem;
}
.legal-article a { color: var(--threshold-amber-dim); text-decoration: underline; }
.legal-article address {
  font-style: normal;
  font-size: 0.9rem;
  color: var(--ink-500);
  line-height: 1.8;
  padding: 1rem 1.5rem;
  background: var(--surface-cream);
  border-radius: var(--radius-sm);
  border-left: 3px solid var(--threshold-amber-dim);
}
.legal-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  margin-bottom: 1.25rem;
  overflow-x: auto;
  display: block;
}
.legal-table th {
  text-align: left;
  padding: 0.625rem 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  background: var(--surface-cream);
  color: var(--ink-700);
  white-space: nowrap;
}
.legal-table td {
  padding: 0.625rem 1rem;
  border-bottom: 1px solid var(--surface-cream);
  color: var(--ink-500);
  vertical-align: top;
}

/* ============================================================
   INLINE SVG CHARTS (common styles)
   ============================================================ */
.rwt-chart-svg {
  width: 100%;
  height: auto;
  display: block;
}
.rwt-chart-axis { fill: var(--reading-faint); font-family: 'IBM Plex Mono', monospace; font-size: 9px; }
.rwt-chart-grid { stroke: var(--panel-600); stroke-width: 0.5; }
.rwt-chart-line--data { stroke: var(--precipitation-teal); stroke-width: 2; fill: none; }
.rwt-chart-line--threshold { stroke: var(--threshold-amber); stroke-width: 1.5; stroke-dasharray: 4 3; fill: none; }
.rwt-chart-trigger-band { fill: rgba(212, 134, 58, 0.12); }
.rwt-chart-dot--trigger { fill: var(--threshold-amber); }
.rwt-chart-label--trigger { fill: var(--threshold-amber); font-family: 'IBM Plex Mono', monospace; font-size: 9px; }

/* ============================================================
   ANIMATIONS & UTILITIES
   ============================================================ */
.rwt-fade-in {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.rwt-fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Visually hidden (accessibility) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border-width: 0;
}

/* Mono data label inline */
.mono-val {
  font-family: var(--font-mono);
  font-size: 0.875em;
}

/* US Station Map Container */
.rwt-us-map-wrap {
  background: var(--panel-700);
  border-radius: var(--radius-md);
  padding: 1rem;
  border: 1px solid var(--panel-600);
}

/* ============================================================
   AUTH PAGES (login / signup / reset)
   ============================================================ */
.rwt-page--auth {
  background: var(--surface-light);
  min-height: 100vh;
}

/* Split layout: brand | form */
.rwt-auth-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 100vh;
}

/* Brand panel */
.rwt-auth-split__brand {
  background: var(--panel-900);
  display: flex;
  flex-direction: column;
  padding: 3rem 3.5rem;
  position: relative;
  overflow: hidden;
}

.rwt-auth-split__logo {
  display: block;
  margin-bottom: 3rem;
}

.rwt-auth-split__brand-body {
  flex: 1;
}

.rwt-auth-split__brand-headline {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--reading-primary);
  margin-bottom: 1rem;
  line-height: 1.2;
}

.rwt-auth-split__brand-sub {
  font-size: 0.9375rem;
  color: var(--reading-muted);
  line-height: 1.7;
  margin-bottom: 2rem;
}

.rwt-auth-split__feature-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.rwt-auth-split__feature {
  display: flex;
  align-items: flex-start;
  gap: 0.875rem;
  font-size: 0.875rem;
  color: var(--reading-muted);
  line-height: 1.5;
}

.rwt-auth-split__feature-icon {
  color: var(--threshold-amber);
  flex-shrink: 0;
  margin-top: 2px;
  font-size: 0.875rem;
}

.rwt-auth-split__ornament {
  margin-top: auto;
  opacity: 0.7;
}

/* Form panel */
.rwt-auth-split__form-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 2.5rem;
  background: #fff;
}

.rwt-auth-form-wrap {
  width: 100%;
  max-width: 400px;
}

.rwt-auth-form-wrap__headline {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 1.875rem;
  color: var(--ink-900);
  margin-bottom: 0.5rem;
}

.rwt-auth-form-wrap__sub {
  font-size: 0.9375rem;
  color: var(--ink-500);
  margin-bottom: 1.75rem;
  line-height: 1.6;
}

.rwt-auth-demo-note {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background: var(--panel-900);
  border-radius: var(--radius-md);
  margin-bottom: 1.5rem;
  font-size: 0.875rem;
  color: var(--reading-muted);
  line-height: 1.6;
}
.rwt-auth-demo-note i {
  color: var(--threshold-amber);
  flex-shrink: 0;
  margin-top: 2px;
}
.rwt-auth-demo-note a {
  color: var(--threshold-amber);
  text-decoration: underline;
}
.rwt-auth-demo-note--light {
  background: var(--surface-light);
  color: var(--ink-700);
}
.rwt-auth-demo-note--light i {
  color: var(--precipitation-teal);
}

.rwt-auth-form-wrap__footer {
  margin-top: 1.5rem;
  font-size: 0.875rem;
  color: var(--ink-500);
  text-align: center;
  line-height: 1.8;
}
.rwt-auth-form-wrap__footer a {
  color: var(--threshold-amber-dim);
  font-weight: 500;
}
.rwt-auth-form-wrap__footer a:hover { text-decoration: underline; }

/* Centered auth (reset page) */
.rwt-page--auth-centered {
  background: var(--surface-light);
}

.rwt-auth-centered {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 1.5rem;
}

.rwt-auth-centered__logo {
  display: block;
  margin-bottom: 2.5rem;
}

.rwt-auth-centered__card {
  background: #fff;
  border-radius: var(--radius-md);
  padding: 2.5rem 2.25rem;
  width: 100%;
  max-width: 420px;
  box-shadow: 0 4px 24px rgba(0,0,0,0.07);
}

.rwt-auth-centered__icon {
  text-align: center;
  margin-bottom: 1rem;
}

.rwt-auth-centered__headline {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 1.625rem;
  color: var(--ink-900);
  margin-bottom: 0.5rem;
  text-align: center;
}

.rwt-auth-centered__sub {
  font-size: 0.9375rem;
  color: var(--ink-500);
  text-align: center;
  margin-bottom: 1.75rem;
  line-height: 1.6;
}

.rwt-auth-centered__footer {
  margin-top: 1.5rem;
  text-align: center;
  font-size: 0.875rem;
  color: var(--ink-500);
}
.rwt-auth-centered__footer a {
  color: var(--threshold-amber-dim);
  font-weight: 500;
}
.rwt-auth-centered__footer a:hover { text-decoration: underline; }

/* Auth responsive */
@media (max-width: 768px) {
  .rwt-auth-split {
    grid-template-columns: 1fr;
  }
  .rwt-auth-split__brand {
    padding: 2rem 1.5rem 2.5rem;
    min-height: auto;
  }
  .rwt-auth-split__ornament { display: none; }
  .rwt-auth-split__form-panel { padding: 2rem 1.5rem; }
  .rwt-auth-form-wrap { max-width: 100%; }
}

/* ============================================================
   LEGAL PAGES
   ============================================================ */
.rwt-legal-wrap {
  max-width: 760px;
  margin: 0 auto;
  padding: 3rem 0 5rem;
}

.legal-article h1 {
  /* visually hidden — page-level h1 is outside article */
  display: none;
}

.legal-header {
  margin-bottom: 2.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--surface-cream);
}

.legal-meta {
  font-size: 0.875rem;
  color: var(--ink-300);
  margin-top: 0.25rem;
  font-weight: 400;
}

.legal-article section {
  margin-bottom: 2.5rem;
}

.legal-article h2 {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--ink-900);
  margin-bottom: 0.75rem;
  padding-bottom: 0.375rem;
  border-bottom: 1px solid var(--surface-cream);
}

.legal-article h3 {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--ink-700);
  margin-top: 1.25rem;
  margin-bottom: 0.5rem;
}

.legal-article p {
  font-size: 0.9375rem;
  color: var(--ink-500);
  line-height: 1.75;
  margin-bottom: 0.875rem;
}

.legal-article ul, .legal-article ol {
  list-style: disc;
  padding-left: 1.5rem;
  margin-bottom: 0.875rem;
}

.legal-article li {
  font-size: 0.9375rem;
  color: var(--ink-500);
  line-height: 1.75;
  margin-bottom: 0.25rem;
}

.legal-article address {
  font-style: normal;
  font-size: 0.9375rem;
  color: var(--ink-500);
  line-height: 1.9;
  background: var(--surface-light);
  padding: 1.25rem 1.5rem;
  border-radius: var(--radius-md);
  border-left: 3px solid var(--threshold-amber-dim);
}

.legal-article a {
  color: var(--threshold-amber-dim);
  text-decoration: underline;
}

/* ============================================================
   ARTICLE PAGES (blog)
   ============================================================ */
.rwt-article-hero-section {
  padding-top: 9rem;
  padding-bottom: 0;
}

.rwt-article-meta-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.rwt-article-cat {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--threshold-amber-dim);
  background: rgba(158, 99, 40, 0.1);
  padding: 0.25rem 0.75rem;
  border-radius: 2px;
}

.rwt-article-date {
  font-size: 0.875rem;
  color: var(--ink-300);
  font-family: var(--font-mono);
}

.rwt-article-author {
  font-size: 0.875rem;
  color: var(--ink-400, var(--ink-300));
}

.rwt-article-hero-headline {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  color: var(--ink-900);
  line-height: 1.2;
  max-width: 820px;
  margin-bottom: 1rem;
}

.rwt-article-hero-sub {
  font-size: 1.125rem;
  color: var(--ink-500);
  max-width: 640px;
  line-height: 1.7;
  margin-bottom: 2rem;
}

.rwt-article-cover-wrap {
  margin-top: 2rem;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.rwt-article-cover-wrap img {
  width: 100%;
  height: 400px;
  object-fit: cover;
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}

/* Article body */
.rwt-article-body-section {
  padding: 4rem 0;
}

.rwt-article-body {
  max-width: 720px;
  margin: 0 auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

.rwt-article-body p {
  font-size: 1.0625rem;
  color: var(--ink-700);
  line-height: 1.8;
  margin-bottom: 1.25rem;
}

.rwt-article-body h2 {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 1.625rem;
  color: var(--ink-900);
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}

.rwt-article-body h3 {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--ink-900);
  margin-top: 1.75rem;
  margin-bottom: 0.625rem;
}

.rwt-article-body ul, .rwt-article-body ol {
  list-style: disc;
  padding-left: 1.5rem;
  margin-bottom: 1.25rem;
}

.rwt-article-body li {
  font-size: 1.0625rem;
  color: var(--ink-700);
  line-height: 1.75;
  margin-bottom: 0.375rem;
}

.rwt-article-body a {
  color: var(--threshold-amber-dim);
  text-decoration: underline;
}

/* Related articles */
.rwt-related {
  padding: var(--section-pad-v) 0;
}

.rwt-related__headline {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 1.625rem;
  color: var(--ink-900);
  margin-bottom: 2rem;
}

.rwt-related__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.5rem;
}

/* ============================================================
   RESPONSIVE — AUTH & BLOG SUPPLEMENT
   ============================================================ */
@media (max-width: 640px) {
  .rwt-article-cover-wrap img {
    height: 220px;
  }
  .rwt-related__grid {
    grid-template-columns: 1fr;
  }
}
