/* Section Eight Baptist Church
   Palette taken from the church logo: blue #0A3C5F, lettering blue #1C417D, peach #FCE1CA. */
:root{
  --blue:#0A3C5F;
  --blue-deep:#072C46;
  --blue-2:#1C417D;
  --blue-line:#2C5878;
  --blue-mist:#A9BDCC;
  --sky:#E9EFF4;
  --paper:#F6F8FA;
  --white:#FFFFFF;
  --ink:#122129;
  --stone:#52636C;
  --rule:#D2DEE3;
  --gold:#FCE1CA;
  --accent:#D9823F;
  --gold-hover:#FFEBDA;
  --gold-soft:#FDF1E6;
  --display:"Bitter", Georgia, serif;
  --body:"Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --wrap:72rem;
  --radius:8px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;interpolate-size:allow-keywords}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.125rem/1.6 var(--body)}
img{max-width:100%;display:block}
a{color:var(--blue-2);text-underline-offset:.18em;transition:color .2s}
a:hover{color:var(--blue)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:3px}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.15;margin:0 0 .5em;color:var(--blue);letter-spacing:-.01em}
h1{font-size:clamp(2.3rem,5.2vw,3.75rem)}
h2{font-size:clamp(1.7rem,3vw,2.25rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em;max-width:66ch}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1.25rem}
.skip{position:absolute;left:-999px}
.skip:focus{left:1rem;top:1rem;background:var(--white);padding:.5rem 1rem;z-index:50}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Page-to-page transitions ---------- */
@view-transition{navigation:auto}
.site-header{view-transition-name:site-header}
.site-footer{view-transition-name:site-footer}
@media (prefers-reduced-motion:no-preference){
  ::view-transition-old(root){animation:vt-out .25s ease both}
  ::view-transition-new(root){animation:vt-in .35s ease both}
  @keyframes vt-out{to{opacity:0}}
  @keyframes vt-in{from{opacity:0}}
}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* ---------- Scroll reveal (only when JS runs) ---------- */
@media (prefers-reduced-motion:no-preference){
  .js [data-reveal]{opacity:0;transform:translateY(10px);transition:opacity .5s var(--ease),transform .5s var(--ease);transition-delay:calc(var(--i,0) * 50ms)}
  .js [data-reveal].in{opacity:1;transform:none}
}

/* ---------- Header ---------- */
.site-header{background:var(--blue);color:var(--white);position:sticky;top:0;z-index:20;transition:box-shadow .3s,background .3s}
.site-header.scrolled{box-shadow:0 6px 24px rgba(0,30,45,.25);background:var(--blue-deep)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4.5rem}
.brand{display:flex;align-items:center;gap:.7rem;color:var(--white);text-decoration:none;font-family:var(--display);font-weight:700;font-size:1.15rem;line-height:1.1}
.brand:hover{color:var(--white)}
.brand small{display:block;font-family:var(--body);font-weight:400;font-size:.8rem;opacity:.78}
.brand-mark{width:34px;height:34px;flex:none;transition:transform .4s var(--ease)}
.brand:hover .brand-mark{transform:rotate(-6deg) scale(1.06)}
.nav{display:flex;align-items:center;gap:.15rem}
.nav a{position:relative;color:#DCE9EE;text-decoration:none;padding:.5rem .7rem;font-size:1rem;border-radius:var(--radius)}
.nav a:not(.live)::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:.2rem;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover{color:var(--white)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.nav a[aria-current="page"]{color:var(--white)}
.nav .live{background:var(--gold);color:var(--ink);font-weight:600;margin-left:.5rem;display:inline-flex;align-items:center;gap:.45rem;transition:background .2s,transform .2s}
.nav .live:hover{background:var(--gold-hover);color:var(--ink);transform:translateY(-1px)}
.live-dot{width:8px;height:8px;border-radius:50%;background:#B3261E;flex:none}
@media (prefers-reduced-motion:no-preference){.live-dot{animation:pulse 2s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}}
.menu-btn{display:none;background:none;border:1px solid var(--blue-line);color:var(--white);font:inherit;font-size:1rem;padding:.45rem .85rem;border-radius:var(--radius);cursor:pointer}
@media (max-width:900px){
  .menu-btn{display:block}
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--blue-deep);flex-direction:column;align-items:stretch;padding:.25rem 1.25rem 1.25rem;
       visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility 0s .25s;box-shadow:0 14px 24px rgba(0,30,45,.3)}
  .nav.open{visibility:visible;opacity:1;transform:none;transition-delay:0s}
  .nav a{padding:.85rem .25rem;border-bottom:1px solid var(--blue-2);border-radius:0}
  .nav a:not(.live)::after{left:0;right:auto;width:3px;top:.6rem;bottom:.6rem;height:auto;transform:scaleY(0)}
  .nav a[aria-current="page"]::after{transform:scaleY(1)}
  .nav a[aria-current="page"]{padding-left:.9rem}
  .nav .live{margin:.85rem 0 0;justify-content:center;border-bottom:0;border-radius:var(--radius)}
}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.35rem;border-radius:var(--radius);font-weight:600;text-decoration:none;font-size:1.05rem;border:2px solid transparent;cursor:pointer;transition:background .2s,border-color .2s,color .2s,transform .2s var(--ease),box-shadow .2s}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:none}
.btn-primary{background:var(--gold);color:var(--ink)}
.btn-primary:hover{background:var(--gold-hover);color:var(--ink);box-shadow:0 8px 18px rgba(252,225,202,.35)}
.btn-ghost{border-color:var(--blue-mist);color:var(--white)}
.btn-ghost:hover{border-color:var(--white);color:var(--white);background:rgba(255,255,255,.06)}
.btn-dark{background:var(--blue);color:var(--white)}
.btn-dark:hover{background:var(--blue-2);color:var(--white);box-shadow:0 8px 18px rgba(1,69,94,.28)}

/* ---------- Hero ---------- */
.hero{background:var(--blue);color:#DCE9EE;padding:3.25rem 0 6.5rem;overflow:hidden;position:relative}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60rem 30rem at 85% 30%,rgba(255,255,255,.07),transparent 60%);pointer-events:none}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center;position:relative}
.hero h1{color:var(--white);margin-bottom:.45em}
.hero p{font-size:1.2rem;color:#CFE0E6}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
@media (prefers-reduced-motion:no-preference){
  .hero-copy > *{opacity:0;transform:translateY(16px);animation:rise .7s var(--ease) forwards}
  .hero-copy > :nth-child(2){animation-delay:.12s}
  .hero-copy > :nth-child(3){animation-delay:.22s}
  .hero-copy > :nth-child(4){animation-delay:.32s}
  @keyframes rise{to{opacity:1;transform:none}}
}

.plat{width:100%;max-width:380px;justify-self:end;margin:0}
.plat svg{width:100%;height:auto;display:block;overflow:visible}
.plat .cell{fill:none;stroke:var(--blue-line);stroke-width:1}
.plat .num{fill:#6E9AAB;font:500 11px var(--body)}
.plat .home{fill:var(--gold)}
.plat .home-num{fill:var(--ink);font:700 13px var(--body)}
.plat .cross{stroke:var(--ink);stroke-width:3;stroke-linecap:round}
.plat .ring{fill:none;stroke:var(--gold);stroke-width:2;opacity:0}
.plat figcaption{font-size:.9rem;color:#9FC0CC;margin-top:.75rem;text-align:right}
@media (prefers-reduced-motion:no-preference){
  .plat .cell{stroke-dasharray:240;stroke-dashoffset:240;animation:draw .9s ease-out forwards}
  .plat .num{opacity:0;animation:fade .6s ease-out .6s forwards}
  .plat .home{opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.6);animation:pop .55s var(--ease) 1.1s forwards}
  .plat .home-num,.plat .cross{opacity:0;animation:fade .4s ease-out 1.45s forwards}
  .plat .ring{transform-box:fill-box;transform-origin:center;animation:ring 2.6s ease-out 1.8s infinite}
  @keyframes draw{to{stroke-dashoffset:0}}
  @keyframes fade{to{opacity:1}}
  @keyframes pop{to{opacity:1;transform:none}}
  @keyframes ring{0%{opacity:.8;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.6)}}
}

/* Quick-facts bar that overlaps the hero */
.quick{position:relative;z-index:2;margin-top:-3.75rem}
.quick ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);background:var(--white);border-radius:12px;box-shadow:0 18px 40px rgba(0,40,60,.14);overflow:hidden}
.quick li + li{border-left:1px solid var(--rule)}
.quick a{display:flex;gap:.9rem;align-items:flex-start;padding:1.35rem 1.4rem;text-decoration:none;color:var(--ink);height:100%;transition:background .2s}
.quick a:hover{background:var(--sky);color:var(--ink)}
.quick svg{flex:none;width:28px;height:28px;color:var(--blue);margin-top:.1rem}
.quick strong{display:block;font-family:var(--display);color:var(--blue);font-size:1.1rem;line-height:1.25}
.quick span{font-size:.98rem;color:var(--stone)}

