/* =========================
   RADIUS
========================= */

.lux-r-none{
    border-radius: 0 !important;
}

.lux-r-sm{
    border-radius: var(--lux-radius-sm) !important;
}

.lux-r-md{
    border-radius: var(--lux-radius-md) !important;
}

.lux-r-lg{
    border-radius: var(--lux-radius-lg) !important;
}

.lux-r-xl{
    border-radius: var(--lux-radius-xl) !important;
}

.lux-r-pill{
    border-radius: var(--lux-radius-pill) !important;
}

/* =========================
   SHADOWS
========================= */

.lux-shadow-none{
    box-shadow: none !important;
}

.lux-shadow-sm{
    box-shadow: var(--lux-shadow-sm) !important;
}

.lux-shadow-md{
    box-shadow: var(--lux-shadow-md) !important;
}

/* =========================
   BORDERS
========================= */

.lux-border{
    border: var(--lux-border) !important;
}

.lux-border-gold{
    border: 1px solid rgba(200,169,107,.45) !important;
}

.lux-border-none{
    border: none !important;
}

/* =========================
   BACKGROUNDS
========================= */

.lux-bg-white{
    background: #fff !important;
}

.lux-bg-soft{
    background: #f7f7f7 !important;
}

.lux-bg-cream{
    background: #f5f1e8 !important;
}

.lux-bg-dark{
    background: var(--theme-color) !important;
    color: #f5f1e8 !important;
}

.lux-bg-gold{
    background: var(--theme-color2) !important;
    color: #111 !important;
}

/* =========================
   IMAGES
========================= */

.lux-img-cover{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.lux-img-contain{
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

.lux-img-soft{
    border-radius: var(--lux-radius-lg) !important;
    overflow: hidden !important;
}

.lux-img-product{
    border-radius: var(--lux-radius-lg) !important;
    overflow: hidden !important;
    background: #f7f7f7 !important;
}

/* =========================
   CARDS
========================= */

.lux-card{
    background: #fff !important;
    border: var(--lux-border) !important;
    border-radius: var(--lux-radius-lg) !important;
    box-shadow: var(--lux-shadow-sm) !important;
    transition: all .25s ease !important;
}

.lux-card-pro{
    background: #fff !important;
    border: var(--lux-border) !important;
    border-radius: var(--lux-radius-xl) !important;
    box-shadow: var(--lux-shadow-sm) !important;
    transition: all .25s ease !important;
}

.lux-card-hover:hover{
    transform: translateY(-3px) !important;
    box-shadow: var(--lux-shadow-md) !important;
}

/* =========================
   BUTTONS
========================= */

.lux-btn-pill{
    border-radius: var(--lux-radius-pill) !important;
}

.lux-btn-soft{
    border-radius: var(--lux-radius-md) !important;
}

.lux-btn-pro{
    border-radius: var(--lux-radius-pill) !important;
    transition: all .25s ease !important;
}

.lux-btn-pro:hover{
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 24px rgba(0,0,0,.15) !important;
}

/* =========================
   INPUTS
========================= */

.lux-input{
    border-radius: var(--lux-radius-sm) !important;
    border: var(--lux-border) !important;
    background: #fff !important;
}

.lux-input-pill{
    border-radius: var(--lux-radius-pill) !important;
}

.lux-input:focus,
.lux-input-pill:focus{
    border-color: rgba(200,169,107,.75) !important;
    box-shadow: 0 0 0 3px rgba(200,169,107,.15) !important;
}

/* =========================
   HOVERS / MOTION
========================= */

.lux-transition{
    transition: all .25s ease !important;
}

.lux-hover-up:hover{
    transform: translateY(-2px) !important;
}

.lux-hover-shadow:hover{
    box-shadow: var(--lux-shadow-md) !important;
}

.lux-hover-gold:hover{
    color: var(--theme-color2) !important;
}

/* =========================
   TEXT
========================= */

.lux-text-gold{
    color: var(--theme-color2) !important;
}

.lux-text-dark{
    color: var(--theme-color) !important;
}

.lux-text-muted{
    color: #777 !important;
}

.lux-text-light{
    color: #f5f1e8 !important;
}

.lux-title-pro{
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
}

.lux-subtitle-pro{
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
    color: #888 !important;
}

/* =========================
   SECTIONS
========================= */

.lux-section-soft{
    background: #f5f6f6 !important;
}

.lux-section-white{
    background: #fff !important;
}

.lux-section-dark{
    background: #111 !important;
    color: #f5f1e8 !important;
}

/* =========================
   PRODUCT CARDS
========================= */

.lux-product-card{
    border-radius: var(--lux-radius-lg) !important;
    overflow: hidden !important;
    transition: all .25s ease !important;
}

.lux-product-card:hover{
    transform: translateY(-4px) !important;
}

.lux-product-card img{
    border-radius: var(--lux-radius-lg) !important;
}

/* =========================
   FOOTER CARDS
========================= */

.lux-footer-card{
    background: #fff !important;
    border-radius: var(--lux-radius-lg) !important;
    border: var(--lux-border) !important;
    box-shadow: var(--lux-shadow-sm) !important;
}

/* =========================
   INSTAGRAM
========================= */

.lux-instagram-card{
    border-radius: var(--lux-radius-lg) !important;
    overflow: hidden !important;
    box-shadow: var(--lux-shadow-sm) !important;
}

.lux-instagram-card img,
.lux-instagram-card iframe{
    border-radius: var(--lux-radius-lg) !important;
}

/* =========================
   CART
========================= */

.lux-cart-card-ui{
    border-radius: var(--lux-radius-lg) !important;
    border: var(--lux-border) !important;
    background: #fff !important;
    box-shadow: var(--lux-shadow-sm) !important;
}

.lux-cart-summary-ui{
    border-radius: var(--lux-radius-xl) !important;
    background: #111 !important;
    color: #f5f1e8 !important;
    box-shadow: var(--lux-shadow-md) !important;
}

.lux-cart-img-ui{
    border-radius: var(--lux-radius-lg) !important;
    overflow: hidden !important;
    background: #f7f7f7 !important;
}

.lux-qty-ui{
    border-radius: var(--lux-radius-pill) !important;
    overflow: hidden !important;
    border: var(--lux-border) !important;
}

.luxury-swal-toast{
    border-radius: 16px !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.28) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    padding: 12px 14px !important;
}

.luxury-swal-modal{
    border-radius: 20px !important;
    box-shadow: 0 18px 50px rgba(0,0,0,.32) !important;
    border: 1px solid rgba(255,255,255,.06) !important;
    padding: 1.5rem !important;
}

.luxury-swal-confirm,
.luxury-swal-cancel{
    border-radius: 12px !important;
    font-weight: 600 !important;
    padding: 10px 22px !important;
    box-shadow: none !important;
}

.swal2-popup .swal2-title{
    font-size: 1.35rem !important;
    font-weight: 700 !important;
}

.swal2-popup .swal2-html-container{
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
    color: rgba(245,241,232,.88) !important;
}

.swal2-icon.swal2-success{
    color: #c8a96b !important;
    border-color: #c8a96b !important;
}

.swal2-icon.swal2-error{
    border-color: #ffb4b4 !important;
    color: #ffb4b4 !important;
}

.swal2-icon.swal2-warning{
    border-color: #e4c27a !important;
    color: #e4c27a !important;
}

.swal2-icon.swal2-info{
    border-color: #9ec5ff !important;
    color: #9ec5ff !important;
}

@media (max-width: 576px){
    .swal2-popup.swal2-toast{
        width: calc(100% - 24px) !important;
        max-width: unset !important;
        margin: 0 12px !important;
    }

    .luxury-swal-modal{
        width: calc(100% - 24px) !important;
        padding: 1.2rem !important;
    }
}

.btn-lux{
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;

    width: auto;
    max-width: max-content;
    flex: 0 0 auto;

    padding: 12px 26px;
    border-radius: 14px;

    font-size: 14px;
    font-weight: 600;
    letter-spacing: .4px;
    line-height: 1;

    border: 1px solid rgba(255,255,255,.08);
    cursor: pointer;
    text-decoration: none;

    transition: all .25s ease;
}

.btn-lux{
    overflow: hidden;
}

.btn-lux::after{
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    opacity: 0;
    transition: opacity .25s;
    pointer-events: none;
}

.btn-lux:hover::after{
    opacity: .08;
    background: #fff;
}

.btn-lux i{
    font-size: 20px;
    display: flex;
    align-items: center;
}

.btn-lux:active{
    transform: scale(.97);
}

.btn-lux-outline{
    background: transparent;
    color: #1f1f1f;
    border: 1px solid rgba(31,31,31,.15);
}

.btn-lux-outline:hover{
    background: rgba(31,31,31,.05);
    transform: translateY(-2px);
}

.btn-lux-outline-white{
    background: white;
    color: #1f1f1f;
    border: 1px solid rgba(31,31,31,.15);
}

.btn-lux-outline-white:hover{
    background: white;
    transform: translateY(-2px);
}

.btn-lux-secondary{
    background: linear-gradient(135deg, #2a2a2a, #3a3a3a);
    border: 1px solid rgba(255,255,255,.08);
    color: #f5f1e8;
}

.btn-lux-secondary:hover{
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0,0,0,.18);
}

.btn-lux-success{
    background: linear-gradient(135deg, rgba(18,40,28,.96), rgba(34,72,48,.96));
    color:white;
}

.btn-lux-success:hover{
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0,0,0,.25);
}

