/* ============================================================================
   PREVIOUSLY — shared/footer · footer.css · CANONICAL (2026-10-12 footer fix)
   The single source of truth for footer styling, fleet-wide.
   SELF-CONTAINED: every design token carries a hard fallback, so the footer
   renders Bible-correct on ANY page — including pages that load no token
   files and no pv-core bundle (the live-tv / free shell pattern that shipped
   a completely unstyled footer). footer.js guarantees this sheet loads on
   every page that carries a [data-pv-footer] mount.
   Bible style: cream surface, dark serif wordmark, brick-red accents,
   hairline rules, no pills. 44px touch targets.
   ============================================================================ */

/* ---- Footer shell ---- */
[data-pv-footer].pvf-footer{
  /* Pin the footer register for the whole subtree: text/border tokens must
     not follow the page's prefers-color-scheme. Scoped custom properties
     override inherited :root values. (Watchdog 2026-10-03 run 2.) */
  --pv-ivory:var(--desert-ink, #2A1C11);
  --pv-ivory-dim:rgba(var(--desert-ink-rgb, 42, 28, 17), .78);
  --pv-ivory-faint:rgba(var(--desert-ink-rgb, 42, 28, 17), .60);
  --pv-noir-2: var(--desert-card, #FFFFFF);
  --pv-rule:rgba(var(--desert-ink-rgb, 42, 28, 17), .14);
  background:var(--pv-noir-2);
  border-top:1px solid var(--pv-rule);
  color:var(--pv-ivory);
  font-family:var(--pv-sans, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
  color-scheme:light;
}.pvf-footer__inner{
  max-width:var(--pv-content-max, 1280px);
  margin-inline:auto;
  padding:var(--pv-s8, 32px) var(--pv-gutter, 40px) var(--pv-s6, 24px);
}/* ---- Brand ---- */
.pvf-footer__brand{
  margin:0;
  min-width:0;
}.pvf-footer__wordmark{
  display:inline-block;
  min-height:var(--pv-target-min, 44px);
  line-height:var(--pv-target-min, 44px);
  font-family:var(--pv-serif, 'Fraunces', Georgia, 'Times New Roman', serif);
  font-weight:700;
  font-size:var(--pv-h3, 20px);
  letter-spacing:.12em;
  color:var(--pv-ivory);
  text-decoration:none;
  text-transform:uppercase;
}.pvf-footer__wordmark .pvf-footer__wordmark-dot{
  color:var(--pv-red, #C2410C);
}.pvf-footer__tagline{
  margin:var(--pv-s2, 8px) 0 0;
  max-width:34ch;
  font-size:var(--pv-body-sm, 14px);
  line-height:var(--pv-leading-body, 1.6);
  color:var(--pv-ivory-dim);
}/* ---- Main grid: brand | sections | watch | company (redesign 2026-10-11,
   James: old layout was sparse with a vast empty right side) ---- */
.pvf-footer__main{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:var(--pv-s8, 32px) var(--pv-s10, 40px);
  align-items:start;
}
.pvf-footer__col{
  min-width:0;
}/* Flat nav links (used by section footers) get the same treatment as
   .pvf-footer__list links. */
.pvf-footer__col a{
  display:inline-flex;
  align-items:center;
  min-height:var(--pv-target-min, 44px);
  line-height:var(--pv-target-min, 44px);
  color:var(--pv-ivory-dim);
  text-decoration:none;
  font-size:var(--pv-body-sm, 14px);
}.pvf-footer__col a:hover{
  color:var(--pv-ivory);
  text-decoration:underline;
}.pvf-footer__heading{
  margin:0 0 var(--pv-s2, 8px);
  font-size:var(--pv-label, 11px);
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:var(--pv-track-xl, .18em);
  color:var(--pv-ivory-dim);
}.pvf-footer__list{
  list-style:none;
  margin:0;
  padding:0;
}/* 44px targets, phone and desktop — no exceptions */
.pvf-footer__list a,
.pvf-footer__legal a{
  display:inline-flex;
  align-items:center;
  min-height:var(--pv-target-min, 44px);
  padding-block:calc((var(--pv-target-min, 44px) - 1.4em) / 2);
  font-size:var(--pv-body-sm, 14px);
  line-height:1.4;
  color:var(--pv-ivory-dim);
  text-decoration:none;
}.pvf-footer__list a:hover,
.pvf-footer__legal a:hover{
  color:var(--pv-ivory);
  text-decoration:underline;
  text-decoration-color:var(--pv-red, #C2410C);
  text-underline-offset:4px;
  text-decoration-thickness:2px;
}/* Visible focus, always paired with offset — per tokens */
.pvf-footer:focus-visible{
  outline:var(--pv-focus-outline, 2px solid #C2410C);
  outline-offset:2px;
  border-radius:var(--pv-r-sm, 6px);
}/* ---- Legal line ---- */
.pvf-footer__legal{
  margin-top:var(--pv-s8, 32px);
  padding-top:var(--pv-s4, 16px);
  border-top:1px solid var(--pv-rule);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--pv-s2, 8px) var(--pv-s4, 16px);
  font-size:var(--pv-caption, 12px);
  color:var(--pv-ivory-dim);
}.pvf-footer__legal .pvf-footer__sep{
  color:var(--pv-ivory-faint);
  user-select:none;
}/* ---- Phone: stacked, no accordions — every link visible ---- */
@media (max-width:1023px){
  .pvf-footer__inner {
    padding:var(--pv-s6, 24px) var(--pv-gutter-sm, 20px) var(--pv-s4, 16px);
  }

  .pvf-footer__main {
    grid-template-columns:1fr;
    gap:var(--pv-s8, 32px);
  }

  .pvf-footer__legal {
    margin-top:var(--pv-s6, 24px);
  }
}/* ---- Print: columns hidden, legal line prints ---- */
@media print{
  [data-pv-footer].pvf-footer {
    background:var(--surface-light, #FFFFFF);
    border-top:1px solid var(--desert-bg, #FAF6EE);
    color:var(--text-on-light, #2A1C11);
  }

  .pvf-footer__brand,
  .pvf-footer__col {
    display:none;
  }

  .pvf-footer__legal {
    border-top:none;
    margin-top:0;
    padding-top:0;
    color:var(--text-on-light, #2A1C11);
    font-size:11px;
  }

  .pvf-footer__legal a {
    color:var(--text-on-light, #2A1C11);
  }
}/* ---- Reduced motion: the footer has no animation — pass by construction ---- */
@media (prefers-reduced-motion:reduce){
  [data-pv-footer].pvf-footer * {
    animation:none;
    transition:none;
  }
}

/* ---- Social icons (audit 2026-10-03) ----------
   footer.js injects SVGs without size constraints; unstyled they render
   enormous. Constrain them here. */
.pvf-footer__social{display:flex;flex-direction:column;gap:var(--pv-s2, 8px);align-items:flex-start;margin-top:var(--pv-s6, 24px)}.pvf-footer__social-row{display:flex;gap:4px;align-items:center}.pvf-footer__social-link{display:inline-flex;align-items:center;gap:8px;padding:8px;text-decoration:none}.pvf-footer__social-ic{display:inline-flex;width:20px;height:20px;flex:none}.pvf-footer__social-ic svg{width:20px;height:20px;display:block}

/* ============================================================================
   PREMIUM FOOTER REFINEMENT (2026-10-12 — James: make it look a lot more premium)
   Editorial brand footer: consistent alignment, clear hierarchy, refined details.
   Bible style: cream surface, dark serif, brick-red accents. No pills, no boxes.
   ============================================================================ */

/* ---- Brand block: wordmark with red accent rule ---- */
.pvf-footer__brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.pvf-footer__wordmark{
  font-size:30px;
  letter-spacing:.16em;
}
/* Brick-red hairline under the wordmark — the premium signature.
   FIX 2026-10-12: was `content:;` (invalid, dropped) — the rule never rendered. */
.pvf-footer__wordmark::after{
  content:"";
  display:block;
  width:44px;
  height:3px;
  background:var(--pv-red, #C2410C);
  margin-top:10px;
  border-radius:2px;
}
.pvf-footer__tagline{
  font-size:15px;
  line-height:1.6;
  max-width:36ch;
}

/* ---- Section headings: quiet small caps, clearly distinct from links ---- */
.pvf-footer__heading{
  font-size:11px;
  font-weight:700;
  letter-spacing:.24em;
  color:var(--pv-ivory-faint);
  margin:0 0 var(--pv-s3, 12px);
}

/* ---- Social: clean row, icon + label, red hover ---- */
.pvf-footer__social{
  gap:var(--pv-s3, 12px);
}
.pvf-footer__social-row{
  gap:2px;
}
.pvf-footer__social-link{
  padding:10px 14px;
  border-radius:10px;
  color:var(--pv-ivory-dim);
  font-size:14px;
  transition:color 160ms ease, background 160ms ease;
}
.pvf-footer__social-link:hover{
  color:var(--pv-red, #C2410C);
  background:rgba(var(--desert-ink-rgb, 42, 28, 17), .05);
  text-decoration:none;
}
.pvf-footer__social-ic svg{
  fill:currentColor;
}

/* ---- Link columns: comfortable rhythm ---- */
.pvf-footer__list li{
  margin-bottom:2px;
}

/* ---- Legal line: refined, quiet ---- */
.pvf-footer__legal{
  font-size:12px;
  line-height:1.7;
  color:var(--pv-ivory-faint);
}
.pvf-footer__attribution{
  max-width:90ch;
}

/* ---- Desktop: airy 4-column grid ---- */
@media (min-width:1024px){
  .pvf-footer__main{
    gap:var(--pv-s8, 32px) var(--pv-s12, 48px);
  }
  .pvf-footer__inner{
    padding-top:var(--pv-s10, 40px);
    padding-bottom:var(--pv-s8, 32px);
  }
}

/* ---- Phone: everything centered, consistent ---- */
@media (max-width:1023px){
  .pvf-footer__brand{
    align-items:center;
    text-align:center;
  }
  .pvf-footer__wordmark::after{
    margin-inline:auto;
  }
  .pvf-footer__tagline{
    text-align:center;
    margin-inline:auto;
  }
  .pvf-footer__social{
    align-items:center;
  }
  .pvf-footer__social-row{
    justify-content:center;
    flex-wrap:wrap;
  }
  .pvf-footer__col{
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  .pvf-footer__col a{
    justify-content:center;
  }
  .pvf-footer__main{
    gap:var(--pv-s10, 40px);
  }
  .pvf-footer__legal{
    justify-content:center;
    text-align:center;
  }
}
