/*
 * Prayer Warrior USA — Shared Shell CSS
 * v15.1.0 — Header, navigation, footer, breadcrumbs and shared chrome.
 */
/* Global site chrome */
/* Header */
.topbar{background:var(--pwu-navy);color:#fff;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.topbar__inner{min-height:36px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.topbar__links{display:flex;gap:18px;align-items:center}
.site-header{position:relative;z-index:50;background:var(--pwu-paper)}
.header-main{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:28px;background:var(--pwu-paper)}
.nav-bar{position:relative;z-index:55;background:rgba(255,253,249,.98);border-top:1px solid var(--pwu-line);border-bottom:1px solid rgba(228,221,209,.92);box-shadow:0 7px 18px rgba(16,35,53,.06)}
.nav-bar__inner{display:flex;align-items:center;justify-content:center;min-height:58px}
.brand{display:flex;align-items:center;gap:13px;min-width:max-content}
.brand__mark{width:40px;height:54px;color:var(--pwu-gold);display:grid;place-items:center}
.brand__mark svg{width:40px;height:54px}
.brand__title{display:block;font-family:var(--pwu-font-serif);font-size:24px;line-height:1.05;letter-spacing:-.02em}
.brand__tag{display:block;margin-top:5px;font-size:9px;letter-spacing:.25em;color:var(--pwu-muted)}
.primary-nav{width:100%}
.primary-menu-wrap>ul,.menu{display:flex;align-items:center;gap:2px;padding:0;margin:0;list-style:none}
.menu li{position:relative}
.menu>li>a{display:flex;align-items:center;gap:5px;padding:17px 13px;font-family:var(--pwu-font-serif);font-size:15px;line-height:1.2}
.menu li.menu-item-has-children>a:after{content:"";width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.menu .sub-menu{position:absolute;left:0;top:calc(100% - 4px);min-width:220px;background:var(--pwu-paper);border:1px solid var(--pwu-line);box-shadow:var(--pwu-shadow);padding:9px;margin:0;list-style:none;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease;z-index:100}
.menu li:hover>.sub-menu,.menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.menu .sub-menu .sub-menu{left:calc(100% + 9px);top:-10px}
.menu .sub-menu a{display:block;padding:9px 11px;font-size:14px;line-height:1.25}
.header-actions{display:flex;align-items:center;gap:12px}
/* Button and icon-button primitives live in foundation.css and are shared by all frontend contexts. */
.menu-toggle{display:none}.menu-toggle__label{font-size:13px;font-weight:600;margin-right:5px}.menu-toggle__icon{font-size:18px;line-height:1}
.mobile-nav{display:none}
.mobile-nav[hidden]{display:none!important}
/* Footer */
.site-footer{background:var(--pwu-navy);color:#fff;margin-top:0}.footer-main{padding:54px 0 42px}.footer-grid{display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:44px}.footer-brand .brand{color:#fff}.footer-brand .brand__title{font-size:23px}.footer-brand .brand__tag{color:#aeb8be}.footer-copy{color:#c1ccd1;max-width:450px;font-size:14px}.footer-heading{font-family:var(--pwu-font-serif);font-size:18px;font-weight:500;margin:0 0 14px}.footer-links{padding:0;margin:0;list-style:none}.footer-links li{margin:8px 0;color:#cbd4d8;font-size:14px}.socials{display:flex;gap:8px;margin-top:18px}.socials a{width:32px;height:32px;border:1px solid rgba(255,255,255,.24);border-radius:50%;display:grid;place-items:center;font-size:13px;color:#fff}.socials a:hover{border-color:var(--pwu-gold-dark);color:#fff}.footer-bottom{display:flex;justify-content:space-between;gap:25px;border-top:1px solid rgba(255,255,255,.14);padding:17px 0;color:#aeb8be;font-size:12px}
/* Elegant Catholic editorial refinements */
.header-main{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:18px 0;}
.brand{display:flex!important;align-items:center;justify-content:flex-start;gap:14px;text-decoration:none;flex:1;}
.brand>span:last-child{display:flex;flex-direction:column;align-items:flex-start;}
.brand__mark{display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.brand__mark img.custom-logo{width:56px!important;height:56px!important;max-width:none;object-fit:contain;display:block;}
.brand__title{font-size:1.55rem;font-weight:700;line-height:1.1;letter-spacing:.02em;}
.brand__tag{font-size:.72rem;letter-spacing:.18em;opacity:.85;margin-top:4px;}
.site-header{border-bottom:1px solid rgba(201,162,77,.18);box-shadow:0 6px 24px rgba(0,0,0,.08);}
.site-footer .brand__mark img.custom-logo{width:64px!important;height:64px!important;}
.reviewed-by{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:#c9a24d;}
.reviewed-icon{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#c9a24d;color:#0b1622;font-size:12px;font-weight:700;}
@media (max-width:768px){.brand__mark img.custom-logo{width:46px!important;height:46px!important}.brand__title{font-size:1.25rem}.brand__tag{font-size:.65rem}}

/* v1.2.2 Header brand alignment */
.header-main{display:flex;align-items:center;justify-content:space-between;}
.brand{display:flex;align-items:center;justify-content:flex-start;gap:16px;flex:0 0 auto;margin-left:54px;flex-direction:row;}
.brand>span:last-child{display:flex;flex-direction:column;align-items:flex-start;}
.brand__mark{width:64px;height:64px;flex:0 0 auto;}
.brand__mark img.custom-logo{width:64px!important;height:64px!important;}
.brand__title,.brand__tag{text-align:left;}
@media(max-width:1100px){.brand{margin-left:0;}}
@media(max-width:768px){.brand{gap:12px}.brand__mark,.brand__mark img.custom-logo{width:50px!important;height:50px!important;}.brand__title{text-align:left}.brand__tag{text-align:left}}
/* Header / navigation */
.topbar{font-family:var(--pwu-font-sans);font-size:10.5px;font-weight:600;letter-spacing:.14em}
.brand__title{font-size:clamp(26px,2.1vw,31px);font-weight:600;line-height:1.04;letter-spacing:-.018em}
.brand__tag{font-family:var(--pwu-font-sans);font-size:10px;font-weight:600;letter-spacing:.21em;line-height:1.2}
.menu>li>a{font-size:16px;font-weight:500;letter-spacing:-.005em}
.menu .sub-menu a{font-family:var(--pwu-font-sans);font-size:13.5px;font-weight:500;line-height:1.4}
/* Footer */
.footer-brand .brand__title{font-size:24px}
.footer-heading{font-size:19px;line-height:1.2;font-weight:500}
.footer-copy,.footer-links li{font-size:14px;line-height:1.65}
.footer-bottom{font-family:var(--pwu-font-sans);font-size:11.5px;line-height:1.5;letter-spacing:.01em}
/* v1.2.4 — True left-positioned desktop masthead
   The logo + publication name intentionally sit toward the left side of the
   content rail, matching the editorial masthead alignment rather than centering. */
@media(min-width:1101px){
  .header-main{position:relative;min-height:96px;}
  .header-main .brand{position:absolute;left:80px;top:50%;transform:translateY(-50%);margin-left:0;flex:0 0 auto;}
  .header-main .header-actions{margin-left:auto;}
  .header-main .brand__mark,.header-main .brand__mark img.custom-logo{width:72px!important;height:72px!important;}
  .header-main .brand__title{font-size:32px;line-height:1.02;letter-spacing:-.022em;}
  .header-main .brand__tag{font-size:10px;letter-spacing:.22em;margin-top:6px;}
}
@media(max-width:1100px){
  .header-main .brand{position:static;transform:none;margin-left:0;}
}
@media(max-width:760px){.author-profile__card{grid-template-columns:1fr;gap:22px}.author-profile__avatar,.author-profile__avatar-img{width:112px;height:112px}.author-profile__body h1{font-size:clamp(39px,11vw,56px)}

  .header-main .brand__mark,.header-main .brand__mark img.custom-logo{width:50px!important;height:50px!important;}
  .header-main .brand__title{font-size:22px;}
}
@media(max-width:420px){
  .header-main .brand__title{font-size:20px;}
}
/* v14.1.1 — Mobile utility visibility and ad-safe back-to-top placement */
@media(max-width:760px){
  .header-main{gap:12px;}
  .header-main .brand{min-width:0;flex:1 1 auto;overflow:hidden;gap:10px;}
  .header-main .brand > span:last-child{min-width:0;overflow:hidden;}
  .header-main .brand__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .header-main .header-actions{flex:0 0 auto;margin-left:auto;}
  .footer-grid{grid-template-columns:1fr;gap:30px;}
  .footer-brand{grid-column:auto;}
  .back-to-top{right:16px;bottom:calc(104px + env(safe-area-inset-bottom,0px));width:42px;height:42px;z-index:60;pointer-events:auto;}
}


/* v1.2.5 — Dark-surface contrast correction
   Keep headings and widget titles legible on the navy newsletter/footer surfaces. */
.newsletter h1,.newsletter h2,.newsletter h3,.newsletter h4,.newsletter h5,.newsletter h6{color:#fff;}
.site-footer h1,.site-footer h2,.site-footer h3,.site-footer h4,.site-footer h5,.site-footer h6,
.site-footer .widget-title,.site-footer .footer-heading{color:#fff;}
.site-footer p,.site-footer .widget,.site-footer .widget p,.site-footer .widget li{color:#cbd4d9;}
.site-footer a{color:inherit;}
.site-footer a:hover{color:var(--pwu-gold-on-dark);}
.newsletter .kicker{color:var(--pwu-gold-on-dark);}

/* v1.2.6 — Elegant back-to-top control */
.back-to-top{
  position:fixed;
  right:24px;
  bottom:24px;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid rgba(181,138,67,.55);
  border-radius:50%;
  background:rgba(16,35,53,.96);
  color:#fff;
  box-shadow:0 10px 24px rgba(16,35,53,.18);
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .22s ease,visibility .22s ease,transform .22s ease,background-color .18s ease,border-color .18s ease;
  z-index:90;
}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none;}
body.pwu-pe-no-js .back-to-top{opacity:1;visibility:visible;transform:none;}
body.pwu-pe-js .back-to-top:not(.is-visible){opacity:0;visibility:hidden;transform:translateY(10px);}
.back-to-top:hover{background:var(--pwu-gold);border-color:var(--pwu-gold);color:#fff;transform:translateY(-2px);}
.back-to-top:focus-visible{transform:none;}
.back-to-top__icon{width:18px;height:18px;display:block;}
@media(max-width:760px){.author-profile__card{grid-template-columns:1fr;gap:22px}.author-profile__avatar,.author-profile__avatar-img{width:112px;height:112px}.author-profile__body h1{font-size:clamp(39px,11vw,56px)}

  .back-to-top{right:16px;bottom:calc(104px + env(safe-area-inset-bottom,0px));width:42px;height:42px;z-index:60;pointer-events:auto;}
}
@media(prefers-reduced-motion:reduce){
  .back-to-top{transition:none;}
}


/* v1.4.0 — Phase 2 Performance: modular architecture, sticky navigation, non-sticky sidebar */
.nav-bar{
  position:sticky;
  top:0;
  z-index:1000;
}
@media(max-width:760px){.author-profile__card{grid-template-columns:1fr;gap:22px}.author-profile__avatar,.author-profile__avatar-img{width:112px;height:112px}.author-profile__body h1{font-size:clamp(39px,11vw,56px)}

  .mobile-nav.is-open{
    position:sticky;
    top:0;
    z-index:1000;
  }
}
body.admin-bar .nav-bar{top:32px;}
@media(max-width:782px){
  body.admin-bar .nav-bar{top:46px;}
  body.admin-bar .mobile-nav.is-open{top:46px;}
}
/* Breadcrumbs */
.pwu-breadcrumb-wrap{position:relative;z-index:1;background:var(--pwu-paper);border-bottom:1px solid var(--pwu-line)}
.pwu-breadcrumb{padding:12px 0;font-size:14px;color:var(--pwu-muted)}
.pwu-breadcrumb__list{display:flex;flex-wrap:wrap;gap:8px;align-items:center;list-style:none;padding:0;margin:0}
.pwu-breadcrumb__item{display:inline-flex;align-items:center;gap:8px}
.pwu-breadcrumb a{color:var(--pwu-navy)}
.pwu-breadcrumb a:hover{color:var(--pwu-gold-dark)}
.pwu-breadcrumb .current{color:var(--pwu-ink);font-weight:600}
.pwu-breadcrumb__sep{color:var(--pwu-gold);font-weight:700}
/* v13.1.0 — Phase 13 No-JavaScript Navigation & Interaction */
@media (max-width:1100px){
  body.pwu-pe-no-js .menu-toggle{display:none!important}
  body.pwu-pe-no-js .mobile-nav{display:block!important;visibility:visible!important;position:relative;z-index:56}
  body.pwu-pe-no-js .mobile-nav[aria-hidden="true"]{visibility:visible!important}
  body.pwu-pe-no-js .mobile-nav .menu{display:block}
}
body.pwu-pe-js .mobile-nav[aria-hidden="true"]{visibility:hidden}

/* Base responsive navigation contract retained from the monolithic stylesheet. */
@media(max-width:1100px){
  .header-main{gap:18px}
  .nav-bar{display:none}
  .menu-toggle{display:inline-flex;align-items:center}
  .header-actions .btn{display:none}
  .mobile-nav{display:none;position:relative;z-index:56;border-top:1px solid var(--pwu-line);border-bottom:1px solid var(--pwu-line);background:rgba(255,253,249,.98);box-shadow:0 7px 18px rgba(16,35,53,.06)}
  .mobile-nav.is-open{display:block}
  .mobile-nav[aria-hidden="true"]{visibility:hidden}
  .mobile-nav .menu{display:block;padding:9px 0}
  .mobile-nav .menu>li>a{padding:12px 0;font-size:17px}
  .mobile-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;border:0;box-shadow:none;padding:0 0 7px 16px;min-width:0}
  .mobile-nav .sub-menu .sub-menu{position:static}
  .mobile-nav .menu li.menu-item-has-children>a:after{margin-left:auto}
}
@media(max-width:782px){
  body.admin-bar .nav-bar{top:46px}
  body.admin-bar .mobile-nav.is-open{top:46px}
}
/* ---- Masthead ---- */
.topbar{
  background:var(--pwu-lux-navy);
  border-bottom:1px solid rgba(var(--pwu-gold-rgb),.14);
}
.topbar__inner{min-height:34px;font-size:10px;letter-spacing:.18em}
.topbar__links{gap:22px;color:rgba(255,255,255,.72)}
.site-header{
  background:rgba(252,250,246,.96);
  box-shadow:0 10px 34px rgba(var(--pwu-navy-rgb),.06);
}
.header-main{
  min-height:92px;
  padding:0;
  gap:26px;
}
.brand{gap:14px}
.brand__mark{color:var(--pwu-lux-gold);filter:drop-shadow(0 5px 12px rgba(var(--pwu-gold-rgb),.18))}
.brand__title{font-family:var(--pwu-lux-serif);font-size:26px;letter-spacing:-.03em;color:var(--pwu-lux-navy)}
.brand__tag{margin-top:6px;color:#7b756c;font-size:8.5px;letter-spacing:.28em}
.header-actions{gap:9px}
.header-actions .btn--gold{
  min-height:44px;
  border-radius:999px;
  padding-inline:20px;
  background:linear-gradient(180deg,#c9a15e,#ad823d);
  box-shadow:0 8px 18px rgba(158,116,51,.20);
}
.header-actions .btn--gold:hover{background:linear-gradient(180deg,#d0ab6a,var(--pwu-lux-gold-2))}
.search-toggle,.menu-toggle{
  border-radius:999px;
  border-color:rgba(var(--pwu-navy-rgb),.10);
  background:rgba(255,255,255,.60);
  box-shadow:none;
}
.search-toggle:hover,.menu-toggle:hover{background:#fff;border-color:rgba(var(--pwu-gold-rgb),.45)}
.nav-bar{
  background:rgba(252,250,246,.93);
  border-top:1px solid rgba(var(--pwu-navy-rgb),.07);
  border-bottom:1px solid rgba(var(--pwu-navy-rgb),.10);
  box-shadow:0 12px 30px rgba(var(--pwu-navy-rgb),.05);
  backdrop-filter:blur(12px);
}
.nav-bar__inner{min-height:58px}
.menu{gap:0}
.menu>li>a{
  position:relative;
  padding:19px 17px 18px;
  font-family:var(--pwu-lux-sans);
  font-size:12px;
  font-weight:700;
  letter-spacing:.015em;
  color:#2a3945;
}
.menu>li>a::before{
  content:"";
  position:absolute;
  left:17px;right:17px;bottom:11px;
  height:1px;
  background:var(--pwu-lux-gold);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .2s ease;
}
.menu>li:hover>a::before,.menu>li:focus-within>a::before{transform:scaleX(1)}
.menu>li>a:hover{color:var(--pwu-lux-navy)}
.menu .sub-menu{border-color:rgba(var(--pwu-navy-rgb),.10);border-radius:14px;box-shadow:var(--pwu-lux-shadow);background:#fffdf9}
.menu .sub-menu a{font-family:var(--pwu-lux-sans);font-size:13px;font-weight:600}

/* ---- Footer ---- */
.site-footer{
  position:relative;
  background:linear-gradient(180deg,var(--pwu-lux-navy) 0%,#0b1722 100%);
  border-top:1px solid rgba(var(--pwu-gold-rgb),.24);
}
.site-footer::before{content:"";display:block;width:74px;height:1px;background:var(--pwu-lux-gold);margin:0 auto;opacity:.75}
.footer-main{padding:64px 0 50px}
.footer-grid{gap:56px;grid-template-columns:1.45fr 1fr 1fr 1fr}
.footer-brand .brand__title{font-family:var(--pwu-lux-serif);font-size:26px}
.footer-copy{color:rgba(255,255,255,.66)}
.footer-heading{font-family:var(--pwu-lux-serif);font-size:20px}
.footer-links li{color:rgba(255,255,255,.64)}
.footer-links a:hover{color:var(--pwu-gold-on-dark)}
.socials a{border-color:rgba(255,255,255,.18);transition:all .18s ease}
.socials a:hover{border-color:rgba(var(--pwu-gold-rgb),.70);color:var(--pwu-gold-on-dark);transform:translateY(-1px)}
.footer-bottom{border-top-color:rgba(255,255,255,.10);color:rgba(255,255,255,.48)}

/* v17.0.1 — Footer menu styling correction
   Navigation Menu widgets render a `.menu` list. The shared header rules set
   `.menu` to a horizontal row with hidden dropdowns, which is inappropriate
   in the footer. Keep footer menus stacked, readable, and fully expanded. */
.site-footer .menu{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
}
.site-footer .menu li{position:static;margin:0}
.site-footer .menu>li>a{
  display:flex;
  align-items:flex-start;
  width:100%;
  padding:6px 0;
  color:rgba(255,255,255,.68);
  font-family:var(--pwu-lux-sans,Arial,sans-serif);
  font-size:14px;
  font-weight:500;
  line-height:1.6;
  letter-spacing:normal;
  text-decoration:none;
}
.site-footer .menu>li>a::before{content:none;display:none}
.site-footer .menu li.menu-item-has-children>a::after{content:none;display:none}
.site-footer .menu .sub-menu{
  position:static;
  display:block;
  min-width:0;
  margin:0;
  padding:2px 0 8px 14px;
  list-style:none;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  opacity:1;
  visibility:visible;
  transform:none;
  transition:none;
  z-index:auto;
}
.site-footer .menu li:hover>.sub-menu,.site-footer .menu li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.site-footer .menu .sub-menu .sub-menu{left:auto;top:auto}
.site-footer .menu .sub-menu a{
  display:block;
  padding:4px 0;
  color:rgba(255,255,255,.62);
  font-family:var(--pwu-lux-sans,Arial,sans-serif);
  font-size:13px;
  font-weight:500;
  line-height:1.55;
  text-decoration:none;
}
.site-footer .menu a:hover,.site-footer .menu a:focus-visible{color:var(--pwu-gold-on-dark);text-decoration:underline;text-underline-offset:3px}
.site-footer .menu a:focus-visible{outline:2px solid var(--pwu-gold-on-dark);outline-offset:3px}


.back-to-top{border-color:rgba(var(--pwu-gold-rgb),.55);background:rgba(var(--pwu-navy-rgb),.94)}
.back-to-top:hover{background:var(--pwu-lux-gold);border-color:var(--pwu-lux-gold)}

/* ---- Search overlay inherits the sacred palette ---- */
.pwu-search-overlay{background:rgba(8,18,27,.68)}
.pwu-search-overlay__panel{border-radius:22px;box-shadow:0 36px 100px rgba(0,0,0,.34)}
@media(max-width:1100px){
  .topbar__inner{min-height:34px}
}
@media(max-width:700px){
  .topbar{display:none}
  .header-main{min-height:76px}
  .brand__title{font-size:22px}
  .brand__tag{letter-spacing:.18em}
}
@media(max-width:420px){
  .brand__title{font-size:20px}
  .brand__tag{display:none}
}
@media(prefers-reduced-motion:reduce){
  .menu>li>a::before,.socials a{transition:none}
}


/* v17.4.0 — Give 404 visitors an accessible search and clear routes back into the site. */
.error-page{padding:clamp(48px,7vw,92px) 0 76px}
.error-page__inner{max-width:960px;margin-inline:auto;text-align:center}
.error-page .eyebrow{margin-bottom:14px;color:var(--pwu-a11y-gold-text,#7b5a20);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.error-page__title{max-width:780px;margin:0 auto 16px;color:var(--pwu-navy,#102335);font-family:var(--pwu-font-serif,Georgia,"Times New Roman",serif);font-size:clamp(2.35rem,5vw,4rem);font-weight:500;letter-spacing:-.025em;line-height:1.08}
.error-page__text{max-width:700px;margin:0 auto;color:var(--pwu-muted,#6e746f);font-size:clamp(1rem,1.5vw,1.15rem);line-height:1.7}
.error-page__search{max-width:780px;margin:32px auto 0;padding:clamp(20px,3vw,30px);border:1px solid var(--pwu-line,#e4ddd1);border-radius:18px;background:#fbf7f0;text-align:left}
.error-page__search h2,.error-page__destinations h2{margin:0 0 5px;color:var(--pwu-navy,#102335);font-family:var(--pwu-font-serif,Georgia,"Times New Roman",serif);font-size:clamp(1.35rem,2.5vw,1.8rem);font-weight:500;line-height:1.25}
.error-page__search>p{margin:0 0 18px;color:var(--pwu-muted,#6e746f);font-size:14px;line-height:1.55}
.error-page__search .pwu-search-form{width:100%;max-width:none}
.error-page__destinations{margin:34px auto 0;max-width:880px;text-align:left}
.error-page__destinations h2{text-align:center;margin-bottom:17px}
.error-page__destination-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0;padding:0;list-style:none}
.error-page__destination-list li{min-width:0;margin:0;padding:0;list-style:none}
.error-page__destination-list a{display:flex;align-items:center;justify-content:center;min-height:54px;padding:12px 14px;border:1px solid var(--pwu-line,#e4ddd1);border-radius:12px;background:var(--pwu-paper,#fffdf9);color:var(--pwu-navy,#102335);font-size:14px;font-weight:650;line-height:1.35;text-align:center;text-decoration:none;transition:background-color .16s ease,border-color .16s ease,color .16s ease}
.error-page__destination-list a:hover{background:var(--pwu-navy,#102335);border-color:var(--pwu-navy,#102335);color:#fff}
.error-page__destination-list a:focus-visible{outline:3px solid var(--pwu-a11y-gold-surface,#956c2d);outline-offset:3px}
.error-page__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:28px}
@media(max-width:700px){.error-page{padding:42px 0 56px}.error-page__search .pwu-search-form{flex-direction:column}.error-page__search .pwu-search-form__submit{width:100%}.error-page__destination-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.error-page__destination-list{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.error-page__destination-list a{transition:none}}


/* v17.8.1 — Mobile header controls
   The icon sizing for the header search/menu buttons lived in the old
   monolithic stylesheet and was lost during the v15 asset split, so the search
   SVG rendered at its intrinsic size (it filled the viewport on phones) and the
   brand name was squeezed into a clipped one-line ellipsis. These rules restore
   proper control sizing, 44px touch targets, and a compact icon-only header on
   small screens. */
.search-toggle,.menu-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:44px;
  min-height:44px;
  padding:0 16px;
  border:1px solid var(--pwu-a11y-control-border,#9a9185);
  font-size:14px;
  font-weight:600;
  line-height:1;
  color:var(--pwu-navy);
  -webkit-tap-highlight-color:transparent;
}
.search-toggle svg{width:20px;height:20px;flex:0 0 auto;display:block}
.menu-toggle__label{margin-right:0}
/* .menu-toggle stays hidden on desktop; the 1100px block above re-enables it. */
.menu-toggle{display:none}
@media(max-width:1100px){.menu-toggle{display:inline-flex}}

@media(max-width:760px){
  .header-actions{gap:8px}
  .search-toggle,.menu-toggle{padding:0;width:44px}
  /* Icon-only controls on phones; the accessible name comes from aria-label. */
  .search-toggle__text,
  .menu-toggle__label{
    position:absolute!important;
    width:1px;height:1px;
    margin:-1px;padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  .menu-toggle__icon{font-size:20px}
  .header-main .brand{gap:10px}
  .header-main .brand__title{font-size:clamp(17px,5vw,22px)}
}

/* v17.8.1 — Footer brand legibility
   With the luxury tokens defined, `.brand__title` resolves to navy, which is
   invisible on the navy footer. Footer branding is always light-on-dark. */
.site-footer .brand__title{color:#fff}
.site-footer .brand__tag{color:rgba(255,255,255,.62)}

/* v17.8.1 — Mobile navigation panel
   The luxury `.menu .sub-menu` card treatment (shadow, radius, fill) is declared
   later in this file than the mobile reset and has equal specificity, so it
   leaked into the slide-down menu and made sub-items float as a shadowed card.
   Re-assert the flat, indented list, and hide the desktop hover underline. */
@media(max-width:1100px){
  .mobile-nav .menu>li>a::before{display:none}
  .mobile-nav .menu .sub-menu{
    position:static;
    min-width:0;
    margin:0;
    padding:0 0 8px 16px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
  }
  .mobile-nav .menu .sub-menu a{padding:10px 0;font-size:15px}
}

/* v17.8.1 — Footer grid collapse on every page type
   The phone/tablet footer rules earlier in this file are overridden by the later
   `.footer-grid{grid-template-columns:1.45fr 1fr 1fr 1fr}` luxury declaration
   (equal specificity, later wins). Only home.css re-declared the collapse, so on
   articles, archives, pages, search and 404 the footer kept four columns and
   pushed the layout ~300px wider than a phone. Declare it after the luxury rule. */
@media(max-width:1100px){
  .footer-grid{grid-template-columns:1.3fr 1fr 1fr;gap:40px}
}
@media(max-width:760px){
  .footer-grid{grid-template-columns:minmax(0,1fr);gap:30px}
  .footer-brand{grid-column:auto}
  .footer-bottom{flex-direction:column;gap:8px}
}

/* v17.8.1 — Very small phones (<=340px): hide the header logo mark so the brand name is not clipped. */
@media(max-width:340px){
  .header-main .brand__mark{display:none}
}


/* v20.0.0 — Shared site shell refinement (Phase 3).
   These scoped rules resolve narrow desktop masthead pressure, improve keyboard
   current-state visibility and mobile tap targets, and keep long breadcrumb
   trails usable without hiding the current location. Existing asset ownership
   and WordPress navigation markup remain unchanged. */
@media (min-width: 1101px) and (max-width: 1280px) {
  .header-main .brand { left: 12px; gap: 10px; }
  .header-main .brand__mark,
  .header-main .brand__mark img.custom-logo { width: 58px !important; height: 58px !important; }
  .header-main .brand__title { font-size: clamp(23px, 2vw, 28px); }
  .header-main .brand__tag { font-size: 8px; letter-spacing: .16em; }
  .header-main .header-actions { gap: 7px; }
  .header-main .header-actions .btn--gold { padding-inline: 14px; }
  .nav-bar .menu > li > a { padding-inline: clamp(8px, .9vw, 12px); font-size: 11.5px; }
  .nav-bar .menu > li > a::before { left: 9px; right: 9px; }
}

/* The current destination is conveyed without relying on color alone. */
.primary-nav .menu a[aria-current="page"],
.mobile-nav .menu a[aria-current="page"] {
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 5px;
}
.primary-nav .menu a:focus-visible,
.mobile-nav .menu a:focus-visible,
.footer-links a:focus-visible,
.socials a:focus-visible {
  outline: 3px solid var(--pwu-focus, #956c2d);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Avoid hover-only discovery: dropdowns also reveal whenever keyboard focus
   is within their parent item. Keep a reliable target size for sub-items. */
.menu .sub-menu a { min-height: 44px; display: flex; align-items: center; }
.mobile-nav .menu > li > a { min-height: 48px; }
.mobile-nav .menu .sub-menu a { min-height: 44px; padding-block: 11px; }
.mobile-nav__action { padding: 10px 0 16px; border-top: 1px solid var(--pwu-line); margin-top: 6px; }
.mobile-nav__action .btn { min-height: 48px; width: 100%; justify-content: center; }
.mobile-nav__action .btn[hidden] { display: none !important; }
@media (min-width: 1101px) {
  .mobile-nav__action { display: none; }
}

/* Long labels remain readable; a narrow phone can scroll a breadcrumb trail
   horizontally instead of forcing a squeezed row or clipping the current page. */
.pwu-breadcrumb { max-width: 100%; min-width: 0; }
@media (max-width: 640px) {
  .pwu-breadcrumb { overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
  .pwu-breadcrumb__list { flex-wrap: nowrap; width: max-content; min-width: 100%; padding-block: 3px; }
  .pwu-breadcrumb__item { flex: 0 0 auto; max-width: min(68vw, 20rem); }
  .pwu-breadcrumb__item > a,
  .pwu-breadcrumb__item > .current { overflow-wrap: anywhere; white-space: normal; }
  .pwu-breadcrumb__item > .current { display: block; }
}

/* Footer identity follows the same user-configured tagline as the masthead. */
.site-footer .footer-brand .brand__tag { max-width: 34ch; overflow-wrap: anywhere; }
.site-footer .footer-links a { display: inline-block; min-height: 32px; padding-block: 4px; }
@media (max-width: 360px) {
  .header-main .brand__title { font-size: 18px; }
  .header-main .brand__tag { font-size: 8px; letter-spacing: .10em; }
  .header-main .header-actions { gap: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  .menu .sub-menu { transition: none; }
}


/* v24.3.0 — Phase 10 responsive and accessibility hardening.
   Keep floating controls below navigation/dialog layers, provide reliable touch
   targets, and allow long Catholic names to wrap at the narrowest supported width. */
.back-to-top{z-index:60;min-width:44px;min-height:44px;width:44px;height:44px}
.socials a{width:44px;height:44px;min-width:44px;min-height:44px}
@media(max-width:760px){
  .back-to-top{right:12px;bottom:calc(112px + env(safe-area-inset-bottom,0px));z-index:60;width:44px;height:44px}
  .footer-main{padding-bottom:36px}
}
@media(max-width:380px){
  .header-main{gap:8px;align-items:center}
  .header-main .brand{gap:8px;min-width:0}
  .header-main .brand__title{font-size:clamp(17px,5vw,20px);line-height:1.12;white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
  .header-main .brand__tag{font-size:8px;line-height:1.35;letter-spacing:.08em;white-space:normal;overflow-wrap:anywhere}
  .header-main .header-actions{gap:4px}
  .search-toggle,.menu-toggle{min-width:44px;min-height:44px}
  .footer-bottom{overflow-wrap:anywhere}
}
