/* =========================
   Booking widget (theme layer)
   ========================= */
.igx-product-booking > .wpb_wrapper{
  background-color:#ec6225;
  color:black;
  font-size:larger;
  padding:20px;
  border-radius:13px;
}
.igx-product-booking > .wpb_wrapper > div > .bpr-field{ margin-bottom:20px; }
.igx-product-booking > .wpb_wrapper > div > .bpr-field > label{ color:#fff; }
.igx-product-booking > .wpb_wrapper > div > .bpr-field > input{ width:100%; }
.igx-product-booking > .wpb_wrapper > div > .bpr-guests > label{ color:#fff; }
.igx-product-booking .bpr-addtocart button{
  width:100%;
  margin-top:20px;
  background-color:#19b1bc;
}
.bpr-nights { display:none!important }
/* =========================
   Booking widget (plugin)
   ========================= */
.bpr-wrap{
  --bpr-border:rgba(0,0,0,.08);
  --bpr-muted:#6b7280;
  --bpr-accent:#19b1bc;
  --bpr-badge:#f3f4f6;
  --bpr-badge-text:#374151;
  --bpr-danger:#b91c1c;
  --bpr-info:#065f46;
  border:1px solid var(--bpr-border);
  padding:16px;
  border-radius:12px;
}
.bpr-field label{
  display:block;
  font-weight:700;
  margin-bottom:6px;
}
.bpr-field input.bpr-range{
  width:100%;
  border:1px solid #e5e7eb;
  border-radius:10px;
  padding:10px 12px;
  background:#fff;
}
.bpr-field input.bpr-range:focus{
  outline:none;
  border-color:var(--bpr-accent);
  box-shadow:0 0 0 3px rgba(25,177,188,.15);
}

/* Guests steppers */
.bpr-stepper{
  display:flex;
  align-items:center;
  gap:8px;
  margin:8px 0;
}
.bpr-stepper .bpr-title{ flex:1; }
.bpr-stepper .bpr-dec,
.bpr-stepper .bpr-inc{
  width:32px;height:32px;
  border:1px solid #ddd;background:#fff;border-radius:8px;
  font-weight:700; line-height:1; display:inline-flex;align-items:center;justify-content:center;
  transition:transform .06s ease, background .15s ease, border-color .15s ease;
}
.bpr-stepper .bpr-dec:hover,
.bpr-stepper .bpr-inc:hover{ background:#f9fafb; border-color:#cfd4dc; }
.bpr-stepper .bpr-dec:active,
.bpr-stepper .bpr-inc:active{ transform:scale(.96); }
.bpr-stepper .bpr-dec:disabled,
.bpr-stepper .bpr-inc:disabled{ opacity:.4; cursor:not-allowed; }
.bpr-stepper .bpr-count{
  width:64px;text-align:center;border:1px solid #ddd;border-radius:8px;height:32px;
  font-variant-numeric:tabular-nums; background:#fff;
}

/* Teaser: Starting from */
.bpr-teaser{
  margin:10px 0 4px;
  color:#111;
  font-weight:700;
}
.bpr-teaser small{
  display:block;
  color:var(--bpr-muted);
  font-weight:400;
  margin-top:2px;
}
.bpr-teaser .bpr-teaser-price{
  font-variant-numeric:tabular-nums;
}

/* Quote block */
.bpr-quote{ margin-top:12px; }
.bpr-night{
  display:grid;
  grid-template-columns: 1fr minmax(90px,1fr) minmax(110px,auto);
  gap:8px;
  padding:8px 0;
  border-bottom:1px dashed var(--bpr-border);
  align-items:center;
}
.bpr-night:last-child{ border-bottom:0; }
.bpr-night:nth-child(odd){ background:rgba(255,255,255,.06); border-radius:6px; }
.bpr-night > span:nth-child(2){
  color:#111;
}
.bpr-night > span:last-child{
  text-align:right;
  font-variant-numeric:tabular-nums;
}

/* Rule badge helper (if you output a <span class="bpr-badge">Weekend</span>) */
.bpr-badge{
  display:inline-block;
  padding:.15rem .5rem;
  background:var(--bpr-badge);
  color:var(--bpr-badge-text);
  border-radius:999px;
  font-size:.85em;
  line-height:1.2;
}

/* Summary area */
.bpr-summary{
  margin-top:10px;
  display:grid;
  gap:6px;
}
.bpr-summary .bpr-when{
  margin-bottom:6px;
  color:#111;
}
.bpr-summary .bpr-when small{
  color:var(--bpr-muted);
  font-style:italic;
}
.bpr-summary strong{ color:#111; }

/* Confirmation notes */
.bpr-confirm{
  display:none;
  margin-top:4px;
  padding:8px 10px;
  background:#ecfeff;
  border:1px solid #a5f3fc;
  color:#0e7490;
  border-radius:8px;
}
.bpr-confirm-note{
  margin-top:6px;
  font-size:.92em;
  color:#fff!important;
}

/* Add-to-cart button */
.bpr-addtocart button{
  width:100%;
  margin-top:14px;
  background:var(--bpr-accent);
  border-color:var(--bpr-accent);
  border-radius:10px;
  font-weight:800;
  letter-spacing:.02em;
}
.bpr-addtocart button:hover{ filter:brightness(.95); }
.bpr-addtocart button:disabled{
  opacity:.6; cursor:not-allowed;
}

/* Inline guest errors */
.bpr-guest-error{ color:#d33;margin:6px 0 0 0;font-size:.9em; }

/* =========================
   Availability-only calendar (Litepicker)
   ========================= */

/* Wrapper */
.bpr-avail-wrap{
  border:1px solid var(--bpr-border);
  padding:16px;
  border-radius:12px;
  width:100%;
  background:#fff;
}

/* Litepicker base */
.bpr-avail-wrap .litepicker{
  display:block !important;
  width:100% !important;
  font-size:1.2rem;
}

/* Months: 1 col mobile, 2 cols desktop */
.bpr-avail-wrap .litepicker .container__months{
  width:100% !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:16px;
}
@media (min-width:768px){
  .bpr-avail-wrap .litepicker .container__months{
    grid-template-columns:1fr 1fr !important;
  }
}

/* Allow months to stretch */
.bpr-avail-wrap .litepicker .month-item{
  width:100% !important;
  max-width:none !important;
}

/* Show BOTH arrows */
.bpr-avail-wrap .litepicker .button-previous-month{
  display:inline-flex !important;
}

/* Days grid */
.bpr-avail-wrap .litepicker .container__days{
  display:grid !important;
  grid-template-columns:repeat(7,1fr) !important;
  gap:6px;
  width:100%;
}

/* Day cells */
.bpr-avail-wrap .litepicker .day-item{
  display:flex;align-items:center;justify-content:center;
  height:44px;font-size:16px;border-radius:8px;
}
.bpr-avail-wrap .litepicker .day-item.is-locked{
  opacity:.45; cursor:not-allowed;
}
.bpr-avail-wrap .litepicker .day-item.is-start-date,
.bpr-avail-wrap .litepicker .day-item.is-end-date{
  background:#19b1bc !important; color:#fff !important;
}
.bpr-avail-wrap .litepicker .day-item.is-in-range{
  background:#e6f7f8 !important;
}

/* Larger on desktop */
@media (min-width:768px){
  .bpr-avail-wrap .litepicker{ min-width:500px !important; }
  .bpr-avail-wrap .litepicker .day-item{ height:52px; font-size:18px; }
}

/* Mobile tweaks */
@media (max-width:767px){
  .bpr-avail-wrap .litepicker{ min-width:0 !important; width:100% !important; }
  .bpr-avail-wrap .litepicker .container__days{ gap:4px; }
  .bpr-avail-wrap .litepicker .day-item{ height:42px; font-size:16px; }
}

/* Align weekday header with day grid */
.bpr-avail-wrap .litepicker .month-item-weekdays-row{
  display:grid !important;
  grid-template-columns:repeat(7,1fr) !important;
  gap:6px; width:100%; padding-bottom:6px;
}
.bpr-avail-wrap .litepicker .month-item-weekdays-row > div{
  text-align:center;
}

/* =========================================================
   Mobile Sticky Booking CTA (added)
   ========================================================= */

/* Base container (hidden by default) */
.bpr-sticky-cta{
  position:fixed;
  left:0; right:0; bottom:0;
  z-index:9999;
  transform:translateY(100%);
  transition:transform .25s ease, opacity .2s ease;
  opacity:0;
  background:#ffffff;
  border-top:1px solid var(--bpr-border);
  box-shadow:0 -8px 24px rgba(0,0,0,.12);
  padding:10px 12px calc(10px + env(safe-area-inset-bottom, 0)) 12px;
}

/* Visible state (toggled by JS) */
.bpr-sticky-cta.show{
  transform:translateY(0);
  opacity:1;
  background-color:#ec6225;
}

/* Layout */
.bpr-sticky-row{
  display:grid;
  grid-template-columns: 1fr minmax(120px, 42%);
  gap:12px;
  align-items:center;
}

.bpr-sticky-body{
  min-width:0; /* enable text truncation */
}

.bpr-sticky-title{
  font-size:.85rem;
  color:#000;
  line-height:1.1;
  margin-bottom:2px;
}

.bpr-sticky-value{
  font-weight:800;
  color:#fff;
  display:flex;
  align-items:baseline;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  flex-direction: column;
}

.bpr-sticky-price{ font-variant-numeric:tabular-nums; }
.bpr-sticky-date{ color:var(--bpr-muted); font-size:.95em; }

/* When dates are selected, you can show this line instead of the teaser */
.bpr-sticky-selected{
  margin-top:2px;
  color:#fff;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* CTA button */
.bpr-sticky-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:44px;
  border-radius:10px;
  border:1px solid var(--bpr-accent);
  background:#19b1bc;
  color:#fff;
  font-weight:800;
  letter-spacing:.02em;
  line-height: 14px;
}
.bpr-sticky-action:active{ transform:translateY(1px); }

/* Variant when require_confirmation === 'yes' (toggle .is-request on the button) */
.bpr-sticky-action.is-request{
  border-color:#ec6225;
  background:#19b1bc;
}

/* Only show on mobile */
@media (min-width:768px){
  .bpr-sticky-cta{ display:none; }
}
/* =========================
   Residential widget (matching vacational style)
   ========================= */

/* Move-in date input -- reuse vacational range styling */
.bpr-residential-wrap .bpr-res-date{
  width:100%;
  border:1px solid #e5e7eb;
  border-radius:10px;
  padding:10px 12px;
  background:#fff;
}
.bpr-residential-wrap .bpr-res-date:focus{
  outline:none;
  border-color:var(--bpr-accent);
  box-shadow:0 0 0 3px rgba(25,177,188,.15);
}

/* Teaser -- shared class .bpr-teaser handles most styling */
.bpr-res-teaser small{
  display:block;
  color:var(--bpr-muted);
  font-weight:400;
  margin-top:2px;
  font-size:.9em;
}

/* Error box */
.bpr-res-error{
  color:#d33;
  margin:6px 0;
  font-size:.9em;
  padding:8px 10px;
  background:#fef2f2;
  border:1px solid #fecaca;
  border-radius:8px;
}

/* Quote details -- use the same bpr-night grid as vacational */
.bpr-res-details{
  margin-bottom:4px;
}

/* Add-to-cart button -- reuse vacational styling via shared .bpr-addtocart class */
.bpr-res-addtocart button{
  width:100%;
  margin-top:14px;
  background:var(--bpr-accent);
  border-color:var(--bpr-accent);
  border-radius:10px;
  font-weight:800;
  letter-spacing:.02em;
}
.bpr-res-addtocart button:hover{ filter:brightness(.95); }
.bpr-res-addtocart button:disabled{
  opacity:.6; cursor:not-allowed;
}

/* Confirmation note for residential */
.bpr-res-addtocart .bpr-confirm-note{
  margin-top:6px;
  font-size:.92em;
  color:#fff!important;
}

/* =========================
   Residential Rental Terms Card
   ========================= */
.bpr-rental-terms{
  border:1px solid var(--bpr-border, rgba(0,0,0,.08));
  border-radius:16px;
  padding:28px 24px;
  background:#fff;
}

.bpr-rt-heading{
  margin:0 0 20px;
  font-size:1.35rem;
  font-weight:800;
  color:#111;
  letter-spacing:-.01em;
}

/* Card grid */
.bpr-rt-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:14px;
}
@media (min-width:768px){
  .bpr-rt-grid{ grid-template-columns:repeat(3, 1fr); }
}

/* Individual card */
.bpr-rt-card{
  background:#f9fafb;
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:6px;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.bpr-rt-card:hover{
  border-color:#d1d5db;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
}

/* Highlighted card (monthly rent) */
.bpr-rt-highlight{
  background:linear-gradient(135deg, #ecfeff 0%, #f0fdfa 100%);
  border-color:#a5f3fc;
}
.bpr-rt-highlight .bpr-rt-value{
  color:#0e7490;
}

/* Icon */
.bpr-rt-icon{
  color:var(--bpr-accent, #19b1bc);
  line-height:1;
}

/* Label */
.bpr-rt-label{
  font-size:.82rem;
  color:var(--bpr-muted, #6b7280);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.04em;
}

/* Value */
.bpr-rt-value{
  font-size:1.1rem;
  font-weight:700;
  color:#111;
  font-variant-numeric:tabular-nums;
}

/* CTA button */
.bpr-rt-cta{
  margin-top:20px;
  text-align:center;
}
.bpr-rt-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:380px;
  height:48px;
  border-radius:12px;
  background:var(--bpr-accent, #19b1bc);
  color:#fff !important;
  font-weight:800;
  font-size:1rem;
  letter-spacing:.02em;
  text-decoration:none !important;
  transition:filter .15s ease, transform .06s ease;
}
.bpr-rt-btn:hover{
  filter:brightness(.92);
  color:#fff !important;
}
.bpr-rt-btn:active{
  transform:translateY(1px);
}

/* =========================================================================
   Theme overrides — Rentz
   Swap the box background to the secondary colour and buttons to the
   primary colour, and polish the alert boxes.
   ========================================================================= */

/* Box background → secondary colour */
.igx-product-booking > .wpb_wrapper {
  background-color: var(--porto-secondary-color, #19b1bc) !important;
}

/* Add-to-cart buttons → primary colour */
.igx-product-booking .bpr-addtocart button,
.igx-product-booking .bpr-res-addtocart button,
.bpr-addtocart button,
.bpr-res-addtocart button {
  background: var(--porto-primary-color, #ec6225) !important;
  background-color: var(--porto-primary-color, #ec6225) !important;
  border-color: var(--porto-primary-color, #ec6225) !important;
  color: #ffffff !important;
  text-transform: uppercase;
  transition: filter .15s ease, transform .06s ease;
}
.igx-product-booking .bpr-addtocart button:hover,
.igx-product-booking .bpr-res-addtocart button:hover,
.bpr-addtocart button:hover,
.bpr-res-addtocart button:hover {
  filter: brightness(.92) !important;
  transform: translateY(-1px);
}
.igx-product-booking .bpr-addtocart button:disabled,
.igx-product-booking .bpr-res-addtocart button:disabled {
  background: rgba(255,255,255,.25) !important;
  border-color: rgba(255,255,255,.3) !important;
  color: #ffffff !important;
  opacity: .85;
  filter: none !important;
  transform: none !important;
}

/* Stepper +/- buttons: keep contrast on the new coloured background */
.igx-product-booking .bpr-stepper .bpr-inc,
.igx-product-booking .bpr-stepper .bpr-dec {
  background: #ffffff !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  color: var(--porto-primary-color, #ec6225) !important;
  font-weight: 700;
}
.igx-product-booking .bpr-stepper .bpr-inc:hover,
.igx-product-booking .bpr-stepper .bpr-dec:hover {
  background: #f8fafc !important;
}
.igx-product-booking .bpr-stepper .bpr-dec:disabled {
  background: rgba(255,255,255,.55) !important;
  color: rgba(0,0,0,.25) !important;
  cursor: not-allowed;
}

/* Alerts / warnings inside the reservation box ----------------------------- */
.igx-product-booking .bpr-guest-error,
.igx-product-booking .bpr-res-error,
.igx-product-booking .bpr-error,
.igx-product-booking .bpr-warning {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 10px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(185, 28, 28, .25) !important;
  color: #b91c1c !important;
  font-size: .9em;
  line-height: 1.35;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.igx-product-booking .bpr-guest-error::before,
.igx-product-booking .bpr-res-error::before,
.igx-product-booking .bpr-error::before,
.igx-product-booking .bpr-warning::before {
  content: "!";
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #b91c1c;
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  line-height: 1;
}

/* Info / confirmation notes (white text on the new background) */
.igx-product-booking .bpr-confirm-note {
  display: block;
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(255,255,255,.15);
  color: #ffffff !important;
  font-size: .9em;
}

/* Inputs on the coloured background */
.igx-product-booking > .wpb_wrapper .bpr-field input,
.igx-product-booking > .wpb_wrapper .bpr-stepper .bpr-val {
  background: #ffffff !important;
  border: 1px solid rgba(0,0,0,.08) !important;
}
