/*
 * Prayer Warrior USA — Foundation CSS
 * Canonical global foundation; page-context asset ownership remains in the asset manifest.
 * Phase 2 / v19.0.0 establishes the canonical token and component contract.
 */
/*
 * Canonical design tokens — Phase 2 / v19.0.0.
 * Keep semantic roles here. Legacy --pwu-lux-* names below are aliases only.
 */
:root{
  /* Brand and surfaces. Bright gold is reserved for accents; text links use gold-dark. */
  --pwu-navy:#102335;
  --pwu-navy-2:#193146;
  --pwu-ink:#17202a;
  --pwu-paper:#fffdf9;
  --pwu-ivory:#f5f0e7;
  --pwu-gold:#a47835;
  --pwu-gold-rgb:164,120,53;
  --pwu-navy-rgb:16,35,53;
  --pwu-gold-on-dark:#d8bd7b;
  --pwu-gold-on-dark-rgb:216,189,123;
  --pwu-gold-dark:#7b5a20;
  --pwu-line:#e4ddd1;
  --pwu-muted:#5f686d;
  --pwu-green:#19643c;
  --pwu-text:var(--pwu-ink);
  --pwu-text-soft:var(--pwu-muted);
  --pwu-color-on-dark:#ffffff;
  --pwu-color-link:var(--pwu-gold-dark);
  --pwu-color-link-hover:var(--pwu-gold-dark);
  --pwu-color-success:var(--pwu-green);
  --pwu-color-warning:#76501d;
  --pwu-color-error:#9b2c2c;
  --pwu-color-info:#245c86;
  --pwu-a11y-gold-text:var(--pwu-gold-dark);
  --pwu-a11y-gold-surface:#956c2d;
  --pwu-a11y-control-border:#8f8578;
  --pwu-a11y-muted:var(--pwu-muted);

  /* Typography. Use the serif role for editorial titles and sans for UI/body. */
  --pwu-font-sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --pwu-font-serif:Iowan Old Style,Baskerville,"Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  --pwu-font-size-2xs:.6875rem;
  --pwu-font-size-xs:.75rem;
  --pwu-font-size-sm:.8125rem;
  --pwu-font-size-control:.875rem;
  --pwu-font-size-base:1rem;
  --pwu-font-size-body:1.0625rem;
  --pwu-font-size-lg:1.125rem;
  --pwu-font-size-xl:1.25rem;
  --pwu-font-size-2xl:1.5rem;
  --pwu-font-size-3xl:1.875rem;
  --pwu-font-size-4xl:2.25rem;
  --pwu-font-size-5xl:3rem;
  --pwu-line-height-tight:1.1;
  --pwu-line-height-heading:1.25;
  --pwu-line-height-body:1.74;
  --pwu-line-height-comfortable:1.68;
  --pwu-letter-spacing-normal:0;
  --pwu-letter-spacing-tight:-.025em;
  --pwu-letter-spacing-wide:.08em;
  --pwu-eyebrow:var(--pwu-font-size-2xs);
  --pwu-body:var(--pwu-font-size-body);
  --pwu-small:var(--pwu-font-size-sm);
  --pwu-text-measure:68ch;

  /* Layout. CSS custom properties document breakpoint roles; media queries use literal widths for browser support. */
  --pwu-layout-width:1280px;
  --pwu-reading-width:780px;
  --pwu-narrow-width:640px;
  --pwu-gutter:26px;
  --pwu-breakpoint-mobile:600px;
  --pwu-breakpoint-tablet:860px;
  --pwu-breakpoint-wide:1200px;
  --pwu-max:var(--pwu-layout-width);
  --pwu-content:var(--pwu-reading-width);

  /* Spacing scale: quarter-rem base, with deliberate larger section steps. */
  --pwu-space-0:0;
  --pwu-space-1:.25rem;
  --pwu-space-2:.5rem;
  --pwu-space-3:.75rem;
  --pwu-space-4:1rem;
  --pwu-space-5:1.25rem;
  --pwu-space-6:1.5rem;
  --pwu-space-8:2rem;
  --pwu-space-10:2.5rem;
  --pwu-space-12:3rem;
  --pwu-space-16:4rem;

  /* Borders, corners, elevation and controls. */
  --pwu-border-width:1px;
  --pwu-radius-sm:8px;
  --pwu-radius-md:10px;
  --pwu-radius-lg:14px;
  --pwu-radius-xl:20px;
  --pwu-radius-pill:999px;
  --pwu-radius:var(--pwu-radius-lg);
  --pwu-shadow-sm:0 2px 8px rgba(16,35,53,.06);
  --pwu-shadow:0 16px 40px rgba(16,35,53,.08);
  --pwu-shadow-lg:0 20px 60px rgba(16,35,53,.10);
  --pwu-shadow-xl:0 34px 90px rgba(16,35,53,.18);
  --pwu-control-height:44px;
  --pwu-control-radius:var(--pwu-radius-md);
  --pwu-control-border:var(--pwu-a11y-control-border);
  --pwu-control-padding-x:var(--pwu-space-3);
  --pwu-control-padding-y:var(--pwu-space-2);

  /* Focus, status and motion states. */
  --pwu-focus:#0b0f12;
  --pwu-focus-ring:#ffffff;
  --pwu-focus-offset:3px;
  --pwu-state-disabled-opacity:.55;
  --pwu-motion-fast:.16s;
  --pwu-motion-normal:.2s;
  --pwu-motion-ease:cubic-bezier(.2,.65,.3,1);

  /* Media roles. Artwork preserves its intrinsic composition; photo crops are opt-in. */
  --pwu-image-artwork-fit:contain;
  --pwu-image-photo-fit:cover;
  --pwu-image-object-position:center;
  --pwu-image-artwork-surface:var(--pwu-ivory);

  /* Backward-compatibility aliases. Do not introduce new --pwu-lux-* values. */
  --pwu-lux-navy:var(--pwu-navy);
  --pwu-lux-navy-2:var(--pwu-navy-2);
  --pwu-lux-ink:var(--pwu-ink);
  --pwu-lux-paper:var(--pwu-paper);
  --pwu-lux-ivory:var(--pwu-ivory);
  --pwu-lux-gold:var(--pwu-gold);
  --pwu-lux-gold-2:var(--pwu-gold-dark);
  --pwu-lux-line:var(--pwu-line);
  --pwu-lux-shadow:var(--pwu-shadow-lg);
  --pwu-lux-shadow-deep:var(--pwu-shadow-xl);
  --pwu-lux-serif:var(--pwu-font-serif);
  --pwu-lux-sans:var(--pwu-font-sans);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--pwu-paper);color:var(--pwu-text);font-family:var(--pwu-font-sans);font-size:var(--pwu-body);line-height:var(--pwu-line-height-body);text-rendering:optimizeLegibility}
