.cart-overlay{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.65);
    backdrop-filter:blur(4px);
    opacity:0;
    visibility:hidden;
    transition:.3s ease;
    z-index:998;
}

.cart-overlay.active{
    opacity:1;
    visibility:visible;
}


/* BOTÃO FLUTUANTE */

.cart-button{
    position:fixed;
    right:50px;
    bottom:70px;
    width:65px;
    height:65px;
    border:none;
    border-radius:50%;
    background: #84ff00;
    color: #000;
    cursor: pointer;
    font-size: 22px;
    z-index: 999;
    box-shadow: 0 0px 30px #84ff00;
    transition:.2s ease;
}

.cart-button:hover{
    transform:scale(1.08);
}

.cart-count{
    position:absolute;
    top:-5px;
    right:-5px;
    background:#fff;
    color:#000;
    width:24px;
    height:24px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
    font-weight:bold;
}

/* SIDEBAR */

.cart-sidebar{
    position:fixed;
    top:0;
    right:-450px;
    width:420px;
    max-width:100%;
    height:100vh;
    background:#111;
    color:#fff;
    z-index:999;
    display:flex;
    flex-direction:column;
    transition:.35s ease;
    border-left:1px solid rgba(255,255,255,.08);
}

.cart-sidebar.active{
    right:0;
}

/* HEADER */

.cart-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:25px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.cart-header h2{
    font-size:24px;
    margin-bottom:5px;
}

.cart-header p{
    color:#999;
    font-size:14px;
}

.cart-close{
    background:none;
    border:none;
    color:#fff;
    font-size:26px;
    cursor:pointer;
}

/* ITEMS */

.cart-items{
    overflow:auto;
    padding:25px;
    height: calc(100vh - 257px - 100px);
}

.cart-item{
    display:flex;
    gap:15px;
    margin-bottom:25px;
    padding-bottom:25px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

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

.cart-item-image img{
    width:90px;
    border-radius:14px;
}

.cart-item-content{
    flex:1;
}

.cart-item-content h3{
    font-size:17px;
    margin-bottom:5px;
}

.cart-item-description{
    display:block;
    color:#888;
    font-size:13px;
    margin-bottom:12px;
}

.cart-item-price{
    font-size:20px;
    font-weight:bold;
    margin-bottom:15px;
    color:#84ff00;
}

.cart-item-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}

.qty-control{
    display:flex;
    align-items:center;
    gap:10px;
    background:#1d1d1d;
    border-radius:12px;
    padding:6px 10px;
}

.qty-control button{
    width:28px;
    height:28px;
    border:none;
    border-radius:8px;
    background:#2a2a2a;
    color:#fff;
    cursor:pointer;
    font-size:16px;
}
.qty-control span{ min-width: 35px; min-height: 24px; text-align: center; }

.remove-item{
    background:none;
    border:none;
    color:#ff5e5e;
    cursor:pointer;
    font-size:13px;
}

/* CROSSSELL */

.cart-crosssell{
    padding:20px 25px;
    border-top:1px solid rgba(255,255,255,.08);
    border-bottom:1px solid rgba(255,255,255,.08);
    background:#151515;
    display: none;
}

.crosssell-title{
    display:block;
    margin-bottom:15px;
    color:#84ff00;
    font-weight:bold;
}

.crosssell-product{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}

.crosssell-product small{
    display:block;
    color:#888;
    margin-top:5px;
}

.crosssell-product button{
    border:none;
    background:#84ff00;
    color:#000;
    padding:10px 14px;
    border-radius:12px;
    font-weight:bold;
    cursor:pointer;
}

/* FOOTER */

.cart-footer{
    padding:25px;
    border-top:1px solid rgba(255,255,255,.08);
    position: fixed;
    bottom: 0;
    width: 100%;
    z-index: 2;
    background: #111;
}

.cart-subtotal{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:10px;
    font-size:18px;
}

.cart-subtotal strong{
    color:#84ff00;
    font-size:24px;
}

.shipping-info{
    display:block;
    color:#888;
    margin-bottom:20px;
}

.checkout-button{
    width:100%;
    height:55px;
    border:none;
    border-radius:14px;
    background:#84ff00;
    color:#000;
    font-weight:bold;
    cursor:pointer;
    margin-bottom:12px;
    transition:.2s ease;
}

.checkout-button:hover{
    transform:translateY(-2px);
}

.continue-button{
    width:100%;
    height:50px;
    border:1px solid rgba(255,255,255,.1);
    border-radius:14px;
    background:transparent;
    color:#fff;
    cursor:pointer;
    display: block;
    text-align: center;
    padding: 11px 0;
}
.continue-button{
    color: #fff !important;
}

