/* =========================================================
   CHECKOUT
========================================================= */

.checkout{
    padding:80px 0;
    background:#f8fafc;
}

/* =========================================================
   CHECKOUT HEADER
========================================================= */

.checkout-header{
    text-align:center;
    margin-bottom:50px;
}

.checkout-header h2{
    font-size:38px;
    color:#111827;
    margin-bottom:12px;
}

.checkout-header p{
    font-size:17px;
    color:#6b7280;
    line-height:1.7;
}

/* =========================================================
   CHECKOUT WRAPPER
========================================================= */

.checkout-wrapper{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:35px;
    align-items:flex-start;
}

/* =========================================================
   BILLING DETAILS
========================================================= */

.billing-details{
    background:#ffffff;
    padding:35px;
    border-radius:15px;
    box-shadow:0 5px 20px rgba(0,0,0,.06);
}

.billing-details h3{
    font-size:30px;
    color:#111827;
    margin-bottom:30px;
    padding-bottom:15px;
    border-bottom:1px solid #e5e7eb;
}

/* =========================================================
   FORM
========================================================= */

.billing-details form{
    width:100%;
}

/* =========================================================
   FORM ROW
========================================================= */

.form-row{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
}

/* =========================================================
   FORM GROUP
========================================================= */

.form-group{
    margin-bottom:22px;
}

.form-group label{
    display:block;
    margin-bottom:10px;
    font-size:15px;
    font-weight:600;
    color:#111827;
}

/* =========================================================
   INPUT
========================================================= */

.form-group input{
    width:100%;
    height:52px;
    padding:0 18px;
    border:1px solid #d1d5db;
    border-radius:8px;
    outline:none;
    font-size:15px;
    transition:.3s;
}

.form-group input:focus{
    border-color:#2563eb;
    box-shadow:0 0 0 3px rgba(37,99,235,.15);
}

/* =========================================================
   SELECT
========================================================= */

.form-group select{
    width:100%;
    height:52px;
    padding:0 18px;
    border:1px solid #d1d5db;
    border-radius:8px;
    outline:none;
    font-size:15px;
    background:#ffffff;
    transition:.3s;
}

.form-group select:focus{
    border-color:#2563eb;
    box-shadow:0 0 0 3px rgba(37,99,235,.15);
}

/* =========================================================
   TEXTAREA
========================================================= */

.form-group textarea{
    width:100%;
    padding:16px 18px;
    border:1px solid #d1d5db;
    border-radius:8px;
    outline:none;
    resize:vertical;
    min-height:140px;
    font-size:15px;
    transition:.3s;
}

.form-group textarea:focus{
    border-color:#2563eb;
    box-shadow:0 0 0 3px rgba(37,99,235,.15);
}

/* =========================================================
   ORDER SUMMARY
========================================================= */

.order-summary{
    background:#ffffff;
    padding:30px;
    border-radius:15px;
    box-shadow:0 5px 20px rgba(0,0,0,.06);
    position:sticky;
    top:30px;
}

.order-summary h3{
    font-size:30px;
    color:#111827;
    margin-bottom:25px;
    padding-bottom:15px;
    border-bottom:1px solid #e5e7eb;
}

/* =========================================================
   ORDER ITEM
========================================================= */

.order-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:15px 0;
    border-bottom:1px solid #e5e7eb;
    font-size:16px;
    color:#374151;
}

.order-item:last-of-type{
    border-bottom:none;
}

.order-item span:last-child{
    font-weight:600;
    color:#111827;
}

/* =========================================================
   TOTAL
========================================================= */

.order-item.total{
    margin-top:15px;
    padding-top:20px;
    border-top:2px solid #e5e7eb;
    font-size:22px;
    font-weight:700;
    color:#111827;
}

/* =========================================================
   PAYMENT METHOD
========================================================= */

.payment-method{
    margin-top:30px;
    padding-top:25px;
    border-top:1px solid #e5e7eb;
}

.payment-method h4{
    font-size:22px;
    color:#111827;
    margin-bottom:18px;
}

.payment-method label{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:15px;
    cursor:pointer;
    font-size:16px;
    color:#374151;
}

.payment-method input[type="radio"]{
    accent-color:#2563eb;
}

/* =========================================================
   PLACE ORDER BUTTON
========================================================= */

.place-order-btn{
    width:100%;
    margin-top:25px;
    padding:16px;
    border:none;
    border-radius:10px;
    background:#2563eb;
    color:#ffffff;
    font-size:17px;
    font-weight:600;
    cursor:pointer;
    transition:.3s;
}

.place-order-btn:hover{
    background:#1d4ed8;
}

@media(max-width:992px){

    .checkout-wrapper{
        grid-template-columns:1fr;
    }

    .order-summary{
        position:static;
    }

}

@media(max-width:768px){

    .checkout{
        padding:60px 0;
    }

    .checkout-header h2{
        font-size:32px;
    }

    .form-row{
        grid-template-columns:1fr;
    }

    .billing-details,
    .order-summary{
        padding:25px;
    }

}