.hv-rental-wrapper{
    margin-top:24px;
    padding:34px 36px;
    border:1px solid #e5edf5;
    border-radius:28px;
    background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%);
    box-shadow:0 10px 30px rgba(15,23,42,.04);
}

.hv-rental-heading{
    margin-bottom:24px;
}

.hv-rental-heading h3,
.hv-lookup-wrapper h3{
    margin:0 0 12px;
    color:#02a1d8;
    font-size:clamp(28px,3vw,42px);
    line-height:1.18;
    font-weight:700;
    letter-spacing:-0.02em;
}

.hv-rental-note,
.hv-booking-intro,
.hv-lookup-wrapper p{
    margin:0;
    color:#243b53;
    font-size:17px;
    line-height:1.75;
}

.hv-term-picker{
    margin:0 0 24px;
}

.hv-term-picker label{
    display:block;
    margin-bottom:10px;
    color:#102a43;
    font-size:17px;
    font-weight:700;
}

.hv-custom-term,
.hv-popup-inner input,
.hv-lookup-form input{
    width:100%;
    height:58px;
    padding:0 18px;
    border:1.5px solid #d9e4f0;
    border-radius:16px;
    background:#fff;
    color:#102a43;
    font-size:20px;
    font-weight:600;
    box-shadow:inset 0 1px 2px rgba(15,23,42,.03);
    transition:border-color .25s ease, box-shadow .25s ease, background-color .25s ease;
}

.hv-custom-term:focus,
.hv-popup-inner input:focus,
.hv-lookup-form input:focus{
    border-color:#02a1d8;
    outline:none;
    box-shadow:0 0 0 4px rgba(2,161,216,.12);
}

.hv-term-help{
    margin:12px 0 0;
    color:#486581;
    font-size:16px;
}

.hv-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-top:0;
}

.hv-plan{
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    min-height:54px;
    padding:2px 4px;
    text-align:left;
    border:1.5px solid #c1cdd2;
    border-radius:5px;
    background:#fff;
    color:#102a43;
    cursor:pointer;
    transition:border-color .22s ease, box-shadow .22s ease, transform .22s ease, background-color .22s ease;
    box-shadow:none;
}

.hv-plan:hover{
    border-color:#2fb8f0;
    box-shadow:0 6px 14px rgba(2,161,216,.06);
    transform:translateY(-1px);
}

.hv-plan.active{
    border-color:#02a1d8;
    background:#f9fdff;
    box-shadow:0 8px 16px rgba(2,161,216,.08);
}

.hv-plan-thumb{
    flex:0 0 50px;
    width:50px;
    height:50px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:transparent;
    overflow:hidden;
}

.hv-plan-thumb img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
}

.hv-plan-copy{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:2px;
    min-width:0;
}

.hv-plan-label{
    display:block;
    color:#55afe3;
    font-size:13px;
    line-height:1.05;
    font-weight:500;
}

.hv-plan-term{
    display:block;
    min-width:0;
    margin-bottom:0;
    color:#16a3e3;
    font-size:14px;
    line-height:1.5;
    font-weight:800;
    letter-spacing:0;
    text-transform:uppercase;
}

.hv-summary{
    margin-top:24px;
    padding:20px 24px;
    border:1px solid #e4eef8;
    border-radius:20px;
    background:#f8fbff;
    color:#102a43;
    line-height:1.9;
}

.hv-summary h4{
    margin:0 0 10px;
    color:#0f172a;
    font-size:20px;
    font-weight:700;
}

.hv-summary span{
    font-weight:700;
    color:#0f172a;
}

.hv-action-group{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-top:24px;
}

.hv-open-booking,
.hv-booking-submit,
.hv-lookup-form .button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:54px;
    margin-top:0;
    padding:0 24px;
    border-radius:16px !important;
    border:1px solid #02a1d8 !important;
    background:#02a1d8 !important;
    color:#fff !important;
    font-size:16px;
    font-weight:700;
    box-shadow:none;
}

.hv-schedule-button{
    background:#fff !important;
    color:#02a1d8 !important;
}

