.site-footer { background: var(--color-midnight); color: var(--color-soft-ice); }
.site-footer__line { height: 2px; background: linear-gradient(90deg, var(--color-electric-cyan), var(--color-luminous-violet) 58%, transparent); }
.site-footer__inner { padding-block: clamp(var(--space-8), 11vw, var(--space-11)) var(--space-5); }
.site-footer__intro { display: grid; max-width: 48rem; gap: var(--space-5); margin-bottom: clamp(var(--space-8), 9vw, var(--space-10)); }
.site-footer__brand { color: var(--color-white); font-family: var(--font-heading); font-size: clamp(3.5rem, 11vw, 8rem); font-weight: var(--weight-bold); letter-spacing: var(--tracking-heading); line-height: var(--leading-display); text-decoration: none; }
.site-footer__intro p { max-width: 38rem; margin: 0; color: var(--color-text-on-dark-muted); font-size: var(--text-intro); line-height: var(--leading-intro); }
.site-footer__contact-link { color: var(--color-electric-cyan); font-family: var(--font-heading); font-weight: var(--weight-semibold); text-decoration: none; }
.site-footer__contact-link span { display: inline-block; transition: transform var(--duration-fast) var(--ease-out); }
.site-footer__contact-link:hover span { transform: translateX(0.25rem); }
.site-footer__grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: var(--space-7); }
.site-footer__column { display: grid; align-content: start; gap: var(--space-4); }
.site-footer__column h2 { margin: 0; color: var(--color-champagne-silver); font-size: var(--text-utility); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-label); line-height: var(--leading-utility); text-transform: uppercase; }
.site-footer__column ul { display: grid; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.site-footer__column li,
.site-footer__column li + li { margin: 0; }
.site-footer__column a,
.site-footer__column address { color: var(--color-text-on-dark-muted); font-size: var(--text-small); font-style: normal; line-height: var(--leading-small); text-decoration: none; }
.site-footer__column a:hover,
.site-footer__column a:focus-visible { color: var(--color-electric-cyan); }
.site-footer__column address + a { margin-top: calc(var(--space-2) * -1); }
.site-footer__bottom { display: flex; justify-content: space-between; gap: var(--space-4); margin-top: var(--space-8); padding-top: var(--space-5); border-top: 1px solid var(--color-border-dark); color: var(--color-text-on-dark-muted); font-size: var(--text-utility); line-height: var(--leading-utility); }
.site-footer__bottom p { margin: 0; }

.site-consent { position: fixed; z-index: 150; right: var(--space-4); bottom: var(--space-4); left: var(--space-4); max-width: 52rem; margin-inline: auto; padding: var(--space-4); border: 1px solid var(--color-border-dark); border-radius: var(--radius-md); background: var(--color-midnight-elevated); color: var(--color-soft-ice); box-shadow: var(--shadow-elevated); }
.site-consent[hidden] { display: none !important; }
.site-consent.is-hiding { opacity: 0; transform: translateY(0.5rem); transition: opacity var(--duration-base) var(--ease-out), transform var(--duration-base) var(--ease-out); }
.site-consent__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-5); }
.site-consent__copy { display: grid; gap: var(--space-2); }
.site-consent__copy h2,
.site-consent__copy p { margin: 0; }
.site-consent__copy h2 { font-size: var(--text-body); }
.site-consent__copy p { color: var(--color-text-on-dark-muted); font-size: var(--text-small); line-height: var(--leading-small); }
.site-consent__copy a { color: var(--color-electric-cyan); }
.site-consent__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--space-2); }
.site-consent__button { min-height: 2.625rem; padding: 0.6rem 0.8rem; border: 1px solid var(--color-electric-cyan); border-radius: var(--radius-sm); background: var(--color-electric-cyan); color: var(--color-midnight); font-family: var(--font-heading); font-size: var(--text-small); font-weight: var(--weight-semibold); }
.site-consent__button--secondary { background: transparent; color: var(--color-soft-ice); }
.site-consent__button:hover { background: color-mix(in srgb, var(--color-electric-cyan) 84%, var(--color-white)); }
.site-consent__button--secondary:hover { background: color-mix(in srgb, var(--color-electric-cyan) 14%, transparent); color: var(--color-soft-ice); }

.site-age-modal { position: fixed; z-index: 250; inset: 0; display: grid; place-items: center; overflow: auto; padding: var(--space-5); background: rgba(4, 10, 24, 0.82); }
.site-age-modal[data-age-modal][hidden] { display: none !important; }
.site-age-modal__panel { width: min(100%, 34rem); padding: clamp(var(--space-5), 6vw, var(--space-7)); border: 1px solid var(--color-border-active); border-radius: var(--radius-md); background: var(--color-midnight-elevated); color: var(--color-soft-ice); box-shadow: var(--shadow-elevated); }
.site-age-modal__eyebrow { margin: 0 0 var(--space-3); color: var(--color-electric-cyan); font-size: var(--text-utility); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-label); text-transform: uppercase; }
.site-age-modal__panel h2 { margin-bottom: var(--space-4); font-size: var(--text-title-sm); }
.site-age-modal__panel > p:not(.site-age-modal__eyebrow) { margin-bottom: var(--space-6); color: var(--color-text-on-dark-muted); }
.site-age-modal__actions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.site-age-modal__confirm,
.site-age-modal__decline { min-height: 3rem; padding: 0.7rem var(--space-3); border: 1px solid var(--color-electric-cyan); border-radius: var(--radius-sm); font-family: var(--font-heading); font-size: var(--text-small); font-weight: var(--weight-semibold); }
.site-age-modal__confirm { background: var(--color-electric-cyan); color: var(--color-midnight); }
.site-age-modal__decline { background: transparent; color: var(--color-soft-ice); }
.site-age-modal__confirm:hover { background: color-mix(in srgb, var(--color-electric-cyan) 86%, var(--color-white)); }
.site-age-modal__decline:hover { background: color-mix(in srgb, var(--color-electric-cyan) 14%, transparent); }

@media (max-width: 47.99rem) {
  .site-footer__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .site-footer__bottom { flex-direction: column; }
  .site-consent { right: var(--space-3); bottom: var(--space-3); left: var(--space-3); }
  .site-consent__inner { align-items: stretch; flex-direction: column; }
  .site-consent__actions { display: grid; grid-template-columns: 1fr 1fr; }
}

@media (max-width: 25rem) { .site-age-modal__actions { grid-template-columns: 1fr; } }
