/* Aurelia Hotel Booking room detail. Generated file; edit assets/src/css/hotel-booking-room-detail.css. */
/*
 * #0122.5 - Aurelia Room Detail Page.
 *
 * Presentation is scoped to Aurelia and Hotel Booking's public Room Detail
 * roots. Room, gallery, availability, pricing, policies, reviews, related-room
 * data and action URLs remain plugin-owned.
 */

.aurelia-site .hb-room-detail {
    /*
     * Room Detail can be rendered inside Aurelia's narrow editorial entry
     * (including the Free-owned virtual Search document). Use the same
     * containing-block-safe escape as Search UX: size from the viewport, then
     * offset by half the difference from the current content column. A plain
     * `margin: auto` cannot centre an element wider than its containing block
     * and pushes the price/sidebar beyond the right edge instead.
     */
    --aurelia-room-detail-width: min(calc(100vw - (2 * var(--hb-theme-container-gutter))), var(--hb-theme-container-wide));
    --hb-detail-ink: var(--hb-theme-color-charcoal);
    --hb-detail-muted: var(--hb-theme-color-text-muted);
    --hb-detail-line: var(--hb-theme-color-border);
    --hb-detail-soft: var(--hb-theme-color-surface-alt);
    --hb-detail-accent: var(--hb-theme-color-champagne-dark);
    --hb-detail-accent-dark: var(--hb-theme-color-primary-hover);
    --hb-detail-success: var(--hb-theme-color-success);
    --hb-detail-error: var(--hb-theme-color-error);

    position: relative;
    left: auto;
    width: var(--aurelia-room-detail-width);
    max-width: none;
    margin: 0 calc((100% - var(--aurelia-room-detail-width)) / 2) var(--hb-theme-spacing-section);
    color: var(--hb-theme-color-text);
    font-family: var(--hb-theme-typography-family-body);
    font-size: var(--hb-theme-typography-size-base);
    line-height: var(--hb-theme-typography-line-height-body);
    transform: none;
}

.aurelia-site .hb-room-detail *,
.aurelia-site .hb-room-detail *::before,
.aurelia-site .hb-room-detail *::after {
    box-sizing: border-box;
}

.aurelia-site .hb-room-detail a {
    color: var(--hb-theme-color-primary);
}

.aurelia-site .hb-room-detail__breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: var(--hb-theme-spacing-sm);
    align-items: center;
    margin: 0 0 var(--hb-theme-spacing-xl);
    color: var(--hb-theme-color-text-muted);
    font-size: var(--hb-theme-typography-size-xs);
    font-weight: var(--hb-theme-typography-weight-medium);
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.aurelia-site .hb-room-detail__breadcrumb a {
    color: inherit;
    text-decoration: none;
}

.aurelia-site .hb-room-detail__breadcrumb a:hover {
    color: var(--hb-theme-color-primary);
}

.aurelia-site .hb-room-detail__breadcrumb span[aria-hidden] {
    color: var(--hb-theme-color-champagne);
    font-size: 1.1rem;
}

.aurelia-site .hb-room-detail__header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(13rem, auto);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: end;
    margin-bottom: clamp(2rem, 4vw, 3.5rem);
    padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
    border-bottom: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
}

.aurelia-site .hb-room-detail__heading {
    min-width: 0;
}

.aurelia-site .hb-room-detail__eyebrow,
.aurelia-site .hb-room-detail__booking-eyebrow,
.aurelia-site .hb-related-room__type,
.aurelia-site .hb-room-detail__related-heading > div > span,
.aurelia-site .hb-room-reviews__heading > div > span,
.aurelia-site .hb-room-policies__heading > div > span {
    display: block;
    margin: 0 0 var(--hb-theme-spacing-sm);
    color: var(--hb-theme-color-champagne-dark);
    font-size: var(--hb-theme-typography-size-xs);
    font-weight: var(--hb-theme-typography-weight-semibold);
    letter-spacing: var(--hb-theme-typography-tracking-label);
    text-transform: uppercase;
}

.aurelia-site .hb-room-detail__title {
    max-width: 12ch;
    margin: 0;
    color: var(--hb-theme-color-charcoal);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: clamp(3.25rem, 7.4vw, 7.5rem);
    font-weight: var(--hb-theme-typography-weight-regular);
    letter-spacing: -0.045em;
    line-height: 0.9;
    text-wrap: balance;
}

