/* ============================================================
   Footer — dark editorial
   ============================================================ */
.wwd-footer { position: relative; background: var(--wwd-bg-2); color: var(--wwd-body); border-top: 1px solid var(--wwd-line); overflow: hidden; }
.wwd-footer__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.7fr 1fr 1fr 1.3fr; gap: 2.5rem;
  padding-block: clamp(3.5rem, 6vw, 5.5rem);
}
.wwd-footer .wwd-logo__full { height: 72px; }
.wwd-footer .wwd-logo__img { filter: brightness(0) invert(1); height: 38px; width: 38px; }
.wwd-footer .wwd-logo__text { color: #fff; }
.wwd-footer .wwd-logo__text span { color: var(--wwd-muted); }
.wwd-footer__tagline { margin: 1.2rem 0 1.5rem; color: var(--wwd-body); max-width: 32ch; font-size: 1.05rem; }

.wwd-footer__heading { color: #fff; font-family: var(--wwd-font-head); font-weight: 500; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wwd-muted); margin-bottom: 1.2rem; }
.wwd-footer__list { list-style: none; display: flex; flex-direction: column; gap: .75rem; }
/* 24px is the floor for a standalone target under WCAG 2.5.8. These sit in a
   list rather than inline in a sentence, so neither the inline nor the spacing
   exception can be relied on to carry them - one of them measured 144x19 and
   failed outright. inline-flex sets the height without changing the rhythm. */
.wwd-footer__list a { display: inline-flex; align-items: center; min-height: 24px; color: var(--wwd-body); font-size: 1rem; transition: color .25s var(--wwd-ease), padding-left .25s var(--wwd-ease); }
.wwd-footer__list a:hover { color: var(--wwd-green-bright); padding-left: 5px; }

.wwd-footer__list--contact a, .wwd-footer__loc { display: flex; align-items: center; gap: .65rem; color: var(--wwd-body); }
.wwd-footer__list--contact svg, .wwd-footer__loc svg { width: 18px; height: 18px; color: var(--wwd-green-bright); flex-shrink: 0; }

.wwd-social { display: flex; gap: .55rem; }
.wwd-social__link { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.05); color: #fff; border: 1px solid var(--wwd-line); transition: transform .3s var(--wwd-ease), background .3s var(--wwd-ease), color .3s var(--wwd-ease); }
.wwd-social__link svg { width: 18px; height: 18px; }
.wwd-social__link:hover { transform: translateY(-3px); background: var(--wwd-green-bright); color: var(--wwd-ink); border-color: transparent; }

.wwd-footer__bar { position: relative; z-index: 1; border-top: 1px solid var(--wwd-line); }
.wwd-footer__bar-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.5rem; flex-wrap: wrap; }
.wwd-footer__bar p { margin: 0; font-size: .85rem; color: var(--wwd-muted); }
.wwd-footer__legal { list-style: none; display: flex; gap: 1.5rem; flex-wrap: wrap; }
.wwd-footer__legal a { display: inline-flex; align-items: center; min-height: 24px; color: var(--wwd-muted); font-size: .85rem; }
.wwd-footer__legal a:hover { color: var(--wwd-green-bright); }

@media (max-width: 880px) { .wwd-footer__inner { grid-template-columns: 1fr 1fr; gap: 2rem; } .wwd-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 520px) { .wwd-footer__inner { grid-template-columns: 1fr; } .wwd-footer__bar-inner { flex-direction: column; align-items: flex-start; } }
