/* public/assets/style.css */
@font-face {
	font-family: 'Open Sans';
	src: url('open-sans-variable.woff2') format('woff2');
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}
:root {
	--navy: #0b2033;
	--gold: #daae0f;
	--paper: #fcfaf5;
	--white: #fff;
	--ink-soft: #425568;
	--rule: #ccd1d4;
	--muted-navy: #b9c6d0;
	--serif: Georgia, 'Times New Roman', serif;
	--sans: 'Open Sans', Arial, sans-serif;
	--gutter: clamp(24px, 5vw, 88px);
	color: var(--navy);
	background: var(--paper);
	font-family: var(--sans);
	font-size: 1rem;
	font-synthesis: none;
	scroll-behavior: smooth;
	scroll-padding-top: 32px;
	accent-color: var(--navy);
	caret-color: var(--navy);
	scrollbar-color: #71808b var(--paper);
}
* { box-sizing: border-box; }
body { margin: 0; }
::selection { background: var(--gold); color: var(--navy); }
a { color: inherit; text-underline-offset: .25em; }
button, input, select, textarea { font: inherit; }
button, summary, select { cursor: pointer; }
button, a, input, select, summary, textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #966f00; outline-offset: 5px; }
.site-header :focus-visible, .site-footer :focus-visible, .faith-section :focus-visible { outline-color: var(--gold); }
button:disabled { cursor: not-allowed; opacity: .58; }
[hidden] { display: none !important; }
img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
p { line-height: 1.75; margin: 0 0 1.25em; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; text-wrap: balance; }
h1 { font-size: clamp(3rem, 6vw, 6rem); line-height: 1.04; letter-spacing: -.035em; margin: 0 0 32px; }
h2 { font-size: clamp(2.3rem, 4vw, 4rem); line-height: 1.1; letter-spacing: -.025em; margin: 0 0 24px; }
h3 { font-size: 1.65rem; line-height: 1.3; }
em { font-weight: 400; }
.wrap { width: min(100%, 1560px); margin-inline: auto; padding-inline: var(--gutter); }
.skip { position: fixed; top: -100px; left: 16px; z-index: 20; padding: 16px 24px; background: var(--gold); }
.skip:focus { top: 12px; }
.review-bar { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 9px 24px; font-size: 0.75rem; background: #eee9da; line-height: 1.5; }
.review-bar strong { font-size: 0.75rem; }
.review-bar a { white-space: nowrap; }
.site-header { min-height: 112px; display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 24px var(--gutter); color: var(--white); background: var(--navy); }
.brand { display: flex; align-items: center; gap: 16px; text-decoration: none; }
.brand img { width: 56px; height: 56px; }
.brand span { font-family: var(--serif); font-size: 1.35rem; line-height: 1.1; }
.desktop-nav { display: flex; align-items: center; gap: clamp(18px, 2.4vw, 38px); }
.desktop-nav a { min-height: 44px; display: flex; align-items: center; position: relative; text-decoration: none; font-size: 0.8125rem; }
.desktop-nav a::after { position: absolute; content: ''; height: 1px; background: var(--gold); left: 0; bottom: 2px; width: 0; transition: width .25s ease-out; }
.desktop-nav a:hover::after, .desktop-nav a[aria-current]::after { width: 100%; }
.mobile-menu { display: none; }
.home-hero { display: grid; grid-template-columns: 46% 54%; background: var(--navy); color: var(--white); min-height: 560px; }
.hero-copy { padding: 34px 30px 50px var(--gutter); }
.hero-copy h1 { font-size: clamp(3.5rem, 5.2vw, 5.7rem); line-height: 1.01; margin-bottom: 30px; }
.hero-copy h1 em { color: var(--gold); }
.hero-copy p { color: #dce3e9; font-size: .9rem; line-height: 1.7; margin: 0; }
.hero-photo { position: relative; min-width: 0; }
.hero-photo img { width: 100%; height: 100%; position: absolute; object-fit: cover; object-position: 47% center; }
.hero-photo figcaption { position: absolute; bottom: 0; right: 0; padding: 8px 12px; color: var(--white); background: var(--navy); font-size: 0.75rem; }
.pathways { display: grid; grid-template-columns: repeat(3, 1fr); padding-block: 24px; border-bottom: 1px solid var(--rule); }
.pathways a { display: flex; align-items: center; gap: 24px; justify-content: space-between; padding: 8px 28px; text-decoration: none; border-inline-end: 1px solid var(--rule); }
.pathways a:first-child { padding-left: 0; }
.pathways a:last-child { border: 0; padding-right: 0; }
.pathways strong { font-size: 1.125rem; font-weight: 500; display: block; }
.pathways small { display: block; color: var(--ink-soft); font-size: 0.75rem; line-height: 1.7; margin-top: 7px; }
.arrow { width: 28px; height: 28px; flex: 0 0 28px; fill: none; stroke: currentColor; stroke-width: 1.5; transition: transform .3s cubic-bezier(.16,1,.3,1); }
a:hover .arrow, button:hover .arrow, a:focus-visible .arrow { transform: translateX(5px); }
.intro-section { padding-block: 112px; display: grid; grid-template-columns: 1fr 1fr; gap: 9%; }
.intro-section h2 em, .welcome-section h2 em { color: var(--ink-soft); }
.large-copy { font-family: var(--serif); font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.5; letter-spacing: -.015em; }
.text-link { display: inline-flex; gap: 22px; align-items: center; min-height: 48px; font-size: 0.875rem; text-decoration: none; border-bottom: 1px solid currentColor; }
.text-link:hover { color: #7b5a00; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 54px; padding: 15px 24px; border: 1px solid var(--navy); background: var(--navy); color: var(--white); text-decoration: none; font-size: 0.875rem; line-height: 1.4; }
.button:hover:not(:disabled) { background: #243e54; }
.faith-section { background: var(--navy); color: var(--white); }
.faith-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; padding-block: 80px 96px; }
.cross { width: 48px; height: 48px; stroke: var(--gold); stroke-width: 1.5; fill: none; margin-bottom: 24px; }
.faith-layout p { max-width: 38ch; color: #c6d0d8; }
.faith-links { align-self: center; }
.faith-links a { display: flex; justify-content: space-between; padding-block: 22px; border-color: #586977; font-family: var(--serif); font-size: clamp(1.5rem, 2.3vw, 2rem); }
.faith-links a:hover { color: var(--gold); }
.welcome-section { display: grid; grid-template-columns: 40% 1fr; gap: 10%; padding-block: 112px; align-items: center; }
.welcome-section figure img { width: 100%; max-height: 630px; object-fit: cover; object-position: center; }
.welcome-section figcaption { font-size: 0.75rem; color: var(--ink-soft); padding-top: 10px; }
.welcome-section .button { margin: 12px 24px 16px 0; }
.closing { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; padding-block: 68px 96px; border-top: 1px solid var(--rule); }
.closing p { max-width: 53ch; }
.page-heading { padding-block: 56px 72px; border-bottom: 1px solid var(--rule); }
.breadcrumb { display: inline-block; font-size: 0.75rem; min-height: 36px; margin-bottom: 24px; }
.page-heading h1 { max-width: 18ch; }
.lede { max-width: 61ch; font-size: 1.25rem; line-height: 1.65; color: var(--ink-soft); }
.page-heading .button { margin: 12px 28px 0 0; }
.reading-layout { display: grid; grid-template-columns: minmax(200px, 24%) minmax(0, 1fr); gap: 9%; padding-block: 72px 110px; }
.contents { position: sticky; top: 32px; align-self: start; font-size: 0.8125rem; }
.contents strong { font-weight: 600; display: block; margin-bottom: 22px; }
.contents a { display: block; padding-block: 10px; text-decoration: none; border-bottom: 1px solid var(--rule); line-height: 1.5; }
.contents a:hover { text-decoration: underline; }
.prose { max-width: 68ch; font-size: 1.0625rem; }
.prose h2 { margin-top: 64px; font-size: 2.6rem; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin-top: 36px; margin-bottom: 16px; }
.prose ul { padding-left: 24px; }
.prose li { padding-left: 5px; line-height: 1.8; margin-bottom: 20px; }
.prose .preview-note { margin-top: 32px; }
.article-next { padding-top: 32px; }
.document-library { padding-block: 48px 96px; }
.library-controls { display: grid; grid-template-columns: 1fr 300px; gap: 24px; margin-bottom: 24px; }
label { display: block; font-size: 0.875rem; font-weight: 600; line-height: 1.6; }
input[type=search], select, textarea { display: block; width: 100%; border: 1px solid #8896a0; background: var(--white); padding: 15px; margin-top: 10px; border-radius: 0; color: var(--navy); min-height: 52px; }
input::placeholder { color: #5c6c79; }
.small { font-size: 0.75rem; line-height: 1.7; }
.document { border-top: 1px solid var(--rule); }
.document:last-child { border-bottom: 1px solid var(--rule); }
.document summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; list-style: none; padding-block: 28px; }
summary::-webkit-details-marker { display: none; }
.document small { font-size: 0.75rem; color: var(--ink-soft); }
.document h2 { font-size: 2.1rem; margin: 10px 0; }
.document p { font-size: 0.875rem; max-width: 72ch; margin: 0; }
.document-plus { font-size: 1.75rem; font-weight: 300; }
.document[open] .document-plus { transform: rotate(45deg); }
.document-detail { padding: 0 0 36px; max-width: 75ch; }
.document-detail dl { margin: 0 0 28px; }
.document-detail dl div { display: grid; grid-template-columns: 110px 1fr; padding-block: 8px; font-size: 0.8125rem; }
.document-detail dt { font-weight: 600; }
.document-detail dd { margin: 0; }
.document-detail p { margin-bottom: 18px; }
.check-label { display: flex; align-items: start; gap: 12px; font-weight: 400; margin: 24px 0; }
.check-label input { width: 20px; height: 20px; flex: 0 0 20px; }
.document-detail .small { margin-top: 12px; }
.preview-note { font-size: 0.75rem; line-height: 1.7; color: var(--ink-soft); padding-block: 16px; border-top: 1px solid var(--rule); margin-top: 32px; }
.care-content { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; padding-block: 80px 110px; }
.care-content h2 { font-size: 2.6rem; }
.service-list { align-self: start; }
.service-list details { border-bottom: 1px solid var(--rule); }
.service-list summary { display: flex; justify-content: space-between; font-family: var(--serif); font-size: 1.9rem; padding-block: 24px; list-style: none; }
.service-list p { font-size: 0.875rem; }
.service-list > a { margin-top: 28px; }
.enquiry-layout { padding-block: 64px 100px; display: grid; grid-template-columns: 31% 1fr; gap: 10%; }
.enquiry-layout h2 { font-size: 2.3rem; }
.enquiry-layout aside p { font-size: 0.875rem; }
textarea { resize: vertical; min-height: 250px; line-height: 1.65; }
.word-row { display: flex; justify-content: space-between; padding-block: 12px; font-size: 0.75rem; font-variant-numeric: tabular-nums; }
.form-actions { display: flex; flex-wrap: wrap; gap: 18px; }
.quiet-button { border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--navy); min-height: 48px; font-size: 0.75rem; }
.form-message { font-size: 0.875rem; min-height: 24px; }
[aria-invalid=true] { border: 2px solid #922c21; }
.form-message.error { color: #922c21; }
.form-message.success { color: #1a633f; }
.review-copy { max-width: 1000px; padding-block: 64px 100px; }
.review-copy h2 { font-size: 2rem; margin-top: 36px; }
.site-footer { background: var(--navy); color: var(--white); padding: 72px var(--gutter) 28px; }
.footer-top { display: grid; grid-template-columns: 1fr 1fr; gap: 9%; padding-bottom: 52px; }
.footer-motto { font-family: var(--serif); font-size: clamp(2rem, 3.5vw, 3.5rem); line-height: 1.2; margin: 0; }
.footer-motto em { color: var(--gold); }
.footer-top > div { justify-self: end; }
.footer-top .small { color: var(--muted-navy); }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 12px 32px; padding-block: 28px; border-top: 1px solid #586977; border-bottom: 1px solid #586977; }
.site-footer nav a { font-size: 0.75rem; line-height: 2; }
.site-footer .text-link:hover { color: var(--gold); }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; font-size: 0.75rem; color: var(--muted-navy); padding-top: 20px; }
#motion-toggle { background: none; color: inherit; border: 1px solid #8494a1; padding: 10px 14px; min-height: 44px; font-size: 0.75rem; }
@media (min-width: 1600px) { .home-hero { min-height: 670px; } .hero-copy { padding-top: 72px; } }
@media (max-width: 1000px) {
	.desktop-nav { gap: 16px; }
	.desktop-nav a { font-size: 0.75rem; }
	.brand span { font-size: 1.1rem; }
	.pathways a { padding-inline: 20px; gap: 10px; }
	.pathways strong { font-size: 0.9375rem; }
	.home-hero { grid-template-columns: 49% 51%; }
	.hero-copy h1 { font-size: 4.4rem; }
}
@media (max-width: 760px) {
	.review-bar { justify-content: space-between; flex-wrap: wrap; gap: 3px 8px; padding: 8px 20px; font-size: 0.75rem; }
	.review-bar span { order: 3; flex-basis: 100%; }
	.site-header { padding: 18px 24px; min-height: 96px; position: relative; }
	.brand img { width: 46px; height: 46px; }
	.brand span { font-size: 1.13rem; }
	.brand { gap: 11px; }
	.desktop-nav { display: none; }
	.mobile-menu { display: block; }
	.mobile-menu summary { list-style: none; display: flex; align-items: center; gap: 12px; font-size: 0.75rem; min-height: 44px; }
	.mobile-menu summary span { font-size: 1.5rem; color: var(--gold); }
	.mobile-menu[open] summary span { transform: rotate(45deg); }
	.mobile-menu nav { position: absolute; top: 100%; left: 0; width: 100%; padding: 12px 24px 32px; background: var(--navy); z-index: 5; box-shadow: 0 18px 20px #0b203326; }
	.mobile-menu nav a { display: block; padding: 15px 0; border-top: 1px solid #586977; text-decoration: none; font-family: var(--serif); font-size: 1.65rem; }
	.home-hero { grid-template-columns: 1fr; min-height: 0; }
	.hero-copy { padding: 24px 24px 38px; }
	.hero-copy h1 { font-size: clamp(3.4rem, 12vw, 4.9rem); line-height: 1.03; max-width: 12ch; margin-bottom: 24px; }
	.hero-copy h1 br:nth-of-type(1), .hero-copy h1 em br { display: none; }
	.hero-copy p { font-size: 0.75rem; line-height: 1.7; }
	.hero-photo { height: 320px; }
	.hero-photo img { object-position: center; }
	.hero-photo figcaption { font-size: 0.75rem; }
	.pathways { grid-template-columns: 1fr; padding-block: 8px; }
	.pathways a, .pathways a:first-child, .pathways a:last-child { padding: 20px 0; border: 0; border-bottom: 1px solid var(--rule); }
	.pathways a:last-child { border-bottom: 0; }
	.pathways strong { font-size: 1.125rem; }
	.intro-section, .faith-layout, .welcome-section, .closing, .care-content, .enquiry-layout { grid-template-columns: 1fr; gap: 32px; padding-block: 64px; }
	.intro-section h2 { margin: 0; }
	.large-copy { font-size: 1.55rem; }
	.faith-layout { padding-top: 48px; }
	.faith-layout h2 br { display: none; }
	.faith-links a { padding-block: 20px; font-size: 1.55rem; }
	.welcome-section { gap: 40px; }
	.welcome-section figure img { max-height: 440px; object-position: center 42%; }
	.closing h2 { margin-bottom: 0; }
	.page-heading { padding-block: 32px 44px; }
	.page-heading h1 { font-size: clamp(3rem, 12vw, 4.5rem); }
	.lede { font-size: 1.1rem; }
	.page-heading .button { margin-bottom: 12px; }
	.reading-layout { grid-template-columns: 1fr; gap: 48px; padding-block: 36px 64px; }
	.contents { position: static; }
	.contents strong { margin-bottom: 10px; }
	.contents a { font-size: 0.75rem; padding-block: 12px; }
	.prose { font-size: 1rem; }
	.prose h2 { font-size: 2.15rem; }
	.library-controls { grid-template-columns: 1fr; gap: 20px; }
	.document-library { padding-block: 32px 64px; }
	.document h2 { font-size: 1.8rem; }
	.document summary { gap: 16px; }
	.document-detail dl div { grid-template-columns: 1fr; gap: 4px; }
	.check-label { font-size: 0.75rem; }
	.enquiry-layout { gap: 30px; }
	.care-content h2 { font-size: 2.25rem; }
	.service-list summary { font-size: 1.7rem; }
	.footer-top { grid-template-columns: 1fr; gap: 40px; }
	.footer-top > div { justify-self: start; }
	.site-footer { padding: 56px 24px 24px; }
	.site-footer nav { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; }
	.footer-bottom { gap: 16px; }
}
@media (prefers-reduced-motion: reduce) {
	:root { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
	a:hover .arrow, button:hover .arrow, a:focus-visible .arrow { transform: none; }
}
html[data-reduced-motion] { scroll-behavior: auto; }
html[data-reduced-motion] *, html[data-reduced-motion] *::before, html[data-reduced-motion] *::after { transition: none !important; animation: none !important; }
html[data-reduced-motion] .arrow { transform: none !important; }

/* public/assets/direction-v2.css */
/* Private visual proposal v0.2.0. Shared reading styles remain in style.css. */
:root { --scene-ease: cubic-bezier(.16, 1, .3, 1); }
.review-bar { position: relative; z-index: 12; min-height: 34px; }
.site-header { min-height: 108px; padding-block: 22px; position: relative; z-index: 9; }
.page-index .site-header { position: absolute; top: 34px; left: 0; right: 0; background: transparent; }
.brand span { font-size: 1.28rem; }
.header-shortcuts { display: flex; gap: 32px; margin-left: auto; }
.header-shortcuts a { font-size: 0.75rem; text-decoration: none; padding-block: 12px; }
.header-shortcuts a:hover { color: var(--gold); }
.header-tools { display: flex; align-items: center; gap: 24px; }
.menu-trigger { min-height: 46px; background: var(--gold); color: var(--navy); border: none; display: inline-flex; align-items: center; gap: 20px; padding: 10px 17px; font-size: 0.75rem; }
.menu-trigger svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.motion-control { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--white); background: none; border: none; font-size: 0.75rem; padding: 4px 0; }
.motion-control svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 2; fill: none; }
.navigation-panel { width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; border: 0; padding: 38px var(--gutter) 60px; color: var(--white); background: var(--navy); }
.navigation-panel::backdrop { background: #061420aa; }
.navigation-panel[open] { animation: menu-arrive 360ms var(--scene-ease); }
.menu-top { display: flex; justify-content: space-between; align-items: center; padding-bottom: 34px; border-bottom: 1px solid #647480; }
.menu-top p { margin: 0; font-size: 0.8125rem; }
.menu-top button { background: var(--gold); color: var(--navy); min-height: 44px; border: 0; padding: 8px 20px; display: flex; align-items: center; gap: 24px; }
.menu-top span { font-size: 1.625rem; }
.menu-grid { display: grid; grid-template-columns: 40% 1fr; gap: 10%; padding-top: 50px; }
.menu-image { position: relative; align-self: stretch; min-height: 420px; }
.menu-image img { width: 100%; height: 100%; position: absolute; object-fit: cover; filter: brightness(.48); }
.menu-image p { position: absolute; bottom: 20px; left: 28px; right: 28px; font-family: var(--serif); font-size: clamp(1.6rem, 2.5vw, 2.8rem); line-height: 1.3; }
.menu-image em { color: var(--gold); }
.menu-grid nav { display: grid; min-width: 0; }
.menu-grid nav > a .arrow { flex-shrink: 0; }
.menu-grid nav > a { font-family: var(--serif); font-size: clamp(2rem, 4vw, 3.8rem); line-height: 1.4; padding-block: 9px; border-bottom: 1px solid #647480; text-decoration: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.menu-grid nav > a:hover, .menu-grid nav > a[aria-current] { color: var(--gold); }
.navigation-panel :focus-visible { outline-color: var(--gold); }
.cinematic-hero { position: relative; min-height: 790px; height: calc(100svh - 34px); max-height: 1100px; background: #302b26; color: var(--white); isolation: isolate; overflow: clip; }
.hero-image, .hero-shade { position: absolute; inset: 0; }
.hero-image { z-index: -3; }
.hero-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 54%; animation: image-settle 1100ms var(--scene-ease) both; }
.hero-shade { z-index: -2; background: linear-gradient(90deg, #05101db3 0%, #06142169 60%, #0717263d 100%), linear-gradient(0deg, #051523bf 0%, transparent 60%, #05152380 100%); }
.hero-stage { height: 100%; min-height: 790px; display: flex; flex-direction: column; justify-content: end; padding-block: 172px 78px; position: relative; }
.hero-stage h1 { font-size: clamp(4.5rem, 6.5vw, 7rem); line-height: 1.11; letter-spacing: -.04em; max-width: none; margin-bottom: 60px; }
.headline-line { display: block; animation: type-settle 750ms var(--scene-ease) both; }
.headline-line:nth-child(2) { color: #f4d34f; animation-duration: 900ms; }
.hero-bottom { display: flex; justify-content: space-between; align-items: end; gap: 40px; }
.hero-bottom p { font-size: 0.875rem; line-height: 1.75; color: #edf0f2; max-width: 50ch; margin: 0; }
.explore-cue { display: flex; align-items: center; gap: 24px; color: var(--white); font-size: 0.75rem; text-decoration: none; min-height: 48px; }
.explore-cue svg { width: 48px; height: 48px; stroke: currentColor; fill: none; stroke-width: 1.2; transition: transform 350ms var(--scene-ease); }
.explore-cue:hover svg { transform: translateY(5px); }
.image-review { position: absolute; right: 14px; bottom: 8px; color: #fff; background: #0b2033b3; font-size: 0.75rem; padding: 5px 9px; line-height: 1.4; }
.visual-pathways { display: grid; grid-template-columns: repeat(3, 1fr); padding-block: 44px; background: var(--paper); }
.visual-pathways > a { position: relative; display: grid; grid-template-columns: 48px 1fr; align-items: start; gap: 24px; padding: 12px 32px; text-decoration: none; border-inline-end: 1px solid var(--rule); }
.visual-pathways > a:first-child { padding-left: 0; }
.visual-pathways > a:last-child { padding-right: 0; border: none; }
.visual-pathways strong { display: block; font-family: var(--serif); font-size: clamp(1.6rem, 2.3vw, 2.25rem); line-height: 1.15; font-weight: 400; }
.visual-pathways small { display: block; font-size: 0.75rem; line-height: 1.7; color: var(--ink-soft); margin-top: 18px; max-width: 26ch; }
.visual-pathways .arrow { position: absolute; right: 30px; top: 12px; width: 21px; height: 21px; }
.visual-pathways > a:last-child .arrow { right: 0; }
.visual-pathways .motion-icon { width: 44px; height: 44px; margin: 0; color: #856600; }
.motion-icon { display: block; width: 64px; height: 64px; fill: none; stroke: currentColor; stroke-width: 1.15; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 28px; }
.motion-icon path { stroke-dasharray: 200; stroke-dashoffset: 0; }
.motion-icon.icon-animate path { animation: icon-trace 1100ms var(--scene-ease) both; }
.mission-statement { display: grid; grid-template-columns: 1.1fr 1fr; gap: 11%; padding-block: 126px; background: var(--navy); color: var(--white); width: 100%; max-width: none; }
.mission-statement h2 { font-size: clamp(3rem, 5.1vw, 5.5rem); line-height: 1.06; }
.mission-statement h2 em { color: var(--gold); }
.statement-heading { position: relative; }
.statement-seal { width: 100px; height: 100px; margin-top: 40px; opacity: .7; }
.statement-copy { align-self: center; }
.statement-copy .large-copy { font-size: 2rem; line-height: 1.5; }
.statement-copy > p:not(.large-copy) { color: #c4cfd7; font-size: 0.875rem; }
.statement-copy .text-link:hover { color: var(--gold); }
.prayer-scene { min-height: 700px; position: relative; isolation: isolate; overflow: clip; color: var(--white); background: var(--navy); }
.scene-image { position: absolute; inset: 0; z-index: -3; clip-path: inset(0 calc(var(--scene-inset, 0) * 1%)); }
.scene-image img { width: 100%; height: calc(100% + 60px); object-fit: cover; object-position: center; transform: translateY(var(--scene-y, -30px)); }
.scene-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, #1d1416d9, #101c2980 65%, #10243473); }
.scene-copy { min-height: 700px; display: grid; grid-template-columns: 1fr 1fr; gap: 10%; align-items: center; padding-block: 90px; }
.scene-copy .motion-icon { color: var(--gold); }
.scene-copy h2 { font-size: clamp(3.6rem, 6vw, 6.5rem); line-height: 1.06; }
.scene-copy h2 em { color: #f1d887; }
.scene-copy > div:last-child { max-width: 45ch; align-self: end; padding-bottom: 20px; }
.scene-copy p { font-family: var(--serif); font-size: 2rem; line-height: 1.5; }
.scene-copy .text-link { display: flex; width: fit-content; margin-top: 22px; }
.scene-copy .text-link:hover { color: var(--gold); }
.button-light { background: #fcfaf5; color: var(--navy); border-color: #fcfaf5; }
.button-light:hover:not(:disabled) { background: var(--gold); border-color: var(--gold); }
.button-gold { background: var(--gold); color: var(--navy); border-color: var(--gold); }
.button-gold:hover:not(:disabled) { background: #ebc43a; border-color: #ebc43a; }
.sacrament-interlude { display: grid; grid-template-columns: 1.1fr 1fr; gap: 11%; padding-block: 110px; }
.sacrament-interlude h2 { font-size: clamp(3rem, 5.1vw, 5.5rem); }
.sacrament-interlude h2 em { color: #75654d; }
.sacrament-interlude p { max-width: 37ch; color: var(--ink-soft); }
.sacrament-index > a { font-family: var(--serif); font-size: 1.75rem; text-decoration: none; border-bottom: 1px solid var(--rule); padding: 13px 0; display: flex; justify-content: space-between; align-items: center; }
.sacrament-index > a:hover { color: #816200; }
.vocation-feature { display: grid; grid-template-columns: 62% 38%; min-height: 720px; background: var(--navy); color: var(--white); }
.vocation-image { position: relative; min-height: 720px; overflow: clip; }
.vocation-image img { position: absolute; width: 100%; height: 100%; object-fit: cover; object-position: 48% center; }
.vocation-copy { display: flex; flex-direction: column; justify-content: space-between; padding: 70px clamp(28px, 4vw, 65px) 28px; }
.vocation-copy .motion-icon { color: var(--gold); }
.vocation-copy h2 { font-size: clamp(3rem, 4.4vw, 4.8rem); }
.vocation-copy h2 em { color: var(--gold); }
.vocation-copy p { color: #c6d0d8; font-size: 0.875rem; margin-bottom: 30px; }
.vocation-copy small { display: block; font-size: 0.75rem; line-height: 1.6; color: #b9c6d0; margin-top: 42px; }
.ministry-story { display: grid; grid-template-columns: 35% 1fr; gap: 13%; padding-block: 126px; align-items: center; }
.ministry-story figure img { max-height: 610px; width: 100%; object-fit: cover; }
.ministry-story figcaption { font-size: 0.75rem; line-height: 1.5; color: var(--ink-soft); margin-top: 10px; }
.ministry-story h2 { font-size: clamp(2.9rem, 4.5vw, 4.7rem); }
.ministry-story h2 em { color: #75654d; }
.ministry-story .large-copy { font-size: 1.8rem; }
.ministry-story p:not(.large-copy) { font-size: 0.875rem; }
.welcome-close { background: #e8dfcd; padding-block: 90px; }
.welcome-close > div { display: grid; grid-template-columns: 1.15fr 1fr; gap: 10%; align-items: center; }
.welcome-close h2 { font-size: clamp(3.2rem, 5.5vw, 6rem); margin: 0; }
.welcome-close h2 em { color: #796140; }
.welcome-close p { max-width: 46ch; }
.photographic-heading { position: relative; isolation: isolate; overflow: clip; width: 100%; max-width: none; padding-block: 56px 66px; min-height: 535px; color: var(--white); border: none; }
.heading-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; z-index: -3; animation: image-settle 900ms var(--scene-ease) both; }
.heading-shade { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, #071c2ee6 0%, #102234b3 50%, #11213040 100%); }
.heading-content { max-width: 980px; position: relative; }
.photographic-heading .lede { color: #e6ebef; max-width: 52ch; font-size: 1.15rem; }
.photographic-heading h1 { font-size: clamp(3.5rem, 6vw, 6rem); }
.photographic-heading .button { background: var(--gold); color: var(--navy); border-color: var(--gold); }
.photographic-heading .button:hover { background: #ebc43a; }
.photographic-heading a:focus-visible { outline-color: var(--gold); }
.photographic-heading .text-link:hover { color: var(--gold); }
.page-vocations .heading-background { object-position: center 58%; }
.page-vocations .heading-shade { background: linear-gradient(90deg, #221b12de, #2a25169c 60%, #15243350); }
.page-pastoral-care .heading-shade { background: linear-gradient(90deg, #201723de, #26202bab 60%, #15243350); }
.page-documents .heading-shade { background: linear-gradient(90deg, #0b2033eb, #1024379e 60%, #15243350); }
.site-footer { padding-top: 66px; }
@keyframes image-settle { from { transform: scale(1.045); } to { transform: scale(1); } }
@keyframes type-settle { from { clip-path: inset(0 0 24%); transform: translateY(10px); } to { clip-path: inset(0); transform: translateY(0); } }
@keyframes menu-arrive { from { clip-path: inset(0 0 35%); transform: translateY(-15px); } to { clip-path: inset(0); transform: translateY(0); } }
@keyframes icon-trace { from { stroke-dashoffset: 200; } to { stroke-dashoffset: 0; } }
@media (max-width: 1100px) {
	.header-shortcuts { gap: 20px; }
	.header-tools { gap: 16px; }
	.motion-control span { display: none; }
	.visual-pathways > a { gap: 16px; padding-inline: 20px; grid-template-columns: 35px 1fr; }
	.visual-pathways .motion-icon { width: 34px; }
	.visual-pathways .arrow { right: 16px; }
	.visual-pathways strong { font-size: 1.8rem; }
	.vocation-feature { grid-template-columns: 55% 45%; }
	.hero-stage h1 { font-size: clamp(4rem, 7vw, 5.9rem); }
}
@media (max-width: 760px) {
	.review-bar { min-height: 50px; }
	.page-index .site-header { top: 50px; }
	.site-header { min-height: 94px; padding: 18px 22px; gap: 12px; }
	.brand span { font-size: 1.05rem; }
	.brand img { width: 42px; height: 42px; }
	.header-shortcuts { display: none; }
	.header-tools { gap: 14px; }
	.menu-trigger { gap: 10px; padding-inline: 11px; font-size: 0.75rem; }
	.menu-trigger svg { width: 18px; }
	.motion-control { display: none; }
	.cinematic-hero { height: calc(100svh - 50px); min-height: 730px; max-height: 950px; }
	.hero-stage { min-height: 730px; padding: 132px 24px 54px; justify-content: end; }
	.hero-stage h1 { font-size: clamp(3.2rem, 13vw, 4.6rem); line-height: 1.08; letter-spacing: -.04em; margin-bottom: 40px; max-width: 13ch; }
	.hero-stage h1 em { margin-top: 10px; }
	.hero-image img { object-position: 54% center; }
	.hero-shade { background: linear-gradient(90deg, #091521ba, #101a246b), linear-gradient(0deg, #061523c2, transparent 70%, #06152391); }
	.hero-bottom { display: grid; gap: 26px; }
	.hero-bottom p { font-size: 0.75rem; max-width: 33ch; }
	.hero-bottom p br { display: none; }
	.explore-cue { font-size: 0.75rem; gap: 20px; justify-content: space-between; }
	.explore-cue svg { width: 40px; height: 40px; }
	.visual-pathways { grid-template-columns: 1fr; padding-block: 12px; }
	.visual-pathways > a, .visual-pathways > a:first-child, .visual-pathways > a:last-child { padding: 28px 0; grid-template-columns: 44px 1fr; border: none; border-bottom: 1px solid var(--rule); gap: 22px; }
	.visual-pathways > a:last-child { border-bottom: 0; }
	.visual-pathways strong { font-size: 1.8rem; }
	.visual-pathways strong br { display: none; }
	.visual-pathways small { max-width: none; margin-top: 10px; font-size: 0.75rem; }
	.visual-pathways .arrow, .visual-pathways > a:last-child .arrow { right: 0; top: 30px; width: 18px; height: 18px; }
	.visual-pathways .motion-icon { width: 42px; height: 42px; }
	.visual-pathways > a > span { padding-right: 25px; }
	.mission-statement { grid-template-columns: 1fr; gap: 34px; padding-block: 66px; }
	.mission-statement h2 { font-size: 3.4rem; margin: 0; }
	.statement-seal { width: 64px; height: 64px; position: absolute; right: 0; bottom: 0; margin: 0; opacity: .4; }
	.statement-copy .large-copy { font-size: 1.55rem; }
	.prayer-scene { min-height: 680px; }
	.scene-copy { min-height: 680px; grid-template-columns: 1fr; padding-block: 60px; gap: 60px; }
	.scene-copy h2 { font-size: 4.2rem; margin: 0; }
	.scene-copy p { font-size: 1.65rem; }
	.scene-copy > div:last-child { padding: 0; }
	.scene-image img { object-position: 64% center; }
	.sacrament-interlude { grid-template-columns: 1fr; padding-block: 66px; gap: 30px; }
	.sacrament-interlude h2 { font-size: 3.4rem; }
	.sacrament-index a { font-size: 1.55rem; padding-block: 16px; }
	.vocation-feature { grid-template-columns: 1fr; }
	.vocation-image { min-height: 365px; }
	.vocation-copy { padding: 42px 24px 26px; }
	.vocation-copy h2 { font-size: 3.8rem; }
	.vocation-copy h2 br { display: none; }
	.vocation-copy .motion-icon { width: 48px; height: 48px; margin-bottom: 22px; }
	.ministry-story { grid-template-columns: 1fr; padding-block: 66px; gap: 38px; }
	.ministry-story figure { max-width: 290px; }
	.ministry-story figure img { max-height: 400px; }
	.ministry-story h2 { font-size: 3rem; }
	.ministry-story .large-copy { font-size: 1.5rem; }
	.welcome-close { padding-block: 66px; }
	.welcome-close > div { grid-template-columns: 1fr; gap: 30px; }
	.welcome-close h2 { font-size: 3.5rem; }
	.photographic-heading { min-height: 520px; padding-block: 30px 52px; }
	.photographic-heading h1 { font-size: 3.3rem; }
	.photographic-heading .lede { font-size: 1rem; max-width: 34ch; }
	.photographic-heading .heading-shade { background: #071d30be; }
	.page-vocations .heading-shade { background: #211b15ba; }
	.navigation-panel { padding: 20px 24px 40px; }
	.menu-top { padding-bottom: 24px; gap: 24px; }
	.menu-top p { font-size: 0.75rem; max-width: 16ch; }
	.menu-top button { font-size: 0.75rem; gap: 14px; }
	.menu-grid { grid-template-columns: 1fr; gap: 28px; padding-top: 22px; }
	.menu-image { order: 2; min-height: 170px; }
	.menu-image img { object-position: center 68%; }
	.menu-image p { font-size: 1.65rem; left: 18px; bottom: 10px; margin-bottom: 0; }
	.menu-grid nav > a { font-size: 2rem; padding-block: 11px; }
}
@media (prefers-reduced-motion: reduce) {
	.hero-image img, .heading-background, .headline-line, .navigation-panel[open], .motion-icon.icon-animate path { animation: none !important; }
	.scene-image { clip-path: none; }
	.scene-image img { transform: none; height: 100%; }
}
html[data-reduced-motion] .hero-image img, html[data-reduced-motion] .heading-background, html[data-reduced-motion] .headline-line { transform: none; clip-path: none; }
html[data-reduced-motion] .scene-image { clip-path: none; }
html[data-reduced-motion] .scene-image img { transform: none; height: 100%; }
html[data-reduced-motion] .motion-icon path { stroke-dashoffset: 0; }
@media print { .cinematic-hero, .hero-stage { min-height: auto; height: auto; } .header-tools, .image-review { display: none; } }

/* public/assets/visitor-support.css */
/* 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-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; } }

/* Clement keeps a readable light surface in every site theme. */
.clement-panel { --text:#0b2033;--text-muted:#425568;--surface:#fff;--surface-raised:#fff;--accent:#785b00;--border:#687886; color:#0b2033; }
.clement-panel[open] { top:max(.5rem, env(safe-area-inset-top));bottom:max(.5rem, env(safe-area-inset-bottom));height:auto;max-height:none;box-sizing:border-box; }
.clement-panel :is(p,label,pre) { color:#0b2033; }
.clement-panel .clement-privacy-note { color:#493609; }
.clement-panel .clement-title-wrap p { color:#fff; }
.clement-panel :is(input,textarea) { color:#0b2033;background:#fff;border:1px solid #536476; }
.clement-panel :is(button,a) { font-size:clamp(.875rem,1vw,1rem); }
.clement-intro label { display:block;margin:.4rem 0;font-weight:600; }
.clement-intro input { width:100%;min-height:2.75rem;padding:.55rem;margin-bottom:.65rem; }
@media(max-width:32rem){.clement-panel[open]{inset:0 0 max(0px, env(safe-area-inset-bottom)) 0;height:auto;max-height:none;border-radius:0;}}

@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); }

.clement-panel-icon { --icon-navy:#17324d; --icon-gold:#785b00; --icon-coral:#923914; }

/* Clement follows the same clear welcome, conversation, and follow-up rhythm at every size. */
.clement-panel[open] { height: min(46rem, calc(100dvh - 1rem)); max-height: calc(100dvh - 1rem); }
.clement-intro { padding: 1rem; }
.clement-intro > p:first-child { margin: 0 0 .85rem; font-size: 1.05rem; }
.clement-intro label { margin: .4rem 0; font-weight: 600; }
.clement-intro label span { color: #425568; font-weight: 400; }
.clement-intro input { box-sizing: border-box; width: 100%; min-height: 48px; margin: .25rem 0 .7rem; padding: .65rem .75rem; border: 1px solid #536476; border-radius: .35rem; background: #fff; color: #0b2033; font: inherit; }
.clement-intro .clement-primary { width: 100%; min-height: 48px; border: 2px solid #0b2033; border-radius: .35rem; background: #daae0f; color: #0b2033; font-weight: 700; }
.clement-suggestions { display: flex; flex-wrap: wrap; gap: .5rem; padding: .5rem 1rem; }
.clement-suggestions button, #clement-human-quick button { min-height: 44px; padding: .55rem .8rem; border: 1px solid #0b2033; border-radius: 1.5rem; background: #fff; color: #0b2033; font: inherit; font-size: .9rem; }
#clement-human-quick { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin: .25rem 1rem .5rem; padding: .6rem .7rem; border: 1px solid #b18a13; border-radius: .45rem; background: #fff8e5; color: #0b2033; }
#clement-human-quick button { flex: 0 0 auto; border-radius: .35rem; background: #0b2033; color: #fff; }
#clement-messages > .clement-message-user, #clement-messages > .clement-message-assistant { width: fit-content; max-width: 92%; margin: .55rem 0; padding: .7rem .85rem; border: 1px solid #b5c0c8; border-radius: .85rem; background: #f2f5f6; }
#clement-messages > .clement-message-user { margin-left: auto; border-color: #0b2033; background: #e9eff4; }
#clement-messages > .clement-message-assistant { margin-right: auto; border-color: #7b8c98; background: #fff; }
#clement-messages > div:first-child { border-top: 1px solid #dce1e8; }
#clement-form { gap: .55rem; padding-top: .8rem; padding-bottom: .6rem; }
#clement-form textarea { box-sizing: border-box; width: 100%; height: auto; min-height: 3.25rem; padding: .7rem; border: 1px solid #536476; border-radius: .35rem; background: #fff; color: #0b2033; font: inherit; resize: vertical; }
#clement-form .support-actions { display: block; }
#clement-form .support-actions button { width: 100%; min-height: 48px; border: 2px solid #0b2033; border-radius: .35rem; background: #daae0f; color: #0b2033; font-weight: 700; }
.clement-enter-hint { margin: 0; color: #425568; font-size: .8rem !important; }
#clement-finish { width: 100%; }
#clement-ended { padding-block: 1rem; background: #fcfaf5; }
#clement-rating { margin-top: .8rem; }
#clement-rating-options { display: flex; gap: .65rem; }
#clement-rating-options button { display: flex; min-height: 52px; flex: 1; align-items: center; justify-content: center; gap: .55rem; border: 2px solid #536476; border-radius: .45rem; background: #fff; color: #0b2033; font: inherit; font-weight: 650; }
#clement-rating-options button span:first-child { font-size: 1.35rem; }
#clement-rating-options button:hover, #clement-rating-options button:focus-visible { border-color: #0b2033; background: #0b2033; color: #fff; }
#clement-rating-status:not(:empty) { margin: .65rem 0 0; padding: .65rem .75rem; border-left: 4px solid #27764c; background: #e8f4ec; color: #153e2a; }
#clement-after-chat { padding: 1rem; border-top: 1px solid #dce1e8; background: #f8f6f0; }
#clement-after-chat > h3 { margin: 0 0 .8rem; color: #0b2033; font-size: 1.12rem; }
.clement-action-cards { display: grid; gap: .75rem; }
.clement-action-card { padding: .9rem; border: 2px solid #9a7817; border-radius: .5rem; background: #fff; color: #0b2033; box-shadow: 0 2px 7px #06152312; }
.clement-action-card h4 { margin: 0 0 .3rem; color: #0b2033; font-size: 1rem; }
.clement-action-card p { margin: 0 0 .65rem; color: #34485a; font-size: .9rem; line-height: 1.5; }
.clement-action-card button { width: 100%; min-height: 48px; border: 2px solid #0b2033; border-radius: .35rem; background: #0b2033; color: #fff; font: inherit; font-weight: 700; }
.clement-action-card button:hover, .clement-action-card button:focus-visible { background: #daae0f; color: #0b2033; }
.clement-action-card .clement-action-result:not([hidden]) { margin: .7rem 0 0; padding: .65rem .75rem; border-left: 4px solid #27764c; border-radius: .2rem; background: #e8f4ec; color: #153e2a; }
.clement-more-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.clement-more-actions button { min-height: 44px; flex: 1 1 auto; border: 1px solid #536476; border-radius: .35rem; background: #fff; color: #0b2033; font: inherit; }
#clement-transcript-email-review, #clement-handoff { padding: 1rem; border-top: 1px solid #dce1e8; background: #fff; }
#clement-transcript-email-review h3, #clement-handoff h3 { margin-top: 0; }
#clement-transcript-email-review form, #clement-transcript-email-confirm, #clement-handoff-form { display: grid; gap: .7rem; }
#clement-transcript-email-review input:not([type="checkbox"]), #clement-handoff-form input:not([type="checkbox"]) { box-sizing: border-box; width: 100%; min-height: 48px; padding: .65rem .75rem; border: 1px solid #536476; border-radius: .3rem; background: #fff; color: #0b2033; font: inherit; }
#clement-transcript-email-confirm pre, #clement-handoff pre { max-height: 12rem; overflow: auto; overflow-wrap: anywhere; white-space: pre-wrap; padding: .75rem; border: 1px solid #7b8c98; border-radius: .35rem; background: #f4f6f7; color: #0b2033; font: inherit; line-height: 1.5; }
.clement-consent { display: flex; align-items: start; gap: .65rem; line-height: 1.5; }
.clement-consent input { width: 22px; height: 22px; flex: 0 0 auto; margin: .1rem 0 0; }
#clement-transcript-email-review .support-actions button, #clement-handoff-form .support-actions button { min-height: 48px; }
#clement-panel :is(button,input,textarea,a):focus-visible { outline: 3px solid #daae0f !important; outline-offset: 2px; box-shadow: 0 0 0 2px #0b2033 !important; }
#clement-panel button:disabled { cursor: wait; opacity: .65; }
@media (max-width: 32rem) {
	.clement-panel[open] { inset: 0 0 max(0px, env(safe-area-inset-bottom)) 0; width: 100vw; height: calc(100dvh - env(safe-area-inset-bottom)); max-height: calc(100dvh - env(safe-area-inset-bottom)); border-radius: 0; }
	.clement-suggestions { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
	.clement-suggestions button { flex: 0 0 auto; }
}

/* public/assets/site.css */
:root{--surface:#fcfaf5;--surface-raised:#fff;--text:#0b2033;--text-muted:#425568;--border:#687886;--accent:#785b00;--error:#a11c28;--focus-light:#fff;--focus-dark:#0b2033;color:var(--text);background:var(--surface);color-scheme:light}
:root[data-theme=dark]{--surface:#0b1723;--surface-raised:#142739;--text:#f8f5ec;--text-muted:#c4cfda;--border:#8497a8;--accent:#f4d34f;--error:#ffbbc2;--paper:var(--surface);--ink-soft:var(--text-muted);--rule:#617183;color-scheme:dark}
body{color:var(--text);background:var(--surface)}
.page-index .site-header{top:0;background:#0b2033ef}
.site-header{flex-wrap:wrap;gap:1.25rem}
.header-tools{gap:1.25rem}.theme-control{font-size:.75rem;display:flex;align-items:center;gap:.45rem;color:#fff}.theme-control select{min-height:3rem;background:#0b2033;color:#fff;border:1px solid #aab9c6;padding:.5rem;max-width:7rem}
.pathways-prompt{padding-top:3rem;background:var(--surface)}.pathways-prompt h2{font-size:clamp(1.6rem,3vw,2.5rem);margin:0 0 .5rem}.pathways-prompt p{margin:0;color:var(--text-muted)}
.visual-pathways{background:var(--surface);color:var(--text);padding-top:2rem}.visual-pathways .motion-icon{color:var(--accent)}.visual-pathways>a{transition:background-color .2s,translate .3s}.visual-pathways>a:hover{translate:0 -.3rem}.visual-pathways .arrow{color:var(--text)}
.sacrament-interlude,.ministry-story{background:var(--surface);color:var(--text)}.ministry-story{display:block;max-width:65rem}.ministry-story>div{max-width:55rem}.sacrament-interlude p,.ministry-story p{color:var(--text-muted)}
.article-hero{position:relative;isolation:isolate;overflow:clip;background:#0b2033;color:#fff;min-height:23rem;display:grid;align-items:end;padding:4rem 0}.article-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.25);z-index:-1}.article-hero h1{font-size:clamp(2.5rem,5.3vw,5rem);line-height:1.13;max-width:22ch;margin:1rem 0}.breadcrumb{font-size:.875rem}.article-hero .button{margin-top:1rem}
.article-layout{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:5rem;padding-block:4rem 6rem}.article-sidebar nav{display:grid;position:sticky;top:2rem;gap:.5rem}.article-sidebar a{padding:.65rem 0;border-bottom:1px solid var(--border)}.article-body{max-width:76ch;min-width:0;line-height:1.85}.article-body>p,.article-body>ul,.article-body>ol{margin-bottom:1.5rem}.article-body h2{font-size:clamp(1.8rem,3vw,2.5rem);margin:2.5rem 0 1rem;line-height:1.22}.article-body h3{font-size:1.55rem;line-height:1.3;margin-top:2rem}.article-body a{color:var(--accent);font-weight:600}.article-body .button{color:#fff}.article-body li+li{margin-top:.5rem}.article-body table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}.article-body th,.article-body td{padding:.8rem;border:1px solid var(--border)}.article-body summary{font-weight:600;padding:1rem;border-bottom:1px solid var(--border);min-height:3rem}.article-body details{margin-block:1rem}.article-body blockquote{border-left:.2rem solid var(--accent);margin:2rem 0;padding:0 1.5rem;font-family:var(--serif);font-size:1.3rem}.article-body hr{border:0;margin:2rem 0}
.enquiry-heading{padding-block:4rem 2rem}.enquiry-heading h1{font-size:clamp(2.8rem,6vw,5rem);margin:1rem 0}.enquiry-heading>p{max-width:70ch}.form-page{max-width:65rem;padding-bottom:5rem}.journey{color:var(--text);background:var(--surface)}.journey h2{font-size:1.8rem}.journey-progress{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;border-block:1px solid var(--border);padding:1rem 0}.journey-progress progress{width:100%;height:.5rem;accent-color:var(--accent)}.form-field{margin:1.8rem 0;min-width:0}.form-field>label,.form-field>legend{display:block;font-weight:600;margin-bottom:.55rem;line-height:1.55}.form-field fieldset,fieldset.form-field{border:0;padding:0}.form-help{font-size:.9rem;color:var(--text-muted);line-height:1.6}.form-field input:not([type=radio],[type=checkbox]),.form-field textarea,.form-field select,#clement-question,.service-form input,.service-form textarea,.service-form select{display:block;width:100%;min-width:0;max-width:100%;background:var(--surface-raised);color:var(--text);border:1px solid var(--border);border-radius:.15rem;padding:.85rem;min-height:3rem}.form-field textarea{resize:vertical;min-height:10rem}.choice-row{display:flex;align-items:start;gap:.85rem;padding:.75rem .5rem;min-height:3rem;line-height:1.5}.choice-row input{flex-shrink:0;min-width:1.25rem;height:1.25rem;margin-top:.2rem;accent-color:var(--accent)}.form-actions{display:flex;flex-wrap:wrap;gap:1rem;margin:2rem 0}.form-actions button,.service-form button,#clement-form button{min-height:3rem;padding:.75rem 1.3rem;border:1px solid var(--border);background:var(--surface-raised);color:var(--text)}.form-actions .primary,.service-form button[type=submit],#clement-form button{background:#0b2033;color:#fff;border-color:#899ba8}.form-error{color:var(--error);font-size:.95rem;font-weight:600}.error-summary{border:.15rem solid var(--error);padding:1.3rem;margin:1rem 0}.error-summary a{display:block;padding:.4rem}.word-count{display:block;font-size:.85rem;color:var(--text-muted);margin-top:.5rem}.form-content{white-space:pre-line;line-height:1.8;margin-block:2rem}.save-panel{padding:1.5rem;border:1px solid var(--border);margin-top:2rem}.form-status{min-height:1.5rem;line-height:1.6}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.review-answer{border-bottom:1px solid var(--border);padding:1rem 0}.review-answer p{white-space:pre-wrap}.required-note{font-size:.9rem;color:var(--text-muted)}
.support-panel,.cookie-notice{background:var(--surface-raised);color:var(--text)}.support-panel p,.cookie-notice p{color:var(--text-muted)}.support-panel select,.support-panel input{color:var(--text);background:var(--surface)}.support-panel a{color:var(--accent)}.support-panel button,.cookie-notice button{border-color:var(--border)}#clement-messages{max-height:45vh;overflow-y:auto;overscroll-behavior:contain}#clement-messages>div{padding:1rem 0;border-bottom:1px solid var(--border)}#clement-messages p{white-space:pre-line;line-height:1.7}#clement-form label{display:block;margin:1rem 0 .5rem}.service-form{max-width:55rem}.service-form label{display:block;font-weight:600;margin:1.2rem 0 .5rem}
:focus-visible{outline:3px solid var(--focus-light)!important;box-shadow:0 0 0 6px var(--focus-dark)!important;outline-offset:0!important}button,a,input,select,textarea,summary{scroll-margin-block:6rem}button,a{touch-action:manipulation}input,textarea{caret-color:var(--text)}
/* Photo movement never carries essential information. Static content is always visible. */
.cinematic-hero .hero-image{transform:translate3d(0,var(--hero-y,0px),0) scale(1.06)}.scene-image,.vocation-image{overflow:clip}.vocation-image img{transform:translate3d(0,var(--scene-y,0px),0) scale(1.15);height:115%;object-fit:cover}.welcome-glass{transform:translate3d(0,var(--scene-y,0px),0) scale(1.13)}.motion-arrive{animation:section-arrive 900ms cubic-bezier(.16,1,.3,1) both}.motion-arrive:nth-child(2){animation-duration:1150ms}.motion-arrive:nth-child(3){animation-duration:1350ms}.explore-cue svg{animation:invite-down 3s ease-in-out infinite}.statement-seal{animation:seal-breathe 9s ease-in-out infinite}.motion-icon.icon-animate path{animation-duration:1900ms}.menu-grid nav a{transition:padding-left .3s}.menu-grid nav a:hover{padding-left:.75rem}
@keyframes section-arrive{from{transform:translateY(1.7rem)}to{transform:translateY(0)}}@keyframes invite-down{0%,60%,100%{translate:0 0}75%{translate:0 .4rem}85%{translate:0 .1rem}}@keyframes seal-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
:root[data-reduced-motion] *, :root[data-reduced-motion] *::before,:root[data-reduced-motion] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;translate:none!important}.page-index:has([data-reduced-motion]){scroll-behavior:auto}:root[data-reduced-motion] .hero-image,:root[data-reduced-motion] .vocation-image img,:root[data-reduced-motion] .welcome-glass{transform:none!important}
:root[data-reading-images] .article-hero>img{display:none}:root[data-reading-images] .article-hero{min-height:0}
:root[data-contrast=light]{--surface:#fff;--surface-raised:#fff;--text:#07131d;--text-muted:#172b3a;--accent:#3e3000;--border:#07131d;--error:#8c0714;color-scheme:light}:root[data-contrast=dark]{--surface:#06121c;--surface-raised:#06121c;--text:#fff;--text-muted:#fff;--accent:#ffe16b;--border:#fff;--error:#ffcad0;color-scheme:dark}
:root[data-contrast=light] .article-body,:root[data-contrast=light] .journey,:root[data-contrast=dark] .article-body,:root[data-contrast=dark] .journey{background:var(--surface);color:var(--text)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important;translate:none!important}.hero-image,.vocation-image img,.welcome-glass{transform:none!important}}
@media(max-width:65rem){.header-shortcuts{display:none}.article-layout{grid-template-columns:1fr;gap:2rem}.article-sidebar nav{position:static;display:flex;flex-wrap:wrap;gap:1rem}.article-sidebar{order:2}.article-sidebar a{padding:.8rem}.site-header{padding-block:1rem}}
@media(max-width:40rem){.site-header{gap:.6rem}.header-tools{width:100%;justify-content:space-between;gap:.5rem}.theme-control{font-size:.75rem}.theme-control select{max-width:6rem}.page-index .site-header{position:relative}.hero-stage{padding-top:4rem}.cinematic-hero{height:auto;min-height:35rem}.article-layout{padding-block:2rem}.article-hero{min-height:17rem}.form-actions button{flex:1 1 9rem}.visual-pathways>a:hover{translate:none}.theme-control select,.motion-control,.menu-trigger{min-height:3rem}.pathways-prompt{padding-top:2rem}}
@media(max-width:40rem){
	.site-header{min-height:0;padding:.65rem .75rem;gap:.5rem}
	.site-header .brand img{width:42px;height:42px}
	.site-header .brand span{font-size:.95rem;line-height:1.12}
	.header-tools{gap:.4rem}
	.header-tools :is(.action-control,.motion-control,.menu-trigger),.language-control>summary{min-height:44px;padding:.45rem .55rem}
	.cinematic-hero{height:auto;min-height:34rem;max-height:none}
	.hero-stage{height:auto;min-height:34rem;padding:1.75rem 1rem 5rem;justify-content:flex-start}
	.hero-stage h1{font-size:clamp(2rem,8.5vw,3.25rem);line-height:1.08;max-width:100%;margin:0 0 1.5rem}
	.hero-stage h1 em{margin-top:.3rem}
	.hero-bottom{margin-top:auto;gap:1rem}
}
.relationship-photo{margin:2rem 0 3rem}.relationship-photo img{display:block;width:100%;height:clamp(15rem,40vw,29rem);object-fit:cover}.relationship-photo figcaption{padding:.6rem 0;color:var(--text-muted);font-size:.9rem}.relationship-photo-small img{height:clamp(13rem,30vw,23rem)}.relationship-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1.5rem 0 3rem}.relationship-list section{min-width:0;padding:1.3rem;border:1px solid var(--border);background:var(--surface-raised)}.relationship-list h3{margin:0 0 .65rem;font-size:1.35rem}.relationship-list p{margin:0;line-height:1.65}
@media(max-width:48rem){.relationship-list{grid-template-columns:1fr}.relationship-list section{padding:1rem}}

.mission-icon{display:inline-flex;width:4rem;height:4rem;flex-shrink:0}.aocm-icon{width:100%;height:100%;overflow:visible}.sacrament-index .mission-icon{width:3rem;height:3rem}.sacrament-index>a{justify-content:start;gap:1rem}.sacrament-index .arrow{margin-left:auto}.prayer-scene,.vocation-copy,:root[data-theme=dark]{--icon-navy:#f8f5ec;--icon-gold:#f4d34f;--icon-coral:#ffb095}:root[data-contrast=light]{--icon-navy:#07131d;--icon-gold:#785b00;--icon-coral:#923914}:root[data-contrast=dark]{--icon-navy:#fff;--icon-gold:#ffe16b;--icon-coral:#ffd3bf}
:root[data-theme=dark] .sacrament-index>a:hover,:root[data-theme=dark] .text-link:hover{color:var(--accent)}
:root[data-theme=dark] .mission-icon .aocm-icon .navy{stroke-width:5.5px}
:root[data-theme=dark] .mission-icon .aocm-icon :is(.gold-stroke,.coral-stroke){stroke-width:4.5px}
:root[data-theme=dark] .sacrament-index .mission-icon{width:3.5rem;height:3.5rem}

.welcome-close{overflow:clip}.theme-control{white-space:nowrap;flex-shrink:0}.header-tools{flex-shrink:0}@media(max-width:75rem){.header-shortcuts{display:none}}

.language-control{display:flex;align-items:center;min-width:0}.language-control select{max-width:10rem;min-height:3rem;background:#0b2033;color:#fff;border:1px solid #aab9c6;cursor:pointer}.language-control select option{background:#0b2033;color:#fff}
@media(max-width:47.5rem){.site-header{flex-wrap:wrap}.header-tools{width:100%;flex-wrap:wrap;justify-content:space-between}.language-control{flex:1 1 8rem}.language-control select{max-width:none;width:100%}}

.document-library input{display:block;width:100%;min-height:3rem;margin:1rem 0;padding:.85rem;background:var(--surface-raised);color:var(--text);border:1px solid var(--border)}.document-list{list-style:none;padding:0}.document-list li{padding:1.5rem 0;border-bottom:1px solid var(--border)}.document-list p{font-size:.875rem;margin:.5rem 0;color:var(--text-muted)}.document-gate{border-block:1px solid var(--border);padding:1.5rem 0;margin-block:2rem}

/* Page navigation uses quiet panels and a clear active edge instead of a stack of rules. */
.article-sidebar nav{gap:.35rem}
.article-sidebar a{display:block;padding:.75rem .85rem;border:0;border-inline-start:3px solid transparent;border-radius:.2rem;color:var(--text);text-decoration:none;font-weight:500;transition:background-color .18s ease,color .18s ease,border-color .18s ease}
.article-sidebar a:hover,.article-sidebar a:focus-visible{background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);border-inline-start-color:var(--accent);text-decoration:none}
.article-sidebar a[aria-current=page]{background:color-mix(in srgb,var(--accent) 9%,var(--surface));border-inline-start-color:var(--accent);font-weight:700}
.about-main{min-width:0}.about-main .about-page{padding-inline:0}
.article-body h6{display:none}
.article-body a:not(.button),.about-page a:not(.button){text-decoration:none}
.article-body a:not(.button):hover,.article-body a:not(.button):focus-visible,.about-page a:not(.button):hover,.about-page a:not(.button):focus-visible{text-decoration:underline;text-underline-offset:.22em}
.article-hero>img{animation:article-hero-drift 18s ease-in-out infinite alternate;animation-play-state:running}
@keyframes article-hero-drift{from{transform:scale(1.04) translate3d(-1%,0,0)}to{transform:scale(1.12) translate3d(1%,0,0)}}
.article-hero:has(+ .article-layout){}
.form-field input[type=checkbox],.form-field input[type=radio],.service-form input[type=checkbox],.service-form input[type=radio]{flex:0 0 1.25rem;width:1.25rem;min-width:1.25rem;height:1.25rem;min-height:1.25rem;padding:0;margin:.2rem 0 0;accent-color:var(--accent)}
.service-form .choice-row{display:flex;align-items:flex-start;gap:.85rem}
@media(max-width:65rem){.article-sidebar nav{gap:.5rem}.article-sidebar a{padding:.7rem .85rem}}
:root[data-reduced-motion] .article-hero>img{animation:none!important;transform:none!important}
@media(prefers-reduced-motion:reduce){.article-hero>img{animation:none!important;transform:none!important}}
.booking-calendar{max-width:36rem;margin:1.5rem 0;padding:1rem;border:1px solid var(--border);background:var(--surface-raised)}
.booking-calendar-navigation{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.booking-calendar-navigation h3{margin:0;text-align:center;font-size:1.25rem}.booking-calendar-navigation button{min-width:2.75rem;min-height:2.75rem}
.booking-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.3rem;text-align:center}.booking-calendar-grid .booking-weekday{font-size:.8rem;font-weight:700;padding:.55rem 0}.booking-calendar-grid button{min-width:0;min-height:2.75rem;padding:.35rem;border:1px solid var(--border);border-radius:.2rem;background:var(--surface);color:var(--text);font:inherit}.booking-calendar-grid button:disabled{opacity:.4;border-color:transparent}.booking-calendar-grid button[aria-pressed=true],.booking-time-options button[aria-pressed=true]{background:var(--text);color:var(--surface);border-color:var(--text)}
.booking-time-options{display:flex;flex-wrap:wrap;gap:.5rem;max-width:36rem}.booking-time-options button{min-width:5.5rem;min-height:2.75rem;padding:.5rem;border:1px solid var(--border);border-radius:.2rem;background:var(--surface-raised);color:var(--text);font:inherit}.booking-calendar button:not(:disabled):hover,.booking-time-options button:hover{outline:2px solid var(--accent);outline-offset:1px}
:root .booking-journey .booking-calendar-grid button:not(:disabled){background:var(--surface-raised)!important;color:var(--text)!important;border:2px solid var(--border)!important;opacity:1!important;font-weight:700}
:root .booking-journey .booking-calendar-grid button:disabled{background:transparent!important;color:var(--text-muted)!important;border:1px solid transparent!important;opacity:.38!important;font-weight:400}
:root .booking-journey .booking-calendar-grid button[aria-pressed=true],:root .booking-journey .booking-time-options button[aria-pressed=true]{background:var(--text)!important;color:var(--surface)!important;border:2px solid var(--text)!important;opacity:1!important}
:root .booking-journey .booking-time-options button:not([aria-pressed=true]){background:var(--surface-raised)!important;color:var(--text)!important;border:1px solid var(--border)!important}
.booking-time-preferences{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin:1rem 0}.booking-time-preferences>label{font-weight:600}.booking-time-preferences select{max-width:20rem;min-height:2.75rem;background:var(--surface-raised);color:var(--text);border:1px solid var(--border)}.booking-time-preferences fieldset{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;border:0;padding:0;margin:0}.booking-time-preferences legend{font-weight:600}.booking-time-preferences fieldset label{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}
.booking-journey form>input:not([type=checkbox],[type=radio]),.booking-journey form>select,.booking-journey form>textarea{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:3.25rem;margin:.625rem 0 1rem;padding:.75rem .9rem;border:1px solid var(--border);border-radius:.15rem;background:var(--surface-raised);color:var(--text);font:inherit}
.booking-journey form>input:not([type=checkbox],[type=radio]),.booking-journey form>select{height:3.25rem}
.booking-confirmation{margin-block:2rem;padding:1.25rem 1.5rem;border:2px solid #18794e;background:#e7f4eb;color:#123d2b;font-weight:700;line-height:1.6;scroll-margin-top:7rem}.booking-confirmation:focus{outline:3px solid #09243b;outline-offset:3px}
.booking-calendar-legend{display:flex;flex-wrap:wrap;gap:.7rem 1.5rem;margin-top:1rem;font-size:.9rem}.booking-calendar-legend span{display:inline-flex;align-items:center;gap:.4rem}.booking-calendar-legend i{display:inline-block;width:1.1rem;height:1.1rem;border-radius:.15rem}.booking-key-open{background:var(--action-fill);border:2px solid var(--action-border)}.booking-key-closed{background:var(--text-muted);opacity:.38;border:1px solid var(--text-muted)}
.site-header .menu-trigger{display:inline-flex}.article-layout.no-section-nav{grid-template-columns:minmax(0,1fr)}.article-sidebar nav{display:block}.article-sidebar .page-contents-title{font:700 .9rem/1.4 var(--sans);letter-spacing:.05em;text-transform:uppercase;margin:0 0 .65rem;color:var(--text-muted)}.article-sidebar ul{list-style:none;margin:0;padding:0}.article-sidebar li{margin:0}.article-sidebar a{overflow-wrap:anywhere}.article-body h2[id],.about-main h2[id]{scroll-margin-top:2rem}
@media(max-width:95rem){.site-header .header-shortcuts{display:none}.site-header .menu-trigger{display:inline-flex}}
@media(max-width:65rem){.article-sidebar{order:0}.article-sidebar nav{display:block}.article-sidebar ul{display:flex;flex-wrap:wrap;gap:.4rem}.article-sidebar a{padding:.55rem .7rem;border:1px solid var(--border);border-inline-start:3px solid var(--accent)}}

/* The full menu is grouped by purpose; the short header stays intentionally small. */
.navigation-panel{overflow-y:auto;overscroll-behavior:contain}
.navigation-panel .menu-grid{grid-template-columns:minmax(13rem,28%) minmax(0,1fr);gap:5%}
.navigation-panel .menu-image{position:sticky;top:1rem;align-self:start;height:min(65vh,34rem);min-height:0}
.navigation-panel .menu-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem clamp(1.5rem,4vw,4rem);align-content:start}
.navigation-panel .menu-section{min-width:0}
.navigation-panel .menu-section .menu-heading{font:400 clamp(1.65rem,2.2vw,2.4rem)/1.2 var(--serif);color:#f4d34f;margin:0 0 .65rem}
.navigation-panel .menu-section a{display:block;font:400 1.05rem/1.35 var(--sans);color:#fff;text-decoration:none;border-bottom:1px solid #647480;padding:.65rem .25rem;min-height:44px;overflow-wrap:anywhere;transition:padding-left .2s,color .2s}
.navigation-panel .menu-section a:is(:hover,:focus-visible){color:#f4d34f;padding-left:.6rem}
@media(max-width:60rem){.navigation-panel .menu-grid{grid-template-columns:1fr;gap:2rem}.navigation-panel .menu-image{display:none}}
@media(max-width:38rem){.navigation-panel .menu-sections{grid-template-columns:1fr;gap:2rem}.navigation-panel .menu-section .menu-heading{font-size:1.8rem}}
@media(prefers-reduced-motion:reduce){.navigation-panel .menu-section a{transition:none}}
:root[data-reduced-motion] .navigation-panel .menu-section a{transition:none}
/* Keep each sacrament name intact on small screens. Only multiword names wrap. */
@media(max-width:38rem){
	.sacrament-index>a{font-size:clamp(1.05rem,4.6vw,1.35rem);gap:.65rem;overflow-wrap:normal;word-break:normal;hyphens:none}
	.sacrament-index .mission-icon{width:3rem;height:3rem}
	:root[data-theme=dark] .sacrament-index .mission-icon{width:3rem;height:3rem}
	.sacrament-index .arrow{width:1.35rem;min-width:1.35rem}
}
.mission-story-photo{margin:2rem 0 3rem}.mission-story-photo img{display:block;width:100%;height:auto;max-height:42rem;object-fit:contain;background:var(--surface)}.mission-story-photo figcaption{font-size:.95rem;line-height:1.6;margin-top:.7rem;color:var(--ink-soft)}.mission-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.mission-photo-pair img{height:23rem;object-fit:contain}.mission-symbol img{max-height:30rem;padding:1.25rem;background:white;animation:none!important;transform:none!important}.mission-photo-pair figure{margin:1.5rem 0 2rem}@media(max-width:40rem){.mission-photo-pair{grid-template-columns:1fr}.mission-photo-pair img{height:auto;max-height:32rem}}

.mission-story-frame{display:block;overflow:hidden;isolation:isolate}.mission-story-photo figcaption{position:relative;z-index:1}

/* public/assets/library.css */
.document-library { padding-block: 3.5rem 5rem; }
.library-introduction { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: end; margin-bottom: 2rem; }
.library-eyebrow, .document-category { color: var(--accent); font-size: .8125rem; font-weight: 600; }
.library-introduction h2 { font-size: clamp(2rem, 4vw, 3.5rem); margin: .5rem 0 0; }
.library-introduction > p { max-width: 60ch; color: var(--text-muted); line-height: 1.75; margin: 0; }
.library-filters { display: grid; grid-template-columns: 1.2fr 1fr .8fr; align-items: end; gap: 1.25rem; padding: 1.5rem; background: var(--surface-raised); border: 1px solid var(--border); }
.library-filters > div { min-width: 0; }
.library-filters label { display: block; font-size: .875rem; font-weight: 600; margin-bottom: .5rem; }
.library-filters :is(input, select) { box-sizing: border-box; display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 48px; margin: 0; padding: .8rem; color: var(--text); background: var(--surface); border: 1px solid var(--border); font: inherit; font-size: .9375rem; border-radius: 0; }
.library-results-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; }
.library-results-bar p { margin: 0; font-weight: 600; }
.library-results-bar button { padding: .65rem 1rem; font-size: .8125rem; }
.library-date-note { font-size: .8125rem; color: var(--text-muted); margin: .6rem 0 2rem; }
.document-library .document-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 3rem; list-style: none; margin: 0; padding: 0; }
.document-library .document-list > li { margin: 0; padding: 0; border: 0; min-width: 0; }
.document-library .document-list > li[hidden] { display: none; }
.document-card { position: relative; height: 100%; padding: 1.8rem 0; border-top: 1px solid var(--border); }
.document-card .document-category { margin: 0 0 .8rem; color: var(--accent); }
.document-card h3 { font-family: var(--serif); font-size: clamp(1.35rem, 2.2vw, 1.8rem); line-height: 1.35; margin: 0; }
.document-card h3 a { color: var(--text); text-decoration-thickness: 1px; text-underline-offset: .2em; }
.document-card h3 a::after { content: ''; position: absolute; inset: 0; }
.document-card:has(a:hover) h3 a { color: var(--accent); }
.document-card:has(a:focus-visible) { outline: 3px solid var(--text); outline-offset: 5px; }
.document-card .document-date { font-size: .8125rem; margin: 1rem 0; color: var(--text-muted); }
.document-card-cue { display: flex; justify-content: space-between; align-items: center; font-size: .8125rem; font-weight: 600; color: var(--accent); }
.document-card-cue > span { font-size: 1.5rem; }
.library-empty { padding: 2rem; border: 1px solid var(--border); background: var(--surface-raised); }
.library-empty h3, .library-help h3 { font-size: 1.6rem; margin-top: 0; }
.library-help { margin-top: 3rem; padding-top: 2rem; border-top: 2px solid var(--accent); max-width: 75ch; }
.library-help p { color: var(--text-muted); line-height: 1.8; }
.library-help a { color: var(--accent); }
@media (max-width: 60rem) {
	.library-filters { grid-template-columns: 1fr 1fr; }
	.library-search { grid-column: 1 / -1; }
}
@media (max-width: 40rem) {
	.library-introduction, .document-library .document-list, .library-filters { grid-template-columns: 1fr; gap: 1.2rem; }
	.library-search { grid-column: auto; }
	.document-library { padding-block: 2rem 3rem; }
	.document-library .document-list { gap: 0; }
	.library-filters { padding: 1rem; }
}

/* public/assets/motion.css */
:root{--photo-motion-duration:8s;--photo-motion-easing:ease-in-out}
/* Photo movement sits behind static, readable text and has no layout cost. */
.cinematic-hero .hero-image img,
.article-hero > img {
	animation: hero-drift var(--photo-motion-duration) var(--photo-motion-easing) infinite alternate;
	animation-play-state: paused;
	transform-origin: 60% 54%;
}
.cinematic-hero[data-scene-visible] .hero-image img,
.article-hero[data-scene-visible] > img { animation-play-state: running; }
@keyframes hero-drift {
	from { transform: translate3d(-2%, -1%, 0) scale(1.08); }
	to { transform: translate3d(2%, 1%, 0) scale(1.22); }
}
:root[data-page-hidden] *, :root[data-page-hidden] *::before, :root[data-page-hidden] *::after {
	animation-play-state: paused !important;
}
:root[data-reduced-motion] .cinematic-hero .hero-image img,
:root[data-reduced-motion] .article-hero > img { animation: none; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.cinematic-hero .hero-image img, .article-hero > img { animation: none; transform: none; }
}
@media (max-width: 40rem) and (prefers-reduced-motion: no-preference) {
	:root:not([data-reduced-motion]) .cinematic-hero .hero-image img { animation: hero-drift var(--photo-motion-duration) var(--photo-motion-easing) infinite alternate; animation-play-state: running; }
	:root:not([data-reduced-motion]) :is(.prayer-scene .scene-image img,.vocation-image img,.welcome-glass) { animation: hero-drift var(--photo-motion-duration) var(--photo-motion-easing) infinite alternate; will-change: transform; }
}
@keyframes hero-drift-mobile {
	from { transform: translate3d(-3%, 0, 0) scale(1.08); }
	to { transform: translate3d(3%, -1%, 0) scale(1.2); }
}
@keyframes scene-drift-mobile {
	from { transform: translate3d(-2%, 0, 0) scale(1.08); }
	to { transform: translate3d(2%, -2%, 0) scale(1.18); }
}

/* Native cursor, with a small Chi-Rho on reading surfaces. No follower or trail.
   Forms, dialogs, links and controls retain familiar operating-system cursors. */
@media (hover: hover) and (pointer: fine) and (forced-colors: none) {
	:root:not([data-contrast="light"]):not([data-contrast="dark"]) body {
		cursor: url('/assets/chi-rho-cursor.svg') 20 20, auto;
	}
}
:is(form, .journey, .service-form, dialog) { cursor: auto; }
:is(input, textarea, [contenteditable="true"]) { cursor: text; }
:is(a[href], button, select, summary, [role="button"], [role="link"], input[type="submit"], input[type="button"], input[type="checkbox"], input[type="radio"], label[for]) { cursor: pointer; }
:is(a[href], button, summary, [role="button"], [role="link"]) * { cursor: inherit; }
:is(button, input, select, textarea):disabled, [aria-disabled="true"] { cursor: not-allowed; }
.pointer-idle-ring { position:fixed;z-index:100;display:block;width:52px;height:52px;border:2px solid #daae0f;border-radius:50%;box-shadow:0 0 0 2px #0b2033;pointer-events:none;transform:translate(-50%,-50%);animation:pointer-idle-pulse 1.8s ease-in-out infinite; }
.pointer-idle-ring[hidden] { display:none; }
@keyframes pointer-idle-pulse { 0%,100% { opacity:.85;scale:.78; } 50% { opacity:.3;scale:1.16; } }
:root[data-reduced-motion] .pointer-idle-ring { display:none!important; }
@media(prefers-reduced-motion:reduce){.pointer-idle-ring { display:none!important; }}
.about-intro-image,.relationship-photo,.article-body figure{overflow:hidden}
:root:not([data-reduced-motion]) :is(.about-intro-image,.relationship-photo,.article-body figure)[data-scene-visible] img{animation:hero-drift var(--photo-motion-duration) var(--photo-motion-easing) infinite alternate;transform-origin:center}
@keyframes reading-photo-drift{from{transform:scale(1.03) translateX(-1%)}to{transform:scale(1.14) translateX(1%)}}
:root:not([data-reduced-motion]) :is(.about-values>a,.visual-pathways>a,.team-profile,.sacrament-index>a){transition:translate .45s ease,box-shadow .45s ease}
@media(hover:hover){:root:not([data-reduced-motion]) :is(.about-values>a,.visual-pathways>a,.team-profile,.sacrament-index>a):hover{translate:0 -8px}}
@media(prefers-reduced-motion:reduce){:is(.about-intro-image,.relationship-photo,.article-body figure) img{animation:none!important;transform:none!important}:is(.about-values>a,.visual-pathways>a,.team-profile,.sacrament-index>a){transition:none!important;translate:none!important}}



/* public/assets/actions.css */
/* One action palette for navigation controls, linked actions, forms and dialogs.
   The explicit reading-contrast and operating-system palettes take precedence. */
:root {
	--action-fill: #0b2033;
	--action-ink: #daae0f;
	--action-border: #daae0f;
	--action-hover-fill: #17324d;
	--action-hover-ink: #f4d34f;
	--action-active-fill: #06121c;
}

:root[data-theme="dark"] {
	--action-fill: #daae0f;
	--action-ink: #0b2033;
	--action-hover-fill: #f4d34f;
	--action-hover-ink: #0b2033;
	--action-active-fill: #d4aa11;
}

/* Existing section styles must not create their own competing button colours. */
@media (forced-colors: none) {
:root:not([data-contrast="light"]):not([data-contrast="dark"]) :is(button, .button, .action-control, input[type="submit"], input[type="button"]) {
	background: var(--action-fill) !important;
	color: var(--action-ink) !important;
	border-color: var(--action-border) !important;
}

:root:not([data-contrast="light"]):not([data-contrast="dark"]) :is(button, .button, .action-control, input[type="submit"], input[type="button"]):hover:not(:disabled):not([aria-disabled="true"]) {
	background: var(--action-hover-fill) !important;
	color: var(--action-hover-ink) !important;
}

:root:not([data-contrast="light"]):not([data-contrast="dark"]) :is(button, .button, .action-control, input[type="submit"], input[type="button"]):active:not(:disabled):not([aria-disabled="true"]) {
	background: var(--action-active-fill) !important;
	color: var(--action-ink) !important;
}
}

:is(button, .button, .action-control, input[type="submit"], input[type="button"]) {
	border-width: 1px;
	border-style: solid;
	font-family: var(--sans);
	font-weight: 600;
	min-height: 48px;
	/* Change the paired colours together; crossfading an inverted pair loses contrast. */
	transition: outline-offset 160ms ease;
}

:is(button, .button, .action-control, input[type="submit"], input[type="button"]):is(:disabled, [aria-disabled="true"]) {
	opacity: 1;
	border-style: dashed;
	cursor: not-allowed;
}

.motion-control { display: inline-flex; min-width: 48px; justify-content: center; padding: .55rem .75rem; }
.header-tools { align-items: center; gap: .75rem; }
.header-tools .theme-control { display: block; margin: 0; }
.header-tools :is(.action-control, button, .header-donate) {
	box-sizing: border-box;
	height: 3rem;
	min-height: 48px;
	max-width: none;
	margin: 0;
	border-radius: 0;
	padding: .65rem .85rem;
	font-size: .8125rem;
	line-height: 1.25;
}
.header-tools .motion-control span { display: inline; }
.header-tools .motion-control { min-width: 8rem; }
.header-tools .menu-trigger { gap: .75rem; }
.header-tools .header-donate { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
@media (max-width: 35rem) {
	.header-tools { display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: .5rem; }
	.header-tools :is(.action-control, button, .header-donate) { width: 100%; min-width: 0; justify-content: center; }
}
:root[data-theme="dark"] :is(.sacrament-interlude, .ministry-story) h2 em { color: #e4c578; }

@media (forced-colors: none) {
:root:is([data-contrast="light"], [data-contrast="dark"]) :is(button, .button, .action-control, input[type="submit"], input[type="button"]) {
	background: var(--contrast-bg) !important;
	color: var(--contrast-ink) !important;
	border-color: var(--contrast-ink) !important;
}
}

@media (forced-colors: active) {
	:root :is(button, .button, .action-control, input[type="submit"], input[type="button"]),
	:root :is(button, .button, .action-control, input[type="submit"], input[type="button"]):is(:hover, :active) {
		background: ButtonFace !important;
		color: ButtonText !important;
		border-color: ButtonText !important;
		forced-color-adjust: auto;
	}
}

/* public/assets/language.css */
.language-control { position: relative; }
.language-control > summary { box-sizing: border-box; display: flex; align-items: center; justify-content: center; gap: .45rem; min-height: 3rem; min-width: 8.5rem; padding: .65rem .85rem; border: 1px solid var(--action-border); border-radius: 0; background: var(--action-fill); color: var(--action-ink); font-family: var(--sans); font-size: .8125rem; font-weight: 600; line-height: 1.25; cursor: pointer; list-style: none; }
.language-control > summary:hover { background: var(--action-hover-fill); color: var(--action-hover-ink); }
.language-control > summary:active { background: var(--action-active-fill); color: var(--action-ink); }
:root:is([data-contrast="light"], [data-contrast="dark"]) .language-control > summary { background: var(--contrast-bg); color: var(--contrast-ink); border-color: var(--contrast-ink); }
@media (forced-colors: active) { .language-control > summary, .language-control > summary:is(:hover, :active) { background: ButtonFace; color: ButtonText; border-color: ButtonText; forced-color-adjust: auto; } }
.language-control > summary::-webkit-details-marker { display: none; }
.language-control > summary::after { content: '⌄'; margin-left: auto; }
.language-control img { display: block; flex: 0 0 24px; width: 24px; height: 16px; border: 1px solid #bbc2ca; }
.language-menu { position: absolute; z-index: 45; top: calc(100% + .5rem); right: 0; width: min(22rem, calc(100vw - 2rem)); max-height: min(70dvh, 34rem); overflow: auto; padding: 1rem; background: #fff; color: #0b2033; border: 2px solid #0b2033; border-radius: .5rem; box-shadow: 0 8px 25px #06152355; }
body:has(.language-control[open]) .visitor-tools { visibility: hidden; }
.language-menu-heading { margin: 0 0 .5rem; font-weight: 700; }
.language-menu nav { display: grid; grid-template-columns: 1fr 1fr; gap: .25rem; }
.language-menu a { display: flex; align-items: center; gap: .5rem; min-height: 44px; padding: .35rem .4rem; color: #0b2033; text-decoration: none; }
.language-menu a:hover, .language-menu a:focus-visible, .language-menu a[aria-current] { background: #e9f0f5; }
.language-disclaimer { margin: .75rem 0 0; padding: .75rem; border-left: 4px solid #aa8300; background: #fff8e4; color: #25384b; font-size: .875rem; line-height: 1.5; }
.official-language-notice { margin-block: 1.5rem; padding: 1rem; border-left: 4px solid #aa8300; background: #fff8e4; color: #25384b; }
.partner-choice { margin: auto; width: min(32rem, calc(100% - 2rem)); padding: 1.5rem; border: 2px solid #0b2033; border-radius: .5rem; color: #0b2033; background: #fff; }
.partner-choice::backdrop { background: #061523b8; }
.partner-choice h2 { font-size: 1.5rem; }
.partner-choice-actions { display: grid; gap: .65rem; margin-top: 1rem; }
.partner-choice-actions :is(a, button) { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: .65rem; border: 1px solid #0b2033; border-radius: .25rem; background: #0b2033; color: #fff; text-align: center; font: inherit; cursor: pointer; }

/* Google's translation toolbar occupies the top edge of its proxy page. */
:root[data-translation-proxy] body { padding-top:2.75rem!important; }
:root[data-translation-proxy] .site-header { position:relative!important;top:auto!important; }
:root[data-translation-proxy] .official-language-notice { margin-block:0 1rem; }
.partner-choice-actions button:last-child { background: #fff; color: #0b2033; }
@media (max-width: 47.5rem) { .language-control > summary { width: 100%; } .language-menu { left: 0; right: auto; } }
@media (max-width: 350px) { .language-menu nav { grid-template-columns: 1fr; } .header-tools .theme-control select { font-size: .75rem; padding-inline: .25rem; } }

/* src/styles/contact.css */
.contact-privacy,
.policy-review {
	padding: clamp(1rem, 3vw, 1.75rem);
	border-inline-start: 4px solid var(--accent);
	background: var(--surface-raised);
	color: var(--text);
	margin-block: 2rem;
}
.contact-privacy h3 { margin-top: 0; }
.contact-privacy p,
.policy-review p { line-height: 1.7; margin-block: .75rem; }
.contact-verification { margin-block: 1.5rem; min-width: 0; }
.contact-verification button { padding: .75rem 1rem; min-height: 48px; }
.contact-journey .choice-row { display: flex; align-items: flex-start; }
.contact-journey .form-field { box-sizing: border-box; width: 100%; }
.contact-journey .form-field .form-field { margin-block: 1rem; }
.contact-journey .form-field :is(input:not([type=radio],[type=checkbox]), select) {
	box-sizing: border-box;
	width: 100%;
	height: 3.25rem;
	min-height: 3.25rem;
	padding: .75rem .9rem;
	font: inherit;
}
.contact-journey .form-field textarea { box-sizing: border-box; width: 100%; padding: .75rem .9rem; font: inherit; }
@media (min-width: 40rem) {
	.contact-journey [id="name_1-group"] { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
	.contact-journey [id="name_1-group"] > :is(legend, .form-help) { grid-column: 1 / -1; }
}
.news-list {list-style:none;padding:0;margin:2rem 0;}
.news-list>li {padding-block:2rem;border-bottom:1px solid var(--border);}
.article-body .news-list h2 {margin-top:.75rem;}
.news-date {font-size:.9rem;color:var(--text-muted);margin-block:.75rem 1rem;}
.news-category {font-size:.8125rem;color:var(--text-muted);}
