/* ─────────────────────────────────────────────────────────────
   Refined Marketing — Public-page primitives
   ─────────────────────────────────────────────────────────────
   Companion to refined-tokens.css and refined-surfaces.css.
   Provides hero / section / card / button / form primitives
   for marketing pages (home, about, enterprise, technology,
   conversion pages, editorial indexes, trust pages).

   Pages opt in by setting `page_class: rm-page` in front-matter,
   which becomes `<body class="rm-page">`. Sub-pages may add a
   modifier class for page-specific tweaks (e.g. rm-page--home).

   Inert on pages that don't set rm-page.
   ───────────────────────────────────────────────────────────── */

/* ── Page root ──────────────────────────────────────────────── */
.rm-page {
  background: var(--paper-0);
  color: var(--ink-1);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: 'ss01' 1, 'cv11' 1;
}

.rm-page h1,
.rm-page h2,
.rm-page h3,
.rm-page h4 {
  font-family: var(--font-display);
  color: var(--ink-0);
  letter-spacing: -0.02em;
  font-weight: 500;
}

.rm-page .rm-container {
  max-width: 11var(--space-20);
  margin: 0 auto;
  padding: 0 var(--space-8);
}
@media (max-width: 720px) {
  .rm-page .rm-container { padding: 0 var(--space-5); }
}

/* ── Shared atoms ──────────────────────────────────────────── */
.rm-eyebrow {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clay);
  font-weight: 600;
}
.rm-eyebrow--ink { color: var(--ink-2); }

.rm-display {
  font-family: var(--font-display);
  color: var(--ink-0);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.04;
  font-size: clamp(40px, 6.2vw, 6var(--space-1));
  margin: var(--space-4) 0 0;
}

.rm-h2 {
  font-family: var(--font-display);
  color: var(--ink-0);
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.1;
  font-size: clamp(28px, 3.6vw, var(--space-10));
  margin: 0;
}

.rm-h3 {
  font-family: var(--font-display);
  color: var(--ink-0);
  font-weight: 500;
  letter-spacing: -0.015em;
  line-height: 1.2;
  font-size: 22px;
  margin: 0;
}

.rm-lede {
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--ink-2);
  font-size: clamp(17px, 1.9vw, 21px);
  line-height: 1.5;
  margin: 1var(--space-2) 0 0;
  max-width: 6var(--space-5);
}

.rm-body {
  font-size: var(--space-4);
  line-height: 1.6;
  color: var(--ink-1);
  margin: 0 0 1var(--space-1);
}
.rm-body--muted { color: var(--ink-2); }

.rm-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px var(--space-3);
  border-radius: var(--radius-full);
  font: 500 11.5px/1 var(--font-sans);
  letter-spacing: 0.02em;
  background: var(--paper-1);
  color: var(--ink-2);
  border: 1px solid var(--line);
}
.rm-pill .dot {
  width: 6px;
  height: 6px;
  border-radius: var(--radius-full);
  background: var(--clay);
}
.rm-pill--brand { background: var(--brand-soft); color: var(--brand-deep); border-color: transparent; }
.rm-pill--brand .dot { background: var(--brand); }
.rm-pill--sage { background: var(--sage-soft); color: #2c5d57; border-color: transparent; }
.rm-pill--sage .dot { background: var(--sage); }
.rm-pill--clay { background: var(--clay-soft); color: var(--clay-deep); border-color: transparent; }

.rm-rule-label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-3);
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin: 0 0 var(--space-3);
}
.rm-rule-label::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--line);
}

/* ── Buttons ───────────────────────────────────────────────── */
.rm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 13px 22px;
  border-radius: var(--radius-full);
  font: 500 14px/1 var(--font-sans);
  letter-spacing: 0.01em;
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease, transform 160ms ease;
  white-space: nowrap;
}
.rm-btn:hover { transform: translateY(-1px); }
.rm-btn:active { transform: translateY(0); }

.rm-btn--primary {
  background: var(--ink-0);
  color: var(--on-ink);
  border-color: var(--ink-0);
}
.rm-btn--primary:hover { background: var(--brand-deep); border-color: var(--brand-deep); }

.rm-btn--ghost {
  background: transparent;
  color: var(--ink-1);
  border-color: var(--line-strong);
}
.rm-btn--ghost:hover { color: var(--ink-0); border-color: var(--ink-0); }

.rm-btn--clay {
  background: var(--clay);
  color: var(--on-accent);
  border-color: var(--clay);
}
.rm-btn--clay:hover { background: var(--clay-deep); color: #fff; border-color: var(--clay-deep); }

.rm-btn--lg { padding: 15px 26px; font-size: 15px; }
.rm-btn--sm { padding: 9px var(--space-4); font-size: 12.5px; }
.rm-btn--block { width: 100%; }

.rm-link {
  color: var(--ink-0);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--line-strong);
}
.rm-link:hover { text-decoration-color: var(--ink-0); }