.aurelia-site .hb-room-detail__capacity {
    margin: var(--hb-theme-spacing-lg) 0 0;
    color: var(--hb-theme-color-text-muted);
    font-size: var(--hb-theme-typography-size-sm);
}

.aurelia-site .hb-room-detail__review-shortcut {
    display: inline-flex;
    gap: var(--hb-theme-spacing-xs);
    align-items: center;
    min-height: var(--hb-theme-interaction-target-min);
    margin-top: var(--hb-theme-spacing-sm);
    color: var(--hb-theme-color-charcoal) !important;
    font-size: var(--hb-theme-typography-size-sm);
    text-decoration: none;
}

.aurelia-site .hb-room-detail__review-shortcut > span:first-child {
    color: var(--hb-theme-color-champagne-dark);
    font-size: 1.1rem;
}

.aurelia-site .hb-room-detail__review-shortcut > span:last-child {
    color: var(--hb-theme-color-text-muted);
    text-decoration: underline;
    text-decoration-color: var(--hb-theme-color-champagne);
    text-underline-offset: 0.25em;
}

.aurelia-site .hb-room-detail__price {
    display: grid;
    min-width: 13rem;
    justify-items: end;
    padding: var(--hb-theme-spacing-sm) 0 var(--hb-theme-spacing-sm) var(--hb-theme-spacing-xl);
    border-left: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
    color: var(--hb-theme-color-text-muted);
    line-height: 1.2;
}

.aurelia-site .hb-room-detail__price > span,
.aurelia-site .hb-room-detail__price > small {
    font-size: var(--hb-theme-typography-size-xs);
}

.aurelia-site .hb-room-detail__price strong {
    margin: var(--hb-theme-spacing-xxs) 0;
    color: var(--hb-theme-color-charcoal);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: clamp(2.25rem, 4vw, 3.6rem);
    font-weight: var(--hb-theme-typography-weight-regular);
    letter-spacing: -0.04em;
}

.aurelia-site .hb-room-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 24rem);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: start;
}

.aurelia-site .hb-room-detail__main {
    display: grid;
    gap: 0;
    min-width: 0;
}

/* Editorial gallery: an uncropped photograph with horizontal thumbnails. */
.aurelia-site .hb-detail-gallery {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--hb-theme-spacing-md);
    min-width: 0;
    margin-bottom: clamp(3rem, 6vw, 5.5rem);
}

.aurelia-site .hb-detail-gallery__stage {
    position: relative;
    display: block;
    grid-column: 1;
    grid-row: 1;
    overflow: hidden;
    width: 100%;
    max-width: none;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: var(--hb-theme-radius-none);
    background: var(--hb-theme-color-charcoal-soft);
    box-shadow: var(--aurelia-shadow-lifted);
    cursor: zoom-in;
}

/* The canonical template adds a decorative gradient; Aurelia keeps the photo unobscured. */
.aurelia-site .hb-detail-gallery__stage::after {
    display: none !important;
    content: none !important;
}

.aurelia-site .hb-detail-gallery__main {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0;
    aspect-ratio: auto;
    object-fit: contain;
    transition: filter var(--hb-theme-interaction-transition-fast);
}

.aurelia-site .hb-detail-gallery__stage:hover .hb-detail-gallery__main {
    filter: brightness(0.97);
}

.aurelia-site .hb-detail-gallery__thumbs {
    display: flex !important;
    grid-column: 1;
    grid-row: 2;
    gap: var(--hb-theme-spacing-sm);
    width: 100%;
    max-width: 100%;
    max-height: none;
    margin: 0;
    padding: 0 0 var(--hb-theme-spacing-xs);
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
    scrollbar-width: thin;
}

.aurelia-site .hb-detail-gallery__thumb {
    display: block !important;
    flex: 0 0 clamp(5rem, 9vw, 6.5rem);
    overflow: hidden;
    width: clamp(5rem, 9vw, 6.5rem) !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 0;
    aspect-ratio: 4 / 3;
    margin: 0 !important;
    padding: 0;
    border: var(--hb-theme-border-width) solid transparent;
    border-radius: var(--hb-theme-radius-none);
    background: var(--hb-theme-color-surface-alt);
    opacity: 0.62;
    cursor: pointer;
    scroll-snap-align: start;
    transition: opacity var(--hb-theme-interaction-transition-fast), border-color var(--hb-theme-interaction-transition-fast);
}

.aurelia-site .hb-detail-gallery__thumb img {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100% !important;
    border-radius: 0;
    object-fit: cover;
}

