/**
 * Layout variety — splits, stacks, bento, bands (use instead of repeating cards)
 */

/* —— Room / product rows (alternating split, no card chrome) —— */
.layout-stack {
  max-width: var(--content-max);
  margin: 0 auto;
}

.room-row {
  display: grid;
  gap: var(--space-xl);
  align-items: center;
  padding: var(--space-2xl) 0;
  border-bottom: 1px solid var(--color-border-refined);
}

.room-row:first-child {
  padding-top: var(--space-lg);
}

.room-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.room-row__body {
  min-width: 0;
}

.room-row__link:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

@media (min-width: 768px) {
  .room-row {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: var(--space-2xl);
  }

  .room-row--flip .room-row__media {
    order: 2;
  }

  .room-row--flip .room-row__body {
    order: 1;
  }
}

.room-row__media {
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-lg);
  aspect-ratio: 4 / 3;
}

.room-row__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.7s var(--ease-luxury);
}

.room-row:hover .room-row__media img {
  transform: scale(1.03);
}

.room-row__eyebrow {
  margin: 0 0 var(--space-sm);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.room-row__title {
  margin: 0 0 var(--space-md);
  font-family: var(--font-serif);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 500;
}

.room-row__text {
  margin: 0 0 var(--space-md);
  color: var(--color-text-muted);
  line-height: 1.65;
}

.room-row__specs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin: 0 0 var(--space-md);
  padding: 0;
  list-style: none;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.room-row__specs li:not(:last-child)::after {
  content: "·";
  margin-left: var(--space-sm);
  opacity: 0.45;
}

.room-row__link {
  font-weight: 600;
  font-size: 0.8125rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-text);
  border-bottom: 1px solid var(--color-gold-muted);
}

/* —— Bento (asymmetric, not uniform cards) —— */
.layout-bento {
  display: grid;
  gap: var(--space-md);
  max-width: var(--content-max);
  margin: 0 auto;
}

@media (min-width: 768px) {
  .layout-bento {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: minmax(10rem, auto);
  }

  .layout-bento__a {
    grid-column: span 4;
    grid-row: span 2;
  }

  .layout-bento__b,
  .layout-bento__c {
    grid-column: span 2;
  }
}

.bento-cell {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-md);
  min-height: 12rem;
}

.bento-cell img {
  width: 100%;
  height: 100%;
  min-height: 12rem;
  object-fit: cover;
  display: block;
}

.bento-cell__caption {
  position: absolute;
  inset: auto 0 0 0;
  padding: var(--space-md) var(--space-lg);
  background: linear-gradient(transparent, rgba(26, 26, 26, 0.72));
  color: #fff;
  font-family: var(--font-serif);
  font-size: 1.125rem;
}

.bento-cell__caption span {
  display: block;
  font-family: var(--font-sans);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.85;
  margin-bottom: 0.25rem;
}

/* —— Offer bands (horizontal, not cards) —— */
.offer-band-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: var(--content-max);
  margin-inline: auto;
}

.offer-band {
  display: grid;
  gap: var(--space-md);
  padding: var(--space-xl) 0;
  border-bottom: 1px solid var(--color-border-refined);
}

.offer-band:first-child {
  border-top: 1px solid var(--color-border-refined);
}

@media (min-width: 768px) {
  .offer-band {
    grid-template-columns: 6rem 1fr auto;
    align-items: start;
    gap: var(--space-lg) var(--space-xl);
  }
}

.offer-band__tag {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-champagne);
}

.offer-band__title {
  margin: 0 0 var(--space-xs);
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 500;
}

.offer-band__desc {
  margin: 0;
  font-size: 0.9375rem;
  color: var(--color-text-muted);
  line-height: 1.6;
}

.offer-band__meta {
  margin: var(--space-sm) 0 0;
  font-size: 0.75rem;
  color: var(--color-text-muted);
}

.offer-band__action {
  align-self: center;
}

/* —— Definition / spec columns (dietary, FAQ) —— */
.spec-columns {
  column-gap: var(--space-2xl);
  max-width: 56rem;
  margin: var(--space-xl) auto 0;
}

@media (min-width: 768px) {
  .spec-columns {
    columns: 2;
  }
}

