.site-footer {
  border-top: 1px solid var(--color-structural-border);
  background: var(--color-smoked-caviar);
}

.site-footer__inner {
  display: grid;
  grid-template-columns: minmax(15rem, 1.4fr) repeat(3, minmax(10rem, 1fr));
  gap: var(--space-7);
  padding-block: var(--space-9);
}

.site-footer__brand,
.site-footer__column { min-width: 0; }

.site-footer__brand-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-5);
  color: var(--color-warm-pearl);
  font-family: var(--font-heading);
  font-size: 1.45rem;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
}

.site-footer__brand-link:hover { color: var(--color-antique-champagne); }

.site-footer__logo {
  width: 3.5rem;
  height: 3.5rem;
  flex: 0 0 3.5rem;
  object-fit: contain;
}

.site-footer p,
.site-footer address { margin: 0; }

.site-footer__brand {
  display: grid;
  align-content: start;
  gap: var(--space-4);
  color: var(--color-titanium-grey);
  font-size: var(--text-meta);
  line-height: 1.65;
}

.site-footer address {
  color: var(--color-warm-pearl);
  font-style: normal;
}

.site-footer__column {
  display: grid;
  align-content: start;
  gap: var(--space-4);
}

.site-footer__label {
  color: var(--color-antique-champagne) !important;
  font-size: var(--text-micro) !important;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.site-footer__links {
  display: grid;
  gap: var(--space-3);
  margin: 0;
  padding: 0;
}

.site-footer__links li,
.site-footer__links li + li { margin: 0; }

.site-footer__links a {
  color: var(--color-titanium-grey);
  font-size: var(--text-meta);
  line-height: 1.45;
  text-decoration: none;
}

.site-footer__links a:hover { color: var(--color-warm-pearl); }

.site-footer__compliance { color: var(--color-titanium-grey); font-size: var(--text-meta); line-height: 1.6; }
.site-footer__compliance a { color: var(--color-antique-champagne); }

.site-footer__base {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-3);
  padding-block: var(--space-5);
  border-top: 1px solid var(--color-structural-border);
  color: var(--color-titanium-grey);
  font-size: var(--text-micro);
  letter-spacing: 0.05em;
}

.site-footer__base p { margin: 0; }
.site-footer__base a { color: var(--color-titanium-grey); text-decoration: none; }
.site-footer__base a:hover { color: var(--color-antique-champagne); }

.consent-banner {
  position: fixed;
  right: var(--space-4);
  bottom: var(--space-4);
  left: var(--space-4);
  z-index: 900;
  max-width: 56rem;
  margin-inline: auto;
  border: var(--border-gold);
  border-radius: var(--radius-card);
  background: rgb(15 17 23 / 96%);
  box-shadow: var(--shadow-depth), var(--shadow-velvet);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  transition: opacity var(--transition-base), transform var(--transition-base);
}

.consent-banner[hidden] { display: none !important; }
.consent-banner.is-hiding { opacity: 0; pointer-events: none; transform: translateY(1rem); }

.consent-banner__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  padding: var(--space-4) var(--space-5);
}

.consent-banner__copy { min-width: 0; }
.consent-banner__copy p { margin: 0; color: var(--color-titanium-grey); font-size: var(--text-meta); line-height: 1.55; }
.consent-banner__copy .consent-banner__title { margin-bottom: var(--space-1); color: var(--color-warm-pearl); font-weight: 600; }
.consent-banner__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--space-2); }
.consent-banner__actions .btn { min-height: 2.5rem; }

.age-modal {
  display: grid;
  place-items: center;
  padding: var(--gutter-mobile);
  overflow-y: auto;
  background: rgb(0 0 0 / 76%);
  opacity: 1;
  transition: opacity var(--transition-base);
}

[data-age-modal][hidden] { display: none !important; }
.age-modal.is-closing { opacity: 0; pointer-events: none; }

.age-modal__backdrop {
  position: absolute;
  inset: 0;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.age-modal__card {
  position: relative;
  z-index: 1;
  width: min(100%, 39rem);
  padding: clamp(1.5rem, 4vw, 3rem);
  border: 1px solid var(--color-sovereign-gold);
  border-radius: var(--radius-panel);
  background: rgb(15 17 23 / 98%);
  box-shadow: var(--shadow-depth), var(--shadow-velvet);
}

.age-modal__card h2 { margin-bottom: var(--space-4); font-size: clamp(2rem, 4vw, 2.75rem); }
.age-modal__eyebrow { margin: 0 0 var(--space-3); color: var(--color-antique-champagne); font-size: var(--text-micro); font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.age-modal__card > p:not(.age-modal__eyebrow) { margin: 0; color: var(--color-warm-pearl); font-size: var(--text-lead); line-height: 1.55; }
.age-modal__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }
.age-modal__actions .btn { min-height: 3rem; }

@media (max-width: 64rem) {
  .site-footer__inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer__brand { grid-column: span 2; max-width: 34rem; }
}

@media (max-width: 48rem) {
  .site-footer__inner { grid-template-columns: 1fr; gap: var(--space-6); padding-block: var(--space-8); }
  .site-footer__brand { grid-column: auto; }
  .site-footer__base { display: grid; padding-bottom: var(--space-6); }
  .consent-banner { right: var(--gutter-mobile); bottom: var(--gutter-mobile); left: var(--gutter-mobile); }
  .consent-banner__inner { display: grid; padding: var(--space-4); }
  .consent-banner__actions { display: grid; grid-template-columns: 1fr; }
  .consent-banner__actions .btn { width: 100%; }
  .age-modal { align-items: start; padding-block: var(--space-5); }
  .age-modal__card { margin-block: auto; }
  .age-modal__actions { display: grid; }
  .age-modal__actions .btn { width: 100%; }
}

ul { list-style: none !important; }
.nav-toggle { flex-direction: column !important; }
.btn-arrow, .cta-link span.arrow { display: inline-block !important; transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important; }
.btn-arrow:hover, .cta-link:hover span.arrow { transform: translateX(5px) !important; }
#age-gate-modal { position: fixed !important; inset: 0 !important; z-index: 99999 !important; }