/* ========================================================================== 
   APD 153.0 · final cross-platform completion layer
   This file is deliberately loaded last. It consolidates the public UI after
   the historical theme layers without changing booking or payment behavior.
   ========================================================================== */

:root {
    --apd153-ink: #222222;
    --apd153-muted: #6a6a6a;
    --apd153-line: #dddddd;
    --apd153-soft: #f7f7f7;
    --apd153-brand: #0f6fe8;
    --apd153-brand-dark: #0b3475;
    --apd153-radius: 16px;
    --apd153-shadow: 0 12px 38px rgba(0, 0, 0, .14);
    --apd153-content: 1280px;
}

body.apd153-complete {
    color: var(--apd153-ink);
    background: #fff;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.apd153-complete *,
body.apd153-complete *::before,
body.apd153-complete *::after {
    box-sizing: border-box;
}

body.apd153-complete [hidden] {
    display: none !important;
}

body.apd153-complete :where(button, a, input, select, textarea):focus-visible {
    outline: 3px solid rgba(15, 111, 232, .28) !important;
    outline-offset: 2px !important;
}

body.apd153-complete :is(.apd5-card-media, .apd53-result-image, .apd31-card-media).is-image-error {
    position: relative !important;
    overflow: hidden !important;
    background: linear-gradient(135deg, #f4f5f7 0%, #e9edf2 100%) !important;
}

body.apd153-complete :is(.apd5-card-media, .apd53-result-image, .apd31-card-media).is-image-error::after {
    content: "APD";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #778398;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .08em;
}

body.apd153-complete img.apd153-image-error {
    visibility: hidden !important;
}

/* Search field normalization ------------------------------------------------ */
body.apd153-complete #apd5-search .apd5-search-field {
    position: relative !important;
    min-width: 0 !important;
}

body.apd153-complete #apd5-search .apd5-search-field > button:first-child {
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 24px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: hidden !important;
    text-align: left !important;
}

body.apd153-complete #apd5-search .apd5-search-field > button:first-child:hover,
body.apd153-complete #apd5-search .apd5-search-field.is-open > button:first-child {
    background: #fff !important;
    box-shadow: 0 5px 18px rgba(0, 0, 0, .12) !important;
}

body.apd153-complete #apd5-search .apd5-search-field > button:first-child > span:first-child {
    display: block !important;
    color: var(--apd153-ink) !important;
    font-size: 12px !important;
    line-height: 15px !important;
    font-weight: 650 !important;
}

body.apd153-complete #apd5-search .apd5-search-field > button:first-child > strong {
    width: 100% !important;
    margin: 2px 0 0 !important;
    color: var(--apd153-muted) !important;
    font-size: 13px !important;
    line-height: 17px !important;
    font-weight: 400 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* A generic historical rule matched every child button, including the three
   clear buttons. These dimensions keep the clears local to their field. */
body.apd153-complete #apd5-search .apd5-search-field > :is(.apd26-field-clear, .apd28-date-clear, .apd16-search-clear) {
    position: absolute !important;
    top: 50% !important;
    right: 12px !important;
    z-index: 12 !important;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translateY(-50%) !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: #222 !important;
    background: #ebebeb !important;
    box-shadow: none !important;
    font: 400 19px/1 Arial, sans-serif !important;
}

body.apd153-complete #apd5-search .apd5-search-field > :is(.apd26-field-clear, .apd28-date-clear, .apd16-search-clear)[hidden] {
    display: none !important;
}

body.apd153-complete #apd5-search .apd5-search-field > :is(.apd26-field-clear, .apd28-date-clear, .apd16-search-clear):not([hidden]) {
    display: flex !important;
}

body.apd153-complete #apd5-search .apd5-search-field:has(> :is(.apd26-field-clear, .apd28-date-clear, .apd16-search-clear):not([hidden])) > button:first-child {
    padding-right: 48px !important;
}

body.apd153-complete #apd5-header:not(.is-compact) .apd26-compact-summary {
    display: none !important;
}

body.apd153-complete #apd5-header.is-compact .apd5-search-field > button:first-child > strong[id] {
    display: none !important;
}

body.apd153-complete #apd5-header.is-compact .apd26-compact-summary {
    display: block !important;
    margin: 0 !important;
    color: #4b4b4b !important;
    font-size: 12px !important;
    line-height: 20px !important;
    font-weight: 550 !important;
}

body.apd153-complete #apd5-header.is-compact .apd5-search-field > button:first-child > span:first-child,
body.apd153-complete #apd5-header.is-compact .apd26-search-leading-icon {
    display: none !important;
}

