/* ==========================================
   JBX BOOKING PAGE
========================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:'Poppins',sans-serif;
    background:#f5f5f5;
    color:#222;
}

/* ==========================================
   HERO
========================================== */

.booking-hero{

    padding:150px 7% 90px;

    background:
    linear-gradient(
        rgba(0,0,0,.72),
        rgba(0,0,0,.72)
    ),
    url("Images/xpander-booking.jpg");

    background-size:cover;
    background-position:center;
    color:#fff;
    text-align:center;

}

.booking-hero h1{

    font-size:52px;
    font-weight:800;
    margin-bottom:12px;

}

.booking-hero p{

    font-size:19px;
    color:#ddd;

}

/* ==========================================
   CONTAINER
========================================== */

.booking-container{

    max-width:1100px;
    margin:60px auto;
    padding:0 20px;

}

/* ==========================================
   PROGRESS
========================================== */

.progress-container{

    margin-bottom:35px;

}

.progress-bar{

    width:100%;
    height:10px;
    background:#ddd;
    border-radius:30px;
    overflow:hidden;

}

#progressFill{

    width:33.33%;
    height:100%;

    background:
    linear-gradient(
        90deg,
        #000,
        #555
    );

    transition:.35s ease;

}

.progress-text{

    margin-top:12px;
    text-align:right;
    font-size:15px;
    font-weight:600;
    color:#555;

}

/* ==========================================
   STEP CARD
========================================== */

.step{

    display:none;

    background:#fff;

    padding:45px;

    border-radius:20px;

    box-shadow:
    0 12px 35px rgba(0,0,0,.08);

}

.step.active{

    display:block;

    animation:fade .35s ease;

}

@keyframes fade{

from{

    opacity:0;
    transform:translateY(18px);

}

to{

    opacity:1;
    transform:translateY(0);

}

}

.step h2{

    margin-bottom:28px;
    font-size:30px;
    font-weight:700;

}

/* ==========================================
   FORM
========================================== */

.step label{

    display:block;

    margin-top:20px;
    margin-bottom:8px;

    font-size:15px;
    font-weight:600;

}

.step input,
.step select{

    width:100%;

    padding:15px 16px;

    border:1px solid #d7d7d7;

    border-radius:10px;

    background:#fff;

    font-size:15px;

    transition:.25s;

}

.step input:focus,
.step select:focus{

    outline:none;

    border-color:#000;

    box-shadow:
    0 0 0 4px rgba(0,0,0,.08);

}

/* ==========================================
   DELIVERY SECTION
========================================== */

#deliverySection{

    margin-top:15px;

    padding:20px;

    background:#fafafa;

    border:1px solid #ececec;

    border-radius:12px;

}

/* ==========================================
   AVAILABILITY NOTICE
========================================== */

.availability-notice{

    display:none;

    margin-top:15px;

    padding:14px;

    border-radius:10px;

    font-weight:600;

    font-size:15px;

    transition:.3s;

}

/* ==========================================
   STEP 1 PRICE PREVIEW
========================================== */

.step1-price-preview{

    margin-top:30px;

    padding:22px;

    background:#f7f7f7;

    border:1px solid #ddd;

    border-radius:12px;

    text-align:center;

}

.price-preview-label{

    font-size:15px;

    font-weight:600;

    color:#666;

    margin-bottom:5px;

}

#step1EstimatedTotal{

    font-size:32px;

    font-weight:800;

    color:#000;

}

.price-preview-note{

    margin-top:8px;

    font-size:12px;

    color:#777;

}

/* ==========================================
   STEP 2 ADDITIONAL FEES
========================================== */

.step2-fee-preview{

    margin-top:30px;

    padding:22px;

    background:#f7f7f7;

    border:1px solid #ddd;

    border-radius:12px;

}

.fee-preview-row{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:10px 0;

    font-size:15px;

}

.fee-preview-row strong{

    font-weight:700;

}

.fee-preview-total{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-top:10px;

    padding-top:15px;

    border-top:1px solid #ccc;

    font-size:17px;

    font-weight:700;

}

#step2AdditionalTotal{

    font-size:20px;

}

/* ==========================================
   BUTTONS
========================================== */

.step-buttons{

    display:flex;

    justify-content:space-between;

    gap:15px;

    margin-top:40px;

}

.step-buttons button{

    flex:1;

    padding:16px;

    border:none;

    border-radius:10px;

    background:#000;

    color:#fff;

    font-size:16px;

    font-weight:600;

    cursor:pointer;

    transition:.25s;

}

.step-buttons button:hover{

    background:#333;

    transform:translateY(-2px);

}

.step-buttons button:active{

    transform:translateY(0);

}
/* ==========================================
   BOOKING SUMMARY
========================================== */

.summary-card{

    max-width:720px;

    margin:auto;

    background:#fff;

    border-radius:20px;

    padding:40px;

    box-shadow:
    0 15px 40px rgba(0,0,0,.08);

}

.summary-card h2{

    font-size:32px;

    margin-bottom:30px;

    font-weight:700;

}

.summary-card hr{

    border:none;

    border-top:1px solid #e5e5e5;

    margin:22px 0;

}

/* ---------- INFORMATION ROWS ---------- */

.summary-card p{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin:14px 0;

    font-size:16px;

}

.summary-card p span:last-child{

    font-weight:600;

    text-align:right;

}

/* ---------- RECEIPT STYLE ROWS ---------- */

.summary-line{

    display:flex;

    align-items:center;

    margin:16px 0;

    font-size:16px;

}

.summary-line .dots{

    flex:1;

    border-bottom:2px dotted #cfcfcf;

    margin:0 12px;

}

.summary-line span:last-child{

    min-width:110px;

    text-align:right;

    font-weight:700;

}

/* ---------- TOTAL ---------- */

.total-row{

    display:flex;

    align-items:flex-end;

    margin-top:25px;

    padding-top:22px;

    border-top:2px solid #000;

}

.total-label{

    font-size:24px;

    font-weight:700;

}

#sumTotal{

    margin-left:auto;

    font-size:42px;

    font-weight:800;

    letter-spacing:.5px;

    text-align:right;

}

/* ---------- MESSENGER BUTTON ---------- */

.book-messenger{

    width:100%;

    margin-top:30px;

    padding:18px;

    border:none;

    border-radius:12px;

    background:#0084ff;

    color:#fff;

    font-size:17px;

    font-weight:700;

    cursor:pointer;

    transition:.25s;

}

.book-messenger i{

    margin-right:8px;

}

.book-messenger:hover{

    background:#006fe6;

    transform:translateY(-2px);

}

/* ---------- BOOKING NOTE ---------- */

.booking-note{

    margin-top:20px;

    color:#777;

    font-size:14px;

    line-height:1.7;

    text-align:center;

}

/* ==========================================
   MOBILE
========================================== */

@media(max-width:768px){

.booking-hero{

    padding:120px 20px 60px;

}

.booking-hero h1{

    font-size:38px;

}

.booking-hero p{

    font-size:17px;

}

.step{

    padding:25px;

}

.summary-card{

    padding:25px;

}

.summary-card h2{

    font-size:28px;

}

.summary-card p{

    font-size:15px;

}

.summary-line{

    font-size:15px;

}

.summary-line span:last-child{

    min-width:90px;

}

.total-label{

    font-size:20px;

}

#sumTotal{

    font-size:34px;

}

.step-buttons{

    flex-direction:column;

}

.step-buttons button{

    width:100%;

}

}
