/* ========================================================================== 
   APD 155.0 · Visual Master measured fidelity layer
   Loaded after every historical child-theme layer. It keeps the APD identity
   while consolidating the interaction language used by the marketplace.
   ========================================================================== */

:root {
    --apd155-ink: #222222;
    --apd155-muted: #6a6a6a;
    --apd155-line: #dddddd;
    --apd155-soft: #f7f7f7;
    --apd155-panel: #ffffff;
    --apd155-brand: #0f6fe8;
    --apd155-brand-hover: #0b62d1;
    --apd155-brand-dark: #0b3475;
    --apd155-shadow-sm: 0 3px 12px rgba(0, 0, 0, .10);
    --apd155-shadow-md: 0 10px 34px rgba(0, 0, 0, .16);
    --apd155-shadow-lg: 0 18px 54px rgba(0, 0, 0, .20);
    --apd155-content: 1280px;
    --apd155-header-wide: 160px;
    --apd155-header-compact: 80px;
}

html {
    scroll-behavior: smooth;
}

html body.apd155-visual-master {
    min-width: 320px !important;
    margin: 0 !important;
    color: var(--apd155-ink) !important;
    background: #ffffff !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

html body.apd155-visual-master *,
html body.apd155-visual-master *::before,
html body.apd155-visual-master *::after {
    box-sizing: border-box;
}

html body.apd155-visual-master [hidden] {
    display: none !important;
}

html body.apd155-visual-master :where(button, input, select, textarea, a):focus-visible {
    outline: 3px solid rgba(15, 111, 232, .30) !important;
    outline-offset: 2px !important;
}

html body.apd155-visual-master :where(button, a) {
    -webkit-tap-highlight-color: transparent;
}

html body.apd155-visual-master img {
    max-width: 100%;
}

html body.apd155-visual-master img.apd155-image-error {
    visibility: hidden !important;
}

html body.apd155-visual-master :is(.apd5-card-media, .apd53-result-image, .apd31-card-media):has(img.apd155-image-error) {
    position: relative !important;
    overflow: hidden !important;
    background: linear-gradient(135deg, #f4f5f7, #e7ebf1) !important;
}

html body.apd155-visual-master :is(.apd5-card-media, .apd53-result-image, .apd31-card-media):has(img.apd155-image-error)::after {
    content: "APD";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #6f7c90;
    font-size: 18px;
    font-weight: 750;
    letter-spacing: .08em;
}

/* Header ------------------------------------------------------------------ */
html body.apd155-visual-master #apd5-header.apd5-header {
    position: sticky !important;
    top: 0 !important;
    left: 0 !important;
    z-index: 1600 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-bottom: 1px solid #ebebeb !important;
    background: rgba(255, 255, 255, .98) !important;
    box-shadow: none !important;
    backdrop-filter: saturate(180%) blur(14px) !important;
    transition: height .22s ease, box-shadow .22s ease !important;
}

html body.apd155-visual-master #apd5-header.is-compact {
    height: var(--apd155-header-compact) !important;
    min-height: var(--apd155-header-compact) !important;
    box-shadow: 0 1px 0 rgba(0, 0, 0, .04) !important;
}

html body.apd155-visual-master #apd5-header .apd5-header-row {
    position: relative !important;
    z-index: 6 !important;
    width: min(calc(100% - 64px), var(--apd155-content)) !important;
    max-width: var(--apd155-content) !important;
    min-height: 78px !important;
    height: 78px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(130px, 1fr) auto minmax(240px, 1fr) !important;
    align-items: center !important;
    gap: 24px !important;
    overflow: visible !important;
}

html body.apd155-visual-master #apd5-header .apd5-logo {
    width: 88px !important;
    min-width: 88px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    overflow: visible !important;
}

html body.apd155-visual-master #apd5-header .apd5-logo img {
    width: auto !important;
    max-width: 88px !important;
    height: 34px !important;
    max-height: 34px !important;
    object-fit: contain !important;
}

html body.apd155-visual-master #apd5-header .apd5-main-nav {
    min-width: 0 !important;
    height: 78px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: center !important;
    gap: 24px !important;
}

html body.apd155-visual-master #apd5-header .apd5-main-nav > a {
    position: relative !important;
    min-width: 76px !important;
    height: 78px !important;
    margin: 0 !important;
    padding: 8px 4px 5px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    border: 0 !important;
    color: #5d5d5d !important;
    background: transparent !important;
    text-decoration: none !important;
}

html body.apd155-visual-master #apd5-header .apd5-main-nav > a::after {
    content: "" !important;
    position: absolute !important;
    right: 12px !important;
    bottom: 0 !important;
    left: 12px !important;
    height: 2px !important;
    border-radius: 2px !important;
    background: #222 !important;
    opacity: 0 !important;
    transform: scaleX(.55) !important;
    transition: opacity .16s ease, transform .16s ease !important;
}

html body.apd155-visual-master #apd5-header .apd5-main-nav > a:is(:hover, .is-active) {
    color: #222 !important;
}

html body.apd155-visual-master #apd5-header .apd5-main-nav > a:is(:hover, .is-active)::after {
    opacity: 1 !important;
    transform: scaleX(1) !important;
}

html body.apd155-visual-master #apd5-header .apd5-main-nav > a > span {
    width: 34px !important;
    height: 34px !important;
    display: grid !important;
    place-items: center !important;
}

html body.apd155-visual-master #apd5-header .apd5-main-nav > a > span :is(svg, img) {
    width: 31px !important;
    height: 31px !important;
}

html body.apd155-visual-master #apd5-header .apd5-main-nav strong {
    font-size: 13px !important;
    line-height: 16px !important;
    font-weight: 520 !important;
    white-space: nowrap !important;
}

html body.apd155-visual-master #apd5-header .apd5-header-actions {
    position: relative !important;
    min-width: 0 !important;
    height: 78px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    overflow: visible !important;
}

html body.apd155-visual-master #apd5-header .apd5-host-trigger {
    min-width: 0 !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    color: #222 !important;
    background: transparent !important;
    text-decoration: none !important;
    font-size: 13px !important;
    line-height: 18px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
}

html body.apd155-visual-master #apd5-header .apd5-host-trigger:hover,
html body.apd155-visual-master #apd5-header .apd41-region-trigger:hover,
html body.apd155-visual-master #apd5-header :is(.apd25-account-cluster, .apd5-account-button):hover {
    background: #f2f2f2 !important;
}

html body.apd155-visual-master #apd5-header .apd41-region-trigger,
html body.apd155-visual-master #apd5-header .apd5-account-button.is-guest,
html body.apd155-visual-master #apd5-header .apd25-menu-circle {
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #f5f5f5 !important;
    box-shadow: none !important;
}

html body.apd155-visual-master #apd5-header .apd25-account-cluster {
    width: 78px !important;
    min-width: 78px !important;
    max-width: 78px !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 1px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 4px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    box-shadow: none !important;
}

html body.apd155-visual-master #apd5-header .apd25-account-avatar {
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

html body.apd155-visual-master #apd5-header .apd5-account-menu {
    position: absolute !important;
    top: 66px !important;
    right: 0 !important;
    left: auto !important;
    z-index: 2100 !important;
    width: 320px !important;
    min-width: 320px !important;
    max-width: min(320px, calc(100vw - 32px)) !important;
    max-height: min(680px, calc(100dvh - 92px)) !important;
    margin: 0 !important;
    padding: 10px !important;
    overflow: auto !important;
    border: 1px solid rgba(0, 0, 0, .08) !important;
    border-radius: 18px !important;
    background: #fff !important;
    box-shadow: var(--apd155-shadow-md) !important;
}

html body.apd155-visual-master #apd5-header .apd5-account-menu > :is(a, button) {
    width: 100% !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    border: 0 !important;
    border-radius: 10px !important;
    color: #222 !important;
    background: transparent !important;
    text-align: left !important;
    text-decoration: none !important;
    font-size: 14px !important;
    line-height: 20px !important;
}

html body.apd155-visual-master #apd5-header .apd5-account-menu > :is(a, button):hover {
    background: #f5f5f5 !important;
}

html body.apd155-visual-master #apd5-header .apd5-account-menu hr {
    height: 1px !important;
    margin: 8px 0 !important;
    border: 0 !important;
    background: #e4e4e4 !important;
}

