/* ===================================== */
/* CALENDAR RANGE + LOADING STATES      */
/* ===================================== */
.date-trigger{
  cursor:pointer;
  transition:background-color 0.2s ease;
}

.date-trigger:hover{
  background:#faf7f1;
}

.date-trigger .search-title,
.date-trigger .search-sub,
.date-trigger .search-icon{
  pointer-events:none;
}

.calendar-loading-overlay{
  position:fixed;
  inset:0;
  z-index:2300;
  background:rgba(14, 20, 31, 0.45);
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:14px;
}

.calendar-loading-overlay.active{
  display:flex;
}

.calendar-loading-spinner{
  width:54px;
  height:54px;
  border-radius:50%;
  border:4px solid rgba(255,255,255,0.35);
  border-top-color:#d8be6f;
  animation:calendarSpin 0.9s linear infinite;
}

.calendar-loading-text{
  font-family:'Poppins', sans-serif;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:2px;
  color:#ffffff;
  font-weight:600;
}

@keyframes calendarSpin{
  to{
    transform:rotate(360deg);
  }
}

/* ===== Daterangepicker visual polish ===== */
.daterangepicker,
.daterangepicker.calendar-hotel-look{
  border:1px solid #ffffff;
  border-radius:0;
  box-shadow:0 24px 50px rgba(15, 25, 38, 0.12);
  font-family:'Poppins', sans-serif;
  padding:0;
  background:#ffffff;
  width:auto;
  max-width:none;
  z-index:2405 !important;
  position:absolute !important;
  box-sizing:border-box !important;
}

.daterangepicker:before,
.daterangepicker:after,
.daterangepicker.opensleft:before,
.daterangepicker.opensleft:after,
.daterangepicker.openscenter:before,
.daterangepicker.openscenter:after,
.daterangepicker.opensright:before,
.daterangepicker.opensright:after{
  display:none !important;
}

.daterangepicker{
  margin:0 !important;
  transform:none !important;
}

.daterangepicker .ranges{
  display:none;
}

.daterangepicker.calendar-hotel-look .calendar-currency-legend{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px 4px;
  color:#4b5362;
  flex-wrap:wrap;
}

.daterangepicker.calendar-hotel-look .calendar-currency-label{
  font-family:'Poppins', sans-serif;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1.3px;
  color:#6b7280;
}

.daterangepicker.calendar-hotel-look .calendar-currency-value{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:22px;
  padding:0 8px;
  border:1px solid #d7ccb8;
  background:#fffaf1;
  font-family:'Poppins', sans-serif;
  font-size:10px;
  font-weight:700;
  letter-spacing:1.1px;
  color:#1f2a3b;
}

.daterangepicker.calendar-hotel-look .calendar-currency-note{
  font-family:'Lora', serif;
  font-size:12px;
  color:#46505f;
  flex-basis:100%;
  line-height:1.35;
}


.daterangepicker.calendar-hotel-look .drp-calendar.left,
.daterangepicker.calendar-hotel-look .drp-calendar.right{
  max-width:50%;
  width:50%;
  padding:0 2px 2px;
}

.daterangepicker.calendar-hotel-look .calendar-table,
.daterangepicker.calendar-hotel-look .calendar-table table{
  background:#ffffff;
  border:none;
}


.daterangepicker.calendar-hotel-look .calendar-table th,
.daterangepicker.calendar-hotel-look .calendar-table td{
  font-family:'Poppins', sans-serif;
  width:38px;
  min-width:38px;
  max-width:38px;
  height:38px;
  min-height:38px;
  max-height:38px;
  line-height:38px;
  font-size:11px;
  border-radius:0;
  border:2px solid #ffffff;
  box-sizing:border-box;
  background-clip:padding-box;
  background:#ffffff;
}


.daterangepicker.calendar-hotel-look .calendar-table td{
  height:38px;
  min-height:38px;
  max-height:38px;
  padding:0;
  line-height:38px;
  vertical-align:middle;
}

.daterangepicker.calendar-hotel-look td.off,
.daterangepicker.calendar-hotel-look td.disabled{
  color:#b8bec7;
  background:#ffffff;
  border-color:#ffffff;
  opacity:1;
  visibility:visible;
  pointer-events:none;
  height:38px;
  min-height:38px;
  max-height:38px;
}