.cart-open{
    overflow:hidden;
}

/* VIEWS */

.cart-view,
.checkout-view{
    position:absolute;
    inset:0;
    background:#111;
    display:flex;
    flex-direction:column;
    transition:.3s ease;
}

.checkout-view.active{
    transform:translateX(0);
    opacity:1;
    pointer-events:auto;
}

/* CHECKOUT */

.checkout-body{
    /*flex:1;*/
    height: calc(100vh - 257px - 100px);
    overflow:auto;
    padding:25px;
}

.checkout-section{
    margin-bottom:30px;
}

.section-title{
    font-size:18px;
    font-weight:bold;
    margin-bottom:18px;
}

aside .form-group{
    margin-bottom:16px;
}

aside .form-group label{
    display:block;
    margin-bottom:8px;
    font-size:13px;
    color:#999;
}

aside .form-group input{
    width:100%;
    height:52px;
    border:none;
    outline:none;
    border-radius:14px;
    background:#1c1c1c;
    padding:0 16px;
    color:#fff;
}
aside .form-group input.error{ border: 1px solid #a50000; }

aside .form-group input:focus{ border: none !important; }

aside .form-row{
    display:flex;
    gap:12px;
    margin: 0 1px;
}

aside .form-row .form-group{
    flex:1;
}

aside .form-row .small{
    max-width:90px;
}

.checkout-header-left{
    display:flex;
    align-items:center;
    gap:15px;
}

.back-cart{
    width:42px;
    height:42px;
    border:none;
    border-radius:12px;
    background:#1d1d1d;
    color:#fff;
    cursor:pointer;
    font-size:18px;
}

.payment-method{
    display:flex;
    align-items:center;
    gap:15px;
    padding:18px;
    background:#1b1b1b;
    border-radius:16px;
    margin-bottom:12px;
    cursor:pointer;
    border:1px solid transparent;
}

.payment-method.active{
    border-color:#84ff00;
}

.payment-method input{
    accent-color:#84ff00;
}

.payment-method small{
    display:block;
    color:#888;
    font-size: 70%;
}

.checkout-footer{
    padding:25px;
    border-top:1px solid rgba(255,255,255,.08);
    position: fixed;
    bottom: 0;
    width: 100%;
    z-index: 2;
    background: #111;
}

.checkout-subtotal, .checkout-frete{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    font-size: 16px;
    color: #bbb;
}

.checkout-subtotal strong, .checkout-frete strong{ color: #bbb; font-weight: bolder; }

.checkout-total{
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    font-size: 18px;
}

.checkout-total strong{
    color:#84ff00;
    font-size:26px;
}


.finish-order-button{
    width:100%;
    height:58px;
    border:none;
    border-radius:16px;
    background:#84ff00;
    color:#000;
    font-weight:bold;
    cursor:pointer;
}
.btBuscarCep{
    width:100%;
    margin-top: 27px;
    height: 52px;
    border-radius:16px;
    font-weight:bold;
    background: #1c1c1c;
    border: 2px solid #84ff00;
    color: #fff;
    animation: none !important;
    transition: none !important;
}

.checkout-security{
    display:block;
    text-align:center;
    margin-top:14px;
    color:#888;
}

/* PAYMENT VIEW */

.payment-view.active{
    transform:translateX(0);
    opacity:1;
    pointer-events:auto;
}

/* BODY */

.payment-body{
    flex:1;
    overflow:auto;
    padding:25px;
}

/* SUMMARY */

.payment-summary{
    background:#181818;
    border-radius:20px;
    padding:22px;
    margin-bottom:25px;
}

.payment-summary-row{
    display:flex;
    justify-content:space-between;
    margin-bottom:14px;
    color:#bbb;
}

.payment-summary-row:last-child{
    margin-bottom:0;
}

.payment-summary-row.total{
    padding-top:16px;
    border-top:1px solid rgba(255,255,255,.08);
    color:#fff;
    font-size:18px;
}

.payment-summary-row.total strong{
    color:#84ff00;
    font-size:26px;
}

/* PAYMENT BOX */

.payment-box{
    background:#181818;
    border-radius:20px;
    padding:24px;
    margin-bottom:20px;
}

.payment-title{
    font-size:20px;
    font-weight:bold;
    margin-bottom:20px;
}

/* PIX */

.pix-area{
    text-align:center;
}

.pix-qrcode{
    width:230px;
    border-radius:18px;
    margin-bottom:20px;
    background:#fff;
    padding:10px;
}

.pix-copy{
    display:flex;
    gap:10px;
    margin-bottom:20px;
}

.pix-copy input{
    flex:1;
    height:52px;
    border:none;
    outline:none;
    border-radius:14px;
    background:#101010;
    color:#fff;
    padding:0 14px;
    font-size:12px;
}

.pix-copy button{
    min-width:130px;
    border:none;
    border-radius:14px;
    background:#84ff00;
    color:#000;
    font-weight:bold;
    cursor:pointer;
}

.pix-info strong{
    display:block;
    margin-bottom:8px;
    color:#84ff00;
}

.pix-info small{
    color:#888;
}

/* SELECT */

.payment-select{
    width:100%;
    height:52px;
    border:none;
    outline:none;
    border-radius:14px;
    background:#1c1c1c;
    color:#fff;
    padding:0 14px;
}

/* BUTTON */

.card-pay-button{
    width:100%;
    height:58px;
    border:none;
    border-radius:16px;
    background:#84ff00;
    color:#000;
    font-weight:bold;
    cursor:pointer;
    margin-top:10px;
}

.cart-view,
.checkout-view,
.payment-view{
    position:absolute;
    inset:0;
    background:#111;

    display:flex;
    flex-direction:column;

    transition:
        transform .35s ease,
        opacity .35s ease;

    transform:translateX(100%);
    opacity:0;

    pointer-events:none;
}

/* VIEW ATIVA */

.cart-view.active,
.checkout-view.active,
.payment-view.active{
    transform:translateX(0);
    opacity:1;
    pointer-events:auto;
}

/* SUCCESS / FAILED */

.success-view,
.failed-view{
    position:absolute;
    inset:0;
    background:#111;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:30px;

    transform:translateX(100%);
    opacity:0;
    pointer-events:none;

    transition:.35s ease;
}

.success-view.active,
.failed-view.active{
    transform:translateX(0);
    opacity:1;
    pointer-events:auto;
    overflow: auto;
}

.qrCodeImg{
    height: 100% !important;
    margin: 0 auto !important;
    display: block;
}

.textQrCode{
    width: 100%;
    padding: 5px 0 0 0;
    color: #fff;
    font-size: 12px;
    white-space: normal;
    word-break: break-all;
    display: block;
    text-align: left;
}

/* BODY */

.success-body{
    width:100%;
    text-align:center;
    margin-top: 125px;
}
div.failed-view .success-body .success-info .success-row strong{ text-align: right; }


/* ICON */

.success-icon,
.failed-icon{
    width:90px;
    height:90px;

    margin:0 auto 30px;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:40px;
    font-weight:bold;
}

.success-icon{
    background:#84ff00;
    color:#000;
}

.failed-icon{
    background:#ff4d4d;
    color:#fff;
}

/* TEXT */

.success-body h2{
    font-size:32px;
    margin-bottom:16px;
}

.success-text{
    color:#999;
    line-height:1.5;
    margin-bottom:35px;
}

/* INFO */

.success-info{
    background:#1a1a1a;
    border-radius:20px;
    padding:22px;
    margin-bottom:30px;
}

.success-row{
    display:flex;
    justify-content:space-between;
    margin-bottom:16px;
}

.success-row:last-child{
    margin-bottom:0;
}

.success-row span{
    color:#888;
}

.success-row strong{
    color:#fff;
}

/* BUTTONS */

.success-button,
.retry-button{
    width:100%;
    height:58px;

    border:none;
    border-radius:16px;

    background:#84ff00;
    color:#000;

    font-weight:bold;
    cursor:pointer;

    margin-bottom:12px;
    padding: 17px 0;
    display: block;
}

.retry-button{
    background:#ff4d4d;
    color:#fff;
}

.success-secondary{
    width:100%;
    height:54px;

    border:1px solid rgba(255,255,255,.08);

    border-radius:16px;

    background:transparent;
    color:#fff;

    cursor:pointer;
}

/* CARRINHO VAZIO */

.cart-empty{
    min-height:100%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:40px 20px;
}

.cart-empty-icon{
    width:110px;
    height:110px;

    border-radius:50%;

    background:#1c1c1c;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:42px;

    margin-bottom:30px;

    border:1px solid rgba(255,255,255,.05);
}

.cart-empty h3{
    font-size:28px;
    margin-bottom:15px;
}

.cart-empty p{
    max-width:320px;
    color:#888;
    line-height:1.7;
    margin-bottom:30px;
}

.cart-empty-button{
    width:100%;
    max-width:280px;
    height:56px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:16px;

    background:#84ff00;
    color:#000;

    font-weight:bold;
    text-decoration:none;

    transition:.2s ease;
}

.cart-empty-button:hover{
    transform:translateY(-2px);
}

.content-card-sidebar{ height: 100%; }

.loading{
    background-image:url('../img/infinity-loader.svg');
    background-repeat:no-repeat;
    background-position:center;
    background-size:40px;
}