/* ── Section ───────────────────────────────────────────────── */
.rm-section {
  padding: clamp(56px, 8vw, 96px) 0;
}
.rm-section--tight { padding: clamp(40px, 6vw, 6var(--space-1)) 0; }
.rm-section--paper { background: var(--paper-1); }
.rm-section--ink {
  background: var(--ink-0);
  color: rgba(230,232,238,1);
}
.rm-section--ink h1,
.rm-section--ink h2,
.rm-section--ink h3,
.rm-section--ink h4 { color: #fff; }
.rm-section--ink .rm-lede { color: rgba(255,255,255,0.7); }
.rm-section--ink .rm-eyebrow { color: var(--clay); }

.rm-section-head {
  max-width: 720px;
  margin: 0 auto 4var(--space-2);
  text-align: center;
}
.rm-section-head--left {
  margin-left: 0;
  margin-right: auto;
  text-align: left;
}

/* ── Hero ──────────────────────────────────────────────────── */
.rm-hero {
  padding: clamp(56px, 10vw, 1var(--space-5)) 0 clamp(48px, 7vw, 8var(--space-2));
  border-bottom: 1px solid var(--line);
}
.rm-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
}
.rm-hero-copy { max-width: 600px; }
.rm-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: 2var(--space-2);
}
.rm-hero-subtext {
  margin-top: 1var(--space-1);
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: 0.04em;
  color: var(--ink-3);
}

.rm-hero-panel {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: var(--space-6);
  box-shadow: var(--shadow-md);
}
.rm-hero-panel-label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.rm-hero-signal-list {
  margin: 1var(--space-2) 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1var(--space-1);
}
.rm-hero-signal {
  display: grid;
  grid-template-columns: 2var(--space-2) 1fr;
  gap: 1var(--space-1);
  align-items: start;
}
.rm-hero-signal-icon {
  width: 2var(--space-2);
  height: 2var(--space-2);
  border-radius: var(--space-2);
  background: var(--paper-1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-0);
}
.rm-hero-signal-icon svg { width: 1var(--space-2); height: 1var(--space-2); }
.rm-hero-signal-text {
  font-family: var(--font-serif);
  font-size: 14.5px;
  font-style: italic;
  color: var(--ink-1);
  line-height: 1.45;
}
.rm-hero-panel-foot {
  margin-top: 22px;
  padding-top: var(--space-4);
  border-top: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--ink-3);
}

@media (max-width: 8var(--space-20)) {
  .rm-hero-grid { grid-template-columns: 1fr; }
  .rm-hero-panel { order: 2; }
}

/* ── Card grids ────────────────────────────────────────────── */
.rm-grid { display: grid; gap: var(--space-5); }
.rm-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rm-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rm-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 960px) {
  .rm-grid--3, .rm-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 6var(--space-10)) {
  .rm-grid--2, .rm-grid--3, .rm-grid--4 { grid-template-columns: 1fr; }
}

/* Generic card */
.rm-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: var(--space-6);
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
.rm-card:hover {
  border-color: var(--ink-3);
  box-shadow: var(--shadow-md);
}
.rm-card .rm-h3 { margin: 0; }
.rm-card p { font-size: 14.5px; color: var(--ink-2); line-height: 1.55; margin: 0; }

/* Step card */
.rm-step-card { padding: 2var(--space-2) var(--space-6); }
.rm-step-num {
  font-family: var(--font-display);
  font-size: 36px;
  font-weight: 500;
  color: var(--clay);
  line-height: 1;
  margin-bottom: var(--space-1);
  letter-spacing: -0.02em;
}

/* Quote / testimonial */
.rm-quote {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 2var(--space-2);
}
.rm-quote-text {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 500;
  color: var(--ink-0);
  letter-spacing: -0.015em;
  line-height: 1.35;
  margin: 0;
}
.rm-quote-byline {
  margin-top: 1var(--space-2);
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: 13px;
  color: var(--ink-2);
}
.rm-quote-byline strong { color: var(--ink-0); font-weight: 600; }

/* Stat */
.rm-stat-grid { display: grid; gap: var(--space-4); grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 720px) { .rm-stat-grid { grid-template-columns: 1fr; } }
.rm-stat {
  padding: 2var(--space-2);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
}
.rm-stat-num {
  font-family: var(--font-display);
  font-size: 4var(--space-2);
  font-weight: 500;
  color: var(--ink-0);
  letter-spacing: -0.03em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.rm-stat-num--clay { color: var(--clay); }
.rm-stat-num--brand { color: var(--brand); }
.rm-stat p { font-size: 15px; color: var(--ink-2); margin: 1var(--space-1) 0 0; line-height: 1.5; }
.rm-stat cite {
  display: block;
  margin-top: var(--space-3);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--ink-3);
  font-style: normal;
}

