/* ============================================================================
   PREVIOUSLY — shared/footer · footer.css · Tier 1 foundation
   Consumed by every rebuilt page through the page shell (ships with shell CSS,
   no extra request). Dark-first, pvf- namespace, tokens-only values.
   Design law: design tokens v1.0 — Noir surfaces, Bone text, Signal Red accent,
   no gold, 44px touch targets, two-register copy.
   ============================================================================ */

/* ---- Footer shell ---- */
[data-pv-footer].pvf-footer {
  background: var(--pv-noir-2);
  border-top: 1px solid var(--pv-rule);
  color: var(--pv-ivory);
  font-family: var(--pv-sans);
}

.pvf-footer__inner {
  max-width: var(--pv-content-max);
  margin-inline: auto;
  padding: var(--pv-s8) var(--pv-gutter) var(--pv-s6);
}

/* ---- Brand ---- */
.pvf-footer__brand {
  margin: 0 0 var(--pv-s8);
}

.pvf-footer__wordmark {
  display: inline-block;
  min-height: var(--pv-target-min);
  line-height: var(--pv-target-min);
  font-family: var(--pv-serif);
  font-weight: 700;
  font-size: var(--pv-h3);
  letter-spacing: .12em;
  color: var(--pv-ivory);
  text-decoration: none;
  text-transform: uppercase;
}

.pvf-footer__wordmark .pvf-footer__wordmark-dot {
  color: var(--pv-red);
}

.pvf-footer__tagline {
  margin: var(--pv-s2) 0 0;
  max-width: 34ch;
  font-size: var(--pv-body-sm);
  line-height: var(--pv-leading-body);
  color: var(--pv-ivory-dim);
}

/* ---- Link columns ---- */
.pvf-footer__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: var(--pv-s8) var(--pv-s12);
}

.pvf-footer__heading {
  margin: 0 0 var(--pv-s2);
  font-size: var(--pv-label);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--pv-track-xl);
  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);
  padding-block: calc((var(--pv-target-min) - 1.4em) / 2);
  font-size: var(--pv-body-sm);
  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);
  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);
  outline-offset: 2px;
  border-radius: var(--pv-r-sm);
}

/* ---- Legal line ---- */
.pvf-footer__legal {
  margin-top: var(--pv-s8);
  padding-top: var(--pv-s4);
  border-top: 1px solid var(--pv-rule);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--pv-s2) var(--pv-s4);
  font-size: var(--pv-caption);
  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) var(--pv-gutter-sm) var(--pv-s4);
  }

  .pvf-footer__grid {
    grid-template-columns: 1fr;
    gap: var(--pv-s6);
  }

  .pvf-footer__brand {
    margin-bottom: var(--pv-s6);
  }

  .pvf-footer__legal {
    margin-top: var(--pv-s6);
  }
}

/* ---- Print: columns hidden, legal line prints (tokens reinforce this) ---- */
@media print {
  [data-pv-footer].pvf-footer {
    background: #fff;
    border-top: 1px solid #000;
    color: #000;
  }

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

  .pvf-footer__legal {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
    color: #000;
    font-size: 11px;
  }

  .pvf-footer__legal a {
    color: #000;
  }
}

/* ---- Reduced motion: the footer has no animation — pass by construction ---- */
@media (prefers-reduced-motion: reduce) {
  [data-pv-footer].pvf-footer * {
    animation: none;
    transition: none;
  }
}
