/*
Theme Name:   Astra Child — Ciovini
Theme URI:    https://ciovini.com
Description:  Child theme personalizado para Ciovini. Editar aquí para cambios seguros.
Author:       Ciovini
Template:     astra
Version:      2.7.0
Text Domain:  astra-child
*/

/* =====================================================
   FUENTES — Outfit (headings) + Inter (body)
   ===================================================== */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600&family=Inter:wght@300;400;500&display=swap');

/* =====================================================
   VARIABLES — Sistema de diseño Ciovini
   ===================================================== */
:root {
    --bg:         #ffffff;
    --fg:         #1a1a1a;
    --accent:     #a85d46;      /* Terracotta — color identidad */
    --accent-h:   #8f4c38;      /* Terracotta hover */
    --muted:      #666666;
    --light:      #f8f8f8;
    --border:     rgba(0,0,0,0.08);
    --glass:      rgba(255,255,255,0.9);

    --f-head:     'Outfit', sans-serif;
    --f-body:     'Inter', sans-serif;

    --ease:       cubic-bezier(0.16, 1, 0.3, 1);
    --t:          0.4s var(--ease);
    --radius:     2px;
}

/* =====================================================
   BASE
   ===================================================== */
*, *::before, *::after { box-sizing: border-box; }

body {
    font-family: var(--f-body) !important;
    color: var(--fg) !important;
    background: var(--bg) !important;
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--f-head) !important;
    font-weight: 300 !important;
    letter-spacing: -0.02em !important;
    line-height: 1.15 !important;
}

a { transition: var(--t); }

img { display: block; max-width: 100%; }

/* =====================================================
   HEADER — Fixed + efecto glass en scroll
   position:fixed es el único método 100% fiable con HFE + LiteSpeed.
   position:sticky falla cuando algún ancestro tiene overflow-x:hidden.
   ===================================================== */

/* FIXED: siempre visible en la parte superior */
#masthead {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 9999 !important;
    background-color: #fff !important;
    border-bottom: 1px solid var(--border) !important;
    transition: background-color 0.35s ease,
                box-shadow 0.35s ease,
                backdrop-filter 0.35s ease !important;
}

/* Compensar la altura del header fijo (80px = min-height del container Elementor) */
#page {
    padding-top: 80px !important;
}

/* Glass cuando el usuario hace scroll (clase añadida por nuestro JS) */
body.ciovini-scrolled #masthead {
    background-color: var(--glass) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    box-shadow: 0 2px 20px rgba(0,0,0,0.06) !important;
    border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}

/* Logo */
.ast-logo-img,
.custom-logo,
.site-logo img {
    max-height: 52px !important;
    width: auto !important;
    transition: var(--t) !important;
}

/* Menú de navegación */
#ast-desktop-header .main-header-menu .menu-item > .menu-link,
.main-header-menu .menu-item > .menu-link {
    font-family: var(--f-body) !important;
    font-size: 0.72rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    color: var(--fg) !important;
    padding: 6px 14px !important;
    position: relative;
}

/* Subrayado animado terracotta en hover */
#ast-desktop-header .main-header-menu .menu-item > .menu-link::after,
.main-header-menu .menu-item > .menu-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 14px;
    right: 14px;
    height: 1px;
    background: var(--accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s var(--ease);
}

#ast-desktop-header .main-header-menu .menu-item > .menu-link:hover::after,
.main-header-menu .current-menu-item > .menu-link::after {
    transform: scaleX(1);
}

#ast-desktop-header .main-header-menu .menu-item > .menu-link:hover,
.main-header-menu .current-menu-item > .menu-link {
    color: var(--fg) !important;
}

/* Carrito */
.ast-cart-menu-wrap .count {
    background: var(--accent) !important;
    color: #fff !important;
    border-radius: 50% !important;
    font-size: 0.65rem !important;
}

/* =====================================================
   BOTONES
   ===================================================== */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.ast-btn, .button, button[type="submit"], input[type="submit"] {
    font-family: var(--f-body) !important;
    font-size: 0.72rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    background: var(--fg) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--radius) !important;
    padding: 13px 28px !important;
    transition: opacity 0.2s, transform 0.2s !important;
    cursor: pointer;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
    opacity: 0.8 !important;
    transform: translateY(-1px) !important;
}

/* CTA principal — terracotta */
.woocommerce .single_add_to_cart_button {
    background: var(--accent) !important;
    color: #fff !important;
    width: 100% !important;
    padding: 16px 32px !important;
    font-size: 0.78rem !important;
}

