.gallery-page { overflow: hidden; }
.gallery-page .gallery-hero { position: relative; isolation: isolate; display: flex; min-height: 42.5rem; align-items: end; overflow: hidden; background: var(--color-panel); }
.gallery-page .gallery-hero::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(16,13,16,.88), rgba(16,13,16,.5) 52%, rgba(16,13,16,.14)), linear-gradient(0deg, rgba(16,13,16,.94), transparent 64%); content: ""; }
.gallery-page .gallery-hero__media { position: absolute; z-index: -2; inset: 0; }
.gallery-page .gallery-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 72% center; }
.gallery-page .gallery-hero__container { width: min(100% - (var(--gutter) * 2), var(--container)); padding-block: var(--space-9); }
.gallery-page .gallery-hero__panel { display: flex; width: min(46%, 35rem); min-width: 0; flex-direction: column; gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--color-line-bronze); border-radius: var(--radius-xl); background: var(--color-frosted); box-shadow: var(--shadow-inner-crimson), var(--shadow-panel); }
.gallery-page .gallery-hero__panel > * { min-width: 0; margin: 0; }
.gallery-page .gallery-hero h1 span { color: var(--color-bronze-highlight); }
.gallery-page .gallery-hero__lead { width: min(100%, 50ch); color: var(--color-white); font-size: var(--text-xl); line-height: var(--leading-lead); }
.gallery-page .gallery-hero__actions { display: flex; width: 100%; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.gallery-page .gallery-hero__actions > * { min-width: 0; }
.gallery-page .gallery-text-link { display: inline-block; color: var(--color-bronze-highlight); font-size: var(--text-sm); font-weight: 700; letter-spacing: .04em; line-height: 1.4; text-decoration: none; }
.gallery-page .gallery-text-link::after { display: block; width: 100%; height: 1px; margin-top: .28em; background: var(--color-crimson); content: ""; transform: scaleX(0); transform-origin: left; transition: transform var(--transition-base); }
.gallery-page .gallery-text-link:hover::after, .gallery-page .gallery-text-link:focus-visible::after { transform: scaleX(1); }
.gallery-page .gallery-index { background: linear-gradient(180deg, rgba(27,25,28,.95), rgba(16,13,16,0)); }
.gallery-page .gallery-index__intro { width: min(55%, 52ch); min-width: 0; }
.gallery-page .gallery-index__intro p:last-child { max-width: 52ch; }
.gallery-page .gallery-index__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.gallery-page .gallery-index__item { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--color-bronze); text-decoration: none; }
.gallery-page .gallery-index__item > * { min-width: 0; margin: 0; }
.gallery-page .gallery-index__item h3 { font-size: clamp(1.65rem, 2.4vw, 2.2rem); }
.gallery-page .gallery-index__item p { max-width: 26ch; font-size: var(--text-sm); }
.gallery-page .gallery-index__number { color: var(--color-bronze); font-size: var(--text-sm); font-weight: 700; letter-spacing: .12em; }
.gallery-page .gallery-index__item--emerald { border-top-color: var(--color-emerald-light); }
.gallery-page .gallery-frame { position: relative; min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--color-line-bronze); border-radius: var(--radius-md); background: var(--color-panel); }
.gallery-page .gallery-frame img { width: 100%; height: 100%; max-width: 100%; object-fit: cover; transition: transform var(--transition-base); }
@media (hover: hover) and (pointer: fine) { .gallery-page .gallery-frame:hover img { transform: scale(1.035); } }
.gallery-page .gallery-frame figcaption { position: absolute; right: var(--space-3); bottom: var(--space-3); padding: .3rem .5rem; background: rgba(16,13,16,.76); color: var(--color-muted); font-size: var(--text-xs); letter-spacing: .1em; text-transform: uppercase; }
.gallery-page .gallery-suites__top, .gallery-page .gallery-suites__lower { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-6); }
.gallery-page .gallery-suites__top > *, .gallery-page .gallery-suites__lower > * { min-width: 0; }
.gallery-page .gallery-suites__intro { display: flex; min-width: 0; flex-direction: column; align-self: center; gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--color-line-bronze); border-radius: var(--radius-lg); background: var(--color-frosted); box-shadow: var(--shadow-inner-crimson), var(--shadow-panel); }
.gallery-page .gallery-suites__intro > * { min-width: 0; margin: 0; }
.gallery-page .gallery-suites__intro .lead { max-width: 50ch; }
.gallery-page .gallery-suites__primary-image { min-height: 37rem; }
.gallery-page .gallery-suites__lower { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); margin-top: var(--space-6); }
.gallery-page .gallery-suites__wide-caption { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); min-width: 0; }
.gallery-page .gallery-suites__wide-placeholder { min-height: 17rem; border: 1px solid var(--color-line); border-radius: var(--radius-md); background: linear-gradient(135deg, rgba(31,89,74,.18), rgba(27,25,28,.9)), url('/assets/images/gallery-suite-bedroom.webp') center / cover; }
.gallery-page .gallery-suites__wide-caption > div:last-child { width: min(100%, 42ch); }
.gallery-page .gallery-suites__detail { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); min-width: 0; }
.gallery-page .gallery-suites__detail .gallery-frame { min-height: 24rem; }
.gallery-page .gallery-suites__detail-copy { width: min(100%, 34ch); min-width: 0; }
.gallery-page .gallery-lounge__feature { position: relative; min-width: 0; }
.gallery-page .gallery-lounge__image { min-height: 42rem; border-radius: var(--radius-lg); }
.gallery-page .gallery-lounge__statement { position: absolute; bottom: var(--space-6); left: max(var(--gutter), calc((100% - var(--container)) / 2)); display: flex; width: min(38%, 31rem); min-width: 0; flex-direction: column; gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--color-line-bronze); border-radius: var(--radius-lg); background: var(--color-frosted); box-shadow: var(--shadow-inner-crimson), var(--shadow-panel); }
.gallery-page .gallery-lounge__statement > * { min-width: 0; margin: 0; }
.gallery-page .gallery-lounge__statement p:last-child { max-width: 42ch; }
.gallery-page .gallery-lounge__notes { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-6); margin-top: var(--space-6); }
.gallery-page .gallery-lounge__notes > * { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); }
.gallery-page .gallery-lounge__notes > * > * { min-width: 0; margin: 0; }
.gallery-page .gallery-lounge__whiskey { width: min(100%, 38ch); }
.gallery-page .gallery-lounge__route { width: min(100%, 38ch); justify-self: end; padding: var(--space-5); border: 1px solid var(--color-line); background: var(--color-panel); }
.gallery-page .gallery-dining__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-6); }
.gallery-page .gallery-dining__grid > * { min-width: 0; }
.gallery-page .gallery-dining__intro { width: min(100%, 44ch); }
.gallery-page .gallery-dining__intro .lead { max-width: 44ch; }
.gallery-page .gallery-dining__visual { display: flex; min-width: 0; flex-direction: column; gap: var(--space-5); }
.gallery-page .gallery-dining__visual > * { min-width: 0; }
.gallery-page .gallery-dining__visual .gallery-frame { min-height: 28rem; }
.gallery-page .gallery-dining__caption { width: min(100%, 40ch); }
.gallery-page .gallery-dining__caption p { max-width: 40ch; }
.gallery-page .gallery-dining__action { width: min(100%, 32ch); }
.gallery-page .gallery-casino { background: linear-gradient(135deg, rgba(31,89,74,.12), transparent 48%), var(--color-panel); }
.gallery-page .gallery-casino__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-6); }
.gallery-page .gallery-casino__grid > * { min-width: 0; }
.gallery-page .gallery-casino__context { display: flex; min-width: 0; flex-direction: column; align-self: start; gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--color-line-bronze); border-left: 3px solid var(--color-emerald-light); border-radius: var(--radius-lg); background: var(--color-frosted); box-shadow: var(--shadow-inner-crimson), var(--shadow-panel); }
.gallery-page .gallery-casino__context > * { min-width: 0; margin: 0; }
.gallery-page .gallery-casino__context .lead { max-width: 52ch; }
.gallery-page .gallery-casino__image { min-height: 29rem; }
.gallery-page .gallery-casino__caption, .gallery-page .gallery-casino__route { display: flex; min-width: 0; flex-direction: column; gap: var(--space-3); }
.gallery-page .gallery-casino__caption > *, .gallery-page .gallery-casino__route > * { min-width: 0; margin: 0; }
.gallery-page .gallery-casino__caption { width: min(100%, 38ch); }
.gallery-page .gallery-casino__route { width: min(100%, 38ch); padding-top: var(--space-4); border-top: 1px solid var(--color-emerald-light); }
.gallery-page .gallery-architecture__heading { width: min(100%, 50ch); margin-inline: auto; text-align: center; }
.gallery-page .gallery-architecture__heading .eyebrow { justify-content: center; }
.gallery-page .gallery-architecture__heading .lead { max-width: 50ch; }
.gallery-page .gallery-architecture__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); margin-top: var(--space-7); }
.gallery-page .gallery-architecture__grid > * { min-width: 0; }
.gallery-page .gallery-architecture__observations { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); align-self: center; }
.gallery-page .gallery-architecture__observations > article { min-width: 0; padding-top: var(--space-4); border-top: 1px solid var(--color-bronze); }
.gallery-page .gallery-architecture__observations .gallery-architecture__rhythm { border-top-color: var(--color-emerald-light); }
.gallery-page .gallery-architecture__observations h3 { font-size: clamp(1.6rem, 2vw, 2rem); }
.gallery-page .gallery-architecture__observations p { max-width: 26ch; font-size: var(--text-sm); }
.gallery-page .gallery-architecture__image { min-height: 30rem; }
.gallery-page .gallery-closing { background: radial-gradient(circle at 70% 50%, rgba(126,39,50,.18), transparent 35rem); }
.gallery-page .gallery-closing__layout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-6); }
.gallery-page .gallery-closing__layout > * { min-width: 0; }
.gallery-page .gallery-closing__panel { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); padding: var(--space-7); border: 1px solid var(--color-line-bronze); border-radius: var(--radius-lg); background: var(--color-panel-raised); box-shadow: var(--shadow-inner-crimson), var(--shadow-card); }
.gallery-page .gallery-closing__panel > * { min-width: 0; margin: 0; }
.gallery-page .gallery-closing__panel > p { max-width: 46ch; }
.gallery-page .gallery-closing__actions { display: flex; width: 100%; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--space-4); }
.gallery-page .gallery-closing__actions > * { min-width: 0; }
.gallery-page .gallery-note { padding: 0 0 var(--space-8); }
.gallery-page .gallery-note .container { border-top: 1px solid var(--color-line); padding-top: var(--space-5); }
.gallery-page .gallery-note p { width: min(100%, 70ch); margin: 0; color: var(--color-muted); font-size: var(--text-sm); line-height: 1.55; }
@supports (backdrop-filter: blur(1px)) { .gallery-page .gallery-hero__panel, .gallery-page .gallery-suites__intro, .gallery-page .gallery-lounge__statement, .gallery-page .gallery-casino__context { backdrop-filter: blur(18px); } }
@media (max-width: 56.25rem) { .gallery-page .gallery-hero { min-height: 35rem; } .gallery-page .gallery-hero__container { padding-block: var(--space-6); } .gallery-page .gallery-hero__panel { width: 100%; } .gallery-page .gallery-index__intro { width: 100%; } .gallery-page .gallery-index__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gallery-page .gallery-suites__top, .gallery-page .gallery-suites__lower, .gallery-page .gallery-lounge__notes, .gallery-page .gallery-dining__grid, .gallery-page .gallery-casino__grid, .gallery-page .gallery-architecture__grid { grid-template-columns: minmax(0, 1fr); } .gallery-page .gallery-suites__top > .gallery-suites__primary-image { order: 1; } .gallery-page .gallery-suites__top > .gallery-suites__intro { order: 2; } .gallery-page .gallery-suites__primary-image { min-height: 31rem; } .gallery-page .gallery-suites__wide-caption { order: 1; } .gallery-page .gallery-suites__detail { order: 2; } .gallery-page .gallery-lounge__statement { position: static; width: min(100% - (var(--gutter) * 2), var(--container)); margin: var(--space-5) auto 0; background: var(--color-panel); } .gallery-page .gallery-lounge__image { min-height: 31rem; border-radius: 0; } .gallery-page .gallery-lounge__route { justify-self: start; } .gallery-page .gallery-dining__intro { width: 100%; } .gallery-page .gallery-dining__visual .gallery-frame { min-height: 25rem; } .gallery-page .gallery-casino__context { order: 1; } .gallery-page .gallery-casino__image { order: 2; } .gallery-page .gallery-casino__caption { order: 3; } .gallery-page .gallery-casino__route { order: 4; } .gallery-page .gallery-architecture__image { order: 1; } .gallery-page .gallery-architecture__observations { order: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 47.5rem) { .gallery-page .gallery-hero { min-height: 31.25rem; } .gallery-page .gallery-hero::after { background: linear-gradient(0deg, rgba(16,13,16,.96), rgba(16,13,16,.56) 76%); } .gallery-page .gallery-hero__panel { padding: 1.125rem; background: rgba(27,25,28,.94); } .gallery-page .gallery-hero__lead { font-size: 1rem; } .gallery-page .gallery-closing__layout { grid-template-columns: minmax(0, 1fr); } .gallery-page .gallery-closing__space { display: none; } .gallery-page .gallery-closing__panel { padding: var(--space-5); } }
@media (max-width: 38.75rem) { .gallery-page .gallery-index__grid, .gallery-page .gallery-architecture__observations { grid-template-columns: minmax(0, 1fr); } .gallery-page .gallery-index__item p, .gallery-page .gallery-architecture__observations p { max-width: 100%; } .gallery-page .gallery-suites__primary-image, .gallery-page .gallery-lounge__image, .gallery-page .gallery-dining__visual .gallery-frame, .gallery-page .gallery-casino__image, .gallery-page .gallery-architecture__image { min-height: 0; aspect-ratio: 4 / 3; } .gallery-page .gallery-suites__detail .gallery-frame { min-height: 0; aspect-ratio: 4 / 5; } .gallery-page .gallery-suites__wide-placeholder { min-height: 0; aspect-ratio: 4 / 3; } .gallery-page .gallery-lounge__statement { width: min(100% - (var(--gutter) * 2), var(--container)); padding: 1.125rem; } .gallery-page .gallery-hero__actions, .gallery-page .gallery-closing__actions { flex-direction: column; align-items: stretch; } .gallery-page .gallery-hero__actions .button, .gallery-page .gallery-closing__actions .button { width: 100%; } .gallery-page .gallery-hero h1 { font-size: clamp(3rem, 14vw, 3.75rem); } }
@media (prefers-reduced-motion: reduce) { .gallery-page .gallery-frame img, .gallery-page .gallery-text-link::after { transition: none; } .gallery-page .gallery-text-link::after { transform: none; } .gallery-page .gallery-frame:hover img { transform: none; } }

/* mobile-photo-center */
@media (max-width: 56.25rem) {
  img,
  video {
    object-position: center !important;
  }

  .image-frame,
  .media-frame,
  .card__media,
  [class*='__media'] {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    justify-self: stretch;
    overflow: hidden;
    grid-column: 1 / -1;
  }

  .image-frame img,
  .media-frame img,
  .media-frame video,
  .card__media img,
  [class*='__media'] img,
  [class*='hero'] img,
  [class*='hero__image'] {
    width: 100%;
    height: 100%;
    max-width: none;
    min-width: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center !important;
  }
}