body.apd153-complete #apd5-search .apd5-search-separator {
    width: 1px !important;
    height: 32px !important;
    align-self: center !important;
    background: #dddddd !important;
}

body.apd153-complete #apd5-search .apd5-search-submit {
    flex: 0 0 auto !important;
    min-width: 48px !important;
    width: auto !important;
    height: 48px !important;
    margin: 7px !important;
    padding: 0 17px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #fff !important;
    background: var(--apd153-brand) !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    transition: transform .16s ease, background .16s ease, box-shadow .16s ease !important;
}

body.apd153-complete #apd5-search .apd5-search-submit:hover {
    background: #0d63d0 !important;
    box-shadow: 0 4px 12px rgba(15, 111, 232, .24) !important;
}

body.apd153-complete #apd5-search .apd5-search-submit:active {
    transform: scale(.97) !important;
}

body.apd153-complete #apd5-search .apd5-search-submit .apd5-icon {
    width: 17px !important;
    height: 17px !important;
}

/* Search panels ------------------------------------------------------------ */
body.apd153-complete #apd5-search .apd5-search-panel {
    z-index: 1900 !important;
    border: 1px solid rgba(0, 0, 0, .08) !important;
    border-radius: 28px !important;
    color: var(--apd153-ink) !important;
    background: #fff !important;
    box-shadow: var(--apd153-shadow) !important;
}

body.apd153-complete #apd5-search .apd5-location-panel {
    width: 430px !important;
    max-width: min(430px, calc(100vw - 32px)) !important;
    max-height: min(560px, calc(100dvh - 190px)) !important;
    padding: 20px !important;
    overflow: auto !important;
}

body.apd153-complete #apd5-search .apd141-date-panel.is-stays {
    width: min(850px, calc(100vw - 32px)) !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 168px) !important;
    padding: 20px 24px 0 !important;
    overflow: auto !important;
}

body.apd153-complete #apd5-search .apd5-guests-panel {
    width: 390px !important;
    max-width: min(390px, calc(100vw - 32px)) !important;
    padding: 16px 24px 0 !important;
}

body.apd153-complete #apd5-search .apd5-service-panel {
    width: 390px !important;
    max-width: min(390px, calc(100vw - 32px)) !important;
    padding: 18px !important;
}

body.apd153-complete #apd5-search .apd5-panel-title {
    min-height: 36px !important;
    margin: 0 0 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

body.apd153-complete #apd5-search .apd5-panel-title > button,
body.apd153-complete #apd5-search .apd5-panel-title > div > button:not(.apd16-guests-reset) {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    display: inline-grid !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #f2f2f2 !important;
    font-size: 20px !important;
}

body.apd153-complete #apd5-search .apd5-panel-filter {
    min-height: 46px !important;
    margin-bottom: 12px !important;
    padding: 0 14px !important;
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    border: 1px solid var(--apd153-line) !important;
    border-radius: 12px !important;
    background: #fff !important;
}

body.apd153-complete #apd5-search .apd5-panel-filter input {
    width: 100% !important;
    min-width: 0 !important;
    height: 44px !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 14px !important;
}

body.apd153-complete #apd5-search .apd5-destination-option {
    width: 100% !important;
    min-height: 58px !important;
    padding: 7px 8px !important;
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 11px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #fff !important;
    text-align: left !important;
}

body.apd153-complete #apd5-search .apd5-destination-option:hover {
    background: #f7f7f7 !important;
}

body.apd153-complete #apd5-search .apd5-destination-option > span {
    width: 44px !important;
    height: 44px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 12px !important;
    background: #f1f1f1 !important;
}

body.apd153-complete #apd5-search .apd5-destination-option strong {
    color: #222 !important;
    font-size: 13px !important;
    line-height: 17px !important;
    font-weight: 600 !important;
}

body.apd153-complete #apd5-search .apd5-destination-option small {
    display: block !important;
    margin-top: 2px !important;
    color: #717171 !important;
    font-size: 11px !important;
    line-height: 15px !important;
}

body.apd153-complete #apd5-search .apd15-date-mode {
    width: 250px !important;
    height: 38px !important;
    margin: 0 auto 18px !important;
    padding: 3px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    border-radius: 999px !important;
    background: #ebebeb !important;
}

body.apd153-complete #apd5-search .apd15-date-mode button {
    min-height: 32px !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

body.apd153-complete #apd5-search .apd15-date-mode button.is-active {
    background: #fff !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .16) !important;
}

body.apd153-complete #apd5-search .apd5-calendar-months {
    gap: 34px !important;
}

body.apd153-complete #apd5-search .apd15-date-flexibility,
body.apd153-complete #apd5-search .apd15-flexible-duration {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
}

