/* ============================================================
   Ridley Law — Site-wide Stylesheet
   Design tokens + global header/footer + homepage sections
   Source of truth: design_handoff_ridley_law_redesign/
============================================================ */

/* ==================== DESIGN TOKENS ==================== */
:root {
  --rl-ink:        #11192A;
  --rl-ink-2:      #1B2538;
  --rl-ink-soft:   #2C3650;
  --rl-paper:      #F6F1E7;
  --rl-paper-2:    #EFE8D8;
  --rl-paper-3:    #FAF6EC;
  --rl-rule:       #C8B98F;
  --rl-rule-soft:  #D9CFB1;
  --rl-brass:      #A8884A;
  --rl-brass-deep: #876B33;
  --rl-text:       #1A2238;
  --rl-text-mute:  #5A6378;
  --rl-display:    'Cormorant Garamond', serif;
  --rl-sans:       'Inter', system-ui, sans-serif;
  --rl-mono:       'JetBrains Mono', monospace;
}

/* ==================== GLOBAL RESET ==================== */
body.rl-homepage,
.rl-site-wrap *,
.rl-site-wrap *::before,
.rl-site-wrap *::after {
  box-sizing: border-box;
}

html { background: var(--rl-paper) !important; }
body {
  font-family: var(--rl-sans);
  color: var(--rl-text);
  /* !important + the html rule above so the cream canvas wins over the BB
     theme's default #f2f2f2 body background and extends edge-to-edge beyond
     the 1440px content column. */
  background: var(--rl-paper) !important;
  -webkit-font-smoothing: antialiased;
  margin: 0;
  padding: 0;
}

/* Remove BB theme body padding/margins that conflict */
.fl-page { margin: 0 !important; padding: 0 !important; max-width: 1440px; margin: 0 auto !important; }

