/* =========================================================
   KRAFEX — BOLSA NEON
   bolsa.css
   ========================================================= */

:root {
    --k-black: #050507;
    --k-black-2: #0a0a0e;
    --k-card: #0e0e14;
    --k-card-2: #13131b;

    --k-ivory: #f5f1e8;
    --k-gray: #8d8d99;

    --k-gold: #d6c3a3;
    --k-pink: #ff4fd8;
    --k-pink-soft: #cfa6a1;
    --k-cyan: #38e8ff;
    --k-green: #39ff88;
    --k-purple: #9b5cff;

    --neon-pink-glow:
        0 0 5px rgba(255, 79, 216, .45),
        0 0 18px rgba(255, 79, 216, .25);

    --neon-cyan-glow:
        0 0 5px rgba(56, 232, 255, .4),
        0 0 18px rgba(56, 232, 255, .2);

    --neon-gold-glow:
        0 0 5px rgba(214, 195, 163, .35),
        0 0 18px rgba(214, 195, 163, .18);
}


/* =========================================================
   RESET SOLO PARA BOLSA
   ========================================================= */

.bag-page,
.bag-page * {
    box-sizing: border-box;
}

.bag-page button,
.bag-page input,
.bag-page textarea,
.bag-page select {
    font-family: inherit;
}


/* =========================================================
   PÁGINA
   ========================================================= */

.bag-page {
    width: calc(100% - 76px);
    min-height: 100vh;

    margin-left: 76px;

    padding:
        105px
        30px
        70px;

    background:
        radial-gradient(
            circle at 80% 5%,
            rgba(255, 79, 216, .07),
            transparent 28%
        ),
        radial-gradient(
            circle at 15% 35%,
            rgba(56, 232, 255, .045),
            transparent 25%
        ),
        #050507;

    color: var(--k-ivory);
}


/* =========================================================
   CABECERA
   ========================================================= */

.bag-header {
    width: min(1400px, 100%);
    margin: 0 auto 30px;

    display: flex;
    align-items: center;
    gap: 16px;

    padding: 18px 22px;

    border: 1px solid rgba(255, 79, 216, .25);
    border-radius: 18px;

    background:
        linear-gradient(
            135deg,
            rgba(255, 79, 216, .06),
            rgba(56, 232, 255, .025)
        );

    box-shadow:
        0 0 25px rgba(255, 79, 216, .05);
}

.bag-header > .material-symbols-rounded {
    width: 52px;
    height: 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 14px;

    color: var(--k-pink);

    background: rgba(255, 79, 216, .08);

    border: 1px solid rgba(255, 79, 216, .3);

    text-shadow:
        0 0 6px var(--k-pink),
        0 0 18px rgba(255, 79, 216, .7);

    box-shadow: var(--neon-pink-glow);
}

.bag-header small {
    display: block;

    margin-bottom: 2px;

    color: var(--k-cyan);

    font-size: 10px;
    font-weight: 700;
    letter-spacing: 3px;

    text-shadow: 0 0 8px rgba(56, 232, 255, .5);
}

.bag-header h1 {
    margin: 0;

    color: var(--k-ivory);

    font-size: 30px;
    font-weight: 700;

    text-shadow:
        0 0 15px rgba(245, 241, 232, .08);
}

.bag-header p {
    margin: 4px 0 0;

    color: var(--k-gray);

    font-size: 14px;
}


/* =========================================================
   ESTADOS VACÍOS / LOGIN
   ========================================================= */

.empty-bag[hidden] {
    display: none !important;
}

.empty-bag {
    width: min(1400px, 100%);
    min-height: 300px;

    margin: 0 auto 30px;
    padding: 40px 25px;

    display: flex;
    flex-direction: column;

    align-items: center;
    justify-content: center;

    text-align: center;

    border: 1px solid rgba(255, 79, 216, .25);
    border-radius: 20px;

    background:
        radial-gradient(
            circle,
            rgba(255, 79, 216, .07),
            transparent 55%
        ),
        var(--k-card);

    box-shadow:
        0 0 35px rgba(255, 79, 216, .06);
}

.empty-bag .material-symbols-rounded {
    margin-bottom: 12px;

    font-size: 55px;

    color: var(--k-pink);

    text-shadow:
        0 0 7px var(--k-pink),
        0 0 22px rgba(255, 79, 216, .7);
}

