.h7-intro-band { padding-block: var(--h7-space-10); }
.h7-intro-band__inner {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: var(--h7-space-9);
  align-items: center;
}
.h7-intro-band__copy { display: flex; flex-direction: column; gap: var(--h7-space-4); }
.h7-intro-band__copy p { color: var(--h7-text-secondary); max-width: 54ch; }
.h7-intro-band__action { justify-self: end; }

@media (max-width: 900px) {
  .h7-intro-band__inner { grid-template-columns: 1fr; gap: var(--h7-space-6); }
  .h7-intro-band__action { justify-self: start; }
}


.h7-room-rows { display: flex; flex-direction: column; gap: var(--h7-space-11); }

.h7-room-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--h7-space-9);
  align-items: center;
}
.h7-room-row:nth-child(even) .h7-room-row__media { order: 2; }

.h7-room-row__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid var(--h7-border-default);
  border-radius: var(--h7-radius-card);
  background: var(--h7-surface-subtle);
}
.h7-room-row__media img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform var(--h7-duration-reveal) var(--h7-ease-linen);
}
.h7-room-row:hover .h7-room-row__media img { transform: scale(1.03); }

.h7-room-row__body { display: flex; flex-direction: column; gap: var(--h7-space-4); }
.h7-room-row__body p { color: var(--h7-text-secondary); max-width: 46ch; }


.h7-room-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--h7-space-3) var(--h7-space-5);
  padding-block: var(--h7-space-4);
  border-block: 1px solid var(--h7-border-default);
}
.h7-room-meta li {
  display: flex;
  align-items: center;
  gap: var(--h7-space-2);
  font-size: var(--h7-size-caption);
  color: var(--h7-text-secondary);
}
.h7-room-meta .h7-icon { color: var(--h7-icon-muted); }

.h7-room-row__actions { display: flex; flex-wrap: wrap; gap: var(--h7-space-4); }

@media (max-width: 900px) {
  .h7-room-rows { gap: var(--h7-space-10); }
  .h7-room-row { grid-template-columns: 1fr; gap: var(--h7-space-5); }
  .h7-room-row:nth-child(even) .h7-room-row__media { order: 0; }
  .h7-room-row__actions .h7-btn { flex: 1; }
}


.h7-amenities-band { padding-block: var(--h7-space-11); }
.h7-amenities-band__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--h7-space-10);
  align-items: center;
}
.h7-amenities-band__copy { display: flex; flex-direction: column; gap: var(--h7-space-4); }
.h7-amenities-band__copy p { color: var(--h7-text-secondary); max-width: 44ch; }
.h7-amenities-band__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--h7-space-6) var(--h7-space-5);
}

@media (max-width: 900px) { .h7-amenities-band__inner { grid-template-columns: 1fr; gap: var(--h7-space-8); } }
@media (max-width: 480px) { .h7-amenities-band__grid { grid-template-columns: 1fr; } }


.h7-roomsearch {
  position: sticky;
  top: var(--h7-header-h);
  z-index: 60;
  padding-block: var(--h7-space-5);
  background: var(--h7-surface-page);
  border-bottom: 1px solid var(--h7-border-default);
}
.h7-roomsearch__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr) auto;
  gap: var(--h7-space-5);
  align-items: end;
}
@media (max-width: 900px) {
  .h7-roomsearch__inner { grid-template-columns: 1fr 1fr; }
  .h7-roomsearch__inner > :last-child { grid-column: 1 / -1; }
}

.h7-results-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--h7-space-5);
  padding-block: var(--h7-space-5);
  border-bottom: 1px solid var(--h7-border-default);
}


.h7-result {
  display: grid;
  grid-template-columns: 280px 1fr 280px;
  gap: var(--h7-space-6);
  align-items: center;
  padding-block: var(--h7-space-6);
  border-bottom: 1px solid var(--h7-border-default);
}
.h7-result__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: var(--h7-radius-card);
  background: var(--h7-surface-subtle);
}
.h7-result__media img { width: 100%; height: 100%; object-fit: cover; }

.h7-result__body { display: flex; flex-direction: column; gap: var(--h7-space-3); }
.h7-result__body p { color: var(--h7-text-secondary); font-size: var(--h7-size-body-sm); max-width: 48ch; }

.h7-result__price {
  display: flex;
  flex-direction: column;
  gap: var(--h7-space-3);
  align-items: flex-end;
  text-align: right;
  padding-left: var(--h7-space-6);
  border-left: 1px solid var(--h7-border-default);
  align-self: stretch;
  justify-content: center;
}
.h7-result__rate {
  font-family: var(--h7-font-display);
  font-size: var(--h7-size-headline);
  color: var(--h7-text-accent);
  line-height: 1;
}

