/* Only documented TravelLine containers and theme-owned wrappers are styled here. */
.booking-bar.booking-bar--travelline {
    display: block;
    height: auto;
    min-height: 100px;
    padding: 0;
    overflow: visible;
    box-shadow: none;
}
#block-search {
    box-sizing: border-box;
    width: 100%;
    background: #fff;
    box-shadow: 0 8px 45px rgba(17, 18, 18, .16);
    border-radius: 6px;
}
#tl-search-form { padding: 0 30px; }
.travelline-status {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 8px 20px;
    margin: 0;
    padding: 16px;
    color: var(--color-primary);
    background: var(--color-white);
    border-radius: 6px;
    font-size: 14px;
    line-height: 1.5;
}
.travelline-status[hidden] { display: none; }
.travelline-status a { color: inherit; }
.site-main :is(.home-hero, .about-hero, .rooms-hero, .services-hero, .single-room-hero, .special-offer-hero):has(> .booking-bar--travelline) { overflow: visible; }
.booking-bar.booking-bar--standalone {
    position: relative;
    inset: auto;
    transform: none;
    width: 100%;
    max-width: 1380px;
    margin: 28px auto 36px;
    z-index: 10;
}
body > .booking-bar--standalone { width: calc(100% - 40px); margin-top: 140px; }
.site-main > .booking-bar--standalone { width: calc(100% - 40px); margin-top: 140px; }
/* The shared Footer rule adds ornament clearance to this page-specific gap. */
.booking-page {
    padding-top: 150px;
    padding-inline: max(12px, calc((100% - 1320px) / 2));
    --footer-content-gap: 96px;
}
@media (min-width: 768px) and (max-width: 1199px) {
    .booking-page { --footer-content-gap: 72px; }
}
.booking-page__title {
    margin: 0 0 28px;
    color: var(--color-primary);
    font-family: var(--font-display);
    font-size: clamp(32px, 4vw, 54px);
    font-weight: 300;
    line-height: 1.15;
}
#tl-booking-form { width: 100%; max-width: 1320px; margin: 0 auto; z-index: 0; }
.booking-page .travelline-status { margin-top: 20px; }
body:has(.booking-page) .site-footer__socials { display: none; }
.single-room-hero__content > .home-rooms__booking { margin-top: 24px; }
/* Keep the reference About and Home sizing unchanged on short viewports.
   Other internal Heroes use inner-hero.css and retain room for long content. */
@media (min-width: 768px) and (max-height: 800px) {
    .site-main :is(.home-hero, .about-hero):has(> .booking-bar--travelline) {
        height: calc(100svh - (var(--tl-search-height, 102px) / 2));
        min-height: 0;
    }
}
/* The provider uses em-based sizing; scale the external launcher and its icon together.
   Only inset needs !important to override the position supplied inline by its profile. */
@media (min-width: 768px) {
    body > .x-tl-booking-widget-container {
        font-size: 12.5px;
        width: 4em;
        position: fixed;
        inset: auto 20px 20px auto !important;
        z-index: 900;
    }
    body > .x-tl-booking-widget-container > .x-tl-booking-widget {
        width: 4em;
        max-width: 4em;
        border-radius: 50%;
    }
    body > .x-tl-booking-widget-container > .x-tl-booking-widget:hover {
        box-shadow: 0 4px 18px rgba(0, 0, 0, .22);
    }
    body > .x-tl-booking-widget-container.doubletree-tl-button-obstructed {
        visibility: hidden;
    }
}
@media (min-width: 1200px) {
    body > .x-tl-booking-widget-container {
        font-size: 13px;
        inset: auto 24px 24px auto !important;
    }
}
@media (max-width: 767px) {
    /* TravelLine's floating button is a body-level container, outside its iframe.
       Override the remote profile's inline right: 10px / top: 20% only on phones. */
    body > .x-tl-booking-widget-container {
        position: fixed !important;
        inset: auto 16px calc(20px + env(safe-area-inset-bottom, 0px)) auto !important;
        z-index: 900;
    }
    body > .x-tl-booking-widget-container.doubletree-tl-button-obstructed {
        visibility: hidden;
        pointer-events: none !important;
    }
    #tl-search-form { padding: 0 10px; }
    .booking-bar.booking-bar--travelline { min-height: 0; }
    .booking-page { padding-top: 110px; --footer-content-gap: 48px; }
    .single-room-hero__content > .home-rooms__booking { min-height: 44px; margin-top: 18px; }
}
