/*
==========================================
CUSTOM PRODUCT CONFIGURATOR
Version 2.0
==========================================
*/

/*=========================================
ROOT
=========================================*/

:root{

    --cpc-bg:#111315;
    --cpc-card:#1b1d20;
    --cpc-card-2:#24272b;

    --cpc-border:#32363b;

    --cpc-text:#ffffff;
    --cpc-text-light:#b8bcc4;

    --cpc-orange:#ff6b35;
    --cpc-green:#84ff00;

    --cpc-radius:20px;

    --cpc-shadow:0 20px 45px rgba(0,0,0,.35);

}

/*=========================================
RESET
=========================================*/

.cpc-wrapper,
.cpc-wrapper *,
.cpc-wrapper *::before,
.cpc-wrapper *::after{

    box-sizing:border-box;

}

.cpc-wrapper{

    font-family:'Inter',sans-serif;

    color:var(--cpc-text);

}

.cpc-wrapper h1,
.cpc-wrapper h2,
.cpc-wrapper h3,
.cpc-wrapper h4,
.cpc-wrapper h5{

    margin:0;

    color:#fff;

}

.cpc-wrapper p{

    margin:0;

    color:var(--cpc-text-light);

    line-height:1.6;

}

.cpc-wrapper input,
.cpc-wrapper textarea,
.cpc-wrapper select,
.cpc-wrapper button{

    font-family:'Inter',sans-serif;

}

.cpc-wrapper img,
.cpc-wrapper svg{

    max-width:100%;
    height:auto;
    display:block;

}

/*=========================================
LAYOUT
=========================================*/

.cpc-wrapper{

    width:100%;
    max-width:1320px;

    margin:60px auto;

    padding:20px;

    display:grid;

    grid-template-columns:minmax(350px,420px) minmax(0,1fr);

    gap:35px;

    align-items:start;

}

.cpc-left,
.cpc-right{

    width:100%;
    min-width:0;

}

.cpc-card{

    width:100%;
    max-width:100%;

    background:var(--cpc-card);

    border:1px solid var(--cpc-border);

    border-radius:28px;

    padding:35px;

    box-shadow:var(--cpc-shadow);

    overflow:hidden;

}

/*=========================================
BADGE
=========================================*/

.cpc-badge{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:10px 18px;

    border-radius:100px;

    font-size:13px;

    font-weight:700;

    letter-spacing:.5px;

    text-transform:uppercase;

    color:#fff;

    background:linear-gradient(
        90deg,
        var(--cpc-orange),
        var(--cpc-green)
    );

}

/*=========================================
HEADINGS
=========================================*/

.cpc-left h2{

    margin-top:22px;

    font-size:34px;

    line-height:1.2;

}

.cpc-left p{

    margin-top:15px;

    margin-bottom:30px;

}



/*=========================================
LEFT PANEL
=========================================*/

.cpc-section{

    margin-top:35px;

}

.cpc-section label{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:15px;

    font-size:15px;

    font-weight:600;

    color:#fff;

}

#cpcQtyValue{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-width:70px;

    height:40px;

    background:linear-gradient(
        135deg,
        var(--cpc-orange),
        var(--cpc-green)
    );

    border-radius:12px;

    color:#111;

    font-weight:700;

    font-size:16px;

}

/*=========================================
RANGE SLIDER
=========================================*/

#cpcQuantity{

    width:100%;

    margin:15px 0 10px;

    appearance:none;

    -webkit-appearance:none;

    background:transparent;

}

#cpcQuantity::-webkit-slider-runnable-track{

    height:8px;

    border-radius:20px;

    background:#32363b;

}

#cpcQuantity::-webkit-slider-thumb{

    appearance:none;

    -webkit-appearance:none;

    width:24px;

    height:24px;

    border-radius:50%;

    background:linear-gradient(
        135deg,
        var(--cpc-orange),
        var(--cpc-green)
    );

    margin-top:-8px;

    cursor:pointer;

    box-shadow:0 0 20px rgba(255,107,53,.4);

}

#cpcQuantity::-moz-range-track{

    height:8px;

    background:#32363b;

    border-radius:20px;

}

#cpcQuantity::-moz-range-thumb{

    width:24px;

    height:24px;

    border:none;

    border-radius:50%;

    background:var(--cpc-orange);

    cursor:pointer;

}