/* Discovery and compact header states ------------------------------------ */
@media (min-width: 1180px) {
    html body.apd155-visual-master #apd5-header.is-discovery-context:not(.is-compact) {
        height: var(--apd155-header-wide) !important;
        min-height: var(--apd155-header-wide) !important;
    }

    html body.apd155-visual-master #apd5-header.is-discovery-context:not(.is-compact) > .apd5-header-search-row {
        position: relative !important;
        z-index: 5 !important;
        width: 100% !important;
        height: 82px !important;
        min-height: 82px !important;
        margin: 0 !important;
        padding: 0 24px 14px !important;
        display: flex !important;
        align-items: flex-start !important;
        justify-content: center !important;
        overflow: visible !important;
    }

    html body.apd155-visual-master #apd5-header.is-compact .apd5-main-nav,
    html body.apd155-visual-master #apd5-header.is-detail-context .apd5-main-nav {
        visibility: hidden !important;
        pointer-events: none !important;
    }

    html body.apd155-visual-master #apd5-header.is-compact .apd5-header-row,
    html body.apd155-visual-master #apd5-header.is-detail-context .apd5-header-row {
        height: var(--apd155-header-compact) !important;
        min-height: var(--apd155-header-compact) !important;
    }

    html body.apd155-visual-master #apd5-header.is-compact > .apd5-header-search-row {
        position: absolute !important;
        top: 16px !important;
        left: 50% !important;
        z-index: 8 !important;
        width: auto !important;
        height: 48px !important;
        min-height: 48px !important;
        padding: 0 !important;
        transform: translateX(-50%) !important;
        overflow: visible !important;
    }

    html body.apd155-visual-master #apd5-header.is-detail-context .apd19-detail-header-search {
        position: absolute !important;
        top: 15px !important;
        left: 50% !important;
        z-index: 8 !important;
        width: 520px !important;
        height: 50px !important;
        margin: 0 !important;
        transform: translateX(-50%) !important;
    }
}

/* Search ------------------------------------------------------------------ */
html body.apd155-visual-master #apd5-search.apd5-search {
    position: relative !important;
    z-index: 20 !important;
    width: min(850px, calc(100vw - 48px)) !important;
    max-width: 850px !important;
    height: 66px !important;
    min-height: 66px !important;
    margin: 0 auto !important;
    padding: 0 !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: var(--apd155-shadow-sm) !important;
    overflow: visible !important;
}

html body.apd155-visual-master #apd5-header.is-compact #apd5-search,
html body.apd155-visual-master #apd5-header.is-detail-context #apd5-search {
    width: 520px !important;
    max-width: 520px !important;
    height: 48px !important;
    min-height: 48px !important;
    grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1.05fr) 1px minmax(0, .75fr) auto !important;
    background: #fff !important;
}

html body.apd155-visual-master #apd5-search .apd5-search-field {
    position: relative !important;
    min-width: 0 !important;
    height: 100% !important;
    margin: 0 !important;
    overflow: visible !important;
}

html body.apd155-visual-master #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;
    color: #222 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-align: left !important;
    overflow: hidden !important;
}

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

html body.apd155-visual-master #apd5-search .apd5-search-field > button:first-child > span:first-child {
    width: 100% !important;
    margin: 0 !important;
    display: block !important;
    color: #222 !important;
    font-size: 12px !important;
    line-height: 15px !important;
    font-weight: 650 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

html body.apd155-visual-master #apd5-search .apd5-search-field > button:first-child > strong[id] {
    width: 100% !important;
    min-width: 0 !important;
    margin: 2px 0 0 !important;
    display: block !important;
    color: #6a6a6a !important;
    font-size: 13px !important;
    line-height: 17px !important;
    font-weight: 400 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

html body.apd155-visual-master #apd5-search .apd26-compact-summary {
    display: none !important;
}

html body.apd155-visual-master #apd5-header.is-compact #apd5-search .apd5-search-field > button:first-child,
html body.apd155-visual-master #apd5-header.is-detail-context #apd5-search .apd5-search-field > button:first-child {
    padding: 0 14px !important;
    justify-content: center !important;
}

html body.apd155-visual-master #apd5-header.is-compact #apd5-search .apd5-search-field > button:first-child > :is(span:first-child, strong[id]),
html body.apd155-visual-master #apd5-header.is-detail-context #apd5-search .apd5-search-field > button:first-child > :is(span:first-child, strong[id]),
html body.apd155-visual-master #apd5-header.is-compact .apd26-search-leading-icon {
    display: none !important;
}

html body.apd155-visual-master #apd5-header.is-compact #apd5-search .apd26-compact-summary,
html body.apd155-visual-master #apd5-header.is-detail-context #apd5-search .apd26-compact-summary {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    display: block !important;
    color: #4b4b4b !important;
    font-size: 12px !important;
    line-height: 18px !important;
    font-weight: 550 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

html body.apd155-visual-master #apd5-search .apd26-inline-editor {
    position: absolute !important;
    inset: 0 44px 0 18px !important;
    z-index: 15 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: none !important;
    align-items: center !important;
    border: 0 !important;
    background: #fff !important;
}

html body.apd155-visual-master #apd5-search .apd5-search-field.is-open .apd26-inline-editor {
    display: flex !important;
}

html body.apd155-visual-master #apd5-search .apd26-inline-editor input {
    width: 100% !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 14px !important;
}

html body.apd155-visual-master #apd5-search .apd5-search-separator {
    width: 1px !important;
    height: 32px !important;
    align-self: center !important;
    background: #dddddd !important;
}

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

html body.apd155-visual-master #apd5-header.is-compact #apd5-search .apd5-search-submit,
html body.apd155-visual-master #apd5-header.is-detail-context #apd5-search .apd5-search-submit {
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 4px !important;
    padding: 0 !important;
}

html body.apd155-visual-master #apd5-search .apd5-search-submit:hover {
    background: var(--apd155-brand-hover) !important;
    box-shadow: 0 4px 14px rgba(15, 111, 232, .28) !important;
}

html body.apd155-visual-master #apd5-search .apd5-search-submit:active {
    transform: scale(.96) !important;
}

html body.apd155-visual-master #apd5-search .apd5-search-field > :is(.apd26-field-clear, .apd28-date-clear, .apd16-search-clear) {
    position: absolute !important;
    top: 50% !important;
    right: 11px !important;
    z-index: 18 !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;
    display: flex !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 18px/1 Arial, sans-serif !important;
}

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

/* Search panels ----------------------------------------------------------- */
html body.apd155-visual-master #apd5-search .apd5-search-panel {
    z-index: 2200 !important;
    margin: 10px 0 0 !important;
    padding: 22px !important;
    overflow: auto !important;
    overscroll-behavior: contain !important;
    border: 1px solid rgba(0, 0, 0, .08) !important;
    border-radius: 24px !important;
    color: #222 !important;
    background: #fff !important;
    box-shadow: var(--apd155-shadow-lg) !important;
}

html body.apd155-visual-master #apd5-search .apd5-location-panel {
    left: 0 !important;
    width: 430px !important;
    min-width: 430px !important;
    max-width: min(430px, calc(100vw - 32px)) !important;
    max-height: min(620px, calc(100dvh - 188px)) !important;
}

html body.apd155-visual-master #apd5-search .apd141-date-panel.is-stays,
html body.apd155-visual-master #apd5-search .apd5-date-panel {
    left: 50% !important;
    width: min(850px, calc(100vw - 48px)) !important;
    min-width: min(850px, calc(100vw - 48px)) !important;
    max-width: min(850px, calc(100vw - 48px)) !important;
    max-height: min(620px, calc(100dvh - 188px)) !important;
    transform: translateX(-50%) !important;
}

html body.apd155-visual-master #apd5-search .apd5-guests-panel,
html body.apd155-visual-master #apd5-search .apd5-service-panel {
    right: 0 !important;
    left: auto !important;
    width: 390px !important;
    min-width: 390px !important;
    max-width: min(390px, calc(100vw - 32px)) !important;
    max-height: min(620px, calc(100dvh - 188px)) !important;
}

html body.apd155-visual-master #apd5-search .apd5-panel-title {
    min-height: 40px !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
}