/* ── Two-up feature row ───────────────────────────────────── */
.rm-feature-row {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(32px, 5vw, 6var(--space-1));
  align-items: center;
}
.rm-feature-row--reverse > :first-child { order: 2; }
.rm-feature-row--reverse > :last-child { order: 1; }
@media (max-width: 8var(--space-20)) {
  .rm-feature-row { grid-template-columns: 1fr; }
  .rm-feature-row--reverse > :first-child,
  .rm-feature-row--reverse > :last-child { order: initial; }
}

.rm-feature-copy { max-width: 5var(--space-10); }
.rm-feature-copy ul {
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
.rm-feature-copy li {
  display: grid;
  grid-template-columns: 1var(--space-2) 1fr;
  gap: var(--space-3);
  font-size: 15px;
  color: var(--ink-1);
  line-height: 1.5;
}
.rm-feature-copy li::before {
  content: "→";
  color: var(--clay);
  font-family: var(--font-mono);
  font-size: 1var(--space-1);
  line-height: 1.6;
}

/* ── Form ──────────────────────────────────────────────────── */
.rm-form { display: flex; flex-direction: column; gap: 1var(--space-1); }
.rm-input,
.rm-select,
.rm-textarea {
  width: 100%;
  font: 400 15px/1.4 var(--font-sans);
  color: var(--ink-0);
  background: var(--card);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
  padding: var(--space-3) 1var(--space-1);
  transition: border-color 160ms ease, box-shadow 160ms ease;
  box-sizing: border-box;
}
.rm-input::placeholder, .rm-textarea::placeholder { color: var(--ink-4); }
.rm-input:focus,
.rm-select:focus,
.rm-textarea:focus {
  outline: none;
  border-color: var(--ink-0);
  box-shadow: 0 0 0 3px rgba(20,22,28,0.06);
}
.rm-textarea { min-height: 1var(--space-5); resize: vertical; }
.rm-form-label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-2);
  margin-bottom: var(--space-2);
  display: block;
}
.rm-form-note {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 13px;
  color: var(--ink-3);
}

.rm-lead-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: 2var(--space-2);
  box-shadow: var(--shadow-md);
}
.rm-lead-card h3 { margin: 0 0 6px; font-family: var(--font-display); font-size: 22px; font-weight: 500; letter-spacing: -0.015em; }
.rm-lead-card > p { margin: 0 0 1var(--space-2); font-size: 14.5px; color: var(--ink-2); line-height: 1.5; }

/* ── Newsletter inline ─────────────────────────────────────── */
.rm-newsletter {
  display: flex;
  gap: 10px;
  padding: 6px;
  background: var(--card);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-full);
  max-width: 460px;
}
.rm-newsletter input {
  flex: 1;
  border: 0;
  background: transparent;
  padding: 10px 1var(--space-1);
  font: 400 14.5px/1 var(--font-sans);
  color: var(--ink-0);
  outline: none;
}
.rm-newsletter button {
  border: 0;
  padding: 10px 1var(--space-2);
  border-radius: var(--radius-full);
  background: var(--ink-0);
  color: var(--on-ink);
  font: 500 13.5px/1 var(--font-sans);
  cursor: pointer;
}
.rm-newsletter button:hover { background: var(--brand-deep); }

