/*
Theme Name: Royal Priesthood
Theme URI: https://floulexweb.com/
Author: Floulex Web
Description: Block theme for Royal Priesthood Ministries Int’l, Katy, Texas.
Version: 1.0.0
Requires at least: 6.4
License: GNU General Public License v2 or later
Text Domain: royal-priesthood
*/

/*
  THE DESIGN, decided before the code
  ------------------------------------
  Architecture: motto-spine (FORMULA.md 12). The spine is not a slogan but the
  verse their name is taken from, 1 Peter 2:9, set as four rows.
  Hero variant: name set large in the display face (the logo file stops at
  "Ministries," so the live-text name carries "Int’l"), beside a plain
  "where to find us right now" card, because an itinerant ministry with no
  building must say so on the first screen, calmly.
  Type: Cormorant (display, roman + italic: its calligraphic stress answers the
  script in the logo without imitating it) over Hanken Grotesk (quiet body).
  Contrast trick: a two-line size jump, "Royal Priesthood" over a smaller
  italic "Ministries Int’l" in the script purple.

  The signature: 1 Peter 2:9 laid out as four rows on the one royal-deep band
  ("a CHOSEN people / a ROYAL PRIESTHOOD / a HOLY NATION / a people belonging
  to GOD"), the words they capitalised kept as their emphasis, and a crown-gold
  rule drawing itself under ROYAL PRIESTHOOD once. Because their name is that
  phrase, and their old site carried the verse on every page.

  Palette, sampled from the logo they sent and from nothing else:
    --rp-accent  #5b3a88  the script lettering purple (sampled #604088 / #583880), a hair deeper for 8:1 on paper
    --rp-deep    #2a1640  the same purple taken down to full depth: one band + footer
    --rp-bright  #efc77f  the crown gold (sampled #f0c888 / #f8d090): ONLY on the deep band
    --rp-lilac   #d9b4dc  the wing lilac (sampled #cc90cc / #d8c0e4): ONLY on deep, and as hairline ornament
    --rp-paper   #f9f8f6  neutral near-white (the logo's ground), not tinted with the accent
    --rp-wash    #efece6  stone, for rhythm
    --rp-ink     #221d26  body text, a purple-black
  Prefix: rp- (Royal Priesthood).
*/

:root {
  --rp-paper: #f9f8f6;
  --rp-wash: #efece6;
  --rp-white: #ffffff;
  --rp-deep: #2a1640;
  --rp-accent: #5b3a88;
  --rp-accent-hover: #47296f;
  --rp-bright: #efc77f;
  --rp-lilac: #d9b4dc;
  --rp-ink: #221d26;
  --rp-muted: #5f5866;
  --rp-on-deep: #c9bcd6;
  --rp-line: #d6d0c8;
  --rp-display: Cormorant, Georgia, "Times New Roman", serif;
  --rp-body: "Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
  --rp-pad: clamp(1.25rem, 4vw, 3rem);
  --rp-sec: clamp(4rem, 7.5vw, 7rem);
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; overflow-x: clip; background: var(--rp-paper); color: var(--rp-ink);
  font-family: var(--rp-body); font-size: 1.125rem; line-height: 1.65; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: var(--rp-accent); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--rp-accent-hover); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--rp-accent); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--rp-display); color: var(--rp-deep); font-weight: 650; line-height: 1.08; letter-spacing: -.005em; }
p { margin: 0; }

