/* ===========================
   Custom Size Modal
=========================== */

.csm-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.55);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 999999;
    padding: 20px;
}

.csm-overlay.active{
    display:flex;
}

.csm-modal{
    width:100%;
    max-width:620px;
    max-height:90vh;
    overflow-y:auto;

    background:#fff;
    border-radius:18px;

    padding:30px;

    position:relative;

    box-shadow:
        0 15px 60px rgba(0,0,0,.18);
}

.csm-close{

    position:absolute;

    top:15px;
    right:15px;

    width:40px;
    height:40px;

    border:none;

    border-radius:50%;

    background:#f2f2f2;

    cursor:pointer;

    font-size:22px;

}

.csm-modal h2{

    margin:0;

    text-align:center;

    font-size:28px;

}

.csm-subtitle{

    text-align:center;

    color:#666;

    margin:8px 0 30px;

}

.csm-row{

    display:flex;

    gap:15px;

}

.csm-field{

    flex:1;

}

.csm-field label{

    display:block;

    font-weight:600;

    margin-bottom:8px;

}

.csm-field input{

    width:100%;

    height:50px;

    border:1px solid #ddd;

    border-radius:10px;

    padding:0 14px;

    font-size:16px;

}

.csm-note{

    margin-top:25px;

}

.csm-note label{

    display:block;

    margin-bottom:10px;

    font-weight:600;

}

.csm-note textarea{

    width:100%;

    height:100px;

    resize:none;

    border:1px solid #ddd;

    border-radius:10px;

    padding:12px;

    font-size:15px;

}

.csm-price{

    margin-top:25px;

    text-align:center;

    font-size:28px;

    font-weight:700;

}

.csm-buttons{

    display:flex;

    gap:12px;

    margin-top:25px;

}

.csm-buttons button{

    flex:1;

    height:52px;

    border:1.5px solid transparent;

    border-radius:10px;

    cursor:pointer;

    font-size:15px;

    font-weight:700;

    letter-spacing:0.02em;

    font-family:inherit;

    transition:background .18s ease, color .18s ease, border-color .18s ease, transform .12s ease, box-shadow .18s ease;

}

.csm-buttons button:active{

    transform:scale(.97);

}

.csm-buttons button:focus-visible{

    outline:2px solid #111;

    outline-offset:2px;

}

#csmBuyNow{

    background:#111;

    color:#fff;

    box-shadow:0 6px 16px rgba(17,17,17,.22);

}

#csmBuyNow:hover{

    background:#2a2a2a;

    box-shadow:0 8px 20px rgba(17,17,17,.28);
}

#csmAddCart{

    background:#fff;

    color:#111;

    border-color:#d8d8d8;

}

#csmAddCart:hover{

    background:#fafafa;

    border-color:#111;

}

/* Responsive */

@media(max-width:768px){

    .csm-modal{

        padding:20px;

    }

    .csm-row{

        flex-direction:column;

    }

    .csm-price{

        font-size:24px;

    }

    .csm-buttons{

        flex-direction:column;

        gap:10px;

    }

    .csm-buttons button{

        height:50px;

    }

}
/* =======================
   Tables
======================= */

.csm-table-wrap{

    margin-top:35px;

}

.csm-table-wrap h3{

    text-align:center;

    margin-bottom:15px;

    font-size:20px;

}

.csm-table{

    width:100%;

    border-collapse:collapse;

    overflow:hidden;

    border-radius:10px;

}

.csm-table th{

    background:#111;

    color:#fff;

    padding:12px;

}

.csm-table td{

    padding:10px;

    text-align:center;

    border:1px solid #ddd;

}

.csm-table tbody tr:nth-child(even){

    background:#f7f7f7;

}