/* ==========================================================
   BOOKING SEARCH MODULE FIX
   File: templates/default/css/booking-search-fix.css
   Scope: only Rezervari / booking page search form
   Goal: match approved mockup layout
   ========================================================== */

#page #content.booking-modern-page{
    background:#f7f8fb !important;
}

/* Position the search card under the hero */
#page #search-page{
    position:relative !important;
    z-index:50 !important;
    margin-top:-86px !important;
    margin-bottom:34px !important;
    background:transparent !important;
}

#page #search-page > .container{
    width:100% !important;
    max-width:1180px !important;
    padding-left:15px !important;
    padding-right:15px !important;
}

/* Search card */
#page #search-page .booking-search{
    display:block !important;
    width:100% !important;
    background:#fff !important;
    border:1px solid rgba(23,55,99,.08) !important;
    border-radius:16px !important;
    box-shadow:0 18px 44px rgba(23,55,99,.14) !important;
    padding:24px 26px 26px !important;
    overflow:visible !important;
}

/* First row: make Bootstrap row a fixed grid */
#page #search-page .booking-search > .row:first-child{
    display:grid !important;
    grid-template-columns: 1.45fr 1fr 1fr .95fr .75fr 92px !important;
    align-items:center !important;
    column-gap:0 !important;
    row-gap:0 !important;
    width:100% !important;
    margin:0 !important;
    padding:0 0 22px !important;
    border-bottom:1px solid rgba(23,55,99,.10) !important;
}

#page #search-page .booking-search > .row:first-child:before,
#page #search-page .booking-search > .row:first-child:after{
    display:none !important;
    content:none !important;
}

#page #search-page .booking-search > .row:first-child > div{
    float:none !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    height:56px !important;
    padding:0 18px !important;
    margin:0 !important;
    border-right:1px solid rgba(23,55,99,.11) !important;
    display:flex !important;
    align-items:center !important;
    overflow:visible !important;
}

#page #search-page .booking-search > .row:first-child > div:first-child{
    padding-left:0 !important;
}

#page #search-page .booking-search > .row:first-child > div:last-child{
    padding-right:0 !important;
    border-right:0 !important;
    justify-content:flex-end !important;
}

/* Reset form internals */
#page #search-page .booking-search .form-group,
#page #search-page .booking-search .input-wrapper,
#page #search-page .booking-search .datepicker-wrapper,
#page #search-page .booking-search .input-group{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}

#page #search-page .booking-search .form-inline{
    display:flex !important;
}

#page #search-page .booking-search .input-wrapper{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
}

#page #search-page .booking-search .datepicker-wrapper{
    display:grid !important;
    grid-template-columns:18px minmax(0,1fr) 18px minmax(0,1fr) !important;
    align-items:center !important;
    gap:10px !important;
}

#page #search-page .booking-search .input-group{
    display:flex !important;
    align-items:center !important;
}

#page #search-page .booking-search .from-date,
#page #search-page .booking-search .to-date{
    width:100% !important;
    min-width:0 !important;
}

/* Icons */
#page #search-page .booking-search .input-wrapper > i,
#page #search-page .booking-search .datepicker-wrapper > i,
#page #search-page .booking-search .input-group-addon i{
    flex:0 0 auto !important;
    width:18px !important;
    color:#173763 !important;
    opacity:.62 !important;
    font-size:16px !important;
    text-align:center !important;
}

/* Small labels */
#page #search-page .booking-search .input-group-addon{
    flex:0 0 auto !important;
    display:inline-flex !important;
    align-items:center !important;
    width:auto !important;
    min-width:0 !important;
    height:auto !important;
    border:0 !important;
    background:transparent !important;
    color:#173763 !important;
    font-size:11px !important;
    line-height:1 !important;
    font-weight:800 !important;
    text-transform:uppercase !important;
    letter-spacing:.05em !important;
    padding:0 8px 0 0 !important;
    white-space:nowrap !important;
}

/* Inputs/selects */
#page #search-page .booking-search .form-control,
#page #search-page .booking-search select.form-control,
#page #search-page .booking-search .selectpicker,
#page #search-page .booking-search .bootstrap-select > .dropdown-toggle{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:38px !important;
    min-height:38px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    color:#526179 !important;
    font-size:14px !important;
    line-height:38px !important;
    text-align:left !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
}

#page #search-page .booking-search .bootstrap-select{
    width:100% !important;
    min-width:0 !important;
}

#page #search-page .booking-search .bootstrap-select > .dropdown-toggle{
    padding-right:20px !important;
}

#page #search-page .booking-search .from-date input,
#page #search-page .booking-search .to-date input{
    width:100% !important;
    min-width:0 !important;
    text-align:left !important;
}

#page #search-page .booking-search input::placeholder{
    color:#526179 !important;
    opacity:1 !important;
}