html body.apd155-visual-master #apd5-search .apd5-panel-title h2,
html body.apd155-visual-master #apd5-search .apd5-panel-title strong {
    min-width: 0 !important;
    margin: 0 !important;
    color: #222 !important;
    font-size: 21px !important;
    line-height: 26px !important;
    font-weight: 650 !important;
}

html body.apd155-visual-master #apd5-search .apd5-panel-title > :is(button, div > button) {
    flex: 0 0 auto !important;
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #f2f2f2 !important;
    font-size: 18px !important;
}

html body.apd155-visual-master #apd5-search .apd5-panel-filter {
    width: 100% !important;
    height: 52px !important;
    margin: 0 0 16px !important;
    padding: 0 16px !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    border: 1px solid #cfcfcf !important;
    border-radius: 12px !important;
    background: #fff !important;
}

html body.apd155-visual-master #apd5-search .apd5-panel-filter input {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 14px !important;
}

html body.apd155-visual-master #apd5-search .apd5-destination-option {
    width: 100% !important;
    min-height: 58px !important;
    margin: 0 !important;
    padding: 8px !important;
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 12px !important;
    border: 0 !important;
    border-radius: 12px !important;
    color: #222 !important;
    background: transparent !important;
    text-align: left !important;
}

html body.apd155-visual-master #apd5-search .apd5-destination-option:hover {
    background: #f5f5f5 !important;
}

html body.apd155-visual-master #apd5-search .apd5-destination-option > span {
    width: 48px !important;
    height: 48px !important;
    display: grid !important;
    place-items: center !important;
    border-radius: 12px !important;
    background: #f2f2f2 !important;
}

html body.apd155-visual-master #apd5-search .apd5-destination-option strong,
html body.apd155-visual-master #apd5-search .apd5-destination-option small {
    display: block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

html body.apd155-visual-master #apd5-search .apd5-destination-option strong {
    color: #222 !important;
    font-size: 14px !important;
    line-height: 19px !important;
    font-weight: 600 !important;
}

html body.apd155-visual-master #apd5-search .apd5-destination-option small {
    color: #717171 !important;
    font-size: 12px !important;
    line-height: 17px !important;
}

html body.apd155-visual-master #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: #eaeaea !important;
}

html body.apd155-visual-master #apd5-search .apd15-date-mode button {
    min-width: 0 !important;
    height: 32px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 0 !important;
    border-radius: 999px !important;
    color: #444 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 12px !important;
}

html body.apd155-visual-master #apd5-search .apd15-date-mode button.is-active {
    color: #222 !important;
    background: #fff !important;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .16) !important;
}

html body.apd155-visual-master #apd5-search .apd5-calendar-months {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 34px !important;
}

html body.apd155-visual-master #apd5-search .apd15-flexible-months {
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    scroll-snap-type: x proximity !important;
    scrollbar-width: none !important;
}

html body.apd155-visual-master #apd5-search .apd15-flexible-months::-webkit-scrollbar {
    display: none !important;
}

html body.apd155-visual-master #apd5-search .apd15-flexible-months > button {
    flex: 0 0 96px !important;
    width: 96px !important;
    min-width: 96px !important;
    height: 108px !important;
    margin: 0 !important;
    padding: 12px 8px !important;
    scroll-snap-align: start !important;
    border: 1px solid #d6d6d6 !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: none !important;
}

html body.apd155-visual-master #apd5-search .apd15-flexible-months > button.is-active {
    border: 2px solid #222 !important;
}

html body.apd155-visual-master #apd5-search .apd5-guest-row {
    width: 100% !important;
    min-height: 76px !important;
    margin: 0 !important;
    padding: 14px 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 20px !important;
    border-bottom: 1px solid #e6e6e6 !important;
}

html body.apd155-visual-master #apd5-search .apd5-guest-row > div:first-child {
    min-width: 0 !important;
}

html body.apd155-visual-master #apd5-search .apd5-guest-row > div:first-child strong {
    display: block !important;
    color: #222 !important;
    font-size: 16px !important;
    line-height: 21px !important;
    font-weight: 600 !important;
}

html body.apd155-visual-master #apd5-search .apd5-guest-row > div:first-child span {
    display: block !important;
    color: #717171 !important;
    font-size: 13px !important;
    line-height: 18px !important;
}

html body.apd155-visual-master #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;
}

html body.apd155-visual-master #apd5-search .apd5-guest-row [data-counter] {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 1px solid #b0b0b0 !important;
    border-radius: 50% !important;
    color: #555 !important;
    background: #fff !important;
    box-shadow: none !important;
    font-size: 18px !important;
}

html body.apd155-visual-master #apd5-search .apd5-guest-row [data-counter]:disabled {
    color: #b8b8b8 !important;
    border-color: #e4e4e4 !important;
    cursor: not-allowed !important;
}

html body.apd155-visual-master #apd5-search .apd5-panel-footer {
    min-height: 64px !important;
    margin: 16px -22px -22px !important;
    padding: 14px 22px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
    border-top: 1px solid #e5e5e5 !important;
    background: #fff !important;
}

html body.apd155-visual-master #apd5-search .apd5-panel-footer button {
    width: auto !important;
    min-width: 0 !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

html body.apd155-visual-master #apd5-search .apd5-panel-footer button:last-child {
    color: #fff !important;
    background: var(--apd155-brand-dark) !important;
}

/* Home and reusable card rails ------------------------------------------- */
html body.apd155-visual-master.home main.apd5-main,
html body.apd155-visual-master.home main.apd29-video-home,
html body.apd155-visual-master.home main.apd40-home,
html body.apd155-visual-master.home main.apd51-home-reference {
    position: relative !important;
    top: auto !important;
    width: min(calc(100% - 64px), var(--apd155-content)) !important;
    max-width: var(--apd155-content) !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 26px 0 72px !important;
    transform: none !important;
    overflow: visible !important;
}

html body.apd155-visual-master.home main.apd5-main::before,
html body.apd155-visual-master.home main.apd5-main::after {
    display: none !important;
}

html body.apd155-visual-master.home .apd5-main > :first-child {
    margin-top: 0 !important;
}

html body.apd155-visual-master .apd5-rail {
    width: 100% !important;
    max-width: none !important;
    margin: 34px 0 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}

html body.apd155-visual-master .apd5-rail-header,
html body.apd155-visual-master .apd5-section-heading {
    min-height: 34px !important;
    margin: 0 0 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 18px !important;
}

html body.apd155-visual-master .apd5-rail-header h2,
html body.apd155-visual-master .apd5-section-heading h2 {
    min-width: 0 !important;
    margin: 0 !important;
    color: #222 !important;
    font-size: 21px !important;
    line-height: 27px !important;
    font-weight: 650 !important;
}

html body.apd155-visual-master .apd5-card-rail {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-auto-flow: column !important;
    grid-auto-columns: calc((100% - 72px) / 7) !important;
    gap: 12px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x proximity !important;
    scrollbar-width: none !important;
}

html body.apd155-visual-master .apd5-card-rail::-webkit-scrollbar {
    display: none !important;
}

html body.apd155-visual-master .apd5-card {
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 0 2px !important;
    scroll-snap-align: start !important;
    color: #222 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    transition: transform .18s ease !important;
}

html body.apd155-visual-master .apd5-card:hover {
    transform: translateY(-2px) !important;
}

html body.apd155-visual-master .apd5-card-media {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1.04 / 1 !important;
    margin: 0 0 8px !important;
    overflow: hidden !important;
    border-radius: 14px !important;
    background: #eeeeee !important;
}

html body.apd155-visual-master .apd5-card-media img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform .28s ease !important;
}

html body.apd155-visual-master .apd5-card:hover .apd5-card-media img {
    transform: scale(1.025) !important;
}

html body.apd155-visual-master .apd5-card-title-row,
html body.apd155-visual-master .apd5-card-title-row h3 {
    min-width: 0 !important;
}

html body.apd155-visual-master .apd5-card-title-row h3 {
    margin: 0 !important;
    display: -webkit-box !important;
    overflow: hidden !important;
    color: #222 !important;
    font-size: 13px !important;
    line-height: 17px !important;
    font-weight: 600 !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
}

html body.apd155-visual-master .apd5-card :is(.apd5-card-location, .apd5-card-price, .apd5-card-rating) {
    margin-top: 2px !important;
    color: #6a6a6a !important;
    font-size: 11px !important;
    line-height: 15px !important;
}