/*=========================================
PRICE GRID
=========================================*/

.cpc-price-box{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:18px;

    margin-top:35px;

}

.cpc-price-box>div{

    background:var(--cpc-card-2);

    border:1px solid var(--cpc-border);

    border-radius:18px;

    padding:22px;

    transition:.35s;

}

.cpc-price-box>div:hover{

    transform:translateY(-4px);

    border-color:var(--cpc-orange);

}

.cpc-price-box small{

    display:block;

    color:var(--cpc-text-light);

    font-size:13px;

    margin-bottom:10px;

}

.cpc-price-box h3{

    font-size:30px;

    font-weight:700;

}

/*=========================================
TOTAL CARD
=========================================*/

.cpc-total{

    margin-top:25px;

    background:linear-gradient(
        135deg,
        var(--cpc-orange),
        var(--cpc-green)
    );

    border-radius:22px;

    padding:28px;

    text-align:center;

}

.cpc-total small{

    display:block;

    color:#111;

    font-weight:700;

    text-transform:uppercase;

    letter-spacing:.8px;

}

.cpc-total h1{

    margin-top:10px;

    color:#111;

    font-size:48px;

    font-weight:700;

}

/*==================================================
RIGHT PANEL
==================================================*/

.cpc-wizard{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.cpc-progress{

    width:100%;

    height:8px;

    background:#2b2e33;

    border-radius:50px;

    overflow:hidden;

    margin-bottom:10px;

}

.cpc-progress-fill{

    width:25%;

    height:100%;

    background:linear-gradient(
        90deg,
        var(--cpc-orange),
        var(--cpc-green)
    );

    border-radius:50px;

    transition:.4s;

}

/*==================================================
STEP CARD
==================================================*/

.cpc-step{

    background:var(--cpc-card-2);

    border:1px solid var(--cpc-border);

    border-radius:20px;

    overflow:hidden;

    transition:.35s;

}

.cpc-step.active{

    border-color:var(--cpc-orange);

    box-shadow:0 10px 30px rgba(255,107,53,.12);

}

.cpc-step-header{

    display:flex;

    align-items:center;

    gap:18px;

    padding:25px;

    cursor:pointer;

    transition:.3s;

}

.cpc-step-header:hover{

    background:rgba(255,255,255,.02);

}

.cpc-step-number{

    width:55px;

    height:55px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:linear-gradient(
        135deg,
        var(--cpc-orange),
        var(--cpc-green)
    );

    color:#111;

    font-size:22px;

    font-weight:700;

    flex-shrink:0;

}

.cpc-step-header h3{

    font-size:20px;

    margin-bottom:4px;

}

.cpc-step-header p{

    font-size:14px;

    color:var(--cpc-text-light);

}

/*==================================================
STEP CONTENT
==================================================*/

.cpc-step-content{

    display:none;

    padding:30px;

    border-top:1px solid var(--cpc-border);

}

.cpc-step.active .cpc-step-content{

    display:block;

}

/*==================================================
UPLOAD BOX
==================================================*/

.cpc-upload-box{

    width:100%;
    max-width:100%;

    min-height:220px;

    padding:35px 20px;

    border:2px dashed #4a4f56;

    border-radius:20px;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;

    overflow:hidden;

    cursor:pointer;

    background:#17191c;

    transition:.35s;

}

.cpc-upload-box:hover{

    border-color:var(--cpc-orange);

    background:#202327;

}

.cpc-upload-box input{

    display:none;

}

.cpc-upload-icon{

    width:80px;

    height:80px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:linear-gradient(
        135deg,
        var(--cpc-orange),
        var(--cpc-green)
    );

    color:#111;

    font-size:34px;

    margin-bottom:20px;

}

.cpc-upload-box h4{

    font-size:22px;

    margin-bottom:10px;

    word-break:break-word;

}

.cpc-upload-box span{

    color:#aaa;

    font-size:14px;

    line-height:1.5;

}

/*==================================================
FORM FIELDS
==================================================*/

.cpc-step-content label{

    display:block;

    margin:18px 0 8px;

    color:#fff;

    font-weight:600;

}

.cpc-step-content input[type=text],
.cpc-step-content input[type=file],
.cpc-step-content textarea,
.cpc-step-content select{

    display:block;

    width:100%;
    max-width:100%;

    box-sizing:border-box;

    background:#111315;

    border:1px solid #35383d;

    color:#fff;

    border-radius:14px;

    padding:16px;

    font-size:15px;

    transition:.3s;

    outline:none;

}

.cpc-step-content textarea{

    resize:vertical;

    min-height:130px;

}

.cpc-step-content input:focus,
.cpc-step-content textarea:focus,
.cpc-step-content select:focus{

    border-color:var(--cpc-orange);

    box-shadow:0 0 0 4px rgba(255,107,53,.15);

}

/*==================================================
BUTTONS
==================================================*/

.cpc-wrapper .cpc-next,
.cpc-wrapper button#cpcCheckout{

    width:100%;

    height:58px;

    margin-top:30px;

    border:none;

    border-radius:14px;

    background:linear-gradient(
        90deg,
        var(--cpc-orange),
        var(--cpc-green)
    );

    color:#111;

    font-size:17px;

    font-weight:700;

    cursor:pointer;

    transition:.3s;

    display:flex;

align-items:center;

justify-content:center;

text-decoration:none;

width:100%;

max-width:100%;

box-sizing:border-box;

}