.aurelia-site .hb-detail-gallery__thumb:is(:hover, :focus-visible, .is-active) {
    border-color: var(--hb-theme-color-champagne-dark);
    opacity: 1;
}

.aurelia-site .hb-detail-gallery__placeholder {
    display: grid;
    grid-column: 1 / -1;
    min-height: clamp(24rem, 48vw, 42rem);
    place-items: center;
    align-content: center;
    gap: var(--hb-theme-spacing-sm);
    color: var(--hb-theme-color-text-muted);
    background:
        radial-gradient(circle at 72% 24%, rgba(230, 215, 184, 0.32), transparent 23%),
        linear-gradient(145deg, var(--hb-theme-color-surface-alt), var(--hb-theme-color-ivory-deep));
    border: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
    border-radius: var(--hb-theme-radius-none);
}

.aurelia-site .hb-detail-gallery__placeholder span {
    color: var(--hb-theme-color-champagne-dark);
    font-size: 3rem;
}

/* Room narrative and canonical details. */
.aurelia-site .hb-room-detail__section {
    padding: clamp(2rem, 4vw, 4rem) 0;
    background: transparent;
    border: 0;
    border-top: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
    border-radius: var(--hb-theme-radius-none);
}

.aurelia-site .hb-room-detail__section-heading {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr);
    gap: var(--hb-theme-spacing-md);
    align-items: baseline;
    margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.aurelia-site .hb-room-detail__section-heading h2,
.aurelia-site .hb-room-policies__heading h2 {
    margin: 0;
    color: var(--hb-theme-color-charcoal);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: clamp(2rem, 4vw, 3.4rem);
    font-weight: var(--hb-theme-typography-weight-regular);
    letter-spacing: var(--hb-theme-typography-tracking-heading);
}

.aurelia-site .hb-room-detail__section-number {
    color: var(--hb-theme-color-champagne-dark);
    font-size: var(--hb-theme-typography-size-xs);
    font-weight: var(--hb-theme-typography-weight-semibold);
    letter-spacing: var(--hb-theme-typography-tracking-label);
}

.aurelia-site .hb-room-detail__description {
    max-width: var(--hb-theme-container-reading);
    margin-left: calc(3.25rem + var(--hb-theme-spacing-md));
    color: var(--hb-theme-color-charcoal-soft);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: 1.6;
}

.aurelia-site .hb-room-detail__description > :first-child {
    margin-top: 0;
}

.aurelia-site .hb-room-detail__description > :last-child {
    margin-bottom: 0;
}

.aurelia-site .hb-room-detail__facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--hb-theme-border-width);
    margin: 0;
    padding: var(--hb-theme-border-width);
    color: var(--hb-theme-color-primary-contrast);
    background: rgba(230, 215, 184, 0.24);
}

.aurelia-site .hb-room-detail__facts > div {
    position: relative;
    min-width: 0;
    padding: clamp(1.25rem, 3vw, 2rem);
    background: var(--hb-theme-color-charcoal);
    border-radius: 0;
}

.aurelia-site .hb-room-detail__facts > div::before {
    display: none;
}