.btn-lux-danger{
    background: linear-gradient(135deg, rgba(60,20,20,.96), rgba(110,35,35,.96));
    color: #f5f1e8;
    border: 1px solid rgba(200,80,80,.25);
}

.btn-lux-danger:hover{
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0,0,0,.25);
}

.btn-lux-warning{
    background: linear-gradient(135deg, rgba(79,55,10,.96), rgba(126,88,17,.96));
    color: #f5f1e8;
    border: 1px solid rgba(228,194,122,.25);
}

.btn-lux-warning:hover{
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0,0,0,.25);
}

.btn-lux-info{
    background: linear-gradient(135deg, rgba(18,33,61,.96), rgba(28,59,112,.96));
    color: #f5f1e8;
    border: 1px solid rgba(100,140,220,.25);
}

.btn-lux-info:hover{
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0,0,0,.25);
}

.btn-lux-dark{
    background: linear-gradient(135deg, #1f1f1f, #3a3a3a);
    color: #f5f1e8;
    border: 1px solid rgba(200,169,107,.25);
}

.btn-lux-dark:hover{
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0,0,0,.25);
}

.btn-lux-basic{
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.2);
    color: rgba(255,255,255,0.7);
}

.btn-lux-basic:hover{
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0,0,0,.25);
}

.btn-lux-whatsapp{
    background: linear-gradient(135deg, rgba(20,60,40,.96), rgba(40,100,70,.96));
    border: 1px solid rgba(80,180,120,.25);
    color:white;
}

.btn-lux-whatsapp:hover{
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(0,0,0,.25);
}