@media (max-width:900px){
  .hero{padding:2.25rem 0 5.5rem}
  .hero .wrap{grid-template-columns:1fr;gap:2rem}
  .plat{max-width:240px;justify-self:start}
  .plat figcaption{text-align:left}
  .quick ul{grid-template-columns:1fr}
  .quick li + li{border-left:0;border-top:1px solid var(--rule)}
}

/* ---------- Sections ---------- */
section{padding:4.25rem 0}
.band{background:var(--white);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.tint{background:var(--sky)}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.section-head h2{margin:0}
.section-head p{margin:.35rem 0 0;color:var(--stone);flex-basis:100%}
.lede{font-size:1.2rem;color:var(--stone)}
.page-head{background:var(--blue);padding:3rem 0 2.75rem;position:relative;overflow:hidden}
.page-head::after{content:"";position:absolute;right:-4rem;top:-4rem;width:22rem;height:22rem;background:
  linear-gradient(var(--blue-line) 1px,transparent 1px) 0 0/44px 44px,linear-gradient(90deg,var(--blue-line) 1px,transparent 1px) 0 0/44px 44px;opacity:.35;transform:rotate(8deg);pointer-events:none}
.page-head h1{color:var(--white);margin:0;view-transition-name:page-title;position:relative}
.page-head p{color:#CFE0E6;margin:.6rem 0 0;font-size:1.15rem;position:relative}
.split{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:2.5rem}}
.empty{color:var(--stone);font-style:italic}

/* ---------- New here ---------- */
.welcome-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:3.5rem;align-items:start}
@media (max-width:900px){.welcome-grid{grid-template-columns:1fr;gap:2rem}}
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:1.05rem 2.25rem 1.05rem 0;font-weight:600;font-size:1.1rem;position:relative;color:var(--ink);transition:color .2s}
.faq summary:hover{color:var(--blue)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after,.beliefs summary::after{content:"";position:absolute;right:.35rem;top:50%;width:.6rem;height:.6rem;border-right:2px solid var(--stone);border-bottom:2px solid var(--stone);transform:translateY(-70%) rotate(45deg);transition:transform .3s var(--ease)}
.faq details[open] summary::after,.beliefs details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq p{margin:0;padding:0 0 1.1rem;color:var(--stone)}
details::details-content{block-size:0;overflow:hidden;transition:block-size .35s var(--ease),content-visibility .35s allow-discrete}
details[open]::details-content{block-size:auto}

/* ---------- Schedule ---------- */
.schedule{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:2.5rem}
.day h3{font-size:1.05rem;color:var(--stone);font-family:var(--body);font-weight:600;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--blue)}
.slot{display:grid;grid-template-columns:6.5rem 1fr;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--rule)}
.slot time{font-family:var(--display);font-weight:700;font-size:1.25rem;color:var(--blue);white-space:nowrap}
.slot strong{display:block;font-weight:600}
.slot span{color:var(--stone);font-size:1rem}

/* ---------- Announcements ---------- */
.notes{list-style:none;margin:0;padding:0}
.notes li{padding:1.1rem 1.1rem 1.1rem 1.2rem;border-left:4px solid var(--gold);margin-bottom:1rem;background:var(--white);border-radius:0 var(--radius) var(--radius) 0;box-shadow:0 1px 0 var(--rule)}
.notes h3{font-size:1.15rem;margin-bottom:.25rem}
.notes p{margin:0}
.notes .when{font-size:.9rem;color:var(--stone);margin-bottom:.3rem}