/* ── Comparison table ─────────────────────────────────────── */
.rm-compare {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.rm-compare th, .rm-compare td {
  padding: var(--space-4) var(--space-5);
  text-align: left;
  font-size: 14.5px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
.rm-compare thead th {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
  background: var(--paper-1);
}
.rm-compare th.is-highlight,
.rm-compare td.is-highlight {
  background: var(--brand-soft);
  color: var(--brand-deep);
}
.rm-compare tr:last-child th,
.rm-compare tr:last-child td { border-bottom: 0; }
.rm-compare .feature-label {
  font-weight: 600;
  color: var(--ink-0);
}

/* ── Trust / long-form page ────────────────────────────────── */
.rm-prose {
  max-width: 720px;
  margin: 0 auto;
  font-family: var(--font-serif);
  font-size: 17.5px;
  line-height: 1.65;
  color: var(--ink-1);
}
.rm-prose h1, .rm-prose h2, .rm-prose h3 {
  font-family: var(--font-display);
  color: var(--ink-0);
  letter-spacing: -0.02em;
  font-weight: 500;
}
.rm-prose h1 { font-size: clamp(36px, 5vw, 52px); margin: 0 0 var(--space-3); line-height: 1.05; }
.rm-prose h2 { font-size: clamp(24px, 3vw, var(--space-8)); margin: 4var(--space-2) 0 1var(--space-1); line-height: 1.15; }
.rm-prose h3 { font-size: 22px; margin: var(--space-8) 0 10px; }
.rm-prose p { margin: 0 0 1var(--space-2); }
.rm-prose ul, .rm-prose ol { margin: 0 0 1var(--space-2); padding-left: 22px; }
.rm-prose li { margin-bottom: 6px; }
.rm-prose a { color: var(--brand-deep); text-decoration: underline; text-underline-offset: 3px; }
.rm-prose code {
  font-family: var(--font-mono);
  background: var(--paper-1);
  padding: 1px 6px;
  border-radius: var(--r-xs);
  font-size: 0.9em;
}
.rm-prose blockquote {
  border-left: 3px solid var(--clay);
  padding-left: 1var(--space-2);
  margin: var(--space-6) 0;
  color: var(--ink-2);
  font-style: italic;
}

/* ─────────────────────────────────────────────────────────────
   Editorial index overlay
   ───────────────────────────────────────────────────────────── */
.rm-page--editorial {
  background: var(--paper-0);
  color: var(--ink-1);
}
.rm-page--editorial h1,
.rm-page--editorial h2,
.rm-page--editorial h3,
.rm-page--editorial h4 {
  font-family: var(--font-display);
  color: var(--ink-0);
  letter-spacing: -0.02em;
  font-weight: 500;
}
/* Refined hero treatment for legacy-class heroes */
.rm-page--editorial .articles-hero,
.rm-page--editorial .resources-hero,
.rm-page--editorial .guides-hero,
.rm-page--editorial .tips-hero,
.rm-page--editorial .bookmarks-hero,
.rm-page--editorial .templates-hero {
  background: transparent !important;
  color: var(--ink-1) !important;
  text-align: left !important;
  padding: clamp(48px, 7vw, var(--space-20)) 0 clamp(24px, 4vw, var(--space-10)) !important;
  border-bottom: 1px solid var(--line);
  margin: 0 0 clamp(24px, 4vw, var(--space-10)) 0 !important;
  border-radius: 0 !important;
  position: relative;
}
.rm-page--editorial .articles-hero::before,
.rm-page--editorial .resources-hero::before,
.rm-page--editorial .guides-hero::before,
.rm-page--editorial .tips-hero::before,
.rm-page--editorial .bookmarks-hero::before {
  content: attr(data-eyebrow);
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clay);
  font-weight: 600;
  margin-bottom: 1var(--space-1);
}
.rm-page--editorial .articles-hero h1,
.rm-page--editorial .resources-hero h1,
.rm-page--editorial .guides-hero h1,
.rm-page--editorial .tips-hero h1,
.rm-page--editorial .bookmarks-hero h1 {
  font-family: var(--font-display) !important;
  font-size: clamp(36px, 5vw, 52px) !important;
  font-weight: 500 !important;
  color: var(--ink-0) !important;
  letter-spacing: -0.025em !important;
  line-height: 1.05 !important;
  margin: 0 !important;
  opacity: 1 !important;
}
.rm-page--editorial .articles-hero p,
.rm-page--editorial .resources-hero p,
.rm-page--editorial .guides-hero p,
.rm-page--editorial .tips-hero p,
.rm-page--editorial .bookmarks-hero p {
  font-family: var(--font-serif) !important;
  font-style: italic !important;
  font-size: clamp(16px, 1.7vw, 19px) !important;
  line-height: 1.5 !important;
  color: var(--ink-2) !important;
  margin: 1var(--space-2) 0 0 !important;
  max-width: 6var(--space-5) !important;
  opacity: 1 !important;
}
/* Filter chip refinements */
.rm-page--editorial .articles-filters .filter-btn,
.rm-page--editorial .news-filter-chip {
  border-radius: var(--radius-full);
  border: 1px solid var(--line-strong);
  background: transparent;
  color: var(--ink-1);
  font: 500 12.5px/1 var(--font-sans);
  letter-spacing: 0.01em;
}
.rm-page--editorial .articles-filters .filter-btn.active,
.rm-page--editorial .news-filter-chip--active {
  background: var(--ink-0);
  color: var(--on-ink);
  border-color: var(--ink-0);
}

/* ── Templates index (rides on editorial overlay) ─────────────── */
.rm-page--editorial .templates-hero .templates-mode-toggle .btn {
  border-radius: var(--radius-full);
  padding: var(--space-2) var(--space-4);
  font-family: var(--font-sans);
  font-weight: 500;
}
.rm-page--editorial .templates-hero .templates-mode-toggle .btn--primary {
  background: var(--ink-0);
  color: var(--on-ink);
  border-color: var(--ink-0);
}
.rm-page--editorial .templates-hero .templates-mode-toggle .btn--secondary {
  background: transparent;
  color: var(--ink-1);
  border: 1px solid var(--line-strong);
}
.rm-page--editorial .templates-hero .filter-input,
.rm-page--editorial .templates-hero .filter-select {
  background: var(--paper-0);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
  color: var(--ink-0);
  font-family: var(--font-sans);
  padding: 10px var(--space-3);
}
.rm-page--editorial .templates-hero .filter-input:focus,
.rm-page--editorial .templates-hero .filter-select:focus {
  outline: none;
  border-color: var(--ink-0);
  box-shadow: 0 0 0 3px rgba(20,22,28,0.06);
}
.rm-page--editorial .templates-hero .filter-group label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-2);
  font-weight: 600;
}
.rm-page--editorial .templates-hero .filter-counter,
.rm-page--editorial .templates-hero .filter-counter strong {
  color: var(--ink-2);
}
.rm-page--editorial .templates-hero .templates-privacy-note {
  color: var(--ink-3);
}
.rm-page--editorial .templates-hero .templates-privacy-note code {
  background: var(--paper-1);
  color: var(--ink-1);
}
.rm-page--editorial .tag-cloud-section {
  background: var(--paper-1);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
}
.rm-page--editorial .tag-cloud-section h2,
.rm-page--editorial .tag-cloud-section h3 {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-2);
  font-weight: 600;
}
.rm-page--editorial .tag {
  border: 1px solid var(--line-strong);
  background: var(--card);
  color: var(--ink-1);
  border-radius: var(--radius-full);
  font-family: var(--font-sans);
}
.rm-page--editorial .tag:hover {
  border-color: var(--ink-0);
  background: var(--paper-1);
}
.rm-page--editorial .tag.active,
.rm-page--editorial .active-tag {
  background: var(--ink-0);
  color: var(--on-ink);
  border-color: var(--ink-0);
}
.rm-page--editorial .templates-coach-cta {
  background: transparent;
  border-top: 1px solid var(--line);
}
.rm-page--editorial .templates-coach-cta .card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-sm);
}
.rm-page--editorial .templates-coach-cta .btn--primary {
  background: var(--ink-0);
  color: var(--on-ink);
  border-color: var(--ink-0);
  border-radius: var(--radius-full);
}
.rm-page--editorial .badge.difficulty--beginner {
  background: var(--sage-soft);
  color: var(--ink-1);
}
.rm-page--editorial .badge.difficulty--intermediate {
  background: var(--brand-soft);
  color: var(--ink-1);
}
.rm-page--editorial .badge.difficulty--advanced {
  background: var(--clay-soft);
  color: var(--clay-deep);
}
.rm-page--editorial .badge.category {
  background: var(--brand-soft);
  color: var(--ink-1);
}