@media (max-width: 1024px) {
  .h7-result { grid-template-columns: 220px 1fr; }
  .h7-result__price {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    text-align: left;
    padding-left: 0;
    border-left: none;
    border-top: 1px solid var(--h7-border-default);
    padding-top: var(--h7-space-4);
  }
}
@media (max-width: 640px) {
  .h7-result { grid-template-columns: 1fr; }
}


.h7-photogrid {
  display: grid;
  grid-template-columns: 6fr 4fr;
  grid-template-rows: repeat(2, 1fr);
  gap: 4px;
  height: 520px;
}
.h7-photogrid__item { overflow: hidden; background: var(--h7-surface-subtle); }
.h7-photogrid__item:first-child { grid-row: 1 / 3; }
.h7-photogrid__item img { width: 100%; height: 100%; object-fit: cover; }

.h7-photogrid__more {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding: var(--h7-space-4);
}
.h7-photogrid__more span {
  position: relative;
  padding: var(--h7-space-2) var(--h7-space-4);
  background: rgba(30, 45, 73, .82);
  color: var(--h7-natural-linen);
  border-radius: var(--h7-radius-xs);
  font-size: var(--h7-size-caption);
}
.h7-photogrid__more img { position: absolute; inset: 0; }

@media (max-width: 900px) {
  .h7-photogrid { grid-template-columns: 1fr; grid-template-rows: none; height: 300px; }
  .h7-photogrid__item:first-child { grid-row: auto; }
  .h7-photogrid__item:not(:first-child) { display: none; }
}

.h7-detail {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: var(--h7-space-10);
  align-items: start;
}


.h7-detail__amenities {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--h7-space-5);
}
@media (max-width: 640px) { .h7-detail__amenities { grid-template-columns: repeat(2, 1fr); } }

.h7-policies { display: flex; flex-direction: column; }
.h7-policies__row {
  display: flex;
  justify-content: space-between;
  gap: var(--h7-space-5);
  padding-block: var(--h7-space-4);
  border-bottom: 1px solid var(--h7-border-default);
  font-size: var(--h7-size-body-sm);
}
.h7-policies__row dt { color: var(--h7-text-muted); }
.h7-policies__row dd { margin: 0; text-align: right; color: var(--h7-text-secondary); }


.h7-ratecard {
  position: sticky;
  top: calc(var(--h7-header-h) + var(--h7-space-5));
  display: flex;
  flex-direction: column;
  gap: var(--h7-space-5);
  padding: var(--h7-space-6);
  background: var(--h7-surface-card);
  border: 2px solid var(--h7-border-default);
  border-radius: var(--h7-radius-card);
}
.h7-ratecard__rate {
  display: flex;
  align-items: baseline;
  gap: var(--h7-space-2);
  font-family: var(--h7-font-display);
  font-size: var(--h7-size-display-3);
  color: var(--h7-text-accent);
  line-height: 1;
}
.h7-ratecard__rate small {
  font-family: var(--h7-font-body);
  font-style: normal;
  font-size: var(--h7-size-caption);
  color: var(--h7-text-muted);
}
.h7-ratecard__note { font-size: var(--h7-size-caption); color: var(--h7-text-muted); text-align: center; }

@media (max-width: 1024px) {
  .h7-detail { grid-template-columns: 1fr; }
  .h7-ratecard { position: static; }
}


@media (max-width: 640px) {

  .h7-roomsearch { position: static; }
  .h7-roomsearch__inner { grid-template-columns: 1fr 1fr; gap: var(--h7-space-4); }
  .h7-roomsearch__inner > :last-child { grid-column: 1 / -1; }

  .h7-result { gap: var(--h7-space-4); padding-block: var(--h7-space-5); }
  .h7-result__price { align-items: stretch; }
  .h7-result__price .h7-btn { width: 100%; }


  .h7-photogrid { height: 260px; }

  .h7-ratecard { padding: var(--h7-space-5); }
  .h7-detail { gap: var(--h7-space-8); }
  .h7-policies__row { flex-direction: column; gap: var(--h7-space-1); }
  .h7-policies__row dd { text-align: left; }

  .h7-room-meta { gap: var(--h7-space-2) var(--h7-space-4); }
  .h7-card-grid { grid-template-columns: 1fr; }
}

.h7-hotel-group + .h7-hotel-group { margin-top: var(--h7-space-12); }

.h7-status-note {
  align-self: flex-start;
  padding: var(--h7-space-1) var(--h7-space-3);
  border: 1px solid var(--h7-aged-brass);
  border-radius: var(--h7-radius-pill);
  font-size: var(--h7-size-caption);
  color: var(--h7-text-accent);
}
