.site-footer {
  border-top: 1px solid var(--color-border);
  background: var(--color-ink-brown);
  color: var(--color-limewash-cream);
}

.site-footer__inner { padding-block: var(--space-7) var(--space-5); }
.site-footer__intro { display: grid; gap: var(--space-4); max-width: 31rem; }
.site-footer__intro p { margin: 0; color: rgb(244 235 221 / 82%); }
.site-footer__brand { color: var(--color-paper-warm); font-family: var(--font-heading); font-size: 2rem; font-weight: 600; text-decoration: none; }
.site-footer__brand:hover { color: var(--color-sunlight-gold); }
.site-footer__intro .button { justify-self: start; }

.site-footer__nav { display: grid; gap: var(--space-6); margin-top: var(--space-7); }
.site-footer__column { display: grid; gap: var(--space-3); }
.site-footer__column h2 { margin: 0; color: var(--color-sunlight-gold); font-family: var(--font-body); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.site-footer__column p { margin: 0; color: rgb(244 235 221 / 80%); font-size: var(--text-sm); }
.site-footer__column ul,
.site-footer__legal { display: grid; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.site-footer__column li,
.site-footer__legal li { margin: 0; }
.site-footer__column a,
.site-footer__legal a { color: var(--color-limewash-cream); font-size: var(--text-sm); }
.site-footer__column a:hover,
.site-footer__legal a:hover { color: var(--color-sunlight-gold); }

.site-footer__bottom { display: grid; gap: var(--space-4); margin-top: var(--space-7); border-top: 1px solid rgb(244 235 221 / 20%); padding-top: var(--space-5); }
.site-footer__bottom p { margin: 0; color: rgb(244 235 221 / 70%); font-size: var(--text-xs); }
.site-footer__legal { grid-template-columns: repeat(2, max-content); column-gap: var(--space-4); }

.site-consent[hidden],
[data-age-modal][hidden] { display: none !important; }

.site-consent {
  position: fixed;
  z-index: 1200;
  right: var(--space-3);
  bottom: var(--space-3);
  left: var(--space-3);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-paper-warm);
  box-shadow: var(--shadow-floating);
}

.site-consent__inner { display: grid; gap: var(--space-4); padding: var(--space-4); }
.site-consent__copy { display: grid; gap: var(--space-2); }
.site-consent__copy h2 { margin: 0; font-size: var(--text-lg); }
.site-consent__copy p { margin: 0; color: var(--color-muted-brown); font-size: var(--text-sm); line-height: 1.55; }
.site-consent__actions { display: grid; gap: var(--space-2); }
.site-consent__actions .button { width: 100%; }

.site-age-modal {
  position: fixed;
  z-index: 2000;
  inset: 0;
  display: grid;
  overflow-y: auto;
  place-items: center;
  padding: var(--space-4);
  background: rgb(40 88 72 / 78%);
}

.site-age-modal__panel {
  display: grid;
  gap: var(--space-4);
  width: min(100%, 32rem);
  border: 1px solid rgb(255 248 238 / 40%);
  border-radius: var(--radius-xl);
  background: var(--color-paper-warm);
  padding: var(--space-6);
  box-shadow: var(--shadow-floating);
}

.site-age-modal__eyebrow { margin: 0; color: var(--color-wine-red); font-size: var(--text-xs); font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.site-age-modal__panel h2 { margin: 0; font-size: clamp(2rem, 8vw, 2.75rem); }
.site-age-modal__panel > p:not(.site-age-modal__eyebrow) { margin: 0; color: var(--color-muted-brown); }
.site-age-modal__actions { display: grid; gap: var(--space-3); }
.site-age-modal__actions .button { width: 100%; }

@media (min-width: 42rem) {
  .site-footer__nav { grid-template-columns: repeat(3, 1fr); }
  .site-footer__bottom { grid-template-columns: 1fr auto; align-items: center; }
  .site-footer__legal { display: flex; flex-wrap: wrap; }
  .site-consent { left: auto; width: min(34rem, calc(100% - 2rem)); }
  .site-consent__actions { grid-template-columns: auto auto; justify-content: end; }
  .site-consent__actions .button { width: auto; }
  .site-age-modal__actions { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 75rem) {
  .site-footer__inner { padding-block: var(--space-8) var(--space-5); }
  .site-footer__nav { margin-top: var(--space-8); }
}
