/* Public-site brand. Loaded after each page's legacy layout styles. */
:root {
  --hope-paper:#f8f7f2; --hope-ink:#222b37; --hope-muted:#59616a;
  --hope-blue:#315caa; --hope-navy:#20384e; --hope-line:#dedfd9;
  --primary-color:#315caa; --primary-blue:#315caa; --primary:#315caa;
  --primary-dark:#20384e; --dark-blue:#20384e; --text-color:#222b37;
  --secondary-color:#efeee6; --page-bg:#f8f7f2;
  --navy:#20384e; --btsb-primary:#315caa; --btsb-secondary:#20384e;
}
html { scroll-padding-top:110px; }
body.hope-public,body.hope-public * { box-sizing:border-box; }
html body.hope-public { display:block; height:auto; padding:0; overflow-x:clip; overflow-y:auto; }
body.hope-public:has(.hub-shell):before { display:none; }
body.hope-public .hub-shell { margin-inline:auto; min-height:0; padding-block:48px; background:transparent; box-shadow:none; border:0; backdrop-filter:none; }
body.hope-public .hub-shell .service-note { background:var(--hope-navy); color:white; }
body.hope-public .hub-shell .service-note h2 { font-size:1.4rem; }
body.hope-public .hub-shell .hub-serve-link { background:var(--hope-blue); color:white; }
body.hope-public .connect-modal { z-index:1100; }
html body.hope-public.modal-open { overflow:hidden; }
body.hope-public .brand-panel,body.hope-public .brand-panel p,body.hope-public .brand-panel .eyebrow { color:var(--hope-ink); }
body.hope-public .story-shell { width:100%; max-width:none; margin-inline:auto; }
body.hope-legacy :is(img,video) { max-width:100%; }
body.hope-legacy :is(.blog-content,.article-content,.intro-aside,.about-image) { min-width:0; }
body.hope-legacy .blog-content { max-width:100%; }
body.hope-legacy .sermon-slide { margin-inline:0; }
body.hope-legacy .sermon-slide img { width:100%; height:auto; }
body.hope-legacy .contact-item { min-width:0; max-width:100%; overflow-wrap:anywhere; }
body.hope-legacy .contact-item>span { min-width:0; }
html body.hope-public { background:var(--hope-paper)!important; color:var(--hope-ink)!important; font-family:'DM Sans',sans-serif!important; }
body.hope-public :is(h1,h2,h3,h4) { font-family:'Source Serif 4',Georgia,serif!important; font-weight:400; letter-spacing:-.035em; overflow-wrap:anywhere; }
body.hope-public :is(p,label,input,select,textarea,button) { font-family:'DM Sans',sans-serif; }
body.hope-public a:focus-visible,body.hope-public button:focus-visible { outline:3px solid #b76a2f!important; outline-offset:5px; }
body.hope-public .hope-content-start { display:block; height:0; scroll-margin-top:110px; }
#hope-site-footer { box-sizing:border-box; width:100%; color:var(--hope-ink); background:var(--hope-paper); font:400 16px/1.7 'DM Sans',sans-serif; text-align:left; letter-spacing:normal; }
#hope-site-footer * { box-sizing:border-box; }
#hope-site-footer a { color:inherit; text-decoration:none; text-shadow:none; }
#hope-site-footer a:hover { color:var(--hope-blue); }
#hope-site-footer .hope-shell { width:min(calc(100% - clamp(2.5rem,8vw,8rem)),1280px); margin-inline:auto; }
#hope-site-footer .hope-brand { display:flex; align-items:center; gap:12px; font:700 1.05rem/1.3 'DM Sans',sans-serif; letter-spacing:.07em; flex-shrink:0; }
#hope-site-footer .hope-brand img { display:block; width:44px; height:44px; border-radius:50%; margin:0; object-fit:contain; }
#hope-site-footer .hope-brand small { display:block; font:700 .55rem/1.5 'DM Sans',sans-serif; letter-spacing:.19em; margin-top:5px; }
#hope-site-footer { position:relative; padding:64px 0 0; margin:0; border-top:1px solid var(--hope-line); }
#hope-site-footer .hope-footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:56px; font-size:.82rem; }
#hope-site-footer h2 { font:700 .75rem/1.5 'DM Sans',sans-serif!important; letter-spacing:0; color:var(--hope-ink); margin:0 0 18px; padding:0; text-transform:none; }
#hope-site-footer p { color:var(--hope-muted); font-size:.82rem; line-height:1.7; margin:20px 0 12px; }
#hope-site-footer .hope-footer-grid>div>a:not(.hope-brand) { display:block; padding:4px 0; }
#hope-site-footer .hope-footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--hope-line); padding:24px 0; color:var(--hope-muted); font-size:.7rem; }
/* Harmonize existing public content without changing its forms and integrations. */
body.hope-legacy :is(h1,h2) { font-weight:400!important; line-height:1.12; }
body.hope-legacy h1 { font-size:clamp(2.8rem,5.2vw,5.4rem)!important; }
body.hope-legacy h2 { font-size:clamp(2rem,3.4vw,3.6rem); }
body.hope-legacy :is(.hero-section,.contact-hero,.blog-hero,.leadership-hero,.staff-hero,.serve-hero,.apps-hero,.kids-hero,section.hero,div.hero,.blog-header) { background:var(--hope-paper)!important; color:var(--hope-ink)!important; border-bottom:1px solid var(--hope-line); padding-top:clamp(48px,7vw,96px)!important; padding-bottom:clamp(48px,7vw,96px)!important; min-height:0!important; height:auto!important; text-shadow:none!important; }
body.hope-legacy :is(.hero-section,.contact-hero,.blog-hero,.leadership-hero,.staff-hero,.serve-hero,.apps-hero,.kids-hero,section.hero,div.hero,.blog-header):before,
body.hope-legacy :is(.hero-section,.contact-hero,.blog-hero,.leadership-hero,.staff-hero,.serve-hero,.apps-hero,.kids-hero,section.hero,div.hero,.blog-header):after { display:none!important; }
body.hope-legacy :is(.hero-section,.contact-hero,.blog-hero,.leadership-hero,.staff-hero,.serve-hero,.apps-hero,.kids-hero,section.hero,div.hero,.blog-header) :is(h1,h2,p,.subtitle,.hero-subtitle,.blog-meta,.hero-description) { color:var(--hope-ink)!important; text-shadow:none!important; background-image:none!important; -webkit-text-fill-color:currentColor!important; }
body.hope-legacy :is(.hero-section,.contact-hero,.blog-hero,.leadership-hero,.staff-hero,.serve-hero,.apps-hero,.kids-hero,section.hero,div.hero,.blog-header) h1 :is(span,em) { color:var(--hope-blue)!important; -webkit-text-fill-color:currentColor!important; }
body.hope-legacy :is(.content-section h2,.info-section h2,.blog-content h2) { color:var(--hope-navy); }
body.hope-legacy .partners-section { background:var(--hope-navy)!important; }
body.hope-legacy .partners-section .section-title { color:white!important; }
body.hope-legacy .geo-shape { display:none; }
body.hope-legacy :is(.btn-primary,.primary-cta,.submit-button,.submit-btn,.hero-button) { background:var(--hope-blue)!important; color:white!important; border-color:var(--hope-blue)!important; border-radius:8px!important; text-shadow:none!important; }
body.hope-legacy :is(.btn-secondary,.secondary-cta,.btn-outline,.btn-outline-light) { background:transparent!important; color:var(--hope-blue)!important; border:1px solid var(--hope-blue)!important; border-radius:8px!important; }
body.hope-legacy :is(.cta-section,.partners-section,.schedule-section) :is(.btn-outline,.btn-outline-light) { color:white!important; border-color:#c4d9ec!important; }
body.hope-legacy :is(.feature-card,.info-card,.ministry-card,.event-card,.contact-card,.staff-card,.blog-card) { border-radius:12px; box-shadow:0 8px 24px rgb(32 56 78 / 5%); }
/* Use one motion system; old whole-section AOS fades could hide readable content. */
body.hope-public [data-aos] { opacity:1!important; transform:none!important; }
body.hope-legacy .mission-label { opacity:1!important; transform:none!important; color:var(--hope-blue)!important; }
body.hope-legacy .mission-quote { opacity:1; transform:none; }
body.hope-legacy .hope-page-title { margin-bottom:24px; }
body.hope-legacy .mission-quote { font-size:clamp(1.15rem,2vw,1.5rem); font-style:normal; line-height:1.7; max-width:65ch; }
body.hope-legacy .mission-quote:before,body.hope-legacy .mission-quote:after { display:none; }
body.hope-legacy :is(.section.dark-heading,.schedule-section) { background:var(--hope-navy)!important; }
body.hope-legacy :is(.location-section,.beliefs-section,.info-section) { background:#efeee6!important; }
body.hope-legacy :is(.btn,.cta-button-page,.hero-btn) { border-radius:8px; font-family:'DM Sans',sans-serif!important; }
body.hope-legacy :is(.hero-section,.contact-hero,.blog-hero,.leadership-hero,.staff-hero,.serve-hero,.apps-hero,.kids-hero,section.hero,div.hero) :is(.eyebrow,.badge,.hero-tag,.hero-eyebrow,.hero-label,.hero-detail,.event-details-hero) { color:var(--hope-blue)!important; text-shadow:none; }
body.hope-public .hope-reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .7s cubic-bezier(.2,.65,.3,1); }
body.hope-public .hope-reveal.hope-revealed { opacity:1; transform:none; }
@media(max-width:1200px) {
  #hope-site-footer .hope-footer-grid { grid-template-columns:1fr 1fr; }
}
@media(max-width:760px) {
  #hope-site-footer .hope-footer-grid { gap:32px; }
  #hope-site-footer .hope-footer-grid>div:first-child { grid-column:1/-1; }
  #hope-site-footer .hope-footer-bottom { flex-direction:column; gap:8px; }
}
@media(max-width:390px) {
  body.hope-legacy .info-cards { grid-template-columns:minmax(0,1fr); padding-inline:20px; }
  #hope-site-footer .hope-footer-grid { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  body.hope-public *,body.hope-public *:before,body.hope-public *:after { animation:none!important; transition:none!important; }
  body.hope-public [data-aos],body.hope-public .hope-reveal { opacity:1!important; transform:none!important; }
}
@media print { #hope-site-footer { display:none; } body.hope-public .hope-reveal { opacity:1;transform:none; } }
/* Shared disclosure navigation and public directory layouts. */
.hope-directory {width:min(1180px,calc(100% - 40px));margin:auto;padding:72px 0;line-height:1.7;}
.hope-directory h1 {font-size:clamp(2.8rem,6vw,5.5rem);line-height:1.08;margin:16px 0 24px;}
.hope-directory h2 {font-size:clamp(2rem,4vw,3.4rem);line-height:1.15;}
.hope-directory p {max-width:70ch;}
.hope-directory a {color:var(--hope-blue);}
.hope-kicker {text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:700;color:var(--hope-blue);}
.hope-card-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:32px 0;}
.hope-info-card {display:block;min-width:0;padding:28px;background:#fff;border:1px solid var(--hope-line);border-radius:12px;text-decoration:none;}
.hope-info-card h2,.hope-info-card h3 {font-size:1.65rem!important;line-height:1.2;margin:0 0 16px;color:var(--hope-ink);}
.hope-info-card p {color:var(--hope-muted);}
.hope-info-card:hover {border-color:var(--hope-blue);}
.hope-partner img {display:block;width:180px;height:110px;max-width:100%;object-fit:contain;margin-bottom:24px;}
.hope-care {border-left:3px solid var(--hope-blue);padding:12px 24px;margin:40px 0;}
.hope-actions {display:flex;flex-wrap:wrap;gap:24px;margin:32px 0;}
.hope-gatherings {scroll-margin-top:110px;}
.hope-video-card {padding:0;overflow:hidden;}
.hope-video-card button {display:block;text-align:left;width:100%;padding:0;border:0;background:transparent;cursor:pointer;color:inherit;}
.hope-video-card img {display:block;width:100%;aspect-ratio:16/9;object-fit:cover;}
.hope-video-copy {padding:24px;}
.hope-video-copy h2 {font-size:1.3rem!important;}
.hope-player {margin:32px 0;padding:24px;background:#fff;border:1px solid var(--hope-line);border-radius:12px;scroll-margin-top:110px;}
.hope-player iframe {display:block;width:100%;aspect-ratio:16/9;border:0;}
.hope-load {padding:14px 24px;background:var(--hope-blue);color:white;border:0;border-radius:8px;font-size:1rem;cursor:pointer;}
.hope-load:disabled {opacity:.6;cursor:wait;}
[hidden] {display:none!important;}
@media(max-width:850px){.hope-card-grid {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.hope-card-grid {grid-template-columns:1fr;}.hope-directory {padding:48px 0;}.hope-player {padding:12px;}}


.hope-archive-photos {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:32px 0;}
.hope-archive-photos img {width:100%;height:300px;object-fit:cover;border-radius:12px;}
@media(max-width:560px){.hope-archive-photos {grid-template-columns:1fr;}.hope-archive-photos img {height:220px;}}
/* Legacy overflow containers must not trap the shared sticky header. */
html:has(body.hope-public) {overflow-x:clip;overflow-y:visible;}
html body.hope-public {overflow-x:clip;overflow-y:visible;margin:0;}


/* Public navbar: one desktop row, with dropdown panels outside the row. */
#hope-site-header { position:sticky; top:0; z-index:1000; width:100%; margin:0; padding:0; border:0; background:#f8f8f5; color:#222b37; font:600 16px/1.5 'DM Sans',Arial,sans-serif; text-align:left; letter-spacing:normal; overflow:visible; }
#hope-site-header *,#hope-site-header *::before,#hope-site-header *::after { box-sizing:border-box; }
#hope-site-header a { color:inherit; text-decoration:none; text-shadow:none; }
#hope-site-header .hope-header-inner { display:flex; flex-flow:row nowrap; align-items:center; justify-content:space-between; gap:24px; width:calc(100% - clamp(40px,3.7vw,76px)); max-width:none; min-height:clamp(90px,5.86vw,120px); margin:0 auto; padding:0; }
#hope-site-header .hope-brand { display:flex; flex:0 0 auto; align-items:center; gap:clamp(10px,.9vw,18px); margin:0; padding:0; font:700 clamp(17px,1.27vw,26px)/1.3 'DM Sans',Arial,sans-serif; letter-spacing:.07em; white-space:nowrap; }
#hope-site-header .hope-brand img { display:block; flex:none; width:clamp(46px,3.42vw,70px); height:clamp(46px,3.42vw,70px); max-width:none; margin:0; border-radius:50%; object-fit:contain; }
#hope-site-header .hope-brand small { display:block; margin-top:7px; font:700 clamp(8px,.68vw,14px)/1.5 'DM Sans',Arial,sans-serif; letter-spacing:.2em; }
#hope-site-header #hope-navigation { display:flex; flex:0 0 auto; flex-flow:row nowrap; align-items:center; justify-content:flex-end; gap:clamp(16px,1.5vw,32px); position:static; width:auto; height:auto; min-height:0; margin:0 0 0 auto; padding:0; border:0; background:none; box-shadow:none; transform:none; opacity:1; visibility:visible; font:600 clamp(14px,1.07vw,22px)/1.5 'DM Sans',Arial,sans-serif; }
#hope-site-header .hope-nav-links,#hope-site-header .hope-nav-actions { display:flex; flex:0 0 auto; flex-flow:row nowrap; align-items:center; width:auto; margin:0; padding:0; gap:clamp(12px,1.4vw,29px); }
#hope-site-header .hope-dropdown { display:block; flex:0 0 auto; position:relative; width:auto; margin:0; padding:0; border:0; background:none; }
#hope-site-header summary { display:flex; align-items:center; gap:6px; min-height:48px; margin:0; padding:12px 0; border:0; list-style:none; font:inherit; white-space:nowrap; cursor:pointer; }
#hope-site-header summary::-webkit-details-marker { display:none; }
#hope-site-header summary::after { content:''; width:5px; height:5px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin-top:-3px; }
#hope-site-header details[open]>summary { color:#445fa9; }
#hope-site-header details[open]>summary::after { transform:rotate(225deg); margin-top:3px; }
#hope-site-header .hope-submenu { position:absolute; top:100%; left:0; z-index:2; width:245px; max-width:calc(100vw - 32px); margin:0; padding:10px; border:1px solid #dedfd9; border-radius:10px; background:#f8f8f5; box-shadow:0 12px 28px #20384e20; font:500 16px/1.5 'DM Sans',Arial,sans-serif; }
#hope-site-header .hope-submenu a { display:block; padding:12px; border-radius:5px; white-space:normal; }
#hope-site-header .hope-submenu a:hover,#hope-site-header .hope-submenu a:focus-visible { background:#e9edf3; color:#445fa9; }
#hope-site-header #hope-navigation .hope-button { display:inline-flex; flex:0 0 auto; align-items:center; justify-content:center; gap:clamp(12px,1.45vw,30px); min-height:clamp(50px,3.71vw,76px); margin:0; padding:12px clamp(14px,1.4vw,29px); border:1.5px solid #445fa9; border-radius:12px; background:#445fa9; color:white; font:inherit; white-space:nowrap; }
#hope-site-header #hope-navigation .hope-outline { background:transparent; color:#445fa9; }
#hope-site-header #hope-navigation .hope-button:hover { background:#354f94; color:white; }
#hope-site-header #hope-navigation .hope-outline:hover { background:#e9edf3; color:#445fa9; }
#hope-site-header .hope-menu { display:none; flex:none; min-height:44px; padding:8px 12px; border:1px solid #dedfd9; border-radius:8px; background:transparent; color:#222b37; font:600 14px/1.5 'DM Sans',Arial,sans-serif; cursor:pointer; }
#hope-site-header .hope-skip { position:absolute; top:-100px; left:16px; padding:12px; background:white; }
#hope-site-header .hope-skip:focus { top:8px; z-index:3; }
#hope-site-header :is(a,button,summary):focus-visible { outline:3px solid #b76a2f; outline-offset:4px; }
#hope-site-header :is(a,button,summary) { touch-action:manipulation; }
@media(max-width:1023px) {
  #hope-site-header { max-height:100dvh; overflow-y:auto; }
  #hope-site-header .hope-header-inner { flex-wrap:wrap; min-height:82px; gap:0 16px; padding:16px 0; }
  #hope-site-header .hope-brand { font-size:18px; gap:10px; }
  #hope-site-header .hope-brand img { width:46px; height:46px; }
  #hope-site-header .hope-brand small { font-size:8px; margin-top:5px; }
  #hope-site-header .hope-menu:not([hidden]) { display:block; }
  #hope-site-header #hope-navigation { flex:1 0 100%; flex-direction:column; align-items:stretch; gap:20px; width:100%; margin:16px 0 0; padding:0 0 4px; font-size:16px; }
  #hope-site-header.hope-menu-ready #hope-navigation:not(.hope-open) { display:none; }
  #hope-site-header .hope-nav-links { flex-direction:column; align-items:stretch; gap:0; }
  #hope-site-header summary { padding:14px 0; }
  #hope-site-header .hope-submenu { position:static; width:100%; max-width:none; margin:0 0 10px; border:0; border-left:2px solid #dedfd9; border-radius:0; box-shadow:none; }
  #hope-site-header .hope-nav-actions { gap:12px; padding-top:20px; border-top:1px solid #dedfd9; }
  #hope-site-header #hope-navigation .hope-button { flex:1; min-height:52px; }
}
@media(max-width:480px) {
  #hope-site-header .hope-header-inner { width:calc(100% - 32px); }
  #hope-site-header .hope-brand { font-size:16px; }
  #hope-site-header .hope-brand img { width:42px; height:42px; }
  #hope-site-header .hope-nav-actions { flex-direction:column; align-items:stretch; }
  #hope-site-header #hope-navigation .hope-button { flex:auto; }
}
@media print { #hope-site-header { display:none; } }

/* Direct navigation links sit on the same baseline as disclosure tabs. */
#hope-site-header .hope-nav-links>a{display:flex;flex:none;align-items:center;min-height:48px;padding:12px 0;font:inherit;white-space:nowrap}
#hope-site-header .hope-nav-links>a:hover{color:#445fa9}
#hope-site-header .hope-live-dot{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:#d21e32;box-shadow:0 0 0 4px #d21e3218;animation:hope-live-pulse 1.5s ease-in-out infinite}
#hope-site-header .hope-live-dot[hidden]{display:none}
@keyframes hope-live-pulse{0%,100%{opacity:1;box-shadow:0 0 0 3px #d21e3220}50%{opacity:.35;box-shadow:0 0 0 6px #d21e3205}}
@media(min-width:1024px) and (max-width:1200px){
  #hope-site-header .hope-header-inner{gap:16px}
  #hope-site-header .hope-nav-links,#hope-site-header .hope-nav-actions{gap:12px}
  #hope-site-header #hope-navigation{gap:14px}
  #hope-site-header #hope-navigation .hope-button{padding-inline:12px;gap:10px}
}
@media(max-width:1023px){#hope-site-header .hope-nav-links>a{padding:14px 0}}
@media(prefers-reduced-motion:reduce){#hope-site-header .hope-live-dot{animation:none;opacity:1}}
