/* ============================================================================
   Resume Place design system ("orange whispers") — ported from the locked
   design north-star (docs/clients/resume-place/design-system/index.html).
   Darks are the GROUND, bright blue #2F62C4 is the SIGNAL, tangelo is an ACCENT.
   Messina does the work: serif display, condensed labels, mono data, blue folios.
   Classes are rp- prefixed and used by the page-type templates (inc/*-pages.php).
   ============================================================================ */

:root {
  --rp-tangelo:#F94D00; --rp-tangelo-50:#FFF3ED; --rp-tangelo-100:#FFE3D5;
  --rp-tangelo-400:#FF7A3C; --rp-tangelo-600:#DC4400; --rp-tangelo-700:#C04000;
  --rp-mahogany:#C04000;

  --rp-blue-50:#EEF1F7; --rp-blue-100:#DCE3F1; --rp-blue-200:#B7C6E5;
  --rp-blue-bright:#2F62C4; --rp-blue-bright-2:#5B8AE0;
  --rp-deep:#1C3664; --rp-blue-800:#13294C; --rp-evening:#0F264C; --rp-night:#0B1D3A;

  /* Ink darkened for readability (KT feedback 2026-07: "too light, barely
     readable"; audience skews ~55). ink-2/ink-3 carry body + secondary text. */
  --rp-ink:#16243A; --rp-ink-2:#37414B; --rp-ink-3:#586069;
  --rp-line:#E7E6E0; --rp-line-2:#D9D8D1;
  --rp-surface:#FFFFFF; --rp-surface-2:#FBFAF7; --rp-bg:#F4F3EF;
  --rp-d-fg:#FFFFFF; --rp-d-fg-2:#D7E1F0; --rp-d-fg-3:#9FB1CC; --rp-d-line:rgba(143,167,205,.18);

  --rp-sans:var(--font-sans, 'Messina Sans', ui-sans-serif, system-ui, sans-serif);
  --rp-serif:var(--font-serif, 'Messina Serif', Georgia, serif);
  --rp-cond:var(--font-condensed, 'Messina Sans Condensed', 'Messina Sans', sans-serif);
  --rp-mono:var(--font-mono, 'Messina Sans Mono', ui-monospace, monospace);

  --rp-h1:clamp(2.4rem,4.6vw,3.6rem); --rp-h2:clamp(2rem,3.6vw,2.9rem);
  /* Body sizes bumped up (KT feedback 2026-07: "typefont too small"). */
  --rp-lead:1.28rem; --rp-small:.95rem; --rp-xs:.72rem;
  --rp-r-tag:6px; --rp-r-btn:9px; --rp-r-card:14px;
  --rp-c-max:1140px;
  --rp-sh-sm:0 1px 2px rgba(16,36,44,.05),0 1px 1px rgba(16,36,44,.03);
  --rp-sh-md:0 6px 20px -10px rgba(16,36,44,.14),0 2px 6px -3px rgba(16,36,44,.07);
  --rp-e:cubic-bezier(.16,.84,.44,1);
}

/* ---- layout ---- */
.rp-ds{font-family:var(--rp-sans);color:var(--rp-ink);-webkit-font-smoothing:antialiased}
.rp-ds *{box-sizing:border-box}
/* Sections are block-composed (native groups) so the client can edit copy in
   place; core's flow-layout blockGap must not add spacing here — the rp-*
   rules below own every margin. Keep this rule ABOVE all margin rules so any
   later equal-specificity rp-* declaration still wins. */
.rp-ds :where(.is-layout-flow) > *{margin-block-start:0;margin-block-end:0}
.rp-wrap{width:100%;max-width:var(--rp-c-max);margin-inline:auto;padding-inline:1.5rem}
/* Bleed-right wrap: left edge stays on the page container, content runs to the
   right viewport edge (gallery bleeds off-screen right). */
.rp-wrap--bleed{max-width:none;margin-inline:0;padding-right:0;padding-left:max(1.5rem,calc((100% - var(--rp-c-max))/2 + 1.5rem))}
/* Wide band aligned to the header/nav container (1280px) so content lines up
   with the logo on the left and gets symmetric breathing room on the right. */
.rp-wrap--wide{max-width:none;margin-inline:0;padding-inline:max(1.5rem,calc((100% - var(--rp-c-wide,1280px))/2))}
.rp-section{padding-block:clamp(2.75rem,5vw,4.5rem);margin-block:0}
.rp-section--paper{background:var(--rp-bg)}
.rp-section--surface{background:var(--rp-surface-2)}

/* ---- editorial type primitives ---- */
.rp-kick{font-family:var(--rp-mono);font-size:var(--rp-xs);font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--rp-ink-3);margin:0}
.rp-kick .hot{color:var(--rp-tangelo)}
.rp-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--rp-tangelo);vertical-align:middle;margin-right:.5em}
.rp-filed{font-family:var(--rp-cond);font-weight:600;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rp-ink-3)}
.rp-folio{font-family:var(--rp-serif);font-weight:200;font-size:clamp(2.4rem,5vw,3.8rem);line-height:.8;letter-spacing:-.02em;color:var(--rp-blue-bright)}
.rp-display{font-family:var(--rp-serif);font-weight:300;line-height:1.02;letter-spacing:-.02em}
.rp-h1{font-family:var(--rp-serif);font-weight:400;font-size:var(--rp-h1);line-height:1.04;letter-spacing:-.02em;margin:0}
.rp-h2{font-family:var(--rp-serif);font-weight:400;font-size:var(--rp-h2);line-height:1.08;letter-spacing:-.016em;margin:0}
.rp-h1 em,.rp-h2 em,.rp-display em{font-style:italic;font-weight:300;color:var(--rp-tangelo)}
.rp-lead{font-size:var(--rp-lead);line-height:1.62;color:var(--rp-ink-2);font-weight:400;margin:0}

/* ---- pills ---- */
.rp-pill{display:inline-flex;align-items:center;gap:.45em;font-family:var(--rp-cond);font-weight:600;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:.35em .7em;border-radius:var(--rp-r-tag);line-height:1.1}
.rp-pill-blue{background:var(--rp-blue-50);color:var(--rp-blue-800)}
.rp-pill-orange{background:var(--rp-tangelo-50);color:var(--rp-tangelo-700)}

/* ---- buttons ---- */
/* WP core global styles underline every non-.wp-element-button anchor on hover;
   rp-ds buttons and block-level card anchors opt out (prose links keep it). */
.rp-btn,.rp-btn:hover,.rp-card--link:hover,.rp-video:hover,.rp-sample:hover,.rp-shelf-card:hover,.rp-reserve-bar:hover{text-decoration:none}
.rp-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--rp-sans);font-weight:600;font-size:var(--rp-small);line-height:1;cursor:pointer;border:1px solid transparent;padding:.86em 1.3em;border-radius:var(--rp-r-btn);transition:background .16s,color .16s,border-color .16s,box-shadow .16s,transform .16s var(--rp-e)}
.rp-btn-primary{background:var(--rp-tangelo);color:#fff;box-shadow:0 1px 2px rgba(192,64,0,.3)}
.rp-btn-primary:hover{background:var(--rp-tangelo-600);transform:translateY(-1px);box-shadow:var(--rp-sh-md)}
.rp-btn-quiet{background:var(--rp-surface);color:var(--rp-ink);border-color:var(--rp-line-2);box-shadow:var(--rp-sh-sm)}
.rp-btn-quiet:hover{border-color:var(--rp-ink-3);background:var(--rp-surface-2)}
.rp-btn-ondark{background:rgba(234,240,248,.08);color:#fff;border-color:rgba(159,177,204,.3)}
.rp-btn-ondark:hover{background:rgba(234,240,248,.16)}
.rp-link{font-family:var(--rp-sans);color:var(--rp-mahogany);font-weight:600;font-size:var(--rp-small);display:inline-flex;align-items:center;gap:.4em}
.rp-link:hover{color:var(--rp-tangelo)}

/* ---- hero ---- */
.rp-hero{background:var(--rp-bg);padding-block:clamp(2.75rem,5vw,4.25rem);position:relative;overflow:hidden}
.rp-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(58% 50% at 72% 38%,var(--rp-blue-50),transparent 70%);pointer-events:none}
.rp-hero .rp-wrap{position:relative;text-align:center}
.rp-hero .rp-h1{max-width:18ch;margin:.6rem auto 0}
.rp-hero .rp-lead{max-width:46ch;margin:1.5rem auto 0}
.rp-cta-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 1.5rem;margin-top:2.5rem}

/* ---- section head with folio ---- */
.rp-sec-head{display:flex;align-items:baseline;gap:1rem;margin-bottom:2.25rem}
.rp-sec-head .rp-folio{flex:none}

/* ---- value cards ---- */
.rp-cards{display:grid;grid-template-columns:repeat(1,1fr);gap:1.25rem}
@media(min-width:640px){.rp-cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.rp-cards{grid-template-columns:repeat(3,1fr)}
/* Four-card sets square up 2x2 instead of orphaning the fourth card. */
.rp-cards--four{grid-template-columns:repeat(2,1fr)}}
.rp-card{background:var(--rp-surface);border:1px solid var(--rp-line);border-radius:var(--rp-r-card);padding:1.5rem 1.5rem 1.6rem;box-shadow:var(--rp-sh-sm);transition:border-color .16s,box-shadow .16s,transform .16s var(--rp-e)}
.rp-card:hover{border-color:var(--rp-blue-200);box-shadow:var(--rp-sh-md);transform:translateY(-2px)}
.rp-card h3{font-family:var(--rp-serif);font-weight:400;font-size:1.3rem;line-height:1.18;letter-spacing:-.01em;color:var(--rp-ink);margin:0}
.rp-card p{color:var(--rp-ink-2);font-size:var(--rp-small);line-height:1.6;margin:.6rem 0 0}
.rp-card .rp-cnum{font-family:var(--rp-serif);font-weight:200;font-size:1.7rem;line-height:1;color:var(--rp-blue-bright);letter-spacing:-.02em;display:block;margin-bottom:.6rem}
.rp-card-face{width:88px;height:88px;border-radius:50%;object-fit:cover;display:block;margin-bottom:.9rem;border:1px solid var(--rp-line)}
.rp-card-ico{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--rp-blue-50);color:var(--rp-blue-bright);margin-bottom:.9rem}
.rp-card-ico svg{width:22px;height:22px}
.rp-card--link{display:block;text-decoration:none}
.rp-card--link:hover{border-color:var(--rp-blue-bright)}
.rp-card-more{display:inline-block;margin-top:1.1rem;font-family:var(--rp-sans);font-weight:600;font-size:var(--rp-small);color:var(--rp-mahogany)}
.rp-card--link:hover .rp-card-more{color:var(--rp-tangelo)}

/* ---- agencies credibility strip ---- */
.rp-agencies .rp-filed{display:block;margin-bottom:1rem}
.rp-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.rp-chip{font-family:var(--rp-cond);font-weight:600;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--rp-ink-2);background:var(--rp-surface);border:1px solid var(--rp-line-2);border-radius:999px;padding:.4em .85em}

