/* Genuine reading preferences and privacy controls for the private design review. */
:root { scroll-behavior: auto; }
body { padding-bottom: 0; overflow-wrap: anywhere; }
main { outline: none; }
:where(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid #fff !important; outline-offset: 3px; box-shadow: 0 0 0 7px #0b2033 !important; }
:where(a,button,input,select,textarea,summary) { scroll-margin-block: 6rem; }
.skip { z-index: 1000; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.visitor-tools { position: fixed; z-index: 30; inset: auto 1rem max(1rem, env(safe-area-inset-bottom)); display: grid; grid-template-columns: minmax(0, 1fr) 48px minmax(0, 1fr); align-items: stretch; gap: .5rem; pointer-events: none; }
.visitor-tools button { pointer-events: auto; display: flex; align-items: center; gap: .55rem; min-height: 48px; min-width: 48px; padding: .65rem 1rem; border: 2px solid #daae0f; border-radius: 40px; background: #0b2033; color: #fff; box-shadow: 0 3px 18px #06152340; font-size: .875rem; }
.visitor-tools svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.7; flex-shrink: 0; }
.visitor-tools { --icon-navy: #f8f5ec; --icon-gold: #f4d34f; --icon-coral: #ffb095; }
.visitor-tools .mission-icon { width: 36px; height: 36px; flex-shrink: 0; }
.visitor-tools .mission-icon .aocm-icon { width: 100%; height: 100%; stroke: none; }
.visitor-tools button[hidden] { display: none; }
.visitor-tool { display: grid; grid-template-rows: 32px 1fr; gap: 4px; width: min(100%, 11rem); align-items: end; }
.visitor-tool-accessibility { grid-column: 1; justify-self: start; }
.visitor-tool-help { grid-column: 3; justify-self: end; }
.visitor-tools :is(.accessibility-launch, .clement-launch) { grid-row: 2; width: 100%; height: 100%; justify-content: center; }
.visitor-tools .tool-size-toggle { grid-row: 1; justify-self: end; width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 0; justify-content: center; border-radius: 50%; font-size: 22px; line-height: 1; }
.visitor-tool-help .tool-size-toggle { justify-self: start; }
.visitor-tools .back-to-top { grid-column: 2; grid-row: 1; width: 48px; height: 48px; padding: 0; justify-content: center; align-self: end; }
:root[data-accessibility-minimised] .visitor-tool-accessibility,
:root[data-help-minimised] .visitor-tool-help { width: 48px; }
:root[data-accessibility-minimised] .accessibility-launch,
:root[data-help-minimised] .clement-launch { width: 48px; height: 48px; padding: 0; border-radius: 50%; }
:root[data-accessibility-minimised] #accessibility-launch-label,
:root[data-help-minimised] #help-launch-label { display: none; }
.support-panel { margin: auto; width: min(38rem, calc(100% - 2rem)); max-width: calc(100% - 2rem); max-height: calc(100dvh - 2rem); padding: 1.5rem; border: 2px solid #0b2033; color: #0b2033; background: #fcfaf5; overflow: auto; overscroll-behavior: contain; border-radius: 10px; }
.support-panel::backdrop { background: #061523b8; }
.support-open { overflow: hidden; }
.panel-top { display: flex; gap: 1rem; align-items: start; justify-content: space-between; margin-bottom: 1rem; }
.panel-top h2 { font-size: 1.65rem; line-height: 1.25; margin: .2rem 0; }
.panel-top button { width: 48px; min-width: 48px; height: 48px; font-size: 1.8rem; border: 1px solid currentColor; background: transparent; color: inherit; border-radius: 50%; }
.support-panel p { font-size: 1rem; }
.support-panel > label { margin-top: 1rem; font-size: 1rem; }
.support-panel select { width: 100%; font-size: 1rem; min-height: 48px; padding: .7rem; margin: .35rem 0 .5rem; border: 1px solid #425568; color: #0b2033; background: #fff; }
.reading-toggles { margin-block: 1rem; }
.reading-toggles label, .consent-label { display: flex; align-items: center; gap: .85rem; min-height: 48px; padding-block: .55rem; font-weight: 400; font-size: 1rem; }
.support-panel input[type="checkbox"] { width: 24px; height: 24px; flex-shrink: 0; margin: 0; }
#guide-position { width: 100%; min-height: 48px; }
.support-secondary, .support-actions button, .footer-bottom button { min-height: 48px; border: 1px solid currentColor; color: inherit; background: transparent; padding: .65rem 1rem; font-size: 1rem; }
.support-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.support-actions button { flex: 1 1 9rem; background: #0b2033; color: #fff; border-color: #0b2033; }
.support-panel .support-small { font-size: .875rem; margin-top: 1rem; }
.support-panel a { display: inline-flex; align-items: center; min-height: 44px; }
.clement-panel { width: min(27rem, calc(100vw - 1rem)); max-width: none; max-height: calc(100dvh - 1rem); height: min(46rem, calc(100dvh - 1rem)); padding: 0; overflow-y: auto; overscroll-behavior: contain; background: #fff; scrollbar-gutter: stable; }
.clement-panel[open] { position: fixed; inset: auto max(.5rem, env(safe-area-inset-right)) max(.5rem, env(safe-area-inset-bottom)) auto; margin: 0; }
.clement-panel-top { position: sticky; top: 0; z-index: 1; margin: 0; padding: .75rem 1rem; background: #0b2033; color: #fff; align-items: center; }
.clement-title-wrap { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.clement-title-wrap h2 { margin: 0; color: #fff; }
.clement-title-wrap p { margin: .2rem 0 0; color: #dbe5eb; font-size: .85rem; }
.clement-panel-top > button { color: #fff; border-color: #daae0f; }
.clement-launch-icon, .clement-panel-icon { display: block; width: 2rem; height: 2rem; flex: 0 0 auto; }
.clement-launch-icon svg, .clement-panel-icon svg { width: 100%; height: 100%; }
.clement-panel-icon { width: 3rem; height: 3rem; padding: .35rem; border-radius: .65rem; background: #fff; }
.clement-intro { padding: .65rem 1rem .25rem; }
.clement-intro p { margin: 0 0 .45rem; }
.clement-privacy-note { padding: .55rem .7rem; border: 1px solid #d9ad4d; border-radius: .5rem; background: #fff6df; color: #654b14; font-size: .84rem; line-height: 1.45; }
#clement-messages { min-height: 4rem; max-height: min(38dvh, 20rem); margin: 0 1rem; overflow-y: auto; overscroll-behavior: contain; }
#clement-messages > div { padding: .85rem 0; border-top: 1px solid #dce1e8; }
#clement-messages > div:first-child { border-top: 0; }
#clement-messages strong { display: block; margin-bottom: .25rem; color: #687384; font-size: .78rem; }
#clement-messages p { margin: 0; white-space: pre-wrap; line-height: 1.6; }
#clement-messages a { display: block; margin-top: .45rem; color: #174d78; font-size: .9rem; }
#clement-form { display: grid; gap: .5rem; padding: .75rem 1rem; border-top: 1px solid #dce1e8; }
#clement-form label { margin: 0; font-weight: 600; }
#clement-form textarea { height: 4rem; min-height: 4rem; }
#clement-form button { justify-self: start; }
#clement-status { margin: 0 1rem; }
#clement-status:empty { display: none; }
.clement-panel:has(#clement-messages > div) .clement-intro { display: none; }
#clement-handoff { padding: 1rem 1.25rem; border-top: 1px solid #dce1e8; }
#clement-handoff pre { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 14rem; overflow-y: auto; font: inherit; line-height: 1.55; padding: 1rem; border: 1px solid currentColor; }
#clement-handoff-form { display: grid; gap: .7rem; }
#clement-handoff-form input:not([type="checkbox"]) { width: 100%; min-height: 2.75rem; padding: .6rem; }
#clement-status { min-height: 1.5rem; margin: 0; padding: .35rem 1rem; color: #405063; font-size: .875rem; }
.clement-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: .5rem 1rem 1rem; }
.clement-actions :is(#clement-finish,#clement-new) { grid-column: 1 / -1; background: #0b2033; color: #f4d34f; }
.clement-actions button { flex-basis: auto; min-width: 0; font-size: .875rem; }
.clement-actions a { grid-column: 1 / -1; }
#clement-ended { padding: .75rem 1rem; border-top: 1px solid #dce1e8; }
#clement-ended h3 { margin: 0 0 .35rem; font-size: 1.2rem; }
#clement-ended p { margin: .35rem 0; }
.clement-rating-buttons { display: flex; gap: .5rem; }
.clement-rating-buttons button { min-height: 44px; flex: 1; border: 1px solid #0b2033; border-radius: .35rem; background: #fff; color: #0b2033; font: inherit; }
.clement-rating-buttons button:hover,.clement-rating-buttons button:focus-visible { background: #0b2033; color: #fff; }
.clement-panel [hidden] { display: none !important; }
@media (max-width: 32rem) { .clement-panel[open] { inset: auto 0 max(0px, env(safe-area-inset-bottom)) 0; width: 100vw; height: min(42rem, calc(100dvh - env(safe-area-inset-bottom))); border-radius: .65rem .65rem 0 0; } }
.clement-routes { display: grid; }
.clement-routes a { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid #71808b; }
.service-status { border-left: 4px solid #856600; padding-left: 1rem; }
#reading-guide { position: fixed; top: 50vh; left: 0; width: 100%; height: 3px; background: #ffe050; outline: 2px solid #0b2033; z-index: 20; pointer-events: none; }
.support-open #reading-guide { visibility: hidden; }
.cookie-notice { position: fixed; z-index: 25; bottom: calc(8.5rem + env(safe-area-inset-bottom)); right: 1rem; width: min(30rem, calc(100% - 2rem)); max-height: 55dvh; overflow: auto; background: #fff; color: #0b2033; border: 2px solid #0b2033; border-radius: 8px; padding: 1.25rem; display: block; box-shadow: 0 4px 24px #06152330; }
.cookie-notice > div:first-child { flex: 1; }
.cookie-notice p { font-size: .875rem; margin: .5rem 0 0; }
.cookie-notice .support-actions { flex: 1; max-width: 30rem; margin-top: 1rem; }
.welcome-close { position: relative; isolation: isolate; background: #051d29; color: #fff; }
.welcome-glass { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.welcome-close::before { content: ''; position: absolute; inset: 0; background: #041421d6; z-index: -1; }
.welcome-close h2 em { color: #f4d34f; }
.welcome-close .button { background: #daae0f; color: #0b2033; }
.vocation-feature { background: #123a32; }
.vocation-copy p { color: #f0f3f1; }
.ministry-story figure img { object-position: center; }
.site-footer nav a { display: inline-flex; align-items: center; min-height: 44px; }
.header-shortcuts a { font-size: .875rem; }
.hero-bottom p, .vocation-copy p, .ministry-story p:not(.large-copy), .statement-copy > p:not(.large-copy) { font-size: 1rem; }
.image-review { font-size: .75rem; }
.hero-shade { background: linear-gradient(0deg,#0b2033ed,transparent 75%); }
.page-index .site-header { background: #0b2033eb; }
.headline-line { width: fit-content; background: #0b2033eb; padding: .03em .14em .09em; }
.hero-bottom p, .explore-cue { background: #0b2033eb; padding: .6rem .8rem; }
.scene-shade { background: linear-gradient(90deg,#131219db,#101c29c7); }
.photographic-heading .heading-shade { background: linear-gradient(90deg,#071c2ee6,#071c2ed9 65%,#071c2ebf); }
.menu-image img { filter: brightness(.27); }
.hero-bottom p, .photographic-heading .lede { color: #fff; }
.visual-pathways small { font-size: .875rem; }
.cinematic-hero, .hero-stage { height: auto; min-height: max(790px, calc(100svh - 34px)); }
.headline-line { overflow-wrap: normal; }
html[data-reading-font] * { font-family: Arial, sans-serif !important; }
html[data-reading-spacing] :where(p,li,a,button,label,summary,h1,h2,h3,small,span,input,select,textarea) { letter-spacing: .12em !important; word-spacing: .16em !important; line-height: 1.6 !important; }
html[data-reading-spacing] p { margin-bottom: 2em !important; }
html[data-reading-links] a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: .2em; }
html[data-reading-images] main img, html[data-reading-images] .menu-image img { visibility: hidden; }
html[data-reading-images] :is(.cinematic-hero,.prayer-scene,.photographic-heading,.welcome-close) { background: #0b2033; }
html[data-reading-images] :is(.vocation-image,.ministry-story figure,.image-review) { display: none; }
html[data-reading-images] :is(.vocation-feature,.ministry-story) { grid-template-columns: 1fr; min-height: 0; }
html[data-reading-images] :is(.cinematic-hero,.hero-stage,.prayer-scene,.scene-copy,.photographic-heading) { min-height: 0; height: auto; }
html[data-contrast="light"] { --contrast-bg: #fff; --contrast-ink: #111; --contrast-link: #003487; }
html[data-contrast="dark"] { --contrast-bg: #111; --contrast-ink: #fff; --contrast-link: #ffe473; }
html[data-contrast="light"], html[data-contrast="dark"] { color-scheme: normal; }
html[data-contrast="dark"] { color-scheme: dark; }
html:not([data-contrast="default"])[data-contrast] :where(body,header,footer,main,section,nav,article,aside,dialog,.hero-stage,.vocation-copy,.statement-copy,.heading-content,.menu-top,.menu-grid) { background: var(--contrast-bg) !important; color: var(--contrast-ink) !important; }
html:not([data-contrast="default"])[data-contrast] :where(p,h1,h2,h3,em,strong,small,span,figcaption,label,svg) { color: var(--contrast-ink) !important; }
html:not([data-contrast="default"])[data-contrast] a { color: var(--contrast-link) !important; background: var(--contrast-bg) !important; }
html:not([data-contrast="default"])[data-contrast] :where(button,input,select,textarea) { color: var(--contrast-ink) !important; background: var(--contrast-bg) !important; border-color: var(--contrast-ink) !important; }
html:not([data-contrast="default"])[data-contrast] :where(.hero-image,.scene-image,.heading-background,.welcome-glass,.hero-shade,.scene-shade,.heading-shade,.menu-image img) { visibility: hidden; }
html:not([data-text-size="100"])[data-text-size] .site-header { flex-wrap: wrap; position: relative; top: 0; }
html:not([data-text-size="100"])[data-text-size] .header-shortcuts { display: none; }
html:not([data-text-size="100"])[data-text-size] .header-tools { margin-left: auto; }
html:not([data-text-size="100"])[data-text-size] .hero-stage { padding-top: 4rem; }
html:not([data-text-size="100"])[data-text-size] .headline-line { font-size: clamp(2.15rem, 6vw, 3.5rem); }
html:not([data-text-size="100"])[data-text-size] :where(.visual-pathways,.mission-statement,.scene-copy,.sacrament-interlude,.vocation-feature,.ministry-story,.welcome-close > div,.reading-layout,.care-content,.enquiry-layout) { grid-template-columns: 1fr; gap: 2rem; }
html:not([data-text-size="100"])[data-text-size] .visual-pathways > a { border: 0; padding: 1rem 0; }
html:not([data-text-size="100"])[data-text-size] .contents { position: static; }
@media (max-width:760px) {
	.cookie-notice { display: block; }
	.cookie-notice .support-actions { margin-top: 1rem; }
	.support-panel { padding: 1rem; }
	.hero-stage h1 { font-size: clamp(2.65rem,12vw,4.6rem); }
	.hero-stage { padding-bottom: 4rem; }
	.visitor-tools { inset-inline: 0; bottom: 0; align-items: end; padding: .85rem max(.75rem, env(safe-area-inset-right)) max(.7rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left)); background: #0b2033; border-top: 1px solid #daae0f; box-shadow: 0 -4px 20px #0615234d; pointer-events: auto; }
	.visitor-tool { position: relative; display: block; height: auto; min-height: 52px; }
	.visitor-tools :is(.accessibility-launch, .clement-launch) { width: 100%; min-height: 52px; height: auto; flex-direction: column; gap: .12rem; padding: .35rem .2rem; font-size: .75rem; line-height: 1.2; text-align: center; }
	.visitor-tools :is(.accessibility-launch, .clement-launch) > svg { width: 22px; height: 22px; }
	.visitor-tools .tool-size-toggle { position: absolute; top: -18px; right: -8px; z-index: 1; }
	.visitor-tool-help .tool-size-toggle { left: -8px; right: auto; }
	.visitor-tools .back-to-top { grid-row: 1; align-self: end; }
	.visitor-tools .tool-size-toggle { display: none !important; }
	:root[data-accessibility-minimised] .visitor-tool-accessibility,
	:root[data-help-minimised] .visitor-tool-help { width: 100%; }
	:root[data-accessibility-minimised] .accessibility-launch,
	:root[data-help-minimised] .clement-launch { width: 100%; min-height: 52px; height: auto; padding: .35rem .2rem; border-radius: 40px; }
	:root[data-accessibility-minimised] #accessibility-launch-label,
	:root[data-help-minimised] #help-launch-label { display: inline; }
	.panel-top h2 { font-size: 1.35rem; }
	.photographic-heading h1 { font-size: clamp(2.3rem,10vw,3.3rem); }
	.vocation-copy h2,.mission-statement h2,.sacrament-interlude h2,.welcome-close h2 { font-size: 2.8rem; }
	.ministry-story h2 { font-size: 2.6rem; }
	.scene-copy h2 { font-size: 3.4rem; }
	html:not([data-text-size="100"])[data-text-size] .site-header .brand span { font-size: .9rem; }
	html:not([data-text-size="100"])[data-text-size] :where(h1,h2,h3) { overflow-wrap: anywhere; }
	html:not([data-text-size="100"])[data-text-size] .headline-line { font-size: 1.8rem; }
}
@media (max-width: 30rem) {
	.cookie-notice { box-sizing: border-box; left: .5rem; right: .5rem; bottom: calc(5.9rem + env(safe-area-inset-bottom)); width: auto; max-height: min(26rem, calc(100dvh - 7rem - env(safe-area-inset-bottom))); padding: .85rem; overscroll-behavior: contain; }
	.cookie-notice .support-actions { display: grid; grid-template-columns: repeat(2,minmax(0, 1fr)); gap: .4rem; }
	.cookie-notice .support-actions button { min-width: 0; min-height: 44px; padding: .45rem .6rem; }
	.cookie-notice .support-actions button:last-child { grid-column: 1 / -1; }
	#cookie-panel { box-sizing: border-box; width: calc(100vw - 1rem); max-width: none; max-height: calc(100dvh - 1rem - env(safe-area-inset-bottom)); padding: .85rem; }
	#cookie-panel .support-actions { display: grid; grid-template-columns: minmax(0, 1fr); }
	#cookie-panel .support-actions button { min-width: 0; }
}
html:not([data-text-size="100"])[data-text-size] .visitor-tools :is(.accessibility-launch, .clement-launch) { flex-direction: column; overflow-wrap: anywhere; }
@media (max-width: 40rem) {
	html:not([data-text-size="100"])[data-text-size] .header-tools { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; margin: 0; }
	html:not([data-text-size="100"])[data-text-size] :is(.theme-control,.language-control,.theme-control select,.language-control select,.motion-control,.menu-trigger) { width: 100%; max-width: none; }
	html:not([data-text-size="100"])[data-text-size] :is(.motion-control,.menu-trigger) { justify-content: center; }
	html:is([data-text-size="175"],[data-text-size="200"]) .visitor-tools { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	html:is([data-text-size="175"],[data-text-size="200"]) .visitor-tool-accessibility { grid-column: 1; }
	html:is([data-text-size="175"],[data-text-size="200"]) .visitor-tool-help { grid-column: 2; }
	html:is([data-text-size="175"],[data-text-size="200"]) .visitor-tools .back-to-top { position: absolute; left: calc(50% - 24px); top: -48px; }
}
@media (forced-colors:active) { :focus-visible { outline: 3px solid Highlight !important; box-shadow: none !important; } .support-panel,button { border: 2px solid ButtonText; } }
@media print { body { padding: 0; } .visitor-tools,.cookie-notice,.support-panel,#reading-guide { display: none !important; } }

@media (max-width: 760px) {
	body { padding-bottom: 0; }
	.visitor-tools, html:is([data-text-size="175"],[data-text-size="200"]) .visitor-tools { inset: auto .75rem max(.75rem, env(safe-area-inset-bottom)); display: flex; justify-content: space-between; align-items: flex-end; width: auto; padding: 0; gap: 0; background: transparent; border: 0; box-shadow: none; pointer-events: none; }
	.visitor-tool, :root[data-accessibility-minimised] .visitor-tool-accessibility, :root[data-help-minimised] .visitor-tool-help { display: block; flex: 0 0 56px; width: 56px; height: 56px; min-height: 56px; }
	.visitor-tools :is(.accessibility-launch, .clement-launch), :root[data-accessibility-minimised] .accessibility-launch, :root[data-help-minimised] .clement-launch { width: 56px; min-width: 56px; height: 56px; min-height: 56px; padding: 0; border-radius: 50%; flex-direction: row; justify-content: center; pointer-events: auto; }
	.visitor-tools :is(.accessibility-launch, .clement-launch) .mission-icon { width: 30px; height: 30px; }
	.visitor-tools :is(#accessibility-launch-label, #help-launch-label) { display: none !important; }
	.visitor-tools :is(.tool-size-toggle, .back-to-top) { display: none !important; }
}

/* Imported page labels should read as part of the page, not as tiny interface debris. */
:where(.article-body, .about-page) h6 { font-size: 1rem; line-height: 1.45; letter-spacing: normal; text-transform: none; margin: 2rem 0 .65rem; color: var(--ink, #0b2033); }