.daterangepicker.calendar-hotel-look td.off .calendar-day-rate,
.daterangepicker.calendar-hotel-look td.disabled .calendar-day-rate{
  display:none;
}

.daterangepicker.calendar-hotel-look td.off .calendar-day-number,
.daterangepicker.calendar-hotel-look td.disabled .calendar-day-number{
  display:block;
  font-size:14px;
  font-weight:600;
  line-height:1.1;
  color:#b8bec7;
}

.daterangepicker.calendar-hotel-look td.off:hover,
.daterangepicker.calendar-hotel-look td.disabled:hover{
  background:#ffffff;
}

.daterangepicker.calendar-hotel-look td.available,
.daterangepicker.calendar-hotel-look td.active,
.daterangepicker.calendar-hotel-look td.in-range,
.daterangepicker.calendar-hotel-look td.start-date,
.daterangepicker.calendar-hotel-look td.end-date{
  position:relative;
  text-align:center;
}

.daterangepicker.calendar-hotel-look td.available .calendar-day-meta,
.daterangepicker.calendar-hotel-look td.active .calendar-day-meta,
.daterangepicker.calendar-hotel-look td.in-range .calendar-day-meta,
.daterangepicker.calendar-hotel-look td.start-date .calendar-day-meta,
.daterangepicker.calendar-hotel-look td.end-date .calendar-day-meta{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:100%;
  line-height:1;
  pointer-events:none;
}

.daterangepicker.calendar-hotel-look td.available .calendar-day-number,
.daterangepicker.calendar-hotel-look td.active .calendar-day-number,
.daterangepicker.calendar-hotel-look td.in-range .calendar-day-number,
.daterangepicker.calendar-hotel-look td.start-date .calendar-day-number,
.daterangepicker.calendar-hotel-look td.end-date .calendar-day-number{
  display:block;
  font-size:13px;
  font-weight:700;
  line-height:1.1;
  pointer-events:none;
}

.daterangepicker.calendar-hotel-look td.available .calendar-day-rate,
.daterangepicker.calendar-hotel-look td.active .calendar-day-rate,
.daterangepicker.calendar-hotel-look td.in-range .calendar-day-rate,
.daterangepicker.calendar-hotel-look td.start-date .calendar-day-rate,
.daterangepicker.calendar-hotel-look td.end-date .calendar-day-rate{
  display:block;
  margin-top:3px;
  font-family:'Lora', serif;
  font-size:9px;
  font-weight:400;
  letter-spacing:0.2px;
  line-height:1.1;
  color:#111111;
  pointer-events:none;
}

.daterangepicker.calendar-hotel-look td .calendar-day-min-stay-badge{
  position:absolute;
  top:2px;
  left:2px;
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:1px 3px;
  border-radius:10px;
  border:1px solid rgba(89, 98, 112, 0.35);
  background:rgba(255, 255, 255, 0.86);
  font-family:'Poppins', sans-serif;
  font-size:8px;
  font-weight:700;
  line-height:1;
  color:#374151;
  pointer-events:none;
}

.daterangepicker.calendar-hotel-look td .calendar-day-min-stay-badge .bx{
  font-size:9px;
  line-height:1;
  color:#4b5563;
}

.daterangepicker.calendar-hotel-look td .calendar-day-min-stay-value{
  display:inline-block;
  min-width:6px;
  text-align:center;
}

.daterangepicker.calendar-hotel-look td.calendar-min-stay-warning{
  background:linear-gradient(0deg, rgba(214, 151, 72, 0.18), rgba(214, 151, 72, 0.18));
  box-shadow:inset 0 0 0 1px rgba(191, 124, 39, 0.36);
}

.daterangepicker.calendar-hotel-look td.calendar-min-stay-warning .calendar-day-number,
.daterangepicker.calendar-hotel-look td.calendar-min-stay-warning .calendar-day-rate{
  color:#6a4519;
}

.daterangepicker.calendar-hotel-look .calendar-min-stay-tooltip{
  position:absolute;
  z-index:420;
  pointer-events:none;
  background:#2d3440;
  color:#ffffff;
  border-radius:8px;
  padding:4px 7px;
  font-family:'Poppins', sans-serif;
  font-size:10px;
  line-height:1.2;
  white-space:nowrap;
  box-shadow:0 6px 18px rgba(0, 0, 0, 0.18);
}