/* ─────────────────────────────────────────────────────────────
   Trust pages (index + subpages)
   ───────────────────────────────────────────────────────────── */
.rm-page--trust {
  background: var(--paper-0);
  color: var(--ink-1);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
}
.rm-page--trust .trust-page,
.rm-page--trust .trust-doc-page {
  max-width: 8var(--space-20);
  margin: 0 auto;
  padding: clamp(40px, 6vw, 6var(--space-1)) clamp(20px, 4vw, var(--space-8));
}
.rm-page--trust .trust-header,
.rm-page--trust .trust-doc-header {
  border-bottom: 1px solid var(--line) !important;
  padding-bottom: var(--space-6);
  margin-bottom: 36px;
  position: relative;
}
.rm-page--trust .trust-header::before,
.rm-page--trust .trust-doc-header::before {
  content: "Trust Center";
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--clay);
  font-weight: 600;
  margin-bottom: 1var(--space-1);
}
.rm-page--trust .trust-header h1,
.rm-page--trust .trust-doc-header h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(34px, 4.5vw, 4var(--space-2));
  font-weight: 500;
  color: var(--ink-0);
  letter-spacing: -0.025em;
  line-height: 1.05;
}
.rm-page--trust .trust-subtitle {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17px;
  color: var(--ink-2);
  margin: var(--space-4) 0 0;
  line-height: 1.5;
}
.rm-page--trust .trust-updated,
.rm-page--trust .trust-doc-header > p {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--ink-3);
  margin: 1var(--space-1) 0 0;
}
.rm-page--trust .trust-classification {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 1var(--space-1);
  padding: 6px var(--space-3);
  border: 1px solid var(--line);
  border-radius: var(--radius-full);
  background: var(--paper-1);
  color: var(--ink-2);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
}

