.site-footer {
  border-top: 1px solid var(--color-violet-edge);
  background: var(--color-violet-base);
}

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

.site-footer__intro,
.site-footer__nav-group {
  min-width: 0;
}

.site-footer__eyebrow,
.site-consent__eyebrow,
.site-age-modal__eyebrow {
  margin: 0;
  color: var(--color-cyan-signal);
  font-size: var(--text-label);
  font-weight: 500;
  letter-spacing: .08em;
  line-height: 1.3;
}

.site-footer__title {
  margin: var(--space-3) 0;
  font-family: var(--font-heading);
  font-size: 1.75rem;
  line-height: 1.1;
}

.site-footer__copy,
.site-footer__address {
  margin: 0;
  color: var(--color-mist-text);
  font-size: .875rem;
  line-height: 1.65;
}

.site-footer__address {
  margin-top: var(--space-4);
}

.site-footer__nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  margin-top: var(--space-7);
}

.site-footer__nav h3 {
  margin: 0 0 var(--space-3);
  color: var(--color-paper-text);
  font-family: var(--font-body);
  font-size: var(--text-label);
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase;
}

.site-footer__nav ul {
  display: grid;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}

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

.site-footer__nav a {
  color: var(--color-mist-text);
  font-size: .8125rem;
  line-height: 1.45;
}

.site-footer__nav a:hover {
  color: var(--color-paper-text);
}

.site-footer__base {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-3);
  margin-top: var(--space-7);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-violet-edge);
  color: var(--color-muted-text);
  font-size: var(--text-label);
  letter-spacing: .06em;
}

.site-footer__status {
  color: var(--color-green-status);
}

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

.site-consent {
  position: fixed;
  z-index: 1100;
  right: var(--space-4);
  bottom: var(--space-4);
  left: var(--space-4);
  border: 1px solid var(--color-cyan-signal);
  background: var(--color-violet-panel);
  box-shadow: var(--shadow-cyan);
}

.site-consent__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  width: min(100%, 68rem);
  margin-inline: auto;
  padding: var(--space-4) var(--space-5);
}

.site-consent__content {
  min-width: 0;
}

.site-consent h2 {
  margin: var(--space-2) 0;
  font-size: 1rem;
  line-height: 1.25;
}

.site-consent p:not(.site-consent__eyebrow) {
  margin: 0;
  color: var(--color-mist-text);
  font-size: .75rem;
  line-height: 1.5;
}

.site-consent__actions,
.site-age-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.site-consent__button,
.site-age-modal__confirm,
.site-age-modal__decline {
  min-height: 2.75rem;
  padding: .75rem 1rem;
  border: 1px solid var(--color-cyan-signal);
  background: transparent;
  color: var(--color-cyan-signal);
  font-family: var(--font-body);
  font-size: var(--text-button);
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
}

.site-consent__button--accept,
.site-age-modal__confirm {
  border-color: var(--color-pink-action);
  background: var(--color-pink-action);
  color: var(--color-void-black);
}

.site-consent__button:hover,
.site-age-modal__decline:hover {
  border-color: var(--color-paper-text);
  background: rgb(57 231 245 / 10%);
  color: var(--color-paper-text);
}

.site-consent__button--accept:hover,
.site-age-modal__confirm:hover {
  background: #ff63ad;
  color: var(--color-void-black);
}

.site-age-modal {
  position: fixed;
  z-index: 3000;
  inset: 0;
  display: grid;
  place-items: center;
  overflow-y: auto;
  padding: var(--space-4);
  background: rgb(8 7 13 / 96%);
}

.site-age-modal__panel {
  width: min(100%, 34rem);
  padding: clamp(1.5rem, 5vw, 3rem);
  border: 1px solid var(--color-cyan-signal);
  background: var(--color-violet-panel);
  box-shadow: var(--shadow-cyan);
  clip-path: polygon(0 0, calc(100% - var(--chamfer)) 0, 100% var(--chamfer), 100% 100%, 0 100%);
}

.site-age-modal h2 {
  margin: var(--space-3) 0 var(--space-4);
  font-size: var(--text-h2);
}

.site-age-modal p:not(.site-age-modal__eyebrow) {
  margin: 0 0 var(--space-5);
  color: var(--color-mist-text);
}

@media (min-width: 64.0625rem) {
  .site-footer__inner {
    display: grid;
    grid-template-columns: minmax(15rem, .85fr) minmax(0, 2fr);
    column-gap: var(--space-8);
  }

  .site-footer__nav {
    margin-top: 0;
  }

  .site-footer__base {
    grid-column: 1 / -1;
  }
}

@media (max-width: 40rem) {
  .site-footer__nav {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .site-consent {
    right: 0;
    bottom: 0;
    left: 0;
  }

  .site-consent__inner {
    align-items: stretch;
    flex-direction: column;
    padding: var(--space-4);
  }

  .site-consent__actions,
  .site-age-modal__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .site-consent__button,
  .site-age-modal__confirm,
  .site-age-modal__decline {
    width: 100%;
  }
}