/* ---------- Header ---------- */
.rp-bar { position: sticky; top: 0; z-index: 50; background: var(--rp-paper); border-bottom: 1px solid var(--rp-line); transition: box-shadow .25s ease; }
.rp-bar.is-scrolled { box-shadow: 0 6px 24px -18px rgba(42, 22, 64, .55); }
.rp-bar-in { max-width: 76rem; margin: 0 auto; padding: .85rem var(--rp-pad); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1.5rem; }
.rp-brand { display: block; flex: 0 0 auto; line-height: 0; }
.rp-logo { display: block; height: 60px; width: auto; }
.rp-nav { display: flex; align-items: center; gap: .25rem; flex: 0 0 auto; }
.rp-nav-a { display: inline-block; padding: .55rem .6rem; color: var(--rp-ink); text-decoration: none; font-size: 1rem; font-weight: 500; letter-spacing: .01em; border-bottom: 2px solid transparent; }
.rp-nav-a:hover { color: var(--rp-accent); border-bottom-color: var(--rp-lilac); }
.rp-nav-a[aria-current="page"] { color: var(--rp-accent); border-bottom-color: var(--rp-accent); }
.rp-nav-a.rp-cta { margin-left: .5rem; background: var(--rp-accent); color: var(--rp-white); border: 0; padding: .7rem 1.2rem; font-weight: 600; }
.rp-nav-a.rp-cta:hover { background: var(--rp-accent-hover); color: var(--rp-white); }
.rp-nav-a.rp-cta[aria-current="page"] { background: var(--rp-deep); color: var(--rp-white); box-shadow: inset 0 -3px 0 var(--rp-bright); }
.rp-menu { display: none; position: static; }
.rp-menu-btn { list-style: none; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: .45rem .55rem; color: var(--rp-deep); font-size: .75rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; border: 1px solid var(--rp-line); background: var(--rp-white); }
.rp-menu-btn::-webkit-details-marker { display: none; }
.rp-menu-icon { display: block; width: 22px; height: 14px; background: linear-gradient(var(--rp-deep), var(--rp-deep)) top / 100% 2px no-repeat, linear-gradient(var(--rp-deep), var(--rp-deep)) center / 100% 2px no-repeat, linear-gradient(var(--rp-deep), var(--rp-deep)) bottom / 100% 2px no-repeat; }
.rp-menu[open] .rp-menu-icon { background: linear-gradient(var(--rp-deep), var(--rp-deep)) center / 100% 2px no-repeat; }
.rp-menu-panel { position: absolute; left: 0; right: 0; top: 100%; background: var(--rp-paper); border-bottom: 3px solid var(--rp-accent); padding: .5rem var(--rp-pad) 1.5rem; display: flex; flex-direction: column; box-shadow: 0 18px 30px -24px rgba(42, 22, 64, .6); }
.rp-menu-a { display: block; padding: .85rem 0; border-bottom: 1px solid var(--rp-line); color: var(--rp-deep); text-decoration: none; font-family: var(--rp-display); font-size: 1.6rem; font-weight: 600; }
.rp-menu-a[aria-current="page"] { color: var(--rp-accent); font-style: italic; }
.rp-menu-a.rp-cta { margin-top: 1.1rem; border: 0; background: var(--rp-accent); color: var(--rp-white); text-align: center; font-family: var(--rp-body); font-size: 1.05rem; font-weight: 600; padding: 1rem; }

@media (max-width: 900px) {
  .rp-nav { display: none; }
  .rp-menu { display: block; }
  .rp-bar { position: relative; }
  .rp-bar-in { flex-wrap: wrap; gap: .5rem; padding-block: .75rem .6rem; }
  .rp-brand { flex: 1 1 100%; min-width: 0; }
  .rp-logo { height: auto; width: 100%; max-width: 480px; }
  .rp-menu { margin-left: auto; }
  .rp-menu-btn { flex-direction: row; gap: .55rem; padding: .5rem .8rem; font-size: .8125rem; }
}

/* ---------- Page frame ---------- */
.rp-main .wp-block-post-content > .rp-sec, .rp-main .wp-block-post-content > .fx-credit-about { margin-block: 0; }
.rp-sec { padding-block: var(--rp-sec); background: var(--rp-paper); }
.rp-sec.rp-wash { background: var(--rp-wash); }
.rp-sec.rp-deep { background: var(--rp-deep); color: var(--rp-paper); }
.rp-wrap { max-width: 76rem; margin-inline: auto; padding-inline: var(--rp-pad); }
.rp-wrap > * + * { margin-top: 1.5rem; }
.rp-read { max-width: 42rem; }
.rp-read > * + * { margin-top: 1.15rem; }
.rp-opener + .rp-sec:not(.rp-wash):not(.rp-deep) { padding-top: 0; }
.rp-opener + .rp-sec { border-top: 0 !important; }

