.site-footer {
  display: block;
  padding: 0;
  border-top: 1px solid var(--hair-ink);
  background: #0a100e;
  color: var(--on-ink-muted);
  font-family: var(--body);
  font-size: 14px;
}

.site-footer * { box-sizing: border-box; }
.site-footer a { transition: color .25s var(--ease), border-color .25s var(--ease), transform .35s var(--out), background .25s var(--ease); }
.site-footer a:focus-visible,
.site-footer input:focus-visible,
.site-footer select:focus-visible,
.site-footer textarea:focus-visible,
.site-footer button:focus-visible { outline-color: var(--flame); }

.footer-shell {
  width: min(100%, var(--wrap));
  margin-inline: auto;
  padding-inline: var(--gut);
}

.footer-primary {
  display: grid;
  grid-template-columns: minmax(280px,.85fr) minmax(420px,1.15fr);
  gap: clamp(48px,7vw,96px);
  padding-block: clamp(64px,7vw,96px);
}

.footer-logo-link { display: block; width: min(260px,80%); height: 64px; overflow: hidden; }
.footer-logo-image { display: block; width: 100%; height: auto; transform: translateY(-31%); filter: grayscale(1) brightness(0) invert(1); opacity: .95; }
.footer-tagline { max-width: 38ch; margin: 18px 0 38px; color: var(--on-ink); font-size: 17px; line-height: 1.55; }
.footer-heading { margin: 0 0 18px; color: var(--on-ink); font-family: var(--display); font-size: 24px; font-weight: 500; }

.footer-contact-list { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.footer-contact-list li { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 12px; align-items: start; }
.footer-contact-list svg { width: 17px; height: 17px; margin-top: 3px; color: var(--flame); fill: currentColor; }
.footer-contact-list a:hover { color: var(--on-ink); }

.footer-socials { display: flex; gap: 10px; margin-top: 26px; }
.footer-socials a { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--hair-ink); border-radius: 50%; color: var(--on-ink); }
.footer-socials a:hover { border-color: var(--vermilion); background: var(--vermilion); transform: translateY(-3px); }
.footer-socials svg { width: 17px; height: 17px; fill: currentColor; }

.footer-form-copy { max-width: 62ch; margin: 0 0 24px; }
.footer-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.footer-field { display: grid; gap: 7px; }
.footer-field.full { grid-column: 1 / -1; }
.footer-field label { color: var(--on-ink); font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.footer-field input,
.footer-field select,
.footer-field textarea {
  width: 100%;
  border: 1px solid var(--hair-ink);
  border-radius: 3px;
  background: rgba(242,239,230,.055);
  color: var(--on-ink);
  font: 14px/1.4 var(--body);
}
.footer-field input,
.footer-field select { min-height: 46px; padding: 10px 12px; }
.footer-field textarea { min-height: 104px; padding: 12px; resize: vertical; }
.footer-field input::placeholder,
.footer-field textarea::placeholder { color: var(--on-ink-muted); opacity: .76; }
.footer-field select option { color: var(--on-bone); background: var(--bone); }
.footer-submit { grid-column: 1 / -1; min-height: 48px; border: 1px solid var(--vermilion); border-radius: 3px; background: var(--vermilion); color: var(--bone); font-weight: 600; cursor: pointer; }
.footer-submit:hover { border-color: var(--flame); background: var(--flame); }
.footer-form-note { grid-column: 1 / -1; margin: -2px 0 0; color: var(--on-ink-muted); font-size: 12px; }

.footer-directory { border-top: 1px solid var(--hair-ink); border-bottom: 1px solid var(--hair-ink); }
.footer-directory-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: clamp(24px,4vw,56px); padding-block: 44px; }
.footer-directory h3 { margin: 0 0 16px; color: var(--on-ink); font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.footer-directory nav { display: grid; gap: 10px; }
.footer-directory a { width: fit-content; color: var(--on-ink-muted); }
.footer-directory a:hover { color: var(--flame); transform: translateX(3px); }

.footer-legal { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding-block: 24px 30px; color: var(--on-ink-muted); font-size: 12px; }
.footer-legal-links { display: flex; gap: 22px; }
.footer-legal a:hover { color: var(--on-ink); }

@media (max-width: 900px) {
  .footer-primary { grid-template-columns: minmax(0,1fr); }
  .footer-directory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 600px) {
  .footer-primary { padding-block: 54px; }
  .footer-form { grid-template-columns: minmax(0,1fr); }
  .footer-field.full, .footer-submit, .footer-form-note { grid-column: auto; }
  .footer-directory-grid { grid-template-columns: minmax(0,1fr); }
  .footer-legal { align-items: flex-start; flex-direction: column; }
  .footer-legal-links { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer a { transition: none; }
  .footer-socials a:hover, .footer-directory a:hover { transform: none; }
}
