/* chrome.css — shared nav/drawer/footer styles (canonical: visit.html vintage).
   Edit here, never per page. Inline page overrides still win: this loads first. */

/* iOS Safari inflates text when a phone is rotated to landscape unless this is
   pinned. 100% keeps the authored size; it does NOT block pinch zoom. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

footer .btn-outline{color:rgba(246,241,232,.92);border-color:rgba(246,241,232,.55)}
footer .btn-outline:hover{background:rgba(246,241,232,.15);color:#fff;border-color:rgba(246,241,232,.80)}
.nav{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(246,241,232,.97);backdrop-filter:blur(10px);border-bottom:var(--rule-faint)}
.nav-inner{max-width:1380px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 3rem}
.nav-logo-name{font-family:var(--f-display);font-weight:500;font-size:1.25rem;color:var(--text);display:block}
.nav-logo-sub{font-family:var(--f-ui);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--stone);display:block}
.nav-links{display:flex;align-items:center;list-style:none}
.nav-links>li{position:relative}
.nav-links>li>a{font-family:var(--f-ui);font-size:.78rem;letter-spacing:.10em;text-transform:uppercase;color:var(--ink);padding:1.1rem .85rem;display:block;transition:color .18s}
.nav-links>li:hover>a{color:var(--maroon)}
.nav-drop{position:absolute;top:100%;left:0;background:var(--vellum);border-top:2px solid var(--maroon);border-bottom:var(--rule-faint);border-left:var(--rule-faint);border-right:var(--rule-faint);min-width:200px;padding:.5rem 0;opacity:0;pointer-events:none;transform:translateY(-4px);transition:all .16s;box-shadow:0 8px 28px rgba(28,20,16,.10)}
.nav-links>li:hover .nav-drop{opacity:1;pointer-events:all;transform:none}
.nav-drop a{display:block;font-family:var(--f-ui);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);padding:.5rem 1.4rem;transition:color .14s}
.nav-drop a:hover{color:var(--maroon)}
.nav-give{font-family:var(--f-ui);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--vellum);background:var(--maroon);padding:.5rem 1.1rem;transition:background .2s}
.nav-give:hover{background:var(--maroon-deep)}
.nav-hamburger{display:none;flex-direction:column;justify-content:space-between;width:28px;height:20px;cursor:pointer;padding:0;background:none;border:none;z-index:400}
.nav-hamburger span{display:block;width:100%;height:2px;background:var(--maroon);transition:all .28s ease;transform-origin:center}
.nav-hamburger.open span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
.nav-drawer-overlay{position:fixed;inset:0;background:rgba(21,8,4,.55);z-index:300;opacity:0;pointer-events:none;transition:opacity .3s}
.nav-drawer-overlay.open{opacity:1;pointer-events:all}
.nav-drawer{position:fixed;top:0;right:0;bottom:0;width:300px;max-width:85vw;background:var(--apse);z-index:350;transform:translateX(100%);transition:transform .32s cubic-bezier(.4,0,.2,1),visibility 0s .32s;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;overscroll-behavior:contain;visibility:hidden}
.nav-drawer.open{transform:translateX(0);visibility:visible;transition:transform .32s cubic-bezier(.4,0,.2,1),visibility 0s}
.nav-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.75rem;border-bottom:1px solid rgba(246,241,232,.10)}
.nav-drawer-logo{font-family:var(--f-display);font-size:1.1rem;color:rgba(246,241,232,.90);line-height:1.2}
.nav-drawer-logo span{display:block;font-family:var(--f-ui);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(246,241,232,.42);margin-top:.2rem}
.nav-drawer-close{width:32px;height:32px;background:rgba(255,255,255,.08);border:none;color:rgba(255,255,255,.65);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background .2s}
.nav-drawer-close:hover{background:rgba(255,255,255,.15)}
.nav-drawer-links{padding:1rem 0;flex:1}
.nav-drawer-links a{display:block;font-family:var(--f-ui);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(246,241,232,.70);padding:.9rem 1.75rem;border-bottom:1px solid rgba(255,255,255,.05);transition:all .18s}
.nav-drawer-links a:hover{color:#fff;background:rgba(255,255,255,.05)}
.nav-drawer-links .drawer-section{font-family:var(--f-ui);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(184,131,40,.55);padding:.85rem 1.75rem .35rem;display:block}
.nav-drawer-give{margin:1.25rem 1.75rem;display:block;text-align:center;font-family:var(--f-ui);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;padding:.85rem;background:var(--maroon);color:var(--vellum);transition:background .2s}
.nav-drawer-give:hover{background:var(--maroon-deep)}
footer{background:var(--apse);border-top:1px solid rgba(184,131,40,.14);padding:3rem 4.5rem 2rem}
.footer-cols{max-width:1380px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:4rem;margin-bottom:2.5rem}
.footer-my-journey{display:inline-block;margin-top:.5rem;padding:.42rem 1rem;border:1px solid rgba(246,241,232,.55);color:rgba(246,241,232,.9);font-family:var(--f-ui);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;transition:border-color .2s,color .2s}
.footer-my-journey:hover{border-color:rgba(246,241,232,1);color:rgba(246,241,232,1)}
.footer-logo-img{height:44px;width:auto;display:block;margin-bottom:1.75rem;filter:brightness(0) invert(1);opacity:.85}
.footer-nav-sub{font-family:var(--f-ui);font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(184,131,40,.55);display:block;margin:1.25rem 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid rgba(246,241,232,.04)}
.footer-col-head{font-family:var(--f-ui);font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:rgba(246,241,232,.82);display:block;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid rgba(246,241,232,.18)}
.footer-name{font-family:var(--f-display);font-weight:400;font-size:1.1rem;color:rgba(246,241,232,.88);line-height:1.3;margin-bottom:.75rem}
.footer-meta{font-family:var(--f-ui);font-size:.72rem;letter-spacing:.10em;text-transform:uppercase;color:rgba(246,241,232,.72);line-height:2.3}
.footer-meta a{color:rgba(184,131,40,.85);transition:color .2s}
.footer-meta a:hover{color:var(--gold)}
.footer-socials{display:flex;gap:1.5rem;margin-top:1rem}
.footer-socials a{font-family:var(--f-ui);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(246,241,232,.50);transition:color .2s}
.footer-socials a:hover{color:rgba(246,241,232,.85)}
.footer-nav{list-style:none;display:flex;flex-direction:column}
.footer-nav li{padding:.35rem 0;border-bottom:1px solid rgba(246,241,232,.10)}
.footer-nav li:last-child{border-bottom:none}
.footer-nav a{font-family:var(--f-ui);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(246,241,232,.85);transition:color .2s}
.footer-nav a:hover{color:rgba(246,241,232,.95)}
.footer-blurb{font-family:var(--f-display);font-style:italic;font-size:.95rem;color:rgba(246,241,232,.85);line-height:1.65;margin-bottom:1.25rem}
.footer-email{display:flex;gap:0;margin-top:.75rem}
.footer-email input{flex:1;background:rgba(255,255,255,.07);border:1px solid rgba(246,241,232,.18);padding:.7rem 1rem;font-family:var(--f-body);font-size:16px;color:rgba(246,241,232,.85);outline:none}
.footer-email button{font-family:var(--f-ui);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;background:var(--maroon);color:var(--vellum);border:none;padding:.7rem 1.25rem;cursor:pointer;transition:background .2s;white-space:nowrap}
.footer-email button:hover{background:var(--maroon-deep)}
.footer-bottom{max-width:1380px;margin:2rem auto 0;padding-top:1.5rem;border-top:1px solid rgba(246,241,232,.12);display:flex;justify-content:space-between;align-items:center}
.footer-copy,.footer-addr{font-family:var(--f-ui);font-size:.72rem;letter-spacing:.10em;text-transform:uppercase;color:rgba(246,241,232,.60)}
.footer-addr{text-align:right}
@media(max-width:1100px){.footer-cols{grid-template-columns:1fr 1fr;gap:2.5rem}}
@media(max-width:768px){.nav-links{display:none}.nav-hamburger{display:flex}.nav-give{display:none}.nav-prayer{display:none}.footer-cols{grid-template-columns:1fr;gap:2rem}footer{padding:3rem 1.5rem 1.5rem}.footer-bottom{flex-direction:column;gap:.75rem;text-align:center}.footer-addr{text-align:center}}
.nav{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(246,241,232,.97);backdrop-filter:blur(10px);border-bottom:var(--rule-faint)}
.nav-inner{max-width:1380px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:60px;padding:0 3rem}
@media(max-width:1000px){.nav-inner{padding:0 1rem}}
.nav-logo-img{height:38px;width:auto;display:block}
.nav-mega-group{height:100%;display:flex;align-items:center}
.nav-links{display:flex;align-items:center;list-style:none;height:100%;min-width:0}
/* nav bar is a real flex row: links share space with the buttons instead of
   being centred on top of them, so they can never overlap */
