/* =============================================
   YD Master — Custom Theme v6.0.27
   Color acento: #918364
   ============================================= */

/* Wrapper */
.ydm-homepage { max-width: 100%; padding: 0; margin: 0; }
.ydm-homepage * { box-sizing: border-box; }
.ydm-homepage a { text-decoration: none !important; }

/* Buscador */
.ydm-search-wrap { background: #111; padding: 14px 20px; overflow: hidden; }
.ydm-search-inner { max-width: 640px; margin: 0 auto; position: relative; }
.ydm-search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; min-width: 18px; max-width: 18px; color: #888; pointer-events: none; overflow: hidden; z-index: 1; }
.ydm-search-icon svg { width: 18px; height: 18px; display: block; flex-shrink: 0; }
.ydm-search-input { width: 100%; padding: 12px 16px 12px 42px; border: 1px solid #333; border-radius: 8px; background: #1a1a1a; color: #fff; font-size: 15px; outline: none; transition: border-color 0.3s; box-sizing: border-box; }
.ydm-search-input:focus { border-color: #918364; }

/* Carrusel */
.ydm-carousel-wrap { margin: 0 auto; padding: 16px 20px 0; max-width: 100%; overflow: hidden; }
.ydm-carousel { display: flex; gap: 14px; height: 580px; cursor: grab; user-select: none; -webkit-user-select: none; }
.ydm-carousel:active { cursor: grabbing; }
.ydm-slide, .ydm-slide-clone { flex: 0 0 calc((100% - 42px) / 4); border-radius: 12px; overflow: hidden; display: block; flex-shrink: 0; }
.ydm-slide img, .ydm-slide-clone img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }

/* Boton todos los productos */
.ydm-all-btn-wrap { text-align: center; padding: 20px 20px 6px; }
.ydm-all-btn { display: inline-block; background: #918364; color: #fff !important; font-weight: 700; font-size: 16px; padding: 13px 38px; border-radius: 999px; transition: background 0.2s, transform 0.2s; }
.ydm-all-btn:hover { background: #a8977a; transform: translateY(-2px); }

/* Gancho */
.ydm-hook { text-align: center; padding: 30px 20px 14px; }
.ydm-hook span { font-size: 22px; font-weight: 700; letter-spacing: 0.5px; color: #918364; }

/* Grid categorias */
.ydm-cat-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; padding: 10px 20px 20px; max-width: 1200px; margin: 0 auto; }
.ydm-cat-card { display: flex; flex-direction: column; background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 12px; overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; }
.ydm-cat-card:hover { transform: translateY(-4px); box-shadow: 0 6px 20px rgba(145, 131, 100, 0.15); }
.ydm-cat-img { aspect-ratio: 1 / 1; overflow: hidden; }
.ydm-cat-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
.ydm-cat-card:hover .ydm-cat-img img { transform: scale(1.08); }
.ydm-cat-name { padding: 12px 8px; text-align: center; font-size: 13px; font-weight: 600; color: #fff; line-height: 1.3; }

/* Productos rail promos */
.ydm-pop { max-width: 1200px; margin: 0 auto; padding: 0 20px 10px; }
.ydm-promos { padding-bottom: 60px; }
.ydm-pop-rail { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 10px; cursor: grab; user-select: none; -webkit-user-select: none; }
.ydm-pop-rail:active { cursor: grabbing; }
.ydm-pop-rail::-webkit-scrollbar { display: none; }

/* Rail que avanza hacia la derecha (nuevos productos): el movimiento se hace
   clonando las tarjetas y desplazandolas con transform, sin scrollbar. */
.ydm-pop-rail.ydm-rail-right {
    overflow: hidden !important;
    scroll-snap-type: none;
    will-change: transform;
}
.ydm-pop-rail.ydm-rail-right .ydm-prod-card {
    scroll-snap-align: start;
}
.ydm-prod-card { flex: 0 0 calc((100% - 50px) / 6); min-width: 120px; scroll-snap-align: start; background: #1a1a1a; border: 1px solid #2a2a2a; border-radius: 12px; overflow: hidden; display: block; transition: transform 0.2s, box-shadow 0.2s; }
.ydm-prod-card:hover { transform: translateY(-3px); box-shadow: 0 6px 18px rgba(145, 131, 100, 0.12); }
.ydm-prod-img { aspect-ratio: 1 / 1; overflow: hidden; background: #222; position: relative; }
.ydm-prod-img img { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.ydm-prod-name, .ydm-prod-price { display: none; }
.ydm-badge { position: absolute; top: 8px; right: 8px; background: #918364; color: #fff; font-size: 12px; font-weight: 800; padding: 3px 8px; border-radius: 6px; z-index: 2; }
.ydm-empty-msg { color: #666; font-size: 14px; text-align: center; padding: 20px; }

/* =============================================
   RESPONSIVE
   ============================================= */

@media (max-width: 768px) {
    .ydm-search-wrap { padding: 10px 14px; }
    .ydm-search-input { font-size: 14px; padding: 10px 14px 10px 40px; }
    .ydm-carousel-wrap { padding: 12px 12px 0; }
    .ydm-carousel { height: 320px; gap: 10px; }
    .ydm-slide, .ydm-slide-clone { flex: 0 0 calc((100% - 20px) / 3); border-radius: 10px; }
    .ydm-all-btn { font-size: 14px; padding: 11px 30px; }
    .ydm-hook { padding: 24px 16px 8px; }
    .ydm-hook span { font-size: 18px; }
    .ydm-cat-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 10px 12px 20px; }
    .ydm-cat-name { font-size: 12px; padding: 10px 4px; }
    .ydm-pop { padding: 0 12px 10px; }
    .ydm-prod-card { flex: 0 0 calc((100% - 30px) / 4); min-width: 84px; }
}

@media (max-width: 480px) {
    .ydm-search-input { font-size: 13px; padding: 10px 12px 10px 38px; }
    .ydm-carousel-wrap { padding: 8px 8px 0; }
    .ydm-carousel { height: 200px; gap: 8px; }
    .ydm-slide, .ydm-slide-clone { flex: 0 0 calc((100% - 16px) / 3); border-radius: 8px; }
    .ydm-all-btn { font-size: 13px; padding: 10px 26px; }
    .ydm-hook { padding: 18px 12px 6px; }
    .ydm-hook span { font-size: 15px; }
    .ydm-cat-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 8px 10px 20px; }
    .ydm-cat-card { border-radius: 8px; }
    .ydm-cat-name { font-size: 11px; }
    .ydm-cat-name { font-size: 12px; padding: 8px 4px; }
    .ydm-prod-card { flex: 0 0 calc((100% - 20px) / 3); min-width: 80px; }
    .ydm-badge { font-size: 10px; padding: 2px 6px; }
}

@media (max-width: 360px) {
    .ydm-carousel { height: 170px; gap: 6px; }
    .ydm-slide, .ydm-slide-clone { flex: 0 0 calc((100% - 12px) / 3); }
    .ydm-hook span { font-size: 13px; }
    .ydm-cat-grid { gap: 6px; padding: 6px 8px 20px; }
    .ydm-cat-name { font-size: 11px; padding: 6px 2px; }
}

@media (hover: none) {
    .ydm-cat-card:active { transform: scale(0.97); }
}

@media (max-width: 768px) {
    .fusion-logo img, .fusion-logo svg, #logo img, #logo svg, .site-logo img {
        display: block !important;
        max-height: 40px;
        width: auto;
    }
}

/* =============================================
   WooCommerce — responsive Mi Cuenta / Cart / Checkout
   ============================================= */
@media (max-width: 768px) {
    .woocommerce .woocommerce-MyAccount-navigation {
        float: none !important;
        width: 100% !important;
        margin-bottom: 20px !important;
    }
    .woocommerce .woocommerce-MyAccount-navigation ul {
        display: flex;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        gap: 8px;
        padding-bottom: 6px;
        list-style: none;
        margin: 0;
    }
    .woocommerce .woocommerce-MyAccount-navigation ul li {
        float: none !important;
        margin: 0 !important;
        flex: 0 0 auto;
    }
    .woocommerce .woocommerce-MyAccount-navigation ul li a {
        white-space: nowrap;
        display: block;
        padding: 8px 14px;
        border: 1px solid #3a3a3a;
        border-radius: 8px;
        background: #1a1a1a;
        color: #fff !important;
        font-size: 13px;
    }
    .woocommerce .woocommerce-MyAccount-navigation ul li.is-active a {
        background: #918364 !important;
        color: #fff !important;
        border-color: #918364 !important;
    }
    .woocommerce .woocommerce-MyAccount-content {
        float: none !important;
        width: 100% !important;
        padding: 0 !important;
    }
    /* Formularios se apilan de 1 sola columna */
    .woocommerce form .form-row,
    .woocommerce form .form-row-first,
    .woocommerce form .form-row-last,
    .woocommerce form .form-row-wide {
        float: none !important;
        width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }
    .woocommerce form .form-row-first {
        float: none !important;
        width: 100% !important;
    }
    .woocommerce form .form-row-first:not(.honeypot) + .form-row-last {
        margin-top: 0;
    }
    /* Espaciado general de formularios */
    .woocommerce form .form-row {
        margin-bottom: 14px !important;
    }
    .woocommerce form .form-row input.input-text,
    .woocommerce form .form-row textarea,
    .woocommerce form .form-row select {
        width: 100% !important;
        padding: 12px !important;
        font-size: 15px !important;
        box-sizing: border-box !important;
    }
    .woocommerce form .form-row label {
        font-size: 14px;
        margin-bottom: 5px;
    }
    /* Tablas del pedido / carrito */
    .woocommerce table.shop_table {
        font-size: 13px;
        overflow-x: auto;
    }
    /* Carrito — layout móvil limpio: producto como tarjeta */
    .woocommerce-cart .woocommerce-cart-form__contents th {
        display: none !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents thead {
        display: none !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item {
        display: grid !important;
        grid-template-columns: 72px 1fr;
        grid-template-areas:
            "thumb title"
            "thumb qtyprice"
            "thumb subtotal"
            "thumb tax";
        gap: 3px 12px;
        align-items: center;
        background: #1a1a1a;
        border: 1px solid #2a2a2a;
        border-radius: 12px;
        padding: 12px !important;
        margin-bottom: 12px;
        position: relative;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td {
        display: block !important;
        border: none !important;
        padding: 2px 0 !important;
        width: auto !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-thumbnail {
        grid-area: thumb;
        align-self: start;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-thumbnail img {
        width: 72px;
        height: 72px;
        object-fit: cover;
        border-radius: 8px;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-name {
        grid-area: title;
        font-weight: 700;
        color: #fff;
        font-size: 15px !important;
        line-height: 1.3;
        padding-right: 24px !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-name a { color: #fff !important; }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-name::before {
        content: "" !important;
        display: none;
    }
    /* Fila: cantidad + precio unitario juntos (ej: "2 × 29,90 €") */
    .woocommerce-cart .woocommerce-cart-form__contents td.product-price {
        grid-area: qtyprice;
        font-size: 13.5px;
        color: #bbb;
        display: flex !important;
        align-items: center;
        gap: 8px;
        padding: 0 !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-price::before {
        content: "Precio:";
        font-weight: 600;
        color: #918364;
        font-size: 11px;
        display: inline-block;
        margin-right: 0;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-quantity {
        grid-area: auto;
        display: inline-flex !important;
        align-items: center;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-quantity::before {
        content: "Cantidad:";
        font-weight: 600;
        color: #918364;
        font-size: 11px;
        display: inline-block;
        margin-right: 6px;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-quantity .quantity .qty {
        width: 54px !important;
        padding: 6px !important;
        text-align: center;
        background: #222 !important;
        color: #fff !important;
        border: 1px solid #3a3a3a !important;
        border-radius: 6px;
    }
    /* Subtotal por fila destacado */
    .woocommerce-cart .woocommerce-cart-form__contents td.product-subtotal {
        grid-area: subtotal;
        font-weight: 800 !important;
        color: #ffffff !important;
        font-size: 18px !important;
        padding: 0 !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-subtotal::before {
        content: "Subtotal:";
        font-weight: 700;
        color: #918364;
        font-size: 11px;
        display: inline-block;
        margin-right: 6px;
        vertical-align: middle;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-subtotal .amount {
        color: #fff !important;
        font-weight: 800 !important;
    }
    /* Texto de impuestos incluidos al final de cada producto */
    .woocommerce-cart .woocommerce-cart-form__contents td.product-subtotal::after {
        content: " IVA incluido";
        display: block;
        font-weight: 500;
        font-size: 10.5px;
        color: #918364;
        margin-top: 2px;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-remove {
        position: absolute;
        top: 4px;
        right: 6px;
        grid-area: auto;
    }
    .woocommerce-cart .woocommerce-cart-form__contents td.product-remove .remove {
        font-size: 22px;
        color: #666 !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents tr.actions {
        display: block !important;
        background: none;
        border: none;
        padding: 0 !important;
    }
    .woocommerce-cart .woocommerce-cart-form__contents tr.actions td.actions {
        display: block !important;
        padding: 0 !important;
    }
    /* Botones */
    .woocommerce a.button,
    .woocommerce button.button,
    .woocommerce input.button {
        width: 100% !important;
        text-align: center !important;
        margin: 6px 0 !important;
        box-sizing: border-box !important;
    }
    .woocommerce .coupon {
        display: block;
        width: 100%;
    }
    .woocommerce .coupon input.input-text {
        width: 100% !important;
        margin-bottom: 8px;
        box-sizing: border-box !important;
    }
    /* Checkout — pila las columnas */
    .woocommerce-checkout .col2-set,
    .woocommerce form.checkout_coupon,
    .woocommerce-checkout #customer_details,
    .woocommerce-checkout #order_review {
        float: none !important;
        width: 100% !important;
        display: block !important;
    }
    .woocommerce-checkout #order_review {
        margin-top: 20px;
    }
    /* Mi cuenta cajas */
    .woocommerce form.login,
    .woocommerce form.register {
        width: 100% !important;
        max-width: 100% !important;
        margin: 10px 0 !important;
        padding: 18px !important;
        box-sizing: border-box !important;
    }
    /* Cart totals separados */
    .woocommerce-cart .cart-collaterals,
    .woocommerce-cart .cart_totals {
        float: none !important;
        width: 100% !important;
    }
}

/* =============================================
   Carrito — total grande y claro
   ============================================= */
.woocommerce-cart .cart_totals h2 {
    color: #fff !important;
    font-size: 20px !important;
    font-weight: 700;
}
.woocommerce-cart .cart_totals table.shop_table {
    background: #1a1a1a !important;
    color: #fff !important;
    border-color: #3a3a3a !important;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
    color: #fff !important;
    border-color: #3a3a3a !important;
    font-size: 16px !important;
}
.woocommerce-cart .cart_totals table.shop_table .order-total th,
.woocommerce-cart .cart_totals table.shop_table .order-total td {
    color: #fff !important;
    font-size: 20px !important;
    font-weight: 800 !important;
}
.woocommerce-cart .cart_totals table.shop_table tr.order-total .amount {
    color: #fff !important;
    font-size: 24px !important;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-destination,
.woocommerce-cart .cart_totals .woocommerce-shipping-calculator,
.woocommerce-cart .cart_totals .shipping-calculator-button {
    color: #ccc !important;
}
.woocommerce-cart .cart_totals .woocommerce-shipping-methods li label {
    color: #fff !important;
}
.woocommerce-cart .cart_totals .shipping-calculator-form input,
.woocommerce-cart .cart_totals .shipping-calculator-form select {
    color: #fff !important;
    background: #222 !important;
    border-color: #3a3a3a !important;
}

/* Ocultar el botón "Calcular envío" del carrito (a prueba de todo) */
.woocommerce-cart .cart_totals .shipping-calculator-button,
.woocommerce-cart .cart_totals .woocommerce-shipping-calculator,
.woocommerce-cart .cart_totals .shipping-calculator-form,
.woocommerce-cart .cart-collaterals .cart_totals .shipping-calculator-form,
.woocommerce-cart .shipping-calculator-button,
.woocommerce-cart .woocommerce-shipping-calculator,
.woocommerce-cart .shipping-calculator-form,
.woocommerce-cart tr.woocommerce-shipping-totals.shipping .shipping-calculator-button,
.woocommerce-cart tr.woocommerce-shipping-totals.shipping .woocommerce-shipping-calculator {
    display: none !important;
    visibility: hidden !important;
}
/* Mostrar la tarifa de envío ya calculada, en vez del botón */
.woocommerce-cart .cart_totals .woocommerce-shipping-destination,
.woocommerce-cart tr.woocommerce-shipping-totals .woocommerce-shipping-destination {
    display: block !important;
    visibility: visible !important;
}

/* =============================================
   Ocultar el botón "Actualizar carrito"
   (solo se deja "Finalizar compra")
   ============================================= */
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart .cart .actions .button[name="update_cart"],
.woocommerce-cart .woocommerce-cart-form__contents .actions .button[name="update_cart"] {
    display: none !important;
}
/* =============================================
   Código promocional — acomodado y visible
   ============================================= */
.woocommerce-cart .coupon {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
    background: #161616;
    border: 1px dashed #3a3a3a;
    border-radius: 10px;
    padding: 16px;
}
.woocommerce-cart .coupon label {
    flex: 1 1 100%;
    text-align: center;
    color: #fff !important;
    font-weight: 700;
    font-size: 14px;
    margin-bottom: 2px;
}
.woocommerce-cart .coupon input.input-text {
    flex: 1 1 100%;
    min-width: 0;
    padding: 13px !important;
    border-radius: 8px !important;
    background: #1f1f1f !important;
    color: #fff !important;
    border: 1px solid #3a3a3a !important;
    font-size: 14px !important;
    text-align: center;
    box-sizing: border-box !important;
}
.woocommerce-cart .coupon .button {
    width: 100%;
    padding: 12px !important;
    background: #918364 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    font-weight: 700;
}
/* =============================================
   Cupón reestructurado (tema hijo cart.php)
   Campo y botón "Aplicar" separados y claros
   ============================================= */
.woocommerce-cart .coupon.ydm-coupon .ydm-coupon-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: stretch;
    width: 100%;
    margin-top: 4px;
}
.woocommerce-cart .coupon.ydm-coupon .ydm-coupon-row input.input-text {
    flex: 1 1 100%;
    min-width: 0;
    display: block;
    width: 100%;
    padding: 13px !important;
    border-radius: 8px !important;
    background: #1f1f1f !important;
    color: #fff !important;
    border: 1px solid #3a3a3a !important;
    font-size: 14px !important;
    text-align: center;
    box-sizing: border-box !important;
}
.woocommerce-cart .coupon.ydm-coupon .ydm-coupon-row .button.ydm-coupon-btn {
    flex: 1 1 100%;
    display: block;
    width: 100%;
    padding: 13px !important;
    background: #918364 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    font-weight: 700;
    font-size: 15px;
}
/* =============================================
   Cupón de Avada (wc-cart-collaterals.php tema hijo)
   Campo y botón "Aplicar" apilados y claros (móvil)
   ============================================= */
.woocommerce-cart .coupon.ydm-avada-coupon {
    background: #161616;
    border: 1px dashed #3a3a3a;
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 18px;
}
.woocommerce-cart .coupon.ydm-avada-coupon h2 {
    color: #fff !important;
    font-size: 15px;
    font-weight: 700;
    margin: 0 0 12px 0;
    text-align: center;
}
.woocommerce-cart .coupon.ydm-avada-coupon .avada-coupon-fields.ydm-coupon-row {
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    gap: 10px;
    align-items: stretch;
    width: 100%;
}
.woocommerce-cart .coupon.ydm-avada-coupon .avada-coupon-fields.ydm-coupon-row label {
    color: #fff !important;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}
.woocommerce-cart .coupon.ydm-avada-coupon .avada-coupon-fields.ydm-coupon-row input.input-text {
    display: block;
    width: 100%;
    min-width: 0;
    padding: 13px !important;
    border-radius: 8px !important;
    background: #1f1f1f !important;
    color: #fff !important;
    border: 1px solid #3a3a3a !important;
    font-size: 14px !important;
    text-align: center;
    box-sizing: border-box !important;
    margin: 0 !important;
    height: auto !important;
}
.woocommerce-cart .coupon.ydm-avada-coupon .avada-coupon-fields.ydm-coupon-row .button.ydm-coupon-btn {
    display: block;
    width: 100%;
    padding: 13px !important;
    background: #918364 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    font-weight: 700;
    font-size: 15px;
    margin: 0 !important;
    height: auto !important;
    box-sizing: border-box !important;
}
/* Aviso "¿Tienes un código promocional?" */
.woocommerce-cart .woocommerce-form-coupon-toggle,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-message {
    background: #161616 !important;
    color: #fff !important;
    border-color: #3a3a3a !important;
    border-radius: 8px !important;
    padding: 14px !important;
}
.woocommerce-cart .woocommerce-info .showcoupon { color: #918364 !important; font-weight: 700; }
/* Formulario desplegable del cupón */
.woocommerce-cart .checkout_coupon,
.woocommerce-cart form.checkout_coupon {
    background: #161616 !important;
    border: 1px dashed #3a3a3a !important;
    border-radius: 10px;
    padding: 16px;
}
.woocommerce-cart .checkout_coupon .form-row input.input-text {
    width: 100% !important;
    padding: 13px !important;
    border-radius: 8px !important;
    background: #1f1f1f !important;
    color: #fff !important;
    border: 1px solid #3a3a3a !important;
    font-size: 14px !important;
    box-sizing: border-box !important;
}

/* =============================================
   Botón Finalizar compra — grande y claro (móvil)
   ============================================= */
.woocommerce-cart .checkout-button,
.woocommerce-cart a.checkout-button,
.wc-proceed-to-checkout a.checkout-button {
    width: 100% !important;
    display: block !important;
    text-align: center !important;
    padding: 16px !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    border-radius: 10px !important;
    background: #918364 !important;
    color: #fff !important;
    border: none !important;
}

/* =============================================
   Total general — IVA incluido y destacado
   ============================================= */
.woocommerce-cart .cart_totals tr.order-total td::after {
    content: " (IVA incluido)";
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: #918364;
    margin-top: 2px;
}
/* Si la fila de impuestos es visible, no duplicar */
.woocommerce-cart .cart_totals tr.tax-rate td .amount { color: #ccc !important; }

/* =============================================
   Producto personalizado (Fancy Product Designer)
   Con el modo LIGHTBOX NATIVO de FPD activado en el
   panel, el diseñador se abre en un popup y añade
   al carrito dentro de él. Aquí solo estilizamos el
   botón de personalización de FPD y aseguramos que
   el popup quede por encima del menú fijo de 4
   iconos en móvil.
   ============================================= */

/* 1) Botón de personalización de FPD: bonito y visible.
      (Es el <a> que FPD genera: #fpd-start-customizing-button) */
.single-product #fpd-start-customizing-button,
a#fpd-start-customizing-button {
    display: inline-block !important;
    visibility: visible !important;
    background: #918364 !important;
    color: #fff !important;
    border: none !important;
    padding: 16px 34px !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    border-radius: 10px !important;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    width: auto !important;
    letter-spacing: 0;
}
.single-product #fpd-start-customizing-button:hover,
a#fpd-start-customizing-button:hover {
    background: #7a6d52 !important;
    color: #fff !important;
}

/* 2) Agrandar las flechas de cambiar de lado (vista) dentro del editor,
      y el texto "x/y" de vista actual. NO ocultamos el botón "Añadir al
      carrito": con el lightbox nativo, FPD lo gestiona y ocultarlo
      provocaría que al personalizar no se añada a la cesta. */
.fpd-container fpd-views-nav > .fpd-view-next,
.fpd-container fpd-views-nav > .fpd-view-prev {
    width: 48px !important;
    height: 48px !important;
    font-size: 28px !important;
}
.fpd-container fpd-views-nav > .fpd-view-locker {
    font-size: 28px !important;
}
.fpd-container fpd-views-nav > .fpd-show-views-grid > .fpd-icon-pages {
    font-size: 26px !important;
}
.fpd-container fpd-views-nav > .fpd-show-views-grid > .fpd-current-view {
    font-size: 22px !important;
}
/* Thumbnails de lados (si se usan) más grandes y con etiqueta clara */
.fpd-view-thumbnails-wrapper > .fpd-item {
    width: 140px !important;
    height: 140px !important;
}

/* 3) Popup de FPD y su caja siempre por encima del menú fijo de 4 iconos */
.fpd-modal-wrapper,
.fpd-product-designer-modal,
.mfp-container,
#fpd-lightbox,
.fpd-start-customizing-popup,
.fpd-modal-dialog {
    z-index: 2147483647 !important;
}
.mfp-bg,
.fpd-modal-backdrop {
    z-index: 2147483646 !important;
}

/* 4) Ocultar meta info de Avada en la ficha de producto
      (By YD Master / Published On / Categorías / Tags / Comentarios) */
.single-product .post-meta,
.single-product .fusion-meta-info,
.single-product .fusion-meta-tb,
.single-product .entry-meta,
.single-product .fusion-post-meta,
.single-product .product_meta,
.single-product .fusion-single-line-meta {
    display: none !important;
}
/* Fallback: ocultar cualquier meta con estas etiquetas en la ficha */
.single-product .fusion-meta-info-wrapper,
.single-product .about-this-product,
.single-product .single-navigation,
.single-product .post-content  .fusion-meta-info {
    display: none !important;
}

/* =============================================
   CARRITO EN MÓVIL — compacto (no tapa la pantalla)
   ============================================= */
@media (max-width: 767px) {

    /* Aviso "¿Tienes un código promocional?" compacto, una línea */
    .woocommerce-cart .woocommerce-form-coupon-toggle,
    .woocommerce-cart .woocommerce-info {
        padding: 8px 12px !important;
        font-size: 13px !important;
        line-height: 1.3 !important;
        margin-bottom: 10px !important;
    }

    /* Formulario del cupón: bloque simple y visible (campo + botón a ancho completo) */
    .woocommerce-cart .coupon {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 12px !important;
        margin-bottom: 10px !important;
        box-sizing: border-box !important;
    }
    .woocommerce-cart .coupon label {
        display: none !important;
    }
    .woocommerce-cart .coupon input.input-text,
    .woocommerce-cart .coupon input#coupon_code,
    .woocommerce-cart .coupon input[name="coupon_code"] {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 12px !important;
        margin: 0 0 8px 0 !important;
        font-size: 14px !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }
    .woocommerce-cart .coupon .button,
    .woocommerce-cart .coupon button[name="apply_coupon"] {
        display: block !important;
        width: 100% !important;
        padding: 12px !important;
        margin: 0 !important;
        white-space: normal !important;
        box-sizing: border-box !important;
    }

    /* Formulario desplegable alternativo del cupón: bloque simple */
    .woocommerce-cart .checkout_coupon {
        display: block !important;
        width: 100% !important;
        padding: 12px !important;
        margin: 10px 0 !important;
        box-sizing: border-box !important;
    }
    .woocommerce-cart form.checkout_coupon {
        display: block !important;
        width: 100% !important;
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
    }
    .woocommerce-cart .checkout_coupon .form-row {
        float: none !important;
        margin: 0 0 8px 0 !important;
        width: 100% !important;
    }
    .woocommerce-cart .checkout_coupon .form-row input.input-text {
        display: block !important;
        width: 100% !important;
        padding: 12px !important;
        font-size: 14px !important;
        box-sizing: border-box !important;
    }
    .woocommerce-cart .checkout_coupon .button {
        display: block !important;
        width: 100% !important;
        padding: 12px !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    /* Tablas del carrito: evitar que salgan anchas/mal encajadas */
    .woocommerce table.shop_table {
        display: block !important;
        overflow-x: auto !important;
    }
    .woocommerce table.shop_table td,
    .woocommerce table.shop_table th {
        padding: 8px !important;
    }
    .cart_totals table.shop_table {
        table-layout: fixed !important;
        width: 100% !important;
    }
    .cart_totals table.shop_table td {
        word-break: break-word !important;
        font-size: 13px !important;
    }
    .cart_totals .order-total .amount {
        font-size: 16px !important;
    }
}

/* =============================================
   FPD: color de marca de los botones (dorado #918364)
   Reemplaza el color de acento por defecto de Fancy
   Product Designer (verde azulado / #2ecc71) por el
   dorado que se usa en el resto de botones de la web.
   ============================================= */
:root {
    --fpd-primary-color: #918364 !important;
    --fpd-secondary-color: #918364 !important;
    --fpd-btn-primary-color: #918364 !important;
    --fpd-btn-primary-text-color: #ffffff !important;
    --fpd-green-color: #918364 !important;
    --fpd-mainbar-nav-color: #918364 !important;
    --fpd-primary-fg-color: #fff !important;
    --fpd-secondary-fg-color: #fff !important;
}
/* Botones de accion del disenador: fondo dorado, texto blanco */
.fpd-container .fpd-btn-primary,
.fpd-container button.fpd-btn,
.fpd-container .fpd-button,
.fpd-container fpd-design fpd-button,
.fpd-container .fpd-toolbar button {
    background-color: #918364 !important;
    color: #fff !important;
    border-color: #918364 !important;
}
.fpd-container .fpd-btn-primary:hover,
.fpd-container button.fpd-btn:hover,
.fpd-container .fpd-button:hover,
.fpd-container fpd-design fpd-button:hover {
    background-color: #7a6d52 !important;
    color: #fff !important;
}
/* Eliminar el resplandor/glow verde si lo hubiera */
.fpd-container button:focus,
.fpd-container .fpd-btn:focus {
    box-shadow: none !important;
    outline: none !important;
}

/* =============================================
   CARRITO (pagina /cart) - vista movil y escritorio
   Forzar estructura limpia y legible.
   ============================================= */
.woocommerce-cart table.shop_table {
    border-collapse: collapse !important;
    width: 100% !important;
}
.woocommerce-cart table.shop_table tbody tr.cart_item {
    display: table-row !important;
}
.woocommerce-cart table.shop_table .product-name a {
    font-weight: 600 !important;
    color: #fff !important;
}
.woocommerce-cart table.shop_table .product-remove a {
    display: inline-block !important;
    background: none !important;
    border: none !important;
    color: #ff6b6b !important;
    font-size: 18px !important;
}
.woocommerce-cart table.shop_table .quantity .qty {
    width: 60px !important;
    padding: 8px !important;
    background: #1f1f1f !important;
    color: #fff !important;
    border: 1px solid #3a3a3a !important;
    text-align: center !important;
    border-radius: 6px !important;
}
.woocommerce-cart .cart_totals {
    width: 100% !important;
    float: none !important;
}
.woocommerce-cart .cart_totals table tr th,
.woocommerce-cart .cart_totals table tr td {
    text-align: left !important;
    padding: 10px 8px !important;
    font-size: 14px !important;
    vertical-align: middle !important;
}
.woocommerce-cart .cart-collaterals,
.woocommerce-cart .cart_totals,
.woocommerce-cart .cross-sells {
    float: none !important;
    width: 100% !important;
}
/* Quitar el botón "Actualizar carrito" de la cesta */
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart .cart .actions .button[name="update_cart"],
.woocommerce-cart input[name="update_cart"],
.woocommerce-cart .fusion-cart-table button[name="update_cart"],
.woocommerce-cart .actions button[name="update_cart"],
.woocommerce-cart tr.avada-cart-actions button[name="update_cart"],
.woocommerce-cart form button[value="Update cart"],
.woocommerce-cart form button[value="Actualizar carrito"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Vista movil del carrito: que cada producto forme una ficha clara */
@media (max-width: 767px) {
    .woocommerce-cart table.shop_table thead {
        display: none !important;
    }
    .woocommerce-cart table.shop_table,
    .woocommerce-cart table.shop_table tbody,
    .woocommerce-cart table.shop_table tr,
    .woocommerce-cart table.shop_table td {
        display: block !important;
        width: 100% !important;
    }
    .woocommerce-cart table.shop_table tr.cart_item {
        margin-bottom: 14px !important;
        border: 1px solid #2a2a2a !important;
        border-radius: 8px !important;
        padding: 8px !important;
        background: #161616 !important;
    }
    .woocommerce-cart table.shop_table td {
        border: none !important;
        padding: 6px 4px !important;
        text-align: left !important;
        font-size: 13px !important;
    }
    .woocommerce-cart table.shop_table td.product-thumbnail {
        width: 80px !important;
        display: inline-block !important;
        vertical-align: middle !important;
    }
    .woocommerce-cart table.shop_table td.product-thumbnail img {
        width: 70px !important;
        height: auto !important;
        border-radius: 6px !important;
    }
    .woocommerce-cart table.shop_table td.product-name {
        width: calc(100% - 90px) !important;
        display: inline-block !important;
        vertical-align: middle !important;
        font-size: 14px !important;
    }
    .woocommerce-cart table.shop_table td.product-price,
    .woocommerce-cart table.shop_table td.product-subtotal {
        display: inline-block !important;
        width: 48% !important;
        margin-top: 6px !important;
    }
    .woocommerce-cart table.shop_table td.product-quantity,
    .woocommerce-cart table.shop_table td.product-remove {
        display: inline-block !important;
        vertical-align: middle !important;
    }
    .woocommerce-cart .cart_totals {
        margin-top: 10px !important;
    }
    /* Reforzar: ocultar SIEMPRE el botón "Actualizar carrito" en móvil */
    .woocommerce-cart button[name="update_cart"],
    .woocommerce-cart input[name="update_cart"],
    .woocommerce-cart .actions button[name="update_cart"],
    .woocommerce-cart .actions input[name="update_cart"],
    .woocommerce-cart tr.avada-cart-actions .button[name="update_cart"] {
        display: none !important;
        visibility: hidden !important;
    }
}

/* =============================================
   Mi Cuenta — Login / Registro (form-login de WooCommerce)
   Apila las dos columnas (.u-columns) correctamente en móvil
   ============================================= */
@media (max-width: 768px) {
    .woocommerce-account .u-columns.col2-set {
        display: block !important;
        float: none !important;
        width: 100% !important;
    }
    .woocommerce-account .u-columns.col2-set .u-column1,
    .woocommerce-account .u-columns.col2-set .u-column2,
    .woocommerce-account .u-columns.col2-set .col-1,
    .woocommerce-account .u-columns.col2-set .col-2 {
        display: block !important;
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 18px 0 !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }
    .woocommerce-account .u-columns.col2-set .u-column1 div,
    .woocommerce-account .u-columns.col2-set .u-column2 div {
        width: 100% !important;
    }
    .woocommerce-account .u-columns.col2-set form.login,
    .woocommerce-account .u-columns.col2-set form.register {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 18px !important;
        box-sizing: border-box !important;
    }
    .woocommerce-account .u-columns.col2-set h2 {
        font-size: 18px !important;
        margin-bottom: 12px !important;
    }
    .woocommerce-account .u-columns.col2-set .form-row {
        float: none !important;
        width: 100% !important;
        margin: 0 0 14px 0 !important;
    }
    .woocommerce-account .u-columns.col2-set .form-row input.input-text,
    .woocommerce-account .u-columns.col2-set .form-row input[type="email"],
    .woocommerce-account .u-columns.col2-set .form-row input[type="password"] {
        width: 100% !important;
        padding: 12px !important;
        font-size: 15px !important;
        box-sizing: border-box !important;
    }
}

/* =============================================
   Landscape (móvil en horizontal) — evita el layout descuadrado
   ============================================= */
@media (max-width: 900px) and (orientation: landscape) {
    /* Fijar altura: para que no queden secciones aplastadas */
    .fusion-layout-column.fusion_builder_column {
        width: 100% !important;
    }
    /* Carrito en landscape: apilado y legible */
    .woocommerce-cart table.shop_table,
    .woocommerce-cart table.shop_table tbody,
    .woocommerce-cart table.shop_table tr,
    .woocommerce-cart table.shop_table td {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .woocommerce-cart table.shop_table thead {
        display: none !important;
    }
    .woocommerce-cart table.shop_table tr.cart_item {
        border: 1px solid #2a2a2a !important;
        border-radius: 8px !important;
        padding: 8px !important;
        margin-bottom: 12px !important;
        background: #161616 !important;
    }
    .woocommerce-cart table.shop_table td {
        border: none !important;
        text-align: left !important;
        padding: 5px 4px !important;
    }
    .woocommerce-cart table.shop_table td.product-thumbnail {
        display: inline-block !important;
        width: 70px !important;
        vertical-align: middle !important;
    }
    .woocommerce-cart table.shop_table td.product-thumbnail img {
        width: 64px !important;
        height: auto !important;
    }
    .woocommerce-cart table.shop_table td.product-name {
        display: inline-block !important;
        width: calc(100% - 80px) !important;
        vertical-align: middle !important;
        font-size: 13px !important;
    }
    .woocommerce-cart table.shop_table td.product-price,
    .woocommerce-cart table.shop_table td.product-subtotal {
        display: inline-block !important;
        width: 48% !important;
        margin-top: 5px !important;
    }
    /* Todos los formularios (login, checkout) apilados en landscape bajo */
    .woocommerce-account .u-columns.col2-set,
    .woocommerce-account .u-columns.col2-set .u-column1,
    .woocommerce-account .u-columns.col2-set .u-column2,
    .woocommerce-account .u-columns.col2-set .col-1,
    .woocommerce-account .u-columns.col2-set .col-2 {
        display: block !important;
        float: none !important;
        width: 100% !important;
        margin: 0 0 14px 0 !important;
    }
    .woocommerce form .form-row-first,
    .woocommerce form .form-row-last,
    .woocommerce form .form-row-wide {
        float: none !important;
        width: 100% !important;
    }
    /* El grid de categorías de la home en 3 columnas en landscape */
    .ydm-cat-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 10px !important;
    }
    .ydm-cat-card .ydm-cat-img img {
        width: 100% !important;
        height: auto !important;
    }
    body {
        overflow-x: hidden !important;
    }
    #main,
    .fusion-row,
    .fusion-fullwidth,
    .fusion-layout-column,
    .fusion-column-wrapper {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* =============================================
   MENÚ MÓVIL YDM — categorías y subcategorías desplegables
   Se muestra en móvil, tablet y escritorio (botón hamburguesa).
   ============================================= */

/* Ocultar por defecto hasta que un media/apartado lo muestre */
.ydm-mmenu-btn {
    display: none;
}

/* =============================================
   MENÚ HAMBURGUESA — panel desplazable + acordeón
   (funciona igual en móvil, tablet y escritorio)
   ============================================= */

/* En el móvil, además ocultar el icono hamburguesa nativo de Avada */
.fusion-mobile-menu-icons a.awb-icon-bars,
.fusion-flyout-menu-toggle,
.fusion-mobile-menu-toggle,
.fusion-mobile-nav-holder.fusion-mobile-menu-design-modern .fusion-menu {
    display: none !important;
}

/* Botón hamburguesa propio, fijo arriba y sin que se mueva */
.ydm-mmenu-btn {
    display: flex !important;
    align-items: center;
    justify-content: center;
    position: fixed !important;
    top: 12px !important;
    left: 12px !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 99998;
    transform: none !important;
    width: 44px;
    height: 44px;
    background: #161616;
    border: 1px solid #3a3a3a;
    border-radius: 10px;
    cursor: pointer;
    padding: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}
.ydm-mmenu-burger {
    display: inline-flex;
    flex-direction: column;
    gap: 5px;
}
.ydm-mmenu-burger span {
    display: block;
    width: 22px;
    height: 2px;
    background: #fff;
    border-radius: 2px;
}

/* En escritorio, apenas separarse de un posible logo fijo superior */
@media (min-width: 901px) {
    .ydm-mmenu-btn {
        top: 18px !important;
        left: 18px !important;
    }
}

/* Capa de oscurecimiento */
.ydm-mmenu {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    pointer-events: none;
}
.ydm-mmenu.ydm-open {
    display: block;
    pointer-events: auto;
}
.ydm-mmenu-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    opacity: 0;
    transition: opacity 0.25s ease;
}
.ydm-mmenu.ydm-open .ydm-mmenu-backdrop {
    opacity: 1;
}

/* Panel lateral izquierdo */
.ydm-mmenu-panel {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(320px, 85vw);
    background: #141414;
    color: #fff;
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
    transform: translateX(-105%);
    transition: transform 0.28s ease;
    overflow: hidden;
}
.ydm-mmenu.ydm-open .ydm-mmenu-panel {
    transform: translateX(0);
}

.ydm-mmenu-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
    background: #0f0f0f;
    border-bottom: 1px solid #2a2a2a;
}
.ydm-mmenu-title {
    font-size: 17px;
    font-weight: 700;
    color: #918364;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.ydm-mmenu-close {
    background: none;
    border: none;
    color: #fff;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
}

.ydm-mmenu-body {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 20px;
}

.ydm-mmenu-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 15px 18px;
    font-size: 15px;
    color: #fff;
    text-decoration: none;
    background: none;
    border: none;
    border-bottom: 1px solid #222;
    text-align: left;
    gap: 10px;
}

/* Categoría principal o enlace de nivel superior */
.ydm-mmenu-top {
    font-weight: 700;
    color: #e0e0e0;
    border-top: 1px solid #2a2a2a;
}

/* Padres (talleres/categorías) — desplegables.
   Tonos dorados para diferenciarlos claramente de las subcategorías. */
.ydm-mmenu-parent {
    font-weight: 800;
    color: #f0d8a8;
    background: linear-gradient(90deg, rgba(145,131,100,0.28), rgba(145,131,100,0.10));
    justify-content: flex-start;
    padding: 13px 16px;
    border-left: 3px solid #918364;
    border-bottom: 1px solid #2a2a2a;
    letter-spacing: 0.3px;
}
.ydm-mmenu-parent:hover {
    color: #ffe8bd;
    background: linear-gradient(90deg, rgba(145,131,100,0.40), rgba(145,131,100,0.16));
}
.ydm-mmenu-parent .ydm-mmenu-parent-txt {
    text-transform: uppercase;
    font-size: 14px;
}
.ydm-mmenu-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: rgba(145, 131, 100, 0.15);
    color: #918364;
    flex: 0 0 auto;
}
.ydm-mmenu-icon svg {
    width: 20px;
    height: 20px;
}
.ydm-mmenu-parent-txt {
    flex: 1 1 auto;
    min-width: 0;
}
.ydm-mmenu-chevron {
    width: 8px;
    height: 8px;
    border-right: 2px solid #918364;
    border-bottom: 2px solid #918364;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    flex: 0 0 auto;
    margin-left: 4px;
}
.ydm-mmenu-group.ydm-open .ydm-mmenu-chevron {
    transform: rotate(225deg);
}

/* Subcategorías (acordeón) */
.ydm-mmenu-children {
    display: none;
    background: #1d1d1d;
}
.ydm-mmenu-group.ydm-open .ydm-mmenu-children {
    display: block;
}

/* Subcategoría con miniatura — más pequeñas, indentadas y con marcador
   lateral para diferenciarlas de las categorías (padres). */
.ydm-mmenu-child {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 8px 14px 8px 26px;
    font-size: 13px;
    color: #cfcfcf;
    font-weight: 500;
    border-top: 1px solid #242424;
    border-left: 1px solid #3a3a3a;
    margin-left: 14px;
    margin-right: 10px;
    gap: 10px;
    background: #202020;
}
.ydm-mmenu-child:hover {
    color: #f0d8a8;
    background: #2a2a2a;
    border-left-color: #918364;
}
.ydm-mmenu-child .ydm-mmenu-thumb {
    width: 26px;
    height: 26px;
}
.ydm-mmenu-thumb {
    width: 32px;
    height: 32px;
    object-fit: cover;
    border-radius: 6px;
    flex: 0 0 auto;
    background: #2a2a2a;
}
.ydm-mmenu-empty {
    display: block;
    padding: 12px 24px;
    font-size: 13px;
    color: #888;
}

/* =============================================
   QUITAR EL "MARCO" / LAYOUT BOXED DE AVADA
   Cuando Avada está en modo "Boxed", toda la página
   va dentro de una caja con borde/sombra rodeada del
   color de fondo, en todos los dispositivos. Lo
   forzamos a ancho completo (WIDE) para que el
   contenido ocupe toda la pantalla, con o sin la
   opción activada en el panel de Avada.
   ============================================= */
body.fusion-body,
html.fusion-html-body,
body #wrapper,
.fusion-body #wrapper,
body #main,
.fusion-body #main,
#wrapper,
#main,
.fusion-body .fusion-boxed-shadow,
.fusion-boxed-shadow {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-shadow: none !important;
    border: none !important;
}

/* =============================================
   PÁGINA DE CATEGORÍA — banner y grid de productos
   ============================================= */

/* Banner con los productos de la categoría rotando */
.ydm-cat-banner {
    background: #141414;
    border: 1px solid #2a2a2a;
    border-radius: 12px;
    margin: 14px auto;
    max-width: 1200px;
    padding: 16px 18px 10px;
    overflow: hidden;
}
.ydm-cat-banner-title {
    text-align: center;
    color: #f0d8a8;
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}
.ydm-cat-banner-card {
    flex: 0 0 calc((100% - 30px) / 4);
    min-width: 110px;
}

/* =============================================
   TIENDA PERSONALIZADA (v6.0.27)
   ============================================= */
.ydm-shop {
    max-width: 1600px;
    margin: 0 auto;
    padding: 24px 16px 40px;
    width: 100%;
    box-sizing: border-box;
}
.ydm-shop,
.ydm-shop * {
    box-sizing: border-box;
}
.ydm-shop-title {
    font-size: 28px;
    font-weight: 700;
    color: #e8e8e8;
    margin: 0 0 4px;
    text-align: center;
    letter-spacing: 1px;
}
.ydm-shop-sub {
    text-align: center;
    color: #9a9a9a;
    margin: 0 0 22px;
    font-size: 14px;
}
.ydm-talleres {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin: 0 0 26px;
    width: 100%;
}
.ydm-taller-card {
    position: relative;
    display: block;
    border-radius: 10px;
    overflow: hidden;
    background: #111;
    border: 1px solid #333;
    text-decoration: none !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
    min-width: 0;
}
.ydm-taller-card img {
    width: 100%;
    height: 150px;
    object-fit: cover;
    display: block;
}
.ydm-taller-card .ydm-taller-label {
    position: absolute;
    inset: auto 0 0 0;
    padding: 8px 10px;
    text-align: center;
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.85));
}
.ydm-taller-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(145, 131, 100, 0.4);
}
.ydm-filters-toggle {
    display: none;
}
.ydm-shop-body {
    display: grid;
    grid-template-columns: 210px 1fr;
    gap: 20px;
    align-items: start;
    width: 100%;
    max-width: 100%;
}
.ydm-shop-aside {
    position: sticky;
    top: 20px;
    min-width: 0;
    max-width: 100%;
}
.ydm-shop-filters {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: rgba(17, 17, 17, 0.8);
    border: 1px solid #333;
    border-radius: 10px;
    padding: 16px;
    margin: 0;
    width: 100%;
    max-width: 100%;
}
.ydm-filter-field {
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: 11px;
    color: #aaa;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    min-width: 0;
    width: 100%;
}
.ydm-filter-field select {
    background: #222;
    color: #e8e8e8;
    border: 1px solid #444;
    border-radius: 6px;
    padding: 8px 10px;
    font-size: 13px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.ydm-filter-submit {
    background: #918364;
    color: #0b0b0b !important;
    border: none;
    border-radius: 6px;
    padding: 9px 18px;
    font-weight: 700;
    font-size: 13px;
    cursor: pointer;
    text-decoration: none !important;
}
.ydm-filter-submit:hover {
    background: #a89a74;
}
.ydm-filter-reset {
    background: transparent;
    color: #918364;
    border: 1px solid #918364;
    border-radius: 6px;
    padding: 8px 14px;
    font-size: 13px;
    text-decoration: none !important;
    display: block;
    text-align: center;
}
.ydm-shop-count {
    color: #aaa;
    font-size: 13px;
    margin: 0 0 14px;
    text-align: center;
}
.ydm-shop-main {
    min-width: 0;
    max-width: 100%;
    width: 100%;
}
/* Scroll NORMAL de pagina: los productos fluyen y la pagina baja,
   sin caja interna. La paginacion queda debajo. */
.ydm-shop-products {
    overflow: visible;
    max-width: 100%;
    min-width: 0;
}
.ydm-shop .ydm-shop-products ul.products,
.ydm-shop .ydm-shop-products ul.products.products-4,
.ydm-shop .ydm-shop-products ul.products.columns-4 {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
    float: none !important;
    width: 100%;
    min-width: 0;
    overflow: visible;
}
.ydm-shop .ydm-shop-products ul.products li.product {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    float: none !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
    overflow: visible !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .fusion-product-wrapper {
    max-width: 100% !important;
    width: 100% !important;
    background: #161616;
    border: 1px solid #2a2a2a;
    border-radius: 10px;
    overflow: hidden;
    display: flex !important;
    flex-direction: column;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-images {
    display: block !important;
    max-width: 100% !important;
    width: 100% !important;
}
/* Tarjeta cuadrada: foto mas ancha que alta (4:3) + bloque inferior
   compacto (nombre, precio, boton), asi la tarjeta completa queda con
   proporcion casi cuadrada en vez de rectangular/estrecha. */
.ydm-shop .ydm-shop-products ul.products li.product .product-images .featured-image {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 4 / 3;
    min-height: 0;
    overflow: hidden;
    background: #111;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-images .featured-image img {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    display: block;
    object-fit: cover;
    object-position: center;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-images .featured-image .hover-image {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}
/* ------- Tarjeta compacta: nombre + precio visible + botones ------- */
.ydm-shop .ydm-shop-products ul.products li.product .fusion-product-content {
    padding: 10px 12px 12px;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-title {
    font-size: 15px;
    line-height: 1.25;
    margin: 0 0 4px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 0;
    font-weight: 700;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-title a {
    color: #ffffff !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-title a:hover {
    color: #f0d8a8 !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .fusion-price-rating {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    margin: 0 0 6px;
}
.ydm-shop .ydm-shop-products ul.products li.product .fusion-price-rating .price,
.ydm-shop .ydm-shop-products ul.products li.product .fusion-price-rating .price .amount,
.ydm-shop .ydm-shop-products ul.products li.product .fusion-price-rating .price .woocommerce-Price-amount,
.ydm-shop .ydm-shop-products ul.products li.product .fusion-price-rating .price .woocommerce-Price-currencySymbol {
    color: #f0d8a8 !important;
    font-size: 17px;
    font-weight: 700;
}
.ydm-shop .ydm-shop-products ul.products li.product .fusion-price-rating .star-rating {
    display: none !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    flex: 1 0 auto;
    min-height: 0;
    margin: 6px 0 0 !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .fusion-content-sep {
    display: none !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    width: 100%;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container .button,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    padding: 10px 12px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    white-space: nowrap;
    color: #0b0b0b !important;
    background: #918364;
    border: 1px solid #918364;
    text-decoration: none !important;
    box-sizing: border-box;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* FALLBACK SIN JS: si el producto es personalizable (FPD), el boton
   "Personalizar" aparece primero en el DOM, asi que con el selector
   "sibling" ocultamos "Comprar ahora" y "Anadir a la cesta" aunque el
   JS aun no haya corrido. En productos NO personalizables no hay
   boton fpd, por lo que se ven los 2 botones. */
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.fpd-catalog-customize ~ a.show_details_button,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.fpd-catalog-customize ~ a.add_to_cart_button {
    display: none !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.show_details_button {
    background: rgba(17, 17, 17, 0.6) !important;
    border: 1px solid #555 !important;
    color: #e8e8e8 !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.fpd-catalog-customize,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.add_to_cart_button,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.product_type_variable {
    background: #918364 !important;
    border: 1px solid #918364 !important;
    color: #0b0b0b !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container .fpd-catalog-customize img,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container .fpd-catalog-customize i,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container .fpd-catalog-customize:before,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container .fpd-catalog-customize:after {
    display: none !important;
}
/* Iconos pseudo-elemento (hamburguesa de 3 lineas, etc.) en TODOS los
   botones de la tarjeta: los anula Avada con :before/:after. */
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a:before,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a:after,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.button:before,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.button:after,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.show_details_button:before,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.show_details_button:after,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.add_to_cart_button:before,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.add_to_cart_button:after {
    display: none !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.show_details_button i,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.show_details_button img,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.show_details_button span,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.add_to_cart_button i,
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.add_to_cart_button img {
    display: none !important;
}
.ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a.added_to_cart {
    display: none !important;
}
.ydm-shop-pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 22px;
    flex-wrap: wrap;
}
.ydm-shop-pagination a,
.ydm-shop-pagination span {
    display: inline-block;
    min-width: 36px;
    padding: 7px 10px;
    text-align: center;
    border-radius: 6px;
    background: #1c1c1c;
    color: #e8e8e8;
    border: 1px solid #333;
    font-size: 13px;
}
.ydm-shop-pagination .current {
    background: #918364;
    color: #0b0b0b;
    font-weight: 700;
}
.ydm-shop-pagination a:hover {
    border-color: #918364;
    color: #fff;
}
.ydm-shop-empty {
    text-align: center;
    color: #aaa;
    padding: 30px 10px;
    border: 1px dashed #444;
    border-radius: 8px;
}
@media (max-width: 767px) {
    .ydm-shop {
        padding: 12px 3mm 32px;
    }
    .ydm-talleres {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }
    .ydm-taller-card img {
        height: 110px;
    }
    .ydm-shop-body {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .ydm-filters-toggle {
        display: block;
        width: 100%;
        margin: 0 0 14px;
        padding: 12px 14px;
        background: #918364;
        color: #0b0b0b !important;
        border: 1px solid #918364;
        border-radius: 8px;
        font-size: 14px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        text-align: center;
        cursor: pointer;
    }
    .ydm-shop-aside {
        position: static;
        top: auto;
        display: none;
    }
    .ydm-shop.ydm-filters-open .ydm-shop-aside {
        display: block;
    }
    .ydm-shop-filters {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
    .ydm-shop-filters .ydm-filter-submit,
    .ydm-shop-filters .ydm-filter-reset {
        grid-column: 1 / -1;
    }
    .ydm-shop .ydm-shop-products ul.products,
    .ydm-shop .ydm-shop-products ul.products.products-4,
    .ydm-shop .ydm-shop-products ul.products.columns-4 {
        grid-template-columns: repeat(2, 1fr);
        gap: 0;
    }
    .ydm-shop .ydm-shop-products,
    .ydm-shop .ydm-shop-products ul.products {
        width: 100%;
        max-width: 100%;
        margin: 0;
    }
    .ydm-shop .ydm-shop-products ul.products li.product {
        margin: 0 !important;
    }
    .ydm-shop .ydm-shop-products ul.products li.product .fusion-product-wrapper {
        border-radius: 0;
    }
    .ydm-shop .ydm-shop-products ul.products li.product .product-images .featured-image {
        aspect-ratio: 16 / 10;
    }
    .ydm-shop .ydm-shop-products ul.products li.product .product-title {
        font-size: 15px;
    }
    .ydm-shop .ydm-shop-products ul.products li.product .fusion-price-rating .price,
    .ydm-shop .ydm-shop-products ul.products li.product .fusion-price-rating .price .amount,
    .ydm-shop .ydm-shop-products ul.products li.product .fusion-price-rating .price .woocommerce-Price-amount,
    .ydm-shop .ydm-shop-products ul.products li.product .fusion-price-rating .price .woocommerce-Price-currencySymbol {
        font-size: 16px;
    }
    .ydm-shop .ydm-shop-products ul.products li.product .product-buttons {
        min-height: 0;
    }
    .ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container .button,
    .ydm-shop .ydm-shop-products ul.products li.product .product-buttons-container a {
        min-height: 48px;
        padding: 11px 8px;
        font-size: 14px;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
    }
}