.empty-bag h2 {
    margin: 0 0 8px;

    color: var(--k-ivory);
}

.empty-bag p {
    max-width: 500px;

    margin: 0 0 22px;

    color: var(--k-gray);

    line-height: 1.6;
}


/* =========================================================
   BOTONES GENERALES
   ========================================================= */

.primary-button,
.secondary-button {
    min-height: 44px;

    display: inline-flex;

    align-items: center;
    justify-content: center;
    gap: 8px;

    padding: 11px 18px;

    border-radius: 10px;

    font-size: 13px;
    font-weight: 800;

    cursor: pointer;

    text-decoration: none;

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        background .2s ease,
        border-color .2s ease;
}

.primary-button {
    border: 1px solid var(--k-pink);

    background: rgba(255, 79, 216, .12);

    color: var(--k-pink);

    box-shadow:
        inset 0 0 15px rgba(255, 79, 216, .04);
}

.primary-button:hover {
    transform: translateY(-2px);

    background: rgba(255, 79, 216, .2);

    box-shadow: var(--neon-pink-glow);
}

.secondary-button {
    border: 1px solid rgba(214, 195, 163, .35);

    background: rgba(214, 195, 163, .04);

    color: var(--k-gold);
}

.secondary-button:hover {
    transform: translateY(-2px);

    border-color: var(--k-gold);

    box-shadow: var(--neon-gold-glow);
}


/* =========================================================
   LAYOUT PRINCIPAL
   ========================================================= */

#bag-layout[hidden] {
    display: none !important;
}

.bag-layout {
    width: min(1400px, 100%);

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        330px;

    gap: 25px;

    align-items: start;
}


/* =========================================================
   TÍTULO PRODUCTOS
   ========================================================= */

.bag-title-row {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 15px;

    margin-bottom: 16px;

    padding-bottom: 12px;

    border-bottom:
        1px solid rgba(255, 79, 216, .15);
}

.bag-title-row h2 {
    margin: 0;

    color: var(--k-ivory);

    font-size: 21px;
}

#product-count {
    color: var(--k-cyan);

    font-size: 13px;
    font-weight: 700;

    text-shadow:
        0 0 8px rgba(56, 232, 255, .4);
}


/* =========================================================
   CONTENEDOR PRODUCTOS
   ========================================================= */

#products-container {
    width: 100%;

    display: flex;
    flex-direction: column;

    gap: 12px;
}


/* =========================================================
   TARJETA PRODUCTO
   ========================================================= */

.bag-product {
    position: relative;

    width: 100%;
    min-height: 140px;

    display: flex;

    align-items: center;

    gap: 17px;

    padding: 15px 18px 15px 58px;

    border: 1px solid rgba(255, 79, 216, .18);

    border-radius: 15px;

    background:
        linear-gradient(
            135deg,
            rgba(255, 79, 216, .035),
            rgba(56, 232, 255, .015)
        ),
        var(--k-card);

    overflow: hidden;

    transition:
        transform .2s ease,
        border-color .2s ease,
        box-shadow .2s ease;
}

.bag-product::before {
    content: "";

    position: absolute;

    left: 0;
    top: 0;
    bottom: 0;

    width: 3px;

    background:
        linear-gradient(
            180deg,
            var(--k-pink),
            var(--k-purple),
            var(--k-cyan)
        );

    opacity: .75;

    box-shadow:
        0 0 10px rgba(255, 79, 216, .5);
}

.bag-product:hover {
    transform: translateY(-2px);

    border-color: rgba(255, 79, 216, .45);

    box-shadow:
        0 5px 25px rgba(255, 79, 216, .08),
        inset 0 0 25px rgba(255, 79, 216, .025);
}


/* =========================================================
   SELECTOR
   ========================================================= */

.product-selector {
    position: absolute;

    top: 16px;
    left: 16px;

    width: 28px;
    height: 28px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 0;

    border: 1px solid var(--k-pink);

    border-radius: 50%;

    background: transparent;

    color: var(--k-pink);

    cursor: pointer;

    box-shadow:
        0 0 7px rgba(255, 79, 216, .15);

    transition: .2s ease;
}

.product-selector:hover {
    transform: scale(1.08);

    background: rgba(255, 79, 216, .1);

    box-shadow: var(--neon-pink-glow);
}

