/* ============================================================================
   RPM Capital Advisory Group — Brand CSS
   Version: 1.0 | Created: 2026-05-06 | Owner: Avery (Deal Director)

   Use:  <link rel="stylesheet" href="/path/to/rpm-capital.css">

   Prefix:  rpm-
   Tier:    McKinsey / BCG / Capco financial services consulting
   Markets: Banking, Financial Services, Insurance (BFSI)

   Covers:
     - Design tokens (color, type, spacing, shadow)
     - Base reset + typography
     - Layout (container, section, grid)
     - Navigation
     - Hero variants
     - Eyebrow labels
     - Buttons (3 variants)
     - Cards (feature, insight, stat)
     - Dividers and rules
     - Forms (all inputs + document forms)
     - Proposal document components
     - Data / metrics display
     - Callouts and pull quotes
     - Sector tags / badges
     - Footer
   ============================================================================ */


/* ----- Fonts -------------------------------------------------------------- */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=DM+Serif+Display:ital@0;1&display=swap');


/* ----- Design tokens ------------------------------------------------------ */

:root {
  /* --- Primary Brand -------------------------------------------------------- */
  --rpm-navy:           #0C1C3D;   /* principal brand — authority, trust */
  --rpm-navy-700:       #162A5A;   /* hover states, secondary surfaces */
  --rpm-navy-500:       #2A4080;   /* mid-navy, selected states */
  --rpm-navy-300:       #4A6098;   /* soft navy for borders on dark */
  --rpm-navy-100:       #E8EDF5;   /* navy tint, light-mode highlight */

  /* --- Premium Accent ------------------------------------------------------- */
  --rpm-gold:           #C9A850;   /* premium amber-gold — advisory quality signal */
  --rpm-gold-light:     #DEC077;   /* hover / active gold */
  --rpm-gold-dark:      #A8872C;   /* deep gold — pressed states */
  --rpm-gold-pale:      #F5EDD6;   /* gold-tint surface — callouts, highlights */
  --rpm-gold-rule:      #DFC878;   /* gold hairline for section headers */

  /* --- Neutrals ------------------------------------------------------------- */
  --rpm-white:          #FFFFFF;
  --rpm-off-white:      #F6F5F1;   /* warm paper body background */
  --rpm-neutral-50:     #FAFAF8;
  --rpm-neutral-100:    #F2F1EC;
  --rpm-neutral-200:    #E8E6DF;
  --rpm-neutral-300:    #D8D5CC;
  --rpm-neutral-400:    #B8B4A8;
  --rpm-neutral-500:    #8896A8;
  --rpm-neutral-600:    #5A6478;
  --rpm-neutral-700:    #3A4458;
  --rpm-neutral-800:    #1E2D4A;
  --rpm-neutral-900:    #0C1C3D;   /* same as navy */
  --rpm-rule:           #E0DDD5;   /* hairline dividers — warm, not cold */

  /* --- Text ----------------------------------------------------------------- */
  --rpm-text-primary:   #0C1C3D;   /* headings, strong text */
  --rpm-text-body:      #1E2D4A;   /* body paragraphs */
  --rpm-text-mid:       #4A5568;   /* secondary descriptors */
  --rpm-text-muted:     #8896A8;   /* captions, metadata, timestamps */
  --rpm-text-inverted:  #FFFFFF;   /* text on dark surfaces */
  --rpm-text-inverted-mid: #B8C8D8; /* secondary text on dark */

  /* --- Surfaces ------------------------------------------------------------- */
  --rpm-surface-1:      #FFFFFF;
  --rpm-surface-2:      #F6F5F1;   /* warm off-white sections */
  --rpm-surface-3:      #EEEAE0;   /* card fill, alternating rows */
  --rpm-surface-dark:   #0C1C3D;   /* navy sections */
  --rpm-surface-mid:    #162A5A;   /* mid-navy, footer, secondary dark */

  /* --- Typography ----------------------------------------------------------- */
  --rpm-font-sans:   'DM Sans', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  --rpm-font-serif:  'DM Serif Display', Georgia, 'Times New Roman', serif;

  /* --- Shape ---------------------------------------------------------------- */
  /* Financial consulting = disciplined, sharp. No pills. */
  --rpm-radius-none:   0;
  --rpm-radius-sm:     2px;
  --rpm-radius-card:   4px;
  --rpm-radius-badge:  2px;

  /* --- Shadows (subtle — financial flatness, not embossed) ------------------ */
  --rpm-shadow-card:
    0 1px 3px 0 rgba(12, 28, 61, 0.08),
    0 4px 12px 0 rgba(12, 28, 61, 0.06);
  --rpm-shadow-card-hover:
    0 2px 8px 0 rgba(12, 28, 61, 0.12),
    0 12px 32px 0 rgba(12, 28, 61, 0.10);
  --rpm-shadow-dropdown:
    0 4px 24px 0 rgba(12, 28, 61, 0.14),
    0 1px 4px 0 rgba(12, 28, 61, 0.08);
  --rpm-shadow-form:
    0 0 0 3px rgba(201, 168, 80, 0.18);   /* gold focus ring */

  /* --- Layout --------------------------------------------------------------- */
  --rpm-container-max:  1240px;
  --rpm-section-pad-y:  96px;
  --rpm-section-pad-y-sm: 64px;
}