.badge-lux{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;

    min-height: 28px;
    padding: 7px 14px;
    border-radius: 10px;

    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .2px;
    white-space: nowrap;

    border: 1px solid transparent;
    box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

.badge-lux-floating-V {
    position: absolute;
    top: 10px;
    right: 10px;

    padding: 7px 14px;
    border-radius: 10px; /* ← clave */

    font-size: 11px;
    font-weight: 700;
    letter-spacing: .3px;

    background: linear-gradient(135deg, #c84c4c, #e05d5d);
    color: #f5f1e8;

    border: 1px solid rgb(200, 76, 76, .35);

    box-shadow: 0 8px 18px rgba(0,0,0,.28);

    z-index: 2;
}

.badge-lux-floating {
    position: absolute;
    text-transform: uppercase;
    align-items: center;
    justify-content: center;
    gap: 4px;

    min-height: 28px;
    padding: 7px 14px;
    border-radius: 10px;

    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .2px;
    white-space: nowrap;

    border: 1px solid transparent;
    box-shadow: 0 8px 18px rgba(0,0,0,.28);
    top: 7px;
    left: 7px;
    z-index: 1;
}

.product-box:hover .badge-lux-floating-V{
  transform: translateY(-1px) scale(1.03);
}
.product-box:hover .badge-lux-floating{
  transform: translateY(-1px) scale(1.03);
}

.badge-lux-new{
    background: linear-gradient(135deg, #9b4662, #c85c7a);
    color: #fff !important;
    border-color: rgba(255,255,255,.08);
}
.badge-lux-new2{
    background: linear-gradient(135deg, #2a2a2a, #444);
    color: #f5f1e8 !important;
    border-color: rgba(200,169,107,.22);
}

.badge-lux-discount{
    background: linear-gradient(135deg, #c84c4c, #e05d5d);
    color: #f5f1e8 !important;
    border-color: rgb(200, 76, 76, .35);
}

.badge-lux-offer{
    background: linear-gradient(135deg, #c84c4c, #e05d5d);
    color: #f5f1e8 !important;
    border-color: rgb(200, 76, 76, .35);
}

.badge-lux-top{
    background: linear-gradient(135deg, #1f1f1f, #3a3a3a);
    color: #f5f1e8 !important;
    border-color: rgba(200,169,107,.25);
}

.badge-lux-out{
    background: linear-gradient(135deg, #5b5b5b, #7a7a7a);
    color: #fff;
    border-color: rgba(255,255,255,.08);
}

.badge-lux-success{
    background: linear-gradient(135deg, rgba(18,40,28,.96), rgba(34,72,48,.96));
    color: #f5f1e8 !important;
    border: 1px solid rgba(90,160,115,.25);
}

.badge-lux-danger{
    background: linear-gradient(135deg, rgba(60,20,20,.96), rgba(110,35,35,.96));
    color: #f5f1e8;
    border: 1px solid rgba(200,80,80,.25);
}

.badge-lux-warning{
    background: linear-gradient(135deg, rgba(79,55,10,.96), rgba(126,88,17,.96));
    color: #f5f1e8 !important;
    border: 1px solid rgba(228,194,122,.25);
}

.badge-lux-info{
    background: linear-gradient(135deg, rgba(18,33,61,.96), rgba(28,59,112,.96));
    color: #f5f1e8;
    border: 1px solid rgba(100,140,220,.25);
}

.badge-lux-dark{
    background: linear-gradient(135deg, #1f1f1f, #3a3a3a);
    color: #f5f1e8;
    border: 1px solid rgba(200,169,107,.25);
}

.lux-countdown-box{
    margin-top: 22px;
    padding: 18px 20px;
    border: 1px dashed rgba(31,31,31,.18);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.35));
    max-width: 420px;
}

.lux-countdown-title{
    margin: 0 0 14px 0;
    font-size: 15px;
    font-weight: 700;
    color: #1f1f1f;
}

.lux-countdown{
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.lux-countdown-item{
    min-width: 62px;
    text-align: center;
}

.lux-countdown-item strong{
    display: block;
    font-size: 30px;
    line-height: 1;
    font-weight: 700;
    color: #1f1f1f;
}

.lux-countdown-item span{
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: #7c746b;
    text-transform: uppercase;
    letter-spacing: .4px;
}

.lux-countdown-sep{
    font-size: 28px;
    font-weight: 700;
    color: var(--theme-color2);
    line-height: 1;
    margin-top: -10px;
}

@media (max-width: 575.98px){
    .lux-countdown-box{
        max-width: 100%;
        padding: 16px;
    }

    .lux-countdown{
        justify-content: center;
        gap: 8px;
    }

    .lux-countdown-item{
        min-width: 54px;
    }

    .lux-countdown-item strong{
        font-size: 24px;
    }

    .lux-countdown-item span{
        font-size: 11px;
    }

    .lux-countdown-sep{
        font-size: 22px;
    }
}

.lux-countdown-expired{
    font-size: 14px;
    color: #7c746b;
}

.share-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:12px;
}

.share-action{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:92px;
    border:1px solid rgba(0,0,0,.08);
    border-radius:16px;
    text-decoration:none;
    color:inherit;
    background:#fff;
    transition:.25s ease;
    padding:14px 10px;
}

.share-action i{
    font-size:22px;
    line-height:1;
}

.share-action span{
    font-size:.9rem;
    font-weight:500;
    text-align:center;
}

.share-action:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(0,0,0,.08);
    border-color:rgba(0,0,0,.15);
    color:inherit;
}

@media (max-width: 575px){
    .share-grid{
        grid-template-columns:repeat(2, minmax(0,1fr));
    }
}

.product-description img {
    max-width: 100%;
    max-height: 500px;
    object-fit: contain;
    display: block;
    margin: 16px auto;
    border-radius: 10px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}

@media (min-width: 768px){
    .product-description img {
        max-width: 600px;
    }
}

.js-toggle-favorito {
    transition: all .2s ease;
}

.js-toggle-favorito i {
    transition: all .2s ease;
}

/* estado activo */
.js-toggle-favorito.is-favorito {
    color: #e63946;
}

.js-toggle-favorito.is-favorito i {
    color: #e63946;
    transform: scale(1.1);
}

/* hover */
.js-toggle-favorito:hover {
    color: #e63946;
}

.lux-cart-section{
    padding: 40px 0;
}

.lux-cart-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:28px;
}

.lux-cart-header h1{
    margin:0;
    font-size:32px;
    font-weight:700;
}

.lux-cart-header p{
    margin:6px 0 0;
    color:#777;
}

.lux-cart-layout{
    display:grid;
    grid-template-columns:1fr 360px;
    gap:28px;
    align-items:start;
}

.lux-cart-items{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.lux-cart-card{
    display:grid;
    grid-template-columns:130px 1fr;
    gap:18px;
    padding:16px;
    border:1px solid rgba(0,0,0,.08);
    border-radius:20px;
    background:#fff;
    box-shadow:0 8px 24px rgba(0,0,0,.04);
}

.lux-cart-img{
    display:block;
    width:130px;
    height:130px;
    border-radius:16px;
    overflow:hidden;
    background:#f7f7f7;
}

.lux-cart-img img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.lux-cart-info{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    gap:18px;
}

.lux-cart-top{
    display:flex;
    justify-content:space-between;
    gap:14px;
}

.lux-cart-top h3{
    margin:0;
    font-size:18px;
    font-weight:700;
}

.lux-cart-meta{
    display:block;
    margin-top:4px;
    font-size:13px;
    color:#777;
}

.lux-cart-remove{
    border:0;
    background:transparent;
    color:#9b1c1c;
    font-size:22px;
    cursor:pointer;
}

.lux-cart-bottom{
    display:grid;
    grid-template-columns:1fr auto auto;
    align-items:center;
    gap:20px;
}

.lux-cart-price strong{
    display:block;
    font-size:18px;
}

.lux-cart-price del{
    display:block;
    margin-top:2px;
    color:#999;
    font-size:13px;
}

.lux-cart-qty{
    display:flex;
    align-items:center;
    border:1px solid rgba(0,0,0,.1);
    border-radius:999px;
    overflow:hidden;
    height:42px;
    background:#fafafa;
}

.lux-cart-qty button{
    width:40px;
    height:40px;
    border:0;
    background:transparent;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
}

.lux-cart-qty input{
    width:46px;
    height:40px;
    border:0;
    background:transparent;
    text-align:center;
    font-weight:600;
}

.lux-cart-total{
    text-align:right;
}

.lux-cart-total small{
    display:block;
    color:#777;
    font-size:12px;
}

.lux-cart-total strong{
    font-size:18px;
}

.lux-cart-summary{
    position:sticky;
    top:100px;
    padding:22px;
    border-radius:22px;
    box-shadow:0 14px 40px rgba(0,0,0,.12);
}

.lux-cart-summary h3{
    margin:0 0 18px;
    font-size:22px;
}

.lux-summary-row,
.lux-summary-total{
    display:flex;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
}

.lux-summary-row span{
    color:rgba(245,241,232,.72);
}

.lux-summary-divider{
    height:1px;
    background:rgba(245,241,232,.15);
    margin:18px 0;
}

.lux-summary-total{
    font-size:20px;
    margin-bottom:0;
}

@media(max-width: 991px){
    .lux-cart-layout{
        grid-template-columns:1fr;
    }

    .lux-cart-summary{
        position:static;
    }
}

@media(max-width: 575px){
    .lux-cart-header{
        align-items:flex-start;
        flex-direction:column;
    }

    .lux-cart-header h1{
        font-size:26px;
    }

    .lux-cart-card{
        grid-template-columns:92px 1fr;
        gap:12px;
        padding:12px;
        border-radius:16px;
    }

    .lux-cart-img{
        width:92px;
        height:92px;
        border-radius:12px;
    }

    .lux-cart-top h3{
        font-size:15px;
    }

    .lux-cart-bottom{
        grid-template-columns:1fr;
        gap:12px;
    }

    .lux-cart-total{
        display:flex;
        justify-content:space-between;
        align-items:center;
        text-align:left;
        padding-top:10px;
        border-top:1px solid rgba(0,0,0,.08);
    }

    .lux-cart-qty{
        width:max-content;
    }
}

.lux-cart-warning{
    margin-top:8px;
    padding:8px 10px;
    border-radius:10px;
    background:rgba(200,169,107,.12);
    color:#7a5a1c;
    font-size:13px;
    font-weight:500;
}

.lux-alert{
    border-radius: 18px;
    padding: 20px 18px;
    background: linear-gradient(135deg, rgba(15,15,15,.96), rgba(30,30,30,.96));
    color: #f5f1e8;
}

.lux-alert .swal2-title{
    font-size: 20px;
    font-weight: 700;
}

.lux-alert .swal2-html-container{
    font-size: 14px;
    color: #cfcac2;
}

.lux-alert .swal2-actions{
    gap: 12px;
    margin-top: 18px;
}

.lux-checkout-page .checkout-box,
.lux-checkout-page .checkout-details{
    border-radius: 18px !important;
    border: 1px solid rgba(0,0,0,.08) !important;
    background: #fff !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.05) !important;
    overflow: hidden !important;
}

.lux-checkout-page .checkout-title{
    padding-bottom: 14px !important;
    margin-bottom: 18px !important;
    border-bottom: 1px solid rgba(0,0,0,.08) !important;
}

.lux-checkout-page .checkout-title h4,
.lux-checkout-page .title-box h4{
    font-weight: 700 !important;
    letter-spacing: .03em !important;
    color: #1f1f1f !important;
}

.lux-option-card{
    border-radius: 14px !important;
    border: 1px solid rgba(0,0,0,.08) !important;
    background: #fff !important;
    transition: all .25s ease !important;
    padding: 16px !important;
}

.lux-option-card:hover{
    transform: translateY(-2px) !important;
    box-shadow: 0 10px 24px rgba(0,0,0,.06) !important;
}

.lux-option-card:has(input:checked){
    border-color: rgba(200,169,107,.8) !important;
    box-shadow: 0 0 0 3px rgba(200,169,107,.12) !important;
}

.lux-checkout-sticky{
    position: sticky !important;
    top: 100px !important;
}

.lux-checkout-page .order-box{
    border-radius: 18px !important;
    overflow: hidden !important;
}

.lux-checkout-page .qty li{
    border-radius: 14px !important;
    padding: 12px !important;
    background: #f8f8f8 !important;
    margin-bottom: 12px !important;
}

.lux-checkout-page .cart-image{
    border-radius: 12px !important;
    overflow: hidden !important;
    background: #fff !important;
}

.lux-checkout-page .cart-image img{
    border-radius: 12px !important;
}

.lux-checkout-page .coupon-input-box input{
    border-radius: 999px !important;
    border: 1px solid rgba(0,0,0,.1) !important;
}

.lux-checkout-page .apply-button{
    border-radius: 999px !important;
}

.lux-checkout-page .order-btn{
    width: 100% !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #c8a96b, #e0c58f) !important;
    color: #111 !important;
    border: none !important;
    font-weight: 700 !important;
    padding: 14px 20px !important;
    transition: all .25s ease !important;
}

.lux-checkout-page .order-btn:hover{
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 28px rgba(200,169,107,.35) !important;
}

.lux-checkout-page .total{
    border-top: 1px solid rgba(0,0,0,.08) !important;
    padding-top: 16px !important;
}

@media(max-width: 991px){
    .lux-checkout-sticky{
        position: static !important;
    }
}

.lux-field{
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lux-label{
    font-size: 13px;
    font-weight: 600;
    color: #1f1f1f;
    letter-spacing: .02em;
}

.lux-label.required::after{
    content: " *";
    color: #c0392b;
    font-weight: 700;
}

/* Inputs ya los tienes, solo reforzamos */
.lux-input{
    border-radius: 10px !important;
    border: 1px solid rgba(0,0,0,.1) !important;
    transition: all .2s ease !important;
}

.lux-input:focus{
    border-color: #c8a96b !important;
    box-shadow: 0 0 0 3px rgba(200,169,107,.15) !important;
}

.lux-input.error{
    border-color: #e74c3c !important;
}

.lux-form-note{
    font-size: 12px;
    color: #777;
    margin-bottom: 10px;
}

.lux-thanks-page{
    background:#f7f7f7;
}

.lux-thanks-card{
    max-width:780px;
    margin:0 auto;
    text-align:center;
    padding:38px 24px !important;
}

.lux-thanks-icon{
    width:72px;
    height:72px;
    border-radius:999px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 18px;
    font-size:36px;
}

.lux-thanks-icon.is-success{
    background:rgba(39,174,96,.12);
    color:#27ae60;
}

.lux-thanks-icon.is-pending{
    background:rgba(200,169,107,.16);
    color:#c8a96b;
}

.lux-thanks-card h1{
    font-size:32px;
    font-weight:700;
    margin-bottom:10px;
}

.lux-thanks-text{
    color:#777;
    max-width:560px;
    margin:0 auto 22px;
}

.lux-folio-box{
    display:inline-flex;
    flex-direction:column;
    gap:4px;
    padding:12px 22px;
    border-radius:16px;
    background:#111;
    color:#f5f1e8;
}

.lux-folio-box span{
    font-size:12px;
    opacity:.7;
}

.lux-folio-box strong{
    font-size:20px;
    letter-spacing:.08em;
}

.lux-order-box,
.lux-payment-box{
    padding:24px !important;
}

.lux-order-box h3,
.lux-payment-box h3{
    font-size:22px;
    font-weight:700;
    margin-bottom:20px;
}

.lux-order-products{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.lux-order-item{
    display:grid;
    grid-template-columns:1.2fr .9fr .8fr .8fr .8fr auto;
    align-items:center;
    gap:14px;

    padding:16px 18px;
    border-radius:18px;

    background:#f5f5f5;
    border:1px solid rgba(0,0,0,.06);

    transition:.25s ease;
}

.lux-order-item:hover{
    transform:translateY(-1px);
    box-shadow:0 10px 22px rgba(0,0,0,.06);
}

.lux-order-item .badge-lux{
    width:max-content;
    max-width:max-content;
    justify-self:start;
    align-self:center;

    padding:7px 14px;
    min-height:auto;
    border-radius:999px;
    font-size:11px;
}

.lux-account-page{
    padding:40px 0;
    background:#f7f7f7;
}

.lux-order-item span{
    display:block;
    color:#777;
    font-size:13px;
    margin-top:3px;
}

.lux-badge-warning{
    display:inline-block;
    margin-top:8px;
    padding:5px 8px;
    border-radius:999px;
    background:rgba(200,169,107,.15);
    color:#7a5a1c;
    font-size:12px;
}

.lux-summary-line,
.lux-payment-status{
    display:flex;
    justify-content:space-between;
    gap:16px;
    margin-bottom:12px;
}

.lux-summary-line span,
.lux-payment-status span{
    color:#777;
}

.lux-summary-total{
    display:flex;
    justify-content:space-between;
    gap:16px;
    padding-top:16px;
    margin-top:16px;
    border-top:1px solid rgba(0,0,0,.08);
    font-size:22px;
    font-weight:700;
}

.lux-bank-box{
    margin-top:20px;
    padding:16px;
    border-radius:16px;
    background:#111;
    color:#f5f1e8;
}

.lux-bank-box h4{
    font-size:18px;
    margin-bottom:12px;
}

.lux-bank-box p{
    margin-bottom:6px;
}

.lux-bank-box small{
    display:block;
    margin-top:12px;
    color:rgba(245,241,232,.75);
}

.lux-thanks-actions{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:20px;
}

@media(max-width:575px){
    .lux-thanks-card h1{
        font-size:26px;
    }

    .lux-order-item{
        flex-direction:column;
    }
}

.lux-auth-page,
.lux-contact-page,
.lux-favorites-page,
.lux-shop-page{
    background:#f7f7f7;
}

.lux-auth-card{
    max-width:480px;
    margin:0 auto;
    padding:32px !important;
}

.lux-auth-header{
    text-align:center;
    margin-bottom:24px;
}

.lux-auth-header h1,
.lux-page-heading h1{
    margin:0;
    font-weight:700;
    color:#111;
}

.lux-auth-header p,
.lux-page-heading p{
    margin:8px 0 0;
    color:#777;
}

.lux-auth-links{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:18px;
    font-size:14px;
}

.lux-auth-links a{
    color:#111;
    font-weight:600;
    text-decoration:none;
}

.lux-page-heading{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:18px;
    margin-bottom:28px;
}

.lux-favorites-grid,
.lux-products-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:20px;
}

.lux-product-card{
    background:#fff !important;
    border-radius:18px !important;
    overflow:hidden !important;
    border:1px solid rgba(0,0,0,.08) !important;
    transition:all .25s ease !important;
}

.lux-product-img{
    display:block;
    aspect-ratio:1/1;
    background:#f3f3f3;
    overflow:hidden;
}

.lux-product-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:all .35s ease;
}

.lux-product-card:hover .lux-product-img img{
    transform:scale(1.04);
}

.lux-product-info{
    padding:16px;
}

.lux-product-brand{
    display:block;
    color:#777;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
    margin-bottom:5px;
}

.lux-product-info h3{
    font-size:16px;
    margin:0 0 8px;
    font-weight:700;
}

.lux-product-info strong{
    display:block;
    margin-bottom:14px;
}

.lux-product-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.lux-contact-card,
.lux-contact-info{
    padding:24px !important;
}

.lux-contact-card h3,
.lux-contact-info h3{
    margin-bottom:20px;
    font-weight:700;
}

.lux-contact-item{
    display:flex;
    gap:14px;
    padding:14px 0;
    border-bottom:1px solid rgba(0,0,0,.08);
}

.lux-contact-item i{
    width:42px;
    height:42px;
    border-radius:999px;
    background:#111;
    color:var(--theme-color2);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:20px;
}

.lux-contact-item span{
    display:block;
    font-size:12px;
    color:#777;
    margin-bottom:3px;
}

.lux-contact-item a,
.lux-contact-item p{
    margin:0;
    color:#111;
    font-weight:600;
    text-decoration:none;
}

.lux-shop-layout{
    display:grid;
    grid-template-columns:280px 1fr;
    gap:24px;
    align-items:start;
}

.lux-shop-filters{
    padding:22px !important;
    position:sticky;
    top:100px;
}

.lux-filter-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
}

.lux-filter-header h3{
    margin:0;
    font-weight:700;
}

.lux-filter-header button{
    border:0;
    background:transparent;
    color:#777;
    font-size:13px;
}

.lux-filter-group{
    margin-bottom:20px;
}

.lux-filter-group h4{
    font-size:14px;
    font-weight:700;
    margin-bottom:10px;
}

.lux-filter-check{
    display:flex;
    align-items:center;
    gap:8px;
    font-weight:600;
}

.lux-shop-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-bottom:20px;
}

.lux-shop-toolbar select{
    max-width:220px;
}

@media(max-width:991px){
    .lux-shop-layout{
        grid-template-columns:1fr;
    }

    .lux-shop-filters{
        position:static;
    }

    .lux-products-grid,
    .lux-favorites-grid{
        grid-template-columns:repeat(3, minmax(0,1fr));
    }
}

@media(max-width:767px){
    .lux-page-heading{
        flex-direction:column;
        align-items:flex-start;
    }

    .lux-products-grid,
    .lux-favorites-grid{
        grid-template-columns:repeat(2, minmax(0,1fr));
        gap:14px;
    }

    .lux-auth-card{
        padding:24px !important;
    }
}

@media(max-width:420px){
    .lux-products-grid,
    .lux-favorites-grid{
        grid-template-columns:1fr;
    }

    .lux-auth-links{
        flex-direction:column;
        text-align:center;
    }
}

.lux-locations-page{
    padding: 0px 0;
    background:#f7f7f7;
}

.lux-location-search{
    display:flex;
    gap:12px;
    padding:16px !important;
    align-items:center;
}

.lux-location-search input{
    flex:1;
}

.lux-location-list{
    display:flex;
    flex-direction:column;
    gap:16px;
    max-height:650px;
    overflow:auto;
    padding-right:4px;
}

.lux-location-card{
    padding:20px !important;
    cursor:pointer;
    transition:all .25s ease !important;
}

.lux-location-card:hover,
.lux-location-card.active{
    transform:translateY(-2px);
    border-color:rgba(200,169,107,.65) !important;
    box-shadow:0 12px 28px rgba(0,0,0,.08) !important;
}

.lux-location-top{
    display:flex;
    justify-content:space-between;
    gap:14px;
    margin-bottom:10px;
}

.lux-location-top h3{
    margin:0;
    font-size:18px;
    font-weight:700;
}

.lux-location-top span{
    display:block;
    margin-top:4px;
    color:#777;
    font-size:13px;
}

.lux-location-top strong{
    color:#27ae60;
    font-size:13px;
    white-space:nowrap;
}

.lux-location-card p{
    color:#666;
    margin-bottom:16px;
    line-height:1.5;
}

.lux-location-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.lux-map-card{
    padding:10px !important;
    position:sticky;
    top:100px;
}

#mapPuntosVenta{
    width:100%;
    height:650px;
    border-radius:18px;
    overflow:hidden;
}

@media(max-width:991px){
    .lux-map-card{
        position:static;
    }

    .lux-location-list{
        max-height:none;
        overflow:visible;
    }

    #mapPuntosVenta{
        height:420px;
    }
}

@media(max-width:575px){
    .lux-location-search{
        flex-direction:column;
        align-items:stretch;
    }

    #mapPuntosVenta{
        height:340px;
    }
}

.lux-page-hero{
    background:#f7f7f7;
    padding:32px 0 32px;
}

.lux-page-hero h1{
    margin:0;
    font-size:52px;
    font-weight:800;
    letter-spacing:.02em;
    text-transform:uppercase;
    color:#111;
}

.lux-page-hero p{
    margin:12px 0 0;
    color:#777;
    font-size:15px;
}

.lux-mini-breadcrumb{
    display:flex;
    gap:8px;
    align-items:center;
    margin-bottom:18px;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#999;
}

.lux-mini-breadcrumb a{
    color:#777;
    text-decoration:none;
}

.lux-mini-breadcrumb strong{
    color:#111;
}

@media(max-width:575px){
    .lux-page-hero{
        padding:32px 0 24px;
    }

    .lux-page-hero h1{
        font-size:34px;
    }
}

/*Mi cuenta*/

.lux-account-page{
    background: radial-gradient(circle at top, rgba(255,255,255,.08), transparent 35%);
}

.lux-account-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:28px;
}