.spec-columns__item {
  break-inside: avoid;
  padding: 0 0 var(--space-lg);
  margin-bottom: var(--space-lg);
  border-bottom: 1px solid var(--color-border);
}

.spec-columns__item dt {
  margin: 0 0 var(--space-xs);
  font-family: var(--font-serif);
  font-size: 1.0625rem;
  font-weight: 500;
}

.spec-columns__item dd {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--color-text-muted);
}

/* —— Highlight index (numbered, no cards) —— */
.highlight-index {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: var(--content-max);
  margin-inline: auto;
  counter-reset: highlight;
}

.highlight-index__item {
  display: grid;
  gap: var(--space-lg);
  padding: var(--space-2xl) 0;
  border-bottom: 1px solid var(--color-border-refined);
  counter-increment: highlight;
}

@media (min-width: 768px) {
  .highlight-index__item {
    grid-template-columns: 4rem 1fr  minmax(0, 22rem);
    align-items: start;
  }
}

.highlight-index__item::before {
  content: counter(highlight, decimal-leading-zero);
  font-family: var(--font-serif);
  font-size: 1.75rem;
  color: var(--color-champagne);
  line-height: 1;
}

.highlight-index__title {
  margin: 0 0 var(--space-sm);
  font-family: var(--font-serif);
  font-size: 1.35rem;
  font-weight: 500;
}

.highlight-index__text {
  margin: 0 0 var(--space-md);
  color: var(--color-text-muted);
  line-height: 1.65;
}

.highlight-index__media {
  margin: 0;
  border-radius: var(--radius-md);
  overflow: hidden;
  aspect-ratio: 4 / 3;
}

.highlight-index__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* —— Testimonials: typographic row —— */
.voice-row {
  display: grid;
  gap: var(--space-xl);
  max-width: var(--content-max);
  margin: 0 auto;
}

@media (min-width: 768px) {
  .voice-row {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
  }

  .voice-row blockquote {
    border-left: 2px solid var(--color-champagne);
    padding-left: var(--space-md);
  }
}

.voice-row blockquote {
  margin: 0;
}

.voice-row p {
  margin: 0 0 var(--space-md);
  font-family: var(--font-serif);
  font-size: 1rem;
  font-style: italic;
  line-height: 1.55;
}

.voice-row footer {
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

/* —— Amenities: line grid (not tiles) —— */
.amenities-line-grid {
  display: grid;
  gap: 0;
  border: 1px solid var(--color-border-refined);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-surface);
}

@media (min-width: 640px) {
  .amenities-line-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .amenities-line-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.amenities-line-grid__cell {
  padding: var(--space-lg);
  border-bottom: 1px solid var(--color-border);
  border-right: 1px solid var(--color-border);
}

@media (max-width: 639px) {
  .amenities-line-grid__cell {
    border-right: none;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .amenities-line-grid__cell:nth-child(2n) {
    border-right: none;
  }
}

@media (min-width: 1024px) {
  .amenities-line-grid__cell:nth-child(3n) {
    border-right: none;
  }
}

.amenities-line-grid__label {
  margin: var(--space-sm) 0 0;
  font-size: 0.9375rem;
  font-weight: 600;
}

.amenities-line-grid__detail {
  margin: var(--space-xs) 0 0;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  line-height: 1.5;
}

.page-amenities .amenities__grid--line {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--color-border-refined);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-surface);
}

.page-amenities .amenities__grid--line .amenities__item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 0;
  margin: 0;
  padding: var(--space-lg) var(--space-xl);
  border-bottom: 1px solid var(--color-border);
  border-right: 1px solid var(--color-border);
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  text-align: left;
  transform: none;
}

.page-amenities .amenities__grid--line .amenities__item:hover {
  background: var(--color-accent-soft);
  transform: none;
  border-color: var(--color-border);
}

.page-amenities .amenities__grid--line .amenities__item--grid-pad {
  padding: 0;
  min-height: 0;
  margin: 0;
  border-bottom: 1px solid var(--color-border);
  border-right: 1px solid var(--color-border);
  background: transparent;
  pointer-events: none;
}