.aurelia-site .hb-room-detail__facts dt {
    color: #BDB5A9;
    font-size: var(--hb-theme-typography-size-xs);
    font-weight: var(--hb-theme-typography-weight-medium);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.aurelia-site .hb-room-detail__facts dd {
    margin: var(--hb-theme-spacing-sm) 0 0;
    overflow-wrap: anywhere;
    color: var(--hb-theme-color-primary-contrast);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: clamp(1.5rem, 3vw, 2.3rem);
    font-weight: var(--hb-theme-typography-weight-regular);
}

.aurelia-site .hb-room-detail__amenities {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 var(--hb-theme-spacing-xl);
    margin: 0 0 0 calc(3.25rem + var(--hb-theme-spacing-md));
    padding: 0;
    list-style: none;
}

.aurelia-site .hb-room-detail__amenities li {
    display: flex;
    gap: var(--hb-theme-spacing-sm);
    align-items: center;
    min-width: 0;
    min-height: 3.5rem;
    padding: var(--hb-theme-spacing-sm) 0;
    color: var(--hb-theme-color-charcoal-soft);
    background: transparent;
    border-bottom: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
    border-radius: 0;
    font-size: var(--hb-theme-typography-size-sm);
}

.aurelia-site .hb-room-detail__amenities li span {
    display: inline-grid;
    width: 1.6rem;
    height: 1.6rem;
    flex: none;
    place-items: center;
    color: var(--hb-theme-color-success);
    background: transparent;
    border: var(--hb-theme-border-width) solid var(--hb-theme-color-champagne);
    border-radius: 50%;
    font-size: 0.68rem;
    font-weight: var(--hb-theme-typography-weight-bold);
}

/* Prominent, sticky canonical booking action. */
.aurelia-site .hb-room-detail__sidebar {
    position: sticky;
    top: var(--hb-theme-spacing-lg);
    display: grid;
    gap: var(--hb-theme-spacing-md);
    min-width: 0;
}

.admin-bar.aurelia-site .hb-room-detail__sidebar {
    top: calc(32px + var(--hb-theme-spacing-lg));
}

.aurelia-site .hb-room-detail__booking-card {
    padding: clamp(1.75rem, 3vw, 2.5rem);
    color: #EDE7DC;
    background: var(--hb-theme-color-charcoal);
    border: var(--hb-theme-border-width) solid rgba(230, 215, 184, 0.32);
    border-radius: var(--hb-theme-radius-none);
    box-shadow: var(--aurelia-shadow-lifted);
}

.aurelia-site .hb-room-detail__booking-card-heading {
    margin-bottom: var(--hb-theme-spacing-xl);
}

.aurelia-site .hb-room-detail__booking-card-heading h2 {
    margin: var(--hb-theme-spacing-sm) 0;
    color: var(--hb-theme-color-primary-contrast);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: clamp(2rem, 3vw, 2.75rem);
    font-weight: var(--hb-theme-typography-weight-regular);
}

.aurelia-site .hb-room-detail__booking-card-heading p {
    margin: 0;
    color: #BDB5A9;
    font-size: var(--hb-theme-typography-size-sm);
}

.aurelia-site .hb-availability-form--room-detail .hb-availability-form__action {
    grid-column: 1 / -1;
    min-width: 0;
}

.aurelia-site .hb-availability-form--room-detail .hb-availability-form__submit {
    width: 100%;
    min-width: 0;
    min-height: 3.5rem;
    padding: 0.875rem var(--hb-theme-spacing-lg);
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
}

.aurelia-site .hb-availability-form--room-detail .hb-availability-form__submit:is(:disabled, [aria-busy="true"]) {
    cursor: wait;
    opacity: var(--hb-theme-interaction-disabled-opacity);
}

.aurelia-site .hb-room-detail__availability-badge {
    display: inline-flex;
    gap: var(--hb-theme-spacing-xs);
    align-items: center;
    min-height: 2rem;
    padding: var(--hb-theme-spacing-xxs) var(--hb-theme-spacing-sm);
    border-radius: var(--hb-theme-radius-sm);
    font-size: var(--hb-theme-typography-size-xs);
    font-weight: var(--hb-theme-typography-weight-semibold);
    letter-spacing: 0.04em;
}

.aurelia-site .hb-room-detail__availability-badge--available {
    color: #DCEBDF;
    background: rgba(55, 107, 74, 0.52);
}

.aurelia-site .hb-room-detail__availability-badge--unavailable {
    color: #F5D7D3;
    background: rgba(154, 51, 45, 0.52);
}

.aurelia-site .hb-room-detail__stay-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    color: var(--hb-theme-color-primary-contrast);
    background: transparent;
    border: var(--hb-theme-border-width) solid rgba(230, 215, 184, 0.24);
    border-radius: 0;
}

.aurelia-site .hb-room-detail__stay-summary > div {
    min-width: 0;
    padding: var(--hb-theme-spacing-md);
    border-bottom: var(--hb-theme-border-width) solid rgba(230, 215, 184, 0.24);
}

.aurelia-site .hb-room-detail__stay-summary > div:nth-child(odd) {
    border-right: var(--hb-theme-border-width) solid rgba(230, 215, 184, 0.24);
}

.aurelia-site .hb-room-detail__stay-summary > div:nth-last-child(-n + 2) {
    border-bottom: 0;
}

.aurelia-site .hb-room-detail__stay-summary dt,
.aurelia-site .hb-room-detail__estimated-total > span,
.aurelia-site .hb-room-detail__estimated-total small,
.aurelia-site .hb-room-detail__starting-price span,
.aurelia-site .hb-room-detail__starting-price small {
    color: #BDB5A9;
    font-size: var(--hb-theme-typography-size-xs);
}