.daterangepicker.calendar-hotel-look .calendar-min-stay-notice{
  position:absolute;
  left:12px;
  right:12px;
  bottom:56px;
  z-index:430;
  padding:9px 12px;
  border-radius:10px;
  border:1px solid rgba(178, 123, 40, 0.35);
  background:rgba(255, 248, 235, 0.98);
  color:#4f3412;
  font-family:'Poppins', sans-serif;
  font-size:11px;
  line-height:1.35;
  box-shadow:0 10px 24px rgba(56, 38, 13, 0.16);
}

.daterangepicker.calendar-hotel-look .calendar-day-rate.is-loading{
  color:transparent !important;
  min-height:12px;
}

.daterangepicker.calendar-hotel-look .calendar-day-rate.is-loading::before{
  content:'';
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:50%;
  border:1.5px solid rgba(17, 17, 17, 0.2);
  border-top-color:#111111;
  animation:calendarSpin 0.7s linear infinite;
}

.daterangepicker.calendar-hotel-look td.active .calendar-day-rate,
.daterangepicker.calendar-hotel-look td.in-range .calendar-day-rate,
.daterangepicker.calendar-hotel-look td.start-date .calendar-day-rate,
.daterangepicker.calendar-hotel-look td.end-date .calendar-day-rate{
  color:#111111;
}

.daterangepicker.calendar-hotel-look td.off,
.daterangepicker.calendar-hotel-look td.disabled{
  color:#b8bcc3;
  text-decoration:none;
}

.daterangepicker.calendar-hotel-look td.calendar-demo-blocked{
  color:#b3bac4;
  background:repeating-linear-gradient(
    -45deg,
    #ffffff,
    #ffffff 12px,
    #f5f6f8 12px,
    #f5f6f8 18px
  );
  border-color:#ffffff;
}

.daterangepicker.calendar-hotel-look td.calendar-channel-blocked,
.daterangepicker.calendar-hotel-look td.calendar-channel-blocked.disabled{
  position:relative;
  color:#6c2b2b;
  background:
    linear-gradient(135deg, rgba(184, 49, 49, 0.34) 0%, rgba(184, 49, 49, 0.34) 2px, transparent 2px, transparent 100%),
    repeating-linear-gradient(
      -45deg,
      #fff6f6,
      #fff6f6 8px,
      #f0d0d0 8px,
      #f0d0d0 14px
    );
  border-color:#ffffff;
  box-shadow:inset 0 0 0 1px #cc6767;
}

.daterangepicker.calendar-hotel-look td.calendar-channel-blocked .calendar-day-number,
.daterangepicker.calendar-hotel-look td.calendar-channel-blocked.disabled .calendar-day-number{
  color:#7a2525;
  font-weight:800;
  text-decoration:line-through;
  text-decoration-color:#b83333;
  text-decoration-thickness:2px;
}

.daterangepicker.calendar-hotel-look td.calendar-channel-blocked .calendar-day-rate,
.daterangepicker.calendar-hotel-look td.calendar-channel-blocked.disabled .calendar-day-rate,
.daterangepicker.calendar-hotel-look td.calendar-channel-blocked .calendar-day-min-stay-badge,
.daterangepicker.calendar-hotel-look td.calendar-channel-blocked.disabled .calendar-day-min-stay-badge{
  display:none;
}

.daterangepicker.calendar-hotel-look td.calendar-channel-blocked::after,
.daterangepicker.calendar-hotel-look td.calendar-channel-blocked.disabled::after{
  content:'✕';
  position:absolute;
  right:4px;
  top:2px;
  font-size:10px;
  line-height:1;
  color:#b83333;
  opacity:0.9;
  pointer-events:none;
}

.daterangepicker.calendar-hotel-look td.active,
.daterangepicker.calendar-hotel-look td.active:hover,
.daterangepicker.calendar-hotel-look td.start-date,
.daterangepicker.calendar-hotel-look td.end-date{
  background:#efe3bd;
  color:#1f2a3b;
  border-color:#ffffff;
}

.daterangepicker.calendar-hotel-look td.in-range{
  background:#efe3bd;
  opacity:1;
  color:#1f2a3b;
  border-color:#ffffff;
}

