/**
 * bundle-rutina.css
 * Estilos para la página de rutina de skincare (producto bundle woosb).
 * Encolado SOLO en páginas de tipo bundle.
 *
 * 1. Toggle ON/OFF (F2)
 * 2. Producto excluido (OFF)
 * 3. Bloque de precio dinámico (F5)
 * 4. Botón bloqueado (F6)
 * 5. Bloque de venta cruzada
 * 6. Responsive
 */

/* ──────────────────────────────────────────────────────────────────────────
   1. TOGGLE ON / OFF  — área táctil mínima 48 × 48 px
   ─────────────────────────────────────────────────────────────────────── */

.mbp-toggle-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px 0;
    min-height: 48px;
    min-width: 48px;
    margin-top: 8px;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    outline: none;
    font-family: inherit;
    font-size: 0.875rem;
    color: var(--e-global-color-text, #555);
    transition: color 0.2s ease;
}

.mbp-toggle-btn:focus-visible {
    outline: 2px solid var(--e-global-color-accent, #4CAF50);
    outline-offset: 3px;
    border-radius: 4px;
}

.mbp-toggle-track {
    position: relative;
    display: inline-block;
    width: 48px;
    height: 26px;
    background-color: #ccc;
    border-radius: 13px;
    flex-shrink: 0;
    transition: background-color 0.25s ease;
}

.mbp-toggle-thumb {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    background-color: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
    transition: transform 0.25s ease;
}

.mbp-toggle-btn.is-on .mbp-toggle-track {
    background-color: var(--e-global-color-accent, #4CAF50);
}

.mbp-toggle-btn.is-on .mbp-toggle-thumb {
    transform: translateX(22px);
}

.mbp-toggle-btn.is-on .mbp-toggle-label {
    color: var(--e-global-color-accent, #4CAF50);
    font-weight: 600;
}

.mbp-toggle-btn.is-off .mbp-toggle-track { background-color: #ccc; }
.mbp-toggle-btn.is-off .mbp-toggle-thumb { transform: translateX(0); }
.mbp-toggle-btn.is-off .mbp-toggle-label { color: #999; }

/* ──────────────────────────────────────────────────────────────────────────
   2. PRODUCTO EXCLUIDO
   ─────────────────────────────────────────────────────────────────────── */

.woosb-product.mbp-excluded {
    opacity: 0.45;
    filter: grayscale(60%);
    transition: opacity 0.25s ease, filter 0.25s ease;
}

/* ──────────────────────────────────────────────────────────────────────────
   3. BLOQUE DE PRECIO DINÁMICO (F5)
   ─────────────────────────────────────────────────────────────────────── */

.mbp-price-summary {
    margin: 16px 0 12px;
    padding: 12px 16px;
    background: #f9f9f9;
    border-left: 3px solid var(--e-global-color-accent, #4CAF50);
    border-radius: 0 6px 6px 0;
    line-height: 1.5;
}

.mbp-original-price {
    font-size: 0.9rem;
    color: #999;
    text-decoration: line-through;
    margin-bottom: 2px;
}

.mbp-final-price {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--e-global-color-primary, #333);
    margin-bottom: 4px;
}

.mbp-saving {
    font-size: 0.85rem;
    color: #555;
}

.mbp-saving strong {
    color: var(--e-global-color-accent, #4CAF50);
}

.mbp-discount-badge {
    display: inline-block;
    background: var(--e-global-color-accent, #4CAF50);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 3px;
    margin-left: 4px;
    vertical-align: middle;
}

/* ──────────────────────────────────────────────────────────────────────────
   4. BOTÓN BLOQUEADO (F6)
   ─────────────────────────────────────────────────────────────────────── */

.single_add_to_cart_button.mbp-btn-disabled,
.single_add_to_cart_button.woosb-disabled.mbp-btn-disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    pointer-events: auto !important;
    background-color: #aaa !important;
    border-color: #aaa !important;
    color: #fff !important;
}

.single_add_to_cart_button.mbp-btn-disabled::after {
    content: attr(title);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    background: rgba(0, 0, 0, .7);
    color: #fff;
    font-size: 0.78rem;
    padding: 4px 10px;
    border-radius: 4px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s;
}

.single_add_to_cart_button.mbp-btn-disabled:hover::after,
.single_add_to_cart_button.mbp-btn-disabled:focus::after {
    opacity: 1;
}

form.cart {
    position: relative;
}

/* ──────────────────────────────────────────────────────────────────────────
   FIX BUNDLE — El quantity-wrapper hereda display:flex !important de WC
   pero se estira al 100% del form.cart (display:block).
   WC también pone position:relative en el wrapper y el tema Levre pone
   position:absolute;right:1px en el botón +, lo que lo empuja al extremo.
   ─────────────────────────────────────────────────────────────────────── */

.elementor-product-woosb form.cart .quantity-wrapper {
    width: fit-content !important;
    align-items: center !important;
}

/* Sacar el + del flujo absoluto para que sea hijo flex normal */
.elementor-product-woosb form.cart .quantity-wrapper button.plus {
    position: static !important;
}

/* ──────────────────────────────────────────────────────────────────────────
   5. BLOQUE DE VENTA CRUZADA
   ─────────────────────────────────────────────────────────────────────── */

.mbp-bundle-cross-sells {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid #eee;
}

.mbp-cross-sell-title {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 16px;
    color: var(--e-global-color-primary, #333);
}

/* ──────────────────────────────────────────────────────────────────────────
   6. RESPONSIVE
   ─────────────────────────────────────────────────────────────────────── */

@media (max-width: 600px) {
    .mbp-price-summary { padding: 10px 12px; }
    .mbp-final-price   { font-size: 1.2rem; }
    .mbp-toggle-btn    { font-size: 0.8rem; }
}