/* ----- Base reset + typography ------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  font-size: 16px;
}

body {
  margin: 0;
  font-family: var(--rpm-font-sans);
  font-size: 16px;
  line-height: 1.65;
  color: var(--rpm-text-body);
  background-color: var(--rpm-off-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, svg, video, canvas { display: block; max-width: 100%; }

a {
  color: var(--rpm-navy);
  text-decoration: underline;
  text-decoration-color: var(--rpm-gold);
  text-underline-offset: 3px;
  transition: color 0.2s ease;
}
a:hover { color: var(--rpm-gold-dark); text-decoration-color: var(--rpm-gold-dark); }

::selection { background-color: var(--rpm-gold-pale); color: var(--rpm-navy); }

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 0.6em 0;
  font-family: var(--rpm-font-sans);
  font-weight: 600;
  letter-spacing: -0.025em;
  color: var(--rpm-text-primary);
  line-height: 1.15;
}

h1, .rpm-h1 { font-size: clamp(40px, 5vw, 64px); }
h2, .rpm-h2 { font-size: clamp(28px, 3.5vw, 48px); }
h3, .rpm-h3 { font-size: clamp(22px, 2.5vw, 32px); }
h4, .rpm-h4 { font-size: clamp(18px, 2vw, 24px); }
h5, .rpm-h5 { font-size: 18px; }
h6, .rpm-h6 { font-size: 16px; }

/* Display: serif italic for editorial impact — use sparingly */
.rpm-display {
  font-family: var(--rpm-font-serif);
  font-size: clamp(44px, 6vw, 80px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--rpm-text-primary);
}
.rpm-display-italic {
  font-family: var(--rpm-font-serif);
  font-style: italic;
  font-size: clamp(44px, 6vw, 80px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--rpm-navy);
}

/* Inline serif emphasis — for mixing in headings */
.rpm-serif {
  font-family: var(--rpm-font-serif);
  font-style: italic;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--rpm-gold-dark);
}

p { margin: 0 0 1.1em 0; }
p:last-child { margin-bottom: 0; }

.rpm-lead {
  font-size: 20px;
  line-height: 1.6;
  color: var(--rpm-text-mid);
  font-weight: 400;
}

.rpm-eyebrow-text {
  font-family: var(--rpm-font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rpm-text-muted);
}

.rpm-caption {
  font-size: 12px;
  line-height: 1.5;
  color: var(--rpm-text-muted);
  letter-spacing: 0.02em;
}


/* ----- Layout helpers ----------------------------------------------------- */

.rpm-container {
  max-width: var(--rpm-container-max);
  margin: 0 auto;
  padding-left: 24px;
  padding-right: 24px;
}

@media (min-width: 1280px) {
  .rpm-container { padding-left: 40px; padding-right: 40px; }
}