.woocommerce .single_add_to_cart_button:hover {
    background: var(--accent-h) !important;
    opacity: 1 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(168,93,70,0.25) !important;
}

/* =====================================================
   SHOP — GRID DE PRODUCTOS
   ===================================================== */

/* Fondo muy suave */
body.post-type-archive-product .site-content,
body.woocommerce-shop .site-content,
body.tax-product_cat .site-content {
    background: var(--light) !important;
}

/* Título página */
.woocommerce .woocommerce-products-header__title,
.woocommerce-page h1.page-title,
body.tax-product_cat h1.page-title {
    font-family: var(--f-head) !important;
    font-size: 1.1rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    color: var(--muted) !important;
}

/* Toolbar */
.woocommerce-ordering select {
    font-family: var(--f-body) !important;
    font-size: 0.78rem !important;
    border: 1px solid var(--border) !important;
    border-radius: var(--radius) !important;
    padding: 7px 12px !important;
    color: var(--muted) !important;
    background: #fff !important;
    -webkit-appearance: none;
}

.woocommerce .woocommerce-result-count {
    font-size: 0.78rem !important;
    color: var(--muted) !important;
    font-family: var(--f-body) !important;
}

/* ---- GRID: 3 cols desktop, 2 tablet, 2 mobile ----
   NOTA: Excluimos la home (.home) para no sobreescribir el Elementor widget
   que gestiona su propio layout de columnas ---- */
body:not(.home) .woocommerce ul.products,
body:not(.home) .woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 16px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    width: 100% !important;
    float: none !important;
}

@media (max-width: 900px) {
    body:not(.home) .woocommerce ul.products,
    body:not(.home) .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
    }
}

@media (max-width: 480px) {
    body:not(.home) .woocommerce ul.products,
    body:not(.home) .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }
}

/* ---- HOME: grid de categorías centrado ----
   Elementor widget usa ul.products con li.product-category.
   justify-content:center centra la última fila cuando no está completa. ---- */
body.home .woocommerce ul.products,
body.home .woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    justify-content: center !important;
    gap: 16px !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    list-style: none !important;
    width: 100% !important;
    float: none !important;
}

@media (max-width: 900px) {
    body.home .woocommerce ul.products,
    body.home .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 480px) {
    body.home .woocommerce ul.products,
    body.home .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }
}

/* ---- TARJETA ---- */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
    background: #fff !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    overflow: hidden;
    position: relative;
    width: 100% !important;         /* anular el width inline de Astra */
    float: none !important;
    /* Flex column: imagen arriba, descripción siempre alineada */
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
}

/* ---- IMAGEN: ratio 3:4, nitidez completa ---- */
.woocommerce ul.products li.product a:first-child {
    display: block;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    background: var(--light);
    flex-shrink: 0;   /* no comprimir la imagen dentro del flex */
    position: relative;
}

.woocommerce ul.products li.product a:first-child img,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail,
.woocommerce ul.products li.product img.wp-post-image {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    aspect-ratio: 3 / 4 !important;
    object-fit: cover !important;
    object-position: center top !important;   /* centrar arriba en prendas */
    display: block !important;
    transition: transform 0.6s var(--ease) !important;
    /* Nitidez: sin filtros que puedan hacer blur */
    image-rendering: auto;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    transform: translateZ(0);               /* activa GPU para nitidez */
}

.woocommerce ul.products li.product:hover a:first-child img {
    transform: scale(1.05) translateZ(0) !important;
}

/* ---- INFO debajo de la foto ---- */
/* Wrapper info para padding uniforme */
.woocommerce ul.products li.product .woocommerce-loop-product__link ~ *,
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .button {
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--f-body) !important;
    font-size: 0.8rem !important;
    font-weight: 400 !important;
    color: var(--fg) !important;
    line-height: 1.4 !important;
    margin: 10px 0 3px !important;
    padding: 0 10px !important;
    text-align: left !important;
    /* Limitar a 2 líneas para que todas las tarjetas sean iguales */
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    min-height: 2.24em !important; /* 2 líneas × 1.4 line-height × 0.8rem */
}

.woocommerce ul.products li.product .price {
    font-family: var(--f-body) !important;
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    color: var(--fg) !important;
    margin: 0 0 12px !important;
    padding: 0 10px !important;
    display: block !important;
}

.woocommerce ul.products li.product .price del {
    color: #aaa !important;
    font-weight: 300 !important;
    margin-right: 4px;
}