body.apd153-complete #apd5-search :is(.apd15-date-flexibility, .apd15-flexible-duration) button {
    min-height: 34px !important;
    padding: 0 14px !important;
    border: 1px solid #dddddd !important;
    border-radius: 999px !important;
    color: #222 !important;
    background: #fff !important;
    font-size: 11px !important;
    font-weight: 500 !important;
}

body.apd153-complete #apd5-search :is(.apd15-date-flexibility, .apd15-flexible-duration) button.is-active {
    border-color: #222 !important;
    box-shadow: inset 0 0 0 1px #222 !important;
}

body.apd153-complete #apd5-search .apd15-flexible-section {
    text-align: center !important;
}

body.apd153-complete #apd5-search .apd15-flexible-section h3 {
    margin: 16px 0 12px !important;
    color: #222 !important;
    font-size: 17px !important;
    line-height: 22px !important;
    font-weight: 650 !important;
}

body.apd153-complete #apd5-search .apd15-flexible-duration {
    justify-content: center !important;
}

body.apd153-complete #apd5-search .apd15-flexible-months {
    width: 100% !important;
    margin: 14px 0 0 !important;
    padding: 0 0 12px !important;
    display: flex !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overscroll-behavior-inline: contain !important;
    scroll-snap-type: x proximity !important;
    scrollbar-width: none !important;
}

body.apd153-complete #apd5-search .apd15-flexible-months::-webkit-scrollbar {
    display: none !important;
}

body.apd153-complete #apd5-search .apd15-flexible-months > button {
    flex: 0 0 96px !important;
    width: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
    height: 112px !important;
    min-height: 112px !important;
    padding: 12px 6px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    scroll-snap-align: start !important;
    border: 1px solid #dddddd !important;
    border-radius: 14px !important;
    color: #222 !important;
    background: #fff !important;
}

body.apd153-complete #apd5-search .apd15-flexible-months > button.is-active {
    border-color: #222 !important;
    box-shadow: inset 0 0 0 1px #222 !important;
}

body.apd153-complete #apd5-search .apd15-flexible-months strong {
    font-size: 12px !important;
    line-height: 16px !important;
    font-weight: 600 !important;
}

body.apd153-complete #apd5-search .apd15-flexible-months small {
    color: #717171 !important;
    font-size: 10px !important;
    line-height: 14px !important;
}

body.apd153-complete #apd5-search .apd15-month-calendar {
    position: relative !important;
    width: 27px !important;
    min-width: 27px !important;
    height: 26px !important;
    display: block !important;
    border: 2px solid #717171 !important;
    border-radius: 5px !important;
}

body.apd153-complete #apd5-search .apd15-month-calendar::before {
    content: "" !important;
    position: absolute !important;
    top: 6px !important;
    left: 0 !important;
    width: 100% !important;
    height: 2px !important;
    background: #717171 !important;
}

body.apd153-complete #apd5-search .apd15-month-calendar i {
    position: absolute !important;
    top: -5px !important;
    width: 2px !important;
    height: 7px !important;
    display: block !important;
    border-radius: 2px !important;
    background: #717171 !important;
}

body.apd153-complete #apd5-search .apd15-month-calendar i:first-child { left: 6px !important; }
body.apd153-complete #apd5-search .apd15-month-calendar i:nth-child(2) { right: 6px !important; }

body.apd153-complete #apd5-search .apd15-month-calendar b {
    position: absolute !important;
    inset: 11px 5px 4px !important;
    display: block !important;
    background: radial-gradient(circle, #9a9a9a 1px, transparent 1.5px) 0 0 / 6px 5px !important;
}

body.apd153-complete #apd5-search .apd5-guest-row {
    min-height: 78px !important;
    padding: 14px 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    border-bottom: 1px solid #e6e6e6 !important;
}

body.apd153-complete #apd5-search .apd5-guest-row > div:first-child strong {
    display: block !important;
    color: #222 !important;
    font-size: 15px !important;
    line-height: 20px !important;
    font-weight: 600 !important;
}

body.apd153-complete #apd5-search .apd5-guest-row > div:first-child span {
    display: block !important;
    margin-top: 2px !important;
    color: #717171 !important;
    font-size: 12px !important;
    line-height: 16px !important;
}

body.apd153-complete #apd5-search .apd5-guest-row > div:last-child {
    display: grid !important;
    grid-template-columns: 34px 28px 34px !important;
    align-items: center !important;
    justify-items: center !important;
    gap: 6px !important;
}

