/**
 * APD 404 — Date panels; APD403 geometry preserved with flexible/experience/service parity.
 * Single owner for stays range calendar, flexible mode and single-day experience/service calendar.
 */
@media (max-width: 767px) {
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-active-panel="dates"] > .apd5-date-panel {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 22px 20px 0 !important;
    border-radius: 30px !important;
    overflow: hidden !important;
    transform: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-active-panel="dates"] .apd15-date-panel-heading {
    margin: 0 !important;
  }

  /* Fechas / Flexible segmented control for Alojamientos. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-active-panel="dates"] .apd15-date-mode {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    align-items: center !important;
    gap: 0 !important;
    width: 100% !important;
    height: 54px !important;
    min-height: 54px !important;
    margin: 18px 0 12px !important;
    padding: 4px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #ededed !important;
    overflow: hidden !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-active-panel="dates"] .apd15-date-mode > button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 46px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: #222 !important;
    box-shadow: none !important;
    font-size: 17px !important;
    line-height: 1 !important;
    font-weight: 600 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-active-panel="dates"] .apd15-date-mode > button:is(.is-active,[aria-selected="true"]) {
    background: #fff !important;
    box-shadow: 0 2px 7px rgba(0,0,0,.12) !important;
  }

  /* APD410 — the exact-date DOM is now shared by all three categories so an
     in-modal category switch never depends on the page that rendered first.
     Alojamientos owns Fechas/Flexible; quick cards remain exclusive to the
     Experiencias/Servicios presentation. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search[data-apd370-context="stays"][data-active-panel="dates"] .apd141-date-shortcuts {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"]
  .apd15-date-view[data-apd-date-view="exact"] {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"]
  .apd15-date-view[data-apd-date-view="flexible"] {
    display: none !important;
  }

  /* APD387 — explicit state contract for iOS. The selected segment and the
     visible view are both driven by the same canonical data attribute. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search[data-apd370-context="stays"][data-active-panel="dates"][data-apd380-date-mode="exact"]
  .apd15-date-view[data-apd-date-view="exact"] {
    display: block !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search[data-apd370-context="stays"][data-active-panel="dates"][data-apd380-date-mode="exact"]
  .apd15-date-view[data-apd-date-view="flexible"] {
    display: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search[data-apd370-context="stays"][data-active-panel="dates"][data-apd380-date-mode="flexible"]
  .apd15-date-view[data-apd-date-view="exact"] {
    display: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search[data-apd370-context="stays"][data-active-panel="dates"][data-apd380-date-mode="flexible"]
  .apd15-date-view[data-apd-date-view="flexible"] {
    display: block !important;
  }

  /* Shared calendar primitives. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-nav {
    display: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-months,
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search #apd5-calendar-months {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-width: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-months::-webkit-scrollbar {
    display: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-month {
    contain: layout paint style !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 0 8px !important;
    border: 0 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-month h3 {
    order: 2 !important;
    margin: 12px 0 12px !important;
    padding: 0 !important;
    color: #222 !important;
    font-size: 20px !important;
    line-height: 1.18 !important;
    font-weight: 650 !important;
    letter-spacing: -.02em !important;
    text-transform: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-weekdays {
    order: 1 !important;
    display: grid !important;
    grid-template-columns: repeat(7,minmax(0,1fr)) !important;
    gap: 0 !important;
    width: 100% !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-weekdays span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 28px !important;
    color: #717171 !important;
    font-size: 14.5px !important;
    line-height: 1 !important;
    font-weight: 500 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-days {
    order: 3 !important;
    position: relative !important;
    display: grid !important;
    grid-template-columns: repeat(7,minmax(0,1fr)) !important;
    grid-auto-rows: 42px !important;
    gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    isolation: isolate !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-days > span {
    width: 100% !important;
    height: 42px !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-days > button {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #222 !important;
    box-shadow: none !important;
    font-size: 16.5px !important;
    line-height: 1 !important;
    font-weight: 450 !important;
    overflow: visible !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd5-calendar-days > button[disabled] {
    color: #d0d0d0 !important;
    opacity: 1 !important;
  }

  /* Alojamientos exact range. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"][data-active-panel="dates"] > .apd5-date-panel {
    height: 466px !important;
    min-height: 466px !important;
    max-height: 466px !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"][data-active-panel="dates"] .apd15-date-view[data-apd-date-view="exact"] {
    position: static !important;
    display: block !important;
    height: 318px !important;
    min-height: 318px !important;
    padding: 0 0 58px !important;
    overflow: hidden !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"][data-active-panel="dates"] #apd5-calendar-months {
    height: 260px !important;
    min-height: 260px !important;
    max-height: 260px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-y !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"] .apd5-calendar-days > button.is-in-range:not(.is-start):not(.is-end) {
    background: #f1f1f1 !important;
    color: #222 !important;
    border-radius: 0 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"] .apd5-calendar-days > button:is(.is-start,.is-end) {
    z-index: 4 !important;
    color: #fff !important;
    background: transparent !important;
    border-radius: 0 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"] .apd5-calendar-days > button:is(.is-start,.is-end)::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    z-index: -1 !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    background: #222 !important;
    transform: translate(-50%,-50%) !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"] .apd5-calendar-days > button.is-start:not(.is-end)::before,
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"] .apd5-calendar-days > button.is-end:not(.is-start)::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    z-index: -2 !important;
    width: 56% !important;
    background: #f1f1f1 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"] .apd5-calendar-days > button.is-start:not(.is-end)::before {
    right: -4px !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"] .apd5-calendar-days > button.is-end:not(.is-start)::before {
    left: -4px !important;
  }

  /* Date tolerance rail is permanently visible inside the card. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"][data-active-panel="dates"] .apd15-date-flexibility {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 12 !important;
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    width: auto !important;
    height: 58px !important;
    min-height: 58px !important;
    margin: 0 !important;
    padding: 8px 22px !important;
    border-top: 1px solid #e7e7e7 !important;
    background: #fff !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-date-flexibility::-webkit-scrollbar {
    display: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-date-flexibility > button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    min-width: max-content !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 1px solid #d6d6d6 !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #222 !important;
    font-size: 14px !important;
    line-height: 1 !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-date-flexibility > button.is-active {
    border: 2px solid #222 !important;
  }

  /* Flexible stays. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-apd370-context="stays"][data-active-panel="dates"] .apd15-date-view[data-apd-date-view="flexible"] {
    display: block !important;
    height: 364px !important;
    min-height: 364px !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-flexible-section {
    margin: 0 !important;
    padding: 14px 0 16px !important;
    border-top: 1px solid #e8e8e8 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-flexible-section h3 {
    margin: 0 0 14px !important;
    color: #222 !important;
    font-size: 18px !important;
    line-height: 1.18 !important;
    font-weight: 650 !important;
    letter-spacing: -.025em !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search :is(.apd15-flexible-duration,.apd15-flex-duration-options) {
    display: grid !important;
    grid-template-columns: 1.35fr .9fr .72fr !important;
    gap: 10px !important;
    width: 100% !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search :is(.apd15-flexible-duration,.apd15-flex-duration-options) > button {
    min-width: 0 !important;
    width: 100% !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border: 1px solid #d7d7d7 !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #222 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    white-space: nowrap !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search :is(.apd15-flexible-duration,.apd15-flex-duration-options) > button.is-active {
    border: 2px solid #222 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search :is(.apd15-flexible-months,.apd15-flex-months) {
    display: flex !important;
    gap: 10px !important;
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search :is(.apd15-flexible-months,.apd15-flex-months)::-webkit-scrollbar {
    display: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search :is(.apd15-flexible-months,.apd15-flex-months) [data-apd-flex-month],
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-flex-months > button {
    flex: 0 0 31.5% !important;
    min-width: 108px !important;
    height: 112px !important;
    padding: 12px 8px !important;
    border: 1px solid #d7d7d7 !important;
    border-radius: 20px !important;
    background: #fff !important;
    color: #222 !important;
    text-align: center !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search [data-apd-flex-month]:is(.is-active,[aria-pressed="true"]) {
    border: 2px solid #222 !important;
  }

  /* Experiences + Services single-day calendar. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] > .apd5-date-panel {
    height: 500px !important;
    min-height: 500px !important;
    max-height: 500px !important;
    padding: 24px 22px 18px !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] .apd15-date-mode,
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] .apd15-date-flexibility {
    display: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] .apd141-date-shortcuts {
    display: grid !important;
    grid-template-columns: .86fr 1.08fr 1.72fr !important;
    gap: 12px !important;
    width: 100% !important;
    margin: 20px 0 12px !important;
    padding: 0 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] .apd141-date-shortcuts > button {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 82px !important;
    min-height: 82px !important;
    margin: 0 !important;
    padding: 10px 8px !important;
    border: 1px solid #d8d8d8 !important;
    border-radius: 18px !important;
    background: #fff !important;
    color: #222 !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] .apd141-date-shortcuts > button:is(.is-selected,.is-active,[aria-pressed="true"]) {
    border: 2px solid #222 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] .apd141-date-shortcuts > button strong {
    display: block !important;
    max-width: 100% !important;
    color: #222 !important;
    font-size: 15px !important;
    line-height: 1.12 !important;
    font-weight: 650 !important;
    white-space: normal !important;
    text-align: center !important;
  }

  /* APD387: subtitle real en el DOM. Evita que Safari muestre las tarjetas
     Hoy / Mañana / Este fin de semana sin la fecha secundaria. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] .apd141-date-shortcuts > button small {
    display: block !important;
    min-height: 14px !important;
    margin-top: 7px !important;
    color: #717171 !important;
    font-size: 13px !important;
    line-height: 1.05 !important;
    font-weight: 400 !important;
    white-space: nowrap !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] .apd141-date-shortcuts > button::after {
    content: none !important;
    display: none !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] :is(.apd141-single-date-layout,.apd15-date-view.apd228-experience-exact-view,.apd141-single-calendar,.apd410-shared-calendar) {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"]
  :is(.apd141-single-calendar,.apd410-shared-calendar) {
    border-top: 1px solid #ececec !important;
    padding-top: 10px !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"] #apd5-calendar-months {
    height: 278px !important;
    min-height: 278px !important;
    max-height: 278px !important;
    overflow: hidden !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"]) .apd5-calendar-days > button:is(.is-start,.is-end,.is-selected) {
    z-index: 4 !important;
    color: #fff !important;
    background: transparent !important;
    border-radius: 0 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"]) .apd5-calendar-days > button:is(.is-start,.is-end,.is-selected)::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    z-index: -1 !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    background: #222 !important;
    transform: translate(-50%,-50%) !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"]) .apd5-calendar-days > button.is-in-range:not(.is-start):not(.is-end):not(.is-selected) {
    background: transparent !important;
  }


  /* APD387 — reference ordering: weekday rail precedes month title. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-active-panel="dates"] .apd5-calendar-weekdays {
    margin: 0 0 8px !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-active-panel="dates"] .apd5-calendar-month h3 {
    margin: 8px 0 14px !important;
  }

  /* Quick cards: one-line title where possible + guaranteed secondary date. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"]
  .apd141-date-shortcuts > button:nth-child(3) strong {
    white-space: nowrap !important;
    font-size: 14px !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])[data-active-panel="dates"]
  .apd141-date-shortcuts > button small {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* APD401 — future-month scrolling and range rendering in all contexts. */