@media (max-width: 639px) {
  .page-amenities .amenities__grid--line .amenities__item:not(.amenities__item--grid-pad) {
    border-right: none;
  }
}

@media (min-width: 640px) {
  .page-amenities .amenities__grid--line {
    grid-template-columns: repeat(2, 1fr);
  }

  .page-amenities .amenities__grid--line .amenities__item:nth-child(2n) {
    border-right: none;
  }
}

@media (min-width: 1024px) {
  .page-amenities .amenities__grid--line {
    grid-template-columns: repeat(3, 1fr);
  }

  .page-amenities .amenities__grid--line .amenities__item:nth-child(2n) {
    border-right: 1px solid var(--color-border);
  }

  .page-amenities .amenities__grid--line .amenities__item:nth-child(3n) {
    border-right: none;
  }
}

.page-amenities .amenities-strip__figure {
  box-shadow: var(--shadow-md);
}

.page-amenities .amenities-strip__figure.card-3d {
  transform: none;
}

.page-amenities .amenities__icon {
  display: inline-flex;
  justify-content: flex-start;
  width: auto;
  height: auto;
  margin-inline: 0;
  margin-bottom: var(--space-sm);
}

.page-amenities .amenities__grid--line .amenities__item:last-child {
  border-bottom: none;
}

@media (min-width: 640px) {
  .page-amenities .amenities__grid--line .amenities__item:last-child {
    border-bottom: 1px solid var(--color-border);
  }

  .page-amenities .amenities__grid--line .amenities__item:nth-last-child(-n + 2) {
    border-bottom: none;
  }

  .page-amenities .amenities__grid--line .amenities__item--grid-pad:nth-last-child(-n + 2) {
    border-bottom: none;
  }
}

@media (min-width: 1024px) {
  .page-amenities .amenities__grid--line .amenities__item:nth-last-child(-n + 2) {
    border-bottom: 1px solid var(--color-border);
  }

  .page-amenities .amenities__grid--line .amenities__item:nth-last-child(-n + 3) {
    border-bottom: none;
  }

  .page-amenities .amenities__grid--line .amenities__item--grid-pad:nth-last-child(-n + 3) {
    border-bottom: none;
  }
}

.amenities-cross {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-sm) var(--space-md);
  padding: var(--space-xl) var(--space-lg) 0;
  max-width: var(--content-max);
  margin: 0 auto;
}

.amenities-cross a {
  padding: var(--space-sm) var(--space-md);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--color-text);
  border: 1px solid var(--color-border-refined);
  border-radius: var(--radius-pill);
  background: var(--color-surface);
  transition: border-color var(--transition), box-shadow var(--transition);
}

.amenities-cross a:hover {
  border-color: var(--color-champagne);
  box-shadow: var(--shadow-sm);
}

.page-amenities .amenities__title {
  font-family: var(--font-serif);
  font-weight: 500;
  letter-spacing: 0.02em;
  text-transform: none;
  color: var(--color-text);
}

/* —— Amenities page: business band + wellness split —— */
.amenities-business-band {
  padding: var(--space-2xl) var(--space-lg);
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
}

.amenities-business-band__inner {
  max-width: var(--content-max);
  margin: 0 auto;
  display: grid;
  gap: var(--space-lg);
  padding: var(--space-xl) var(--space-2xl);
  border: 1px solid var(--color-border-refined);
  border-radius: var(--radius-lg);
  background: linear-gradient(120deg, var(--color-surface) 0%, var(--color-accent-soft) 55%, var(--color-surface) 100%);
  box-shadow: none;
}

@media (min-width: 768px) {
  .amenities-business-band__inner {
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: var(--space-2xl);
  }
}

.amenities-business-band__eyebrow {
  margin: 0 0 var(--space-xs);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-champagne);
}

.amenities-business-band__title {
  margin: 0 0 var(--space-sm);
  font-family: var(--font-serif);
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 500;
}

.amenities-business-band__text {
  margin: 0;
  max-width: 40rem;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: var(--color-text-muted);
}

.amenities-business-band__list {
  margin: var(--space-md) 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm) var(--space-lg);
  font-size: 0.8125rem;
  color: var(--color-text-muted);
}

.amenities-business-band__list li::before {
  content: "\2022";
  margin-right: 0.35em;
  color: var(--color-champagne);
}