body.apd153-complete #apd5-search .apd5-guest-row [data-counter] {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 1px solid #b0b0b0 !important;
    border-radius: 50% !important;
    color: #5d5d5d !important;
    background: #fff !important;
    font-size: 18px !important;
}

body.apd153-complete #apd5-search .apd5-guest-row [data-counter]:disabled {
    border-color: #eeeeee !important;
    color: #d0d0d0 !important;
    opacity: 1 !important;
}

body.apd153-complete #apd5-search .apd5-panel-footer {
    position: sticky !important;
    bottom: 0 !important;
    min-height: 64px !important;
    margin: 14px -24px 0 !important;
    padding: 10px 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-top: 1px solid #e6e6e6 !important;
    background: #fff !important;
}

body.apd153-complete #apd5-search .apd5-panel-footer button:last-child {
    min-height: 42px !important;
    padding: 0 18px !important;
    border: 0 !important;
    border-radius: 10px !important;
    color: #fff !important;
    background: var(--apd153-brand-dark) !important;
    font-size: 13px !important;
    font-weight: 650 !important;
}

/* Discovery header and home content ---------------------------------------- */
@media (min-width: 1180px) {
    body.apd153-complete.apd-marketplace-ui #apd5-header.is-discovery-context:not(.is-compact) {
        height: 160px !important;
        min-height: 160px !important;
    }

    body.apd153-complete.apd-marketplace-ui #apd5-header.is-discovery-context:not(.is-compact) .apd5-header-row {
        width: min(calc(100% - 80px), var(--apd153-content)) !important;
        height: 78px !important;
        min-height: 78px !important;
        margin: 0 auto !important;
    }

    body.apd153-complete.apd-marketplace-ui #apd5-header.is-discovery-context:not(.is-compact) .apd5-header-search-row {
        height: 82px !important;
        min-height: 82px !important;
        padding: 0 24px 14px !important;
    }

    body.apd153-complete.apd-marketplace-ui #apd5-header.is-discovery-context:not(.is-compact) #apd5-search {
        width: min(850px, calc(100vw - 48px)) !important;
        height: 66px !important;
        min-height: 66px !important;
        margin: 0 auto !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr) 1px minmax(0, 1fr) auto !important;
        align-items: stretch !important;
        border: 1px solid #dddddd !important;
        border-radius: 999px !important;
        background: #f3f3f3 !important;
        box-shadow: 0 5px 18px rgba(0, 0, 0, .13) !important;
    }

    body.apd153-complete.home .apd5-main {
        width: min(calc(100% - 80px), var(--apd153-content)) !important;
        max-width: var(--apd153-content) !important;
        margin: 0 auto !important;
        padding-top: 28px !important;
    }

    body.apd153-complete.home .apd5-rail {
        margin-top: 34px !important;
    }

    body.apd153-complete.home .apd5-main > .apd5-rail:first-child {
        margin-top: 0 !important;
    }

    body.apd153-complete.home .apd5-card-rail {
        grid-auto-columns: calc((100% - 72px) / 7) !important;
        gap: 12px !important;
    }
}

/* Results and map ---------------------------------------------------------- */
body.apd153-complete.apd5-search-results-page .apd53-filter-strip {
    z-index: 990 !important;
    background: rgba(255, 255, 255, .98) !important;
    backdrop-filter: blur(14px) !important;
}

body.apd153-complete.apd5-search-results-page .apd53-results-pane {
    background: #fff !important;
}

body.apd153-complete.apd5-search-results-page .apd53-results-heading {
    margin-bottom: 16px !important;
}

body.apd153-complete.apd5-search-results-page .apd53-results-heading h1 {
    color: #222 !important;
    font-size: 25px !important;
    line-height: 30px !important;
    font-weight: 650 !important;
}

body.apd153-complete.apd5-search-results-page .apd53-map-notice {
    margin: 0 0 18px !important;
    border-radius: 12px !important;
}

body.apd153-complete.apd5-search-results-page .apd53-result-card {
    padding-bottom: 4px !important;
    border-radius: 16px !important;
}

body.apd153-complete.apd5-search-results-page .apd53-result-image {
    aspect-ratio: 1.04 / 1 !important;
    border-radius: 14px !important;
}

body.apd153-complete.apd5-search-results-page .apd53-result-title > a {
    color: #222 !important;
    font-size: 14px !important;
    line-height: 18px !important;
    font-weight: 600 !important;
}

body.apd153-complete.apd5-search-results-page .apd53-result-body p {
    margin-top: 3px !important;
    color: #717171 !important;
    font-size: 12px !important;
    line-height: 16px !important;
}

body.apd153-complete.apd5-search-results-page .apd53-result-body > strong {
    margin-top: 5px !important;
    color: #222 !important;
    font-size: 13px !important;
    line-height: 17px !important;
}