.lux-kicker{
    display:inline-block;
    font-size:12px;
    letter-spacing:.12em;
    text-transform:uppercase;
    margin-bottom:8px;
}

.lux-account-header h1{
    margin:0;
    font-size:34px;
    font-weight:800;
}

.lux-account-header p{
    margin:6px 0 0;
}

.lux-account-card{
    padding:24px;
    height:auto;
}

.lux-account-card h3{
    font-size:20px;
    font-weight:800;
    margin-bottom:16px;
}

.lux-account-info{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.lux-account-info div{
    padding:14px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:16px;
    background:rgba(255,255,255,.035);
}

.lux-account-info span{
    display:block;
    font-size:12px;
    margin-bottom:4px;
}

.lux-account-info strong{
    font-size:14px;
}

.lux-account-actions{
    display:grid;
    gap:10px;
}

.lux-account-actions a{
    padding:14px 16px;
    border-radius:16px;
    background: linear-gradient(135deg, #1f1f1f, #3a3a3a);
    border:1px solid rgba(12,12,12,.08);
    color:#fff;
    text-decoration:none;
    transition:.25s ease;
}

.lux-account-actions a:hover{
    transform:translateY(-2px);
    background:rgb(37, 37, 37);
}

.lux-section-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
}

.lux-section-head h3{
    margin-bottom:4px;
}

.lux-section-head p{
    margin:0;
}

.lux-link-pro{
    color:#d7b56d;
    text-decoration:none;
    font-weight:700;
    white-space:nowrap;
}

.lux-order-list{
    display:grid;
    gap:12px;
}

.lux-order-item{
    display:grid;
    grid-template-columns:1.3fr 1fr .7fr auto;
    align-items:center;
    gap:14px;
    padding:15px;
    border-radius:18px;
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
}

.lux-order-item span{
    display:block;
    font-size:13px;
}

.lux-btn-sm{
    padding:9px 14px;
    border-radius:12px;
    font-size:13px;
}

.lux-empty-state{
    text-align:center;
    padding:36px 20px;
    border-radius:20px;
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.08);
}

