/* Shared musical scale: 21, 24, 28, 32, 36, 42, 48, 55, 63, 73, 84, 96.
   Component roles, not individual pages, determine the size. */
:root{--type-display:6rem;--type-section:3.9375rem;--type-heading:2rem;--type-subheading:1.5rem;--type-body:1.3125rem;--type-label:1rem;--type-detail:1rem;--type-time:3.4375rem;--type-family:"SF Pro Display","SF Pro Text",-apple-system,BlinkMacSystemFont,sans-serif}
body{font-family:var(--type-family)!important;font-size:var(--type-body)!important;line-height:1.5!important}
button,input,select,textarea{font-family:var(--type-family);font-size:var(--type-label)}
body h1{font-size:var(--type-display)!important;line-height:1!important;letter-spacing:-.055em!important}
body h2{font-size:var(--type-section)!important;line-height:1.08!important;letter-spacing:-.045em!important}
body h3{font-size:var(--type-heading)!important;line-height:1.15!important;letter-spacing:-.03em!important}
body h4{font-size:var(--type-subheading)!important;line-height:1.3!important}
body p,body address,.schedule,.dialog-detail,.pending,.empty{font-size:var(--type-body)!important;line-height:1.5!important;letter-spacing:normal}
body .eyebrow,body .micro-label,body .visit-label,body .meta,body .hero-side strong,body .detail small,body .path-top span,body .house-meta,body .dialog-label,body .ticker-item,body .scroll-cue,body .visit-services h4{font-size:var(--type-label)!important;line-height:1.4!important;letter-spacing:.075em}
body .hero-side{font-size:var(--type-body)!important;max-width:25rem}
body .section-head p{max-width:28rem}
body .intro-bottom p{max-width:65ch}
body .hero-copy h2,body .live h2,body .visit-campus h3,body .visit-online h3,body .location h2,body .form-head h2,body .connect-popup h2,body .player-head h2,body .dialog-title{font-size:var(--type-heading)!important;line-height:1.15!important;letter-spacing:-.03em!important}
body .house h3,body .sermon h3{font-size:var(--type-heading)!important;line-height:1.15!important}
body .directory-head h2{font-size:var(--type-subheading)!important;line-height:1.3!important}
body .footer-col h3{font-size:var(--type-label)!important;line-height:1.4!important;letter-spacing:.075em!important}
body .footer-col a,body .footer-links a,body .footer-bottom,body .copyright,body .closing,body .closing span,body .submit-note,body .field small,body .secondary,body .fallback,body .duration{font-size:var(--type-detail)!important;line-height:1.5!important}
body .footer-brand p,body .connect-popup p,body .notice,body .helper,body .location p{font-size:var(--type-body)!important;line-height:1.5!important}
body .visit-button,body .button,body .house-button,body .arrow-link,body .intro-bottom .arrow-link,body .connect-popup-link,body .watch-label,body .submit,body .filter,body .filters button,body .field,body .search input,body .field input,body .field select{font-size:var(--type-label)!important;line-height:1.4!important}
body .site-links a,body .site-visit,body .site-menu{font-size:var(--type-label)!important;line-height:1.4!important}
body .site-links{gap:1.25rem}
body .service-specs dt{font-size:var(--type-label)!important;line-height:1.4!important;color:#626c7b}
body .service-specs dd{font-size:var(--type-body)!important;line-height:1.4!important}
body .visit-times strong{font-size:var(--type-time)!important;line-height:1.05!important}
body .visit-times small{font-size:var(--type-subheading)!important;line-height:1.2!important}
body .visit-times .service-language{font-size:var(--type-subheading)!important;line-height:1.3!important}
body .form-section legend{font-size:var(--type-subheading)!important;line-height:1.3!important}
body .form-section legend span{font-size:var(--type-label)!important}
body .location strong,body .location li{font-size:var(--type-label)!important;line-height:1.5!important}
body .hero-title{align-items:flex-end}
body .hero-title h1{flex:1;min-width:0}
body .hero-title .hero-side{flex:0 1 25rem}
body .connect-popup{width:min(29rem,calc(100vw - 3rem))}
body .connect-popup p{max-width:none}
body .path h3,body .detail h3{max-width:22rem}
body .path p{max-width:30rem}
@media(min-width:1001px){body .visit-campus-content h3{font-size:3rem!important}body .visit-campus-content h4{font-size:2rem!important}body .visit-campus-content address{font-size:1.5rem!important}body .visit-campus-content .visit-label,body .visit-campus-content .visit-button{font-size:1.3125rem!important}body .visit-campus-content h3,body .visit-campus-content h4,body .visit-campus-content address,body .visit-campus-content .visit-label{text-shadow:0 1px 8px rgba(0,0,0,.25)}}
@media(max-width:1440px){.site-nav{grid-template-columns:1fr auto;gap:1rem;min-height:4.6rem}.site-menu{display:block}.site-visit{display:none}.site-links{display:none;grid-column:1/-1;align-items:stretch;flex-direction:column;gap:0;padding:0 0 1rem}.site-links.is-open{display:flex}.site-links a{padding:.85rem 0}}
@media(max-width:900px){:root{--type-display:4.5625rem;--type-section:3rem;--type-time:3rem}body .hero-title{align-items:flex-start}body .hero-title .hero-side{flex:none}body .section-head{align-items:flex-start;flex-direction:column}body .statement-top{gap:2rem}}
@media(max-width:600px){:root{--type-display:3.4375rem;--type-section:2.25rem;--type-heading:1.75rem;--type-subheading:1.5rem;--type-body:1.3125rem;--type-time:3rem}body .hero-title h1{font-size:var(--type-display)!important}body .hero-title .hero-side{max-width:100%}body .hero-side strong{margin-bottom:.5rem}body .hero-frame{min-height:42rem}body .connect-popup{width:calc(100vw - 1.3rem)}body .service-specs{column-gap:1.25rem}body .visit-times li{padding:1.25rem}body .house-meta{flex-wrap:wrap}body .closing{flex-wrap:wrap}body .cta .arrow-link{white-space:normal}body .form-section .fields{gap:1.25rem}}

/* Compact newsletter invitation, independent of page typography. */
body .connect-popup{width:min(21rem,calc(100vw - 2rem));right:1rem;bottom:1rem;padding:1.1rem;border-radius:.75rem}
body .connect-popup h2{font-size:1.375rem!important;line-height:1.2!important;margin:0 2rem .5rem 0;max-width:none;letter-spacing:-.035em!important}
body .connect-popup p{font-size:.9375rem!important;line-height:1.4!important;margin:0 0 .85rem}
body .newsletter-form input{min-height:2.75rem;padding:.65rem .75rem;font-size:1rem}
body .newsletter-form button{width:2.75rem;height:2.75rem;flex-basis:2.75rem}
body .newsletter-form button svg{width:1.25rem;height:1.25rem}
@media(max-width:600px){body .connect-popup{width:min(20rem,calc(100vw - 1.5rem));right:.75rem;bottom:.75rem}}

/* Rounded lowercase Social Kids mark in the Sunday service cards. */
body .service-specs .service-kids-mark{display:inline-flex;align-items:center;justify-content:center;font-family:ui-rounded,"SF Pro Rounded","Arial Rounded MT Bold",sans-serif;font-size:2rem;font-weight:800;line-height:1;letter-spacing:-.06em;color:var(--accent)}
@media(max-width:600px){body .service-specs .service-kids-mark{font-size:1.625rem}}

/* Calm, spacious shared navigation. */
body .site-header{width:min(1440px,calc(100% - 4rem))}
body .site-nav{grid-template-columns:auto 1fr auto;gap:2.5rem;min-height:6rem;border-bottom:0}
body .site-logo{width:9rem;height:2.5rem}
body .site-links{gap:1.65rem}
body .site-links a{font-size:.9375rem!important;font-weight:500;letter-spacing:0;text-transform:none;line-height:1.4!important;color:#464b53;transition:color .15s ease}
body .site-links a:hover,body .site-links a[aria-current]{color:#2457ff}
body .site-visit{gap:.5rem;padding:.8rem 1.25rem;border:1px solid #dce2ee;border-radius:2rem;background:#f3f6ff;color:#2457ff;font-size:.9375rem!important;font-weight:500;line-height:1.4!important}
body .site-visit:hover{background:#e8eeff;border-color:#cbd6f5}
body .site-visit span{display:none}
@media(max-width:1440px){body .site-nav{grid-template-columns:1fr auto;gap:0 1rem;min-height:5rem}body .site-links{gap:0;align-items:stretch;padding-bottom:1.25rem}body .site-links a{font-size:1rem!important;padding:.9rem .25rem}body .site-menu{font-weight:500;font-size:.9375rem!important;letter-spacing:0}body .site-visit{display:none}}
@media(max-width:600px){body .site-header{width:calc(100% - 2rem)}body .site-nav{min-height:4.75rem}body .site-logo{width:8.5rem;height:2.35rem}}
@media(prefers-reduced-motion:reduce){body .site-links a{transition:none}}

/* Mobile menu floats below the header instead of shifting the page. */
body .mobile-visit{display:none}
.site-menu-backdrop{position:fixed;inset:0;z-index:20;background:transparent;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility .24s ease}
@media(max-width:1440px){
body .site-header{z-index:30}
body .site-nav{position:relative}
body .site-menu{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-width:5.25rem;min-height:2.75rem;padding:.6rem 1rem;border:1px solid #e3e7ef;border-radius:2rem;background:#f7f8fb;color:#464b53}
body .site-menu::after{content:'+';font-size:1.25rem;font-weight:400;line-height:1;transition:transform .22s ease}
body .site-menu[aria-expanded="true"]::after{transform:rotate(45deg)}
body .site-links,body .site-links.is-open{display:flex;position:absolute;left:0;right:0;top:calc(100% - .15rem);grid-column:auto;flex-direction:column;align-items:stretch;gap:.1rem;max-height:calc(100svh - 7rem);overflow:auto;overscroll-behavior:contain;padding:1rem;border:1px solid #e8ecf2;border-radius:1.1rem;background:#fff;box-shadow:0 1.25rem 3rem rgba(17,28,48,.12);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-.5rem);transition:opacity .24s ease,transform .24s ease,visibility .24s ease}
body .site-links.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
body .site-links a{padding:.7rem .85rem!important;font-size:1rem!important;line-height:1.4!important;border-radius:.6rem;font-weight:450;color:#434a55}
body .site-links a:hover,body .site-links a[aria-current]{background:#f2f5ff;color:#2457ff}
body .site-links .mobile-visit{display:block;text-align:center;margin-top:.65rem;padding:.85rem 1rem!important;background:#2457ff;color:white;border-radius:2rem;font-weight:500}
body .site-links .mobile-visit:hover{background:#1740d2;color:white}
.site-menu-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto}
}
@media(prefers-reduced-motion:reduce){body .site-links,body .site-menu::after,.site-menu-backdrop{transition:none}}