body.apd153-complete.apd5-search-results-page .apd53-result-body > strong small {
    font-size: 11px !important;
}

body.apd153-complete.apd5-search-results-page .apd53-map-pane,
body.apd153-complete.apd5-search-results-page .apd53-results-map {
    background: #e9f1df !important;
}

@media (min-width: 1100px) {
    body.apd153-complete.apd5-search-results-page .apd53-results-layout {
        height: calc(100dvh - 142px) !important;
        min-height: 620px !important;
        display: grid !important;
        grid-template-columns: 50% 50% !important;
        overflow: hidden !important;
    }

    body.apd153-complete.apd5-search-results-page .apd53-results-pane {
        height: 100% !important;
        padding: 24px 24px 60px 30px !important;
        overflow-y: auto !important;
    }

    body.apd153-complete.apd5-search-results-page .apd53-results-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 30px 14px !important;
    }

    body.apd153-complete.apd5-search-results-page .apd53-map-pane {
        position: sticky !important;
        top: 142px !important;
        height: calc(100dvh - 142px) !important;
        min-height: 620px !important;
        overflow: hidden !important;
    }

    body.apd153-complete.apd5-search-results-page .apd53-results-map {
        width: 100% !important;
        height: 100% !important;
        min-height: 620px !important;
    }
}