/* Search button */
#page #search-page .booking-search button.btn-primary{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:78px !important;
    min-width:78px !important;
    max-width:78px !important;
    height:52px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:8px !important;
    background:#173763 !important;
    color:#fff !important;
    font-size:13px !important;
    font-weight:800 !important;
    text-transform:uppercase !important;
    letter-spacing:.04em !important;
    box-shadow:none !important;
}

/* Sliders row */
#page #search-page .booking-search .row.mb5.mt10{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    align-items:start !important;
    column-gap:92px !important;
    width:100% !important;
    margin:24px 0 0 !important;
    padding:0 74px !important;
}

#page #search-page .booking-search .row.mb5.mt10:before,
#page #search-page .booking-search .row.mb5.mt10:after{
    display:none !important;
    content:none !important;
}

#page #search-page .booking-search .row.mb5.mt10 > .col-sm-6{
    float:none !important;
    width:auto !important;
    padding:0 !important;
}

#page #search-page .booking-search .row.mb5.mt10 label{
    float:none !important;
    display:block !important;
    width:100% !important;
    padding:0 !important;
    margin:0 0 14px !important;
    color:#173763 !important;
    font-size:12px !important;
    font-weight:800 !important;
    line-height:1.2 !important;
    text-align:center !important;
    text-transform:uppercase !important;
    letter-spacing:.04em !important;
}

#page #search-page .booking-search .row.mb5.mt10 .col-sm-9{
    float:none !important;
    width:100% !important;
    padding:0 !important;
}

#page #search-page .nouislider-wrapper{
    text-align:center !important;
    color:#6b7688 !important;
    font-size:14px !important;
}

#page #search-page .nouislider{
    height:4px !important;
    margin:0 0 16px !important;
    background:#5a8dff !important;
    border:0 !important;
    box-shadow:none !important;
}

#page #search-page .nouislider .noUi-connect{
    background:#173763 !important;
}

#page #search-page .nouislider .noUi-handle{
    width:18px !important;
    height:18px !important;
    top:-7px !important;
    border-radius:50% !important;
    background:#fff !important;
    border:1px solid #8ba2c7 !important;
    box-shadow:0 2px 8px rgba(23,55,99,.18) !important;
}

#page #search-page .nouislider .noUi-handle:before,
#page #search-page .nouislider .noUi-handle:after{
    display:none !important;
}

#page #search-page .slider-target{
    width:auto !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    color:#6b7688 !important;
    text-align:center !important;
}

/* Debug helpers: add class bsf-debug on body if needed */
body.bsf-debug #page #search-page .booking-search > .row:first-child{
    outline:2px solid red !important;
}
body.bsf-debug #page #search-page .booking-search > .row:first-child > div{
    outline:1px dashed blue !important;
}

/* Responsive */
@media(max-width:991px){
    #page #search-page{
        margin-top:-46px !important;
    }

    #page #search-page .booking-search{
        padding:18px !important;
    }

    #page #search-page .booking-search > .row:first-child{
        display:block !important;
        padding-bottom:12px !important;
    }

    #page #search-page .booking-search > .row:first-child > div{
        display:block !important;
        width:100% !important;
        height:auto !important;
        padding:12px 0 !important;
        border-right:0 !important;
        border-bottom:1px solid rgba(23,55,99,.10) !important;
    }

    #page #search-page .booking-search > .row:first-child > div:last-child{
        border-bottom:0 !important;
    }

    #page #search-page .booking-search button.btn-primary{
        width:100% !important;
        max-width:none !important;
    }

    #page #search-page .booking-search .row.mb5.mt10{
        display:block !important;
        padding:0 !important;
        column-gap:0 !important;
    }

    #page #search-page .booking-search .row.mb5.mt10 > .col-sm-6{
        padding:12px 0 !important;
    }
}

@media(max-width:767px){
    #page #search-page > .container{
        width:calc(100% - 24px) !important;
        padding:0 !important;
    }
}



/* PATCH 34 - select fix: keep native select working, hide duplicated bootstrap-select UI */
/* The previous fix hid the real <select>. This keeps the real select usable. */

#page #search-page .booking-search select.selectpicker,
#page #search-page .booking-search select.form-control.selectpicker{
    display:block !important;
    visibility:visible !important;
    position:relative !important;
    left:auto !important;
    width:100% !important;
    height:38px !important;
    min-height:38px !important;
    opacity:1 !important;
    pointer-events:auto !important;
    appearance:auto !important;
    -webkit-appearance:menulist !important;
    -moz-appearance:menulist !important;
    padding:0 22px 0 0 !important;
    border:0 !important;
    background:transparent !important;
    color:#526179 !important;
    font-size:14px !important;
    line-height:38px !important;
    box-shadow:none !important;
}