.daterangepicker.calendar-hotel-look td.in-range:hover,
.daterangepicker.calendar-hotel-look td.in-range.available:hover{
  background:#efe3bd;
  color:#1f2a3b;
}

.daterangepicker.calendar-hotel-look td.available:hover{
  background:#ffffff;
  border-color:#ffffff;
}


.daterangepicker.calendar-hotel-look .drp-buttons{
  border-top:none;
  padding:4px 6px 6px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  width:100%;
  box-sizing:border-box;
}


.daterangepicker.calendar-hotel-look .calendar-price-summary{
  margin-right:auto;
  text-align:right;
  font-family:'Poppins', sans-serif;
  font-size:11px;
  color:#2d3440;
  font-weight:600;
  flex-shrink:0;
}


.daterangepicker.calendar-hotel-look .drp-buttons .btn{
  border-radius:0;
  font-family:'Poppins', sans-serif;
  text-transform:uppercase;
  letter-spacing:1px;
  font-size:10px;
  font-weight:700;
  padding:4px 8px;
  min-width:60px;
}

.daterangepicker.calendar-hotel-look .drp-buttons .applyBtn{
  background:#d8be6f;
  border:1px solid #d8be6f;
  color:#1e2430;
}

.daterangepicker.calendar-hotel-look .drp-buttons .cancelBtn{
  background:transparent;
  border:1px solid #cfc8bb;
  color:#1f2a3b;
}

.daterangepicker.calendar-hotel-look .drp-buttons .btn:hover{
  filter:brightness(0.98);
}

/* Mobile embedded calendar: sin botones internos Buscar/Cancelar */
.daterangepicker.is-mobile-embedded .drp-buttons,
.daterangepicker.calendar-hotel-look.is-mobile-embedded .drp-buttons{
  display:none !important;
}

@media (max-width: 1180px){
  .daterangepicker,
  .daterangepicker.calendar-hotel-look{
    width:auto;
    max-width:none;
  }

  .daterangepicker.calendar-hotel-look .drp-calendar.left,
  .daterangepicker.calendar-hotel-look .drp-calendar.right{
    width:100%;
    max-width:100%;
    padding:0 14px 12px;
  }

  .daterangepicker.calendar-hotel-look th.month{
    font-size:24px;
  }

  .daterangepicker.calendar-hotel-look td.available{
    font-size:16px;
  }

  .daterangepicker.calendar-hotel-look .drp-buttons .btn{
    font-size:12px;
  }

  .daterangepicker.calendar-hotel-look .drp-buttons{
    flex-wrap:wrap;
  }

  .daterangepicker.calendar-hotel-look .calendar-price-summary{
    width:100%;
    text-align:left;
    margin-right:0;
  }
}

@media (max-width: 1400px){
  .daterangepicker,
  .daterangepicker.calendar-hotel-look{
    position:fixed !important;
    top:12px !important;
    left:10px !important;
    right:10px !important;
    width:auto !important;
    max-width:calc(100vw - 20px) !important;
    max-height:calc(100vh - 24px);
    overflow:auto;
    border-color:#d5cec1;
    z-index:2415 !important;
  }

  .daterangepicker.calendar-hotel-look .drp-calendar.left,
  .daterangepicker.calendar-hotel-look .drp-calendar.right{
    width:100%;
    max-width:100%;
    padding:0 8px 8px;
  }

  .daterangepicker.calendar-hotel-look .drp-calendar.right{
    display:none !important;
  }

  .daterangepicker.calendar-hotel-look th.month{
    text-align:center;
    font-size:28px;
    text-transform:none;
    letter-spacing:0;
    padding-top:14px;
  }

  .daterangepicker.calendar-hotel-look .calendar-table th,
  .daterangepicker.calendar-hotel-look .calendar-table td,
  .daterangepicker.calendar-hotel-look .drp-calendar.left .calendar-table th,
  .daterangepicker.calendar-hotel-look .drp-calendar.left .calendar-table td{
    width:calc((100vw - 80px) / 7);
    min-width:42px;
    max-width:56px;
    font-size:13px;
  }

  .daterangepicker.calendar-hotel-look .calendar-table td{
    height:52px;
    min-height:52px;
    padding:3px 0;
  }

  .daterangepicker.calendar-hotel-look .calendar-currency-legend{
    display:none;
  }

  .daterangepicker.calendar-hotel-look .drp-buttons{
    border-top:1px solid #e8e2d7;
    padding:10px;
    gap:8px;
    justify-content:stretch;
  }

  .daterangepicker.calendar-hotel-look .calendar-price-summary{
    order:3;
    width:100%;
    font-size:14px;
  }

  .daterangepicker.calendar-hotel-look .drp-buttons .btn{
    flex:1 1 auto;
    min-width:0;
  }

  .daterangepicker.calendar-hotel-look td .calendar-day-min-stay-badge{
    top:3px;
    left:3px;
    gap:1px;
    padding:1px 2px;
    border-radius:8px;
    font-size:7px;
  }

  .daterangepicker.calendar-hotel-look td .calendar-day-min-stay-badge .bx{
    font-size:8px;
  }

  .daterangepicker.calendar-hotel-look td .calendar-day-min-stay-value{
    min-width:5px;
  }

  .daterangepicker.calendar-hotel-look .calendar-min-stay-tooltip{
    font-size:9px;
    padding:4px 6px;
  }

  .daterangepicker.calendar-hotel-look .calendar-min-stay-notice{
    left:10px;
    right:10px;
    bottom:10px;
    font-size:10px;
  }
}