@media (min-width: 1800px) {
    body.apd153-complete.apd5-search-results-page .apd53-results-layout {
        grid-template-columns: 54% 46% !important;
    }

    body.apd153-complete.apd5-search-results-page .apd53-results-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

/* Services and experience catalogues -------------------------------------- */
body.apd153-complete.apd31-catalog-page .apd31-catalog,
body.apd153-complete.apd31-services-page .apd31-catalog,
body.apd153-complete.apd31-experiences-page .apd31-catalog {
    width: min(calc(100% - 80px), var(--apd153-content)) !important;
    max-width: var(--apd153-content) !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 30px 0 72px !important;
}

body.apd153-complete .apd23-service-category-rail {
    display: flex !important;
    gap: 12px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
}

body.apd153-complete .apd23-service-category-rail::-webkit-scrollbar {
    display: none !important;
}

body.apd153-complete .apd31-filter-strip {
    min-height: 58px !important;
    margin-bottom: 28px !important;
    background: rgba(255, 255, 255, .98) !important;
    backdrop-filter: blur(14px) !important;
}

body.apd153-complete .apd31-catalog-heading {
    margin-bottom: 22px !important;
}

body.apd153-complete .apd31-catalog-heading h1 {
    font-size: 24px !important;
    line-height: 30px !important;
    font-weight: 650 !important;
}

body.apd153-complete .apd31-catalog-grid,
body.apd153-complete .apd31-catalog-grid.is-services {
    width: 100% !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 32px 14px !important;
    align-items: start !important;
}

body.apd153-complete .apd31-catalog-grid .apd5-card {
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
}

body.apd153-complete .apd31-catalog-grid .apd5-card-media,
body.apd153-complete .apd31-catalog-grid.is-services .apd5-card-media {
    aspect-ratio: 1.06 / 1 !important;
    border-radius: 14px !important;
}

body.apd153-complete .apd31-catalog-grid .apd5-card-title-row h3 {
    min-height: 0 !important;
    max-height: 36px !important;
    font-size: 14px !important;
    line-height: 18px !important;
    font-weight: 600 !important;
}

body.apd153-complete .apd31-catalog-grid :is(.apd5-card-location, .apd5-card-price, .apd5-card-price small, .apd5-card-rating) {
    font-size: 12px !important;
    line-height: 16px !important;
}

@media (min-width: 1600px) {
    body.apd153-complete .apd31-catalog-grid,
    body.apd153-complete .apd31-catalog-grid.is-services {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
}

/* Account, traveller profile and host profile ----------------------------- */
body.apd153-complete :is(.apd22-host-topbar-inner, .apd32-theme-topbar-inner) {
    width: min(calc(100% - 48px), 1120px) !important;
    max-width: 1120px !important;
    margin: 0 auto !important;
    overflow: visible !important;
}

body.apd153-complete :is(.apd22-host-brand, .apd32-theme-brand) {
    overflow: visible !important;
}

body.apd153-complete :is(.apd22-host-brand, .apd32-theme-brand) img {
    width: 112px !important;
    max-width: 112px !important;
    height: 42px !important;
    object-fit: contain !important;
    object-position: left center !important;
}

body.apd153-complete:is(.apd7-host-page-perfil-apd, .apd7-host-page-viajes-apd, .apd7-host-page-conexiones-apd, .apd32-theme-account) .apd7-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.apd153-complete:is(.apd7-host-page-perfil-apd, .apd7-host-page-viajes-apd, .apd7-host-page-conexiones-apd, .apd32-theme-account) .apd7-account-layout {
    width: min(calc(100% - 48px), 1120px) !important;
    max-width: 1120px !important;
    min-height: calc(100dvh - 82px) !important;
    margin: 0 auto !important;
    padding: 42px 0 80px !important;
    display: grid !important;
    grid-template-columns: 240px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 48px !important;
}

body.apd153-complete .apd7-account-rail {
    position: sticky !important;
    top: 104px !important;
    width: 100% !important;
    min-width: 0 !important;
}

body.apd153-complete .apd7-account-content {
    width: 100% !important;
    max-width: 820px !important;
    min-width: 0 !important;
    margin: 0 !important;
}

body.apd153-complete .apd29-profile-heading {
    margin: 0 0 24px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
}

body.apd153-complete .apd29-profile-heading h1 {
    margin: 0 !important;
    font-size: 32px !important;
    line-height: 38px !important;
    font-weight: 650 !important;
}

body.apd153-complete .apd29-profile-heading a {
    min-height: 40px !important;
    padding: 0 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    border-radius: 10px !important;
    color: #222 !important;
    background: #f2f2f2 !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}

body.apd153-complete .apd29-profile-summary {
    display: grid !important;
    grid-template-columns: 280px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 36px !important;
}

body.apd153-complete .apd29-profile-summary > article {
    min-height: 220px !important;
    padding: 28px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid #e2e2e2 !important;
    border-radius: 24px !important;
    background: #fff !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .08) !important;
}

body.apd153-complete .apd29-profile-summary > article img {
    width: 104px !important;
    height: 104px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

body.apd153-complete .apd29-profile-summary > article h2 {
    margin: 16px 0 2px !important;
    font-size: 25px !important;
    line-height: 30px !important;
}

body.apd153-complete .apd29-profile-summary > div h2 {
    margin: 0 0 10px !important;
    font-size: 27px !important;
    line-height: 33px !important;
    font-weight: 650 !important;
}

body.apd153-complete .apd29-profile-summary > div p {
    max-width: 540px !important;
    color: #5f5f5f !important;
    font-size: 14px !important;
    line-height: 21px !important;
}

body.apd153-complete .apd29-profile-editor {
    width: 100% !important;
    max-width: 760px !important;
}

body.apd153-complete .apd29-editor-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 32px !important;
}

body.apd153-complete .apd29-editor-section {
    padding: 26px 0 !important;
    border-top: 1px solid #e6e6e6 !important;
}

body.apd153-complete .apd29-stamps {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
}

body.apd153-complete .apd29-editor-submit {
    min-height: 44px !important;
    padding: 0 20px !important;
    border: 0 !important;
    border-radius: 10px !important;
    color: #fff !important;
    background: var(--apd153-brand-dark) !important;
    font-weight: 650 !important;
}

/* Footer ------------------------------------------------------------------ */
body.apd153-complete .apd5-footer {
    width: 100% !important;
    margin: 0 !important;
    padding: 48px 0 24px !important;
    border-top: 1px solid #e5e5e5 !important;
    color: #222 !important;
    background: #f7f7f7 !important;
}

body.apd153-complete .apd5-footer-grid,
body.apd153-complete .apd24-footer-bottom,
body.apd153-complete .apd10-footer-meta,
body.apd153-complete .apd5-footer-bottom {
    width: min(calc(100% - 80px), var(--apd153-content)) !important;
    max-width: var(--apd153-content) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.apd153-complete .apd5-footer-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 48px !important;
}

body.apd153-complete .apd5-footer-grid > div {
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0 !important;
}

body.apd153-complete .apd5-footer-grid h3 {
    margin: 0 0 14px !important;
    color: #222 !important;
    font-size: 14px !important;
    line-height: 18px !important;
    font-weight: 650 !important;
}

body.apd153-complete .apd5-footer-grid a {
    margin: 0 0 10px !important;
    color: #3f3f3f !important;
    text-decoration: none !important;
    font-size: 13px !important;
    line-height: 18px !important;
}

body.apd153-complete .apd5-footer-grid a:hover {
    color: #111 !important;
    text-decoration: underline !important;
}

body.apd153-complete .apd24-footer-bottom,
body.apd153-complete .apd5-footer-bottom {
    min-height: 62px !important;
    margin-top: 34px !important;
    padding-top: 18px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
    border-top: 1px solid #dddddd !important;
}

body.apd153-complete .apd24-footer-legal {
    min-width: 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 7px !important;
    color: #3f3f3f !important;
    font-size: 12px !important;
    line-height: 18px !important;
}

body.apd153-complete .apd24-footer-legal :is(a, span, p) {
    width: auto !important;
    margin: 0 !important;
    display: inline !important;
    color: inherit !important;
    font: inherit !important;
}

body.apd153-complete .apd24-footer-controls {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
}

body.apd153-complete .apd24-footer-controls > :is(button, a),
body.apd153-complete .apd10-language-button,
body.apd153-complete .apd10-currency-button {
    appearance: none !important;
    width: auto !important;
    min-width: 0 !important;
    height: 36px !important;
    min-height: 36px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    border: 0 !important;
    border-radius: 8px !important;
    color: #222 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 12px !important;
    line-height: 16px !important;
    font-weight: 600 !important;
}

body.apd153-complete .apd24-footer-controls > :is(button, a):hover {
    background: #eeeeee !important;
}

body.apd153-complete .apd10-footer-social {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
}

body.apd153-complete .apd10-footer-social a {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-grid !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
}

body.apd153-complete .apd10-footer-social :is(svg, img) {
    width: 20px !important;
    max-width: 20px !important;
    height: 20px !important;
    max-height: 20px !important;
}

/* Tablet ------------------------------------------------------------------ */
@media (min-width: 768px) and (max-width: 1179px) {
    body.apd153-complete .apd31-catalog-grid,
    body.apd153-complete .apd31-catalog-grid.is-services {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    body.apd153-complete.home .apd5-main,
    body.apd153-complete .apd5-footer-grid,
    body.apd153-complete .apd24-footer-bottom {
        width: calc(100% - 48px) !important;
    }

    body.apd153-complete:is(.apd7-host-page-perfil-apd, .apd7-host-page-viajes-apd, .apd7-host-page-conexiones-apd, .apd32-theme-account) .apd7-account-layout {
        grid-template-columns: 200px minmax(0, 1fr) !important;
        gap: 32px !important;
    }

    body.apd153-complete .apd29-profile-summary {
        grid-template-columns: 230px minmax(0, 1fr) !important;
        gap: 28px !important;
    }
}

/* Mobile ------------------------------------------------------------------ */
@media (max-width: 767px) {
    body.apd153-complete {
        overflow-x: hidden !important;
    }

    body.apd153-complete #apd5-header {
        min-height: 76px !important;
        height: 76px !important;
    }

    body.apd153-complete #apd5-header .apd5-header-row {
        width: 100% !important;
        min-height: 76px !important;
        height: 76px !important;
        padding: 0 16px !important;
    }

    body.apd153-complete #apd5-header .apd5-header-search-row {
        min-height: 0 !important;
        height: 0 !important;
        padding: 0 !important;
    }

    body.apd153-complete #apd5-search {
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.apd153-complete #apd5-search .apd10-mobile-search-trigger {
        position: fixed !important;
        left: 50% !important;
        bottom: max(18px, env(safe-area-inset-bottom)) !important;
        z-index: 1700 !important;
        min-height: 52px !important;
        padding: 0 20px !important;
        transform: translateX(-50%) !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 10px !important;
        border: 0 !important;
        border-radius: 999px !important;
        color: #fff !important;
        background: var(--apd153-brand-dark) !important;
        box-shadow: 0 8px 28px rgba(0, 0, 0, .22) !important;
    }

    body.apd153-complete #apd5-search .apd5-search-panel {
        position: fixed !important;
        inset: auto 0 0 !important;
        z-index: 2600 !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: min(86dvh, 760px) !important;
        margin: 0 !important;
        padding: 20px 18px calc(18px + env(safe-area-inset-bottom)) !important;
        transform: none !important;
        overflow: auto !important;
        border: 0 !important;
        border-radius: 24px 24px 0 0 !important;
        box-shadow: 0 -14px 45px rgba(0, 0, 0, .2) !important;
    }

    body.apd153-complete #apd5-search .apd141-date-panel.is-stays {
        padding: 18px 16px 0 !important;
    }

    body.apd153-complete #apd5-search .apd5-calendar-months {
        display: block !important;
    }

    body.apd153-complete #apd5-search .apd5-calendar-month + .apd5-calendar-month {
        margin-top: 28px !important;
    }

    body.apd153-complete #apd5-search .apd15-flexible-months {
        margin-inline: 0 !important;
    }

    body.apd153-complete #apd5-search .apd5-panel-footer {
        margin-inline: -18px !important;
        padding-inline: 18px !important;
        padding-bottom: calc(10px + env(safe-area-inset-bottom)) !important;
    }

    body.apd153-complete.home .apd5-main,
    body.apd153-complete .apd23-discovery-page,
    body.apd153-complete.apd31-catalog-page .apd31-catalog,
    body.apd153-complete.apd31-services-page .apd31-catalog,
    body.apd153-complete.apd31-experiences-page .apd31-catalog {
        width: calc(100% - 24px) !important;
        max-width: none !important;
        margin: 0 auto !important;
        padding-top: 20px !important;
    }

    body.apd153-complete .apd31-filter-strip {
        position: relative !important;
        top: auto !important;
        margin: 0 -12px 20px !important;
        padding: 9px 12px !important;
    }

    body.apd153-complete .apd31-catalog-grid,
    body.apd153-complete .apd31-catalog-grid.is-services {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 26px 10px !important;
    }

    body.apd153-complete.apd5-search-results-page .apd53-results-layout {
        height: auto !important;
        min-height: 0 !important;
        display: block !important;
        overflow: visible !important;
    }

    body.apd153-complete.apd5-search-results-page .apd53-results-pane {
        height: auto !important;
        padding: 20px 14px 100px !important;
        overflow: visible !important;
    }

    body.apd153-complete.apd5-search-results-page .apd53-results-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 26px 10px !important;
    }

    body.apd153-complete.apd5-search-results-page .apd53-map-pane {
        position: fixed !important;
        inset: 76px 0 0 !important;
        z-index: 2100 !important;
        display: none !important;
        width: 100% !important;
        height: calc(100dvh - 76px) !important;
        border: 0 !important;
    }

    body.apd153-complete.apd5-search-results-page.apd53-map-visible .apd53-map-pane,
    body.apd153-complete.apd5-search-results-page.is-map-view .apd53-map-pane {
        display: block !important;
    }

    body.apd153-complete :is(.apd22-host-topbar-inner, .apd32-theme-topbar-inner) {
        width: calc(100% - 32px) !important;
    }

    body.apd153-complete:is(.apd7-host-page-perfil-apd, .apd7-host-page-viajes-apd, .apd7-host-page-conexiones-apd, .apd32-theme-account) .apd7-account-layout {
        width: calc(100% - 32px) !important;
        min-height: 0 !important;
        padding: 24px 0 56px !important;
        display: block !important;
    }

    body.apd153-complete .apd7-account-rail {
        position: static !important;
        margin-bottom: 28px !important;
        overflow-x: auto !important;
    }

    body.apd153-complete .apd7-account-content {
        max-width: none !important;
    }

    body.apd153-complete .apd29-profile-heading h1 {
        font-size: 28px !important;
        line-height: 34px !important;
    }

    body.apd153-complete .apd29-profile-summary {
        display: block !important;
    }

    body.apd153-complete .apd29-profile-summary > article {
        min-height: 0 !important;
        margin-bottom: 24px !important;
    }

    body.apd153-complete .apd29-editor-grid {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    body.apd153-complete .apd29-stamps {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.apd153-complete .apd5-footer {
        padding: 32px 0 96px !important;
    }

    body.apd153-complete .apd5-footer-grid,
    body.apd153-complete .apd24-footer-bottom,
    body.apd153-complete .apd10-footer-meta,
    body.apd153-complete .apd5-footer-bottom {
        width: calc(100% - 32px) !important;
    }

    body.apd153-complete .apd5-footer-grid {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    body.apd153-complete .apd5-footer-grid > div {
        padding: 22px 0 !important;
        border-top: 1px solid #dddddd !important;
    }

    body.apd153-complete .apd5-footer-grid > div:first-child {
        border-top: 0 !important;
    }

    body.apd153-complete .apd24-footer-bottom,
    body.apd153-complete .apd5-footer-bottom {
        margin-top: 0 !important;
        padding-top: 22px !important;
        display: flex !important;
        flex-direction: column-reverse !important;
        align-items: flex-start !important;
        gap: 14px !important;
    }

    body.apd153-complete .apd24-footer-controls {
        width: 100% !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
    }
}

@media (max-width: 430px) {
    body.apd153-complete .apd31-catalog-grid,
    body.apd153-complete .apd31-catalog-grid.is-services,
    body.apd153-complete.apd5-search-results-page .apd53-results-grid {
        grid-template-columns: 1fr !important;
    }

    body.apd153-complete .apd31-catalog-grid .apd5-card-media,
    body.apd153-complete.apd5-search-results-page .apd53-result-image {
        aspect-ratio: 1.2 / 1 !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.apd153-complete *,
    body.apd153-complete *::before,
    body.apd153-complete *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