body,button,input,textarea,select{font-synthesis:none}
a{color:inherit;text-decoration:none}
a:hover{color:var(--pwu-color-link-hover)}
img{max-width:100%;height:auto;display:block}
button,input,textarea,select{font:inherit}
.container{width:min(calc(100% - (var(--pwu-gutter) * 2)),var(--pwu-layout-width));margin-inline:auto}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:16px;top:-60px;z-index:999;background:var(--pwu-navy);color:#fff;padding:10px 14px;border-radius:8px}.skip-link:focus{top:16px}.skip-link:focus-visible{outline:3px solid var(--pwu-focus);outline-offset:var(--pwu-focus-offset);box-shadow:0 0 0 6px var(--pwu-focus-ring)}
#main-content{scroll-margin-top:24px}#main-content:focus{outline:0}

/* Sacred editorial surface — moved from the former global premium stylesheet in v15.1.0. */
/* ---- Global luxury editorial surface ---- */
body{
  background:
    radial-gradient(circle at 12% 10%,rgba(var(--pwu-gold-rgb),.035),transparent 28rem),
    var(--pwu-paper);
}
::selection{background:rgba(var(--pwu-gold-rgb),.24);color:var(--pwu-ink)}
/* v17.8.1 — Phone gutters on every page type. These lived only in home.css, so
   articles, archives, pages and search kept 26px side gutters and the header
   had too little room for the brand name. */
