/*
Theme Name:   Rule of Law Project
Theme URI:    https://ruleoflawproject.org
Description:  Child theme of Twenty Twenty-Five for The Rule of Law Project. Styles only — all content, pages, menus and structure are managed in WordPress.
Author:       The Rule of Law Project
Version:      1.13.6
Template:     twentytwentyfive
Requires at least: 6.7
Requires PHP: 7.4
License:      GPL-2.0-or-later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  rlp
*/

/* ==========================================================================
   Utility classes. Apply these in the block editor under
   Block > Advanced > "Additional CSS class(es)".
   Purely presentational — no content or layout structure lives here.
   ========================================================================== */

:root{
  /* Light context (default). Dark sections re-point these; see "Light theme" below. */
  --rlp-accent:#AE0E35; --rlp-strong:#06213F; --rlp-muted:#4A5B6E;
  --rlp-line:rgba(6,33,63,.14);
  --rlp-field-bg:#fff; --rlp-field-bg-focus:#fff;
  --rlp-field-border:rgba(6,33,63,.4); --rlp-field-border-hover:rgba(6,33,63,.7);
  --rlp-field-autofill:#fff;
  --rlp-header-h: 76px;
  --rlp-fluting: repeating-linear-gradient(90deg,
                 rgba(189,168,127,.07) 0 2px, transparent 2px 26px);
}
@media (max-width:1100px){ :root{ --rlp-header-h: 66px; } }

/* --- Global behaviour ---------------------------------------------------- */
html{ scroll-behavior:smooth; }

/* Any block given an HTML anchor stops clear of the sticky header */
[id]{ scroll-margin-top: calc(var(--rlp-header-h) + 1rem); }

/* Visible keyboard focus. Tan clears 6.99:1 on every navy we use. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--rlp-accent);
  outline-offset:3px;
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}

/* --- Header: .rlp-header on the header template part --------------------- */
/* Sticky must live on the template-part WRAPPER, not on .rlp-header.
   WordPress renders <header class="wp-block-template-part"> around the part,
   and that wrapper is exactly the header's height. A sticky element can only
   travel inside its own parent, so sticking the inner div gave it zero room
   and it scrolled away. Sticking the wrapper gives it the full page height. */
.wp-site-blocks > header.wp-block-template-part{
  position:sticky; top:0; z-index:100;
}
.rlp-header{
  position:relative;
  background:transparent;
  border-bottom:1px solid var(--rlp-line);
}
/* The blur lives on a pseudo-element, NOT on .rlp-header itself. A
   backdrop-filter makes its element a containing block for position:fixed
   descendants, which trapped the mobile nav overlay inside the header's
   88px box instead of letting it fill the viewport. The pseudo-element
   keeps the effect without capturing the overlay. */
.rlp-header::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(4,23,41,.86);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  backdrop-filter:saturate(160%) blur(14px);
}
.rlp-header.is-scrolled::before{ background:rgba(4,23,41,.96); }
/* Red underline slides in under nav items */
.rlp-header .wp-block-navigation-item__content{
  position:relative; padding-block:.4rem;
}
.rlp-header .wp-block-navigation-item__content::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px;
  background:var(--wp--preset--color--red);
  transform:scaleX(0); transform-origin:left;
  transition:transform .22s ease;
}
.rlp-header .wp-block-navigation-item__content:hover::after,
.rlp-header .current-menu-item > .wp-block-navigation-item__content::after{
  transform:scaleX(1);
}
/* Logo sizing in the header */
.rlp-logo img,.rlp-logo svg{ width:clamp(150px,17vw,208px); height:auto; }

/* --- Core Navigation mobile overlay ---------------------------------------
   Core's padding rule is (0,3,0) via :not(.disable-default-overlay), so we
   match that pattern to win on specificity rather than using !important. */
.rlp-header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){
  background:var(--wp--preset--color--navy-deep);
  padding:5.5rem clamp(1.25rem,6vw,2.25rem) 3rem;
}
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{
  width:100%; align-items:stretch; gap:0;
}
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{
  width:100%;
}
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
  display:block; width:100%;
  font-size:var(--wp--preset--font-size--large);
  padding:.9rem 0;
  border-bottom:1px solid var(--rlp-line);
}
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after{
  display:none;
}

/* Small button, for the Give action in the header */
.rlp-btn-sm .wp-block-button__link{
  padding:.58rem 1.25rem;
  font-size:var(--wp--preset--font-size--small);
}

/* --- Column fluting, echoing the mark -----------------------------------
   Used on dark cards, video placeholders and centred bands. Heroes do NOT get
   the texture (.rlp-fluting-hero is a layout class only). */
.rlp-fluting-hero,.rlp-fluting-center{ position:relative; overflow:hidden; }
.rlp-fluting-hero > *,.rlp-fluting-center > *{ position:relative; z-index:1; }
.rlp-fluting-center::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:var(--rlp-fluting);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 0%,transparent 72%);
          mask-image:radial-gradient(ellipse at center,#000 0%,transparent 72%);
}

/* --- Section header: red bar + tan label -------------------------------- */
/* .rlp-eyebrow on a Paragraph */
.rlp-eyebrow{
  display:flex; align-items:center; gap:clamp(.85rem,1.5vw,1.25rem);
  letter-spacing:.09em; text-transform:uppercase;
  color:var(--rlp-accent); font-weight:700;
  line-height:1.15;
  /* no font-size here on purpose: set it per block so it can be tuned in the
     editor without shipping a new theme build */
}
.rlp-eyebrow::before{
  content:""; height:10px; flex:0 0 auto;
  width:clamp(40px,5vw,64px);
  background:var(--wp--preset--color--red);
}
@media (max-width:560px){
  .rlp-eyebrow{ align-items:flex-start; letter-spacing:.06em; }
  .rlp-eyebrow::before{ margin-top:.45em; }
}

/* .rlp-rule-red on a Separator block */
.rlp-rule-red{
  border:0 !important; height:10px !important; width:88px !important;
  max-width:88px; background:var(--wp--preset--color--red);
  margin-left:0; opacity:1;
}
.rlp-rule-red.rlp-center{ margin-inline:auto; }

/* --- Editorial treatments ------------------------------------------------ */
/* .rlp-lede on a Paragraph */
.rlp-lede{
  font-size:var(--wp--preset--font-size--large);
  line-height:1.5; color:var(--rlp-strong);
}

/* .rlp-stark on a Group holding the facts + the verdict line */
.rlp-stark{
  border-left:3px solid var(--rlp-accent);
  padding:.35rem 0 .35rem 1.75rem;
}
/* .rlp-verdict on the closing Paragraph inside it */
.rlp-verdict{
  color:var(--rlp-accent);
  font-size:var(--wp--preset--font-size--large);
  font-weight:600; line-height:1.3;
}

/* .rlp-turn on a Paragraph — the pivot line */
.rlp-turn{
  font-size:var(--wp--preset--font-size--large);
  color:var(--rlp-accent); font-style:italic;
}

/* .rlp-display-italic on a Heading — the closing line */
.rlp-display-italic{
  font-size:var(--wp--preset--font-size--display);
  font-style:italic; line-height:1.05; letter-spacing:-.025em;
  color:var(--rlp-strong);
}

/* .rlp-term on inline text set in tan */
.rlp-term{ color:var(--rlp-accent); font-weight:600; font-style:normal; }

/* --- Numbered work list -------------------------------------------------- */
/* .rlp-work on a Group containing [number, body] */
.rlp-work{
  display:grid; grid-template-columns:4.5rem 1fr;
  gap:clamp(1rem,2.5vw,2rem);
  padding-top:2rem;
  border-top:1px solid var(--rlp-line);
}
.rlp-work.rlp-first{ border-top:0; padding-top:0; }
.rlp-num{
  font-size:var(--wp--preset--font-size--large);
  color:var(--rlp-accent); font-weight:700;
  font-variant-numeric:tabular-nums; line-height:1.2;
}
@media (max-width:560px){
  .rlp-work{ grid-template-columns:1fr; gap:.5rem; }
  .rlp-num{ font-size:var(--wp--preset--font-size--small); letter-spacing:.18em; }
}

