:root{--navy:#172f40;--ink:#243743;--muted:#5d7079;--paper:#fffefa;--line:#d8e1e0;--gold:#ab8954;--soft:#eef2ef}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;font:16px/1.65 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:#f6f6f1}
a{color:#2c576e;text-underline-offset:3px}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
button{font:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:default}.shell{max-width:850px;padding:0 clamp(16px,4vw,28px);margin:0 auto}
.skip{position:absolute;top:-90px;left:16px;background:white;padding:10px;z-index:99}.skip:focus{top:8px}
.header{background:var(--navy);color:white}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:72px;gap:14px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:white}.brand .cross{font-size:1.65rem}.brand strong{display:block;font:500 1.24rem Georgia,serif}.brand small{display:block;color:#cad9de;font-size:.7rem;letter-spacing:.07em}
.back{border:1px solid #627e88;color:white;border-radius:20px;padding:7px 13px;font-size:.82rem;text-decoration:none;white-space:nowrap}
.hero{padding:37px 0 21px}.eyebrow{text-transform:uppercase;color:var(--gold);font-size:.72rem;font-weight:700;letter-spacing:.13em}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:500;color:var(--navy);line-height:1.25}
h1{font-size:clamp(2rem,7vw,3.2rem);letter-spacing:-.025em;margin:9px 0 13px}
.hero p:last-child{max-width:620px;font-size:1.03rem;color:var(--muted);margin:0}
.quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0 32px}
.quick a{display:flex;align-items:center;min-height:65px;background:var(--paper);padding:15px 18px;border:1px solid var(--line);border-radius:13px;text-decoration:none;font-weight:700;color:var(--navy)}
.quick a:hover,.faith-links a:hover{border-color:var(--gold)}
section.schedule,.places,.faith{margin-bottom:30px}.section-heading h2{font-size:clamp(1.75rem,5vw,2.25rem);margin:5px 0}
.section-heading p:last-child{margin:5px 0 20px;color:var(--muted)}
.toolbar{background:var(--paper);border:1px solid var(--line);border-radius:14px 14px 0 0;padding:14px 16px}
.date-line{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.date-line strong{font-size:.9rem;text-align:center;flex:1}.date-line button,.filters button{min-height:44px;background:white;border:1px solid var(--line);color:var(--ink);padding:9px 12px;border-radius:10px;font-size:.84rem}
.filters{display:flex;gap:8px;margin-top:13px}.filters button{flex:1}
.filters .selected{background:var(--navy);color:white;border-color:var(--navy)}
.status{margin:0;background:var(--soft);padding:10px 15px;color:var(--muted);font-size:.84rem;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.events{background:var(--paper);border:1px solid var(--line);border-radius:0 0 14px 14px;padding:8px 18px 18px;min-height:95px}
.day h3{font-size:1.16rem;margin:15px 0 5px}.day:first-child h3{margin-top:9px}
.event{display:flex;align-items:baseline;gap:15px;border-bottom:1px solid var(--line);padding:10px 0}.event:last-child{border-bottom:0}
.event-time{min-width:52px;font-size:1.08rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--navy)}
.event-info strong,.event-info span{display:block}.event-info strong{font-size:1rem}.event-info span{font-size:.86rem;color:var(--muted)}
.empty{color:var(--muted);margin:13px 0}
.fine{font-size:.83rem;color:var(--muted);line-height:1.6}
.places h2,.faith h2{font-size:1.65rem;margin:10px 0}.places-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:15px}
.place{background:var(--paper);padding:16px;border:1px solid var(--line);border-radius:12px;min-height:84px}
.place strong,.place span{display:block}.place strong{font-size:.95rem}.place span{font-size:.82rem;color:var(--muted);margin-top:4px}
.faith{background:var(--soft);padding:20px 24px;border-radius:15px}.faith p:not(.eyebrow){color:var(--muted);margin:8px 0 17px}
.faith-links{display:flex;gap:8px;flex-wrap:wrap}.faith-links a{background:white;border:1px solid var(--line);padding:9px 12px;border-radius:10px;text-decoration:none;font-size:.88rem}
footer{margin-top:25px;padding:22px 0;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted)}
@media(max-width:610px){.hero{padding:23px 0 12px}.quick{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:19px}.quick a{justify-content:center;min-height:59px;padding:10px;text-align:center;font-size:.86rem;line-height:1.35}.date-line{display:grid;grid-template-columns:1fr 1fr;gap:8px}.date-line strong{grid-column:1/-1;grid-row:1}.date-line button{grid-row:2}.places-list{grid-template-columns:1fr}.place{min-height:60px;padding:12px 15px}.faith{padding:15px}}
@media(max-width:355px){.back{font-size:.72rem;padding:7px 9px}.date-line button{font-size:.78rem;padding:8px 6px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}