@media(max-width:860px){:root{--pwu-gutter:17px}}
@media(max-width:420px){:root{--pwu-gutter:13px}}

.kicker{
  color:var(--pwu-lux-gold-2);
  font-size:10px;
  letter-spacing:.24em;
  font-weight:800;
}
.kicker::before{
  content:"✦";
  display:inline-block;
  margin-right:8px;
  font-size:9px;
  transform:translateY(-1px);
}

/* Accessibility foundation: visible keyboard focus with a two-tone ring that remains legible across light and dark surfaces. */
:where(a,button,input,textarea,select,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid var(--pwu-focus);outline-offset:var(--pwu-focus-offset);box-shadow:0 0 0 6px var(--pwu-focus-ring)}
:where(a,button,input,textarea,select,summary,[tabindex="-1"]):focus{scroll-margin-block-start:112px;scroll-margin-block-end:24px}
:where(button,input,textarea,select):disabled{cursor:not-allowed}
@media(forced-colors:active){:where(a,button,input,textarea,select,summary,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid CanvasText;outline-offset:3px;box-shadow:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.story-card__media img,.text-link span,.menu .sub-menu{transition:none}}
/* Typography defaults consume the canonical scale defined at the top of this file. */
html{font-size:16px}
body,
button,input,textarea,select{font-family:var(--pwu-font-sans)}
body{font-size:var(--pwu-body);line-height:1.74;color:var(--pwu-text);letter-spacing:0}

p{margin-top:0}
/* WordPress forms and widgets inherit the same visual language. */
input,textarea,select{font-size:15px;line-height:1.45;color:var(--pwu-text)}
label{font-family:var(--pwu-font-sans);font-size:13px;font-weight:700;letter-spacing:.025em}
.widget,.widget-title{font-family:var(--pwu-font-sans)}
.widget-title{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}


/* v15.5.0 — Global asset reduction: critical and accessibility presentation consolidated into the foundation bundle. */

/* PWUSA Critical CSS v2.0.1 */
body{margin:0}img{max-width:100%;height:auto}.site-header{position:relative;z-index:100}
/* v11.4.0 accessibility role names now resolve through the canonical token block above. */
/* Contrast policy: reserve the brighter brand gold for decoration and large accents.
 * Text-bearing controls use the darker gold surface so white text retains a
 * reliable AA contrast ratio. Small text on light surfaces uses the dedicated
 * accessibility gold text token. */
.btn--gold,
.pwu-search-form__submit,
.pwu-direct-distribution__link--primary{
  background:var(--pwu-a11y-gold-surface)!important;
  border-color:var(--pwu-a11y-gold-surface)!important;
  color:#fff!important;
}
.btn--gold:hover,
.pwu-search-form__submit:hover,
.pwu-direct-distribution__link--primary:hover{
  background:var(--pwu-navy)!important;
  border-color:var(--pwu-navy)!important;
  color:#fff!important;
}

/* Light-surface interactive states. */
.search-toggle[aria-expanded="true"]{
  border-color:var(--pwu-a11y-gold-surface)!important;
  color:var(--pwu-a11y-gold-text)!important;
}
.search-toggle:hover{
  color:var(--pwu-a11y-gold-text)!important;
}
.navigation.pagination .page-numbers:hover{
  border-color:var(--pwu-a11y-gold-surface)!important;
  color:var(--pwu-a11y-gold-text)!important;
}
.pwu-breadcrumb a:hover,
.text-link--gold,
.section-heading__link,
.story-card__read,
.pwu-entity-profile__eyebrow,
.pwu-entity-profile__facts h3,
.pwu-entity-profile__significance h3,
.pwu-entity-source__title:hover,
.pwu-entity-source__type,
.pwu-answer-engine__title,
.pwu-answer-engine__supporting h4,
.pwu-editorial-authority__item a:hover,
.pwu-editorial-authority__item a:focus,
.pwu-editorial-authority__item--ai,
.pwu-commercial-disclosure__eyebrow,
.pwu-editorial-disclaimer__eyebrow,
.pwu-editorial-provenance__eyebrow,
.pwu-editorial-provenance__title-row a:hover,
.pwu-editorial-provenance__relationship,
.pwu-entity-source__relationship{
  color:var(--pwu-a11y-gold-text);
}

/* UI component boundaries are deliberately stronger than the ornamental line token. */
.search-toggle,
.menu-toggle,
.pwu-search-overlay__close,
.pwu-search-form__input,
.navigation.pagination .page-numbers{
  border-color:var(--pwu-a11y-control-border);
}

.pwu-search-form__input:focus{
  border-color:var(--pwu-a11y-gold-text)!important;
  box-shadow:0 0 0 4px rgba(123,90,32,.18),0 7px 20px rgba(16,35,53,.06)!important;
}
.pwu-search-form__input::placeholder{
  color:var(--pwu-a11y-muted);
}
.pwu-search-overlay__header p,
.pwu-search-overlay__hint,
.pwu-search-empty p{
  color:var(--pwu-a11y-muted)!important;
}
.pwu-search-form__submit{
  box-shadow:0 8px 18px rgba(16,35,53,.16);
}
.pwu-search-form__submit:hover{
  box-shadow:0 12px 24px rgba(16,35,53,.22);
}

.back-to-top:hover{
  background:var(--pwu-a11y-gold-surface)!important;
  border-color:var(--pwu-a11y-gold-surface)!important;
  color:#fff!important;
}

.newsletter__form input:focus{
  box-shadow:0 0 0 3px rgba(123,90,32,.42)!important;
}


/* -------------------------------------------------------------------------
 * Shared component primitives — token-driven and JavaScript-independent.
 * Existing page-specific classes may extend these patterns, but must not
 * introduce a competing base palette, spacing scale, or control state system.
 * ---------------------------------------------------------------------- */
.pwu-button,
.btn{
  display:inline-flex;
  min-height:var(--pwu-control-height);
  align-items:center;
  justify-content:center;
  gap:var(--pwu-space-2);
  padding:var(--pwu-space-3) var(--pwu-space-5);
  border:var(--pwu-border-width) solid transparent;
  border-radius:var(--pwu-control-radius);
  background:transparent;
  color:inherit;
  font-family:var(--pwu-font-sans);
  font-size:var(--pwu-font-size-control);
  font-weight:600;
  letter-spacing:.01em;
  line-height:1.3;
  text-align:center;
  text-decoration:none;
  cursor:pointer;
  transition:transform var(--pwu-motion-fast) var(--pwu-motion-ease),background-color var(--pwu-motion-fast) ease,border-color var(--pwu-motion-fast) ease,color var(--pwu-motion-fast) ease;
}
.pwu-button:hover,
.btn:hover{transform:translateY(-1px)}
.pwu-button--primary,
.btn--gold{background:var(--pwu-a11y-gold-surface);border-color:var(--pwu-a11y-gold-surface);color:var(--pwu-color-on-dark)}
.pwu-button--primary:hover,
.btn--gold:hover{background:var(--pwu-navy);border-color:var(--pwu-navy);color:var(--pwu-color-on-dark)}
.pwu-button--dark,
.btn--dark{background:var(--pwu-navy);border-color:var(--pwu-navy);color:var(--pwu-color-on-dark)}
.pwu-button--dark:hover,
.btn--dark:hover{background:var(--pwu-navy-2);border-color:var(--pwu-navy-2);color:var(--pwu-color-on-dark)}
.pwu-button--outline{border-color:currentColor;color:inherit;background:transparent}
.btn--outline{border-color:rgba(255,255,255,.7);color:#fff;background:transparent}
.btn--outline:hover{background:rgba(255,255,255,.10);color:#fff}
.pwu-button[aria-current="page"],
.btn[aria-current="page"]{outline:2px solid currentColor;outline-offset:2px}
.pwu-button:disabled,
.pwu-button[aria-disabled="true"],
.pwu-button[aria-busy="true"],
.btn:disabled,
.btn[aria-disabled="true"],
.btn[aria-busy="true"]{opacity:var(--pwu-state-disabled-opacity);cursor:not-allowed;transform:none}

.pwu-text-link{display:inline-flex;align-items:baseline;gap:var(--pwu-space-2);color:var(--pwu-color-link);font-weight:600;text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.18em}
.pwu-text-link:hover{color:var(--pwu-color-link-hover)}
.pwu-text-link[aria-current="page"]{font-weight:800;text-decoration-thickness:.14em}

.pwu-icon-button,
.icon-btn{display:inline-flex;min-width:var(--pwu-control-height);min-height:var(--pwu-control-height);align-items:center;justify-content:center;gap:var(--pwu-space-2);padding:var(--pwu-space-2);border:var(--pwu-border-width) solid transparent;border-radius:var(--pwu-radius-md);background:transparent;color:var(--pwu-navy);cursor:pointer}
.pwu-icon-button:hover,
.icon-btn:hover{background:var(--pwu-ivory);color:var(--pwu-color-link)}

.pwu-card{min-width:0;border:var(--pwu-border-width) solid var(--pwu-line);border-radius:var(--pwu-radius-lg);background:var(--pwu-paper);color:var(--pwu-ink);box-shadow:var(--pwu-shadow-sm)}
.pwu-card__body{padding:var(--pwu-space-5)}
.pwu-page-header{max-width:var(--pwu-reading-width);margin:0 auto var(--pwu-space-8)}
.pwu-page-header__eyebrow{margin:0 0 var(--pwu-space-2);color:var(--pwu-a11y-gold-text);font-size:var(--pwu-font-size-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.pwu-page-header__title{margin:0;color:var(--pwu-ink);font-family:var(--pwu-font-serif);font-size:clamp(2rem,4vw,3.25rem);font-weight:500;line-height:var(--pwu-line-height-tight);letter-spacing:var(--pwu-letter-spacing-tight);text-wrap:balance}
.pwu-page-header__description{margin:var(--pwu-space-4) 0 0;color:var(--pwu-text-soft);font-size:var(--pwu-font-size-lg);line-height:var(--pwu-line-height-comfortable)}
.pwu-section-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--pwu-space-4);margin:0 0 var(--pwu-space-5)}
.pwu-section-heading__title{margin:0;color:var(--pwu-ink);font-family:var(--pwu-font-serif);font-size:clamp(1.6rem,3vw,2.5rem);font-weight:500;line-height:var(--pwu-line-height-heading);letter-spacing:var(--pwu-letter-spacing-tight)}
.pwu-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--pwu-space-2) var(--pwu-space-4);color:var(--pwu-text-soft);font-family:var(--pwu-font-sans);font-size:var(--pwu-font-size-sm);line-height:1.5}
.pwu-notice{padding:var(--pwu-space-4) var(--pwu-space-5);border:var(--pwu-border-width) solid var(--pwu-line);border-left:4px solid var(--pwu-color-info);border-radius:var(--pwu-radius-md);background:var(--pwu-paper);color:var(--pwu-ink)}
.pwu-notice--success{border-left-color:var(--pwu-color-success)}
.pwu-notice--warning{border-left-color:var(--pwu-color-warning)}
.pwu-notice--error{border-left-color:var(--pwu-color-error)}
.pwu-form-control{display:block;width:100%;min-height:var(--pwu-control-height);padding:var(--pwu-control-padding-y) var(--pwu-control-padding-x);border:var(--pwu-border-width) solid var(--pwu-control-border);border-radius:var(--pwu-control-radius);background:var(--pwu-paper);color:var(--pwu-ink);font:inherit;line-height:1.45}
.pwu-form-control:focus-visible{outline:3px solid var(--pwu-focus);outline-offset:var(--pwu-focus-offset);border-color:var(--pwu-a11y-gold-text);box-shadow:0 0 0 6px var(--pwu-focus-ring)}
.pwu-form-control:disabled{background:var(--pwu-ivory);color:var(--pwu-text-soft);cursor:not-allowed}
.pwu-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--pwu-space-2)}
.pwu-pagination a,
.pwu-pagination span{display:inline-flex;min-width:var(--pwu-control-height);min-height:var(--pwu-control-height);align-items:center;justify-content:center;padding:var(--pwu-space-2) var(--pwu-space-3);border:var(--pwu-border-width) solid var(--pwu-control-border);border-radius:var(--pwu-radius-md);background:var(--pwu-paper);color:var(--pwu-ink);font-size:var(--pwu-font-size-sm);text-decoration:none}
.pwu-pagination [aria-current="page"],
.pwu-pagination .current{border-color:var(--pwu-navy);background:var(--pwu-navy);color:var(--pwu-color-on-dark);font-weight:700}
.pwu-pagination a:hover{border-color:var(--pwu-a11y-gold-surface);color:var(--pwu-a11y-gold-text)}
.pwu-empty-state{width:100%;padding:var(--pwu-space-8) var(--pwu-space-5);border:var(--pwu-border-width) solid var(--pwu-line);border-radius:var(--pwu-radius-lg);background:var(--pwu-ivory);color:var(--pwu-ink);text-align:center}
.pwu-empty-state__title{margin:0 0 var(--pwu-space-2);font-family:var(--pwu-font-serif);font-size:var(--pwu-font-size-2xl);font-weight:500;line-height:var(--pwu-line-height-heading)}
.pwu-empty-state__description{max-width:var(--pwu-narrow-width);margin:0 auto;color:var(--pwu-text-soft);line-height:var(--pwu-line-height-comfortable)}