/* Hide Bootstrap-select generated duplicate only inside booking search */
#page #search-page .booking-search select.selectpicker + .bootstrap-select,
#page #search-page .booking-search .bootstrap-select{
    display:none !important;
    visibility:hidden !important;
    pointer-events:none !important;
}

/* Adults/children native selects should not overlap labels */
#page #search-page .booking-search .input-group{
    gap:4px !important;
}

#page #search-page .booking-search .input-group-addon{
    flex:0 0 auto !important;
}


/* Patch 160 - harta proprietatilor active din rezultatele rezervarii */
.booking-results-map-box{background:#fff;border:1px solid rgba(31,72,128,.13);border-radius:15px;box-shadow:0 8px 25px rgba(23,55,99,.08);overflow:hidden}
.booking-results-map-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border-bottom:1px solid rgba(31,72,128,.10)}
.booking-results-map-heading h2{margin:0 0 4px;color:#0c3e72;font-size:22px;font-weight:700}
.booking-results-map-heading p{margin:0;color:#66758a;font-size:14px}
.booking-results-map{height:420px;width:100%;background:#eef3f8}
.booking-results-map .leaflet-popup-content-wrapper{border-radius:12px;overflow:hidden;padding:0;box-shadow:0 12px 30px rgba(18,44,78,.22)}
.booking-results-map .leaflet-popup-content{margin:0;width:270px!important}
.booking-map-popup img{display:block;width:100%;height:135px;object-fit:cover}
.booking-map-popup-body{padding:13px 14px 14px}
.booking-map-popup h3{margin:0;color:#0b3c70;font-size:17px;line-height:1.25;font-weight:700}
.booking-map-popup-stars{margin-top:4px;color:#ff9f00;font-size:13px;letter-spacing:1px}
.booking-map-popup p{margin:5px 0 8px;color:#66758a;font-size:13px;line-height:1.35}
.booking-map-popup-price{margin-bottom:10px;color:#24445f;font-size:13px}
.booking-map-popup-price strong{color:#1257a6;font-size:16px}
.booking-map-popup-actions{display:flex;gap:7px}
.booking-map-popup-actions .btn{flex:1;padding:7px 8px;font-size:11px;font-weight:700}
.booking-modern-card{transition:box-shadow .25s ease,transform .25s ease,border-color .25s ease}
.booking-modern-card.booking-map-card-highlight{border-color:#4e8ff7!important;box-shadow:0 0 0 4px rgba(78,143,247,.18),0 12px 30px rgba(23,55,99,.14)!important;transform:translateY(-2px)}
@media(max-width:767px){
    .booking-results-map-heading{align-items:flex-start;flex-direction:column;padding:15px}
    .booking-results-map-heading .btn{width:100%}
    .booking-results-map{height:330px}
}

/* Patch 161 - comutator harta Centrocoop / destinatie */
.booking-results-map-heading-v2{align-items:flex-start;gap:18px;flex-wrap:wrap}
.booking-map-title-wrap{flex:1 1 300px}
.booking-map-scope-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;max-width:100%}
.booking-map-scope-btn{border:1px solid #d7e0ed;background:#fff;color:#173b68;border-radius:7px;padding:10px 13px;font-weight:600;box-shadow:none;transition:.18s ease}
.booking-map-scope-btn:hover,.booking-map-scope-btn:focus{border-color:#4d8cff;color:#1f65d6;background:#f5f9ff}
.booking-map-scope-btn.active{background:#eef5ff;border-color:#4d8cff;color:#165fc8;box-shadow:inset 0 0 0 1px rgba(77,140,255,.12)}
.booking-map-count{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;margin-left:5px;padding:0 6px;border-radius:999px;background:#e8eef7;color:#23466f;font-size:11px;font-weight:700}
.booking-map-scope-btn.active .booking-map-count{background:#4d8cff;color:#fff}
.booking-map-loading{display:none;position:absolute;z-index:1001;left:50%;top:58%;transform:translate(-50%,-50%);padding:10px 15px;background:rgba(255,255,255,.95);border:1px solid #dbe3ed;border-radius:7px;box-shadow:0 5px 18px rgba(24,53,87,.15);color:#173b68;font-weight:600}
.booking-map-loading.visible{display:block}
.booking-results-map-box{position:relative}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(77,140,255,.28)}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:#4d8cff;color:#fff;font-weight:700}
@media(max-width:991px){.booking-map-scope-actions{justify-content:flex-start;width:100%}.booking-map-scope-btn{flex:1 1 220px}.booking-map-fit-btn{flex:0 0 auto}}
@media(max-width:575px){.booking-map-scope-btn,.booking-map-fit-btn{width:100%;flex:1 1 100%}.booking-results-map{height:360px}}
