/* Gaesa — hoja principal del tema hijo.
   Consolidada desde los <style> que se imprimian inline en wp_head.
   El orden de las secciones reproduce el orden de ejecucion original
   de esos hooks: no reordenar, hay overrides que dependen de el.
   Se encola en functions.php con filemtime() como version. */

/* ==========================================================
   Badges de lineas hijas
   (era gaesa_linea_child_badge_styles(), inline en wp_head)
   ========================================================== */

.gaesa-product-linea-badges {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 4px;
        margin: 4px 0 6px;
    }
    .gaesa-product-linea-badge {
        display: inline-block;
        background: #eef1ff;
        color: #0929e8 !important;
        border: 1px solid #d6deff;
        border-radius: 999px;
        padding: 2px 9px;
        font-size: 11px;
        font-weight: 600;
        line-height: 1.4;
        text-decoration: none !important;
        text-transform: uppercase;
        letter-spacing: 0.3px;
    }
    .gaesa-product-linea-badge:hover,
    .gaesa-product-linea-badge:focus {
        background: #0929e8;
        color: #fff !important;
        border-color: #0929e8;
    }


/* ==========================================================
   Megamenu
   (era gaesa_megamenu_styles(), inline en wp_head)
   ========================================================== */

/* ============================================
   GAESA MEGAMENU — Redesign
   ============================================ */

/* Panel principal */
.gaesa-megamenu {
    display: none;
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    /* El `top` real lo calcula assets/js/gaesa-megamenu.js (borde inferior del
       item disparador). Sin `top`, el panel toma su posicion estatica y como el
       <ul> del menu es flex centrado, quedaba con top negativo (fuera de
       pantalla). align-self evita ese centrado si el JS no llega a correr. */
    align-self: flex-start;
    max-height: 75vh;
    overflow-y: auto;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%) !important;
    box-shadow: 0 20px 60px rgba(0,0,0,0.12), 0 1px 3px rgba(0,0,0,0.06);
    padding: 0 !important;
    z-index: 99999;
    border-top: none !important;
    box-sizing: border-box;
    animation: gaesaMegaIn 0.2s ease-out;
}
@keyframes gaesaMegaIn {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}
.gaesa-mega-trigger:hover > .gaesa-megamenu,
.gaesa-mega-trigger:focus-within > .gaesa-megamenu {
    display: block;
}