/* --- Helpers ------------------------------------------------------------- */
.rlp-measure{ max-width:38rem; }
.rlp-balance{ text-wrap:balance; }
.rlp-tight-heading{ max-width:20ch; }

/* --- Navigation breakpoint ------------------------------------------------
   Core switches the Navigation block to its overlay at 600px. With seven
   items plus a logo that is far too late, so we move it to 1100px. Higher
   specificity than core's rules, so no !important is needed.            */
@media (max-width:1100px){
  .rlp-header .wp-block-navigation__responsive-container:not(.is-menu-open){
    display:none;
  }
  .rlp-header .wp-block-navigation__responsive-container-open:not(.always-shown){
    display:flex;
  }
}
/* Never let a nav label break mid-phrase */
.rlp-header .wp-block-navigation-item__content{ white-space:nowrap; }
.rlp-header .wp-block-button__link{ white-space:nowrap; }

/* Hamburger / close icons inherit the palette */
.rlp-header .wp-block-navigation__responsive-container-open,
.rlp-header .wp-block-navigation__responsive-container-close{
  color:var(--wp--preset--color--body); padding:.4rem;
}
.rlp-header .wp-block-navigation__responsive-container-open:hover,
.rlp-header .wp-block-navigation__responsive-container-close:hover{
  color:var(--rlp-strong);
}

/* --- Logged-in admin bar -------------------------------------------------
   Keeps the sticky header from hiding beneath the WP admin bar while you edit. */
body.admin-bar .wp-site-blocks > header.wp-block-template-part{ top:32px; }
@media screen and (max-width:782px){
  /* WP switches the admin bar to position:absolute here, so it scrolls away;
     offsetting the header would leave a 46px dead gap. */
  body.admin-bar .wp-site-blocks > header.wp-block-template-part{ top:0; }
}

/* --- Beating core's constrained-layout auto margins -----------------------
   WordPress gives every child of a constrained Group `margin-inline:auto`,
   which centres our reading measure instead of hanging it off the left edge.
   Core emits `margin-left:auto !important`, so !important is required here
   - specificity alone cannot win. Verified against the rendered page.                            */
.rlp-measure.rlp-measure{ margin-left:0 !important; margin-right:auto !important; }
.rlp-rule-red.rlp-rule-red{ margin-left:0 !important; margin-right:auto !important; }
.rlp-rule-red.rlp-center.rlp-center{ margin-left:auto !important; margin-right:auto !important; }

/* Work-item body keeps the reading measure (the number column is 4.5rem) */
.rlp-work > :last-child{ max-width:38rem; }

/* --- Mailchimp signup form -----------------------------------------------
   Posts straight to Mailchimp's public endpoint; no plugin, no API key.
   Native validation (required + type=email) catches typos before the
   visitor is handed off.                                                  */
/* Inputs default to content-box, so width:100% + padding overflowed the
   grid track and made the two name fields overlap. Scoped, not a global reset. */
.rlp-subscribe, .rlp-subscribe *{ box-sizing:border-box; }
.rlp-subscribe{ display:grid; gap:1.25rem; max-width:34rem; margin-top:2.25rem; }
.rlp-subscribe__row{ display:grid; gap:1.25rem; grid-template-columns:1fr 1fr; }
@media (max-width:600px){ .rlp-subscribe__row{ grid-template-columns:1fr; } }

.rlp-field{ display:flex; flex-direction:column; gap:.45rem; }
.rlp-field label{
  font-size:var(--wp--preset--font-size--small);
  letter-spacing:.08em; text-transform:uppercase; font-weight:600;
  color:var(--rlp-accent);
}
.rlp-field label .rlp-optional{
  text-transform:none; letter-spacing:0; font-weight:400;
  color:var(--rlp-muted);
}
.rlp-field input{
  font-family:inherit;
  font-size:var(--wp--preset--font-size--medium);
  color:var(--rlp-strong);
  background:var(--rlp-field-bg);
  border:1px solid var(--rlp-field-border);
  border-radius:0;
  padding:.8rem 1rem;
  width:100%;
  transition:border-color .18s ease, background-color .18s ease;
}
.rlp-field input:hover{ border-color:var(--rlp-field-border-hover); }
.rlp-field input:focus-visible{
  outline:3px solid var(--rlp-accent);
  outline-offset:2px;
  border-color:var(--rlp-accent);
  background:var(--rlp-field-bg-focus);
}
/* Chrome paints autofilled fields near-white, which is unreadable on navy */
.rlp-field input:-webkit-autofill,
.rlp-field input:-webkit-autofill:hover,
.rlp-field input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--rlp-strong);
  -webkit-box-shadow:0 0 0 1000px var(--rlp-field-autofill) inset;
  caret-color:var(--rlp-strong);
}

.rlp-subscribe__button{
  justify-self:start;
  font-family:inherit;
  font-size:var(--wp--preset--font-size--medium);
  font-weight:600; letter-spacing:.02em; line-height:1.2;
  color:#fff;
  background:var(--wp--preset--color--red);
  border:2px solid var(--wp--preset--color--red);
  border-radius:0;
  padding:.85rem 1.75rem;
  cursor:pointer;
  transition:background-color .18s ease, border-color .18s ease;
}
.rlp-subscribe__button:hover{
  background:var(--wp--preset--color--red-dark);
  border-color:var(--wp--preset--color--red-dark);
}
.rlp-subscribe__button:active{ transform:translateY(1px); }

.rlp-subscribe__note{
  margin:0;
  font-size:var(--wp--preset--font-size--small);
  color:var(--rlp-muted);
}

/* --- Contact form ---------------------------------------------------------
   Shares .rlp-field with the Mailchimp form; adds the textarea, the hidden
   honeypot, and the success/error notices.                                */
.rlp-contact{ display:grid; gap:1.25rem; max-width:34rem; margin-top:2.25rem; }
.rlp-contact, .rlp-contact *{ box-sizing:border-box; }

.rlp-field textarea{
  font-family:inherit;
  font-size:var(--wp--preset--font-size--medium);
  line-height:1.6;
  color:var(--rlp-strong);
  background:var(--rlp-field-bg);
  border:1px solid var(--rlp-field-border);
  border-radius:0;
  padding:.8rem 1rem;
  width:100%;
  min-height:11rem;
  resize:vertical;
  transition:border-color .18s ease, background-color .18s ease;
}
.rlp-field textarea:hover{ border-color:var(--rlp-field-border-hover); }
.rlp-field textarea:focus-visible{
  outline:3px solid var(--rlp-accent);
  outline-offset:2px;
  border-color:var(--rlp-accent);
  background:var(--rlp-field-bg-focus);
}

/* Honeypot: off-screen rather than display:none, which some bots detect */
.rlp-hp{ position:absolute; left:-5000px; width:1px; height:1px; overflow:hidden; }

.rlp-form-notice{
  margin:0 0 1.5rem;
  padding:.9rem 1.1rem;
  border-left:3px solid var(--rlp-accent);
  background:var(--rlp-field-bg);
  font-size:var(--wp--preset--font-size--medium);
  color:var(--rlp-strong);
  max-width:34rem;
}
.rlp-form-notice--err{ border-left-color:var(--wp--preset--color--red); }


/* ==========================================================================
   v1.1 — Light theme
   Pages are light by default (white / mist). Navy frames the page: header,
   hero, closing band, footer. Any block with a navy background, or the
   .rlp-dark class, flips to the dark palette below.
   ========================================================================== */
