/* APD 152 — measured Airbnb-like fidelity across desktop, tablet and phone. */
:root{
  --apd152-edge:32px;
  --apd152-card:204px;
  --apd152-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --apd152-line:#dddddd;
  --apd152-muted:#6a6a6a;
  --apd152-ink:#222222;
  --apd152-shadow:0 3px 12px rgba(0,0,0,.10);
  --apd152-shadow-open:0 8px 28px rgba(0,0,0,.14);
}

body.apd141-manual-ui,
body.apd145-listing-final,
body.single-experience,
body.single-apd_service{
  color:var(--apd152-ink);
  font-family:var(--apd152-font)!important;
  text-rendering:optimizeLegibility;
}

body.apd141-manual-ui :where(.apd5-section-head h2,.apd5-card-title-row h3,.apd5-card-title-row h3 a,.apd5-card-location,.apd5-card-price-row,.apd5-panel-title,.apd5-guest-row,.apd53-results-heading,.apd53-result-card),
body.apd145-listing-final :where(h1,h2,h3,p,button,a,input),
body.single-experience :where(h1,h2,h3,p,button,a,input),
body.single-apd_service :where(h1,h2,h3,p,button,a,input){
  font-family:var(--apd152-font)!important;
}

body.apd141-manual-ui :where(button,a,input,select,textarea):focus-visible,
body.apd145-listing-final :where(button,a,input,select,textarea):focus-visible,
body.single-experience :where(button,a,input,select,textarea):focus-visible,
body.single-apd_service :where(button,a,input,select,textarea):focus-visible{
  outline:2px solid var(--apd152-ink)!important;
  outline-offset:2px!important;
}

body.apd141-manual-ui .apd5-search,
body.apd141-manual-ui .apd141-search-shell{
  border-color:var(--apd152-line)!important;
  box-shadow:var(--apd152-shadow)!important;
}

body.apd141-manual-ui .apd5-search-panel{
  border:1px solid #e6e6e6!important;
  border-radius:24px!important;
  box-shadow:var(--apd152-shadow-open)!important;
}

body.apd141-manual-ui .apd5-search-field>button:hover,
body.apd141-manual-ui .apd5-search-field.is-open>button{
  background:#f7f7f7!important;
}

body.apd141-manual-ui .apd5-card-body{padding:8px 4px 0!important}
body.apd141-manual-ui .apd5-card-title-row h3,
body.apd141-manual-ui .apd5-card-title-row h3 a{
  display:-webkit-box!important;
  min-height:16px;
  overflow:hidden!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:16px!important;
  white-space:normal!important;
  text-overflow:clip!important;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
body.apd141-manual-ui .apd5-card-location,
body.apd141-manual-ui .apd5-card-price,
body.apd141-manual-ui .apd5-card-price small,
body.apd141-manual-ui .apd5-card-rating{
  overflow:hidden!important;
  color:var(--apd152-muted)!important;
  font-size:12px!important;
  font-weight:400!important;
  line-height:16px!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
}
body.apd141-manual-ui .apd5-card-price{color:var(--apd152-ink)!important}
body.apd141-manual-ui .apd5-card-media{
  aspect-ratio:1.0526/1!important;
  height:auto!important;
  border-radius:14px!important;
  background:#f2f2f2!important;
}
body.apd141-manual-ui .apd5-card-media img{transition:transform .28s cubic-bezier(.2,0,0,1)!important}

body.apd141-manual-ui .apd5-card,
body.apd141-manual-ui .apd5-favorite,
body.apd141-manual-ui .apd5-rail-arrow,
body.apd141-manual-ui .apd5-search-submit{
  transition:transform .2s cubic-bezier(.2,0,0,1),box-shadow .2s ease,background-color .18s ease,opacity .18s ease!important;
}

body.apd141-manual-ui .apd5-rail-arrow{
  border:1px solid transparent!important;
  background:#f2f2f2!important;
}
body.apd141-manual-ui .apd5-rail-arrow:hover{
  border-color:#dddddd!important;
  background:#ffffff!important;
  box-shadow:0 2px 8px rgba(0,0,0,.12)!important;
}

.apd152-image-fallback{
  object-fit:cover!important;
  background:#f2f2f2!important;
}

/* Search-results filter stays directly under the compact header. */
body.apd5-search-results-page .apd53-filter-strip{
  top:80px!important;
  z-index:900!important;
  border-color:#eeeeee!important;
  background:rgba(255,255,255,.98)!important;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
body.apd5-search-results-page .apd53-filter-drawer{
  max-height:calc(100dvh - 176px)!important;
  overflow:auto!important;
  border-radius:24px!important;
  box-shadow:0 18px 55px rgba(0,0,0,.16)!important;
}

/* Compact product headers remain available while the user reads/reserves. */
body.apd145-listing-final #apd5-header,
body.single-experience #apd5-header,
body.single-apd_service #apd5-header,
body.apd5-search-results-page #apd5-header{
  position:fixed!important;
  top:0!important;
  right:0!important;
  left:0!important;
  z-index:4200!important;
  height:80px!important;
  min-height:80px!important;
  background:rgba(255,255,255,.98)!important;
  border-bottom:1px solid rgba(0,0,0,.08)!important;
  box-shadow:none!important;
  backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
}
body.apd145-listing-final,
body.single-experience,
body.single-apd_service,
body.apd5-search-results-page{
  padding-top:80px!important;
}

@media (min-width:768px){
  body.apd141-manual-ui.apd149-scrolled{padding-top:80px!important}
  body.apd141-manual-ui.apd149-scrolled #apd5-header{
    position:fixed!important;
    top:0!important;
    right:0!important;
    left:0!important;
    z-index:4200!important;
    height:80px!important;
    min-height:80px!important;
    background:rgba(255,255,255,.98)!important;
    border-bottom:1px solid rgba(0,0,0,.08)!important;
    box-shadow:0 3px 16px rgba(0,0,0,.06)!important;
    backdrop-filter:saturate(180%) blur(18px);
    -webkit-backdrop-filter:saturate(180%) blur(18px);
  }

  body.apd141-manual-ui .apd5-card-rail{
    grid-auto-columns:var(--apd152-card)!important;
    gap:12px!important;
  }
}