#hv-booking-popup{
    position:fixed;
    inset:0;
    z-index:9999;
    overflow-y:auto;
    overflow-x:hidden;
    padding:20px 15px;
    background:rgba(15,23,42,.6);
    backdrop-filter:blur(3px);
    /* layout: flex căn giữa */
    display:flex;
    align-items:flex-start;
    justify-content:center;
    /* ẩn mặc định */
    opacity:0;
    pointer-events:none;
    visibility:hidden;
    transition:opacity .25s ease, visibility .25s ease;
}

#hv-booking-popup.is-open{
    opacity:1;
    pointer-events:auto;
    visibility:visible;
}

.hv-popup-inner{
    position:relative;
    width:560px;
    max-width:95%;
    margin:20px auto;
    padding:28px;
    border-radius:24px;
    background:#fff;
    box-shadow:0 24px 60px rgba(15,23,42,.18);
    flex-shrink:0;
    /* slide up nhẹ */
    transform:translateY(16px);
    transition:transform .25s ease;
}

#hv-booking-popup.is-open .hv-popup-inner{
    transform:translateY(0);
}

.hv-popup-inner h3{
    margin:0 0 10px;
    color:#0f172a;
    font-size:28px;
    font-weight:700;
}

.hv-popup-close{
    position:absolute;
    top:14px;
    right:14px;
    width:38px;
    height:38px;
    border:0;
    border-radius:999px;
    background:#eef4f8;
    color:#102a43;
    cursor:pointer;
    font-size:24px;
    line-height:1;
}

.hv-popup-inner label,
.hv-lookup-form label{
    display:block;
    margin-bottom:14px;
    color:#102a43;
    font-weight:700;
}

.hv-popup-inner label span{
    color:#dc2626;
}

.hv-popup-inner input,
.hv-lookup-form input{
    margin-top:8px;
}

.hv-booking-selected{
    margin:16px 0;
    padding:16px 18px;
    border:1px solid #d8ebf8;
    border-radius:18px;
    background:linear-gradient(180deg,rgba(2,161,216,.09) 0%,rgba(2,161,216,.04) 100%);
    line-height:1.9;
}

.hv-booking-selected strong{
    display:block;
    margin-bottom:6px;
}

.hv-lookup-wrapper{
    padding:28px;
    border:1px solid #e5edf5;
    border-radius:24px;
    background:#fff;
    box-shadow:0 10px 30px rgba(15,23,42,.04);
}

.hv-lookup-form{
    display:grid;
    grid-template-columns:1fr 1fr auto;
    gap:14px;
    align-items:end;
}

.hv-lookup-result{
    margin-top:18px;
}

.hv-lookup-card{
    padding:20px;
    border:1px solid #d9e9f8;
    border-radius:18px;
    background:#f8fbff;
}

.hv-lookup-card h4{
    margin:0 0 12px;
    font-size:20px;
}

.hv-lookup-row{
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding:9px 0;
    border-bottom:1px solid #e8eef3;
    color:#102a43;
}

.hv-lookup-row:last-child{
    border-bottom:0;
}

.hv-lookup-row strong{
    font-weight:700;
}

.hv-lookup-error{
    padding:12px 14px;
    border-radius:12px;
    background:#fef2f2;
    color:#b91c1c;
}

.hv-lookup-loading{
    padding:12px 14px;
    border-radius:12px;
    background:#f8fafc;
}

@media (max-width: 1024px){
    .hv-grid{
        grid-template-columns:repeat(4,minmax(0,1fr));
        gap:10px;
    }
}

@media (max-width: 768px){
    .hv-rental-wrapper,
    .hv-lookup-wrapper{
        padding:22px 18px;
        border-radius:20px;
    }

    .hv-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:8px;
    }

    .hv-lookup-form,
    .hv-action-group{
        grid-template-columns:1fr;
        flex-direction:column;
    }

    .hv-plan{
        align-items:center;
        min-height:auto;
        padding:8px 8px;
        gap:6px;
        border-radius:18px;
    }

    .hv-plan-thumb{
        flex-basis:34px;
        width:34px;
        height:34px;
    }

    .hv-plan-copy{
        gap:1px;
    }

    .hv-plan-label{
        font-size:9px;
    }

    .hv-plan-term{
        min-width:0;
        font-size:11px;
    }

    .hv-lookup-row{
        display:block;
    }

    .hv-open-booking,
    .hv-booking-submit,
    .hv-lookup-form .button{
        width:100%;
    }
}