.product-selector.selected {
    background: var(--k-pink);

    border-color: var(--k-pink);

    color: #050507;

    box-shadow: var(--neon-pink-glow);
}

.product-selector .material-symbols-rounded {
    font-size: 17px;
}


/* =========================================================
   IMÁGENES — CONTROL ABSOLUTO
   ========================================================= */

.bag-product-image-container,
.product-image-container {
    width: 105px !important;
    min-width: 105px !important;
    max-width: 105px !important;

    height: 105px !important;
    min-height: 105px !important;
    max-height: 105px !important;

    overflow: hidden;

    flex-shrink: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 12px;

    border: 1px solid rgba(255, 79, 216, .2);

    background:
        radial-gradient(
            circle,
            rgba(255, 79, 216, .06),
            transparent 70%
        ),
        #09090d;

    box-shadow:
        inset 0 0 15px rgba(255, 79, 216, .035);
}

.bag-product > img,
.bag-product img,
.bag-product-image,
.product-image {
    width: 105px !important;
    max-width: 105px !important;

    height: 105px !important;
    max-height: 105px !important;

    min-width: 0 !important;
    min-height: 0 !important;

    object-fit: contain !important;

    display: block;

    flex-shrink: 0;

    border-radius: 10px;
}


/* =========================================================
   INFORMACIÓN
   ========================================================= */

.product-info {
    flex: 1;

    min-width: 0;

    align-self: center;
}

.product-info h3 {
    margin: 0 0 7px;

    color: var(--k-ivory);

    font-size: 17px;
    font-weight: 700;

    line-height: 1.3;
}

.product-price {
    margin: 0 0 12px;

    color: var(--k-gold);

    font-size: 16px;
    font-weight: 800;

    text-shadow:
        0 0 8px rgba(214, 195, 163, .15);
}


/* =========================================================
   CANTIDAD
   ========================================================= */

.quantity {
    display: flex;

    align-items: center;

    gap: 8px;
}

.quantity-button {
    width: 30px;
    height: 30px;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 0;

    border: 1px solid rgba(56, 232, 255, .3);

    border-radius: 7px;

    background: rgba(56, 232, 255, .03);

    color: var(--k-cyan);

    cursor: pointer;

    transition: .2s ease;
}

.quantity-button:hover {
    background: rgba(56, 232, 255, .12);

    border-color: var(--k-cyan);

    box-shadow: var(--neon-cyan-glow);
}

.quantity-number {
    min-width: 24px;

    color: var(--k-ivory);

    text-align: center;

    font-size: 14px;
}


/* =========================================================
   ELIMINAR
   ========================================================= */

.delete-product {
    width: 35px;
    height: 35px;

    flex-shrink: 0;

    display: flex;

    align-items: center;
    justify-content: center;

    padding: 0;

    border: 1px solid transparent;

    border-radius: 8px;

    background: transparent;

    color: var(--k-pink);

    cursor: pointer;

    transition: .2s ease;
}

.delete-product:hover {
    background: rgba(255, 79, 216, .08);

    border-color: rgba(255, 79, 216, .25);

    box-shadow:
        0 0 12px rgba(255, 79, 216, .2);
}


/* =========================================================
   ACCIONES PRODUCTO
   ========================================================= */

.product-actions {
    display: flex;

    flex-wrap: wrap;

    gap: 7px;

    margin-top: 10px;
}

.customize-button,
.questions-button {
    min-height: 34px;

    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: 5px;

    padding: 7px 10px;

    border: 1px solid rgba(255, 79, 216, .4);

    border-radius: 8px;

    background: rgba(255, 79, 216, .04);

    color: var(--k-pink);

    font-size: 12px;
    font-weight: 700;

    cursor: pointer;

    transition: .2s ease;
}

.customize-button:hover,
.questions-button:hover {
    background: rgba(255, 79, 216, .13);

    border-color: var(--k-pink);

    box-shadow: var(--neon-pink-glow);
}

.customize-button .material-symbols-rounded,
.questions-button .material-symbols-rounded {
    font-size: 17px;
}


/* =========================================================
   ESTADO PERSONALIZACIÓN
   ========================================================= */

.customization-status {
    display: flex;

    align-items: center;

    gap: 5px;

    margin-top: 7px;

    font-size: 11px;
    font-weight: 600;
}

.customization-status.pending {
    color: var(--k-pink);
}

