
/* ===== Spec §2: /books-and-membership/ (Books and Membership; was /individuals/) fixes. Scoped to the page with main:has(.product-showcase). ===== */
/* #4 single frame: drop the inset gold hairline around the hero */
main:has(.product-showcase) .route-hero::after{display:none}
/* #5 no fixed hero height; content sets the height */
body:has(.product-showcase) main .route-hero{height:auto;min-height:0;max-height:none;padding-block:var(--space-9,clamp(3.5rem,2.5rem + 3vw,5.5rem))}
body:has(.product-showcase) main .route-hero .route-hero-inner{height:auto;padding-block:0}
body:has(.product-showcase) main .route-hero .route-visual{height:auto;max-height:none}
/* #6 hero h1 */
main:has(.product-showcase) .route-hero h1{font-size:var(--fs-h1,clamp(2.5rem,1.6rem + 3.2vw,4.25rem));line-height:var(--lh-tight,1.05);letter-spacing:-0.02em;max-width:18ch}
main:has(.product-showcase) .route-hero .route-visual.contain img{height:auto;max-height:none;aspect-ratio:1983/793;padding:0;object-fit:contain;background:var(--navy-deep,#071025)}
/* #12 membership section head */
main:has(.price-grid) .section-head{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--space-7,3rem);margin-bottom:var(--space-7,3rem)}
@media (max-width:760px){main:has(.price-grid) .section-head{grid-template-columns:1fr;gap:var(--space-4,1rem)}}
/* #17 fine print */
main .fine-print{font-size:var(--fs-small,clamp(.875rem,.86rem + .1vw,.9375rem));line-height:1.5;max-width:70ch}
/* #18 print editions heading: no break at the hyphen */
main:has(.product-showcase) .split h2{hyphens:manual;max-width:16ch}
/* Outline buttons on light cards were white-on-ivory (invisible) since P1; §3.5 secondary-on-light colours */
main .price-grid article:not(.featured) .button-outline{background:transparent;border-color:var(--navy-2,#13224a);color:var(--navy-2,#13224a)}
main .price-grid article:not(.featured) .button-outline:hover{background:rgba(19,34,74,.06)}
main .product-showcase{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.25rem,2.5vw,2rem);align-items:stretch}
main .product-showcase > article{border:1px solid var(--gold-hair,rgba(198,161,91,.45));border-radius:var(--radius,6px);background:var(--paper,#fffdf8);box-shadow:var(--shadow-card,0 1px 2px rgba(11,21,48,.06),0 8px 24px rgba(11,21,48,.06));overflow:hidden;position:relative}
main .product-showcase article div{padding:0}
main .product-showcase figure{margin:0}
main .product-showcase .kicker{margin:0 0 1rem}
main .product-showcase .product-feature{grid-column:1/-1;grid-row:auto;display:block}
main .product-showcase .product-feature::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--cta-brushed,linear-gradient(110deg,#cba95d 0%,#e8d699 50%,#d0b36b 100%));z-index:1}
main .product-showcase .product-feature figure{aspect-ratio:1983/793;overflow:hidden;background:#3a2a1a}
main .product-showcase .product-feature figure img{display:block;width:100%;height:100%;min-height:0;object-fit:cover;background:none;border-radius:0;aspect-ratio:auto}
main .product-showcase .product-feature .feature-body{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(2rem,4vw,4rem);padding:clamp(1.75rem,3.5vw,3.25rem) clamp(1.5rem,4vw,3.75rem);align-items:start}
main .product-showcase .product-feature h2{font-size:var(--fs-h2,clamp(2rem,1.45rem + 2.2vw,3.25rem));line-height:1.08;max-width:22ch;margin:0;text-wrap:balance}
main .product-showcase .feature-copy p{font-size:var(--fs-lead,clamp(1.125rem,1.02rem + .45vw,1.375rem));line-height:1.55;color:var(--ink,#17213a);max-width:46ch;margin:0}
main .product-showcase .feature-copy .feature-note{margin-top:.75rem;font-size:var(--fs-small,clamp(.875rem,.86rem + .1vw,.9375rem));color:var(--muted,#626979)}
main .product-showcase .feature-price{display:flex;align-items:baseline;gap:.75rem;margin:1.5rem 0 1.75rem;padding-top:1.25rem;border-top:1px solid var(--rule,rgba(19,34,74,.16))}
main .product-showcase .feature-price .label{font:600 .75rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted,#626979)}
main .product-showcase .feature-price .amount-line{font:600 clamp(1.5rem,1.2rem + 1vw,2rem)/1.1 var(--serif);color:var(--navy-2,#13224a)}
main .product-showcase .feature-price .amount-line small{font:500 var(--fs-small,.9rem)/1 var(--sans);color:var(--muted,#626979);margin:0 .9rem 0 .35rem}
main .product-showcase .feature-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem}
main .product-showcase .product-card{display:flex;flex-direction:column;transition:box-shadow .25s}
main .product-showcase .product-card:hover{box-shadow:var(--shadow-raised,0 18px 44px rgba(11,21,48,.16))}
main .product-showcase .product-card figure{aspect-ratio:16/9;overflow:hidden;background:#3a2a1a;border-bottom:1px solid var(--gold-hair,rgba(198,161,91,.45))}
main .product-showcase .product-card figure img{display:block;width:100%;height:100%;min-height:0;object-fit:cover;background:none;border-radius:0;aspect-ratio:auto}
main .product-showcase .product-card figure.journals{aspect-ratio:auto;background:var(--paper,#fffdf8)}
main .product-showcase .product-card figure.journals img{height:auto;aspect-ratio:1671/941}
main .product-showcase .journals figcaption{padding:.7rem .5rem .75rem;text-align:center;font:600 .9rem/1.3 var(--sans);font-variant-caps:all-small-caps;letter-spacing:.14em;color:var(--gold-text,#7a5c24);border-top:1px solid var(--gold-hair,rgba(198,161,91,.45))}
main .product-showcase .journals figcaption .dot{margin-inline:.5em;color:var(--gold,#c6a15b)}
main .product-showcase .product-card .card-body{display:flex;flex-direction:column;flex:1;padding:clamp(1.5rem,2.5vw,2.25rem)}
main .product-showcase .product-card h3{font-size:var(--fs-h3,clamp(1.5rem,1.25rem + 1vw,2rem));line-height:1.15;margin:0 0 .75rem;text-wrap:balance}
main .product-showcase .product-card .card-copy{color:var(--muted,#626979);font-size:var(--fs-body,clamp(1rem,.97rem + .15vw,1.0625rem));margin:0 0 1.75rem}
main .product-showcase .product-card .card-cta{margin-top:auto;padding-top:1.25rem;border-top:1px solid var(--rule,rgba(19,34,74,.16));display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem}
main .product-showcase .card-price{font:600 1.375rem/1 var(--serif);color:var(--navy-2,#13224a)}
main .product-showcase .card-price small{font:500 var(--fs-small,.9rem)/1 var(--sans);color:var(--muted,#626979);margin-left:.35rem}
main .product-showcase .card-links{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem}
main .price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.75rem);align-items:stretch}
main .price-grid article{display:flex;flex-direction:column;padding:clamp(1.75rem,3vw,2.5rem);background:var(--paper,#fffdf8);border:1px solid var(--gold-hair,rgba(198,161,91,.45));border-radius:var(--radius,6px);box-shadow:var(--shadow-card,0 1px 2px rgba(11,21,48,.06),0 8px 24px rgba(11,21,48,.06));position:relative;transform:none}
main .price-grid article .kicker{margin:0 0 .75rem}
main .price-grid article .amount{display:flex;align-items:baseline;gap:.6rem;margin:.25rem 0 1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--rule,rgba(19,34,74,.16))}
main .price-grid article strong{display:inline;margin:0;font:600 clamp(3rem,2.4rem + 2vw,4.25rem)/1 var(--serif);color:var(--navy-2,#13224a);letter-spacing:-.01em}
main .price-grid article .per{font:500 var(--fs-small,.9rem)/1.2 var(--sans);color:var(--muted,#626979);white-space:nowrap;margin:0}
main .price-grid article ul{list-style:none;padding:0;display:grid;gap:.75rem;margin:0 0 2rem;font-size:var(--fs-small,.9rem)}
main .price-grid article ul.base{margin-bottom:1.5rem}
main .price-grid article li{position:relative;padding:0 0 0 1.45rem;border-top:0;font-size:inherit;line-height:1.45}
main .price-grid article li::before{content:"";position:absolute;left:.05rem;top:.42em;width:.72rem;height:.72rem;background:#7a5c24;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c-.5 8.7-3.3 11.5-12 12 8.7.5 11.5 3.3 12 12 .5-8.7 3.3-11.5 12-12C15.3 11.5 12.5 8.7 12 0Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c-.5 8.7-3.3 11.5-12 12 8.7.5 11.5 3.3 12 12 .5-8.7 3.3-11.5 12-12C15.3 11.5 12.5 8.7 12 0Z'/%3E%3C/svg%3E") center/contain no-repeat}
main .price-grid article li b{font:inherit;font-weight:600}
main .price-grid article li .sub{display:block;margin-top:.2rem;font-size:.8125rem;line-height:1.4;color:var(--muted,#626979)}
main .price-grid article .bonus-block{margin:0 0 2rem;padding:1rem 1.1rem 1.05rem;border:1px solid rgba(198,161,91,.55);border-radius:var(--radius,6px);background:rgba(198,161,91,.08)}
main .price-grid article .bonus-label{margin:0 0 .6rem;font:700 var(--fs-eyebrow,.8125rem)/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-text,#7a5c24)}
main .price-grid article .bonus-block ul{margin:0;gap:.45rem}
main .price-grid article .bonus-note{margin:.65rem 0 0;font:500 .8125rem/1.3 var(--sans);font-style:italic;color:var(--muted,#626979)}
main .price-grid article .bonus-total{margin:.75rem 0 0;padding-top:.6rem;border-top:1px solid rgba(198,161,91,.45);font:600 .9375rem/1.3 var(--sans);color:var(--navy-2,#13224a)}
main .price-grid article .bonus-note+.bonus-note{margin-top:.3rem}
main .price-grid article.featured .bonus-total{color:#fff;border-color:rgba(223,193,123,.5)}
main .price-grid article .button{margin-top:auto;width:100%;justify-content:center}
main .price-grid article.featured{transform:none;background:var(--navy-2,#13224a);border-color:var(--navy-2,#13224a);border-top-width:1px;box-shadow:var(--shadow-raised,0 18px 44px rgba(11,21,48,.16));color:var(--on-dark-2,#dbe3ed)}
main .price-grid article.featured::before{content:"";position:absolute;inset:-1px -1px auto;height:3px;background:var(--cta-brushed,linear-gradient(110deg,#cba95d 0%,#e8d699 50%,#d0b36b 100%));border-radius:var(--radius,6px) var(--radius,6px) 0 0}
main .price-grid article.featured .kicker,main .price-grid article.featured .bonus-label{color:var(--gold-light,#dfc17b)}
main .price-grid article.featured strong{color:#fff}
main .price-grid article.featured .per,main .price-grid article.featured .bonus-note{color:var(--on-dark-2,#dbe3ed)}
main .price-grid article.featured .amount{border-color:var(--rule-dark,rgba(255,255,255,.14))}
main .price-grid article.featured li{color:#fff}
main .price-grid article.featured li::before{background:#e8d699}
main .price-grid article.featured li .sub{color:var(--on-dark-2,#dbe3ed);opacity:.85}
main .price-grid article.featured .bonus-block{background:rgba(223,193,123,.08);border-color:rgba(223,193,123,.5)}
@media (max-width:960px){
  main .price-grid{grid-template-columns:minmax(0,1fr);max-width:560px;margin-inline:auto}
}
@media (max-width:860px){
  main .product-showcase .product-feature .feature-body{grid-template-columns:minmax(0,1fr);gap:1.25rem}
  main .product-showcase .product-feature h2{max-width:20ch}
}
@media (max-width:700px){
  main .product-showcase{grid-template-columns:minmax(0,1fr)}
  main .product-showcase .feature-actions{flex-direction:column;align-items:stretch}
  main .product-showcase .feature-actions .button{width:100%;white-space:normal;text-align:center;justify-content:center}
  main .product-showcase .feature-actions .text-link{align-self:center}
}
@media (max-width:480px){main .product-showcase .journals figcaption{font-size:.84rem;letter-spacing:.08em}}
@media (prefers-reduced-motion:reduce){main .product-showcase .product-card{transition:none}}

@media (min-width:1121px) and (max-width:1199px){
  .header-inner{display:flex;min-height:74px;gap:16px;grid-template-columns:none}
  .brand{padding-right:0}
  .brand::after{display:none}
  .brand-logo{width:190px}
  .header-actions{display:none}
  .menu{display:block;order:3;min-height:44px}
  .mobile-book-cta.button{display:inline-flex;order:2;margin-left:auto;min-height:44px}
  .nav{display:none}
  .nav.open{display:flex}
}
@media (min-width:1200px){
  .header-inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand nav actions";min-height:88px;width:min(1440px,calc(100% - 48px));gap:20px;padding-block:0}
  .brand{padding-right:20px}
  .brand::after{display:block}
  .brand-logo{width:168px}
  .header-actions{display:flex;gap:0;padding-left:20px}
  .header-actions .button{font-size:11px;padding:14px 18px;min-height:48px;letter-spacing:.07em;gap:12px;white-space:nowrap}
  .menu,.mobile-book-cta.button{display:none}
  .nav{display:flex;position:static;flex-direction:row;align-items:center;justify-content:center;gap:clamp(12px,1.15vw,22px);padding:0;background:none;border-top:0;min-width:0}
  .nav-mobile-actions{display:none}
  .parish-nav{top:88px}
}
@media (min-width:1200px) and (max-width:1279px){.brand-logo{width:156px}.header-inner{gap:16px}.brand{padding-right:16px}.header-actions{padding-left:16px}}

/* CSP: inline style attributes removed from lesson scripts; same presentation via stylesheet. */
.board-lesson img[src$="st-peter-claver-wellcome.jpg"]{width:100%;max-height:420px;object-fit:contain}

/* ===== Phase 3 (spec §3.10 + §2 #3, #19, #20): accessibility quick wins ===== */
/* Block C: reveal is progressive enhancement; content is visible unless JS ran and motion is allowed */
.section > .shell, .volume-rail article, .card-grid article{opacity:1;transform:none}
@media (prefers-reduced-motion:no-preference){
  html.js-reveal:not(.motion-ready) .section > .shell:not(.visible),
  html.js-reveal:not(.motion-ready) .volume-rail article:not(.visible),
  html.js-reveal:not(.motion-ready) .card-grid article:not(.visible){opacity:0;transform:translateY(12px)}
}
@media print{.section > .shell, .volume-rail article, .card-grid article{opacity:1!important;transform:none!important}}
/* Focus rings: navy ring on light surfaces, gold-light ring on dark ones (was gold-text 2.9:1 on navy) */
:is(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--focus-light);outline-offset:3px;box-shadow:none}
:is(.navy,.route-hero,.home-hero,.footer,.site-header,.parish-nav,.featured,.parish-price-callout,.founding-banner,.cta,.signal,.pathway-intro,.founder-offer,.formation-rhythm) :is(a,button,summary,input,select,textarea,[tabindex]):focus-visible{outline-color:var(--focus-dark)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .button:hover{transform:none}
}
/* Phase 3 contrast (axe serious): CTA kicker on navy; volume rail on light sections used the on-dark text colour (1.46:1) */
.cta .kicker.gold,.navy .kicker.gold{color:var(--gold-light,#dfc17b)}
/* Recheck R7: the dark gradient sections (.signal, .pathway-intro, .founder-offer, .formation-rhythm) were missing from the on-dark rules, so the outline button went navy-on-navy (1.06:1) and the gold kicker went gold-text-on-navy (1.64:1) */
:is(.signal,.pathway-intro,.founder-offer,.formation-rhythm,.not-found) .kicker{color:var(--gold-light,#dfc17b)}
/* the ivory .qualification card sits inside dark sections (/, /founding-parishes/): keep its kicker on the light-surface gold (was gold-light on paper, 1.71:1) */
:is(.navy,.founder-offer,.formation-rhythm,.pathway-intro,.signal) .qualification .kicker{color:var(--gold-text,#7a5c24)}
main .section.paper .volume-rail p,main .section.ivory .volume-rail p{color:var(--muted,#626979)}
main .section.paper .volume-rail article>span,main .section.ivory .volume-rail article>span{color:var(--gold-text,#7a5c24)}
/* Ivory cards: card text links per IMPLEMENT.md atoms (mixed case, navy, gold underline); scoped so other pages' text links are unchanged */
main .product-showcase .text-link,main .price-grid ~ .fine-print .text-link{font:600 var(--fs-small,clamp(.875rem,.86rem + .1vw,.9375rem))/1.4 var(--sans);letter-spacing:0;text-transform:none;color:var(--navy-2,#13224a);text-decoration:underline;text-decoration-color:var(--gold,#c6a15b);text-underline-offset:.3em;text-decoration-thickness:1px}
main .product-showcase .text-link:hover,main .price-grid ~ .fine-print .text-link:hover{text-decoration-thickness:2px}

/* a11y: /book/ and /contact/ choice numbers. gold-text on the selected (navy) choice was 2.9:1 -> gold-light on navy (10.4:1); 13px eyebrow size */
.booking-choice-grid span{font-size:var(--fs-eyebrow,.8125rem);font-weight:600}
.booking-choice-grid button[aria-pressed="true"] span{color:var(--gold-light,#dfc17b)}

/* ===== Phase 4 (spec §3.5): buttons and text links ===== */
.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:48px;padding:.875rem 1.5rem;border:1px solid transparent;border-radius:var(--radius-button);font:600 var(--fs-button)/var(--lh-ui) var(--sans);letter-spacing:var(--ls-button);text-transform:uppercase;text-decoration:none;text-align:center;cursor:pointer;transition:background-color .2s,border-color .2s,box-shadow .2s,transform .2s}
.button-gold,.button.gold,.button.booking-cta{background:var(--cta-brushed);border-color:#d0b36b;color:var(--navy-2);box-shadow:0 6px 18px rgba(8,17,39,.14)}
.button-gold:hover,.button.gold:hover,.button.booking-cta:hover{filter:brightness(1.04);box-shadow:0 10px 26px rgba(8,17,39,.2);transform:translateY(-1px)}
.button-secondary,.button-outline,.button.secondary{background:transparent;border-color:var(--navy-2);color:var(--navy-2)}
.button-secondary:hover,.button-outline:hover,.button.secondary:hover{background:rgba(19,34,74,.06);transform:none}
:is(.navy,.route-hero,.home-hero,.footer,.cta,.video-end-overlay,.not-found,.signal,.pathway-intro,.founder-offer,.formation-rhythm) :is(.button-secondary,.button-outline,.button.secondary){border-color:rgba(255,255,255,.55);color:#fff}
:is(.navy,.route-hero,.home-hero,.footer,.cta,.video-end-overlay,.not-found,.signal,.pathway-intro,.founder-offer,.formation-rhythm) :is(.button-secondary,.button-outline,.button.secondary):hover{background:rgba(255,255,255,.08);border-color:var(--gold-light)}
.button-ink{background:var(--navy-2);border-color:var(--navy-2);color:#fff}
.button-ink:hover{background:var(--navy);transform:none}
.button:focus-visible{outline:3px solid var(--focus-light);outline-offset:3px}
:is(.navy,.route-hero,.home-hero,.footer,.site-header,.featured,.cta,.video-end-overlay,.not-found,.signal,.pathway-intro,.founder-offer,.formation-rhythm) .button:focus-visible{outline-color:var(--focus-dark)}
.button:disabled,.button[aria-disabled="true"]{opacity:.55;cursor:not-allowed;transform:none;filter:none;box-shadow:none}
.button.small,.header-actions .button,.mobile-book-cta.button{min-height:44px;padding:.625rem 1.125rem}
.text-link{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font:600 var(--fs-small)/1.3 var(--sans);letter-spacing:.01em;text-transform:none;color:var(--gold-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}
.text-link:hover{color:var(--navy-2);text-decoration-thickness:2px}
:is(.navy,.route-hero,.home-hero,.footer,.cta,.signal,.pathway-intro,.founder-offer,.formation-rhythm) .text-link{color:var(--gold-light)}
:is(.navy,.route-hero,.home-hero,.footer,.cta,.signal,.pathway-intro,.founder-offer,.formation-rhythm) .text-link:hover{color:#fff}
/* inline prose links keep the sentence flow (target-size exception for inline links) */
p .text-link{display:inline;min-height:0;font-size:inherit}
@media (prefers-reduced-motion:reduce){.button:hover{transform:none}}

/* ===== Phase 5 (spec §3.8): navigation ===== */
/* --header-h matches the real header in each range (the spec's 80/64 were estimates); the parish subnav and in-page anchors use it */
:root{--header-h:66px}
@media (min-width:761px){:root{--header-h:74px}}
@media (min-width:1200px){:root{--header-h:88px}}
.parish-nav{top:var(--header-h)}
.parish-nav a{font:600 .875rem/1.2 var(--sans);padding-block:.75rem}
section[id]{scroll-margin-top:calc(var(--header-h) + 56px)}
.site-header :is(a,button):focus-visible{outline:3px solid var(--focus-dark);outline-offset:3px;box-shadow:none}
/* Desktop inline nav (>=1200px; below that the compact Menu header is used) */
@media (min-width:1200px){
  .nav>a:not(.button){font:500 var(--fs-nav)/1.2 var(--sans);color:#e8edf3;padding-block:.75rem;letter-spacing:.005em;white-space:nowrap}
  .nav>a:not(.button):hover{color:#fff}
  .nav>a:not(.button)::after{bottom:.35rem;height:2px;background:var(--gold-light)}
  .nav>a[aria-current="page"]{color:var(--gold-light)}
  .header-actions .member-login{font:500 var(--fs-nav)/1.2 var(--sans);padding-block:.75rem}
}
/* Mobile / compact header: 64px bar with logo, Book and Menu */
@media (max-width:760px){
  .header-inner{min-height:64px;padding-block:0}
  .brand-logo{width:auto;height:36px}
  .mobile-book-cta.button{min-width:44px;padding-inline:1rem}
}
/* Open panel: fixed below the header, covers the page, scrolls on its own; rows >=48px */
@media (max-width:1199px){
  .nav{position:fixed;top:var(--nav-top,var(--header-h));left:0;right:0;bottom:0;z-index:49;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-5) var(--gutter) var(--space-7);gap:0;align-items:stretch;flex-direction:column;justify-content:flex-start;background:var(--navy-2);border-top:1px solid var(--rule-dark);box-shadow:none}
  .nav>a:not(.button){display:flex;align-items:center;min-height:48px;padding:0 0 0 var(--space-4);font:500 1.125rem/1.3 var(--sans);letter-spacing:0;color:#e8edf3;border-bottom:1px solid var(--rule-dark);white-space:normal}
  .nav>a:not(.button)::after{display:none}
  .nav>a[aria-current="page"]{color:var(--gold-light);box-shadow:inset 3px 0 0 var(--gold)}
  .nav-mobile-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3);margin-top:var(--space-5);padding-top:0;border-top:0}
  .nav-mobile-actions .member-login{display:flex;align-items:center;min-height:48px;padding-left:var(--space-4);font:500 1.125rem/1.3 var(--sans);color:#e8edf3;text-decoration:underline;text-underline-offset:.3em;text-decoration-thickness:1px}
  .nav-mobile-actions .button{width:100%;margin-top:var(--space-3)}
  .menu{min-width:44px;min-height:44px}
}

body.nav-open{overflow:hidden}
/* the header background is opaque, so the blur does nothing; it also made the header the containing block for the fixed menu panel */
.site-header{-webkit-backdrop-filter:none;backdrop-filter:none}

/* Recheck R6 (pre-existing Lows): gold-light em headings and kickers on light surfaces were 1.61-1.71:1; use the light-surface gold (5.75:1 on ivory) */
:is(.ivory,.paper) h2 em{color:var(--gold-text,#7a5c24)}
.founding-strip{display:block}

footer.footer{background:var(--navy-deep);color:var(--on-dark-muted);padding:var(--space-8) 0 var(--space-6)}
footer.footer .footer-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));gap:var(--space-6)}
footer.footer .footer-grid>div:not(:first-child){display:flex;flex-direction:column;min-width:0}
footer.footer .kicker{color:var(--gold-light)}
footer.footer .footer-grid a,footer.footer .footer-grid>div>span{font-size:var(--fs-small);line-height:1.4;color:var(--on-dark-muted);margin:0;padding-block:.375rem;text-decoration:none;overflow-wrap:anywhere}
footer.footer .footer-grid a:hover{color:#fff;text-decoration:underline;text-underline-offset:.3em}
footer.footer .footer-brand h2{font-size:var(--fs-h3);line-height:var(--lh-snug);color:#fff;margin-top:var(--space-5)}
footer.footer .footer-base{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--rule-dark);font-size:var(--fs-small)}
@media (max-width:1000px){footer.footer .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}footer.footer .footer-brand{grid-column:1/-1}}
@media (max-width:760px){footer.footer .footer-grid a{min-height:44px;display:flex;align-items:center;padding-block:0}}
@media (max-width:560px){footer.footer .footer-grid{grid-template-columns:1fr}}
.season-preview{display:none!important}

/* Design phase 9 — site-wide sweep: 404 heading centred (h1 max-width:18ch needs auto inline margins). */
.not-found :is(h1,p){margin-inline:auto}

.video-start-overlay{background:var(--navy-deep,#071025);background-image:radial-gradient(120% 90% at 50% 40%,rgba(31,66,109,.55),transparent 70%);border:1px solid rgba(223,193,123,.35)}
.video-start-poster{display:none!important}
.video-play-button{text-shadow:none;gap:.6rem}
.video-play-button strong{font-size:clamp(1.35rem,2.4vw,1.9rem);line-height:1.15}
.video-play-button small{color:var(--on-dark-muted,#aebaca);font-size:var(--fs-small,.9375rem)}

.question-grid article{background:var(--marian,#1f426d);border-color:rgba(223,193,123,.28);color:#fffdf8}
.question-grid article p{color:#fffdf8}
.question-grid article span{color:var(--gold-light,#dfc17b);font-size:1rem;text-shadow:0 0 12px rgba(223,193,123,.45)}

.values article{background:var(--marian,#1f426d);border-color:rgba(223,193,123,.28);color:#fffdf8}
.values article h3{color:#fffdf8}
.values article p{color:#e6ecf3}
.values article span{color:var(--gold-light,#dfc17b)}
.home-hero::after,.route-hero::after{display:none}
.founding-strip .founding-banner{margin:0;max-width:none;width:100%;background:var(--gold-light,#dfc17b);color:var(--navy,#0b1530);border-bottom:1px solid rgba(7,16,37,.18)}
.founding-strip .founding-banner .founding-banner-text{color:var(--navy,#0b1530)}
.founding-strip .founding-banner a.founding-banner-link{color:var(--navy-deep,#071025);font-weight:700;text-transform:uppercase;letter-spacing:.08em;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em;white-space:nowrap}
.founding-strip .founding-banner a.founding-banner-link:hover{text-decoration-thickness:2px}
.founding-strip .founding-banner a.founding-banner-link:focus-visible{outline:3px solid var(--navy-deep,#071025);outline-offset:3px;border-radius:2px}
@media (max-width:480px){
.route-hero{padding-block:0}
.home-hero .home-hero-grid,.route-hero .route-hero-inner{padding-block:1.5rem 2rem;gap:1.25rem}
.home-hero h1{font-size:2.125rem}
.route-hero h1{font-size:2rem}
:is(.home-hero,.route-hero) .hero-lead{font-size:1rem;line-height:1.5;margin-top:.875rem}
:is(.home-hero,.route-hero) .actions{margin-top:1rem;gap:.5rem}
:is(.home-hero,.route-hero) .actions .button{min-height:44px;padding-block:.625rem}
.route-hero .route-visual:not(.contain) img{width:100%;height:min(20svh,165px);object-fit:cover}
.route-hero .route-visual.contain img{width:auto;max-width:100%;max-height:min(20svh,170px);margin-inline:auto;object-fit:contain}
}
.founding-strip .founding-banner a.founding-banner-link span{color:inherit;flex:none}

.how-it-works .how-roles-title{margin:var(--space-7,3rem) 0 var(--space-4,1rem);font:600 1.25rem/1.3 var(--sans)}
.how-it-works .steps{margin-top:var(--space-5,1.5rem)}
.route-visual.route-video{height:auto;max-height:none;aspect-ratio:16/9;align-self:center;margin:0;background:#061426;border:1px solid rgba(247,228,165,.5);box-shadow:0 28px 60px rgba(0,0,0,.28);overflow:hidden}
.route-visual.route-video video{display:block;width:100%;height:100%;aspect-ratio:16/9;object-fit:contain;background:#061426}
.qualification ul li,.qualification ul.spark-list li{position:relative;padding:1rem 0 1rem 1.6rem;border-bottom:1px solid var(--rule)}
.qualification ul li::before,.qualification ul.spark-list li::before{content:"✦";position:absolute;left:0;top:calc(1rem + .2em);width:auto;height:auto;margin:0;background:none;clip-path:none;color:var(--gold-text);font-size:.8em;line-height:inherit}

/* Parish sub-nav at phone widths (batch H): the five links wrap onto centred rows instead of scrolling sideways. */
@media (max-width:640px){
  .parish-nav{flex-wrap:wrap;justify-content:center;overflow-x:visible;gap:0 1rem;padding:.35rem 1rem}
  .parish-nav a{padding-block:.5rem;font-size:.8125rem}
}
/* Batch H: "Book a Conversation" is longer than the old label. Below 1200px it may wrap to two lines;
   the Menu button never shrinks, and very small phones get tighter button padding. */
@media (max-width:1199px){ .menu{flex-shrink:0} .mobile-book-cta.button{line-height:1.15;text-align:center;min-width:0} }
@media (max-width:374px){ .header-inner{gap:.5rem} .mobile-book-cta.button{padding-inline:.6rem;font-size:.625rem} }
/* Batch H: make the longer "Book a Conversation" button fit beside the full nav at 1200-1279px. */
@media (min-width:1200px) and (max-width:1279px){ .nav{gap:11px} .header-actions .button{padding-inline:14px;letter-spacing:.04em;gap:8px} }
.route-hero .hero-statement{max-width:30ch;margin:1rem 0 0;font:600 clamp(1.3rem,1rem + .9vw,1.7rem)/1.25 var(--serif);color:var(--gold-light,#dfc17b);letter-spacing:-.005em}
.route-hero .hero-statement+.hero-lead{margin-top:.75rem}
.source-note{margin:1.25rem 0 0;font:italic 600 1.2rem/1.35 var(--serif);color:var(--marian,#1f426d)}
@media (max-width:480px){.route-hero .hero-statement{font-size:1.2rem;margin-top:.75rem}.route-hero .hero-statement+.hero-lead{margin-top:.5rem}}
.mobile-book-cta.button,.header-actions .button{white-space:nowrap}
@media (max-width:430px){.mobile-book-cta.button{display:none}.header-inner .menu{margin-left:auto}}
.guide-gate .guide-consent{line-height:1.45}
.guide-gate .guide-consent a,.guide-notice a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.guide-notice{margin:.75rem 0 0;font-size:.9rem;line-height:1.45}
.privacy-page{padding-block:clamp(2.5rem,2rem + 3vw,5rem)}
.privacy-policy{max-width:72ch;margin-inline:auto;color:var(--ink,#1d2433);font-size:1.0625rem;line-height:1.65}
.privacy-policy h1{font:600 clamp(2.2rem,1.6rem + 2.4vw,3.4rem)/1.1 var(--serif);color:var(--navy,#13224a);margin:0 0 1rem}
.privacy-policy h2{font:600 clamp(1.5rem,1.2rem + 1vw,2rem)/1.2 var(--serif);color:var(--navy,#13224a);margin:2.5rem 0 .75rem}
.privacy-policy h3{font:600 1.25rem/1.3 var(--serif);color:var(--marian,#1f426d);margin:1.75rem 0 .5rem}
.privacy-policy p,.privacy-policy ul,.privacy-policy ol{margin:0 0 1rem}
.privacy-policy ul,.privacy-policy ol{padding-left:1.4rem}
.privacy-policy li{margin:.3rem 0}
.privacy-policy a{color:var(--marian,#1f426d);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.privacy-policy table{width:100%;border-collapse:collapse;margin:0 0 1rem}
.privacy-policy th,.privacy-policy td{border:1px solid rgba(19,34,74,.2);padding:.5rem;text-align:left;vertical-align:top}
/* Shared hero blend: every page hero with a photo or video. Navy copy zone on the left, the picture fading in on the right; stacked below 768px. */
:root{--hb-navy:#13224a;--hb-desktop:linear-gradient(90deg,#13224a 0%,#13224a 38%,rgba(19,34,74,.88) 46%,rgba(19,34,74,.55) 56%,rgba(19,34,74,.18) 68%,rgba(19,34,74,0) 78%);--hb-stacked:linear-gradient(180deg,#13224a 0%,#13224a 42%,rgba(19,34,74,.55) 58%,rgba(19,34,74,0) 75%);--hb-stacked-photo-top:linear-gradient(0deg,#13224a 0%,#13224a 42%,rgba(19,34,74,.55) 58%,rgba(19,34,74,0) 75%);--hb-multiply:linear-gradient(90deg,rgba(19,34,74,0) 40%,rgba(19,34,74,.25) 55%,rgba(19,34,74,0) 70%);--hb-pos:60% 50%}
main .hero-blend{position:relative;isolation:isolate;overflow:hidden;background:var(--hb-navy)}
main .hero-blend h1{color:#faf6ec}
main .hero-blend .kicker,main .hero-blend .kicker.gold{color:#dfc17b}
main .hero-blend .hero-media::after,main .hero-blend::before{pointer-events:none}
main .hero-blend .hero-media figcaption{position:absolute;z-index:3;right:clamp(12px,2vw,24px);bottom:12px;left:auto;max-width:min(420px,80%);margin:0;padding:4px 10px;background:rgba(9,18,42,.82);color:#e8e2d2;font-size:.78rem;line-height:1.35;text-align:right;border-radius:2px}
main .hero-blend .video-experience{position:relative}
@media (min-width:768px){
  main .hero-blend::before{content:"";position:absolute;inset:0;z-index:1;background-image:var(--hb-desktop);transition:opacity .35s ease}
  main .hero-blend :is(.route-hero-inner,.home-hero-grid){position:static;display:grid;grid-template-columns:minmax(0,1fr);min-height:clamp(480px,40vw,600px);align-items:center;padding-block:clamp(2.5rem,4vw,3.5rem)}
  main .hero-blend :is(.route-hero-inner,.home-hero-grid)>div{position:relative;z-index:2;max-width:min(600px,calc(40vw - (100vw - min(1220px,100vw - 3rem))/2))}
  main .hero-blend .home-copy{z-index:4}
  main .hero-blend .route-hero-inner>div h1{max-width:15ch}
  main .hero-blend .hero-media{position:absolute;top:0;right:0;bottom:0;left:auto;width:62%;height:auto!important;max-height:none!important;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:var(--hb-navy);aspect-ratio:auto;overflow:hidden}
  main .hero-blend .hero-media :is(img,picture){display:block;width:100%;height:100%!important;max-height:none!important;aspect-ratio:auto!important;margin:0;padding:0;border:0;box-shadow:none;object-fit:cover;object-position:var(--hb-pos)}
  main .hero-blend.hero-blend-contain .hero-media img{object-fit:contain;object-position:right center;padding:clamp(1.5rem,3vw,3rem) clamp(1.5rem,3vw,3rem) clamp(1.5rem,3vw,3rem) 0;background:var(--hb-navy)}
  main .home-hero.hero-blend .home-community figcaption{display:flex;flex-direction:column;gap:2px;text-align:right}
  main .hero-blend .fi-hero-art::after{content:none}
  /* Extra multiply where the fade ends on a bright wall, sky or window. */
  main .hero-blend:has(img[src*="raphael-disputation"],img[src*="panini-interior"],img[src*="set-navy-softcover-1100"],img[src*="set-navy-softcover-600"])::after{content:"";display:block;position:absolute;inset:0;z-index:1;border:0;background-image:var(--hb-multiply);mix-blend-mode:multiply;pointer-events:none}
}
@media (max-width:767.98px){
  main .hero-blend::before{content:none}
  main .hero-blend :is(.route-hero-inner,.home-hero-grid){position:static;display:block;padding-bottom:0}
  main .hero-blend :is(.route-hero-inner,.home-hero-grid)>div{position:relative;z-index:2;max-width:none}
  main .hero-blend .hero-media{position:relative;display:block;width:auto;height:auto!important;max-height:none!important;aspect-ratio:auto!important;margin:-26vw calc(50% - 50vw) 0;padding:0;border:0;border-radius:0;box-shadow:none;background:var(--hb-navy);overflow:hidden}
  main .hero-blend .hero-media::after{content:"";position:absolute;inset:0;z-index:1;background-image:var(--hb-stacked);transition:opacity .35s ease}
  main .hero-blend .hero-media :is(img,picture){display:block;width:100%;height:auto!important;max-height:none!important;aspect-ratio:1/1!important;margin:0;padding:0;border:0;box-shadow:none;object-fit:cover;object-position:var(--hb-pos)}
  main .hero-blend.hero-blend-contain .hero-media img{aspect-ratio:4/3!important;object-fit:contain;object-position:center 80%;padding:0 1rem 1rem}
  main .hero-blend .hero-media figcaption{position:relative;z-index:3;right:auto;bottom:auto;max-width:none;margin:0;padding:8px 1rem 14px;background:var(--hb-navy);text-align:left;color:#c9d1dd}
  /* For Individuals stacks the photo above the copy, so the fade runs upward (0deg) into the copy. */
  main .hero-blend.hero-blend-photo-top .fi-hero-art{position:relative;width:100%;margin:0}
  main .hero-blend.hero-blend-photo-top .fi-hero-art img{aspect-ratio:1/1;height:100%}
  main .hero-blend.hero-blend-photo-top .hero-media::after{background-image:var(--hb-stacked-photo-top)}
  main .hero-blend.hero-blend-photo-top .route-hero-inner{padding-top:0;margin-top:-18vw}
}
@media (min-width:768px) and (max-width:1023.98px){main .hero-blend :is(.route-hero-inner,.home-hero-grid)>div{max-width:calc(46vw - (100vw - min(1220px,100vw - 3rem))/2)}}
/* Subject placement: keep each picture's subject right of about 58% on wide screens. */
main .hero-blend:has(img[src*="raphael-disputation"]){--hb-pos:62% 40%}
main .hero-blend:has(img[src*="panini-interior"]){--hb-pos:55% 50%}
main .hero-blend:has(img[src*="christs-charge-to-peter"]){--hb-pos:65% 35%}
main .hero-blend:has(img[src*="supper-at-emmaus"]){--hb-pos:55% 45%}
main .hero-blend:has(img[src*="el-greco"]){--hb-pos:50% 25%}
main .hero-blend.fi-hero{--hb-pos:70% 55%}
@media (min-width:1024px){main .hero-blend.fi-hero{--hb-pos:70% 50%}} /* hero v2: books sit right of ~57%, keep them in frame */
@media (max-width:767.98px){main .hero-blend.fi-hero{--hb-pos:50% 50%}main .hero-blend.hero-blend-photo-top.fi-hero .fi-hero-art img{aspect-ratio:4/5!important}main .hero-blend.hero-blend-photo-top.fi-hero .hero-media::after{background-image:linear-gradient(0deg,#13224a 0%,rgba(19,34,74,.7) 16%,rgba(19,34,74,0) 45%)}} /* hero v2 mobile: own 1080x1350 art shown whole */
main .hero-blend .video-start-overlay{background-color:var(--hb-navy);border-color:transparent}
/* Our Inspiration is a portrait with the face high in the frame: on stacked screens it starts lower so the face sits in the clear part of the fade. */
@media (max-width:767.98px){main .hero-blend:has(img[src*="el-greco"]){--hb-pos:50% 0}main .hero-blend:has(img[src*="el-greco"]) .hero-media{padding-top:46vw}}
.guide-consent[hidden]{display:none}

/* r7: For Parishes sub-nav — scroll-spy active item in the existing gold, and one row that centres when it fits and scrolls sideways when it does not. */
.parish-nav{justify-content:flex-start}
.parish-nav>a:first-child{margin-left:auto}
.parish-nav>a:last-child{margin-right:auto}
.parish-nav a[aria-current="true"]{color:var(--gold-light);box-shadow:inset 0 -2px 0 var(--gold-light)}
@media (max-width:640px){
  .parish-nav{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;gap:0 1.1rem;padding:.35rem 1rem;scrollbar-width:none}
  .parish-nav::-webkit-scrollbar{display:none}
}

/* r7: Founding Parish bonuses card (Founding Parishes page) — navy and gold, serif headings, the cross mark. */
.founders-bonus-wrap{padding-block:clamp(2.5rem,5vw,4rem)}
.founders-card{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(1.75rem,4vw,3.5rem);padding:clamp(2rem,4vw,3.25rem);border:1px solid rgba(223,193,123,.55);border-radius:4px;background:radial-gradient(circle at 88% 12%,rgba(198,161,91,.18),transparent 32%),linear-gradient(135deg,#081127,#132b52 62%,#1f426d);color:#faf6ec;box-shadow:0 28px 60px rgba(11,21,48,.22)}
.founders-card::after{content:"";position:absolute;inset:12px;border:1px solid rgba(223,193,123,.22);border-radius:2px;pointer-events:none}
.founders-card-mark{display:block;width:64px;height:auto;margin-bottom:1rem}
.founders-card .kicker{margin:0 0 1rem;color:var(--gold-light)}
.founders-card-standard{margin:0;color:#c9d1dd;font-size:1rem;line-height:1.5}
.founders-card-price{margin:.6rem 0 0;font:600 clamp(1.45rem,1.05rem + 1.2vw,2rem)/1.22 var(--serif);color:#faf6ec;letter-spacing:-.005em}
.founders-card-bonuses{display:grid;gap:1.1rem;align-content:center;margin:0;padding:0;list-style:none}
.founders-card-bonuses li{position:relative;padding:1.25rem 1.25rem 1.25rem 3.1rem;border:1px solid rgba(223,193,123,.35);border-radius:3px;background:rgba(255,255,255,.04)}
.founders-card-bonuses li::before{content:"✦";position:absolute;left:1.2rem;top:1.25rem;color:var(--gold-light);font-size:1.05rem;line-height:1.4}
.founders-card-bonuses h3{margin:0;font:600 clamp(1.25rem,1.05rem + .6vw,1.5rem)/1.2 var(--serif);color:var(--gold-light)}
.founders-card-bonuses p{margin:.4rem 0 0;color:#e8e2d2;font-size:1rem;line-height:1.5}
.founders-card-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem 2rem;padding-top:1.5rem;border-top:1px solid rgba(223,193,123,.3)}
.founders-card-eligibility{flex:1 1 380px;margin:0;color:#c9d1dd;font-size:.9rem;line-height:1.5}
.founders-card-foot .actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin:0}
.founders-card .text-link.founders-card-talk{color:var(--gold-light)}
.founders-card .text-link.founders-card-talk:hover{color:#fff}
@media (max-width:900px){.founders-card{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){
  .founders-card{padding:1.75rem 1.25rem}
  .founders-card::after{inset:8px}
  .founders-card-bonuses li{padding:1.1rem 1rem 1.1rem 2.6rem}
  .founders-card-bonuses li::before{left:1rem;top:1.1rem}
  .founders-card-foot .actions{display:grid;width:100%}
  .founders-card-foot .button{width:100%;justify-content:center}
}
/* r7: Who Holy Journey Serves (#who-we-serve, replaces the former section) */
#who-we-serve .wws-body{margin-top:clamp(2.5rem,5vw,4rem)}
#who-we-serve .wws-intro{max-width:68ch;margin:0 auto clamp(2rem,4vw,3rem);font:500 clamp(1.15rem,1.6vw,1.35rem)/1.55 var(--serif);color:var(--ink,#0b1530);text-align:center;text-wrap:pretty}
#who-we-serve .wws-cards h3{margin:0 0 .85rem;font-size:clamp(1.35rem,1.9vw,1.6rem);line-height:1.15}
#who-we-serve .wws-cards article{padding:2rem}
#who-we-serve .wws-soon{background:var(--ivory,#f6f1e6);border-color:rgba(198,161,91,.55)}
#who-we-serve .wws-soon ul{margin:1rem 0;padding:0;list-style:none;display:grid;gap:.6rem}
#who-we-serve .wws-soon li{color:var(--muted);line-height:1.4}
#who-we-serve .wws-badge{display:inline-block;margin-left:.35rem;padding:.12rem .5rem;border:1px solid var(--gold-text,#8a6a2b);border-radius:999px;color:var(--gold-text,#8a6a2b);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;vertical-align:.1em}
#who-we-serve .wws-home{max-width:62ch;margin:clamp(2rem,4vw,3rem) auto 0;padding:1.4rem 1.6rem;border-left:3px solid var(--gold-light,#dfc17b);background:rgba(255,255,255,.55);font:italic 500 clamp(1.1rem,1.5vw,1.25rem)/1.55 var(--serif);color:var(--marian,#1f426d)}
#who-we-serve .wws-close{margin-top:clamp(2rem,4vw,3rem);text-align:center}
#who-we-serve .wws-close p{margin:0 0 1.2rem;font:600 clamp(1.25rem,2vw,1.6rem)/1.3 var(--serif);color:var(--ink,#0b1530)}
@media (max-width:1000px){#who-we-serve .wws-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){#who-we-serve .wws-cards{grid-template-columns:minmax(0,1fr)}#who-we-serve .wws-cards article{padding:1.5rem}}
/* r7: framed navy hero (Oct 31 /founding-parishes/ + /about/ treatment). Scoped to .route-hero-framed only. */
main .route-hero.route-hero-framed{position:relative;overflow:hidden;height:auto;min-height:0;max-height:none;padding:clamp(2.5rem,5vw,3.75rem) 0;color:#fff;background:radial-gradient(circle at 85% 30%,rgba(198,161,91,.16),transparent 25%),linear-gradient(125deg,#081127,#132b52 60%,#1f426d)}
main .route-hero.route-hero-framed::after{display:block;content:"";position:absolute;inset:24px;border:1px solid rgba(223,193,123,.22);pointer-events:none}
main .route-hero-framed .route-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(260px,.95fr);gap:clamp(2rem,5vw,4rem);align-items:center;height:auto;padding-block:clamp(1.5rem,3vw,2.5rem)}
main .route-hero-framed .route-hero-inner>div{max-width:none}
main .route-hero-framed h1{max-width:none;font-size:clamp(2.4rem,4vw,3.2rem);line-height:1.04;text-wrap:pretty}
main .route-hero-framed .hero-lead{max-width:60ch}
main .route-hero-framed .framed-media{position:relative;width:min(100%,560px);height:auto;max-height:none;margin:0;justify-self:end}
main .route-hero-framed .framed-media picture{display:block}
main .route-hero-framed .framed-media img{display:block;width:100%;height:auto;max-height:none;aspect-ratio:3/2;object-fit:cover;object-position:center 43%;border:1px solid rgba(223,193,123,.58);box-shadow:0 24px 54px rgba(3,12,28,.38);background:#0b1530;padding:0}
main .route-hero-framed .framed-media img[src*="community-courtyard"]{object-position:center 40%}
@media (max-width:900px){main .route-hero-framed .route-hero-inner{grid-template-columns:minmax(0,1fr);gap:1.75rem}main .route-hero-framed .framed-media{justify-self:start;width:min(100%,700px)}}
@media (max-width:767px){main .route-hero.route-hero-framed{padding:1.25rem 0}main .route-hero.route-hero-framed::after{inset:10px}main .route-hero-framed .route-hero-inner{padding-block:1.75rem 1.5rem}main .route-hero-framed h1{font-size:clamp(2rem,8.4vw,2.4rem)}main .route-hero-framed .framed-media img{aspect-ratio:16/10}}
/* r7: larger serif section titles (Founding Parishes, Who We Are), between v35 and Oct 31 sizes. */
main.titles-wide :is(.section,.cta) h2{font-size:clamp(2.2rem,1rem + 3.6vw,3.75rem);line-height:1.03;letter-spacing:-.022em;text-wrap:balance}
@media (min-width:1024px){ /* r8c (QA F6): was 1200px, so titles get the full row at 1024 too */
  main.titles-wide .section .split:has(>div:first-child:not(:has(>:not(.kicker,h2)))){row-gap:1.75rem}
  main.titles-wide .section .split>div:first-child:not(:has(>:not(.kicker,h2))){grid-column:1/-1}
  main.titles-wide .section .split>div:first-child:not(:has(>:not(.kicker,h2)))+div{grid-column:2}
  main.titles-wide .section .split>div:first-child:not(:has(>:not(.kicker,h2))) h2{max-width:none}
  main.titles-wide .section .section-head>div:first-child{max-width:none}
  main.titles-wide .section .section-head{grid-template-columns:minmax(0,1fr);gap:1.25rem}
  main.titles-wide .section .section-head h2{max-width:none}
  main.titles-wide .section .section-head>p{max-width:62ch}
  main.titles-wide .cta h2{max-width:none}
  main.titles-wide .community-gallery>div{max-width:1100px}
  main.titles-wide .community-gallery>div>h2{max-width:none}
  main.titles-wide .discernment-boundary{row-gap:0;align-items:start}
  main.titles-wide .discernment-boundary>div:first-child{display:contents}
  main.titles-wide .discernment-boundary>div:first-child>.kicker{grid-column:1/-1;grid-row:1}
  main.titles-wide .discernment-boundary>div:first-child>h2{grid-column:1/-1;grid-row:2;max-width:none;margin-bottom:2rem}
  main.titles-wide .discernment-boundary>div:first-child>.light-copy{grid-column:1;grid-row:3;margin-top:0}
  main.titles-wide .discernment-boundary>div:first-child>.button{grid-column:1;grid-row:4;justify-self:start;margin-top:1.5rem}
  main.titles-wide .discernment-boundary>.qualification{grid-column:2;grid-row:3/5;margin-top:0}
}

/* r7 item 8.4: Books & Membership hero - wider left text column (like the FI fix); the book image starts after the text column so copy never sits on the books. Image, copy, buttons unchanged. */
@media (min-width:1024px){
  main .hero-blend.hero-blend-contain:has(img[src$="set-navy-softcover-1100.webp"]){--bk-off:calc((100vw - min(1220px,100vw - 3rem))/2);--bk-col:min(620px,calc(50vw - var(--bk-off)));--bk-left:calc(var(--bk-off) + var(--bk-col) + 2rem);--hb-desktop:linear-gradient(90deg,#13224a 0,#13224a var(--bk-left),rgba(19,34,74,.55) calc(var(--bk-left) + 24px),rgba(19,34,74,0) calc(var(--bk-left) + 72px))}
  main .hero-blend.hero-blend-contain:has(img[src$="set-navy-softcover-1100.webp"]) .route-hero-inner>div{max-width:var(--bk-col)}
  main .hero-blend.hero-blend-contain:has(img[src$="set-navy-softcover-1100.webp"]) .route-hero-inner>div h1{max-width:none;text-wrap:balance}
  main .hero-blend.hero-blend-contain:has(img[src$="set-navy-softcover-1100.webp"]) .hero-lead{max-width:60ch;text-wrap:pretty}
  main .hero-blend.hero-blend-contain:has(img[src$="set-navy-softcover-1100.webp"]) .hero-media{left:var(--bk-left);right:0;width:auto}
}
/* r8 headline scale (Sales fixes spec 2026-11-02, row G4). Founding Parishes and Who We Are (main.titles-wide) keep r7 sizes per Kevin 12:36 ruling. */
:root{--fs-h1:clamp(1.875rem,1.4rem + 1.6vw,2.375rem);--fs-h2:clamp(1.5rem,1.25rem + 1vw,2.125rem)}
#main:not(.titles-wide) :is(.home-hero,.route-hero) h1{font-size:var(--fs-h1);line-height:1.08;max-width:28ch;text-wrap:balance}
#main:not(.titles-wide) .section h2,#main:not(.titles-wide) .cta h2{font-size:var(--fs-h2);line-height:1.12;text-wrap:balance}
#main .hero-price{margin:.75rem 0 0;font-weight:600;font-size:1.0625rem}
@media (max-width:480px){#main:not(.titles-wide) :is(.home-hero,.route-hero) h1{font-size:1.875rem}#main:not(.titles-wide) .section h2,#main:not(.titles-wide) .cta h2{font-size:1.5rem}}
/* r8c (QA F6): Founding Parishes and Who We Are section titles stay below the page H1 at every width (framed H1 = clamp(2.4rem,4vw,3.2rem)); cap 48px. */
main.titles-wide :is(.section,.cta) h2{font-size:clamp(1.75rem,.75rem + 2.5vw,3rem)}
/* r8c (QA F1a): on /founding-parishes/ the sub-nav shows "Become a Founding Parish" as the current item (not a link). */
.parish-nav .parish-nav-current{flex:0 0 auto;font:600 .875rem/1.2 var(--sans);letter-spacing:.04em;padding-block:.75rem;color:var(--gold-light);box-shadow:inset 0 -2px 0 var(--gold-light);cursor:default}
.parish-nav>.parish-nav-current:last-child{margin-right:auto}
@media (max-width:640px){.parish-nav .parish-nav-current{padding-block:.5rem;font-size:.8125rem}}

/* r8d (Nov 2, 2026): home hero only. Price line removed from the hero copy (site.js); the video is larger and fits the player exactly.
   >=1200px: copy 42% / video 58% of the hero row (buttons stay on one row). Below 1200px: video full width under the copy.
   The stage is an exact 16:9 box inside the 1px frame, so there is no letterbox band, crop or cut-off control at any width. */
#main .home-hero .home-community{width:100%;height:auto;max-height:none;justify-self:stretch;align-self:center}
#main .home-hero .home-community .hero-image-frame{height:auto;max-height:none;aspect-ratio:auto}
#main .home-hero .home-community .video-experience{width:100%;height:auto;aspect-ratio:16/9;background:#09142f}
#main .home-hero .home-community .hero-main-video{width:100%;height:100%;aspect-ratio:16/9;object-fit:contain;background:#09142f}
@media (min-width:1200px){
  #main .home-hero .home-hero-grid{grid-template-columns:minmax(0,42fr) minmax(0,58fr);gap:40px;align-items:center}
  #main .home-hero .home-copy{max-width:none}
  #main .home-hero .home-copy .actions{flex-wrap:nowrap}
  #main .home-hero .home-copy .actions .button{padding-inline:18px;gap:10px;white-space:nowrap}
}
@media (max-width:1199.98px){
  #main .home-hero .home-hero-grid{grid-template-columns:minmax(0,1fr)}
  #main .home-hero .home-community{max-width:980px;justify-self:start}
}

/* seo-3 (r8f): Experience a Lesson ships prerendered at step 1. When site.js will render something else (ClickFunnels embed, saved step),
   prerender-hold.js hides #site until site.js has rendered, so the swap is never seen. Fail-safe: shown after 3s even if site.js never runs. */
html.hr-prerender-hold #site{visibility:hidden;animation:hr-prerender-release 0s linear 3s forwards}
@keyframes hr-prerender-release{to{visibility:visible}}