/* ---------- Calendar entries (events + ministry dates) ---------- */
.agenda{list-style:none;margin:0;padding:0}
.agenda-month{font-family:var(--display);color:var(--stone);font-size:1.15rem;margin:2rem 0 .5rem;padding-bottom:.4rem;border-bottom:2px solid var(--blue)}
.agenda-month:first-child{margin-top:0}
.entry{display:grid;grid-template-columns:4.5rem 1fr;gap:1.25rem;padding:1.1rem 0;border-bottom:1px solid var(--rule)}
.date-chip{text-align:center;border:2px solid var(--blue);border-radius:var(--radius);padding:.35rem 0 .45rem;align-self:start;background:var(--white)}
.date-chip .m{display:block;font-size:.8rem;font-weight:600;color:var(--stone)}
.date-chip .d{display:block;font-family:var(--display);font-weight:700;font-size:1.7rem;line-height:1;color:var(--blue)}
.entry h3{font-size:1.2rem;margin-bottom:.15rem}
.entry .meta{color:var(--stone);font-size:1rem;margin-bottom:.35rem}
.entry p{margin:0}
.entry img{margin-top:.75rem;border-radius:var(--radius);max-height:260px;object-fit:cover;width:100%}
.tag{display:inline-block;font-size:.8rem;font-weight:600;padding:.12rem .55rem;border-radius:999px;background:var(--sky);color:var(--blue);margin-bottom:.35rem}
.tag.event{background:var(--gold-soft);color:#8A4B1C}
.entry.cancelled .date-chip{border-color:var(--rule)}
.entry.cancelled .date-chip .d,.entry.cancelled h3{color:var(--stone);text-decoration:line-through;text-decoration-thickness:2px}
.tag.off{background:#F6E1DF;color:#8C2A22}

/* Filter chips */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 2rem}
.chip{font:inherit;font-size:.98rem;padding:.5rem 1rem;border-radius:999px;border:1.5px solid var(--rule);background:var(--white);color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.chip:hover{border-color:var(--blue)}
.chip[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:var(--white)}
[data-filter-item][hidden]{display:none}

/* ---------- People ---------- */
.pastor{display:grid;grid-template-columns:16rem 1fr;gap:2.75rem;align-items:start}
@media (max-width:700px){.pastor{grid-template-columns:1fr}.pastor .portrait,.pastor .portrait-empty{max-width:12rem}}
.portrait{aspect-ratio:4/5;width:100%;border-radius:var(--radius);object-fit:cover;background:var(--blue-2)}
.portrait-empty{aspect-ratio:4/5;width:100%;border-radius:var(--radius);background:var(--blue);display:grid;place-items:center;color:var(--gold);font-family:var(--display);font-weight:700;font-size:3.25rem;position:relative;overflow:hidden}
.portrait-empty::before{content:"";position:absolute;inset:0;background:linear-gradient(var(--blue-line) 1px,transparent 1px) 0 0/32px 32px,linear-gradient(90deg,var(--blue-line) 1px,transparent 1px) 0 0/32px 32px;opacity:.45}
.portrait-empty span{position:relative}
.role-line{color:var(--stone);font-size:1.05rem;margin:-.25rem 0 1rem}
.family{display:grid;grid-template-columns:1.2fr 1fr;gap:2.75rem;align-items:center}
.family .photo{aspect-ratio:3/2;width:100%;border-radius:var(--radius);object-fit:cover}
.family .photo-empty{aspect-ratio:3/2;border-radius:var(--radius);border:2px dashed var(--blue-mist);display:grid;place-items:center;color:var(--stone);background:var(--white);text-align:center;padding:1rem}
@media (max-width:800px){.family{grid-template-columns:1fr;gap:1.5rem}}
.people{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:2rem}
.person .portrait,.person .portrait-empty{margin-bottom:.9rem;font-size:2.4rem}
.person h3{margin-bottom:.1rem;font-size:1.2rem}
.person .role{color:var(--stone);margin-bottom:.5rem;font-size:1rem}
.person p{font-size:1rem}
.person.placeholder .portrait-empty{background:var(--white);border:2px dashed var(--blue-mist);color:var(--blue-mist)}
.person.placeholder .portrait-empty::before{display:none}
.person.placeholder h3{color:var(--stone)}

/* ---------- Ministries ---------- */
.min-group{margin-bottom:3rem}
.min-group > h2{font-size:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--blue);margin-bottom:1.25rem}
.min-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(21rem,1fr));gap:1.25rem}
.min-card{background:var(--white);border:1px solid var(--rule);border-radius:12px;padding:1.4rem 1.5rem;display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.min-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,40,60,.1);border-color:var(--blue-mist)}
.min-card img{border-radius:var(--radius);margin:-.4rem -.5rem 1rem;width:calc(100% + 1rem);max-width:none;aspect-ratio:16/9;object-fit:cover}
.min-card h3{margin-bottom:.2rem}
.min-card .usual{color:var(--blue-2);font-weight:600;font-size:1rem;margin-bottom:.5rem}
.min-card > p{font-size:1.02rem}
.next{margin-top:auto;padding-top:.9rem;border-top:1px dashed var(--rule)}
.next h4{margin:0 0 .45rem;font-size:.9rem;color:var(--stone);font-weight:600}
.next ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.next li{display:flex;gap:.6rem;align-items:baseline;font-size:.98rem}
.next li b{min-width:7.5rem;font-weight:600;color:var(--blue)}
.next li.off b,.next li.off span{color:var(--stone);text-decoration:line-through}
.next li.off em{color:#8C2A22;font-style:normal;font-weight:600;font-size:.85rem;text-decoration:none}
.next .none{font-size:.95rem;color:var(--stone)}

/* ---------- Beliefs ---------- */
.beliefs{max-width:46rem}
.beliefs details{border-bottom:1px solid var(--rule)}
.beliefs summary{cursor:pointer;list-style:none;padding:1.15rem 2.25rem 1.15rem 0;font-family:var(--display);font-weight:700;font-size:1.3rem;color:var(--blue);position:relative}
.beliefs summary::-webkit-details-marker{display:none}
.beliefs details p{padding-bottom:.6rem}
.verses{color:var(--stone);font-size:.95rem}

/* ---------- Visit ---------- */
.facts{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:2rem}
.facts svg{width:30px;height:30px;color:var(--blue);margin-bottom:.6rem}
.facts h3{font-size:1.15rem;margin-bottom:.3rem}
.facts p{margin:0;font-size:1rem}
.map{width:100%;aspect-ratio:16/10;border:0;border-radius:12px;background:var(--rule)}
.contact-list{list-style:none;padding:0;margin:0 0 1.5rem}
.contact-list li{padding:.65rem 0;border-bottom:1px solid var(--rule);display:flex;gap:1rem}
.contact-list strong{min-width:5.5rem;color:var(--stone);font-weight:600}

/* ---------- Story preview ---------- */
.preview-note{background:var(--gold-soft);border:1px solid #F3CDAE;border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:2.5rem;font-size:1rem}
.timeline{list-style:none;margin:0;padding:0 0 0 2rem;position:relative;max-width:48rem}
.timeline::before{content:"";position:absolute;left:.45rem;top:.4rem;bottom:.4rem;width:2px;background:var(--blue-mist)}
.timeline li{position:relative;padding-bottom:2.25rem}
.timeline li::before{content:"";position:absolute;left:-1.85rem;top:.35rem;width:14px;height:14px;border-radius:50%;background:var(--white);border:3px solid var(--blue)}
.timeline .yr{font-family:var(--display);font-weight:700;font-size:1.5rem;color:var(--blue);display:block}
.timeline .ph{border:2px dashed var(--blue-mist);border-radius:var(--radius);aspect-ratio:16/7;display:grid;place-items:center;color:var(--stone);margin-top:.75rem;font-size:.95rem;background:var(--white)}
.pastors-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem}
.pastors-list li{background:var(--white);border:1px solid var(--rule);border-radius:var(--radius);padding:1rem 1.2rem}
.pastors-list strong{display:block;font-family:var(--display);color:var(--blue)}

/* ---------- Live strip ---------- */
.live-strip{background:var(--gold-soft);border-top:1px solid #F3CDAE;border-bottom:1px solid #F3CDAE;padding:0}
.live-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding-top:1.75rem;padding-bottom:1.75rem}
.live-strip h2{font-size:1.5rem;margin:0 0 .2rem}
.live-strip p{margin:0;color:var(--stone)}

/* ---------- Footer ---------- */
.site-footer{background:var(--blue-deep);color:#AFC7D0;padding:3.25rem 0 2rem;font-size:1rem}
.site-footer .wrap{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.site-footer h2{color:var(--white);font-size:1.15rem;margin-bottom:.6rem}
.site-footer a{color:#DCE9EE}
.site-footer a:hover{color:var(--gold)}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.35rem}
.footer-base{grid-column:1/-1;border-top:1px solid #12546C;padding-top:1.25rem;margin-top:1rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.9rem}
@media (max-width:700px){.site-footer .wrap{grid-template-columns:1fr}}

/* ---------- Illustrated scenery ---------- */
.hero{background:linear-gradient(180deg,#072C46 0%,#0A3C5F 45%,#1D5476 78%,#46789A 100%);padding-bottom:0}
.hero .wrap{grid-template-columns:minmax(0,40rem);padding-bottom:14.5rem}
.hero .scene{position:absolute;left:0;right:0;bottom:0;width:100%;height:clamp(220px,32vw,420px);display:block}
.scene .sc-far,.scene .sc-mid,.scene .sc-near,.scene .sc-sun{will-change:transform}
.hero + .quick{margin-top:-3.25rem}
@media (prefers-reduced-motion:no-preference){
  .hero .sc-sun{animation:sunrise 3.2s cubic-bezier(.15,.6,.25,1) both}
  .hero .sc-sun circle{transform-box:fill-box;transform-origin:center}
  .hero .sc-sun circle:first-child{animation:glow 6s ease-in-out 2.2s infinite}
  .hero .sc-win{opacity:.2;animation:lamp 1.4s ease-out 2.2s forwards}
  .scene .sc-clouds{animation:drift 60s linear infinite alternate}
  @keyframes sunrise{from{transform:translateY(170px);opacity:.15}}
  @keyframes glow{50%{transform:scale(1.08);opacity:.16}}
  @keyframes lamp{to{opacity:1}}
  @keyframes drift{to{transform:translateX(80px)}}
}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;padding-bottom:10.5rem}.hero .scene{height:210px}}

.page-head{padding-bottom:5.5rem}
.page-head .scene{position:absolute;left:0;right:0;bottom:0;width:100%;height:110px;opacity:.55;pointer-events:none}
.page-head::after{display:none}

/* ---------- Scripture banner ---------- */
.verse{background:var(--blue);color:var(--white);text-align:center;padding:4.5rem 0;position:relative;overflow:hidden}
.verse::before{content:"";position:absolute;inset:0;background:radial-gradient(40rem 18rem at 50% 120%,rgba(252,225,202,.22),transparent 70%)}
.verse blockquote{margin:0 auto;max-width:44rem;position:relative}
.verse p{font-family:var(--display);font-size:clamp(1.6rem,3.2vw,2.4rem);line-height:1.3;font-weight:600;margin:0 auto 1rem;max-width:none}
.verse cite{font-style:normal;color:var(--gold);font-weight:600;letter-spacing:.02em}
.verse cite::before{content:"";display:block;width:3rem;height:2px;background:var(--gold);margin:0 auto .9rem}

/* ---------- Ministry icons ---------- */
.min-icon{width:3.25rem;height:3.25rem;border-radius:50%;background:var(--sky);color:var(--blue);display:grid;place-items:center;margin-bottom:1rem;transition:background .3s,color .3s,transform .4s var(--ease)}
.min-icon svg{width:1.6rem;height:1.6rem}
.min-card:hover .min-icon{background:var(--gold);color:var(--ink);transform:rotate(-8deg) scale(1.06)}
.hero .wrap{z-index:1}
.page-head{padding-bottom:8.5rem}
.page-head .wrap{position:relative;z-index:1}
.page-head .scene{height:170px;opacity:.7}
@media (max-width:700px){.page-head{padding-bottom:6.5rem}.page-head .scene{height:120px}}
.hero .scene{overflow:visible}
.hero .sc-sun circle{filter:blur(.5px)}
.hero .sc-sun circle:first-child{filter:blur(18px)}
.hero .sc-sun circle:nth-child(2){filter:blur(8px)}

/* ---------- Logo in header ---------- */
.brand img{width:46px;height:auto;flex:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));transition:transform .5s var(--ease)}
.brand:hover img{transform:rotate(-8deg) scale(1.05)}
.footer-logo{width:72px;margin-bottom:1rem}

/* ---------- 125 years ---------- */
.anniv{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.anniv picture{display:block}
.anniv img{width:100%;border-radius:12px;border:1px solid var(--rule)}
.anniv .years{font-family:var(--display);font-weight:700;color:var(--blue-2);font-size:1.1rem;margin-bottom:.35rem}
@media (max-width:900px){.anniv{grid-template-columns:1fr;gap:1.75rem}}

/* ---------- Photos ---------- */

.anniv img{height:auto}

/* ---------- Journey banners on inner pages ---------- */
.page-head{padding:2.75rem 0 10.5rem;background:linear-gradient(180deg,#072C46 0%,#0A3C5F 55%,#1D5476 100%)}
.page-head .wrap{position:relative;z-index:1}
.page-head .scene.pano{position:absolute;left:0;right:0;bottom:0;width:100%;height:250px;opacity:1;pointer-events:none}
.pano-sun circle:first-child{filter:blur(16px)}
.pano-sun circle:nth-child(2){filter:blur(7px)}
@media (max-width:700px){.page-head{padding-bottom:7.5rem}.page-head .scene.pano{height:170px}}
@media (prefers-reduced-motion:no-preference){
  .pano .sc-win{opacity:.25;animation:lamp 1s ease-out .6s forwards}
  .pano .blades{animation:spin 9s linear infinite;transform-box:view-box;transform-origin:0 0}
  .pano .smoke{animation:smoke 4s ease-in-out infinite;transform-box:fill-box;transform-origin:bottom}
  .pano .birds{animation:fly 14s ease-in-out infinite alternate}
  .pano .hill-cross path{animation:crossglow 4s ease-in-out infinite}
  @keyframes pano-rise{from{transform:translateY(40px);opacity:.3}}
  @keyframes spin{to{transform:rotate(360deg)}}
  @keyframes smoke{0%{opacity:0;transform:translateY(6px)}40%{opacity:.6}100%{opacity:0;transform:translateY(-10px)}}
  @keyframes fly{to{transform:translate(160px,-14px)}}
  @keyframes crossglow{50%{stroke:#FFF3E6;filter:drop-shadow(0 0 6px rgba(252,225,202,.8))}}

}

/* ---------- Scripture banner in the logo's peach ---------- */
.verse{background:var(--gold);color:var(--blue)}
.verse::before{background:radial-gradient(36rem 16rem at 50% 115%,rgba(255,255,255,.55),transparent 70%)}
.verse p{color:var(--blue)}
.verse cite{color:var(--blue-2)}
.verse cite::before{background:var(--blue-2)}

/* ---------- Light footer so the logo reads clearly ---------- */
.site-footer{background:var(--white);color:var(--stone);border-top:1px solid var(--rule)}
.site-footer h2{color:var(--blue)}
.site-footer a{color:var(--blue-2)}
.site-footer a:hover{color:var(--blue)}
.footer-logo{width:128px;height:auto;margin-bottom:1rem}
.footer-base{border-top:1px solid var(--rule)}

/* ---------- Panning between pages ---------- */
.pano .pt,.pano .pano-sun{will-change:transform}
.pano.panning .pt,.pano.panning .pano-sun{transition:transform 1.6s cubic-bezier(.45,.05,.2,1)}
@media (prefers-reduced-motion:no-preference){
  .scene .shimmer{animation:shimmer 3s ease-in-out infinite}
  .scene .corn{transform-box:fill-box;transform-origin:bottom;animation:sway 5s ease-in-out infinite}
  @keyframes shimmer{50%{opacity:.35}}
  @keyframes sway{50%{transform:skewX(-3deg)}}
}

/* ---------- Little moving details ---------- */
@media (prefers-reduced-motion:no-preference){
  .scene .flag{transform-box:fill-box;transform-origin:top center;animation:flutter 2.4s ease-in-out infinite}
  .scene .flag:nth-child(odd){animation-delay:-1.2s}
  .scene .flame{transform-box:fill-box;transform-origin:bottom center;animation:flicker .9s ease-in-out infinite alternate}
  .scene .glow{animation:glowp 1.8s ease-in-out infinite alternate}
  .scene .laundry{transform-box:fill-box;transform-origin:top center;animation:flutter 3s ease-in-out infinite}
  @keyframes flutter{50%{transform:skewX(10deg) scaleY(.92)}}
  @keyframes flicker{0%{transform:scale(1,1)}50%{transform:scale(.9,1.12)}100%{transform:scale(1.06,.92)}}
  @keyframes glowp{to{opacity:.22}}
}
.cheese{pointer-events:none}
.brand-mark{width:50px;height:50px;filter:drop-shadow(0 3px 8px rgba(0,0,0,.3))}
.brand img:not(.brand-mark){display:none}

/* Scenery grows with very wide screens so nothing is cropped at the top */
.hero .scene{height:clamp(220px,29.2vw,640px)}
.hero .wrap{padding-bottom:max(14.5rem,17.5vw)}
.page-head .scene.pano{height:clamp(250px,18.1vw,460px)}
.page-head{padding-bottom:max(10.5rem,11vw)}
@media (max-width:900px){.hero .scene{height:210px}.hero .wrap{padding-bottom:10.5rem}}
@media (max-width:700px){.page-head .scene.pano{height:170px}.page-head{padding-bottom:7.5rem}}

/* ---------- Ask us a question ---------- */
.ask{position:fixed;right:1.25rem;bottom:1.25rem;z-index:40;font-size:1rem}
.ask-btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--gold);color:var(--blue);border:1px solid #F3CDAE;border-radius:999px;padding:.65rem 1.05rem .65rem .85rem;font:600 .98rem var(--body);cursor:pointer;box-shadow:0 8px 22px rgba(0,30,50,.18);transition:transform .25s var(--ease),box-shadow .25s,opacity .25s}
.ask-btn svg{width:22px;height:22px}
.ask-btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,30,50,.24)}
.ask.open .ask-btn{opacity:0;pointer-events:none;transform:scale(.9)}
@media (prefers-reduced-motion:no-preference){.ask-btn{animation:ask-in .6s var(--ease) 2.5s both}@keyframes ask-in{from{opacity:0;transform:translateY(16px)}}}
.ask-panel{position:absolute;right:0;bottom:0;width:min(23rem,calc(100vw - 2.5rem));max-height:calc(100vh - 6.5rem);overflow:auto;background:var(--white);border-radius:16px;box-shadow:0 24px 60px rgba(0,30,50,.28);transform-origin:bottom right}
@keyframes ask-open{from{opacity:0;transform:translateY(12px) scale(.96)}}
.ask-panel header{display:flex;justify-content:space-between;align-items:center;background:var(--blue);color:var(--white);padding:.9rem 1.1rem;position:sticky;top:0}
.ask-panel h2{color:var(--white);font-size:1.15rem;margin:0}
.ask-close{background:none;border:0;color:var(--white);font-size:1.6rem;line-height:1;cursor:pointer;padding:0 .2rem;opacity:.85}
.ask-close:hover{opacity:1}
.ask-panel form,.ask-done{padding:1rem 1.1rem 1.2rem;display:grid;gap:.85rem}
.ask-intro{margin:0;color:var(--stone);font-size:.95rem}
.ask-panel label{display:grid;gap:.3rem;font-weight:600;font-size:.92rem;color:var(--ink)}
.ask-panel input:not([type=radio]):not([type=checkbox]),.ask-panel textarea{font:400 1rem var(--body);padding:.6rem .7rem;border:1.5px solid var(--rule);border-radius:8px;background:var(--paper);color:var(--ink);transition:border-color .2s,background .2s}
.ask-panel input:focus,.ask-panel textarea:focus{outline:none;border-color:var(--blue-2);background:var(--white)}
.ask-panel textarea{resize:vertical;min-height:5.5rem}
.ask-topics{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.ask-topics legend{font-weight:600;font-size:.92rem;margin-bottom:.35rem;padding:0}
.ask-topics label{display:block;font-weight:400}
.ask-topics input{position:absolute;opacity:0;pointer-events:none}
.ask-topics span{display:inline-block;padding:.35rem .75rem;border-radius:999px;border:1.5px solid var(--rule);font-size:.9rem;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.ask-topics input:checked + span{background:var(--blue);border-color:var(--blue);color:var(--white)}
.ask-topics input:focus-visible + span{outline:3px solid var(--accent);outline-offset:2px}
.ask-status{margin:0;font-size:.92rem;color:#8C2A22;min-height:0}
.ask-status:empty{display:none}
.ask-send{justify-content:center}
.ask-send[disabled]{opacity:.6;cursor:wait}
.ask-done{text-align:center;justify-items:center;padding:1.75rem 1.25rem}
.ask-done svg{width:56px;height:56px}
.ask-done h3{margin:0}
.ask-done p{margin:0;color:var(--stone)}
@media (prefers-reduced-motion:no-preference){.ask-done:not([hidden]) svg path{stroke-dasharray:40;stroke-dashoffset:40;animation:tick .5s var(--ease) .15s forwards}@keyframes tick{to{stroke-dashoffset:0}}}
@media (max-width:600px){.ask{right:.85rem;bottom:.85rem}.ask-btn span{display:none}.ask-btn{padding:.75rem}}
.ask-panel{display:flex;flex-direction:column;overflow:hidden}
.ask-panel[hidden]{display:none}
.ask-panel header{position:static;flex:none}
.ask-panel form,.ask-done{overflow-y:auto;min-height:0}
.ask-panel form[hidden],.ask-done[hidden]{display:none}
.ask-panel{overflow:clip}
.ask-panel{padding:0}
.ask-panel label small{font-weight:400;color:var(--stone)}
.ask-anon{margin:0;font-size:.9rem;color:var(--stone);background:var(--sky);border-radius:8px;padding:.6rem .75rem}
.ask-anon[hidden],[data-contact-row][hidden]{display:none}

/* ---------- Verse of the day ---------- */
.verse-label{font-weight:600;color:var(--blue-2);margin:0 auto 1rem;font-size:1rem}
.verse blockquote p{transition:opacity .4s}

/* ---------- Live-now note (Sunday mornings only) ---------- */
.live-now{background:var(--gold-soft);border-bottom:1px solid #F3CDAE;font-size:1rem;color:var(--ink)}
.live-now .wrap{padding-top:.6rem;padding-bottom:.6rem}
.live-now a{font-weight:600}

/* ---------- This week ---------- */
.week-wrap{padding-bottom:1rem}
.week-wrap .section-head p{flex-basis:auto;margin:0;color:var(--blue-2);font-weight:600}
.week{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,1fr);gap:.6rem}
.day-cell{position:relative;aspect-ratio:1/1;background:var(--white);border:1.5px solid var(--rule);border-radius:12px;padding:.7rem .75rem;display:flex;flex-direction:column;gap:.4rem;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s}
.day-cell:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,30,50,.1)}
.dc-top{display:flex;justify-content:space-between;align-items:baseline}
.dc-name{font-weight:600;color:var(--stone);font-size:.9rem}
.dc-date{font-family:var(--display);font-weight:700;font-size:1.6rem;color:var(--blue);line-height:1}
.day-cell ul{list-style:none;margin:auto 0 0;padding:0;font-size:.82rem;line-height:1.3;color:var(--ink);display:grid;gap:.2rem}
.day-cell ul b{color:var(--blue-2)}
.day-cell.past{opacity:.55}
.day-cell.today{border-color:var(--accent);box-shadow:0 0 0 3px rgba(217,130,63,.18)}
.day-cell.sunday{background:var(--blue);border-color:var(--blue)}
.day-cell.sunday .dc-name{color:#CFE0E6}.day-cell.sunday .dc-date{color:var(--white)}
.day-cell.sunday ul{color:#E6EEF2}.day-cell.sunday ul b{color:var(--gold)}
.dc-cross{position:absolute;right:-.4rem;bottom:-.6rem;width:5.2rem;height:5.2rem;color:var(--gold);opacity:.22;pointer-events:none}
.dc-cross svg{width:100%;height:100%}
@media (prefers-reduced-motion:no-preference){
  .dc-cross{animation:cross-glow 3.2s ease-in-out infinite}
  @keyframes cross-glow{50%{opacity:.5;filter:drop-shadow(0 0 10px rgba(252,225,202,.9))}}
}
@media (max-width:900px){.week{grid-template-columns:repeat(4,1fr)}.day-cell{aspect-ratio:auto;min-height:7.5rem}}
@media (max-width:520px){.week{grid-template-columns:repeat(2,1fr)}}

/* ---------- Question box: smoother motion ---------- */
.ask-btn svg{transition:transform .35s var(--ease)}
.ask-btn:hover svg{transform:rotate(-10deg) scale(1.08)}
.ask-btn{transition:transform .3s var(--ease),box-shadow .3s,opacity .2s}
@media (prefers-reduced-motion:no-preference){
  .ask-panel:not([hidden]):not(.closing){animation:ask-pop .42s cubic-bezier(.2,1.2,.35,1) both}
  .ask-panel.closing{animation:ask-shut .22s ease-in both}
  .ask-panel:not([hidden]):not(.closing) form > *{animation:ask-field .38s var(--ease) both;animation-delay:calc(120ms + var(--n,0) * 35ms)}
  .ask-panel:not([hidden]) header h2{animation:ask-field .35s var(--ease) .08s both}
  @keyframes ask-pop{from{opacity:0;transform:translateY(18px) scale(.82);border-radius:28px}}
  @keyframes ask-shut{to{opacity:0;transform:translateY(12px) scale(.9)}}
  @keyframes ask-field{from{opacity:0;transform:translateY(8px)}}
  .ask-topics span{transition:background .25s,border-color .25s,color .25s,transform .2s var(--ease)}
  .ask-topics span:active{transform:scale(.94)}
  .ask-topics input:checked + span{animation:chip .3s var(--ease)}
  @keyframes chip{40%{transform:scale(1.08)}}
}
.verse p.verse-label{font:600 1rem/1.4 var(--body);color:var(--blue-2);margin:0 auto 1rem}
.day-cell{aspect-ratio:auto;min-height:9.5rem}

/* =====================================================================
   Seasons and holidays. The theme script in <head> sets
   html[data-season] and html[data-holiday] from the date.
   ===================================================================== */
:root{--sky-a:#072C46;--sky-b:#0A3C5F;--sky-c:#1D5476;--sky-d:#46789A;
  --h-far:#22587E;--h-mid:#154568;--h-near:#0C3150;--h-tree:#0F3A5A;--h-crown:#123F61;--h-fence:#2C5878}
html[data-season="winter"]{--sky-c:#2A5B7D;--sky-d:#7EA2BC;--h-far:#8EA9BF;--h-mid:#BCCEDC;--h-near:#D9E5EE;--h-tree:#1E4560;--h-crown:#5D7A90;--h-fence:#6F8BA0}
html[data-season="spring"]{--sky-c:#24618A;--sky-d:#86B5CC;--h-far:#2D6A68;--h-mid:#2B6450;--h-near:#22553F;--h-tree:#173F35;--h-crown:#C98AA0;--h-fence:#4E8470}
html[data-season="summer"]{--sky-c:#2A6893;--sky-d:#E3B88E;--h-far:#2E6D60;--h-mid:#2C6A45;--h-near:#22573A;--h-tree:#163F2B;--h-crown:#2F7149;--h-fence:#4C8660}
html[data-season="fall"]{--sky-c:#3A5F7A;--sky-d:#C99266;--h-far:#6F6748;--h-mid:#6B5832;--h-near:#57472A;--h-tree:#22392C;--h-crown:#C8642E;--h-fence:#8F7A55}
html[data-holiday="easter"]{--sky-d:#F2C79A}
html[data-holiday="christmas"],html[data-holiday="newyear"]{--sky-a:#061F33;--sky-b:#0A2F4C;--sky-c:#1E4766;--sky-d:#5D7F99}

.hero{background:linear-gradient(180deg,var(--sky-a) 0%,var(--sky-b) 45%,var(--sky-c) 78%,var(--sky-d) 100%)}
.page-head{background:linear-gradient(180deg,var(--sky-a) 0%,var(--sky-b) 55%,var(--sky-c) 85%,var(--sky-d) 100%)}
.scene .f-far{fill:var(--h-far)} .scene .f-mid{fill:var(--h-mid)} .scene .f-near{fill:var(--h-near)}
.scene .f-tree{fill:var(--h-tree)} .scene .f-crown circle{fill:var(--h-crown)} .scene .f-fence{fill:var(--h-fence)}
.scene .s-fence{stroke:var(--h-fence)}
.scene .f-far,.scene .f-mid,.scene .f-near,.scene .f-tree,.scene .f-crown circle{transition:fill 1s}
html[data-season="fall"] .scene .f-crown:nth-of-type(3n) circle{fill:#D9922F}
html[data-season="fall"] .scene .f-crown:nth-of-type(3n+1) circle{fill:#A8432E}
html[data-season="spring"] .scene .f-crown:nth-of-type(2n) circle{fill:#E3B5C4}

/* snow on pines and roofs only in winter */
.scene .snowcap{display:none;fill:#EEF4F8}
html[data-season="winter"] .scene .snowcap{display:inline}
html[data-season="winter"] .scene .cow{display:none}
html[data-season="winter"] .scene .corn{display:none}
html[data-season="winter"] .scene .sc-win{fill:#FFD9A8}

/* holiday decorations are hidden unless their holiday is on */
.scene .dec{display:none}
html[data-holiday="christmas"] .scene .dec-christmas,
html[data-holiday="easter"] .scene .dec-easter,
html[data-holiday="thanksgiving"] .scene .dec-thanksgiving,
html[data-holiday="july4"] .scene .dec-july4,
html[data-holiday="july4"] .scene .dec-fireworks,
html[data-holiday="newyear"] .scene .dec-fireworks{display:inline}
html[data-holiday="newyear"] .scene .firework g{stroke:#F7C548}
html[data-holiday="easter"] .scene .sun-core{fill:#FCE1CA}
html[data-holiday="easter"] .scene .sun-glow{opacity:.24}
html[data-holiday="easter"] .hero .sc-sun{transform:translateY(-40px)}
html[data-holiday="christmas"] .scene .sc-sun,html[data-holiday="newyear"] .scene .sc-sun,
html[data-holiday="christmas"] .scene .pano-sun,html[data-holiday="newyear"] .scene .pano-sun{opacity:.25}

@media (prefers-reduced-motion:no-preference){
  .scene .bulb{animation:twinkle 1.6s ease-in-out infinite}
  .scene .bulb.b1{animation-delay:-.3s}.scene .bulb.b2{animation-delay:-.7s}.scene .bulb.b3{animation-delay:-1s}.scene .bulb.b4{animation-delay:-1.3s}
  @keyframes twinkle{50%{opacity:.35}}
  .scene .xstar{transform-box:fill-box;transform-origin:center;animation:starglow 3s ease-in-out infinite}
  @keyframes starglow{50%{opacity:.75;transform:scale(1.08)}}
  .scene .firework{opacity:0;animation:fw-op 3.4s ease-out infinite;animation-delay:var(--d,0s)}
  .scene .firework > g{transform-box:fill-box;transform-origin:center;animation:fw-grow 3.4s ease-out infinite;animation-delay:var(--d,0s)}
  @keyframes fw-op{0%{opacity:0}6%{opacity:1}40%{opacity:0}100%{opacity:0}}
  @keyframes fw-grow{0%{transform:scale(.15)}40%,100%{transform:scale(1.15)}}
  .scene .calvary path{animation:crossglow 4s ease-in-out infinite}
}

/* holiday note in the hero, and the preview pill */
.holiday-note{display:inline-block;background:rgba(252,225,202,.14);border:1px solid rgba(252,225,202,.35);color:var(--white)!important;border-radius:10px;padding:.55rem .85rem;font-size:1.02rem!important}
.holiday-note[hidden]{display:none}
.theme-pill{position:fixed;left:50%;top:5.25rem;transform:translateX(-50%);z-index:30;background:var(--white);color:var(--ink);border-radius:999px;padding:.45rem 1rem;box-shadow:0 10px 26px rgba(0,30,50,.22);font-size:.95rem;display:flex;gap:.9rem;align-items:center;white-space:nowrap}
.theme-pill[hidden]{display:none}
.theme-pill a{font-weight:600}
@media (max-width:600px){.theme-pill{top:auto;bottom:5rem;font-size:.85rem;gap:.6rem}}

/* themes page */
.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem}
.theme-card{display:block;border-radius:14px;padding:1.2rem 1.25rem 1.3rem;text-decoration:none;color:var(--white);min-height:8.5rem;position:relative;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s}
.theme-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,30,50,.18);color:var(--white)}
.theme-card b{display:block;font-family:var(--display);font-size:1.3rem;margin-bottom:.35rem}
.theme-card span{font-size:.95rem;opacity:.92;display:block;max-width:22rem}
.t-winter{background:linear-gradient(160deg,#0A3C5F,#7EA2BC 70%,#D9E5EE)}
.t-spring{background:linear-gradient(160deg,#0A3C5F,#2B6450 70%,#C98AA0)}
.t-summer{background:linear-gradient(160deg,#0A3C5F,#2C6A45 70%,#E3B88E)}
.t-fall{background:linear-gradient(160deg,#0A3C5F,#6B5832 65%,#C8642E)}
.t-christmas{background:linear-gradient(160deg,#061F33,#1F5A3E 70%,#C0392B)}
.t-newyear{background:linear-gradient(160deg,#061F33,#0A2F4C 60%,#F7C548)}
.t-easter{background:linear-gradient(160deg,#0A3C5F,#86B5CC 65%,#F2C79A)}
.t-thanksgiving{background:linear-gradient(160deg,#0A3C5F,#6B5832 60%,#D9822F)}
.t-july4{background:linear-gradient(160deg,#3C3B6E,#0A3C5F 55%,#B22234)}

/* falling snow, petals, leaves and fireflies */
.fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.hero .wrap,.page-head .wrap{z-index:1}
.scene .xstar circle{filter:blur(7px)}
html[data-holiday="christmas"] .scene .sc-sun,html[data-holiday="newyear"] .scene .sc-sun,
html[data-holiday="christmas"] .scene .pano-sun,html[data-holiday="newyear"] .scene .pano-sun{display:none}

/* =====================================================================
   Home page: When and where card, first visit, holiday sections
   ===================================================================== */
h1,h2,h3{color:var(--heading,var(--blue))}
.hero h1,.page-head h1,.verse p,.ask-panel h2{color:inherit}
.hero h1,.page-head h1,.ask-panel h2{color:var(--white)}
.btn-dark{background:var(--btn-dark,var(--blue))}
.btn-dark:hover{background:var(--btn-dark,var(--blue));filter:brightness(1.15)}
.btn-line{border-color:var(--rule);color:var(--heading,var(--blue));background:var(--white)}
.btn-line:hover{border-color:var(--heading,var(--blue));color:var(--heading,var(--blue))}

.hero .hero-copy p:first-of-type{font-size:1.3rem}
.when-wrap{position:relative;z-index:2;margin-top:-3.5rem}
.when{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);background:var(--white);border-radius:16px;box-shadow:0 20px 44px rgba(0,30,50,.14);overflow:hidden}
.when-col{padding:1.6rem 1.75rem 1.75rem}
.when-col + .when-col{border-left:1px solid var(--rule)}
.when h2{font-size:1.35rem;margin:0 0 .9rem;padding-bottom:.6rem;border-bottom:3px solid var(--gold)}
.when ul{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.when li{display:grid;grid-template-columns:5.6rem 1fr;gap:.6rem;align-items:baseline;font-size:1.05rem;line-height:1.35}
.when li b{font-family:var(--display);font-size:1.3rem;color:var(--heading,var(--blue));white-space:nowrap}
.when .where p{margin:0 0 1.1rem;font-size:1.1rem;line-height:1.5}
.when-actions{display:flex;gap:.6rem;flex-wrap:wrap}
.when-actions .btn{padding:.65rem 1rem;font-size:.98rem}
@media (max-width:900px){.when{grid-template-columns:1fr}.when-col + .when-col{border-left:0;border-top:1px solid var(--rule)}}

.first-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.first-grid li{background:var(--white);border:1px solid var(--rule);border-radius:14px;padding:1.5rem 1.5rem 1.6rem;transition:transform .3s var(--ease),box-shadow .3s}
.first-grid li:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,30,50,.08)}
.first-grid svg{width:2.4rem;height:2.4rem;color:var(--heading,var(--blue));margin-bottom:.8rem}
.first-grid h3{margin-bottom:.35rem}
.first-grid p{margin:0;font-size:1.02rem;color:var(--stone)}
@media (max-width:900px){.first-grid{grid-template-columns:1fr}}

.holiday-note{white-space:nowrap;display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:1.05rem!important;padding:.45rem .9rem}

/* Holiday sections on the home page (only one shows, during its holiday) */
.hb{display:none;padding:4.5rem 0}
html[data-holiday="christmas"] .hb-christmas,html[data-holiday="easter"] .hb-easter,html[data-holiday="thanksgiving"] .hb-thanksgiving,
html[data-holiday="newyear"] .hb-newyear,html[data-holiday="july4"] .hb-july4{display:block}
.hb-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3.25rem;align-items:center}
.hb-art{margin:0;border-radius:18px;overflow:hidden;box-shadow:0 24px 50px rgba(0,20,40,.25)}
.hb-art svg{display:block;width:100%;height:auto}
.hb-text h2{font-size:clamp(1.9rem,3.4vw,2.6rem)}
.hb-text blockquote{margin:0 0 1.25rem;padding:1rem 1.25rem;border-left:4px solid var(--hb-accent,var(--gold));background:var(--hb-quote,rgba(255,255,255,.6));border-radius:0 12px 12px 0}
.hb-text blockquote p{font-family:var(--display);font-size:1.25rem;line-height:1.45;margin:0 0 .5rem;color:var(--heading)}
.hb-text cite{font-style:normal;font-weight:600;color:var(--stone)}
.hb-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.25rem}
@media (max-width:900px){.hb-grid{grid-template-columns:1fr;gap:2rem}}
@media (prefers-reduced-motion:no-preference){
  .hb-art .bstar,.scene .xstar.big{transform-box:fill-box;transform-origin:center;animation:starglow 3s ease-in-out infinite}
  .hb-art .rays.slow{transform-box:fill-box;transform-origin:center;animation:spin 60s linear infinite}
  .hb-art .tw{animation:twinkle 2.4s ease-in-out infinite;animation-delay:var(--d,0s)}
  .hb-art .mglow,.scene .mglow{animation:glowp 2.6s ease-in-out infinite alternate}
  .hb-art .tombglow,.scene .tombglow{animation:glowp 3s ease-in-out infinite alternate}
  .hb-art .firework{opacity:0;animation:fw-op 3.6s ease-out infinite;animation-delay:var(--d,0s)}
  .hb-art .firework > g{transform-box:fill-box;transform-origin:center;animation:fw-grow 3.6s ease-out infinite;animation-delay:var(--d,0s)}
  @keyframes spin{to{transform:rotate(360deg)}}
}

/* =====================================================================
   Holiday makeovers across the whole site
   ===================================================================== */
.site-header::after{content:"";position:absolute;left:0;right:0;top:100%;height:22px;background-repeat:repeat-x;background-position:0 0;pointer-events:none;display:none}
html[data-holiday] .site-header::after{display:block}
@media (prefers-reduced-motion:no-preference){html[data-holiday] .site-header::after{animation:garland 40s linear infinite}@keyframes garland{to{background-position:400px 0}}}
html[data-holiday="christmas"] .site-header::after{background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2280%22 height=%2222%22%3E%3Cpath d=%22M0 4q20 16 40 0t40 0%22 fill=%22none%22 stroke=%22%231F5A3E%22 stroke-width=%227%22 stroke-linecap=%22round%22/%3E%3Cpath d=%22M0 4q20 16 40 0t40 0%22 fill=%22none%22 stroke=%22%232F7149%22 stroke-width=%223%22 stroke-dasharray=%222 4%22/%3E%3Ccircle cx=%2220%22 cy=%2212%22 r=%223%22 fill=%22%23C0392B%22/%3E%3Ccircle cx=%2225%22 cy=%2211%22 r=%222.4%22 fill=%22%23C0392B%22/%3E%3Ccircle cx=%2260%22 cy=%2212%22 r=%222.6%22 fill=%22%23F7C548%22/%3E%3C/svg%3E")}
html[data-holiday="july4"] .site-header::after{background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2266%22 height=%2220%22%3E%3Cpath d=%22M0 1h66%22 stroke=%22%23C9D6DC%22 stroke-width=%221.5%22/%3E%3Cpath d=%22M2 1h18l-9 15Z%22 fill=%22%23B22234%22/%3E%3Cpath d=%22M24 1h18l-9 15Z%22 fill=%22%23FFFFFF%22/%3E%3Cpath d=%22M46 1h18l-9 15Z%22 fill=%22%233C3B6E%22/%3E%3C/svg%3E")}
html[data-holiday="thanksgiving"] .site-header::after{background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2272%22 height=%2220%22%3E%3Cpath d=%22M0 3q18 10 36 0t36 0%22 fill=%22none%22 stroke=%22%238C6339%22 stroke-width=%221.5%22/%3E%3Cpath transform=%22translate(14 9) rotate(30)%22 d=%22M0 -7Q7 0 0 7Q-7 0 0 -7Z%22 fill=%22%23C8642E%22/%3E%3Cpath transform=%22translate(36 4) rotate(-20)%22 d=%22M0 -6Q6 0 0 6Q-6 0 0 -6Z%22 fill=%22%23E0B04A%22/%3E%3Cpath transform=%22translate(56 9) rotate(10)%22 d=%22M0 -7Q7 0 0 7Q-7 0 0 -7Z%22 fill=%22%23A8432E%22/%3E%3C/svg%3E")}
html[data-holiday="easter"] .site-header::after{background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2264%22 height=%2218%22%3E%3Cpath d=%22M0 4q16 10 32 0t32 0%22 fill=%22none%22 stroke=%22%237E6AA6%22 stroke-width=%222%22/%3E%3Cg fill=%22%23FFFFFF%22%3E%3Ccircle cx=%2216%22 cy=%228%22 r=%223%22/%3E%3Ccircle cx=%2248%22 cy=%228%22 r=%223%22/%3E%3C/g%3E%3Cg fill=%22%23F2C14E%22%3E%3Ccircle cx=%2216%22 cy=%228%22 r=%221.1%22/%3E%3Ccircle cx=%2248%22 cy=%228%22 r=%221.1%22/%3E%3C/g%3E%3C/svg%3E")}
html[data-holiday="newyear"] .site-header::after{background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2260%22 height=%2216%22%3E%3Cg fill=%22%23F1D27A%22%3E%3Ccircle cx=%226%22 cy=%225%22 r=%222%22/%3E%3Crect x=%2218%22 y=%228%22 width=%225%22 height=%222%22 transform=%22rotate(30 20 9)%22/%3E%3Ccircle cx=%2232%22 cy=%224%22 r=%221.5%22/%3E%3Crect x=%2242%22 y=%226%22 width=%225%22 height=%222%22 transform=%22rotate(-40 44 7)%22/%3E%3Ccircle cx=%2254%22 cy=%2210%22 r=%222%22/%3E%3C/g%3E%3Ccircle cx=%2226%22 cy=%2212%22 r=%221.5%22 fill=%22%23FFFFFF%22/%3E%3C/svg%3E")}

html[data-holiday="christmas"]{--heading:#1F4D3A;--btn-dark:#8E2A2A;--gold:#F3D9A4;--gold-hover:#F8E3B8;--gold-soft:#FBF3E4;--accent:#B23A3A;--paper:#FBF8F2;--hb-accent:#8E2A2A;--hb-quote:#FFFFFF}
html[data-holiday="christmas"] .verse{background:#1F4D3A;color:#FBF3E4}
html[data-holiday="christmas"] .verse p,html[data-holiday="christmas"] .verse p.verse-label{color:#FBF3E4}
html[data-holiday="christmas"] .verse cite{color:#F3D9A4}
html[data-holiday="christmas"] .hb-christmas{background:linear-gradient(180deg,#FBF3E4,#F6E9D2)}
html[data-holiday="christmas"] .site-footer{background:#FBF3E4;border-top:4px solid #8E2A2A}

html[data-holiday="easter"]{--heading:#4E3A73;--btn-dark:#4E3A73;--gold:#F6E3A8;--gold-hover:#FAEDC2;--gold-soft:#F7F2FB;--accent:#7E6AA6;--paper:#FAF8FC;--hb-accent:#7E6AA6;--hb-quote:#FFFFFF}
html[data-holiday="easter"] .verse{background:#EDE4F6}
html[data-holiday="easter"] .verse p,html[data-holiday="easter"] .verse p.verse-label{color:#4E3A73}
html[data-holiday="easter"] .hb-easter{background:linear-gradient(180deg,#F7F2FB,#FBF3E6)}
html[data-holiday="easter"] .site-footer{border-top:4px solid #7E6AA6}

html[data-holiday="thanksgiving"]{--heading:#7A3B1E;--btn-dark:#7A3B1E;--gold:#F4C58C;--gold-hover:#F8D6AC;--gold-soft:#FBF0E2;--accent:#C8642E;--paper:#FBF7F1;--hb-accent:#C8642E;--hb-quote:#FFFFFF}
html[data-holiday="thanksgiving"] .verse{background:#7A3B1E}
html[data-holiday="thanksgiving"] .verse p,html[data-holiday="thanksgiving"] .verse p.verse-label{color:#FBF0E2}
html[data-holiday="thanksgiving"] .verse cite{color:#F4C58C}
html[data-holiday="thanksgiving"] .hb-thanksgiving{background:linear-gradient(180deg,#FBF0E2,#F6E4CC)}
html[data-holiday="thanksgiving"] .site-footer{background:#FBF0E2;border-top:4px solid #C8642E}

html[data-holiday="newyear"]{--heading:#0A2F4C;--btn-dark:#0A2F4C;--gold:#F1D27A;--gold-hover:#F6E0A0;--gold-soft:#FBF6E6;--accent:#C9A23A;--hb-accent:#C9A23A;--hb-quote:#FFFFFF}
html[data-holiday="newyear"] .verse{background:#0A2F4C}
html[data-holiday="newyear"] .verse p,html[data-holiday="newyear"] .verse p.verse-label{color:#FBF6E6}
html[data-holiday="newyear"] .verse cite{color:#F1D27A}
html[data-holiday="newyear"] .hb-newyear{background:linear-gradient(180deg,#FBF6E6,#F2F5F8)}
html[data-holiday="newyear"] .site-footer{border-top:4px solid #C9A23A}

html[data-holiday="july4"]{--heading:#1F2F5C;--btn-dark:#B22234;--gold:#F2F4F8;--gold-hover:#FFFFFF;--gold-soft:#F3F5FA;--accent:#B22234;--hb-accent:#B22234;--hb-quote:#FFFFFF}
html[data-holiday="july4"] .verse{background:#1F2F5C}
html[data-holiday="july4"] .verse p,html[data-holiday="july4"] .verse p.verse-label{color:#FFFFFF}
html[data-holiday="july4"] .verse cite{color:#F2B8B8}
html[data-holiday="july4"] .hb-july4{background:linear-gradient(180deg,#F3F5FA,#FBF1F1)}
html[data-holiday="july4"] .site-footer{border-top:4px solid #B22234}

/* the hero's holiday scene: cows step aside for the nativity, tomb and harvest wagon */
html[data-holiday="christmas"] .hero .cow,html[data-holiday="easter"] .hero .cow,html[data-holiday="thanksgiving"] .hero .cow{display:none}

/* ---------- Full-sky holiday layer ---------- */
.sky-fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;display:none}
html[data-holiday="newyear"] .sky-fx,html[data-holiday="july4"] .sky-fx{display:block}
.sky-fx .dec{display:none}
html[data-holiday="newyear"] .sky-fx .dec-newyear,html[data-holiday="july4"] .sky-fx .dec-july4{display:inline}
.page-head .sky-fx{z-index:0}
@media (prefers-reduced-motion:no-preference){
  .sky-fx .fw{opacity:0;animation:fw-op var(--t,4s) ease-out infinite;animation-delay:var(--d,0s)}
  .sky-fx .fw-b{transform-box:fill-box;transform-origin:center;animation:fw-big var(--t,4s) cubic-bezier(.1,.8,.3,1) infinite;animation-delay:var(--d,0s)}
  @keyframes fw-big{0%{transform:scale(.1)}45%,100%{transform:scale(1.18)}}
  .plane-fly{animation:fly-by 26s linear infinite}
  @keyframes fly-by{from{transform:translateX(1500px)}to{transform:translateX(-700px)}}
  .flag-wave{animation:none}
  .scene .tomb-rays{transform-box:fill-box;transform-origin:center;animation:spin 50s linear infinite;opacity:.55}
}
@media (prefers-reduced-motion:reduce){.sky-fx .fw{opacity:.8}.plane-fly{transform:translateX(700px)}}

/* falling leaves in the Thanksgiving picture */
.hb-art .fall{opacity:0}
@media (prefers-reduced-motion:no-preference){
  .hb-art .fall{animation:leaf-fall var(--t,10s) linear infinite;animation-delay:var(--d,0s)}
  @keyframes leaf-fall{0%{opacity:0;transform:translate(0,0) rotate(0)}8%{opacity:1}50%{transform:translate(30px,200px) rotate(200deg)}92%{opacity:1}100%{opacity:0;transform:translate(-10px,400px) rotate(420deg)}}
  .plane .prop{transform-box:fill-box;transform-origin:center;animation:prop .12s linear infinite}
  @keyframes prop{50%{transform:scaleY(.25)}}
}
@media (prefers-reduced-motion:reduce){.hb-art .fall{opacity:1}}
html[data-holiday="july4"] .hero{padding-top:7.25rem}

.deacons{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}
.deacons .person{display:grid;grid-template-columns:9rem 1fr;gap:1.4rem;align-items:start}
.deacons .person .portrait,.deacons .person .portrait-empty{margin:0}
@media (max-width:800px){.deacons{grid-template-columns:1fr}}
@media (max-width:440px){.deacons .person{grid-template-columns:1fr}.deacons .person .portrait,.deacons .person .portrait-empty{max-width:9rem}}

.brand img.brand-mark{display:block;width:50px;height:50px;border-radius:50%;box-shadow:0 0 0 2px #fff;background:#FCE1CA;filter:drop-shadow(0 3px 8px rgba(0,0,0,.3))}
.day-cell li.extra{color:var(--rust,#8a3b12);font-weight:600}.sunday li.extra{color:var(--gold,#FCE1CA)}

/* ---------- Beliefs ---------- */
.bl-intro{padding:2.5rem 0 .5rem}
.bl-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;max-width:62rem}
.bl-nav a{display:flex;align-items:center;gap:.7rem;padding:.7rem 1rem .7rem .7rem;border:1px solid var(--rule);border-radius:14px;background:var(--white);color:var(--heading,var(--blue));text-decoration:none;font-weight:600;font-size:.95rem;line-height:1.25;box-shadow:0 1px 2px rgba(10,60,95,.05);transition:border-color .2s,box-shadow .25s,transform .25s var(--ease)}
.bl-nav-ico{flex:none;display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--gold);color:var(--blue);transition:background .2s,color .2s}
.bl-nav-ico svg{width:1.15rem;height:1.15rem}
.bl-nav a:hover{border-color:#E9C9AA;box-shadow:0 6px 16px rgba(10,60,95,.09);transform:translateY(-1px)}
.bl-nav a.here{border-color:var(--blue)}
.bl-nav a.here .bl-nav-ico{background:var(--blue);color:var(--gold)}
@media (max-width:820px){.bl-nav{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.bl-nav a{font-size:.88rem;padding-right:.7rem}}
.bl-group{scroll-margin-top:4.5rem}
.bl-grid{display:grid;grid-template-columns:15rem 1fr;gap:3.5rem;align-items:start}
.bl-head{position:sticky;top:6rem}
.bl-icon{width:3rem;height:3rem;padding:.65rem;border-radius:50%;background:var(--gold);color:var(--blue);margin-bottom:1rem;box-sizing:border-box}
.bl-head h2{font-size:1.75rem;margin-bottom:.4rem}
.bl-head p{color:var(--stone);margin:0}
.bl-list{max-width:42rem}
.belief{padding:1.6rem 0;border-top:1px solid var(--rule)}
.belief:first-child{padding-top:0;border-top:0}
.belief h3{font-size:1.3rem;margin-bottom:.45rem}
.belief p{margin:0 0 .9rem}
.vrefs{display:flex;flex-wrap:wrap;gap:.45rem}
.vref{font:inherit;font-size:.86rem;font-weight:600;color:var(--blue-2);background:var(--white);border:1px solid var(--rule);border-radius:999px;padding:.28rem .75rem;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.vref:hover,.vref[aria-expanded="true"]{background:var(--blue);border-color:var(--blue);color:var(--white)}
.vref:focus-visible{outline:2px solid var(--blue-2);outline-offset:2px}
.vref-hint{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--stone);align-self:center;margin-left:.15rem;transition:opacity .3s}
.vref-hint svg{width:1rem;height:1rem}
.vref-hint.gone{opacity:0}
.vref.hinted{animation:vref-nudge 1.8s ease-out .8s 3}
.vref.hinted:hover,.vref.hinted[aria-expanded="true"]{animation:none}
@keyframes vref-nudge{0%{box-shadow:0 0 0 0 rgba(28,65,125,.4);border-color:var(--blue-2)}70%{box-shadow:0 0 0 7px rgba(28,65,125,0);border-color:var(--blue-2)}100%{box-shadow:0 0 0 0 rgba(28,65,125,0)}}
@media (prefers-reduced-motion:reduce){.vref.hinted{animation:none}}
.vpop{position:absolute;z-index:80;width:min(25rem,calc(100vw - 2rem));max-height:min(60vh,26rem);overflow:auto;background:var(--white);border:1px solid var(--rule);border-radius:12px;box-shadow:0 14px 40px rgba(10,60,95,.22);padding:1rem 1.15rem 1.1rem;opacity:0;transform:translateY(6px);transition:opacity .18s,transform .18s}
.vpop.on{opacity:1;transform:none}
.vpop-top{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}
.vpop-top strong{font-family:var(--display);color:var(--blue);font-size:1.05rem}
.vpop-top span{font-size:.75rem;font-weight:700;color:var(--stone);border:1px solid var(--rule);border-radius:4px;padding:0 .3rem}
.vpop-x{margin-left:auto;border:0;background:none;font-size:1.5rem;line-height:1;color:var(--stone);cursor:pointer;padding:0 .2rem}
.vpop-text{font-family:var(--display);font-size:1.02rem;line-height:1.6;color:var(--ink)}
.vpop-text p{margin:0 0 .5rem}.vpop-text p:last-child{margin:0}
.vpop-text sup{font-family:var(--body,inherit);font-size:.68rem;font-weight:700;color:var(--stone);margin-right:.2rem}
.bl-cta{text-align:center;background:var(--blue);color:var(--white)}
.bl-cta h2{color:var(--white)!important}
.bl-cta p{color:#d7e3ea;margin:0 auto 1.4rem}
.bl-cta .btn-dark{background:var(--gold);color:var(--blue);border-color:var(--gold)}
@media (max-width:820px){.bl-grid{grid-template-columns:1fr;gap:1.5rem}.bl-head{position:static;display:grid;grid-template-columns:auto 1fr;column-gap:1rem;align-items:center}.bl-icon{grid-row:span 2;margin:0}.bl-head h2{font-size:1.5rem;margin:0}}
@media (max-width:600px){.vpop{position:fixed;left:0!important;right:0;bottom:0;top:auto!important;width:auto;max-height:55vh;border-radius:16px 16px 0 0;transform:translateY(20px)}.vpop.on{transform:none}}
@media (prefers-reduced-motion:reduce){.vpop{transition:none}}

/* back to top */
.to-top{position:fixed;right:1.25rem;bottom:5rem;z-index:39;width:2.75rem;height:2.75rem;display:grid;place-items:center;border-radius:50%;border:1px solid var(--rule);background:var(--white);color:var(--blue);cursor:pointer;box-shadow:0 6px 18px rgba(0,30,50,.14);opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .25s,transform .25s var(--ease),box-shadow .2s}
.to-top svg{width:1.2rem;height:1.2rem}
.to-top.show{opacity:1;transform:none;pointer-events:auto}
.to-top:hover{box-shadow:0 10px 22px rgba(0,30,50,.2)}
.to-top:focus-visible{outline:2px solid var(--blue-2);outline-offset:2px}
.ask-is-open .to-top{opacity:0;pointer-events:none}
@media (max-width:600px){.to-top{right:.85rem;bottom:4.6rem;width:2.6rem;height:2.6rem}}

/* address link + copy button */
.addr{display:inline-flex;align-items:flex-start;gap:.45rem}
.addr a{text-decoration:underline;text-decoration-color:rgba(28,65,125,.3);text-underline-offset:3px}
.addr a:hover{text-decoration-color:currentColor}
.copy-addr{position:relative;flex:none;display:grid;place-items:center;width:2rem;height:2rem;margin-top:-.2rem;border:1px solid var(--rule);border-radius:8px;background:var(--white);color:var(--blue-2);cursor:pointer;transition:border-color .2s,background .2s}
.copy-addr svg{width:1rem;height:1rem}
.copy-addr:hover{border-color:var(--blue-2)}
.copy-addr:focus-visible{outline:2px solid var(--blue-2);outline-offset:2px}
.copy-addr.copied{background:var(--blue);border-color:var(--blue);color:var(--white)}
.copy-tip{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translateX(-50%);white-space:nowrap;background:var(--blue);color:var(--white);font-size:.78rem;font-weight:600;padding:.2rem .5rem;border-radius:6px;opacity:0;pointer-events:none;transition:opacity .2s}
.copy-addr.copied .copy-tip{opacity:1}
.site-footer .foot-note{font-size:.9rem;margin:.35rem 0 0}


/* 404 */
.nf{padding:2.5rem 0 4rem}.nf-links{display:flex;flex-wrap:wrap;gap:.75rem}