/* Barra azul superior decorativa */
.gaesa-megamenu::before {
    content: "";
    display: block;
    height: 3px;
    background: linear-gradient(90deg, #1e40af 0%, #3b82f6 50%, #1e40af 100%);
}

/* Contenedor interno con padding */
/* --gaesa-mega-cols lo emite PHP con la cantidad real de columnas visibles
   (las líneas sin productos no se dibujan), así no quedan huecos en la grilla. */
.gaesa-mega-grid {
    display: grid !important;
    grid-template-columns: repeat(var(--gaesa-mega-cols, 5), 1fr);
    grid-template-rows: auto 1fr;
    gap: 0;
    max-width: 1300px;
    margin: 0 auto;
    padding: 28px 40px 32px;
}

/* Variante 4 columnas (usada por el megamenu de Líneas) */
.gaesa-megamenu--4col .gaesa-mega-grid {
    grid-template-columns: repeat(var(--gaesa-mega-cols, 4), 1fr) !important;
    max-width: 1100px;
}

/* Cada columna padre.
   subgrid: la columna hereda las dos filas de .gaesa-mega-grid (título y lista),
   así todos los títulos comparten alto y las líneas azules quedan alineadas
   aunque un nombre ocupe una o tres líneas de texto. */
.gaesa-mega-col {
    min-width: 0;
    padding: 0 20px;
    border-right: 1px solid #e8ecf1;
    display: grid;
    /* minmax(0,1fr): sin esto la columna implícita se dimensiona al contenido
       y los títulos/listas largos desbordan sobre la columna vecina */
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: subgrid;
    grid-row: span 2;
}
.gaesa-mega-col > * {
    min-width: 0;
}
.gaesa-mega-col:last-child {
    border-right: none;
}

/* Sin subgrid: alto mínimo para dos renglones de título */
@supports not (grid-template-rows: subgrid) {
    .gaesa-mega-col {
        display: block;
    }
    .gaesa-mega-col-title {
        min-height: 46px;
    }
}

/* Título padre — es el enlace "ver todo" de la línea */
.gaesa-mega-col-title {
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    margin: 0 0 12px !important;
    padding: 0 0 10px 0 !important;
    border-bottom: 2px solid #2563eb !important;
    display: flex !important;
    align-items: center;
    gap: 8px;
    background: none !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    line-height: 1.3 !important;
    align-self: stretch;
    box-sizing: border-box;
}
.gaesa-mega-col-title img {
    width: 26px !important;
    height: 26px !important;
    object-fit: contain;
    border-radius: 5px;
    background: #eff3ff;
    padding: 3px;
}
.gaesa-mega-col-title a,
.gaesa-mega-col-title a:visited {
    color: #0f172a !important;
    text-decoration: none !important;
    background: none !important;
    padding: 0 !important;
    text-transform: uppercase !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    letter-spacing: 0.5px !important;
    transition: color 0.15s;
}
.gaesa-mega-col-title a:hover {
    color: #2563eb !important;
}

/* Lista de hijos — reset agresivo del theme padre */
.gaesa-mega-children {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    position: static !important;
    max-height: none !important;
    overflow: visible !important;
    clip: auto !important;
    width: auto !important;
    left: auto !important;
    top: auto !important;
    box-shadow: none !important;
    border: none !important;
    background: transparent !important;
}
.gaesa-mega-children li {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    float: none !important;
    display: block !important;
    background: none !important;
    border: none !important;
    width: auto !important;
}
.header-wrapper .gaesa-mega-children li a,
.header-wrapper .gaesa-mega-children li a:visited,
.header-wrapper .menu li ul.gaesa-mega-children li a,
.gaesa-megamenu .gaesa-mega-children li a,
.gaesa-megamenu .gaesa-mega-children li a:visited {
    display: block !important;
    /* el theme padre les fija un ancho propio: sin esto el texto largo no
       wrapea y se monta sobre la columna de al lado */
    width: auto !important;
    padding: 5px 8px !important;
    margin: 0 -8px !important;
    font-family: 'Nunito', sans-serif !important;
    font-size: 13.5px !important;
    font-weight: 400 !important;
    color: #475569 !important;
    text-decoration: none !important;
    text-transform: capitalize !important;
    line-height: 1.4 !important;
    background: none !important;
    border-radius: 5px;
    transition: background 0.15s, color 0.15s, padding-left 0.15s;
    letter-spacing: 0 !important;
    font-style: italic !important;
}
.header-wrapper .gaesa-mega-children li a:hover,
.header-wrapper .menu li ul.gaesa-mega-children li a:hover,
.gaesa-megamenu .gaesa-mega-children li a:hover {
    color: #0f172a !important;
    background: #f1f5f9 !important;
    padding-left: 12px !important;
}
.gaesa-mega-children .gaesa-mega-count {
    font-size: 11px !important;
    color: #94a3b8 !important;
    margin-left: 3px;
    font-weight: 400 !important;
}

/* === NAV BAR: todos los items como botones (solo desktop) === */
@media (min-width: 993px) {
    #site-navigation .acmethemes-nav > ul,
    .main-navigation .acmethemes-nav > ul {
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        float: none !important;
        height: 54px;
    }
    #site-navigation .acmethemes-nav > ul > li,
    .main-navigation .acmethemes-nav > ul > li {
        float: none !important;
        display: flex !important;
        align-items: center !important;
        height: 100%;
    }
}
/* Quitar gap y linea entre nav y slider */
.header-wrapper.clearfix {
    padding: 8px 0 0 0 !important;
}
/* Compactar logo */
.header-wrapper .site-logo img,
.header-wrapper .custom-logo {
    max-height: 60px !important;
    width: auto !important;
}
/* Compactar zona buscador + carrito */
.header-wrapper .center-wrapper-mx-width,
.header-wrapper .center-wrapper {
    padding-top: 0 !important;
}
/* Compactar top bar */
.top-header-wrapper .wrapper {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
}
#site-navigation,
.main-navigation {
    border-bottom: none !important;
    box-shadow: none !important;
}

#site-navigation .acmethemes-nav > ul > li > a,
.main-navigation .acmethemes-nav > ul > li > a {
    display: flex !important;
    align-items: center !important;
    height: 100% !important;
    padding: 0 18px !important;
    transition: background 0.2s ease !important;
    border-radius: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    font-size: 13.5px !important;
}

/* Hover y active: oscurecimiento full-height */
#site-navigation .acmethemes-nav > ul > li:hover > a,
.main-navigation .acmethemes-nav > ul > li:hover > a {
    background: rgba(0,0,0,0.2) !important;
}
#site-navigation .acmethemes-nav > ul > li.current-menu-item > a,
.main-navigation .acmethemes-nav > ul > li.current-menu-item > a {
    background: rgba(0,0,0,0.25) !important;
}

/* === INICIO: icono casita (Font Awesome) === */
.menu-item-home > a {
    font-size: 0 !important;
    justify-content: center;
    padding: 0 22px !important;
}
.menu-item-home > a::before {
    font-family: 'FontAwesome' !important;
    content: "\f015";
    font-size: 18px !important;
    line-height: 1;
    font-weight: 400;
}

/* === Trigger megamenu: hereda estilos del menú normal === */
.gaesa-mega-trigger > a::after {
    content: "\25BE";
    font-size: 9px;
    opacity: 0.7;
    margin-left: 5px;
    transition: transform 0.2s;
}
.gaesa-mega-trigger:hover > a::after {
    transform: rotate(180deg);
    opacity: 1;
}

/* Scrollbar personalizado */
.gaesa-megamenu::-webkit-scrollbar {
    width: 6px;
}
.gaesa-megamenu::-webkit-scrollbar-track {
    background: #f1f5f9;
}
.gaesa-megamenu::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 3px;
}

/* Responsive */
@media (max-width: 1200px) {
    /* auto-fit: se acomodan las columnas que entren y las vacías se colapsan,
       sin dejar huecos cuando hay menos líneas con productos */
    .gaesa-mega-grid {
        grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
    }
}
@media (max-width: 768px) {
    .gaesa-megamenu {
        position: static !important;
        max-height: none;
        box-shadow: none !important;
        background: #f8fafc !important;
        animation: none;
    }
    .gaesa-mega-grid {
        grid-template-columns: 1fr 1fr !important;
        padding: 20px 15px !important;
        gap: 0;
    }
    .gaesa-mega-col {
        padding: 10px;
        border-right: none;
        border-bottom: 1px solid #e8ecf1;
    }
}
@media (max-width: 480px) {
    .gaesa-mega-grid {
        grid-template-columns: 1fr !important;
    }
}


/* ==========================================================
   Slider full-width
   (era gaesa_fullwidth_slider_css(), inline en wp_head)
   ========================================================== */