.rpm-section {
  padding-top: var(--rpm-section-pad-y);
  padding-bottom: var(--rpm-section-pad-y);
  background-color: var(--rpm-surface-1);
}
.rpm-section--warm { background-color: var(--rpm-surface-2); }
.rpm-section--dark {
  background-color: var(--rpm-surface-dark);
  color: var(--rpm-text-inverted);
}
.rpm-section--dark h1,
.rpm-section--dark h2,
.rpm-section--dark h3,
.rpm-section--dark h4 { color: var(--rpm-text-inverted); }
.rpm-section--dark .rpm-lead    { color: var(--rpm-text-inverted-mid); }
.rpm-section--dark .rpm-eyebrow-text { color: var(--rpm-gold); }
.rpm-section--mid {
  background-color: var(--rpm-surface-mid);
  color: var(--rpm-text-inverted);
}

.rpm-section--sm {
  padding-top: var(--rpm-section-pad-y-sm);
  padding-bottom: var(--rpm-section-pad-y-sm);
}

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

@media (max-width: 991px) {
  .rpm-grid--3, .rpm-grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
  .rpm-grid--2, .rpm-grid--3, .rpm-grid--4 { grid-template-columns: 1fr; }
  .rpm-section { padding-top: 56px; padding-bottom: 56px; }
  .rpm-section--sm { padding-top: 40px; padding-bottom: 40px; }
}


/* ----- Eyebrow label ------------------------------------------------------ */
/* Financial consulting aesthetic: not a pill — a horizontal accent line.
   Sits above section titles as a structural marker.                          */

.rpm-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  color: var(--rpm-text-muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.rpm-eyebrow::before {
  content: "";
  display: block;
  width: 24px;
  height: 2px;
  background-color: var(--rpm-gold);
  flex-shrink: 0;
}

.rpm-eyebrow--gold  { color: var(--rpm-gold); }
.rpm-eyebrow--light { color: var(--rpm-text-inverted-mid); }
.rpm-eyebrow--light::before { background-color: var(--rpm-gold); }


/* ----- Horizontal rule / section divider ---------------------------------- */

.rpm-rule {
  border: 0;
  height: 1px;
  background-color: var(--rpm-rule);
  margin: 0;
}
.rpm-rule--gold { background-color: var(--rpm-gold-rule); }
.rpm-rule--dark { background-color: var(--rpm-navy-300); }

/* Thick top-rule used on proposal/card headers */
.rpm-rule-top {
  border-top: 3px solid var(--rpm-navy);
  padding-top: 24px;
}
.rpm-rule-top--gold { border-top-color: var(--rpm-gold); }


/* ----- Navigation --------------------------------------------------------- */

.rpm-nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background-color: var(--rpm-white);
  border-bottom: 1px solid var(--rpm-rule);
  height: 72px;
  display: flex;
  align-items: center;
}
.rpm-nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}
.rpm-nav__brand {
  font-family: var(--rpm-font-sans);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--rpm-navy);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
}
.rpm-nav__brand:hover { color: var(--rpm-navy); }

.rpm-nav__links {
  display: flex;
  align-items: center;
  gap: 36px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.rpm-nav__links a {
  font-size: 14px;
  font-weight: 500;
  color: var(--rpm-text-mid);
  text-decoration: none;
  letter-spacing: 0.01em;
  transition: color 0.2s ease;
}
.rpm-nav__links a:hover { color: var(--rpm-navy); }

.rpm-nav__cta { display: flex; align-items: center; gap: 12px; }


/* ----- Buttons ------------------------------------------------------------ */
/* Sharp corners — no border-radius. Financial consulting precision.
   Variants: --primary (navy fill), --gold (accent), --ghost (outline).       */

.rpm-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-family: var(--rpm-font-sans);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1;
  padding: 14px 28px;
  border: 2px solid transparent;
  border-radius: var(--rpm-radius-none);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s ease;
  white-space: nowrap;
}

/* Primary: Navy fill */
.rpm-btn--primary {
  background-color: var(--rpm-navy);
  border-color: var(--rpm-navy);
  color: var(--rpm-white);
}
.rpm-btn--primary:hover {
  background-color: var(--rpm-navy-700);
  border-color: var(--rpm-navy-700);
  color: var(--rpm-white);
}

