:root {
  --hero-height: 31rem;
  --hero-height-mobile: 27rem;
}

.site-header nav {
  margin-left: clamp(1.5rem, 4vw, 5rem);
}

.site-header nav a {
  font-size: 1.08rem;
}

.hero,
.marseille-hero {
  min-height: var(--hero-height);
}

.footer-secondary-links {
  display: flex;
  gap: .8rem;
  margin: 0;
}

.footer-secondary-links a {
  font-weight: 700;
}

.mobile-booking-cta { display: none; }

.back-to-top[hidden] { display: none; }
.back-to-top { position: fixed; right: 1rem; bottom: 1rem; z-index: 6; width: 2.7rem; height: 2.7rem; border: 1px solid var(--sun); background: var(--night); color: #fff; font-size: 1.35rem; cursor: pointer; box-shadow: 0 8px 18px #063c6850; }
.back-to-top:hover, .back-to-top:focus-visible { background: var(--terracotta); outline: 3px solid var(--sun); outline-offset: 2px; }
.info-list article { transition: transform .2s ease, box-shadow .2s ease; }
.info-list article:hover { transform: translateX(4px); box-shadow: inset 4px 0 var(--terracotta); }
.practical .info-list article { background: var(--white); padding: 1.25rem; }
.marseille-hero { min-height: 24rem; }

.practical-quick-nav {
  display: flex;
  gap: .65rem;
  flex-wrap: wrap;
  padding: 1rem clamp(1.25rem, 9vw, 11rem);
  background: var(--white);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.practical-quick-nav a {
  color: var(--night);
  font-size: .78rem;
  font-weight: 700;
  text-decoration: none;
  border: 1px solid var(--line);
  padding: .5rem .7rem;
}

.practical-quick-nav a:hover,
.practical-quick-nav a:focus-visible {
  background: var(--night);
  color: var(--sun);
  outline: 0;
}

@media (min-width: 761px) and (max-width: 1120px) {
  .site-header nav a {
    font-size: .92rem;
  }
}

@media (max-width: 760px) {
  .site-header nav {
    margin-left: 0;
  }

  .footer-secondary-links {
    margin-top: 1rem;
  }

  .hero,
  .marseille-hero {
    height: var(--hero-height-mobile);
    min-height: var(--hero-height-mobile);
  }

  .hero {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--night);
  }

  .hero::after {
    position: absolute;
    z-index: 0;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, #063c68df, #063c6870);
  }

  .hero-copy {
    position: relative;
    z-index: 1;
    display: flex;
    height: 100%;
    padding: 2.5rem clamp(1.25rem, 7vw, 3rem);
    flex-direction: column;
    justify-content: center;
    color: #fff;
  }

  .hero-copy h1,
  .hero-copy .intro,
  .hero-copy .hero-details {
    color: #fff;
  }

  .hero-copy .eyebrow {
    color: var(--sun);
  }

  .hero-photo {
    position: absolute;
    z-index: 0;
    inset: 0;
    height: 100%;
    min-height: 0;
    order: initial;
    box-shadow: none;
    background-position: center;
  }

  body.has-mobile-booking-cta { padding-bottom: 4.5rem; }
  .mobile-booking-cta {
    position: fixed;
    z-index: 5;
    right: .9rem;
    bottom: .9rem;
    left: .9rem;
    display: block;
    padding: .85rem 1rem;
    background: var(--terracotta);
    color: #fff;
    box-shadow: 0 8px 22px #063c6850, 4px 4px 0 var(--sun);
    font-size: .86rem;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
  }
  .mobile-booking-cta:focus-visible { outline: 3px solid var(--sun); outline-offset: 3px; }
  .back-to-top { right: 1rem; bottom: 5rem; }
  .marseille-hero { min-height: 22rem; }
  .practical-quick-nav {
    position: sticky;
    top: 78px;
    z-index: 1;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding: .7rem 1.25rem;
  }
  .practical-quick-nav a { flex: 0 0 auto; white-space: nowrap; }
}