/* ---- dark CTA band (navy ground, tangelo accent) ---- */
.rp-dark{background:var(--rp-evening);color:var(--rp-d-fg)}
.rp-dark .rp-kick{color:var(--rp-d-fg-3)}
.rp-dark .rp-kick .hot{color:var(--rp-tangelo-400)}
.rp-dark .rp-h2{color:#fff}
.rp-dark .rp-lead{color:var(--rp-d-fg-2)}
.rp-dark .rp-body{color:var(--rp-d-fg-2)}
.rp-cta{padding-block:clamp(3.5rem,7vw,5.5rem);text-align:center}
.rp-cta .rp-h2{max-width:20ch;margin-inline:auto}
.rp-cta .rp-lead{max-width:44ch;margin:1.1rem auto 0}
.rp-cta .rp-cta-row{margin-top:2rem}

/* ---- media-aware bands: photo hero, photo split band, photo CTA ----
   Photography comes from the brand DAM (assets/img/rp/…). Treatments keep the
   rp-ds grammar: navy ground, hairline borders, serif display; the photo is
   content, not decoration, so it always ships with alt text. */
.rp-hero--photo .rp-wrap{text-align:left}
.rp-hero--photo .rp-h1,.rp-hero--photo .rp-lead{margin-inline:0}
.rp-hero--photo .rp-cta-row{justify-content:flex-start}
.rp-hero-fig{margin:2rem 0 0;position:relative}
.rp-hero-fig img{display:block;width:100%;height:100%;object-fit:cover;border-radius:var(--rp-r-card);border:1px solid var(--rp-line);box-shadow:var(--rp-sh-md)}
@media(min-width:900px){
  .rp-hero--photo .rp-wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:3.5rem;align-items:center}
  .rp-hero-fig{margin:0;height:100%;min-height:340px}
  .rp-hero-fig img{position:absolute;inset:0}
}
.rp-media{display:grid;gap:2.25rem}
.rp-media__fig{margin:0}
.rp-media__fig img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:var(--rp-r-card);border:1px solid var(--rp-line);box-shadow:var(--rp-sh-md)}
.rp-media__cap{font-family:var(--rp-mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rp-ink-3);margin-top:.65rem}
@media(min-width:900px){
  .rp-media{grid-template-columns:1.05fr .95fr;gap:3.5rem;align-items:stretch}
  .rp-media--flip .rp-media__fig{order:-1}
  /* The figure matches the copy column height, so the photo's top and bottom
     edges align with the text block instead of floating beside it. */
  .rp-media__fig{display:flex;flex-direction:column}
  .rp-media__fig img{flex:1;min-height:340px;aspect-ratio:auto}
}

/* ---- type pacing: kicker → headline → lead → body → list ----
   rp-h2 / rp-lead / rp-kick are margin:0 primitives; the rhythm between them
   is set here, once, by adjacency, so every band paces the same. */
.rp-kick+.rp-h2{margin-top:.85rem}
.rp-h2+.rp-lead,.rp-h2+.rp-body{margin-top:1.15rem}
.rp-lead+.rp-lead,.rp-lead+.rp-body,.rp-body+.rp-body{margin-top:1rem}
.rp-body{font-size:1rem;line-height:1.7;color:var(--rp-ink-2);margin:0}
.rp-band__head .rp-ticks{margin-top:1.4rem;gap:.7rem}
/* ---- featured testimonial: one voice, given the whole band ---- */
.rp-quote-feat{max-width:880px;margin-inline:auto;text-align:center}
.rp-quote-feat .rp-kick{display:flex;align-items:center;justify-content:center;gap:.5rem}
.rp-quote-feat blockquote{font-family:var(--rp-serif);font-weight:300;font-size:clamp(1.45rem,2.8vw,2.1rem);line-height:1.4;letter-spacing:-.012em;color:#fff;margin:1.4rem 0 0}
.rp-quote-feat blockquote::before{content:"\201C";display:block;font-family:var(--rp-serif);font-weight:400;font-size:5rem;line-height:.55;color:var(--rp-tangelo-400);margin:1.4rem auto .35rem}
.rp-quote-feat blockquote em{font-style:italic;color:var(--rp-tangelo-400)}
.rp-quote-feat figcaption{margin-top:2rem;font-family:var(--rp-mono);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rp-d-fg-3);line-height:1.7;max-width:56ch;margin-inline:auto}

.rp-cta--photo{position:relative;overflow:hidden}
.rp-cta--photo .rp-cta-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rp-cta--photo::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(15,38,76,.78),rgba(15,38,76,.88))}
.rp-cta--photo .rp-wrap{position:relative;z-index:1}
@media (prefers-reduced-motion: reduce){video.rp-cta-bg{display:none}}

/* ============================================================================
   Consultation page ($210 conversion centerpiece) — mirrors the platform
   /resume-place/consultation north-star. Used by inc/consultation-page.php.
   ============================================================================ */
.rp-measure{max-width:52ch}

/* The consultation hero is rendered by rp_render_hero() using the shared
   `rph-hero` markup (styles in rp-home.css), so the old `.rp-hero--split`
   /`.rp-facts` block lived here previously and has been removed. */

/* Hero proof rail (founder portrait + $210 sticker) is shared with the homepage
   hero; its styles live in rp-home.css (.rph-proof__* / .rph-pricetag). */

/* ---- trust strip (authority proof under the hero) ---- */
.rp-trust{background:var(--rp-bg);border-bottom:1px solid var(--rp-line)}
.rp-trust-grid{width:100%;max-width:var(--rp-c-max);margin-inline:auto;display:grid;grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.rp-trust-grid{grid-template-columns:repeat(4,1fr)}}
.rp-trust-cell{display:flex;flex-direction:column;gap:.45rem;padding:1.6rem 2rem;border-top:1px solid var(--rp-line)}
.rp-trust-cell:nth-child(n+2){border-left:1px solid var(--rp-line)}
@media(min-width:760px){.rp-trust-cell{border-top:0}.rp-trust-cell:first-child{border-left:0}}
.rp-trust-lead{font-family:var(--rp-serif);font-weight:400;font-size:1.45rem;line-height:1;letter-spacing:-.015em;color:var(--rp-ink)}
.rp-trust-sub{font-family:var(--rp-mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.4;color:var(--rp-ink-3)}
.rp-trust-rule{width:22px;height:2px;background:var(--rp-blue-bright);margin-top:.25rem}

/* ---- resume samples (specimen shelf + handoff) ---- */
.rp-samples-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;margin-bottom:2.5rem}
.rp-samples-intro{max-width:54ch}
.rp-samples-intro .rp-h2{margin:.8rem 0 0}
.rp-samples-intro .rp-lead{margin-top:1.1rem}
.rp-samples-head .rp-link{white-space:nowrap;padding-bottom:.4rem}
.rp-samples-shelf{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
@media(min-width:900px){.rp-samples-shelf{grid-template-columns:repeat(4,1fr)}}
.rp-sample{margin:0;display:flex;flex-direction:column}
.rp-sample-frame{position:relative;background:var(--rp-surface);border:1px solid var(--rp-line-2);border-radius:10px;overflow:hidden;box-shadow:var(--rp-sh-sm);aspect-ratio:17/22}
.rp-sample-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}
.rp-sample-tag{position:absolute;left:10px;top:10px;font-family:var(--rp-cond);font-weight:700;font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--rp-blue-bright);padding:.35em .6em;border-radius:5px}
.rp-sample-tag.is-accent{background:var(--rp-tangelo)}
.rp-sample-caption{font-family:var(--rp-serif);font-weight:500;font-size:1rem;color:var(--rp-ink);letter-spacing:-.01em;margin-top:.9rem}
.rp-sample-note{font-size:.8rem;line-height:1.5;color:var(--rp-ink-2);margin:.4rem 0 0}
.rp-samples-handoff{display:grid;grid-template-columns:1fr;gap:1.25rem;align-items:center;margin-top:2.5rem;background:var(--rp-surface);border:1px solid var(--rp-line);border-radius:14px;padding:1.5rem 1.75rem;box-shadow:var(--rp-sh-sm)}
@media(min-width:820px){.rp-samples-handoff{grid-template-columns:1fr auto;gap:1.75rem}}
.rp-samples-handoff .rp-kick{color:var(--rp-tangelo);letter-spacing:.16em}
.rp-samples-handoff-copy{font-family:var(--rp-serif);font-weight:400;font-size:1.2rem;line-height:1.5;color:var(--rp-ink);margin:.5rem 0 0;max-width:60ch}
.rp-samples-handoff .rp-cta-row{margin-top:0;justify-content:flex-start}
.rp-samples-foot{font-family:var(--rp-mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rp-ink-3);margin:1rem 0 0}

/* ---- the stakes ---- */
.rp-stakes-grid{display:grid;grid-template-columns:1fr;gap:2.5rem}
@media(min-width:900px){.rp-stakes-grid{grid-template-columns:.92fr 1.08fr;gap:3.5rem;align-items:start}}
.rp-stakes-intro .rp-h2{margin:.8rem 0 0;max-width:16ch}
.rp-stakes-intro .rp-lead{margin-top:1.2rem;max-width:40ch}
.rp-forces{display:flex;flex-direction:column}
.rp-force{display:grid;grid-template-columns:auto 1fr;column-gap:1.25rem;padding-block:1.5rem;border-top:1px solid var(--rp-line)}
.rp-force:first-child{border-top:0}
.rp-force-no{font-family:var(--rp-mono);font-size:.78rem;font-weight:600;letter-spacing:.12em;color:var(--rp-blue-bright);padding-top:.35rem}
.rp-force h3{font-family:var(--rp-serif);font-weight:600;font-size:1.2rem;margin:0;color:var(--rp-ink)}
.rp-force p{font-size:var(--rp-small);line-height:1.58;color:var(--rp-ink-2);margin:.5rem 0 0;max-width:46ch}

/* ---- stat row (child-page 'stats' section kind) ---- */
.rp-statrow{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 3rem;margin-top:2rem}
@media(min-width:720px){.rp-statrow{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:2.5rem 3.5rem}}
.rp-band__head+.rp-statrow{margin-top:2.5rem}
.rp-stat{display:flex;flex-direction:column;gap:.5rem}
.rp-stat__n{font-family:var(--rp-serif);font-weight:300;font-size:clamp(2.4rem,4vw,3.2rem);line-height:.9;letter-spacing:-.02em;color:var(--rp-blue-bright)}
.rp-stat__l{font-family:var(--rp-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rp-ink-2);max-width:22ch}
/* Dark stat band: numerals go paper-white on the navy ground at display scale,
   labels dim mono. The dark full-bleed treatment is a pacing beat, so the
   numerals carry more size than the in-flow light stat row. */