/* Gold: Premium accent */
.rpm-btn--gold {
  background-color: var(--rpm-gold);
  border-color: var(--rpm-gold);
  color: var(--rpm-navy);
}
.rpm-btn--gold:hover {
  background-color: var(--rpm-gold-dark);
  border-color: var(--rpm-gold-dark);
  color: var(--rpm-navy);
}

/* Ghost: Outline on light */
.rpm-btn--ghost {
  background-color: transparent;
  border-color: var(--rpm-navy);
  color: var(--rpm-navy);
}
.rpm-btn--ghost:hover {
  background-color: var(--rpm-navy);
  color: var(--rpm-white);
}

/* Ghost light: Outline on dark backgrounds */
.rpm-btn--ghost-light {
  background-color: transparent;
  border-color: rgba(255, 255, 255, 0.5);
  color: var(--rpm-white);
}
.rpm-btn--ghost-light:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: var(--rpm-white);
}

/* Size modifier */
.rpm-btn--sm { font-size: 12px; padding: 10px 20px; }
.rpm-btn--lg { font-size: 15px; padding: 18px 36px; }


/* ----- Hero --------------------------------------------------------------- */

.rpm-hero {
  padding: 120px 0 96px;
  background-color: var(--rpm-white);
  border-bottom: 1px solid var(--rpm-rule);
  position: relative;
  overflow: hidden;
}

/* Gold accent bar on left edge of hero — the "consulting stripe" */
.rpm-hero::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, var(--rpm-gold) 0%, var(--rpm-navy) 100%);
}

.rpm-hero__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-width: 840px;
}

.rpm-hero__title {
  font-size: clamp(36px, 5vw, 68px);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--rpm-text-primary);
  margin: 0 0 28px;
}
.rpm-hero__title em {
  font-family: var(--rpm-font-serif);
  font-style: italic;
  font-weight: 400;
  color: var(--rpm-navy-500);
  letter-spacing: 0;
}

.rpm-hero__lead {
  font-size: 20px;
  line-height: 1.6;
  color: var(--rpm-text-mid);
  margin: 0 0 40px;
  max-width: 600px;
}

.rpm-hero__cta { display: flex; gap: 16px; flex-wrap: wrap; }

.rpm-hero__kicker {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--rpm-text-muted);
  margin-bottom: 32px;
}

/* Dark hero variant */
.rpm-hero--dark {
  background-color: var(--rpm-surface-dark);
  border-bottom: none;
}
.rpm-hero--dark::before { background: linear-gradient(180deg, var(--rpm-gold) 0%, rgba(255,255,255,0.1) 100%); }
.rpm-hero--dark .rpm-hero__title { color: var(--rpm-white); }
.rpm-hero--dark .rpm-hero__title em { color: var(--rpm-gold-light); }
.rpm-hero--dark .rpm-hero__lead { color: var(--rpm-text-inverted-mid); }
.rpm-hero--dark .rpm-hero__kicker { color: var(--rpm-gold); }

@media (max-width: 767px) {
  .rpm-hero { padding: 80px 0 64px; }
  .rpm-hero__title { font-size: 36px; }
}


/* ----- Cards -------------------------------------------------------------- */

.rpm-card {
  display: flex;
  flex-direction: column;
  background-color: var(--rpm-surface-1);
  border: 1px solid var(--rpm-rule);
  border-radius: var(--rpm-radius-card);
  overflow: hidden;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}
.rpm-card:hover {
  box-shadow: var(--rpm-shadow-card-hover);
  transform: translateY(-2px);
}

/* Top accent stripe on each card */
.rpm-card--accented { border-top: 3px solid var(--rpm-navy); }
.rpm-card--gold     { border-top: 3px solid var(--rpm-gold); }

.rpm-card__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--rpm-neutral-200);
}
.rpm-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.rpm-card:hover .rpm-card__media img { transform: scale(1.03); }

.rpm-card__body   { padding: 28px 28px 24px; flex: 1; display: flex; flex-direction: column; }
.rpm-card__tag    { margin-bottom: 12px; }
.rpm-card__title  { font-size: 18px; font-weight: 600; margin: 0 0 10px; line-height: 1.3; color: var(--rpm-text-primary); }
.rpm-card__text   { font-size: 15px; color: var(--rpm-text-mid); line-height: 1.6; margin: 0 0 20px; flex: 1; }
.rpm-card__footer { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--rpm-rule); }
.rpm-card__meta   { font-size: 12px; color: var(--rpm-text-muted); font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }

/* Solid surface card — no media, for capability/feature grids */
.rpm-card--solid { padding: 32px; }
.rpm-card--solid .rpm-card__body { padding: 0; }

/* Dark surface card */
.rpm-card--dark {
  background-color: var(--rpm-surface-mid);
  border-color: var(--rpm-navy-300);
}
.rpm-card--dark .rpm-card__title { color: var(--rpm-white); }
.rpm-card--dark .rpm-card__text  { color: var(--rpm-text-inverted-mid); }
.rpm-card--dark .rpm-card__footer { border-top-color: var(--rpm-navy-300); }
.rpm-card--dark .rpm-card__meta  { color: var(--rpm-gold); }


/* ----- Stat tile ---------------------------------------------------------- */

.rpm-stat {
  padding: 36px 32px;
  border: 1px solid var(--rpm-rule);
  background: var(--rpm-surface-1);
  position: relative;
}
.rpm-stat::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 3px;
  background-color: var(--rpm-navy);
}
.rpm-stat__num {
  font-family: var(--rpm-font-serif);
  font-style: italic;
  font-size: clamp(40px, 5vw, 60px);
  line-height: 1.0;
  color: var(--rpm-navy);
  margin: 0 0 10px;
  letter-spacing: -0.01em;
}
.rpm-stat__label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--rpm-text-muted);
  margin: 0;
}
.rpm-stat__sub {
  font-size: 14px;
  color: var(--rpm-text-mid);
  margin: 8px 0 0;
}

.rpm-stat--gold::before { background-color: var(--rpm-gold); }
.rpm-stat--gold .rpm-stat__num { color: var(--rpm-gold-dark); }

.rpm-stat--dark {
  background-color: var(--rpm-surface-mid);
  border-color: var(--rpm-navy-300);
}
.rpm-stat--dark::before { background-color: var(--rpm-gold); }
.rpm-stat--dark .rpm-stat__num  { color: var(--rpm-white); }
.rpm-stat--dark .rpm-stat__label { color: var(--rpm-text-inverted-mid); }
.rpm-stat--dark .rpm-stat__sub  { color: var(--rpm-text-inverted-mid); }


/* ----- Sector / capability tags ------------------------------------------ */

.rpm-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: var(--rpm-radius-badge);
  background-color: var(--rpm-neutral-100);
  color: var(--rpm-text-mid);
  border: 1px solid var(--rpm-rule);
}
.rpm-tag--navy {
  background-color: var(--rpm-navy-100);
  color: var(--rpm-navy);
  border-color: var(--rpm-navy-100);
}
.rpm-tag--gold {
  background-color: var(--rpm-gold-pale);
  color: var(--rpm-gold-dark);
  border-color: var(--rpm-gold-pale);
}
.rpm-tag--dark {
  background-color: var(--rpm-navy);
  color: var(--rpm-white);
  border-color: var(--rpm-navy);
}


/* ----- Callout / pull quote ----------------------------------------------- */

.rpm-callout {
  border-left: 4px solid var(--rpm-gold);
  background-color: var(--rpm-gold-pale);
  padding: 24px 28px;
  margin: 32px 0;
}
.rpm-callout__text {
  font-size: 17px;
  line-height: 1.65;
  color: var(--rpm-text-primary);
  margin: 0;
}
.rpm-callout__source {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rpm-gold-dark);
  margin: 12px 0 0;
}

.rpm-callout--navy {
  border-left-color: var(--rpm-navy);
  background-color: var(--rpm-navy-100);
}
.rpm-callout--navy .rpm-callout__text { color: var(--rpm-navy); }
.rpm-callout--navy .rpm-callout__source { color: var(--rpm-navy-500); }