.amenities-business-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-md);
}

.page-amenities .amenities-wellness-split {
  padding: var(--space-3xl) var(--space-lg);
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
}

.page-amenities .amenities-wellness-split .split-section__inner {
  max-width: var(--content-max);
  margin: 0 auto;
}

.page-amenities .amenities-wellness-split .room-block {
  box-shadow: none;
  transform: none;
  background: transparent;
}

.page-amenities .amenities-hours__pool {
  margin: var(--space-2xl) 0 0;
  padding-top: var(--space-xl);
  border-top: 1px solid var(--color-border-refined);
}

.page-amenities .amenities-hours__pool-title {
  margin: 0 0 var(--space-sm);
  font-family: var(--font-serif);
  font-size: 1.25rem;
  text-align: center;
}

.page-amenities .amenities-hours__pool-lead {
  margin: 0 auto var(--space-md);
  max-width: 32rem;
  text-align: center;
  font-size: 0.9375rem;
  color: var(--color-text-muted);
  line-height: 1.6;
}

.page-amenities .amenities-hours__dl {
  margin-top: var(--space-lg);
  columns: 1;
  display: grid;
  gap: 0;
  max-width: none;
  border: 1px solid var(--color-border-refined);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-surface);
}

.page-amenities .amenities-hours__dl .spec-columns__item {
  margin: 0;
  padding: var(--space-lg) var(--space-xl);
  border-bottom: 1px solid var(--color-border);
  border-right: 1px solid var(--color-border);
}

.page-amenities .amenities-hours__dl .spec-columns__item--grid-pad {
  padding: 0;
  min-height: 0;
  pointer-events: none;
  visibility: hidden;
}

@media (max-width: 767px) {
  .page-amenities .amenities-hours__dl .spec-columns__item--grid-pad {
    display: none;
  }
}

@media (max-width: 639px) {
  .page-amenities .amenities-hours__dl .spec-columns__item:not(.spec-columns__item--grid-pad) {
    border-right: none;
  }
}

@media (min-width: 768px) {
  .page-amenities .amenities-hours__dl {
    grid-template-columns: repeat(2, 1fr);
  }

  .page-amenities .amenities-hours__dl .spec-columns__item:nth-child(2n) {
    border-right: none;
  }

  .page-amenities .amenities-hours__dl .spec-columns__item:nth-last-child(-n + 2) {
    border-bottom: none;
  }
}

@media (min-width: 1024px) {
  .page-amenities .amenities-hours__dl {
    grid-template-columns: repeat(3, 1fr);
  }

  .page-amenities .amenities-hours__dl .spec-columns__item:nth-child(2n) {
    border-right: 1px solid var(--color-border);
  }

  .page-amenities .amenities-hours__dl .spec-columns__item:nth-child(3n) {
    border-right: none;
  }

  .page-amenities .amenities-hours__dl .spec-columns__item:nth-last-child(-n + 2) {
    border-bottom: 1px solid var(--color-border);
  }

  .page-amenities .amenities-hours__dl .spec-columns__item:nth-last-child(-n + 3) {
    border-bottom: none;
  }
}

.home-faq-teaser__inner {
  align-items: start;
}

.highlight-index__item::before {
  grid-column: 1;
}

@media (min-width: 768px) {
  .highlight-index__item > div {
    grid-column: 2;
  }

  .highlight-index__item .highlight-index__media {
    grid-column: 3;
  }
}

/* —— Editorial highlight rows (experiences, about) —— */
.highlights__grid--editorial {
  display: block;
  max-width: var(--content-max);
  margin-inline: auto;
}

.highlights__grid--editorial .highlights__card {
  display: grid;
  gap: var(--space-xl);
  align-items: center;
  padding: var(--space-2xl) 0;
  border-bottom: 1px solid var(--color-border-refined);
  background: transparent;
  box-shadow: none;
  transform: none;
}

.highlights__grid--editorial .highlights__card:last-child {
  border-bottom: none;
}