.lux-empty-icon{
    font-size:38px;
    margin-bottom:8px;
}

.lux-empty-state h4{
    font-weight:800;
    margin-bottom:6px;
}



.lux-empty-inline{
    padding:18px;
    border-radius:18px;
    background:rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.08);
}

.lux-empty-inline a{
    color:#d7b56d;
    font-weight:700;
    text-decoration:none;
}

.lux-fav-mini{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;

    padding:14px 16px;
    border-radius:16px;

    background:#f8f8f8;
    border:1px solid rgba(0,0,0,.06);

    transition:.25s ease;
}

.lux-fav-mini:hover{
    transform:translateY(-1px);
    box-shadow:0 8px 18px rgba(0,0,0,.05);
}

.lux-fav-mini img{
    width:52px;
    height:52px;
    border-radius:12px;
}

.lux-fav-mini strong{
    color:#111;
}

.lux-fav-mini span{
    color:#777;
}

@media(max-width:768px){

    .lux-account-header{
        flex-direction:column;
        align-items:flex-start;
    }

    .lux-account-header h1{
        font-size:28px;
    }

    .lux-order-item{
        grid-template-columns:1fr;
        align-items:flex-start;
    }

    .lux-section-head{
        flex-direction:column;
    }
}

.lux-modal-content{
    border-radius:24px;
    border:1px solid #eee;
    background:#fff;
    box-shadow:0 25px 80px rgba(0,0,0,.18);
}