/* Slider fullwidth container */
.gaesa-fullwidth-slider {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    line-height: 0;
}
.gaesa-fullwidth-slider .metaslider,
.gaesa-fullwidth-slider .flexslider,
.gaesa-fullwidth-slider .flexslider .slides img {
    width: 100% !important;
    max-width: 100% !important;
}
.gaesa-fullwidth-slider .flexslider {
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Ocultar el MetaSlider duplicado dentro del widget area */
#content #text-5,
#content .widget_text #metaslider-id-325 {
    display: none !important;
}


/* ==========================================================
   Sistema tipografico + overrides globales
   (era gaesa_custom_fonts_css(), inline en wp_head)
   ========================================================== */

/* ============================================
   GAESA TYPOGRAPHY SYSTEM
   Oswald  → Títulos de sección (display)
   Inter   → Headings, nav, UI, botones
   Nunito  → Body text, párrafos, forms
   ============================================ */

/* --- BASE: Nunito para todo el body --- */
body,
p,
li,
td, th,
.entry-content,
.entry-content p,
.woocommerce-product-details__short-description,
.woocommerce div.product .product_title ~ div,
.comment-content,
.textwidget,
.textwidget p,
input, textarea, select,
.woocommerce table.shop_table,
.woocommerce table.shop_table td,
.woocommerce table.shop_table th,
.woocommerce .cart-collaterals,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-tabs .panel p,
.at-above-header,
.site-info {
    font-family: 'Nunito', sans-serif !important;
}

body {
    font-size: 15px !important;
    line-height: 1.7 !important;
    color: #2d2d2d !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}

p {
    font-size: 15px !important;
    line-height: 1.75 !important;
    margin-bottom: 1em !important;
}

/* --- DISPLAY: Oswald para títulos de sección grandes --- */
.widget-title,
.page-header .page-title,
.slide-title,
.comments-title,
.comment-reply-title {
    font-family: 'Oswald', sans-serif !important;
    font-weight: 500 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
}

.widget-title {
    font-size: 22px !important;
    line-height: 1.3 !important;
}

.page-header .page-title {
    font-size: 28px !important;
}

/* --- HEADINGS: Inter con pesos fuertes --- */
h1, h1 a,
h2, h2 a,
h3, h3 a,
h4, h4 a,
h5, h5 a,
h6, h6 a {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.01em !important;
}

h1, h1 a { font-size: 32px !important; }
h2, h2 a { font-size: 26px !important; }
h3, h3 a { font-size: 20px !important; font-weight: 600 !important; }
h4, h4 a { font-size: 17px !important; font-weight: 600 !important; }
h5, h5 a { font-size: 15px !important; font-weight: 600 !important; }
h6, h6 a { font-size: 13px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.05em !important; }

/* --- SITE TITLE --- */
.site-title, .site-title a {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    letter-spacing: -0.02em !important;
}

/* --- NAVEGACION (excluir megamenu children) --- */
.main-navigation > div > ul > li,
.main-navigation > div > ul > li > a,
.slicknav_nav li a {
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    font-size: 13px !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
}

/* --- PRODUCTOS --- */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.woocommerce div.product .product_title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 28px !important;
    line-height: 1.2 !important;
    letter-spacing: -0.01em !important;
}

/* --- PRECIOS --- */
.woocommerce .price,
.woocommerce .price .woocommerce-Price-amount,
.woocommerce ul.products li.product .price {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 17px !important;
    letter-spacing: -0.02em !important;
}

.woocommerce div.product .price .woocommerce-Price-amount {
    font-size: 24px !important;
}

/* --- BOTONES --- */
.button, .btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
button[type="submit"],
.comment-form .form-submit input,
.read-more,
.add_to_cart_button {
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    letter-spacing: 0.3px !important;
    text-transform: none !important;
}

/* --- BREADCRUMBS --- */
.woocommerce .woocommerce-breadcrumb {
    font-family: 'Nunito', sans-serif !important;
    font-weight: 400 !important;
    font-size: 13px !important;
    letter-spacing: 0 !important;
}

/* --- TOP BAR --- */
.top-header-wrapper {
    background: #d6e4f7 !important;
    border-bottom: 1px solid #c0d4ec !important;
}
.at-above-header,
.at-above-header a,
.at-above-header span {
    font-family: 'Nunito', sans-serif !important;
    font-size: 12.5px !important;
    font-weight: 400 !important;
}

/* --- FEATURES BAR (delivery, tarjetas, etc) --- */
.at-features-section h3,
.online-shop-feature-section h3 {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
    line-height: 1.4 !important;
}

.at-features-section .at-feature-text,
.online-shop-feature-section span,
.at-features-section span {
    font-family: 'Nunito', sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
}

/* --- CARRUSEL: nombres de categoría/línea --- */
.gaesa-cat-nombre,
.gaesa-linea-nombre {
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 13px !important;
}

/* .gaesa-linea-count ya no se renderiza: las fichas de linea no muestran
   cantidad de productos. Queda solo el contador del carrusel. */
.gaesa-cat-count {
    font-family: 'Nunito', sans-serif !important;
    font-weight: 400 !important;
}

/* --- FOOTER --- */
.site-footer,
.site-footer p,
.site-footer li,
.site-footer a,
.site-footer span {
    font-family: 'Nunito', sans-serif !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
}

.site-footer h3,
.site-footer .widget-title {
    font-family: 'Oswald', sans-serif !important;
    font-weight: 500 !important;
    font-size: 18px !important;
    letter-spacing: 1px !important;
}

/* --- BLOG / NOTICIAS --- */
.entry-title, .entry-title a {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
}

.entry-meta, .entry-meta a,
.cat-links, .cat-links a,
.tags-links, .tags-links a {
    font-family: 'Nunito', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
}

/* --- CHECKOUT / CART --- */
.woocommerce-cart .cart-collaterals h2,
.woocommerce-checkout h3 {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
}