@media (min-width: 768px) {
  .highlights__grid--editorial .highlights__card {
    grid-template-columns: 1.05fr 0.95fr;
    gap: var(--space-2xl);
  }

  .highlights__grid--editorial .highlights__card:nth-child(even) .highlights__media {
    order: 2;
  }

  .highlights__grid--editorial .highlights__card:nth-child(even) .highlights__body {
    order: 1;
  }
}

.highlights__grid--editorial .highlights__media {
  margin: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.highlights__grid--editorial .highlights__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Editorial grids inherit parent .reveal — avoid double-fade (cards staying blank) */
.highlights__grid--editorial.reveal {
  opacity: 1;
  transform: none;
  transition: none;
}

/* —— About: milestones timeline —— */
.page-about .highlights__header .timeline__title {
  margin-bottom: var(--space-sm);
}

.page-about .about-timeline__list {
  max-width: 42rem;
  margin: var(--space-xl) auto 0;
}

@media (min-width: 1024px) {
  .page-about .about-timeline__list {
    max-width: var(--content-max);
  }
}

.page-about .timeline__content {
  min-width: 0;
}

.page-about .timeline__marker {
  top: 0.2rem;
}

/* —— Offers page: see css/page-offers.css —— */

/* —— FAQ page: see css/faq-page.css —— */

/* —— Location page: see css/page-location.css —— */

.page-rooms .room-list .layout-stack {
  margin-top: var(--space-md);
}

.page-rooms .room-compare__inner {
  min-width: 0;
}

.page-rooms .room-compare__table-wrap {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  background:
    linear-gradient(to right, var(--color-surface) 30%, rgba(255, 255, 255, 0)),
    linear-gradient(to left, var(--color-surface) 30%, rgba(255, 255, 255, 0)) 100% 0,
    radial-gradient(farthest-side at 0 50%, rgba(26, 26, 26, 0.12), rgba(26, 26, 26, 0)) 0 50%,
    radial-gradient(farthest-side at 100% 50%, rgba(26, 26, 26, 0.12), rgba(26, 26, 26, 0)) 100% 50%;
  background-repeat: no-repeat;
  background-size: 2.5rem 100%, 2.5rem 100%, 0.875rem 100%, 0.875rem 100%;
  background-attachment: local, local, scroll, scroll;
}

.page-rooms .room-compare__table-wrap:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.page-rooms .room-compare__table {
  min-width: 36rem;
}

.page-rooms .room-compare__table th:first-child,
.page-rooms .room-compare__table td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--color-surface);
  box-shadow: 1px 0 0 var(--color-border);
}

.page-rooms .room-compare__table thead th:first-child {
  z-index: 2;
  background: var(--color-accent-soft);
}

.page-rooms .room-compare__notes {
  max-width: 56rem;
  margin: var(--space-xl) auto 0;
  text-align: left;
}

.page-rooms .room-compare__notes-title {
  margin: 0 0 var(--space-md);
  font-family: var(--font-serif);
  font-size: 1.25rem;
  font-weight: 500;
  text-align: center;
}

.page-rooms .virtual-tour__inner--split {
  max-width: var(--content-max);
  margin-inline: auto;
}

.page-rooms .virtual-tour__layout {
  display: grid;
  gap: var(--space-2xl);
  align-items: center;
}

@media (min-width: 900px) {
  .page-rooms .virtual-tour__layout {
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: var(--space-2xl);
  }

  .page-rooms .virtual-tour__header {
    margin: 0;
    max-width: none;
    text-align: left;
  }

  .page-rooms .virtual-tour__frame {
    margin-inline: 0;
  }
}

.page-rooms .virtual-tour__frame {
  min-width: 0;
  width: 100%;
}

.page-rooms .virtual-tour__poster {
  background-image: none;
}

.page-rooms .virtual-tour__photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.page-rooms .virtual-tour__play {
  pointer-events: none;
  cursor: default;
}

.page-rooms .virtual-tour__caption {
  text-align: left;
}

.page-rooms .stay-details__panel {
  box-shadow: none;
  background: var(--color-bg);
}

.page-rooms .editorial-split {
  padding: var(--space-3xl) clamp(var(--space-md), 4vw, var(--space-lg));
}

.page-rooms .editorial-split__inner {
  display: grid;
  gap: var(--space-xl);
  max-width: var(--content-max);
  margin-inline: auto;
}