.nav-inner>a:first-child{flex-shrink:0}
.nav-mega-group{min-width:0}
/* The hamburger had no flex-shrink guard, so on a 320px screen it was squeezed
   to zero width and disappeared entirely rather than the row wrapping. */
.nav-prayer,.nav-give,.nav-my-parish,.nav-hamburger,.nav-search-btn{flex-shrink:0}
/* Give + Contact outlive the nav words. The words collapse into the hamburger at
   1140px; the buttons hold on down to 781px, then go too. The `.nav ` prefix
   outranks per-page `.nav-give{...}` rules, which load after this file. */
@media(min-width:781px){
  .nav .nav-prayer,.nav .nav-give{display:inline-block}
  .nav .nav-my-parish{display:block}
  .nav .nav-hamburger{margin-left:.85rem}
}
/* On a phone the bar carries the logo, the search circle and the hamburger,
   and nothing else. Give, Contact and the profile button all competed for the
   same row and each one shrank the others to fit; all three are in the drawer,
   one tap away. Above 780px there is room, so they stay in the bar. */
@media(max-width:780px){
  .nav .nav-prayer,.nav .nav-give,.nav .nav-my-parish{display:none}
}
.nav-links>li{height:100%;display:flex;align-items:center}
.nav-links>li>a{font-family:var(--f-ui);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);padding:0 .85rem;height:100%;display:flex;align-items:center;transition:color .18s;border-bottom:2px solid transparent;white-space:nowrap}
.nav-links>li>a:hover{color:var(--maroon)}
.nav-links>li>a:hover{border-bottom-color:var(--gold)}
.mega-panel{position:absolute;top:60px;left:0;right:0;background:var(--vellum);border-top:2px solid var(--maroon);border-bottom:var(--rule-faint);box-shadow:0 16px 48px rgba(28,20,16,.13);opacity:0;pointer-events:none;transform:translateY(-8px);transition:opacity .22s ease,transform .22s ease;z-index:100;display:grid;grid-template-columns:420px 1fr}
.mega-panel.mega-visible{opacity:1;pointer-events:all;transform:translateY(0)}
.mega-photo{position:relative;overflow:hidden;background-color:var(--apse)}
.mega-photo-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.mega-photo-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(59,15,24,.88) 0%,rgba(59,15,24,.72) 100%)}
.mega-photo-content{position:relative;z-index:1;padding:2rem 2rem;display:flex;flex-direction:column;height:100%;min-height:220px}
.mega-photo-cross{display:none}
.mega-photo-label{font-family:var(--f-ui);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(232,201,122,.65);display:block;margin-bottom:.4rem}
.mega-photo-quote{font-family:var(--f-display);font-style:italic;font-weight:300;font-size:1.45rem;color:rgba(246,241,232,.92);line-height:1.25}
.mega-content{border-left:2px solid var(--maroon);display:flex;flex-direction:column}
.mega-inner{padding:2rem 2.25rem;display:grid;gap:0;height:100%;flex:1}
.mega-col{padding:0 1.5rem;border-right:1px solid rgba(123,29,42,.07)}
.mega-col:first-child{padding-left:0}
.mega-col:last-child{border-right:none;padding-right:0}
.mega-col-head{font-family:var(--f-ui);font-size:.65rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--stone);display:block;margin-bottom:.85rem;padding-bottom:.45rem;border-bottom:1px solid rgba(184,131,40,.22)}
.mega-link{display:block;font-family:var(--f-body);font-size:1.13rem;color:var(--ink);padding:.8rem 0;transition:color .15s,padding-left .15s,box-shadow .15s;line-height:1.4}
.mega-link:hover{color:var(--maroon);padding-left:.4rem;box-shadow:inset 2px 0 0 var(--gold)}
.mega-sub{display:block;font-family:var(--f-body);font-style:italic;font-size:.95rem;color:var(--stone);margin-bottom:.2rem;line-height:1.3}
.mega-cta{margin-top:1.5rem;padding-top:1.25rem;border-top:var(--rule-faint)}
.mega-cta-btn{font-family:var(--f-ui);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--maroon);border:1px solid rgba(123,29,42,.28);padding:.48rem .9rem;display:block;text-align:center;transition:all .2s}
.mega-cta-btn:hover{background:var(--maroon);color:var(--vellum)}
/* hairline between consecutive links, so a column reads as one set */
.mega-col .mega-link + .mega-link{border-top:1px solid rgba(123,29,42,.07)}
/* panel footer strip: closes the column ragged bottom, carries one useful line */
.mega-foot{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.8rem 2.25rem;border-top:1px solid rgba(123,29,42,.12);background:rgba(123,29,42,.025);font-family:var(--f-ui);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}
.mega-foot a{color:var(--maroon);border-bottom:1px solid rgba(184,131,40,.42);padding-bottom:1px;transition:color .18s,border-color .18s}
.mega-foot a:hover{color:var(--apse);border-color:var(--gold)}
@media(max-width:1000px){.mega-foot{display:none}}
.nav-links>li.tab-active>a{color:var(--maroon);border-bottom-color:var(--gold)}
.nav-give{font-family:var(--f-ui);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--vellum);background:var(--maroon);padding:.5rem 1.1rem;transition:background .2s;white-space:nowrap;margin-left:.6rem}
.nav-give:hover{background:var(--maroon-deep)}
/* Contact is a text link styled like the section tab labels; Give is the bar's only pill */
.nav-prayer{font-family:var(--f-ui);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:transparent;border:none;padding:0 .85rem;transition:color .18s;white-space:nowrap;margin-left:0}
.nav-prayer:hover{background:transparent;color:var(--maroon)}
.nav-hamburger{display:none;flex-direction:column;justify-content:space-between;width:28px;height:20px;cursor:pointer;padding:0;background:none;border:none;z-index:400}
.nav-hamburger span{display:block;width:100%;height:2px;background:var(--maroon);transition:all .28s ease;transform-origin:center}
.nav-hamburger.open span:nth-child(1){transform:translateY(9px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav-hamburger.open span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
.nav-drawer{position:fixed;top:0;right:0;width:300px;max-width:85vw;bottom:0;background:var(--apse);z-index:350;transform:translateX(100%);transition:transform .32s cubic-bezier(.4,0,.2,1),visibility 0s .32s;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;touch-action:pan-y;overscroll-behavior:contain;visibility:hidden}
.nav-drawer.open{transform:translateX(0);visibility:visible;transition:transform .32s cubic-bezier(.4,0,.2,1),visibility 0s}
.nav-drawer-overlay{position:fixed;inset:0;background:rgba(21,8,4,.65);z-index:340;opacity:0;pointer-events:none;transition:opacity .32s}
.nav-drawer-overlay.open{opacity:1;pointer-events:all}
.nav-drawer-head{padding:1.5rem 1.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between}
.nav-drawer-logo{font-family:var(--f-display);font-weight:500;font-size:1.2rem;color:rgba(246,241,232,.95)}
.nav-drawer-logo span{font-family:var(--f-ui);font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,241,232,.6);display:block;margin-top:2px}
.nav-drawer-close{width:32px;height:32px;background:rgba(255,255,255,.08);border:none;color:rgba(255,255,255,.65);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background .2s}
.nav-drawer-close:hover{background:rgba(255,255,255,.15)}
.nav-drawer-links{display:none}
.dr-accordion{flex:1;overflow-y:auto}
.dr-section{border-bottom:1px solid rgba(255,255,255,.06)}
.dr-section-head{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem;cursor:pointer;transition:background .18s;user-select:none}
.dr-section-head:hover{background:rgba(255,255,255,.03)}
.dr-section.open .dr-section-head{background:rgba(184,131,40,.07)}
.dr-section-name{font-family:var(--f-ui);font-size:.9rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,241,232,.85);transition:color .18s}
.dr-section.open .dr-section-name{color:rgba(232,201,122,1)}
.dr-section-toggle{font-family:var(--f-ui);font-size:1rem;color:rgba(184,131,40,.7);line-height:1;transition:color .18s;width:16px;text-align:center;flex-shrink:0}
.dr-section.open .dr-section-toggle{color:rgba(184,131,40,1)}
.dr-section-links{max-height:0;overflow:hidden;transition:max-height .35s ease}
/* Generous ceiling, not a measured one: About Us carries 11 links now, and at
   ~74px each the old 700px clipped the last two. Overshoot is invisible. */