@media (min-width:1180px){
  body.apd141-manual-ui .apd5-main,
  body.apd141-manual-ui .apd5-footer-grid,
  body.apd141-manual-ui .apd24-footer-bottom{
    width:min(calc(100% - 64px),1472px)!important;
    max-width:1472px!important;
    margin-inline:auto!important;
  }
  body.apd141-manual-ui .apd5-section-head{margin-bottom:12px!important}
  body.apd141-manual-ui .apd5-section-head h2,
  body.apd141-manual-ui .apd5-section-head h2 a{
    font-size:18px!important;
    font-weight:650!important;
    line-height:24px!important;
    letter-spacing:-.25px!important;
  }
  body.apd141-manual-ui .apd5-discovery-rail,
  body.apd141-manual-ui .apd5-rail{margin-block:28px 34px!important}
  body.apd141-manual-ui .apd5-footer{padding-top:38px!important}
  body.apd141-manual-ui .apd5-footer-grid{gap:56px!important}
  body.apd141-manual-ui .apd5-footer a{margin-bottom:9px!important;line-height:18px!important}

  body.apd141-manual-ui .apd5-card:hover{transform:translateY(-2px)!important}
  body.apd141-manual-ui .apd5-card:hover .apd5-card-media{box-shadow:0 8px 22px rgba(0,0,0,.10)!important}
  body.apd141-manual-ui .apd5-card:hover .apd5-card-media img{transform:scale(1.025)!important}
}

@media (min-width:768px) and (max-width:1179px){
  :root{--apd152-edge:24px}
  body.apd141-manual-ui .apd5-main{padding-inline:var(--apd152-edge)!important}
  body.apd141-manual-ui .apd5-section-head h2,
  body.apd141-manual-ui .apd5-section-head h2 a{
    font-size:18px!important;
    font-weight:650!important;
    line-height:24px!important;
  }
  body.apd141-manual-ui .apd5-search-panel{
    top:132px!important;
    border-radius:24px!important;
  }
  body.apd141-manual-ui .apd5-footer-grid{gap:28px!important}

  body.apd145-listing-final .apd52-content-grid{grid-template-columns:minmax(0,1fr) 320px!important;gap:28px!important}
  body.apd145-listing-final .apd52-gallery{height:400px!important}
}

