/* Bokotel reservation cart: CSS3 div layout + mobile floating cart */
.reservation_cart,
.reservation_cart_div{
    width:100%;
    box-sizing:border-box;
}

.reservation_cart_div{
    display:block;
    margin:14px auto;
    border:1px solid #e5eaf2;
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 30px rgba(15,35,65,.08);
    overflow:hidden;
}

.reservation_cart_div .reservation_cart_row{
    display:grid;
    grid-template-columns:44px minmax(90px,1.1fr) minmax(140px,2fr) minmax(90px,.9fr);
    align-items:center;
    gap:10px;
    padding:12px 14px;
    border-bottom:1px solid #eef2f7;
}

.reservation_cart_div .reservation_cart_row:last-child{
    border-bottom:0;
}

.reservation_cart_div .reservation_cart_row.header,
.reservation_cart_div .reservation_cart_row.is-header{
    background:linear-gradient(180deg,#f8fafc,#eef4fb);
    font-weight:700;
    color:#23364b;
}

.reservation_cart_div .reservation_cart_cell{
    min-width:0;
    word-break:break-word;
    box-sizing:border-box;
}

.reservation_cart_div .reservation_cart_cell h4{
    margin:0;
    font-size:17px;
    color:#102a43;
}

.reservation_cart_div .reservation_cart_cell img{
    max-width:100%;
    height:auto;
    border-radius:10px;
}

.reservation_cart_div .reservation_cart_cell input,
.reservation_cart_div .reservation_cart_cell select,
.reservation_cart_div .reservation_cart_cell textarea{
    max-width:100%;
}

.bokotel-floating-cart{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:9998;
    display:flex;
    align-items:center;
    justify-content:center;
    width:56px;
    height:56px;
    border:0;
    border-radius:999px;
    background:#ff7a21;
    color:#fff;
    font-size:25px;
    cursor:pointer;
    box-shadow:0 12px 30px rgba(255,122,33,.36);
}

.bokotel-floating-cart-count{
    position:absolute;
    right:-4px;
    top:-5px;
    min-width:21px;
    height:21px;
    padding:0 5px;
    border-radius:999px;
    background:#102a43;
    color:#fff;
    font-size:12px;
    font-weight:700;
    line-height:21px;
}

.bokotel-floating-cart-panel{
    position:fixed;
    right:18px;
    bottom:86px;
    z-index:9997;
    width:min(420px, calc(100vw - 28px));
    max-height:70vh;
    overflow:auto;
    display:none;
    background:#fff;
    border:1px solid #e4eaf2;
    border-radius:18px;
    box-shadow:0 18px 50px rgba(15,35,65,.24);
}

.bokotel-floating-cart-panel.is-open{
    display:block;
}

.bokotel-floating-cart-panel-header{
    position:sticky;
    top:0;
    z-index:2;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:12px 14px;
    background:#102a43;
    color:#fff;
    font-weight:700;
}

.bokotel-floating-cart-panel-close{
    border:0;
    background:rgba(255,255,255,.16);
    color:#fff;
    border-radius:9px;
    width:32px;
    height:32px;
    cursor:pointer;
    font-size:18px;
}

.bokotel-floating-cart-panel-body{
    padding:10px;
}

.bokotel-floating-cart-panel-body .reservation_cart_div{
    margin:0;
    box-shadow:none;
    border-radius:12px;
}

@media (max-width: 767px){
    .reservation_cart_div{
        margin:10px 0;
        border-radius:14px;
    }

    .reservation_cart_div .reservation_cart_row{
        display:block;
        padding:12px;
    }

    .reservation_cart_div .reservation_cart_row.header,
    .reservation_cart_div .reservation_cart_row.is-header{
        display:none;
    }

    .reservation_cart_div .reservation_cart_cell{
        display:block;
        padding:4px 0;
    }

    .reservation_cart_div .reservation_cart_cell:empty{
        display:none;
    }

    .reservation_cart_div .reservation_cart_cell[data-label]::before{
        content:attr(data-label);
        display:block;
        margin-bottom:2px;
        font-size:12px;
        font-weight:700;
        color:#6b7a90;
    }

    .bokotel-floating-cart{
        width:52px;
        height:52px;
        right:14px;
        bottom:14px;
        font-size:23px;
    }

    .bokotel-floating-cart-panel{
        right:8px;
        left:8px;
        bottom:76px;
        width:auto;
        max-height:72vh;
    }
}