/* Pull quote: large italic serif */
.rpm-pullquote {
  font-family: var(--rpm-font-serif);
  font-style: italic;
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.45;
  color: var(--rpm-navy);
  padding: 32px 0;
  border-top: 2px solid var(--rpm-gold);
  border-bottom: 2px solid var(--rpm-gold);
  margin: 40px 0;
}


/* ----- Forms -------------------------------------------------------------- */
/* All inputs: flat, 0 radius, 1px border. Focus = gold ring.
   Used for: contact forms, LP inquiry forms, proposal intake.                */

.rpm-form { display: flex; flex-direction: column; gap: 24px; }

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

.rpm-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rpm-text-primary);
}
.rpm-label .rpm-required { color: var(--rpm-gold-dark); margin-left: 2px; }

.rpm-input,
.rpm-select,
.rpm-textarea {
  font-family: var(--rpm-font-sans);
  font-size: 15px;
  line-height: 1.5;
  color: var(--rpm-text-body);
  background-color: var(--rpm-white);
  border: 1px solid var(--rpm-neutral-300);
  border-radius: var(--rpm-radius-none);
  padding: 12px 16px;
  width: 100%;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  appearance: none;
  outline: none;
}
.rpm-input:hover, .rpm-select:hover, .rpm-textarea:hover {
  border-color: var(--rpm-neutral-500);
}
.rpm-input:focus, .rpm-select:focus, .rpm-textarea:focus {
  border-color: var(--rpm-gold);
  box-shadow: var(--rpm-shadow-form);
}
.rpm-input::placeholder, .rpm-textarea::placeholder {
  color: var(--rpm-neutral-400);
}

.rpm-select {
  background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6L8 10L12 6' stroke='%230C1C3D' stroke-width='1.5' stroke-linecap='square'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 40px;
  cursor: pointer;
}

.rpm-textarea { resize: vertical; min-height: 120px; }

/* Checkbox + radio */
.rpm-check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
}
.rpm-check__control {
  width: 18px;
  height: 18px;
  border: 1.5px solid var(--rpm-neutral-400);
  border-radius: var(--rpm-radius-none);
  background-color: var(--rpm-white);
  flex-shrink: 0;
  margin-top: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s ease;
  cursor: pointer;
  appearance: none;
  outline: none;
}
.rpm-check__control:checked {
  background-color: var(--rpm-navy);
  border-color: var(--rpm-navy);
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='9' viewBox='0 0 12 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4L4.5 7.5L11 1' stroke='white' stroke-width='2' stroke-linecap='square'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
}
.rpm-check__control:focus { box-shadow: var(--rpm-shadow-form); border-color: var(--rpm-gold); }

.rpm-check__label {
  font-size: 14px;
  line-height: 1.5;
  color: var(--rpm-text-body);
  cursor: pointer;
}

/* Helper text below inputs */
.rpm-field-hint {
  font-size: 12px;
  color: var(--rpm-text-muted);
  line-height: 1.4;
}
.rpm-field-error { color: #C0392B; font-size: 12px; line-height: 1.4; }

/* Form sections (multi-part forms) */
.rpm-form-section {
  padding: 32px 0;
  border-top: 1px solid var(--rpm-rule);
}
.rpm-form-section:first-child { border-top: none; padding-top: 0; }

.rpm-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 639px) { .rpm-form-row { grid-template-columns: 1fr; } }


/* ----- Data table --------------------------------------------------------- */
/* Clean financial table — no heavy shading, hairline borders.                */

.rpm-table-wrap { overflow-x: auto; }

.rpm-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  color: var(--rpm-text-body);
}
.rpm-table th {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--rpm-text-muted);
  text-align: left;
  padding: 12px 16px;
  border-bottom: 2px solid var(--rpm-navy);
  background-color: var(--rpm-surface-1);
  white-space: nowrap;
}
.rpm-table td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--rpm-rule);
  vertical-align: top;
  line-height: 1.5;
}
.rpm-table tr:last-child td { border-bottom: none; }
.rpm-table tr:hover td { background-color: var(--rpm-neutral-50); }
.rpm-table--striped tr:nth-child(even) td { background-color: var(--rpm-surface-2); }

