/**
 * Lounges — PDF p.9.
 */

.lounges {
  background: var(--color-noir-temp);
  padding-block: var(--section-pad-y);
  min-height: var(--section-min-height-flow);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.lounges__header {
  text-align: center;
  max-width: 44rem;
  margin: 0 auto var(--space-6);
}
.lounges__eyebrow {
  font-family: var(--font-ui);
  font-size: var(--fs-00);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-cherry-temp);
  margin: 0 0 var(--space-3);
}
.lounges__heading {
  font-size: clamp(2.25rem, 4vw, var(--fs-5));
  color: var(--color-paper-on-dark);
  margin: 0;
}
.lounges__script {
  font-family: var(--font-script);
  font-size: var(--fs-3);
  color: var(--color-cherry-temp);
  margin: var(--space-2) 0 var(--space-4);
}
.lounges__description {
  color: var(--color-paper-on-dark-soft);
  font-size: var(--fs-1);
  line-height: 1.7;
  margin: 0;
}

.lounges__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-7);
}

/* Image gallery on top, text below — not overlaid (PDF p.9). Image count is
   client-controlled (ACF gallery field) — a single image renders with no
   carousel chrome at all (carousel.js bails out below 2 slides), multiple
   images get dots + swipe, reusing the same generic carousel used by the
   Collection section. */
.lounges__item {
  display: block;
}

.lounges__carousel {
  position: relative;
  outline: none;
}
.lounges__carousel-track {
  position: relative;
  aspect-ratio: 732 / 480;
  max-height: min(46vh, 420px);
  overflow: hidden;
  cursor: grab;
}
.lounges__carousel-track:active {
  cursor: grabbing;
}
.lounges__carousel-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  transition: opacity 500ms ease;
  background: var(--color-ash);
}
.lounges__carousel-slide.is-active {
  opacity: 1;
  visibility: visible;
  z-index: 1;
}
.lounges__item-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  user-select: none;
  -webkit-user-drag: none;
}

.lounges__dots {
  position: absolute;
  inset-inline: 0;
  inset-block-end: var(--space-3);
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: var(--space-3);
}
.lounges__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(245, 241, 233, 0.45);
  padding: 0;
  position: relative;
  transition: background var(--transition-fast), transform var(--transition-fast);
}
.lounges__dot::before {
  content: '';
  position: absolute;
  inset: -13px;
}
.lounges__dot.is-active {
  background: var(--color-copper-temp);
  transform: scale(1.25);
}
.lounges__dot:hover,
.lounges__dot:focus-visible {
  background: var(--color-paper-on-dark);
}

.lounges__item-footer {
  padding-top: var(--space-4);
}
.lounges__item-heading {
  display: flex;
  align-items: baseline;
  gap: var(--space-4);
}
.lounges__item-number {
  font-family: var(--font-ui);
  font-size: var(--fs-0);
  color: var(--color-copper-temp);
  flex: none;
}
.lounges__item-title {
  font-family: var(--font-ui);
  font-size: var(--fs-0);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-paper-on-dark);
}
/* Address is deliberately subordinate — smaller, softer, no its own weight
   competing with the location name above it. */
.lounges__item-address {
  margin: var(--space-2) 0 0;
  font-family: var(--font-body);
  font-size: var(--fs-000);
  line-height: 1.5;
  color: var(--color-paper-on-dark-soft);
  max-width: 34rem;
}
.lounges__item-directions {
  display: inline-block;
  margin-top: var(--space-3);
  font-family: var(--font-ui);
  font-size: var(--fs-000);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-cherry-temp);
  border-bottom: 1px solid currentColor;
}
.lounges__item-directions:hover,
.lounges__item-directions:focus-visible {
  color: var(--color-paper-on-dark);
}

@media (max-width: 720px) {
  .lounges__grid {
    grid-template-columns: 1fr;
  }
}

/* Client feedback: mobile typography still slightly large — small further
   reduction, not a redesign. */
@media (max-width: 640px) {
  .lounges__heading {
    font-size: clamp(2rem, 4vw, var(--fs-5));
  }
  .lounges__item-title {
    font-size: var(--fs-000);
  }
}

/* Client feedback, round 2: still slightly large — one further ~5% pass on
   the main section heading. .lounges__item-title is intentionally left
   alone here: it's already down to --fs-000, the smallest token on the
   site (shared with lounge address/directions metadata) — shrinking it
   further would cross from "compact" into "hard to read," which the brief
   explicitly asks to avoid. Desktop (the var(--fs-5) ceiling) is untouched
   either way. */
@media (max-width: 640px) {
  .lounges__heading {
    font-size: clamp(1.9rem, 4vw, var(--fs-5));
  }
}