.rp-dark .rp-stat__n{color:#fff;font-size:clamp(3rem,5.5vw,4.5rem)}
.rp-dark .rp-stat__l{color:var(--rp-d-fg-3)}

/* ---- accomplishment coaching add-on ---- */
.rp-coaching{display:grid;grid-template-columns:1fr;gap:2.5rem}
@media(min-width:900px){.rp-coaching{grid-template-columns:.92fr 1.08fr;gap:3.5rem;align-items:start}}
.rp-coaching-intro .rp-h2{margin:.8rem 0 0;max-width:18ch}
.rp-coaching-intro .rp-lead{margin-top:1.2rem;max-width:42ch}
.rp-coaching-intro .rp-cta-row{margin-top:2rem;justify-content:flex-start}
.rp-coaching-includes{font-size:var(--rp-small);line-height:1.58;color:var(--rp-ink-2);margin:1.5rem 0 0;max-width:50ch}

/* ---- "what we review" keyword panel ---- */
.rp-review{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:2rem}
@media(min-width:760px){.rp-review{grid-template-columns:1fr 1fr}}
.rp-review-col{background:var(--rp-surface);border:1px solid var(--rp-line);border-radius:var(--rp-r-card);padding:1.5rem;box-shadow:var(--rp-sh-sm)}
.rp-review-title{font-family:var(--rp-serif);font-weight:400;font-size:1.5rem;margin:.7rem 0 0;color:var(--rp-ink)}
.rp-review-meta{font-family:var(--rp-mono);font-size:var(--rp-xs);letter-spacing:.08em;color:var(--rp-ink-3);margin:.3rem 0 0}
.rp-chips--key{margin-top:1.2rem}
.rp-match{list-style:none;margin:1.2rem 0 0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.rp-match li{display:flex;align-items:center;gap:.6rem;font-size:var(--rp-small);color:var(--rp-ink)}
.rp-match-mark{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:6px;font-size:.72rem;font-weight:700;flex:none}
.rp-match .is-hit .rp-match-mark,.rp-match li.is-hit .rp-match-mark{background:var(--rp-blue-50);color:var(--rp-blue-bright)}
.rp-match .is-miss .rp-match-mark,.rp-match li.is-miss .rp-match-mark{background:var(--rp-tangelo-50);color:var(--rp-tangelo-700)}
.rp-match-tag{margin-left:auto;font-family:var(--rp-mono);font-size:var(--rp-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--rp-ink-3)}
.rp-match li.is-miss .rp-match-tag{color:var(--rp-tangelo-700)}

/* ---- the offer (steps + sticky price card) ---- */
.rp-offer-grid{display:grid;grid-template-columns:1fr;gap:2.5rem}
@media(min-width:900px){.rp-offer-grid{grid-template-columns:1.05fr .95fr;gap:3.5rem;align-items:start}}
.rp-offer-step{display:grid;grid-template-columns:auto 1fr;column-gap:1.25rem;padding-block:1.5rem;border-top:1px solid var(--rp-line)}
.rp-offer-step:first-child{border-top:0;padding-top:0}
.rp-offer-no{font-family:var(--rp-serif);font-weight:200;font-size:2rem;line-height:1;color:var(--rp-blue-bright);letter-spacing:-.02em}
.rp-offer-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}
.rp-offer-head h3{font-family:var(--rp-serif);font-weight:600;font-size:1.25rem;margin:0;color:var(--rp-ink)}
.rp-offer-price{font-family:var(--rp-cond);font-weight:600;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--rp-ink-3);white-space:nowrap}
.rp-ticks{list-style:none;margin:.9rem 0 0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.rp-ticks li{position:relative;padding-left:1.1rem;font-size:var(--rp-small);line-height:1.5;color:var(--rp-ink-2)}
.rp-ticks li::before{content:"";position:absolute;left:0;top:.55em;width:.4rem;height:.4rem;border-radius:50%;background:var(--rp-tangelo)}
.rp-table-scroll{margin-top:1.6rem;overflow-x:auto;border:1px solid var(--rp-line);border-radius:var(--rp-r-card);background:var(--rp-surface)}
.rp-table{width:100%;border-collapse:collapse;font-size:var(--rp-small)}
.rp-table th,.rp-table td{padding:.65rem .9rem;text-align:right;border-bottom:1px solid var(--rp-line);white-space:nowrap}
.rp-table thead th{font-family:var(--rp-mono);font-size:var(--rp-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--rp-ink-3);background:var(--rp-surface-2)}
.rp-table th[scope=row],.rp-table thead th:first-child{text-align:left}
.rp-table th[scope=row]{font-weight:600;color:var(--rp-ink)}
.rp-table td{font-family:var(--rp-mono);color:var(--rp-ink-2)}
.rp-table tbody tr:last-child th,.rp-table tbody tr:last-child td{border-bottom:0}
.rp-table tr.rp-table-total th,.rp-table tr.rp-table-total td{border-top:2px solid var(--rp-line-2);font-weight:600;color:var(--rp-ink)}
.rp-price-card{background:var(--rp-surface);border:1px solid var(--rp-line);border-radius:18px;padding:2rem 1.85rem;box-shadow:0 26px 56px -28px rgba(11,29,58,.42),0 10px 22px -14px rgba(11,29,58,.22)}
@media(min-width:900px){.rp-price-card{position:sticky;top:6rem}}
.rp-price-title{font-family:var(--rp-serif);font-weight:400;font-size:1.65rem;line-height:1.1;color:var(--rp-ink);margin:.7rem 0 .4rem;letter-spacing:-.015em}
.rp-price-note{color:var(--rp-ink-2);font-size:var(--rp-small);line-height:1.55;margin:0}
.rp-price-figure{display:flex;align-items:baseline;gap:.5rem;margin-top:1.25rem;padding-block:1.1rem;border-block:1px solid var(--rp-line)}
.rp-price-from{font-family:var(--rp-mono);font-size:var(--rp-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--rp-ink-3)}
.rp-price-num{font-family:var(--rp-serif);font-weight:300;font-size:2.6rem;line-height:1;color:var(--rp-blue-bright);letter-spacing:-.02em}
.rp-price-unit{font-size:var(--rp-small);color:var(--rp-ink-3)}
.rp-price-card .rp-ticks{margin-top:1.25rem}
/* Two rates shown plainly, equal weight (both GS bands, no hidden step-up). */
.rp-price-rates{margin-top:1.25rem;border-block:1px solid var(--rp-line)}
.rp-price-rate{display:flex;align-items:baseline;gap:.5rem;padding-block:.9rem}
.rp-price-rate + .rp-price-rate{border-top:1px solid var(--rp-line)}
.rp-price-rate-num{font-family:var(--rp-serif);font-weight:300;font-size:2rem;line-height:1;color:var(--rp-blue-bright);letter-spacing:-.02em}
.rp-price-rate-unit{font-size:var(--rp-small);color:var(--rp-ink-3)}
.rp-price-rate-who{margin-left:auto;text-align:right;font-size:var(--rp-small);color:var(--rp-ink-2);max-width:18ch;line-height:1.35}
.rp-price-cta{margin-top:1.5rem;display:flex;flex-direction:column;gap:.65rem}
.rp-price-cta .rp-btn{width:100%}
.rp-price-foot{margin-top:1rem;font-family:var(--rp-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rp-ink-3);text-align:center}

/* Offer tiers — the three ways to work, as a calm 3-up of cards. The intake
   is no longer crammed in beside them; it gets its own reserve band below. */
.rp-offer-tiers{display:grid;grid-template-columns:1fr;gap:1.25rem;margin-top:2.5rem}
@media(min-width:760px){.rp-offer-tiers{grid-template-columns:repeat(3,1fr);gap:1.5rem}}
.rp-tier{background:var(--rp-surface);border:1px solid var(--rp-line);border-radius:14px;padding:1.6rem 1.5rem;display:flex;flex-direction:column;box-shadow:var(--rp-sh-md)}
.rp-tier-top{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}
.rp-tier-no{font-family:var(--rp-serif);font-weight:200;font-size:2.2rem;line-height:1;color:var(--rp-blue-bright);letter-spacing:-.02em}
.rp-tier-price{font-family:var(--rp-cond);font-weight:600;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--rp-ink-3);text-align:right}
.rp-tier-title{font-family:var(--rp-serif);font-weight:600;font-size:1.2rem;margin:.7rem 0 0;color:var(--rp-ink)}
.rp-tier .rp-ticks{margin-top:.85rem}
.rp-tier p{font-size:var(--rp-small);color:var(--rp-ink-2);line-height:1.5;margin:.4rem 0 0}
/* Two side-by-side rate cards (Pricing "What it costs"). */
.rp-rate-cards{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:.5rem}
@media(min-width:520px){.rp-rate-cards{grid-template-columns:1fr 1fr}}

/* Reserve band — the intake gets room to breathe: a centered intro over a
   wide, calm form card on the paper surface. Not squished, not pinned. */
#order{scroll-margin-top:5.5rem}
.rp-reserve{max-width:880px;margin-inline:auto}
.rp-reserve-head{text-align:center;max-width:640px;margin:0 auto 2.75rem}
.rp-reserve-head .rp-kick{display:flex;align-items:center;justify-content:center;gap:.5rem}
.rp-reserve-head .rp-h2{margin:.9rem 0 0}
.rp-reserve-head .rp-lead{margin:1rem auto 0;max-width:54ch}
.rp-reserve-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.25rem 2.25rem;margin-top:1.85rem;padding-top:1.85rem;border-top:1px solid var(--rp-line)}
.rp-reserve-stamp{display:flex;align-items:baseline;gap:.4rem}
.rp-reserve-stamp .from{font-family:var(--rp-mono);font-size:var(--rp-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--rp-ink-3)}
.rp-reserve-stamp .num{font-family:var(--rp-serif);font-weight:300;font-size:2.4rem;line-height:1;color:var(--rp-blue-bright);letter-spacing:-.02em}
.rp-reserve-stamp .unit{font-size:var(--rp-small);color:var(--rp-ink-3)}
.rp-reserve-assurances{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.32rem;text-align:left}
.rp-reserve-assurances li{position:relative;padding-left:1.1rem;font-size:var(--rp-small);color:var(--rp-ink-2);line-height:1.45}
.rp-reserve-assurances li::before{content:"";position:absolute;left:0;top:.5em;width:.4rem;height:.4rem;border-radius:50%;background:var(--rp-tangelo)}
.rp-reserve-help{text-align:center;margin-top:1.35rem;font-size:var(--rp-small);color:var(--rp-ink-2)}
.rp-reserve-help a{color:var(--rp-mahogany);font-weight:600}
.rp-reserve-form{max-width:760px;margin-inline:auto}