/* Emphasis cells */
.rpm-table td.rpm-table__num {
  font-family: var(--rpm-font-serif);
  font-style: italic;
  font-size: 18px;
  color: var(--rpm-navy);
}
.rpm-table td.rpm-table__highlight { color: var(--rpm-gold-dark); font-weight: 600; }

/* Total/summary row */
.rpm-table tr.rpm-table__total td {
  background-color: var(--rpm-navy);
  color: var(--rpm-white);
  font-weight: 600;
  border-bottom: none;
}


/* ----- Proposal document components -------------------------------------- */
/* Used in: engagement proposals, SOWs, IC memos, capital advisory reports. */

/* Document shell — A4-ish proportions, white on body-bg */
.rpm-doc {
  background: var(--rpm-white);
  max-width: 800px;
  margin: 0 auto;
  box-shadow: var(--rpm-shadow-card);
}

/* Cover page */
.rpm-doc__cover {
  background-color: var(--rpm-surface-dark);
  color: var(--rpm-white);
  padding: 80px 64px;
  position: relative;
  overflow: hidden;
}
.rpm-doc__cover::after {
  content: "";
  position: absolute;
  bottom: 0; right: 0;
  width: 280px; height: 280px;
  background: radial-gradient(circle at bottom right, rgba(201, 168, 80, 0.18) 0%, transparent 70%);
  pointer-events: none;
}
.rpm-doc__cover-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rpm-gold);
  margin-bottom: 28px;
}
.rpm-doc__cover-title {
  font-size: clamp(28px, 4vw, 48px);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--rpm-white);
  margin: 0 0 16px;
}
.rpm-doc__cover-sub {
  font-size: 16px;
  color: var(--rpm-text-inverted-mid);
  margin: 0 0 48px;
}
.rpm-doc__cover-meta {
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rpm-gold);
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
}
.rpm-doc__cover-meta span { color: var(--rpm-text-inverted-mid); margin-left: 6px; font-weight: 400; letter-spacing: 0; text-transform: none; }

/* Document body */
.rpm-doc__body { padding: 64px; }
@media (max-width: 639px) { .rpm-doc__body { padding: 32px 24px; } }

/* Section within a document */
.rpm-doc__section { margin-bottom: 48px; }
.rpm-doc__section:last-child { margin-bottom: 0; }

.rpm-doc__section-title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rpm-navy);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--rpm-rule);
  margin-bottom: 24px;
}

/* Terms / KV list */
.rpm-doc__terms { list-style: none; margin: 0; padding: 0; }
.rpm-doc__terms li {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rpm-rule);
  font-size: 14px;
}
.rpm-doc__terms li:last-child { border-bottom: none; }
.rpm-doc__terms-key {
  font-weight: 500;
  color: var(--rpm-text-mid);
  min-width: 180px;
  flex-shrink: 0;
}
.rpm-doc__terms-val {
  color: var(--rpm-text-primary);
  font-weight: 600;
  text-align: right;
}

/* Signature block */
.rpm-doc__signature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  padding-top: 32px;
  border-top: 2px solid var(--rpm-navy);
  margin-top: 48px;
}
.rpm-doc__sig-party { display: flex; flex-direction: column; gap: 8px; }
.rpm-doc__sig-line {
  height: 1px;
  background: var(--rpm-rule);
  margin: 32px 0 8px;
}
.rpm-doc__sig-name { font-weight: 600; font-size: 15px; color: var(--rpm-text-primary); }
.rpm-doc__sig-title { font-size: 12px; color: var(--rpm-text-muted); letter-spacing: 0.04em; }

/* Confidentiality strip */
.rpm-doc__confidential {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rpm-text-muted);
  text-align: center;
  padding: 20px 64px;
  border-top: 1px solid var(--rpm-rule);
}

@media (max-width: 639px) {
  .rpm-doc__cover { padding: 48px 24px; }
  .rpm-doc__signature { grid-template-columns: 1fr; }
}


/* ----- Capabilities / service list ---------------------------------------- */