@media (max-width:767px){
  :root{--apd152-edge:16px}
  body.apd141-manual-ui,
  body.apd145-listing-final,
  body.single-experience,
  body.single-apd_service,
  body.apd5-search-results-page{
    padding-top:76px!important;
  }
  body.apd141-manual-ui #apd5-header,
  body.apd145-listing-final #apd5-header,
  body.single-experience #apd5-header,
  body.single-apd_service #apd5-header,
  body.apd5-search-results-page #apd5-header{
    position:fixed!important;
    top:0!important;
    right:0!important;
    left:0!important;
    z-index:4200!important;
    height:76px!important;
    min-height:76px!important;
    background:rgba(255,255,255,.98)!important;
    border-bottom:1px solid rgba(0,0,0,.08)!important;
    box-shadow:none!important;
  }

  body.apd141-manual-ui .apd5-discovery-rail{padding-left:var(--apd152-edge)!important}
  body.apd141-manual-ui .apd5-section-head{padding-right:var(--apd152-edge)!important}
  body.apd141-manual-ui .apd5-section-head h2,
  body.apd141-manual-ui .apd5-section-head h2 a{
    font-size:18px!important;
    font-weight:650!important;
    line-height:23px!important;
    letter-spacing:-.2px!important;
  }
  body.apd141-manual-ui .apd5-card-rail,
  body.apd141-manual-ui .apd130-recent-rail{
    grid-auto-columns:calc((100vw - 44px)/2)!important;
    gap:12px!important;
    padding-right:var(--apd152-edge)!important;
  }
  body.apd141-manual-ui .apd5-card-media{aspect-ratio:1.0526/1!important;border-radius:12px!important}
  body.apd141-manual-ui .apd5-card-body{padding:7px 3px 0!important}
  body.apd141-manual-ui .apd5-card-title-row h3,
  body.apd141-manual-ui .apd5-card-title-row h3 a{font-size:13px!important;line-height:16px!important}

  /* Airbnb mobile search is a full-screen step flow, not a narrow desktop popover. */
  body.apd141-manual-ui .apd5-search-panel{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:100dvh!important;
    max-width:none!important;
    max-height:none!important;
    padding:20px var(--apd152-edge) calc(92px + env(safe-area-inset-bottom))!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    overflow:auto!important;
    transform:none!important;
  }
  body.apd141-manual-ui .apd5-date-panel{height:100dvh!important}
  body.apd141-manual-ui .apd5-calendar-month:nth-child(n+2){display:none!important}
  body.apd141-manual-ui .apd5-search-backdrop:not([hidden]){z-index:4990!important;background:#fff!important}

  body.apd5-search-results-page .apd53-filter-strip{top:76px!important}
  body.apd5-search-results-page .apd53-filter-drawer{
    position:fixed!important;
    inset:auto 0 0!important;
    width:100%!important;
    max-height:86dvh!important;
    border:0!important;
    border-radius:24px 24px 0 0!important;
    box-shadow:0 -12px 36px rgba(0,0,0,.16)!important;
  }

  body.apd145-listing-final .apd52-shell{box-sizing:border-box!important}
  body.apd145-listing-final .apd52-gallery{
    display:block!important;
    position:relative!important;
    width:calc(100% + 32px)!important;
    height:auto!important;
    aspect-ratio:1.0526/1!important;
    overflow:hidden!important;
  }
  body.apd145-listing-final .apd52-gallery .apd52-gallery-item{display:none!important}
  body.apd145-listing-final .apd52-gallery .apd52-gallery-item-1{
    display:block!important;
    width:100%!important;
    height:100%!important;
  }
  body.apd145-listing-final .apd52-gallery .apd52-gallery-item-1 img{width:100%!important;height:100%!important;object-fit:cover!important}
  body.apd145-listing-final .apd52-show-all-photos{right:16px!important;bottom:16px!important}
  body.apd145-listing-final .apd52-booking-card{border-radius:16px!important;box-shadow:0 3px 12px rgba(0,0,0,.10)!important}
  body.apd145-listing-final h1{font-size:24px!important;line-height:30px!important}
}

@media (hover:hover) and (pointer:fine){
  body.apd141-manual-ui :where(button,a){cursor:pointer}
}

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