/* ======================================================================
   APD MARKETPLACE 10.0.0
   Premium public marketplace for Homey + APD
   ====================================================================== */
:root {
    --apd5-navy: #082f68;
    --apd5-navy-dark: #041f49;
    --apd5-blue: #0f6fe8;
    --apd5-blue-2: #2f8cff;
    --apd5-lime: #75c900;
    --apd5-coral: #ff5a5f;
    --apd5-ink: #11233f;
    --apd5-muted: #66758e;
    --apd5-line: #e5e9ef;
    --apd5-bg: #ffffff;
    --apd5-soft: #f7f8fa;
    --apd5-shadow: 0 12px 34px rgba(15, 35, 65, .10);
    --apd5-shadow-lg: 0 24px 70px rgba(15, 35, 65, .18);
    --apd5-radius: 18px;
    --apd5-max: 1680px;
}

html { margin-top: 0 !important; scroll-behavior: smooth; }
body.apd-marketplace-ui {
    margin: 0 !important;
    color: var(--apd5-ink);
    background: var(--apd5-bg);
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}
body.apd-marketplace-ui #wpadminbar { display: none !important; }
body.apd-marketplace-ui a { color: inherit; }
.apd5-icon { width: 20px; height: 20px; display: block; }

/* Header ---------------------------------------------------------------- */
.apd5-header {
    position: sticky;
    top: 0;
    z-index: 900;
    width: 100%;
    background: rgba(255,255,255,.98);
    border-bottom: 1px solid var(--apd5-line);
    box-shadow: 0 2px 12px rgba(10,34,70,.035);
    backdrop-filter: blur(18px);
}
.apd5-header-row {
    width: min(calc(100% - 48px), var(--apd5-max));
    height: 76px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 220px minmax(480px,1fr) 310px;
    align-items: center;
    gap: 20px;
}
.apd5-logo { display: inline-flex; align-items: center; width: 158px; }
.apd5-logo img { display: block; width: 100%; height: 48px; object-fit: contain; object-position: left center; }
.apd5-main-nav { display: flex; justify-content: center; align-items: stretch; height: 100%; gap: 22px; }
.apd5-main-nav a {
    position: relative;
    min-width: 88px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 4px;
    text-decoration: none;
    color: #37465e;
    font-size: 13px;
    transition: color .2s ease, transform .2s ease;
}
.apd5-main-nav a:hover { color: var(--apd5-navy); transform: translateY(-1px); }
.apd5-main-nav a::after { content:""; position:absolute; left:12px; right:12px; bottom:0; height:3px; border-radius:3px 3px 0 0; background:var(--apd5-navy); transform:scaleX(0); transition:.2s; }
.apd5-main-nav a.is-active::after { transform: scaleX(1); }
.apd5-main-nav a.is-active { color: var(--apd5-navy); }
.apd5-main-nav a > span { width:34px; height:34px; display:grid; place-items:center; border-radius:12px; }
.apd5-main-nav .is-all { background:#fff5cf; color:#b37900; }
.apd5-main-nav .is-stays { background:#edf5ff; color:var(--apd5-blue); }
.apd5-main-nav .is-experiences { background:#fff0f4; color:#ff4772; }
.apd5-main-nav .is-services { background:#eef1f5; color:#35455c; }
.apd5-main-nav strong { font-weight:700; white-space:nowrap; }
.apd5-header-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; position:relative; }
.apd5-host-trigger { border:0; background:transparent; border-radius:999px; padding:12px 13px; color:#25354e; font-weight:700; font-size:12px; cursor:pointer; }
.apd5-host-trigger:hover { background:#f4f6f8; }
.apd5-language-button { width:40px; height:40px; border:0; border-radius:50%; background:#f4f5f6; display:grid; place-items:center; color:#26364d; cursor:pointer; }
.apd5-language-button .apd5-icon { width:17px; height:17px; }
.apd5-account-button { height:44px; min-width:78px; padding:4px 5px 4px 12px; display:flex; align-items:center; justify-content:space-between; gap:9px; border:1px solid #d8dde4; border-radius:999px; background:#fff; color:#44526a; cursor:pointer; box-shadow:0 2px 6px rgba(10,35,70,.04); }
.apd5-account-button:hover { box-shadow:0 4px 14px rgba(10,35,70,.12); }
.apd5-account-button > .apd5-icon { width:16px; height:16px; }
.apd5-account-button img, .apd5-account-button > span { width:34px; height:34px; border-radius:50%; object-fit:cover; display:grid; place-items:center; background:#657288; color:white; }
.apd5-account-button > span .apd5-icon { width:20px; height:20px; }
.apd5-account-menu, .apd5-host-menu {
    position:absolute;
    top:calc(100% + 12px);
    right:0;
    width:280px;
    padding:9px;
    border:1px solid var(--apd5-line);
    border-radius:16px;
    background:#fff;
    box-shadow:var(--apd5-shadow-lg);
}
.apd5-account-menu[hidden], .apd5-host-menu[hidden] { display:none !important; }
.apd5-account-menu { right:0; }
.apd5-account-menu a, .apd5-account-menu > button { width:100%; min-height:44px; padding:0 11px; display:flex; align-items:center; gap:11px; border:0; border-radius:10px; background:transparent; color:#26364e; text-decoration:none; text-align:left; font:inherit; font-size:13px; cursor:pointer; box-sizing:border-box; }
.apd5-account-menu a:hover, .apd5-account-menu > button:hover { background:#f5f7f9; }
.apd5-account-menu .apd5-icon { width:18px; height:18px; }
.apd5-account-menu hr { margin:6px 0; border:0; border-top:1px solid var(--apd5-line); }
.apd5-account-user { display:grid; grid-template-columns:46px 1fr; gap:10px; align-items:center; padding:9px 10px 12px; border-bottom:1px solid var(--apd5-line); margin-bottom:6px; }
.apd5-account-user img { width:46px; height:46px; border-radius:50%; object-fit:cover; }
.apd5-account-user strong, .apd5-account-user span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.apd5-account-user span { margin-top:2px; color:var(--apd5-muted); font-size:11px; }
.apd5-account-menu a.apd5-account-host-card { min-height:84px; padding:14px 13px; margin:5px 2px; display:grid; grid-template-columns:minmax(0,1fr) 30px; gap:12px; align-items:center; border:1px solid transparent; border-radius:14px; background:linear-gradient(135deg,#f3f7ff,#f2fae9); color:#15233a; text-decoration:none; cursor:pointer; }
.apd5-account-menu a.apd5-account-host-card:hover { border-color:#dce7cf; background:linear-gradient(135deg,#eef5ff,#ecf8df); box-shadow:0 8px 20px rgba(24,67,159,.10); transform:translateY(-1px); }
.apd5-account-host-copy { min-width:0; display:block; }
.apd5-account-host-card strong { display:block; color:#172033; font-size:14px; line-height:1.25; font-weight:750; }
.apd5-account-host-card p { margin:6px 0 0; color:var(--apd5-muted); font-size:11px; line-height:1.45; }
.apd5-account-host-arrow { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:#fff; color:#0d2b6c; font-size:17px; font-weight:700; box-shadow:0 2px 8px rgba(13,43,108,.10); }
.apd5-host-menu-wrap { position:relative; }
.apd5-host-menu { width:330px; right:0; padding:10px; }
.apd5-host-menu a { display:grid; grid-template-columns:44px 1fr; gap:11px; align-items:center; padding:11px; border-radius:12px; text-decoration:none; }
.apd5-host-menu a:hover { background:#f5f7fa; }
.apd5-host-menu a > span { width:44px; height:44px; display:grid; place-items:center; border-radius:12px; background:#eef5ff; color:var(--apd5-blue); }
.apd5-host-menu strong, .apd5-host-menu small { display:block; }
.apd5-host-menu small { margin-top:3px; color:var(--apd5-muted); font-size:11px; line-height:1.35; }

.apd5-header-search-row { min-height:76px; display:flex; justify-content:center; align-items:flex-start; padding:0 20px 13px; }
.apd5-search { position:relative; z-index:10; width:min(650px,calc(100vw - 40px)); height:54px; display:grid; grid-template-columns:1.1fr 1px .95fr 1px 1fr 52px; align-items:center; border:1px solid #dfe3e8; border-radius:999px; background:#fff; box-shadow:0 8px 28px rgba(20,37,65,.13); }
.apd5-search > i { width:1px; height:28px; background:#e3e6ea; }
.apd5-search-field { height:100%; min-width:0; }
.apd5-search-field > button { width:100%; height:100%; padding:0 18px; border:0; border-radius:999px; background:transparent; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; cursor:pointer; overflow:hidden; }
.apd5-search-field > button:hover, .apd5-search-field.is-open > button { background:#f4f5f6; box-shadow:0 0 0 1px #e2e6eb; }
.apd5-search-field span { color:#33435b; font-size:10px; line-height:1.1; font-weight:750; }
.apd5-search-field strong { width:100%; margin-top:4px; color:#707c8e; font-size:11px; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.apd5-search-submit { width:44px; height:44px; margin-right:5px; border:0; border-radius:50%; background:linear-gradient(135deg,var(--apd5-blue),#075dc8); color:#fff; display:grid; place-items:center; cursor:pointer; box-shadow:0 5px 15px rgba(15,111,232,.3); }
.apd5-search-submit span { display:none; }
.apd5-search-submit .apd5-icon { width:20px; height:20px; }
.apd5-search-panel { position:absolute; top:calc(100% + 12px); padding:22px; border:1px solid var(--apd5-line); border-radius:24px; background:#fff; box-shadow:var(--apd5-shadow-lg); }
.apd5-search-panel[hidden] { display:none !important; }
.apd5-location-panel { left:0; width:420px; max-height:500px; overflow:auto; }
.apd5-date-panel { left:50%; width:760px; transform:translateX(-50%); }
.apd5-guests-panel, .apd5-service-panel { right:0; width:360px; }
.apd5-panel-title { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; font-size:16px; }
.apd5-panel-title button { border:0; background:#f2f3f5; width:32px; height:32px; border-radius:50%; cursor:pointer; }
.apd5-panel-filter { height:48px; padding:0 14px; display:flex; align-items:center; gap:10px; border:1px solid #dfe3e8; border-radius:12px; }
.apd5-panel-filter .apd5-icon { width:17px; height:17px; }
.apd5-panel-filter input { width:100%; border:0; outline:0; font:inherit; }
.apd5-destination-option { width:100%; display:grid; grid-template-columns:48px 1fr; align-items:center; gap:12px; padding:9px 6px; border:0; border-radius:12px; background:transparent; text-align:left; cursor:pointer; }
.apd5-destination-option:hover { background:#f5f7f9; }
.apd5-destination-option > span { width:48px; height:48px; display:grid; place-items:center; border-radius:12px; background:#eef5ff; color:var(--apd5-blue); font-size:19px; }
.apd5-destination-option strong, .apd5-destination-option small { display:block; }
.apd5-destination-option small { margin-top:3px; color:var(--apd5-muted); font-size:11px; }
.apd5-calendar-nav { display:flex; justify-content:space-between; pointer-events:none; margin-bottom:-32px; position:relative; z-index:4; }
.apd5-calendar-nav button { pointer-events:auto; width:32px; height:32px; border:0; border-radius:50%; background:#f3f5f7; cursor:pointer; font-size:22px; }
.apd5-calendar-months { display:grid; grid-template-columns:1fr 1fr; gap:34px; }
.apd5-calendar-month h3 { margin:0 0 14px; text-align:center; font-size:14px; }
.apd5-calendar-weekdays, .apd5-calendar-days { display:grid; grid-template-columns:repeat(7,1fr); }
.apd5-calendar-weekdays span { padding:6px 0; text-align:center; color:#66758c; font-size:10px; }
.apd5-calendar-days button { aspect-ratio:1; border:0; border-radius:50%; background:transparent; font-size:11px; cursor:pointer; }
.apd5-calendar-days button:hover:not(:disabled) { box-shadow:inset 0 0 0 1px #1e2f49; }
.apd5-calendar-days button.is-selected, .apd5-calendar-days button.is-start, .apd5-calendar-days button.is-end { color:#fff; background:var(--apd5-navy); }
.apd5-calendar-days button.is-in-range { border-radius:0; background:#edf3fb; }
.apd5-calendar-days button:disabled { color:#c7cdd5; cursor:not-allowed; }
.apd5-panel-footer { display:flex; align-items:center; justify-content:space-between; margin-top:16px; padding-top:14px; border-top:1px solid var(--apd5-line); }
.apd5-panel-footer button { min-height:38px; padding:0 15px; border:0; border-radius:10px; background:transparent; font-weight:700; cursor:pointer; }
.apd5-panel-footer button:last-child { color:#fff; background:var(--apd5-navy); }
.apd5-guest-row { display:flex; align-items:center; justify-content:space-between; padding:15px 0; border-bottom:1px solid var(--apd5-line); }
.apd5-guest-row strong, .apd5-guest-row span { display:block; }
.apd5-guest-row span { margin-top:3px; color:var(--apd5-muted); font-size:11px; }
.apd5-guest-row > div:last-child { display:flex; align-items:center; gap:12px; }
.apd5-guest-row button { width:34px; height:34px; border:1px solid #cfd5dd; border-radius:50%; background:#fff; cursor:pointer; font-size:18px; }
.apd5-service-option { width:100%; min-height:50px; padding:0 12px; border:0; border-radius:11px; background:transparent; display:flex; align-items:center; gap:12px; text-align:left; cursor:pointer; }
.apd5-service-option:hover { background:#f5f7f9; }
.apd5-service-option span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:#eef5ff; color:var(--apd5-blue); }
.apd5-search-backdrop { position:fixed; inset:0; z-index:-1; background:rgba(15,22,33,.38); }
.apd5-search-backdrop[hidden] { display:none !important; }

/* Marketplace content --------------------------------------------------- */
.apd5-main { width:min(calc(100% - 48px),var(--apd5-max)); margin:0 auto; padding:36px 0 80px; }
.apd5-intro-strip { min-height:165px; padding:30px 32px; display:flex; align-items:center; justify-content:space-between; gap:30px; border:1px solid #e0e7f1; border-radius:24px; background:radial-gradient(circle at 90% 0,rgba(117,201,0,.17),transparent 35%),radial-gradient(circle at 58% 100%,rgba(15,111,232,.13),transparent 45%),#fbfcff; }
.apd5-intro-strip span, .apd5-catalog-heading > div > span, .apd5-host-banner > div > span, .apd5-submit-intro > span { color:var(--apd5-blue); font-size:10px; font-weight:850; letter-spacing:1.3px; }
.apd5-intro-strip h1 { max-width:760px; margin:7px 0; color:var(--apd5-navy-dark); font-size:clamp(30px,3vw,48px); line-height:1.03; letter-spacing:-1.6px; }
.apd5-intro-strip p { margin:0; color:var(--apd5-muted); font-size:13px; }
.apd5-intro-strip > a, .apd5-publish-button { flex:0 0 auto; min-height:46px; padding:0 22px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; gap:8px; color:#fff; background:var(--apd5-navy); text-decoration:none; font-size:12px; font-weight:800; box-shadow:0 8px 20px rgba(8,47,104,.18); }
.apd5-rail { margin-top:34px; }
.apd5-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:14px; }
.apd5-section-head h2 { margin:0; font-size:22px; letter-spacing:-.4px; }
.apd5-section-head h2 a { text-decoration:none; }
.apd5-section-head h2 span { font-size:20px; }
.apd5-section-head p { margin:5px 0 0; color:var(--apd5-muted); font-size:11px; }
.apd5-rail-controls { display:flex; gap:8px; }
.apd5-rail-controls button { width:34px; height:34px; border:0; border-radius:50%; background:#f3f4f6; color:#1e3049; cursor:pointer; font-size:20px; }
.apd5-card-rail { display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - 72px)/7); gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding-bottom:4px; }
.apd5-card-rail::-webkit-scrollbar { display:none; }
.apd5-card { min-width:0; scroll-snap-align:start; }
.apd5-card-media { position:relative; overflow:hidden; border-radius:16px; background:#eef1f5; aspect-ratio:1.05/1; }
.apd5-card-media > a { display:block; width:100%; height:100%; }
.apd5-card-media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
.apd5-card:hover .apd5-card-media img { transform:scale(1.025); }
.apd5-card-badge { position:absolute; top:10px; left:10px; max-width:calc(100% - 55px); padding:6px 10px; border-radius:999px; background:rgba(255,255,255,.93); color:#26364d; font-size:9px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; box-shadow:0 2px 8px rgba(10,30,60,.08); }
.apd5-favorite { position:absolute; top:8px; right:8px; width:34px; height:34px; border:0; background:transparent; color:white; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7)); cursor:pointer; }
.apd5-favorite .apd5-icon { width:26px; height:26px; fill:rgba(0,0,0,.2); }
.apd5-card-body { padding:9px 2px 0; }
.apd5-card-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:7px; }
.apd5-card-title-row h3 { min-width:0; margin:0; font-size:12px; line-height:1.25; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.apd5-card-title-row > span { flex:0 0 auto; display:flex; align-items:center; gap:3px; font-size:9px; white-space:nowrap; }
.apd5-card-title-row .apd5-icon { width:10px; height:10px; fill:currentColor; stroke-width:1; }
.apd5-card-body p { margin:5px 0; color:var(--apd5-muted); font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.apd5-card-body > strong { font-size:10px; }
.apd5-card-body > strong small { color:#526078; font-size:8px; font-weight:500; }
.apd5-card-price-row { display:flex; align-items:center; gap:5px; min-width:0; margin-top:5px; white-space:nowrap; }
.apd5-card-price { min-width:0; color:#222; font-size:12px; line-height:1.3; font-weight:500; }
.apd5-card-price small { color:inherit; font-size:inherit; font-weight:inherit; }
.apd5-card-rating { flex:0 0 auto; display:inline-flex; align-items:center; gap:3px; color:#222; font-size:11px; line-height:1.3; }
.apd5-card-rating .apd5-icon { width:11px; height:11px; fill:currentColor; stroke-width:1.2; }
.apd5-card.is-demo .apd5-card-media { outline:1px dashed rgba(15,111,232,.35); outline-offset:-1px; }
.apd5-demo-edit { display:inline-block; margin-top:7px; color:var(--apd5-blue); font-size:9px; font-weight:800; text-decoration:none; }
.apd5-host-banner { margin-top:55px; min-height:260px; padding:40px 44px; display:grid; grid-template-columns:minmax(0,1fr) 280px; align-items:center; border-radius:26px; color:#fff; background:radial-gradient(circle at 85% 20%,rgba(70,218,187,.32),transparent 40%),linear-gradient(135deg,#07346f,#0a4c92); box-shadow:0 20px 45px rgba(5,49,105,.2); overflow:hidden; }
.apd5-host-banner h2 { max-width:760px; margin:9px 0; font-size:clamp(32px,3.5vw,55px); line-height:1.02; letter-spacing:-1.8px; }
.apd5-host-banner p { margin:0; color:rgba(255,255,255,.75); font-size:12px; }
.apd5-host-banner > div > div { display:flex; gap:10px; margin-top:22px; }
.apd5-host-banner a { min-height:44px; padding:0 18px; border:1px solid rgba(255,255,255,.35); border-radius:999px; display:inline-flex; align-items:center; color:#fff; text-decoration:none; font-size:11px; font-weight:800; }
.apd5-host-banner a.is-primary { color:#17364a; background:#a9f244; border-color:#a9f244; }
.apd5-host-art { position:relative; height:190px; }
.apd5-host-art span, .apd5-host-art b, .apd5-host-art i { position:absolute; display:grid; place-items:center; font-style:normal; box-shadow:0 18px 40px rgba(0,0,0,.2); }
.apd5-host-art span { width:150px; height:150px; left:20px; bottom:0; border-radius:30px; background:rgba(255,255,255,.12); font-size:76px; }
.apd5-host-art b { width:82px; height:82px; right:10px; top:0; border-radius:20px; color:var(--apd5-navy); background:#fff; font-size:27px; transform:rotate(7deg); }
.apd5-host-art i { width:70px; height:70px; right:0; bottom:0; border-radius:18px; background:var(--apd5-lime); font-size:38px; }

/* Catalogs -------------------------------------------------------------- */
.apd5-catalog-main { padding-top:34px; }
.apd5-catalog-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:26px; }
.apd5-catalog-heading h1 { margin:6px 0 8px; font-size:clamp(32px,3vw,50px); letter-spacing:-1.5px; line-height:1.03; }
.apd5-catalog-heading p { margin:0; color:var(--apd5-muted); font-size:13px; }
.apd5-publish-button .apd5-icon { width:17px; height:17px; }
.apd5-category-chips { display:flex; gap:9px; overflow-x:auto; padding:2px 0 18px; scrollbar-width:none; }
.apd5-category-chips a { flex:0 0 auto; min-height:38px; padding:0 16px; border:1px solid #dfe3e9; border-radius:999px; display:flex; align-items:center; text-decoration:none; font-size:11px; font-weight:700; }
.apd5-category-chips a:hover { border-color:#26364e; }
.apd5-service-categories { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; margin-bottom:24px; }
.apd5-service-categories a { min-height:112px; padding:17px; border:1px solid var(--apd5-line); border-radius:17px; display:flex; flex-direction:column; justify-content:space-between; text-decoration:none; background:#fbfcfd; transition:.2s; }
.apd5-service-categories a:hover { transform:translateY(-2px); box-shadow:var(--apd5-shadow); }
.apd5-service-categories span { width:44px; height:44px; display:grid; place-items:center; border-radius:13px; background:#eef5ff; color:var(--apd5-blue); }
.apd5-service-categories strong { font-size:12px; }
.apd5-results-bar { min-height:50px; display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; padding:0 2px; border-bottom:1px solid var(--apd5-line); }
.apd5-results-bar strong { font-size:14px; }
.apd5-results-bar span { color:var(--apd5-muted); font-size:10px; }
.apd5-card-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:25px 12px; }
.apd5-pagination { display:flex; justify-content:center; gap:7px; margin-top:40px; }
.apd5-pagination .page-numbers { min-width:38px; height:38px; padding:0 10px; border:1px solid var(--apd5-line); border-radius:10px; display:grid; place-items:center; text-decoration:none; }
.apd5-pagination .current { color:#fff; background:var(--apd5-navy); border-color:var(--apd5-navy); }
.apd5-empty { padding:70px 20px; text-align:center; background:#f8fafc; border-radius:20px; }

/* Native detail integration -------------------------------------------- */
.apd5-native-detail { min-height:500px; background:#fff; }
.apd5-native-detail .header-nav, .apd5-native-detail .listing-nav, .apd5-native-detail .experience-nav { display:none !important; }
.apd5-native-detail .main-content-area { padding-top:30px; }

/* Service detail / submission ------------------------------------------ */
.apd5-service-detail { max-width:1180px; padding-top:42px; }
.apd5-service-detail-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr); gap:36px; align-items:start; }
.apd5-service-detail-media { overflow:hidden; border-radius:25px; aspect-ratio:1.25; background:#eef1f5; }
.apd5-service-detail-media img { width:100%; height:100%; object-fit:cover; }
.apd5-service-detail-card { padding:30px; border:1px solid var(--apd5-line); border-radius:24px; box-shadow:var(--apd5-shadow); }
.apd5-service-detail-card > span { color:var(--apd5-blue); font-size:10px; font-weight:850; letter-spacing:1px; }
.apd5-service-detail-card h1 { margin:8px 0; font-size:36px; line-height:1.04; }
.apd5-service-location { color:var(--apd5-muted); }
.apd5-service-price { display:flex; align-items:baseline; gap:8px; padding:20px 0; border-top:1px solid var(--apd5-line); border-bottom:1px solid var(--apd5-line); }
.apd5-service-price strong { font-size:25px; }
.apd5-service-price span { color:var(--apd5-muted); }
.apd5-service-content { padding:20px 0; line-height:1.7; }
.apd5-contact-service { min-height:50px; display:flex; align-items:center; justify-content:center; border-radius:13px; color:#fff; background:var(--apd5-navy); text-decoration:none; font-weight:800; }
.apd5-submit-main { max-width:1060px; }
.apd5-submit-card { padding:36px; border:1px solid var(--apd5-line); border-radius:26px; box-shadow:var(--apd5-shadow); }
.apd5-submit-intro h1 { margin:8px 0; font-size:40px; }
.apd5-submit-intro p { color:var(--apd5-muted); }
.apd5-submit-form { display:grid; gap:17px; margin-top:28px; }
.apd5-submit-form label span { display:block; margin-bottom:7px; font-size:11px; font-weight:800; }
.apd5-submit-form input, .apd5-submit-form select, .apd5-submit-form textarea { width:100%; min-height:48px; padding:11px 13px; border:1px solid #dfe3e9; border-radius:11px; background:#fff; font:inherit; box-sizing:border-box; }
.apd5-submit-form textarea { resize:vertical; }
.apd5-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.apd5-submit-form > button, .apd5-submit-login button { min-height:52px; border:0; border-radius:13px; color:#fff; background:var(--apd5-navy); font-weight:850; cursor:pointer; }
.apd5-submit-login, .apd5-submit-success { margin-top:26px; padding:32px; border-radius:18px; text-align:center; background:#f6f8fb; }
.apd5-submit-success b { width:55px; height:55px; margin:0 auto 12px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--apd5-lime); font-size:28px; }
.apd5-submit-success a { display:inline-flex; margin-top:12px; padding:12px 18px; border-radius:999px; color:#fff; background:var(--apd5-navy); text-decoration:none; }
.apd5-form-error { margin-top:20px; padding:12px 15px; border-radius:10px; color:#8c2631; background:#fff0f1; }

/* Footer ---------------------------------------------------------------- */
.apd5-footer { margin-top:30px; padding:48px 24px 20px; background:#f6f7f8; border-top:1px solid var(--apd5-line); }
.apd5-footer-grid { width:min(100%,var(--apd5-max)); margin:0 auto; display:grid; grid-template-columns:1.3fr repeat(3,1fr); gap:55px; }
.apd5-footer h3 { margin:0 0 15px; font-size:12px; }
.apd5-footer a { display:block; margin:0 0 11px; color:#536078; text-decoration:none; font-size:10px; }
.apd5-footer a:hover { text-decoration:underline; }
.apd5-footer-brand img { width:145px; height:46px; object-fit:contain; object-position:left center; }
.apd5-footer-brand p { max-width:300px; color:var(--apd5-muted); font-size:10px; line-height:1.55; }
.apd5-footer-bottom { width:min(100%,var(--apd5-max)); margin:35px auto 0; padding-top:18px; border-top:1px solid #dfe3e8; display:flex; align-items:center; justify-content:space-between; color:#68768c; font-size:9px; }

/* Region modal ---------------------------------------------------------- */
.apd5-region-modal { position:fixed; inset:0; z-index:2001; display:grid; place-items:center; padding:20px; }
.apd5-region-modal[hidden], .apd5-modal-backdrop[hidden] { display:none !important; }
.apd5-modal-backdrop { position:fixed; inset:0; z-index:2000; background:rgba(0,0,0,.42); }
.apd5-region-dialog { position:relative; width:min(720px,100%); max-height:82vh; overflow:auto; padding:28px; border-radius:24px; background:#fff; box-shadow:var(--apd5-shadow-lg); }
.apd5-region-close { position:absolute; top:18px; left:18px; width:34px; height:34px; border:0; border-radius:50%; background:#f3f4f6; font-size:20px; cursor:pointer; }
.apd5-region-tabs { display:flex; gap:20px; padding:0 45px 14px; border-bottom:1px solid var(--apd5-line); }
.apd5-region-tabs button { padding:10px 0; border:0; border-bottom:2px solid transparent; background:transparent; cursor:pointer; }
.apd5-region-tabs button.is-active { border-color:var(--apd5-navy); font-weight:800; }
.apd5-region-dialog section { padding-top:22px; }
.apd5-translation-card { padding:16px; display:flex; align-items:center; justify-content:space-between; border-radius:14px; background:#f6f7f8; }
.apd5-translation-card strong, .apd5-translation-card span { display:block; }
.apd5-translation-card span { margin-top:4px; color:var(--apd5-muted); font-size:11px; }
.apd5-translation-card b { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; color:#fff; background:#222; }
.apd5-language-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.apd5-language-grid button { min-height:75px; padding:12px; border:1px solid var(--apd5-line); border-radius:12px; background:#fff; text-align:left; }
.apd5-language-grid button.is-selected { border-color:#222; box-shadow:inset 0 0 0 1px #222; }
.apd5-language-grid strong, .apd5-language-grid span { display:block; }
.apd5-language-grid span { margin-top:4px; color:var(--apd5-muted); font-size:10px; }

/* Homey login/register modal refresh ----------------------------------- */
body.apd-marketplace-ui .custom-modal-login .modal-dialog { width:min(440px,calc(100% - 30px)); margin:7vh auto; }
body.apd-marketplace-ui .custom-modal-login .modal-content { overflow:hidden; border:0; border-radius:24px; box-shadow:0 30px 90px rgba(0,0,0,.28); }
body.apd-marketplace-ui .custom-modal-login .modal-header { min-height:58px; padding:17px 22px; border-bottom:1px solid var(--apd5-line); }
body.apd-marketplace-ui .custom-modal-login .modal-header .close { opacity:1; color:#1e2d45; }
body.apd-marketplace-ui .custom-modal-login .modal-body { padding:25px 27px 30px; }
body.apd-marketplace-ui .custom-modal-login .modal-login-left { display:none !important; }
body.apd-marketplace-ui .custom-modal-login .modal-login-right { width:100% !important; float:none !important; }
body.apd-marketplace-ui .custom-modal-login h4, body.apd-marketplace-ui .custom-modal-login h3 { color:var(--apd5-navy); font-size:27px; font-weight:900; letter-spacing:-.5px; }
body.apd-marketplace-ui .custom-modal-login .form-control { height:49px; border:1px solid #dce1e7; border-radius:11px; box-shadow:none; }
body.apd-marketplace-ui .custom-modal-login .btn-primary { min-height:49px; border:0; border-radius:11px; background:linear-gradient(135deg,var(--apd5-blue),#075fc9); font-weight:850; }
body.apd-marketplace-ui .custom-modal-login .btn-facebook-lined, body.apd-marketplace-ui .custom-modal-login .btn-google-lined { min-height:44px; border-radius:10px; }

/* Responsive ------------------------------------------------------------ */
@media (max-width: 1280px) {
    .apd5-header-row { grid-template-columns:170px minmax(430px,1fr) 275px; }
    .apd5-card-rail { grid-auto-columns:calc((100% - 60px)/6); }
    .apd5-card-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
    .apd5-service-categories { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width: 1050px) {
    .apd5-header-row { grid-template-columns:150px 1fr 180px; }
    .apd5-main-nav { gap:7px; }
    .apd5-main-nav a { min-width:72px; gap:5px; font-size:11px; }
    .apd5-host-trigger { display:none; }
    .apd5-card-rail { grid-auto-columns:calc((100% - 36px)/4); }
    .apd5-card-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .apd5-host-banner { grid-template-columns:1fr 220px; }
}
@media (max-width: 767px) {
    .apd5-header { position:sticky; }
    .apd5-header-row { width:calc(100% - 28px); height:64px; grid-template-columns:115px 1fr auto; gap:8px; }
    .apd5-logo { width:112px; }
    .apd5-logo img { height:38px; }
    .apd5-main-nav { order:3; grid-column:1/-1; position:fixed; left:0; right:0; bottom:0; z-index:1000; height:68px; padding:5px 10px max(5px,env(safe-area-inset-bottom)); justify-content:space-around; gap:0; background:#fff; border-top:1px solid var(--apd5-line); box-shadow:0 -8px 25px rgba(15,35,65,.08); }
    .apd5-main-nav a { flex-direction:column; min-width:0; gap:2px; font-size:9px; }
    .apd5-main-nav a::after { display:none; }
    .apd5-main-nav a > span { width:30px; height:30px; }
    .apd5-main-nav .apd5-icon { width:17px; height:17px; }
    .apd5-header-actions { grid-column:3; }
    .apd5-language-button { display:none; }
    .apd5-account-button { min-width:68px; height:40px; }
    .apd5-account-button img, .apd5-account-button > span { width:30px; height:30px; }
    .apd5-header-search-row { min-height:68px; padding:0 14px 11px; }
    .apd5-search { width:100%; height:52px; grid-template-columns:1fr 47px; }
    .apd5-search > i, .apd5-search-field:not(:first-of-type) { display:none; }
    .apd5-search-field:first-of-type button { padding:0 18px; }
    .apd5-search-field:first-of-type span { display:none; }
    .apd5-search-field:first-of-type strong { margin:0; color:#22334c; font-size:12px; font-weight:750; }
    .apd5-search-panel { position:fixed; inset:0; z-index:2100; width:auto !important; max-height:none; padding:22px 18px 100px; border:0; border-radius:0; transform:none !important; overflow:auto; }
    .apd5-calendar-months { grid-template-columns:1fr; }
    .apd5-calendar-month:nth-child(2) { display:none; }
    .apd5-search-backdrop { z-index:2090; }
    .apd5-account-menu { position:fixed; top:70px; right:14px; width:calc(100% - 28px); max-width:350px; }
    .apd5-main { width:calc(100% - 28px); padding:25px 0 100px; }
    .apd5-intro-strip { min-height:0; padding:25px; display:block; }
    .apd5-intro-strip h1 { font-size:32px; }
    .apd5-intro-strip > a { margin-top:20px; }
    .apd5-card-rail { grid-auto-columns:75%; gap:12px; }
    .apd5-section-head h2 { font-size:19px; }
    .apd5-rail-controls { display:none; }
    .apd5-host-banner { padding:28px; grid-template-columns:1fr; }
    .apd5-host-banner h2 { font-size:34px; }
    .apd5-host-art { display:none; }
    .apd5-catalog-heading { display:block; }
    .apd5-catalog-heading h1 { font-size:34px; }
    .apd5-publish-button { margin-top:20px; }
    .apd5-results-bar { align-items:flex-start; flex-direction:column; justify-content:center; gap:4px; }
    .apd5-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 10px; }
    .apd5-service-categories { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .apd5-service-detail-grid { grid-template-columns:1fr; gap:18px; }
    .apd5-service-detail-card { padding:22px; }
    .apd5-form-grid { grid-template-columns:1fr; }
    .apd5-submit-card { padding:23px; }
    .apd5-submit-intro h1 { font-size:32px; }
    .apd5-footer { margin-bottom:68px; }
    .apd5-footer-grid { grid-template-columns:1fr 1fr; gap:30px 20px; }
    .apd5-footer-brand { grid-column:1/-1; }
    .apd5-footer-bottom { align-items:flex-start; flex-direction:column; gap:6px; }
    .apd5-language-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 420px) {
    .apd5-card-grid { grid-template-columns:1fr; }
    .apd5-card-media { aspect-ratio:1.35; }
    .apd5-card-title-row h3 { font-size:14px; }
    .apd5-service-categories { grid-template-columns:1fr 1fr; }
}

/* =========================================================
   APD MARKETPLACE 5.2 — GLOBAL LANGUAGE + AUTH EXPERIENCE
========================================================= */

body.apd5-modal-open { overflow:hidden !important; }

/* Language and region -------------------------------------------------- */
.apd5-region-dialog {
    width:min(980px,calc(100vw - 40px));
    max-height:min(82vh,760px);
    padding:28px 30px 34px;
    border-radius:24px;
}
.apd5-region-tabs { padding-left:46px; }
.apd5-auto-translate {
    display:grid;
    grid-template-columns:44px minmax(0,1fr) auto;
    align-items:center;
    gap:14px;
    padding:16px;
    border-radius:14px;
    background:#f6f7f8;
}
.apd5-auto-translate-icon {
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:11px;
    color:#fff;
    background:linear-gradient(135deg,#2478f3,#0a56bd);
    font-size:19px;
    font-weight:900;
}
.apd5-auto-translate strong,
.apd5-auto-translate span { display:block; }
.apd5-auto-translate strong { color:#14243d; font-size:14px; }
.apd5-auto-translate span { margin-top:3px; color:var(--apd5-muted); font-size:11px; }
.apd5-switch { position:relative; width:48px; height:28px; margin:0; cursor:pointer; }
.apd5-switch input { position:absolute; opacity:0; pointer-events:none; }
.apd5-switch span { position:absolute; inset:0; border-radius:999px; background:#cfd5dc; transition:.2s ease; }
.apd5-switch span::after { content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:50%; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.2); transition:.2s ease; }
.apd5-switch input:checked + span { background:#222; }
.apd5-switch input:checked + span::after { transform:translateX(20px); }
.apd5-region-dialog h2 { margin:28px 0 14px; color:#18263c; font-size:19px; font-weight:850; }
.apd5-language-suggested {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:9px;
}
.apd5-language-heading-row { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.apd5-language-search {
    width:250px;
    height:42px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:0 12px;
    border:1px solid #dfe3e8;
    border-radius:999px;
    background:#fff;
}
.apd5-language-search .apd5-icon { width:16px; height:16px; color:#627087; }
.apd5-language-search input { width:100%; border:0; outline:0; background:transparent; font:inherit; font-size:12px; }
.apd5-language-all {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:4px 12px;
    max-height:330px;
    overflow:auto;
    padding-right:8px;
}
.apd5-language-option {
    min-height:62px;
    padding:10px 11px;
    border:1px solid transparent;
    border-radius:10px;
    background:#fff;
    color:#1b293e;
    text-align:left;
    cursor:pointer;
}
.apd5-language-option:hover { background:#f5f6f7; }
.apd5-language-option.is-selected { border-color:#222; box-shadow:inset 0 0 0 1px #222; }
.apd5-language-option strong,
.apd5-language-option span { display:block; }
.apd5-language-option strong { font-size:12px; font-weight:750; }
.apd5-language-option span { margin-top:3px; color:#6f7887; font-size:10px; line-height:1.25; }
.apd5-google-note { margin:18px 0 0; color:#778397; font-size:10px; line-height:1.5; }
.apd5-currency-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.apd5-currency-grid button { cursor:pointer; }

/* APD login/register --------------------------------------------------- */
.apd5-auth-modal {
    position:fixed;
    inset:0;
    z-index:2200;
    display:grid;
    place-items:center;
    padding:24px;
}
.apd5-auth-modal[hidden] { display:none !important; }
.apd5-auth-dialog {
    position:relative;
    z-index:2;
    width:min(440px,calc(100vw - 32px));
    max-height:calc(100vh - 48px);
    overflow:auto;
    padding:34px 34px 30px;
    border-radius:24px;
    background:#fff;
    box-shadow:0 35px 100px rgba(0,0,0,.30);
    box-sizing:border-box;
}
.apd5-auth-close {
    position:absolute;
    top:14px;
    right:14px;
    width:34px;
    height:34px;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#22334c;
    font-size:23px;
    cursor:pointer;
}
.apd5-auth-close:hover { background:#f2f4f6; }
.apd5-auth-brand { display:flex; justify-content:center; margin:0 auto 18px; }
.apd5-auth-brand img { width:96px; height:48px; object-fit:contain; }
.apd5-auth-dialog h2 { margin:0; color:#10213b; font-size:24px; line-height:1.15; font-weight:900; text-align:center; letter-spacing:-.45px; }
.apd5-auth-subtitle { margin:9px auto 22px; color:#6b7688; font-size:12px; line-height:1.45; text-align:center; }
.apd5-auth-message { margin:0 0 15px; padding:11px 12px; border-radius:10px; font-size:11px; line-height:1.4; }
.apd5-auth-message.is-error { color:#982532; background:#fff0f1; }
.apd5-auth-message.is-success { color:#15753a; background:#eaf9ef; }
.apd5-auth-step[hidden] { display:none !important; }
.apd5-auth-step label:not(.apd5-auth-terms) { display:block; margin:0 0 7px; color:#22334c; font-size:11px; font-weight:800; }
.apd5-auth-step input[type="text"],
.apd5-auth-step input[type="email"],
.apd5-auth-step input[type="tel"],
.apd5-auth-step input[type="password"] {
    width:100%;
    height:51px;
    padding:0 14px;
    border:1px solid #aeb6c2;
    border-radius:10px;
    outline:0;
    background:#fff;
    color:#17243a;
    font:inherit;
    font-size:13px;
    box-sizing:border-box;
    transition:.18s ease;
}
.apd5-auth-step input:focus { border-color:var(--apd5-blue); box-shadow:0 0 0 3px rgba(37,119,242,.12); }
.apd5-auth-primary {
    width:100%;
    min-height:50px;
    margin-top:12px;
    border:0;
    border-radius:10px;
    color:#fff;
    background:linear-gradient(135deg,#0c3e7b,#0769d8);
    font:inherit;
    font-size:13px;
    font-weight:850;
    cursor:pointer;
    box-shadow:0 8px 22px rgba(5,93,193,.2);
}
.apd5-auth-primary:hover { filter:brightness(1.04); }
.apd5-auth-primary:disabled { opacity:.65; cursor:wait; }
.apd5-auth-back { margin:0 0 12px; padding:0; border:0; background:transparent; color:#506078; font:inherit; font-size:11px; font-weight:750; cursor:pointer; }
.apd5-auth-account-pill { margin:0 0 14px; padding:11px 13px; border-radius:10px; color:#23334a; background:#f4f6f8; font-size:12px; font-weight:750; }
.apd5-password-field { position:relative; }
.apd5-password-field input { padding-right:76px !important; }
.apd5-password-field button { position:absolute; top:0; right:0; height:51px; padding:0 13px; border:0; background:transparent; color:#1f5fae; font:inherit; font-size:10px; font-weight:800; cursor:pointer; }
.apd5-auth-options { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:11px; }
.apd5-auth-options label { margin:0 !important; font-size:10px !important; font-weight:600 !important; }
.apd5-auth-options button { padding:0; border:0; background:transparent; color:#1f5fae; font:inherit; font-size:10px; font-weight:750; cursor:pointer; }
.apd5-auth-register-grid { display:grid; gap:12px; }
.apd5-auth-register-grid label { margin:0 !important; }
.apd5-auth-register-grid label span { display:block; margin-bottom:6px; color:#22334c; font-size:10px; font-weight:800; }
.apd5-auth-terms { display:flex; align-items:flex-start; gap:8px; margin:14px 0 0; color:#657187; font-size:10px; line-height:1.45; }
.apd5-auth-terms input { margin-top:2px; }
.apd5-auth-terms a { color:#1b5fae; text-decoration:underline; }
.apd5-auth-divider { position:relative; margin:20px 0 14px; text-align:center; }
.apd5-auth-divider::before { content:""; position:absolute; left:0; right:0; top:50%; height:1px; background:#e3e6ea; }
.apd5-auth-divider span { position:relative; display:inline-block; padding:0 10px; color:#657187; background:#fff; font-size:10px; }
.apd5-auth-socials { display:grid; gap:9px; }
.apd5-auth-social {
    width:100%;
    min-height:46px;
    display:grid;
    grid-template-columns:30px 1fr 30px;
    align-items:center;
    padding:0 12px;
    border:1px solid #d9dee5;
    border-radius:10px;
    background:#fff;
    color:#26364d;
    font:inherit;
    font-size:11px;
    font-weight:750;
    cursor:pointer;
}
.apd5-auth-social b { font-size:17px; }
.apd5-google-g { color:#4285f4; font-family:Arial,sans-serif; }
.apd5-facebook-f { color:#1877f2; font-family:Arial,sans-serif; }
.apd5-auth-host-canvas { display:none; }
.apd5-auth-modal.is-host-mode { padding:0; background:#f5f7fb; }
.apd5-auth-modal.is-host-mode .apd5-auth-host-canvas {
    position:absolute;
    inset:0;
    display:grid;
    grid-template-columns:repeat(6,1fr);
    grid-template-rows:repeat(2,1fr);
    gap:18px;
    padding:115px 0 0;
    overflow:hidden;
    opacity:.9;
}
.apd5-auth-modal.is-host-mode .apd5-auth-host-canvas::after { content:""; position:absolute; inset:0; background:rgba(255,255,255,.20); backdrop-filter:blur(1px); }
.apd5-auth-host-canvas span { min-width:250px; border-radius:20px; background-size:cover; background-position:center; box-shadow:0 15px 40px rgba(15,35,65,.18); transform:rotate(-1.5deg) scale(1.03); }
.apd5-auth-host-canvas span:nth-child(even) { transform:rotate(1.5deg) scale(1.03); }
.apd5-auth-modal.is-host-mode .apd5-auth-dialog { width:min(460px,calc(100vw - 32px)); }
.apd5-auth-modal.is-host-mode + .apd5-modal-backdrop { background:rgba(7,18,35,.34); }

/* Legacy Homey login remains available as a functional fallback but the APD
   shell intercepts its normal triggers on marketplace pages. */
body.apd-marketplace-ui #modal-login,
body.apd-marketplace-ui #modal-register { z-index:2190; }

@media (max-width: 900px) {
    .apd5-language-suggested,
    .apd5-language-all { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .apd5-currency-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 767px) {
    .apd5-language-button { display:grid !important; }
    .apd5-region-modal { padding:0; align-items:end; }
    .apd5-region-dialog { width:100%; max-height:92vh; padding:24px 18px 34px; border-radius:24px 24px 0 0; }
    .apd5-region-tabs { padding-left:42px; }
    .apd5-auto-translate { grid-template-columns:38px minmax(0,1fr) auto; padding:13px; }
    .apd5-auto-translate-icon { width:36px; height:36px; }
    .apd5-language-heading-row { align-items:flex-start; flex-direction:column; gap:10px; }
    .apd5-language-search { width:100%; box-sizing:border-box; }
    .apd5-language-suggested,
    .apd5-language-all { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .apd5-language-all { max-height:360px; }
    .apd5-currency-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .apd5-auth-modal { padding:0; align-items:end; }
    .apd5-auth-dialog { width:100%; max-height:94vh; padding:30px 20px calc(26px + env(safe-area-inset-bottom)); border-radius:24px 24px 0 0; }
    .apd5-auth-modal.is-host-mode .apd5-auth-host-canvas { grid-template-columns:repeat(3,1fr); padding-top:60px; gap:10px; }
    .apd5-auth-host-canvas span { min-width:180px; }
    .apd5-auth-modal.is-host-mode .apd5-auth-dialog { width:100%; }
}

/* ======================================================================
   APD MARKETPLACE 5.2 — PREMIUM LISTING DETAIL
   ====================================================================== */
body.single-listing.apd-marketplace-ui {
    background:#fff;
}
.apd52-listing-page {
    min-height:70vh;
    background:#fff;
    color:#18243a;
}
.apd52-shell {
    width:min(calc(100% - 48px),1180px);
    margin-inline:auto;
}
.apd52-icon {
    width:20px;
    height:20px;
    display:inline-block;
    vertical-align:middle;
    flex:0 0 auto;
}
.apd52-detail-nav {
    position:sticky;
    top:152px;
    z-index:760;
    min-height:58px;
    display:flex;
    align-items:center;
    background:rgba(255,255,255,.97);
    border-bottom:1px solid #e8ebef;
    box-shadow:0 3px 12px rgba(20,35,60,.035);
    backdrop-filter:blur(18px);
}
.apd52-detail-nav-inner {
    min-height:58px;
    display:flex;
    align-items:center;
    gap:26px;
}
.apd52-detail-nav a {
    position:relative;
    color:#27354a;
    text-decoration:none;
    font-size:13px;
    font-weight:750;
}
.apd52-detail-nav a:not(.apd52-btn)::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-18px;
    height:2px;
    background:#18243a;
    transform:scaleX(0);
    transition:transform .2s ease;
}
.apd52-detail-nav a:hover::after { transform:scaleX(1); }
.apd52-detail-nav-book {
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:18px;
}
.apd52-detail-nav-book > span { font-size:13px; font-weight:800; }
.apd52-detail-nav-book small { color:#66758a; font-size:11px; font-weight:500; }
.apd52-btn {
    min-height:44px;
    padding:0 19px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    border:1px solid transparent;
    border-radius:12px;
    text-decoration:none !important;
    font-size:13px;
    line-height:1;
    font-weight:800;
    cursor:pointer;
    transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.apd52-btn:hover { transform:translateY(-1px); }
.apd52-btn-primary {
    color:#fff !important;
    background:linear-gradient(135deg,#0f6fe8,#075bc3);
    border-color:#0f6fe8;
    box-shadow:0 8px 22px rgba(15,111,232,.25);
}
.apd52-btn-primary:hover { box-shadow:0 12px 28px rgba(15,111,232,.32); }
.apd52-btn-secondary {
    color:#18243a !important;
    background:#fff;
    border-color:#cfd6de;
}
.apd52-btn-secondary:hover { border-color:#18243a; }
.apd52-btn-block { width:100%; }
.apd52-listing-head {
    padding:36px 0 24px;
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
}
.apd52-eyebrow {
    margin:0 0 7px;
    color:#0f6fe8;
    font-size:11px;
    font-weight:850;
    letter-spacing:.9px;
    text-transform:uppercase;
}
.apd52-listing-head h1 {
    max-width:850px;
    margin:0;
    color:#14233b;
    font-size:clamp(28px,3.1vw,42px);
    line-height:1.08;
    letter-spacing:-1.25px;
}
.apd52-head-meta {
    margin-top:11px;
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px 18px;
    color:#44536a;
    font-size:13px;
}
.apd52-head-meta > span,
.apd52-rating-link,
.apd52-new-listing {
    display:inline-flex;
    align-items:center;
    gap:6px;
}
.apd52-rating-link { color:#18243a; text-decoration:underline; text-underline-offset:3px; }
.apd52-rating-link .apd52-icon,
.apd52-new-listing .apd52-icon { width:15px; height:15px; fill:currentColor; }
.apd52-head-meta > span .apd52-icon { width:16px; height:16px; }
.apd52-head-actions { display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.apd52-text-action {
    min-height:42px;
    padding:0 11px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    border:0;
    border-radius:10px;
    background:transparent;
    color:#18243a;
    font-size:13px;
    font-weight:750;
    text-decoration:underline;
    text-underline-offset:3px;
    cursor:pointer;
}
.apd52-text-action:hover { background:#f4f6f8; }
.apd52-text-action .apd52-icon { width:18px; height:18px; }
.apd52-text-action.is-saved .apd52-icon { fill:#0f6fe8; color:#0f6fe8; }
.apd52-gallery {
    position:relative;
    height:500px;
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    grid-template-rows:1fr 1fr;
    gap:8px;
    overflow:hidden;
    border-radius:18px;
    background:#edf0f4;
}
.apd52-gallery-item {
    min-width:0;
    min-height:0;
    padding:0;
    overflow:hidden;
    border:0;
    background:#e8ebef;
    cursor:pointer;
}
.apd52-gallery-item-1 { grid-row:1 / 3; }
.apd52-gallery-item img {
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .32s ease,filter .32s ease;
}
.apd52-gallery-item:hover img { transform:scale(1.018); filter:brightness(.94); }
.apd52-show-all-photos {
    position:absolute;
    right:18px;
    bottom:18px;
    min-height:42px;
    padding:0 15px;
    display:flex;
    align-items:center;
    gap:8px;
    border:1px solid #18243a;
    border-radius:10px;
    background:#fff;
    color:#18243a;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 5px 18px rgba(20,35,60,.13);
}
.apd52-show-all-photos .apd52-icon { width:17px; height:17px; }
.apd52-content-grid {
    padding-top:36px;
    display:grid;
    grid-template-columns:minmax(0,1fr) 380px;
    gap:72px;
    align-items:start;
}
.apd52-main-column { min-width:0; }
.apd52-section {
    padding:34px 0;
    border-bottom:1px solid #e4e8ed;
}
.apd52-section > h2,
.apd52-section header h2 {
    margin:0 0 22px;
    color:#16243b;
    font-size:25px;
    line-height:1.2;
    letter-spacing:-.5px;
}
.apd52-summary-section {
    padding-top:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
}
.apd52-summary-copy h2 { margin:0; font-size:24px; line-height:1.2; }
.apd52-summary-copy p { margin:7px 0 0; color:#536176; font-size:14px; }
.apd52-host-avatar-link { position:relative; flex:0 0 auto; }
.apd52-host-avatar-link img { width:62px; height:62px; display:block; border-radius:50%; object-fit:cover; }
.apd52-host-avatar-link span {
    position:absolute;
    right:-2px;
    bottom:-2px;
    width:22px;
    height:22px;
    display:grid;
    place-items:center;
    border:3px solid #fff;
    border-radius:50%;
    color:#fff;
    background:#0f6fe8;
    font-size:11px;
    font-weight:900;
}
.apd52-highlights { display:grid; gap:22px; }
.apd52-highlights article { display:grid; grid-template-columns:42px 1fr; gap:16px; }
.apd52-highlight-icon {
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:12px;
    color:#0f6fe8;
    background:#eef5ff;
}
.apd52-highlight-icon .apd52-icon { width:22px; height:22px; }
.apd52-highlights h3 { margin:0 0 4px; font-size:16px; }
.apd52-highlights p { margin:0; color:#647188; font-size:13px; line-height:1.55; }
.apd52-description-content {
    position:relative;
    max-height:190px;
    overflow:hidden;
    color:#324057;
    font-size:15px;
    line-height:1.75;
}
.apd52-description-content::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:62px;
    background:linear-gradient(transparent,#fff);
}
.apd52-description.is-expanded .apd52-description-content { max-height:none; }
.apd52-description.is-expanded .apd52-description-content::after { display:none; }
.apd52-description .apd52-btn { margin-top:18px; }
.apd52-sleep-card {
    width:min(100%,330px);
    overflow:hidden;
    border:1px solid #dfe4e9;
    border-radius:16px;
    background:#fff;
}
.apd52-sleep-card img { width:100%; aspect-ratio:1.55; display:block; object-fit:cover; }
.apd52-sleep-card > div { padding:17px; }
.apd52-sleep-card h3 { margin:0 0 5px; font-size:16px; }
.apd52-sleep-card p { margin:0; color:#68758a; font-size:13px; }
.apd52-amenity-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px 28px;
}
.apd52-amenity-grid > div { display:flex; align-items:center; gap:13px; color:#28374d; font-size:14px; }
.apd52-amenity-grid .apd52-icon { width:21px; height:21px; color:#0f6fe8; }
.apd52-amenities .apd52-btn { margin-top:24px; }
.apd52-native-calendar .availability-section,
.apd52-native-calendar .block,
.apd52-native-calendar .block-section,
.apd52-native-calendar .block-body {
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
}
.apd52-native-calendar .block-body > .block-left,
.apd52-native-calendar .block-body > .block-right { display:none !important; }
.apd52-native-calendar .block-availability-calendars { margin:0 !important; }
.apd52-native-calendar .single-listing-calendar {
    padding:0 !important;
    border:0 !important;
}
.apd52-native-calendar .main-listing-calendar-wrap,
.apd52-native-calendar .main-listing-hourly-calendar-wrap {
    width:50% !important;
    padding-right:20px;
    box-sizing:border-box;
}
.apd52-native-calendar .days li,
.apd52-native-calendar .weekdays li { font-size:12px; }
.apd52-native-calendar .availability-notes { margin-top:18px; }
.apd52-reviews-head {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:25px;
    margin-bottom:26px;
}
.apd52-reviews-head h2 { display:flex; align-items:center; gap:8px; margin-bottom:7px !important; }
.apd52-reviews-head h2 .apd52-icon { width:22px; height:22px; fill:currentColor; }
.apd52-reviews-head p { max-width:600px; margin:0; color:#657188; font-size:13px; line-height:1.55; }
.apd52-rating-overview {
    margin-bottom:30px;
    padding:24px;
    display:grid;
    grid-template-columns:1.3fr repeat(3,1fr);
    gap:0;
    border:1px solid #e1e5ea;
    border-radius:18px;
}
.apd52-rating-overview > div {
    min-height:70px;
    padding:8px 20px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-left:1px solid #e1e5ea;
}
.apd52-rating-overview > div:nth-child(1),
.apd52-rating-overview > div:nth-child(5) { border-left:0; }
.apd52-rating-overview > div:nth-child(n+5) { border-top:1px solid #e1e5ea; }
.apd52-rating-overview span { color:#5f6d83; font-size:12px; }
.apd52-rating-overview strong { margin-top:5px; font-size:18px; }
.apd52-rating-main strong { margin:0; font-size:42px; line-height:1; }
.apd52-review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 45px; }
.apd52-review-card { min-width:0; }
.apd52-review-card header { display:flex; align-items:center; gap:12px; }
.apd52-review-card header img { width:48px; height:48px; border-radius:50%; object-fit:cover; }
.apd52-review-card h3 { margin:0; font-size:15px; }
.apd52-review-card header p { margin:3px 0 0; color:#6c788b; font-size:11px; }
.apd52-review-stars { margin:13px 0 7px; letter-spacing:1px; color:#18243a; font-size:12px; }
.apd52-review-card > p { margin:0; color:#38465b; font-size:13px; line-height:1.6; }
.apd52-reviews-section > .apd52-btn { margin-top:28px; }
.apd52-empty-reviews { padding:24px; display:flex; gap:15px; border:1px solid #e1e5ea; border-radius:16px; background:#fafbfc; }
.apd52-empty-reviews > .apd52-icon { width:28px; height:28px; color:#0f6fe8; fill:#0f6fe8; }
.apd52-empty-reviews h3 { margin:0 0 5px; font-size:16px; }
.apd52-empty-reviews p { margin:0; color:#657188; font-size:13px; }
.apd52-map-address { margin:-13px 0 20px; color:#56647a; font-size:14px; }
.apd52-map-section .map-section,
.apd52-map-section .block,
.apd52-map-section .block-section,
.apd52-map-section .block-body {
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}
.apd52-map-section .block-left { display:none !important; }
.apd52-map-section #homey_listing_map,
.apd52-map-section .map-canvas {
    min-height:420px !important;
    border-radius:18px;
    overflow:hidden;
}
.apd52-host-grid { display:grid; grid-template-columns:260px 1fr; gap:36px; align-items:start; }
.apd52-host-card {
    padding:25px;
    text-align:center;
    border:1px solid #dfe4ea;
    border-radius:20px;
    background:#fff;
    box-shadow:0 12px 32px rgba(20,35,60,.09);
}
.apd52-host-card > img { width:88px; height:88px; border-radius:50%; object-fit:cover; }
.apd52-host-card h3 { margin:12px 0 3px; font-size:23px; }
.apd52-host-card > p { margin:0 0 20px; color:#647188; font-size:12px; }
.apd52-host-card dl { margin:0; display:grid; gap:9px; }
.apd52-host-card dl > div { padding-top:10px; display:flex; align-items:center; justify-content:space-between; border-top:1px solid #e5e8ec; }
.apd52-host-card dt { color:#637087; font-size:11px; font-weight:500; }
.apd52-host-card dd { margin:0; font-size:14px; font-weight:800; }
.apd52-host-info h3 { margin:0 0 14px; font-size:21px; }
.apd52-host-info p { color:#3e4c60; font-size:14px; line-height:1.65; }
.apd52-host-actions { margin-top:22px; display:flex; flex-wrap:wrap; gap:10px; }
.apd52-rules-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; }
.apd52-rules-grid article > span { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; color:#0f6fe8; background:#eef5ff; }
.apd52-rules-grid h3 { margin:13px 0 7px; font-size:15px; }
.apd52-rules-grid p { margin:0; color:#5c6a80; font-size:12px; line-height:1.6; }
.apd52-booking-column { position:sticky; top:230px; min-width:0; }
.apd52-price-note {
    margin-bottom:12px;
    min-height:54px;
    padding:12px 16px;
    display:flex;
    align-items:center;
    gap:10px;
    border:1px solid #e4e8ed;
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 24px rgba(20,35,60,.08);
    color:#37465b;
    font-size:12px;
    line-height:1.4;
}
.apd52-price-note .apd52-icon { color:#0f6fe8; }
.apd52-booking-card {
    padding:24px;
    border:1px solid #dfe4e9;
    border-radius:18px;
    background:#fff;
    box-shadow:0 14px 38px rgba(20,35,60,.13);
}
.apd52-booking-card > header { margin-bottom:18px; display:flex; align-items:baseline; gap:7px; }
.apd52-booking-card > header strong { font-size:23px; }
.apd52-booking-card > header span { color:#647188; font-size:12px; }
.apd52-booking-card .sidebar-booking-module,
.apd52-booking-card .block,
.apd52-booking-card .block-body,
.apd52-booking-card .sidebar-booking-module-body {
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
}
.apd52-booking-card .sidebar-booking-module-header { padding:0 0 18px !important; border:0 !important; }
.apd52-booking-card .sidebar-booking-module-header .item-price { font-size:23px !important; }
.apd52-booking-card .form-control,
.apd52-booking-card .bootstrap-select > .dropdown-toggle,
.apd52-booking-card input,
.apd52-booking-card select {
    min-height:48px !important;
    border-color:#cfd6df !important;
    border-radius:10px !important;
    box-shadow:none !important;
}
.apd52-booking-card .btn-primary,
.apd52-booking-card .reserve_per_night,
.apd52-booking-card .reserve_per_day,
.apd52-booking-card .reserve_hourly {
    min-height:48px !important;
    border:0 !important;
    border-radius:11px !important;
    background:linear-gradient(135deg,#0f6fe8,#075bc3) !important;
    color:#fff !important;
    font-weight:800 !important;
    box-shadow:0 8px 22px rgba(15,111,232,.25) !important;
}
.apd52-booking-card .payment-list-detail-btn { color:#0f6fe8 !important; }
.apd52-report-link {
    width:100%;
    margin-top:14px;
    border:0;
    background:transparent;
    color:#59677d;
    text-decoration:underline;
    text-underline-offset:3px;
    font-size:11px;
    cursor:pointer;
}
.apd52-similar-section { padding:54px 0 76px; }
.apd52-similar-section > h2 { margin:0 0 22px; font-size:24px; }
.apd52-similar-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px 14px; }
.apd52-similar-grid .apd5-card-media { aspect-ratio:1.15; }
.apd52-similar-grid .apd5-card-title-row h3 { font-size:13px; }
.apd52-gallery-modal {
    position:fixed;
    inset:0;
    z-index:3000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:65px 85px;
    background:rgba(6,12,22,.96);
}
.apd52-gallery-modal.is-open { display:flex; }
.apd52-gallery-modal figure { width:min(1100px,100%); height:min(78vh,820px); margin:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.apd52-gallery-modal figure img { max-width:100%; max-height:calc(100% - 35px); object-fit:contain; border-radius:8px; }
.apd52-gallery-modal figcaption { margin-top:12px; color:rgba(255,255,255,.75); font-size:12px; }
.apd52-gallery-close,
.apd52-gallery-prev,
.apd52-gallery-next {
    position:absolute;
    border:0;
    border-radius:50%;
    display:grid;
    place-items:center;
    color:#fff;
    background:rgba(255,255,255,.13);
    cursor:pointer;
}
.apd52-gallery-close { top:22px; right:25px; width:46px; height:46px; }
.apd52-gallery-prev,
.apd52-gallery-next { top:50%; width:50px; height:50px; transform:translateY(-50%); font-size:32px; }
.apd52-gallery-prev { left:24px; }
.apd52-gallery-next { right:24px; }
.apd52-gallery-close .apd52-icon { width:22px; height:22px; }
body.apd52-gallery-locked { overflow:hidden; }

@media (max-width:1100px) {
    .apd52-detail-nav { top:152px; }
    .apd52-content-grid { grid-template-columns:minmax(0,1fr) 340px; gap:40px; }
    .apd52-gallery { height:430px; }
    .apd52-rating-overview { grid-template-columns:repeat(3,1fr); }
    .apd52-rating-overview > div { border-left:1px solid #e1e5ea !important; border-top:1px solid #e1e5ea; }
    .apd52-rating-overview > div:nth-child(1),
    .apd52-rating-overview > div:nth-child(4),
    .apd52-rating-overview > div:nth-child(7) { border-left:0 !important; }
    .apd52-rating-overview > div:nth-child(-n+3) { border-top:0; }
    .apd52-similar-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:900px) {
    .apd52-shell { width:min(calc(100% - 32px),760px); }
    .apd52-detail-nav { top:76px; }
    .apd52-detail-nav-inner > a { display:none; }
    .apd52-detail-nav-book { width:100%; justify-content:space-between; }
    .apd52-listing-head { align-items:flex-start; }
    .apd52-head-actions { padding-top:3px; }
    .apd52-gallery { height:420px; grid-template-columns:1.5fr 1fr; }
    .apd52-gallery-item-1 { grid-row:1 / 3; }
    .apd52-gallery-item-4,
    .apd52-gallery-item-5 { display:none; }
    .apd52-content-grid { grid-template-columns:1fr; gap:0; }
    .apd52-booking-column { position:static; order:-1; margin-bottom:10px; }
    .apd52-booking-card { max-width:none; }
    .apd52-price-note { display:none; }
    .apd52-main-column { order:1; }
    .apd52-native-calendar .main-listing-calendar-wrap,
    .apd52-native-calendar .main-listing-hourly-calendar-wrap { width:100% !important; padding-right:0; }
    .apd52-host-grid { grid-template-columns:230px 1fr; }
    .apd52-similar-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
    .apd52-shell { width:calc(100% - 28px); }
    .apd52-detail-nav { top:68px; }
    .apd52-detail-nav-book > span { font-size:12px; }
    .apd52-detail-nav-book .apd52-btn { min-height:40px; padding:0 16px; }
    .apd52-listing-head { padding:25px 0 17px; display:block; }
    .apd52-listing-head h1 { font-size:29px; }
    .apd52-head-actions { margin-top:13px; justify-content:flex-start; }
    .apd52-text-action { padding-inline:0 12px; }
    .apd52-gallery { width:100%; height:310px; border-radius:0; grid-template-columns:1fr; }
    .apd52-gallery-item-1 { grid-row:auto; }
    .apd52-gallery-item:not(:first-child) { display:none; }
    .apd52-show-all-photos { right:14px; bottom:14px; }
    .apd52-content-grid { width:calc(100% - 28px); padding-top:20px; }
    .apd52-booking-card { padding:18px; border-radius:15px; }
    .apd52-section { padding:28px 0; }
    .apd52-section > h2,
    .apd52-section header h2 { font-size:22px; }
    .apd52-summary-copy h2 { font-size:20px; }
    .apd52-summary-copy p { font-size:13px; line-height:1.55; }
    .apd52-highlights article { grid-template-columns:38px 1fr; gap:13px; }
    .apd52-highlight-icon { width:38px; height:38px; }
    .apd52-amenity-grid { grid-template-columns:1fr; gap:16px; }
    .apd52-reviews-head { display:block; }
    .apd52-reviews-head .apd52-btn { margin-top:18px; }
    .apd52-rating-overview { grid-template-columns:repeat(2,1fr); padding:15px; }
    .apd52-rating-overview > div { min-height:66px; padding:8px 12px; }
    .apd52-rating-overview > div:nth-child(odd) { border-left:0 !important; }
    .apd52-rating-overview > div:nth-child(even) { border-left:1px solid #e1e5ea !important; }
    .apd52-rating-overview > div:nth-child(-n+2) { border-top:0; }
    .apd52-review-grid { grid-template-columns:1fr; gap:26px; }
    .apd52-host-grid { grid-template-columns:1fr; }
    .apd52-host-card { max-width:320px; }
    .apd52-rules-grid { grid-template-columns:1fr; gap:25px; }
    .apd52-similar-section { width:calc(100% - 28px); }
    .apd52-similar-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; }
    .apd52-similar-grid .apd5-card { flex:0 0 76%; scroll-snap-align:start; }
    .apd52-gallery-modal { padding:60px 10px; }
    .apd52-gallery-prev { left:8px; }
    .apd52-gallery-next { right:8px; }
}
.apd52-info-modal {
    position:fixed;
    inset:0;
    z-index:2950;
    display:none;
    align-items:center;
    justify-content:center;
    padding:40px 20px;
    background:rgba(15,22,33,.58);
    backdrop-filter:blur(6px);
}
.apd52-info-modal.is-open { display:flex; }
.apd52-info-modal-dialog {
    position:relative;
    width:min(760px,100%);
    max-height:min(82vh,820px);
    overflow:auto;
    padding:32px;
    border-radius:22px;
    background:#fff;
    box-shadow:0 28px 80px rgba(10,25,50,.3);
}
.apd52-info-modal-dialog > h2 { margin:0 50px 25px 0; font-size:27px; }
.apd52-info-modal-close {
    position:absolute;
    top:18px;
    right:18px;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:50%;
    background:#f2f4f6;
    cursor:pointer;
}
.apd52-info-modal-close .apd52-icon { width:20px; height:20px; }
.apd52-modal-amenities { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 25px; }
.apd52-modal-amenities > div { display:flex; align-items:center; gap:12px; min-height:42px; border-bottom:1px solid #edf0f3; }
.apd52-modal-amenities .apd52-icon { width:20px; height:20px; color:#0f6fe8; }
.apd52-modal-review-list { display:grid; gap:28px; }
.apd52-reviews-modal .apd52-info-modal-dialog { width:min(860px,100%); }
@media (max-width:680px) {
    .apd52-info-modal { padding:0; align-items:flex-end; }
    .apd52-info-modal-dialog { width:100%; max-height:90vh; padding:25px 20px 35px; border-radius:22px 22px 0 0; }
    .apd52-modal-amenities { grid-template-columns:1fr; }
}
.apd52-rating-overview.is-overall-only {
    grid-template-columns: minmax(220px, 320px);
    justify-content: start;
}
.apd52-rating-overview.is-overall-only > div {
    border: 0 !important;
}
.apd52-booking-card #homey_remove_on_mobile {
    display: block !important;
}
.apd52-booking-card .sidebar-booking-module-footer {
    display: none !important;
}
.apd52-booking-card .single-listing-booking-calendar-js {
    width: min(720px, calc(100vw - 40px)) !important;
    right: 0 !important;
    left: auto !important;
    z-index: 1200 !important;
}
@media (max-width: 680px) {
    .apd52-booking-card .single-listing-booking-calendar-js {
        position: fixed !important;
        inset: auto 0 0 0 !important;
        width: 100% !important;
        max-height: 82vh;
        overflow: auto;
        border-radius: 22px 22px 0 0 !important;
    }
}


/* ======================================================================
   APD MARKETPLACE 6.0.0 · DESKTOP SCALE / AIRBNB-LIKE PROPORTIONS
   Keeps APD branding while matching the reference density and placement.
   ====================================================================== */
@media (min-width: 1201px) {
    body.apd-marketplace-ui {
        overflow-x: hidden;
    }

    .apd5-header-row,
    .apd5-main,
    .apd5-footer-grid,
    .apd5-footer-bottom {
        width: min(calc(100vw - 128px), var(--apd5-max)) !important;
        max-width: var(--apd5-max) !important;
    }

    .apd5-header-row {
        height: 82px;
        grid-template-columns: 200px minmax(620px, 1fr) 310px;
        gap: 28px;
    }

    .apd5-logo {
        width: 150px;
    }

    .apd5-logo img {
        height: 46px;
    }

    .apd5-main-nav {
        gap: 30px;
    }

    .apd5-main-nav a {
        min-width: 104px;
        gap: 9px;
        font-size: 14px;
    }

    .apd5-main-nav a > span {
        width: 38px;
        height: 38px;
        border-radius: 13px;
    }

    .apd5-main-nav .apd5-icon {
        width: 21px;
        height: 21px;
    }

    .apd5-header-actions {
        gap: 12px;
    }

    .apd5-host-trigger {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 42px;
        padding: 0 15px;
        color: #222b3a;
        text-decoration: none;
        font-size: 13px;
        white-space: nowrap;
    }

    .apd5-language-button {
        width: 42px;
        height: 42px;
    }

    .apd5-account-button {
        min-width: 82px;
        height: 46px;
    }

    .apd5-header-search-row {
        min-height: 78px;
        padding: 0 24px 15px;
    }

    .apd5-search {
        width: min(700px, calc(100vw - 80px));
        height: 58px;
        grid-template-columns: 1.1fr 1px .95fr 1px 1fr 56px;
    }

    .apd5-search-field > button {
        padding: 0 20px;
    }

    .apd5-search-field span {
        font-size: 11px;
    }

    .apd5-search-field strong {
        font-size: 12px;
    }

    .apd5-search-submit {
        width: 48px;
        height: 48px;
        margin-right: 5px;
    }

    .apd5-main {
        padding-top: 34px;
    }

    .apd5-main > .apd5-rail:first-child {
        margin-top: 0;
    }

    .apd5-rail {
        margin-top: 36px;
    }

    .apd5-section-head {
        margin-bottom: 14px;
    }

    .apd5-section-head h2,
    .apd5-section-head h2 a {
        font-size: 20px;
        line-height: 1.25;
    }

    .apd5-section-head p {
        margin-top: 4px;
        font-size: 12px;
    }

    .apd5-card-rail {
        grid-auto-columns: calc((100% - 72px) / 7);
        gap: 12px;
    }

    .apd5-card-media {
        border-radius: 16px;
        aspect-ratio: 1.02 / 1;
    }

    .apd5-card-body {
        padding-top: 10px;
    }

    .apd5-card-title-row h3 {
        font-size: 13px;
    }

    .apd5-card-title-row > span,
    .apd5-card-body p {
        font-size: 10px;
    }

    .apd5-card-body > strong {
        font-size: 11px;
    }

    .apd5-card-body > strong small {
        font-size: 9px;
    }

    .apd5-card-badge {
        top: 11px;
        left: 11px;
        padding: 7px 11px;
        font-size: 10px;
    }

    .apd5-host-banner {
        margin-top: 52px;
    }
}

@media (min-width: 1600px) {
    .apd5-header-row,
    .apd5-main,
    .apd5-footer-grid,
    .apd5-footer-bottom {
        width: min(calc(100vw - 176px), var(--apd5-max)) !important;
    }
}

/* ======================================================================
   APD MARKETPLACE 6.0.0 — BÚSQUEDA CON MAPA
   ====================================================================== */

/* En escritorio, los selectores de lugar/fechas/viajeros flotan como en
   Airbnb: no oscurecen ni bloquean el resto de la página. */
@media (min-width: 768px) {
    .apd5-search-backdrop { display:none !important; }
    body.apd5-search-open { overflow:auto !important; }
    .apd5-search-panel { z-index:1200; }
}

.apd5-search-results-page .apd5-header {
    position:sticky;
    top:0;
    z-index:1500;
    box-shadow:none;
}
.apd5-search-results-page .apd5-header-row {
    height:72px;
    grid-template-columns:190px 1fr 290px;
}
.apd5-search-results-page .apd5-main-nav { visibility:hidden; pointer-events:none; }
.apd5-search-results-page .apd5-logo { width:126px; }
.apd5-search-results-page .apd5-logo img { height:40px; }
.apd5-search-results-page .apd5-header-search-row {
    position:absolute;
    top:9px;
    left:50%;
    z-index:1510;
    min-height:0;
    padding:0;
    transform:translateX(-50%);
    pointer-events:none;
}
.apd5-search-results-page .apd5-header-search-row .apd5-search { pointer-events:auto; }
.apd5-search-results-page .apd5-search {
    width:min(570px,calc(100vw - 760px));
    min-width:470px;
    height:52px;
    box-shadow:0 5px 18px rgba(20,37,65,.12);
}
.apd5-search-results-page .apd5-search-field > button { padding-inline:15px; }
.apd5-search-results-page .apd5-search-submit { width:42px; height:42px; }
.apd5-search-results-page .apd5-host-trigger { font-size:12px; }
.apd5-search-results-page .apd5-footer { display:none !important; }

.apd53-search-page {
    min-height:calc(100vh - 72px);
    background:#fff;
}
.apd53-filter-strip {
    position:sticky;
    top:72px;
    z-index:800;
    height:64px;
    border-bottom:1px solid #e8eaed;
    background:rgba(255,255,255,.98);
    box-shadow:0 2px 7px rgba(20,35,58,.03);
}
.apd53-filter-inner {
    width:100%;
    height:100%;
    padding:0 22px;
    display:flex;
    align-items:center;
    gap:9px;
    overflow-x:auto;
    scrollbar-width:none;
    box-sizing:border-box;
}
.apd53-filter-inner::-webkit-scrollbar { display:none; }
.apd53-filter-inner > a,
.apd53-filter-master {
    flex:0 0 auto;
    min-height:36px;
    padding:0 14px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid #d9dde3;
    border-radius:999px;
    color:#26364d;
    background:#fff;
    text-decoration:none;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.apd53-filter-inner > a:hover,
.apd53-filter-master:hover { border-color:#738096; box-shadow:0 2px 9px rgba(15,35,65,.08); }
.apd53-filter-inner > a.is-active { border-color:var(--apd5-navy); background:#eef5ff; color:var(--apd5-navy); }

.apd53-results-layout {
    height:calc(100vh - 136px);
    min-height:620px;
    display:grid;
    grid-template-columns:minmax(680px,52%) minmax(0,48%);
    overflow:hidden;
}
.apd53-results-pane {
    height:100%;
    padding:26px 24px 44px;
    overflow-y:auto;
    box-sizing:border-box;
    scrollbar-gutter:stable;
}
.apd53-results-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:22px;
    margin-bottom:22px;
}
.apd53-results-heading p { margin:0 0 4px; color:#56647a; font-size:12px; }
.apd53-results-heading h1 { margin:0; color:#16243a; font-size:23px; line-height:1.15; letter-spacing:-.4px; }
.apd53-results-heading > span {
    max-width:260px;
    padding:9px 12px;
    border-radius:12px;
    color:#3e4c61;
    background:#fafafa;
    font-size:10px;
    line-height:1.35;
}
.apd53-map-notice {
    margin:-5px 0 18px;
    padding:12px 14px;
    border:1px solid #dce8f8;
    border-radius:12px;
    color:#38516f;
    background:#f3f8ff;
    font-size:11px;
    line-height:1.45;
}
.apd53-results-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:28px 14px;
}
.apd53-result-card {
    position:relative;
    min-width:0;
    padding:0 0 10px;
    border-radius:16px;
    transition:box-shadow .18s ease, transform .18s ease;
}
.apd53-result-card.is-map-active { box-shadow:0 0 0 3px rgba(15,111,232,.23); transform:translateY(-1px); }
.apd53-result-image {
    position:relative;
    display:block;
    overflow:hidden;
    aspect-ratio:1.12/1;
    border-radius:15px;
    background:#edf0f3;
}
.apd53-result-image img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .25s ease; }
.apd53-result-card:hover .apd53-result-image img { transform:scale(1.025); }
.apd53-result-image > span {
    position:absolute;
    top:10px;
    left:10px;
    max-width:calc(100% - 54px);
    padding:6px 10px;
    overflow:hidden;
    border-radius:999px;
    color:#26364d;
    background:rgba(255,255,255,.94);
    box-shadow:0 2px 7px rgba(0,0,0,.08);
    font-size:9px;
    font-weight:750;
    white-space:nowrap;
    text-overflow:ellipsis;
}
.apd53-result-card > .apd5-favorite { top:7px; right:7px; z-index:2; }
.apd53-result-body { padding:9px 2px 0; }
.apd53-result-title { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }
.apd53-result-title > a {
    min-width:0;
    overflow:hidden;
    color:#1f2b3d;
    text-decoration:none;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:12px;
    font-weight:800;
}
.apd53-result-title > span { flex:0 0 auto; display:flex; align-items:center; gap:3px; color:#25334a; font-size:9px; }
.apd53-result-title .apd5-icon { width:10px; height:10px; fill:currentColor; }
.apd53-result-body p { margin:5px 0 0; overflow:hidden; color:#68758a; font-size:9px; line-height:1.4; text-overflow:ellipsis; white-space:nowrap; }
.apd53-result-body .apd53-result-features { color:#5b687b; }
.apd53-result-body > strong { display:block; margin-top:7px; color:#1b293d; font-size:11px; }
.apd53-result-body > strong small { color:#627087; font-size:8px; font-weight:500; }
.apd53-no-results { grid-column:1/-1; padding:70px 24px; text-align:center; }
.apd53-no-results h2 { margin:0 0 8px; font-size:22px; }
.apd53-no-results p { color:#66758e; }
.apd53-no-results a { display:inline-flex; min-height:42px; padding:0 18px; align-items:center; border-radius:999px; color:#fff; background:var(--apd5-navy); text-decoration:none; font-weight:700; }

.apd53-map-pane {
    position:relative;
    height:100%;
    min-width:0;
    overflow:hidden;
    border-left:1px solid #e3e6ea;
    background:#e8f2dd;
}
.apd53-results-map { width:100%; height:100%; min-height:620px; background:#e8f2dd; }
.apd53-map-toolbar {
    position:absolute;
    top:14px;
    right:14px;
    z-index:650;
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 7px 6px 12px;
    border:1px solid rgba(30,45,60,.08);
    border-radius:999px;
    background:#fff;
    box-shadow:0 6px 20px rgba(20,35,55,.14);
    font-size:10px;
    font-weight:750;
}
.apd53-map-toolbar button { width:30px; height:30px; border:0; border-radius:50%; background:#f2f4f6; cursor:pointer; }
.apd53-map-empty { position:absolute; inset:0; z-index:500; display:grid; place-content:center; gap:7px; padding:30px; text-align:center; color:#33465f; background:linear-gradient(135deg,#eef5e3,#e5f0da); }
.apd53-map-empty strong { font-size:18px; }
.apd53-map-empty span { max-width:360px; color:#607086; font-size:12px; }
.apd53-price-marker-wrap { border:0 !important; background:transparent !important; }
.apd53-price-marker {
    min-width:72px;
    height:34px;
    padding:0 11px;
    border:1px solid rgba(28,42,58,.18);
    border-radius:999px;
    color:#202a39;
    background:#fff;
    box-shadow:0 4px 13px rgba(30,43,60,.20);
    font-size:11px;
    font-weight:850;
    white-space:nowrap;
    cursor:pointer;
    transition:transform .16s ease, background .16s ease, color .16s ease;
}
.leaflet-marker-icon:hover .apd53-price-marker,
.leaflet-marker-icon.leaflet-interactive:focus .apd53-price-marker { transform:scale(1.08); color:#fff; background:#172a45; }
.apd53-map-pane .leaflet-popup-content-wrapper { overflow:hidden; padding:0; border-radius:16px; box-shadow:0 14px 38px rgba(20,35,55,.22); }
.apd53-map-pane .leaflet-popup-content { width:270px !important; margin:0; }
.apd53-map-pane .leaflet-popup-tip { box-shadow:none; }
.apd53-map-popup { display:grid; grid-template-columns:104px 1fr; min-height:108px; color:#1f2c3f; text-decoration:none; }
.apd53-map-popup img { width:104px; height:100%; min-height:108px; object-fit:cover; }
.apd53-map-popup > div { min-width:0; padding:12px 11px; display:flex; flex-direction:column; }
.apd53-map-popup strong { overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.apd53-map-popup span { margin-top:4px; overflow:hidden; color:#68758a; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.apd53-map-popup b { margin-top:auto; font-size:11px; }
.apd53-map-popup b small { font-size:8px; font-weight:500; }
.apd53-map-popup > div > small { margin-top:3px; color:#627087; font-size:8px; }
.apd53-mobile-view-toggle { display:none; }

.apd5-search-results-page .apd5-pagination { padding:24px 0 8px; }

@media (max-width: 1450px) {
    .apd53-results-layout { grid-template-columns:minmax(620px,55%) minmax(0,45%); }
    .apd53-results-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 1100px) {
    .apd5-search-results-page .apd5-header-row { grid-template-columns:145px 1fr 230px; }
    .apd5-search-results-page .apd5-search { width:500px; min-width:500px; }
    .apd5-search-results-page .apd5-host-trigger { display:none; }
    .apd53-results-layout { grid-template-columns:minmax(520px,58%) minmax(0,42%); }
}

@media (max-width: 899px) {
    .apd5-search-results-page .apd5-header-row { height:64px; grid-template-columns:115px 1fr 90px; width:calc(100% - 24px); }
    .apd5-search-results-page .apd5-logo { width:94px; }
    .apd5-search-results-page .apd5-logo img { height:34px; }
    .apd5-search-results-page .apd5-language-button { display:none; }
    .apd5-search-results-page .apd5-account-button { min-width:68px; }
    .apd5-search-results-page .apd5-header-search-row { position:static; transform:none; padding:0 12px 10px; }
    .apd5-search-results-page .apd5-search { width:100%; min-width:0; height:50px; }
    .apd5-search-results-page .apd5-header { position:sticky; }
    .apd53-filter-strip { top:124px; height:54px; }
    .apd53-results-layout { height:auto; min-height:calc(100vh - 178px); display:block; overflow:visible; }
    .apd53-results-pane { height:auto; padding:20px 16px 90px; overflow:visible; }
    .apd53-results-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 12px; }
    .apd53-map-pane { position:fixed; inset:178px 0 0; z-index:720; display:none; border-left:0; }
    .apd53-search-page.is-mobile-map .apd53-results-pane { display:none; }
    .apd53-search-page.is-mobile-map .apd53-map-pane { display:block; }
    .apd53-results-map { min-height:100%; }
    .apd53-mobile-view-toggle {
        position:fixed;
        left:50%;
        bottom:24px;
        z-index:900;
        min-height:46px;
        padding:0 18px;
        display:flex;
        align-items:center;
        gap:8px;
        border:0;
        border-radius:999px;
        color:#fff;
        background:#172a45;
        box-shadow:0 8px 24px rgba(15,28,45,.28);
        transform:translateX(-50%);
        font-weight:800;
    }
}

@media (max-width: 560px) {
    .apd53-results-heading { display:block; }
    .apd53-results-heading > span { display:inline-flex; margin-top:12px; }
    .apd53-results-grid { grid-template-columns:1fr; gap:26px; }
    .apd53-result-image { aspect-ratio:1.25/1; }
}
.apd53-filter-strip { position:sticky; }
.apd53-filter-drawer {
    position:absolute;
    top:calc(100% + 8px);
    left:22px;
    z-index:930;
    width:min(600px,calc(100vw - 44px));
    padding:18px;
    border:1px solid #e0e4e9;
    border-radius:18px;
    background:#fff;
    box-shadow:0 20px 55px rgba(20,35,55,.18);
    box-sizing:border-box;
}
.apd53-filter-drawer[hidden] { display:none !important; }
.apd53-filter-drawer > div + div { margin-top:16px; padding-top:16px; border-top:1px solid #edf0f3; }
.apd53-filter-drawer strong { display:block; margin-bottom:9px; font-size:12px; }
.apd53-filter-drawer > div > div { display:flex; flex-wrap:wrap; gap:8px; }
.apd53-filter-drawer a { min-height:34px; padding:0 12px; display:inline-flex; align-items:center; border:1px solid #dce1e7; border-radius:999px; color:#314159; text-decoration:none; font-size:10px; font-weight:700; }
.apd53-filter-drawer a.is-active { color:#fff; border-color:var(--apd5-navy); background:var(--apd5-navy); }
.apd53-filter-drawer .apd53-clear-filters { margin-top:18px; color:#fff; border-color:var(--apd5-navy); background:var(--apd5-navy); }

/* APD Marketplace 8.0 — account roles and Airbnb-like header scale */
.apd5-account-user > div { min-width:0; }
.apd5-account-role { width:max-content; display:inline-flex !important; margin-top:6px; padding:4px 8px; border-radius:999px; color:#315b8d !important; background:#edf5ff; font-size:9px !important; font-weight:900 !important; letter-spacing:.04em; text-transform:uppercase; }
.apd5-account-role.is-administrator { color:#8a4b00 !important; background:#fff2d9; }
.apd5-account-role.is-host { color:#245b30 !important; background:#edf8ef; }
.apd5-account-role.is-guest { color:#665173 !important; background:#f5eff8; }
@media (min-width:1100px) {
    .apd5-header-row { width:min(1220px,calc(100% - 64px)); min-height:82px; }
    .apd5-logo { width:104px; }
    .apd5-main-nav { gap:12px; }
    .apd5-header-search-row { padding-bottom:17px; }
}


/* ======================================================================
   APD MARKETPLACE 9.0.0 · ADAPTIVE DISCOVERY + STICKY LISTING EXPERIENCE
   ====================================================================== */
body.apd-marketplace-ui {
    font-family: Inter, "SF Pro Display", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-optical-sizing: auto;
    font-kerning: normal;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
}
body.apd-marketplace-ui img {
    image-rendering: auto;
    backface-visibility: hidden;
}
body.apd-marketplace-ui :where(button, a, input, select, textarea):focus-visible {
    outline: 3px solid rgba(15,111,232,.28);
    outline-offset: 3px;
}
.apd5-header,
.apd5-header-row,
.apd5-header-search-row,
.apd5-main-nav,
.apd5-search,
.apd5-logo,
.apd5-header-actions {
    transition: height .28s cubic-bezier(.2,.8,.2,1), min-height .28s cubic-bezier(.2,.8,.2,1), padding .28s cubic-bezier(.2,.8,.2,1), transform .28s cubic-bezier(.2,.8,.2,1), opacity .2s ease, box-shadow .24s ease, background .24s ease;
}
.apd5-header { will-change: transform; }
.apd5-logo { width:118px; }
.apd5-search {
    width:min(760px,calc(100vw - 64px));
    height:64px;
    grid-template-columns:1.1fr 1px .96fr 1px 1fr 61px;
    border-color:#d9dee5;
    box-shadow:0 10px 34px rgba(20,37,65,.14);
}
.apd5-search-field > button { padding-inline:22px; }
.apd5-search-field span { font-size:11px; letter-spacing:.01em; }
.apd5-search-field strong { font-size:12px; }
.apd5-search-submit {
    width:50px;
    height:50px;
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.apd5-search-submit:hover { transform:scale(1.045); box-shadow:0 9px 22px rgba(15,111,232,.36); filter:saturate(1.08); }
.apd5-search-submit:active { transform:scale(.96); }
.apd5-card,
.apd5-card-media,
.apd5-card-media img,
.apd5-favorite,
.apd5-rail-controls button,
.apd52-btn,
.apd52-text-action,
.apd52-show-all-photos,
.apd52-booking-card,
.apd52-price-note {
    transition:transform .24s cubic-bezier(.2,.8,.2,1), box-shadow .24s ease, border-color .2s ease, background .2s ease, filter .24s ease;
}
.apd5-card { transform:translateZ(0); }
.apd5-card:hover { transform:translateY(-4px); }
.apd5-card:hover .apd5-card-media { box-shadow:0 16px 34px rgba(14,34,64,.16); }
.apd5-card:hover .apd5-card-media img { transform:scale(1.035); }
.apd5-card-media img { width:100%; height:100%; object-fit:cover; }
.apd5-favorite:hover { transform:scale(1.08); }
.apd5-favorite:active,
.apd5-rail-controls button:active,
.apd52-btn:active,
.apd52-text-action:active,
.apd52-show-all-photos:active { transform:scale(.96); }
.apd-motion-item {
    opacity:0;
    transform:translateY(18px);
    transition:opacity .54s ease var(--apd-motion-delay,0ms), transform .54s cubic-bezier(.2,.8,.2,1) var(--apd-motion-delay,0ms);
}
.apd-motion-item.is-visible { opacity:1; transform:none; }

@media (min-width:1180px) {
    .apd5-header-row { height:84px; }
    .apd5-header-search-row { min-height:86px; padding-bottom:17px; }

    .apd5-header.is-compact,
    .apd5-header.is-detail-context {
        box-shadow:0 5px 24px rgba(12,31,60,.09);
        background:rgba(255,255,255,.985);
    }
    .apd5-header.is-compact .apd5-header-row,
    .apd5-header.is-detail-context .apd5-header-row {
        height:72px;
    }
    .apd5-header.is-compact .apd5-logo,
    .apd5-header.is-detail-context .apd5-logo { width:104px; }
    .apd5-header.is-compact .apd5-logo img,
    .apd5-header.is-detail-context .apd5-logo img { height:40px; }
    .apd5-header.is-compact .apd5-main-nav,
    .apd5-header.is-detail-context .apd5-main-nav {
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transform:translateY(-8px) scale(.98);
    }
    .apd5-header.is-compact .apd5-header-search-row,
    .apd5-header.is-detail-context .apd5-header-search-row {
        position:absolute;
        inset:0 auto auto 50%;
        z-index:6;
        width:min(620px,calc(100vw - 650px));
        min-height:72px;
        height:72px;
        padding:10px 0;
        transform:translateX(-50%);
        pointer-events:none;
    }
    .apd5-header.is-compact .apd5-search,
    .apd5-header.is-detail-context .apd5-search {
        width:100%;
        height:50px;
        grid-template-columns:1.1fr 1px .95fr 1px 1fr 49px;
        box-shadow:0 5px 20px rgba(20,37,65,.11);
        pointer-events:auto;
    }
    .apd5-header.is-compact .apd5-search-field > button,
    .apd5-header.is-detail-context .apd5-search-field > button { padding-inline:16px; }
    .apd5-header.is-compact .apd5-search-field span,
    .apd5-header.is-detail-context .apd5-search-field span { font-size:9px; }
    .apd5-header.is-compact .apd5-search-field strong,
    .apd5-header.is-detail-context .apd5-search-field strong { margin-top:2px; font-size:10px; }
    .apd5-header.is-compact .apd5-search-submit,
    .apd5-header.is-detail-context .apd5-search-submit { width:40px; height:40px; }
    .apd5-header.is-compact .apd5-header-actions,
    .apd5-header.is-detail-context .apd5-header-actions { transform:translateY(0); }
}

.apd52-listing-page { scroll-padding-top:150px; }
.apd52-listing-head { padding-top:30px; }
.apd52-listing-head h1 { letter-spacing:-1.05px; }
.apd52-gallery { box-shadow:0 1px 0 rgba(17,35,63,.04); }
.apd52-gallery-item img { transform:translateZ(0); }
.apd52-detail-nav {
    top:72px;
    z-index:820;
    box-shadow:0 4px 18px rgba(20,35,60,.06);
}
.apd52-detail-nav a.is-active::after { transform:scaleX(1); }
.apd52-section,
#apd52-fotos,
#apd52-prestaciones,
#apd52-evaluaciones,
#apd52-ubicacion { scroll-margin-top:150px; }
.apd52-content-grid { padding-top:32px; }
.apd52-booking-column { top:148px; }
.apd52-booking-card:hover { box-shadow:0 18px 48px rgba(20,35,60,.16); }
.apd52-booking-card .btn-primary:hover,
.apd52-booking-card .reserve_per_night:hover,
.apd52-booking-card .reserve_per_day:hover,
.apd52-booking-card .reserve_hourly:hover {
    transform:translateY(-1px);
    box-shadow:0 12px 28px rgba(15,111,232,.32) !important;
}
.apd52-show-all-photos:hover { transform:translateY(-2px); box-shadow:0 10px 25px rgba(20,35,60,.18); }
.apd52-map-section #homey_listing_map,
.apd52-map-section .map-canvas { box-shadow:0 8px 28px rgba(18,37,66,.08); }

@media (max-width:1179px) {
    .apd5-search { height:56px; }
    .apd52-detail-nav { top:76px; }
    .apd52-booking-column { top:150px; }
}
@media (max-width:900px) {
    .apd52-detail-nav { top:76px; }
    .apd52-booking-column { position:static; }
}
@media (max-width:680px) {
    .apd5-search { height:52px; }
    .apd52-detail-nav { top:68px; }
    .apd-motion-item { opacity:1; transform:none; transition:none; }
}
@media (prefers-reduced-motion:reduce) {
    *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
    .apd-motion-item { opacity:1; transform:none; }
}


/* ======================================================================
   APD MARKETPLACE 10.0.0 · MOBILE DISCOVERY EXPERIENCE
   Native-feeling mobile header, rails, footer, bottom navigation and notices.
   ====================================================================== */
.apd10-mobile-search-trigger,
.apd10-mobile-nav,
.apd10-fee-toast,
.apd10-fee-sheet,
.apd10-footer-meta { display:none; }

.apd10-inspiration {
    margin:72px 0 16px;
    padding:54px 0 26px;
    border-top:1px solid var(--apd5-line);
}
.apd10-inspiration h2 { margin:0 0 25px; font-size:34px; line-height:1.08; letter-spacing:-1.05px; }
.apd10-inspiration-tabs { display:flex; gap:30px; overflow-x:auto; border-bottom:1px solid #dfe3e8; scrollbar-width:none; }
.apd10-inspiration-tabs::-webkit-scrollbar { display:none; }
.apd10-inspiration-tabs button { position:relative; flex:0 0 auto; padding:0 0 16px; border:0; background:transparent; color:#667085; font:inherit; font-size:15px; font-weight:750; cursor:pointer; }
.apd10-inspiration-tabs button.is-active { color:#17253b; }
.apd10-inspiration-tabs button.is-active::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:3px; border-radius:3px; background:#17253b; }
.apd10-inspiration-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px 40px; padding-top:28px; }
.apd10-inspiration-grid a { min-width:0; text-decoration:none; }
.apd10-inspiration-grid strong,
.apd10-inspiration-grid span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.apd10-inspiration-grid strong { font-size:15px; }
.apd10-inspiration-grid span { margin-top:5px; color:#69758a; font-size:13px; }

.apd10-footer-meta { width:min(100%,var(--apd5-max)); margin:30px auto 0; align-items:center; justify-content:space-between; gap:20px; }
.apd10-footer-locale,
.apd10-footer-social { display:flex; align-items:center; gap:14px; }
.apd10-footer-locale button { min-height:40px; display:inline-flex; align-items:center; gap:8px; border:0; background:transparent; color:#26364d; font:inherit; cursor:pointer; }
.apd10-footer-locale .apd5-icon { width:19px; height:19px; }
.apd10-footer-social a { width:38px; height:38px; margin:0; display:grid; place-items:center; border-radius:50%; color:#26364d; background:#fff; font-size:18px; font-weight:850; text-decoration:none; }
.apd5-footer-bottom a { display:inline; margin:0; color:inherit; font-size:inherit; }

@media (min-width:768px) {
    .apd10-footer-meta { display:flex; }
}

@media (max-width:767px) {
    :root {
        --apd10-bottom-nav-height: 76px;
        --apd10-header-height: 154px;
    }
    html { scroll-padding-top:calc(var(--apd10-header-height) + 8px); }
    body.apd-marketplace-ui {
        overflow-x:hidden;
        padding-bottom:calc(var(--apd10-bottom-nav-height) + env(safe-area-inset-bottom));
        background:#fff;
        font-family:Inter,"SF Pro Text","SF Pro Display",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
        -webkit-tap-highlight-color:transparent;
        text-rendering:optimizeLegibility;
    }
    body.apd-marketplace-ui.apd10-fee-open { overflow:hidden !important; }

    /* Sticky discovery header: large search first, category chips second. */
    .apd5-header {
        position:sticky;
        top:0;
        z-index:1500;
        display:flex;
        flex-direction:column;
        min-height:var(--apd10-header-height);
        border-bottom:0;
        background:rgba(255,255,255,.985);
        box-shadow:0 5px 16px rgba(20,28,40,.08);
        backdrop-filter:saturate(1.2) blur(18px);
        -webkit-backdrop-filter:saturate(1.2) blur(18px);
    }
    .apd5-header-search-row {
        order:1;
        width:100%;
        min-height:82px;
        padding:14px 20px 8px;
        align-items:center;
        box-sizing:border-box;
    }
    .apd5-header-row {
        order:2;
        width:100%;
        height:72px;
        min-height:72px;
        margin:0;
        display:block;
        padding:0 0 8px;
        box-sizing:border-box;
    }
    .apd5-logo,
    .apd5-header-actions { display:none !important; }
    .apd5-main-nav {
        position:static !important;
        inset:auto !important;
        width:100%;
        height:auto;
        min-height:58px;
        padding:5px 20px 10px;
        display:flex;
        justify-content:flex-start;
        gap:10px;
        overflow-x:auto;
        overflow-y:hidden;
        scroll-snap-type:x proximity;
        scrollbar-width:none;
        border:0;
        background:transparent;
        box-shadow:none;
        box-sizing:border-box;
    }
    .apd5-main-nav::-webkit-scrollbar { display:none; }
    .apd5-main-nav a {
        flex:0 0 auto;
        min-width:auto;
        min-height:48px;
        padding:0 18px;
        display:flex;
        flex-direction:row;
        gap:8px;
        scroll-snap-align:start;
        border:1px solid #e5e5e5;
        border-radius:999px;
        color:#20242a;
        background:#fff;
        box-shadow:0 3px 7px rgba(0,0,0,.16);
        font-size:14px;
        font-weight:700;
        transform:none !important;
    }
    .apd5-main-nav a::after { display:none !important; }
    .apd5-main-nav a.is-active { color:#101820; border-color:#d6d6d6; box-shadow:0 4px 11px rgba(0,0,0,.22); }
    .apd5-main-nav a > span { width:25px; height:25px; padding:0; border-radius:0; background:transparent !important; }
    .apd5-main-nav .apd5-icon { width:20px; height:20px; }
    .apd5-main-nav strong { font-weight:700; }

    .apd5-search {
        width:100%;
        height:58px !important;
        display:block;
        border:1px solid #dedede;
        border-radius:999px;
        background:#fff;
        box-shadow:0 3px 13px rgba(0,0,0,.13);
    }
    .apd10-mobile-search-trigger {
        width:100%;
        height:100%;
        padding:0 24px;
        display:flex;
        align-items:center;
        justify-content:center;
        gap:12px;
        border:0;
        border-radius:inherit;
        color:#20252b;
        background:transparent;
        font:inherit;
        cursor:pointer;
    }
    .apd10-mobile-search-trigger .apd5-icon { width:21px; height:21px; }
    .apd10-mobile-search-trigger strong { font-size:17px; font-weight:750; letter-spacing:-.2px; }
    .apd5-search > .apd5-search-field,
    .apd5-search > i,
    .apd5-search > .apd5-search-submit { display:none !important; }
    .apd5-search-panel {
        position:fixed;
        inset:auto 0 0 !important;
        z-index:3600;
        width:100% !important;
        min-height:52vh;
        max-height:calc(var(--apd10-vh,1vh) * 92);
        padding:24px 20px calc(30px + env(safe-area-inset-bottom));
        border:0;
        border-radius:28px 28px 0 0;
        box-shadow:0 -18px 60px rgba(0,0,0,.25);
        transform:none !important;
        overflow:auto;
        box-sizing:border-box;
    }
    .apd5-search-backdrop:not([hidden]) { position:fixed; inset:0; z-index:3550; display:block; background:rgba(0,0,0,.48); backdrop-filter:blur(2px); }
    .apd5-panel-title { position:sticky; top:-24px; z-index:2; margin:-24px -20px 17px; padding:21px 20px 14px; background:#fff; }
    .apd5-panel-title strong { font-size:21px; letter-spacing:-.4px; }
    .apd5-panel-title button { width:38px; height:38px; font-size:22px; }

    /* Marketplace rails: two cards per viewport, native horizontal momentum. */
    .apd5-main {
        width:100%;
        margin:0;
        padding:18px 0 30px;
    }
    .apd5-main > .apd5-rail:first-child { margin-top:10px; }
    .apd5-rail {
        margin-top:46px;
        padding-left:20px;
        overflow:visible;
    }
    .apd5-section-head { padding-right:20px; align-items:center; }
    .apd5-section-head h2 { margin:0; font-size:25px; line-height:1.14; letter-spacing:-.75px; }
    .apd5-section-head h2 a { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; text-decoration:none; }
    .apd5-section-head h2 span {
        flex:0 0 auto;
        width:42px;
        height:42px;
        display:grid;
        place-items:center;
        border-radius:50%;
        color:#1c2736;
        background:#f3f3f3;
        font-size:26px;
        line-height:1;
    }
    .apd5-section-head p,
    .apd5-rail-controls { display:none !important; }
    .apd5-card-rail {
        width:calc(100vw - 20px);
        margin-top:18px;
        padding:0 20px 7px 0;
        grid-auto-columns:calc((100vw - 58px) / 2);
        gap:12px;
        scroll-padding-left:20px;
        scroll-snap-type:x mandatory;
        overscroll-behavior-inline:contain;
        -webkit-overflow-scrolling:touch;
        box-sizing:border-box;
    }
    .apd5-card { scroll-snap-align:start; transition:transform .16s ease; }
    .apd5-card.is-touching { transform:scale(.985); }
    .apd5-card:hover { transform:none; }
    .apd5-card-media {
        aspect-ratio:1 / 1;
        border-radius:20px;
        box-shadow:none !important;
    }
    .apd5-card-media img { transform:none !important; }
    .apd5-card-badge {
        top:12px;
        left:12px;
        max-width:calc(100% - 56px);
        padding:8px 11px;
        border-radius:14px;
        overflow:hidden;
        color:#1e232a;
        background:rgba(255,255,255,.92);
        box-shadow:0 2px 8px rgba(0,0,0,.08);
        font-size:11px;
        font-weight:800;
        line-height:1.08;
        text-overflow:ellipsis;
    }
    .apd5-favorite { top:11px; right:11px; width:35px; height:35px; color:#fff; filter:drop-shadow(0 1px 2px rgba(0,0,0,.5)); }
    .apd5-favorite .apd5-icon { width:27px; height:27px; stroke-width:2.1; }
    .apd5-card-body { padding:11px 6px 0; }
    .apd5-card-title-row { display:block; }
    .apd5-card-title-row h3 {
        min-height:40px;
        margin:0;
        display:-webkit-box;
        overflow:hidden;
        color:#22262c;
        font-size:15px;
        font-weight:800;
        line-height:1.22;
        letter-spacing:-.2px;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
    }
    .apd5-card-title-row > span { margin-top:5px; display:inline-flex; align-items:center; gap:3px; color:#667080; font-size:12px; }
    .apd5-card-title-row > span .apd5-icon { width:13px; height:13px; fill:currentColor; }
    .apd5-card-body p { display:none; }
    .apd5-card-body > strong { display:block; margin-top:4px; color:#59616d; font-size:13px; font-weight:500; line-height:1.28; }
    .apd5-card-body > strong small { color:inherit; font-size:inherit; }
    .apd5-demo-edit { font-size:10px; }

    .apd5-host-banner { margin:50px 20px 20px; border-radius:24px; }

    /* Inspiration and footer mirror the mobile information hierarchy. */
    .apd10-inspiration { margin:60px 0 0; padding:54px 20px 42px; background:#f7f7f7; border:0; }
    .apd10-inspiration h2 { max-width:330px; margin:0 0 24px; font-size:31px; line-height:1.12; letter-spacing:-1px; }
    .apd10-inspiration-tabs { gap:28px; }
    .apd10-inspiration-tabs button { font-size:16px; }
    .apd10-inspiration-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 22px; padding-top:28px; }
    .apd10-inspiration-grid strong { font-size:16px; }
    .apd10-inspiration-grid span { font-size:14px; }

    .apd5-footer {
        margin:0 0 var(--apd10-bottom-nav-height);
        padding:8px 20px calc(34px + env(safe-area-inset-bottom));
        border:0;
        background:#f7f7f7;
    }
    .apd5-footer-grid {
        width:100% !important;
        display:block;
    }
    .apd5-footer-grid > div {
        padding:28px 0;
        border-top:1px solid #dedede;
    }
    .apd5-footer-grid > div:first-child { border-top:0; }
    .apd5-footer-brand img { width:128px; height:42px; }
    .apd5-footer-brand p { max-width:330px; margin-top:8px; font-size:14px; line-height:1.5; }
    .apd5-footer h3 { margin:0 0 22px; color:#25282d; font-size:18px; font-weight:850; }
    .apd5-footer a { margin:0 0 22px; color:#282c31; font-size:16px; line-height:1.35; }
    .apd10-footer-meta {
        width:100%;
        margin:0;
        padding:28px 0;
        display:block;
        border-top:1px solid #dedede;
    }
    .apd10-footer-locale { flex-wrap:wrap; gap:18px; }
    .apd10-footer-locale button { min-height:42px; padding:0; font-size:16px; }
    .apd10-footer-social { margin-top:18px; }
    .apd10-footer-social a { width:42px; height:42px; margin:0; background:transparent; font-size:22px; }
    .apd5-footer-bottom {
        width:100% !important;
        margin:0;
        padding:25px 0 0;
        display:block;
        border-top:1px solid #dedede;
        color:#33373d;
        font-size:15px;
        line-height:1.65;
    }
    .apd5-footer-bottom span { display:block; }
    .apd5-footer-bottom span + span { margin-top:6px; }

    /* Fixed native-like bottom navigation. */
    .apd10-mobile-nav {
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        z-index:2500;
        min-height:var(--apd10-bottom-nav-height);
        padding:7px 18px max(7px,env(safe-area-inset-bottom));
        display:grid;
        grid-template-columns:repeat(3,1fr);
        align-items:start;
        border-top:1px solid #e3e3e3;
        background:rgba(255,255,255,.98);
        box-shadow:0 -8px 24px rgba(0,0,0,.05);
        backdrop-filter:blur(18px);
        -webkit-backdrop-filter:blur(18px);
        box-sizing:content-box;
    }
    .apd10-mobile-nav a,
    .apd10-mobile-nav button {
        min-width:0;
        min-height:61px;
        padding:3px 5px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:flex-start;
        gap:3px;
        border:0;
        color:#6e7075;
        background:transparent;
        text-decoration:none;
        font:inherit;
        font-size:11px;
        cursor:pointer;
        transition:transform .15s ease,color .15s ease;
    }
    .apd10-mobile-nav .apd5-icon { width:29px; height:29px; stroke-width:1.7; }
    .apd10-mobile-nav img { width:29px; height:29px; border:2px solid currentColor; border-radius:50%; object-fit:cover; }
    .apd10-mobile-nav span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .apd10-mobile-nav .is-active { color:var(--apd5-blue); font-weight:750; }
    .apd10-mobile-nav .is-touching { transform:scale(.94); }

    /* Compact floating all-fees message. */
    .apd10-fee-toast {
        position:fixed;
        left:20px;
        right:20px;
        bottom:calc(var(--apd10-bottom-nav-height) + env(safe-area-inset-bottom) + 14px);
        z-index:2800;
        min-height:68px;
        padding:13px 48px 13px 16px;
        display:flex;
        align-items:center;
        gap:12px;
        border:1px solid #e4e4e4;
        border-radius:18px;
        color:#22272d;
        background:rgba(255,255,255,.98);
        box-shadow:0 9px 28px rgba(0,0,0,.2);
        opacity:0;
        transform:translateY(18px) scale(.97);
        transition:opacity .22s ease,transform .22s cubic-bezier(.2,.8,.2,1);
        box-sizing:border-box;
    }
    .apd10-fee-toast[hidden] { display:none !important; }
    .apd10-fee-toast.is-visible { opacity:1; transform:none; }
    .apd10-fee-toast > span { font-size:27px; }
    .apd10-fee-toast strong { font-size:15px; line-height:1.24; }
    .apd10-fee-toast button { position:absolute; top:12px; right:12px; width:30px; height:30px; border:0; border-radius:50%; background:#f4f4f4; font-size:20px; }

    /* First-visit all-fees bottom sheet. */
    .apd10-fee-sheet {
        position:fixed;
        inset:0;
        z-index:4000;
        display:block;
        opacity:0;
        pointer-events:none;
        transition:opacity .24s ease;
    }
    .apd10-fee-sheet[hidden] { display:none !important; }
    .apd10-fee-sheet.is-open { opacity:1; pointer-events:auto; }
    .apd10-fee-sheet-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.48); backdrop-filter:blur(2px); }
    .apd10-fee-sheet-dialog {
        position:absolute;
        left:0;
        right:0;
        bottom:0;
        min-height:min(58vh,600px);
        padding:38px 24px calc(28px + env(safe-area-inset-bottom));
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        border-radius:30px 30px 0 0;
        color:#202428;
        background:#fcfaf5;
        box-shadow:0 -20px 65px rgba(0,0,0,.28);
        transform:translateY(100%);
        transition:transform .28s cubic-bezier(.2,.8,.2,1);
        box-sizing:border-box;
    }
    .apd10-fee-sheet.is-open .apd10-fee-sheet-dialog { transform:none; }
    .apd10-fee-close { position:absolute; top:20px; right:20px; width:42px; height:42px; display:grid; place-items:center; border:0; border-radius:50%; background:transparent; color:#1f2328; font-size:31px; cursor:pointer; }
    .apd10-fee-icon { margin-bottom:28px; font-size:74px; filter:drop-shadow(0 8px 10px rgba(0,0,0,.12)); }
    .apd10-fee-sheet h2 { max-width:600px; margin:0; text-align:center; font-size:29px; line-height:1.16; letter-spacing:-.8px; }
    .apd10-fee-understood { width:100%; min-height:58px; margin-top:42px; border:0; border-radius:12px; color:#fff; background:#1f1f1f; font:inherit; font-size:18px; font-weight:850; cursor:pointer; }

    /* Public listing dialogs and Homey authentication behave as bottom sheets. */
    .apd5-auth-modal,
    .apd5-region-modal { align-items:flex-end !important; padding:0 !important; }
    .apd5-auth-dialog,
    .apd5-region-dialog,
    body.apd-marketplace-ui .custom-modal-login .modal-dialog {
        width:100% !important;
        max-width:none !important;
        max-height:calc(var(--apd10-vh,1vh) * 92) !important;
        margin:0 !important;
        border-radius:28px 28px 0 0 !important;
        overflow:auto;
    }
    .apd52-info-modal-dialog,
    .apd52-booking-card .single-listing-booking-calendar-js { padding-bottom:calc(30px + env(safe-area-inset-bottom)) !important; }

    body.apd5-search-results-page .apd5-header-row { display:none; }
    body.apd5-search-results-page .apd5-header { min-height:80px; }
    body.apd5-search-results-page .apd5-header-search-row { min-height:80px; }
}

@media (max-width:390px) {
    .apd5-header-search-row { padding-inline:15px; }
    .apd5-main-nav { padding-inline:15px; }
    .apd5-main-nav a { min-height:45px; padding-inline:15px; font-size:13px; }
    .apd10-mobile-search-trigger strong { font-size:16px; }
    .apd5-rail { padding-left:16px; }
    .apd5-card-rail { width:calc(100vw - 16px); grid-auto-columns:calc((100vw - 48px) / 2); padding-right:16px; }
    .apd5-section-head { padding-right:16px; }
    .apd5-section-head h2 { font-size:23px; }
    .apd5-card-badge { padding:7px 9px; font-size:10px; }
    .apd10-fee-sheet h2 { font-size:25px; }
}

@media (prefers-reduced-motion:reduce) {
    .apd10-fee-sheet,
    .apd10-fee-sheet-dialog,
    .apd10-fee-toast,
    .apd10-mobile-nav a,
    .apd10-mobile-nav button,
    .apd5-card { transition:none !important; }
}


/* ======================================================================
   APD 11.0.0 · Desktop tuning inspired by Airbnb
   Static header, larger typography and larger search UI
   ====================================================================== */
.apd-motion-item,
.apd-motion-item.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

.apd5-search-field > button:focus-visible,
.apd5-search-submit:focus-visible,
.apd5-destination-option:focus-visible,
.apd5-service-option:focus-visible,
.apd5-panel-title button:focus-visible,
.apd5-guest-row button:focus-visible,
.apd10-mobile-search-trigger:focus-visible {
    outline: 2px solid #17253b;
    outline-offset: 2px;
}

.apd5-location-panel,
.apd5-date-panel,
.apd5-guests-panel,
.apd5-service-panel {
    border-radius: 28px;
}

.apd5-destination-option > span,
.apd5-service-option span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.apd5-footer h3,
.apd5-footer a,
.apd5-footer p,
.apd5-footer-bottom,
.apd10-footer-locale button,
.apd10-footer-social a {
    letter-spacing: -0.01em;
}

@media (min-width: 1180px) {
    .apd5-header,
    .apd5-header.is-compact,
    .apd5-header.is-detail-context {
        position: sticky;
        top: 0;
        background: rgba(255,255,255,.98);
        border-bottom: 1px solid #ebedf0;
        box-shadow: 0 1px 0 rgba(0,0,0,.08);
        backdrop-filter: blur(16px);
    }

    .apd5-header-row,
    .apd5-header.is-compact .apd5-header-row,
    .apd5-header.is-detail-context .apd5-header-row {
        width: min(calc(100% - 80px), 1440px);
        height: 82px;
        grid-template-columns: 210px minmax(0,1fr) 230px;
        gap: 18px;
    }

    .apd5-logo,
    .apd5-header.is-compact .apd5-logo,
    .apd5-header.is-detail-context .apd5-logo {
        width: 132px;
    }

    .apd5-logo img,
    .apd5-header.is-compact .apd5-logo img,
    .apd5-header.is-detail-context .apd5-logo img {
        height: 46px;
    }

    .apd5-main-nav,
    .apd5-header.is-compact .apd5-main-nav,
    .apd5-header.is-detail-context .apd5-main-nav {
        justify-content: center;
        gap: 24px;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
    }

    .apd5-main-nav a {
        min-width: auto;
        gap: 10px;
        padding: 0 6px;
        color: #303030;
        font-size: 15px;
        font-weight: 600;
    }

    .apd5-main-nav strong {
        font-weight: 700;
        letter-spacing: -0.01em;
    }

    .apd5-main-nav a::after {
        left: 10px;
        right: 10px;
        bottom: 0;
        height: 3px;
        background: #17253b;
    }

    .apd5-main-nav a > span {
        width: 34px;
        height: 34px;
        border-radius: 999px;
    }

    .apd5-host-trigger {
        padding: 12px 14px;
        font-size: 14px;
        font-weight: 600;
        color: #222;
    }

    .apd5-language-button {
        width: 42px;
        height: 42px;
        background: transparent;
    }

    .apd5-account-button {
        min-width: 82px;
        height: 46px;
        padding: 4px 6px 4px 12px;
        border-color: #dddddd;
    }

    .apd5-account-button > .apd5-icon {
        width: 18px;
        height: 18px;
    }

    .apd5-account-button img,
    .apd5-account-button > span {
        width: 36px;
        height: 36px;
    }

    .apd5-header-search-row,
    .apd5-header.is-compact .apd5-header-search-row,
    .apd5-header.is-detail-context .apd5-header-search-row {
        position: static !important;
        inset: auto !important;
        width: auto !important;
        min-height: 86px;
        height: auto !important;
        padding: 0 20px 18px !important;
        transform: none !important;
        pointer-events: auto !important;
    }

    .apd5-search,
    .apd5-header.is-compact .apd5-search,
    .apd5-header.is-detail-context .apd5-search {
        width: min(880px, calc(100vw - 120px)) !important;
        height: 66px !important;
        grid-template-columns: 1.18fr 1px 1fr 1px 1fr 60px !important;
        border: 1px solid #dddddd;
        box-shadow: 0 3px 12px rgba(0,0,0,.08) !important;
    }

    .apd5-search > i {
        height: 34px;
        background: #dddddd;
    }

    .apd5-search-field > button,
    .apd5-header.is-compact .apd5-search-field > button,
    .apd5-header.is-detail-context .apd5-search-field > button {
        padding: 0 24px !important;
    }

    .apd5-search-field > button:hover,
    .apd5-search-field.is-open > button {
        background: #f7f7f7;
        box-shadow: none;
    }

    .apd5-search-field span,
    .apd5-header.is-compact .apd5-search-field span,
    .apd5-header.is-detail-context .apd5-search-field span {
        color: #222222;
        font-size: 12px !important;
        font-weight: 700;
        line-height: 1.2;
    }

    .apd5-search-field strong,
    .apd5-header.is-compact .apd5-search-field strong,
    .apd5-header.is-detail-context .apd5-search-field strong {
        margin-top: 4px !important;
        color: #6a6a6a;
        font-size: 14px !important;
        font-weight: 500;
    }

    .apd5-search-submit,
    .apd5-header.is-compact .apd5-search-submit,
    .apd5-header.is-detail-context .apd5-search-submit {
        width: 48px !important;
        height: 48px !important;
        margin-right: 6px;
        background: #0f6fe8;
        box-shadow: none;
    }

    .apd5-search-submit .apd5-icon {
        width: 20px;
        height: 20px;
    }

    .apd5-search-panel {
        top: calc(100% + 14px);
        padding: 24px;
        border: 1px solid #e6e6e6;
        box-shadow: 0 8px 28px rgba(0,0,0,.12);
    }

    .apd5-location-panel {
        width: 455px;
        max-height: 560px;
    }

    .apd5-date-panel {
        width: 840px;
    }

    .apd5-guests-panel,
    .apd5-service-panel {
        width: 405px;
    }

    .apd5-panel-title {
        margin-bottom: 16px;
        font-size: 18px;
    }

    .apd5-panel-title strong {
        font-size: 20px;
        font-weight: 700;
        letter-spacing: -0.02em;
    }

    .apd5-panel-title button {
        width: 34px;
        height: 34px;
        font-size: 19px;
    }

    .apd5-panel-filter {
        height: 52px;
        padding: 0 16px;
        border-radius: 14px;
    }

    .apd5-panel-filter input {
        font-size: 15px;
    }

    .apd5-destination-option,
    .apd5-service-option {
        padding: 10px 6px;
        border-radius: 14px;
    }

    .apd5-destination-option > span {
        width: 56px;
        height: 56px;
        border-radius: 16px;
        background: #f2f2f2;
        color: #5a5a5a;
    }

    .apd5-destination-option .apd5-icon,
    .apd5-service-option .apd5-icon {
        width: 24px;
        height: 24px;
    }

    .apd5-destination-option strong,
    .apd5-service-option strong {
        font-size: 15px;
        font-weight: 700;
        letter-spacing: -0.01em;
    }

    .apd5-destination-option small {
        margin-top: 5px;
        color: #717171;
        font-size: 13px;
        line-height: 1.35;
    }

    .apd5-calendar-nav button {
        width: 36px;
        height: 36px;
    }

    .apd5-calendar-month h3 {
        font-size: 19px;
    }

    .apd5-calendar-weekdays span,
    .apd5-calendar-days button,
    .apd5-calendar-days span {
        width: 44px;
        height: 44px;
        font-size: 14px;
    }

    .apd5-calendar-days button.is-selected,
    .apd5-calendar-days button.is-start,
    .apd5-calendar-days button.is-end {
        font-weight: 700;
    }

    .apd5-panel-footer button,
    .apd5-guest-row button,
    .apd5-guest-row output {
        font-size: 15px;
    }

    .apd5-guest-row {
        min-height: 76px;
    }

    .apd5-guest-row strong {
        font-size: 17px;
        letter-spacing: -0.01em;
    }

    .apd5-guest-row span {
        font-size: 14px;
        color: #717171;
    }

    .apd5-main {
        width: min(calc(100% - 80px), 1440px);
        padding-top: 34px;
    }

    .apd5-rail {
        margin-top: 40px;
    }

    .apd5-section-head {
        margin-bottom: 18px;
    }

    .apd5-section-head h2 {
        font-size: 32px;
        line-height: 1.1;
        letter-spacing: -0.04em;
    }

    .apd5-section-head p {
        margin-top: 8px;
        font-size: 15px;
        color: #717171;
    }

    .apd5-rail-controls button {
        width: 36px;
        height: 36px;
        font-size: 20px;
        background: #f2f2f2;
    }

    .apd5-card-rail {
        gap: 16px;
    }

    .apd5-card-media {
        border-radius: 18px;
        aspect-ratio: 1.05 / 1;
    }

    .apd5-card-badge {
        top: 12px;
        left: 12px;
        padding: 9px 14px;
        font-size: 12px;
    }

    .apd5-favorite {
        top: 10px;
        right: 10px;
        width: 36px;
        height: 36px;
    }

    .apd5-favorite .apd5-icon {
        width: 28px;
        height: 28px;
    }

    .apd5-card-body {
        padding-top: 12px;
    }

    .apd5-card-title-row h3 {
        font-size: 21px;
        line-height: 1.18;
        font-weight: 700;
        letter-spacing: -0.03em;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .apd5-card-title-row > span {
        font-size: 13px;
        gap: 4px;
        color: #222;
    }

    .apd5-card-title-row .apd5-icon {
        width: 13px;
        height: 13px;
    }

    .apd5-card-body p {
        margin: 8px 0 0;
        font-size: 14px;
        color: #717171;
    }

    .apd5-card-body > strong,
    .apd5-card-body > strong small,
    .apd5-demo-edit {
        font-size: 14px;
    }

    .apd5-demo-edit {
        margin-top: 10px;
    }

    .apd10-inspiration {
        margin-top: 54px;
        padding: 42px 0 0;
        border-top: 1px solid #dddddd;
        border-bottom: 0;
        border-left: 0;
        border-right: 0;
        border-radius: 0;
    }

    .apd10-inspiration h2 {
        margin: 0 0 26px;
        font-size: 42px;
        line-height: 1.05;
        letter-spacing: -0.05em;
    }

    .apd10-inspiration-tabs {
        gap: 32px;
    }

    .apd10-inspiration-tabs button {
        font-size: 18px;
        padding-bottom: 18px;
    }

    .apd10-inspiration-grid {
        gap: 28px 48px;
        padding-top: 30px;
    }

    .apd10-inspiration-grid strong {
        font-size: 18px;
    }

    .apd10-inspiration-grid span {
        margin-top: 7px;
        font-size: 15px;
    }

    .apd5-host-banner {
        margin-top: 68px;
        min-height: 286px;
        padding: 44px 48px;
    }

    .apd5-host-banner > div > span {
        font-size: 11px;
    }

    .apd5-host-banner h2 {
        font-size: clamp(44px, 3.2vw, 58px);
        letter-spacing: -0.05em;
    }

    .apd5-host-banner p {
        font-size: 15px;
        line-height: 1.55;
    }

    .apd5-host-banner a {
        min-height: 48px;
        padding: 0 20px;
        font-size: 14px;
    }

    .apd5-footer-grid {
        width: min(calc(100% - 80px), 1440px);
        gap: 36px;
        padding-top: 54px;
    }

    .apd5-footer h3 {
        margin-bottom: 18px;
        font-size: 18px;
    }

    .apd5-footer p,
    .apd5-footer a {
        font-size: 15px;
        line-height: 1.55;
    }

    .apd5-footer-bottom,
    .apd10-footer-locale button,
    .apd10-footer-social a {
        font-size: 14px;
    }

    .apd10-footer-meta,
    .apd5-footer-bottom {
        width: min(calc(100% - 80px), 1440px);
    }

    .apd5-catalog-heading h1,
    .apd52-detail-page h1,
    .apd5-service-detail-card h1,
    .apd5-empty {
        letter-spacing: -0.04em;
    }
}


/* ======================================================================
   APD MARKETPLACE 11.0.0 · INICIO, BUSCADOR Y TIPOGRAFÍA PREMIUM
   ====================================================================== */
:root { --apd5-max:1480px; }

body.apd-marketplace-ui {
    font-size:16px;
    line-height:1.45;
    letter-spacing:-.005em;
}

/* La primera pintura queda fija y sin el efecto de que el encabezado "llega". */
.apd5-header.apd-header-initializing,
.apd5-header.apd-header-initializing *,
.apd-motion-item {
    animation:none !important;
}
.apd5-header.apd-header-initializing,
.apd5-header.apd-header-initializing * {
    transition:none !important;
}
.apd-motion-item,
.apd-motion-item.is-visible {
    opacity:1 !important;
    transform:none !important;
}

@media (min-width:1180px) {
    .apd5-header-row,
    .apd5-main,
    .apd5-footer-grid,
    .apd5-footer-bottom {
        width:min(calc(100vw - 96px),var(--apd5-max)) !important;
        max-width:var(--apd5-max) !important;
    }

    .apd5-header-row {
        height:88px;
        min-height:88px;
        grid-template-columns:190px minmax(660px,1fr) 300px;
        gap:24px;
    }
    .apd5-logo { width:134px; }
    .apd5-logo img { height:46px; }
    .apd5-main-nav { gap:22px; }
    .apd5-main-nav a { min-width:105px; font-size:14px; }
    .apd5-main-nav a > span { width:38px; height:38px; }
    .apd5-main-nav strong { font-weight:750; }

    .apd5-header-search-row {
        min-height:92px;
        padding:0 24px 18px;
    }
    .apd5-search {
        width:min(830px,calc(100vw - 84px));
        height:68px;
        grid-template-columns:1.12fr 1px .96fr 1px 1fr 64px;
        border-color:#d8dde4;
        box-shadow:0 9px 32px rgba(20,37,65,.14);
    }
    .apd5-search-field > button { padding-inline:24px; }
    .apd5-search-field span { font-size:12px; font-weight:800; }
    .apd5-search-field strong { margin-top:4px; font-size:13px; color:#667085; }
    .apd5-search-submit { width:52px; height:52px; margin-right:6px; }
    .apd5-search-submit .apd5-icon { width:21px; height:21px; }

    .apd5-header.is-compact .apd5-header-row,
    .apd5-header.is-detail-context .apd5-header-row { height:76px; min-height:76px; }
    .apd5-header.is-compact .apd5-header-search-row,
    .apd5-header.is-detail-context .apd5-header-search-row {
        width:min(680px,calc(100vw - 650px));
        min-height:76px;
        height:76px;
        padding:10px 0;
    }
    .apd5-header.is-compact .apd5-search,
    .apd5-header.is-detail-context .apd5-search {
        height:54px;
        grid-template-columns:1.1fr 1px .95fr 1px 1fr 52px;
    }
    .apd5-header.is-compact .apd5-search-field span,
    .apd5-header.is-detail-context .apd5-search-field span { font-size:10px; }
    .apd5-header.is-compact .apd5-search-field strong,
    .apd5-header.is-detail-context .apd5-search-field strong { font-size:11px; }
    .apd5-header.is-compact .apd5-search-submit,
    .apd5-header.is-detail-context .apd5-search-submit { width:42px; height:42px; }

    .apd5-main { padding-top:40px; }
    .apd5-rail { margin-top:44px; }
    .apd5-main > .apd5-rail:first-child { margin-top:0; }
    .apd5-section-head { margin-bottom:16px; }
    .apd5-section-head h2,
    .apd5-section-head h2 a { font-size:23px; line-height:1.18; letter-spacing:-.55px; }
    .apd5-section-head h2 span { font-size:22px; }
    .apd5-section-head p { margin-top:6px; font-size:13px; }

    .apd5-card-rail { gap:14px; }
    .apd5-card-media { border-radius:17px; }
    .apd5-card-badge { padding:7px 11px; font-size:10.5px; }
    .apd5-card-body { padding:11px 3px 0; }
    .apd5-card-title-row h3 { font-size:14px; line-height:1.28; }
    .apd5-card-title-row > span { font-size:11px; }
    .apd5-card-body p { margin-top:6px; font-size:11.5px; }
    .apd5-card-body > strong { font-size:12.5px; }
    .apd5-card-body > strong small { font-size:10.5px; }

    .apd5-footer h3 { font-size:14px; }
    .apd5-footer a { font-size:13px; }
    .apd5-footer-brand p { font-size:12px; }
    .apd5-footer-bottom { font-size:11px; }
}

@media (min-width:1180px) and (max-width:1499px) {
    .apd5-card-rail { grid-auto-columns:calc((100% - 70px)/6); }
    .apd5-card-grid { grid-template-columns:repeat(6,minmax(0,1fr)); }
}
@media (min-width:1500px) {
    .apd5-card-rail { grid-auto-columns:calc((100% - 84px)/7); }
    .apd5-card-grid { grid-template-columns:repeat(7,minmax(0,1fr)); }
}

/* Panel de destinos: compacto, legible e iconográfico. */
.apd5-location-panel {
    width:430px;
    max-height:530px;
    padding:18px;
}
.apd5-panel-filter { height:52px; border-radius:14px; }
.apd5-panel-filter input { font-size:14px; }
.apd5-destination-option {
    grid-template-columns:52px minmax(0,1fr);
    gap:14px;
    min-height:66px;
    padding:8px;
    border-radius:14px;
}
.apd5-destination-option > span {
    width:52px;
    height:52px;
    border-radius:14px;
    background:#f2f6fb;
    color:#365a85;
}
.apd5-destination-option:nth-child(4n+1) > span { background:#eef6ff; color:#2877cf; }
.apd5-destination-option:nth-child(4n+2) > span { background:#fff4e8; color:#d57922; }
.apd5-destination-option:nth-child(4n+3) > span { background:#eff8ec; color:#4f9a39; }
.apd5-destination-option:nth-child(4n+4) > span { background:#f3f1f8; color:#6d6388; }
.apd5-destination-option.is-nearby > span { background:#eef5ff; color:var(--apd5-blue); }
.apd5-destination-option .apd5-icon { width:24px; height:24px; }
.apd5-destination-option strong { font-size:14px; line-height:1.25; }
.apd5-destination-option small {
    margin-top:4px;
    color:#6b7280;
    font-size:12.5px;
    line-height:1.3;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* Calendario grande y estable: no se cierra al seleccionar el check-in. */
.apd5-date-panel {
    width:840px;
    padding:24px 26px 22px;
}
.apd5-date-panel .apd5-panel-title { margin-bottom:13px; }
.apd5-date-panel .apd5-panel-title > div { min-width:0; }
.apd5-date-panel .apd5-panel-title strong { display:block; font-size:19px; }
.apd5-date-panel .apd5-panel-title small { display:block; margin-top:4px; color:#6b7280; font-size:12.5px; }
.apd11-date-mode {
    width:260px;
    height:40px;
    margin:0 auto 18px;
    padding:4px;
    display:grid;
    grid-template-columns:1fr 1fr;
    border-radius:999px;
    background:#eef0f3;
}
.apd11-date-mode span { display:grid; place-items:center; border-radius:999px; color:#596273; font-size:12px; font-weight:750; }
.apd11-date-mode span.is-active { color:#182235; background:#fff; box-shadow:0 1px 5px rgba(0,0,0,.12); }
.apd5-calendar-nav { margin-bottom:-38px; }
.apd5-calendar-nav button { width:38px; height:38px; font-size:24px; }
.apd5-calendar-months { gap:46px; }
.apd5-calendar-month h3 { margin-bottom:16px; font-size:16px; text-transform:capitalize; }
.apd5-calendar-weekdays span { padding:7px 0; font-size:11px; font-weight:700; }
.apd5-calendar-days { row-gap:3px; }
.apd5-calendar-days button {
    min-width:40px;
    min-height:40px;
    aspect-ratio:1;
    font-size:13px;
    font-weight:650;
}
.apd5-calendar-days button.is-in-range { border-radius:0; background:#edf3fb; }
.apd5-panel-footer { margin-top:19px; padding-top:17px; }
.apd5-panel-footer button { min-height:42px; padding-inline:18px; font-size:13px; }

/* Tipografía pública de detalle y resultados. */
.apd52-listing-head h1 { font-size:34px; }
.apd52-listing-subtitle,
.apd52-section p,
.apd52-feature-row,
.apd52-host-copy { font-size:15px; }
.apd52-section h2 { font-size:25px; }
.apd53-results-head h1 { font-size:31px; }
.apd53-results-head p { font-size:14px; }

@media (max-width:1179px) {
    .apd5-section-head h2 { font-size:22px; }
    .apd5-card-title-row h3 { font-size:14px; }
}

@media (max-width:680px) {
    body.apd-marketplace-ui { font-size:16px; }
    .apd5-header.apd-header-initializing,
    .apd5-header.apd-header-initializing * { transition:none !important; }
    .apd5-date-panel .apd5-panel-title small { padding-right:8px; font-size:13px; }
    .apd11-date-mode { width:min(270px,100%); }
    .apd5-calendar-month h3 { font-size:17px; }
    .apd5-calendar-weekdays span { font-size:12px; }
    .apd5-calendar-days button { min-width:42px; min-height:42px; font-size:14px; }
}


/* ======================================================================
   APD MARKETPLACE 12.0.0 · STICKY HD DESKTOP
   Encabezado compacto persistente, tarjetas legibles y render nítido.
   ====================================================================== */

body.apd-marketplace-ui {
    color: #222222;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    font-size: 16px;
    font-kerning: normal;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body.apd-marketplace-ui img {
    image-rendering: auto !important;
}

.apd-motion-item,
.apd-motion-item.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

.apd12-header-spacer {
    width: 100%;
    pointer-events: none;
}

.apd12-header-spacer[hidden] {
    display: none !important;
}

.apd5-header:not(.apd-header-ready),
.apd5-header:not(.apd-header-ready) * {
    transition: none !important;
}

@media (min-width: 1180px) {
    .apd5-header {
        position: sticky !important;
        inset: auto !important;
        top: 0 !important;
        z-index: 5000 !important;
        width: 100% !important;
        min-height: 0 !important;
        background: rgba(255,255,255,.985) !important;
        border-bottom: 1px solid #e8e8e8 !important;
        box-shadow: 0 1px 0 rgba(0,0,0,.07) !important;
        backdrop-filter: saturate(180%) blur(18px);
        -webkit-backdrop-filter: saturate(180%) blur(18px);
    }

    .apd5-header.is-compact {
        position: fixed !important;
        inset: 0 0 auto 0 !important;
        height: 80px !important;
        min-height: 80px !important;
        box-shadow: 0 3px 18px rgba(0,0,0,.10) !important;
    }

    .apd5-header.is-detail-context {
        position: sticky !important;
        height: 80px !important;
        min-height: 80px !important;
        box-shadow: 0 2px 14px rgba(0,0,0,.08) !important;
    }

    .apd5-header-row {
        width: min(calc(100% - 96px), 1440px) !important;
        height: 84px !important;
        min-height: 84px !important;
        grid-template-columns: 210px minmax(0,1fr) 260px !important;
        gap: 18px !important;
    }

    .apd5-header.is-compact .apd5-header-row,
    .apd5-header.is-detail-context .apd5-header-row {
        height: 80px !important;
        min-height: 80px !important;
    }

    .apd5-logo,
    .apd5-header.is-compact .apd5-logo,
    .apd5-header.is-detail-context .apd5-logo {
        width: 124px !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    .apd5-logo img,
    .apd5-header.is-compact .apd5-logo img,
    .apd5-header.is-detail-context .apd5-logo img {
        width: 124px !important;
        height: 46px !important;
        object-fit: contain !important;
        object-position: left center !important;
    }

    .apd5-main-nav {
        display: flex !important;
        justify-content: center !important;
        gap: 24px !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
    }

    .apd5-header.is-compact .apd5-main-nav,
    .apd5-header.is-detail-context .apd5-main-nav {
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: none !important;
    }

    .apd5-main-nav a {
        min-width: auto !important;
        gap: 9px !important;
        padding: 0 7px !important;
        color: #303030 !important;
        font-size: 15px !important;
        line-height: 1 !important;
        font-weight: 600 !important;
        transform: none !important;
    }

    .apd5-main-nav strong {
        font-weight: 650 !important;
        letter-spacing: -.01em !important;
    }

    .apd5-main-nav a > span {
        width: 35px !important;
        height: 35px !important;
        border-radius: 999px !important;
    }

    .apd5-main-nav a::after {
        left: 9px !important;
        right: 9px !important;
        bottom: 0 !important;
        height: 3px !important;
        background: #222222 !important;
    }

    .apd5-header-actions {
        display: flex !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    .apd5-host-trigger {
        padding: 12px 13px !important;
        color: #222222 !important;
        font-size: 14px !important;
        font-weight: 650 !important;
    }

    .apd5-language-button {
        width: 42px !important;
        height: 42px !important;
        background: transparent !important;
    }

    .apd5-account-button {
        min-width: 82px !important;
        height: 46px !important;
        padding: 4px 6px 4px 12px !important;
        border-color: #d5d5d5 !important;
        box-shadow: none !important;
    }

    .apd5-account-button:hover {
        box-shadow: 0 3px 12px rgba(0,0,0,.14) !important;
    }

    .apd5-account-button img,
    .apd5-account-button > span {
        width: 36px !important;
        height: 36px !important;
    }

    .apd5-header-search-row {
        position: static !important;
        inset: auto !important;
        width: auto !important;
        height: auto !important;
        min-height: 88px !important;
        padding: 0 20px 18px !important;
        transform: none !important;
        pointer-events: auto !important;
    }

    .apd5-header.is-compact .apd5-header-search-row,
    .apd5-header.is-detail-context .apd5-header-search-row {
        position: absolute !important;
        inset: 0 auto auto 50% !important;
        z-index: 6 !important;
        width: min(660px, calc(100vw - 650px)) !important;
        height: 80px !important;
        min-height: 80px !important;
        padding: 14px 0 !important;
        transform: translateX(-50%) !important;
        pointer-events: none !important;
    }

    .apd5-search {
        width: min(860px, calc(100vw - 140px)) !important;
        height: 64px !important;
        grid-template-columns: 1.18fr 1px 1fr 1px 1fr 60px !important;
        border: 1px solid #dddddd !important;
        border-radius: 999px !important;
        box-shadow: 0 3px 14px rgba(0,0,0,.10) !important;
        background: #ffffff !important;
    }

    .apd5-header.is-compact .apd5-search,
    .apd5-header.is-detail-context .apd5-search {
        width: 100% !important;
        height: 52px !important;
        grid-template-columns: 1.15fr 1px 1fr 1px .92fr 51px !important;
        box-shadow: 0 3px 12px rgba(0,0,0,.12) !important;
        pointer-events: auto !important;
    }

    .apd5-search > i {
        width: 1px !important;
        height: 32px !important;
        background: #dddddd !important;
    }

    .apd5-header.is-compact .apd5-search > i,
    .apd5-header.is-detail-context .apd5-search > i {
        height: 24px !important;
    }

    .apd5-search-field > button {
        padding: 0 24px !important;
        transform: none !important;
    }

    .apd5-search-field > button:hover,
    .apd5-search-field.is-open > button {
        background: #f7f7f7 !important;
        box-shadow: none !important;
    }

    .apd5-search-field span {
        color: #222222 !important;
        font-size: 12px !important;
        line-height: 1.15 !important;
        font-weight: 700 !important;
    }

    .apd5-search-field strong {
        margin-top: 4px !important;
        color: #717171 !important;
        font-size: 14px !important;
        line-height: 1.15 !important;
        font-weight: 450 !important;
    }

    .apd5-header.is-compact .apd5-search-field > button,
    .apd5-header.is-detail-context .apd5-search-field > button {
        padding: 0 17px !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    .apd5-header.is-compact .apd5-search-field span,
    .apd5-header.is-detail-context .apd5-search-field span {
        display: none !important;
    }

    .apd5-header.is-compact .apd5-search-field strong,
    .apd5-header.is-detail-context .apd5-search-field strong {
        margin: 0 !important;
        color: #222222 !important;
        font-size: 13px !important;
        line-height: 1 !important;
        font-weight: 650 !important;
    }

    .apd5-search-submit {
        width: 48px !important;
        height: 48px !important;
        margin-right: 6px !important;
        background: #0f6fe8 !important;
        box-shadow: none !important;
    }

    .apd5-header.is-compact .apd5-search-submit,
    .apd5-header.is-detail-context .apd5-search-submit {
        width: 40px !important;
        height: 40px !important;
        margin-right: 5px !important;
    }

    .apd5-search-submit:hover {
        transform: scale(1.035) !important;
        box-shadow: 0 7px 18px rgba(15,111,232,.28) !important;
    }

    .apd5-search-panel {
        top: calc(100% + 14px) !important;
        padding: 24px !important;
        border: 1px solid #e5e5e5 !important;
        border-radius: 28px !important;
        box-shadow: 0 14px 42px rgba(0,0,0,.16) !important;
        background: #ffffff !important;
    }

    .apd5-location-panel {
        width: 460px !important;
        max-height: 570px !important;
    }

    .apd5-date-panel {
        width: 850px !important;
    }

    .apd5-guests-panel,
    .apd5-service-panel {
        width: 410px !important;
    }

    .apd5-panel-title strong {
        font-size: 20px !important;
        line-height: 1.2 !important;
        font-weight: 700 !important;
        letter-spacing: -.025em !important;
    }

    .apd5-panel-filter {
        height: 54px !important;
        padding: 0 17px !important;
        border-radius: 14px !important;
    }

    .apd5-panel-filter input {
        font-size: 15px !important;
    }

    .apd5-destination-option {
        min-height: 72px !important;
        grid-template-columns: 58px minmax(0,1fr) !important;
        gap: 14px !important;
        padding: 7px 6px !important;
        border-radius: 14px !important;
    }

    .apd5-destination-option > span {
        width: 56px !important;
        height: 56px !important;
        border-radius: 16px !important;
    }

    .apd5-destination-option strong {
        font-size: 15px !important;
        line-height: 1.25 !important;
        font-weight: 700 !important;
    }

    .apd5-destination-option small {
        margin-top: 5px !important;
        color: #717171 !important;
        font-size: 13px !important;
        line-height: 1.35 !important;
    }

    .apd5-calendar-months {
        gap: 50px !important;
    }

    .apd5-calendar-month h3 {
        font-size: 18px !important;
    }

    .apd5-calendar-weekdays span,
    .apd5-calendar-days button,
    .apd5-calendar-days span {
        width: 44px !important;
        height: 44px !important;
        font-size: 14px !important;
    }

    .apd5-panel-footer button {
        min-height: 44px !important;
        font-size: 14px !important;
    }

    .apd5-main {
        width: min(calc(100% - 96px), 1440px) !important;
        padding-top: 34px !important;
    }

    .apd5-rail {
        margin-top: 42px !important;
    }

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

    .apd5-section-head {
        margin-bottom: 18px !important;
        align-items: center !important;
    }

    .apd5-section-head h2,
    .apd5-section-head h2 a {
        color: #222222 !important;
        font-size: 24px !important;
        line-height: 1.15 !important;
        font-weight: 700 !important;
        letter-spacing: -.035em !important;
    }

    .apd5-section-head h2 span {
        font-size: 22px !important;
    }

    .apd5-section-head p {
        margin-top: 7px !important;
        color: #717171 !important;
        font-size: 14px !important;
        line-height: 1.35 !important;
    }

    .apd5-rail-controls button {
        width: 36px !important;
        height: 36px !important;
        color: #222222 !important;
        background: #f2f2f2 !important;
        font-size: 20px !important;
    }

    .apd5-card-rail {
        gap: 16px !important;
        grid-auto-columns: calc((100% - 96px) / 7) !important;
        scroll-padding-inline: 0 !important;
    }

    .apd5-card {
        transform: none !important;
    }

    .apd5-card:hover {
        transform: none !important;
    }

    .apd5-card-media {
        aspect-ratio: 1 / 1 !important;
        border-radius: 18px !important;
        box-shadow: none !important;
    }

    .apd5-card:hover .apd5-card-media {
        box-shadow: 0 10px 26px rgba(0,0,0,.13) !important;
    }

    .apd5-card-media img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        transform: translateZ(0) scale(1) !important;
        transition: transform .28s ease, filter .28s ease !important;
    }

    .apd5-card:hover .apd5-card-media img {
        transform: translateZ(0) scale(1.018) !important;
        filter: saturate(1.02) !important;
    }

    .apd5-card-badge {
        top: 12px !important;
        left: 12px !important;
        padding: 8px 12px !important;
        border-radius: 999px !important;
        color: #222222 !important;
        font-size: 11px !important;
        font-weight: 650 !important;
        box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
    }

    .apd5-favorite {
        top: 10px !important;
        right: 10px !important;
        width: 38px !important;
        height: 38px !important;
    }

    .apd5-favorite .apd5-icon {
        width: 29px !important;
        height: 29px !important;
    }

    .apd5-card-body {
        padding: 11px 2px 0 !important;
    }

    .apd5-card-title-row {
        align-items: flex-start !important;
        gap: 8px !important;
    }

    .apd5-card-title-row h3 {
        min-height: 38px !important;
        margin: 0 !important;
        color: #222222 !important;
        font-size: 16px !important;
        line-height: 1.18 !important;
        font-weight: 650 !important;
        letter-spacing: -.02em !important;
        white-space: normal !important;
        display: -webkit-box !important;
        overflow: hidden !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
    }

    .apd5-card-title-row > span {
        padding-top: 2px !important;
        color: #222222 !important;
        font-size: 12px !important;
        line-height: 1.2 !important;
    }

    .apd5-card-title-row .apd5-icon {
        width: 12px !important;
        height: 12px !important;
    }

    .apd5-card-body p {
        margin: 6px 0 0 !important;
        color: #717171 !important;
        font-size: 13px !important;
        line-height: 1.3 !important;
    }

    .apd5-card-body > strong {
        display: block !important;
        margin-top: 6px !important;
        color: #222222 !important;
        font-size: 14px !important;
        line-height: 1.3 !important;
        font-weight: 600 !important;
    }

    .apd5-card-body > strong small {
        color: #717171 !important;
        font-size: 13px !important;
        font-weight: 450 !important;
    }

    .apd5-demo-edit {
        margin-top: 8px !important;
        font-size: 12px !important;
    }

    .apd5-footer h3 {
        font-size: 15px !important;
    }

    .apd5-footer a,
    .apd5-footer p,
    .apd5-footer-bottom {
        font-size: 14px !important;
    }
}

@media (min-width: 1180px) and (max-width: 1499px) {
    .apd5-card-rail {
        grid-auto-columns: calc((100% - 80px) / 6) !important;
    }

    .apd5-card-grid {
        grid-template-columns: repeat(6, minmax(0,1fr)) !important;
    }

    .apd5-header.is-compact .apd5-header-search-row,
    .apd5-header.is-detail-context .apd5-header-search-row {
        width: min(600px, calc(100vw - 570px)) !important;
    }
}

@media (min-width: 1500px) {
    .apd5-card-grid {
        grid-template-columns: repeat(7, minmax(0,1fr)) !important;
        gap: 30px 16px !important;
    }
}

@media (max-width: 1179px) {
    .apd12-header-spacer {
        display: none !important;
    }
}

/* =========================================================
   APD 15.7 — tarjetas unificadas alojamiento/experiencia/servicio
========================================================= */
.apd5-card,
.apd5-stay-card,
.apd5-experience-card,
.apd5-service-card {
    min-width: 0;
}

.apd5-card-media {
    aspect-ratio: 1.055 / 1 !important;
    border-radius: 18px !important;
}

.apd5-card-badge {
    padding: 6px 10px !important;
    font-size: 11px !important;
    line-height: 1.05 !important;
    font-weight: 600 !important;
}

.apd5-card-body {
    padding: 10px 3px 0 !important;
}

.apd5-card-title-row {
    gap: 6px !important;
    align-items: center !important;
}

.apd5-card-title-row h3 {
    min-height: 0 !important;
    margin: 0 !important;
    color: #222222 !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.apd5-card-location,
.apd5-card-body p {
    margin: 4px 0 0 !important;
    color: #717171 !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.apd5-card-price-row {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
    min-width: 0 !important;
    margin-top: 5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
}

.apd5-card-price {
    min-width: 0 !important;
    color: #222222 !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    font-weight: 450 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.apd5-card-price small {
    color: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
}

.apd5-card-rating {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 3px !important;
    color: #222222 !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
}

.apd5-card-rating .apd5-icon,
.apd5-card-title-row .apd5-icon {
    width: 12px !important;
    height: 12px !important;
}

.apd5-experience-card .apd5-card-price-row,
.apd5-service-card .apd5-card-price-row,
.apd5-stay-card .apd5-card-price-row {
    justify-content: flex-start !important;
}

.apd5-experience-card .apd5-card-body,
.apd5-service-card .apd5-card-body,
.apd5-stay-card .apd5-card-body {
    min-height: 0 !important;
}

body.home .apd5-experience-card .apd5-card-price,
body.home .apd5-service-card .apd5-card-price,
body.home .apd5-stay-card .apd5-card-price,
body.home .apd5-experience-card .apd5-card-rating,
body.home .apd5-service-card .apd5-card-rating,
body.home .apd5-stay-card .apd5-card-rating {
    font-size: 13px !important;
}

body.home .apd5-experience-card .apd5-card-location,
body.home .apd5-service-card .apd5-card-location {
    display: block !important;
}

@media (max-width: 767px) {
    .apd5-card-media {
        aspect-ratio: 1.06 / 1 !important;
        border-radius: 18px !important;
    }

    .apd5-card-title-row h3 {
        font-size: 14px !important;
    }

    .apd5-card-location,
    .apd5-card-body p,
    .apd5-card-price,
    .apd5-card-rating {
        font-size: 13px !important;
    }
}

/* =========================================================
   APD 15.8 — tamaño idéntico de tarjetas en Todo y catálogos
   La misma medida se usa en alojamientos, experiencias y servicios.
========================================================= */
.apd5-card-rail,
.apd5-catalog-main .apd5-card-grid {
    align-items: start !important;
}

.apd5-card-rail .apd5-card,
.apd5-catalog-main .apd5-card-grid .apd5-card {
    width: 100% !important;
    max-width: none !important;
    align-self: start !important;
}

.apd5-stay-card .apd5-card-media,
.apd5-experience-card .apd5-card-media,
.apd5-service-card .apd5-card-media {
    width: 100% !important;
    aspect-ratio: 1.055 / 1 !important;
    border-radius: 18px !important;
}

.apd5-stay-card .apd5-card-body,
.apd5-experience-card .apd5-card-body,
.apd5-service-card .apd5-card-body {
    width: 100% !important;
    padding: 10px 3px 0 !important;
    box-sizing: border-box !important;
}

.apd5-stay-card .apd5-card-title-row,
.apd5-experience-card .apd5-card-title-row,
.apd5-service-card .apd5-card-title-row {
    min-height: 19px !important;
}

.apd5-stay-card .apd5-card-title-row h3,
.apd5-experience-card .apd5-card-title-row h3,
.apd5-service-card .apd5-card-title-row h3 {
    width: 100% !important;
    min-height: 0 !important;
    color: #222222 !important;
    font-size: 15px !important;
    line-height: 19px !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: block !important;
}

.apd5-stay-card .apd5-card-location,
.apd5-experience-card .apd5-card-location,
.apd5-service-card .apd5-card-location {
    display: block !important;
    min-height: 16px !important;
    margin: 3px 0 0 !important;
    color: #717171 !important;
    font-size: 12px !important;
    line-height: 16px !important;
    font-weight: 400 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.apd5-stay-card .apd5-card-price-row,
.apd5-experience-card .apd5-card-price-row,
.apd5-service-card .apd5-card-price-row {
    min-height: 18px !important;
    margin-top: 3px !important;
    gap: 4px !important;
    overflow: hidden !important;
}

.apd5-stay-card .apd5-card-price,
.apd5-experience-card .apd5-card-price,
.apd5-service-card .apd5-card-price,
.apd5-stay-card .apd5-card-rating,
.apd5-experience-card .apd5-card-rating,
.apd5-service-card .apd5-card-rating {
    color: #222222 !important;
    font-size: 13px !important;
    line-height: 18px !important;
    font-weight: 500 !important;
}

.apd5-card-rating .apd5-icon {
    width: 12px !important;
    height: 12px !important;
}

/* Escritorio grande: la referencia visual usa tarjetas de aproximadamente 250 px. */
@media (min-width: 1500px) {
    .apd5-card-rail {
        grid-auto-columns: 250px !important;
        gap: 18px !important;
    }

    .apd5-catalog-main .apd5-card-grid {
        grid-template-columns: repeat(auto-fill, 250px) !important;
        justify-content: start !important;
        gap: 32px 18px !important;
    }
}

/* Escritorio estándar: mantiene tarjetas grandes sin comprimir siete por fila. */
@media (min-width: 1180px) and (max-width: 1499px) {
    .apd5-card-rail {
        grid-auto-columns: 218px !important;
        gap: 16px !important;
    }

    .apd5-catalog-main .apd5-card-grid {
        grid-template-columns: repeat(auto-fill, 218px) !important;
        justify-content: start !important;
        gap: 30px 16px !important;
    }
}

/* Tablet: conserva exactamente el mismo componente, adaptando solo la cantidad visible. */
@media (min-width: 768px) and (max-width: 1179px) {
    .apd5-card-rail {
        grid-auto-columns: 220px !important;
        gap: 15px !important;
    }

    .apd5-catalog-main .apd5-card-grid {
        grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)) !important;
        justify-content: start !important;
        gap: 28px 15px !important;
    }
}

@media (max-width: 767px) {
    .apd5-stay-card .apd5-card-title-row h3,
    .apd5-experience-card .apd5-card-title-row h3,
    .apd5-service-card .apd5-card-title-row h3 {
        font-size: 14px !important;
        line-height: 18px !important;
    }

    .apd5-stay-card .apd5-card-location,
    .apd5-experience-card .apd5-card-location,
    .apd5-service-card .apd5-card-location,
    .apd5-stay-card .apd5-card-price,
    .apd5-experience-card .apd5-card-price,
    .apd5-service-card .apd5-card-price,
    .apd5-stay-card .apd5-card-rating,
    .apd5-experience-card .apd5-card-rating,
    .apd5-service-card .apd5-card-rating {
        font-size: 13px !important;
    }
}

/* ======================================================================
   APD 15.13 — FONDO DE AUTENTICACIÓN Y LOGO HD
   Usa la imagen entregada por el propietario como un único fondo continuo.
   Se conserva libre el encabezado superior y se elimina la cuadrícula previa.
   ====================================================================== */
.apd5-auth-modal.is-host-mode .apd5-auth-host-canvas {
    position:absolute;
    inset:115px 0 0;
    display:block;
    padding:0;
    overflow:hidden;
    opacity:1;
    background-color:#eef4f8;
    background-image:url('../images/apd-host-auth-background.png');
    background-repeat:no-repeat;
    background-position:center center;
    background-size:cover;
}
.apd5-auth-modal.is-host-mode .apd5-auth-host-canvas::after {
    content:"";
    position:absolute;
    inset:0;
    background:rgba(255,255,255,.08);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
}
.apd5-auth-modal.is-host-mode .apd5-auth-host-canvas span {
    display:none !important;
}
.apd5-logo img,
.apd5-auth-brand img,
.apd-footer-brand img,
.apd7-brand img {
    image-rendering:auto;
    backface-visibility:hidden;
    transform:translateZ(0);
}
@media (max-width:767px) {
    .apd5-auth-modal.is-host-mode .apd5-auth-host-canvas {
        inset:0;
        background-position:center center;
    }
}