.rpm-service {
  display: flex;
  gap: 20px;
  padding: 28px 0;
  border-bottom: 1px solid var(--rpm-rule);
}
.rpm-service:first-child { border-top: 1px solid var(--rpm-rule); }
.rpm-service__num {
  font-family: var(--rpm-font-serif);
  font-style: italic;
  font-size: 20px;
  color: var(--rpm-gold-dark);
  min-width: 28px;
  flex-shrink: 0;
  padding-top: 2px;
}
.rpm-service__body { flex: 1; }
.rpm-service__title { font-size: 17px; font-weight: 600; color: var(--rpm-text-primary); margin: 0 0 6px; }
.rpm-service__text  { font-size: 15px; color: var(--rpm-text-mid); margin: 0; }


/* ----- Two-column text layout (editorial split) --------------------------- */

.rpm-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.rpm-split--wide { grid-template-columns: 3fr 2fr; }
.rpm-split--narrow { grid-template-columns: 2fr 3fr; }

@media (max-width: 767px) {
  .rpm-split, .rpm-split--wide, .rpm-split--narrow { grid-template-columns: 1fr; gap: 48px; }
}


/* ----- Full-width marquee ticker (consulting social proof) ---------------- */

.rpm-ticker {
  overflow: hidden;
  border-top: 1px solid var(--rpm-rule);
  border-bottom: 1px solid var(--rpm-rule);
  padding: 20px 0;
  background: var(--rpm-surface-2);
}
.rpm-ticker__track {
  display: flex;
  gap: 64px;
  animation: rpmTicker 30s linear infinite;
  white-space: nowrap;
}
.rpm-ticker__item {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--rpm-text-muted);
  flex-shrink: 0;
}
.rpm-ticker__sep {
  color: var(--rpm-gold);
  flex-shrink: 0;
}
@keyframes rpmTicker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}


/* ----- Footer ------------------------------------------------------------- */

.rpm-footer {
  background-color: var(--rpm-surface-dark);
  color: var(--rpm-text-inverted-mid);
  padding: 64px 0 40px;
  font-size: 14px;
}
.rpm-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 48px;
}
.rpm-footer__brand {
  font-family: var(--rpm-font-sans);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--rpm-white);
  margin: 0 0 12px;
}
.rpm-footer__tagline { font-size: 14px; color: var(--rpm-text-inverted-mid); margin: 0 0 20px; line-height: 1.5; }
.rpm-footer__col-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--rpm-gold);
  margin: 0 0 16px;
}
.rpm-footer__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rpm-footer__links a {
  color: var(--rpm-text-inverted-mid);
  text-decoration: none;
  font-size: 14px;
  transition: color 0.2s ease;
}
.rpm-footer__links a:hover { color: var(--rpm-white); }

.rpm-footer__bottom {
  padding-top: 24px;
  border-top: 1px solid var(--rpm-navy-300);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
}
.rpm-footer__legal {
  font-size: 12px;
  color: var(--rpm-neutral-500);
  letter-spacing: 0.02em;
}

@media (max-width: 991px) {
  .rpm-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 639px) {
  .rpm-footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .rpm-footer__bottom { flex-direction: column; text-align: center; }
}


/* ----- Utilities ---------------------------------------------------------- */

.rpm-text-navy   { color: var(--rpm-navy); }
.rpm-text-gold   { color: var(--rpm-gold-dark); }
.rpm-text-muted  { color: var(--rpm-text-muted); }
.rpm-text-mid    { color: var(--rpm-text-mid); }
.rpm-text-white  { color: var(--rpm-white); }
.rpm-text-center { text-align: center; }
.rpm-text-right  { text-align: right; }
.rpm-text-sm     { font-size: 14px; }
.rpm-text-xs     { font-size: 12px; }
.rpm-text-lg     { font-size: 18px; }
.rpm-text-bold   { font-weight: 600; }
.rpm-text-upper  { text-transform: uppercase; letter-spacing: 0.08em; }

.rpm-mb-0  { margin-bottom: 0; }
.rpm-mb-8  { margin-bottom: 8px; }
.rpm-mb-16 { margin-bottom: 16px; }
.rpm-mb-24 { margin-bottom: 24px; }
.rpm-mb-32 { margin-bottom: 32px; }
.rpm-mb-48 { margin-bottom: 48px; }
.rpm-mb-64 { margin-bottom: 64px; }

.rpm-mt-auto { margin-top: auto; }
