/* ==========================================================================
   COMPLETE COMPONENT ISOLATION AND THEME RESETS
   ========================================================================== */

/* Structural Layout Reset Wrapper */
.be-wrapper, 
.be-wrapper * {
    font-family: 'Poppins', sans-serif !important;
    box-sizing: border-box !important;
}

/* Clear external global rules applied by third-party theme assets */
.be-wrapper h3,
.be-wrapper h4,
.be-wrapper p,
.be-wrapper label,
.be-wrapper input,
.be-wrapper span,
.be-wrapper div,
.be-wrapper button {
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    width: auto !important;
}

/* Master Container Card Block - TAKES FULL DYNAMIC THEME WIDTH */
.be-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    background: #f7f7f7 !important;
    padding: 16px !important;
    border-radius: 12px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important; /* General consistent component gap */
}

/* ==========================================================================
   DATE MATRIX CONTROLS
   ========================================================================== */
.be-wrapper .be-date-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin-bottom: 0px !important; /* Tightened up base gap */
    width: 100% !important;
}

.be-wrapper .be-date-input-container {
    flex: 1 !important;
    min-width: 140px !important;
    background: #0f5c5c !important;
    border-radius: 8px !important;
    padding: 14px 16px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center;
}

.be-wrapper .be-date-field-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
}

.be-wrapper .be-date-field-wrapper input {
    font-size: 15px !important; /* Increased from 13px */
    font-weight: 600 !important;
    color: #ffffff !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    width: 100% !important;
    cursor: pointer !important;
    display: inline-block !important;
}

.be-wrapper .be-date-field-wrapper input::placeholder {
    color: rgba(255, 255, 255, 0.8) !important;
}

.be-wrapper .be-calendar-icon {
    display: flex !important;
    align-items: center !important;
    margin-left: 6px !important;
    flex-shrink: 0 !important;
}

.be-wrapper .be-calendar-icon svg {
    width: 18px !important; /* Balanced scale up */
    height: 18px !important;
}

/* ==========================================================================
   GAP FIX: DISCOUNT NOTE SYSTEM CARD
   ========================================================================== */
.be-wrapper .be-discount {
    background: #fff6db !important;
    border: 1px solid #ffe2a3 !important;
    font-size: 13px !important; /* Increased from 11px */
    padding: 6px 8px !important;
    border-radius: 6px !important;
    color: #b76e00 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    width: 100% !important;
    margin-bottom: -12px !important; /* Pulls the item below closer to fix the gap issue */
}

/* ==========================================================================
   STRICT UNIT ARRAYS AND COUNTER BUTTON HOOKS
   ========================================================================== */
.be-wrapper .be-main-unit-card {
    background: #ffffff !important;
    border-radius: 10px !important;
    padding: 8px 12px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    border: 1px solid #eeeeee !important;
    width: 100% !important;
}

.be-wrapper .be-unit-label {
    font-size: 14px !important; /* Increased from 12px */
    font-weight: 600 !important;
    color: #333333 !important;
}

.be-wrapper .be-counter-ui {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 4px !important;
    background: #eef1f3 !important;
    padding: 2px 4px !important;
    border-radius: 6px !important;
    width: 86px !important; /* Slightly padded for font space adjustments */
    height: 28px !important;
    min-width: 86px !important;
    max-width: 86px !important;
    flex-shrink: 0 !important;
}

.be-wrapper .be-counter-ui button {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
    background: #ffffff !important;
    border: 1.5px solid #0f5c5c !important;
    border-radius: 4px !important;
    color: #0f5c5c !important;
    font-weight: 700 !important;
    font-size: 13px !important; /* Increased from 11px */
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.be-wrapper .be-counter-ui input {
    width: 22px !important;
    height: 22px !important;
    text-align: center !important;
    border: none !important;
    background: transparent !important;
    font-weight: 600 !important;
    font-size: 13px !important; /* Increased from 11px */
    color: #333333 !important;
    outline: none !important;
    display: block !important;
}

/* ==========================================================================
   INNER COTTAGE CARDS - FIXED FOR SIDE-BY-SIDE SIDEWALK ALIGNMENTS
   ========================================================================== */
.be-wrapper .be-card {
    background: #ffffff !important;
    border-radius: 10px !important;
    padding: 12px !important;
    border: 1px solid #eeeeee !important;
    display: block !important;
    width: 100% !important;
}

.be-wrapper .be-card-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 10px !important;
    width: 100% !important;
}

.be-wrapper .be-card-header h4 {
    font-size: 15px !important; /* Increased from 13px */
    font-weight: 600 !important;
    color: #333333 !important;
}

.be-wrapper .be-capacity {
    font-size: 12px !important; /* Increased from 10px */
    padding: 2px 6px !important;
    background: #dff3f3 !important;
    border-radius: 4px !important;
    font-weight: 600 !important;
    color: #0f5c5c !important;
}

/* Target container for Adults & Children rows */
.be-wrapper .be-guest-row {
    display: flex !important;
    flex-direction: row !important; /* FORCES ADULTS AND CHILDREN SIDE-BY-SIDE LIKE image_a174e4.png */
    gap: 10px !important;
    width: 100% !important;
}

/* Individual Guest Pill Element Box */
.be-wrapper .be-guest {
    display: flex !important;
    flex-direction: row !important; 
    align-items: center !important;
    justify-content: space-between !important; 
    background: #fdfdfd !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    border: 1px solid #e2e8f0 !important;
    flex: 1 !important; /* Splits width evenly 50/50 inside horizontal row */
}

.be-wrapper .be-guest span {
    font-size: 15px !important; /* Increased from 13px */
    font-weight: 500 !important;
    color: #4a5568 !important;
}

/* ==========================================================================
   EXTRA SERVICES, OPTIONS & GENERAL CONTAINERS
   ========================================================================== */
.be-wrapper .be-box {
    background: #ffffff !important;
    padding: 10px !important;
    border-radius: 10px !important;
    border: 1px solid #eeeeee !important;
    display: block !important;
    width: 100% !important;
}

.be-wrapper .be-box h3 {
    font-size: 14px !important; /* Increased from 12px */
    font-weight: 600 !important;
    color: #111111 !important;
    margin-bottom: 6px !important;
}

.be-wrapper .be-checkbox-item,
.be-wrapper .be-radio-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    font-size: 13px !important; /* Increased from 11px */
    color: #333333 !important;
    margin-bottom: 6px !important;
    cursor: pointer !important;
    width: 100% !important;
}

.be-wrapper .be-checkbox-item input[type="checkbox"],
.be-wrapper .be-radio-item input[type="radio"] {
    width: 14px !important;
    height: 14px !important;
    margin: 0 !important;
    cursor: pointer !important;
    appearance: auto !important;
}

.be-wrapper .be-summary-row {
    display: flex !important;
    justify-content: space-between !important;
    font-size: 13px !important; /* Increased from 11px */
    color: #444444 !important;
    margin-bottom: 4px !important;
}

.be-wrapper .be-summary-row:last-child {
    margin-bottom: 0 !important;
}

/* ==========================================================================
   TOTAL CARDS AND TRANSACTION ACTIONS
   ========================================================================== */
.be-wrapper .be-total-card {
    background: #ffffff !important;
    border-radius: 10px !important;
    padding: 10px !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    border: 1px solid #ececec !important;
    width: 100% !important;
}

.be-wrapper .be-saved-pill {
    background: #e7f5ea !important;
    color: #1d8a4b !important;
    font-size: 12px !important; /* Increased from 10px */
    font-weight: 600 !important;
    padding: 3px 8px !important;
    border-radius: 999px !important;
}

.be-wrapper .be-total-right {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
}

.be-wrapper .be-total-top {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.be-wrapper .be-total-label {
    font-size: 13px !important; /* Increased from 11px */
    font-weight: 600 !important;
    color: #111111 !important;
}

.be-wrapper .be-grand-total {
    font-size: 18px !important; /* Increased from 16px */
    font-weight: 800 !important;
    color: #0f5c5c !important;
}

.be-wrapper .be-balance-row {
    font-size: 12px !important; /* Increased from 10px */
    color: #666666 !important;
    margin-top: 1px !important;
}

/* Primary Execution Button */
.be-wrapper #book-now {
    width: 100% !important;
    padding: 11px !important;
    background: #0f5c5c !important;
    color: #ffffff !important;
    border-radius: 6px !important;
    font-size: 15px !important; /* Increased from 13px */
    font-weight: 700 !important;
    cursor: pointer !important;
    text-align: center !important;
}

.be-wrapper #book-now:hover {
    background: #0c4b4b !important;
}

/* ==========================================================================
   MOBILE MEDIA BREAKPOINT RESPONSIVENESS
   ========================================================================== */
@media (max-width: 600px) {
    .be-wrapper .be-date-row {
        flex-wrap: wrap !important;
    }
    .be-wrapper .be-date-input-container {
        flex: 1 1 100% !important;
    }
    /* Fall back to stacked mode for narrow smartphone views so it doesn't break */
    .be-wrapper .be-guest-row {
        flex-direction: column !important; 
    }
}

/* ==========================================================================
   INCLUDED & EXCLUDED SHORTCODE CSS
   ========================================================================== */
   
   
   /* =========================
   WRAPPER (2 COLUMN GRID)
========================= */
.incl-excl-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    margin-top: 20px;
}

/* =========================
   CARD STYLE
========================= */
.incl-col {
    background: #f9f9f9;
    padding: 25px;
    border-radius: 16px;
    text-align: left;
}

/* =========================
   HEADER
========================= */
.incl-header {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* LEFT ALIGN */
    gap: 10px;
    margin-bottom: 20px;
    position: relative;
}

/* Small accent line */
.incl-header::after {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 0;
    width: 40px;
    height: 2px;
    background: var(--e-global-color-primary);
}

/* Header text */
.incl-header h3 {
    font-size: 16px;
    font-weight: 600;
    margin: 0;
    text-align: left;
}

/* Header icon box */
.header-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    font-size: 14px;
}

/* Include header color */
.includes .header-icon {
    border: 2px solid var(--e-global-color-primary);
    color: var(--e-global-color-primary);
}

/* Exclude header color */
.excludes .header-icon {
    border: 2px solid #e74c3c;
    color: #e74c3c;
}

/* =========================
   LIST
========================= */
.incl-col ul {
    list-style: none;
    padding: 0;
    margin-top: 20px;
}

/* List item */
.incl-col li {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* LEFT ALIGN */
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
    font-size: 14px;
    color: #555;
}

/* Remove last border */
.incl-col li:last-child {
    border-bottom: none;
}

/* =========================
   ICON (CIRCLE)
========================= */
.circle-icon {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    flex-shrink: 0; /* Prevent shifting */
}

/* Include icon */
.includes .circle-icon {
    background: rgba(0, 123, 255, 0.1);
    color: var(--e-global-color-primary);
}

/* Exclude icon */
.excludes .circle-icon {
    background: rgba(231, 76, 60, 0.1);
    color: #e74c3c;
}

/* =========================
   MOBILE RESPONSIVE
========================= */
@media (max-width: 768px) {
    .incl-excl-wrapper {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .incl-col {
        padding: 20px;
    }
}

/* Remove extra left spacing */
.incl-col ul {
    padding-left: 0 !important;
    margin-left: 0 !important;
}

/* Force list items to start from left edge */
.incl-col li {
    justify-content: flex-start !important;
    text-align: left !important;
    padding-left: 0 !important;
}

/* Fix icon alignment */
.circle-icon {
    margin-left: 0 !important;
}

/* Remove any center alignment from parent */
.incl-col {
    text-align: left !important;
}

/* Optional: tighten spacing like your reference */
.incl-col li {
    gap: 8px;
}


/* Grid Layout */
.amenities-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 20px;
}

/* Item Card */
.amenity-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 15px;
    background: #f9f9f9;
    border-radius: 12px;
    transition: 0.3s;
}

/* Hover effect */
.amenity-item:hover {
    background: #f1f1f1;
}

/* Icon */
.amenity-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(0, 123, 255, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: var(--e-global-color-primary);
}

