/* ═══════════════════════════════════════════════════════════════════
   CHS Site Footer — ported VERBATIM from the approved canonical pages
   (about-v8.html .chs-footer-wow rules, incl. media queries).
   Loads after theme.css and overrides the legacy teal/pin-stripe footer.
   Parity Rule: BRANDING.md — do not re-derive values.
   ═══════════════════════════════════════════════════════════════════ */

/* Moved here from theme.css on 2026-09-03 (cascade order preserved: these rules
   ran before everything below, exactly as they do now). Legacy remnants that still
   paint: transitions, hover lift, Facebook colour, mobile centering. */
.chs-footer-wow__heading {
    margin-bottom: var(--chs-space-lg);
}
.chs-footer-wow__title {
    margin-bottom: var(--chs-space-lg);
}
.chs-footer-wow__input {
    transition: all var(--chs-transition);
}
.chs-footer-wow__input:focus::placeholder {
    color: rgba(0, 0, 0, 0.4);
}
.chs-footer-wow__submit {
    transition: all var(--chs-transition);
}
.chs-footer-wow__email {
    transition: color var(--chs-transition-fast);
    word-break: break-word;
}
.chs-footer-wow__email:hover {
    text-decoration: none;
}
.chs-footer-wow__social-icon {
    transition: all var(--chs-transition);
}
.chs-footer-wow__social-icon--facebook {
    background: #1877f2;
}
.chs-footer-wow__social-icon:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
.chs-footer-wow__links a {
    transition: color var(--chs-transition-fast);
}
.chs-footer-wow__links a:hover {
    text-decoration: none;
}
.chs-footer-wow__legal {
    transition: color var(--chs-transition-fast);
}
.chs-footer-wow__legal:hover {
    text-decoration: none;
}
@media (max-width: 1399.98px) {
    .chs-footer-wow__content .row {
        justify-content: center;
        text-align: center;
    }
    .chs-footer-wow__newsletter-col {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        margin-bottom: var(--chs-space-xl);
        margin-top: 0;
    }
    .chs-footer-wow__newsletter {
        max-width: 500px;
        width: 100%;
    }
    .chs-footer-wow__title, .chs-footer-wow__heading {
        text-align: center;
    }
    .chs-footer-wow__links {
        text-align: center;
    }
    .chs-footer-wow__email {
        text-align: center;
    }
    .chs-footer-wow__social {
        justify-content: center;
    }
}
@media (max-width: 1500px) {
    .chs-footer-wow__brand-text {
        font-size: clamp(3rem, 10vw, 12rem);
    }
}
@media (max-width: 991.98px) {
    .chs-footer-wow__content {
        padding: var(--chs-space-3xl) 0 var(--chs-space-2xl);
    }
    .chs-footer-wow__brand-text {
        font-size: clamp(2rem, 9vw, 5rem);
    }
    .chs-footer-wow__brand {
        margin-top: calc(-1 * var(--chs-space-xl));
    }
}
@media (max-width: 767.98px) {
    .chs-footer-wow__content .row {
        text-align: center;
    }
    .chs-footer-wow__newsletter {
        max-width: 100%;
    }
    .chs-footer-wow__social {
        justify-content: center;
    }
    .chs-footer-wow__links {
        text-align: center;
    }
    .chs-footer-wow__email {
        display: block;
        text-align: center;
    }
    .chs-footer-wow__heading, .chs-footer-wow__title {
        text-align: center;
    }
    .chs-footer-wow__bottom-inner {
        justify-content: center;
        text-align: center;
        flex-direction: column;
        gap: var(--chs-space-sm);
    }
    .chs-footer-wow__brand {
        margin-top: calc(-1 * var(--chs-space-lg));
    }
    .chs-footer-wow__brand-text {
        font-size: clamp(1.5rem, 10vw, 4rem);
    }
}

/* Legacy overlay from the old footer — the approved design has none */
.chs-footer-wow__pattern { display: none; }

.chs-footer-wow {

  --chs-footer-space-sm: .5rem;
  --chs-footer-space-md: 1rem;
  --chs-footer-space-lg: 1.5rem;
  --chs-footer-space-xl: 2rem;
  --chs-footer-space-2xl: 3rem;
  --chs-footer-space-3xl: 5rem;
  position: relative;
  overflow: hidden;
  padding: 0;
  background-color: var(--chs-bg-ink);
  color: var(--chs-on-deep);
  font-family: var(--chs-serif);
  font-size: 16px;
  line-height: 1.5;
}