.customization-status.completed {
    color: var(--k-green);

    text-shadow:
        0 0 8px rgba(57, 255, 136, .35);
}


/* =========================================================
   RESUMEN
   ========================================================= */

.summary {
    position: sticky;

    top: 95px;

    width: 100%;

    padding: 23px;

    border: 1px solid rgba(56, 232, 255, .2);

    border-radius: 17px;

    background:
        linear-gradient(
            145deg,
            rgba(56, 232, 255, .035),
            rgba(255, 79, 216, .035)
        ),
        var(--k-card);

    box-shadow:
        0 0 25px rgba(56, 232, 255, .04);
}

.summary h2 {
    margin: 0 0 22px;

    color: var(--k-cyan);

    font-size: 21px;

    text-shadow:
        0 0 9px rgba(56, 232, 255, .35);
}

.summary-row {
    display: flex;

    justify-content: space-between;

    gap: 15px;

    margin-bottom: 13px;

    color: var(--k-gray);

    font-size: 14px;
}

.summary-row strong {
    color: var(--k-ivory);
}

.summary-total {
    display: flex;

    align-items: center;
    justify-content: space-between;

    padding-top: 17px;
    margin-top: 17px;

    border-top:
        1px solid rgba(255, 79, 216, .2);
}

.summary-total span {
    color: var(--k-ivory);

    font-size: 16px;
    font-weight: 700;
}

.summary-total strong {
    color: var(--k-pink);

    font-size: 21px;

    text-shadow:
        0 0 8px rgba(255, 79, 216, .45);
}

#checkout-button {
    width: 100%;

    margin-top: 20px;
}

#checkout-button:disabled {
    opacity: .35;

    cursor: not-allowed;

    box-shadow: none;
}

#checkout-button.ready {
    opacity: 1;

    border-color: var(--k-pink);

    box-shadow: var(--neon-pink-glow);
}


/* =========================================================
   PERSONALIZACIÓN
   ========================================================= */

.checkout[hidden] {
    display: none !important;
}

.checkout {
    width: min(1100px, 100%);

    margin: 35px auto 0;

    padding: 28px;

    border: 1px solid rgba(255, 79, 216, .25);

    border-radius: 20px;

    background:
        radial-gradient(
            circle at top right,
            rgba(255, 79, 216, .06),
            transparent 35%
        ),
        var(--k-card);

    box-shadow:
        0 0 35px rgba(255, 79, 216, .05);
}

.checkout > header {
    display: flex;

    align-items: center;

    gap: 15px;

    margin-bottom: 22px;
}

.checkout > header > .material-symbols-rounded {
    font-size: 42px;

    color: var(--k-pink);

    text-shadow:
        0 0 8px var(--k-pink),
        0 0 20px rgba(255, 79, 216, .5);
}

.checkout > header small {
    display: block;

    color: var(--k-cyan);

    font-size: 10px;

    letter-spacing: 3px;
}

.checkout > header h2 {
    margin: 2px 0;

    color: var(--k-ivory);

    font-size: 27px;
}

.checkout > header p {
    margin: 3px 0;

    color: var(--k-gray);

    font-size: 13px;
}


/* =========================================================
   INTRO
   ========================================================= */

.customization-intro {
    display: flex;

    gap: 12px;

    margin-bottom: 25px;

    padding: 15px;

    border: 1px solid rgba(56, 232, 255, .15);

    border-radius: 12px;

    background: rgba(56, 232, 255, .025);
}

.customization-intro > .material-symbols-rounded {
    color: var(--k-cyan);

    text-shadow:
        0 0 8px rgba(56, 232, 255, .5);
}

.customization-intro p {
    margin: 0;

    color: var(--k-gray);

    font-size: 13px;

    line-height: 1.6;
}

.customization-intro strong {
    color: var(--k-ivory);
}


/* =========================================================
   PREGUNTAS
   ========================================================= */

.questions-container {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 15px;
}

.question {
    padding: 17px;

    border: 1px solid rgba(255, 79, 216, .14);

    border-radius: 12px;

    background: rgba(255, 255, 255, .015);
}

.question:nth-child(15) {
    grid-column: 1 / -1;
}

.question > label {
    display: block;

    margin-bottom: 9px;

    color: var(--k-ivory);

    font-size: 13px;
    font-weight: 700;
}

