/* ============================================================
   TAB Filter Grid Pro — Frontend CSS (Toldos Serrano) v2.2.0
   Negro: #1A1A1A | Blanco: #F9F9F9
   ============================================================ */

.tabfgp-shell {
    --tabfgp-negro:  #1A1A1A;
    --tabfgp-blanco: #F9F9F9;
    --tabfgp-gris:   #676767;

    width: 100%;
    background: transparent;
    font-family: "Avenir Next", "Avenir", Arial, sans-serif;
    font-size: 16px;
    color: var(--tabfgp-negro);
    box-sizing: border-box;
}
.tabfgp-shell *, .tabfgp-shell *::before, .tabfgp-shell *::after {
    box-sizing: border-box;
}

/* ══════════════════════════════════════
   FILTROS — fila con botón integrado
══════════════════════════════════════ */
.tabfgp-shell .tabfgp-filters {
    display: flex;
    flex-wrap: nowrap;
    gap: 0;
    margin: 0 0 34px;
    padding: 0;
    border: none;
    background: none;
    align-items: center;
}

.tabfgp-shell .tabfgp-filter-group {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    padding: 0 24px;
    text-align: center;
    overflow: visible;
}
.tabfgp-shell .tabfgp-filter-group:first-child { padding-left: 0; }

/* Separador vertical entre filtros */
.tabfgp-shell .tabfgp-filter-group + .tabfgp-filter-group::before {
    content: '';
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 1px;
    background: var(--tabfgp-gris);
    opacity: 0.4;
}

/* Toggle botón — UPPERCASE y centrado */
.tabfgp-shell .tabfgp-filter-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    padding: 0 0 12px !important;
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid var(--tabfgp-negro) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    cursor: pointer !important;
    font-family: "Avenir Next", "Avenir", Arial, sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    color: var(--tabfgp-negro) !important;
    text-transform: uppercase !important;
    text-align: center !important;
    outline: none !important;
    transition: none !important;
    -webkit-appearance: none !important;
}
.tabfgp-shell .tabfgp-filter-toggle:hover,
.tabfgp-shell .tabfgp-filter-toggle:focus,
.tabfgp-shell .tabfgp-filter-toggle:active {
    background: transparent !important;
    color: var(--tabfgp-negro) !important;
    border-bottom-color: var(--tabfgp-negro) !important;
    outline: none !important;
    box-shadow: none !important;
}
.tabfgp-shell .tabfgp-filter-toggle[aria-expanded="true"] {
    color: var(--tabfgp-negro) !important;
    border-bottom-color: var(--tabfgp-negro) !important;
}

.tabfgp-shell .tabfgp-filter-label {
    flex: 0 1 auto !important;
    display: inline-block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
    pointer-events: none;
}

.tabfgp-shell .tabfgp-filter-count {
    font-size: 11px;
    font-weight: 700;
    color: var(--tabfgp-negro);
    display: none;
    pointer-events: none;
}
.tabfgp-shell .tabfgp-filter-count.visible { display: inline; }

/* Chevron */
.tabfgp-shell .tabfgp-chevron {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--tabfgp-negro);
    pointer-events: none;
    transition: transform 0.25s ease;
}
.tabfgp-shell .tabfgp-chevron svg {
    display: block;
    width: 14px;
    height: 9px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.tabfgp-shell .tabfgp-filter-toggle[aria-expanded="true"] .tabfgp-chevron {
    transform: rotate(180deg);
}

/* Dropdown panel */
.tabfgp-shell .tabfgp-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    min-width: 180px;
    background: var(--tabfgp-blanco) !important;
    border: none;
    box-shadow: none;
    border-radius: 0;
    z-index: 9999;
    padding: 14px 16px;
    display: none;
}
.tabfgp-shell .tabfgp-dropdown.open {
    display: block;
}

/* Opciones — alineadas a la izquierda, sin transform */
.tabfgp-shell .tabfgp-option {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 0 !important;
    margin: 0 0 10px !important;
    cursor: pointer !important;
    background: transparent !important;
    color: var(--tabfgp-negro) !important;
    font-family: "Avenir Next", "Avenir", Arial, sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.25 !important;
    text-transform: none !important;
    text-align: left !important;
    position: relative;
}
.tabfgp-shell .tabfgp-option:last-child { margin-bottom: 0 !important; }
.tabfgp-shell .tabfgp-option:hover { background: transparent !important; }

