/*
 * Shared interior-page hero refinements.
 * Intentionally scoped to the six approved static page heroes only.
 */
.page-hero.page-hero-aligned .wrap {
  max-width: var(--wrap);
}

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

.page-hero-aligned .eyebrow {
  color: #79AEDA;
  font-size: .86rem;
}

.page-hero-aligned .lead {
  max-width: 640px;
}

.page-hero-aligned .hero-copy {
  min-width: 0;
}

.page-hero-aligned .hero-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  align-items: center;
  gap: clamp(36px, 6vw, 96px);
}

.page-hero-aligned .hero-portrait {
  width: min(100%, 320px);
  margin: 0 auto;
}

.page-hero-aligned .hero-portrait .headshot-frame {
  width: 100%;
  margin: 0;
}

.page-hero-aligned .hero-portrait .headshot-photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
}

.page-hero-aligned .hero-review {
  max-width: 360px;
  margin: 0;
  color: #24303B;
}

.page-hero-aligned .hero-review-stars {
  margin: 0 0 12px;
  color: #D99420;
  font-family: var(--util);
  font-size: 1.15rem;
  letter-spacing: .12em;
  line-height: 1;
}

.page-hero-aligned .hero-review-quote {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(1.35rem, 2vw, 1.7rem);
  line-height: 1.35;
}

.page-hero-aligned .hero-review-attribution {
  margin: 14px 0 0;
  color: var(--slate);
  font-family: var(--util);
  font-size: .78rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

@media (max-width: 991px) {
  .page-hero-aligned .hero-split {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
    gap: 32px;
  }
}

@media (max-width: 700px) {
  .locations-page-hero {
    padding-bottom: 36px;
  }

  .locations-mobile-booking {
    display: block;
    padding-top: 28px;
  }

  .locations-mobile-booking .btn {
    width: 100%;
    min-height: 58px;
    box-shadow: var(--shadow);
  }

  .locations-page-hero + .section {
    padding-top: 36px;
  }

  .locations-page-hero + .section .contact-grid {
    row-gap: 0;
  }

  .locations-office-details,
  .locations-map-column {
    display: contents !important;
  }

  .locations-map-column .map-slot {
    order: 1;
    height: 320px;
    margin-top: 28px;
  }

  .locations-office-booking {
    order: 2;
  }

  .locations-office-privacy {
    order: 3;
  }

  .locations-map-column .card {
    order: 4;
  }

  .page-hero-aligned .hero-split {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  .page-hero-aligned .hero-portrait {
    width: min(100%, 260px);
    margin-left: 0;
  }

  .page-hero-aligned .hero-review {
    max-width: 640px;
  }
}