.rp-eyebrow { font-family: var(--rp-body); font-size: .875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--rp-accent); display: flex; align-items: center; gap: .65rem; }
.rp-eyebrow::before { content: ""; width: 1.75rem; height: 1px; background: currentColor; flex: 0 0 auto; }
.rp-deep .rp-eyebrow { color: var(--rp-bright); }
.rp-h2 { font-size: clamp(2.1rem, 1.5rem + 2.2vw, 3.4rem); margin: 0; }
.rp-h1 { font-size: clamp(2.7rem, 1.7rem + 3.6vw, 4.75rem); margin: 0; line-height: 1.02; }
.rp-h3 { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); margin: 0; }
.rp-lede { font-size: clamp(1.15rem, 1.05rem + .4vw, 1.3125rem); line-height: 1.6; color: var(--rp-ink); max-width: 38rem; }
.rp-muted { color: var(--rp-muted); }
.rp-more { font-weight: 600; }
.rp-more a { text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: .1rem; }
.rp-more a::after { content: " \2192"; }
.rp-back { font-size: 1rem; }
.rp-back a { text-decoration: none; font-weight: 600; }
.rp-back a::before { content: "\2190  "; }

/* Buttons */
.rp-btns { display: flex; flex-wrap: wrap; gap: .85rem; }
.rp-btns .wp-block-button { margin: 0; }
.wp-block-button__link, .rp-btn { display: inline-block; border-radius: 0; background: var(--rp-accent); color: var(--rp-white); border: 2px solid var(--rp-accent); padding: .85rem 1.45rem; font-family: var(--rp-body); font-size: 1.0625rem; font-weight: 600; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background .2s ease, color .2s ease; }
.wp-block-button__link:hover, .rp-btn:hover { background: var(--rp-accent-hover); border-color: var(--rp-accent-hover); color: var(--rp-white); }
.rp-btn-ghost .wp-block-button__link { background: transparent; color: var(--rp-accent); }
.rp-btn-ghost .wp-block-button__link:hover { background: var(--rp-accent); color: var(--rp-white); }

/* The crown ornament (a simple rule mark, not the logo) */
.rp-crown { display: block; width: 46px; height: auto; color: var(--rp-accent); }
.rp-deep .rp-crown { color: var(--rp-bright); }

/* ---------- Home: hero ---------- */
.rp-hero { padding-block: clamp(2.25rem, 3.4vw, 3rem) clamp(2.25rem, 3.4vw, 3rem); }
.rp-hero-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5rem); align-items: end; }
.rp-hero-text > * + * { margin-top: 1.2rem; }
.rp-hero-text > .rp-name { margin-top: .9rem; }
.rp-factline { display: flex; flex-wrap: wrap; gap: .3rem 0; font-size: .9375rem; font-weight: 600; color: var(--rp-deep); }
.rp-factline span:not(:last-child)::after { content: "\00b7"; color: var(--rp-accent); padding: 0 .7rem; }
.rp-act { background: var(--rp-deep); color: var(--rp-paper); padding: clamp(1.5rem, 2.4vw, 2.1rem); border-top: 4px solid var(--rp-bright); }
.rp-act > * { margin: 0; }
.rp-act > * + * { margin-top: 1rem; }
.rp-act-tag { font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--rp-bright); }
.rp-act-title { font-size: clamp(1.9rem, 1.5rem + 1.2vw, 2.5rem); color: var(--rp-paper); }
.rp-act p { color: var(--rp-on-deep); }
.rp-act strong { color: var(--rp-bright); font-weight: 600; }
.rp-act .rp-btns { margin-top: 1.5rem; }
.rp-act .wp-block-button__link { background: var(--rp-bright); border-color: var(--rp-bright); color: var(--rp-deep); }
.rp-act .wp-block-button__link:hover { background: var(--rp-paper); border-color: var(--rp-paper); color: var(--rp-deep); }
.rp-hero-text .rp-crown { margin-bottom: -.2rem; }
.rp-name { font-size: clamp(3.1rem, 1.6rem + 4.2vw, 5.4rem); line-height: .95; margin: 0; letter-spacing: -.012em; font-weight: 650; }
.rp-name > span { display: block; }
.rp-name .rp-name-a { white-space: nowrap; }
.rp-name .rp-name-b { font-style: italic; font-weight: 600; color: var(--rp-accent); font-size: .56em; line-height: 1.15; margin-top: .2em; letter-spacing: 0; }
.rp-now { background: var(--rp-white); border: 1px solid var(--rp-line); border-top: 4px solid var(--rp-accent); padding: clamp(1.4rem, 2.5vw, 2.1rem); }
.rp-now > * + * { margin-top: 1rem; }
.rp-now-title { padding-bottom: .4rem; font-family: var(--rp-display); font-size: 1.85rem; font-weight: 650; color: var(--rp-deep); margin: 0; line-height: 1.1; }
.rp-facts { margin: 0; padding: 0; list-style: none; }
.rp-facts li { padding: .85rem 0; border-top: 1px solid var(--rp-line); font-size: 1.0625rem; line-height: 1.5; }
.rp-facts li:last-child { padding-bottom: 0; }
.rp-facts strong { display: block; font-size: .8125rem; letter-spacing: .12em; text-transform: uppercase; color: var(--rp-accent); font-weight: 700; margin-bottom: .2rem; }