.woocommerce ul.products li.product .price ins {
    color: var(--accent) !important;
    text-decoration: none !important;
}

/* Badge SALE — minimal */
.woocommerce ul.products li.product .onsale {
    background: var(--fg) !important;
    color: #fff !important;
    border-radius: 0 !important;
    font-family: var(--f-body) !important;
    font-size: 0.6rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    top: 10px !important;
    left: 10px !important;
    padding: 3px 7px !important;
    min-height: auto !important;
    min-width: auto !important;
    line-height: 1.4 !important;
}

/* Ocultar botón "aggiungi" en listado */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button {
    display: none !important;
}

/* =====================================================
   CATEGORÍAS — encuadre correcto en todas las pantallas
   ===================================================== */

/* Página de categoría — sin sidebar, full width */
body.tax-product_cat .content-area,
body.tax-product_cat #primary {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
}

/* Encabezado de categoría con imagen */
.term-description {
    font-family: var(--f-body) !important;
    font-size: 0.9rem !important;
    color: var(--muted) !important;
    max-width: 600px;
    margin: 0 auto 32px !important;
    text-align: center;
}

/* =====================================================
   PÁGINA DE PRODUCTO INDIVIDUAL
   Layout: [thumbnails | foto grande] [info + precio]

   IMPORTANTE: En WooCommerce, div.images ES el woocommerce-product-gallery
   (mismo elemento, no hay que anidar la búsqueda).
   Astra pone float:left; width:50% en este elemento via inline CSS —
   hay que sobreescribir con !important.
   ===================================================== */

/* Contenedor del producto: grid 2 columnas */
.woocommerce div.product {
    position: relative !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 56px !important;
    align-items: start !important;
}

/* FIJAMOS posición explícita de galería y summary en el grid.
   WooCommerce puede insertar un badge .onsale antes de la galería,
   lo que empujaría gallery a columna 2 y summary a fila 2.
   Con grid-column/grid-row explícito esto no puede pasar. */
.woocommerce div.product div.images,
.woocommerce .ast-woocommerce-container div.product div.images {
    grid-column: 1 !important;
    grid-row: 1 !important;
    float: none !important;
    width: auto !important;
    position: sticky !important;
    top: 96px !important;   /* 80px header + 16px margen */
}

.woocommerce div.product .entry-summary,
.woocommerce .ast-woocommerce-container div.product div.summary {
    grid-column: 2 !important;
    grid-row: 1 !important;
    float: none !important;
    width: auto !important;
}

/* Badge .onsale en producto individual: posición absoluta para no ocupar celda del grid */
.woocommerce div.product > span.onsale {
    position: absolute !important;
    z-index: 10 !important;
    top: 14px !important;
    left: 14px !important;
    margin: 0 !important;
}

/* Tabs y secciones debajo del grid (ocupan ambas columnas) */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related.products,
.woocommerce div.product .upsells.products,
.woocommerce div.product .clear {
    grid-column: 1 / -1 !important;
}

