/* APD 91 — stable premium booking interactions */
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking{
  position:relative!important;
  overflow:visible!important;
  border:1px solid rgba(148,163,184,.28)!important;
  border-radius:28px!important;
  background:radial-gradient(circle at 0 0,rgba(255,239,200,.28),transparent 34%),radial-gradient(circle at 100% 0,rgba(220,232,255,.48),transparent 35%),linear-gradient(145deg,#fff 0%,#fbfdff 100%)!important;
  box-shadow:0 24px 60px rgba(15,23,42,.11)!important;
}
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .search-date-range-arrive,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .search-date-range-depart,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .apd20-guests-field{cursor:pointer!important;background:#fff!important}
body.single-listing.apd91-booking-rebuild .apd52-booking-card #single-booking-search-calendar{display:none!important;visibility:hidden!important;pointer-events:none!important}
body.single-listing.apd91-booking-rebuild .apd52-booking-card .apd20-guests-panel{display:none!important}
body.apd91-modal-open{overflow:hidden!important}

.apd91-date-modal[hidden],.apd91-guests-popover[hidden]{display:none!important}
.apd91-date-modal{position:fixed!important;inset:0!important;z-index:210000!important;display:grid!important;place-items:center!important;padding:22px!important}
.apd91-modal-backdrop{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;border:0!important;background:rgba(15,23,42,.34)!important;backdrop-filter:blur(3px)!important}
.apd91-date-dialog{position:relative!important;z-index:1!important;width:min(820px,calc(100vw - 44px))!important;max-height:calc(100vh - 44px)!important;overflow:auto!important;padding:26px 28px 20px!important;border:1px solid rgba(15,23,42,.10)!important;border-radius:30px!important;background:radial-gradient(circle at 100% 0,rgba(224,234,255,.55),transparent 28%),radial-gradient(circle at 0 0,rgba(255,241,210,.38),transparent 25%),#fff!important;box-shadow:0 42px 110px rgba(15,23,42,.28)!important;color:#172033!important}
.apd91-date-dialog>header{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:20px!important;margin-bottom:16px!important}
.apd91-date-dialog h2{margin:0!important;font-size:28px!important;line-height:1.05!important;font-weight:850!important;letter-spacing:-.045em!important;color:#172033!important}
.apd91-date-dialog header p{margin:8px 0 0!important;color:#697386!important;font-size:14px!important}
.apd91-x{width:40px!important;height:40px!important;border:0!important;border-radius:50%!important;background:#f3f4f6!important;color:#172033!important;font-size:24px!important;line-height:1!important}
.apd91-date-pickers{display:grid!important;grid-template-columns:1fr 1fr!important;border:1px solid #c3c8d2!important;border-radius:16px!important;overflow:hidden!important;background:#fff!important}
.apd91-date-pickers>button{min-height:66px!important;padding:10px 14px!important;border:0!important;background:#fff!important;text-align:left!important;color:#172033!important}
.apd91-date-pickers>button+button{border-left:1px solid #c3c8d2!important}
.apd91-date-pickers>button.is-active{box-shadow:inset 0 0 0 2px #172033!important;border-radius:15px!important;z-index:2!important}
.apd91-date-pickers small{display:block!important;margin-bottom:6px!important;font-size:10px!important;font-weight:850!important;letter-spacing:.03em!important}
.apd91-date-pickers strong{display:block!important;font-size:14px!important;font-weight:650!important}
.apd91-month-controls{display:grid!important;grid-template-columns:42px 1fr 42px!important;align-items:center!important;gap:10px!important;margin:18px 0 8px!important}
.apd91-month-controls button{width:42px!important;height:42px!important;border:0!important;border-radius:50%!important;background:#f5f6f8!important;color:#172033!important;font-size:28px!important;line-height:1!important}
.apd91-month-controls button:disabled{opacity:.3!important}
.apd91-month-controls span{text-align:center!important;font-size:15px!important;font-weight:800!important;color:#172033!important}
.apd91-months{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:34px!important}
.apd91-month h3{margin:0 0 14px!important;text-align:center!important;font-size:17px!important;font-weight:800!important;color:#172033!important}
.apd91-week,.apd91-days{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;column-gap:0!important;row-gap:3px!important}
.apd91-week{margin-bottom:6px!important}.apd91-week span{text-align:center!important;font-size:11px!important;font-weight:700!important;color:#7a8497!important}
.apd91-days>*{min-height:42px!important}
.apd91-days button{display:grid!important;place-items:center!important;width:100%!important;height:42px!important;margin:auto!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#172033!important;font-size:14px!important;font-weight:600!important;position:relative!important;z-index:1!important}
.apd91-days button:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px #172033!important}
.apd91-days button:disabled{color:#c2c7d0!important;text-decoration:line-through!important;cursor:not-allowed!important}
.apd91-days button.is-range{border-radius:0!important;background:#e7e7e8!important;width:100%!important}
.apd91-days button.is-start,.apd91-days button.is-end{width:42px!important;border-radius:50%!important;background:#202124!important;color:#fff!important;box-shadow:none!important}
.apd91-days button.is-start:not(.is-end)::after,.apd91-days button.is-end:not(.is-start)::after{content:""!important;position:absolute!important;z-index:-1!important;top:0!important;bottom:0!important;width:calc(50% + 1px)!important;background:#e7e7e8!important}
.apd91-days button.is-start::after{left:50%!important}.apd91-days button.is-end::after{right:50%!important}
.apd91-days button.is-temporary-unavailable{color:#c2c7d0!important;text-decoration:line-through!important;cursor:not-allowed!important}
.apd91-date-status{min-height:20px!important;margin:12px 0 0!important;color:#b42318!important;font-size:13px!important;font-weight:600!important}
.apd91-date-dialog>footer{position:sticky!important;bottom:-20px!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:12px!important;margin:14px -28px -20px!important;padding:14px 28px calc(14px + env(safe-area-inset-bottom))!important;border-top:1px solid #eceff3!important;background:rgba(255,255,255,.96)!important;backdrop-filter:blur(12px)!important}
.apd91-clear{min-height:44px!important;padding:0 10px!important;border:0!important;background:transparent!important;color:#374151!important;font-weight:750!important;text-decoration:underline!important;text-underline-offset:3px!important}
.apd91-save{min-height:46px!important;padding:0 22px!important;border:0!important;border-radius:13px!important;background:#202124!important;color:#fff!important;font-weight:800!important;box-shadow:0 10px 22px rgba(15,23,42,.18)!important}
.apd91-save:disabled{opacity:.35!important}

.apd91-guests-popover{position:absolute!important;z-index:210100!important;width:370px!important;max-width:calc(100% - 24px)!important;padding:16px 18px 14px!important;border:1px solid rgba(15,23,42,.10)!important;border-radius:22px!important;background:#fff!important;box-shadow:0 26px 70px rgba(15,23,42,.22)!important;color:#172033!important;overflow:auto!important;overscroll-behavior:contain!important}
.apd91-guest-head{display:flex!important;align-items:center!important;justify-content:space-between!important;padding-bottom:8px!important}.apd91-guest-head strong{font-size:18px!important;font-weight:850!important}.apd91-guest-head button{width:34px!important;height:34px!important;border:0!important;border-radius:50%!important;background:#f3f4f6!important;font-size:20px!important}
.apd91-guest-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;min-height:74px!important;padding:10px 0!important;border-bottom:1px solid #edf0f4!important}.apd91-guest-row>div:first-child{min-width:0!important}.apd91-guest-row strong{display:block!important;margin-bottom:4px!important;font-size:15px!important;font-weight:780!important}.apd91-guest-row span{display:block!important;color:#667085!important;font-size:12px!important;line-height:1.35!important}
.apd91-counter{display:flex!important;align-items:center!important;gap:10px!important;flex:0 0 auto!important}.apd91-counter button{display:grid!important;place-items:center!important;width:36px!important;height:36px!important;border:1px solid #d0d5dd!important;border-radius:50%!important;background:#fff!important;color:#172033!important;font-size:20px!important;line-height:1!important}.apd91-counter button:disabled{opacity:.3!important}.apd91-counter output{min-width:20px!important;text-align:center!important;font-size:16px!important;font-weight:700!important}
.apd91-capacity{margin:12px 0 0!important;color:#667085!important;font-size:12px!important;line-height:1.45!important}.apd91-guest-done{display:block!important;width:100%!important;min-height:46px!important;margin-top:14px!important;border:0!important;border-radius:13px!important;background:#202124!important;color:#fff!important;font-size:14px!important;font-weight:800!important}

@media(max-width:799px){.apd91-date-modal{padding:0!important;place-items:end stretch!important}.apd91-date-dialog{width:100%!important;max-width:none!important;max-height:88vh!important;padding:22px 18px calc(18px + env(safe-area-inset-bottom))!important;border-radius:28px 28px 0 0!important}.apd91-months{grid-template-columns:1fr!important;gap:0!important}.apd91-date-dialog>footer{bottom:calc(-18px - env(safe-area-inset-bottom))!important;margin:14px -18px calc(-18px - env(safe-area-inset-bottom))!important;padding:14px 18px calc(16px + env(safe-area-inset-bottom))!important}.apd91-guests-popover{left:12px!important;right:auto!important;top:auto!important;bottom:auto!important;transform:none!important;width:calc(100% - 24px)!important;max-width:calc(100% - 24px)!important;overflow:auto!important;padding:18px 18px 16px!important;border-radius:24px!important}}

/* ========================================================================
   APD 104.0.0 — stable final booking card, black CTA, no visual flash
   ======================================================================== */
body.single-listing.apd91-booking-rebuild .apd52-booking-column{
  position:sticky!important;
  top:28px!important;
  z-index:80!important;
  align-self:start!important;
  display:flex!important;
  flex-direction:column!important;
  gap:14px!important;
}
body.single-listing.apd91-booking-rebuild.apd19-detail-nav-visible .apd52-booking-column,
body.single-listing.apd91-booking-rebuild.apd18-detail-nav-visible .apd52-booking-column{
  top:104px!important;
}
body.single-listing.apd91-booking-rebuild .apd25-fees-banner{
  position:relative!important;
  top:auto!important;
  width:100%!important;
  margin:0!important;
  min-height:72px!important;
  padding:14px 18px!important;
  border:1px solid #dbe4f2!important;
  border-radius:22px!important;
  background:linear-gradient(135deg,#fffdf6 0%,#f6faff 100%)!important;
  box-shadow:0 14px 32px rgba(15,23,42,.06)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
}
body.single-listing.apd91-booking-rebuild .apd25-fees-banner svg{
  width:20px!important;
  height:20px!important;
  flex:0 0 20px!important;
  color:#b58632!important;
  stroke:#b58632!important;
}
body.single-listing.apd91-booking-rebuild .apd25-fees-banner span{
  color:#18284b!important;
  font-size:14px!important;
  line-height:1.3!important;
  font-weight:850!important;
  text-align:center!important;
  letter-spacing:-.015em!important;
}
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking.apd104-final-booking{
  position:relative!important;
  top:auto!important;
  z-index:1!important;
  width:100%!important;
  margin:0!important;
  padding:24px 20px 20px!important;
  overflow:visible!important;
  border:1px solid #dbe1ea!important;
  border-radius:28px!important;
  background:linear-gradient(145deg,#fffdfa 0%,#ffffff 42%,#f7faff 100%)!important;
  box-shadow:0 22px 50px rgba(15,23,42,.09)!important;
  transition:none!important;
}
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking.apd104-final-booking .apd19-booking-price-summary.is-awaiting-dates{
  display:block!important;
  min-height:0!important;
  margin:0 0 20px!important;
  padding:0!important;
  white-space:normal!important;
}
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking.apd104-final-booking .apd19-booking-price-summary.is-awaiting-dates strong{
  display:block!important;
  max-width:290px!important;
  color:#17233d!important;
  font-size:25px!important;
  line-height:.98!important;
  font-weight:900!important;
  letter-spacing:-.045em!important;
  text-decoration:none!important;
}
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking.apd104-final-booking .apd19-booking-price-summary.is-awaiting-dates span{
  display:none!important;
}

/* First-paint normalization: no old Check-in/Check-out/guest appearance before JS sync. */
body.single-listing.apd91-booking-rebuild:not(.apd104-booking-runtime-ready):not(.apd91-has-initial-dates) .apd52-booking-card .search-date-range-arrive,
body.single-listing.apd91-booking-rebuild:not(.apd104-booking-runtime-ready):not(.apd91-has-initial-dates) .apd52-booking-card .search-date-range-depart{
  position:relative!important;
}
body.single-listing.apd91-booking-rebuild:not(.apd104-booking-runtime-ready):not(.apd91-has-initial-dates) .apd52-booking-card .check_in_date,
body.single-listing.apd91-booking-rebuild:not(.apd104-booking-runtime-ready):not(.apd91-has-initial-dates) .apd52-booking-card .check_out_date{
  color:transparent!important;
  text-shadow:none!important;
  caret-color:transparent!important;
}
body.single-listing.apd91-booking-rebuild:not(.apd104-booking-runtime-ready):not(.apd91-has-initial-dates) .apd52-booking-card .search-date-range-arrive::after,
body.single-listing.apd91-booking-rebuild:not(.apd104-booking-runtime-ready):not(.apd91-has-initial-dates) .apd52-booking-card .search-date-range-depart::after{
  content:"Agregá la fecha"!important;
  display:block!important;
  position:absolute!important;
  left:12px!important;
  right:12px!important;
  bottom:8px!important;
  z-index:4!important;
  color:#222!important;
  font-size:14px!important;
  line-height:18px!important;
  font-weight:600!important;
  pointer-events:none!important;
}
body.single-listing.apd91-booking-rebuild .apd104-preload-guest-label{
  display:none!important;
}
body.single-listing.apd91-booking-rebuild:not(.apd104-booking-runtime-ready) .apd20-guests-field .apd104-preload-guest-label{
  display:block!important;
  position:absolute!important;
  left:12px!important;
  bottom:8px!important;
  z-index:4!important;
  color:#222!important;
  font-size:14px!important;
  line-height:18px!important;
  font-weight:700!important;
  pointer-events:none!important;
}
body.single-listing.apd91-booking-rebuild:not(.apd104-booking-runtime-ready) .apd20-guests-field input[name="guests"]{
  color:transparent!important;
  text-shadow:none!important;
}

/* Black premium CTA — functionality remains native. */
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking #instance_reservation,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking #request_for_reservation,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .btn-primary.btn-full-width,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .apd52-btn-primary{
  position:relative!important;
  isolation:isolate!important;
  width:100%!important;
  min-height:58px!important;
  margin:14px 0 0!important;
  padding:0 20px!important;
  border:1px solid #0d0d0e!important;
  border-radius:17px!important;
  background:linear-gradient(180deg,#202124 0%,#0e0f11 100%)!important;
  background-size:100% 100%!important;
  color:transparent!important;
  font-size:0!important;
  font-weight:850!important;
  line-height:1!important;
  box-shadow:0 14px 28px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.08)!important;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease!important;
}
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking #instance_reservation::before,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking #request_for_reservation::before,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .btn-primary.btn-full-width::before,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .apd52-btn-primary::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:-1!important;
  border-radius:inherit!important;
  background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.12) 48%,transparent 76%)!important;
  transform:translateX(-120%) skewX(-16deg)!important;
  transition:transform .6s ease!important;
  pointer-events:none!important;
}
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking #instance_reservation::after,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking #request_for_reservation::after,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .btn-primary.btn-full-width::after,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .apd52-btn-primary::after{
  content:"Consultar disponibilidad"!important;
  position:relative!important;
  z-index:2!important;
  color:#fff!important;
  font-size:16px!important;
  line-height:1!important;
  font-weight:850!important;
  letter-spacing:-.025em!important;
}
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd21-has-dates #instance_reservation::after,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd21-has-dates #request_for_reservation::after,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd21-has-dates .btn-primary.btn-full-width::after,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd21-has-dates .apd52-btn-primary::after{
  content:"Reservar"!important;
}
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking #instance_reservation:hover,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking #request_for_reservation:hover,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .btn-primary.btn-full-width:hover,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .apd52-btn-primary:hover{
  transform:translateY(-1px)!important;
  filter:brightness(.96)!important;
  box-shadow:0 18px 34px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.08)!important;
}
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking #instance_reservation:hover::before,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking #request_for_reservation:hover::before,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .btn-primary.btn-full-width:hover::before,
body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking .apd52-btn-primary:hover::before{
  transform:translateX(120%) skewX(-16deg)!important;
}

/* Traveler selector is part of the booking card flow: it cannot detach on scroll. */
body.single-listing.apd91-booking-rebuild .apd91-guests-popover{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:10px 0 2px!important;
  padding:18px 18px 16px!important;
  overflow:visible!important;
  border:1px solid #dde2e9!important;
  border-radius:20px!important;
  background:#fff!important;
  box-shadow:0 16px 36px rgba(15,23,42,.10)!important;
  overscroll-behavior:auto!important;
}
body.single-listing.apd91-booking-rebuild .apd91-guests-popover[hidden]{display:none!important}
body.single-listing.apd91-booking-rebuild .apd91-guests-open .apd20-guests-field::after{
  transform:rotate(225deg)!important;
  top:27px!important;
}
body.single-listing.apd91-booking-rebuild .apd91-guest-head{
  padding:0 0 8px!important;
}
body.single-listing.apd91-booking-rebuild .apd91-guest-head strong{
  font-size:20px!important;
  color:#172033!important;
}
body.single-listing.apd91-booking-rebuild .apd91-guest-row{
  min-height:76px!important;
  padding:12px 0!important;
}
body.single-listing.apd91-booking-rebuild .apd91-guest-row strong{font-size:16px!important}
body.single-listing.apd91-booking-rebuild .apd91-guest-row span{font-size:12px!important}
body.single-listing.apd91-booking-rebuild .apd91-counter button{
  width:38px!important;
  height:38px!important;
}
body.single-listing.apd91-booking-rebuild .apd91-guest-done{
  min-height:48px!important;
  border-radius:14px!important;
  background:#202124!important;
  box-shadow:0 10px 22px rgba(0,0,0,.14)!important;
}

@media(max-width:799px){
  body.single-listing.apd91-booking-rebuild .apd52-booking-column{
    position:static!important;
    top:auto!important;
    gap:14px!important;
  }
  body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking.apd104-final-booking{
    padding:22px 18px 18px!important;
    border-radius:26px!important;
  }
  body.single-listing.apd91-booking-rebuild .apd52-booking-card.apd91-premium-booking.apd104-final-booking .apd19-booking-price-summary.is-awaiting-dates strong{
    max-width:250px!important;
    font-size:24px!important;
  }
  body.single-listing.apd91-booking-rebuild .apd91-guests-popover{
    position:relative!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    transform:none!important;
    width:100%!important;
    max-width:none!important;
    max-height:none!important;
    margin:10px 0 2px!important;
    padding:18px 16px 16px!important;
    border-radius:20px!important;
    overflow:visible!important;
  }
}