.question input,
.question textarea,
.question select {
    width: 100%;

    padding: 11px 12px;

    border: 1px solid rgba(255, 79, 216, .18);

    border-radius: 8px;

    outline: none;

    background: #08080c;

    color: var(--k-ivory);

    font-size: 13px;

    transition: .2s ease;
}

.question textarea {
    min-height: 90px;

    resize: vertical;
}

.question input:focus,
.question textarea:focus,
.question select:focus {
    border-color: var(--k-pink);

    box-shadow:
        0 0 0 2px rgba(255, 79, 216, .08),
        0 0 15px rgba(255, 79, 216, .12);
}

.question select option {
    background: #0a0a0e;

    color: var(--k-ivory);
}


/* =========================================================
   LIBERTAD CREATIVA
   ========================================================= */

.freedom-options {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 12px;
}

.freedom-card {
    position: relative;

    min-height: 135px;

    display: grid;

    grid-template-columns: auto 1fr;

    column-gap: 8px;

    align-content: center;

    padding: 16px;

    border: 1px solid rgba(255, 79, 216, .2);

    border-radius: 12px;

    background: rgba(255, 79, 216, .025);

    cursor: pointer;

    transition: .2s ease;
}

.freedom-card:hover {
    border-color: rgba(255, 79, 216, .5);

    box-shadow:
        0 0 18px rgba(255, 79, 216, .08);
}

.freedom-card input {
    width: auto !important;

    accent-color: var(--k-pink);
}

.freedom-card .material-symbols-rounded {
    color: var(--k-pink);

    font-size: 22px;

    text-shadow:
        0 0 8px rgba(255, 79, 216, .5);
}

.freedom-card strong {
    color: var(--k-ivory);

    font-size: 14px;
}

.freedom-card small {
    grid-column: 2;

    margin-top: 5px;

    color: var(--k-gray);

    line-height: 1.45;
}


/* =========================================================
   GUARDAR IDEA
   ========================================================= */

#save-customization {
    width: 100%;

    margin-top: 20px;

    min-height: 50px;

    font-size: 14px;

    letter-spacing: .5px;
}


/* =========================================================
   CHECKOUT
   ========================================================= */

.checkout-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 20px;

    margin-bottom: 25px;
}

.checkout-grid > div,
.payment-section,
.checkout-bottom {
    padding: 20px;

    border: 1px solid rgba(56, 232, 255, .13);

    border-radius: 14px;

    background: rgba(255, 255, 255, .015);
}

.checkout h3 {
    margin: 0 0 16px;

    color: var(--k-ivory);

    font-size: 17px;
}


/* =========================================================
   PRODUCTOS CHECKOUT
   ========================================================= */

#checkout-products {
    display: flex;

    flex-direction: column;

    gap: 9px;
}

.checkout-product {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 10px;

    padding: 12px;

    border: 1px solid rgba(255, 79, 216, .12);

    border-radius: 9px;

    background: rgba(255, 79, 216, .02);
}

.checkout-product-name {
    color: var(--k-ivory);

    font-weight: 700;
}

.checkout-product-info {
    color: var(--k-gray);

    font-size: 12px;
}

.checkout-product-price {
    color: var(--k-gold);

    font-weight: 800;

    white-space: nowrap;
}


/* =========================================================
   DIRECCIÓN
   ========================================================= */

.address-freedom {
    display: flex;

    gap: 10px;

    margin-bottom: 14px;

    padding: 13px;

    border: 1px solid rgba(56, 232, 255, .13);

    border-radius: 10px;

    background: rgba(56, 232, 255, .025);
}

.address-freedom .material-symbols-rounded {
    color: var(--k-cyan);
}

.address-freedom p {
    margin: 0;

    color: var(--k-gray);

    font-size: 12px;

    line-height: 1.5;
}

.address-freedom strong {
    color: var(--k-ivory);
}

.address-box {
    min-height: 55px;

    margin-bottom: 12px;

    padding: 13px;

    border: 1px solid rgba(255, 255, 255, .08);

    border-radius: 9px;

    background: rgba(255, 255, 255, .02);

    color: var(--k-gray);

    font-size: 13px;

    line-height: 1.5;
}


/* =========================================================
   FORMULARIO DIRECCIÓN
   ========================================================= */

.address-form[hidden] {
    display: none !important;
}