.dr-section.open .dr-section-links{max-height:1200px}
.dr-link{display:block;padding:.85rem 1.25rem .75rem;border-bottom:1px solid rgba(255,255,255,.06);transition:background .15s;text-decoration:none}
.dr-link:last-child{border-bottom:none}
.dr-link:hover{background:rgba(255,255,255,.06)}
.dr-link-name{font-family:var(--f-body);font-size:1.3rem;color:rgba(246,241,232,.92);display:block;line-height:1.25}
.dr-link-sub{font-family:var(--f-body);font-style:italic;font-size:.95rem;color:rgba(232,201,122,.55);display:block;margin-top:.08rem;line-height:1.25}
/* Standalone drawer row for a nav item that is a direct link rather than a mega
   panel (Calendar). Reads as a section head, but goes straight to the page. */
.dr-toplink{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.06);text-decoration:none;transition:background .18s}
.dr-toplink:hover{background:rgba(255,255,255,.03)}
.dr-toplink:hover .dr-section-name{color:rgba(232,201,122,1)}
.dr-toplink-sub{font-family:var(--f-body);font-style:italic;font-size:.95rem;color:rgba(232,201,122,.55);text-transform:none;letter-spacing:0}
.nav-drawer-give{margin:1.25rem 1.75rem;display:block;text-align:center;font-family:var(--f-ui);font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;padding:.85rem;background:var(--maroon);color:var(--vellum);transition:background .2s}
.nav-drawer-give:hover{background:var(--maroon-deep)}
.nav-drawer-prayer{margin:1.25rem 1.75rem 0;display:block;text-align:center;font-family:var(--f-ui);font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;padding:.85rem;background:transparent;color:rgba(246,241,232,.85);border:1px solid rgba(246,241,232,.35);transition:background .2s,border-color .2s}
.nav-drawer-prayer:hover{background:rgba(246,241,232,.08);border-color:rgba(246,241,232,.65)}
/* The five nav words run into Contact at 1120px, measured across a sweep from
   1440 down. Collapsing at 1000 left a 110px band where PARISH LIFE sat on
   top of the CONTACT button. 1140 clears it with room for font loading. */