/* ---------- Home: the signature, 1 Peter 2:9 as four rows ---------- */
.rp-verse { position: relative; overflow: hidden; }
.rp-verse { padding-top: clamp(2.2rem, 3.2vw, 2.75rem); }
.rp-verse-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1.6rem; }
.rp-verse-h { margin: 0; font-size: clamp(1.4rem, 1.2rem + .7vw, 1.9rem); color: var(--rp-paper); font-weight: 600; }
.rp-verse-head > div > * + * { margin-top: 1rem; }
.rp-verse .rp-h2 { color: var(--rp-paper); }
.rp-verse-note { color: var(--rp-on-deep); font-size: 1.0625rem; max-width: 32rem; }
.rp-spine { list-style: none; margin: 1.2rem 0 0; padding: 0; counter-reset: none; }
.rp-spine li { position: relative; padding: .8rem 0 .85rem; border-top: 1px solid rgba(217, 180, 220, .28); font-family: var(--rp-display); font-style: italic; font-weight: 500; font-size: clamp(2rem, 1.1rem + 3.1vw, 4rem); line-height: 1.05; color: var(--rp-lilac); }
.rp-spine li:last-child { border-bottom: 1px solid rgba(217, 180, 220, .28); }
.rp-spine strong { font-style: normal; font-weight: 650; color: var(--rp-paper); letter-spacing: .02em; }
.rp-spine li:nth-child(2) { padding-left: clamp(0rem, 6vw, 6rem); }
.rp-spine li:nth-child(3) { padding-left: clamp(0rem, 12vw, 12rem); }
.rp-spine li:nth-child(4) { padding-left: clamp(0rem, 18vw, 18rem); }
.rp-spine .rp-royal { color: var(--rp-bright); position: relative; display: inline-block; }
.rp-spine .rp-royal::after { content: ""; position: absolute; left: 0; right: 0; bottom: -.08em; height: 3px; background: var(--rp-bright); transform-origin: left center; }
.rp-verse-close { margin-top: 2.2rem; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2rem; }
.rp-calling { grid-column: 2; margin-top: 1.6rem !important; padding-top: 1.3rem; border-top: 1px solid rgba(217, 180, 220, .28); font-family: var(--rp-body) !important; font-size: 1.0625rem !important; line-height: 1.55; color: var(--rp-on-deep) !important; }
.rp-calling span { display: block; font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--rp-bright); margin-bottom: .3rem; }
.rp-verse-close { row-gap: 0 !important; }
.rp-verse-close p { grid-column: 2; font-size: clamp(1.2rem, 1.05rem + .6vw, 1.5rem); line-height: 1.5; color: var(--rp-paper); font-family: var(--rp-display); font-weight: 500; }
.rp-verse-close cite { display: block; margin-top: .8rem; font-family: var(--rp-body); font-style: normal; font-size: .875rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--rp-bright); }