:is(.has-navy-background-color,.has-navy-deep-background-color,.has-navy-raised-background-color,.rlp-dark){
  --rlp-accent:var(--wp--preset--color--tan);
  --rlp-strong:#fff; --rlp-muted:var(--wp--preset--color--muted);
  --rlp-line:rgba(189,168,127,.16);
  --rlp-field-bg:rgba(255,255,255,.05); --rlp-field-bg-focus:rgba(255,255,255,.08);
  --rlp-field-border:rgba(189,168,127,.35); --rlp-field-border-hover:rgba(189,168,127,.6);
  --rlp-field-autofill:#0b2744;
  color:var(--wp--preset--color--body);
}
:is(.has-navy-background-color,.has-navy-deep-background-color,.has-navy-raised-background-color,.rlp-dark)
  :is(h1,h2,h3,h5,h6,.wp-block-heading:not(h4)){ color:#fff; }
:is(.has-navy-background-color,.has-navy-deep-background-color,.has-navy-raised-background-color,.rlp-dark)
  :is(h4,.rlp-eyebrow){ color:var(--wp--preset--color--tan); }
:is(.has-navy-background-color,.has-navy-deep-background-color,.has-navy-raised-background-color,.rlp-dark)
  a:where(:not(.wp-element-button)){ color:var(--wp--preset--color--tan); }
:is(.has-navy-background-color,.has-navy-deep-background-color,.has-navy-raised-background-color,.rlp-dark)
  a:where(:not(.wp-element-button)):hover{ color:#fff; }
/* Outline buttons on navy: tan, as in v1.0 */
:is(.has-navy-background-color,.has-navy-deep-background-color,.has-navy-raised-background-color,.rlp-dark)
  .is-style-outline .wp-block-button__link{
  color:var(--wp--preset--color--tan); border-color:var(--wp--preset--color--tan); background:transparent;
}
:is(.has-navy-background-color,.has-navy-deep-background-color,.has-navy-raised-background-color,.rlp-dark)
  .is-style-outline .wp-block-button__link:hover{
  background:var(--wp--preset--color--tan); color:var(--wp--preset--color--navy-deep);
}
/* Footer links keep their muted tone (set inline in the template part) */
footer.wp-block-template-part a{ color:var(--wp--preset--color--muted); }
footer.wp-block-template-part a:hover{ color:#fff; }

/* Light bands */
.rlp-band-mist{ background:var(--wp--preset--color--mist); }
.rlp-band-mist-deep{ background:var(--wp--preset--color--mist-deep); }
.rlp-hairline-top{ border-top:1px solid var(--rlp-line); }

/* ==========================================================================
   Portal cards (homepage). .rlp-portal on a Group holding .rlp-card Groups.
   Each card: label paragraph, heading, paragraph, and a link; the link's
   ::after stretches over the whole card so the card is one click target.
   ========================================================================== */
.rlp-portal{
  display:grid; gap:clamp(1rem,2vw,1.5rem);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));
}
.rlp-card{
  position:relative; isolation:isolate; overflow:hidden;
  display:flex; flex-direction:column; justify-content:flex-end; gap:.6rem;
  min-height:19rem; padding:clamp(1.4rem,2.4vw,2rem);
  background:var(--wp--preset--color--navy-deep); color:var(--wp--preset--color--body);
  transition:transform .25s ease, box-shadow .25s ease;
}
/* fluted column texture, as in the mark */
.rlp-card::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--rlp-fluting);
  -webkit-mask-image:linear-gradient(160deg,#000 0%,transparent 70%);
          mask-image:linear-gradient(160deg,#000 0%,transparent 70%);
  transition:opacity .25s ease;
}
.rlp-card::after{                  /* red bar grows on hover */
  content:""; position:absolute; left:0; bottom:0; height:6px; width:3.5rem;
  background:var(--wp--preset--color--red); transition:width .3s ease;
}
.rlp-card:hover,.rlp-card:focus-within{ transform:translateY(-4px); box-shadow:0 14px 34px rgba(4,23,41,.28); }
.rlp-card:hover::after,.rlp-card:focus-within::after{ width:100%; }
.rlp-card.rlp-card--image{ background-size:cover; background-position:center; }
.rlp-card.rlp-card--image::before{
  inset:0; background:linear-gradient(180deg,rgba(4,23,41,.15) 0%,rgba(4,23,41,.92) 100%);
  -webkit-mask-image:none; mask-image:none;
}
.rlp-card > *{ margin:0; max-width:none; }
.rlp-card .rlp-card__kicker{
  font-size:var(--wp--preset--font-size--small); letter-spacing:.14em; text-transform:uppercase;
  font-weight:700; color:var(--wp--preset--color--tan);
}
.rlp-card h3{ color:#fff; font-size:var(--wp--preset--font-size--heading-xs); }
.rlp-card p{ color:var(--wp--preset--color--body); font-size:var(--wp--preset--font-size--small); }
.rlp-card a{ color:#fff; text-decoration:none; font-weight:600; }
.rlp-card a::after{ content:""; position:absolute; inset:0; z-index:2; }
.rlp-card a:focus-visible{ outline:none; }
.rlp-card:has(a:focus-visible){ outline:3px solid var(--wp--preset--color--tan); outline-offset:3px; }
.rlp-card--wide{ grid-column:1 / -1; min-height:15rem; }
@media (min-width:900px){ .rlp-portal.rlp-portal--2x2{ grid-template-columns:repeat(2,1fr); } }

/* Stat / fact strip */
.rlp-facts{ display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit,minmax(11rem,1fr)); text-align:left; }
.rlp-facts > *{ margin:0; border-top:3px solid var(--wp--preset--color--red); padding-top:.9rem; }
.rlp-facts strong{ display:block; font-size:var(--wp--preset--font-size--xx-large); line-height:1.05; color:var(--rlp-strong); }

/* ==========================================================================
   Filterable cards (Voices). JS builds the chip row from the .rlp-cat-*
   classes found on the children of .rlp-filterable.
   ========================================================================== */
.rlp-chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 2rem; padding:0; list-style:none; }
.rlp-chip{
  font:inherit; font-size:var(--wp--preset--font-size--small); font-weight:600; letter-spacing:.04em;
  padding:.5rem 1rem; cursor:pointer; background:transparent; color:var(--rlp-strong);
  border:2px solid var(--wp--preset--color--navy); border-radius:0;
  transition:background-color .18s ease,color .18s ease;
}
.rlp-chip:hover{ background:var(--wp--preset--color--mist-deep); }
.rlp-chip[aria-pressed="true"]{ background:var(--wp--preset--color--navy); color:#fff; }
.rlp-filterable{ display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr)); }
.rlp-filterable > [hidden]{ display:none; }
.rlp-filterable > *{ margin:0; max-width:none; }

.rlp-quotecard{
  position:relative; padding:2rem 1.75rem 1.5rem; background:#fff;
  border:1px solid var(--rlp-line); border-top:4px solid var(--wp--preset--color--red);
  display:flex; flex-direction:column; gap:1rem;
}
.rlp-quotecard::before{
  content:"\201C"; position:absolute; top:-.1em; left:1.25rem; font-size:5rem; line-height:1;
  color:var(--wp--preset--color--mist-deep); font-weight:700; z-index:0;
}
.rlp-quotecard > *{ position:relative; margin:0; }
.rlp-quotecard .rlp-q{ font-size:var(--wp--preset--font-size--large); line-height:1.4; font-style:italic; color:var(--wp--preset--color--navy); }
.rlp-quotecard .rlp-by{ font-size:var(--wp--preset--font-size--small); color:var(--rlp-muted); margin-top:auto; }
.rlp-quotecard .rlp-by strong{ color:var(--wp--preset--color--navy); display:block; font-size:var(--wp--preset--font-size--medium); }
.rlp-quotecard.rlp-empty{ border-style:dashed; border-top-style:solid; background:transparent; }
.rlp-quotecard.rlp-empty .rlp-q{ color:var(--rlp-muted); }

/* Video slot (16:9, click-to-load; nothing is requested from YouTube until clicked) */
.rlp-video{
  position:relative; aspect-ratio:16/9; width:100%; display:grid; place-items:center;
  background:var(--wp--preset--color--navy-deep); color:#fff; overflow:hidden;
}
.rlp-video::before{ content:""; position:absolute; inset:0; background:var(--rlp-fluting); opacity:.9; }
.rlp-video button.rlp-play{
  position:relative; z-index:1; display:grid; gap:.6rem; justify-items:center; width:100%; height:100%;
  align-content:center; padding:1rem; font:inherit; color:#fff; background:transparent; border:0; cursor:pointer; text-align:center;
}
.rlp-video .rlp-play__icon{
  width:3.6rem; height:3.6rem; border-radius:50%; background:var(--wp--preset--color--red);
  display:grid; place-items:center; transition:transform .2s ease;
}
.rlp-video .rlp-play__icon::after{
  content:""; margin-left:.25rem; border-left:1rem solid #fff; border-top:.65rem solid transparent; border-bottom:.65rem solid transparent;
}
.rlp-video button.rlp-play:hover .rlp-play__icon{ transform:scale(1.1); }
.rlp-video .rlp-play__label{ font-size:var(--wp--preset--font-size--small); letter-spacing:.04em; max-width:30ch; }
.rlp-video .rlp-play__warn{ font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:var(--wp--preset--color--tan); font-weight:700; }
.rlp-video iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; z-index:2; }
.rlp-video.rlp-video--empty .rlp-play__icon{ background:transparent; border:2px dashed var(--wp--preset--color--tan); }
.rlp-video.rlp-video--empty .rlp-play__icon::after{ border-left-color:var(--wp--preset--color--tan); }

