:root {
  --display: "Josefin Sans", Arial, sans-serif;
  --serif: "Oswald", "Arial Narrow", Arial, sans-serif;
  --sans: "Oswald", "Arial Narrow", Arial, sans-serif;
  --mono: "Oswald", "Arial Narrow", Arial, sans-serif;
}

body,
button,
input,
textarea,
select {
  font-family: var(--sans);
  text-transform: none;
}

p,
a,
span,
blockquote,
.eyebrow,
.vertical-label,
.nav-cta,
.nav nav a {
  text-transform: none;
}

h1,
h2,
h3,
.experience-card h3,
.explore-card span {
  font-family: var(--display);
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

h1 em,
h2 em,
h3 em {
  font-family: inherit;
  font-style: normal;
  text-transform: uppercase;
}

.hero h1 {
  font-size: clamp(57.6px, 7.2vw, 113.6px);
}

.manifesto h2 {
  font-size: clamp(44.8px, 4.96vw, 78.4px);
}

.experiences .section-head h2 {
  font-size: clamp(52px, 5.6vw, 88px);
}

.explore-head h2 {
  font-size: clamp(49.6px, 5.6vw, 84px);
}

.visit h2 {
  font-size: clamp(57.6px, 7.2vw, 113.6px);
}

.intro,
.manifesto-copy,
.experience-card span:not(.explore-card span),
.gallery-note,
.visit-details {
  letter-spacing: 0.025em;
}

.brand {
  width: 150px;
  height: 76px;
  background: #191919;
}

.brand img {
  object-fit: contain;
}

.nav {
  background: #1a1a1a;
}

.hero-stamp {
  bottom: 155px;
}

.nav-cta {
  font-size: 15.84px;
}

.nav nav a {
  font-size: 15.6px;
}

.round-cta {
  font-size: 14.3px;
}

.carousel-button {
  font-size: 27.5px;
}

.explore-card span::after {
  font-size: 14.3px;
}

.explore-card > span {
  font-size: clamp(30.4px, 3.2vw, 49.6px);
}

.manifesto .vertical-label {
  font-size: 15px;
}

.experiences .eyebrow,
.explore .eyebrow {
  font-size: 16.25px;
}

.experience-card h3 a {
  color: inherit;
  text-decoration: none;
  text-transform: uppercase;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 4px;
}

.experience-card h3 a:hover,
.experience-card h3 a:focus-visible {
  color: var(--gold-light);
}

.experience-card h3 a:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 4px;
}

.experience-card > a {
  display: block;
}

.experience-card > a:focus-visible {
  outline: 3px solid var(--gold);
  outline-offset: 3px;
}

footer .brand {
  width: 125px;
  height: 62px;
}

footer {
  background: #1a1a1a;
  font-size: 14.4px;
}

.footer-credit {
  margin: 0;
  color: var(--ivory);
  text-transform: none;
}

.footer-credit span {
  color: var(--gold-light);
  font-size: 18px;
}

.footer-credit a {
  color: var(--gold-light);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 3px;
}

.back-to-top {
  position: fixed;
  right: 28px;
  bottom: 28px;
  z-index: 30;
  width: 76px;
  height: 76px;
  display: grid;
  place-content: center;
  gap: 2px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  background: #1a1a1a;
  color: var(--gold-light);
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: opacity .3s ease, visibility .3s ease, transform .3s ease, background .25s ease;
}

.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
}

.back-to-top:hover,
.back-to-top:focus-visible {
  background: var(--gold);
  color: var(--black);
}

.back-to-top:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 4px;
}

.back-to-top span { font-size: 25px; line-height: .8; }
.back-to-top small { font: 600 10px/1 var(--sans); letter-spacing: .12em; }

@media (max-width: 850px) {
  .nav .brand {
    width: 116px;
    height: 60px;
  }

  .hero h1 {
    font-size: clamp(54.4px, 16vw, 80px);
  }

  .experiences .section-head h2 {
    font-size: 51.2px;
  }

  .explore-head h2 {
    font-size: 48px;
  }

  .visit h2 {
    font-size: 56px;
  }

  .nav-cta {
    font-size: 14.52px;
  }
}

@media (max-width: 480px) {
  .hero h1 {
    font-size: 52px;
  }

  .experiences .section-head h2,
  .visit h2 {
    font-size: 44.8px;
  }

  .explore-head h2 {
    font-size: 41.6px;
  }

  .explore-card > span {
    font-size: 31.2px;
  }


  .back-to-top {
    right: 18px;
    bottom: 18px;
    width: 66px;
    height: 66px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .back-to-top { transition: none; }
}