.aurelia-site .hb-room-detail__stay-summary dd {
    margin: var(--hb-theme-spacing-xxs) 0 0;
    overflow-wrap: anywhere;
    color: var(--hb-theme-color-primary-contrast);
    font-size: var(--hb-theme-typography-size-sm);
    font-weight: var(--hb-theme-typography-weight-semibold);
}

.aurelia-site .hb-room-detail__inventory-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--hb-theme-spacing-xs) var(--hb-theme-spacing-sm);
    justify-content: space-between;
    margin-top: var(--hb-theme-spacing-md);
    color: #BDB5A9;
    font-size: var(--hb-theme-typography-size-xs);
}

.aurelia-site .hb-room-detail__estimated-total,
.aurelia-site .hb-room-detail__starting-price {
    display: grid;
    gap: var(--hb-theme-spacing-xxs);
    margin-top: var(--hb-theme-spacing-md);
    padding: var(--hb-theme-spacing-lg) 0;
    background: transparent;
    border-top: var(--hb-theme-border-width) solid rgba(230, 215, 184, 0.24);
    border-bottom: var(--hb-theme-border-width) solid rgba(230, 215, 184, 0.24);
    border-radius: 0;
}

.aurelia-site .hb-room-detail__estimated-total strong,
.aurelia-site .hb-room-detail__starting-price strong {
    color: var(--hb-theme-color-champagne-light);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: clamp(2.25rem, 4vw, 3.25rem);
    font-weight: var(--hb-theme-typography-weight-regular);
    letter-spacing: -0.04em;
}

.aurelia-site .hb-room-detail__nightly-prices {
    margin-top: var(--hb-theme-spacing-md);
    padding: var(--hb-theme-spacing-md);
    color: #EDE7DC;
    background: rgba(255, 253, 248, 0.06);
    border: var(--hb-theme-border-width) solid rgba(230, 215, 184, 0.24);
    border-radius: var(--hb-theme-radius-none);
}

.aurelia-site .hb-room-detail__nightly-prices summary {
    color: var(--hb-theme-color-primary-contrast);
    font-size: var(--hb-theme-typography-size-sm);
    font-weight: var(--hb-theme-typography-weight-semibold);
}

.aurelia-site .hb-room-detail__nightly-row {
    border-bottom-color: rgba(230, 215, 184, 0.2);
}

.aurelia-site .hb-room-detail__pricing-note,
.aurelia-site .hb-room-detail__booking-note {
    color: #BDB5A9;
    font-size: var(--hb-theme-typography-size-xs);
}

.aurelia-site .hb-room-detail__notice {
    color: #F5D7D3;
    background: rgba(154, 51, 45, 0.24);
    border-color: rgba(245, 215, 211, 0.45);
    border-radius: var(--hb-theme-radius-sm);
}

.aurelia-site .hb-detail-button {
    display: inline-flex;
    min-height: var(--hb-theme-interaction-target-min);
    align-items: center;
    justify-content: center;
    padding: 0.8rem var(--hb-theme-spacing-lg);
    color: var(--hb-theme-color-charcoal) !important;
    background: var(--hb-theme-color-primary-contrast);
    border: var(--hb-theme-border-width) solid var(--hb-theme-color-primary-contrast);
    border-radius: var(--hb-theme-radius-sm);
    font-size: var(--hb-theme-typography-size-xs);
    font-weight: var(--hb-theme-typography-weight-semibold);
    letter-spacing: var(--hb-theme-typography-tracking-label);
    text-decoration: none !important;
    text-transform: uppercase;
    transition: color var(--hb-theme-interaction-transition-fast), background var(--hb-theme-interaction-transition-fast), border-color var(--hb-theme-interaction-transition-fast);
}

.aurelia-site .hb-detail-button--primary {
    color: var(--hb-theme-color-charcoal) !important;
    background: var(--hb-theme-color-champagne-light);
    border-color: var(--hb-theme-color-champagne-light);
}

.aurelia-site .hb-detail-button--secondary {
    color: var(--hb-theme-color-primary-contrast) !important;
    background: transparent;
    border-color: rgba(255, 253, 248, 0.48);
}

.aurelia-site .hb-detail-button:is(:hover, :focus-visible) {
    color: var(--hb-theme-color-primary-contrast) !important;
    background: var(--hb-theme-color-primary);
    border-color: var(--hb-theme-color-primary);
    filter: none;
}

.aurelia-site .hb-room-detail__book-button,
.aurelia-site .hb-room-detail__search-link {
    width: 100%;
    margin-top: var(--hb-theme-spacing-md);
}