@media (max-width: 768px) {
    .woocommerce div.product {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
    .woocommerce div.product div.images {
        grid-column: 1 !important;
        grid-row: 1 !important;
        position: static !important;
    }
    .woocommerce div.product .entry-summary {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }
}

/* ---- GALERÍA: div.images ES el gallery (flexslider)
   Thumbnails verticales a la IZQUIERDA, foto grande a la derecha ---- */
.woocommerce div.product div.images.woocommerce-product-gallery,
.woocommerce div.product .woocommerce-product-gallery.images {
    display: flex !important;
    flex-direction: row !important;
    gap: 10px !important;
    align-items: flex-start !important;
}

/* Foto principal — ocupa el espacio restante */
.woocommerce div.product .woocommerce-product-gallery.images .flex-viewport,
.woocommerce div.product .woocommerce-product-gallery .flex-viewport {
    flex: 1 !important;
    min-width: 0 !important;
    order: 0 !important;
}

/* Thumbnails — tira vertical izquierda */
.woocommerce div.product .woocommerce-product-gallery ol.flex-control-thumbs,
.woocommerce div.product .woocommerce-product-gallery ul.flex-control-thumbs,
.woocommerce div.product div.images ol.flex-control-thumbs {
    order: -1 !important;           /* mueve antes del viewport = izquierda */
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    width: 68px !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    max-height: 70vh !important;
    overflow-y: auto !important;
    scrollbar-width: none !important;
}
.woocommerce div.product div.images ol.flex-control-thumbs::-webkit-scrollbar {
    display: none !important;
}

.woocommerce div.product div.images ol.flex-control-thumbs li {
    width: 68px !important;
    flex-shrink: 0 !important;
    margin: 0 !important;
}

.woocommerce div.product div.images ol.flex-control-thumbs li img {
    width: 68px !important;
    height: 86px !important;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
    cursor: pointer !important;
    border-radius: 0 !important;
    opacity: 0.5 !important;
    transition: opacity 0.25s ease !important;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
}

.woocommerce div.product div.images ol.flex-control-thumbs li img.flex-active,
.woocommerce div.product div.images ol.flex-control-thumbs li img:hover {
    opacity: 1 !important;
}

/* Imagen principal — sin blur */
.woocommerce div.product .woocommerce-product-gallery__image img,
.woocommerce div.product .woocommerce-product-gallery__wrapper img,
.woocommerce div.product div.images img.wp-post-image {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 0 !important;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
}

/* Ocultar icono de lupa */
.woocommerce-product-gallery__trigger,
a.woocommerce-product-gallery__trigger {
    display: none !important;
}

/* Ocultar zoom overlay */
.zoomImg,
.zoomContainer {
    display: none !important;
}

/* Mobile: thumbnails en fila horizontal debajo */
@media (max-width: 768px) {
    .woocommerce div.product div.images.woocommerce-product-gallery,
    .woocommerce div.product .woocommerce-product-gallery.images {
        flex-direction: column !important;
    }

    .woocommerce div.product div.images ol.flex-control-thumbs {
        order: 1 !important;
        flex-direction: row !important;
        width: 100% !important;
        max-height: none !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
    }

    .woocommerce div.product div.images ol.flex-control-thumbs li,
    .woocommerce div.product div.images ol.flex-control-thumbs li img {
        width: 56px !important;
        height: 72px !important;
    }
}

/* Summary */
.woocommerce div.product .product_title {
    font-family: var(--f-head) !important;
    font-size: 1.5rem !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
    margin-bottom: 12px !important;
    color: var(--fg) !important;
}

.woocommerce div.product p.price {
    font-family: var(--f-body) !important;
    font-size: 1.25rem !important;
    font-weight: 500 !important;
    color: var(--fg) !important;
    margin-bottom: 20px !important;
}

.woocommerce div.product .woocommerce-product-details__short-description {
    font-family: var(--f-body) !important;
    font-size: 0.9rem !important;
    color: var(--muted) !important;
    line-height: 1.75 !important;
    margin: 0 0 20px !important;
    padding: 16px 0 !important;
    border-top: 1px solid var(--border) !important;
    border-bottom: 1px solid var(--border) !important;
}

/* Input cantidad oculto (prendas únicas) */
.woocommerce div.product form.cart .quantity { display: none !important; }

.woocommerce div.product form.cart { margin-top: 8px !important; }

/* Meta */
.woocommerce div.product .product_meta {
    font-size: 0.78rem !important;
    color: var(--muted) !important;
    margin-top: 20px !important;
    padding-top: 16px !important;
    border-top: 1px solid var(--border) !important;
    font-family: var(--f-body) !important;
}

.woocommerce div.product .product_meta a {
    color: var(--muted) !important;
}
.woocommerce div.product .product_meta a:hover {
    color: var(--accent) !important;
}

/* =====================================================
   CARRITO Y CHECKOUT
   ===================================================== */
.woocommerce-cart table.cart td,
.woocommerce-cart table.cart th {
    padding: 16px 12px !important;
    border-bottom: 1px solid var(--border) !important;
    font-family: var(--f-body) !important;
    font-size: 0.88rem !important;
    vertical-align: middle !important;
}

.woocommerce-cart .product-thumbnail img {
    width: 72px !important;
    height: 96px !important;
    object-fit: cover !important;
    object-position: center top !important;
    border-radius: 0 !important;
}

.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-checkout h3 {
    font-family: var(--f-head) !important;
    font-size: 0.85rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    border-bottom: 1.5px solid var(--fg) !important;
    padding-bottom: 10px !important;
    margin-bottom: 18px !important;
}

.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout select,
.woocommerce-checkout textarea {
    font-family: var(--f-body) !important;
    font-size: 0.9rem !important;
    border: 1px solid var(--border) !important;
    border-radius: 0 !important;
    padding: 12px 14px !important;
    transition: border-color 0.2s !important;
}

.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus {
    border-color: var(--accent) !important;
    box-shadow: 0 0 0 3px rgba(168,93,70,0.12) !important;
    outline: none !important;
}

/* =====================================================
   FOOTER
   ===================================================== */
.site-footer,
.ast-footer-overlay,
.footer-widget-area {
    background-color: var(--light) !important;
    border-top: 1px solid var(--border) !important;
}

.site-footer,
.site-footer p,
.site-footer li,
.ast-footer-copyright {
    font-family: var(--f-body) !important;
    font-size: 0.82rem !important;
    color: var(--muted) !important;
}

.site-footer a { color: var(--muted) !important; }
.site-footer a:hover { color: var(--accent) !important; }

/* =====================================================
   BREADCRUMBS, PAGINACIÓN, MENSAJES
   ===================================================== */
.woocommerce .woocommerce-breadcrumb {
    font-family: var(--f-body) !important;
    font-size: 0.75rem !important;
    color: var(--muted) !important;
    letter-spacing: 0.04em !important;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--muted) !important; }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--accent) !important; }

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
    font-family: var(--f-body) !important;
    font-size: 0.82rem !important;
    border-radius: 0 !important;
}