@media (max-width: 640px){
  .daterangepicker.calendar-hotel-look td .calendar-day-min-stay-badge{
    top:2px;
    left:2px;
    padding:1px 2px;
    border-width:1px;
  }

  .daterangepicker.calendar-hotel-look td .calendar-day-min-stay-badge .bx{
    font-size:7px;
  }
}

/* ===== Simulated room reload ===== */
.room-card{
  position:relative;
}

.room-card.is-reloading{
  pointer-events:none;
}

.room-card.is-reloading::after{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(255,255,255,0.64);
  z-index:20;
}

.room-card.is-reloading::before{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:44px;
  height:44px;
  margin-top:-22px;
  margin-left:-22px;
  border-radius:50%;
  border:4px solid rgba(31, 42, 59, 0.25);
  border-top-color:#b8963a;
  animation:calendarSpin 0.9s linear infinite;
  z-index:21;
}

#roomCardContainer.is-reloading{
  pointer-events:none;
}

#roomCardContainer.is-reloading::after{
  content:'';
  position:absolute;
  inset:0;
  background:rgba(255,255,255,0.64);
  z-index:20;
}

#roomCardContainer.is-reloading::before{
  content:'';
  position:absolute;
  top:50%;
  left:50%;
  width:44px;
  height:44px;
  margin-top:-22px;
  margin-left:-22px;
  border-radius:50%;
  border:4px solid rgba(31, 42, 59, 0.25);
  border-top-color:#b8963a;
  animation:calendarSpin 0.9s linear infinite;
  z-index:21;
}

/* ===== Calendar error overlay ===== */
.daterangepicker.calendar-hotel-look.has-calendar-error{
  pointer-events:none;
}

.daterangepicker.calendar-hotel-look .calendar-error-overlay{
  position:absolute;
  inset:0;
  z-index:500;
  background:rgba(244, 241, 235, 0.96);
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:inherit;
  pointer-events:all;
}

.daterangepicker.calendar-hotel-look .calendar-error-content{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:28px 32px;
  text-align:center;
  max-width:340px;
}

.daterangepicker.calendar-hotel-look .calendar-error-icon{
  font-size:36px;
  line-height:1;
  color:#c0852a;
}

.daterangepicker.calendar-hotel-look .calendar-error-title{
  margin:0;
  font-family:'Poppins', sans-serif;
  font-size:14px;
  font-weight:700;
  color:#1f2a3b;
  letter-spacing:0.01em;
}

.daterangepicker.calendar-hotel-look .calendar-error-message{
  margin:0;
  font-family:'Poppins', sans-serif;
  font-size:12px;
  color:#5a6370;
  line-height:1.55;
}

.daterangepicker.calendar-hotel-look .calendar-error-retry-btn{
  margin-top:4px;
  padding:8px 20px;
  background:#d8be6f;
  border:none;
  color:#1e2430;
  font-family:'Poppins', sans-serif;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
  cursor:pointer;
  transition:filter 0.15s ease;
}

.daterangepicker.calendar-hotel-look .calendar-error-retry-btn:hover{
  filter:brightness(0.93);
}