/* Text */
.amenity-item span {
    font-size: 16px;
	font-weight: 600;
    color: #333;
}

/* Mobile */
@media (max-width: 768px) {
    .amenities-grid {
        grid-template-columns: repeat(1, 1fr);
    }
}
color: var(--e-global-color-primary);

/* Sonar Pulse Effect for Chaty (Exact for your structure) */

#chaty-widget-0 .chaty-channel-list {
  position: relative;
  z-index: 1;
}

#chaty-widget-0 .chaty-channel-list::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 52px;
  height: 52px;
  background: rgba(37, 211, 102, 0.4);
  border-radius: 50%;
  z-index: -1;
  animation: sonarWave 1.8s infinite;
}

/* Animation */
@keyframes sonarWave {
  0% {
    transform: scale(1);
    opacity: 0.6;
  }
  70% {
    transform: scale(2.2);
    opacity: 0;
  }
  100% {
    opacity: 0;
  }




   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

/* Extra services — compact premium cards, matched to the booking form theme */
.be-wrapper .be-services-list{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.be-wrapper .be-service-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 16px;padding:13px 14px;border:1px solid #dce7df;border-radius:12px;background:#fff;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.be-wrapper .be-service-item:has(.service:checked){border-color:#8ab6a0;background:#f7faf8;box-shadow:0 2px 8px rgba(32,77,61,.05)}
.be-wrapper .be-service-choice{display:flex;align-items:center;gap:10px;min-width:0;margin:0;color:#29483b;font-size:14px;font-weight:600;line-height:1.45;cursor:pointer}
.be-wrapper .be-service-choice input.service{flex:0 0 18px;width:18px;height:18px;margin:0;accent-color:#245846;cursor:pointer}
.be-wrapper .be-service-price{display:inline-block;margin-left:4px;color:#718177;font-size:12px;font-weight:500;white-space:normal}
.be-wrapper .be-service-guest-quantity{display:flex;align-items:center;gap:9px;margin:0;color:#52665c;font-size:12px;font-weight:600;white-space:nowrap}
.be-wrapper .be-service-guest-quantity input.service-guest-count{width:68px;min-width:0;height:36px;padding:6px 10px;border:1px solid #d4e1d8;border-radius:9px;background:#fff;color:#203d32;font:inherit;font-size:14px;text-align:center;box-shadow:0 1px 2px rgba(20,50,35,.03);transition:border-color .18s ease,box-shadow .18s ease}
.be-wrapper .be-service-guest-quantity input.service-guest-count:focus{outline:none;border-color:#2c6852;box-shadow:0 0 0 3px rgba(44,104,82,.12)}
.be-wrapper .be-service-guest-quantity input.service-guest-count:disabled{color:#89968e;background:#f2f5f3;border-color:#e2e9e4;opacity:1;cursor:not-allowed}
@media(max-width:520px){.be-wrapper .be-service-item{grid-template-columns:minmax(0,1fr);gap:10px;padding:12px}.be-wrapper .be-service-guest-quantity{width:100%;justify-content:space-between;padding-left:28px;white-space:normal}.be-wrapper .be-service-guest-quantity input.service-guest-count{width:76px}}


/* ==========================================================================
   Booking Engine — Extra Services premium layout override (v5.1.9)
   Scoped to the public booking form. Overrides legacy .be-checkbox-item rules.
   ========================================================================== */
.be-wrapper .be-box .be-services-list {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 9px !important;
    width: 100%;
}
.be-wrapper .be-box .be-services-list > .be-service-item {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    justify-content: initial !important;
    gap: 12px 16px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 12px 13px !important;
    border: 1px solid #dce7df !important;
    border-radius: 12px !important;
    background: #fff !important;
    color: #29483b !important;
    box-shadow: 0 1px 2px rgba(31, 67, 49, .025) !important;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease !important;
}
.be-wrapper .be-box .be-services-list > .be-service-item:has(input.service:checked) {
    border-color: #8ab6a0 !important;
    background: #f6faf7 !important;
    box-shadow: 0 2px 8px rgba(32, 77, 61, .06) !important;
}
.be-wrapper .be-box .be-service-item .be-service-choice {
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 9px !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #29483b !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
    cursor: pointer !important;
}
.be-wrapper .be-box .be-service-item .be-service-choice > input.service {
    box-sizing: border-box !important;
    display: block !important;
    flex: 0 0 17px !important;
    width: 17px !important;
    min-width: 17px !important;
    height: 17px !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    accent-color: #245846 !important;
    cursor: pointer !important;
}
.be-wrapper .be-box .be-service-item .be-service-choice > span {
    display: block !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
}
.be-wrapper .be-box .be-service-item .be-service-price {
    display: inline !important;
    margin: 0 0 0 3px !important;
    color: #718177 !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: inherit !important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity {
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 5px !important;
    min-width: 112px !important;
    margin: 0 !important;
    padding: 0 0 0 13px !important;
    border-left: 1px solid #e5ece7 !important;
    color: #52665c !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    white-space: normal !important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count {
    box-sizing: border-box !important;
    display: block !important;
    width: 74px !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 5px 9px !important;
    border: 1px solid #d4e1d8 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #203d32 !important;
    font: inherit !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    text-align: center !important;
    box-shadow: 0 1px 2px rgba(20, 50, 35, .04) !important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count:focus {
    outline: none !important;
    border-color: #2c6852 !important;
    box-shadow: 0 0 0 3px rgba(44, 104, 82, .12) !important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count:disabled {
    color: #89968e !important;
    background: #f2f5f3 !important;
    border-color: #e2e9e4 !important;
    opacity: 1 !important;
    cursor: not-allowed !important;
}
@media (max-width: 520px) {
    .be-wrapper .be-box .be-services-list > .be-service-item {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        padding: 12px !important;
    }
    .be-wrapper .be-box .be-service-item .be-service-choice {
        width: 100% !important;
    }
    .be-wrapper .be-box .be-service-item .be-service-guest-quantity {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 74px !important;
        align-items: center !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 9px 0 0 26px !important;
        border-left: 0 !important;
        border-top: 1px solid #e5ece7 !important;
        font-size: 11px !important;
    }
    .be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count {
        width: 74px !important;
        justify-self: end !important;
    }
}


/* Booking form Extra Services — refined service cards (v5.2.0) */
.be-wrapper .be-box .be-services-list{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;width:100%!important}
.be-wrapper .be-box .be-services-list>.be-service-item{box-sizing:border-box!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(145px,auto)!important;align-items:center!important;gap:16px!important;width:100%!important;margin:0!important;padding:15px 16px!important;border:1px solid #dfe8e1!important;border-radius:13px!important;background:#fff!important;color:#244537!important;box-shadow:0 1px 3px rgba(25,55,39,.035)!important;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease!important}
.be-wrapper .be-box .be-services-list>.be-service-item:has(.service:checked){border-color:#8bb5a0!important;background:#f6faf7!important;box-shadow:0 3px 10px rgba(36,88,70,.07)!important}
.be-wrapper .be-box .be-service-item .be-service-choice{box-sizing:border-box!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important;color:#203b30!important;font-size:14px!important;font-weight:600!important;line-height:1.35!important;cursor:pointer!important}
.be-wrapper .be-box .be-service-item .be-service-choice>input.service{appearance:auto!important;-webkit-appearance:checkbox!important;flex:0 0 19px!important;width:19px!important;height:19px!important;min-width:19px!important;margin:0!important;padding:0!important;accent-color:#245846!important;cursor:pointer!important}
.be-wrapper .be-box .be-service-item .be-service-info{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:5px!important;min-width:0!important}
.be-wrapper .be-box .be-service-item .be-service-name{display:block!important;min-width:0!important;color:#203b30!important;font-size:14px!important;font-weight:650!important;line-height:1.35!important;overflow-wrap:anywhere!important}
.be-wrapper .be-box .be-service-item .be-service-price{display:block!important;margin:0!important;color:#245846!important;font-size:13px!important;font-weight:600!important;line-height:1.35!important;white-space:normal!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity{box-sizing:border-box!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:7px!important;min-width:0!important;margin:0!important;padding:0 0 0 16px!important;border-left:1px solid #e2eae4!important;color:#64766b!important;font-size:11px!important;font-weight:600!important;line-height:1.3!important;white-space:normal!important}
.be-wrapper .be-box .be-service-item .be-service-quantity-label{display:block!important;color:#64766b!important;font-size:11px!important;font-weight:600!important;line-height:1.3!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count{box-sizing:border-box!important;display:block!important;width:100%!important;min-width:0!important;max-width:120px!important;height:38px!important;margin:0!important;padding:6px 10px!important;border:1px solid #d8e3da!important;border-radius:9px!important;background:#fff!important;color:#203b30!important;font:inherit!important;font-size:14px!important;font-weight:600!important;text-align:center!important;box-shadow:0 1px 2px rgba(20,50,35,.035)!important;transition:border-color .18s ease,box-shadow .18s ease!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count:focus{outline:none!important;border-color:#2c6852!important;box-shadow:0 0 0 3px rgba(44,104,82,.12)!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count:disabled{color:#8a978f!important;background:#f2f5f3!important;border-color:#e2e9e4!important;opacity:1!important;cursor:not-allowed!important}
@media(max-width:520px){.be-wrapper .be-box .be-services-list>.be-service-item{grid-template-columns:minmax(0,1fr)!important;gap:12px!important;padding:13px!important}.be-wrapper .be-box .be-service-item .be-service-choice{align-items:flex-start!important}.be-wrapper .be-box .be-service-item .be-service-choice>input.service{margin-top:2px!important}.be-wrapper .be-box .be-service-item .be-service-guest-quantity{display:grid!important;grid-template-columns:minmax(0,1fr) 82px!important;align-items:center!important;gap:12px!important;width:100%!important;padding:11px 0 0 31px!important;border-left:0!important;border-top:1px solid #e5ece7!important}.be-wrapper .be-box .be-service-item .be-service-quantity-label{font-size:12px!important}.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count{width:82px!important;max-width:82px!important;justify-self:end!important}}
@media(min-width:521px) and (max-width:760px){.be-wrapper .be-box .be-services-list>.be-service-item{grid-template-columns:minmax(0,1fr) minmax(125px,auto)!important;gap:12px!important;padding:13px!important}.be-wrapper .be-box .be-service-item .be-service-guest-quantity{padding-left:12px!important}}


/* Booking form Extra Services — reference-matched premium service card (v5.2.1) */
.be-wrapper .be-box .be-services-list{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;width:100%!important}
.be-wrapper .be-box .be-services-list>.be-service-item{box-sizing:border-box!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(170px,auto)!important;align-items:center!important;gap:18px!important;width:100%!important;margin:0!important;padding:18px 20px!important;border:1px solid #e2eaf4!important;border-radius:16px!important;background:#f7faff!important;color:#14243a!important;box-shadow:0 1px 2px rgba(23,43,77,.025)!important;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease!important}
.be-wrapper .be-box .be-services-list>.be-service-item:has(.service:checked){border-color:#b7d0c0!important;background:#f5faf6!important;box-shadow:0 3px 12px rgba(36,88,70,.07)!important}
.be-wrapper .be-box .be-service-item .be-service-choice{box-sizing:border-box!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:15px!important;width:100%!important;min-width:0!important;margin:0!important;padding:0!important;color:#14243a!important;font-size:15px!important;font-weight:600!important;line-height:1.4!important;cursor:pointer!important}
.be-wrapper .be-box .be-service-item .be-service-choice>input.service{appearance:auto!important;-webkit-appearance:checkbox!important;flex:0 0 20px!important;width:20px!important;height:20px!important;min-width:20px!important;margin:0!important;padding:0!important;accent-color:#245846!important;cursor:pointer!important}
.be-wrapper .be-box .be-service-item .be-service-info{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:6px!important;min-width:0!important}
.be-wrapper .be-box .be-service-item .be-service-name{display:block!important;min-width:0!important;color:#14243a!important;font-size:16px!important;font-weight:700!important;line-height:1.35!important;overflow-wrap:anywhere!important}
.be-wrapper .be-box .be-service-item .be-service-price{display:block!important;margin:0!important;color:#2563eb!important;font-size:14px!important;font-weight:600!important;line-height:1.4!important;white-space:normal!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity{box-sizing:border-box!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:center!important;gap:8px!important;min-width:0!important;margin:0!important;padding:0 0 0 18px!important;border-left:1px solid #e0e8f1!important;color:#64748b!important;font-size:12px!important;font-weight:600!important;line-height:1.35!important;white-space:normal!important}
.be-wrapper .be-box .be-service-item .be-service-quantity-label{display:block!important;color:#64748b!important;font-size:12px!important;font-weight:600!important;line-height:1.35!important}
.be-wrapper .be-box .be-service-quantity-control{box-sizing:border-box!important;display:grid!important;grid-template-columns:40px minmax(28px,1fr) 40px!important;align-items:center!important;gap:8px!important;width:100%!important;max-width:230px!important;min-height:46px!important;padding:5px!important;border:1px solid #dce5f0!important;border-radius:13px!important;background:#fff!important;box-shadow:0 1px 2px rgba(20,40,70,.035)!important}
.be-wrapper .be-box .be-service-quantity-control button{box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;width:40px!important;height:36px!important;margin:0!important;padding:0!important;border:0!important;border-radius:10px!important;background:#eff5ff!important;color:#2563eb!important;font-size:23px!important;font-weight:500!important;line-height:1!important;box-shadow:none!important;cursor:pointer!important;transition:background .15s ease,color .15s ease!important}
.be-wrapper .be-box .be-service-quantity-control button:hover:not(:disabled){background:#e0ebff!important;color:#174cc7!important}
.be-wrapper .be-box .be-service-quantity-control button:disabled{background:#f1f4f8!important;color:#9aa8bb!important;cursor:not-allowed!important;opacity:1!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count{box-sizing:border-box!important;display:block!important;width:100%!important;min-width:0!important;max-width:60px!important;height:36px!important;margin:0 auto!important;padding:3px 0!important;border:0!important;border-radius:6px!important;background:transparent!important;color:#14243a!important;font:inherit!important;font-size:16px!important;font-weight:700!important;text-align:center!important;box-shadow:none!important;appearance:textfield!important;-moz-appearance:textfield!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count::-webkit-outer-spin-button,.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count::-webkit-inner-spin-button{-webkit-appearance:none!important;margin:0!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count:focus{outline:2px solid rgba(37,99,235,.2)!important;outline-offset:0!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count:disabled{color:#9aa8bb!important;opacity:1!important;cursor:not-allowed!important}
@media(max-width:520px){.be-wrapper .be-box .be-services-list>.be-service-item{grid-template-columns:minmax(0,1fr)!important;gap:14px!important;padding:15px!important}.be-wrapper .be-box .be-service-item .be-service-choice{align-items:center!important;gap:12px!important}.be-wrapper .be-box .be-service-item .be-service-name{font-size:15px!important}.be-wrapper .be-box .be-service-item .be-service-guest-quantity{display:flex!important;flex-direction:column!important;gap:8px!important;width:100%!important;padding:12px 0 0 32px!important;border-left:0!important;border-top:1px solid #e4ebf3!important}.be-wrapper .be-box .be-service-quantity-control{grid-template-columns:40px minmax(28px,1fr) 40px!important;max-width:100%!important}.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count{max-width:70px!important}}

/* v5.2.2 — responsive booking form alignment and Extra Services fix */
.be-wrapper .be-box .be-services-list{gap:10px!important}
.be-wrapper .be-box .be-services-list>.be-service-item{min-width:0!important}
.be-wrapper .be-box .be-service-item .be-service-choice{min-width:0!important}
.be-wrapper .be-box .be-service-item .be-service-info{min-width:0!important;overflow-wrap:anywhere!important}
.be-wrapper .be-box .be-service-item .be-service-name{overflow-wrap:normal!important;word-break:normal!important}
.be-wrapper .be-box .be-service-item .be-service-price{overflow-wrap:normal!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity{min-width:0!important}
.be-wrapper .be-box .be-service-quantity-control{flex-shrink:0!important}
@media(max-width:520px){
  .be-wrapper .be-box .be-services-list>.be-service-item{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;padding:14px!important;border-radius:14px!important}
  .be-wrapper .be-box .be-service-item .be-service-choice{display:flex!important;align-items:flex-start!important;gap:10px!important;width:100%!important}
  .be-wrapper .be-box .be-service-item .be-service-choice>input.service{flex:0 0 19px!important;width:19px!important;height:19px!important;min-width:19px!important;margin:2px 0 0!important}
  .be-wrapper .be-box .be-service-item .be-service-info{flex:1 1 auto!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:4px!important;width:auto!important}
  .be-wrapper .be-box .be-service-item .be-service-name{font-size:14px!important;line-height:1.35!important;font-weight:700!important}
  .be-wrapper .be-box .be-service-item .be-service-price{font-size:13px!important;line-height:1.4!important;color:#245846!important}
  .be-wrapper .be-box .be-service-item .be-service-guest-quantity{display:grid!important;grid-template-columns:minmax(0,1fr) 132px!important;flex-direction:initial!important;align-items:center!important;gap:10px!important;width:100%!important;padding:11px 0 0 29px!important;margin:0!important;border-left:0!important;border-top:1px solid #e4ebe6!important}
  .be-wrapper .be-box .be-service-item .be-service-quantity-label{font-size:12px!important;line-height:1.35!important;font-weight:600!important;overflow-wrap:normal!important}
  .be-wrapper .be-box .be-service-quantity-control{display:grid!important;grid-template-columns:32px minmax(24px,1fr) 32px!important;gap:4px!important;width:132px!important;max-width:132px!important;min-height:40px!important;padding:3px!important;border-radius:11px!important}
  .be-wrapper .be-box .be-service-quantity-control button{width:32px!important;height:32px!important;border-radius:8px!important;font-size:20px!important}
  .be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count{width:100%!important;max-width:40px!important;height:32px!important;font-size:14px!important}
  .be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count:disabled{background:transparent!important}
  .be-wrapper .be-box .be-date-fields,.be-wrapper .be-box .be-date-row{gap:8px!important}
  .be-wrapper .be-box .be-main-unit-card,.be-wrapper .be-box .be-unit-card{border-radius:12px!important}
}


/* v5.2.3 — reference-matched Extra Services card */
.be-wrapper .be-box .be-services-list{
  display:flex!important;flex-direction:column!important;gap:12px!important;
}
.be-wrapper .be-box .be-services-list>.be-service-item{
  box-sizing:border-box!important;display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(230px,30%)!important;
  align-items:center!important;column-gap:24px!important;row-gap:14px!important;
  width:100%!important;min-width:0!important;padding:22px 24px!important;
  margin:0!important;border:1px solid #e3ebf5!important;border-radius:18px!important;
  background:linear-gradient(135deg,#f7faff 0%,#f2f7fd 100%)!important;
  box-shadow:0 2px 8px rgba(24,54,91,.035)!important;
}
.be-wrapper .be-box .be-service-item .be-service-choice{
  display:flex!important;align-items:center!important;gap:18px!important;
  min-width:0!important;width:100%!important;margin:0!important;
}
.be-wrapper .be-box .be-service-item .be-service-choice>input.service{
  appearance:none!important;-webkit-appearance:none!important;box-sizing:border-box!important;
  flex:0 0 28px!important;width:28px!important;height:28px!important;min-width:28px!important;
  margin:0!important;border:2px solid #8290a3!important;border-radius:7px!important;
  background:#fff!important;display:grid!important;place-content:center!important;
  cursor:pointer!important;box-shadow:none!important;
}
.be-wrapper .be-box .be-service-item .be-service-choice>input.service:checked{
  background:#245846!important;border-color:#245846!important;
}
.be-wrapper .be-box .be-service-item .be-service-choice>input.service:checked:before{
  content:""!important;display:block!important;width:7px!important;height:13px!important;
  border:solid #fff!important;border-width:0 2.5px 2.5px 0!important;
  transform:rotate(45deg)!important;margin:-2px 0 1px!important;
}
.be-wrapper .be-box .be-service-item .be-service-info{
  display:flex!important;flex-direction:column!important;align-items:flex-start!important;
  gap:5px!important;min-width:0!important;width:100%!important;
}
.be-wrapper .be-box .be-service-item .be-service-name{
  color:#132238!important;font-size:21px!important;font-weight:700!important;
  line-height:1.25!important;letter-spacing:-.02em!important;overflow-wrap:anywhere!important;
}
.be-wrapper .be-box .be-service-item .be-service-price{
  color:#2563eb!important;font-size:18px!important;font-weight:700!important;line-height:1.35!important;
  white-space:normal!important;overflow-wrap:normal!important;
}
.be-wrapper .be-box .be-service-item .be-service-price:after{
  color:#68778d!important;font-weight:400!important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity{
  display:flex!important;flex-direction:column!important;align-items:stretch!important;
  justify-content:center!important;gap:10px!important;width:100%!important;min-width:0!important;
  margin:0!important;padding:0!important;border:0!important;background:transparent!important;
}
.be-wrapper .be-box .be-service-item .be-service-quantity-label{
  display:block!important;color:#66758b!important;font-size:17px!important;
  font-weight:500!important;line-height:1.3!important;text-align:left!important;
}
.be-wrapper .be-box .be-service-quantity-control{
  display:grid!important;grid-template-columns:44px minmax(32px,1fr) 44px!important;
  align-items:center!important;gap:8px!important;width:100%!important;max-width:none!important;
  min-height:58px!important;padding:6px!important;box-sizing:border-box!important;
  border:1px solid #dce5f1!important;border-radius:16px!important;background:#fff!important;
  box-shadow:0 1px 2px rgba(20,40,70,.04)!important;
}
.be-wrapper .be-box .be-service-quantity-control button{
  display:flex!important;align-items:center!important;justify-content:center!important;
  box-sizing:border-box!important;width:44px!important;height:44px!important;padding:0!important;
  border:0!important;border-radius:12px!important;background:#edf3fc!important;color:#2563eb!important;
  font-size:27px!important;font-weight:500!important;line-height:1!important;box-shadow:none!important;
  cursor:pointer!important;
}
.be-wrapper .be-box .be-service-quantity-control button.service-guest-minus{
  background:#f0f3f7!important;color:#718096!important;
}
.be-wrapper .be-box .be-service-quantity-control button:disabled{opacity:.45!important;cursor:not-allowed!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count{
  width:100%!important;max-width:none!important;height:44px!important;min-width:0!important;
  margin:0!important;padding:0!important;border:0!important;border-radius:0!important;
  background:transparent!important;color:#132238!important;font-size:22px!important;
  font-weight:700!important;text-align:center!important;box-shadow:none!important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count:disabled{opacity:.65!important}
@media(max-width:600px){
  .be-wrapper .be-box .be-services-list>.be-service-item{
    grid-template-columns:minmax(0,1fr) minmax(112px,42%)!important;
    column-gap:12px!important;row-gap:0!important;padding:16px 14px!important;border-radius:14px!important;
  }
  .be-wrapper .be-box .be-service-item .be-service-choice{gap:10px!important;align-items:flex-start!important}
  .be-wrapper .be-box .be-service-item .be-service-choice>input.service{
    flex-basis:22px!important;width:22px!important;height:22px!important;min-width:22px!important;
    margin-top:2px!important;border-radius:6px!important;
  }
  .be-wrapper .be-box .be-service-item .be-service-choice>input.service:checked:before{
    width:5px!important;height:10px!important;border-width:0 2px 2px 0!important;
  }
  .be-wrapper .be-box .be-service-item .be-service-name{font-size:15px!important;line-height:1.3!important}
  .be-wrapper .be-box .be-service-item .be-service-price{font-size:14px!important;line-height:1.35!important}
  .be-wrapper .be-box .be-service-item .be-service-guest-quantity{gap:7px!important}
  .be-wrapper .be-box .be-service-item .be-service-quantity-label{font-size:12px!important;line-height:1.3!important}
  .be-wrapper .be-box .be-service-quantity-control{
    grid-template-columns:30px minmax(20px,1fr) 30px!important;gap:2px!important;
    min-height:42px!important;padding:3px!important;border-radius:11px!important;
  }
  .be-wrapper .be-box .be-service-quantity-control button{
    width:30px!important;height:32px!important;border-radius:8px!important;font-size:21px!important;
  }
  .be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count{
    height:32px!important;font-size:15px!important;
  }
}
@media(max-width:360px){
  .be-wrapper .be-box .be-services-list>.be-service-item{grid-template-columns:minmax(0,1fr)!important;gap:12px!important}
  .be-wrapper .be-box .be-service-item .be-service-guest-quantity{
    padding:12px 0 0 32px!important;border-top:1px solid #e3ebf5!important;
  }
  .be-wrapper .be-box .be-service-item .be-service-guest-quantity{display:grid!important;grid-template-columns:minmax(0,1fr) 132px!important}
  .be-wrapper .be-box .be-service-item .be-service-quantity-label{font-size:13px!important}
  .be-wrapper .be-box .be-service-quantity-control{grid-template-columns:32px minmax(22px,1fr) 32px!important}
  .be-wrapper .be-box .be-service-quantity-control button{width:32px!important}
}


/* v5.2.4 — Extra Services guest counter matches the Adults / Units counter UI */
.be-wrapper .be-box .be-service-item .be-service-quantity-control{
  display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;
  gap:4px!important;background:#eef1f3!important;padding:2px 4px!important;border:0!important;border-radius:6px!important;
  width:86px!important;min-width:86px!important;max-width:86px!important;height:28px!important;min-height:28px!important;
  box-sizing:border-box!important;box-shadow:none!important;
}
.be-wrapper .be-box .be-service-quantity-control button,
.be-wrapper .be-box .be-service-quantity-control button.service-guest-minus{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:22px!important;min-width:22px!important;max-width:22px!important;height:22px!important;min-height:22px!important;max-height:22px!important;
  margin:0!important;padding:0!important;background:#fff!important;border:1.5px solid #0f5c5c!important;border-radius:4px!important;
  color:#0f5c5c!important;font-size:13px!important;font-weight:700!important;line-height:1!important;box-shadow:none!important;cursor:pointer!important;
}
.be-wrapper .be-box .be-service-quantity-control button:disabled{opacity:.45!important;cursor:not-allowed!important}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count{
  display:block!important;flex:1 1 auto!important;width:22px!important;min-width:22px!important;max-width:22px!important;
  height:22px!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;
  color:#333!important;font-size:13px!important;font-weight:600!important;line-height:22px!important;text-align:center!important;box-shadow:none!important;
  appearance:textfield!important;-moz-appearance:textfield!important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count::-webkit-inner-spin-button,
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count::-webkit-outer-spin-button{-webkit-appearance:none!important;margin:0!important}
@media(max-width:600px){
  .be-wrapper .be-box .be-service-quantity-control{width:86px!important;min-width:86px!important;max-width:86px!important;height:28px!important;min-height:28px!important;padding:2px 4px!important;gap:4px!important}
  .be-wrapper .be-box .be-service-quantity-control button{width:22px!important;min-width:22px!important;max-width:22px!important;height:22px!important;min-height:22px!important;max-height:22px!important;font-size:13px!important;border-radius:4px!important}
  .be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count{width:22px!important;min-width:22px!important;max-width:22px!important;height:22px!important;font-size:13px!important}
}

/* v5.2.5 — force Extra Services guest selector to use the exact Adults/Units counter treatment */
.be-wrapper .be-box .be-service-item .be-service-guest-quantity .be-service-quantity-control {
  display:flex !important; flex-direction:row !important; align-items:center !important; justify-content:space-between !important;
  box-sizing:border-box !important; gap:4px !important; padding:2px 4px !important;
  width:86px !important; min-width:86px !important; max-width:86px !important;
  height:28px !important; min-height:28px !important; max-height:28px !important;
  background:#eef1f3 !important; border:0 !important; border-radius:6px !important; box-shadow:none !important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity .be-service-quantity-control > button,
.be-wrapper .be-box .be-service-item .be-service-guest-quantity .be-service-quantity-control > button.service-guest-minus,
.be-wrapper .be-box .be-service-item .be-service-guest-quantity .be-service-quantity-control > button.service-guest-plus {
  appearance:none !important; -webkit-appearance:none !important; display:flex !important; flex:0 0 22px !important;
  align-items:center !important; justify-content:center !important; box-sizing:border-box !important;
  width:22px !important; min-width:22px !important; max-width:22px !important;
  height:22px !important; min-height:22px !important; max-height:22px !important;
  margin:0 !important; padding:0 !important; background:#fff !important;
  border:1.5px solid #0f5c5c !important; border-radius:4px !important;
  color:#0f5c5c !important; font-family:inherit !important; font-size:13px !important;
  font-weight:700 !important; line-height:1 !important; box-shadow:none !important; text-shadow:none !important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity .be-service-quantity-control > button:disabled { opacity:.45 !important; cursor:not-allowed !important; }
.be-wrapper .be-box .be-service-item .be-service-guest-quantity .be-service-quantity-control > input.service-guest-count {
  appearance:textfield !important; -moz-appearance:textfield !important; display:block !important; flex:1 1 22px !important;
  box-sizing:border-box !important; width:22px !important; min-width:22px !important; max-width:22px !important;
  height:22px !important; min-height:22px !important; margin:0 !important; padding:0 !important;
  border:0 !important; border-radius:0 !important; outline:0 !important; background:transparent !important;
  color:#333 !important; font-family:inherit !important; font-size:13px !important; font-weight:600 !important;
  line-height:22px !important; text-align:center !important; box-shadow:none !important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count::-webkit-inner-spin-button,
.be-wrapper .be-box .be-service-item .be-service-guest-quantity input.service-guest-count::-webkit-outer-spin-button { -webkit-appearance:none !important; margin:0 !important; }
@media(max-width:600px) {
  .be-wrapper .be-box .be-service-item .be-service-guest-quantity .be-service-quantity-control { width:86px !important; min-width:86px !important; max-width:86px !important; height:28px !important; min-height:28px !important; padding:2px 4px !important; gap:4px !important; }
}


/* v5.2.6 definitive Extra Services counter override.
   Keep the service counter visually identical to the compact Adults/Child/Units control.
   Deliberately use class selectors without requiring .be-wrapper/.be-box ancestors,
   so theme/Elementor wrapper differences cannot leave the buttons unstyled. */
.be-service-item .be-service-guest-quantity .be-service-quantity-control,
.be-service-item .be-service-quantity-control {
  display:flex !important; flex-direction:row !important; align-items:center !important;
  justify-content:space-between !important; box-sizing:border-box !important;
  width:86px !important; min-width:86px !important; max-width:86px !important;
  height:28px !important; min-height:28px !important; max-height:28px !important;
  gap:4px !important; padding:2px 4px !important; margin:0 !important;
  border:1px solid #dce7df !important; border-radius:8px !important;
  background:#f7faf7 !important; box-shadow:none !important;
}
.be-service-item .be-service-guest-quantity .be-service-quantity-control > button.service-guest-minus,
.be-service-item .be-service-guest-quantity .be-service-quantity-control > button.service-guest-plus,
.be-service-item .be-service-quantity-control > button.service-guest-minus,
.be-service-item .be-service-quantity-control > button.service-guest-plus {
  appearance:none !important; -webkit-appearance:none !important;
  display:flex !important; flex:0 0 22px !important; align-items:center !important;
  justify-content:center !important; box-sizing:border-box !important;
  width:22px !important; min-width:22px !important; max-width:22px !important;
  height:22px !important; min-height:22px !important; max-height:22px !important;
  margin:0 !important; padding:0 !important;
  border:1px solid #d5e1d7 !important; border-radius:5px !important;
  background:#fff !important; color:#174b3b !important;
  font-family:inherit !important; font-size:13px !important; font-weight:600 !important;
  line-height:20px !important; text-align:center !important; text-decoration:none !important;
  box-shadow:0 1px 2px rgba(20,50,35,.08) !important; text-shadow:none !important;
  opacity:1 !important; cursor:pointer !important;
}
.be-service-item .be-service-guest-quantity .be-service-quantity-control > button.service-guest-minus:disabled,
.be-service-item .be-service-guest-quantity .be-service-quantity-control > button.service-guest-plus:disabled,
.be-service-item .be-service-quantity-control > button.service-guest-minus:disabled,
.be-service-item .be-service-quantity-control > button.service-guest-plus:disabled {
  opacity:.45 !important; cursor:not-allowed !important;
}
.be-service-item .be-service-guest-quantity .be-service-quantity-control > input.service-guest-count,
.be-service-item .be-service-quantity-control > input.service-guest-count {
  appearance:textfield !important; -moz-appearance:textfield !important;
  display:block !important; flex:1 1 22px !important; box-sizing:border-box !important;
  width:22px !important; min-width:22px !important; max-width:22px !important;
  height:22px !important; min-height:22px !important; max-height:22px !important;
  margin:0 !important; padding:0 !important; border:0 !important; border-radius:0 !important;
  outline:0 !important; background:transparent !important; color:#173c30 !important;
  font-family:inherit !important; font-size:13px !important; font-weight:600 !important;
  line-height:22px !important; text-align:center !important; box-shadow:none !important;
}
.be-service-item .be-service-guest-quantity .be-service-quantity-control > input.service-guest-count::-webkit-inner-spin-button,
.be-service-item .be-service-guest-quantity .be-service-quantity-control > input.service-guest-count::-webkit-outer-spin-button { -webkit-appearance:none !important; margin:0 !important; }


/* v5.2.7 — Actual Extra Services redesign (modern card + segmented counter).
   Also bump BE_VERSION below so WordPress requests a fresh stylesheet instead of cached CSS. */
.be-wrapper .be-box .be-services-list {
  display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:12px !important;
  width:100% !important; margin:0 !important;
}
.be-wrapper .be-box .be-services-list > .be-service-item {
  display:grid !important; grid-template-columns:minmax(0,1fr) 148px !important;
  align-items:center !important; gap:12px 16px !important; width:100% !important;
  min-width:0 !important; box-sizing:border-box !important; margin:0 !important;
  padding:14px !important; border:1px solid #dfe8e1 !important; border-radius:14px !important;
  background:linear-gradient(135deg,#ffffff 0%,#fbfdfb 100%) !important;
  box-shadow:0 2px 8px rgba(23,60,48,.045) !important; transition:border-color .18s ease,box-shadow .18s ease !important;
}
.be-wrapper .be-box .be-services-list > .be-service-item:has(input.service:checked) {
  border-color:#8db7a0 !important; background:#f5faf6 !important; box-shadow:0 0 0 2px rgba(23,75,59,.06) !important;
}
.be-wrapper .be-box .be-service-item > .be-service-choice {
  display:flex !important; align-items:flex-start !important; gap:9px !important; min-width:0 !important;
  width:100% !important; margin:0 !important; padding:0 !important; border:0 !important;
  background:transparent !important; cursor:pointer !important; line-height:1.45 !important;
}
.be-wrapper .be-box .be-service-item > .be-service-choice input.service {
  flex:0 0 16px !important; width:16px !important; height:16px !important; margin:3px 0 0 !important;
  accent-color:#245342 !important; cursor:pointer !important;
}
.be-wrapper .be-box .be-service-item .be-service-info {
  display:flex !important; flex-direction:column !important; gap:3px !important;
  min-width:0 !important; overflow-wrap:anywhere !important;
}
.be-wrapper .be-box .be-service-item .be-service-name {
  display:block !important; color:#173c30 !important; font-size:13px !important;
  font-weight:650 !important; line-height:1.4 !important; word-break:normal !important;
}
.be-wrapper .be-box .be-service-item .be-service-price {
  display:block !important; color:#64776d !important; font-size:12px !important;
  font-weight:500 !important; line-height:1.4 !important;
}
.be-wrapper .be-box .be-service-item .be-service-guest-quantity {
  display:flex !important; flex-direction:column !important; align-items:flex-start !important;
  justify-content:center !important; gap:7px !important; min-width:0 !important; width:100% !important;
  margin:0 !important; padding:0 !important; border:0 !important; background:transparent !important;
}
.be-wrapper .be-box .be-service-item .be-service-quantity-label {
  display:block !important; color:#64776d !important; font-size:11px !important;
  font-weight:600 !important; line-height:1.25 !important; letter-spacing:.015em !important;
}
.be-wrapper .be-box .be-service-item .be-service-quantity-control {
  display:grid !important; grid-template-columns:30px minmax(24px,1fr) 30px !important;
  align-items:center !important; justify-items:center !important; gap:4px !important;
  box-sizing:border-box !important; width:100% !important; max-width:126px !important; min-width:0 !important;
  height:36px !important; min-height:36px !important; padding:3px !important;
  margin:0 !important; border:1px solid #dce7df !important; border-radius:10px !important;
  background:#f1f6f1 !important; box-shadow:inset 0 1px 1px rgba(20,50,35,.025) !important;
}
.be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-minus,
.be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-plus {
  appearance:none !important; -webkit-appearance:none !important; display:flex !important;
  align-items:center !important; justify-content:center !important; flex:0 0 28px !important;
  box-sizing:border-box !important; width:28px !important; min-width:28px !important; max-width:28px !important;
  height:28px !important; min-height:28px !important; max-height:28px !important; padding:0 !important; margin:0 !important;
  border:1px solid #d6e2d8 !important; border-radius:8px !important; background:#fff !important;
  color:#174b3b !important; font-family:inherit !important; font-size:16px !important; font-weight:600 !important;
  line-height:1 !important; text-align:center !important; text-decoration:none !important;
  box-shadow:0 1px 2px rgba(20,50,35,.07) !important; text-shadow:none !important; cursor:pointer !important;
}
.be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-minus:hover,
.be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-plus:hover {
  background:#e5f0e8 !important; border-color:#9dbba7 !important;
}
.be-wrapper .be-box .be-service-item .be-service-quantity-control > button:disabled { opacity:.4 !important; cursor:not-allowed !important; }
.be-wrapper .be-box .be-service-item .be-service-quantity-control > input.service-guest-count {
  appearance:textfield !important; -moz-appearance:textfield !important; display:block !important;
  box-sizing:border-box !important; width:100% !important; min-width:0 !important; max-width:100% !important;
  height:28px !important; min-height:28px !important; margin:0 !important; padding:0 !important;
  border:0 !important; border-radius:0 !important; outline:0 !important; background:transparent !important;
  color:#173c30 !important; font-family:inherit !important; font-size:14px !important; font-weight:700 !important;
  line-height:28px !important; text-align:center !important; box-shadow:none !important;
}
.be-wrapper .be-box .be-service-item .be-service-quantity-control > input.service-guest-count::-webkit-inner-spin-button,
.be-wrapper .be-box .be-service-item .be-service-quantity-control > input.service-guest-count::-webkit-outer-spin-button { -webkit-appearance:none !important; margin:0 !important; }
@media(max-width:520px) {
  .be-wrapper .be-box .be-services-list > .be-service-item { grid-template-columns:minmax(0,1fr) 112px !important; gap:10px !important; padding:12px !important; }
  .be-wrapper .be-box .be-service-item .be-service-quantity-control { grid-template-columns:28px minmax(20px,1fr) 28px !important; max-width:112px !important; height:34px !important; }
  .be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-minus,
  .be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-plus { flex-basis:26px !important; width:26px !important; min-width:26px !important; max-width:26px !important; height:26px !important; min-height:26px !important; max-height:26px !important; }
}
@media(max-width:360px) {
  .be-wrapper .be-box .be-services-list > .be-service-item { grid-template-columns:minmax(0,1fr) !important; }
  .be-wrapper .be-box .be-service-item .be-service-guest-quantity { align-items:flex-start !important; }
}

/* v5.2.9 — Extra Services price placement and compact mobile layout */
.be-single-stay .be-single-booking-form .be-wrapper .be-box > h3,.be-wrapper .be-box > h3{white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-name,.be-wrapper .be-box .be-service-item .be-service-name{display:block!important;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-price,.be-wrapper .be-box .be-service-item .be-service-price{display:none!important}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-guest-quantity,.be-wrapper .be-box .be-service-item .be-service-guest-quantity{min-width:0!important;width:100%!important;gap:5px!important}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-quantity-label,.be-wrapper .be-box .be-service-item .be-service-quantity-label{display:block!important;margin:0 0 2px!important;color:#53675d!important;font-size:12px!important;font-weight:650!important;line-height:1.25!important;white-space:nowrap!important}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-quantity-control,.be-wrapper .be-box .be-service-item .be-service-quantity-control{width:100%!important;max-width:108px!important;min-width:0!important;grid-template-columns:24px minmax(16px,1fr) 24px!important;gap:2px!important}
@media(max-width:520px){.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-services-list>.be-service-item,.be-wrapper .be-box .be-services-list>.be-service-item{grid-template-columns:minmax(0,1fr) 108px!important;gap:8px!important;align-items:center!important}}

/* v5.3.0 — Compact booking form and Extra Services layout */
.be-single-stay .be-single-booking-form .be-wrapper .be-box,
.be-wrapper .be-box { padding: 12px !important; margin-bottom: 10px !important; }
.be-single-stay .be-single-booking-form .be-wrapper .be-box > h3,
.be-wrapper .be-box > h3 { margin: 0 0 8px !important; font-size: 15px !important; line-height: 1.25 !important; }
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-services-list,
.be-wrapper .be-box .be-services-list { gap: 7px !important; }
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-services-list > .be-service-item,
.be-wrapper .be-box .be-services-list > .be-service-item {
  grid-template-columns: minmax(0,1fr) 112px !important;
  align-items: center !important; gap: 8px !important;
  padding: 9px !important; border-radius: 12px !important;
  box-shadow: 0 1px 4px rgba(23,60,48,.035) !important;
}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item > .be-service-choice,
.be-wrapper .be-box .be-service-item > .be-service-choice { gap: 7px !important; line-height: 1.25 !important; }
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-info,
.be-wrapper .be-box .be-service-item .be-service-info { gap: 1px !important; }
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-name,
.be-wrapper .be-box .be-service-item .be-service-name { font-size: 12px !important; line-height: 1.25 !important; }
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-quantity-label,
.be-wrapper .be-box .be-service-item .be-service-quantity-label {
  font-size: 10px !important; line-height: 1.15 !important; margin: 0 0 3px !important;
  letter-spacing: 0 !important; white-space: nowrap !important;
}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-guest-quantity,
.be-wrapper .be-box .be-service-item .be-service-guest-quantity { gap: 3px !important; }
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-quantity-control,
.be-wrapper .be-box .be-service-item .be-service-quantity-control {
  grid-template-columns: 22px minmax(12px,1fr) 22px !important;
  gap: 2px !important; max-width: 112px !important; height: 30px !important; min-height: 30px !important;
  padding: 2px !important; border-radius: 8px !important;
}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-minus,
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-plus,
.be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-minus,
.be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-plus {
  flex-basis: 22px !important; width: 22px !important; min-width: 22px !important; max-width: 22px !important;
  height: 22px !important; min-height: 22px !important; max-height: 22px !important; border-radius: 6px !important;
  font-size: 13px !important;
}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-quantity-control > input.service-guest-count,
.be-wrapper .be-box .be-service-item .be-service-quantity-control > input.service-guest-count {
  height: 22px !important; min-height: 22px !important; line-height: 22px !important; font-size: 12px !important;
}
@media(max-width:520px) {
 .be-single-stay .be-single-booking-form .be-wrapper .be-box,
 .be-wrapper .be-box { padding: 10px !important; margin-bottom: 8px !important; }
 .be-single-stay .be-single-booking-form .be-wrapper .be-box .be-services-list > .be-service-item,
 .be-wrapper .be-box .be-services-list > .be-service-item {
   grid-template-columns: minmax(0,1fr) 112px !important; gap: 7px !important; padding: 8px !important;
 }
}
@media(max-width:350px) {
 .be-single-stay .be-single-booking-form .be-wrapper .be-box .be-services-list > .be-service-item,
 .be-wrapper .be-box .be-services-list > .be-service-item { grid-template-columns: minmax(0,1fr) 104px !important; gap: 5px !important; padding: 7px !important; }
 .be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-quantity-control,
 .be-wrapper .be-box .be-service-item .be-service-quantity-control { grid-template-columns: 20px minmax(10px,1fr) 20px !important; }
 .be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-minus,
 .be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-plus,
 .be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-minus,
 .be-wrapper .be-box .be-service-item .be-service-quantity-control > button.service-guest-plus { width:20px !important; min-width:20px !important; max-width:20px !important; flex-basis:20px !important; }
}


/* v5.3.1 — Remove unwanted selected/focus border and vertically center service label */
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-services-list > .be-service-item:has(input.service:checked),
.be-wrapper .be-box .be-services-list > .be-service-item:has(input.service:checked) {
  border-color: #e0e8df !important;
  background: linear-gradient(145deg,#fff 0%,#fbfcf9 100%) !important;
  box-shadow: 0 1px 4px rgba(23,60,48,.035) !important;
  outline: none !important;
}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item > .be-service-choice,
.be-wrapper .be-box .be-service-item > .be-service-choice {
  align-self: center !important;
  align-items: center !important;
  height: 100% !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item > .be-service-choice:focus,
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item > .be-service-choice:focus-within,
.be-wrapper .be-box .be-service-item > .be-service-choice:focus,
.be-wrapper .be-box .be-service-item > .be-service-choice:focus-within {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item > .be-service-choice input.service,
.be-wrapper .be-box .be-service-item > .be-service-choice input.service {
  align-self: center !important;
  margin: 0 !important;
}

/* v5.3.4 — Keep service description left and quantity counter aligned right */
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-services-list > .be-service-item,
.be-wrapper .be-box .be-services-list > .be-service-item {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 90px !important;
  align-items: center !important;
  justify-content: stretch !important;
}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-services-list > .be-service-item > .be-service-choice,
.be-wrapper .be-box .be-services-list > .be-service-item > .be-service-choice {
  justify-self: start !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  text-align: left !important;
}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-services-list > .be-service-item > .be-service-guest-quantity,
.be-wrapper .be-box .be-services-list > .be-service-item > .be-service-guest-quantity {
  justify-self: end !important;
  align-self: center !important;
  width: 90px !important;
  min-width: 90px !important;
  max-width: 90px !important;
  margin: 0 0 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
}
.be-single-stay .be-single-booking-form .be-wrapper .be-box .be-service-item .be-service-info,
.be-wrapper .be-box .be-service-item .be-service-info {
  align-items: flex-start !important;
  text-align: left !important;
  min-width: 0 !important;
}
@media (max-width: 350px) {
  .be-single-stay .be-single-booking-form .be-wrapper .be-box .be-services-list > .be-service-item,
  .be-wrapper .be-box .be-services-list > .be-service-item {
    grid-template-columns: minmax(0, 1fr) 90px !important;
  }
}


/* Booking Engine v5.3.15: live selected-date availability feedback. */
.be-date-availability{display:flex;align-items:center;gap:9px;margin:10px 0 14px;padding:11px 13px;border:1px solid #dce9df;border-radius:10px;background:#f7faf7;color:#52635a;font-size:13px;line-height:1.45;transition:background .18s ease,border-color .18s ease,color .18s ease}
.be-date-availability .be-availability-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#8a9890}
.be-date-availability[data-state="loading"] .be-availability-dot{background:#9a8b5c;animation:be-availability-pulse 1s ease-in-out infinite}
.be-date-availability[data-state="available"]{background:#eff9f1;border-color:#c8e7ce;color:#17643b}.be-date-availability[data-state="available"] .be-availability-dot{background:#21864b}
.be-date-availability[data-state="low"]{background:#fff8e9;border-color:#f0dba9;color:#805a08}.be-date-availability[data-state="low"] .be-availability-dot{background:#d99a15}
.be-date-availability[data-state="full"],.be-date-availability[data-state="error"]{background:#fff3f2;border-color:#f0cbc7;color:#a12c24}.be-date-availability[data-state="full"] .be-availability-dot,.be-date-availability[data-state="error"] .be-availability-dot{background:#c6382d}
#book-now.be-no-availability{opacity:.55;cursor:not-allowed}
@keyframes be-availability-pulse{50%{opacity:.35;transform:scale(.8)}}

/* Premium room-availability calendar: spacious month grid inspired by the reference UI. */
.flatpickr-calendar.be-room-availability-calendar {
  width: min(850px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  padding: 14px !important;
  border: 1px solid #e2e7ed !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 18px 55px rgba(20, 32, 50, .14) !important;
  box-sizing: border-box !important;
  overflow: hidden;
  font-family: inherit;
}
.flatpickr-calendar.be-room-availability-calendar.arrowTop:before,
.flatpickr-calendar.be-room-availability-calendar.arrowTop:after,
.flatpickr-calendar.be-room-availability-calendar.arrowBottom:before,
.flatpickr-calendar.be-room-availability-calendar.arrowBottom:after { display: none !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-months { align-items: center; gap: 10px; padding: 0 2px 12px; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-months .flatpickr-month { height: 56px; flex: 1 1 auto; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month { top: 8px; left: 0; width: 100%; padding-top: 0; font-size: 22px; font-weight: 600; color: #151b26; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month .flatpickr-monthDropdown-months { font-size: 22px; font-weight: 600; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month input.cur-year { font-size: 22px; font-weight: 600; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-prev-month,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-next-month {
  position: static !important; flex: 0 0 52px; width: 52px; height: 52px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid #e4e8ed; border-radius: 12px; background: #f8f9fb;
  color: #151b26; fill: currentColor;
}
.flatpickr-calendar.be-room-availability-calendar .flatpickr-prev-month:hover,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-next-month:hover { background: #eef4ff; border-color: #c9d9f7; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-prev-month svg,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-next-month svg { width: 18px; height: 18px; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-innerContainer,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-rContainer,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-days,
.flatpickr-calendar.be-room-availability-calendar .dayContainer { width: 100% !important; min-width: 0 !important; max-width: none !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-weekdays { height: 42px; background: #fff; }
.flatpickr-calendar.be-room-availability-calendar span.flatpickr-weekday { flex: 1 1 14.2857%; max-width: none; color: #626977; font-size: 14px; font-weight: 700; }
.flatpickr-calendar.be-room-availability-calendar .dayContainer { justify-content: flex-start; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day {
  position: relative !important; flex: 0 0 14.2857% !important; width: 14.2857% !important;
  max-width: none !important; height: 86px; line-height: normal; margin: 0 !important;
  padding: 0 !important; border: 1px solid #edf0f4 !important; border-radius: 0 !important;
  box-sizing: border-box; text-align: left; color: #141a24; background: #fff;
}
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day:nth-child(7n + 1) { border-left-color: #e6ebf0 !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.prevMonthDay,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.nextMonthDay { color: #b9bec7 !important; background: #fcfcfd; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day .be-day-number {
  position: absolute; top: 13px; left: 13px; z-index: 1; display: block; margin: 0; padding: 0;
  font-size: 18px; line-height: 1; font-weight: 500; pointer-events: none;
}
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day .be-day-availability-count {
  position: absolute; right: 10px; bottom: 10px; top: auto; left: auto; transform: none; z-index: 2;
  display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px;
  padding: 0 7px; box-sizing: border-box; border: 1px solid transparent; border-radius: 999px;
  font-size: 13px; line-height: 1; font-weight: 600; white-space: nowrap; pointer-events: none;
}
.flatpickr-calendar.be-room-availability-calendar .be-day-availability-count.is-available { color: #17643b; background: #c9f7d2; border-color: #c9f7d2; }
.flatpickr-calendar.be-room-availability-calendar .be-day-availability-count.is-low { color: #805a08; background: #ffe4aa; border-color: #ffe4aa; }
.flatpickr-calendar.be-room-availability-calendar .be-day-availability-count.is-full { color: #a51f25; background: #ffd0d1; border-color: #ffd0d1; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.selected,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.startRange,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.endRange {
  color: #151b26 !important; background: #fff !important; border-color: #edf0f4 !important;
  border-radius: 0 !important; box-shadow: none !important;
}
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.selected::before,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.startRange::before,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.endRange::before {
  content: ''; position: absolute; top: 8px; left: 8px; width: 54px; height: 54px;
  border-radius: 50%; background: #2478f2; z-index: 0;
}
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.selected .be-day-number,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.startRange .be-day-number,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.endRange .be-day-number {
  top: 27px; left: 8px; width: 54px; text-align: center; color: #fff; z-index: 1;
}
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.today:not(.selected) { border-color: #a8c7fb !important; }
.flatpickr-calendar.be-room-availability-calendar .be-calendar-legend {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 18px;
  padding: 14px 4px 2px; color: #333b49; font-size: 13px; line-height: 1.2;
}
.flatpickr-calendar.be-room-availability-calendar .be-calendar-legend-item { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.flatpickr-calendar.be-room-availability-calendar .be-calendar-legend-item i { display: inline-block; width: 13px; height: 13px; border-radius: 50%; }
.flatpickr-calendar.be-room-availability-calendar .be-calendar-legend-item i.is-available { background: #9ce9ac; }
.flatpickr-calendar.be-room-availability-calendar .be-calendar-legend-item i.is-low { background: #ffc45d; }
.flatpickr-calendar.be-room-availability-calendar .be-calendar-legend-item i.is-full { background: #ff777b; }
@media (max-width: 600px) {
  .flatpickr-calendar.be-room-availability-calendar { padding: 8px !important; border-radius: 14px !important; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-months .flatpickr-month { height: 44px; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month,
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month input.cur-year { font-size: 16px; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-prev-month,
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-next-month { flex-basis: 38px; width: 38px; height: 38px; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-weekdays { height: 32px; }
  .flatpickr-calendar.be-room-availability-calendar span.flatpickr-weekday { font-size: 11px; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-day { height: 58px; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-day .be-day-number { top: 7px; left: 6px; font-size: 13px; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-day .be-day-availability-count { right: 3px; bottom: 3px; min-width: 20px; height: 20px; padding: 0 4px; font-size: 10px; }
  .flatpickr-calendar.be-room-availability-calendar .be-calendar-legend { gap: 10px; font-size: 11px; padding-top: 10px; }
  .flatpickr-calendar.be-room-availability-calendar .be-calendar-legend-item { gap: 5px; }
  .flatpickr-calendar.be-room-availability-calendar .be-calendar-legend-item i { width: 10px; height: 10px; }
}
/* The day badges replace the bulky availability banner under the date fields. Keep its live text accessible. */
.be-wrapper .be-date-availability { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }


/* v5.3.22: compact, content-sized and responsive availability calendar. */
.flatpickr-calendar.be-room-availability-calendar {
  width: min(370px, calc(100vw - 20px)) !important;
  max-width: calc(100vw - 20px) !important;
  padding: 8px !important;
  border-radius: 14px !important;
  overflow: hidden !important;
}
.flatpickr-calendar.be-room-availability-calendar .flatpickr-months { gap: 5px !important; padding: 0 0 5px !important; min-height: 40px !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-months .flatpickr-month { height: 40px !important; min-width: 0 !important; overflow: visible !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month { top: 8px !important; font-size: 15px !important; line-height: 1 !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month input.cur-year { font-size: 15px !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-prev-month,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-next-month { flex: 0 0 32px !important; width: 32px !important; height: 32px !important; padding: 5px !important; border-radius: 9px !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-prev-month svg,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-next-month svg { width: 13px !important; height: 13px !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-weekdays { height: 27px !important; }
.flatpickr-calendar.be-room-availability-calendar span.flatpickr-weekday { font-size: 11px !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-innerContainer,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-rContainer,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-days,
.flatpickr-calendar.be-room-availability-calendar .dayContainer { width: 100% !important; min-width: 0 !important; max-width: none !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day { flex: 0 0 14.2857% !important; width: 14.2857% !important; height: 46px !important; min-width: 0 !important; max-width: none !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day .be-day-number { top: 6px !important; left: 7px !important; font-size: 14px !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day .be-day-availability-count { right: 3px !important; bottom: 3px !important; min-width: 21px !important; height: 21px !important; padding: 0 4px !important; font-size: 11px !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.selected::before,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.startRange::before,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.endRange::before { top: 5px !important; left: 5px !important; width: 30px !important; height: 30px !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.selected .be-day-number,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.startRange .be-day-number,
.flatpickr-calendar.be-room-availability-calendar .flatpickr-day.endRange .be-day-number { top: 13px !important; left: 5px !important; width: 30px !important; font-size: 14px !important; }
.flatpickr-calendar.be-room-availability-calendar .be-calendar-legend { gap: 9px !important; padding: 8px 2px 1px !important; font-size: 10px !important; }
.flatpickr-calendar.be-room-availability-calendar .be-calendar-legend-item { gap: 5px !important; }
.flatpickr-calendar.be-room-availability-calendar .be-calendar-legend-item i { width: 9px !important; height: 9px !important; }
@media (max-width: 380px) {
  .flatpickr-calendar.be-room-availability-calendar { width: calc(100vw - 16px) !important; max-width: calc(100vw - 16px) !important; padding: 6px !important; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-day { height: 42px !important; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-day .be-day-number { left: 5px !important; top: 5px !important; font-size: 12px !important; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-day .be-day-availability-count { right: 2px !important; bottom: 2px !important; min-width: 18px !important; height: 18px !important; font-size: 10px !important; padding: 0 3px !important; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month,
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month input.cur-year { font-size: 13px !important; }
  .flatpickr-calendar.be-room-availability-calendar .be-calendar-legend { gap: 6px !important; font-size: 9px !important; }
}


/* v5.3.23: keep month and year compact, centered, and on one aligned line. */
.flatpickr-calendar.be-room-availability-calendar .flatpickr-months .flatpickr-month { position: relative !important; height: 40px !important; min-height: 40px !important; overflow: visible !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month { position: absolute !important; top: 4px !important; left: 40px !important; right: 40px !important; width: auto !important; height: 32px !important; padding: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 5px !important; white-space: nowrap !important; overflow: visible !important; line-height: 1 !important; font-size: 14px !important; box-sizing: border-box !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month .flatpickr-monthDropdown-months { position: static !important; display: inline-block !important; width: auto !important; max-width: calc(100% - 52px) !important; height: 22px !important; margin: 0 !important; padding: 0 2px 0 0 !important; font-size: 14px !important; line-height: 22px !important; vertical-align: middle !important; flex: 0 1 auto !important; box-sizing: border-box !important; }
.flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month input.cur-year { position: static !important; display: inline-block !important; width: 4ch !important; min-width: 4ch !important; max-width: 4ch !important; height: 22px !important; margin: 0 !important; padding: 0 !important; font-size: 14px !important; line-height: 22px !important; text-align: left !important; vertical-align: middle !important; flex: 0 0 4ch !important; box-sizing: content-box !important; }
@media (max-width: 380px) {
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month,
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month input.cur-year { font-size: 13px !important; }
  .flatpickr-calendar.be-room-availability-calendar .flatpickr-current-month { left: 36px !important; right: 36px !important; gap: 3px !important; }
}


/* v5.3.42: prevent UI flicker while booking selections recalculate. */
.be-wrapper .be-checkbox-item input[type=checkbox],
.be-wrapper .be-radio-item input[type=radio],
.be-wrapper .be-service-item input[type=checkbox],
.be-wrapper .be-service-item input[type=radio],
.be-wrapper input[type=checkbox],
.be-wrapper input[type=radio] {
  animation: none !important;
  transition: none !important;
  outline-offset: 2px;
}
.be-wrapper .be-checkbox-item,
.be-wrapper .be-radio-item,
.be-wrapper .be-service-item {
  animation: none !important;
  transition: none !important;
}
.be-wrapper #discount-global,
.be-wrapper #discount-saved {
  animation: none !important;
  transition: none !important;
}
.be-single-stay .be-single-booking-form .be-wrapper input[type=checkbox],
.be-single-stay .be-single-booking-form .be-wrapper input[type=radio] {
  animation: none !important;
  transition: none !important;
}


/* v5.3.43: stop blinking text caret on static booking copy and prevent animation-driven flicker. */
.be-wrapper, .be-single-stay { caret-color: transparent !important; }
.be-wrapper input, .be-wrapper textarea, .be-wrapper select, .be-single-stay input, .be-single-stay textarea, .be-single-stay select,
.be-wrapper [contenteditable="true"], .be-single-stay [contenteditable="true"] { caret-color: auto !important; }
.be-wrapper *, .be-wrapper *::before, .be-wrapper *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
.be-single-stay .be-single-side-note, .be-single-stay .be-single-side-note * { animation: none !important; transition: none !important; caret-color: transparent !important; }
.be-wrapper .flatpickr-day.be-past-date-disabled, .be-wrapper .flatpickr-day.flatpickr-disabled { color: #c4c9d0 !important; background: #f5f6f7 !important; border-color: #edf0f3 !important; opacity: .55 !important; cursor: not-allowed !important; pointer-events: none !important; text-decoration: line-through !important; }


/* v5.3.44: remove stray caret/selection affordances from static copy and readonly booking fields. */
.be-wrapper #checkin[readonly],
.be-wrapper #checkout[readonly],
.be-wrapper #units[readonly],
.be-single-stay .be-single-booking-form #checkin[readonly],
.be-single-stay .be-single-booking-form #checkout[readonly],
.be-single-stay .be-single-booking-form #units[readonly] {
  caret-color: transparent !important;
  -webkit-user-select: none !important;
  user-select: none !important;
}
.be-wrapper label,
.be-wrapper .be-inline-help,
.be-wrapper .be-availability-message,
.be-wrapper .be-discount-message,
.be-single-stay .be-single-side-note,
.be-single-stay .be-single-side-note *,
.be-single-stay .be-single-booking-form label {
  caret-color: transparent !important;
  -webkit-user-select: none !important;
  user-select: none !important;
}
.be-wrapper #checkin[readonly],
.be-wrapper #checkout[readonly] { cursor: pointer !important; }
.be-wrapper .flatpickr-day.be-past-date-disabled,
.be-wrapper .flatpickr-day.flatpickr-disabled {
  color: #c4c9d0 !important;
  background: #f5f6f7 !important;
  border-color: #edf0f3 !important;
  opacity: .55 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}


/* v5.3.45: make historical dates very faint in the popup calendar (Flatpickr appends it outside .be-wrapper). */
.flatpickr-calendar .flatpickr-day.be-past-date-disabled,
.flatpickr-calendar .flatpickr-day.flatpickr-disabled.be-past-date-disabled {
  color: #d9dde3 !important;
  background: #fbfcfd !important;
  border-color: #f3f5f7 !important;
  opacity: .22 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}
.flatpickr-calendar .flatpickr-day.be-past-date-disabled .be-day-number {
  color: #d9dde3 !important;
  opacity: .35 !important;
}
.flatpickr-calendar .flatpickr-day.be-past-date-disabled .be-day-availability-count {
  opacity: .18 !important;
  filter: grayscale(1) !important;
}

/* Fully booked dates are disabled after live availability data is loaded. */
.be-room-availability-calendar .flatpickr-day.be-sold-out-date,
.be-room-availability-calendar .flatpickr-day.be-sold-out-date:hover {
    color: #c8cdd3 !important;
    background: #f7f8f9 !important;
    border-color: #eef0f2 !important;
    cursor: not-allowed !important;
    opacity: .72;
}
.be-room-availability-calendar .flatpickr-day.be-sold-out-date .be-day-number {
    color: #c3c8ce !important;
}
.be-room-availability-calendar .flatpickr-day.be-sold-out-date .be-day-availability-count {
    opacity: .45;
}


/* v5.3.47: consistently fade past, disabled, and adjacent-month dates. */
.flatpickr-calendar .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar .flatpickr-day.flatpickr-disabled:hover,
.flatpickr-calendar .flatpickr-day.prevMonthDay,
.flatpickr-calendar .flatpickr-day.nextMonthDay {
    color: #b0b0b0 !important;
    background: transparent !important;
    border-color: transparent !important;
    opacity: .35 !important;
    box-shadow: none !important;
    text-decoration: none !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* Fade availability badges inside dates that are not selectable/current-month dates. */
.flatpickr-calendar .flatpickr-day.flatpickr-disabled .be-day-availability-count,
.flatpickr-calendar .flatpickr-day.prevMonthDay .be-day-availability-count,
.flatpickr-calendar .flatpickr-day.nextMonthDay .be-day-availability-count {
    opacity: .25 !important;
    filter: grayscale(1) !important;
}

/* jQuery UI Datepicker fallback. */
.ui-datepicker-calendar .ui-state-disabled span,
.ui-datepicker-calendar .ui-priority-secondary {
    opacity: .35 !important;
    color: #b0b0b0 !important;
}


/* v5.3.53: visibly fade historical/disabled days even when the custom renderer applies inline styles. */
.flatpickr-calendar .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar .flatpickr-day.flatpickr-disabled:hover,
.flatpickr-calendar .flatpickr-day.prevMonthDay,
.flatpickr-calendar .flatpickr-day.nextMonthDay,
.flatpickr-calendar .flatpickr-day.past,
.flatpickr-calendar .flatpickr-day.be-past-date-disabled {
    color: #94a3b8 !important;
    background-color: #f1f5f9 !important;
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    text-decoration: line-through !important;
}
.flatpickr-calendar .flatpickr-day.be-past-date-disabled .be-day-number,
.flatpickr-calendar .flatpickr-day.flatpickr-disabled .be-day-number {
    color: #94a3b8 !important;
    text-decoration: line-through !important;
}
.flatpickr-calendar .flatpickr-day.flatpickr-disabled .be-day-availability-count,
.flatpickr-calendar .flatpickr-day.prevMonthDay .be-day-availability-count,
.flatpickr-calendar .flatpickr-day.nextMonthDay .be-day-availability-count,
.flatpickr-calendar .flatpickr-day.past .be-day-availability-count,
.flatpickr-calendar .flatpickr-day.be-past-date-disabled .be-day-availability-count,
.flatpickr-calendar .flatpickr-day.flatpickr-disabled .availability-badge,
.flatpickr-calendar .flatpickr-day.prevMonthDay .availability-badge,
.flatpickr-calendar .flatpickr-day.nextMonthDay .availability-badge,
.flatpickr-calendar .flatpickr-day.be-past-date-disabled .availability-badge {
    display: none !important;
}


/* Booking form: prevent theme focus borders from outlining the selected payment row. */
.be-wrapper .be-box label.be-radio-item,
.be-wrapper .be-box label.be-radio-item:hover,
.be-wrapper .be-box label.be-radio-item:focus,
.be-wrapper .be-box label.be-radio-item:focus-within {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.be-wrapper .be-box label.be-radio-item {
    padding: 0 !important;
    border-radius: 0 !important;
}
.be-wrapper .be-box label.be-radio-item input[type="radio"]:focus-visible {
    outline: 2px solid rgba(44, 104, 82, .45) !important;
    outline-offset: 2px !important;
}

/* v5.3.60: Remove theme-generated outline/border around selected payment option rows. */
.be-wrapper .be-box .be-radio-item,
.be-wrapper .be-box .be-radio-item:hover,
.be-wrapper .be-box .be-radio-item:active,
.be-wrapper .be-box .be-radio-item:focus,
.be-wrapper .be-box .be-radio-item:focus-within,
.be-wrapper .be-box .be-radio-item:has(input[type="radio"]:checked) {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.be-wrapper .be-box .be-radio-item {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-height: 28px !important;
    margin: 0 !important;
    padding: 3px 0 !important;
    border-radius: 0 !important;
}
.be-wrapper .be-box .be-radio-item input[type="radio"] {
    flex: 0 0 auto !important;
    margin: 0 2px 0 0 !important;
}
.be-wrapper .be-box .be-radio-item input[type="radio"]:focus-visible {
    outline: 2px solid rgba(44, 104, 82, .55) !important;
    outline-offset: 2px !important;
}


/* v5.3.61: Force-remove borders on payment-option rows and their selected wrappers. */
body.be-booking-checkout .booking-engine input[type="radio"]:checked + label,
body.be-booking-checkout .booking-engine .payment-option-wrapper,
body.be-booking-checkout .booking-engine .payment-option-wrapper:hover,
body.be-booking-checkout .booking-engine .payment-option-wrapper:focus,
body.be-booking-checkout .booking-engine .payment-option-wrapper:focus-within,
body.be-booking-checkout .booking-engine .payment-option-wrapper.selected,
body.be-booking-checkout .booking-engine .payment-option-wrapper.is-checked,
body.be-booking-checkout .checkout-container .payment-option.active,
body.be-booking-checkout .payment-option-wrapper.selected,
body.be-booking-checkout .payment-option-wrapper.is-checked,
body.be-booking-checkout .be-wrapper .be-box .be-radio-item,
body.be-booking-checkout .be-wrapper .be-box .be-radio-item:has(input[type="radio"]:checked) {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
}

/* Keep keyboard focus accessible on the actual radio control. */
body.be-booking-checkout .be-wrapper .be-box .be-radio-item input[type="radio"]:focus-visible {
    outline: 2px solid rgba(44, 104, 82, .55) !important;
    outline-offset: 2px !important;
}

/* v5.3.62: Definitively remove the selected payment-row rectangle. Keep the outer Payment Option card intact. */
.be-wrapper label.be-radio-item,
.be-wrapper label.be-radio-item:hover,
.be-wrapper label.be-radio-item:active,
.be-wrapper label.be-radio-item:focus,
.be-wrapper label.be-radio-item:focus-within,
.be-wrapper label.be-radio-item:has(> input[type="radio"]:checked),
.be-wrapper label.be-radio-item:has(input[type="radio"]:checked),
.be-wrapper .be-box > label.be-radio-item,
.be-wrapper .be-box > label.be-radio-item:has(input:checked) {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}
.be-wrapper label.be-radio-item::before,
.be-wrapper label.be-radio-item::after {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
}
.be-wrapper label.be-radio-item input[type="radio"] {
    outline: none !important;
    box-shadow: none !important;
}
.be-wrapper label.be-radio-item input[type="radio"]:focus-visible {
    outline: 2px solid rgba(44, 104, 82, .55) !important;
    outline-offset: 2px !important;
}


/* v5.3.86: stable, fast discount-note reveal during live price recalculation. */
.be-wrapper #discount-global {
  display: block !important;
  box-sizing: border-box;
  max-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-3px);
  transition: max-height .16s ease, opacity .12s ease, transform .16s ease,
              margin .16s ease, padding .16s ease !important;
  will-change: max-height, opacity, transform;
}
.be-wrapper #discount-global.anim-show {
  max-height: 96px;
  margin-top: 8px;
  margin-bottom: 8px;
  padding-top: 8px;
  padding-bottom: 8px;
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.be-wrapper #discount-global.anim-hide {
  max-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-3px);
}
@media (prefers-reduced-motion: reduce) {
  .be-wrapper #discount-global {
    transition: none !important;
    transform: none;
  }
}


/* v5.3.88: discount note spacing, stable first render and mini-fatake burst. */
.be-wrapper #discount-global {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    margin: -12px 0 8px !important;
    padding: 0 12px !important;
    min-height: 0;
    max-height: 0;
    overflow: hidden !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-5px);
    transition: max-height .3s ease-in-out, opacity .3s ease-in-out,
        transform .3s ease-in-out, padding .3s ease-in-out,
        margin .3s ease-in-out !important;
    will-change: opacity, transform, max-height;
}
.be-wrapper #discount-global.is-pending {
    min-height: 38px;
    max-height: 100px;
    padding: 8px 12px !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(0);
}
.be-wrapper #discount-global.anim-show {
    min-height: 38px;
    max-height: 100px;
    margin: -12px 0 8px !important;
    padding: 8px 12px !important;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.be-wrapper #discount-global.anim-hide {
    min-height: 0;
    max-height: 0;
    margin: -12px 0 0 !important;
    padding: 0 12px !important;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-5px);
}
.be-wrapper #discount-global .be-discount-icon {
    display: inline-flex;
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    line-height: 1;
    transform-origin: center;
}
.be-wrapper #discount-global .be-discount-text {
    display: block;
    min-width: 0;
    line-height: 1.4;
}
.be-wrapper #discount-global:not(.applied) {
    background: #f3f7ef !important;
    border: 1px solid #dce8d5 !important;
    color: #276047 !important;
}
.be-wrapper #discount-global.applied {
    background: #edf8ef !important;
    border: 1px solid #b9dfc2 !important;
    color: #17643b !important;
}
.be-wrapper #discount-global .be-fatake-layer {
    position: absolute;
    inset: 0;
    overflow: visible;
    pointer-events: none;
    z-index: 3;
}
.be-wrapper #discount-global .be-fatake-particle {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 5px;
    height: 7px;
    border-radius: 2px;
    background: var(--color);
    opacity: 0;
    pointer-events: none;
    animation: be-fatake-particle-burst .65s cubic-bezier(.15,.75,.25,1) var(--delay, 0ms) forwards;
}
.be-wrapper #discount-global.be-fatake-active .be-discount-icon {
    animation: be-fatake-icon-pop .55s cubic-bezier(.2,.8,.25,1.25) both;
}
@keyframes be-fatake-particle-burst {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.35) rotate(0deg); }
    18% { opacity: 1; }
    100% { opacity: 0; transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(0) rotate(220deg); }
}
@keyframes be-fatake-icon-pop {
    0% { transform: scale(.65) rotate(-14deg); }
    48% { transform: scale(1.35) rotate(12deg); }
    76% { transform: scale(.92) rotate(-4deg); }
    100% { transform: scale(1) rotate(0); }
}
@media (prefers-reduced-motion: reduce) {
    .be-wrapper #discount-global,
    .be-wrapper #discount-global * {
        animation: none !important;
        transition: none !important;
    }
}


/* v5.3.90: booking-form layout stability.
 * Isolate layout recalculation and avoid replacing existing unit-card nodes.
 */
.be-wrapper #unit-container {
    position: relative;
    min-width: 0;
    contain: layout style;
}

.be-wrapper #unit-container > .be-card {
    box-sizing: border-box;
    min-width: 0;
}

/* Keep the remaining-balance row's space reserved when full payment is chosen. */
.be-wrapper #balance-info {
    display: block !important;
    min-height: 1.4em;
    visibility: hidden;
}
.be-wrapper #balance-info[aria-hidden="false"] { visibility: visible; }

/* =========================================================
   v5.3.112 — STABLE, ISOLATED DISCOUNT BANNER
   The slot is present at first paint; state changes never hide it.
   ========================================================= */
.be-wrapper .be-discount-slot {
    display: block !important;
    position: relative;
    width: 100%;
    min-width: 0;
    height: 70px;
    min-height: 70px;
    margin: 8px 0 12px;
    padding: 0;
    box-sizing: border-box;
}
.be-wrapper #booking-discount-banner #discount-global {
    position: relative !important;
    isolation: isolate;
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 11px !important;
    width: 100% !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 15px !important;
    overflow: hidden !important;
    border: 1px solid transparent !important;
    border-radius: 11px !important;
    font-family: inherit !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-align: left !important;
    white-space: nowrap !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform-origin: center;
    transition: background-color .3s ease, border-color .3s ease, color .3s ease, box-shadow .3s ease !important;
}
.be-wrapper #booking-discount-banner .be-discount-icon {
    position: relative !important;
    z-index: 2;
    display: inline-flex !important;
    flex: 0 0 26px !important;
    align-items: center !important;
    justify-content: center !important;
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    margin: 0 !important;
    padding: 0 !important;
}
.be-wrapper #booking-discount-banner .be-icon-gift,
.be-wrapper #booking-discount-banner .be-icon-success {
    position: absolute;
    inset: 1px;
    display: block;
    width: 24px;
    height: 24px;
    transition: opacity .2s ease, transform .2s ease;
}
.be-wrapper #booking-discount-banner .be-icon-gift { opacity: 1; transform: scale(1); }
.be-wrapper #booking-discount-banner .be-icon-success { opacity: 0; transform: scale(.65); }
.be-wrapper #booking-discount-banner .be-discount-text {
    position: relative !important;
    z-index: 2;
    display: block !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    color: inherit !important;
    font-size: inherit !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
}
.be-wrapper #booking-discount-banner #discount-global.be-discount-idle {
    color: #704300 !important;
    background: linear-gradient(110deg, #fff0b5 0%, #fff8df 52%, #ffe49a 100%) !important;
    border-color: #edb632 !important;
    box-shadow: 0 4px 14px rgba(183,119,0,.17);
    animation: be112-pulse 2.2s ease-in-out infinite;
}
.be-wrapper #booking-discount-banner #discount-global.be-discount-idle::after {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(105deg, transparent 25%, rgba(255,255,255,.68) 48%, transparent 72%);
    transform: translateX(-120%);
    animation: be112-shimmer 4s ease-in-out infinite;
}
@keyframes be112-pulse {
    0%, 100% { transform: scale(1); box-shadow: 0 4px 14px rgba(183,119,0,.17); }
    50% { transform: scale(1.012); box-shadow: 0 7px 20px rgba(183,119,0,.25), 0 0 0 4px rgba(239,181,47,.12); }
}
@keyframes be112-shimmer {
    0%, 68%, 100% { transform: translateX(-120%); }
    88% { transform: translateX(120%); }
}
.be-wrapper #booking-discount-banner #discount-global.discount-applied,
.be-wrapper #booking-discount-banner #discount-global.applied {
    color: #075b2d !important;
    background: linear-gradient(110deg, #c9f7d8 0%, #edfff2 50%, #b9efcb 100%) !important;
    border-color: #32ad62 !important;
    box-shadow: 0 5px 19px rgba(22,163,74,.22);
    animation: be112-success .85s cubic-bezier(.18,.89,.32,1.35) both;
}
.be-wrapper #booking-discount-banner #discount-global.discount-applied .be-icon-gift,
.be-wrapper #booking-discount-banner #discount-global.applied .be-icon-gift { opacity: 0; transform: scale(.65); }
.be-wrapper #booking-discount-banner #discount-global.discount-applied .be-icon-success,
.be-wrapper #booking-discount-banner #discount-global.applied .be-icon-success { opacity: 1; transform: scale(1); }
@keyframes be112-success {
    0% { transform: scale(.91) translateY(3px); }
    32% { transform: scale(1.055) translateY(-2px); }
    52% { transform: scale(.985); }
    75% { transform: scale(1.018); }
    100% { transform: scale(1); }
}
.be-wrapper #booking-discount-banner #discount-global .be-celebration-confetti {
    position: absolute;
    z-index: 5;
    left: 50%;
    top: 50%;
    width: 6px;
    height: 10px;
    border-radius: 2px;
    background: var(--be-color, #facc15);
    pointer-events: none;
    animation: be112-confetti .95s ease-out var(--be-delay, 0ms) both;
}
@keyframes be112-confetti {
    from { opacity: 1; transform: translate(-50%,-50%) scale(.4); }
    to { opacity: 0; transform: translate(calc(-50% + var(--be-x)), calc(-50% + var(--be-y))) rotate(var(--be-rot)) scale(1); }
}
@media (max-width: 380px) {
    .be-wrapper #booking-discount-banner #discount-global { gap: 8px !important; padding: 0 10px !important; font-size: 12.5px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .be-wrapper #booking-discount-banner #discount-global,
    .be-wrapper #booking-discount-banner #discount-global::after,
    .be-wrapper #booking-discount-banner #discount-global .be-celebration-confetti {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }
}

/* Shared blocked-date manager — Campizo inventory theme */
.be-blocked-manager{margin:16px 0 18px;border:1px solid #e2ebe7;border-radius:12px;background:#fff;overflow:hidden}
.be-blocked-manager>.be-portal-panel-head{padding:18px 20px 14px;align-items:flex-start}
.be-blocked-total{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #f2cbc7;background:#fff2f0;color:#b42318;border-radius:30px;padding:7px 11px;font-size:11px;font-weight:700}
.be-blocked-rule-list{display:grid;gap:10px;padding:0 18px}
.be-blocked-rule{display:grid;grid-template-columns:minmax(155px,.75fr) minmax(180px,1fr) minmax(250px,1.5fr) auto;gap:12px;align-items:end;padding:14px;background:#f8fbfa;border:1px solid #e1eae5;border-radius:8px;transition:background .2s,border-color .2s}
.be-blocked-rule:hover{background:#f4f9f6;border-color:#c8ded3}
.be-blocked-rule label{display:grid;gap:6px;color:#31564b;font-size:11px;font-weight:650}
.be-blocked-rule input,.be-blocked-rule select{box-sizing:border-box;width:100%;min-width:0;min-height:41px;border:1px solid #d6e4dd;border-radius:8px;background:#fff;padding:8px 10px;color:#173d35;font:inherit;font-size:12px}
.be-specific-fields,.be-range-fields{display:none;min-width:0;opacity:0;transform:translateY(3px);transition:opacity .18s ease,transform .18s ease}
.be-specific-fields.is-visible,.be-range-fields.is-visible{display:grid;opacity:1;transform:translateY(0)}
.be-range-fields{grid-template-columns:1fr 1fr;gap:10px}
.be-remove-rule{border:1px solid #f0cfcc;border-radius:8px;background:#fff;color:#ad3028;padding:10px 12px;font-size:11px;font-weight:650;cursor:pointer}
.be-remove-rule:hover{background:#fff1f0}
.be-blocked-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 18px 0}
#be-add-rule{border:1px solid #b9d9cb;border-radius:8px;background:#fff;color:#126b55;padding:10px 14px;font-size:12px;font-weight:700;cursor:pointer}
.be-save-blocked{border:0;border-radius:8px;background:#14745e;color:#fff;padding:11px 18px;font-size:12px;font-weight:700;cursor:pointer}
.be-save-blocked:hover{background:#105d4c}
.be-blocked-help{margin:12px 18px 18px;color:#71847e;font-size:11px;line-height:1.5}
.be-portal-day.is-blocked{background:#fff2f0!important;border-color:#efc2bd!important}
.be-portal-day.is-blocked .be-portal-day-count{color:#ad3028!important;background:#ffe3df!important}
@media(max-width:900px){.be-blocked-rule{grid-template-columns:1fr 1fr}.be-range-fields{grid-column:1/-1}.be-remove-rule{justify-self:start}}
@media(max-width:600px){.be-blocked-manager>.be-portal-panel-head{display:block}.be-blocked-total{margin-top:10px}.be-blocked-rule{grid-template-columns:1fr}.be-range-fields{grid-template-columns:1fr}.be-blocked-actions{align-items:stretch;flex-direction:column}.be-blocked-actions button{width:100%}}

.flatpickr-day.be-globally-blocked{background:#fee2e2!important;border-color:#fecaca!important;color:#a52a24!important;box-shadow:none!important;opacity:.72}

.be-blocked-mode-label{border:0;padding:0;margin:0;min-width:0;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.be-blocked-mode-label legend{font-size:11px;font-weight:650;color:#31564b;margin-bottom:7px}
.be-mode-option{display:inline-flex!important;align-items:center;gap:6px!important;border:1px solid #d6e4dd;border-radius:7px;background:#fff;padding:8px 10px;cursor:pointer}
.be-mode-option input{width:14px!important;min-height:14px!important;margin:0;accent-color:#14745e}