/* --- FORMS --- */
input, textarea, select {
    font-size: 14px !important;
    line-height: 1.5 !important;
}

/* --- MEGAMENU TYPOGRAPHY --- */
.gaesa-mega-col-title,
.gaesa-mega-col-title a {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.gaesa-mega-children li a {
    font-family: 'Nunito', sans-serif !important;
    font-weight: 400 !important;
}

/* ============================================
   CTA BANNERS (Equipamiento / Distribuidor)
   ============================================ */
.widget_online_shop_featured_page {
    padding: 0 !important;
    margin-top: 40px !important;
    margin-bottom: 40px !important;
}
.widget_online_shop_featured_page .featured-entries-col {
    display: flex !important;
    gap: 4px;
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
.widget_online_shop_featured_page .feature-promo {
    flex: 1;
    width: 50% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden;
}
.widget_online_shop_featured_page .single-unit {
    height: 360px !important;
    display: flex !important;
    align-items: flex-end !important;
    position: relative;
    background-size: cover !important;
    background-position: center !important;
    transition: transform 0.4s ease;
}
.widget_online_shop_featured_page .feature-promo:hover .single-unit {
    transform: scale(1.03);
}
/* Gradient overlay oscuro */
.widget_online_shop_featured_page .single-unit::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(0,0,0,0.85) 0%,
        rgba(0,0,0,0.4) 50%,
        rgba(0,0,0,0.1) 100%
    );
    z-index: 1;
    transition: background 0.3s;
}
.widget_online_shop_featured_page .feature-promo:hover .single-unit::before {
    background: linear-gradient(
        to top,
        rgba(15,23,42,0.9) 0%,
        rgba(15,23,42,0.45) 50%,
        rgba(0,0,0,0.1) 100%
    );
}
.widget_online_shop_featured_page .page-details {
    position: relative;
    z-index: 2;
    padding: 36px 40px !important;
    width: 100%;
    top: auto !important;
    bottom: auto !important;
}
.widget_online_shop_featured_page .title {
    font-family: 'Oswald', sans-serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    color: rgba(255,255,255,0.7) !important;
    text-transform: uppercase !important;
    letter-spacing: 2px !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    line-height: 1.2 !important;
}
.widget_online_shop_featured_page .details,
.widget_online_shop_featured_page .details p {
    font-family: 'Inter', sans-serif !important;
    font-size: 26px !important;
    font-weight: 800 !important;
    color: #fff !important;
    line-height: 1.15 !important;
    margin: 0 0 16px !important;
    letter-spacing: -0.02em !important;
}
.widget_online_shop_featured_page .slider-buttons {
    margin: 0 !important;
}
.widget_online_shop_featured_page .slider-button,
.widget_online_shop_featured_page .slider-button:visited {
    font-family: 'Inter', sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    background: #fff !important;
    padding: 10px 22px !important;
    border-radius: 6px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    text-decoration: none !important;
    display: inline-block !important;
    transition: all 0.2s !important;
    border: none !important;
}
.widget_online_shop_featured_page .slider-button:hover {
    background: #f0f4ff !important;
    color: #0929e8 !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

@media (max-width: 768px) {
    .widget_online_shop_featured_page .featured-entries-col {
        flex-direction: column;
    }
    .widget_online_shop_featured_page .feature-promo {
        width: 100% !important;
    }
    .widget_online_shop_featured_page .single-unit {
        height: 220px !important;
    }
    .widget_online_shop_featured_page .details,
    .widget_online_shop_featured_page .details p {
        font-size: 22px !important;
    }
}

/* ============================================
   NUESTRAS MARCAS
   ============================================ */
.widget_brands_list .at-title-action-wrapper {
    border: none !important;
    background: none !important;
}
.widget_brands_list .widget-title {
    text-align: center !important;
    border: none !important;
    background: none !important;
    letter-spacing: 1px !important;
}
.widget_brands_list .widget-title::after,
.widget_brands_list .widget-title::before,
.widget_brands_list .at-title-action-wrapper::after {
    display: none !important;
}
.widget_brands_list .slick-slide {
    padding: 10px 20px !important;
}
.widget_brands_list .slick-slide img {
    filter: none !important;
    max-width: 150px !important;
    height: auto !important;
    margin: 0 auto;
}

/* ============================================
   FEATURES BAR (Delivery, Tarjetas, Asistencia)
   ============================================ */
.widget_online_shop_about {
    background: #f0f4ff !important;
    border-bottom: 1px solid #dbe4f0 !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100vw !important;
    margin-left: calc(-50vw + 50%) !important;
}
.widget_online_shop_about .featured-entries-col {
    display: flex !important;
    justify-content: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 20px;
}
.widget_online_shop_about .single-list {
    flex: 1;
    padding: 18px 28px !important;
    position: relative;
}
.widget_online_shop_about .single-list + .single-list {
    border-left: 1px solid #dbe4f0;
}
.widget_online_shop_about .single-item {
    display: flex !important;
    align-items: center;
    gap: 18px;
}
.widget_online_shop_about .icon {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px;
    background: #0f172a !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(15,23,42,0.2);
}
.widget_online_shop_about .icon i {
    font-size: 20px !important;
    color: #fff !important;
}
.widget_online_shop_about .content {
    padding-left: 4px !important;
}
.widget_online_shop_about .title {
    font-family: 'Inter', sans-serif !important;
    font-size: 14.5px !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    text-transform: none !important;
    margin: 0 0 3px !important;
    padding: 0 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
}
.widget_online_shop_about .details,
.widget_online_shop_about .details p {
    font-family: 'Nunito', sans-serif !important;
    font-size: 12.5px !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

@media (max-width: 768px) {
    .widget_online_shop_about .featured-entries-col {
        flex-direction: column;
        gap: 0;
    }
    .widget_online_shop_about .single-list + .single-list {
        border-left: none;
        border-top: 1px solid #dbe4f0;
    }
}

/* ============================================
   MOBILE: Header custom + optimizaciones
   ============================================ */

/* Header mobile custom (inyectado por PHP) - oculto en desktop */
.gaesa-mobile-header { display: none; }

@media (max-width: 768px) {
    /* Ocultar TODA la cabecera del parent theme */
    #masthead .top-header-wrapper,
    #masthead .header-wrapper,
    #site-navigation {
        display: none !important;
    }

    /* Mostrar header mobile custom */
    .gaesa-mobile-header {
        display: block !important;
        background: #fff;
        position: sticky;
        top: 0;
        z-index: 9998;
        box-shadow: 0 2px 10px rgba(0,0,0,0.08);
    }

    /* Fila 1: logo + buscador + carrito + hamburguesa */
    .gaesa-mh-row {
        display: flex;
        align-items: center;
        padding: 8px 12px;
        gap: 8px;
    }
    .gaesa-mh-logo img {
        height: 36px;
        width: auto;
    }
    .gaesa-mh-search {
        flex: 1;
        position: relative;
    }
    .gaesa-mh-search input {
        width: 100%;
        height: 36px;
        border: 1px solid #dbe4f0;
        border-radius: 8px;
        padding: 0 12px;
        font-family: 'Nunito', sans-serif;
        font-size: 13px;
        background: #f8fafc;
        outline: none;
        -webkit-appearance: none;
    }
    .gaesa-mh-search input:focus {
        border-color: #0929e8;
        background: #fff;
    }
    .gaesa-mh-cart {
        position: relative;
        color: #0f172a;
        text-decoration: none;
        font-size: 20px;
        padding: 4px;
    }
    .gaesa-mh-cart-count {
        position: absolute;
        top: -4px;
        right: -6px;
        background: #0929e8;
        color: #fff;
        font-size: 9px;
        font-weight: 700;
        width: 16px;
        height: 16px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: 'Inter', sans-serif;
    }
    .gaesa-mh-toggle {
        background: none;
        border: none;
        font-size: 22px;
        color: #0f172a;
        padding: 4px 2px;
        cursor: pointer;
        line-height: 1;
    }

    /* Menu desplegable mobile */
    .gaesa-mh-menu {
        display: none;
        background: #0929e8;
        padding: 0;
        max-height: 70vh;
        overflow-y: auto;
    }
    .gaesa-mh-menu.active {
        display: block;
    }
    .gaesa-mh-menu ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }
    .gaesa-mh-menu li {
        border-bottom: 1px solid rgba(255,255,255,0.1);
    }
    .gaesa-mh-menu li a {
        display: block;
        padding: 14px 20px;
        color: #fff;
        text-decoration: none;
        font-family: 'Inter', sans-serif;
        font-size: 14px;
        font-weight: 500;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    .gaesa-mh-menu li a:hover,
    .gaesa-mh-menu li a:active {
        background: rgba(255,255,255,0.1);
    }
    .gaesa-mh-menu li.gaesa-mh-highlight a {
        background: rgba(255,255,255,0.15);
        font-weight: 700;
    }
    .gaesa-mh-menu li .fa {
        margin-right: 8px;
        width: 16px;
        text-align: center;
    }

    /* Ocultar megamenu en mobile */
    .gaesa-mega-trigger { display: none !important; }
    .gaesa-megamenu { display: none !important; }

    /* --- Paneles modal Categorias/Lineas mobile --- */
    .gaesa-mob-panel {
        display: none;
        position: fixed;
        top: 0;
        right: -100%;
        width: 85%;
        max-width: 320px;
        height: 100vh;
        background: #fff;
        z-index: 99999;
        box-shadow: -4px 0 20px rgba(0,0,0,0.2);
        transition: right 0.3s ease;
        overflow-y: auto;
    }
    .gaesa-mob-panel.active {
        display: block;
        right: 0;
    }
    .gaesa-mob-panel-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 16px 20px;
        background: #0929e8;
        color: #fff;
        font-family: 'Inter', sans-serif;
        font-size: 16px;
        font-weight: 700;
        letter-spacing: 0.5px;
        position: sticky;
        top: 0;
        z-index: 1;
    }
    .gaesa-mob-panel-header button {
        background: none;
        border: none;
        color: #fff;
        font-size: 28px;
        cursor: pointer;
        line-height: 1;
        padding: 0 4px;
    }
    .gaesa-mob-panel-body {
        padding: 12px 0;
    }
    .gaesa-mob-cat-group {
        border-bottom: 1px solid #f1f5f9;
    }
    a.gaesa-mob-cat-title {
        display: block;
        padding: 12px 20px;
        font-family: 'Inter', sans-serif;
        font-size: 14px;
        font-weight: 700;
        color: #0f172a;
        text-decoration: none;
        text-transform: capitalize;
    }
    a.gaesa-mob-cat-title span {
        color: #94a3b8;
        font-weight: 400;
        font-size: 12px;
    }
    a.gaesa-mob-cat-title:active {
        background: #f8fafc;
    }
    .gaesa-mob-cat-children {
        padding: 0 0 8px 0;
    }
    .gaesa-mob-cat-children a {
        display: block;
        padding: 8px 20px 8px 36px;
        font-family: 'Nunito', sans-serif;
        font-size: 13px;
        font-style: italic;
        color: #475569;
        text-decoration: none;
        text-transform: capitalize;
    }
    .gaesa-mob-cat-children a span {
        color: #94a3b8;
        font-size: 11px;
    }
    .gaesa-mob-cat-children a:active {
        background: #f1f5f9;
        color: #0f172a;
    }

    /* --- SLIDER --- */
    .gaesa-fullwidth-slider { margin: 0 !important; }

    /* --- FEATURES BAR compacta --- */
    .widget_online_shop_about { margin: 0 !important; }
    .widget_online_shop_about .featured-entries-col {
        padding: 10px 15px !important; gap: 0 !important;
    }
    .widget_online_shop_about .single-list { padding: 8px 0 !important; }
    .widget_online_shop_about .single-item { gap: 12px !important; }
    .widget_online_shop_about .icon {
        width: 36px !important; height: 36px !important; min-width: 36px !important; border-radius: 8px !important;
    }
    .widget_online_shop_about .icon i { font-size: 15px !important; }
    .widget_online_shop_about .title { font-size: 12px !important; }
    .widget_online_shop_about .details,
    .widget_online_shop_about .details p { font-size: 11px !important; }

    /* --- WIDGET TITLES --- */
    .widget-title { font-size: 18px !important; letter-spacing: 1px !important; }

    /* --- LINEAS --- */
    .gaesa-linea-item img,
    .gaesa-linea-item .gaesa-linea-img { height: 92px !important; padding: 10px !important; }
    .gaesa-linea-nombre { font-size: 12px !important; padding: 10px 11px !important; }

    /* --- PRODUCTOS ---
       La ficha de producto (grilla, imagen, título, precio, botón) vive
       ahora en gaesa_product_cards_css(), que incluye su propio breakpoint
       móvil. No duplicar reglas acá: se pisan entre sí. */

    /* --- CTA BANNERS --- */
    .widget_online_shop_featured_page { margin-top: 15px !important; margin-bottom: 15px !important; }
    .widget_online_shop_featured_page .single-unit { height: 200px !important; }
    .widget_online_shop_featured_page .page-details { padding: 20px 24px !important; }
    .widget_online_shop_featured_page .details,
    .widget_online_shop_featured_page .details p { font-size: 20px !important; }
    .widget_online_shop_featured_page .slider-button { font-size: 10px !important; padding: 8px 16px !important; }

    /* --- MARCAS --- */
    .widget_brands_list .slick-slide img { max-width: 100px !important; }

    /* --- GENERAL --- */
    .widget { margin-top: 12px !important; margin-bottom: 12px !important; }
    #content.wrapper { padding: 0 10px !important; }
    h1, h1 a { font-size: 24px !important; }
    h2, h2 a { font-size: 20px !important; }
    h3, h3 a { font-size: 17px !important; }
    .site-footer .widget { margin-bottom: 10px !important; }
    .site-footer h3, .site-footer .widget-title { font-size: 15px !important; }
}