@media (min-width: 900px) {
  .page-rooms .editorial-split__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }
}

.page-rooms .intro .highlight-index {
  margin-top: var(--space-xl);
  padding-inline: clamp(var(--space-md), 4vw, var(--space-lg));
}

.page-rooms .card-3d {
  transform: none;
  box-shadow: none;
}

.page-rooms .amenities__grid--line {
  display: grid;
  gap: 0;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--color-border-refined);
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-surface);
}

@media (max-width: 639px) {
  .page-rooms .amenities__grid--line .amenities__item {
    border-right: none;
  }

  .page-rooms .amenities__grid--line .amenities__item:last-child {
    border-bottom: none;
  }
}

.page-rooms .amenities__grid--line .amenities__item {
  margin: 0;
  padding: var(--space-lg) var(--space-xl);
  border-bottom: 1px solid var(--color-border);
  border-right: 1px solid var(--color-border);
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  text-align: left;
  transform: none;
}

.page-rooms .amenities__grid--line .amenities__item:hover {
  background: var(--color-accent-soft);
  transform: none;
  border-color: var(--color-border);
}

.page-rooms .amenities__grid--line .amenities__icon {
  margin-bottom: var(--space-sm);
}

@media (min-width: 640px) {
  .page-rooms .amenities__grid--line {
    grid-template-columns: repeat(2, 1fr);
  }

  .page-rooms .amenities__grid--line .amenities__item:nth-child(2n) {
    border-right: none;
  }

  .page-rooms .amenities__grid--line .amenities__item:nth-last-child(-n + 2) {
    border-bottom: none;
  }
}

@media (min-width: 1024px) {
  .page-rooms .amenities__grid--line {
    grid-template-columns: repeat(3, 1fr);
  }

  .page-rooms .amenities__grid--line .amenities__item:nth-child(2n) {
    border-right: 1px solid var(--color-border);
  }

  .page-rooms .amenities__grid--line .amenities__item:nth-child(3n) {
    border-right: none;
  }

  .page-rooms .amenities__grid--line .amenities__item:nth-last-child(-n + 3) {
    border-bottom: none;
  }
}

.intro__inner--band {
  padding: var(--space-xl) var(--space-2xl);
  border: 1px solid var(--color-border-refined);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--color-surface) 0%, var(--color-accent-soft) 100%);
  box-shadow: none;
  backdrop-filter: none;
}

/* —— Amenities policies / mini FAQ —— */
.amenities-policies__inner--band {
  padding: var(--space-xl) var(--space-2xl);
  border: 1px solid var(--color-border-refined);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  box-shadow: none;
  transform: none;
}

