@font-face{font-family:'Alegreya';src:url('/assets/alegreya-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Alegreya';src:url('/assets/alegreya-600.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:'Nunito';src:url('/assets/nunito-400.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Nunito';src:url('/assets/nunito-600.ttf') format('truetype');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:'Nunito';src:url('/assets/nunito-700.ttf') format('truetype');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:'Nunito';src:url('/assets/nunito-800.ttf') format('truetype');font-style:normal;font-weight:800;font-display:swap}
:root{--burgundy:#722f37;--burgundy-dark:#48252b;--gold:#b08a4b;--cream:#f3eadb;--paper:#fbfaf7;--white:#fff;--ink:#322b28;--muted:#716762;--line:#e4dcd1;--radius:18px;--width:1240px;--font-body:Nunito,Arial,sans-serif;--font-heading:Alegreya,Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--font-body);line-height:1.65}a{color:inherit;text-underline-offset:5px}a,button{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.15}h2{font-family:var(--font-heading);font-size:clamp(2rem,3vw,2.75rem);font-weight:400}h3{font-weight:650}img{max-width:100%}[hidden]{display:none!important}.wrap{width:min(var(--width),calc(100% - 80px));margin-inline:auto}.preview-bar{background:var(--burgundy);color:white;text-align:center;font-size:11px;letter-spacing:.06em;padding:7px 16px}.preview-bar span{margin:0 10px}.preview-bar a{text-decoration:none}.preview-bar a:hover{text-decoration:underline}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:26px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-size:20px;font-weight:750;line-height:1.35}.brand img{object-fit:contain}.brand small{display:block;font-size:9px;letter-spacing:.12em;font-weight:600;color:var(--muted);margin-top:6px}nav{display:flex;align-items:center;gap:25px;font-size:12px;font-weight:600}nav a{text-decoration:none;white-space:nowrap}nav a:hover,nav a[aria-current]{color:var(--burgundy)}.portal-link{border:1px solid var(--line);padding:10px 14px;border-radius:5px}.menu-toggle{border:1px solid var(--line);background:transparent;padding:8px 12px;border-radius:5px;color:var(--burgundy)}.hero{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius);min-height:480px;display:flex;align-items:center}.hero picture{position:absolute;inset:0;z-index:-2}.hero img{width:100%;height:100%;object-fit:cover;object-position:center}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(29,20,17,.48),rgba(29,20,17,.12) 65%,rgba(29,20,17,.03))}.hero-content{padding:54px 60px;color:white}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;color:var(--burgundy)}.hero .eyebrow{color:#f5e5c6}.hero h1{font-family:var(--font-heading);font-weight:400;font-size:clamp(2.5rem,4.4vw,4rem);margin:19px 0}.hero-content>p:not(.eyebrow){font-size:15px;line-height:1.8}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:13px 22px;border-radius:6px;text-decoration:none;font-weight:700;font-size:12px;border:1px solid transparent}.cream{background:var(--cream);color:var(--burgundy-dark);margin-top:27px}.button:hover{filter:brightness(.96)}.worship{padding-block:56px 62px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.section-heading h2{margin-top:10px}.section-heading>p{font-size:13px;color:var(--muted)}.text-link{font-size:12px;font-weight:750;color:var(--burgundy)}.worship-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:28px}.worship-card{background:var(--cream);border:1px solid #e8d9c4;border-radius:var(--radius);padding:30px 34px}.next-mass h3{font-family:var(--font-heading);font-size:31px;font-weight:400;margin:15px 0 8px}.next-mass #next-mass p{font-size:13px;color:var(--muted)}.usual-time{margin-top:12px;font-size:12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.usual-time strong{font-size:20px}.usual-time span{color:var(--muted);font-size:11px}.fine-print{font-size:11px;color:var(--muted);margin-top:22px;border-top:1px solid #d8c8b4;padding-top:16px}.fine-print a{color:var(--burgundy);font-weight:700}.location h3{font-family:var(--font-heading);font-size:25px;font-weight:400;margin:15px 0 12px}.location p:not(.eyebrow){font-size:13px;color:var(--muted);margin-bottom:13px}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:35px 0 15px}.calendar-heading h3{font-size:16px}.calendar-heading span,#calendar-status{font-size:12px;color:var(--muted)}#calendar-status:empty{display:none}.events{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.event{display:flex;gap:16px;padding:19px 16px;border:1px solid var(--line);border-radius:10px;background:white}.event-date{color:var(--burgundy);border-right:1px solid var(--line);padding-right:16px;text-align:center;min-width:57px}.event-date span{display:block;font-size:10px;font-weight:750;letter-spacing:.06em}.event-date strong{font-family:var(--font-heading);font-size:29px;font-weight:400;line-height:1.2}.event h4{font-size:13px;margin:1px 0 6px}.event p{font-size:11px;color:var(--muted)}.outline{border-color:var(--burgundy);background:transparent;color:var(--burgundy);margin-top:16px}.community-section{background:#f1ece4;padding:48px 0 56px}.community-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}.community-link{text-decoration:none;border-top:2px solid var(--gold);padding-top:22px}.community-link h3{font-family:var(--font-heading);font-size:24px;font-weight:400;margin:12px 0}.community-link h3 span{float:right;font-family:var(--font-body);font-size:20px}.community-link p{font-size:13px;color:var(--muted);margin-bottom:20px;max-width:290px}.community-link:hover .text-link{text-decoration:underline}.site-footer{background:var(--burgundy-dark);color:#f9f2e9;padding:42px 0 20px}.footer-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:36px}.footer-identity{display:flex;gap:14px;align-items:start}.footer-identity img{border-radius:50%}.footer-identity strong{font-family:var(--font-heading);font-size:20px;font-weight:400;line-height:1.3;display:block}.site-footer h2{font-family:var(--font-body);font-size:12px;font-weight:750;margin-bottom:12px}.site-footer p,.site-footer a{font-size:11px;color:#e0d0c7}.site-footer p{margin:6px 0}.site-footer a{display:block;margin-top:6px;overflow-wrap:anywhere}.footer-bottom{border-top:1px solid #76555a;margin-top:30px;padding-top:18px;display:flex;justify-content:space-between;gap:16px;font-size:10px;color:#d4c0b6}.skip-link{position:absolute;top:-100px;left:10px;background:white;padding:10px;z-index:10}.skip-link:focus{top:10px}
@media(min-width:1001px){.menu-toggle{display:none}}@media(max-width:1100px){nav{gap:15px}.brand{font-size:17px}.brand img{width:60px;height:60px}.brand small{font-size:8px}.wrap{width:calc(100% - 48px)}}
@media(max-width:1000px){.site-header{flex-wrap:wrap}.menu-toggle:not([hidden]){display:block}.site-header nav{width:100%;justify-content:center;flex-wrap:wrap}.site-header.is-enhanced nav:not(.is-open){display:none}.footer-grid{grid-template-columns:1fr 1fr}.footer-identity{grid-column:1/-1}.events{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.wrap{width:calc(100% - 32px)}.preview-bar{font-size:10px}.site-header{padding-block:18px;gap:16px}.brand{font-size:15px;gap:9px}.brand img{width:48px;height:48px}.brand small{font-size:7px;max-width:180px;line-height:1.5}.menu-toggle{font-size:11px;padding:7px 9px}.site-header nav{align-items:stretch;gap:0;text-align:center;flex-direction:column}.site-header nav a{padding:12px;border-bottom:1px solid var(--line)}.hero{min-height:475px;align-items:end;border-radius:12px}.hero-content{padding:30px 24px}.hero:after{background:linear-gradient(0deg,rgba(29,20,17,.55),rgba(29,20,17,.05))}.hero img{object-position:center 40%}.hero h1{font-size:39px}.hero-content>p:not(.eyebrow){font-size:13px}.hero .eyebrow{font-size:9px}.worship{padding-block:36px}.section-heading{align-items:start;flex-direction:column;gap:14px}.worship-grid{grid-template-columns:1fr;gap:10px}.worship-card{padding:25px}.next-mass h3{font-size:28px}.calendar-heading{align-items:start;flex-direction:column;gap:6px;margin-top:14px}.events{grid-template-columns:1fr}.community-section{padding:36px 0}.community-grid{grid-template-columns:1fr;gap:26px}.community-link p{max-width:none}.community-link{padding-top:18px}.footer-grid{grid-template-columns:1fr;gap:25px}.footer-bottom{flex-direction:column;gap:5px}.footer-identity{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Mobile navigation: a spacious disclosure panel with a distinct portal action. */
.menu-icon{position:relative;width:18px;height:18px;display:inline-block;flex-shrink:0}
.menu-icon:before,.menu-icon:after{content:'';position:absolute;left:0;width:18px;height:1.5px;background:currentColor;border-radius:2px;transition:transform .18s ease,top .18s ease}
.menu-icon:before{top:5px}.menu-icon:after{top:12px}
.menu-toggle[aria-expanded=true] .menu-icon:before{top:8px;transform:rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-icon:after{top:8px;transform:rotate(-45deg)}
@media(max-width:1000px){
  .site-header{gap:16px}
  .site-header .menu-toggle:not([hidden]){display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:88px;min-height:44px;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--white);font-size:12px;font-weight:750}
  .site-header .menu-toggle[aria-expanded=true]{background:var(--burgundy);border-color:var(--burgundy);color:white}
  .site-header nav{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:12px;border:1px solid var(--line);border-radius:18px;background:var(--white);box-shadow:0 12px 30px #48252b0a;text-align:left}
  .site-header nav a{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:13px 16px;border:0;border-radius:9px;font-size:15px;font-weight:650;white-space:normal}
  .site-header nav a:not(.portal-link):after{content:'›';font-size:23px;font-weight:400;line-height:1;color:var(--muted)}
  .site-header nav a[aria-current=page]{background:var(--cream);color:var(--burgundy)}
  .site-header nav a:hover{background:var(--paper);color:var(--burgundy)}
  .site-header nav .portal-link{margin-top:8px;background:var(--burgundy);color:white;min-height:54px}
  .site-header nav .portal-link:hover{background:var(--burgundy-dark);color:white}
  .site-header nav.is-open{animation:menu-appear .18s ease-out}
}
@media(max-width:380px){.site-header .brand{flex:1;min-width:0;font-size:13px}.brand img{width:40px;height:40px}.brand small{font-size:6px}.site-header .menu-toggle:not([hidden]){min-width:78px;padding-inline:10px;gap:7px}}
@keyframes menu-appear{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.menu-icon:before,.menu-icon:after{transition:none}.site-header nav.is-open{animation:none}}

/* Shared nested navigation: click-operated desktop dropdowns/mobile accordions. */
.nav-group{position:relative}
.nav-group-heading{display:flex;align-items:center;gap:2px}
.submenu-toggle{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;text-align:left;white-space:nowrap}
.site-header.is-enhanced .nav-group-label{display:none}
.nav-group:has(a[aria-current="page"]) .submenu-toggle{color:var(--burgundy)}
.submenu-toggle span{font-size:20px;line-height:1;transition:transform .18s ease}
.submenu-toggle[aria-expanded=true] span{transform:rotate(180deg)}
.submenu-toggle:hover{background:var(--cream)}
.submenu{list-style:none;margin:0;padding:8px;border:1px solid var(--line);border-radius:12px;background:white}
.site-header nav .submenu a{display:block;white-space:normal;font-size:13px;line-height:1.5;padding:11px 12px;border-radius:7px}
.site-header nav .submenu a:hover{background:var(--cream);color:var(--burgundy)}
.site-header nav .submenu a:after{content:none}
@media(min-width:1001px){
  .site-header{position:relative;z-index:5}
  .site-header nav{gap:16px}
  .submenu{position:absolute;top:100%;left:0;width:270px;box-shadow:0 12px 30px #48252b1a}
}
@media(max-width:1000px){
  .nav-group-heading{gap:0}
  .submenu-toggle{width:100%;min-height:48px;padding:10px 12px}
  .nav-group-label{padding:10px 12px}
  .nav-group:has(.submenu-toggle[aria-expanded=true]){background:var(--paper);border-radius:10px}
  .submenu{margin:0 12px 12px 24px;padding:2px 0 2px 10px;border:0;border-left:2px solid var(--gold);border-radius:0;background:transparent}
  .site-header nav .submenu a{display:flex;align-items:center;min-height:44px;padding:10px 12px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.submenu-toggle span{transition:none}}

/* Restrained footer with the original burgundy palette. */
.site-footer{background:var(--burgundy-dark);color:#f9f2e9;padding:36px 0 20px}
.site-footer p,.site-footer a{color:#e0d0c7;font-size:12px}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:white;text-decoration:underline}
.footer-identity img{width:44px;height:44px}
.footer-identity strong{font-size:18px}
.site-footer h2{font-weight:650}
.footer-bottom{border-top:1px solid #76555a;color:#d4c0b6;margin-top:26px;font-size:11px}
.footer-contact{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;align-content:start;color:#d4c0b6;font-size:12px}
.site-footer .footer-contact a{display:inline;margin:0}
@media(min-width:1101px){.footer-grid{grid-template-columns:1.1fr 1fr 1.15fr}}

.site-footer .footer-contact a:first-child{text-decoration:underline;text-underline-offset:4px}

.announcements-page{max-width:900px;padding-block:28px 72px;min-height:60vh}
.announcements-heading{margin:32px 0}
.announcements-heading h1{font-family:var(--font-heading);font-weight:400;font-size:clamp(36px,5vw,54px);margin:10px 0 12px}
.announcements-heading>p:last-child{color:var(--muted)}
#announcement-status{color:var(--muted)}
#announcement-status:empty{display:none}
.announcement{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:12px;padding:36px 40px}
.announcement time{font-size:13px;color:var(--muted)}
.announcement h2{margin-top:12px;font-size:34px;overflow-wrap:anywhere}
.announcement-body{margin-top:26px;font-size:17px;line-height:1.8;overflow-wrap:anywhere}
.announcement-body h3{font-family:var(--font-heading);font-size:25px;font-weight:600;margin:28px 0 12px}
.announcement-body p{margin:16px 0;white-space:pre-wrap}
.announcement-body ul,.announcement-body ol{padding-left:25px;margin:16px 0}
.announcement-body li{padding-left:4px;white-space:pre-wrap}
@media(max-width:600px){.announcements-page{padding-block:16px 40px}.announcement{padding:25px 22px}.announcement h2{font-size:29px}.announcement-body{font-size:16px}}

.site-header nav .portal-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:11px 20px;border:1px solid var(--burgundy);border-radius:999px;background:var(--burgundy);color:white}
.site-header nav .portal-link:hover{background:var(--burgundy-dark);color:white}
.schedule-page{max-width:1000px;padding-block:28px 64px;min-height:60vh}
.schedule-note{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:20px 24px;color:var(--muted);font-size:14px}
.schedule-note a{color:var(--burgundy)}
.schedule-note p+p{margin-top:6px}
#schedule-status{margin-top:24px;color:var(--muted)}
#schedule-status:empty{display:none}
.schedule-group{margin-top:38px}
.schedule-description{font-size:14px;color:var(--muted);margin-top:10px}
.schedule-list{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--line)}
.schedule-event{display:grid;grid-template-columns:280px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid var(--line)}
.schedule-date{font-size:15px;color:var(--burgundy);font-weight:700}
.schedule-event h3{font-family:var(--font-heading);font-size:23px;font-weight:400;margin-bottom:7px}
.schedule-event p{font-size:14px;color:var(--muted);overflow-wrap:anywhere}
.schedule-empty{color:var(--muted);padding:20px 0;font-size:14px}
@media(max-width:600px){.schedule-page{padding-block:16px 40px}.schedule-event{grid-template-columns:1fr;gap:8px;padding:18px 0}.schedule-note{padding:18px}.site-header nav .portal-link{justify-content:space-between}}

.month-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:32px}
.month-navigation .button{margin:0;min-height:44px}
.month-navigation h2{font-size:30px;text-align:center}
.text-button{border:0;background:none;color:var(--burgundy);text-decoration:underline;text-underline-offset:4px;padding:12px 0;font-size:13px}
@media(max-width:600px){.month-navigation{flex-wrap:wrap;gap:12px}.month-navigation h2{order:-1;width:100%;font-size:28px}.month-navigation .button{padding:10px 18px}}

.schedule-event.is-past{background:transparent}
.schedule-event.is-past .schedule-date,
.schedule-event.is-past h3,
.schedule-event.is-past p{color:#8a817b}
.schedule-event.is-past .schedule-date{font-weight:400}
.schedule-description a{color:var(--burgundy);text-underline-offset:3px}

/* Keep the shared navigation above page content, including mobile disclosures. */
.header-shell{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 4px 18px #48252b08}
html{scroll-padding-top:150px}
.skip-link{z-index:40}
@media(max-width:1000px){.site-header nav.is-open{max-height:calc(100dvh - 130px);overflow-y:auto;overscroll-behavior:contain}}

/* A quiet church landscape, with its palette set by the time in Exton. */
.site-footer{padding-top:0}
.site-footer>.footer-grid{padding-top:36px}
.footer-scene{position:relative;overflow:hidden;--sky-top:#e5e9e5;--sky-bottom:#f6eddb;--hill-far:#c7c4bb;--hill-near:#9b9690;--church:#62515a;--window:#dcc7a0}
.footer-scene[data-period=morning]{--sky-top:#e5d5d3;--sky-bottom:#fae3bb;--hill-far:#c6b4b1;--hill-near:#aa9294;--church:#70555d;--window:#f2d59f}
.footer-scene[data-period=evening]{--sky-top:#8d788a;--sky-bottom:#efbc98;--hill-far:#a58994;--hill-near:#7e6678;--church:#503746;--window:#ffda97}
.footer-scene[data-period=night]{--sky-top:#202739;--sky-bottom:#534453;--hill-far:#514d60;--hill-near:#443849;--church:#332b38;--window:#f5cc82}
.footer-scene svg{display:block;width:100%;height:max(240px,18.056vw)}
.sky-top{stop-color:var(--sky-top)}.sky-bottom{stop-color:var(--sky-bottom)}
.scene-hill-far{fill:var(--hill-far)}.scene-hill-near{fill:var(--hill-near)}
.scene-church{fill:var(--church);color:var(--church)}.scene-window{fill:var(--window)}
.scene-trees{fill:#58414c}.scene-birds{color:var(--church);animation:parish-birds 62.5s linear infinite}
.bird-wings{transform-box:fill-box;transform-origin:center bottom;animation:parish-wing-flap var(--flap-duration,1.3s) ease-in-out var(--flap-delay,0s) infinite;vector-effect:non-scaling-stroke}
@keyframes parish-wing-flap{0%,100%{transform:scaleY(1)}45%{transform:scaleY(.28)}}
.scene-clouds{animation:parish-clouds 142.857s linear infinite}
.scene-santa{display:none;animation:parish-santa-flight 65s linear -25s infinite}
html[data-christmas-day=true] .scene-birds{display:none}
html[data-christmas-day=true] .scene-santa{display:block}
@keyframes parish-santa-flight{from{transform:translateX(-1000px)}to{transform:translateX(880px)}}
.scene-moon,.scene-stars{opacity:0}
.footer-scene[data-period=night] .scene-moon{opacity:1}
.footer-scene[data-period=night] .scene-stars{opacity:1}
.footer-scene[data-period=night] .scene-stars circle{transform-box:fill-box;transform-origin:center;animation:parish-stars 4s ease-in-out infinite}
.footer-scene[data-period=night] .scene-stars circle:nth-child(2n){animation-delay:-1.7s;animation-duration:5.3s}
.footer-scene[data-period=night] .scene-stars circle:nth-child(3n){animation-delay:-3.2s;animation-duration:6.1s}
.footer-scene[data-period=night] .scene-stars circle:nth-child(5n){animation-delay:-.8s;animation-duration:4.7s}
.footer-scene[data-period=night] .scene-cross{stroke:#c4ad86;filter:drop-shadow(0 0 3px #cfac7059)}
.footer-scene[data-period=night] .scene-sun,.footer-scene[data-period=night] .scene-birds{display:none}
.footer-scene[data-period=morning] .scene-sun{transform:translateY(45px)}
.footer-scene[data-period=evening] .scene-sun{transform:translateY(65px)}
.footer-scene[data-period=night] .scene-window,.footer-scene[data-period=evening] .scene-window{animation:parish-light 7s ease-in-out infinite alternate}
.footer-scene.is-offscreen *{animation-play-state:paused!important}
@keyframes parish-clouds{from{transform:translateX(0)}to{transform:translateX(1440px)}}
@keyframes parish-birds{from{transform:translateX(0)}to{transform:translateX(1440px)}}
@keyframes parish-stars{0%,100%{opacity:.35;transform:scale(.8);filter:drop-shadow(0 0 0 transparent)}50%{opacity:1;transform:scale(1.45);filter:drop-shadow(0 0 3px #f5e9cb)}}
@keyframes parish-light{from{opacity:.8}to{opacity:1}}
@media(max-width:600px){.footer-scene svg{height:190px}}
@media(prefers-reduced-motion:reduce){.footer-scene *{animation:none!important}}


/* Slightly larger reading sizes throughout the shared pages. */
body{font-size:18px}
.hero-content>p:not(.eyebrow){font-size:17px}
.section-heading>p,.next-mass #next-mass p,.location p:not(.eyebrow),.community-link p{font-size:16px}
.button,.text-link{font-size:14px}
.eyebrow{font-size:12px}
.usual-time{font-size:14px}.usual-time span{font-size:13px}
.fine-print{font-size:13px}
.announcement time{font-size:15px}.announcement-body{font-size:18px}
.schedule-description,.schedule-event p,.schedule-empty{font-size:16px}
.schedule-date{font-size:17px}.text-button{font-size:15px}
.site-footer p,.site-footer a,.footer-contact{font-size:14px}
.site-footer h2{font-size:14px}.footer-bottom{font-size:13px}
@media(max-width:600px){.hero-content>p:not(.eyebrow){font-size:16px}.hero .eyebrow{font-size:11px}}

/* Anchor the desktop title to the image rather than the text's own height. */
@media(min-width:1001px){
  .hero-content{position:absolute;top:65%;left:0;transform:none;padding:0 60px}
  .hero h1{margin:0}
}

/* Keep the bottom of the landscape photo visible when the banner crops it. */
@media(min-width:601px){.hero img{object-position:center bottom}}

/* A brief welcome flutter; the angel rests after two gentle wingbeats. */
.brand-angel{display:inline-block;vertical-align:middle;margin-left:7px;color:var(--gold);overflow:visible}
.angel-wings{transform-box:view-box;transform-origin:20px 24px;animation:welcome-flutter .65s ease-in-out .25s 2}
@keyframes welcome-flutter{0%,100%{transform:scaleX(1)}50%{transform:scaleX(.72)}}
/* Background underlines leave the mobile disclosure arrows intact. */
.site-header nav a:not(.portal-link){background-image:linear-gradient(var(--burgundy),var(--burgundy));background-repeat:no-repeat;background-position:left bottom;background-size:0 2px;transition:background-size .22s ease}
.site-header nav a:not(.portal-link):hover,
.site-header nav a:not(.portal-link):focus-visible,
.site-header nav a[aria-current=page]:not(.portal-link){background-image:linear-gradient(var(--burgundy),var(--burgundy));background-repeat:no-repeat;background-position:left bottom;background-size:100% 2px}
@media(max-width:600px){.brand-angel{width:18px;height:18px;margin-left:4px}}
@media(prefers-reduced-motion:reduce){.angel-wings{animation:none}.site-header nav a:not(.portal-link){transition:none}}

/* Keep the desktop title toward the left with natural line wrapping. */
@media(min-width:1001px){
  .hero-content{width:55%;padding-right:24px}
  .hero h1{max-width:none}
}

/* Shared hero title size and translucent call to action. */
.hero h1{font-size:clamp(2.5rem,3.5vw,3.25rem)}
.hero .button.cream{background:rgba(243,234,219,.4);color:#fff;border-color:rgba(255,255,255,.55);text-shadow:0 1px 3px rgba(29,20,17,.65)}

.formation-page{max-width:1000px;padding-block:28px 64px}
.formation-page .announcements-heading>p:last-child{max-width:780px;line-height:1.85}
.formation-schedule h2{margin:12px 0 18px}
.formation-schedule>p:not(.eyebrow){font-size:16px}
#formation-status{margin-top:20px;color:var(--muted)}
#formation-status:empty{display:none}
.formation-dates{display:grid;grid-template-columns:repeat(3,minmax(0,100px));gap:14px;list-style:none;margin:26px 0;padding:0}
.formation-dates li{min-width:0}
.formation-calendar{display:block;overflow:hidden;text-align:center;border:1px solid #cdb58e;border-radius:10px;background:#fffdf7;box-shadow:0 3px 8px #48252b08}
.formation-calendar-month{display:block;background:var(--burgundy);color:#fff7e8;padding:6px 4px;font-size:13px;font-weight:700;letter-spacing:.06em}
.formation-calendar-day{display:block;padding:10px 4px 12px;font-family:var(--font-heading);font-size:34px;line-height:1.2;color:var(--burgundy-dark)}
@media(max-width:600px){.formation-dates{gap:10px}.formation-calendar-day{font-size:30px}}
.formation-resources{display:grid;grid-template-columns:1fr 1fr;gap:36px;margin-top:40px}
.formation-resources section{border-top:2px solid var(--gold);padding-top:24px}
.formation-resources h2{font-size:30px;margin:12px 0}
.formation-resources p:not(.eyebrow){font-size:16px;color:var(--muted)}
@media(max-width:600px){.formation-page{padding-block:16px 40px}.formation-resources{grid-template-columns:1fr}}

.formation-about-link{margin:-10px 0 32px}
.formation-story{max-width:780px}
.formation-story section{margin-top:32px}
.formation-story h2{font-size:30px;margin-bottom:16px}
.formation-story p{line-height:1.85;color:var(--muted);margin-top:14px}
.formation-story-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-top:32px}
.formation-story-actions .button{margin-top:0}

.registration-button{background:var(--burgundy);color:white;border-color:var(--burgundy);min-height:48px}
.registration-button:hover{background:var(--burgundy-dark)}

.about-resources .text-link{display:inline-block;margin-top:20px}
.mission-leadership{display:grid;grid-template-columns:1fr 1fr;gap:0 32px;margin-top:24px}
.mission-leadership section{border-top:1px solid var(--line);padding-top:22px}
.mission-leadership section:last-child{grid-column:1/-1}
.mission-leadership ul{list-style:none;padding:0;margin:0;color:var(--muted)}
.mission-leadership li{padding:6px 0}
@media(max-width:600px){.mission-leadership{grid-template-columns:1fr}}

.mission-leadership ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,200px));gap:24px}
.mission-leadership li{padding:0}
.mission-leadership img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:10px;background:var(--cream)}
.mission-leadership li span{display:block;margin-top:12px;font-size:16px;color:var(--ink);line-height:1.5}
@media(max-width:600px){.mission-leadership ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.mission-leadership li:only-child{max-width:200px}}

.pdf-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin-bottom:24px}
.liturgy-pdf{display:block;width:100%;height:75vh;min-height:400px;border:1px solid var(--line);border-radius:12px;background:white}
.about-resources .registration-button{margin-top:20px}

.readings-controls{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:24px 0}
.readings-controls label{font-size:16px;font-weight:700}
.readings-controls input{font:inherit;font-size:16px;min-height:46px;max-width:100%;border:1px solid var(--line);border-radius:6px;padding:8px 12px;background:white;color:var(--ink)}
.readings-controls input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.readings-controls .button{margin:0}
#readings-status{color:var(--muted)}
#readings-status:empty{display:none}
.readings-heading{margin:32px 0 24px}
.readings-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 24px;color:var(--burgundy);font-size:16px;font-weight:700}
.readings-heading p:empty{display:none}
.readings-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.readings-columns>section{padding:24px;border:1px solid var(--line);border-radius:12px;background:white}
.readings-columns h3{font-size:20px;margin-bottom:16px}
.readings-columns section[lang=ml]{line-height:1.9}
.reading-list{list-style:none;margin:20px 0 0;padding:0}
.reading-list li{border-top:1px solid var(--line);padding:16px 0}
.reading-list strong{color:var(--burgundy);font-size:17px}
.reading-list p{color:var(--muted);font-size:16px;margin-top:6px}
@media(max-width:600px){.readings-columns{grid-template-columns:1fr}.readings-columns>section{padding:20px}}

/* Echo the altar's ivory linen, antique gold, and burgundy fabric. */
.worship-grid>.worship-card,.scripture-page .readings-columns>.reading-card{
  background:linear-gradient(135deg,#fffdf7 0%,#f5eddf 68%,#eee0ca 100%);
  border:1px solid #d9c4a3;
  border-top:3px solid #b28b50;
  border-radius:14px;
  box-shadow:0 8px 24px rgba(92,64,37,.045),inset 0 1px 0 #fffdf8;
}
.worship-grid .eyebrow{color:#733b3d;letter-spacing:.14em}
.worship-grid .next-mass h3,.worship-grid .location h3{color:#51372e}
.worship-grid .usual-time strong{color:#733b3d}
.worship-grid .fine-print{border-top-color:#deceb6;color:#776758}
.worship-grid .location p:not(.eyebrow){color:#776758}
.worship-grid .text-link,.worship-grid .fine-print a{color:#733b3d;text-decoration-color:#b28b50}
.hero .button.cream{
  background:rgba(91,35,39,.4);
  color:#fff7e8;
  border:1px solid #d8b87d;
  border-radius:8px;
  box-shadow:0 4px 14px rgba(49,24,15,.16),inset 0 1px 0 rgba(255,237,198,.15);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  text-shadow:0 1px 3px rgba(29,20,17,.6);
  transition:background-color .2s ease,border-color .2s ease;
}
.hero .button.cream:hover{background:rgba(91,35,39,.65);border-color:#f0d6a5;filter:none}
@media(prefers-reduced-motion:reduce){.hero .button.cream{transition:none}}

/* Give the concise date/time card less width and the address room to breathe. */
.worship-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:24px}
.worship-grid>.worship-card{padding:28px 32px}
.worship-grid .usual-time{margin-top:14px}
.worship-grid .usual-time strong{font-family:var(--font-heading);font-size:30px;font-weight:400;line-height:1.2}
.worship-grid .location h3{font-size:25px;max-width:540px;margin:14px 0 10px}
.worship-grid .next-mass h3{font-size:30px;margin:14px 0 0}
.worship-grid .location p:not(.eyebrow){margin-bottom:12px}
@media(max-width:600px){.worship-grid{grid-template-columns:1fr;gap:16px}.worship-grid>.worship-card{padding:24px}.worship-grid .next-mass h3{font-size:28px}}

.worship-grid>.worship-card{display:flex;align-items:flex-start;gap:20px}
.worship-icon{flex:0 0 48px;color:#ac8244;margin-top:2px}
.worship-card-content{min-width:0;flex:1}
@media(max-width:1100px){.worship-grid>.worship-card{gap:14px}.worship-icon{flex-basis:36px;width:36px;height:45px}}
@media(max-width:380px){.worship-grid>.worship-card{padding:20px;gap:12px}.worship-icon{flex-basis:28px;width:28px;height:35px}}

.mission-schedule-button{background:var(--burgundy);color:#fff7e8;border-color:var(--burgundy);min-height:48px;transition:background-color .2s ease,box-shadow .2s ease,transform .2s ease}
.mission-schedule-button:hover,.mission-schedule-button:focus-visible{background:var(--burgundy-dark);box-shadow:0 5px 14px #48252b26;transform:translateY(-2px);filter:none}
@media(prefers-reduced-motion:reduce){.mission-schedule-button{transition:none}.mission-schedule-button:hover,.mission-schedule-button:focus-visible{transform:none}}

/* Shared row tracks keep both languages aligned even when a description wraps. */
.readings-columns{column-gap:24px;row-gap:0}
.readings-columns>section{border-color:#dfd2bf;border-top:3px solid var(--gold);background:linear-gradient(145deg,#fffefa,#faf6ee);box-shadow:0 5px 18px #48252b05}
.readings-columns h3{color:var(--burgundy);line-height:1.6;margin:0;padding-bottom:18px}
.reading-list{margin:0}
.reading-list li{padding:20px 0;border-color:#e6dccc}
.reading-list strong{display:block;line-height:1.8}
.reading-list p{line-height:1.9;margin-top:8px}
.readings-resources>section{display:flex;flex-direction:column;align-items:flex-start}
.readings-resources>section>p:not(.eyebrow){flex:1}
.readings-resources .registration-button{margin-top:22px}
@media(min-width:601px){
  .readings-columns{grid-template-rows:repeat(4,auto)}
  .readings-columns>section{display:grid;grid-template-rows:subgrid;grid-row:1 / span 4;row-gap:0}
  .reading-list{display:grid;grid-template-rows:subgrid;grid-row:1 / span 4;row-gap:0}
}

.pdf-reader-open{overflow:hidden}
#pdf-reader{position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#e9e4dc;color:var(--ink)}
#pdf-reader[open]{display:flex;flex-direction:column}
#pdf-reader::backdrop{background:#282321}
.pdf-reader-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px;padding-top:max(12px,env(safe-area-inset-top));background:var(--paper);border-bottom:1px solid var(--line)}
.pdf-reader-toolbar button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--burgundy);padding:8px 12px;font-size:14px}
.pdf-reader-toolbar button:disabled{opacity:.4;cursor:default}
.pdf-reader-control-group{display:flex;align-items:center;gap:8px}
.pdf-page-label{font-size:14px;min-width:54px;text-align:center}
.pdf-reader-pages{flex:1;min-height:0;overflow:auto;padding:16px;padding-bottom:max(16px,env(safe-area-inset-bottom));overscroll-behavior:contain}
.pdf-reader-pages canvas{display:block;margin:auto;background:white;box-shadow:0 3px 16px #0002}
.pdf-reader-status{padding:8px 16px;font-size:14px}
.pdf-reader-status:empty{display:none}
.reader-hint{color:var(--muted);font-size:15px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.registration-page{max-width:900px}
.registration-notice{padding:16px 20px;background:var(--cream);border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:16px;margin-bottom:28px}
#eff-registration fieldset{margin:0 0 28px;padding:24px;border:1px solid #dfd2bf;border-radius:12px;background:#fffdf9;min-width:0}
#eff-registration legend{font-family:var(--font-heading);font-size:26px;color:var(--burgundy);padding:0 10px}
.registration-fields{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.registration-field{min-width:0}.registration-field.field-wide{grid-column:1/-1}
.registration-field label{display:block;font-size:15px;font-weight:700;margin-bottom:8px}
.registration-field label span{font-size:12px;font-weight:400;color:var(--muted)}
.registration-field input,.registration-field select{display:block;width:100%;min-width:0;min-height:48px;padding:10px 12px;border:1px solid #cebfad;border-radius:6px;background:white;color:var(--ink);font:inherit;font-size:16px}
.registration-field input:focus-visible,.registration-field select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
#eff-registration button:disabled{opacity:.55;cursor:not-allowed;filter:none}
@media(max-width:600px){.registration-fields{grid-template-columns:1fr;gap:18px}#eff-registration fieldset{padding:20px 16px}}

/* Match the native dropdown to the registration form's warm palette. */
.registration-field select{
  appearance:none;
  -webkit-appearance:none;
  background-color:#fffdf7;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23722f37' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:44px;
  border-color:#cebfad;
  color:var(--burgundy-dark);
  cursor:pointer;
  transition:border-color .18s ease,background-color .18s ease;
}
.registration-field select:hover{border-color:var(--gold);background-color:#faf4e9}
.registration-field select:focus{border-color:var(--gold)}
.registration-field select option{background:var(--paper);color:var(--ink)}
@media(prefers-reduced-motion:reduce){.registration-field select{transition:none}}
@media(forced-colors:active){.registration-field select{appearance:auto;background-image:none}}

/* Normalize the native date control's extra internal spacing. */
.registration-field input,.registration-field select{height:48px;box-sizing:border-box}
.registration-field input[type=date]{appearance:none;-webkit-appearance:none;max-width:100%;line-height:normal}
.registration-field input[type=date]::-webkit-datetime-edit{padding:0}
.registration-field input[type=date]::-webkit-date-and-time-value{min-height:0;text-align:left}

.contact-page{max-width:760px}
.contact-page .announcements-heading{margin:24px 0}
#contact-form{padding:24px;border:1px solid #dfd2bf;border-radius:12px;background:#fffdf9}
#contact-form .registration-fields{gap:16px 20px}
.contact-message-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
#contact-count{font-size:12px;color:var(--muted);white-space:nowrap}
#contact-message{display:block;width:100%;min-height:120px;resize:vertical;border:1px solid #cebfad;border-radius:6px;padding:10px 12px;background:white;color:var(--ink);font:inherit;font-size:16px}
#contact-message:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
#contact-form>.button{margin-top:20px}
#contact-form button:disabled{opacity:.55;cursor:not-allowed;filter:none}
.contact-page .registration-notice a{overflow-wrap:anywhere}
@media(max-width:600px){#contact-form{padding:20px 16px}}

.eff-staff-photo{margin:28px 0}
.eff-staff-photo a{display:block;border-radius:14px}
.eff-staff-photo img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:14px}
.eff-staff-photo figcaption{font-size:13px;color:var(--muted);margin-top:12px}

.mass-regular-schedule{margin-top:20px;padding-top:14px;border-top:1px solid #deceb6;font-size:14px;line-height:1.7;color:#776758}

.worship-icon.marthoma-icon,.worship-icon.church-outline-icon{height:auto;aspect-ratio:300/410}

/* Persistent card and arrow cues also work without hover on touchscreens. */
.community-link{display:block;padding:24px;border:1px solid #d9c4a3;border-top:2px solid var(--gold);border-radius:12px;background:#fbf8f1;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.community-link h3{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;color:var(--burgundy-dark)}
.community-link h3 .community-arrow{float:none;flex-shrink:0;color:var(--burgundy);font-size:23px;transition:transform .2s ease}
.community-link p{max-width:none;margin-bottom:0}
.community-link:hover,.community-link:focus-visible{background:#fffdf8;border-color:var(--gold);box-shadow:0 6px 18px #48252b0c}
.community-link:hover .community-arrow,.community-link:focus-visible .community-arrow{transform:translateX(4px)}
.community-link:active{background:#eee1cc}
@media(prefers-reduced-motion:reduce){.community-link,.community-link h3 .community-arrow{transition:none}.community-link:hover .community-arrow,.community-link:focus-visible .community-arrow{transform:none}}

.footer-email-icon{display:inline-block;vertical-align:-3px;margin-right:5px}

/* More readable navigation labels on desktop and mobile. */
.site-header nav{font-size:14px}
.site-header nav .submenu a{font-size:15px}
@media(max-width:1000px){.site-header nav a{font-size:16px}}

@media(max-width:600px){
  .readings-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
  .readings-controls label{grid-column:1/-1}
  .readings-controls input{width:100%;min-width:0}
  .readings-controls .button{padding:11px 14px;white-space:nowrap;min-height:46px}
}

@media(max-width:600px){
  .readings-controls{grid-template-columns:minmax(0,1fr) minmax(0,auto)}
  .readings-controls input[type=date]{
    appearance:none;
    -webkit-appearance:none;
    box-sizing:border-box;
    width:100%;
    min-width:0;
    max-width:100%;
    height:46px;
    padding:8px;
    overflow:hidden;
  }
  .readings-controls input[type=date]::-webkit-datetime-edit{padding:0;min-width:0}
  .readings-controls input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left}
}

.reading-list li:first-child{border-top:0}

.readings-share{margin-top:24px}
@media(max-width:600px){.readings-columns{row-gap:20px}}

.external-link-icon{display:inline-block;flex-shrink:0;vertical-align:-2px;color:inherit}

.formation-program-resources{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.formation-program-resources>section{display:flex;flex-direction:column;align-items:flex-start}
.formation-program-resources>section>p:not(.eyebrow){flex:1}
@media(max-width:700px){.formation-program-resources{grid-template-columns:1fr}}

#feedback-turnstile{margin-top:20px}
#feedback-verification-status{font-size:13px;color:var(--muted);margin-top:8px}
#feedback-verification-status:empty{display:none}

/* Compact schedule navigation and a responsive month overview. */
.schedule-page .month-navigation{justify-content:center;flex-wrap:nowrap;gap:12px;margin-top:24px}
.schedule-page .month-navigation h2{order:0;width:auto;min-width:180px;font-size:28px}
.schedule-page .month-navigation .button{padding:0;width:44px;min-height:44px;font-size:27px;line-height:1}
.schedule-view-switch{display:flex;justify-content:center;gap:4px;margin:14px 0 20px}
.schedule-view-switch button{border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--burgundy);padding:8px 18px;font-size:14px;min-height:44px}
.schedule-view-switch button[aria-pressed=true]{background:var(--burgundy);color:white;border-color:var(--burgundy)}
.calendar-weekdays,.calendar-month-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekdays{text-align:center;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:8px}
.calendar-day{min-width:0;min-height:88px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fffdf8;color:var(--ink);text-align:left}
.calendar-day-number{font-size:15px;font-weight:700}
.calendar-day[aria-current=date] .calendar-day-number{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:4px}
.calendar-day.is-past{color:#93877b;background:#f8f6f2}
.calendar-day[aria-pressed=true]{border-color:var(--burgundy);box-shadow:inset 0 0 0 1px var(--burgundy);background:var(--cream)}
.calendar-day:hover{border-color:var(--gold)}
.calendar-markers{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.calendar-marker{font-size:10px;padding:1px 5px;border-radius:4px;background:#eee1cb;color:#6c4c22}
.marker-mass{background:#ecd9dc;color:#722f37}.marker-ccd{background:#e1e8da;color:#465d38}.marker-prayer{background:#e0e5ef;color:#445775}
.calendar-day.is-past .calendar-marker{background:#e8e4de;color:#82786e}
.calendar-day-details{margin-top:24px}.calendar-day-details h2{font-size:25px}
.schedule-page .schedule-group{margin-top:24px}
.schedule-page .schedule-group h2{font-size:28px}
.schedule-page .schedule-list{margin-top:12px}
.schedule-page .schedule-event{padding:12px 0;gap:16px;grid-template-columns:235px 1fr}
.schedule-page .schedule-event h3{font-size:21px;margin-bottom:4px}
.schedule-page .schedule-event p,.schedule-page .schedule-description{font-size:14px}
.schedule-page .schedule-date{font-size:15px}
.schedule-page .calendar-detail-event{grid-template-columns:1fr}
.contact-success{padding:28px;border-top:3px solid var(--gold);color:var(--burgundy-dark);font-size:18px}
@media(max-width:600px){
  .calendar-day{min-height:64px;padding:6px 4px;text-align:center}
  .calendar-weekdays,.calendar-month-days{gap:3px}
  .calendar-markers{justify-content:center;gap:3px}
  .calendar-marker{font-size:0;padding:0;width:6px;height:6px;background:#ae8242}
  .marker-mass{background:#722f37}.marker-ccd{background:#587445}.marker-prayer{background:#536c96}
  .schedule-page .schedule-event{grid-template-columns:1fr;gap:4px;padding:10px 0}
  .schedule-page .month-navigation h2{min-width:160px;font-size:25px}
}


/* Automatic Christmas season: a shared palette across every public page. */
.christmas-decoration{display:none}
html[data-season="christmas"]{
  --burgundy:#173f35;--burgundy-dark:#102d27;--gold:#98702d;
  --cream:#f0f3eb;--paper:#fff8ea;--white:#fffdf7;
  --ink:#243b32;--muted:#58665a;--line:#d4dece;
}
html[data-season="christmas"] .community-section{background:#e9efe5}
html[data-season="christmas"] :is(.worship-card,.worship-grid>article,.readings-columns>section,.community-link,#contact-form,#eff-registration fieldset){background:linear-gradient(135deg,#fffdf7,#edf2e7);border-color:#c6d4bf}
html[data-season="christmas"] :is(.worship-grid .eyebrow,.worship-grid .usual-time strong,.worship-grid .text-link,.worship-grid .fine-print a){color:#8f3343}
html[data-season="christmas"] :is(.worship-grid .next-mass h3,.worship-grid .location h3){color:#173f35}
html[data-season="christmas"] :is(.worship-grid .fine-print,.worship-grid .location p:not(.eyebrow),.mass-regular-schedule){color:#58665a;border-color:#c6d4bf}
html[data-season="christmas"] :is(.registration-field input,.registration-field select,#contact-message,.formation-calendar){background:#fffdf7;border-color:#bdcbb7}
html[data-season="christmas"] .community-link:hover{background:#f4f7f2}
html[data-season="christmas"] .community-link:active{background:#e1eadc}
html[data-season="christmas"] .hero .button.cream{background:#173f35cc;color:#fff8ea;border-color:#d6b675}
html[data-season="christmas"] .hero .button.cream:hover{background:#102d27ed;border-color:#fff8ea}
html[data-season="christmas"] .site-footer{color:#fff8ea}
html[data-season="christmas"] :is(.site-footer p,.site-footer a,.footer-bottom,.footer-contact){color:#e0e8d9}
html[data-season="christmas"] .footer-bottom{border-color:#4d6957}
html[data-season="christmas"] .footer-scene{--sky-top:#bccfc8;--sky-bottom:#fff8ea;--hill-far:#d5e1d6;--hill-near:#f4f7f2;--church:#34564b;--window:#d6b675}
html[data-season="christmas"] .footer-scene[data-period="morning"]{--sky-top:#d2dcd2;--sky-bottom:#f6e4bc;--hill-far:#cad8ce;--hill-near:#edf3e9;--church:#426054;--window:#efd298}
html[data-season="christmas"] .footer-scene[data-period="evening"]{--sky-top:#536e68;--sky-bottom:#d6b675;--hill-far:#a3b9b0;--hill-near:#d4e1d9;--church:#22473c;--window:#ffe0a0}
html[data-season="christmas"] .footer-scene[data-period="night"]{--sky-top:#102d27;--sky-bottom:#34564b;--hill-far:#648177;--hill-near:#9fb8ad;--church:#173f35;--window:#ffe0a0}
html[data-season="christmas"] .scene-trees{fill:#173f35}
html[data-season="christmas"] .scene-foreground{fill:var(--burgundy-dark)}
html[data-season="christmas"] .christmas-decoration{display:block}
html[data-season="christmas"] .tree-lights{animation:christmas-glow 4s ease-in-out infinite alternate}
html[data-season="christmas"] .snow-flakes circle{animation:christmas-snow 10s linear infinite}
@keyframes christmas-snow{from{transform:translate(0,-260px)}to{transform:translate(32px,300px)}}
@keyframes christmas-glow{from{opacity:.65}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html[data-season="christmas"] .footer-scene *{animation:none!important}}


/* Scripture cards: Malayalam first, with a stacked layout on narrow screens. */
.scripture-page .readings-heading{display:block;text-align:center;margin:32px auto;color:var(--muted);font-size:18px;line-height:1.7}
.scripture-page .readings-columns{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;gap:28px;align-items:stretch}
.scripture-page .readings-columns>.reading-card{display:block;grid-row:auto;min-width:0;padding:24px}
html[data-season="christmas"] .scripture-page .readings-columns>.reading-card{background:linear-gradient(135deg,#fffdf7,#edf2e7);border-color:#c6d4bf}
.scripture-page .reading-card-title{position:relative;padding:0 0 12px;margin:0;color:var(--burgundy-dark);font-family:var(--font-heading);font-size:26px;font-weight:400;line-height:1.5;overflow-wrap:anywhere}
.scripture-page .reading-list{display:block;margin:0;padding:0;border:0}
.scripture-page .reading-list li{display:grid;grid-template-columns:1.5em minmax(0,1fr);gap:4px;border:0;border-top:1px solid var(--line);padding:18px 0;font-size:16px;line-height:1.7}
.scripture-page .reading-number,.scripture-page .reading-list strong{color:var(--ink);font-size:inherit;font-weight:600;line-height:inherit}
.scripture-page .reading-list p{margin:4px 0 0;color:var(--muted);font-family:var(--font-body);font-size:16px;font-weight:400;line-height:1.7;overflow-wrap:anywhere}
.scripture-page .reading-details{min-width:0;overflow-wrap:anywhere}
@media(max-width:800px){
  .scripture-page .readings-columns{grid-template-columns:minmax(0,1fr);gap:24px}
  .scripture-page .readings-columns>.reading-card{padding:24px 20px 16px}
  .scripture-page .reading-card-title{font-size:24px;padding-left:0}
  .scripture-page .reading-list{margin-left:0}
  .scripture-page .reading-list li{padding:16px 0;font-size:16px}
  .scripture-page .reading-list p{font-size:16px}
}

/* Share heading and reading row heights across both language cards. */
.scripture-page .reading-card{font-family:var(--font-body)}
@media(min-width:801px){
  .scripture-page .readings-columns{grid-template-rows:auto repeat(4,auto);row-gap:0}
  .scripture-page .readings-columns>.reading-card{display:grid;grid-template-rows:subgrid;grid-row:1 / span 5;row-gap:0}
  .scripture-page .reading-card-title{grid-row:1}
  .scripture-page .reading-list{display:grid;grid-template-rows:subgrid;grid-row:2 / span 4;row-gap:0}
  .scripture-page .reading-list li[data-reading=law]{grid-row:1}
  .scripture-page .reading-list li[data-reading=prophecy]{grid-row:2}
  .scripture-page .reading-list li[data-reading=epistle]{grid-row:3}
  .scripture-page .reading-list li[data-reading=gospel]{grid-row:4}
}

.readings-share-status{color:var(--muted);font-size:14px;margin-top:12px;max-width:680px}
.readings-share-status:empty{display:none}
.readings-share-fallback{display:flex;flex-wrap:wrap;gap:12px}
.readings-share:disabled{opacity:.6;cursor:wait}

/* Shared appearance for top-level navigation links and disclosure buttons. */
.site-header nav .nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-family:var(--font-body);font-size:14px;font-weight:600;line-height:1.65;text-align:left;text-decoration:none;white-space:nowrap;transition:none}
.site-header nav .nav-item:after{content:none}
.site-header nav .nav-item:hover,.site-header nav .nav-item:focus-visible{background:var(--cream);color:var(--burgundy)}
.site-header nav .nav-item[aria-current=page],.site-header nav .nav-group:has(a[aria-current=page]) .nav-item{background:var(--cream);color:var(--burgundy)}
@media(max-width:1000px){.site-header nav .nav-item{width:100%;min-height:48px;padding:10px 12px;font-size:16px;white-space:normal}}
#navigation .nav-item{background-image:none}
#navigation .nav-item:after{content:none}

/* Keep the Mass cards to two typefaces and a simple, consistent hierarchy. */
.worship-grid .worship-card-content{font-family:var(--font-body);font-size:16px;line-height:1.6}
.worship-grid .eyebrow{font-family:var(--font-body);font-size:14px;font-weight:600;letter-spacing:.05em}
.worship-grid .next-mass h3,.worship-grid .location h3{font-family:var(--font-heading);font-size:28px;font-weight:400;line-height:1.3;margin:12px 0 10px}
.worship-grid .usual-time{margin-top:0}
.worship-grid .usual-time strong{font-family:var(--font-body);font-size:16px;font-weight:600;line-height:1.6}
.worship-grid .location p:not(.eyebrow),.worship-grid .next-mass #next-mass p,.worship-grid .mass-regular-schedule{font-family:var(--font-body);font-size:16px;font-weight:400;line-height:1.6}
.worship-grid .text-link,.worship-grid .button{font-family:var(--font-body);font-size:16px;font-weight:600;line-height:1.6}
@media(max-width:600px){.worship-grid .next-mass h3,.worship-grid .location h3{font-size:26px}}

/* Three homepage essentials, with the season following the current Sunday. */
.worship-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1.1fr);gap:20px}
.worship-grid>.worship-card{padding:24px;gap:14px}
.worship-grid .worship-icon{flex-basis:32px;width:32px;height:44px}
.worship-grid .liturgical-season h3,.worship-grid .season-malayalam{font-family:var(--font-heading);font-size:28px;font-weight:400;line-height:1.5;margin:12px 0;color:var(--ink);overflow-wrap:anywhere}
.worship-grid .season-week{font-size:16px;line-height:1.6;color:var(--muted);margin-bottom:12px}
.worship-grid .season-week:empty{display:none}
@media(min-width:701px) and (max-width:1050px){.worship-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.worship-grid .liturgical-season{grid-column:1/-1}}
@media(max-width:700px){.worship-grid{grid-template-columns:minmax(0,1fr);gap:16px}.worship-grid .liturgical-season h3,.worship-grid .season-malayalam{font-size:26px}}

/* Bilingual liturgical season label on the homepage hero. */
.hero-season{position:absolute;top:24px;right:24px;max-width:calc(100% - 48px);padding:30px 24px 16px;border:1px solid #b99a62;border-radius:4px 7px 5px 6px;background:radial-gradient(ellipse at 0 100%,#c9a46a26,transparent 65%),radial-gradient(ellipse at 100% 0,#c9a46a20,transparent 60%),repeating-linear-gradient(8deg,#97733e05 0 1px,transparent 1px 4px),#f6edda;color:#58333a;text-align:center;box-shadow:0 5px 16px #38261c24,inset 0 0 18px #b28a4b14;pointer-events:none}
.hero-season::before{content:"";position:absolute;top:16px;left:50%;width:64px;height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,#b08a4b 35%,transparent 43% 57%,#b08a4b 65%,transparent)}
.hero-season::after{content:"";position:absolute;top:13px;left:50%;width:6px;height:6px;background:#b08a4b;transform:translateX(-50%) rotate(45deg)}
.hero-season p{color:#58333a;font-family:var(--font-heading);font-size:18px;font-weight:400;line-height:1.6;overflow-wrap:anywhere}
.hero-season p+p{margin-top:3px;color:#73534f}
@media(max-width:600px){.hero-season{top:16px;right:16px;max-width:calc(100% - 32px);padding:26px 16px 12px}.hero-season p{font-size:14.4px}}

.worship-grid .mass-schedule-link{display:inline-block;margin-top:12px}

/* Keep the three homepage card links aligned along their bottom edge. */
.worship-grid .worship-card-content{display:flex;flex-direction:column;align-self:stretch}
.worship-grid .worship-card-content>.text-link{order:2;margin-top:auto;padding-top:16px;align-self:flex-start}
.worship-grid .worship-card-content>button{order:1;align-self:flex-start;margin-bottom:12px}

.worship-grid .liturgical-season h3{margin-bottom:4px}
.worship-grid .season-malayalam{margin-top:0}

/* Still, diffuse light behind the season icon; colour follows the loaded season. */
#liturgical-season-card{position:relative;isolation:isolate;overflow:hidden;--season-light:185,145,69}
#liturgical-season-card[data-glow=violet]{--season-light:143,113,163}
#liturgical-season-card[data-glow=rose]{--season-light:179,109,113}
#liturgical-season-card[data-glow=sage]{--season-light:112,145,116}
#liturgical-season-card::before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:0;opacity:0;background:radial-gradient(ellipse 190px 160px at 40px 44px,rgba(var(--season-light),.19),rgba(var(--season-light),.07) 48%,transparent 100%);transition:opacity 1.2s ease}
#liturgical-season-card[data-glow]::before{opacity:1}
@media(prefers-reduced-motion:reduce){#liturgical-season-card::before{transition:none}}

/* Equal-size leadership portraits in left-aligned rows by role. */
.administration-page{max-width:var(--width)}
.administration-page .formation-story{max-width:none}
.administration-page .formation-story>section{max-width:780px}
.administration-page .mission-leadership{display:flex;flex-direction:column;gap:0}
.administration-page .mission-leadership section{text-align:left}
.administration-page .mission-leadership ul{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:24px}
.administration-page .mission-leadership li{flex:0 0 200px;width:200px;max-width:100%}
.administration-page .mission-leadership img{width:100%;aspect-ratio:3/4;object-fit:cover}
.administration-page .formation-story>.administration-contact{max-width:none;border-top:1px solid var(--line);padding-top:24px}
