.site-footer {
  border-top: var(--border-default);
  background: var(--surface-concrete);
  color: var(--color-ink);
}

.site-footer__inner {
  display: grid;
  width: min(100% - (2 * var(--container-gutter)), var(--container-max));
  margin-inline: auto;
  padding-block: var(--space-8);
  gap: var(--space-7);
}

.site-footer__intro { display: flex; flex-direction: column; gap: var(--space-4); }
.site-footer__intro > * { margin: 0; }
.site-footer__intro p { max-width: 32rem; }

.site-footer__brand {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  color: var(--color-ink);
  font-family: var(--font-heading);
  font-size: 1.125rem;
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--tracking-tight);
  text-decoration: none;
}
.site-footer__brand:hover { color: var(--color-ink); }
.site-footer__logo { width: 4.5rem; height: 4.5rem; object-fit: contain; }

.site-footer__nav { display: grid; gap: var(--space-6); }
.site-footer__nav-group { display: flex; flex-direction: column; gap: var(--space-3); }
.site-footer__nav-group > * { margin: 0; }
.site-footer__label { font-size: var(--font-size-meta); font-weight: var(--font-weight-medium); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.site-footer__nav ul { display: flex; margin: 0; padding: 0; flex-direction: column; gap: var(--space-2); list-style: none; }
.site-footer__nav li, .site-footer__nav li + li { margin: 0; padding: 0; }
.site-footer__nav a { color: var(--color-ink); }

.site-footer__bottom { border-top: var(--border-default); }
.site-footer__bottom-inner { display: flex; width: min(100% - (2 * var(--container-gutter)), var(--container-max)); margin-inline: auto; padding-block: var(--space-4); flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); }
.site-footer__bottom-inner p { margin: 0; font-size: var(--font-size-meta); }
.site-footer__cookie-settings { padding: 0; border: 0; background: transparent; color: var(--color-ink); font-size: var(--font-size-meta); text-decoration: underline; text-underline-offset: 0.18em; }

.site-consent { position: fixed; z-index: 200; right: var(--space-3); bottom: var(--space-3); left: var(--space-3); border: var(--border-default); border-radius: var(--radius-md); background: var(--surface-paper); box-shadow: var(--shadow-floating); }
.site-consent[hidden] { display: none !important; }
.site-consent__inner { display: flex; padding: var(--space-5); flex-direction: column; gap: var(--space-5); }
.site-consent__copy { display: flex; flex-direction: column; gap: var(--space-3); }
.site-consent__copy > * { margin: 0; }
.site-consent__copy h2 { font-size: var(--font-size-h4); }
.site-consent__label, .site-age-modal__label { font-size: var(--font-size-meta); font-weight: var(--font-weight-medium); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.site-consent__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.site-consent__actions .button { flex: 1 1 12rem; }

.site-age-modal { position: fixed; z-index: 1001; inset: 0; display: grid; padding: var(--space-4); place-items: center; }
.site-age-modal[hidden] { display: none !important; }
.site-age-modal__backdrop { position: absolute; inset: 0; background: rgba(32, 35, 33, 0.78); }
.site-age-modal__dialog { position: relative; z-index: 1; display: flex; width: min(100%, 34rem); max-height: calc(100dvh - 2rem); padding: var(--space-5); overflow-y: auto; flex-direction: column; gap: var(--space-4); border: var(--border-default); border-radius: var(--radius-md); background: var(--surface-paper); box-shadow: var(--shadow-floating); }
.site-age-modal__dialog > * { margin: 0; }
.site-age-modal__dialog h2 { font-size: var(--font-size-h3); }
.site-age-modal__actions { display: flex; flex-direction: column; gap: var(--space-3); }
.site-age-modal__actions .button { width: 100%; }

@media (min-width: 48rem) {
  .site-footer__inner { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
  .site-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-consent { right: var(--container-gutter); left: auto; width: min(42rem, calc(100% - (2 * var(--container-gutter)))); }
  .site-consent__inner { padding: var(--space-6); }
  .site-age-modal__dialog { padding: var(--space-6); }
  .site-age-modal__actions { flex-direction: row; }
  .site-age-modal__actions .button { flex: 1 1 0; }
}