.rm-page--trust .trust-section,
.rm-page--trust .trust-doc-page section {
  margin: 4var(--space-1) 0;
}
.rm-page--trust .trust-section h2,
.rm-page--trust .trust-doc-page section h2 {
  font-family: var(--font-display);
  font-size: clamp(22px, 2.6vw, 2var(--space-2));
  font-weight: 500;
  color: var(--ink-0);
  letter-spacing: -0.02em;
  margin: 0 0 var(--space-4);
}
.rm-page--trust .trust-section h3,
.rm-page--trust .trust-doc-page section h3 {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 500;
  color: var(--ink-0);
  letter-spacing: -0.01em;
  margin: 2var(--space-2) 0 10px;
}
.rm-page--trust .trust-section p,
.rm-page--trust .trust-doc-page section p {
  font-family: var(--font-serif);
  font-size: 16.5px;
  line-height: 1.65;
  color: var(--ink-1);
  margin: 0 0 1var(--space-1);
}
.rm-page--trust .trust-section ul,
.rm-page--trust .trust-section ol,
.rm-page--trust .trust-doc-page section ul,
.rm-page--trust .trust-doc-page section ol {
  margin: 0 0 1var(--space-1);
  padding-left: 22px;
  font-family: var(--font-serif);
  font-size: 16.5px;
  line-height: 1.65;
  color: var(--ink-1);
}
.rm-page--trust .trust-section li,
.rm-page--trust .trust-doc-page section li { margin-bottom: var(--space-2); }
.rm-page--trust a {
  color: var(--brand-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.rm-page--trust strong { color: var(--ink-0); }

.rm-page--trust .trust-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1var(--space-1);
  margin-top: 1var(--space-2);
}
@media (max-width: 720px) {
  .rm-page--trust .trust-grid { grid-template-columns: 1fr; }
}
.rm-page--trust .trust-card {
  display: block;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: var(--space-5);
  text-decoration: none;
  color: inherit;
  transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}
.rm-page--trust .trust-card:hover {
  border-color: var(--ink-3);
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}
.rm-page--trust .trust-card h3 {
  margin: 0 0 var(--space-2);
  font-family: var(--font-display);
  font-size: var(--space-4);
  font-weight: 500;
  color: var(--ink-0);
  letter-spacing: -0.01em;
}
.rm-page--trust .trust-card p {
  margin: 0;
  font-family: var(--font-sans);
  font-style: normal;
  font-size: 13.5px;
  color: var(--ink-2);
  line-height: 1.5;
}

/* ── Mobile sticky CTA ─────────────────────────────────────── */
.rm-mobile-cta {
  display: none;
}
@media (max-width: 720px) {
  .rm-mobile-cta {
    display: block;
    position: fixed;
    left: var(--space-4);
    right: var(--space-4);
    bottom: var(--space-4);
    z-index: 40;
    padding: 6px;
    background: rgba(20,22,28,0.92);
    backdrop-filter: blur(var(--space-3)) saturate(180%);
    border-radius: var(--radius-full);
    box-shadow: 0 10px 30px rgba(0,0,0,0.18);
  }
  .rm-mobile-cta .rm-btn { width: 100%; background: #fff; color: var(--ink-0); border-color: #fff; }
}

/* ── Tools overlay (compensation, pricing, contracts, financial) ── */
/* Scoped to .rm-page--tool. Higher specificity than per-page inline
   <style> blocks so we win without !important. */
.rm-page.rm-page--tool {
  background: var(--paper-0);
  font-family: var(--font-sans);
  color: var(--ink-1);
}
.rm-page--tool .calculator-hero,
.rm-page--tool .generator-hero {
  background: var(--ink-0);
  color: var(--on-ink);
  border-radius: var(--r-xl);
  position: relative;
  overflow: hidden;
  padding: 56px var(--space-8);
}
.rm-page--tool .calculator-hero::before,
.rm-page--tool .generator-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at top right, rgba(196, 123, 74, 0.18), transparent 55%),
    radial-gradient(circle at bottom left, rgba(109, 168, 162, 0.14), transparent 55%);
  pointer-events: none;
}
.rm-page--tool .calculator-hero h1,
.rm-page--tool .generator-hero h1 {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.025em;
  font-size: clamp(28px, 4vw, 4var(--space-1));
  margin: 0 0 var(--space-3);
  color: var(--on-ink);
}
.rm-page--tool .calculator-hero p,
.rm-page--tool .generator-hero p {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 17px;
  color: rgba(255, 255, 255, 0.82);
  margin: 0 auto;
  max-width: 6var(--space-10);
}
.rm-page--tool .calculator-section,
.rm-page--tool .form-card,
.rm-page--tool .preview-card,
.rm-page--tool .model-sidebar,
.rm-page--tool .breakdown-section {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
}
.rm-page--tool .form-card,
.rm-page--tool .model-sidebar {
  border-top: 3px solid var(--clay);
}
.rm-page--tool .section-title,
.rm-page--tool .breakdown-title {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--ink-0);
}
.rm-page--tool .form-label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--ink-2);
}
.rm-page--tool .form-label-help {
  font-family: var(--font-sans);
  font-size: var(--space-3);
  color: var(--ink-3);
  letter-spacing: 0;
  text-transform: none;
}
.rm-page--tool .form-input,
.rm-page--tool .form-select,
.rm-page--tool .input-group {
  background: var(--paper-0);
  border-color: var(--line-strong);
  border-radius: var(--r-md);
  color: var(--ink-0);
}
.rm-page--tool .form-input:focus,
.rm-page--tool .form-select:focus,
.rm-page--tool .input-group:focus-within {
  outline: none;
  border-color: var(--ink-0);
  box-shadow: 0 0 0 3px rgba(20,22,28,0.06);
}
.rm-page--tool .currency-symbol,
.rm-page--tool .percentage-symbol,
.rm-page--tool .input-group .currency {
  background: var(--paper-1);
  border-color: var(--line);
  color: var(--ink-2);
  font-family: var(--font-mono);
  font-weight: 500;
}
.rm-page--tool .calculator-section.results {
  background: linear-gradient(135deg, var(--sage-soft) 0%, var(--brand-soft) 100%);
  border: 1px solid rgba(109, 168, 162, 0.3);
}
.rm-page--tool .result-value,
.rm-page--tool .breakdown-value.total {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--ink-0);
  font-variant-numeric: tabular-nums;
}
.rm-page--tool .result-label,
.rm-page--tool .breakdown-label {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.rm-page--tool .breakdown-value {
  font-family: var(--font-sans);
  color: var(--ink-1);
  font-variant-numeric: tabular-nums;
}
.rm-page--tool .btn,
.rm-page--tool button.btn-primary,
.rm-page--tool button.btn-outline {
  border-radius: var(--radius-full);
  font-family: var(--font-sans);
  font-weight: 500;
  letter-spacing: 0;
}
.rm-page--tool .btn-primary {
  background: var(--ink-0) !important;
  border-color: var(--ink-0) !important;
  color: var(--on-ink) !important;
}
.rm-page--tool .btn-primary:hover,
.rm-page--tool .btn-primary:hover:not(:disabled),
.rm-page--tool a.btn-primary:hover {
  background: var(--brand-deep) !important;
  border-color: var(--brand-deep) !important;
  color: var(--on-ink) !important;
}
.rm-page--tool .btn-outline {
  background: transparent !important;
  border: 1px solid var(--line-strong) !important;
  color: var(--ink-0) !important;
}
.rm-page--tool .btn-outline:hover,
.rm-page--tool .btn-outline:hover:not(:disabled) {
  border-color: var(--ink-0) !important;
  background: var(--paper-1) !important;
  color: var(--ink-0) !important;
}

/* ── Global rm-page text overrides (kill legacy --color-text-*) ── */
.rm-page .text-secondary { color: var(--ink-2); }
.rm-page .text-tertiary { color: var(--ink-3); }
.rm-page .text-primary { color: var(--brand-deep); }
.rm-page .text-muted { color: var(--ink-3); }

/* ── Generic rm-page--auth overlay (onboarding, invite, verify) ──
   Inline-scoped pages (signup, forgot/reset, unsubscribe, pending)
   already provide their own styling; their inline <style> blocks
   load after this and override these defaults. */
.rm-page--auth {
  background: var(--paper-0);
  color: var(--ink-1);
  font-family: var(--font-sans);
}
.rm-page--auth h1,
.rm-page--auth h2,
.rm-page--auth h3 {
  font-family: var(--font-display);
  color: var(--ink-0);
  letter-spacing: -0.02em;
  font-weight: 500;
}
.rm-page--auth .card-title {
  font-family: var(--font-display);
  color: var(--ink-0);
  letter-spacing: -0.015em;
  font-weight: 500;
}
.rm-page--auth .card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-sm);
}
.rm-page--auth .form-label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-2);
  font-weight: 600;
}
.rm-page--auth .form-input,
.rm-page--auth input[type="text"],
.rm-page--auth input[type="email"],
.rm-page--auth input[type="password"],
.rm-page--auth textarea,
.rm-page--auth select {
  background: var(--paper-0);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
  color: var(--ink-0);
  font: 400 15px/1.4 var(--font-sans);
  padding: var(--space-3) 1var(--space-1);
}
.rm-page--auth .form-input:focus,
.rm-page--auth input:focus,
.rm-page--auth textarea:focus,
.rm-page--auth select:focus {
  outline: none;
  border-color: var(--ink-0);
  box-shadow: 0 0 0 3px rgba(20,22,28,0.06);
}
.rm-page--auth .btn-primary {
  background: var(--ink-0) !important;
  border-color: var(--ink-0) !important;
  color: var(--on-ink) !important;
  border-radius: var(--radius-full) !important;
  font-weight: 500;
}
.rm-page--auth .btn-primary:hover,
.rm-page--auth .btn-primary:hover:not(:disabled),
.rm-page--auth a.btn-primary:hover {
  background: var(--brand-deep) !important;
  border-color: var(--brand-deep) !important;
  color: var(--on-ink) !important;
}
.rm-page--auth .btn-outline,
.rm-page--auth a.btn-outline {
  background: transparent !important;
  border: 1px solid var(--line-strong) !important;
  color: var(--ink-0) !important;
  border-radius: var(--radius-full) !important;
}
.rm-page--auth .btn-outline:hover {
  border-color: var(--ink-0) !important;
  background: var(--paper-1) !important;
  color: var(--ink-0) !important;
}
.rm-page--auth .btn-text {
  background: transparent;
  color: var(--ink-2);
  font-family: var(--font-sans);
}
.rm-page--auth .btn-text:hover {
  color: var(--ink-0);
}
.rm-page--auth .alert-error {
  background: var(--clay-soft);
  border: 1px solid rgba(196, 123, 74, 0.3);
  color: var(--clay-deep);
  border-radius: var(--r-md);
}
.rm-page--auth .alert-success {
  background: var(--sage-soft);
  border: 1px solid rgba(109, 168, 162, 0.3);
  color: var(--ink-1);
  border-radius: var(--r-md);
}
.rm-page--auth .form-checkbox {
  background: var(--paper-0);
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
}
.rm-page--auth .toggle-row {
  background: var(--paper-1);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: var(--space-3) var(--space-4);
}