@media(prefers-reduced-motion:reduce){
  .pwu-button,.btn{transition:none}
  .pwu-button:hover,.btn:hover{transform:none}
}

.brand__mark-image{width:40px;height:54px;object-fit:contain;display:block;}

/* Keep the stronger gold policy compatible with the existing footer/header brand language. */
.pwu-editorial-authority__review-icon,
.pwu-editorial-authority__ai-icon{
  color:#14202b;
}

/* Global reduced-motion contract. The rule disables animation/transition timing
 * across theme modules while preserving transforms that are used for layout. */
@media (prefers-reduced-motion:reduce){
  html,
  body,
  *{
    scroll-behavior:auto!important;
  }
  *,*::before,*::after{
    animation:none!important;
    transition:none!important;
    transition-delay:0s!important;
    animation-delay:0s!important;
  }
  .pwu-search-overlay,
  .pwu-search-overlay__panel,
  .back-to-top,
  .menu .sub-menu,
  .mobile-nav,
  .story-card__media img,
  .post-card__image img{
    transition:none!important;
  }
}

/* High-contrast/forced-colors environments retain visible system outlines. */
@media (forced-colors:active){
  .btn--gold,
  .pwu-search-form__submit,
  .pwu-direct-distribution__link--primary,
  .search-toggle,
  .menu-toggle,
  .pwu-search-overlay__close,
  .navigation.pagination .page-numbers,
  .pwu-search-form__input{
    forced-color-adjust:auto;
  }
}


/* Phase 5 — explicit media roles. Designed artwork, portraits, decorative media,
   and logos preserve their intrinsic dimensions; only editor-designated crop-safe
   editorial photography receives a 16:9 crop. */
.pwu-media-image{display:block;max-width:100%}
.pwu-media-image--artwork,.pwu-media-image--saint-portrait,.pwu-media-image--decorative,.pwu-media-image--logo-icon{width:100%;height:auto;object-fit:contain}
.pwu-media-image--editorial-photo{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.pwu-media-placeholder{display:block;width:100%;min-height:9rem;aspect-ratio:4/3;background:linear-gradient(135deg,#e9e2d6,#c6b9a4)}
.pwu-media-placeholder--missing{background:linear-gradient(135deg,#e9e2d6,#c6b9a4)}