/* ==========================================================================
   Collage (What We're Watching). CSS columns give a masonry flow; items
   vary in height and carry a slight tilt. .rlp-collage on a Group.
   ========================================================================== */
.rlp-collage{ column-gap:clamp(1rem,2vw,1.75rem); columns:1; }
@media (min-width:640px){ .rlp-collage{ columns:2; } }
@media (min-width:1000px){ .rlp-collage{ columns:3; } }
.rlp-collage > *{
  break-inside:avoid; margin:0 0 clamp(1rem,2vw,1.75rem); max-width:none;
  transition:transform .25s ease, box-shadow .25s ease;
}
.rlp-collage > .rlp-tilt-l{ transform:rotate(-1.2deg); }
.rlp-collage > .rlp-tilt-r{ transform:rotate(1deg); }
.rlp-collage > *:hover{ transform:rotate(0) translateY(-3px); box-shadow:0 12px 28px rgba(4,23,41,.22); z-index:2; }
.rlp-tile{ background:#fff; border:1px solid var(--rlp-line); padding:1.25rem 1.25rem 1.1rem; display:flex; flex-direction:column; gap:.7rem; }
.rlp-tile > *{ margin:0; }
.rlp-tile img{ display:block; width:100%; height:auto; }
.rlp-tile .rlp-tag{
  align-self:flex-start; font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700;
  background:var(--wp--preset--color--navy); color:#fff; padding:.25rem .6rem;
}
.rlp-tile h3{ font-size:var(--wp--preset--font-size--large); line-height:1.2; }
.rlp-tile p{ font-size:var(--wp--preset--font-size--small); color:var(--rlp-muted); }
.rlp-tile .rlp-src{ font-size:.82rem; color:var(--rlp-muted); }
.rlp-tile a.rlp-read{ font-weight:600; font-size:var(--wp--preset--font-size--small); }
.rlp-tile--navy{ background:var(--wp--preset--color--navy-deep); border-color:transparent; }
.rlp-tile--navy :is(h3,.rlp-big){ color:#fff; }
.rlp-tile--navy p,.rlp-tile--navy .rlp-src{ color:var(--wp--preset--color--body); }
.rlp-tile--navy a{ color:var(--wp--preset--color--tan); }
.rlp-tile--navy .rlp-tag{ background:var(--wp--preset--color--red); }
.rlp-tile--pull{ border-left:6px solid var(--wp--preset--color--red); background:var(--wp--preset--color--mist); }
.rlp-tile .rlp-big{ font-size:var(--wp--preset--font-size--x-large); line-height:1.15; font-weight:700; color:var(--wp--preset--color--navy); }
.rlp-tile--photo{ padding:0; border:0; background:transparent; }
.rlp-tile--photo figcaption{ font-size:.82rem; color:var(--rlp-muted); padding:.5rem .1rem 0; }
.rlp-tile--empty{ border:2px dashed var(--rlp-muted); background:transparent; }
.rlp-tile--empty p{ color:var(--rlp-muted); }

/* Reveal on scroll (JS adds .rlp-in; without JS everything stays visible) */
.rlp-js .rlp-reveal{ opacity:0; translate:0 24px; transition:opacity .6s ease, translate .6s ease; }
.rlp-js .rlp-reveal.rlp-in{ opacity:1; translate:0 0; }

/* Section jump bar for the collage page */
.rlp-jump{ display:flex; flex-wrap:wrap; gap:.75rem; }

/* Closing "message" band keeps fluting centered; light variant of the eyebrow bar needs no change. */

/* --- v1.1 fixes ---------------------------------------------------------- */
/* Stat tile number was navy-on-navy */
.rlp-tile.rlp-tile--navy .rlp-big{ color:#fff; }
/* No stray gap between full-width bands */
.wp-block-post-content > .alignfull{ margin-block-start:0 !important; }
/* Portal cards: white by default, .rlp-card--dark for feature cards */
.rlp-card:not(.rlp-card--dark){
  background:#fff; border:1px solid var(--rlp-line); color:var(--wp--preset--color--ink);
}
.rlp-card:not(.rlp-card--dark) .rlp-card__kicker{ color:var(--rlp-accent); }
.rlp-card:not(.rlp-card--dark) h3{ color:var(--wp--preset--color--navy); }
.rlp-card:not(.rlp-card--dark) p{ color:var(--wp--preset--color--ink); }
.rlp-card:not(.rlp-card--dark) a{ color:var(--wp--preset--color--navy); }
.rlp-card:not(.rlp-card--dark)::before{
  background:repeating-linear-gradient(90deg,rgba(6,33,63,.05) 0 2px,transparent 2px 26px);
}

/* Grid children must not inherit the flow-layout block gap (offset the 2nd column) */
.rlp-portal.rlp-portal > *{ margin:0 !important; }
.rlp-card.rlp-card > .rlp-card__kicker,
.rlp-card.rlp-card > *{ margin:0; }


/* --- Donation pop-up ------------------------------------------------------ */
.rlp-popup{
  position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:1.25rem;
  background:rgba(4,23,41,.62); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  animation:rlp-fade .3s ease;
}
.rlp-popup[hidden]{ display:none; }
.rlp-popup__box{
  position:relative; width:min(100%,32rem); background:#fff; color:var(--wp--preset--color--ink);
  border-top:8px solid var(--wp--preset--color--red); padding:clamp(1.75rem,4vw,2.5rem);
  box-shadow:0 24px 60px rgba(4,23,41,.4); animation:rlp-rise .35s ease;
}
.rlp-popup__box h2{ font-size:var(--wp--preset--font-size--x-large); margin:0 0 .75rem; color:var(--wp--preset--color--navy); }
.rlp-popup__box p{ margin:0 0 1.5rem; }
.rlp-popup__actions{ display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.5rem; }
.rlp-popup__give{
  display:inline-block; background:var(--wp--preset--color--red); color:#fff !important; text-decoration:none;
  font-weight:600; padding:.85rem 1.75rem; border:2px solid var(--wp--preset--color--red);
}
.rlp-popup__give:hover{ background:var(--wp--preset--color--red-dark); border-color:var(--wp--preset--color--red-dark); }
.rlp-popup__later{ font:inherit; background:none; border:0; padding:.25rem; color:var(--rlp-muted); text-decoration:underline; cursor:pointer; }
.rlp-popup__x{
  position:absolute; top:.5rem; right:.6rem; width:2.5rem; height:2.5rem; font-size:1.6rem; line-height:1;
  background:none; border:0; color:var(--wp--preset--color--navy); cursor:pointer;
}
.rlp-popup-open{ overflow:hidden; }
@keyframes rlp-fade{ from{opacity:0} to{opacity:1} }
@keyframes rlp-rise{ from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:none} }


/* ==========================================================================
   v1.3 — Layout and contrast pass
   1. One grid: header, hero and every section share a 1200px container and
      the same left edge.
   2. Header is solid navy (it was translucent, which read as grey on light pages).
   3. Eyebrows are navy on light, tan on navy; accents on light are deep red.
   4. Text sections use a two-column "split": heading and aside on the left,
      reading-width body on the right. No more empty right half.
   ========================================================================== */
.rlp-header::before{
  background:var(--wp--preset--color--navy-deep);
  -webkit-backdrop-filter:none; backdrop-filter:none;
}
.rlp-header.is-scrolled::before{ background:var(--wp--preset--color--navy-deep); }

.rlp-eyebrow{ color:var(--rlp-strong); }

/* Reading measure for loose text directly inside a full-width section */
.wp-block-post-content > .alignfull:not(.has-text-align-center) >
  :is(p,ul,ol,h2,h3,h4,h5,h6,blockquote,.wp-block-buttons,.wp-block-shortcode):not(.alignwide):not(.alignfull){
  max-width:52rem;
  /* align to the 1200px container's left edge, not the viewport's */
  margin-left:max(0px, calc((100% - 1200px) / 2)) !important; margin-right:auto !important;
}

.rlp-split{
  display:grid; grid-template-columns:minmax(min-content,4fr) minmax(0,7fr);
  column-gap:clamp(2rem,6vw,6rem); align-items:start;
}
.rlp-split > *{ margin:0 !important; max-width:none; }
.rlp-split__head{ position:sticky; top:calc(var(--rlp-header-h) + 2.5rem); display:grid; gap:1.25rem; }
.rlp-split__head > *{ margin:0 !important; }
.rlp-split__body > * + *{ margin-top:1.15rem; }
.rlp-split__body > .rlp-stark + .rlp-stark, .rlp-split__body > * + .rlp-stark{ margin-top:2rem; }
@media (max-width:860px){
  .rlp-split{ grid-template-columns:1fr; row-gap:1.5rem; }
  .rlp-split__head{ position:static; }
}
/* Aside: next-step links, fills the left column on text pages */
.rlp-aside{ border-left:4px solid var(--wp--preset--color--red); padding:.25rem 0 .25rem 1.25rem; display:grid; gap:.6rem; }
.rlp-aside > *{ margin:0 !important; }
.rlp-aside a{ font-weight:600; text-decoration:none; }
.rlp-aside a:hover{ text-decoration:underline; }
.rlp-aside h4{ margin-bottom:.25rem !important; }

/* Person columns and wide grids already span the container; keep photo+bio tidy */
.wp-block-post-content .wp-block-columns{ gap:clamp(1.5rem,3vw,3rem); }


/* ==========================================================================
   v1.4 — Tonal rhythm
   Principle: avoid repeated hard flips between near-black and white. The page
   is built from three tones only:
     1. white header, then ONE tall navy hero at the top
     2. a pale-blue "paper" body, with white cards and a barely-there mist band
     3. ONE navy closing block (closing band + footer merge into it)
   Dark/light edges are softened with short gradients instead of hard cuts.
   ========================================================================== */

/* White header */
.rlp-header{ color:var(--wp--preset--color--navy); border-bottom:1px solid rgba(6,33,63,.12); }
.rlp-header::before{ background:#fff; }
.rlp-header.is-scrolled::before{ background:#fff; }
.rlp-header.is-scrolled{ box-shadow:0 2px 14px rgba(6,33,63,.08); }
.rlp-header .wp-block-navigation-item__content{ color:var(--wp--preset--color--navy); font-weight:500; }
.rlp-header .wp-block-navigation-item__content:hover{ color:var(--wp--preset--color--red-dark); }
.rlp-header .wp-block-navigation__responsive-container-open,
.rlp-header .wp-block-navigation__responsive-container-close{ color:var(--wp--preset--color--navy); }
.rlp-header .wp-block-navigation__responsive-container-open:hover,
.rlp-header .wp-block-navigation__responsive-container-close:hover{ color:var(--wp--preset--color--red-dark); }
.rlp-header .wp-block-navigation__submenu-container{
  background:#fff; border:1px solid rgba(6,33,63,.14); box-shadow:0 10px 28px rgba(6,33,63,.12);
}
/* Mobile overlay stays navy, so its links go light */
.rlp-header .is-menu-open{ --rlp-line:rgba(189,168,127,.16); }
.rlp-header .is-menu-open .wp-block-navigation-item__content,
.rlp-header .is-menu-open .wp-block-navigation__responsive-container-close{ color:var(--wp--preset--color--body); }
.rlp-header .is-menu-open .wp-block-navigation-item__content:hover{ color:#fff; }
.rlp-header .is-menu-open .wp-block-navigation__submenu-container{ background:transparent; border:0; box-shadow:none; }

/* Hero: the one big dark moment, with depth from a soft glow. Hard edge, no fade. */
.rlp-fluting-hero{
  background-image:radial-gradient(120% 90% at 85% 0%, rgba(10,44,80,.9) 0%, rgba(10,44,80,0) 60%);
}
/* Tall home hero: add class rlp-hero-tall */
.rlp-hero-tall{
  min-height:clamp(26rem,72vh,46rem); display:flex !important; flex-direction:column; justify-content:center;
}
.rlp-hero-tall > *{ width:100%; }
/* White cards need a hairline on paper */
.rlp-quotecard,.rlp-tile,.rlp-card:not(.rlp-card--dark){ box-shadow:0 1px 2px rgba(6,33,63,.05); }
/* Footer: closing band and footer read as one block */
footer.wp-block-template-part > .has-navy-deep-background-color{ border-top:0 !important; }

/* ==========================================================================
   v1.6 — Hero photograph
   An Image block with class rlp-hero-art sits first inside the home hero.
   It is decorative (empty alt), toned navy/gold at import, anchored right,
   and dissolves into the navy at its left edge with a mask.
   ========================================================================== */
.rlp-fluting-hero > .rlp-hero-art{
  position:absolute !important; z-index:0 !important; top:0; right:0; bottom:0;
  width:50% !important; max-width:none !important; margin:0 !important; pointer-events:none;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, #000 55%);
          mask-image:linear-gradient(to right, transparent 0%, #000 55%);
}
.rlp-hero-art img{ width:100%; height:100%; object-fit:cover; object-position:center 30%; display:block; }
@media (min-width:900px){ .rlp-hero-tall h1{ max-width:62%; } }
@media (max-width:899px){
  .rlp-fluting-hero > .rlp-hero-art{ width:100% !important; opacity:.22; }
}
/* Sticky-header offset now matches the larger header */
:root{ --rlp-header-h:112px; }
@media (max-width:1100px){ :root{ --rlp-header-h:92px; } }

/* Portal card photographs: an Image block with class rlp-card__img is the first
   child of the card; it fills the card behind the gradient and the text. */
.rlp-card > .rlp-card__img{
  position:absolute !important; inset:0; z-index:-2; margin:0 !important; max-width:none !important;
}
.rlp-card__img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.rlp-card:hover .rlp-card__img img{ transform:scale(1.04); }
.rlp-card.rlp-card--image::before{
  background:linear-gradient(180deg,rgba(4,23,41,.10) 0%,rgba(4,23,41,.55) 55%,rgba(4,23,41,.94) 100%);
}
.rlp-card.rlp-card--image{ min-height:22rem; }

/* Pop-up overlay must span the viewport. Direct children of post content get a
   max-width and auto margins from the constrained layout, which squeezed it
   into a narrow column. */
.wp-block-post-content > .rlp-popup,
.rlp-popup{ max-width:none !important; width:100% !important; margin:0 !important; left:0; right:0; top:0; bottom:0; }

/* ==========================================================================
   v1.8 — Voices photo cards, about-page interactives, header, contact chooser
   ========================================================================== */

/* --- Header: bigger menu and logo --------------------------------------- */
.rlp-header .wp-block-navigation.wp-block-navigation{ font-size:clamp(1.0625rem,1.45vw,1.3125rem); }
.rlp-header .wp-block-navigation__container{ gap:clamp(1.1rem,2.2vw,2.25rem); }
.rlp-logo img,.rlp-logo svg{ width:clamp(170px,18vw,250px); }
:root{ --rlp-header-h:124px; }
@media (max-width:1100px){ :root{ --rlp-header-h:96px; } }

/* --- Spacing: breathing room after headings ----------------------------- */
.wp-block-post-content > .alignfull > * + :is(.rlp-collage,.rlp-filterable,.rlp-portal,.rlp-chips,.rlp-stats,.rlp-people,.rlp-steps){
  margin-top:clamp(1.75rem,3vw,2.5rem) !important;
}
.rlp-chips{ margin-top:clamp(1.75rem,3vw,2.5rem); }
.rlp-chips + .rlp-filterable{ margin-top:0 !important; }

/* --- Hero photograph on every page -------------------------------------- */
.rlp-fluting-hero:has(> .rlp-hero-art):not(.rlp-hero-tall){
  min-height:clamp(17rem,36vh,25rem); display:flex !important; flex-direction:column; justify-content:center;
}
@media (min-width:900px){
  .rlp-fluting-hero:has(> .rlp-hero-art) > :is(h1,.rlp-lede,.wp-block-buttons){ max-width:58%; }
}

/* --- Voices: portrait quote cards --------------------------------------- */
.rlp-filterable--photo{ grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr)); }
.rlp-quotecard--photo{
  position:relative; isolation:isolate; overflow:hidden; justify-content:flex-end;
  min-height:27rem; background:var(--wp--preset--color--navy-deep); color:var(--wp--preset--color--body);
  border:0; border-top:5px solid var(--wp--preset--color--red); padding:2rem 1.75rem 1.6rem;
  transition:transform .25s ease, box-shadow .25s ease;
}
.rlp-quotecard--photo::before{
  content:""; position:absolute; inset:0; z-index:-1; font-size:0; top:0; left:0;
  background:linear-gradient(180deg,rgba(4,23,41,.05) 0%,rgba(4,23,41,.55) 38%,rgba(4,23,41,.95) 100%);
}
.rlp-quotecard--photo > .rlp-qc__img{ position:absolute !important; inset:0; z-index:-2; margin:0 !important; max-width:none !important; }
.rlp-qc__img img{ width:100%; height:100%; object-fit:cover; object-position:center top; display:block; transition:transform .6s ease; }
.rlp-quotecard--photo:hover .rlp-qc__img img{ transform:scale(1.04); }
.rlp-quotecard--photo:hover{ transform:translateY(-4px); box-shadow:0 14px 34px rgba(4,23,41,.28); }
.rlp-quotecard--photo .rlp-q{ color:#fff; font-size:var(--wp--preset--font-size--medium); line-height:1.38; }
.rlp-quotecard--photo .rlp-by{ color:var(--wp--preset--color--body); margin-top:.9rem; }
.rlp-quotecard--photo .rlp-by strong{ color:var(--wp--preset--color--tan); }

/* --- Our People: card grid with expandable bios -------------------------- */
.rlp-people{ display:grid; gap:clamp(1.5rem,3vw,2.5rem) clamp(1.25rem,2.5vw,2rem); grid-template-columns:repeat(auto-fill,minmax(min(100%,17.5rem),1fr)); align-items:start; }
.rlp-people:has(> .rlp-person:only-child){ grid-template-columns:minmax(0,22rem); }
.rlp-people > *{ margin:0 !important; }
.rlp-person{ background:#fff; border:1px solid var(--rlp-line); border-top:4px solid var(--wp--preset--color--red); display:flex; flex-direction:column; transition:box-shadow .25s ease; }
.rlp-person:hover,.rlp-person:focus-within{ box-shadow:0 12px 28px rgba(4,23,41,.14); }
.rlp-person > *{ margin:0 !important; }
.rlp-person .rlp-person__img{ width:100% !important; }
.rlp-person .rlp-person__img img{ width:100% !important; height:auto !important; aspect-ratio:1 / 1; object-fit:cover; object-position:center 20%; display:block; filter:saturate(.9); }
.rlp-person h3{ padding:1.1rem 1.25rem 0; }
.rlp-person__role{ padding:.2rem 1.25rem 0; font-size:var(--wp--preset--font-size--small); color:var(--rlp-accent); font-weight:600; }
.rlp-bio{ padding:.9rem 1.25rem 1.25rem; }
.rlp-bio > summary{ cursor:pointer; font-weight:600; font-size:var(--wp--preset--font-size--small); color:var(--wp--preset--color--navy); list-style:none; display:flex; justify-content:space-between; align-items:center; }
.rlp-bio > summary::-webkit-details-marker{ display:none; }
.rlp-bio > summary::after{ content:"+"; font-size:1.5rem; line-height:1; color:var(--wp--preset--color--red); transition:transform .2s ease; }
.rlp-bio[open] > summary::after{ content:"\2212"; }
.rlp-bio > :not(summary){ margin-top:.9rem; font-size:var(--wp--preset--font-size--small); line-height:1.6; }

/* --- Our Work: step accordion ------------------------------------------- */
.rlp-steps{ display:grid; gap:0; }
.rlp-steps > *{ margin:0 !important; }
.rlp-step{ border-top:1px solid var(--rlp-line); padding:0; }
.rlp-step:last-child{ border-bottom:1px solid var(--rlp-line); }
.rlp-step > summary{
  cursor:pointer; list-style:none; display:flex; align-items:baseline; gap:1.1rem; padding:1.35rem 0;
  font-size:var(--wp--preset--font-size--heading-xs); font-weight:700; line-height:1.2; color:var(--wp--preset--color--navy);
}
.rlp-step > summary::-webkit-details-marker{ display:none; }
.rlp-step > summary::after{ content:"+"; margin-left:auto; font-size:2rem; font-weight:400; color:var(--wp--preset--color--red); line-height:1; }
.rlp-step[open] > summary::after{ content:"\2212"; }
.rlp-step > summary:hover{ color:var(--wp--preset--color--red-dark); }
.rlp-step__n{ font-size:var(--wp--preset--font-size--large); color:var(--rlp-accent); font-variant-numeric:tabular-nums; min-width:2.2ch; }
.rlp-step > :not(summary){ margin:0 0 1.1rem 3.4rem !important; max-width:38rem; }
.rlp-step > :last-child{ margin-bottom:1.75rem !important; }

/* --- The Crisis: stats --------------------------------------------------- */
.rlp-stats{ display:grid; gap:clamp(1.25rem,2.5vw,2rem); grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr)); }
.rlp-stats > *{ margin:0 !important; }
.rlp-stat{ border-top:4px solid var(--wp--preset--color--red); padding-top:1rem; display:flex; flex-direction:column; gap:.6rem; }
.rlp-stat > *{ margin:0 !important; }
.rlp-stat__n{ font-size:clamp(2.75rem,5.5vw,4.5rem); font-weight:700; line-height:1; color:var(--wp--preset--color--tan); font-variant-numeric:tabular-nums; letter-spacing:-.02em; }
.rlp-stat__src{ font-size:var(--wp--preset--font-size--small); margin-top:auto !important; }
.rlp-dark > .rlp-src,.rlp-src{ font-size:.9rem; color:var(--rlp-muted); }

/* --- Photo band with pull quote ------------------------------------------ */
.rlp-photoband{ position:relative; isolation:isolate; overflow:hidden; min-height:clamp(22rem,48vh,32rem); display:flex !important; flex-direction:column; justify-content:center; padding-block:clamp(3.5rem,7vw,6rem); }
.rlp-photoband > .rlp-photoband__img{ position:absolute !important; inset:0; z-index:-2; margin:0 !important; max-width:none !important; }
.rlp-photoband__img img{ width:100%; height:100%; object-fit:cover; display:block; }
.rlp-photoband::before{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(4,23,41,.94) 0%,rgba(4,23,41,.78) 55%,rgba(4,23,41,.45) 100%); }
.rlp-photoband__q{ font-size:var(--wp--preset--font-size--xx-large) !important; font-style:italic; font-weight:600; line-height:1.15; color:#fff; max-width:22ch !important; text-wrap:balance; }

/* --- Contact: who are you? ----------------------------------------------- */
.rlp-choices{ display:grid; gap:1.25rem; grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr)); margin-bottom:2.5rem; }
.rlp-choice{
  display:flex; flex-direction:column; gap:.55rem; padding:1.5rem; text-decoration:none !important;
  background:#fff; border:1px solid var(--rlp-line); border-top:4px solid var(--wp--preset--color--navy);
  color:var(--wp--preset--color--ink) !important; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.rlp-choice:hover,.rlp-choice:focus-visible{ transform:translateY(-3px); box-shadow:0 12px 26px rgba(4,23,41,.16); border-top-color:var(--wp--preset--color--red); }
.rlp-choice__kicker{ font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; font-weight:700; color:var(--rlp-accent); }
.rlp-choice__title{ font-size:var(--wp--preset--font-size--heading-xs); font-weight:700; line-height:1.15; color:var(--wp--preset--color--navy); }
.rlp-choice__text{ font-size:var(--wp--preset--font-size--small); color:var(--rlp-muted); }
.rlp-choice__go{ margin-top:auto; padding-top:.5rem; font-weight:600; font-size:var(--wp--preset--font-size--small); color:var(--wp--preset--color--navy); }
.rlp-choice--tip{ background:var(--wp--preset--color--navy-deep); border-top-color:var(--wp--preset--color--tan); }
.rlp-choice--tip .rlp-choice__title,.rlp-choice--tip .rlp-choice__go{ color:#fff; }
.rlp-choice--tip .rlp-choice__kicker{ color:var(--wp--preset--color--tan); }
.rlp-choice--tip .rlp-choice__text{ color:var(--wp--preset--color--body); }
.rlp-choice.is-selected{ background:var(--wp--preset--color--mist); border-top-color:var(--wp--preset--color--red); }
.rlp-contact__title{ margin:0 0 .5rem; }

/* --- Our People: side navigation rail ------------------------------------ */
.rlp-rail{ display:grid; grid-template-columns:minmax(11rem,15rem) minmax(0,1fr); gap:clamp(2rem,5vw,4.5rem); align-items:start; }
.rlp-rail > *{ margin:0 !important; max-width:none; }
.rlp-rail__nav{
  position:sticky; top:calc(var(--rlp-header-h) + 2rem); display:grid; gap:.15rem;
  border-left:2px solid var(--rlp-line); padding-left:0;
}
.rlp-rail__nav > *{ margin:0 !important; }
.rlp-rail__nav h4{ padding:0 0 .75rem 1.1rem; }
.rlp-rail__nav a{
  display:block; padding:.6rem 1.1rem; margin-left:-2px; border-left:4px solid transparent;
  font-weight:600; text-decoration:none; color:var(--wp--preset--color--navy);
  transition:background-color .15s ease, border-color .15s ease, color .15s ease;
}
.rlp-rail__nav a:hover{ background:var(--wp--preset--color--mist); color:var(--wp--preset--color--red-dark); }
.rlp-rail__nav a.is-active{ border-left-color:var(--wp--preset--color--red); background:var(--wp--preset--color--mist); color:var(--wp--preset--color--navy); }
.rlp-rail__main{ display:grid; gap:clamp(3rem,6vw,5rem); }
.rlp-rail__main > *{ margin:0 !important; }
.rlp-rail__sec{ scroll-margin-top:calc(var(--rlp-header-h) + 1.5rem); }
.rlp-rail__sec > * + *{ margin-top:clamp(1.5rem,3vw,2.25rem) !important; }
@media (max-width:860px){
  .rlp-rail{ grid-template-columns:1fr; gap:1.5rem; }
  .rlp-rail__nav{
    position:sticky; top:var(--rlp-header-h); z-index:5; display:flex; gap:.5rem; overflow-x:auto; border-left:0;
    background:var(--wp--preset--color--paper); padding:.6rem 0; margin-inline:calc(var(--wp--style--root-padding-left,1.25rem) * -1) !important; padding-inline:var(--wp--style--root-padding-left,1.25rem);
    border-bottom:1px solid var(--rlp-line);
  }
  .rlp-rail__nav h4{ display:none; }
  .rlp-rail__nav a{ white-space:nowrap; margin:0; border-left:0; border-bottom:3px solid transparent; padding:.5rem .75rem; }
  .rlp-rail__nav a.is-active{ border-bottom-color:var(--wp--preset--color--red); border-left-color:transparent; }
}

/* --- Bio modal (Our People) ---------------------------------------------- */
.rlp-js .rlp-bio > summary::after{ content:"\2197"; font-size:1.25rem; }
.rlp-modal{
  position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:clamp(.75rem,3vw,2rem);
  background:rgba(4,23,41,.7); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); animation:rlp-fade .25s ease;
}
.rlp-modal[hidden]{ display:none; }
.rlp-modal__box{
  position:relative; width:min(100%,60rem); height:min(88vh,50rem); display:grid; grid-template-rows:minmax(0,1fr); grid-template-columns:minmax(0,19rem) minmax(0,1fr);
  background:#fff; border-top:8px solid var(--wp--preset--color--red); box-shadow:0 28px 70px rgba(4,23,41,.45); overflow:hidden; animation:rlp-rise .3s ease;
}
.rlp-modal__photo{ background:var(--wp--preset--color--navy-deep); }
.rlp-modal__photo img{ width:100%; height:100%; object-fit:cover; object-position:center 20%; display:block; }
.rlp-modal__body{ min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:clamp(1.5rem,3.5vw,2.75rem); display:flex; flex-direction:column; gap:.4rem; }
.rlp-modal__role{ margin:0; font-size:var(--wp--preset--font-size--small); font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--rlp-accent); }
.rlp-modal__role:empty{ display:none; }
.rlp-modal__body h2{ margin:0 0 .75rem; font-size:var(--wp--preset--font-size--xx-large); color:var(--wp--preset--color--navy); }
.rlp-modal__text{ font-size:var(--wp--preset--font-size--small); line-height:1.65; color:var(--wp--preset--color--ink); }
.rlp-modal__text{ max-width:42rem; font-size:var(--wp--preset--font-size--small); }
.rlp-modal__text p{ margin:0 0 1rem; }
.rlp-modal__nav{ position:sticky; bottom:calc(-1 * clamp(1.5rem,3.5vw,2.75rem)); margin-top:auto; padding:1rem 0; background:#fff; display:flex; justify-content:space-between; gap:1rem; border-top:1px solid var(--rlp-line); }
.rlp-modal__nav button{ font:inherit; font-weight:600; background:none; border:0; padding:.5rem 0; cursor:pointer; color:var(--wp--preset--color--navy); }
.rlp-modal__nav button:hover{ color:var(--wp--preset--color--red-dark); }
.rlp-modal__x{
  position:absolute; top:.4rem; right:.6rem; z-index:2; width:2.75rem; height:2.75rem; font-size:1.9rem; line-height:1;
  background:rgba(255,255,255,.9); border:0; color:var(--wp--preset--color--navy); cursor:pointer; border-radius:50%;
}
@media (max-width:760px){
  .rlp-modal__box{ grid-template-columns:1fr; grid-template-rows:8rem minmax(0,1fr); height:92vh; }
  .rlp-modal__photo img{ object-position:center 15%; }
}

/* --- Consistent heroes on every non-home page ----------------------------
   Size, padding and heading size come from the .rlp-fluting-hero class and the
   "hero" font-size preset (theme.json); nothing here overrides block settings. */
.wp-block-post-content > .rlp-fluting-hero:not(.rlp-hero-tall){
  min-height:clamp(20rem,32vw,28rem);
  display:flex; flex-direction:column; justify-content:center;
  padding-top:clamp(2.25rem,4vw,3.25rem); padding-bottom:clamp(2.25rem,4vw,3.25rem);
}
.wp-block-post-content > .rlp-fluting-hero:not(.rlp-hero-tall) > h1{ line-height:1.05; }

/* Content-heavy heroes (lede + buttons, intro text) get a fixed floor on desktop so every page matches */
@media (min-width:900px){
  .wp-block-post-content > .rlp-fluting-hero:not(.rlp-hero-tall){ min-height:30.75rem; }
}

/* No gap between the last section and the footer (WordPress adds the block gap
   as a top margin on the footer, which exposed the pale page background). */
.wp-site-blocks > footer.wp-block-template-part{ margin-block-start:0 !important; }
.wp-site-blocks > main{ margin-block-end:0 !important; }

/* Header Give button scales with the menu text */
.rlp-header .rlp-btn-sm .wp-block-button__link{
  font-size:clamp(1.0625rem,1.45vw,1.3125rem); padding:.7rem 1.5rem; font-weight:700;
}

/* Hero children: the hero is a flex column, and the constrained layout's auto
   margins were centring each child. Pin them to the 1200px container's left edge. */
.wp-block-post-content > .rlp-fluting-hero > :not(.rlp-hero-art){
  width:100%; max-width:1200px;
  margin-left:max(0px, calc((100% - 1200px) / 2)) !important; margin-right:0 !important;
}
@media (min-width:900px){
  .wp-block-post-content > .rlp-fluting-hero:has(> .rlp-hero-art) > :is(h1,.rlp-lede,.wp-block-buttons){ max-width:min(58%,1200px); }
}

/* Section heading lines up with the eyebrow label's text, not the red bar */
.rlp-eyebrow + h3.wp-block-heading{
  padding-left:calc(clamp(40px,5vw,64px) + clamp(.85rem,1.5vw,1.25rem));
}
@media (max-width:560px){ .rlp-eyebrow + h3.wp-block-heading{ padding-left:0; } }

/* --- Bio modal v2: square photo top-left, name and text beside/below it ---- */
.rlp-modal__box{ display:block !important; width:min(100%,50rem); height:min(86vh,46rem); }
.rlp-modal__body{ display:block !important; height:100%; overflow-y:auto; }
.rlp-modal__photo{
  float:left; width:clamp(7rem,24%,11.5rem); aspect-ratio:1 / 1; margin:0 clamp(1rem,2.5vw,1.75rem) 1rem 0; overflow:hidden;
  background:var(--wp--preset--color--navy-deep); border-top:4px solid var(--wp--preset--color--red);
}
.rlp-modal__photo img{ width:100%; height:100%; object-fit:cover; object-position:center 20%; display:block; }
.rlp-modal__role{ margin-top:.25rem; }
.rlp-modal__body h2{ font-size:var(--wp--preset--font-size--x-large); margin:.15rem 0 .9rem; }
.rlp-modal__text{ max-width:none; }
.rlp-modal__nav{ clear:both; margin-top:1.25rem; }
@media (max-width:760px){
  .rlp-modal__box{ height:92vh; }
  .rlp-modal__photo{ width:6.5rem; }
}

/* Bio modal: size boxes by border-box. The scroller (height:100% + padding) was
   88px taller than its frame, so the last lines and the nav were clipped. */
.rlp-modal__box,.rlp-modal__body{ box-sizing:border-box; }
.rlp-modal__nav{ bottom:0; margin-bottom:0; padding-bottom:.25rem; }
.rlp-modal__body{ padding-bottom:clamp(1.5rem,3.5vw,2.75rem); }

/* --- Touch-target and label polish --------------------------------------- */
.wp-block-social-links .wp-social-link a{ padding:.65rem; }
.rlp-bio > summary{ padding:.8rem 0; min-height:2.75rem; }
.rlp-tile .rlp-tag{ font-size:.8125rem; }
/* "Keep reading" panel now has no heading; keep the red rule and tidy spacing */
.rlp-aside{ gap:.75rem; }

/* Mobile menu overlay: calmer type size and spacing */
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
  font-size:clamp(1.125rem,4.6vw,1.375rem); padding:.75rem 0; font-weight:500;
}
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  font-size:clamp(1rem,4.2vw,1.1875rem); padding:.6rem 0 .6rem 1rem; font-weight:400;
}

/* --- Contact: form is its own section --------------------------------------- */
.rlp-formsec{ padding:clamp(3rem,6vw,5.5rem) var(--wp--style--root-padding-right,clamp(1.25rem,4vw,2.5rem)); scroll-margin-top:calc(var(--rlp-header-h) + .5rem); }
.rlp-formsec__in{ max-width:1200px; margin-inline:auto; }
.rlp-formsec__who{ margin:1rem 0 0; font-size:var(--wp--preset--font-size--small); color:var(--rlp-muted); }
.rlp-formsec__who strong{ color:var(--wp--preset--color--navy); font-size:var(--wp--preset--font-size--medium); }
.rlp-formsec .rlp-contact{ margin-top:0; max-width:none; }
.rlp-formsec .rlp-form-notice{ max-width:none; }
.rlp-choices{ margin-bottom:0; }

/* --- Hamburger: three bars instead of core's two ------------------------ */
.rlp-header .wp-block-navigation__responsive-container-open:not(.always-shown){
  width:2.75rem; height:2.75rem; align-items:center; justify-content:center;
}
.rlp-header .wp-block-navigation__responsive-container-open svg{ display:none; }
.rlp-header .wp-block-navigation__responsive-container-open::before{
  content:""; display:block; width:1.625rem; height:1.25rem; color:inherit;
  background:linear-gradient(currentColor,currentColor) 0 0/100% 2px no-repeat,
             linear-gradient(currentColor,currentColor) 0 50%/100% 2px no-repeat,
             linear-gradient(currentColor,currentColor) 0 100%/100% 2px no-repeat;
}

/* --- Pop-up: keep box and close button inside narrow viewports ----------- */
.rlp-popup, .rlp-popup *{ box-sizing:border-box; }
.rlp-popup__box{ max-width:100%; max-height:calc(100dvh - 2.5rem); overflow-y:auto; }
.rlp-popup__box h2{ padding-right:2.25rem; }
.rlp-popup__x{ z-index:2; }

/* --- Mobile menu v2: clean list, no rules, collapsible sub-menu ----------- */
.rlp-header .is-menu-open .wp-block-navigation__container{ gap:.25rem; }
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{
  border-bottom:0; width:auto; display:inline-block; padding:.7rem 0;
}
.rlp-header .is-menu-open .wp-block-navigation-item.has-child{
  display:flex; flex-wrap:wrap; align-items:center; gap:0 .25rem;
}
/* Caret button, shown beside the label */
.rlp-header .is-menu-open .wp-block-navigation__submenu-icon{
  display:inline-flex; align-items:center; justify-content:center; width:2.75rem; height:2.75rem;
  margin:0; padding:0; background:none; border:0; color:var(--wp--preset--color--tan); cursor:pointer;
}
.rlp-header .is-menu-open .wp-block-navigation__submenu-icon svg{
  display:block; width:14px; height:14px; transition:transform .2s ease; stroke:currentColor;
}
.rlp-header .is-menu-open .has-child.rlp-sub-open > .wp-block-navigation__submenu-icon svg{ transform:rotate(180deg); }
/* Sub-menu collapsed until toggled */
.rlp-header .is-menu-open .wp-block-navigation__submenu-container{
  display:none; flex-basis:100%; width:100%; position:static; padding:0 0 .5rem 1rem; margin:0;
  opacity:1; visibility:visible; height:auto; min-width:0; border:0;
}
.rlp-header .is-menu-open .has-child.rlp-sub-open > .wp-block-navigation__submenu-container{ display:flex; flex-direction:column; }
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{
  border:0; padding:.5rem 0; color:var(--rlp-muted, var(--wp--preset--color--muted));
}
.rlp-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{ color:#fff; }
/* Match core's overlay specificity so the caret shows and the row lays out inline */
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child{
  flex-direction:row; justify-content:flex-start; align-items:center;
}
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation-item__content{ flex:0 0 auto; margin:0; }
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-icon{ display:inline-flex; }
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .has-child.rlp-sub-open > .wp-block-navigation__submenu-container{ display:flex; flex-direction:column; align-items:flex-start; }
/* Caret points down when closed, up when open (ignore core's aria-expanded state) */
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon svg,
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon[aria-expanded] svg{ transform:none; }
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .has-child.rlp-sub-open > .wp-block-navigation__submenu-icon svg,
.rlp-header .wp-block-navigation__responsive-container.is-menu-open .has-child.rlp-sub-open > .wp-block-navigation__submenu-icon[aria-expanded] svg{ transform:rotate(180deg); }


/* --- Highlighted text (press-release hero) --------------------------------
   .rlp-hl makes a block's text sit on a solid band that follows each line,
   leaving a ragged right edge, like a highlighter. Put the block inside a
   normal (flow) Group so the inline box wraps within that Group's width.
   .rlp-hl--red is the same band in the accent red. */
.rlp-hl{
  display:inline;
  background:var(--wp--preset--color--navy);
  color:#fff;
  padding:.18em .55em;
  line-height:1.55;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
.rlp-hl--red{ background:var(--wp--preset--color--red); }