.js .rp-spine.rp-rev li { opacity: 0; transform: translateX(-28px); transition: opacity .7s ease, transform .9s cubic-bezier(.2, .7, .2, 1); }
.js .rp-spine.rp-rev li:nth-child(2) { transition-delay: .14s; }
.js .rp-spine.rp-rev li:nth-child(3) { transition-delay: .28s; }
.js .rp-spine.rp-rev li:nth-child(4) { transition-delay: .42s; }
.js .rp-spine.rp-rev.is-in li { opacity: 1; transform: none; }
.js .rp-spine.rp-rev .rp-royal::after { transform: scaleX(0); transition: transform 1.1s cubic-bezier(.6, 0, .2, 1) .75s; }
.js .rp-spine.rp-rev.is-in .rp-royal::after { transform: scaleX(1); }

/* ---------- Home: what we do + motto ---------- */
.rp-do { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 1.5rem clamp(2rem, 6vw, 6rem); align-items: start; }
.rp-do > div > * + * { margin-top: 1.2rem; }
.rp-do .rp-offices { padding-top: .4rem; }
.rp-two { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.rp-two > div > * + * { margin-top: 1.2rem; }
.rp-motto { margin: 0; padding: 2.2rem 0 0; border-top: 3px solid var(--rp-accent); position: relative; }
.wp-block-quote.rp-motto { border-left: 0; padding-left: 0; }
.wp-block-quote.rp-motto p { font-family: var(--rp-display); font-style: italic; font-weight: 550; font-size: clamp(1.65rem, 1.3rem + 1.3vw, 2.4rem); line-height: 1.2; color: var(--rp-deep); }
.wp-block-quote.rp-motto p + p { margin-top: 1rem; font-style: normal; font-weight: 700; font-size: 1.15rem; letter-spacing: .18em; color: var(--rp-accent); font-family: var(--rp-body); }
.wp-block-quote.rp-motto cite { display: block; margin-top: 1rem; font-style: normal; font-size: .9375rem; color: var(--rp-muted); }
.rp-offices { display: flex; flex-wrap: wrap; gap: .4rem 0; list-style: none; padding: 0; margin: 0; font-family: var(--rp-display); font-size: 1.45rem; font-weight: 600; color: var(--rp-deep); }
.rp-offices li:not(:last-child)::after { content: "\00b7"; color: var(--rp-accent); padding: 0 .55rem; }

/* ---------- Leaders ---------- */
.rp-lead-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.rp-lead-grid > div > * + * { margin-top: 1.3rem; }
.rp-leaders { list-style: none; margin: 0; padding: 0; }
.rp-leaders li { padding: 1.4rem 0; border-top: 1px solid var(--rp-line); }
.rp-leaders li:last-child { border-bottom: 1px solid var(--rp-line); }
.rp-leader-name { display: block; font-family: var(--rp-display); font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem); font-weight: 650; color: var(--rp-deep); line-height: 1.1; }
.rp-leader-role { display: block; margin-top: .3rem; font-size: .8125rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--rp-accent); }
.rp-leader-line { display: block; margin-top: .55rem; color: var(--rp-muted); font-size: 1.0625rem; max-width: 36rem; }
.rp-leaders a { text-decoration: none; }

/* Figures and plates */
.rp-fig { margin: 0; }
.rp-fig img { display: block; width: 100%; height: auto; border: 1px solid var(--rp-line); }
.rp-fig figcaption, .wp-block-image figcaption { margin-top: .6rem; font-size: .9375rem; color: var(--rp-muted); }
.rp-fig-portrait { max-width: 26rem; }
.rp-fig-small { max-width: 19rem; padding-top: .8rem; }
.rp-msg { background: var(--rp-white); border: 1px solid var(--rp-line); border-top: 4px solid var(--rp-accent); padding: clamp(1.5rem, 2.6vw, 2.2rem); align-self: start; }
.rp-msg > * { margin: 0; }
.rp-msg > * + * { margin-top: 1rem; }