/* ---- four moves ---- */
.rp-moves{display:grid;grid-template-columns:1fr;gap:1.5rem 2rem}
@media(min-width:600px){.rp-moves{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.rp-moves{grid-template-columns:repeat(4,1fr)}}
.rp-move{border-top:2px solid var(--rp-line-2);padding-top:1.1rem}
.rp-move-no{font-family:var(--rp-serif);font-weight:200;font-size:2rem;line-height:1;color:var(--rp-blue-bright)}
.rp-move h3{font-family:var(--rp-serif);font-weight:600;font-size:1.15rem;margin:.6rem 0 0;color:var(--rp-ink)}
.rp-move p{font-size:var(--rp-small);line-height:1.55;color:var(--rp-ink-2);margin:.5rem 0 0}

/* ---- testimonials ---- */
.rp-words-top{margin:0 0 3rem}
@media(min-width:1000px){.rp-words-top{display:grid;grid-template-columns:minmax(300px,360px) 1fr;gap:clamp(2.5rem,4vw,4.5rem);align-items:start}}
.rp-words-lead{position:sticky;top:6rem}
@media(max-width:999px){.rp-words-lead{position:static}}
.rp-quote-lead{margin:0;max-width:46ch}
/* Featured testimonial: lead with the outcome as serif display (the proof),
   demote the quote to supporting prose. Tangelo hairline divides the two. */
.rp-quote-stat{font-family:var(--rp-serif);font-weight:300;font-size:clamp(2.1rem,3.4vw,3rem);line-height:1.04;letter-spacing:-.024em;color:var(--rp-ink);margin:0;text-wrap:balance}
.rp-quote-stat::after{content:"";display:block;width:2.75rem;height:2px;border-radius:2px;background:var(--rp-tangelo);margin:1.5rem 0 0}
.rp-quote-body{font-family:var(--rp-serif);font-weight:300;font-size:clamp(1.08rem,1.2vw,1.28rem);line-height:1.62;letter-spacing:-.006em;color:var(--rp-ink-2);margin:1.5rem 0 0}
.rp-quote-cite{font-family:var(--rp-mono);font-size:var(--rp-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--rp-ink-3);margin-top:1.75rem}

/* Volume / success stat stack: serif display value over a mono label, each on a
   hairline rule. Carries the "people, places, scale" message the photos imply. */
.rp-words-stats{margin:2.25rem 0 0;border-top:1px solid var(--rp-line);display:flex;flex-direction:column}
.rp-words-stat{padding:1rem 0;border-bottom:1px solid var(--rp-line);display:flex;align-items:baseline;gap:1rem}
.rp-words-stat dt{font-family:var(--rp-serif);font-weight:300;font-size:clamp(1.6rem,2.4vw,2rem);line-height:1;letter-spacing:-.02em;color:var(--rp-tangelo);flex:0 0 5.5rem}
.rp-words-stat dd{margin:0;font-family:var(--rp-mono);font-size:var(--rp-xs);letter-spacing:.04em;text-transform:uppercase;line-height:1.5;color:var(--rp-ink-3)}

/* Cohort mosaic: a hand-tiled asymmetric wall of real class photos that conveys
   the volume of people, the spread of places, and the success on every face.
   Three 2x2 anchors (a, f, plus the bleed) set the rhythm; the rest are wide
   2x1 tiles. Tiles fill perfectly so the wall reads as composed, not scattered.
   It bleeds off the right edge inside .rp-wrap--bleed. */
.rp-collage{margin:2rem 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}
.rp-collage-item{position:relative;margin:0;aspect-ratio:4/3;border-radius:var(--rp-r-card);overflow:hidden;box-shadow:var(--rp-sh-sm);background:var(--rp-surface-2)}
.rp-collage-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--rp-e)}
.rp-collage-item:hover img{transform:scale(1.05)}
/* Place chip: legible over photos via a navy scrim, hidden until the eye lands. */
.rp-collage-loc{position:absolute;left:0;right:0;bottom:0;margin:0;padding:1.6rem .85rem .7rem;font-family:var(--rp-mono);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:#fff;
  background:linear-gradient(to top,rgba(16,36,58,.78),rgba(16,36,58,0));
  opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s var(--rp-e)}
.rp-collage-loc::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--rp-tangelo-400);margin-right:.5em;vertical-align:middle}
.rp-collage-item:hover .rp-collage-loc,.rp-collage-item:focus-within .rp-collage-loc{opacity:1;transform:none}
@media(min-width:760px){
  .rp-collage{grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(4,1fr);gap:.7rem;
    aspect-ratio:6/4;
    grid-template-areas:"a a b b c c" "a a b b d d" "e e f f g g" "h h f f i i"}
  .rp-collage-item{aspect-ratio:auto;height:100%}
  .rp-collage-item--a{grid-area:a}.rp-collage-item--b{grid-area:b}.rp-collage-item--c{grid-area:c}
  .rp-collage-item--d{grid-area:d}.rp-collage-item--e{grid-area:e}.rp-collage-item--f{grid-area:f}
  .rp-collage-item--g{grid-area:g}.rp-collage-item--h{grid-area:h}.rp-collage-item--i{grid-area:i}
}
@media(min-width:1000px){.rp-collage{margin:0}}
.rp-quote-outcome{font-family:var(--rp-serif);font-weight:500;font-size:1.05rem;color:var(--rp-tangelo);margin:0 0 .6rem}
.rp-quote-lead blockquote{font-family:var(--rp-serif);font-weight:300;font-size:clamp(1.25rem,2.2vw,1.6rem);line-height:1.4;letter-spacing:-.01em;color:var(--rp-ink);margin:0}
.rp-quote-lead figcaption,.rp-quote figcaption{font-family:var(--rp-mono);font-size:var(--rp-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--rp-ink-3);margin-top:1rem}
.rp-quotes{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media(min-width:760px){.rp-quotes{grid-template-columns:repeat(3,1fr)}}
.rp-quote{background:var(--rp-surface);border:1px solid var(--rp-line);border-radius:var(--rp-r-card);padding:1.5rem;box-shadow:var(--rp-sh-sm);margin:0}
.rp-quote blockquote{font-size:var(--rp-small);line-height:1.6;color:var(--rp-ink-2);margin:0}
.rp-quote .rp-quote-outcome{font-size:.95rem}

/* ---- book band ---- */
.rp-book{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center;padding-block:clamp(3.5rem,7vw,5.5rem)}
@media(min-width:820px){.rp-book{grid-template-columns:1.2fr .8fr}}
.rp-book-copy .rp-h2{margin:.7rem 0 0}
.rp-book-copy .rp-lead{margin-top:1.1rem;max-width:48ch}
.rp-book-shot{justify-self:center;margin:0;width:15rem;max-width:100%}
.rp-book-shot img{display:block;width:100%;height:auto;border-radius:4px;filter:drop-shadow(0 30px 50px rgba(0,0,0,.5))}

/* ---- book shelf (featured titles, ahead of the samples) ----
   Mirrors the React Bookshelf: a faint blue-wash ground, product cards with a
   serif title, mono category stamp, and a "from" price. Hover lifts the cover. */
.rp-shelf-sec{background:var(--rp-blue-50);padding-block:clamp(3.5rem,7vw,6rem);border-bottom:1px solid var(--rp-line)}
.rp-shelf-grid{display:grid;grid-template-columns:1fr;gap:1.75rem}
@media(min-width:560px){.rp-shelf-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.rp-shelf-grid{grid-template-columns:repeat(4,1fr)}}
.rp-shelf-card{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.rp-shelf-frame{background:var(--rp-surface);border:1px solid var(--rp-line-2);border-radius:14px;padding:.5rem;box-shadow:var(--rp-sh-sm);display:flex;align-items:center;justify-content:center;aspect-ratio:3/4;overflow:hidden}
.rp-shelf-cover{width:100%;height:100%;object-fit:cover;border-radius:9px;filter:drop-shadow(0 14px 26px rgba(11,29,58,.22));transition:transform .2s var(--rp-e)}
.rp-shelf-card:hover .rp-shelf-cover{transform:translateY(-4px)}
.rp-shelf-tag{font-family:var(--rp-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rp-blue-bright);margin-top:1.1rem}
.rp-shelf-title{font-family:var(--rp-serif);font-weight:500;font-size:1.12rem;line-height:1.2;letter-spacing:-.01em;color:var(--rp-ink);margin:.5rem 0 0}
.rp-shelf-blurb{font-size:.84rem;line-height:1.5;color:var(--rp-ink-2);margin:.5rem 0 0;flex:1}
.rp-shelf-price{font-family:var(--rp-serif);font-weight:300;font-size:1.2rem;color:var(--rp-ink);margin-top:.9rem}
.rp-shelf-from{font-family:var(--rp-mono);font-size:.625rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rp-ink-3);margin-right:.4rem}

/* ---- mobile reserve bar (form one tap away once the rail scrolls off) ---- */
.rp-reserve-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1.15rem calc(.75rem + env(safe-area-inset-bottom));background:var(--rp-tangelo);color:#fff;text-decoration:none;box-shadow:0 -8px 24px -12px rgba(11,29,58,.5)}
@media(max-width:980px){.rp-reserve-bar{display:flex}}
.rp-reserve-bar-copy{display:flex;flex-direction:column;line-height:1.2}
.rp-reserve-bar-lead{font-family:var(--rp-sans);font-weight:600;font-size:.95rem}
.rp-reserve-bar-sub{font-family:var(--rp-mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;opacity:.85}
.rp-reserve-bar-arrow{font-family:var(--rp-sans);font-weight:700;font-size:1.15rem}

/* ---- section rhythm: hairline dividers between grounds ---- */
.rp-section--surface,.rp-section--paper{border-bottom:1px solid var(--rp-line)}

/* When the page closes on a full-bleed navy CTA, the theme's main
   bottom-padding + footer top-margin let the cream body background
   show as a stray stripe before the (also navy) footer. Collapse it
   so the CTA meets the footer seamlessly. Scoped via :has() to pages
   that actually end on the CTA. */
body:has(.rp-cta) main{padding-bottom:0}
body:has(.rp-cta) footer.wp-block-template-part{margin-top:0}

/* ---- prose block ---- */
.rp-prose{max-width:56ch}
.rp-prose .rp-h2{margin:.7rem 0 0}
.rp-prose .rp-lead{margin-top:1.1rem}
.rp-prose .rp-lead+.rp-lead{margin-top:1rem}

/* ---- FAQ ---- */
.rp-faq{max-width:50rem}
.rp-faq-list{border-top:1px solid var(--rp-line)}
.rp-faq-item{border-bottom:1px solid var(--rp-line)}
.rp-faq-item summary{list-style:none;cursor:pointer;padding:1.15rem 2rem 1.15rem 0;position:relative;font-family:var(--rp-serif);font-weight:400;font-size:1.15rem;color:var(--rp-ink)}
.rp-faq-item summary::-webkit-details-marker{display:none}
.rp-faq-item summary::after{content:"+";position:absolute;right:.2rem;top:1rem;font-family:var(--rp-sans);font-weight:400;font-size:1.4rem;color:var(--rp-blue-bright);transition:transform .18s var(--rp-e)}
.rp-faq-item[open] summary::after{content:"–"}
.rp-faq-item p{margin:0 0 1.2rem;font-size:var(--rp-small);line-height:1.62;color:var(--rp-ink-2);max-width:62ch}

.rp-dark .rp-book-copy .rp-lead{color:var(--rp-d-fg-2)}
.rp-dark .rp-book-copy .rp-h2{color:#fff}

/* ---- embedded order form (Gravity Form #7) ----
   A focused, single-column booking layout: the intro reads as a
   header above a wide form card, so the fields get real width
   instead of being squeezed into a column beside a sidebar. */
.rp-order{max-width:880px;margin-inline:auto}
.rp-order-intro{margin-bottom:2.25rem}
.rp-order-intro .rp-h2{margin:0}
.rp-order-intro .rp-lead{margin-top:1.1rem;max-width:60ch}
/* the three facts read as a horizontal row under the heading */
.rp-order-ticks{margin-top:1.4rem;flex-direction:row;flex-wrap:wrap;gap:.55rem 1.6rem}
.rp-order-ticks li{margin:0}
.rp-order-help{margin-top:1.2rem;font-size:var(--rp-small);color:var(--rp-ink-2)}
.rp-order-help a{color:var(--rp-mahogany);font-weight:600}
.rp-order-form{background:var(--rp-surface);border:1px solid var(--rp-line);border-radius:18px;padding:clamp(1.5rem,3.5vw,2.75rem);box-shadow:var(--rp-sh-md)}

/* ---- self-contained multi-step consultation form ---- */
/* progress rail: a thin track that fills as the visitor advances, plus a step label */
.rp-mstep-head{margin:0 0 1.6rem}
.rp-mstep-meta{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.7rem}
.rp-mstep-count{font-family:var(--rp-mono);font-size:var(--rp-xs);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--rp-ink-3)}
.rp-mstep-count b{color:var(--rp-blue-bright)}
.rp-mstep-name{font-family:var(--rp-cond);font-weight:600;font-size:.92rem;letter-spacing:.02em;color:var(--rp-ink)}
.rp-mstep-track{height:4px;border-radius:999px;background:var(--rp-blue-50);overflow:hidden}
.rp-mstep-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--rp-blue-bright),var(--rp-blue-bright-2));width:20%;transition:width .42s var(--rp-e)}

