.site-footer {
  --focus-color: var(--ivory-bone);
  position: relative;
  z-index: 2;
  background: linear-gradient(135deg, var(--deep-moss) 0%, var(--dark-soil) 100%);
  color: var(--text);
  border-block-start: var(--border-width) solid color-mix(in srgb, var(--tree-gold) 20%, transparent);
  box-shadow:
    var(--shadow-footer),
    inset 0 1px 0 color-mix(in srgb, var(--tree-gold) 16%, transparent);
}

.footer-container {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: var(--space-5);
  max-width: var(--container-max);
  margin-inline: auto;
  padding-block: var(--space-4);
  padding-inline-start: calc(var(--container-pad-inline) + var(--safe-left));
  padding-inline-end: calc(var(--container-pad-inline) + var(--safe-right));
  border-block-end: var(--border-width) solid color-mix(in srgb, var(--moon-ash) 18%, transparent);
}

.footer-brand {
  min-width: 0;
}

.footer-brand__name {
  color: var(--ivory-bone);
  font-family: var(--font-heading);
  font-size: clamp(1rem, 0.25vw + 1rem, 1.125rem);
  font-weight: var(--weight-bold);
  letter-spacing: 0.06em;
}

.footer-brand__tag {
  margin-inline-start: var(--space-2);
  color: var(--text-muted);
  font-size: clamp(0.85rem, 0.15vw + 0.8rem, 0.95rem);
}

.footer-links,
.legal-links,
.footer-actions {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3);
}

.footer-links,
.footer-actions {
  white-space: nowrap;
}

.footer-actions {
  justify-content: flex-end;
}

.footer-links a,
.legal-links a,
.back-to-top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--touch-min);
  color: var(--ivory-bone);
  text-decoration: none;
  border: var(--border-width) solid transparent;
  border-radius: var(--radius-interactive);
  line-height: 1.2;
  transition:
    background var(--duration-standard) ease,
    border-color var(--duration-standard) ease,
    color var(--duration-standard) ease,
    transform var(--duration-standard) ease;
}

.footer-links a,
.legal-links a,
.back-to-top {
  padding: 6px 10px;
  font-size: clamp(0.9rem, 0.18vw + 0.85rem, 0.95rem);
}

.footer-links a:hover,
.footer-links a:focus-visible,
.legal-links a:hover,
.legal-links a:focus-visible,
.back-to-top:hover,
.back-to-top:focus-visible {
  background: color-mix(in srgb, var(--ivory-bone) 8%, transparent);
  border-color: var(--border-gold-soft);
  color: var(--link-on-dark);
  text-decoration: none;
  transform: translateY(-1px);
}

.back-to-top {
  border-color: color-mix(in srgb, var(--tree-gold) 36%, transparent);
}

.footer-legal {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  max-width: var(--container-max);
  margin-inline: auto;
  padding-block: var(--space-3);
  padding-inline-start: calc(var(--container-pad-inline) + var(--safe-left));
  padding-inline-end: calc(var(--container-pad-inline) + var(--safe-right));
}

.footer-legal p {
  margin: 0;
  color: var(--text-muted);
  font-size: clamp(0.9rem, 0.2vw + 0.85rem, 1rem);
}

.site-footer--minimal .footer-container {
  grid-template-columns: 1fr;
  justify-items: center;
  text-align: center;
}

.site-footer--app {
  box-shadow: none;
}

.site-footer--app .footer-container {
  padding-block: var(--space-3);
}

@media (max-width: 1280px) {
  .footer-container {
    gap: calc(var(--space-5) - var(--space-1));
  }
}

@media (max-width: 1024px) {
  .footer-container {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: auto;
    row-gap: var(--space-4);
  }

  .footer-actions {
    justify-self: end;
  }

  .footer-links,
  .legal-links,
  .footer-actions {
    gap: var(--space-2);
  }

  .footer-links a,
  .legal-links a,
  .back-to-top {
    padding: 5px 8px;
  }

}

@media (max-width: 640px) {
  .footer-container {
    grid-template-columns: 1fr;
    justify-items: center;
    gap: var(--space-3);
    text-align: center;
  }

  .footer-brand__name {
    font-size: clamp(0.95rem, 0.6vw + 0.9rem, 1.05rem);
  }

  .footer-brand__tag {
    display: block;
    margin-block-start: var(--space-1);
    margin-inline-start: 0;
    font-size: clamp(0.8rem, 0.4vw + 0.75rem, 0.9rem);
  }

  .footer-links,
  .legal-links,
  .footer-actions {
    justify-content: center;
    white-space: normal;
    gap: calc(var(--space-2) - 2px);
  }

  .footer-links a,
  .legal-links a,
  .back-to-top {
    min-height: var(--touch-min);
    padding: 4px 6px;
    font-size: clamp(0.85rem, 0.6vw + 0.8rem, 0.9rem);
  }

  .footer-legal {
    flex-direction: column;
    gap: var(--space-2);
    text-align: center;
  }

  .footer-legal p {
    font-size: clamp(0.85rem, 0.6vw + 0.8rem, 0.95rem);
  }

  .back-to-top {
    margin-inline-start: 0;
  }
}

@media (max-width: 400px) {
  .footer-links,
  .legal-links,
  .footer-actions {
    gap: var(--space-1);
  }

  .footer-links a,
  .legal-links a,
  .back-to-top {
    padding: 3px 6px;
  }
}

@media (max-height: 480px) and (max-width: 768px) {
  .footer-container {
    padding-block: var(--space-3);
  }

  .footer-legal {
    padding-block: var(--space-2);
  }
}

@media (hover: none) {
  .footer-links a:hover,
  .legal-links a:hover,
  .back-to-top:hover {
    transform: none;
  }
}