.lux-modal-content .modal-header,
.lux-modal-content .modal-footer{
    border-color:#eee;
    padding:20px 24px;
}

.lux-modal-content .modal-title{
    font-weight:800;
    color:#1a1a1a;
}

.lux-modal-content .modal-body{
    padding:24px;
}

.lux-address-list{
    display:grid;
    gap:12px;
}

.lux-address-item{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;

    padding:16px 18px;
    border-radius:18px;

    background:#f3f3f3;
    border:1px solid rgba(0,0,0,.06);

    transition:.25s ease;
}

.lux-address-item:hover{
    transform:translateY(-1px);
    box-shadow:0 8px 20px rgba(0,0,0,.06);
}

.lux-address-item strong{
    font-size:15px;
    font-weight:700;
    color:#111;
}

.lux-address-item span{
    color:#555;
}

.lux-address-item small{
    color:#777;
}

.lux-address-item .badge-lux{
    padding:6px 12px;
    font-size:11px;
    border-radius:12px;
    min-height:auto;
}

.lux-check{
    display:flex;
    align-items:center;
    gap:8px;
    color:#333;
    font-weight:600;
}

.lux-fav-actions{
    display:flex;
    align-items:center;
    gap:10px;
}

.btn-remove-fav{
    width:30px;
    height:30px;
    border-radius:50%;
    border:1px solid #ddd;
    background:#fff;
    color:#333;
    font-size:20px;
    line-height:1;
}