@media (max-width: 767px) {
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search[data-active-panel="dates"] #apd5-calendar-months { overflow-y:auto !important; overscroll-behavior-y:contain !important; -webkit-overflow-scrolling:touch !important; touch-action:pan-y !important; scrollbar-width:none !important; }
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is(.apd380-context-experiences,.apd380-context-services)[data-active-panel="dates"] #apd5-calendar-months { height:300px !important; min-height:300px !important; max-height:300px !important; overflow-y:auto !important; }
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is(.apd380-context-experiences,.apd380-context-services) .apd5-calendar-days > button.is-in-range:not(.is-start):not(.is-end) { background:#f1f1f1 !important; color:#222 !important; border-radius:0 !important; }
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is(.apd380-context-experiences,.apd380-context-services) .apd5-calendar-days > button:is(.is-start,.is-end) { position:relative !important; z-index:4 !important; color:#fff !important; background:transparent !important; }
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search:is(.apd380-context-experiences,.apd380-context-services) .apd5-calendar-days > button:is(.is-start,.is-end)::after { content:"" !important; position:absolute !important; left:50% !important; top:50% !important; z-index:-1 !important; width:42px !important; height:42px !important; border-radius:50% !important; background:#222 !important; transform:translate(-50%,-50%) !important; }
}


/* APD403 — iPhone/Safari scroll performance. Visual selection geometry unchanged. */
@media (max-width: 767px) {
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search #apd5-calendar-months {
    scroll-behavior: auto !important;
  }
}


/* APD404 — missing Flexible month cards, range parity and compact non-stay cards. */
@media (max-width: 767px) {
  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search[data-apd370-context="stays"][data-active-panel="dates"]
  .apd15-date-view[data-apd-date-view="flexible"] {
    height: 364px !important;
    min-height: 364px !important;
    overflow: hidden !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-flexible-months {
    min-height: 120px !important;
    padding: 0 1px 4px !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-flexible-months > button {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-flexible-months > button > strong {
    display: block !important;
    margin-top: 4px !important;
    color: #222 !important;
    font-size: 15px !important;
    line-height: 1.05 !important;
    font-weight: 650 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-flexible-months > button > small {
    display: block !important;
    color: #222 !important;
    font-size: 13px !important;
    line-height: 1 !important;
    font-weight: 450 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-month-calendar {
    box-sizing: border-box !important;
    position: relative !important;
    display: block !important;
    width: 30px !important;
    height: 28px !important;
    border: 2px solid #717171 !important;
    border-radius: 4px !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-month-calendar::before {
    content: "" !important;
    position: absolute !important;
    left: -2px !important;
    right: -2px !important;
    top: 6px !important;
    height: 2px !important;
    background: #717171 !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-month-calendar > i {
    position: absolute !important;
    top: -5px !important;
    width: 2px !important;
    height: 7px !important;
    border-radius: 2px !important;
    background: #717171 !important;
  }
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-month-calendar > i:first-child { left: 6px !important; }
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-month-calendar > i:nth-child(2) { right: 6px !important; }
  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search .apd15-month-calendar > b { display: none !important; }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open #apd5-search [data-apd-flex-month]:is(.is-active,[aria-pressed="true"]) .apd15-month-calendar {
    border-color: #222 !important;
  }

  /* Experiences/Services use the exact same gray bridge under the endpoint circles as Alojamientos. */
  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is(.apd380-context-experiences,.apd380-context-services)
  .apd5-calendar-days > button.is-start:not(.is-end)::before,
  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is(.apd380-context-experiences,.apd380-context-services)
  .apd5-calendar-days > button.is-end:not(.is-start)::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    bottom: 0 !important;
    z-index: -2 !important;
    width: 56% !important;
    background: #f1f1f1 !important;
  }
  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is(.apd380-context-experiences,.apd380-context-services)
  .apd5-calendar-days > button.is-start:not(.is-end)::before { right: -4px !important; }
  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is(.apd380-context-experiences,.apd380-context-services)
  .apd5-calendar-days > button.is-end:not(.is-start)::before { left: -4px !important; }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is(.apd380-context-experiences,.apd380-context-services)[data-active-panel="dates"] > .apd5-date-panel {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding-bottom: 18px !important;
    border-radius: 29px !important;
    overflow: hidden !important;
  }

  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is(.apd380-context-experiences,.apd380-context-services)[data-active-panel="dates"] #apd5-calendar-months {
    height: 306px !important;
    min-height: 306px !important;
    max-height: 306px !important;
  }
}

/* APD404 final range bridge override: wins the retired single-day rule without touching stays. */
@media (max-width: 767px) {
  html body.apd380-mobile-search-canonical.apd186-search-modal-open
  #apd5-search:is([data-apd370-context="experiences"],[data-apd370-context="services"])
  .apd5-calendar-days > button.is-in-range:not(.is-start):not(.is-end):not(.is-selected) {
    background: #f1f1f1 !important;
    color: #222 !important;
    border-radius: 0 !important;
  }
}