.amenities-faq__item--flat {
  border: none;
  border-bottom: 1px solid var(--color-border);
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.amenities-faq__item--flat:last-child {
  border-bottom: none;
}

.page-dining .dining-hours__panel.glass-panel {
  background: var(--color-surface);
  border: 1px solid var(--color-border-refined);
  box-shadow: none;
  backdrop-filter: none;
}

.page-dining .layout-bento {
  margin-top: var(--space-xl);
}

/* —— Gallery: themed groups, captions (no glass card grid) —— */
.page-gallery section.gallery-section {
  padding: var(--space-lg) var(--space-lg) var(--space-2xl);
}

.page-gallery section.gallery-section + section.gallery-section {
  padding-top: 0;
}

.page-gallery [id^="gallery-"] {
  scroll-margin-top: calc(var(--header-height, 4.5rem) + 1.25rem);
}

.page-gallery .section-nav {
  padding: var(--space-md) var(--space-lg) var(--space-lg);
  border-bottom: 1px solid var(--color-border-refined);
}

.page-gallery .section-nav .intro__text {
  text-align: center;
}

.page-gallery .gallery-group {
  padding-top: var(--space-xl);
}

.page-gallery .gallery-group__header {
  max-width: var(--content-max);
  margin: 0 auto var(--space-xl);
}

.page-gallery .gallery-group__title {
  margin: 0 0 var(--space-sm);
  font-family: var(--font-serif);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 500;
}

.page-gallery .gallery-group__lead {
  margin: 0;
  max-width: 42rem;
  color: var(--color-text-muted);
  line-height: 1.65;
}

.page-gallery .gallery-bento {
  margin-bottom: var(--space-2xl);
}

.page-gallery .gallery-figure {
  margin: 0;
}

.page-gallery .gallery-item.gallery-item--cover {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 12rem;
  padding: 0;
  border: none;
  border-radius: inherit;
  background: transparent;
  cursor: pointer;
  overflow: hidden;
  box-shadow: none;
  transform: none;
  aspect-ratio: unset;
}

.page-gallery .gallery-item--cover:hover {
  box-shadow: none;
  transform: none;
}

.page-gallery .gallery-item--cover img {
  width: 100%;
  height: 100%;
  min-height: 12rem;
  object-fit: cover;
  display: block;
  transition: transform 0.65s var(--ease-luxury);
}

.page-gallery .gallery-item--cover:hover img {
  transform: scale(1.03);
}

.page-gallery .gallery-bento .bento-cell {
  min-height: 14rem;
}

@media (min-width: 768px) {
  .page-gallery .gallery-bento .layout-bento__a {
    min-height: 22rem;
  }

  .page-gallery .gallery-bento .layout-bento__b,
  .page-gallery .gallery-bento .layout-bento__c {
    min-height: 11rem;
  }
}

.page-gallery .bento-cell .bento-cell__caption {
  z-index: 1;
  pointer-events: none;
}

.page-gallery .bento-cell .gallery-item--cover {
  position: absolute;
  inset: 0;
}

.page-gallery .room-row__media.gallery-figure {
  position: relative;
  aspect-ratio: 4 / 3;
}

.page-gallery .room-row__media .gallery-item--cover {
  position: absolute;
  inset: 0;
  min-height: 0;
}

.page-gallery .gallery-item__caption {
  margin: var(--space-sm) 0 0;
  font-size: 0.8125rem;
  color: var(--color-text-muted);
  line-height: 1.45;
}

.page-gallery .gallery-item__caption--inline {
  margin-bottom: 0;
  font-size: 0.75rem;
  font-style: italic;
}

.page-gallery .gallery-feature {
  max-width: var(--content-max);
  margin: 0 auto;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.page-gallery .gallery-item--wide {
  aspect-ratio: 16 / 9;
  min-height: 14rem;
}

.page-gallery .gallery-feature__caption {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm) var(--space-md);
  align-items: baseline;
  padding: var(--space-md) var(--space-lg);
  border: 1px solid var(--color-border-refined);
  border-top: none;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  background: var(--color-surface);
}

.page-gallery .gallery-feature__tag {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-champagne);
}

.page-gallery .gallery-feature__text {
  font-size: 0.9375rem;
  color: var(--color-text-muted);
}

.page-gallery .gallery-feature--compact .gallery-item--wide {
  aspect-ratio: 16 / 8;
}

.page-gallery .gallery-strip {
  display: grid;
  gap: var(--space-md);
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .page-gallery .gallery-strip {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 900px) {
  .page-gallery .gallery-strip {
    grid-template-columns: repeat(3, 1fr);
  }
}

.page-gallery .gallery-strip .dining-gallery__item {
  display: flex;
  flex-direction: column;
  overflow: visible;
  aspect-ratio: auto;
  border: none;
  border-radius: 0;
}

.page-gallery .gallery-strip .gallery-item--cover {
  border: 1px solid var(--color-border-refined);
  border-radius: var(--radius-md);
  aspect-ratio: 4 / 3;
  min-height: 10rem;
}

.page-gallery .highlight-index__media.gallery-figure {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.page-gallery .highlight-index__media .gallery-item--cover {
  position: relative;
  aspect-ratio: 4 / 3;
  min-height: 0;
  border: 1px solid var(--color-border-refined);
  border-radius: var(--radius-md);
}

.page-gallery .highlight-index__media .gallery-item__caption {
  margin-top: var(--space-sm);
}

.page-gallery .gallery-highlight-index {
  max-width: var(--content-max);
  margin-inline: auto;
}

.page-gallery .gallery-photographer .gallery-section__note {
  margin: var(--space-lg) 0 0;
}

.page-gallery .gallery-photographer code {
  font-size: 0.8125rem;
}