/* Checkbox nativo */
.tabfgp-shell .tabfgp-option input[type="checkbox"] {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: 16px !important;
    height: 16px !important;
    margin: 2px 0 0 !important;
    border: 1px solid var(--tabfgp-gris) !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    flex: 0 0 16px !important;
    position: relative !important;
    cursor: pointer !important;
}
.tabfgp-shell .tabfgp-option input[type="checkbox"]:checked {
    background: #fff !important;
    border-color: var(--tabfgp-gris) !important;
}
.tabfgp-shell .tabfgp-option input[type="checkbox"]:checked::after {
    content: "" !important;
    position: absolute !important;
    left: 4px !important;
    top: 1px !important;
    width: 5px !important;
    height: 9px !important;
    border: solid var(--tabfgp-negro) !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
}

.tabfgp-shell .tabfgp-checkbox { display: none !important; }

.tabfgp-shell .tabfgp-option-label {
    flex: 1 !important;
    font-family: "Avenir Next", "Avenir", Arial, sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    color: var(--tabfgp-negro) !important;
    line-height: 1.25 !important;
    display: block !important;
    text-align: left !important;
    text-transform: none !important;
}

/* ══════════════════════════════════════
   BOTÓN BORRAR FILTROS — en la misma fila que los filtros
══════════════════════════════════════ */
.tabfgp-shell .tabfgp-toolbar {
    display: none; /* ocultamos el toolbar separado */
}
.tabfgp-shell .tabfgp-filter-actions {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    padding-left: 24px;
}
.tabfgp-shell .tabfgp-clear-btn {
    height: 44px !important;
    padding: 0 28px !important;
    margin: 0 !important;
    border: 1.5px solid var(--tabfgp-negro) !important;
    border-radius: 999px !important;
    background: var(--tabfgp-negro) !important;
    color: var(--tabfgp-blanco) !important;
    font-family: "Avenir Next", "Avenir", Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    cursor: pointer !important;
    transition: background 0.2s ease, color 0.2s ease !important;
    white-space: nowrap !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    box-shadow: none !important;
    outline: none !important;
    -webkit-appearance: none !important;
}
.tabfgp-shell .tabfgp-clear-btn:hover,
.tabfgp-shell .tabfgp-clear-btn:focus {
    background: var(--tabfgp-blanco) !important;
    border-color: var(--tabfgp-negro) !important;
    color: var(--tabfgp-negro) !important;
    outline: none !important;
    box-shadow: none !important;
}
.tabfgp-shell .tabfgp-clear-btn svg { transition: transform 0.35s ease; }
.tabfgp-shell .tabfgp-clear-btn:hover svg { transform: rotate(-180deg); }

/* ══════════════════════════════════════
   GRID DE PRODUCTOS
══════════════════════════════════════ */
.tabfgp-shell .tabfgp-items {
    display: grid !important;
    gap: 22px !important;
}
.tabfgp-shell .tabfgp-item { min-width: 0; }
.tabfgp-shell .tabfgp-item > * { height: 100%; }
.tabfgp-shell .tabfgp-item .elementor,
.tabfgp-shell .tabfgp-item .elementor-widget,
.tabfgp-shell .tabfgp-item .elementor-widget-container,
.tabfgp-shell .tabfgp-item .e-con { max-width: 100% !important; width: 100% !important; }

.tabfgp-shell .tabfgp-fallback {
    border: 1px solid var(--tabfgp-negro);
    padding: 16px;
}
.tabfgp-shell .tabfgp-fallback a {
    color: var(--tabfgp-negro);
    text-decoration: none;
    font-weight: 500;
}

.tabfgp-shell .tabfgp-empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 40px 20px;
    border: 1px solid #d5d5d5;
    background: #fff;
    font-size: 16px;
    color: var(--tabfgp-gris);
}

.tabfgp-shell.is-loading { opacity: .6; pointer-events: none; transition: opacity 0.15s; }