/* ==========================================================
   Ficha de producto, lineas y medios de pago
   (era gaesa_product_cards_css(), inline en wp_head)
   ========================================================== */

:root {
    --gsa-blue: #0929e8;
    --gsa-blue-deep: #0a1a8c;
    --gsa-line: #e3e8f2;
    --gsa-well: #f4f7fc;
    --gsa-ink: #1e2536;
    --gsa-muted: #6b7688;
    --gsa-radius: 14px;
}

/* --- GRILLA ---
   auto-fill (y no auto-fit) a proposito: los tracks vacios NO colapsan, asi
   la ficha mide siempre lo mismo — ~285px en desktop — sin importar si la
   categoria trae 3 productos o 30. Con auto-fit, una fila de 3 estiraba las
   fichas a 390px y quedaban desproporcionadas contra el resto del sitio. */
ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(228px, 1fr)) !important;
    justify-content: start !important;
    gap: 24px !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    list-style: none !important;
}
ul.products::before,
ul.products::after { content: none !important; display: none !important; }

/* El widget del home arma una <ul> por producto, asi que la grilla va en el
   contenedor. El selector por atributo tolera tanto la clase sana como la
   escapada ("featured-entries-col), y :not() evita romper el carousel. */
.widget_online_shop_wc_products [class*="featured-entries-col"]:not([class*="carausel"]) {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(228px, 1fr)) !important;
    justify-content: start !important;
    gap: 24px !important;
}
.widget_online_shop_wc_products .single-list {
    width: auto !important; float: none !important;
    margin: 0 !important; padding: 0 !important;
}
.widget_online_shop_wc_products ul.products {
    display: block !important; margin: 0 !important; gap: 0 !important;
}

