.site-footer {
  background: var(--color-dark-teak);
  color: var(--color-sandstone-cream);
}

.site-footer__scene {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(7, 25, 35, 0.38), rgba(42, 33, 28, 0.92)),
    repeating-linear-gradient(98deg, rgba(233, 221, 200, 0.035) 0 1px, transparent 1px 14px),
    var(--color-dark-teak);
}

.site-footer__horizon {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 44%;
  border-top: 1px solid rgba(233, 221, 200, 0.18);
  background: linear-gradient(180deg, rgba(13, 43, 56, 0.72), rgba(7, 25, 35, 0.18) 46%, rgba(42, 33, 28, 0.65));
}

.site-footer__horizon::before {
  position: absolute;
  top: 37%;
  right: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--color-burnished-orange), transparent);
  content: "";
  opacity: 0.78;
}

.site-footer__ship {
  position: absolute;
  top: calc(37% - 1.6rem);
  right: 13%;
  width: 9rem;
  height: 1.7rem;
  border-radius: 10% 65% 40% 25%;
  background: var(--color-polished-steel);
  box-shadow: 0 0 1.4rem rgba(201, 120, 63, 0.48);
  opacity: 0.72;
}

.site-footer__ship::before {
  position: absolute;
  bottom: 100%;
  left: 25%;
  width: 48%;
  height: 1.55rem;
  border-radius: 0.3rem 0.3rem 0 0;
  background: var(--color-polished-steel);
  content: "";
}

.site-footer__inner {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(100% - (var(--page-padding) * 2), var(--container-max));
  min-height: 38rem;
  margin-inline: auto;
  padding-block: clamp(var(--space-8), 9vw, var(--space-10));
  grid-template-columns: minmax(0, 1.1fr) minmax(19rem, 0.9fr);
  align-content: space-between;
  gap: var(--space-8);
}

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

.site-footer__intro {
  max-width: 42rem;
}

.site-footer__intro .route-label {
  margin-block-end: var(--space-4);
}

.site-footer__intro h2 {
  max-width: 11ch;
  margin-block-end: var(--space-5);
  color: var(--color-smoked-white);
  font-size: var(--text-display);
  text-transform: uppercase;
}

.site-footer__intro p {
  max-width: 38rem;
  margin-block-end: var(--space-5);
  color: var(--color-polished-steel);
}

.site-footer__compass {
  position: relative;
  display: grid;
  min-height: 21rem;
  border: 1px solid rgba(233, 221, 200, 0.22);
  background: rgba(7, 25, 35, 0.42);
  place-items: center;
}

.site-footer__compass::before,
.site-footer__compass::after {
  position: absolute;
  background: rgba(154, 128, 104, 0.65);
  content: "";
}

.site-footer__compass::before {
  top: 50%;
  left: 10%;
  width: 80%;
  height: 1px;
}

.site-footer__compass::after {
  top: 10%;
  bottom: 10%;
  left: 50%;
  width: 1px;
}

.site-footer__compass-mark {
  position: relative;
  z-index: 1;
  display: grid;
  width: 6.5rem;
  height: 6.5rem;
  border: 1px solid var(--color-ocean-jade-light);
  border-radius: 50%;
  background: var(--color-deep-atlantic);
  color: var(--color-smoked-white);
  place-items: center;
}

.site-footer__compass-mark::before,
.site-footer__compass-mark::after {
  position: absolute;
  background: var(--color-burnished-metal);
  content: "";
}

.site-footer__compass-mark::before { width: 76%; height: 1px; }
.site-footer__compass-mark::after { width: 1px; height: 76%; }