.btn-remove-fav:hover{
    background:#111;
    color:#fff;
}

.lux-orders-page-list{
    display:grid;
    gap:14px;
}

.lux-order-row{
    display:grid;
    grid-template-columns:1.2fr auto .8fr auto .8fr auto;
    align-items:center;
    gap:18px;

    padding:18px;
    border-radius:18px;
    background:#f7f7f7;
    border:1px solid rgba(0,0,0,.06);
    transition:.25s ease;
}

.lux-order-row:hover{
    transform:translateY(-1px);
    box-shadow:0 10px 22px rgba(0,0,0,.06);
}

.lux-order-row .badge-lux{
    width:max-content;
    max-width:max-content;
    justify-self:start;
    padding:7px 14px;
    min-height:auto;
    border-radius:999px;
    font-size:11px;
}

.lux-order-main strong{
    display:block;
    color:#111;
    font-size:15px;
}

.lux-order-main span,
.lux-order-products-count span,
.lux-order-total span{
    display:block;
    color:#777;
    font-size:13px;
    margin-top:3px;
}

.lux-order-products-count strong,
.lux-order-total strong{
    display:block;
    color:#111;
    font-size:15px;
}

.lux-detail-products{
    display:grid;
    gap:14px;
}

.lux-detail-product{
    display:grid;
    grid-template-columns:72px 1fr auto auto;
    align-items:center;
    gap:16px;

    padding:14px;
    border-radius:18px;
    background:#f7f7f7;
    border:1px solid rgba(0,0,0,.06);
}