.chs-footer-wow .container,
.chs-footer-wow .container-fluid {

  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

.chs-footer-wow .container {
 max-width: min(1320px, calc(100% - 40px));
}

.chs-footer-wow .row {

  display: grid;
  grid-template-columns: minmax(280px, 1.35fr) repeat(3, minmax(160px, 1fr));
  gap: var(--chs-footer-space-2xl);
  align-items: start;
}

.chs-footer-wow__content {

  position: relative;
  z-index: 2;
  padding: var(--chs-footer-space-3xl) 0;
}

.chs-footer-wow__heading,
.chs-footer-wow__title {

  margin: 0 0 var(--chs-footer-space-lg);
  color: var(--chs-bg-mint);
  font-family: var(--chs-display);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .15em;
  line-height: 1.2;
  text-transform: uppercase;
}

.chs-footer-wow__newsletter {
 max-width: 400px;
}

.chs-footer-wow__input-group {
 margin-bottom: var(--chs-footer-space-md);
}

.chs-footer-wow__input,
.chs-footer-wow__submit {

  width: 100%;
  border: 2px solid rgba(255,255,255,.3);
  border-radius: var(--chs-radius-lg);
  background: transparent;
  color: var(--chs-on-deep);
  padding: 14px 16px;
}

.chs-footer-wow__input {

  font-family: var(--chs-serif);
  font-size: 1rem;
}

.chs-footer-wow__input::placeholder {
 color: rgba(255,255,255,.5);
}

.chs-footer-wow__input:focus {

  outline: none;
  border-color: var(--chs-accent);
  background: var(--chs-surface);
  color: var(--chs-near-black);
}

.chs-footer-wow__submit {

  cursor: pointer;
  font-family: var(--chs-display);
  font-size: .875rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.chs-footer-wow__submit:hover,
.chs-footer-wow__submit:focus-visible {

  border-color: var(--chs-accent);
  background: var(--chs-accent);
  color: var(--chs-near-black);
}

.chs-footer-wow__email {

  display: block;
  /* Line-height alone left these at 19-22px tall — below the 24px WCAG 2.2 AA
     target minimum, and the footer is heavily used on mobile. */
  padding-block: 5px;
  margin-bottom: var(--chs-footer-space-lg);
  color: var(--chs-on-deep);
  overflow-wrap: break-word;
  font-size: .9rem;
  font-weight: 600;
  text-decoration: none;
}

.chs-footer-wow__email:hover {
 color: var(--chs-accent);
}

.chs-footer-wow__social {

  display: flex;
  gap: var(--chs-footer-space-sm);
}

.chs-footer-wow__social-icon {

  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  color: white;
  font-family: var(--chs-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}

.chs-footer-wow__social-icon--instagram {
 background: linear-gradient(45deg, #f09433 0%, #e6683c 28%, #dc2743 56%, #bc1888 100%);
}

.chs-footer-wow__social-icon--linkedin {
 background: #0077b5;
}

.chs-footer-wow__links {

  margin: 0;
  padding: 0;
  list-style: none;
}

.chs-footer-wow__links li {
 margin-bottom: var(--chs-footer-space-sm);
}

.chs-footer-wow__links a {

  display: inline-block;
  padding-block: 5px;
  color: var(--chs-bg-mint);
  font-size: .9375rem;
  text-decoration: none;
}

.chs-footer-wow__links a:hover {
 color: var(--chs-accent);
}

.chs-footer-wow__brand {

  position: relative;
  z-index: 2;
  margin-top: calc(-1 * var(--chs-footer-space-3xl));
  overflow: hidden;
  padding: var(--chs-footer-space-sm) 0;
}

.chs-footer-wow__brand-text {

  margin: 0;
  color: rgba(222,255,241,.9);
  font-family: var(--chs-display);
  font-size: clamp(3rem, 10vw, 12rem);
  font-weight: 700;
  letter-spacing: -.05em;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
}

.chs-footer-wow__bottom {

  position: relative;
  z-index: 2;
  border-top: 1px solid rgba(255,255,255,.1);
  padding: var(--chs-footer-space-lg) 0;
}

.chs-footer-wow__bottom-inner {

  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--chs-footer-space-lg);
}

.chs-footer-wow__legal,
.chs-footer-wow__copyright {

  color: rgba(255,255,255,.6);
  font-size: .8125rem;
}

.chs-footer-wow__legal {
 display: inline-block;
 padding-block: 5px;
 text-decoration: none;
}

.chs-footer-wow__legal:hover {
 color: var(--chs-on-deep);
}

@media (max-width: 1180px) {
  .chs-footer-wow .row {

    grid-template-columns: repeat(3, minmax(0, 1fr));
    text-align: center;
  }

  .chs-footer-wow__newsletter-col {

    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .chs-footer-wow__newsletter {

    width: 100%;
    max-width: 500px;
  }

  .chs-footer-wow__social {
 justify-content: center;
  }
}

@media (max-width: 760px) {
  .proof-sheet,
  .standards-grid,
  .timeline,
  .chs-footer-wow .row {

    grid-template-columns: 1fr;
  }

  .chs-footer-wow__bottom-inner {

    flex-direction: column;
    justify-content: center;
    gap: var(--chs-footer-space-sm);
    text-align: center;
  }

  .chs-footer-wow__brand {

    margin-top: calc(-1 * var(--chs-footer-space-lg));
  }

  .chs-footer-wow__brand-text {

    font-size: clamp(1.5rem, 10vw, 4rem);
  }
}

/* ── Bootstrap neutralization ──────────────────────────────────────────
   The demo's .row/.col classes are standalone; the theme loads real
   Bootstrap whose col-* width/flex/padding fight the demo grid tracks.
   Inside the footer, the grid owns the layout. */
.chs-footer-wow .row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    margin: 0;
}

.chs-footer-wow .row > * {
    width: auto;
    max-width: none;
    flex: none;
    padding: 0;
}

/* Newsletter signup — honeypot and confirmation.
   Off-screen, never display:none — bots skip hidden fields. */

.chs-footer-wow__honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.chs-footer-wow__newsletter-done {
    margin: 0;
    color: var(--chs-accent, #c9b958);
    font-family: var(--chs-mono, monospace);
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