.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: var(--fg) !important;
    color: #fff !important;
}

.woocommerce-message { border-top-color: #43ab8c !important; }
.woocommerce-error   { border-top-color: var(--accent) !important; }

/* =====================================================
   CATEGORÍAS — Hover animado estilo tartagelatina
   ===================================================== */

/* Tarjetas de categoría en el shop */
.woocommerce ul.products li.product-category {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

/* Imagen de categoría: zoom suave en hover */
.woocommerce ul.products li.product-category a {
    display: block;
    position: relative;
    overflow: hidden;
}

.woocommerce ul.products li.product-category a img {
    width: 100% !important;
    aspect-ratio: 3 / 4 !important;
    object-fit: cover !important;
    object-position: center top !important;
    transition: transform 0.7s var(--ease) !important;
    display: block !important;
}

.woocommerce ul.products li.product-category:hover a img {
    transform: scale(1.07) !important;
}

/* Overlay oscuro que aparece en hover */
.woocommerce ul.products li.product-category a::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.05) 50%, transparent 100%);
    opacity: 0;
    transition: opacity 0.5s var(--ease);
    z-index: 1;
    pointer-events: none;
}

.woocommerce ul.products li.product-category:hover a::before {
    opacity: 1;
}

/* Nombre de categoría — siempre visible en la parte baja de la imagen */
.woocommerce ul.products li.product-category h2.woocommerce-loop-category__title,
.woocommerce ul.products li.product-category .woocommerce-loop-category__title {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 2 !important;
    color: #fff !important;
    font-family: var(--f-head) !important;
    font-size: 0.72rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    padding: 24px 14px 12px !important;
    margin: 0 !important;
    background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, transparent 100%) !important;
    /* Siempre visible — sin animación de aparición */
    opacity: 1 !important;
    transform: none !important;
}

/* En hover: sutil intensificación del gradiente */
.woocommerce ul.products li.product-category:hover h2.woocommerce-loop-category__title,
.woocommerce ul.products li.product-category:hover .woocommerce-loop-category__title {
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, transparent 100%) !important;
}

/* Nombre de categoría siempre visible (estado normal) — versión fallback
   cuando el hover no está activo, mostrar nombre debajo de la imagen */
.woocommerce ul.products li.product-category .woocommerce-loop-category__title mark {
    background: transparent !important;
    font-size: 0.7em !important;
    color: inherit !important;
    display: block !important;
    font-weight: 300 !important;
    opacity: 0.8 !important;
}

/* =====================================================
   TABLET — 769px a 1024px
   ===================================================== */
@media (min-width: 769px) and (max-width: 1024px) {

    /* Producto: reducir gap en tablet */
    .woocommerce div.product {
        gap: 32px !important;
    }
    .woocommerce div.product div.images {
        top: 88px !important;
    }

    /* Shop: 2 columnas en tablet */
    body:not(.home) .woocommerce ul.products,
    body:not(.home) .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 14px !important;
    }

    /* Home: mantener 2 columnas en tablet */
    body.home .woocommerce ul.products,
    body.home .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* =====================================================
   MOBILE — hasta 768px (responsive completo)
   ===================================================== */
