/* Targeted layout refinements; booking behavior and form semantics are unchanged. */
.hero-photo.cinematic-hero.exterior-hero {
  min-height: 0; height: auto; align-self: stretch;
}
.hero-photo.cinematic-hero.exterior-hero > .cinematic-poster {
  position: relative; inset: auto; display: block;
  width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover;
}
.hero-photo.cinematic-hero.exterior-hero > .cinematic-video {
  position: absolute; inset: 0 auto auto 0;
  width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover;
}
.hero-photo.cinematic-hero.exterior-hero::after {
  inset: 0 auto auto 0; width: 100%; height: auto; aspect-ratio: 3 / 2;
  background: linear-gradient(180deg, #09120b30, transparent 30%, transparent 78%, #15231d);
}
.exterior-hero .cinematic-copy {
  position: relative; inset: auto; padding: 28px 7% 30px;
  min-width: 0; overflow-wrap: break-word;
}
.exterior-hero .cinematic-copy .eyebrow { line-height: 1.6; }
.exterior-hero .cinematic-copy h1 { text-wrap: balance; }
.exterior-hero .cinematic-copy > p { text-shadow: none; }
.exterior-hero .cinematic-actions { padding-right: 64px; }
.exterior-hero .cinematic-cta { white-space: normal; text-align: center; }
.exterior-hero .cinematic-bottom {
  left: auto; right: 7%; bottom: 30px; justify-content: flex-end;
}
.exterior-hero .cinematic-bottom button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; flex: 0 0 46px;
}
.hero .booking-search, .hero .booking-search .field,
.room-grid .room-copy, .experience-card > div,
.footer-top > div, .contact-grid > *, .legal-layout > * { min-width: 0; }
.hero .booking-search .date-grid input { width: 100%; max-width: 100%; }
.hero .booking-search .guest-grid .field label { overflow-wrap: break-word; }
.room-grid .room-card .room-copy { display: flex; flex-direction: column; }
.room-grid .room-card .room-copy > .room-conditions {
  margin-top: auto; padding-top: 20px;
}
.room-grid .room-card .room-price { flex-wrap: wrap; }
.room-grid .room-card .room-price > .text-link {
  white-space: normal; min-height: 44px; max-width: 100%;
}
.room-grid .room-card .room-request { min-height: 46px; }
.room-grid .room-card h3, .experience-card h3 { overflow-wrap: break-word; }
.experience-grid .experience-card > div { display: flex; flex-direction: column; }
.experience-grid .experience-card .text-link {
  margin-top: auto; min-height: 44px; align-self: flex-start; white-space: normal;
}
.footer-top a, .footer-top p, .legal-content a { overflow-wrap: anywhere; }
.media-gallery-filters button { min-height: 44px; }
.media-lightbox-controls { flex-wrap: wrap; }
.media-lightbox-controls .btn { white-space: normal; min-height: 44px; }
@media (min-width: 901px) {
  .room-grid .room-card { display: flex; flex-direction: column; }
  .room-grid .room-card .room-image { flex-shrink: 0; }
  .room-grid .room-card .room-copy { flex: 1; }
}
@media (min-width: 801px) {
  .experience-grid .experience-card { display: flex; flex-direction: column; }
  .experience-grid .experience-card > div { flex: 1; }
}
@media (max-width: 1050px) and (min-width: 801px) {
  .exterior-hero .cinematic-copy h1 { font-size: clamp(34px, 3.8vw, 40px); }
  .hero .booking-search .guest-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .hero .booking-search .guest-grid > .field:last-child { grid-column: 1 / -1; }
  .hero .booking-search .guest-grid .field label { min-height: 0; }
}
@media (max-width: 800px) {
  .hero { min-height: 0; }
  .exterior-hero .cinematic-copy { padding-top: 22px; }
  .exterior-hero .cinematic-copy > p { max-width: 620px; }
  .hero .booking-search .guest-grid .field label { min-height: 34px; }
  .hero .booking-search .guest-grid > .field:last-child { grid-column: auto; }
  .editorial { grid-template-columns: 1fr; }
  .editorial-copy { padding: 44px 7%; }
  .editorial-copy p { max-width: 620px; }
  .editorial-image { min-height: 0; aspect-ratio: 4 / 3; }
  .gallery-invitation > img { min-height: 0; height: auto; aspect-ratio: 4 / 3; }
}
@media (max-width: 600px) {
  .room-grid .room-card .room-copy > .room-conditions { margin-top: 0; }
  .page-intro h1, .closing-cta h2, .section-head h2,
  .editorial-copy h2, .location-teaser h2, .faq-preview h2 {
    font-size: clamp(32px, 8.6vw, 43px); overflow-wrap: break-word;
  }
  .footer-bottom a, .footer-bottom button {
    display: inline-flex; align-items: center; min-height: 44px;
  }
  .footer { padding-bottom: calc(110px + env(safe-area-inset-bottom)); }
  .legal-nav { grid-template-columns: minmax(0,1fr); }
  .legal-nav a { min-height: 44px; display: flex; align-items: center; }
  .media-lightbox-controls .micro { flex-basis: 100%; text-align: center; }
  .media-lightbox-controls > .btn { flex: 1; }
}
@media (max-width: 480px) {
  .hero .booking-search .guest-grid > .field:last-child { grid-column: 1 / -1; }
  .hero .booking-search .guest-grid .field label { min-height: 0; }
  .exterior-hero .cinematic-copy h1 { font-size: clamp(30px, 8.8vw, 38px); }
  .hero .booking-search h2 { font-size: clamp(29px, 8vw, 34px); }
  .hero .booking-search > .btn { white-space: normal; }
  .gallery-invitation > div { padding: 30px 7%; }
  .gallery-invitation h2 { font-size: clamp(30px, 8vw, 38px); }
}
@media (max-width: 360px) {
  .footer-top { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .footer-top > div:first-child { grid-column: auto; }
}