/* compact step pills (also reused by the legacy fallback ol.rp-form-steps) */
.rp-form-steps{list-style:none;margin:0 0 1.6rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem .5rem}
.rp-form-steps li{display:flex;align-items:center;gap:.45rem;font-family:var(--rp-cond);font-weight:600;font-size:.72rem;letter-spacing:.03em;text-transform:uppercase;color:var(--rp-ink-3);padding:.32em .68em;border-radius:999px;border:1px solid var(--rp-line);background:var(--rp-surface);transition:color .16s,border-color .16s,background .16s}
.rp-form-steps li span{display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border-radius:50%;background:var(--rp-bg);color:var(--rp-ink-3);font-size:.68rem}
.rp-form-steps li.is-current{color:var(--rp-blue-800);border-color:var(--rp-blue-200);background:var(--rp-blue-50)}
.rp-form-steps li.is-current span{background:var(--rp-blue-bright);color:#fff}
.rp-form-steps li.is-done{color:var(--rp-ink-2);border-color:var(--rp-blue-100)}
.rp-form-steps li.is-done span{background:var(--rp-blue-bright);color:#fff}
.rp-form-steps li.is-clickable{cursor:pointer}

/* panels — one shown at a time */
.rp-mform-panel{display:none;animation:rp-mform-in .34s var(--rp-e) both}
.rp-mform-panel.is-active{display:block}
@keyframes rp-mform-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.rp-mform-panel-head{margin:0 0 1.25rem}
.rp-mform-panel-head h3{font-family:var(--rp-serif);font-weight:400;font-size:1.45rem;line-height:1.12;letter-spacing:-.01em;color:var(--rp-ink);margin:0}
.rp-mform-panel-head p{font-size:var(--rp-small);line-height:1.55;color:var(--rp-ink-2);margin:.5rem 0 0}

/* fields */
.rp-fields{display:flex;flex-direction:column;gap:1.1rem}
.rp-grid-2{display:grid;grid-template-columns:1fr;gap:1.1rem}
@media(min-width:560px){.rp-grid-2{grid-template-columns:1fr 1fr}}
.rp-field{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.rp-field>label,.rp-fieldset-label{font-family:var(--rp-sans);font-weight:600;font-size:var(--rp-small);color:var(--rp-ink)}
.rp-field .req{color:var(--rp-tangelo);margin-left:.15em}
.rp-field .hint{font-size:var(--rp-xs);color:var(--rp-ink-3);line-height:1.45;font-weight:400}
.rp-input,.rp-select,.rp-textarea{width:100%;font-family:var(--rp-sans);font-size:.95rem;color:var(--rp-ink);background:var(--rp-surface);border:1px solid var(--rp-line-2);border-radius:var(--rp-r-btn);padding:.7em .85em;line-height:1.4;transition:border-color .16s,box-shadow .16s}
.rp-textarea{min-height:6.5em;resize:vertical}
.rp-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23727A82' stroke-width='1.4'%3E%3Cpath d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85em center;background-size:.85em;padding-right:2.2em}
.rp-input::placeholder,.rp-textarea::placeholder{color:var(--rp-ink-3)}
.rp-input:focus,.rp-select:focus,.rp-textarea:focus{outline:none;border-color:var(--rp-blue-bright);box-shadow:0 0 0 3px var(--rp-blue-50)}
.rp-field.has-error .rp-input,.rp-field.has-error .rp-select,.rp-field.has-error .rp-textarea,.rp-field.has-error .rp-choice-grid{border-color:var(--rp-tangelo);box-shadow:0 0 0 3px var(--rp-tangelo-50)}
.rp-field-error{font-size:var(--rp-xs);color:var(--rp-mahogany);font-weight:600;display:none}
.rp-field.has-error .rp-field-error{display:block}

/* choice cards (radio / checkbox) */
.rp-choice-grid{display:grid;grid-template-columns:1fr;gap:.6rem}
.rp-choice{position:relative;display:flex;gap:.7rem;align-items:flex-start;padding:.85em .95em;border:1px solid var(--rp-line-2);border-radius:var(--rp-r-btn);background:var(--rp-surface);cursor:pointer;transition:border-color .16s,box-shadow .16s,background .16s}
.rp-choice:hover{border-color:var(--rp-blue-200)}
.rp-choice input{position:absolute;opacity:0;inset:0;cursor:pointer}
.rp-choice-mark{flex:none;width:1.2rem;height:1.2rem;margin-top:.1rem;border:1.5px solid var(--rp-line-2);border-radius:50%;display:grid;place-items:center;transition:border-color .16s,background .16s}
.rp-choice input[type=checkbox]+.rp-choice-mark{border-radius:5px}
.rp-choice-mark::after{content:"";width:.55rem;height:.55rem;border-radius:50%;background:#fff;transform:scale(0);transition:transform .16s var(--rp-e)}
.rp-choice input[type=checkbox]+.rp-choice-mark::after{border-radius:2px;width:.6rem;height:.6rem}
.rp-choice-body{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.rp-choice-body strong{font-family:var(--rp-sans);font-weight:600;font-size:.92rem;color:var(--rp-ink)}
.rp-choice-body span{font-size:var(--rp-xs);color:var(--rp-ink-3);line-height:1.45}
.rp-choice:has(input:checked){border-color:var(--rp-blue-bright);background:var(--rp-blue-50);box-shadow:0 0 0 1px var(--rp-blue-bright)}
.rp-choice:has(input:checked) .rp-choice-mark{border-color:var(--rp-blue-bright);background:var(--rp-blue-bright)}
.rp-choice:has(input:checked) .rp-choice-mark::after{transform:scale(1)}
.rp-choice:focus-within{box-shadow:0 0 0 3px var(--rp-blue-50)}

/* file upload (dropzone) */
.rp-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;padding:1.6rem 1rem;border:1.5px dashed var(--rp-line-2);border-radius:var(--rp-r-card);background:var(--rp-surface-2);color:var(--rp-ink-2);cursor:pointer;transition:border-color .16s,background .16s}
.rp-drop:hover,.rp-drop.is-drag{border-color:var(--rp-blue-bright);background:var(--rp-blue-50)}
.rp-drop input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.rp-drop-ico{width:1.6rem;height:1.6rem;color:var(--rp-blue-bright)}
.rp-drop-title{font-family:var(--rp-sans);font-weight:600;font-size:.92rem;color:var(--rp-ink)}
.rp-drop-title b{color:var(--rp-mahogany)}
.rp-drop-sub{font-size:var(--rp-xs);color:var(--rp-ink-3)}
.rp-drop.has-file{border-style:solid;border-color:var(--rp-blue-bright);background:var(--rp-blue-50)}
.rp-drop.has-file .rp-drop-title{color:var(--rp-blue-800)}

/* review (final step) */
.rp-review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.rp-review-list li{display:flex;justify-content:space-between;gap:1.5rem;padding:.7rem 0;border-bottom:1px solid var(--rp-line);font-size:var(--rp-small)}
.rp-review-list dt,.rp-review-list .k{color:var(--rp-ink-3);flex:none}
.rp-review-list .v{color:var(--rp-ink);text-align:right;font-weight:500;word-break:break-word}
.rp-review-pay{margin-top:1.25rem;padding:1.1rem 1.15rem;border-radius:var(--rp-r-card);background:var(--rp-blue-50);border:1px solid var(--rp-blue-100);display:flex;align-items:center;gap:1rem}
.rp-review-pay .rp-review-pay-fig{font-family:var(--rp-serif);font-weight:300;font-size:1.9rem;line-height:1;color:var(--rp-blue-800);letter-spacing:-.02em}
.rp-review-pay p{margin:0;font-size:var(--rp-xs);line-height:1.5;color:var(--rp-ink-2)}
.rp-pay-choice{margin-top:1rem;display:flex;flex-direction:column;gap:.6rem}
.rp-pay-opt{display:flex;align-items:flex-start;gap:.65rem;padding:.85rem 1rem;border:1px solid var(--rp-line,#d9d8d1);border-radius:var(--rp-r-card);cursor:pointer;transition:border-color .15s ease,background .15s ease}
.rp-pay-opt:hover{border-color:var(--rp-blue-300,#9db4e0)}
.rp-pay-opt:has(input:checked){border-color:var(--rp-blue-600,#2f62c4);background:var(--rp-blue-50)}
.rp-pay-opt input{margin-top:.2rem;flex:none;accent-color:var(--rp-blue-600,#2f62c4)}
.rp-pay-opt-body{font-size:var(--rp-xs);line-height:1.5;color:var(--rp-ink-2)}
.rp-pay-opt-body b{color:var(--rp-ink-1,#16243a);font-weight:600}

/* footer nav */
.rp-mform-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid var(--rp-line)}
.rp-mform-foot .rp-btn-back{visibility:hidden}
.rp-mform-foot.has-back .rp-btn-back{visibility:visible}
.rp-btn-back{background:none;border:none;font-family:var(--rp-sans);font-weight:600;font-size:var(--rp-small);color:var(--rp-ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:.4em;padding:.4em .2em}
.rp-btn-back:hover{color:var(--rp-ink)}
.rp-mform-foot .rp-btn[aria-busy=true]{opacity:.7;pointer-events:none}

/* success + error states */
.rp-mform-done{text-align:center;padding:1rem 0 .5rem;animation:rp-mform-in .4s var(--rp-e) both}
.rp-mform-done .rp-done-ico{width:3rem;height:3rem;margin:0 auto 1rem;border-radius:50%;background:var(--rp-blue-bright);color:#fff;display:grid;place-items:center}
.rp-mform-done h3{font-family:var(--rp-serif);font-weight:400;font-size:1.6rem;color:var(--rp-ink);margin:0 0 .6rem}
.rp-mform-done p{font-size:var(--rp-small);line-height:1.6;color:var(--rp-ink-2);margin:0 auto;max-width:42ch}
.rp-mform-alert{display:none;margin-bottom:1.25rem;padding:.8em 1em;border-radius:var(--rp-r-btn);background:var(--rp-tangelo-50);border:1px solid var(--rp-tangelo-100);color:var(--rp-mahogany);font-size:var(--rp-small);line-height:1.5}
.rp-mform-alert.is-shown{display:block}
.rp-form-note{font-size:var(--rp-xs);line-height:1.55;color:var(--rp-ink-3);margin:1.1rem 0 0;text-align:center}

/* legacy fallback (kept for the GF-active path's pre-render flash) */
.rp-form-fields{display:flex;flex-direction:column;gap:1.1rem;margin-bottom:1.75rem}
.rp-form-line{display:block;height:2.9rem;border-radius:var(--rp-r-btn);background:var(--rp-bg);border:1px solid var(--rp-line)}

/* ============================================================
   Gravity Forms skin. GF 2.9 ships the Orbital theme, whose
   framework is driven entirely by --gf-* custom properties. We
   remap those to RP tokens so form #7 reads as part of the page,
   then add targeted rules for the parts GF leaves un-tokenised
   (the step nav, its system notices, section headers).
   ============================================================ */

/* 1. Remap the theme framework to RP tokens ------------------ */
.rp-order-form .gform-theme--framework{
	/* accent: active step, focus ring, links = brand signal blue */
	--gf-color-primary:var(--rp-blue-bright);
	--gf-color-primary-rgb:47,98,196;
	--gf-color-primary-contrast:#fff;
	--gf-color-primary-darker:var(--rp-blue-800);
	--gf-color-primary-lighter:var(--rp-blue-200);

	/* inputs / controls */
	--gf-ctrl-bg-color:var(--rp-surface);
	--gf-ctrl-color:var(--rp-ink);
	--gf-ctrl-border-color:var(--rp-line-2);
	--gf-ctrl-border-color-hover:var(--rp-ink-3);
	--gf-ctrl-border-color-focus:var(--rp-blue-bright);
	--gf-ctrl-border-width:1px;
	--gf-ctrl-radius:var(--rp-r-btn);
	--gf-ctrl-padding-x:0.85rem;
	--gf-ctrl-padding-y:0.72rem;
	--gf-ctrl-font-family:var(--rp-sans);
	--gf-ctrl-font-size:1rem;
	--gf-ctrl-desc-color:var(--rp-ink-3);

	/* labels + sub-labels (First / Last) */
	--gf-ctrl-label-color-primary:var(--rp-ink);
	--gf-ctrl-label-font-family-primary:var(--rp-sans);
	--gf-ctrl-label-font-weight-primary:600;
	--gf-ctrl-label-font-size-primary:var(--rp-small);
	--gf-ctrl-label-color-secondary:var(--rp-ink-3);
	--gf-ctrl-label-font-size-secondary:var(--rp-xs);
	--gf-ctrl-label-color-req:var(--rp-tangelo);

	/* buttons: primary = tangelo CTA, secondary = quiet Previous */
	--gf-ctrl-btn-font-family:var(--rp-sans);
	--gf-ctrl-btn-font-weight:600;
	--gf-ctrl-btn-radius:var(--rp-r-btn);
	--gf-ctrl-btn-padding-x:1.4rem;
	--gf-ctrl-btn-padding-y:0.82rem;
	--gf-ctrl-btn-bg-color-primary:var(--rp-tangelo);
	--gf-ctrl-btn-bg-color-hover-primary:var(--rp-tangelo-600);
	--gf-ctrl-btn-bg-color-focus-primary:var(--rp-tangelo-600);
	--gf-ctrl-btn-border-color-primary:transparent;
	--gf-ctrl-btn-border-color-hover-primary:transparent;
	--gf-ctrl-btn-bg-color-secondary:var(--rp-surface);
	--gf-ctrl-btn-bg-color-hover-secondary:var(--rp-bg);
	--gf-ctrl-btn-border-color-secondary:var(--rp-line-2);
	--gf-ctrl-btn-border-color-hover-secondary:var(--rp-ink-3);
}

/* 2. Tame GF's system notices in the heading ----------------- */
.rp-order-form .gform_heading{margin:0 0 1.5rem}
.rp-order-form .gform_required_legend{
	font-family:var(--rp-mono);font-size:var(--rp-xs);letter-spacing:.04em;
	color:var(--rp-ink-3);margin:0
}
/* the partial-entries "saved on our server" notice duplicates the
   left intro's "Your information is saved as you go" — drop it */
.rp-order-form .partial_entry_warning{display:none}

/* 3. Multi-page step nav: a clean numbered stepper ----------- */
.rp-order-form .gf_page_steps{
	display:flex;flex-wrap:wrap;align-items:center;gap:.55rem 1.1rem;
	margin:0 0 1.75rem;padding:0 0 1.4rem;border:0;
	border-bottom:1px solid var(--rp-line)
}
.rp-order-form .gf_step{
	display:flex;align-items:center;gap:.5rem;margin:0;padding:0;height:auto;
	font-family:var(--rp-cond);font-weight:600;font-size:.74rem;line-height:1;
	letter-spacing:.04em;text-transform:uppercase;color:var(--rp-ink-3);opacity:1
}
.rp-order-form .gf_step_number{
	display:inline-flex;align-items:center;justify-content:center;flex:none;
	width:1.55rem;height:1.55rem;border-radius:50%;
	background:var(--rp-bg);color:var(--rp-ink-3);border:1px solid var(--rp-line);
	font-family:var(--rp-mono);font-size:.72rem;font-weight:600;line-height:1
}
.rp-order-form .gf_step_label{padding:0;color:inherit}
.rp-order-form .gf_step_active{color:var(--rp-blue-800)}
.rp-order-form .gf_step_active .gf_step_number,
.rp-order-form .gf_step_completed .gf_step_number{
	background:var(--rp-blue-bright);color:#fff;border-color:var(--rp-blue-bright)
}

/* 4. Section header ("About You" etc.) ----------------------- */
/* gsection is a full-width grid item; let the grid gap (below) own
   the spacing beneath it so it doesn't stack into a big void */
.rp-order-form .gsection{
	border-bottom:1px solid var(--rp-line);margin:0;padding:0 0 .6rem
}
.rp-order-form .gsection_title{
	font-family:var(--rp-serif);font-weight:400;font-size:1.4rem;
	letter-spacing:-.01em;color:var(--rp-ink);margin:0
}
/* form #7 ends on an untitled separator section; GF prints its admin
   default ("Section Break") as a heading. Drop that stray block. */
.rp-order-form #field_7_35{border:0;padding:0;margin:0}
.rp-order-form #field_7_35 .gsection_title{display:none}
/* Several pages end on a title-less "Section Break" that draws its own
   hairline + reserves a grid row directly above the footer, which also
   has a top rule. That stacked the buttons under two dividers and a big
   gap. A trailing section in the grid is always one of these separators
   (real section headers lead their page), so collapse it entirely. */
.rp-order-form .gform_fields > .gsection:last-child{display:none}

/* 5. Field rhythm + page footer buttons ---------------------- */
/* GF lays fields in a grid; its default 40px row-gap is too airy.
   Tighten the row rhythm (keep the 16px column gap for 2-up rows). */
.rp-order-form .gform_fields{row-gap:1.45rem}
/* One full-width column. GF's grid puts some fields side by side via
   width-half (Job Announcement next to Upload Resume, the second
   upload, the checkbox pairs). The client asked for a single stacked
   column, so collapse the grid and span every field full width. */
.rp-order-form .gform_wrapper .gform_fields{
	display:grid;grid-template-columns:1fr;column-gap:0
}
.rp-order-form .gform_wrapper .gform_fields > .gfield{grid-column:1 / -1}
.rp-order-form .gform_wrapper textarea{min-height:8.5rem}
.rp-order-form .gform_page_footer{
	display:flex;align-items:center;gap:1rem;
	margin-top:1.4rem;padding-top:1.25rem;border-top:1px solid var(--rp-line)
}
.rp-order-form .gform_page_footer .gform_previous_button{margin:0}
.rp-order-form .gform_page_footer .gform_next_button,
.rp-order-form .gform_page_footer .gform_button{margin:0 0 0 auto}
/* keep the focus ring on-brand even where orbital hard-codes it */
.rp-order-form .gform_wrapper :is(input,select,textarea):focus{
	outline:none;box-shadow:0 0 0 3px var(--rp-blue-50)
}

/* 6. Controls: warm inset wells in the page's own sans ----------
   Orbital leaves the inputs as stark white-on-white in its default
   font, which reads "unstyled" against the paper card. Give them a
   warm fill that separates from the card, the RP sans, full width
   (GF hands "How did you hear" a tiny size), and a calm focus lift.
   The .gform-theme--framework prefix lifts specificity over orbital. */
.rp-order-form .gform-theme--framework :is(
	input[type="text"],input[type="email"],input[type="tel"],input[type="url"],
	input[type="number"],input[type="password"],input[type="search"],select,textarea
){
	width:100%;box-sizing:border-box;
	background:var(--rp-bg);border:1px solid var(--rp-line-2);border-radius:var(--rp-r-btn);
	color:var(--rp-ink);font-family:var(--rp-sans);font-size:1rem;line-height:1.4;
	padding:.74rem .9rem;
	transition:background .16s,border-color .16s,box-shadow .16s
}
.rp-order-form .gform-theme--framework :is(input,select,textarea):hover{
	border-color:var(--rp-ink-3)
}
.rp-order-form .gform-theme--framework :is(input,select,textarea):focus{
	background:var(--rp-surface);border-color:var(--rp-blue-bright);
	outline:none;box-shadow:0 0 0 3px var(--rp-blue-50)
}
.rp-order-form .gform-theme--framework :is(input,textarea)::placeholder{color:var(--rp-ink-3)}
.rp-order-form .gform-theme--framework textarea{min-height:8.5rem;resize:vertical}
.rp-order-form .gform-theme--framework .gfield_label{
	font-family:var(--rp-sans);font-weight:600;font-size:var(--rp-small);
	color:var(--rp-ink);margin:0 0 .45rem
}
.rp-order-form .gform-theme--framework .gfield_description,
.rp-order-form .gform-theme--framework .ginput_complex label{
	color:var(--rp-ink-3);font-size:var(--rp-xs)
}

/* 6. File upload --------------------------------------------------
   GF renders the native <input type=file class="medium">. Its default
   width clipped the chosen filename to "N…". Give it the full card
   width and a real "Choose file" button so the words read cleanly. */
.rp-order-form .gform-theme--framework .ginput_container_fileupload input[type=file]{
	display:flex;align-items:center;width:100%;max-width:100%;box-sizing:border-box;
	height:2.9rem;padding:0 .5rem;line-height:1.4;font-family:var(--rp-sans);font-size:var(--rp-small);
	color:var(--rp-ink-2);background:var(--rp-bg);
	border:1px solid var(--rp-line-2);border-radius:var(--rp-r-btn)
}
.rp-order-form .gform-theme--framework .ginput_container_fileupload input[type=file]::file-selector-button{
	margin-right:.8rem;height:2rem;padding:0 .95rem;border:0;border-radius:var(--rp-r-tag);
	line-height:2rem;background:var(--rp-blue-bright);color:#fff;cursor:pointer;
	font-family:var(--rp-sans);font-weight:600;font-size:var(--rp-small);
	transition:background .16s
}
.rp-order-form .gform-theme--framework .ginput_container_fileupload input[type=file]::file-selector-button:hover{
	background:var(--rp-blue-800)
}
/* Design-system file control (progressive enhancement). The native
   browser file input ("Choose File / No file chosen") can't be fully
   themed via CSS — the button chrome and the placeholder text are
   OS-rendered. consultation-file JS visually hides the native input
   (it stays operable) and renders this branded button + filename in
   its place, matching the form's secondary "Previous" button. If the
   JS doesn't run, the styled native input above is the fallback. */
.rp-order-form .ginput_container_fileupload input.rp-file-native{
	position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
	overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0
}
.rp-order-form .rp-file{
	display:flex;align-items:center;gap:.85rem;width:100%;box-sizing:border-box;
	padding:.5rem .6rem;background:var(--rp-bg);
	border:1px solid var(--rp-line-2);border-radius:var(--rp-r-btn);
	transition:border-color .16s,box-shadow .16s
}
.rp-order-form .rp-file:focus-within{
	border-color:var(--rp-blue-bright);box-shadow:0 0 0 3px var(--rp-blue-50)
}
/* brand button, locked deterministically over GF's generic button styles */
.rp-order-form .gform-theme--framework .rp-file-btn,
.rp-order-form .rp-file-btn{
	flex:none;padding:.5rem 1.1rem;border:1px solid transparent;
	border-radius:var(--rp-r-tag);background:var(--rp-tangelo);color:#fff;
	cursor:pointer;font-family:var(--rp-sans);font-weight:600;font-size:var(--rp-small);
	line-height:1.2;transition:background .16s,box-shadow .16s
}
.rp-order-form .gform-theme--framework .rp-file-btn:hover,
.rp-order-form .rp-file-btn:hover{background:var(--rp-tangelo-600)}
.rp-order-form .rp-file-name{
	min-width:0;flex:1 1 auto;color:var(--rp-ink-3);
	font-family:var(--rp-sans);font-size:var(--rp-small);
	overflow:hidden;text-overflow:ellipsis;white-space:nowrap
}
.rp-order-form .rp-file.has-file{border-color:var(--rp-blue-bright)}
.rp-order-form .rp-file.has-file .rp-file-name{color:var(--rp-ink);font-weight:600}

/* 7. Credit card — expiration + security code -------------------
   The GF complex field stretched the security-code input to fill the
   whole row (a big empty box) and dropped its label below a stray card
   graphic, which read as broken. Lay Month / Year / Security Code in
   one calm row: each field sized to its content (no stretch), every
   label above its field, and GF's CVV graphic removed. */
.rp-order-form .gform-theme--framework .ginput_cardextras{
	display:flex;flex-wrap:wrap;gap:1rem 1.25rem;margin-top:1.1rem;align-items:flex-start
}
.rp-order-form .gform-theme--framework .ginput_cardinfo_left{
	flex:1 1 16rem;min-width:0;margin:0;padding:0;border:0
}
/* security code: a fixed-ish column that does NOT grow to fill the row */
.rp-order-form .gform-theme--framework .ginput_cardinfo_right{
	display:flex;flex-direction:column;flex:0 1 11rem;min-width:0;margin:0;padding:0;border:0
}
.rp-order-form .gform-theme--framework .ginput_card_expiration_container{
	display:flex;gap:.6rem
}
.rp-order-form .gform-theme--framework .ginput_card_expiration_month_container,
.rp-order-form .gform-theme--framework .ginput_card_expiration_year_container{
	flex:1 1 0;min-width:0
}
.rp-order-form .gform-theme--framework select.ginput_card_expiration,
.rp-order-form .gform-theme--framework input.ginput_card_security_code{
	width:100%;min-width:0;height:auto;line-height:1.4
}
/* drop GF's little CVV graphic that wedged between the input and label */
.rp-order-form .gform-theme--framework .ginput_card_security_code_icon{display:none}
.rp-order-form .gform-theme--framework .ginput_cardinfo_left legend{
	display:block;float:none;margin:0 0 .45rem;padding:0;
	font-family:var(--rp-sans);font-weight:600;font-size:var(--rp-small);color:var(--rp-ink)
}
/* pull the "Security Code" sub-label above its input to match "Expiration Date" */
.rp-order-form .gform-theme--framework .ginput_cardinfo_right > label{
	order:-1;margin:0 0 .45rem;padding:0;
	font-family:var(--rp-sans);font-weight:600;font-size:var(--rp-small);color:var(--rp-ink)
}

/* 8. Post-payment confirmation ----------------------------------
   After a successful order GF swaps the form for its confirmation in
   #order. The client asked the thank-you to stop carrying the whole
   marketing page and to surface a point of contact. Hide every other
   section and the reserve preamble so only the thank-you + contact
   (appended via the gform_confirmation filter) remain. */
body:has(#order .gform_confirmation_wrapper) .rp-ds:not(#order){display:none}
body:has(#order .gform_confirmation_wrapper) #order .rp-reserve-head{display:none}
body:has(#order .gform_confirmation_wrapper) #order .rp-reserve{display:block}
.rp-order-form .gform_confirmation_message{
	font-family:var(--rp-sans);color:var(--rp-ink);text-align:center;
	max-width:42rem;margin:0 auto
}
.rp-order-form .rp-confirm-contact{color:var(--rp-ink-2);font-size:var(--rp-small)}
.rp-order-form .rp-confirm-contact a{color:var(--rp-blue-bright);font-weight:600}

/* ---- FAQ list: hairline-divided question/answer pairs ---- */
.rp-faq{max-width:52rem;margin-inline:auto}
.rp-faq-item{padding:1.6rem 0;border-top:1px solid var(--rp-line)}
.rp-faq-item:first-child{border-top:0;padding-top:0}
.rp-faq-item h3{font-family:var(--rp-serif);font-weight:400;font-size:1.35rem;line-height:1.2;letter-spacing:-.01em;color:var(--rp-ink);margin:0 0 .55rem}
.rp-faq-item p{margin:0;color:var(--rp-ink-2);font-size:1.05rem;line-height:1.62}
.rp-faq-item a{color:var(--rp-blue);text-decoration:underline;text-underline-offset:.15em}

/* ---- Samples gallery: resume-scan cards linking to the PDF ---- */
.rp-samples-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.4rem}
/* Solo variant: one large, legible scan instead of a small grid cell
   (KT feedback 2026-07: the announcement screenshot was "WAY too small"). */
.rp-samples-grid--solo{grid-template-columns:minmax(0,560px);justify-content:center}
.rp-samples-grid--solo .rp-sample-thumb img{width:100%;height:auto}
.rp-sample{display:flex;flex-direction:column;text-decoration:none;background:var(--rp-surface);border:1px solid var(--rp-line);border-radius:12px;overflow:hidden;transition:box-shadow .16s,transform .16s,border-color .16s}
.rp-sample:hover{border-color:var(--rp-ink-3);box-shadow:var(--rp-sh-md);transform:translateY(-2px)}
.rp-sample-thumb{aspect-ratio:17/22;overflow:hidden;background:var(--rp-surface-2);border-bottom:1px solid var(--rp-line)}
.rp-sample-thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;border:0;border-radius:0;margin:0}
.rp-sample-meta{display:flex;flex-direction:column;gap:.35rem;padding:.85rem .95rem 1rem}
.rp-sample-label{font-family:var(--rp-sans);font-weight:600;font-size:1rem;line-height:1.3;color:var(--rp-ink)}
.rp-sample-view{font-family:var(--rp-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rp-tangelo)}
.rp-sample-pages{font-family:var(--rp-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rp-ink-3)}
.rp-sample-stack{display:flex;flex-direction:column}
.rp-sample-pdf{display:inline-block;align-self:flex-start;font-family:var(--rp-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--rp-ink-2);text-decoration:underline;text-underline-offset:3px;margin:.6rem 0 0 .95rem;padding-bottom:.2rem}
.rp-sample-pdf:hover{color:var(--rp-tangelo)}
.rp-sample-stack .rp-sample{flex:1}

/* Program mark above a child-page hero (e.g. CCAR Builder). */
.rp-hero-mark{display:block;height:56px;width:auto;max-width:min(100%,320px);margin:0 auto 1.25rem}

/* Credential ribbon inside an rp-card (e.g. CFRW on Writer Certification). */
.rp-card-ribbon{display:block;height:72px;width:auto;max-width:100%;margin:0 0 1rem}

/* ---- sample reader overlay (sample-reader.js) ---- */
.rp-reader{position:fixed;inset:0;z-index:1200;display:none}
.rp-reader.is-open{display:block}
.rp-reader-lock,.rp-reader-lock body{overflow:hidden}
.rp-reader-backdrop{position:absolute;inset:0;background:rgba(15,23,32,.72)}
.rp-reader-panel{position:absolute;inset:0;margin:auto;display:flex;flex-direction:column;width:min(92vw,900px);height:min(94vh,1200px);background:var(--rp-surface);border-radius:14px;overflow:hidden;box-shadow:var(--rp-sh-md)}
.rp-reader-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem;border-bottom:1px solid var(--rp-line);background:var(--rp-surface)}
.rp-reader-title{font-family:var(--rp-sans);font-weight:600;font-size:1.05rem;color:var(--rp-ink);line-height:1.3}
.rp-reader-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}
.rp-reader-dl{font-family:var(--rp-sans);font-weight:600;font-size:.95rem;color:#fff;background:var(--rp-tangelo);border-radius:8px;padding:.6rem 1rem;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.rp-reader-dl:hover{filter:brightness(.94);color:#fff}
.rp-reader-close{font-family:var(--rp-sans);font-weight:600;font-size:.95rem;color:var(--rp-ink);background:var(--rp-surface-2);border:1px solid var(--rp-line);border-radius:8px;padding:.6rem 1rem;min-height:44px;cursor:pointer}
.rp-reader-close:hover{border-color:var(--rp-ink-3)}
.rp-reader-pages{flex:1;overflow-y:auto;padding:1.25rem;background:var(--rp-surface-2)}
.rp-reader-page{margin:0 auto 1.25rem;max-width:820px}
.rp-reader-page img{display:block;width:100%;height:auto;border:1px solid var(--rp-line);border-radius:6px;background:#fff;box-shadow:var(--rp-sh-sm)}
.rp-reader-page figcaption{font-family:var(--rp-mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rp-ink-3);text-align:center;margin-top:.5rem}
@media(prefers-reduced-motion:no-preference){.rp-reader.is-open .rp-reader-panel{animation:rp-reader-in .18s ease-out}}
@keyframes rp-reader-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:640px){.rp-reader-panel{width:100vw;height:100vh;border-radius:0}.rp-reader-title{font-size:.95rem}}

/* ---- landing content bands (velocity_render_section_landing bands) --------
   Composed rhythm for the hub sales bands: measured header stack, aired
   two-column tick grid, roomy quote, and a left-set aside note. The base
   primitives are margin:0 by design; this wrapper owns the spacing. */
.rp-band__head{max-width:62ch}
.rp-band .rp-h2{margin:.7rem 0 0}
.rp-band .rp-lead{margin-top:1.25rem;max-width:56ch}
.rp-band .rp-lead+.rp-lead{margin-top:1rem}
.rp-band .rp-ticks{margin-top:2.25rem;max-width:76ch;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem 3rem}
.rp-band .rp-ticks li{font-size:var(--rp-base,1rem);line-height:1.55;padding-left:1.25rem}
.rp-band .rp-ticks li::before{top:.6em}
.rp-band .rp-quote{margin-top:2.5rem;max-width:62ch;padding:1.85rem 2.1rem}
.rp-band .rp-quote blockquote{font-family:var(--rp-serif);font-weight:300;font-size:1.12rem;line-height:1.62;color:var(--rp-ink-2)}
.rp-band__note{margin-top:1.75rem;max-width:52ch;font-size:var(--rp-small);line-height:1.6;color:var(--rp-ink-3);border-left:2px solid var(--rp-tangelo);padding-left:1.1rem}
.rp-band .rp-cta-row{justify-content:flex-start;margin-top:2.5rem}

/* Featured testimonial (service-page quote section): serif voice, not a card whisper. */
.rp-quote--feature{max-width:70ch;padding:2.25rem 2.5rem}
.rp-quote--feature blockquote{font-family:var(--rp-serif);font-weight:300;font-size:clamp(1.12rem,1.5vw,1.38rem);line-height:1.6;letter-spacing:-.006em;color:var(--rp-ink)}

/* Balanced band headlines: no single-word orphan lines in the lockup. */
.rp-band .rp-h2{text-wrap:balance;max-width:26ch}

/* ---- agency logo bar (official seals; US-gov works, public domain) --------
   Validation section: full-color official seals at credential size, on an
   even grid (2 rows of 6 at desktop). Mono caption carries the program name
   so the seal never has to work alone. */
.rp-logobar{list-style:none;margin:3rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:2.75rem 1.5rem}
@media(min-width:700px){.rp-logobar{grid-template-columns:repeat(4,1fr)}}
@media(min-width:1020px){.rp-logobar{grid-template-columns:repeat(6,1fr)}}
.rp-logobar li{display:flex;flex-direction:column;align-items:center;gap:.9rem;text-align:center}
.rp-logobar img{height:92px;width:auto;filter:saturate(.9);transition:filter .18s ease}
.rp-logobar li:hover img{filter:none}
@media (prefers-reduced-motion: reduce){.rp-logobar img{transition:none}}
.rp-logobar li span{font-family:var(--rp-mono);font-size:.66rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--rp-ink-2);line-height:1.45;max-width:17ch}
.rp-logobar-note{margin:2.5rem 0 0;font-size:var(--rp-small);line-height:1.6;color:var(--rp-ink-3);max-width:52ch}
.rp-logobar-creds{margin-top:3rem}

/* Section leads: hug the heading they belong to, break before the content
   they introduce. Fixes baked pages that put a lead between rp-sec-head and
   rp-cards, which otherwise renders with zero gap above the grid. */
.rp-sec-head:has(+ .rp-lead){margin-bottom:1.25rem}
.rp-lead + .rp-cards{margin-top:2.5rem}
.rp-lead + .rp-forces{margin-top:2.5rem}
/* Ledger: the showcase index for a canonical set (the five ECQs). Each entry
   is a full-width row: display-scale serif numeral in cover blue with a
   tangelo period, serif title column, description column, hairline rules. */
.rp-ledger{margin-top:3rem;border-top:1px solid var(--rp-line)}
.rp-ledger-row{display:grid;grid-template-columns:auto 1fr;column-gap:1.5rem;row-gap:.75rem;padding-block:2.25rem;border-bottom:1px solid var(--rp-line)}
@media(min-width:900px){.rp-ledger-row{grid-template-columns:8rem 1.05fr .95fr;column-gap:3.5rem;align-items:start}}
.rp-ledger-no{font-family:var(--rp-serif);font-weight:300;font-size:clamp(2.8rem,5.5vw,4.5rem);line-height:.8;letter-spacing:-.02em;color:var(--rp-blue-bright)}
.rp-ledger-no::after{content:".";color:var(--rp-tangelo-500)}
.rp-ledger-row h3{font-family:var(--rp-serif);font-weight:600;font-size:clamp(1.3rem,2.1vw,1.7rem);line-height:1.28;letter-spacing:-.012em;margin:0;color:var(--rp-ink);max-width:24ch}
.rp-ledger-row p{margin:0;font-size:1rem;line-height:1.62;color:var(--rp-ink-2);max-width:52ch}
@media(max-width:899px){.rp-ledger-row p{grid-column:1/-1}}
/* Rail: the full-width numbered rule list (rp-force entries flowing in two
   columns), the wide counterpart to the steps split. On the dark ground the
   numeral goes tangelo as the signal. */
.rp-rail{display:grid;grid-template-columns:1fr;column-gap:4rem;margin-top:2.5rem}
@media(min-width:900px){.rp-rail{grid-template-columns:1fr 1fr}.rp-rail .rp-force:nth-child(2){border-top:0}}
.rp-rail .rp-force p{max-width:52ch}
.rp-dark .rp-force{border-color:rgba(255,255,255,.14)}
.rp-dark .rp-force-no{color:var(--rp-tangelo-400)}
.rp-dark .rp-force h3{color:#fff}
.rp-dark .rp-force p{color:var(--rp-d-fg-2)}

/* Quiet buttons keep their ink on navy bands: .rp-dark's on-dark link color
   otherwise bleeds into the surface-colored button and washes the label out. */
.rp-dark .rp-btn-quiet{color:var(--rp-ink)}
.rp-dark .rp-btn-quiet:hover{color:var(--rp-ink)}

/* ---- video library (rp-videos) --------------------------------------------
   Card grid of lesson videos: 16:9 thumbnail, serif title, outbound link.
   Thumbnails come from YouTube's image CDN; the play disc marks them as
   video without needing JS. */
.rp-videos{display:grid;grid-template-columns:1fr;gap:2rem 1.5rem;margin-top:2.5rem}
@media(min-width:640px){.rp-videos{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1020px){.rp-videos{grid-template-columns:repeat(3,1fr)}}
.rp-video{display:flex;flex-direction:column;gap:.8rem;text-decoration:none;color:var(--rp-ink)}
.rp-video__frame{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;border-radius:10px;background:var(--rp-navy,#1e2a44);box-shadow:0 10px 26px -16px rgba(11,29,58,.45)}
.rp-video__frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.rp-video:hover .rp-video__frame img{transform:scale(1.03)}
@media (prefers-reduced-motion: reduce){.rp-video__frame img{transition:none}.rp-video:hover .rp-video__frame img{transform:none}}
.rp-video__play{position:absolute;inset:0;display:grid;place-items:center}
.rp-video__play::before{content:"";width:52px;height:52px;border-radius:50%;background:rgba(11,29,58,.72);box-shadow:0 4px 14px rgba(0,0,0,.3)}
.rp-video__play::after{content:"";position:absolute;width:0;height:0;border-style:solid;border-width:9px 0 9px 15px;border-color:transparent transparent transparent #fff;transform:translateX(3px)}
.rp-video:hover .rp-video__play::before{background:var(--rp-tangelo,#f94d00)}
.rp-video__title{font-family:var(--rp-serif);font-weight:600;font-size:1.05rem;line-height:1.35}
.rp-video__note{font-family:var(--rp-mono);font-size:.66rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--rp-ink-3)}

/* ---- download rows (instructor resource library) ---- */
.rp-dl{margin-top:2rem;border-top:1px solid var(--rp-line);display:flex;flex-direction:column}
.rp-dl-row{display:grid;grid-template-columns:1fr;gap:.6rem 2.5rem;padding-block:1.2rem;border-bottom:1px solid var(--rp-line)}
@media(min-width:760px){.rp-dl-row{grid-template-columns:1fr auto;align-items:center}}
.rp-dl-title{font-family:var(--rp-sans);font-weight:600;font-size:1rem;line-height:1.4;color:var(--rp-ink);margin:0}
.rp-dl-sub{margin:.3rem 0 0;font-size:var(--rp-small);line-height:1.55;color:var(--rp-ink-2);max-width:62ch}
.rp-dl-meta{display:block;margin-top:.45rem;font-family:var(--rp-mono);font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rp-ink-3)}
.rp-dl-act{display:flex;gap:.5rem;flex-wrap:wrap}
.rp-dl-act .rp-btn{padding:.62em 1.05em;font-size:.8rem}

/* Program sessions (dates page + class archive) */
.rp-sessions{margin-top:1.2rem}
.rp-sessions .rp-h2{margin-top:2.4rem}
.rp-session-year{margin-top:1.8rem;font-family:var(--rp-mono);letter-spacing:.06em;color:var(--rp-ink-3)}
.rp-session{padding:1rem 0;border-bottom:1px solid var(--rp-line)}
.rp-session-head{margin:0;font-size:var(--rp-body)}
.rp-session-badge{display:inline-block;margin-right:.35rem;padding:.1rem .55rem;border:1px solid var(--rp-line);border-radius:999px;font-family:var(--rp-mono);font-size:var(--rp-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--rp-ink-2)}
.rp-session-badge--live{border-color:var(--rp-tangelo,#F94D00);color:var(--rp-tangelo,#F94D00)}
.rp-session-meta{margin:.25rem 0 0;font-size:var(--rp-small);color:var(--rp-ink-2)}
.rp-mono{font-family:var(--rp-mono)}
.rp-session-variant,.rp-session-venue,.rp-session-notes{margin:.2rem 0 0;font-size:var(--rp-small);color:var(--rp-ink-2)}
.rp-session-notes{color:var(--rp-ink-3);font-style:italic}