/* ══════════════════════════════════════
   PAGINACIÓN
══════════════════════════════════════ */
.tabfgp-shell .tabfgp-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-top: 32px;
    flex-wrap: wrap;
}
.tabfgp-shell .tabfgp-page--arrow {
    width: 30px !important;
    height: 30px !important;
    border: 1.5px solid var(--tabfgp-negro) !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: var(--tabfgp-negro) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    outline: none !important;
    transition: background 0.2s, color 0.2s !important;
}
.tabfgp-shell .tabfgp-page--arrow:hover:not(:disabled) {
    background: var(--tabfgp-negro) !important;
    color: var(--tabfgp-blanco) !important;
}
.tabfgp-shell .tabfgp-page--arrow:disabled { opacity: .3 !important; cursor: default !important; }
.tabfgp-shell .tabfgp-page--num {
    width: 30px !important;
    height: 30px !important;
    padding: 0 !important;
    border: 1.5px solid var(--tabfgp-negro) !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: var(--tabfgp-negro) !important;
    font-family: "Avenir Next", "Avenir", Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.2s, color 0.2s !important;
    box-shadow: none !important;
    outline: none !important;
}
.tabfgp-shell .tabfgp-page--num:hover:not(:disabled):not(.tabfgp-page--active) {
    background: var(--tabfgp-blanco) !important;
    border-color: var(--tabfgp-negro) !important;
    color: var(--tabfgp-negro) !important;
}
.tabfgp-shell .tabfgp-page--active {
    background: var(--tabfgp-negro) !important;
    border-color: var(--tabfgp-negro) !important;
    color: var(--tabfgp-blanco) !important;
    font-weight: 700 !important;
    cursor: default !important;
}

/* Botón cargar más */
.tabfgp-shell .tabfgp-load-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}
.tabfgp-shell .tabfgp-load-more-btn {
    height: 44px !important;
    padding: 0 28px !important;
    background: var(--tabfgp-negro) !important;
    border: 1.5px solid var(--tabfgp-negro) !important;
    border-radius: 999px !important;
    color: var(--tabfgp-blanco) !important;
    font-family: "Avenir Next", "Avenir", Arial, sans-serif !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    outline: none !important;
    transition: background 0.2s, color 0.2s !important;
    box-shadow: none !important;
}
.tabfgp-shell .tabfgp-load-more-btn:hover {
    background: var(--tabfgp-blanco) !important;
    border-color: var(--tabfgp-negro) !important;
    color: var(--tabfgp-negro) !important;
}
.tabfgp-shell .tabfgp-load-more-btn:disabled { opacity: .4 !important; cursor: default !important; }

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
/* columnas tablet controladas por el perfil */
@media (max-width: 767px) {
    .tabfgp-shell .tabfgp-filters { flex-direction: column !important; align-items: stretch !important; }
    .tabfgp-shell .tabfgp-filter-group { width: 100% !important; padding: 0 !important; text-align: left !important; margin-top: 10px !important; }
    .tabfgp-shell .tabfgp-filter-group:first-child { margin-top: 0 !important; }
    .tabfgp-shell .tabfgp-filter-toggle { justify-content: space-between !important; text-align: left !important; text-transform: uppercase !important; padding: 0 0 5px !important; }
    .tabfgp-shell .tabfgp-filter-label { text-align: left !important; }
    .tabfgp-shell .tabfgp-filter-group + .tabfgp-filter-group::before { display: none; }
    .tabfgp-shell .tabfgp-dropdown { position: static; margin-top: 10px; left: 0; box-shadow: none; }
    .tabfgp-shell .tabfgp-filter-actions { padding-left: 0; padding-top: 16px; width: 100%; }
    .tabfgp-shell .tabfgp-clear-btn { width: 100% !important; justify-content: center !important; }
    .tabfgp-shell .tabfgp-toolbar { display: none !important; }
}

/* ══════════════════════════════════════
   PAGINACIÓN — fix flechas sin círculo y números centrados
══════════════════════════════════════ */
.tabfgp-shell .tabfgp-page--arrow {
    width: auto !important;
    height: auto !important;
    border: none !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 4px !important;
    line-height: 1 !important;
}
.tabfgp-shell .tabfgp-page--arrow:hover:not(:disabled) {
    background: transparent !important;
    color: var(--tabfgp-negro) !important;
    opacity: 0.6;
}
.tabfgp-shell .tabfgp-page--num {
    width: 30px !important;
    height: 30px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}