/* ==================== SHARED HELPERS ==================== */
.rl-eyebrow {
  font-family: var(--rl-sans);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rl-brass-deep);
  display: block;
  margin-bottom: 18px;
}
.rl-eyebrow-dark { color: #D8B870 !important; }
.rl-dot {
  display: inline-block; width: 5px; height: 5px; border-radius: 50%;
  background: var(--rl-brass); vertical-align: middle; margin: 0 12px 2px 0;
}
.rl-dot-dark { background: #D8B870; }
.rl-roman {
  font-family: var(--rl-display); font-style: italic;
  font-size: 22px; color: var(--rl-brass); margin-bottom: 18px;
}

/* Buttons */
.rl-btn {
  display: inline-block;
  background: var(--rl-ink); color: var(--rl-paper-3);
  padding: 14px 26px;
  font-family: var(--rl-sans);
  font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 500;
  text-decoration: none;
  border: 1px solid var(--rl-ink);
  transition: all .2s;
  cursor: pointer;
  line-height: 1;
  white-space: nowrap;
}
.rl-btn:hover          { background: transparent; color: var(--rl-ink); }
.rl-btn:focus          { outline: 2px solid var(--rl-brass); outline-offset: 2px; }
.rl-btn-ghost          { background: transparent; color: var(--rl-ink); border-color: var(--rl-ink); }
.rl-btn-ghost:hover    { background: var(--rl-ink); color: var(--rl-paper-3); }
.rl-btn-brass          { background: var(--rl-brass-deep); border-color: var(--rl-brass-deep); color: #FBF6E8; }
.rl-btn-brass:hover    { background: transparent; color: var(--rl-brass-deep); }
.rl-btn-outline        { background: transparent; color: #D8B870; border-color: #3A4768; }
.rl-btn-outline:hover  { background: #D8B870; color: var(--rl-ink); border-color: #D8B870; }
/* Hero CTA buttons: gold-bordered */
.rl-hero-actions .rl-btn,
.rl-hero-actions .rl-btn:visited { background: transparent !important; border: 1px solid var(--rl-brass) !important; color: var(--rl-paper-3) !important; }
.rl-hero-actions .rl-btn:hover { background: var(--rl-brass) !important; border-color: var(--rl-brass) !important; color: var(--rl-ink) !important; }

/* ==================== UTILITY BAR ==================== */
.rl-utility {
  background: var(--rl-ink);
  color: #C9D0DD;
  font-family: var(--rl-sans);
  font-size: 12px;
  letter-spacing: 0.08em;
  padding: 10px 64px;
  display: flex; justify-content: space-between; align-items: center;
}
.rl-utility-lhs { display: flex; gap: 28px; align-items: center; flex-wrap: wrap; }
.rl-utility-rhs { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.rl-utility a   { color: #C9D0DD; text-decoration: none; }
.rl-utility a:hover { color: #E4D7B0; }
.rl-pill {
  border: 1px solid #2B3651; border-radius: 999px;
  padding: 4px 12px; font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase;
  color: #E4D7B0;
}

/* ==================== MASTHEAD ==================== */
.rl-masthead {
  background: var(--rl-paper);
  padding: 36px 64px 28px;
  border-bottom: 1px solid var(--rl-rule);
  position: relative;
}
.rl-mast-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 40px;
}
.rl-mast-nav { display: flex; gap: 36px; align-items: center; }
.rl-mast-nav a {
  color: var(--rl-ink); text-decoration: none;
  font-family: var(--rl-sans);
  font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500;
  transition: color .2s;
}
.rl-mast-nav a:hover { color: var(--rl-brass-deep); }

.rl-wordmark { text-align: center; line-height: 1; }
.rl-wordmark a { text-decoration: none; }
.rl-wordmark-name {
  font-family: var(--rl-display);
  font-size: 36px; font-weight: 500; letter-spacing: 0.02em;
  color: var(--rl-ink); line-height: 1;
}
.rl-wordmark-name em { font-style: italic; font-weight: 400; color: var(--rl-brass-deep); }
.rl-wordmark-sub {
  margin-top: 6px;
  font-family: var(--rl-sans);
  font-size: 10px; letter-spacing: 0.42em; text-transform: uppercase;
  color: var(--rl-text-mute);
}

.rl-mast-right { display: flex; justify-content: flex-end; align-items: center; gap: 24px; }
.rl-phone { font-family: var(--rl-display); font-size: 22px; color: var(--rl-ink); letter-spacing: 0.02em; white-space: nowrap; }
.rl-phone span {
  display: block;
  font-family: var(--rl-sans); font-size: 10px; letter-spacing: 0.32em;
  text-transform: uppercase; color: var(--rl-text-mute); margin-bottom: 2px;
}
.rl-phone a { color: var(--rl-ink); text-decoration: none; }
.rl-phone a:hover { color: var(--rl-brass-deep); }

/* Monogram seal */
.rl-seal {
  position: absolute; left: 50%; transform: translateX(-50%);
  bottom: -22px;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--rl-paper);
  border: 1px solid var(--rl-rule);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--rl-display); font-style: italic;
  color: var(--rl-brass-deep); font-size: 18px; letter-spacing: -0.04em;
  z-index: 2;
}

/* Mobile nav toggle (hidden on desktop) */
.rl-nav-toggle { display: none; }

/* Mobile nav drawer */
.rl-mobile-nav {
  background: var(--rl-ink);
  padding: 24px;
  display: flex; flex-direction: column; gap: 16px;
}
.rl-mobile-nav a {
  color: #C9D0DD; text-decoration: none;
  font-family: var(--rl-sans); font-size: 14px;
  letter-spacing: 0.14em; text-transform: uppercase; font-weight: 500;
}
.rl-mobile-nav[hidden] { display: none; }

/* ==================== FOOTER ====================
   All footer rules consolidated here. Colors use !important to
   override BB skin body{color:#000} without needing element-by-element patches.
   ================================================================= */
.rl-footer {
  background: #0B1220 !important;
  color: #8993A8 !important;
  font-family: var(--rl-sans) !important;
  padding: 80px 64px 40px;
}
.rl-foot-top {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 60px;
  padding-bottom: 60px; border-bottom: 1px solid #1A2440;
}
.rl-foot-wordmark-name {
  font-family: var(--rl-display) !important; font-size: 28px; color: #C8B98F !important; letter-spacing: 0.02em;
}
.rl-foot-wordmark-name em { font-style: italic; color: #D8B870 !important; }
.rl-foot-wordmark p { margin-top: 18px; font-size: 13px; line-height: 1.7; max-width: 300px; color: #6A7689 !important; }
.rl-foot-head {
  font-family: var(--rl-mono) !important;
  font-size: 9px !important; letter-spacing: 0.25em !important; text-transform: uppercase !important;
  color: var(--rl-brass) !important; margin: 0 0 18px !important; font-weight: 400 !important;
}
.rl-footer ul { list-style: none; margin: 0; padding: 0; }
.rl-footer ul li { margin-bottom: 10px; color: #8993A8 !important; font-size: 13px; }
.rl-footer ul a { color: #8993A8 !important; text-decoration: none; font-size: 13px; }
.rl-footer ul a:hover { color: #C8B98F !important; }
.rl-foot-bottom {
  padding-top: 30px; display: flex; justify-content: space-between; align-items: center;
}
.rl-foot-mono {
  font-family: var(--rl-mono) !important;
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #636E84 !important;
}

/* ==================== HERO ==================== */
.rl-hero {
  padding: 64px 64px 56px;
  background:
    radial-gradient(1100px 600px at 80% -10%, rgba(168,136,74,0.07), transparent 60%),
    var(--rl-ink);
  position: relative;
}
.rl-hero-grid {
  display: grid; grid-template-columns: 1.35fr 0.65fr; gap: 64px; align-items: center;
}
.rl-hero h1 {
  font-family: var(--rl-display);
  font-weight: 500; font-size: 56px; line-height: 1.05; letter-spacing: -0.015em;
  color: var(--rl-paper-3); margin-top: 6px;
}
.rl-hero h1 em { font-style: italic; font-weight: 400; color: var(--rl-brass-deep); }
.rl-lede {
  margin-top: 16px;
  font-family: var(--rl-sans);
  font-size: 18px; line-height: 1.7; color: var(--rl-text-mute); max-width: 520px;
}
.rl-hero-actions {
  margin-top: 22px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
}
.rl-hero-quote {
  margin-top: 12px;
  font-family: var(--rl-display); font-style: italic; font-size: 18px;
  color: var(--rl-ink-soft); line-height: 1.4;
}

/* Portrait placeholder */
.rl-portrait {
  aspect-ratio: 4/5;
  background:
    repeating-linear-gradient(135deg, rgba(17,25,42,0.04) 0 2px, transparent 2px 14px),
    var(--rl-paper-2);
  border: 1px solid var(--rl-rule);
  position: relative; overflow: hidden;
}
.rl-portrait::after {
  content: ''; position: absolute; inset: 16px; border: 1px solid var(--rl-rule-soft);
  pointer-events: none;
}
.rl-portrait-caption {
  position: absolute; right: 24px; top: 24px;
  writing-mode: vertical-rl; transform: rotate(180deg);
  font-family: var(--rl-display); font-style: italic; font-size: 18px;
  color: var(--rl-text-mute); letter-spacing: 0.05em;
}
.rl-portrait-tag {
  position: absolute; left: 32px; bottom: 32px;
  font-family: var(--rl-mono); font-size: 10px;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--rl-text-mute);
  background: var(--rl-paper); padding: 8px 12px; border: 1px solid var(--rl-rule-soft);
}

/* Trust strip */
.rl-trust-strip {
  margin-top: 20px;
  border-top: 1px solid var(--rl-rule); border-bottom: 1px solid var(--rl-rule);
  padding: 28px 0;
  display: grid; grid-template-columns: repeat(5,1fr); align-items: center;
}
.rl-trust-cell {
  text-align: center; padding: 0 20px;
  border-right: 1px solid var(--rl-rule-soft);
}
.rl-trust-cell:last-child { border-right: none; }
.rl-stat {
  font-family: var(--rl-display); font-size: 34px; color: var(--rl-ink);
  line-height: 1; letter-spacing: -0.01em;
}
.rl-stat sup { font-size: 16px; color: var(--rl-brass-deep); font-style: italic; font-weight: 400; vertical-align: top; margin-left: 2px; }
.rl-stat-label { margin-top: 10px; font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rl-text-mute); }
.rl-badge { font-family: var(--rl-display); font-style: italic; font-size: 20px; color: var(--rl-brass-deep); }

/* ==================== STORY ==================== */
.rl-story {
  padding: 140px 64px;
  background: var(--rl-paper-3);
  border-top: 1px solid var(--rl-rule);
}
.rl-story-inner {
  display: grid; grid-template-columns: 200px 1fr 200px; gap: 60px;
  max-width: 1180px; margin: 0 auto;
}
.rl-story-aside {
  border-top: 1px solid var(--rl-rule); padding-top: 14px;
}
.rl-story-num  { font-family: var(--rl-display); font-style: italic; font-size: 22px; color: var(--rl-brass-deep); }
.rl-story-lbl  { margin-top: 6px; font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rl-text-mute); line-height: 1.5; }
.rl-story-body p {
  font-family: var(--rl-display);
  font-size: 30px; line-height: 1.4; color: var(--rl-ink); font-weight: 500;
  letter-spacing: -0.005em; margin-top: 0;
}
.rl-story-body p + p { margin-top: 28px; }
.rl-story-body p em  { font-style: italic; color: var(--rl-brass-deep); }
.rl-drop::first-letter {
  font-family: var(--rl-display); font-style: italic;
  font-size: 96px; line-height: 0.66;
  float: left; padding: 0 14px 0 0; margin-top: -2px; color: var(--rl-brass-deep);
}
.rl-sig       { margin-top: 48px; font-family: var(--rl-display); font-style: italic; font-size: 36px; color: var(--rl-ink); }
.rl-sig-line  { margin-top: 8px; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rl-text-mute); }

/* ==================== STAKE ==================== */
.rl-stake {
  padding: 130px 64px 140px;
  background: var(--rl-ink);
  color: var(--rl-paper-3);
  position: relative;
}
.rl-stake::before {
  content: ''; position: absolute; top: 0; left: 64px; right: 64px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--rl-brass) 50%, transparent);
}
.rl-stake-head {
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end;
  margin-bottom: 90px;
}
.rl-stake-head h2 {
  font-family: var(--rl-display); font-weight: 500;
  font-size: 64px; line-height: 1.05; letter-spacing: -0.01em;
  margin-top: 18px;
}
.rl-stake-head h2 em { font-style: italic; color: #D8B870; }
.rl-stake-right { font-size: 16px; line-height: 1.75; color: #B5BDCC; }
.rl-stake-right p { margin-bottom: 18px; }
.rl-stake-right p:last-child { margin-bottom: 0; }
.rl-stake-right strong { color: #E4D7B0; font-weight: 500; }
.rl-stake-right em { font-style: italic; color: #D8B870; }

.rl-stake-cards {
  display: grid; grid-template-columns: repeat(4,1fr);
  border-top: 1px solid #2A3550;
}
.rl-stake-card {
  padding: 48px 32px 40px 0;
  border-right: 1px solid #2A3550;
}
.rl-stake-card:last-child  { border-right: none; }
.rl-stake-card:not(:first-child) { padding-left: 32px; }
.rl-stake-card h3 {
  font-family: var(--rl-display); font-weight: 500;
  font-size: 26px; line-height: 1.2; color: #FBF6E8; margin-bottom: 14px;
}
.rl-stake-card p { font-size: 14px; line-height: 1.7; color: #A8B0BF; }

.rl-stake-pull {
  margin-top: 90px;
  border-top: 1px solid #2A3550; border-bottom: 1px solid #2A3550;
  padding: 50px 0;
  display: grid; grid-template-columns: auto 1fr; gap: 60px; align-items: center;
}
.rl-quotemark {
  font-family: var(--rl-display); font-style: italic;
  font-size: 140px; line-height: 0.6; color: var(--rl-brass);
}
.rl-stake-pull blockquote {
  font-family: var(--rl-display); font-weight: 500; font-style: italic;
  font-size: 32px; line-height: 1.35; color: #FBF6E8; letter-spacing: -0.005em;
}
.rl-pull-src {
  display: block; margin-top: 18px;
  font-style: normal; font-family: var(--rl-sans);
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: #D8B870;
}

/* ==================== SERVICES ==================== */
.rl-services { padding: 140px 64px; background: var(--rl-paper); }
.rl-services-head {
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end;
  margin-bottom: 80px;
}
.rl-services-head h2 {
  font-family: var(--rl-display); font-weight: 500;
  font-size: 60px; line-height: 1.05; color: var(--rl-ink); letter-spacing: -0.01em;
  margin-top: 18px;
}
.rl-services-head h2 em { font-style: italic; color: var(--rl-brass-deep); }
.rl-services-copy { font-size: 16px; line-height: 1.75; color: var(--rl-text-mute); }

.rl-svc-list { border-top: 1px solid var(--rl-rule); }
.rl-svc-row {
  display: grid; grid-template-columns: 80px 1fr 1.4fr 180px;
  align-items: center; gap: 40px;
  padding: 36px 0;
  border-bottom: 1px solid var(--rl-rule-soft);
  text-decoration: none; color: inherit;
  transition: background .3s;
}
.rl-svc-row-last { border-bottom: 1px solid var(--rl-rule); }
.rl-svc-row:hover { background: var(--rl-paper-3); }
.rl-svc-row:hover .rl-arr { transform: translateX(4px); }
.rl-svc-num   { font-family: var(--rl-display); font-style: italic; font-size: 22px; color: var(--rl-brass-deep); }
.rl-svc-title { font-family: var(--rl-display); font-weight: 500; font-size: 34px; color: var(--rl-ink); letter-spacing: -0.005em; }
.rl-svc-desc  { font-size: 15px; line-height: 1.7; color: var(--rl-text-mute); }
.rl-svc-cta   { text-align: right; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rl-ink); font-weight: 500; }
.rl-arr       { font-family: var(--rl-display); font-style: italic; margin-left: 10px; color: var(--rl-brass-deep); display: inline-block; transition: transform .3s; }

/* ==================== PROCESS ==================== */
.rl-process {
  padding: 140px 64px;
  background: var(--rl-paper-2);
  border-top: 1px solid var(--rl-rule);
}
.rl-process-head { text-align: center; margin-bottom: 80px; }
.rl-process-head h2 {
  font-family: var(--rl-display); font-weight: 500;
  font-size: 56px; color: var(--rl-ink); letter-spacing: -0.01em; margin-top: 14px;
}
.rl-process-head h2 em { font-style: italic; color: var(--rl-brass-deep); }

.rl-phase-label {
  display: flex; align-items: center; gap: 14px; margin-bottom: 18px;
}
.rl-phase-label-2 { margin-top: 64px; }
.rl-phase-roman { font-family: var(--rl-display); font-style: italic; font-size: 20px; color: var(--rl-brass-deep); }
.rl-phase-lbl   { font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--rl-text-mute); white-space: nowrap; }
.rl-phase-hr    { flex: 1; height: 1px; background: var(--rl-rule); }
.rl-phase-meta  { font-family: var(--rl-display); font-style: italic; font-size: 18px; color: var(--rl-text-mute); white-space: nowrap; }

.rl-process-grid {
  display: grid; grid-template-columns: repeat(5,1fr);
  border-top: 1px solid var(--rl-rule); border-bottom: 1px solid var(--rl-rule);
}
.rl-process-phase2 {
  grid-template-columns: repeat(2,1fr);
  margin-top: 0;
}
.rl-process-step {
  padding: 44px 24px 40px;
  border-right: 1px solid var(--rl-rule-soft);
}
.rl-process-step:last-child { border-right: none; }
.rl-process-phase2 .rl-process-step { padding: 48px 40px 44px; }
.rl-step-num {
  font-family: var(--rl-display); font-style: italic;
  font-size: 52px; line-height: 1; color: var(--rl-brass);
  margin-bottom: 22px;
}
.rl-process-phase2 .rl-step-num { font-size: 64px; }
.rl-process-step h3 {
  font-family: var(--rl-display); font-weight: 500;
  font-size: 24px; color: var(--rl-ink); margin-bottom: 12px;
  letter-spacing: -0.005em; line-height: 1.15;
}
.rl-process-phase2 .rl-process-step h3 { font-size: 26px; }
.rl-process-step p { font-size: 13.5px; line-height: 1.65; color: var(--rl-text-mute); margin: 0; }
.rl-process-phase2 .rl-process-step p { font-size: 14px; line-height: 1.7; }
.rl-process-step p em { font-style: italic; color: var(--rl-brass-deep); }
.rl-step-meta { margin-top: 20px; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rl-brass-deep); font-family: var(--rl-sans); }

/* ==================== TESTIMONIALS ==================== */
.rl-testimonials { padding: 140px 64px; background: var(--rl-paper-3); }
.rl-testimonials-head {
  display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: end;
  margin-bottom: 80px;
}
.rl-testimonials-head h2 {
  font-family: var(--rl-display); font-weight: 500;
  font-size: 60px; line-height: 1.05; color: var(--rl-ink); letter-spacing: -0.01em;
  margin-top: 18px;
}
.rl-testimonials-head h2 em { font-style: italic; color: var(--rl-brass-deep); }
.rl-testimonials-summary { text-align: right; }
.rl-stars { font-family: var(--rl-display); color: var(--rl-brass); font-size: 24px; letter-spacing: 0.32em; display: block; margin-bottom: 10px; }
.rl-stars-sm { font-size: 16px; letter-spacing: 0.28em; margin-bottom: 18px; }
.rl-score { font-family: var(--rl-display); font-size: 22px; color: var(--rl-ink); }
.rl-score em { font-style: italic; color: var(--rl-brass-deep); font-weight: 400; }
.rl-score-where { margin-top: 8px; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rl-text-mute); }

.rl-testimonial-lead {
  border-top: 1px solid var(--rl-rule); border-bottom: 1px solid var(--rl-rule);
  padding: 64px 0 60px;
  display: grid; grid-template-columns: auto 1fr; gap: 60px; align-items: start;
  margin-bottom: 60px;
}
.rl-testimonial-lead .rl-quotemark { font-size: 160px; line-height: 0.55; }
.rl-testimonial-lead blockquote {
  font-family: var(--rl-display); font-style: italic; font-weight: 500;
  font-size: 38px; line-height: 1.35; color: var(--rl-ink); letter-spacing: -0.005em;
  margin: 0;
}
.rl-testimonial-source { margin-top: 32px; display: flex; align-items: center; gap: 18px; }
.rl-source-name { font-family: var(--rl-display); font-size: 22px; color: var(--rl-ink); }
.rl-source-dot  { width: 4px; height: 4px; border-radius: 50%; background: var(--rl-brass); display: inline-block; }
.rl-source-role { font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rl-text-mute); }

.rl-testimonial-grid {
  display: grid; grid-template-columns: repeat(3,1fr);
  border-top: 1px solid var(--rl-rule-soft);
}
.rl-testimonial-card {
  padding: 40px 36px 36px;
  border-right: 1px solid var(--rl-rule-soft);
  border-bottom: 1px solid var(--rl-rule-soft);
}
.rl-testimonial-card:nth-child(3n)        { border-right: none; }
.rl-testimonial-card:nth-last-child(-n+3) { border-bottom: none; }
.rl-testimonial-card blockquote {
  font-family: var(--rl-display); font-style: italic; font-weight: 500;
  font-size: 21px; line-height: 1.45; color: var(--rl-ink);
  letter-spacing: -0.003em; margin: 0;
}
.rl-card-meta {
  margin-top: 24px; padding-top: 18px;
  border-top: 1px solid var(--rl-rule-soft);
  display: flex; justify-content: space-between; align-items: baseline;
}
.rl-card-name { font-family: var(--rl-display); font-size: 18px; color: var(--rl-ink); }
.rl-card-when { font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rl-brass-deep); }

.rl-testimonials-foot {
  margin-top: 60px; text-align: center;
  font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rl-text-mute);
}
.rl-testimonials-foot a {
  color: var(--rl-ink); text-decoration: none;
  border-bottom: 1px solid var(--rl-rule); padding-bottom: 2px;
}
.rl-testimonials-foot a:hover { color: var(--rl-brass-deep); border-color: var(--rl-brass-deep); }
.rl-foot-sep { margin: 0 16px; color: var(--rl-rule); }

/* ==================== CONSULT ==================== */
.rl-consult {
  background: var(--rl-ink); padding: 130px 64px; color: var(--rl-paper-3);
  position: relative; overflow: hidden; text-align: center;
}
.rl-consult::before {
  content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 900px; height: 900px; border: 1px solid #1F2A45; border-radius: 50%;
  pointer-events: none;
}
.rl-consult::after {
  content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 600px; height: 600px; border: 1px solid #1F2A45; border-radius: 50%;
  pointer-events: none;
}
.rl-consult-inner { max-width: 880px; margin: 0 auto; position: relative; z-index: 1; }
.rl-mono-line { font-family: var(--rl-mono); font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: #D8B870; }
.rl-consult h2 {
  margin-top: 24px;
  font-family: var(--rl-display); font-weight: 500;
  font-size: 78px; line-height: 1.05; letter-spacing: -0.015em;
}
.rl-consult h2 em { font-style: italic; color: #D8B870; }
.rl-consult p { margin: 36px auto 0; max-width: 580px; font-size: 17px; line-height: 1.7; color: #B5BDCC; }
.rl-consult-actions { margin-top: 56px; display: flex; justify-content: center; gap: 18px; flex-wrap: wrap; }
.rl-consult-details {
  margin-top: 60px; display: flex; justify-content: center; gap: 60px; flex-wrap: wrap;
  font-family: var(--rl-sans);
  font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: #8E97AB;
}
.rl-consult-details strong { color: #E4D7B0; font-weight: 500; }

/* ==================== BEAVER BUILDER OVERRIDES ==================== */
/* Apply brand body color to BB content areas */
.fl-theme-builder-singular:not(.rl-homepage) .fl-page-content { background: #F6F1E7 !important; }
/* Homepage: BB content wrapper must be transparent so section backgrounds show */
.rl-homepage .fl-page-content,
.rl-homepage #fl-main-content { background: transparent !important; }

/* Reset BB's default button/link colors so they don't bleed into our sections */
.rl-hero a, .rl-story a, .rl-stake a, .rl-services a,
.rl-process a, .rl-testimonials a, .rl-consult a { color: inherit; }

/* Suppress BB's default header/nav since we provide our own */
.fl-page-header,
.fl-page-nav-wrap,
.fl-page-top-bar { display: none !important; }

/* ==================== RESPONSIVE ==================== */
@media (max-width: 1024px) {
  .rl-utility { padding: 10px 32px; }
  .rl-masthead { padding: 24px 32px 20px; }
  .rl-mast-row { grid-template-columns: 1fr auto; gap: 24px; }
  .rl-mast-right { display: none; }
  .rl-nav-toggle {
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    background: none; border: none; cursor: pointer; padding: 8px;
    position: absolute; right: 32px; top: 50%; transform: translateY(-50%);
  }
  .rl-nav-toggle span { display: block; width: 24px; height: 2px; background: var(--rl-ink); transition: all .2s; }
  .rl-nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .rl-nav-toggle.is-open span:nth-child(2) { opacity: 0; }
  .rl-nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .rl-mast-nav { display: none; }
  .rl-hero { padding: 80px 32px 60px; }
  .rl-hero-grid { grid-template-columns: 1fr; }
  .rl-portrait { display: none; }
  .rl-hero h1 { font-size: 60px; }
  .rl-trust-strip { grid-template-columns: repeat(3,1fr); }
  .rl-trust-cell:nth-child(3) { border-right: none; }
  .rl-story { padding: 100px 32px; }
  .rl-story-inner { grid-template-columns: 160px 1fr; }
  .rl-story-aside:last-child { display: none; }
  .rl-stake { padding: 80px 32px 100px; }
  .rl-stake-head { grid-template-columns: 1fr; }
  .rl-stake-head h2 { font-size: 48px; }
  .rl-stake-cards { grid-template-columns: repeat(2,1fr); }
  .rl-stake-card:nth-child(2) { border-right: none; }
  .rl-stake-card:nth-child(3) { border-right: 1px solid #2A3550; border-top: 1px solid #2A3550; }
  .rl-stake-card:nth-child(4) { border-right: none; border-top: 1px solid #2A3550; }
  .rl-services { padding: 100px 32px; }
  .rl-services-head { grid-template-columns: 1fr; }
  .rl-svc-row { grid-template-columns: 60px 1fr 1fr; }
  .rl-svc-cta { display: none; }
  .rl-process { padding: 100px 32px; }
  .rl-process-grid { grid-template-columns: repeat(3,1fr); }
  .rl-process-phase2 { grid-template-columns: 1fr; }
  .rl-testimonials { padding: 100px 32px; }
  .rl-testimonials-head { grid-template-columns: 1fr; }
  .rl-testimonials-summary { text-align: left; }
  .rl-testimonial-grid { grid-template-columns: repeat(2,1fr); }
  .rl-testimonial-card:nth-child(2n) { border-right: none; }
  .rl-testimonial-card:nth-last-child(-n+3) { border-bottom: 1px solid var(--rl-rule-soft); }
  .rl-testimonial-card:nth-last-child(-n+2) { border-bottom: none; }
  .rl-consult { padding: 80px 32px; }
  .rl-consult h2 { font-size: 60px; }
  .rl-foot-top { grid-template-columns: 1fr 1fr; gap: 40px; }
  .rl-footer { padding: 60px 32px 40px; }
}

@media (max-width: 768px) {
  .rl-utility { padding: 8px 20px; flex-direction: column; gap: 8px; text-align: center; font-size: 11px; }
  .rl-masthead { padding: 20px 20px 16px; }
  .rl-mast-row { grid-template-columns: auto 1fr; }
  .rl-wordmark-name { font-size: 28px; }
  .rl-nav-toggle { right: 20px; }
  .rl-hero { padding: 60px 20px 50px; }
  .rl-hero h1 { font-size: 48px; }
  .rl-lede { font-size: 16px; }
  .rl-trust-strip { grid-template-columns: repeat(2,1fr); }
  .rl-trust-cell:nth-child(2) { border-right: none; }
  .rl-trust-cell:nth-child(3) { border-right: 1px solid var(--rl-rule-soft); border-top: 1px solid var(--rl-rule); padding-top: 20px; margin-top: 8px; }
  .rl-story { padding: 80px 20px; }
  .rl-story-inner { grid-template-columns: 1fr; }
  .rl-story-body p { font-size: 22px; }
  .rl-stake { padding: 80px 20px 80px; }
  .rl-stake::before { left: 20px; right: 20px; }
  .rl-stake-head h2 { font-size: 40px; }
  .rl-stake-cards { grid-template-columns: 1fr; border-top: none; }
  .rl-stake-card { border-right: none !important; border-top: 1px solid #2A3550; padding-left: 0; }
  .rl-stake-pull { grid-template-columns: 1fr; gap: 20px; }
  .rl-quotemark { font-size: 80px; }
  .rl-stake-pull blockquote { font-size: 24px; }
  .rl-services { padding: 80px 20px; }
  .rl-services-head h2 { font-size: 44px; }
  .rl-svc-row { grid-template-columns: 50px 1fr; gap: 16px; }
  .rl-svc-desc { display: none; }
  .rl-svc-title { font-size: 26px; }
  .rl-process { padding: 80px 20px; }
  .rl-process-head h2 { font-size: 40px; }
  .rl-process-grid { grid-template-columns: 1fr; }
  .rl-process-phase2 { grid-template-columns: 1fr; }
  .rl-process-step { border-right: none; border-bottom: 1px solid var(--rl-rule-soft); }
  .rl-process-step:last-child { border-bottom: none; }
  .rl-testimonials { padding: 80px 20px; }
  .rl-testimonials-head h2 { font-size: 44px; }
  .rl-testimonial-lead { grid-template-columns: 1fr; gap: 20px; }
  .rl-testimonial-lead .rl-quotemark { font-size: 100px; }
  .rl-testimonial-lead blockquote { font-size: 26px; }
  .rl-testimonial-grid { grid-template-columns: 1fr; }
  .rl-testimonial-card { border-right: none; }
  .rl-testimonial-card:nth-last-child(-n+3) { border-bottom: 1px solid var(--rl-rule-soft); }
  .rl-testimonial-card:last-child { border-bottom: none; }
  .rl-consult { padding: 80px 20px; }
  .rl-consult h2 { font-size: 48px; }
  .rl-consult-actions { flex-direction: column; align-items: center; }
  .rl-consult-details { flex-direction: column; gap: 12px; align-items: center; }
  .rl-footer { padding: 60px 20px 30px; }
  .rl-foot-top { grid-template-columns: 1fr; gap: 36px; }
  .rl-foot-bottom { flex-direction: column; gap: 8px; text-align: center; }
}

/* ==================== PORTRAIT IMAGE ==================== */
.rl-portrait picture {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
}
.rl-portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
/* Remove the hatched placeholder background now that we have a real image */
.rl-portrait {
  background: var(--rl-ink-2);
}

/* ==================== DISCLAIMER / MAPS SECTION ==================== */
.rl-disclaimer {
  background: #080F1B;
  border-top: 1px solid #1A2440;
  padding: 64px 64px 0;
}
.rl-disclaimer-grid {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 60px;
  align-items: start;
  padding-bottom: 48px;
  border-bottom: 1px solid #131D31;
}
.rl-disclaimer-text p {
  font-family: var(--rl-sans);
  font-size: 11px;
  line-height: 1.75;
  color: #4A5568;
  letter-spacing: 0.01em;
  margin-bottom: 14px;
}
.rl-disclaimer-text p:last-child { margin-bottom: 0; }
.rl-disclaimer-text a { color: #5A6580; text-decoration: none; border-bottom: 1px solid #2A3550; }
.rl-disclaimer-text a:hover { color: #8993A8; }
.rl-disclaimer-text strong { color: #5A6580; font-weight: 500; }
.rl-disclaimer-label {
  font-family: var(--rl-mono);
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rl-brass-deep);
  margin-bottom: 14px;
  display: block;
  opacity: 0.6;
}
.rl-map-wrap {
  border: 1px solid #1A2440;
  overflow: hidden;
  aspect-ratio: 4/3;
}
.rl-map-wrap iframe {
  width: 100%;
  height: 100%;
  display: block;
  border: none;
  filter: grayscale(100%) invert(90%) contrast(80%) sepia(15%);
  opacity: 0.75;
}
.rl-disclaimer-foot {
  padding: 20px 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.rl-disclaimer-foot a { color: #3A4560; text-decoration: none; font-size: 11px; }
.rl-disclaimer-foot a:hover { color: #5A6580; }
.rl-disclaimer-foot span {
  font-family: var(--rl-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #2E3A50;
}
.rl-disclaimer-foot .rl-disc-links {
  display: flex;
  gap: 20px;
  font-family: var(--rl-mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

@media (max-width: 768px) {
  .rl-disclaimer { padding: 48px 20px 0; }
  .rl-disclaimer-grid { grid-template-columns: 1fr; }
  .rl-map-wrap { aspect-ratio: 16/9; }
}

/* ==================== DARK SECTION HEADING OVERRIDES ====================
   BB theme sets h1-h6 { color: #000 } globally.
   These rules restore correct colors in dark sections with enough specificity.
   ======================================================================== */
.rl-hero h1,
.rl-hero h1 a { color: var(--rl-paper-3) !important; }

.rl-hero .rl-lede,.rl-hero .rl-hero-quote,.rl-hero .rl-eyebrow { color: var(--rl-paper-3) !important; }.rl-hero .rl-trust-strip { color: var(--rl-paper-3); }
.rl-stake h2,
.rl-stake h2 a { color: #FBF6E8 !important; }

.rl-stake-head h2 em { color: #D8B870 !important; }

.rl-stake-card h3,
.rl-stake-card h3 a { color: #FBF6E8 !important; }

.rl-stake-pull blockquote { color: #E8E0CC !important; }

.rl-consult h2,
.rl-consult h2 a { color: #FBF6E8 !important; }

.rl-consult h2 em { color: #D8B870 !important; }


/* Trust strip on light */
.rl-trust-strip h2 { color: var(--rl-ink) !important; }

/* Services section (light bg) stays dark */
.rl-services-head h2,
.rl-services-head h2 a { color: var(--rl-ink) !important; }
.rl-services-head h2 em { color: var(--rl-brass-deep) !important; }

/* Process section (light bg) */
.rl-process-head h2,
.rl-process-head h2 a { color: var(--rl-ink) !important; }
.rl-process-head h2 em { color: var(--rl-brass-deep) !important; }
.rl-process-step h3,
.rl-process-step h3 a { color: var(--rl-ink) !important; }

/* Story section (light bg) */
.rl-story h2,
.rl-story h2 a { color: var(--rl-ink) !important; }

/* Testimonials (light bg) */
.rl-testimonials-head h2 { color: var(--rl-ink) !important; }
.rl-testimonials-head h2 em { color: var(--rl-brass-deep) !important; }

/* Disclaimer block (very dark bg) */
.rl-disclaimer h2,
.rl-disclaimer h3,
.rl-disclaimer h4 { color: #4A5568 !important; }

/* ==================== BLOG / ARCHIVE STYLING ==================== */
/* Blog archive list */
.fl-post-grid-title h2,
.fl-post-grid-title h2 a,
.fl-post-grid .fl-post-grid-title a { color: var(--rl-ink) !important; text-decoration: none; }
.fl-post-grid .fl-post-grid-title a:hover { color: var(--rl-brass-deep) !important; }
.fl-post-grid .fl-post-grid-text { font-family: var(--rl-sans); }
.fl-post-grid .fl-post-grid-meta { font-family: var(--rl-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rl-text-mute); }
.fl-post-grid .fl-post-grid-excerpt p { font-size: 14px; line-height: 1.7; color: #555; }
.fl-post-grid .fl-post-column { border-bottom: 1px solid var(--rl-rule-soft); padding-bottom: 40px; }
.fl-post-grid .fl-post-grid-image img { border: 1px solid var(--rl-rule-soft); }

/* Single blog post content */
.fl-post-content .entry-title,
.fl-post-content h1.entry-title { color: var(--rl-ink) !important; font-family: var(--rl-display) !important; font-weight: 500 !important; font-size: 44px !important; line-height: 1.15 !important; letter-spacing: -0.01em; }
.fl-post-content .entry-content h2 { color: var(--rl-ink) !important; font-family: var(--rl-display) !important; font-weight: 500 !important; }
.fl-post-content .entry-content h3 { color: var(--rl-ink) !important; font-family: var(--rl-display) !important; font-weight: 500 !important; }
.fl-post-content .entry-content p { font-family: var(--rl-sans); font-size: 17px; line-height: 1.75; color: #2A3447; }
.fl-post-content .entry-content a { color: var(--rl-brass-deep); text-decoration: underline; }
.fl-post-content .entry-meta { font-family: var(--rl-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rl-text-mute); margin-bottom: 32px; }

/* ==================== MOBILE RESPONSIVE ==================== */
@media (max-width: 1024px) {
  /* Nav — hide desktop links, show hamburger at 1024 */
  .rl-nav-list { display: none; }
  .rl-nav-toggle { display: flex; }
  .rl-masthead-col--phone { display: none; }
  .rl-masthead-col--wordmark { justify-content: flex-start; }
  .rl-masthead { padding: 0 20px; }
  .rl-utility-bar { padding: 0 20px; }
}

@media (max-width: 768px) {
  /* Hero */
  .rl-hero { flex-direction: column; min-height: auto; }
  .rl-hero-content { padding: 60px 24px 40px; order: 2; }
  .rl-hero h1 { font-size: 40px; }
  .rl-hero-quote { font-size: 15px; }
  .rl-portrait { position: relative; width: 100%; aspect-ratio: 4/5; min-height: 320px; order: 1; }
  .rl-portrait picture, .rl-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

  /* Trust strip */
  .rl-trust-strip { grid-template-columns: 1fr 1fr; gap: 24px; }

  /* Story */
  .rl-story-grid { grid-template-columns: 1fr; }

  /* Stake */
  .rl-stake { padding: 60px 24px; }
  .rl-stake-inner { grid-template-columns: 1fr; }
  .rl-stake-cards { grid-template-columns: 1fr 1fr; }
  .rl-stake-head h2 { font-size: 44px; }
  .rl-stake-pull { grid-template-columns: 1fr; gap: 24px; }

  /* Services */
  .rl-services { padding: 60px 24px; }
  .rl-svc-row { grid-template-columns: 48px 1fr; gap: 16px; }
  .rl-svc-row > :nth-child(3),
  .rl-svc-row > :nth-child(4) { display: none; }

  /* Process */
  .rl-process { padding: 60px 24px; }
  .rl-process-steps { grid-template-columns: 1fr; }
  .rl-process-phase2-grid { grid-template-columns: 1fr; }

  /* Testimonials */
  .rl-testimonials { padding: 60px 24px; }
  .rl-testimonials-grid { grid-template-columns: 1fr; }

  /* Consult */
  .rl-consult { padding: 60px 24px; }
  .rl-consult h2 { font-size: 40px; }
  .rl-consult-details { flex-direction: column; gap: 12px; align-items: flex-start; }

  /* Footer */
  .rl-foot-top { grid-template-columns: 1fr 1fr; gap: 40px; padding: 48px 24px; }
  .rl-foot-wordmark { grid-column: 1 / -1; }
  .rl-foot-bottom { flex-direction: column; gap: 6px; text-align: center; padding: 20px 24px; }
  .rl-foot-bottom .rl-foot-mono { font-size: 9px; }

  /* Blog grid on mobile */
  .fl-post-grid .fl-post-columns-post { width: 100% !important; }
}

/* ==================== ENDORSAL WALL OF LOVE ==================== */
.rl-wol-wrap {
  margin-top: 72px;
  padding-top: 56px;
  border-top: 1px solid var(--rl-rule-soft);
}
/* Let endorsal widget breathe but stay within our max-width */
.rl-wol-wrap .ndrsl-widget { max-width: 100%; }

/* ==================== WALL OF LOVE PAGE ==================== */
.rl-wol-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 64px 120px;
}
.rl-wol-hero {
  text-align: center;
  padding-bottom: 64px;
  border-bottom: 1px solid var(--rl-rule-soft);
  margin-bottom: 64px;
}
.rl-wol-hero h1 {
  font-family: var(--rl-display) !important;
  font-weight: 500 !important;
  font-size: 72px !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em;
  color: var(--rl-ink) !important;
  margin: 16px 0 24px;
}
.rl-wol-hero h1 em { color: var(--rl-brass-deep) !important; }
.rl-wol-hero p {
  font-family: var(--rl-sans);
  font-size: 18px;
  line-height: 1.7;
  color: var(--rl-text-mute);
  max-width: 560px;
  margin: 0 auto 28px;
}
.rl-wol-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  font-family: var(--rl-mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rl-text-mute);
}
.rl-wol-meta .rl-stars { font-size: 16px; color: var(--rl-brass); letter-spacing: 2px; }
.rl-wol-embed { min-height: 400px; }
.rl-wol-cta {
  text-align: center;
  padding-top: 72px;
  border-top: 1px solid var(--rl-rule-soft);
  margin-top: 72px;
}

@media (max-width: 768px) {
  .rl-wol-page { padding: 48px 24px 80px; }
  .rl-wol-hero h1 { font-size: 48px !important; }
}

/* ==================== CONTRAST + DARK SECTION TEXT FIXES ====================
   BB body sets color:#000/#262626 globally. These !important overrides restore
   correct colors in dark sections where inherited text would be black-on-dark.
   ============================================================================ */

/* Stake dark section — all body text must be light */
.rl-stake,
.rl-stake * { color: #B5BDCC; }
.rl-stake h2, .rl-stake h2 * { color: #FBF6E8 !important; }
.rl-stake h2 em { color: #D8B870 !important; }
.rl-stake-card h3, .rl-stake-card h3 * { color: #FBF6E8 !important; }
.rl-stake-card p { color: #A8B0BF !important; }
.rl-stake-right p, .rl-stake-right { color: #B5BDCC !important; }
.rl-stake-right strong { color: #E4D7B0 !important; }
.rl-stake-right em { color: #D8B870 !important; }
.rl-stake-pull blockquote { color: #E8E0CC !important; }
.rl-stake-pull .rl-pull-attr { color: #A8B0BF !important; }
.rl-stake-cards { color: inherit; }

/* Consult dark section */
.rl-consult,
.rl-consult * { color: #B5BDCC; }
.rl-consult h2 { color: #FBF6E8 !important; }
.rl-consult h2 em { color: #D8B870 !important; }
.rl-consult p { color: #B5BDCC !important; }
.rl-consult-details strong { color: #E4D7B0 !important; }

/* Hero */
.rl-hero,
.rl-hero * { color: var(--rl-paper-3); }
.rl-hero h1 em { color: var(--rl-brass-deep) !important; }

/* rl-seal monogram — darken brass slightly for 4.5:1 on parchment */
.rl-seal { color: #6E4F20 !important; border-color: #7A5E30 !important; }

/* Eyebrow on light parchment — darken brass slightly */
.rl-services .rl-eyebrow,
.rl-process .rl-eyebrow,
.rl-story .rl-eyebrow,
.rl-testimonials .rl-eyebrow,
.rl-trust-strip .rl-eyebrow { color: #6E4F20 !important; }

/* ==================== DISCLAIMER FOOTER REDESIGN ====================
   Make it consistent with the site's ink/parchment palette instead of
   a detached near-black block.
   ================================================================== */
.rl-disclaimer {
  background: var(--rl-ink) !important;
  border-top: 1px solid rgba(200,185,143,0.12) !important;
  padding: 56px 64px 0 !important;
}
.rl-disclaimer-label {
  color: var(--rl-brass) !important;
  opacity: 0.7;
}
.rl-disclaimer-text p {
  color: rgba(182,190,210,0.55) !important;
}
.rl-disclaimer-text a {
  color: rgba(182,190,210,0.55) !important;
  border-bottom-color: rgba(182,190,210,0.2) !important;
}
.rl-disclaimer-text a:hover {
  color: rgba(182,190,210,0.8) !important;
}
.rl-disclaimer-text strong {
  color: rgba(182,190,210,0.55) !important;
}
.rl-map-wrap {
  border-color: rgba(200,185,143,0.15) !important;
}
.rl-disclaimer-foot {
  border-top: 1px solid rgba(200,185,143,0.1) !important;
}
.rl-disclaimer-foot span,
.rl-disclaimer-foot a {
  color: rgba(182,190,210,0.35) !important;
  font-family: var(--rl-mono) !important;
  font-size: 10px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
}
.rl-disclaimer-foot a:hover { color: rgba(182,190,210,0.6) !important; }


/* ==================== PERFORMANCE: preconnect + font-display ====================
   Preconnect declared in PHP (functions.php). Additional render hints here.
   ============================================================================== */

/* ==================== BLOG SINGLE POST HERO ==================== */
.rl-post-hero {
  background: var(--rl-ink);
  padding: 80px 64px 72px;
  position: relative;
}
.rl-post-hero-inner {
  max-width: 860px;
  margin: 0 auto;
}
.rl-post-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--rl-mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--rl-brass);
  text-decoration: none;
  margin-bottom: 40px;
}
.rl-post-back:hover { color: #D8B870; }
.rl-post-back::before { content: '←'; font-family: inherit; font-size: 12px; }
.rl-post-cats {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.rl-post-cat {
  font-family: var(--rl-mono);
  font-size: 9px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--rl-brass);
  border: 1px solid rgba(168,136,74,0.35);
  padding: 4px 10px;
  text-decoration: none;
}
.rl-post-cat:hover { border-color: var(--rl-brass); }
.rl-post-title {
  font-family: var(--rl-display) !important;
  font-weight: 500 !important;
  font-size: 54px !important;
  line-height: 1.1 !important;
  letter-spacing: -0.015em !important;
  color: #F4EDD8 !important;
  margin: 0 0 28px !important;
}
.rl-post-meta {
  font-family: var(--rl-mono);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(182,190,210,0.45);
  display: flex;
  gap: 20px;
  align-items: center;
  flex-wrap: wrap;
}
.rl-post-meta-sep { opacity: 0.3; }
.rl-post-thumb {
  margin-top: 48px;
  border: 1px solid rgba(200,185,143,0.12);
  overflow: hidden;
  aspect-ratio: 16/7;
}
.rl-post-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Single post content area */
.rl-post-body {
  max-width: 720px;
  margin: 0 auto;
  padding: 72px 64px 100px;
}
.rl-post-body .entry-content h2 {
  font-family: var(--rl-display) !important;
  font-weight: 500 !important;
  font-size: 36px !important;
  color: var(--rl-ink) !important;
  margin: 56px 0 20px !important;
  letter-spacing: -0.01em;
}
.rl-post-body .entry-content h3 {
  font-family: var(--rl-display) !important;
  font-weight: 500 !important;
  font-size: 28px !important;
  color: var(--rl-ink) !important;
  margin: 40px 0 16px !important;
}
.rl-post-body .entry-content h4 {
  font-family: var(--rl-sans) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--rl-ink) !important;
  margin: 32px 0 12px !important;
}
.rl-post-body .entry-content p {
  font-family: var(--rl-sans) !important;
  font-size: 17px !important;
  line-height: 1.75 !important;
  color: #2A3447 !important;
  margin-bottom: 24px !important;
}
.rl-post-body .entry-content a {
  color: var(--rl-brass-deep) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.rl-post-body .entry-content ul,
.rl-post-body .entry-content ol {
  font-family: var(--rl-sans);
  font-size: 17px;
  line-height: 1.75;
  color: #2A3447;
  padding-left: 24px;
  margin-bottom: 24px;
}
.rl-post-body .entry-content li { margin-bottom: 8px; }
.rl-post-body .entry-content blockquote {
  border-left: 3px solid var(--rl-brass);
  padding: 4px 0 4px 24px;
  margin: 32px 0;
  font-family: var(--rl-display);
  font-style: italic;
  font-size: 22px;
  color: var(--rl-ink);
  line-height: 1.5;
}

/* Post CTA box at bottom */
.rl-post-cta {
  background: var(--rl-paper-2);
  border: 1px solid var(--rl-rule);
  padding: 40px 48px;
  margin-top: 64px;
  text-align: center;
}
.rl-post-cta h3 {
  font-family: var(--rl-display) !important;
  font-size: 32px !important;
  font-weight: 500 !important;
  color: var(--rl-ink) !important;
  margin: 0 0 12px !important;
}
.rl-post-cta p {
  font-family: var(--rl-sans) !important;
  font-size: 15px !important;
  color: var(--rl-text-mute) !important;
  margin: 0 0 24px !important;
}

@media (max-width: 768px) {
  .rl-post-hero { padding: 48px 24px 48px; }
  .rl-post-title { font-size: 36px !important; }
  .rl-post-body { padding: 48px 24px 64px; }
  .rl-post-thumb { aspect-ratio: 16/9; }
  .rl-post-cta { padding: 32px 24px; }
}

/* ==================== CONTRAST FIXES (all failing elements) ==================== */

/* DISCLAIMER — text too dark for ink bg */
.rl-disclaimer-label { color: #A8884A !important; opacity: 1 !important; }
.rl-disclaimer-text p,
.rl-disclaimer-text p strong { color: #6A7689 !important; }
.rl-disclaimer-text a { color: #6A7689 !important; border-bottom-color: #3A4560 !important; }
.rl-disclaimer-text a:hover { color: #8B97AD !important; }
.rl-disclaimer-foot span,
.rl-disclaimer-foot a { color: #505C72 !important; }
.rl-disclaimer-foot a:hover { color: #6A7689 !important; }

/* CONSULT BUTTON — light text on brass bg fails contrast */
.rl-consult .rl-btn { color: var(--rl-ink) !important; }
.rl-consult .rl-btn:hover { color: var(--rl-paper-3) !important; }

/* SERVICES — svc-num brass on parchment */
.rl-svc-num { color: #5C4218 !important; }

/* PROCESS — step numbers, phase labels on paper-2 bg */
.rl-step-num { color: #7A5A28 !important; }
.rl-phase-roman { color: #7A5A28 !important; }
.rl-step-meta { color: #7A5A28 !important; }
.rl-process-step p em { color: #7A5A28 !important; }

/* ==================== CONTRAST PASS 2 ==================== */
/* Consult CTA button: ink on brass fails — use paper text */
.rl-consult .rl-btn,
.rl-consult .rl-btn:visited { color: #FAF6EC !important; }

/* Disclaimer fine print — needs to reach 4.5:1 on #11192a */
.rl-disclaimer-text p,
.rl-disclaimer-text p strong,
.rl-disclaimer-text a { color: #8B97AD !important; }
.rl-disclaimer-text a:hover { color: #A8B4C8 !important; }

/* Disclaimer foot links */
.rl-disclaimer-foot span,
.rl-disclaimer-foot a { color: #7A869C !important; }

/* ==================== INNER PAGE TEMPLATE ==================== */

/* Hero band */
.rl-page-hero {
  background: #11192A !important;
  padding: 60px 64px 56px;
  border-bottom: 1px solid rgba(200,185,143,.15);
}
.rl-page-hero-inner {
  max-width: 860px;
  margin: 0 auto;
}
.rl-breadcrumb {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--rl-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #5A647C;
  margin-bottom: 20px;
}
.rl-breadcrumb a { color: var(--rl-rule); text-decoration: none; }
.rl-breadcrumb a:hover { color: var(--rl-brass); }
.rl-breadcrumb span[aria-hidden] { color: #3A4460; }
.rl-page-h1 {
  font-family: var(--rl-display) !important;
  font-size: clamp(34px, 4.5vw, 56px) !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  color: var(--rl-paper) !important;
  margin: 0 0 20px !important;
}
.rl-page-intro {
  font-family: var(--rl-sans);
  font-size: 18px;
  line-height: 1.6;
  color: #7A869C !important;
  max-width: 640px;
  margin: 0 !important;
}

/* CTA band at bottom of inner pages */
.rl-page-cta-band {
  background: var(--rl-ink);
  text-align: center;
  padding: 80px 32px;
  border-top: 1px solid rgba(200,185,143,.15);
}
.rl-page-cta-inner {
  max-width: 600px;
  margin: 0 auto;
}
.rl-page-cta-h {
  font-family: var(--rl-display) !important;
  font-size: clamp(28px, 4vw, 44px) !important;
  font-weight: 400 !important;
  color: var(--rl-paper) !important;
  margin: 0 0 16px !important;
  border: none !important;
  padding: 0 !important;
}
.rl-page-cta-band p {
  font-family: var(--rl-sans) !important;
  font-size: 17px !important;
  color: #7A869C !important;
  margin: 0 0 32px !important;
}
/* CTA button: gold border on the dark band (default .rl-btn border is ink,
   which is invisible here). */
.rl-page-cta-band .rl-btn {
  background: transparent;
  border-color: var(--rl-rule) !important;
  color: var(--rl-paper-3);
}
.rl-page-cta-band .rl-btn:hover {
  background: var(--rl-rule);
  border-color: var(--rl-rule) !important;
  color: var(--rl-ink);
}

/* Mobile adjustments for inner pages */
@media (max-width: 768px) {
  .rl-page-hero { padding: 40px 24px 36px; }
  .rl-page-content-wrap .fl-builder-content { padding: 40px 24px 0 !important; }
  .rl-page-cta-band { padding: 56px 24px; }
}

/* ==================== BB THEME BUILDER SINGULAR CONTENT ==================== */
/* Styles for pages rendered through BB Theme Builder (layout 4208)           */

/* Wrap the Post Content module in a constrained, styled container */
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content-4208 .fl-row {
  padding: 0 !important;
  margin: 0 !important;
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content-4208 .fl-row-content-wrap {
  padding: 0 !important;
  max-width: none !important;
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content-4208 .fl-col-content {
  padding: 0 !important;
}
/* Constrain the post content itself */
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-post-content,
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-module-content {
  max-width: none !important;
  padding: 0 !important;
}
/* Style the inner BB content from individual pages */
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content:not(.fl-builder-content-4208) {
  background: var(--rl-paper-3);
  padding: 48px 40px !important;
  max-width: 860px !important;
  margin: 0 auto 48px !important;
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content:not(.fl-builder-content-4208) .fl-row-content-wrap {
  padding: 0 !important;
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content:not(.fl-builder-content-4208) .fl-row,
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content:not(.fl-builder-content-4208) .fl-col-group,
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content:not(.fl-builder-content-4208) .fl-col {
  margin: 0 !important;
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content:not(.fl-builder-content-4208) .fl-col-content {
  padding: 0 !important;
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content:not(.fl-builder-content-4208) .fl-col.fl-col-bg-color {
  background: transparent !important;
}
/* Typography */
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content h1 { color: var(--rl-ink) !important; font-family: var(--rl-display) !important; font-weight: 400 !important; margin: 40px 0 14px !important; line-height: 1.2 !important; }
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content h2 { color: var(--rl-ink) !important; font-family: var(--rl-display) !important; font-weight: 400 !important; font-size: clamp(22px,2.8vw,32px) !important; margin: 40px 0 12px !important; padding-bottom: 10px !important; border-bottom: 1px solid var(--rl-rule-soft) !important; line-height: 1.25 !important; }
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content h3 { color: var(--rl-ink) !important; font-family: var(--rl-display) !important; font-weight: 400 !important; margin: 32px 0 10px !important; }
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content p { color: #2C3444 !important; font-family: var(--rl-sans) !important; font-size: 17px !important; line-height: 1.78 !important; margin: 0 0 18px !important; }
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content li { color: #2C3444 !important; font-family: var(--rl-sans) !important; font-size: 17px !important; line-height: 1.7 !important; margin-bottom: 8px !important; }
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content ul, .fl-theme-builder-singular:not(.rl-homepage) #fl-main-content ol { padding-left: 1.5em !important; margin-bottom: 18px !important; }
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content strong { color: var(--rl-ink) !important; font-weight: 600 !important; }
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content img { max-width: 100% !important; height: auto !important; border-radius: 4px; }

@media (max-width: 768px) {
  .fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content:not(.fl-builder-content-4208) {
    padding: 36px 24px !important;
  }
}

/* ==================== INNER PAGE CONTENT LAYOUT ====================
   Override the broad max-width:none on .fl-post-content so page content
   is centered at 860px. Background fills full-width via parent.
   =================================================================== */
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-builder-content-4208 {
  background: var(--rl-paper-3);
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-post-content {
  max-width: 860px !important;
  margin: 0 auto !important;
  padding: 56px 40px 64px !important;
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-post-content a:not([class]) {
  color: var(--rl-brass-deep) !important;
  text-decoration: underline !important;
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-post-content figure {
  margin: 24px 0 32px !important;
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-post-content figure.alignright {
  float: right;
  margin: 8px 0 24px 32px !important;
  max-width: 280px !important;
}
.fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-post-content figure.alignright img {
  width: 100% !important;
  border-radius: 4px;
}

@media (max-width: 768px) {
  .fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-post-content {
    padding: 40px 24px 48px !important;
  }
  .fl-theme-builder-singular:not(.rl-homepage) #fl-main-content .fl-post-content figure.alignright {
    float: none;
    margin: 0 0 24px !important;
    max-width: 100% !important;
  }
}

/* ==================== BLOG ARCHIVE (Journal) ==================== */
.rl-blog-wrap { max-width: 1120px; margin: 0 auto; padding: 72px 40px 88px; }
.rl-blog-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px;
}
.rl-blog-card {
  display: flex; flex-direction: column;
  background: var(--rl-paper-3, #FAF6EC);
  border: 1px solid var(--rl-rule-soft, #D9CFB1);
  padding: 32px 30px;
  transition: border-color .2s, transform .2s;
}
.rl-blog-card:hover { border-color: var(--rl-brass, #A8884A); transform: translateY(-2px); }
.rl-blog-cat {
  font-family: var(--rl-mono, 'JetBrains Mono'), monospace;
  font-size: 10px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--rl-brass-deep, #8A6D34); text-decoration: none; margin-bottom: 14px;
}
.rl-blog-card-title {
  font-family: var(--rl-display, 'Cormorant Garamond'), serif !important;
  font-size: 25px !important; font-weight: 500 !important; line-height: 1.18 !important;
  margin: 0 0 10px !important; color: var(--rl-ink, #11192A) !important;
}
.rl-blog-card-title a { color: inherit !important; text-decoration: none; }
.rl-blog-card-title a:hover { color: var(--rl-brass-deep, #8A6D34) !important; }
.rl-blog-date {
  font-family: var(--rl-mono, 'JetBrains Mono'), monospace;
  font-size: 11px; letter-spacing: .08em; color: #8A93A6; margin-bottom: 16px;
}
.rl-blog-excerpt {
  font-family: var(--rl-sans, 'Inter'), sans-serif;
  font-size: 15px; line-height: 1.6; color: #44506A; margin: 0 0 22px; flex: 1;
}
.rl-blog-readmore {
  font-family: var(--rl-mono, 'JetBrains Mono'), monospace;
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--rl-ink, #11192A); text-decoration: none; align-self: flex-start;
  border-bottom: 1px solid var(--rl-brass, #A8884A); padding-bottom: 3px;
}
.rl-blog-readmore:hover { color: var(--rl-brass-deep, #8A6D34); }
.rl-blog-pagination { margin-top: 56px; text-align: center; }
.rl-blog-pagination .page-numbers {
  font-family: var(--rl-mono, 'JetBrains Mono'), monospace; font-size: 13px;
  padding: 10px 15px; margin: 0 3px; color: var(--rl-ink, #11192A);
  text-decoration: none; border: 1px solid var(--rl-rule-soft, #D9CFB1);
}
.rl-blog-pagination .page-numbers.current { background: var(--rl-ink, #11192A); color: var(--rl-paper, #F6F1E7); border-color: var(--rl-ink, #11192A); }
.rl-blog-pagination .page-numbers:hover:not(.current) { border-color: var(--rl-brass, #A8884A); }
.rl-blog-pagination .screen-reader-text { position: absolute; left: -9999px; }
@media (max-width: 900px) { .rl-blog-grid { grid-template-columns: repeat(2, 1fr); } .rl-blog-wrap { padding: 56px 24px 64px; } }
@media (max-width: 600px) { .rl-blog-grid { grid-template-columns: 1fr; } }

/* ==================== LEGACY IN-CONTENT CTA ("Got Questions?") ==================== */
.rl-post-body .entry-content .cta-item { border-color: var(--rl-rule-soft, #D9CFB1) !important; border-radius: 4px !important; padding: 36px 28px !important; }
.rl-post-body .entry-content .cta-item h4 { font-family: var(--rl-display, 'Cormorant Garamond'), serif !important; font-weight: 500 !important; font-size: 30px !important; letter-spacing: 0 !important; }
.rl-post-body .entry-content .cta-item p { font-family: var(--rl-sans, 'Inter'), sans-serif !important; font-size: 16px !important; line-height: 1.6 !important; }
.rl-post-body .entry-content .cta-item a {
  display: inline-block !important;
  background-color: var(--rl-ink, #11192A) !important;
  color: var(--rl-paper-3, #FAF6EC) !important;
  border: 1px solid var(--rl-ink, #11192A) !important;
  border-radius: 0 !important;
  padding: 14px 30px !important;
  font-family: var(--rl-sans, 'Inter'), sans-serif !important;
  font-size: 12px !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  transition: all .2s !important;
}
.rl-post-body .entry-content .cta-item a:hover { background-color: var(--rl-brass-deep, #8A6D34) !important; border-color: var(--rl-brass-deep, #8A6D34) !important; color: #fff !important; }