.aurelia-site .hb-room-detail__book-button {
    min-height: 3.6rem;
    justify-content: space-between;
}

.aurelia-site .hb-room-detail__reassurance {
    display: grid;
    gap: var(--hb-theme-spacing-xs);
    padding: var(--hb-theme-spacing-sm) var(--hb-theme-spacing-md);
    border-left: var(--hb-theme-border-width) solid var(--hb-theme-color-champagne);
}

.aurelia-site .hb-room-detail__reassurance p {
    display: flex;
    gap: var(--hb-theme-spacing-xs);
    align-items: center;
    margin: 0;
    color: var(--hb-theme-color-text-muted);
    font-size: var(--hb-theme-typography-size-xs);
}

.aurelia-site .hb-room-detail__reassurance span {
    color: var(--hb-theme-color-success);
}

/* Pro policies use the public injected section and disappear with no wrapper in Free. */
.aurelia-site .hb-room-detail .hb-room-policies {
    display: grid;
    gap: var(--hb-theme-spacing-xl);
}

.aurelia-site .hb-room-detail .hb-room-policies__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.65fr);
    gap: var(--hb-theme-spacing-xl);
    align-items: end;
}

.aurelia-site .hb-room-detail .hb-room-policies__heading > p {
    max-width: none;
    margin: 0;
    color: var(--hb-theme-color-text-muted);
    font-size: var(--hb-theme-typography-size-sm);
    text-align: left;
}

.aurelia-site .hb-room-detail .hb-room-policies__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--hb-theme-spacing-md);
}

.aurelia-site .hb-room-detail .hb-room-policy {
    padding: var(--hb-theme-spacing-lg);
    background: var(--hb-theme-color-surface);
    border: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
    border-radius: var(--hb-theme-radius-none);
}

.aurelia-site .hb-room-detail .hb-room-policy__heading {
    display: grid;
    gap: var(--hb-theme-spacing-sm);
}

.aurelia-site .hb-room-detail .hb-room-policy__heading h3 {
    margin: 0;
    color: var(--hb-theme-color-charcoal);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: 1.45rem;
    font-weight: var(--hb-theme-typography-weight-regular);
}

.aurelia-site .hb-room-detail .hb-room-policy__acknowledgement {
    width: fit-content;
    padding: var(--hb-theme-spacing-xxs) var(--hb-theme-spacing-xs);
    color: var(--hb-theme-color-success);
    background: transparent;
    border: var(--hb-theme-border-width) solid rgba(55, 107, 74, 0.4);
    border-radius: var(--hb-theme-radius-sm);
    font-size: 0.67rem;
}

.aurelia-site .hb-room-detail .hb-room-policy__description {
    color: var(--hb-theme-color-charcoal-soft);
    font-size: var(--hb-theme-typography-size-sm);
}

/* Reviews and related rooms are full-width editorial modules. */
.aurelia-site .hb-room-detail__reviews {
    margin-top: clamp(4rem, 9vw, 8rem);
    padding: clamp(2rem, 5vw, 5rem);
    background: var(--hb-theme-color-surface);
    border: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
    border-radius: var(--hb-theme-radius-none);
}

.aurelia-site .hb-room-reviews__heading {
    display: flex;
    gap: var(--hb-theme-spacing-xl);
    align-items: end;
    justify-content: space-between;
    margin-bottom: var(--hb-theme-spacing-xxl);
}

.aurelia-site .hb-room-reviews__heading h2,
.aurelia-site .hb-room-detail__related-heading h2 {
    margin: 0;
    color: var(--hb-theme-color-charcoal);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: clamp(2.5rem, 5vw, 5rem);
    font-weight: var(--hb-theme-typography-weight-regular);
    letter-spacing: -0.04em;
}

.aurelia-site .hb-room-reviews__heading p {
    margin: 0;
    color: var(--hb-theme-color-text-muted);
    font-size: var(--hb-theme-typography-size-sm);
}

.aurelia-site .hb-room-reviews__empty {
    display: flex;
    gap: var(--hb-theme-spacing-lg);
    align-items: center;
    padding: var(--hb-theme-spacing-xl);
    background: var(--hb-theme-color-background);
    border: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
    border-radius: var(--hb-theme-radius-none);
}

.aurelia-site .hb-room-reviews__empty > span {
    color: var(--hb-theme-color-champagne-dark);
}