/* ---------- Coming + invite ---------- */
.rp-close { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5rem); align-items: stretch; }
.rp-close > div > * + * { margin-top: 1.2rem; }
.rp-coming { list-style: none; padding: 0; margin: 0; }
.rp-coming li { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 1rem; padding: .8rem 0; border-top: 1px solid var(--rp-line); align-items: baseline; }
.rp-coming li:last-child { border-bottom: 1px solid var(--rp-line); }
.rp-coming .rp-when { font-size: .8125rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--rp-muted); }
.rp-coming .rp-what { font-family: var(--rp-display); font-size: 1.55rem; font-weight: 600; color: var(--rp-deep); line-height: 1.2; }
.rp-nomap { border: 1px dashed var(--rp-muted); padding: 1.1rem 1.3rem; font-size: 1rem; color: var(--rp-muted); background: transparent; }
.rp-nomap strong { color: var(--rp-deep); }
.rp-invite { background: var(--rp-accent); color: var(--rp-white); padding: clamp(1.6rem, 3vw, 2.6rem); display: flex; flex-direction: column; gap: 1.1rem; }
.rp-invite > * { margin: 0; }
.rp-invite .rp-h3 { color: var(--rp-white); }
.rp-invite p { color: var(--rp-white); }
.rp-invite .rp-invite-tag { font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--rp-white); opacity: 1; }
.rp-invite .wp-block-button__link { background: var(--rp-white); color: var(--rp-accent); border-color: var(--rp-white); }
.rp-invite .wp-block-button__link:hover { background: var(--rp-paper); color: var(--rp-deep); }
.rp-invite .rp-btns { margin-top: auto; padding-top: .4rem; }

/* ---------- Inner pages ---------- */
.rp-opener { padding-block: clamp(3.5rem, 7vw, 6rem) clamp(2.5rem, 4vw, 3.5rem); }
.rp-opener .rp-lede { color: var(--rp-muted); }
.rp-hub { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 1rem clamp(2rem, 5vw, 5rem); padding-top: 2.2rem; border-top: 1px solid var(--rp-line); }
.rp-hub + .rp-hub { margin-top: 2.6rem; }
.rp-hub > div > * + * { margin-top: 1rem; }
.rp-hub .rp-h3 { margin: 0; }
.rp-split { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.rp-split > div > * + * { margin-top: 1.15rem; }
.rp-sec .rp-prose > * + * { margin-top: 1.15rem; }
.rp-sec .rp-prose > .wp-block-quote, .rp-sec .rp-prose > .rp-prayer { margin-block: 1.8rem; }
.rp-sec .rp-prose > h2 { margin-top: 2.6rem; }
.rp-prose h2 { font-size: clamp(1.9rem, 1.5rem + 1.4vw, 2.6rem); margin-top: 2.6rem; }
.rp-prose h3 { font-size: 1.65rem; margin-top: 2rem; }
.rp-sec .rp-prose h2 + *, .rp-sec .rp-prose h3 + * { margin-top: .7rem; }
.rp-launch-by { color: var(--rp-muted); }
.rp-prose ul, .rp-prose ol { padding-left: 1.3rem; }
.rp-prose li + li { margin-top: .4rem; }
.rp-prose li::marker { color: var(--rp-accent); }
.rp-quote, .rp-prose blockquote, .wp-block-quote { margin: 0; padding: .2rem 0 .2rem 1.5rem; border-left: 3px solid var(--rp-accent); }
.rp-quote p, .wp-block-quote p { font-family: var(--rp-display); font-size: 1.5rem; line-height: 1.35; font-weight: 550; color: var(--rp-deep); }
.rp-quote p + p, .wp-block-quote p + p { margin-top: .8rem; }
.rp-quote cite, .wp-block-quote cite { display: block; margin-top: .8rem; font-size: .9375rem; font-style: normal; color: var(--rp-muted); }
.rp-faith h3 { font-size: 1.55rem; margin-top: 2.2rem; padding-top: 1.2rem; border-top: 1px solid var(--rp-line); }
.rp-faith h3 + p { margin-top: .6rem; }
.rp-scripture { font-family: var(--rp-display); font-size: 1.35rem; line-height: 1.45; color: var(--rp-deep); font-weight: 550; }
.rp-scripture cite { font-family: var(--rp-body); font-size: .9375rem; color: var(--rp-muted); font-style: normal; }
.rp-prayer { background: var(--rp-white); border: 1px solid var(--rp-line); border-left: 4px solid var(--rp-accent); padding: 1.6rem 1.8rem; }
.rp-prayer p { font-family: var(--rp-display); font-size: 1.4rem; line-height: 1.45; font-style: italic; color: var(--rp-deep); }
.rp-give-ways { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--rp-line); border: 1px solid var(--rp-line); }
.rp-give-ways li { background: var(--rp-white); padding: 1.5rem 1.6rem; }
.rp-give-ways strong { display: block; font-family: var(--rp-display); font-size: 1.9rem; color: var(--rp-deep); font-weight: 650; }
.rp-give-ways span { display: block; margin-top: .3rem; color: var(--rp-muted); font-size: 1rem; }