.lux-detail-product img{
    width:72px;
    height:72px;
    border-radius:14px;
    object-fit:cover;
    background:#fff;
}

.lux-detail-product-info strong{
    display:block;
    color:#111;
    font-size:15px;
}

.lux-detail-product-info span,
.lux-detail-product-info small{
    display:block;
    color:#777;
    font-size:13px;
    margin-top:3px;
}

.lux-detail-product-price{
    text-align:right;
    min-width:100px;
}

.lux-detail-product-price span{
    display:block;
    color:#777;
    font-size:12px;
}

.lux-detail-product-price strong{
    display:block;
    color:#111;
    font-size:15px;
}

.lux-order-address{
    padding:16px;
    border-radius:18px;
    background:#f7f7f7;
    border:1px solid rgba(0,0,0,.06);
}

.lux-order-address strong{
    display:block;
    color:#111;
    margin-bottom:5px;
}

.lux-order-address span,
.lux-order-address small{
    display:block;
    color:#666;
    font-size:13px;
}

.lux-order-address p{
    margin:10px 0 0;
    color:#777;
    font-size:13px;
}

.lux-order-summary-sticky{
    position:sticky;
    top:100px;
}

.lux-payment-note{
    margin-top:18px;
    padding:14px;
    border-radius:16px;
    background:rgba(200,169,107,.14);
    border:1px solid rgba(200,169,107,.28);
}

.lux-payment-note strong{
    display:block;
    color:#7a5a1c;
    margin-bottom:4px;
}

.lux-payment-note span{
    display:block;
    color:#7a5a1c;
    font-size:13px;
}

@media(max-width:991px){
    .lux-order-summary-sticky{
        position:static;
    }

    .lux-order-row{
        grid-template-columns:1fr 1fr;
    }

    .lux-order-row a{
        grid-column:1 / -1;
        max-width:100%;
        width:100%;
    }

    .lux-detail-product{
        grid-template-columns:72px 1fr;
    }

    .lux-detail-product-price{
        text-align:left;
        min-width:auto;
    }
}

@media(max-width:575px){
    .lux-order-row{
        grid-template-columns:1fr;
    }

    .lux-detail-product{
        grid-template-columns:58px 1fr;
        gap:12px;
    }

    .lux-detail-product img{
        width:58px;
        height:58px;
    }
}

.lux-location-top strong.is-out{
    color:#c0392b;
}

.lux-location-card{
    position:relative;
}

.lux-location-card.active{
    border-color:rgba(200,169,107,.75) !important;
    box-shadow:0 14px 32px rgba(0,0,0,.10) !important;
}

.lux-product-render-img{
    display:block !important;
    width:100%;
    height:100%;
    object-fit:cover;
}

.lux-checkout-address-list .lux-address-item{
    cursor:pointer;
}

.lux-checkout-address-list .lux-address-item.active{
    border-color:rgba(200,169,107,.75);
    box-shadow:0 0 0 3px rgba(200,169,107,.12);
}

.lux-spinner{
    width:16px;
    height:16px;
    border:2px solid rgba(255,255,255,.35);
    border-top-color:#fff;
    border-radius:50%;
    display:inline-block;
    animation:luxSpin .7s linear infinite;
}

@keyframes luxSpin{
    to{
        transform:rotate(360deg);
    }
}

.btnFinalizarCompra.is-loading{
    opacity:.85;
    pointer-events:none;
}