.aurelia-site .hb-room-reviews__summary {
    display: grid;
    grid-template-columns: minmax(12rem, 0.32fr) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 5rem);
    padding: clamp(2rem, 4vw, 4rem);
    color: var(--hb-theme-color-primary-contrast);
    background: var(--hb-theme-color-charcoal);
    border-radius: var(--hb-theme-radius-none);
}

.aurelia-site .hb-room-reviews__overall > strong {
    color: var(--hb-theme-color-champagne-light);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: clamp(4rem, 8vw, 7rem);
    font-weight: var(--hb-theme-typography-weight-regular);
}

.aurelia-site .hb-room-reviews__stars .is-filled {
    color: var(--hb-theme-color-champagne-light);
}

.aurelia-site .hb-room-reviews__bar {
    border-radius: 0;
    background: rgba(255, 253, 248, 0.18);
}

.aurelia-site .hb-room-reviews__bar i {
    border-radius: 0;
    background: var(--hb-theme-color-champagne);
}

.aurelia-site .hb-room-reviews__list {
    gap: var(--hb-theme-border-width);
    margin-top: var(--hb-theme-spacing-xl);
    background: var(--hb-theme-color-border);
}

.aurelia-site .hb-room-review-public {
    padding: clamp(1.5rem, 3vw, 2.5rem);
    background: var(--hb-theme-color-primary-contrast);
    border: 0;
    border-radius: 0;
}

.aurelia-site .hb-room-review-public__score {
    color: var(--hb-theme-color-primary);
    background: var(--hb-theme-color-surface-alt);
    border-radius: var(--hb-theme-radius-sm);
}

.aurelia-site .hb-room-review-public__criteria > div {
    background: var(--hb-theme-color-background);
    border-radius: 0;
}

.aurelia-site .hb-room-reviews__pagination a,
.aurelia-site .hb-room-reviews__pagination span {
    border-radius: var(--hb-theme-radius-sm);
}

.aurelia-site .hb-room-reviews__pagination .current {
    color: var(--hb-theme-color-primary-contrast);
    background: var(--hb-theme-color-primary);
    border-color: var(--hb-theme-color-primary);
}

.aurelia-site .hb-room-detail__related {
    margin-top: clamp(4rem, 9vw, 8rem);
    padding-top: clamp(2rem, 4vw, 4rem);
    border-top: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
}

.aurelia-site .hb-room-detail__related-heading {
    display: flex;
    gap: var(--hb-theme-spacing-xl);
    align-items: end;
    justify-content: space-between;
    margin-bottom: var(--hb-theme-spacing-xxl);
}

.aurelia-site .hb-room-detail__related-heading > a {
    flex: none;
    min-height: var(--hb-theme-interaction-target-min);
    font-size: var(--hb-theme-typography-size-xs);
    font-weight: var(--hb-theme-typography-weight-semibold);
    letter-spacing: 0.08em;
    text-decoration: none;
    text-transform: uppercase;
}

.aurelia-site .hb-room-detail__related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--hb-theme-spacing-lg);
}

.aurelia-site .hb-related-room {
    overflow: hidden;
    min-width: 0;
    background: var(--hb-theme-color-surface);
    border: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
    border-radius: var(--hb-theme-radius-none);
    box-shadow: none;
    transition: transform var(--hb-theme-interaction-transition-standard), box-shadow var(--hb-theme-interaction-transition-standard);
}

.aurelia-site .hb-related-room:hover {
    box-shadow: var(--aurelia-shadow-soft);
    transform: translateY(-0.25rem);
}

.aurelia-site .hb-related-room__media,
.aurelia-site .hb-related-room__placeholder {
    aspect-ratio: 4 / 3;
    background: var(--hb-theme-color-surface-alt);
}

.aurelia-site .hb-related-room__body {
    padding: var(--hb-theme-spacing-lg);
}

.aurelia-site .hb-related-room__body h3 {
    color: var(--hb-theme-color-charcoal);
    font-family: var(--hb-theme-typography-family-heading);
    font-size: clamp(1.5rem, 2.5vw, 2.2rem);
    font-weight: var(--hb-theme-typography-weight-regular);
}

.aurelia-site .hb-related-room__link {
    color: var(--hb-theme-color-primary) !important;
    background: transparent;
    border: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
    border-radius: 50%;
}

.aurelia-site .hb-room-detail__empty {
    max-width: var(--hb-theme-container-narrow);
    margin: clamp(3rem, 8vw, 7rem) auto;
    padding: clamp(2rem, 5vw, 4rem);
    background: var(--hb-theme-color-surface);
    border: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
    border-left: 0.22rem solid var(--hb-theme-color-error);
    border-radius: var(--hb-theme-radius-none);
}