.address-form {
    margin-top: 15px;

    padding: 16px;

    border: 1px solid rgba(255, 79, 216, .18);

    border-radius: 12px;

    background: rgba(255, 79, 216, .025);
}

.address-form label {
    display: block;

    margin: 10px 0 6px;

    color: var(--k-gold);

    font-size: 12px;
    font-weight: 700;
}

.address-form input,
.address-form textarea {
    width: 100%;

    padding: 11px 12px;

    border: 1px solid rgba(255, 79, 216, .16);

    border-radius: 8px;

    outline: none;

    background: #08080c;

    color: var(--k-ivory);

    font-size: 13px;
}

.address-form textarea {
    min-height: 80px;

    resize: vertical;
}

.address-form input:focus,
.address-form textarea:focus {
    border-color: var(--k-pink);

    box-shadow:
        0 0 12px rgba(255, 79, 216, .12);
}

#save-address-button {
    width: 100%;

    margin-top: 12px;
}


/* =========================================================
   MÉTODOS DE PAGO
   ========================================================= */

.payment-section {
    margin-bottom: 20px;
}

.payment-description {
    margin: -7px 0 15px;

    color: var(--k-gray);

    font-size: 13px;
}

.payment-options {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 12px;
}

.payment-card {
    min-height: 90px;

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 15px;

    border: 1px solid rgba(255, 79, 216, .15);

    border-radius: 12px;

    background: rgba(255, 79, 216, .025);

    cursor: pointer;

    transition: .2s ease;
}

.payment-card:hover {
    border-color: rgba(255, 79, 216, .4);

    box-shadow:
        0 0 15px rgba(255, 79, 216, .07);
}

.payment-card input {
    accent-color: var(--k-pink);
}

.payment-card > .material-symbols-rounded {
    color: var(--k-pink);

    font-size: 27px;

    text-shadow:
        0 0 8px rgba(255, 79, 216, .45);
}

.payment-card strong {
    display: block;

    color: var(--k-ivory);

    margin-bottom: 4px;
}

.payment-card small {
    display: block;

    color: var(--k-gray);

    line-height: 1.4;
}


/* =========================================================
   NEQUI
   ========================================================= */

.nequi-info {
    display: flex;

    gap: 10px;

    margin-top: 15px;

    padding: 14px;

    border: 1px solid rgba(56, 232, 255, .2);

    border-radius: 11px;

    background: rgba(56, 232, 255, .025);
}

.nequi-info > .material-symbols-rounded {
    color: var(--k-cyan);

    text-shadow:
        0 0 8px rgba(56, 232, 255, .5);
}

.nequi-info p {
    margin: 0;

    color: var(--k-gray);

    font-size: 12px;

    line-height: 1.6;
}

.nequi-info strong {
    color: var(--k-cyan);
}


/* =========================================================
   TOTAL CHECKOUT
   ========================================================= */

.checkout-bottom {
    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 20px;

    border-color: rgba(255, 79, 216, .25);

    background:
        linear-gradient(
            90deg,
            rgba(255, 79, 216, .04),
            rgba(56, 232, 255, .025)
        );
}

.checkout-bottom small {
    display: block;

    margin-bottom: 4px;

    color: var(--k-gray);

    font-size: 10px;

    letter-spacing: 2px;
}

#checkout-total {
    color: var(--k-pink);

    font-size: 25px;

    text-shadow:
        0 0 10px rgba(255, 79, 216, .45);
}

#confirm-order-button {
    min-width: 230px;

    min-height: 50px;
}


/* =========================================================
   PEDIDO CREADO
   ========================================================= */

.order-created[hidden] {
    display: none !important;
}

.order-created {
    width: min(800px, 100%);

    margin: 35px auto 0;

    padding: 35px 25px;

    text-align: center;

    border: 1px solid rgba(57, 255, 136, .25);

    border-radius: 20px;

    background:
        radial-gradient(
            circle,
            rgba(57, 255, 136, .06),
            transparent 55%
        ),
        var(--k-card);

    box-shadow:
        0 0 35px rgba(57, 255, 136, .05);
}

.order-created > .material-symbols-rounded {
    font-size: 60px;

    color: var(--k-green);

    text-shadow:
        0 0 8px var(--k-green),
        0 0 25px rgba(57, 255, 136, .55);
}

.order-created > small {
    display: block;

    margin-top: 10px;

    color: var(--k-cyan);

    letter-spacing: 3px;
}