.rp-offices-lg { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem); padding-bottom: 1.6rem; border-bottom: 1px solid var(--rp-line); }
.rp-offices-lg li:first-child { color: var(--rp-accent); font-style: italic; }
.rp-train { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2rem, 5vw, 5rem); max-width: 60rem; }
.rp-train li { padding: .75rem 0 .75rem 1.6rem; border-top: 1px solid var(--rp-line); position: relative; font-size: 1.0625rem; }
.rp-train li::before { content: ""; position: absolute; left: 0; top: 1.3rem; width: .7rem; height: 1px; background: var(--rp-accent); }
.rp-sign { font-family: var(--rp-display); font-style: italic; font-size: 1.5rem; color: var(--rp-accent); }
.rp-prose .rp-leader-role, .rp-hub .rp-leader-role { margin-top: 0; }

/* Contact form */
.rp-form { max-width: 36rem; }
.rp-form > * + * { margin-top: 1.1rem; }
.rp-field label { display: block; font-size: .9375rem; font-weight: 600; color: var(--rp-deep); margin-bottom: .35rem; }
.rp-field input, .rp-field textarea { width: 100%; font: inherit; font-size: 1.0625rem; color: var(--rp-ink); background: var(--rp-white); border: 1px solid #a69fae; border-radius: 0; padding: .8rem .9rem; }
.rp-field input:focus, .rp-field textarea:focus { outline: 3px solid var(--rp-lilac); border-color: var(--rp-accent); }
.rp-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rp-form-note { padding: 1rem 1.2rem; margin-bottom: 1.4rem; border-left: 4px solid var(--rp-accent); background: var(--rp-white); }
.rp-form-err { border-left-color: #8a1c2b; }

/* Embeds and video, styled before anyone uses them */
.wp-block-embed, .wp-block-video { margin: 0; }
.wp-block-embed__wrapper { position: relative; }
.wp-block-embed iframe, .wp-block-video video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 1px solid var(--rp-line); background: var(--rp-deep); }
.wp-block-embed figcaption, .wp-block-video figcaption { margin-top: .6rem; font-size: .9375rem; color: var(--rp-muted); }
.wp-block-image { margin: 0; }
.wp-block-image img { border: 1px solid var(--rp-line); }

/* ---------- Footer ---------- */
.rp-foot { background: var(--rp-deep); color: var(--rp-paper); padding-block: clamp(3.5rem, 6vw, 5rem) 2rem; }
.rp-foot a { color: var(--rp-paper); text-decoration-color: var(--rp-lilac); }
.rp-foot a:hover { color: var(--rp-bright); }
.rp-foot-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 4fr) minmax(0, 5fr); gap: 2.5rem clamp(2rem, 4vw, 4rem); }
.rp-foot-grid > div > * + * { margin-top: .8rem; }
.rp-logo-tile { display: inline-block; background: #f8f7f5; border-radius: 6px; padding: 1.15rem 1.5rem; line-height: 0; max-width: 100%; }
.rp-logo-tile img { display: block; width: 300px; max-width: 100%; height: auto; }
.rp-foot-name { font-family: var(--rp-display); font-size: 1.8rem; font-weight: 650; line-height: 1.1; color: var(--rp-paper); }
.rp-foot-motto { font-size: .875rem; font-weight: 700; letter-spacing: .2em; color: var(--rp-bright); }
.rp-foot-label { font-size: .8125rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--rp-bright); }
.rp-foot-facts p:not(.rp-foot-label) { color: var(--rp-on-deep); font-size: 1rem; }
.rp-foot-facts .rp-foot-label + p { margin-top: .35rem; }
.rp-index { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 2rem; font-size: 1rem; }
.rp-index li { break-inside: avoid; padding: .2rem 0; }
.rp-index a { text-decoration: none; color: var(--rp-on-deep); }
.rp-index a:hover { color: var(--rp-paper); text-decoration: underline; }
.rp-legal { margin-top: 3rem; padding-top: 1.3rem; border-top: 1px solid rgba(217, 180, 220, .25); display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; font-size: .9375rem; color: var(--rp-on-deep); }
.rp-legal p { margin: 0; }
.fx-credit { color: var(--rp-on-deep); font-size: .9375rem; }
.fx-credit a { color: var(--rp-on-deep); }
.fx-credit-about { max-width: 76rem; margin: 0 auto !important; padding: 2.5rem var(--rp-pad) 3rem; font-size: 1rem; color: var(--rp-muted); border-top: 1px solid var(--rp-line); background: var(--rp-paper); }