.site-footer__compass-mark span {
  position: relative;
  z-index: 1;
  font-family: var(--font-heading);
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.site-footer__directions {
  position: absolute;
  inset: 0;
}

.site-footer__directions a {
  position: absolute;
  color: var(--color-sandstone-cream);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  transition: color var(--transition-fast), transform var(--transition-fast);
}

.site-footer__directions a:hover,
.site-footer__directions a:focus-visible { color: var(--color-ocean-jade-light); transform: translateY(-2px); }
.site-footer__directions a:nth-child(1) { top: 7%; left: 50%; transform: translateX(-50%); }
.site-footer__directions a:nth-child(2) { top: 20%; right: 8%; }
.site-footer__directions a:nth-child(3) { top: 43%; right: 3%; }
.site-footer__directions a:nth-child(4) { right: 8%; bottom: 20%; }
.site-footer__directions a:nth-child(5) { bottom: 7%; left: 60%; transform: translateX(-50%); }
.site-footer__directions a:nth-child(6) { bottom: 7%; left: 25%; }
.site-footer__directions a:nth-child(7) { bottom: 20%; left: 7%; }
.site-footer__directions a:nth-child(8) { top: 43%; left: 3%; }
.site-footer__directions a:nth-child(9) { top: 20%; left: 7%; }
.site-footer__directions a:nth-child(10) { top: 7%; left: 25%; }

.site-footer__contact {
  grid-column: 1 / -1;
  padding-top: var(--space-5);
  border-top: 1px solid rgba(233, 221, 200, 0.22);
}

.site-footer__contact .eyebrow {
  margin-block-end: var(--space-2);
  color: var(--color-burnished-metal);
}

.site-footer__contact address {
  max-width: 58rem;
  color: var(--color-smoked-white);
  font-size: var(--text-sm);
  font-style: normal;
  line-height: var(--leading-body);
}

.site-footer__contact a { color: var(--color-ocean-jade-light); }
.site-footer__contact a:hover { color: var(--color-burnished-orange-light); }

.site-footer__legal {
  background: var(--color-deep-atlantic);
}

.site-footer__legal-inner {
  display: flex;
  width: min(100% - (var(--page-padding) * 2), var(--container-max));
  margin-inline: auto;
  padding-block: var(--space-4);
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}

.site-footer__legal nav {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.site-footer__legal a,
.site-footer__legal small {
  color: var(--color-storm-grey-light);
  font-size: 0.69rem;
  line-height: var(--leading-small);
}

.site-footer__legal a:hover { color: var(--color-ocean-jade-light); }

.site-consent {
  position: fixed;
  z-index: 200;
  right: var(--page-padding);
  bottom: var(--page-padding);
  left: var(--page-padding);
  border: 1px solid var(--color-border-dark);
  background: var(--color-smoked-glass);
  box-shadow: var(--shadow-deep);
  color: var(--color-smoked-white);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  transition: opacity var(--transition-base), transform var(--transition-base);
}

.site-consent.is-hiding { opacity: 0; transform: translateY(1rem); }

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

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

.site-consent__copy h2 {
  margin-block: 0 var(--space-1);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  letter-spacing: 0.04em;
}

.site-consent__copy p {
  margin: 0;
  color: var(--color-polished-steel);
  font-size: var(--text-sm);
  line-height: var(--leading-small);
}

.site-consent__copy a { color: var(--color-ocean-jade-light); }
.site-consent__actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: var(--space-2); }
.site-consent__actions .button { min-width: 6.5rem; }

@media (max-width: 56.25rem) {
  .site-footer__inner { grid-template-columns: 1fr; min-height: 0; }
  .site-footer__compass { min-height: 29rem; }
  .site-footer__contact { grid-column: auto; }
  .site-footer__legal-inner, .site-consent__inner { align-items: flex-start; flex-direction: column; }
  .site-consent__actions { width: 100%; }
  .site-consent__actions .button { flex: 1 1 9rem; }
}

@media (max-width: 30rem) {
  .site-footer__compass { min-height: auto; padding: var(--space-6) var(--space-4); gap: var(--space-5); }
  .site-footer__compass::before, .site-footer__compass::after { display: none; }
  .site-footer__directions { position: static; display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
  .site-footer__directions a, .site-footer__directions a:nth-child(n) { position: static; transform: none; text-align: center; }
  .site-footer__directions a:hover, .site-footer__directions a:focus-visible { transform: translateY(-2px); }
  .site-consent { right: var(--space-3); bottom: var(--space-3); left: var(--space-3); }
}