/* Search results and map -------------------------------------------------- */
html body.apd155-visual-master.apd5-search-results-page main {
    min-height: 0 !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-filter-strip {
    position: sticky !important;
    top: var(--apd155-header-compact) !important;
    z-index: 920 !important;
    width: 100% !important;
    min-height: 62px !important;
    margin: 0 !important;
    overflow-x: auto !important;
    background: rgba(255, 255, 255, .98) !important;
    border-bottom: 1px solid #e6e6e6 !important;
    backdrop-filter: blur(14px) !important;
    scrollbar-width: none !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-filter-strip::-webkit-scrollbar {
    display: none !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-results-layout {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-results-pane {
    min-width: 0 !important;
    background: #fff !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-results-heading {
    margin: 0 0 16px !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-results-heading h1 {
    margin: 0 !important;
    color: #222 !important;
    font-size: 24px !important;
    line-height: 30px !important;
    font-weight: 650 !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-results-grid {
    width: 100% !important;
    display: grid !important;
    align-items: start !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-result-card {
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 0 4px !important;
    border: 0 !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: none !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-result-image {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 1.04 / 1 !important;
    overflow: hidden !important;
    border-radius: 14px !important;
    background: #eef0f2 !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-result-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-map-pane,
html body.apd155-visual-master.apd5-search-results-page .apd53-results-map {
    min-width: 0 !important;
    background: #e8f1df !important;
}

html body.apd155-visual-master.apd5-search-results-page .apd53-results-map:empty::before {
    content: "Cargando mapa…";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #5d6954;
    font-size: 14px;
}

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

    html body.apd155-visual-master.apd5-search-results-page .apd53-results-pane {
        height: 100% !important;
        padding: 24px 24px 64px 30px !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
    }

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

    html body.apd155-visual-master.apd5-search-results-page .apd53-map-pane,
    html body.apd155-visual-master.apd5-search-results-page .apd53-results-map {
        position: relative !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 620px !important;
        overflow: hidden !important;
    }
}

@media (min-width: 1800px) {
    html body.apd155-visual-master.apd5-search-results-page .apd53-results-layout {
        grid-template-columns: minmax(0, 54%) minmax(0, 46%) !important;
    }

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

/* Services, experiences and catalogues ----------------------------------- */
html body.apd155-visual-master :is(.apd31-catalog, .apd23-discovery-page, .apd23-service-directory) {
    min-height: 0 !important;
}

html body.apd155-visual-master main.apd31-catalog,
html body.apd155-visual-master :is(.apd31-catalog-page, .apd31-services-page, .apd31-experiences-page) main.apd5-main {
    width: min(calc(100% - 64px), var(--apd155-content)) !important;
    max-width: var(--apd155-content) !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 30px 0 72px !important;
    transform: none !important;
}

html body.apd155-visual-master .apd23-service-category-rail,
html body.apd155-visual-master .apd31-filter-strip {
    width: 100% !important;
    display: flex !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
}

html body.apd155-visual-master .apd23-service-category-rail::-webkit-scrollbar,
html body.apd155-visual-master .apd31-filter-strip::-webkit-scrollbar {
    display: none !important;
}

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

html body.apd155-visual-master .apd31-catalog-grid .apd5-card-media {
    aspect-ratio: 1.04 / 1 !important;
}

/* Detail pages ------------------------------------------------------------ */
html body.apd155-visual-master :is(.apd31-detail, .apd31-listing-detail, .apd31-experience-detail, .apd31-service-detail) {
    width: min(calc(100% - 64px), 1120px) !important;
    max-width: 1120px !important;
    margin: 0 auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

html body.apd155-visual-master :is(.apd31-detail-gallery, .apd-listing-gallery) img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

html body.apd155-visual-master :is(.apd31-detail-card, .apd-listing-booking-card, .apd31-reservation-card) {
    border: 1px solid #dddddd !important;
    border-radius: 16px !important;
    background: #fff !important;
    box-shadow: var(--apd155-shadow-sm) !important;
}

html body.apd155-visual-master :is(.apd31-detail, .apd31-listing-detail) :is(button, .button, input[type="submit"]).is-primary,
html body.apd155-visual-master :is(.apd31-detail, .apd31-listing-detail) .apd31-primary-button {
    border-radius: 10px !important;
    color: #fff !important;
    background: var(--apd155-brand-dark) !important;
}

/* Account and profile ----------------------------------------------------- */
html body.apd155-visual-master :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;
}

html body.apd155-visual-master: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 - 80px) !important;
    margin: 0 auto !important;
    padding: 38px 0 72px !important;
    display: grid !important;
    grid-template-columns: 240px minmax(0, 1fr) !important;
    gap: 48px !important;
    align-items: start !important;
}

html body.apd155-visual-master .apd29-profile-view,
html body.apd155-visual-master .apd29-profile-editor {
    width: 100% !important;
    max-width: 880px !important;
    min-width: 0 !important;
    margin: 0 !important;
}

html body.apd155-visual-master .apd29-profile-summary {
    width: 100% !important;
    max-width: 820px !important;
    display: grid !important;
    grid-template-columns: 260px minmax(0, 1fr) !important;
    gap: 36px !important;
    align-items: center !important;
}

html body.apd155-visual-master .apd29-profile-card {
    min-width: 0 !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 20px !important;
    background: #fff !important;
    box-shadow: var(--apd155-shadow-sm) !important;
}

html body.apd155-visual-master .apd29-facts-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 28px !important;
}

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

/* Footer ------------------------------------------------------------------ */
html body.apd155-visual-master .apd5-footer {
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 48px 0 24px !important;
    border: 0 !important;
    border-top: 1px solid #e5e5e5 !important;
    color: #222 !important;
    background: #f7f7f7 !important;
    transform: none !important;
}

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

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

html body.apd155-visual-master .apd5-footer-grid > div {
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}

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

html body.apd155-visual-master .apd5-footer-grid a {
    width: auto !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    display: inline !important;
    color: #3f3f3f !important;
    background: transparent !important;
    text-decoration: none !important;
    font-size: 13px !important;
    line-height: 18px !important;
    font-weight: 400 !important;
}

html body.apd155-visual-master .apd5-footer-grid a:hover {
    text-decoration: underline !important;
}

html body.apd155-visual-master :is(.apd24-footer-bottom, .apd5-footer-bottom) {
    min-height: 62px !important;
    margin-top: 34px !important;
    padding: 18px 0 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
    border-top: 1px solid #dddddd !important;
}

html body.apd155-visual-master .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;
}

html body.apd155-visual-master .apd24-footer-legal :is(a, span, p) {
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline !important;
    color: inherit !important;
    background: transparent !important;
    font: inherit !important;
}

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

html body.apd155-visual-master .apd24-footer-controls > :is(button, a),
html body.apd155-visual-master .apd10-language-button,
html body.apd155-visual-master .apd10-currency-button {
    appearance: none !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 36px !important;
    min-height: 36px !important;
    margin: 0 !important;
    padding: 0 9px !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;
}

html body.apd155-visual-master .apd24-footer-controls > :is(button, a):hover {
    background: #ebebeb !important;
}

html body.apd155-visual-master .apd10-footer-social {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
}

html body.apd155-visual-master .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;
}

html body.apd155-visual-master .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) {
    html body.apd155-visual-master #apd5-header,
    html body.apd155-visual-master #apd5-header.is-discovery-context:not(.is-compact) {
        height: 132px !important;
        min-height: 132px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-header-row {
        width: calc(100% - 40px) !important;
        height: 68px !important;
        min-height: 68px !important;
        grid-template-columns: 100px minmax(0, 1fr) auto !important;
        gap: 16px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav {
        height: 68px !important;
        gap: 12px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a {
        min-width: 64px !important;
        height: 68px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a > span {
        width: 28px !important;
        height: 28px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-host-trigger {
        display: none !important;
    }

    html body.apd155-visual-master #apd5-header > .apd5-header-search-row {
        position: relative !important;
        z-index: 5 !important;
        height: 64px !important;
        padding: 0 20px 10px !important;
        display: flex !important;
        justify-content: center !important;
        overflow: visible !important;
    }

    html body.apd155-visual-master #apd5-search.apd5-search {
        width: min(760px, calc(100vw - 40px)) !important;
        max-width: 760px !important;
        height: 54px !important;
        min-height: 54px !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-submit {
        width: 42px !important;
        min-width: 42px !important;
        height: 42px !important;
        min-height: 42px !important;
        margin: 6px !important;
        padding: 0 !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-submit span:not(.screen-reader-text) {
        display: none !important;
    }

    html body.apd155-visual-master.home main.apd5-main,
    html body.apd155-visual-master main.apd31-catalog,
    html body.apd155-visual-master .apd5-footer-grid,
    html body.apd155-visual-master .apd24-footer-bottom {
        width: calc(100% - 48px) !important;
    }

    html body.apd155-visual-master .apd5-card-rail {
        grid-auto-columns: calc((100% - 48px) / 5) !important;
    }

    html body.apd155-visual-master .apd31-catalog-grid,
    html body.apd155-visual-master .apd31-catalog-grid.is-services {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    html body.apd155-visual-master: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% - 48px) !important;
        grid-template-columns: 200px minmax(0, 1fr) !important;
        gap: 32px !important;
    }
}

/* Mobile ------------------------------------------------------------------ */
@media (max-width: 767px) {
    :root {
        --apd155-header-compact: 68px;
    }

    /* La interfaz 154 usa el buscador integrado del encabezado. Ocultamos el
       disparador flotante heredado para que nunca aparezcan dos buscadores. */
    .apd10-mobile-search-trigger {
        display: none !important;
    }

    body.apd155-search-open {
        overflow: hidden !important;
        overscroll-behavior: none;
    }

    body.apd155-search-open .apd5-search-panel.is-open {
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    html {
        scroll-padding-top: 68px;
    }

    html body.apd155-visual-master #apd5-header,
    html body.apd155-visual-master #apd5-header.is-discovery-context:not(.is-compact),
    html body.apd155-visual-master #apd5-header.is-compact,
    html body.apd155-visual-master #apd5-header.is-detail-context {
        height: 124px !important;
        min-height: 124px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-header-row {
        width: 100% !important;
        height: 64px !important;
        min-height: 64px !important;
        padding: 0 16px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-logo {
        width: 76px !important;
        min-width: 76px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-logo img {
        max-width: 76px !important;
        height: 30px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav,
    html body.apd155-visual-master #apd5-header .apd5-host-trigger,
    html body.apd155-visual-master #apd5-header .apd41-region-trigger {
        display: none !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-header-actions {
        height: 52px !important;
        margin-left: auto !important;
    }

    html body.apd155-visual-master #apd5-header .apd25-account-cluster {
        width: 76px !important;
        min-width: 76px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-account-menu {
        position: fixed !important;
        top: 60px !important;
        right: 12px !important;
        width: min(320px, calc(100vw - 24px)) !important;
        min-width: 0 !important;
        max-height: calc(100dvh - 74px) !important;
    }

    html body.apd155-visual-master #apd5-header > .apd5-header-search-row,
    html body.apd155-visual-master #apd5-header.is-detail-context .apd19-detail-header-search {
        position: absolute !important;
        top: 64px !important;
        right: 0 !important;
        left: 0 !important;
        z-index: 7 !important;
        width: 100% !important;
        height: 60px !important;
        min-height: 60px !important;
        margin: 0 !important;
        padding: 7px 12px !important;
        display: block !important;
        transform: none !important;
        overflow: visible !important;
    }

    html body.apd155-visual-master #apd5-header.is-compact,
    html body.apd155-visual-master #apd5-header.is-detail-context {
        height: 68px !important;
        min-height: 68px !important;
    }

    html body.apd155-visual-master #apd5-header.is-compact > .apd5-header-search-row,
    html body.apd155-visual-master #apd5-header.is-detail-context .apd19-detail-header-search {
        top: 9px !important;
        right: 96px !important;
        left: 96px !important;
        width: auto !important;
        height: 50px !important;
        min-height: 50px !important;
        padding: 0 !important;
    }

    html body.apd155-visual-master #apd5-header.is-compact .apd5-logo,
    html body.apd155-visual-master #apd5-header.is-detail-context .apd5-logo {
        width: 42px !important;
        min-width: 42px !important;
        overflow: hidden !important;
    }

    html body.apd155-visual-master #apd5-header.is-compact .apd5-logo img,
    html body.apd155-visual-master #apd5-header.is-detail-context .apd5-logo img {
        width: 76px !important;
        max-width: 76px !important;
        object-position: left center !important;
    }

    html body.apd155-visual-master #apd5-search.apd5-search,
    html body.apd155-visual-master #apd5-header.is-compact #apd5-search,
    html body.apd155-visual-master #apd5-header.is-detail-context #apd5-search {
        width: 100% !important;
        max-width: none !important;
        height: 48px !important;
        min-height: 48px !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        border-radius: 999px !important;
        background: #fff !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-field:not([data-search-field="location"]),
    html body.apd155-visual-master #apd5-search .apd5-search-separator {
        display: none !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-field[data-search-field="location"] > button:first-child {
        padding: 0 16px !important;
        justify-content: center !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-field[data-search-field="location"] > button:first-child > span:first-child {
        display: none !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-field[data-search-field="location"] > button:first-child > strong[id],
    html body.apd155-visual-master #apd5-header.is-compact #apd5-search .apd26-compact-summary,
    html body.apd155-visual-master #apd5-header.is-detail-context #apd5-search .apd26-compact-summary {
        display: block !important;
        margin: 0 !important;
        color: #4b4b4b !important;
        font-size: 13px !important;
        line-height: 18px !important;
        font-weight: 550 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-submit,
    html body.apd155-visual-master #apd5-header.is-compact #apd5-search .apd5-search-submit,
    html body.apd155-visual-master #apd5-header.is-detail-context #apd5-search .apd5-search-submit {
        width: 40px !important;
        min-width: 40px !important;
        height: 40px !important;
        min-height: 40px !important;
        margin: 4px !important;
        padding: 0 !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-submit span:not(.screen-reader-text) {
        display: none !important;
    }

    html body.apd155-visual-master.apd155-search-open::before {
        content: "" !important;
        position: fixed !important;
        inset: 0 !important;
        z-index: 2140 !important;
        background: rgba(0, 0, 0, .28) !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-panel {
        position: fixed !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        z-index: 2200 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        max-height: min(86dvh, 760px) !important;
        margin: 0 !important;
        padding: 22px 20px calc(20px + env(safe-area-inset-bottom)) !important;
        transform: none !important;
        border: 0 !important;
        border-radius: 24px 24px 0 0 !important;
        box-shadow: 0 -16px 44px rgba(0, 0, 0, .22) !important;
        animation: apd155-sheet-in .22s ease-out both !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-panel-footer {
        position: sticky !important;
        bottom: calc(-20px - env(safe-area-inset-bottom)) !important;
        z-index: 3 !important;
        margin: 16px -20px calc(-20px - env(safe-area-inset-bottom)) !important;
        padding: 14px 20px calc(14px + env(safe-area-inset-bottom)) !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-calendar-months {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }

    html body.apd155-visual-master #apd5-search .apd15-flexible-months > button {
        flex-basis: 92px !important;
        width: 92px !important;
        min-width: 92px !important;
    }

    html body.apd155-visual-master.home main.apd5-main,
    html body.apd155-visual-master.home main.apd29-video-home,
    html body.apd155-visual-master.home main.apd40-home,
    html body.apd155-visual-master.home main.apd51-home-reference,
    html body.apd155-visual-master main.apd31-catalog,
    html body.apd155-visual-master :is(.apd31-catalog-page, .apd31-services-page, .apd31-experiences-page) main.apd5-main {
        width: 100% !important;
        margin: 0 !important;
        padding: 20px 16px 58px !important;
    }

    html body.apd155-visual-master .apd5-rail {
        margin-top: 28px !important;
    }

    html body.apd155-visual-master .apd5-rail-header h2,
    html body.apd155-visual-master .apd5-section-heading h2 {
        font-size: 19px !important;
        line-height: 24px !important;
    }

    html body.apd155-visual-master .apd5-card-rail {
        margin-right: -16px !important;
        padding-right: 16px !important;
        grid-auto-columns: minmax(0, 72vw) !important;
        gap: 12px !important;
    }

    html body.apd155-visual-master .apd5-card-media {
        aspect-ratio: 1.18 / 1 !important;
    }

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

    html body.apd155-visual-master.apd5-search-results-page .apd53-filter-strip {
        top: 68px !important;
        min-height: 54px !important;
    }

    html body.apd155-visual-master.apd5-search-results-page .apd53-results-layout {
        display: block !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    html body.apd155-visual-master.apd5-search-results-page .apd53-results-pane {
        height: auto !important;
        padding: 20px 16px 72px !important;
        overflow: visible !important;
    }

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

    html body.apd155-visual-master.apd5-search-results-page .apd53-map-pane {
        position: relative !important;
        width: 100% !important;
        height: 62dvh !important;
        min-height: 440px !important;
        display: none !important;
    }

    html body.apd155-visual-master.apd5-search-results-page.is-map-open .apd53-map-pane {
        display: block !important;
    }

    html body.apd155-visual-master :is(.apd31-detail, .apd31-listing-detail, .apd31-experience-detail, .apd31-service-detail) {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding-right: 16px !important;
        padding-left: 16px !important;
    }

    html body.apd155-visual-master:is(.apd7-host-page-perfil-apd, .apd7-host-page-viajes-apd, .apd7-host-page-conexiones-apd, .apd32-theme-account) .apd7-account-layout {
        width: 100% !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 24px 16px 56px !important;
        display: block !important;
    }

    html body.apd155-visual-master .apd7-account-sidebar {
        width: 100% !important;
        margin: 0 0 28px !important;
        overflow-x: auto !important;
    }

    html body.apd155-visual-master .apd29-profile-summary {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }

    html body.apd155-visual-master .apd29-facts-grid {
        grid-template-columns: 1fr !important;
    }

    html body.apd155-visual-master .apd29-stamps {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    html body.apd155-visual-master .apd5-footer {
        padding: 34px 0 18px !important;
    }

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

    html body.apd155-visual-master .apd5-footer-grid {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    html body.apd155-visual-master .apd5-footer-grid > div {
        padding: 22px 0 !important;
        border-bottom: 1px solid #dddddd !important;
    }

    html body.apd155-visual-master :is(.apd24-footer-bottom, .apd5-footer-bottom) {
        margin-top: 0 !important;
        padding-top: 20px !important;
        flex-direction: column-reverse !important;
        align-items: flex-start !important;
        gap: 14px !important;
    }

    html body.apd155-visual-master .apd24-footer-controls {
        width: 100% !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
    }
}

@media (max-width: 479px) {
    html body.apd155-visual-master #apd5-header.is-compact > .apd5-header-search-row,
    html body.apd155-visual-master #apd5-header.is-detail-context .apd19-detail-header-search {
        right: 86px !important;
        left: 72px !important;
    }

    html body.apd155-visual-master .apd31-catalog-grid,
    html body.apd155-visual-master .apd31-catalog-grid.is-services,
    html body.apd155-visual-master.apd5-search-results-page .apd53-results-grid {
        grid-template-columns: 1fr !important;
    }

    html body.apd155-visual-master .apd5-card-rail {
        grid-auto-columns: minmax(0, 82vw) !important;
    }
}

@keyframes apd155-sheet-in {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    html body.apd155-visual-master *,
    html body.apd155-visual-master *::before,
    html body.apd155-visual-master *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* ========================================================================== 
   APD 155.0 · measured homepage reference corrections
   Source: APD Twin Capture 11.0, desktop 1440×900 and tablet 1024×1366.
   Brand-specific assets/colors remain APD. Geometry and interaction cadence
   follow the measured reference instead of historical approximation layers.
   ========================================================================== */

:root {
    --apd155-content: 1600px;
    --apd155-header-wide: 192px;
    --apd155-header-compact: 80px;
    --apd155-ease-standard: cubic-bezier(.2, 0, 0, 1);
    --apd155-ease-enter: cubic-bezier(.2, .8, .2, 1);
}

html body.apd155-visual-master {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    color: #222222 !important;
    letter-spacing: normal !important;
    text-rendering: optimizeLegibility;
}

html body.apd155-visual-master :where(button, a, input) {
    font-family: inherit !important;
}

html body.apd155-visual-master :where(button, a) {
    transition-timing-function: var(--apd155-ease-standard) !important;
}

/* Desktop reference: 48 px content edge, 96 px top rail, search at y=102. */
@media (min-width: 1180px) {
    html body.apd155-visual-master #apd5-header.is-discovery-context:not(.is-compact) {
        height: 192px !important;
        min-height: 192px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-header-row {
        width: min(calc(100% - 96px), var(--apd155-content)) !important;
        max-width: var(--apd155-content) !important;
        height: 96px !important;
        min-height: 96px !important;
        grid-template-columns: minmax(270px, 1fr) auto minmax(270px, 1fr) !important;
        gap: 24px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-logo {
        width: 102px !important;
        min-width: 102px !important;
        height: 80px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-logo img {
        width: auto !important;
        max-width: 94px !important;
        height: 36px !important;
        max-height: 36px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav {
        height: 96px !important;
        align-items: center !important;
        gap: 35px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a {
        min-width: 0 !important;
        height: 36px !important;
        padding: 0 !important;
        flex-direction: row !important;
        justify-content: center !important;
        gap: 7px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a:nth-child(1) { width: 85px !important; }
    html body.apd155-visual-master #apd5-header .apd5-main-nav > a:nth-child(2) { width: 144px !important; }
    html body.apd155-visual-master #apd5-header .apd5-main-nav > a:nth-child(3) { width: 128px !important; }
    html body.apd155-visual-master #apd5-header .apd5-main-nav > a:nth-child(4) { width: 109px !important; }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a::after {
        right: 9px !important;
        bottom: -15px !important;
        left: 9px !important;
        height: 2px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a > span {
        width: 32px !important;
        min-width: 32px !important;
        height: 32px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a > span :is(svg, img) {
        width: 30px !important;
        height: 30px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav strong {
        font-size: 14px !important;
        line-height: 20px !important;
        font-weight: 500 !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-header-actions {
        height: 96px !important;
        gap: 12px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-host-trigger {
        width: 174px !important;
        min-width: 174px !important;
        height: 40px !important;
        padding: 0 10px !important;
        font-size: 14px !important;
        line-height: 20px !important;
        font-weight: 600 !important;
    }

    html body.apd155-visual-master #apd5-header .apd41-region-trigger,
    html body.apd155-visual-master #apd5-header .apd5-account-button.is-guest,
    html body.apd155-visual-master #apd5-header .apd25-menu-circle {
        width: 40px !important;
        min-width: 40px !important;
        max-width: 40px !important;
        height: 40px !important;
        min-height: 40px !important;
        max-height: 40px !important;
    }

    html body.apd155-visual-master #apd5-header.is-discovery-context:not(.is-compact) > .apd5-header-search-row {
        height: 96px !important;
        min-height: 96px !important;
        padding: 6px 24px 18px !important;
        align-items: flex-start !important;
    }

    html body.apd155-visual-master #apd5-search.apd5-search {
        width: min(850px, calc(100vw - 48px)) !important;
        max-width: 850px !important;
        height: 72px !important;
        min-height: 72px !important;
        background: #ffffff !important;
        border-color: #dddddd !important;
        box-shadow: 0 3px 12px rgba(0, 0, 0, .10) !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-field > button:first-child {
        padding-right: 24px !important;
        padding-left: 24px !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-field > button:first-child:is(:hover, :focus-visible),
    html body.apd155-visual-master #apd5-search .apd5-search-field.is-open > button:first-child {
        background: #ebebeb !important;
        box-shadow: none !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-field.is-open > button:first-child {
        background: #ffffff !important;
        box-shadow: 0 4px 14px rgba(0, 0, 0, .12) !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-submit {
        width: 48px !important;
        min-width: 48px !important;
        max-width: 48px !important;
        height: 48px !important;
        min-height: 48px !important;
        max-height: 48px !important;
        margin: 9px !important;
        padding: 0 !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-submit span:not(.screen-reader-text) {
        display: none !important;
    }

    html body.apd155-visual-master.home main.apd5-main,
    html body.apd155-visual-master.home main.apd29-video-home,
    html body.apd155-visual-master.home main.apd40-home,
    html body.apd155-visual-master.home main.apd51-home-reference {
        width: min(calc(100% - 96px), var(--apd155-content)) !important;
        max-width: var(--apd155-content) !important;
        padding: 66px 0 64px !important;
    }

    html body.apd155-visual-master.home .apd5-main > .apd5-rail {
        margin-top: 13px !important;
    }

    html body.apd155-visual-master.home .apd5-main > .apd5-rail:first-of-type {
        margin-top: 0 !important;
    }

    html body.apd155-visual-master.home .apd5-section-head {
        min-height: 34px !important;
        margin: 0 0 10px !important;
        padding: 0 !important;
        align-items: center !important;
    }

    html body.apd155-visual-master.home .apd5-section-head h2,
    html body.apd155-visual-master.home .apd5-section-head h2 a {
        margin: 0 !important;
        color: #222 !important;
        font-size: 21px !important;
        line-height: 27px !important;
        font-weight: 600 !important;
        letter-spacing: -.25px !important;
        text-decoration: none !important;
    }

    html body.apd155-visual-master.home .apd5-section-head h2 span {
        font-size: 22px !important;
        line-height: 1 !important;
    }

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

    html body.apd155-visual-master.home .apd5-card-media {
        border-radius: 20px !important;
    }

    html body.apd155-visual-master.home .apd5-card-title-row h3 {
        font-size: 13px !important;
        line-height: 16px !important;
        font-weight: 500 !important;
    }

    html body.apd155-visual-master.home .apd5-card :is(.apd5-card-location, .apd5-card-price, .apd5-card-rating) {
        font-size: 12px !important;
        line-height: 16px !important;
    }

    html body.apd155-visual-master.home .apd5-favorite {
        top: 8px !important;
        right: 8px !important;
        width: 32px !important;
        min-width: 32px !important;
        height: 32px !important;
        min-height: 32px !important;
    }

    html body.apd155-visual-master.home .apd5-favorite .apd5-icon {
        width: 25px !important;
        height: 25px !important;
    }

    html body.apd155-visual-master.home .apd5-rail-controls {
        display: flex !important;
        gap: 8px !important;
    }

    html body.apd155-visual-master.home .apd5-rail-controls button {
        width: 32px !important;
        min-width: 32px !important;
        height: 32px !important;
        min-height: 32px !important;
        padding: 0 !important;
        display: grid !important;
        place-items: center !important;
        border: 0 !important;
        border-radius: 50% !important;
        background: #f2f2f2 !important;
        color: #222 !important;
        font-size: 19px !important;
        line-height: 1 !important;
    }

    html body.apd155-visual-master.home .apd5-rail-controls button:hover {
        background: #e9e9e9 !important;
        transform: scale(1.04) !important;
    }
}

/* Tablet reference: 32 px header edge, 24 px content edge, 5-card rails. */
@media (min-width: 768px) and (max-width: 1179px) {
    html body.apd155-visual-master #apd5-header,
    html body.apd155-visual-master #apd5-header.is-discovery-context:not(.is-compact) {
        height: 174px !important;
        min-height: 174px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-header-row {
        width: calc(100% - 64px) !important;
        height: 80px !important;
        min-height: 80px !important;
        grid-template-columns: 102px minmax(0, 1fr) 92px !important;
        gap: 16px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-logo {
        width: 102px !important;
        min-width: 102px !important;
        height: 80px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-logo img {
        max-width: 92px !important;
        height: 34px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav {
        height: 80px !important;
        gap: 10px !important;
        justify-content: center !important;
        overflow: visible !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a {
        min-width: 0 !important;
        height: 36px !important;
        padding: 0 4px !important;
        flex-direction: row !important;
        gap: 5px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a > span {
        width: 28px !important;
        min-width: 28px !important;
        height: 28px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a > span :is(svg, img) {
        width: 27px !important;
        height: 27px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav strong {
        font-size: 13px !important;
        line-height: 18px !important;
        font-weight: 500 !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-main-nav > a::after {
        bottom: -14px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-host-trigger {
        display: none !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-header-actions {
        width: 92px !important;
        min-width: 92px !important;
        height: 80px !important;
        gap: 12px !important;
    }

    html body.apd155-visual-master #apd5-header > .apd5-header-search-row {
        height: 94px !important;
        min-height: 94px !important;
        padding: 14px 32px 9px !important;
    }

    html body.apd155-visual-master #apd5-search.apd5-search {
        width: min(850px, calc(100vw - 64px)) !important;
        max-width: 850px !important;
        height: 72px !important;
        min-height: 72px !important;
        background: #fff !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-submit {
        width: 48px !important;
        min-width: 48px !important;
        height: 48px !important;
        min-height: 48px !important;
        margin: 9px !important;
        padding: 0 !important;
    }

    html body.apd155-visual-master #apd5-search .apd5-search-submit span:not(.screen-reader-text) {
        display: none !important;
    }

    html body.apd155-visual-master.home main.apd5-main,
    html body.apd155-visual-master main.apd31-catalog,
    html body.apd155-visual-master .apd5-footer-grid,
    html body.apd155-visual-master .apd24-footer-bottom {
        width: calc(100% - 48px) !important;
    }

    html body.apd155-visual-master.home main.apd5-main {
        padding-top: 35px !important;
        padding-bottom: 56px !important;
    }

    html body.apd155-visual-master.home .apd5-main > .apd5-rail {
        margin-top: 18px !important;
    }

    html body.apd155-visual-master.home .apd5-main > .apd5-rail:first-of-type {
        margin-top: 0 !important;
    }

    html body.apd155-visual-master.home .apd5-section-head {
        min-height: 34px !important;
        margin-bottom: 11px !important;
        padding: 0 !important;
        align-items: center !important;
    }

    html body.apd155-visual-master.home .apd5-section-head h2,
    html body.apd155-visual-master.home .apd5-section-head h2 a {
        font-size: 20px !important;
        line-height: 26px !important;
        font-weight: 600 !important;
        letter-spacing: -.2px !important;
    }

    html body.apd155-visual-master.home .apd5-card-rail {
        grid-auto-columns: calc((100% - 48px) / 5) !important;
        gap: 12px !important;
    }

    html body.apd155-visual-master.home .apd5-card-media {
        border-radius: 18px !important;
    }

    html body.apd155-visual-master.home .apd5-card-title-row h3 {
        font-size: 13px !important;
        line-height: 16px !important;
        font-weight: 500 !important;
    }

    html body.apd155-visual-master.home .apd5-card :is(.apd5-card-location, .apd5-card-price, .apd5-card-rating) {
        font-size: 12px !important;
        line-height: 16px !important;
    }

    html body.apd155-visual-master.home .apd5-favorite {
        width: 32px !important;
        height: 32px !important;
    }
}

/* Mobile reference: large horizontal cards, compact search and bottom nav. */
@media (max-width: 767px) {
    html body.apd155-visual-master {
        padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important;
    }

    html body.apd155-visual-master #apd5-header,
    html body.apd155-visual-master #apd5-header.is-discovery-context:not(.is-compact) {
        height: 124px !important;
        min-height: 124px !important;
    }

    html body.apd155-visual-master #apd5-header .apd5-header-row {
        width: 100% !important;
        height: 64px !important;
        min-height: 64px !important;
        padding: 0 16px !important;
    }

    html body.apd155-visual-master #apd5-header > .apd5-header-search-row {
        top: 64px !important;
        height: 60px !important;
        min-height: 60px !important;
        padding: 7px 12px !important;
    }

    html body.apd155-visual-master #apd5-search.apd5-search {
        width: 100% !important;
        height: 48px !important;
        min-height: 48px !important;
        border: 1px solid #dddddd !important;
        background: #fff !important;
        box-shadow: 0 3px 10px rgba(0, 0, 0, .10) !important;
    }

    html body.apd155-visual-master.home main.apd5-main,
    html body.apd155-visual-master.home main.apd29-video-home,
    html body.apd155-visual-master.home main.apd40-home,
    html body.apd155-visual-master.home main.apd51-home-reference {
        width: 100% !important;
        max-width: none !important;
        padding: 28px 0 44px !important;
    }

    html body.apd155-visual-master.home .apd5-main > .apd5-rail {
        width: 100% !important;
        margin: 30px 0 0 !important;
        padding: 0 !important;
    }

    html body.apd155-visual-master.home .apd5-main > .apd5-rail:first-of-type {
        margin-top: 0 !important;
    }

    html body.apd155-visual-master.home .apd5-section-head {
        min-height: 42px !important;
        margin: 0 0 12px !important;
        padding: 0 24px !important;
        align-items: center !important;
    }

    html body.apd155-visual-master.home .apd5-section-head h2,
    html body.apd155-visual-master.home .apd5-section-head h2 a {
        font-size: 20px !important;
        line-height: 24px !important;
        font-weight: 600 !important;
        letter-spacing: -.25px !important;
    }

    html body.apd155-visual-master.home .apd5-rail-controls {
        display: none !important;
    }

    html body.apd155-visual-master.home .apd5-card-rail {
        width: 100% !important;
        padding: 0 24px 3px !important;
        grid-auto-columns: min(78vw, 306px) !important;
        gap: 12px !important;
        scroll-padding-inline: 24px !important;
        scroll-snap-type: x mandatory !important;
    }

    html body.apd155-visual-master.home .apd5-card {
        scroll-snap-align: start !important;
    }

    html body.apd155-visual-master.home .apd5-card-media {
        aspect-ratio: 1.04 / 1 !important;
        margin-bottom: 9px !important;
        border-radius: 18px !important;
    }

    html body.apd155-visual-master.home .apd5-card-title-row h3 {
        font-size: 14px !important;
        line-height: 18px !important;
        font-weight: 500 !important;
    }

    html body.apd155-visual-master.home .apd5-card :is(.apd5-card-location, .apd5-card-price, .apd5-card-rating) {
        font-size: 13px !important;
        line-height: 18px !important;
    }

    html body.apd155-visual-master.home .apd5-favorite {
        top: 10px !important;
        right: 10px !important;
        width: 34px !important;
        height: 34px !important;
    }

    html body.apd155-visual-master .apd10-mobile-nav {
        min-height: 64px !important;
        padding-bottom: env(safe-area-inset-bottom) !important;
        background: rgba(255, 255, 255, .98) !important;
        border-top: 1px solid #e5e5e5 !important;
        box-shadow: 0 -2px 12px rgba(0, 0, 0, .04) !important;
        backdrop-filter: blur(14px) saturate(180%) !important;
    }
}

/* Inspiration directory: same density and rhythm as the reference footer. */
html body.apd155-visual-master .apd155-inspiration {
    width: 100% !important;
    margin: 0 !important;
    padding: 48px 0 0 !important;
    border-top: 1px solid #dddddd !important;
    background: #f7f7f7 !important;
}

html body.apd155-visual-master .apd155-inspiration-inner {
    width: min(calc(100% - 96px), var(--apd155-content)) !important;
    max-width: var(--apd155-content) !important;
    margin: 0 auto !important;
}

html body.apd155-visual-master .apd155-inspiration h2 {
    margin: 0 0 20px !important;
    color: #222 !important;
    font-size: 22px !important;
    line-height: 28px !important;
    font-weight: 600 !important;
    letter-spacing: -.25px !important;
}

html body.apd155-visual-master .apd155-inspiration-tabs {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 28px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
    border-bottom: 1px solid #dddddd !important;
}

html body.apd155-visual-master .apd155-inspiration-tabs::-webkit-scrollbar {
    display: none !important;
}

html body.apd155-visual-master .apd155-inspiration-tabs button {
    position: relative !important;
    flex: 0 0 auto !important;
    height: 44px !important;
    margin: 0 !important;
    padding: 0 0 13px !important;
    border: 0 !important;
    background: transparent !important;
    color: #6a6a6a !important;
    font-size: 14px !important;
    line-height: 20px !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
    cursor: pointer !important;
}

html body.apd155-visual-master .apd155-inspiration-tabs button::after {
    content: "" !important;
    position: absolute !important;
    right: 0 !important;
    bottom: -1px !important;
    left: 0 !important;
    height: 2px !important;
    background: #222 !important;
    opacity: 0 !important;
    transform: scaleX(.65) !important;
    transition: opacity .18s var(--apd155-ease-standard), transform .18s var(--apd155-ease-standard) !important;
}

html body.apd155-visual-master .apd155-inspiration-tabs button:is(:hover, [aria-selected="true"]) {
    color: #222 !important;
}

html body.apd155-visual-master .apd155-inspiration-tabs button[aria-selected="true"]::after {
    opacity: 1 !important;
    transform: scaleX(1) !important;
}

html body.apd155-visual-master .apd155-inspiration-panel {
    width: 100% !important;
    padding: 32px 0 44px !important;
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    column-gap: 24px !important;
    row-gap: 24px !important;
}

html body.apd155-visual-master .apd155-inspiration-panel[hidden] {
    display: none !important;
}

html body.apd155-visual-master .apd155-inspiration-panel > a {
    min-width: 0 !important;
    color: #222 !important;
    text-decoration: none !important;
}

html body.apd155-visual-master .apd155-inspiration-panel > a strong,
html body.apd155-visual-master .apd155-inspiration-panel > a span {
    display: block !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

html body.apd155-visual-master .apd155-inspiration-panel > a strong {
    color: #222 !important;
    font-size: 14px !important;
    line-height: 20px !important;
    font-weight: 500 !important;
}

html body.apd155-visual-master .apd155-inspiration-panel > a span {
    margin-top: 1px !important;
    color: #6a6a6a !important;
    font-size: 14px !important;
    line-height: 20px !important;
    font-weight: 400 !important;
}

html body.apd155-visual-master .apd155-inspiration-panel > a:hover strong {
    text-decoration: underline !important;
}

/* Footer shares the inspiration background so the transition is seamless. */
html body.apd155-visual-master .apd5-footer {
    margin-top: 0 !important;
    border-top: 1px solid #dddddd !important;
    background: #f7f7f7 !important;
}

html body.apd155-visual-master .apd5-footer-grid,
html body.apd155-visual-master .apd24-footer-bottom {
    width: min(calc(100% - 96px), var(--apd155-content)) !important;
    max-width: var(--apd155-content) !important;
}

html body.apd155-visual-master .apd5-footer-grid h3 {
    font-size: 14px !important;
    line-height: 20px !important;
    font-weight: 600 !important;
}

html body.apd155-visual-master .apd5-footer-grid a,
html body.apd155-visual-master .apd24-footer-bottom {
    font-size: 14px !important;
    line-height: 20px !important;
}

@media (min-width: 768px) and (max-width: 1179px) {
    html body.apd155-visual-master .apd155-inspiration-inner,
    html body.apd155-visual-master .apd5-footer-grid,
    html body.apd155-visual-master .apd24-footer-bottom {
        width: calc(100% - 48px) !important;
    }

    html body.apd155-visual-master .apd155-inspiration-panel {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 767px) {
    html body.apd155-visual-master .apd155-inspiration {
        padding-top: 34px !important;
    }

    html body.apd155-visual-master .apd155-inspiration-inner,
    html body.apd155-visual-master .apd5-footer-grid,
    html body.apd155-visual-master .apd24-footer-bottom {
        width: calc(100% - 32px) !important;
    }

    html body.apd155-visual-master .apd155-inspiration h2 {
        margin-bottom: 14px !important;
        font-size: 20px !important;
        line-height: 26px !important;
    }

    html body.apd155-visual-master .apd155-inspiration-tabs {
        gap: 22px !important;
    }

    html body.apd155-visual-master .apd155-inspiration-panel {
        padding: 26px 0 34px !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        column-gap: 18px !important;
        row-gap: 24px !important;
    }
}

/* Press/hover/focus language: measurable, consistent, no duplicate JS. */
html body.apd155-visual-master :is(.apd5-card, .apd5-favorite, .apd5-rail-controls button, .apd5-search-submit, .apd155-inspiration-tabs button) {
    transition-property: transform, background-color, box-shadow, color, opacity !important;
    transition-duration: 180ms !important;
    transition-timing-function: var(--apd155-ease-standard) !important;
}

html body.apd155-visual-master :is(.apd5-favorite, .apd5-rail-controls button, .apd5-search-submit).is-apd155-pressed {
    transform: scale(.94) !important;
}

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