@media (max-width: 768px) {

    /* --- Header: compensar altura reducida en móvil --- */
    #page { padding-top: 72px !important; }

    /* --- Logo --- */
    .ast-logo-img, .custom-logo, .site-logo img {
        max-height: 38px !important;
    }

    /* --- Menú mobile: asegurar que el desplegable queda bien --- */
    .ast-mobile-header-wrap,
    .ast-mobile-menu-overlay { z-index: 9998 !important; }

    /* --- Producto individual: una columna --- */
    .woocommerce div.product {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }
    .woocommerce div.product div.images {
        grid-column: 1 !important;
        grid-row: 1 !important;
        position: static !important;
    }
    .woocommerce div.product .entry-summary {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }
    .woocommerce div.product .product_title {
        font-size: 1.15rem !important;
    }
    .woocommerce div.product p.price {
        font-size: 1.05rem !important;
    }
    .woocommerce div.product .woocommerce-product-details__short-description {
        font-size: 0.88rem !important;
        padding: 12px 0 !important;
    }
    .woocommerce .single_add_to_cart_button {
        padding: 14px 24px !important;
    }

    /* --- Carrito: tabla scrollable en horizontal --- */
    .woocommerce-cart .woocommerce { overflow-x: auto; }
    .woocommerce-cart table.cart { min-width: 480px; }
    .woocommerce-cart table.cart td,
    .woocommerce-cart table.cart th {
        padding: 10px 8px !important;
        font-size: 0.82rem !important;
    }
    .woocommerce-cart .product-thumbnail img {
        width: 54px !important;
        height: 72px !important;
    }
    /* Totales y cross-sells: ancho completo */
    .woocommerce-cart .cart-collaterals .cart_totals,
    .woocommerce-cart .cart-collaterals .cross-sells {
        width: 100% !important;
        float: none !important;
        margin-bottom: 24px !important;
    }

    /* --- Checkout: campos en columna --- */
    .woocommerce-checkout #customer_details .col-1,
    .woocommerce-checkout #customer_details .col-2 {
        width: 100% !important;
        float: none !important;
        margin-right: 0 !important;
        padding: 0 !important;
    }
    .woocommerce-checkout .woocommerce-checkout-review-order-table td,
    .woocommerce-checkout .woocommerce-checkout-review-order-table th {
        padding: 10px 8px !important;
        font-size: 0.85rem !important;
    }
    .woocommerce-checkout #order_review_heading,
    .woocommerce-checkout #order_review {
        width: 100% !important;
        float: none !important;
        padding: 0 !important;
    }

    /* --- Toolbar shop: apilar en columna --- */
    .woocommerce .woocommerce-ordering {
        float: none !important;
        display: block !important;
        margin-bottom: 8px !important;
    }
    .woocommerce-ordering select { width: 100% !important; }
    .woocommerce .woocommerce-result-count {
        float: none !important;
        display: block !important;
        margin-bottom: 6px !important;
    }
}

/* =====================================================
   SMALL MOBILE — hasta 480px
   ===================================================== */
@media (max-width: 480px) {

    /* --- Header --- */
    #page { padding-top: 64px !important; }

    /* --- Tipografía producto --- */
    .woocommerce div.product .product_title { font-size: 1rem !important; }
    .woocommerce div.product p.price { font-size: 0.95rem !important; }
    .woocommerce div.product .woocommerce-product-details__short-description {
        font-size: 0.83rem !important;
    }
    .woocommerce .single_add_to_cart_button {
        padding: 13px 16px !important;
        font-size: 0.7rem !important;
    }
    .woocommerce div.product .product_meta { font-size: 0.74rem !important; }

    /* --- Tarjetas de producto --- */
    .woocommerce ul.products li.product .woocommerce-loop-product__title {
        font-size: 0.72rem !important;
        min-height: 2em !important;
    }
    .woocommerce ul.products li.product .price {
        font-size: 0.78rem !important;
        margin-bottom: 8px !important;
    }

    /* --- Categorías: texto más pequeño en móvil pequeño --- */
    .woocommerce ul.products li.product-category h2.woocommerce-loop-category__title,
    .woocommerce ul.products li.product-category .woocommerce-loop-category__title {
        font-size: 0.62rem !important;
        letter-spacing: 0.1em !important;
        padding: 16px 8px 9px !important;
    }

    /* --- Paginación --- */
    .woocommerce nav.woocommerce-pagination ul li a,
    .woocommerce nav.woocommerce-pagination ul li span {
        padding: 6px 10px !important;
        font-size: 0.78rem !important;
    }
}