/* ---------- Generic reveal ---------- */
.js .rp-rev:not(.rp-spine) { opacity: 0; transform: translateY(18px); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }
.js .rp-rev.is-in:not(.rp-spine) { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .js .rp-rev, .js .rp-rev:not(.rp-spine), .js .rp-spine.rp-rev li { opacity: 1 !important; transform: none !important; transition: none !important; }
  .js .rp-spine.rp-rev .rp-royal::after { transform: none !important; transition: none !important; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .rp-foot-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .rp-foot-pages { grid-column: 1 / -1; }
  .rp-index { columns: 3; }
}
@media (max-width: 960px) {
  .rp-hero-grid, .rp-two, .rp-lead-grid, .rp-close, .rp-split, .rp-hub, .rp-verse-head, .rp-verse-close { grid-template-columns: minmax(0, 1fr); }
  .rp-verse-close p, .rp-calling { grid-column: 1; }
  .rp-do { grid-template-columns: minmax(0, 1fr); }
  .rp-lead-side { display: contents; }
  .rp-lead-grid { gap: 1.2rem; }
  .rp-lead-side > * { margin: 0 !important; }
  .rp-lead-grid .rp-leaders { order: 5; margin-top: .6rem; }
  .rp-lead-side .rp-more { order: 8; }
  .rp-lead-grid .rp-fig-small { order: 9; }
  .rp-lead-grid .rp-fig { max-width: 34rem; }
}
@media (max-width: 640px) {
  :root { --rp-sec: 3.6rem; }
  .rp-spine li { padding-left: 0 !important; font-size: clamp(1.75rem, 1rem + 4.6vw, 2.4rem); }
  .rp-spine li:nth-child(2) { font-size: clamp(1.25rem, .3rem + 5.5vw, 2rem); white-space: nowrap; }
  .rp-coming li { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
  .rp-give-ways, .rp-train { grid-template-columns: minmax(0, 1fr); }
  .rp-foot-grid { grid-template-columns: minmax(0, 1fr); }
  .rp-index { columns: 2; }
  .rp-name { font-size: clamp(2.5rem, 1rem + 7.6vw, 3.4rem); }
  .rp-btns .wp-block-button { width: 100%; }
  .rp-btns .wp-block-button__link { display: block; text-align: center; }
}