.order-created h2 {
    margin: 8px 0;

    color: var(--k-ivory);
}

.order-created > p {
    color: var(--k-gray);

    line-height: 1.6;
}


/* =========================================================
   NÚMERO PEDIDO
   ========================================================= */

.order-number-box {
    max-width: 400px;

    margin: 20px auto;

    padding: 17px;

    border: 1px solid rgba(214, 195, 163, .25);

    border-radius: 12px;

    background: rgba(214, 195, 163, .035);
}

.order-number-box span {
    display: block;

    margin-bottom: 6px;

    color: var(--k-gray);

    font-size: 12px;
}

.order-number-box strong {
    color: var(--k-gold);

    font-size: 22px;

    letter-spacing: 2px;

    text-shadow:
        0 0 8px rgba(214, 195, 163, .4);
}

#whatsapp-button {
    width: 100%;

    margin: 8px 0;

    border-color: var(--k-green);

    color: var(--k-green);

    background: rgba(57, 255, 136, .05);
}

#whatsapp-button:hover {
    box-shadow:
        0 0 15px rgba(57, 255, 136, .25);
}

.order-created > a {
    width: 100%;

    margin-top: 8px;
}


/* =========================================================
   OCULTAR COSAS VACÍAS
   ========================================================= */

#customization-section[hidden],
#checkout-section[hidden],
#order-created[hidden],
#bag-layout[hidden],
#login-required[hidden],
#empty-bag[hidden] {
    display: none !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 1000px) {

    .bag-layout {
        grid-template-columns: 1fr;
    }

    .summary {
        position: relative;

        top: auto;
    }

    .questions-container {
        grid-template-columns: 1fr;
    }

    .question:nth-child(15) {
        grid-column: auto;
    }

    .freedom-options {
        grid-template-columns: 1fr;
    }

    .checkout-grid {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   MÓVIL
   ========================================================= */

@media (max-width: 650px) {

    .bag-page {
        width: 100%;

        margin-left: 0;

        padding:
            85px
            13px
            45px;
    }

    .bag-header {
        padding: 15px;

        border-radius: 14px;
    }

    .bag-header > .material-symbols-rounded {
        width: 44px;
        height: 44px;

        font-size: 25px;
    }

    .bag-header h1 {
        font-size: 24px;
    }

    .bag-product {
        min-height: 125px;

        padding:
            48px
            12px
            13px;

        align-items: flex-start;

        gap: 12px;
    }

    .bag-product-image-container,
    .product-image-container {
        width: 82px !important;
        min-width: 82px !important;
        max-width: 82px !important;

        height: 82px !important;
        min-height: 82px !important;
        max-height: 82px !important;
    }

    .bag-product > img,
    .bag-product img,
    .bag-product-image,
    .product-image {
        width: 82px !important;
        max-width: 82px !important;

        height: 82px !important;
        max-height: 82px !important;
    }

    .product-info h3 {
        font-size: 15px;
    }

    .product-price {
        font-size: 14px;
    }

    .delete-product {
        position: absolute;

        top: 10px;
        right: 10px;
    }

    .summary {
        padding: 18px;
    }

    .checkout {
        padding: 18px;
    }

    .checkout-grid {
        grid-template-columns: 1fr;
    }

    .payment-options {
        grid-template-columns: 1fr;
    }

    .checkout-bottom {
        flex-direction: column;

        align-items: stretch;
    }

    #confirm-order-button {
        width: 100%;

        min-width: 0;
    }

    .questions-container {
        grid-template-columns: 1fr;
    }

    .freedom-options {
        grid-template-columns: 1fr;
    }
}


/* =========================================================
   MÓVIL PEQUEÑO
   ========================================================= */

@media (max-width: 420px) {

    .bag-page {
        padding-left: 9px;
        padding-right: 9px;
    }

    .bag-product {
        padding-left: 48px;
    }

    .bag-product-image-container,
    .product-image-container {
        width: 72px !important;
        min-width: 72px !important;
        max-width: 72px !important;

        height: 72px !important;
        min-height: 72px !important;
        max-height: 72px !important;
    }

    .bag-product > img,
    .bag-product img,
    .bag-product-image,
    .product-image {
        width: 72px !important;
        max-width: 72px !important;

        height: 72px !important;
        max-height: 72px !important;
    }
}