/* ── Auth flow refinements: onboarding, verify, invite ── */
.rm-page--onboarding .container.section,
.rm-page--invite .container,
.rm-page--verify .container {
  background:
    radial-gradient(circle at 18% 12%, rgba(109, 168, 162, 0.16), transparent 34%),
    radial-gradient(circle at 82% 2%, rgba(196, 123, 74, 0.14), transparent 30%),
    var(--paper-0);
}
.rm-page--onboarding .content-narrow,
.rm-page--invite .grid > div,
.rm-page--verify #verify-status {
  position: relative;
}
.rm-page--onboarding .onboarding-header,
.rm-page--invite #invite-header {
  padding-top: clamp(24px, 5vw, 4var(--space-2));
}
.rm-page--onboarding .onboarding-header h1,
.rm-page--invite #invite-page-title {
  font-size: clamp(2.2rem, 5vw, 4rem);
  line-height: 0.95;
}
.rm-page--onboarding .onboarding-header p,
.rm-page--invite #invite-header p,
.rm-page--verify #status-message {
  max-width: 34rem;
  margin-inline: auto;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
}
.rm-page--onboarding .card,
.rm-page--invite .card,
.rm-page--verify #verify-status {
  backdrop-filter: blur(1var(--space-1));
  -webkit-backdrop-filter: blur(1var(--space-1));
}
.rm-page--onboarding .onboarding-plus-card {
  background: linear-gradient(135deg, var(--brand-soft) 0%, var(--card) 72%) !important;
  border-color: rgba(95, 106, 211, 0.22) !important;
}
.rm-page--onboarding .form-checkbox:has(input:checked) {
  background: var(--brand-soft);
  border-color: var(--brand);
}
.rm-page--onboarding input[type="checkbox"],
.rm-page--invite input[type="checkbox"] {
  accent-color: var(--brand-deep);
}
.rm-page--onboarding footer {
  background: color-mix(in srgb, var(--paper-0) 86%, transparent) !important;
  border-top: 1px solid var(--line);
  backdrop-filter: blur(var(--space-4));
  -webkit-backdrop-filter: blur(var(--space-4));
}
.rm-page--onboarding .onboarding-modal-content {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-lg);
}
.rm-page--onboarding .onboarding-modal-backdrop {
  background: rgba(20, 22, 28, 0.48);
}
.rm-page--invite textarea.form-input {
  min-height: 130px;
  resize: vertical;
}
.rm-page--verify #verify-status {
  background: var(--card) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r-xl) !important;
  box-shadow: var(--shadow-md) !important;
}
.rm-page--verify #status-title {
  font-family: var(--font-display);
  color: var(--ink-0) !important;
  font-weight: 500 !important;
}
.rm-page--verify #loading-spinner > div {
  border-color: var(--paper-2) !important;
  border-bottom-color: var(--brand-deep) !important;
}
.rm-page--verify #error-container a {
  background: var(--ink-0) !important;
  color: var(--on-ink) !important;
  border-radius: var(--radius-full) !important;
}
.rm-page--tool input[type="range"] { accent-color: var(--brand-deep); }
.rm-page--tool .checkbox-item input { accent-color: var(--brand-deep); }
.rm-page--tool .checkbox-item label { color: var(--ink-1); }
.rm-page--tool .contract-preview {
  font-family: 'Times New Roman', Times, serif;
  color: var(--ink-1);
}
.rm-page--tool .contract-preview h2,
.rm-page--tool .contract-preview h3 {
  color: var(--ink-0);
}