/* --- FICHA --- */
ul.products li.product {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    float: none !important;
    clear: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    border: 1px solid var(--gsa-line) !important;
    border-radius: var(--gsa-radius) !important;
    overflow: hidden !important;
    text-align: left !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
ul.products li.product:hover {
    transform: translateY(-3px);
    border-color: #bcc9f7 !important;
    box-shadow: 0 14px 28px -16px rgba(9, 41, 232, .45) !important;
}
ul.products li.product > a.woocommerce-LoopProduct-link {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    text-decoration: none !important;
}

/* --- BANDEJA DE IMAGEN --- */
ul.products li.product img {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: contain !important;
    background: var(--gsa-well) !important;
    border-bottom: 1px solid var(--gsa-line) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 16px !important;
    margin: 0 !important;
    transition: background .18s ease;
}
ul.products li.product:hover img { background: #fff !important; }

/* --- TITULO ---
   margin-bottom:auto hace que el titulo se coma el espacio libre de la
   ficha: precio, cantidad y boton quedan anclados al piso y alineados
   entre si en toda la fila, sin importar si el nombre ocupa 1 o 3 lineas.
   El clamp a 3 lineas evita que un nombre muy largo desbalancee la fila. */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2 {
    font-family: 'Inter', sans-serif !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: var(--gsa-ink) !important;
    margin: 0 0 auto !important;
    padding: 14px 16px 0 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* --- PRECIO --- */
ul.products li.product .price {
    display: block !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    letter-spacing: -.02em !important;
    color: var(--gsa-blue) !important;
    margin: 0 !important;
    padding: 10px 16px 0 !important;
}
ul.products li.product .price del {
    font-size: 13px !important; font-weight: 500 !important;
    color: var(--gsa-muted) !important; opacity: 1 !important;
}
ul.products li.product .price ins { text-decoration: none !important; background: none !important; }

/* --- CANTIDAD + BOTON (anclados al piso por el margin-bottom:auto del titulo) --- */
ul.products li.product .quantity {
    display: block !important;
    float: none !important;
    margin: 0 !important;
    padding: 12px 16px 0 !important;
}
ul.products li.product .quantity input.qty {
    width: 76px !important;
    height: 38px !important;
    padding: 0 6px !important;
    border: 1px solid var(--gsa-line) !important;
    border-radius: 9px !important;
    background: #fff !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--gsa-ink) !important;
    text-align: center !important;
}
ul.products li.product .quantity input.qty:focus {
    outline: none !important;
    border-color: var(--gsa-blue) !important;
    box-shadow: 0 0 0 3px rgba(9, 41, 232, .15) !important;
}
ul.products li.product a.button,
ul.products li.product .add_to_cart_button {
    display: block !important;
    width: auto !important;
    margin: 12px 16px 16px !important;
    padding: 11px 14px !important;
    background: var(--gsa-blue) !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 10px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: .2px !important;
    line-height: 1.3 !important;
    text-align: center !important;
    text-transform: none !important;
    transition: background .18s ease;
}
ul.products li.product a.button:hover,
ul.products li.product .add_to_cart_button:hover { background: var(--gsa-blue-deep) !important; }
ul.products li.product a.added_to_cart {
    display: block !important;
    margin: 0 16px 16px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    color: var(--gsa-blue) !important;
    text-align: center !important;
}
ul.products li.product a.button:focus-visible,
ul.products li.product .quantity input.qty:focus-visible,
ul.products li.product > a.woocommerce-LoopProduct-link:focus-visible {
    outline: 2px solid var(--gsa-blue-deep) !important;
    outline-offset: 2px !important;
}

/* --- ESTADOS --- */
ul.products li.product .onsale {
    position: absolute !important;
    top: 12px !important; right: 12px !important; left: auto !important;
    margin: 0 !important;
    min-width: 0 !important; min-height: 0 !important;
    padding: 5px 10px !important;
    border-radius: 999px !important;
    background: #0f9d58 !important;
    color: #fff !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: .3px !important;
    z-index: 2 !important;
}
ul.products li.product .stock.out-of-stock {
    margin: 0 !important;
    padding: 10px 16px 14px !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    color: #c02626 !important;
}

/* --- TARJETAS DE CATEGORIA (misma grilla) --- */
ul.products li.product-category {
    margin: 0 !important; padding: 0 !important;
    width: auto !important; float: none !important;
    background: #fff !important;
    border: 1px solid var(--gsa-line) !important;
    border-radius: var(--gsa-radius) !important;
    overflow: hidden !important;
}
ul.products li.product-category img {
    width: 100% !important; height: auto !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: contain !important;
    background: var(--gsa-well) !important;
    border-bottom: 1px solid var(--gsa-line) !important;
    padding: 16px !important; margin: 0 !important;
}
ul.products li.product-category .woocommerce-loop-category__title {
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--gsa-ink) !important;
    margin: 0 !important;
    padding: 14px 16px !important;
}

/* --- TITULO DE SECCION (relacionados / upsells) ---
   Mismo lenguaje que "NUESTROS PRODUCTOS" del home. */
.related.products > h2,
.upsells.products > h2 {
    font-family: 'Oswald', sans-serif !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    letter-spacing: 1.5px !important;
    text-transform: uppercase !important;
    color: var(--gsa-blue-deep) !important;
    margin: 0 0 18px !important;
}

/* --- MEDIOS DE PAGO (footer) ---
   Los logos vienen con fondos propios (AMEX azul, Panal verde, CABAL
   oscuro) y a distintas proporciones. Cada uno va en una placa blanca de
   alto fijo para que la fila lea pareja sobre el azul del footer. */
.footer-columns > .footer-sidebar:only-child {
    width: 100% !important;
    float: none !important;
}
.widget_online_shop_advanced_image_logo [class*="featured-entries-col"]:not([class*="carausel"]) {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(88px, 104px)) !important;
    justify-content: center !important;
    gap: 14px !important;
}
.widget_online_shop_advanced_image_logo .single-list {
    width: auto !important; float: none !important;
    margin: 0 !important; padding: 0 !important;
}
.widget_online_shop_advanced_image_logo .single-item {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 72px !important;
    padding: 6px 10px !important;
    background: #fff !important;
    border-radius: 10px !important;
    box-shadow: 0 2px 8px -4px rgba(0, 0, 0, .35) !important;
}
.widget_online_shop_advanced_image_logo .single-item img {
    width: auto !important; height: auto !important;
    max-width: 100% !important; max-height: 100% !important;
    object-fit: contain !important;
    margin: 0 !important;
    display: block !important;
}

@media (prefers-reduced-motion: reduce) {
    ul.products li.product,
    ul.products li.product img,
    ul.products li.product a.button { transition: none !important; }
    ul.products li.product:hover { transform: none !important; }
}

@media (max-width: 767px) {
    /* La barra de features es full-bleed (100vw) pero cuelga de un wrapper
       con padding, asi que arrancaba corrida 20px y el home scrolleaba en
       horizontal. calc(50% - 50vw) la centra contra el viewport sin
       depender del padding del contenedor. */
    .widget_online_shop_about {
        max-width: 100vw !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
    }

    /* Las flechas del carousel de marcas cuelgan en right:-25px y se salian
       del viewport. Adentro del contenedor no sobra ancho para colgarlas. */
    .widget_brands_list .slick-next { right: 0 !important; }
    .widget_brands_list .slick-prev { left: 0 !important; }

    ul.products,
    .widget_online_shop_wc_products [class*="featured-entries-col"]:not([class*="carausel"]) {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
    ul.products li.product img,
    ul.products li.product-category img { padding: 10px !important; }
    ul.products li.product .woocommerce-loop-product__title,
    ul.products li.product h2 {
        font-size: 12px !important;
        padding: 10px 11px 0 !important;
    }
    ul.products li.product .price { font-size: 15px !important; padding: 8px 11px 0 !important; }
    ul.products li.product .quantity { display: none !important; }
    ul.products li.product a.button,
    ul.products li.product .add_to_cart_button {
        margin: 10px 11px 12px !important;
        padding: 9px 8px !important;
        font-size: 11.5px !important;
    }
    .widget_online_shop_advanced_image_logo [class*="featured-entries-col"]:not([class*="carausel"]) {
        grid-template-columns: repeat(auto-fit, minmax(84px, 1fr)) !important;
        gap: 8px !important;
    }
    .widget_online_shop_advanced_image_logo .single-item { height: 56px !important; padding: 5px 8px !important; }
}


/* ==========================================================
   Bloque "Lineas de Productos"
   (era inline en el shortcode [lineas_iconos])
   ========================================================== */

/* Misma ficha que los productos (borde, radio, bandeja de imagen, hover)
   pero mas baja: son accesos a la categoria, no articulos. Los tokens
   --gsa-* se definen en assets/css/gaesa.css. */
.gaesa-lineas-grid {
    display: grid;
    /* La cantidad de columnas la fija cada instancia via --gaesa-linea-cols. */
    grid-template-columns: repeat(var(--gaesa-linea-cols, 5), 1fr);
    gap: 16px;
    padding: 4px 0 8px;
}
@media (max-width: 768px) {
    .gaesa-lineas-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
}

/* --- Modo carrusel (solo cuando hay mas lineas que columnas) ---
   Antes de que slick arranque —o si nunca carga— el contenedor se ve como
   la misma grilla. Nunca queda un bloque invisible por un JS que falto. */
.gaesa-lineas-carousel {
    display: grid;
    grid-template-columns: repeat(var(--gaesa-linea-cols, 5), 1fr);
    gap: 16px;
    padding: 4px 0 8px;
}
@media (max-width: 768px) {
    .gaesa-lineas-carousel:not(.slick-initialized) {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
}
.gaesa-lineas-carousel.slick-initialized {
    display: block;
    gap: 0;
}
.gaesa-lineas-carousel .slick-track {
    display: flex !important;
    align-items: stretch;
}
.gaesa-lineas-carousel .slick-slide {
    height: auto !important;
    padding: 0 8px;
}
.gaesa-lineas-carousel .slick-list { margin: 0 -8px; }
.gaesa-lineas-carousel .slick-prev,
.gaesa-lineas-carousel .slick-next {
    z-index: 2;
    width: 34px;
    height: 34px;
    background: #fff;
    border: 1px solid var(--gsa-line, #e3e8f2);
    border-radius: 50%;
    box-shadow: 0 4px 12px -6px rgba(0, 0, 0, .4);
}
.gaesa-lineas-carousel .slick-prev { left: -14px; }
.gaesa-lineas-carousel .slick-next { right: -14px; }
.gaesa-lineas-carousel .slick-prev:before,
.gaesa-lineas-carousel .slick-next:before {
    font-size: 20px;
    color: var(--gsa-blue, #0929e8);
    opacity: 1;
}
.gaesa-linea-item {
    background: #fff;
    border: 1px solid var(--gsa-line, #e3e8f2);
    border-radius: 14px;
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.gaesa-linea-item:hover {
    transform: translateY(-3px);
    border-color: #bcc9f7;
    box-shadow: 0 14px 28px -16px rgba(9, 41, 232, .45);
}
/* El <a> ocupa toda la ficha para que el nombre rellene el alto sobrante
   y las tarjetas de la fila queden parejas sin altura fija. */
.gaesa-linea-item a {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.gaesa-linea-item img,
.gaesa-linea-item .gaesa-linea-img {
    box-sizing: border-box;
    width: 100%;
    height: 118px;
    max-width: 100%;
    object-fit: contain;
    display: block;
    margin: 0;
    padding: 14px;
    background: var(--gsa-well, #f4f7fc);
    border-bottom: 1px solid var(--gsa-line, #e3e8f2);
    border-radius: 0;
    transition: background .18s ease;
}
.gaesa-linea-item:hover img,
.gaesa-linea-item:hover .gaesa-linea-img { background: #fff; }
.gaesa-linea-nombre {
    flex: 1 1 auto;
    font-family: 'Inter', sans-serif;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0;
    color: var(--gsa-ink, #1e2536);
    margin: 0;
    padding: 12px 14px;
}
@media (prefers-reduced-motion: reduce) {
    .gaesa-linea-item,
    .gaesa-linea-item img,
    .gaesa-linea-item .gaesa-linea-img { transition: none; }
    .gaesa-linea-item:hover { transform: none; }
}
