/* Golden-ratio hierarchy: 16.18 → 26.18 → 42.36 → 68.54 px.
   Supporting labels use 14px rather than a mathematically small 10px step. */
:root{--phi:1.618034;--type-body:1.01125rem;--type-h3:1.63625rem;--type-h2:2.6475rem;--type-display:4.28375rem;--type-label:.875rem}
.place-photo{margin:-24px -24px 22px}.photo-open{position:relative;display:block;width:100%;border:0;padding:0;background:var(--navy);color:#fff;text-align:left}.photo-open img{width:100%;height:auto;aspect-ratio:1.618034;object-fit:cover}.photo-open>span{position:absolute;right:12px;bottom:12px;background:#061941ed;border:1px solid #ffffff70;border-radius:5px;padding:7px 11px;font-size:13px;font-weight:700;line-height:1.5}.place-photo figcaption,.venue-photo figcaption{padding:10px 18px;background:#f1f6fc;font-size:13px;line-height:1.65;color:var(--muted)}.place-photo figcaption a,.venue-photo figcaption a{text-decoration:underline;text-underline-offset:3px}.venue-photo{margin:0 0 25px;border-radius:14px;overflow:hidden;border:1px solid var(--line)}.venue-photo .photo-open img{aspect-ratio:2.3;object-position:50% 65%}.venue-photo figcaption{font-size:14px;padding:14px 20px}.photo-modal{max-width:min(1000px,94vw);max-height:94dvh;border:0;border-radius:14px;padding:24px;background:#fff;color:var(--ink);box-shadow:0 20px 90px #0007;overflow:auto}.photo-modal::backdrop{background:#020b21e6}.photo-close{display:block;margin:0 0 15px auto;border:1px solid var(--line);background:#fff;border-radius:5px;color:var(--ink);font-size:16px;padding:8px 15px;min-height:44px}.photo-large{max-width:100%;max-height:68dvh;width:auto;height:auto;object-fit:contain;margin:auto;border-radius:5px}.photo-modal p{font-size:16px;margin:15px 0 9px;max-width:800px}.photo-source{font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
body{font-size:var(--type-body);line-height:var(--phi)}
h2:not(.oversized){font-size:clamp(var(--type-h2),4.6vw,var(--type-display));line-height:1.12}
h3,.place h3,.gather-card h3,.transport-card h3{font-size:var(--type-h3);line-height:1.24;letter-spacing:-.6px}
.eyebrow{font-size:14px;letter-spacing:1.8px;line-height:1.6}
.btn{font-size:14px;min-height:54px;gap:18px;padding:14px 20px}
.text-link,.transport-card .text-link{font-size:14px;line-height:1.6}
.brand{font-size:12px}.brand-kicker{display:block;font-size:11px;line-height:1.4;letter-spacing:.5px}
.brand strong{font-size:18px;line-height:1.15}.brand small{font-size:11px;letter-spacing:1px;line-height:1.4}
.nav{font-size:14px;gap:24px}.nav .btn{font-size:13px;min-height:46px;padding:10px 15px}
.hero .eyebrow{font-size:14px}.hero-tagline{font-size:18px;line-height:1.6}.hero-sub{font-size:var(--type-body);line-height:1.75;max-width:530px}
.hero-date{font-size:14px;line-height:1.7;flex-wrap:wrap;gap:10px 15px}.hero-bottom p{font-size:14px;line-height:1.7;letter-spacing:.7px}
.hero-note strong{font-size:14px;line-height:1.5}.hero-note span{font-size:14px;line-height:1.5}.hero-note .date-number{font-size:45px}
.hero-photo-caption{font-size:13px;line-height:1.6;bottom:-29px}.hero-art{margin-bottom:12px}
.countdown b{font-size:var(--type-h3)}.countdown small{font-size:12px;letter-spacing:1px;line-height:1.6}
.about-copy>p:not(.eyebrow),.register-copy>p:not(.eyebrow),.section-head>p,.transport-card p,.faq-copy p:not(.eyebrow),.faq-list details p,.gather-footer p{font-size:var(--type-body);line-height:1.75}
.about-points strong{font-size:var(--type-h3)}.about-points small{font-size:14px}.poster-download{font-size:14px;line-height:1.6}
.photo-badge{font-size:14px}.photo-badge strong{font-size:var(--type-h3)}
.pill{font-size:13px;white-space:normal;line-height:1.6}.gather-card p{font-size:16px;line-height:1.65}.gather-card .micro{font-size:13px;letter-spacing:1px}
.gather-card{padding:42px 20px 30px;min-height:310px}.gathering-top{align-items:start}.gathering-top .eyebrow{flex-shrink:0}
.gallery-grid figcaption{font-size:16px}.gallery-credit{font-size:14px;line-height:1.7}
.registration-help{font-size:14px!important;line-height:1.75}.register-list li{font-size:16px;line-height:1.7}.form-top{font-size:14px;gap:10px;flex-wrap:wrap}.form-top small{font-size:12px}.form-fallback{font-size:14px;line-height:1.75}
.filter{font-size:16px;min-height:46px;padding:10px 19px}.place{padding:24px;overflow:hidden;min-height:280px}.place h3{max-width:none}
.place>p{font-size:16px;line-height:1.7}.place-number{font-size:13px;letter-spacing:1px}.place-type{font-size:12px;letter-spacing:.7px;line-height:1.6}
.place-actions{font-size:14px;line-height:1.65;gap:10px 16px}.place-phone{font-size:16px;line-height:1.7}.notice{font-size:14px;line-height:1.75}.empty-filter{font-size:16px}.empty-filter strong{font-size:var(--type-h3)}
.app-links a{font-size:16px;min-height:44px;padding:10px 15px}.venue-copy p{font-size:16px;line-height:1.75}.venue-copy .notice{font-size:14px}
.faq-list summary{font-size:18px;line-height:1.6;padding-block:23px}.faq-list details p{padding-bottom:25px}.prayer-list li{font-size:16px;line-height:1.7}.prayer cite{font-size:14px;line-height:1.7}.prayer blockquote p{font-size:var(--type-h3);line-height:1.618}
.final .final-message{font-size:18px;line-height:1.6}.final .date-line{font-size:16px;line-height:1.8}.final .final-invite{font-size:16px;line-height:1.8}
.footer-links{font-size:14px;line-height:1.7}.footer-bottom{font-size:13px;line-height:1.7}.back-top{font-size:14px}.site-footer .brand-mark{background:#fff;color:var(--blue);border-color:#fff}.site-footer .brand-mark:after{background:var(--navy);color:var(--aqua)}
@media(max-width:1050px){.menu-toggle{display:inline-block;font-size:14px;min-height:44px}.nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 24px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 15px 20px #0019450d;flex-direction:column;align-items:stretch;gap:0}.nav.is-open{display:flex}.nav>a{padding:13px 8px}.nav .btn{margin-top:10px}.hero-bottom{align-items:start;gap:25px}.hero-bottom>p{max-width:270px}.gathering-grid{grid-template-columns:repeat(2,1fr)}.gather-card{min-height:290px}.places{grid-template-columns:repeat(2,1fr)}.prayer-list{columns:1}}
@media(max-width:760px){.brand strong{font-size:16px}.brand small{font-size:10px}.brand-kicker{font-size:10px}.site-header .wrap{gap:12px}.hero .eyebrow{font-size:12px}.hero-tagline{font-size:16px}.hero-sub{font-size:16px}.hero-date{font-size:14px;gap:8px 12px}.hero-note strong,.hero-note span{font-size:13px}.hero-note .date-number{font-size:35px}.hero-photo-caption{font-size:12px;bottom:-32px}.hero-art{margin-bottom:40px}.hero-bottom{align-items:center}.hero-bottom>p{max-width:none;text-align:center}.hero-bottom p{font-size:13px}.countdown small{font-size:12px}.eyebrow{font-size:13px;letter-spacing:1.3px}.gathering-top{flex-direction:column;gap:0}.gather-card{padding:32px 16px 24px}.gather-card h3{font-size:22px}.gather-card p{font-size:16px}.gather-card .micro{font-size:12px}.gallery-grid figcaption{font-size:14px}.gallery-credit{font-size:13px}.places{grid-template-columns:1fr}.filter{font-size:15px;padding:10px 15px}.form-top{font-size:13px}.form-top small{font-size:12px}.form-fallback{font-size:14px}.faq-list summary{font-size:17px}.final .date-line{max-width:100%;font-size:16px}.footer-links{font-size:14px;gap:18px}.footer-bottom{font-size:13px}.photo-badge{font-size:13px;padding:16px 20px}.photo-badge strong{font-size:24px}}
@media(max-width:420px){.brand-kicker{display:none}.brand strong{font-size:14px}.brand small{font-size:10px}.brand-mark{width:36px;height:36px}.menu-toggle{font-size:13px;padding-inline:10px}.hero .eyebrow{font-size:11px;letter-spacing:1px}.hero-note strong,.hero-note span{font-size:12px}.hero-bottom>p{max-width:260px}.gathering-grid{gap:10px}.gather-card{padding-inline:12px}.gather-card h3{font-size:21px}.gather-card p{font-size:15px}.gather-card .micro{font-size:11px}.about-points{flex-wrap:wrap;gap:18px 30px}.hero-tagline{font-size:16px}.photo-badge strong{font-size:22px}.countdown{gap:12px}.venue-photo .photo-open img{aspect-ratio:1.618034}.photo-modal{padding:16px}.photo-modal p{font-size:14px}.venue-photo figcaption{padding:12px 15px}.photo-open>span{font-size:13px}}