/* Whenever the hamburger is visible, thin the right cluster to Give + search + burger.
   Contact and Profile/Journal live in the drawer, so nothing becomes unreachable. */
@media(max-width:1140px){.nav-links{display:none}.nav-hamburger{display:flex}.nav .nav-prayer,.nav .nav-my-parish{display:none}}
/* Footer nav links measured 21px tall (15px on pages without typography.css) against
   a 44px minimum tap target. The anchor was inline, so its box was only the line box.
   Make it a block and pad it on mobile; the li border still draws the divider.
   This does lengthen the mobile footer, which is the cost of a real tap target. */
@media(max-width:780px){
  .footer-nav li{padding:0}
  .footer-nav a{display:block;padding:.72rem 0}
  .footer-socials{gap:1rem}
  .footer-socials a{display:block;padding:.62rem 0}
}
.mega-preview-card{border:1px solid rgba(123,29,42,.11);border-left:3px solid var(--maroon);background:rgba(123,29,42,.03);border-radius:2px;overflow:hidden;transition:background .18s;margin-top:.3rem}
.mega-preview-link{display:flex;padding:.65rem .75rem;text-decoration:none;align-items:flex-start}
.mega-preview-body{display:flex;flex-direction:column;gap:.15rem;min-width:0;width:100%}
.mega-preview-eyebrow{font-family:var(--f-ui);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon)}
.mega-preview-title{font-family:var(--f-body);font-size:.88rem;color:var(--ink);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
.mega-preview-date{font-family:var(--f-ui);font-size:.62rem;letter-spacing:.05em;color:var(--stone);margin-top:.08rem;min-height:.78rem}
.mega-preview-card:hover{background:rgba(123,29,42,.07)}
.mega-preview-card:hover .mega-preview-title{color:var(--maroon)}
@media(max-width:900px){html,body{overflow-x:hidden;overflow-x:clip}}
.nav-mega-group{flex:1;justify-content:center}
.nav-my-parish{position:relative;margin-left:.5rem}
.nav-my-parish-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:none;border:1px solid rgba(123,29,42,.35);cursor:pointer;color:#7B1D2A;transition:all .2s;padding:0;flex-shrink:0}
.nav-my-parish-btn:hover{background:#7B1D2A;color:#F6F1E8;border-color:#7B1D2A}
.nav-my-parish-panel{position:absolute;top:calc(100% + 6px);right:0;width:230px;background:#F6F1E8;border:1px solid rgba(123,29,42,.15);box-shadow:0 8px 32px rgba(28,20,16,.12);opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .18s,transform .18s;z-index:500}
.nav-my-parish-panel.open{opacity:1;pointer-events:all;transform:translateY(0)}
.nav-mp-link{display:block;padding:.85rem 1.1rem;border-bottom:1px solid rgba(123,29,42,.07);text-decoration:none;transition:background .15s}
.nav-mp-link:last-child{border-bottom:none}
.nav-mp-link:hover{background:rgba(123,29,42,.04)}
.nav-mp-link-name{font-family:'Cinzel',Georgia,serif;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#7B1D2A;display:block;margin-bottom:.15rem}
.nav-mp-link-sub{font-family:'EB Garamond',Georgia,serif;font-style:italic;font-size:.88rem;color:#7A6648;display:block}
/* Redundant: the .nav-prefixed rules above already hide this below 781px, and
   this copy disagreed with them, which is what allowed the profile button and
   the mobile initials dot to render together between 781 and 1000px. */

/* FOOTER MULTICOL: independent-height columns below desktop, kills short-vs-tall grid gap */
@media(max-width:1100px){.footer-cols{display:block!important;column-count:2;column-gap:3rem}.footer-cols>div{-webkit-column-break-inside:avoid;break-inside:avoid;margin-bottom:2.5rem}}
@media(max-width:680px){.footer-cols{column-count:1!important}}

/* ── SHARED FORM-SUCCESS ANIMATION (sealed medallion + gold divider) ──
   Reused by every form's success state via window.sppFormSuccess().
   Class names avoid -title/-sub/-date/-label/-badge/-meta so per-page mobile !important rules can't clobber them. */
.spp-success{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem}
.spp-success-seal{width:120px;height:120px;border-radius:50%;background:linear-gradient(160deg,var(--apse,#3B0F18),#2a0a10);border:6px solid var(--vellum,#F6F1E8);outline:1px solid rgba(184,131,40,.6);display:flex;align-items:center;justify-content:center;box-shadow:0 16px 40px rgba(28,10,6,.4);animation:sppSeal .6s cubic-bezier(.2,.8,.2,1) both}
.spp-success-seal svg{width:48px;height:48px;stroke:var(--gold-lt,#E8C97A);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.spp-success-divider{height:1px;width:0;background:linear-gradient(to right,transparent,rgba(184,131,40,.65),transparent);margin:1.75rem 0 1.25rem;animation:sppDiv .7s .45s cubic-bezier(.4,0,.2,1) both}
.spp-success-msg{font-family:var(--f-display,Georgia,serif);font-weight:400;font-size:1.7rem;color:var(--apse,#3B0F18);opacity:0;animation:sppUp .6s .7s ease both;line-height:1.2}
.spp-success-detail{font-family:var(--f-display,Georgia,serif);font-style:italic;font-size:1.05rem;color:var(--stone,#7A6648);margin-top:.5rem;max-width:38ch;line-height:1.5;opacity:0;animation:sppUp .6s .9s ease both}
.spp-success-btn{margin-top:1.5rem;font-family:var(--f-ui,Georgia,serif);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--maroon,#7B1D2A);background:none;border:1px solid rgba(123,29,42,.3);padding:.6rem 1.4rem;cursor:pointer;transition:all .2s;opacity:0;animation:sppUp .6s 1.05s ease both}
.spp-success-btn:hover{background:var(--maroon,#7B1D2A);color:var(--vellum,#F6F1E8);border-color:var(--maroon,#7B1D2A)}
.spp-success-dark .spp-success-seal{background:linear-gradient(160deg,var(--maroon,#7B1D2A),var(--maroon-deep,#5C1520))}
.spp-success-dark .spp-success-msg{color:var(--vellum,#F6F1E8)}
.spp-success-dark .spp-success-detail{color:rgba(246,241,232,.72)}
.spp-success-compact{padding:1.5rem .5rem}
.spp-success-compact .spp-success-seal{width:72px;height:72px;border-width:4px}
.spp-success-compact .spp-success-seal svg{width:30px;height:30px}
.spp-success-compact .spp-success-divider{margin:1rem 0 .75rem}
.spp-success-compact .spp-success-msg{font-size:1.2rem}
.spp-success-compact .spp-success-detail{font-size:.92rem}
@keyframes sppSeal{from{transform:scale(.35);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes sppDiv{from{width:0}to{width:240px}}
@keyframes sppUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.spp-success-seal,.spp-success-divider,.spp-success-msg,.spp-success-detail,.spp-success-btn{animation-duration:.001s!important}}

/* ── PARISH LIFE PANEL ──
   Four preview cards stacked in one column ran this panel past 700px tall.
   The cards go 2x2 and the Community links run underneath across the full
   width, which is roughly a third off the height and uses the space the old
   right hand column wasted. Scoped to .mega-inner-parish so the other four
   panels keep their two column .mega-col layout untouched. */
.mega-inner-parish{grid-template-columns:1fr;gap:1.5rem;align-content:start}
.mega-inner-parish .mega-block{padding:0 1.5rem}
.mega-week{display:grid;grid-template-columns:repeat(2,1fr);gap:.3rem 1.8rem}
/* Longhand only: the padding shorthand would zero padding-left with equal
   specificity later in the file than .mega-link:hover, killing the hover
   slide for this panel's links. */
.mega-week .mega-link{padding-top:.5rem;padding-bottom:.5rem}
.mega-links-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0 1.8rem}
/* A border-top on every link, not an adjacent-sibling rule: in a grid the
   siblings wrap across columns, so + would rule the wrong edges. */
.mega-links-row .mega-link{border-top:1px solid rgba(123,29,42,.07);padding-top:.62rem;padding-bottom:.62rem}

/* ── FOUR SIGNATURES (Parish Life preview cards) ──
   Each card carries its own anatomy so the four read differently at a glance:
   calendar = gold spine + day leaf + fast pill, news = maroon spine +
   display-serif headline, bulletin = verdigris spine + paper sheet,
   event = dark plate + gold leaf. Class names avoid the swept substrings
   (-title/-date/-label/-eyebrow/-day/-meta); the ids inside stay what the
   inline page fillers expect. */
.mega-sig{display:flex;gap:.85rem;align-items:center;border:1px solid rgba(123,29,42,.11);border-left:3px solid var(--maroon,#7B1D2A);background:rgba(123,29,42,.03);border-radius:2px;padding:.7rem .85rem;margin-top:.3rem;min-height:92px;transition:background .18s;text-decoration:none}
.mega-sig:hover{background:rgba(123,29,42,.07)}
.mega-sig:hover .mega-sig-name{color:var(--maroon,#7B1D2A)}
.mega-sig-body{display:flex;flex-direction:column;min-width:0;width:100%}
.mega-sig-cap{font-family:var(--f-ui);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--maroon,#7B1D2A);margin-bottom:.25rem}
.mega-sig-name{font-family:var(--f-body);font-size:.9rem;color:var(--ink,#2C1F16);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em;transition:color .15s}
.mega-sig-when{font-family:var(--f-ui);font-size:.6rem;letter-spacing:.06em;color:var(--stone,#7A6648);margin-top:.3rem;min-height:.78rem}
.mega-sig-leaf{flex-shrink:0;width:52px;text-align:center;border-right:1px solid rgba(184,131,40,.35);padding-right:.85rem}
.mega-sig-leaf-mo{font-family:var(--f-ui);font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--maroon,#7B1D2A);display:block}
.mega-sig-leaf-dy{font-family:var(--f-body);font-variant-numeric:lining-nums;font-size:1.85rem;font-weight:500;color:var(--ink,#2C1F16);line-height:1.05;display:block}
.mega-sig-cal{border-left-color:var(--gold,#B88328)}
.mega-sig-cal .mega-sig-cap{color:var(--gold,#B88328)}
.mega-sig-fast{display:inline-block;align-self:flex-start;font-family:var(--f-ui);font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:var(--verdigris,#3D6B5E);border:1px solid rgba(61,107,94,.35);padding:.14rem .5rem;margin-top:.35rem}
.mega-sig-fast:empty{display:none}
.mega-sig-headline{font-family:var(--f-display);font-weight:500;font-size:1.1rem;line-height:1.22;min-height:2.44em}
.mega-sig-bull{border-left-color:var(--verdigris,#3D6B5E)}
.mega-sig-bull .mega-sig-cap{color:var(--verdigris,#3D6B5E)}
.mega-sig-sheet{flex-shrink:0;width:42px;height:56px;background:#FDFBF6;border:1px solid rgba(44,31,22,.18);box-shadow:2px 2px 0 rgba(44,31,22,.08);padding:6px 5px}
.mega-sig-sheet i{display:block;height:2px;background:rgba(123,29,42,.5);margin-bottom:4px}
.mega-sig-sheet i+i{background:rgba(44,31,22,.16);height:1px;margin-bottom:3px}
.mega-sig-evt{border-left-color:var(--apse,#3B0F18);background:rgba(59,15,24,.92)}
.mega-sig-evt:hover{background:var(--apse,#3B0F18)}
.mega-sig-evt .mega-sig-cap{color:var(--gold-lt,#E8C97A)}
.mega-sig-evt .mega-sig-name{color:rgba(246,241,232,.95)}
.mega-sig-evt:hover .mega-sig-name{color:#fff}
.mega-sig-evt .mega-sig-when{color:rgba(246,241,232,.6)}
.mega-sig-evt .mega-sig-leaf{border-right-color:rgba(184,131,40,.5)}
.mega-sig-evt .mega-sig-leaf-mo{color:var(--gold-lt,#E8C97A)}
.mega-sig-evt .mega-sig-leaf-dy{color:var(--vellum,#F6F1E8)}

/* ── FEATURE AND STACK ──
   One Sanity record with "Feature in the Parish Life menu" checked turns the
   2x2 into a photographic feature plate left + the three remaining signature
   cards right. chrome.js classes .mega-week and turns the featured record's
   own cell off; with nothing checked none of this applies. */
.mega-feature{display:none}
.mega-week.mega-has-feature{grid-template-columns:1.05fr 1fr}
.mega-week.mega-has-feature .mega-feature{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;grid-column:1;grid-row:1/span 3;background:var(--apse,#3B0F18);padding:1.5rem 1.6rem;min-height:300px;text-decoration:none}
.mega-week.mega-has-feature .mega-week-cell{grid-column:2}
.mega-week-cell.mega-cell-off{display:none}
.mega-feature-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.45}
.mega-feature-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(59,15,24,.15) 0%,rgba(59,15,24,.92) 78%)}
.mega-feature-body{position:relative;display:flex;flex-direction:column;align-items:flex-start}
.mega-feature-cap{font-family:var(--f-ui);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold,#B88328);margin-bottom:.55rem}
.mega-feature-name{font-family:var(--f-display);font-weight:400;font-size:1.7rem;line-height:1.15;color:var(--vellum,#F6F1E8);transition:color .18s}
.mega-feature:hover .mega-feature-name{color:#fff}
.mega-feature-when{font-family:var(--f-ui);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,241,232,.68);margin-top:.7rem}
.mega-feature-when:empty{display:none}
.mega-feature-cta{font-family:var(--f-ui);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-lt,#E8C97A);margin-top:1.05rem;border-bottom:1px solid rgba(184,131,40,.5);padding-bottom:2px}
