.site-footer {
  padding-top: clamp(var(--space-7), 7vw, var(--space-10));
  background: var(--color-charcoal);
  color: var(--color-paper);
}

.site-footer__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 2fr) minmax(12rem, 1fr);
  gap: var(--space-7);
  padding-bottom: var(--space-7);
}

.site-footer :is(h2, p, address, ul) { margin: 0; }
.site-footer__intro,
.site-footer__contact,
.site-footer__group { display: grid; align-content: start; gap: var(--space-3); }
.site-footer__brand { color: var(--color-paper); font-family: var(--font-heading); font-size: var(--text-xl); font-weight: 600; text-decoration-color: var(--color-gold); }
.site-footer__intro p,
.site-footer__contact { color: #d8d5ca; }
.site-footer__groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
.site-footer h2 { color: var(--color-gold); font-family: var(--font-body); font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.1em; line-height: 1.3; text-transform: uppercase; }
.site-footer ul { padding: 0; list-style: none; }
.site-footer li,
.site-footer li + li { margin: 0; }
.site-footer li + li { margin-top: var(--space-2); }
.site-footer a { color: var(--color-paper); text-decoration-color: var(--color-gold); }
.site-footer address { font-style: normal; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-4) 0; border-top: 1px solid rgb(247 243 234 / 20%); color: #d8d5ca; font-size: var(--text-sm); }

.site-consent {
  position: fixed;
  right: var(--space-4);
  bottom: var(--space-4);
  left: var(--space-4);
  z-index: 200;
  padding: var(--space-4);
  border: 1px solid var(--color-line);
  border-radius: var(--radius-lg);
  background: var(--color-paper-warm);
  box-shadow: var(--shadow-soft);
}
.site-consent.is-visible { display: block; }
.site-consent.is-hiding { opacity: 0; transition: opacity var(--transition-base); }
.site-consent__inner { display: flex; max-width: 75rem; margin-inline: auto; align-items: center; justify-content: space-between; gap: var(--space-5); }
.site-consent__copy { display: grid; gap: var(--space-2); }
.site-consent__copy :is(h2, p) { margin: 0; }
.site-consent__copy h2 { font-size: var(--text-md); }
.site-consent__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--space-2); }
.site-consent__reject { border-color: var(--color-charcoal); }

@media (max-width: 63.99rem) {
  .site-footer__inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .site-footer__intro { grid-column: span 2; }
  .site-footer__groups { grid-column: span 2; }
}

@media (max-width: 47.99rem) {
  .site-footer__inner,
  .site-footer__groups { grid-template-columns: 1fr 1fr; }
  .site-footer__intro,
  .site-footer__groups { grid-column: span 2; }
  .site-footer__bottom,
  .site-consent__inner { align-items: flex-start; flex-direction: column; }
  .site-consent { right: var(--space-3); bottom: var(--space-3); left: var(--space-3); }
  .site-consent__actions { width: 100%; }
  .site-consent__actions .button { flex: 1 1 12rem; }
}

@media (max-width: 28rem) {
  .site-footer__inner,
  .site-footer__groups { grid-template-columns: 1fr; }
  .site-footer__intro,
  .site-footer__groups { grid-column: auto; }
}