.aurelia-site .hb-room-detail__empty > span {
    border-radius: var(--hb-theme-radius-sm);
}

.aurelia-site .hb-detail-lightbox {
    background: rgba(21, 20, 18, 0.96);
}

.aurelia-site .hb-detail-lightbox__image {
    border-radius: 0;
}

.aurelia-site .hb-detail-lightbox__close {
    color: var(--hb-theme-color-primary-contrast);
    background: transparent;
    border-color: rgba(255, 253, 248, 0.45);
}

@media (max-width: 1100px) {
    .aurelia-site .hb-room-detail__layout {
        grid-template-columns: 1fr;
    }

    .aurelia-site .hb-room-detail__sidebar {
        position: static;
        grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.45fr);
        align-items: start;
    }

    .aurelia-site .hb-room-detail__related-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 782px) {
    .aurelia-site .hb-room-detail {
        --aurelia-room-detail-width: min(calc(100vw - 2rem), var(--hb-theme-container-wide));
    }

    .aurelia-site .hb-room-detail__header {
        grid-template-columns: 1fr;
        gap: var(--hb-theme-spacing-lg);
    }

    .aurelia-site .hb-room-detail__price {
        min-width: 0;
        justify-items: start;
        padding: var(--hb-theme-spacing-lg) 0 0;
        border-top: var(--hb-theme-border-width) solid var(--hb-theme-color-border);
        border-left: 0;
    }

    .aurelia-site .hb-room-detail__sidebar,
    .aurelia-site .hb-room-reviews__summary {
        grid-template-columns: 1fr;
    }

    .aurelia-site .hb-room-detail .hb-room-policies__heading,
    .aurelia-site .hb-room-detail .hb-room-policies__list {
        grid-template-columns: 1fr;
    }

    .aurelia-site .hb-room-review-public__criteria {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .aurelia-site .hb-room-detail__title {
        font-size: clamp(3rem, 17vw, 4.75rem);
    }

    .aurelia-site .hb-room-detail__facts,
    .aurelia-site .hb-room-detail__amenities,
    .aurelia-site .hb-room-detail__related-grid {
        grid-template-columns: 1fr;
    }

    .aurelia-site .hb-room-detail__description,
    .aurelia-site .hb-room-detail__amenities {
        margin-left: 0;
    }

    .aurelia-site .hb-room-detail__section-heading {
        grid-template-columns: 2.25rem minmax(0, 1fr);
    }

    .aurelia-site .hb-room-detail__stay-summary {
        grid-template-columns: 1fr;
    }

    .aurelia-site .hb-room-detail__stay-summary > div,
    .aurelia-site .hb-room-detail__stay-summary > div:nth-child(odd),
    .aurelia-site .hb-room-detail__stay-summary > div:nth-last-child(-n + 2) {
        border-right: 0;
        border-bottom: var(--hb-theme-border-width) solid rgba(230, 215, 184, 0.24);
    }

    .aurelia-site .hb-room-detail__stay-summary > div:last-child {
        border-bottom: 0;
    }

    .aurelia-site .hb-room-reviews__heading,
    .aurelia-site .hb-room-detail__related-heading,
    .aurelia-site .hb-room-review-public__header {
        align-items: flex-start;
        flex-direction: column;
    }

    .aurelia-site .hb-room-reviews__criteria > div {
        grid-template-columns: 5.5rem minmax(0, 1fr);
    }

    .aurelia-site .hb-room-review-public__criteria {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (prefers-reduced-motion: reduce) {
    .aurelia-site .hb-detail-gallery__main,
    .aurelia-site .hb-related-room,
    .aurelia-site .hb-related-room__media img {
        transition: none;
    }
}

@media print {
    .aurelia-site .hb-room-detail {
        width: 100%;
        margin: 0;
    }

    .aurelia-site .hb-room-detail__layout,
    .aurelia-site .hb-room-detail__sidebar,
    .aurelia-site .hb-room-detail__related-grid {
        display: block;
    }

    .aurelia-site .hb-room-detail__sidebar,
    .aurelia-site .hb-room-detail__section,
    .aurelia-site .hb-room-detail__reviews,
    .aurelia-site .hb-room-detail__related {
        break-inside: avoid;
    }

    .aurelia-site .hb-detail-lightbox,
    .aurelia-site .hb-room-detail__book-button {
        display: none !important;
    }
}