.cpc-next:hover,
#cpcCheckout:hover{

    transform:translateY(-3px);

    box-shadow:0 15px 35px rgba(255,107,53,.25);

}

/*==================================================
RESPONSIVE - LARGE LAPTOP
==================================================*/

@media (max-width:1200px){

    .cpc-wrapper{

        grid-template-columns:380px minmax(0,1fr);

        gap:30px;

        padding:20px;

    }

    .cpc-card{

        padding:30px;

    }

    .cpc-left h2{

        font-size:30px;

    }

}


/*==================================================
RESPONSIVE - TABLET
==================================================*/

@media (max-width:991px){

    .cpc-wrapper{

        grid-template-columns:1fr;

        gap:25px;

        padding:20px;

        margin:30px auto;

    }

    .cpc-left,
    .cpc-right{

        width:100%;

    }

    .cpc-card{

        padding:28px;

    }

    .cpc-price-box{

        grid-template-columns:repeat(2,minmax(0,1fr));

        gap:18px;

    }

    .cpc-total h1{

        font-size:40px;

    }

}


/*==================================================
RESPONSIVE - MOBILE
==================================================*/

@media (max-width:767px){

    .cpc-wrapper{

        padding:15px;

        gap:20px;

    }

    .cpc-card{

        padding:22px;

        border-radius:20px;

    }

    .cpc-badge{

        font-size:12px;

        padding:8px 15px;

    }

    .cpc-left h2{

        font-size:26px;

        line-height:1.3;

    }

    .cpc-left p{

        font-size:15px;

    }

    .cpc-price-box{

        grid-template-columns:1fr;

    }

    .cpc-price-box h3{

        font-size:24px;

    }

    .cpc-total{

        padding:22px;

    }

    .cpc-total h1{

        font-size:34px;

    }

    .cpc-upload-box{

        min-height:180px;

        padding:25px;

    }

    .cpc-upload-icon{

        width:65px;

        height:65px;

        font-size:28px;

    }

    .cpc-upload-box h4{

        font-size:20px;

    }

    .cpc-step-header{

        padding:18px;

        gap:12px;

    }

    .cpc-step-number{

        width:45px;

        height:45px;

        font-size:18px;

    }

    .cpc-step-content{

        padding:20px;

    }

}


/*==================================================
RESPONSIVE - SMALL MOBILE
==================================================*/

@media (max-width:480px){

    .cpc-wrapper{

        padding:12px;

    }

    .cpc-card{

        padding:18px;

    }

    .cpc-left h2{

        font-size:22px;

    }

    .cpc-total h1{

        font-size:30px;

    }

    .cpc-price-box{

        gap:12px;

    }

    .cpc-price-box > div{

        padding:18px;

    }

    .cpc-upload-box{

        min-height:160px;

        padding:20px;

    }

    .cpc-upload-icon{

        width:55px;

        height:55px;

        font-size:24px;

        margin-bottom:15px;

    }

    .cpc-wrapper button,
    .cpc-next,
    #cpcCheckout{

        height:54px;

        font-size:15px;

    }

}