
/* Let cards be 100% fluid to fill the grid cells symmetrically and perfectly */
.lff-card {
    width: 100% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.lff-filter-container { 
    background-color: var(--negro); 
    padding: var(--space-xl); 
    font-family: var(--bricks-typography-body-font-family, sans-serif); 
    color: var(--txt-blanco, var(--blanco, #fff)); 
    margin-bottom: var(--space-xl);
    box-sizing: border-box;
    /* Edge-to-edge background bleed */
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: calc(50vw - 50% + 30px);
    padding-right: calc(50vw - 50% + 30px);
    width: auto;
}
.lff-row { 
    display: flex; 
    flex-wrap: wrap; 
    justify-content: center; 
    gap: var(--space-s); 
    margin-bottom: var(--space-l); 
}
.lff-col { 
    display: flex; 
    flex-direction: column; 
    width: 100%;
    flex: 1 1 auto;
    min-width: 250px;
    max-width: 380px;
    position: relative;
}
.lff-col-wide {
    max-width: 100% !important;
    flex-grow: 1;
}

/* Fields matching original */
.lff-field {
    background-color: transparent; 
    border: 1px solid color-mix(in srgb, var(--blanco, #fff) 25%, transparent) !important; 
    color: var(--txt-blanco, var(--blanco, #fff)); 
    padding: 0 var(--space-m) !important; 
    height: 48px !important;
    border-radius: 25px; 
    font-size: var(--txt-m); 
    outline: none;
    width: 100%;
    box-sizing: border-box;
    cursor: pointer;
}
.lff-field::placeholder { color: var(--txt-blanco, var(--blanco, #fff)); opacity: 1; }
input[type="date"].lff-field::-webkit-calendar-picker-indicator { filter: invert(1); cursor: pointer; }

/* Custom Select Dropdowns */
.lff-custom-select { position: relative; width: 100%; }
.lff-select-trigger {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    width: 100%;
}
.lff-select-dropdown {
    position: absolute;
    top: 110%;
    left: 0;
    width: 100%;
    background: color-mix(in srgb, var(--negro) 85%, var(--blanco, var(--blanco, #fff)));
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    z-index: 100;
    display: none;
    box-shadow: 0 10px 25px rgba(0,0,0,0.5);
    max-height: 300px;
    overflow-y: auto;
}
.lff-custom-select.active .lff-select-dropdown { display: block; }
.lff-custom-select.active .lff-arrow { transform: rotate(180deg); }
.lff-arrow { transition: transform 0.3s ease !important; font-size: var(--txt-s) !important; color: var(--blanco, var(--blanco, #fff)) !important; }

/* Checkbox lists */
.lff-cb-list { padding: var(--space-xs); }
.lff-cb-item {
    display: flex;
    align-items: center;
    padding: var(--space-2xs) var(--space-2xs);
    cursor: pointer;
    transition: none;
    border-radius: 6px;
    font-size: var(--txt-s);
    text-align: left;
}
@media (pointer: fine) { .lff-cb-item:hover {  } }

.lff-cb-item > span:not(.lff-count) { flex-grow: 1; line-height: 1.3; }
.lff-term-icon { margin-right: var(--space-xs) !important; font-size: var(--txt-m) !important; width: 1.5em !important; height: 1.5em !important; vertical-align: middle !important; flex-shrink: 0 !important; object-fit: contain !important; fill: currentColor !important; color: inherit; }
.lff-term-icon svg { width: 1.25em !important; height: 1.25em !important; max-width: 1.25em !important; max-height: 1.25em !important; }
.lff-count { color: color-mix(in srgb, var(--negro) 46%, var(--blanco, var(--blanco, #fff))); margin-left: var(--space-3xs); font-size: var(--txt-s) !important; flex-shrink: 0; white-space: nowrap; margin-top: 2px; }

/* Scrollbar premium estilo Apple */
.lff-select-dropdown { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.2) transparent; }
.lff-select-dropdown::-webkit-scrollbar { width: 6px; background-color: transparent; }
.lff-select-dropdown::-webkit-scrollbar-track { background: transparent; }
.lff-select-dropdown::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 10px; }
.lff-select-dropdown::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.4); }

/* Month Grid */
.lff-dropdown-month { padding: var(--space-s); }
.lff-month-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-xs);
}
.lff-month-item {
    padding: var(--space-2xs) 0;
    text-align: center;
    background: color-mix(in srgb, var(--negro) 80%, var(--blanco, var(--blanco, #fff)));
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s;
    font-size: var(--txt-s);
}
.lff-month-item:hover { background: color-mix(in srgb, var(--negro) 66%, var(--blanco, var(--blanco, #fff))); }
.lff-month-item.selected { background: var(--primario-t-4) !important; border: 1px solid var(--primario) !important; color: var(--txt-blanco, var(--blanco, #fff)); font-weight: bold; }

/* Actions */
.lff-actions { 
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
    align-items: center; 
    gap: var(--space-s); 
    margin-top: var(--space-l);
}
#lff_btn_free, #lff_btn_clear {
    width: 220px !important;
    max-width: 100%;
    white-space: nowrap !important;
}
.lff-btn { 
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    white-space: nowrap !important;
    font-size: var(--txt-m) !important;
    background-color: transparent; 
    border: 1px solid var(--txt-blanco, var(--blanco, #fff)); 
    color: var(--txt-blanco, var(--blanco, #fff)); 
    padding: var(--space-s) var(--space-l) !important; 
    border-radius: 25px; 
    cursor: pointer; 
    transition: all 0.3s; 
    font-weight: bold;
    text-align: center !important;
    box-sizing: border-box !important;
}
@media (pointer: fine) {
    .lff-btn:hover { background-color: var(--primario-t-4) !important; color: var(--txt-blanco, var(--blanco, #fff)) !important; border-color: var(--primario) !important; }
}
.lff-btn-toggle.active {
    background-color: var(--primario-t-4) !important;
    border: 1.5px solid var(--primario) !important;
    color: var(--txt-blanco, var(--blanco, #fff)) !important;
}
/* Neutralize :focus and :focus-visible on buttons - prevent sticky red on touch */
#lff_btn_free:focus,
#lff_btn_free:focus-visible,
#lff_btn_clear:focus,
#lff_btn_clear:focus-visible {
    outline: none !important;
    background-color: transparent !important;
    border-color: var(--txt-blanco, var(--blanco, #fff)) !important;
}
/* Override :focus only when ALSO active */
#lff_btn_free.active:focus,
#lff_btn_free.active:focus-visible {
    background-color: var(--primario-t-4) !important;
    border-color: var(--primario) !important;
}
/* Flash class for limpiar filtros - instant removal of red (no transition) */
.lff-btn-flash {
    background-color: var(--primario-t-4) !important;
    border-color: var(--primario) !important;
    transition: none !important;
}

/* Results */


/* RESPONSIVE MEDIA QUERIES */
@media (max-width: 767px) {
    .lff-row { flex-direction: column; align-items: stretch; }
    .lff-col { max-width: 100%; flex: 0 0 auto; min-width: 0; }
    .lff-filter-container { padding: var(--space-l) var(--space-s); }
    
}
/* Flatpickr Apple Style Overrides */
.flatpickr-calendar {
    background: color-mix(in srgb, var(--negro) 85%, var(--blanco, var(--blanco, #fff))) !important;
    border: 1px solid rgba(255,255,255,0.1) !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 25px rgba(0,0,0,0.5) !important;
    font-family: var(--bricks-typography-body-font-family, sans-serif) !important;
    z-index: 99 !important; /* Force UNDER the mobile bottom navbar */
    padding: var(--space-2xs) var(--space-xs) var(--space-xs) var(--space-xs) !important;
}
.flatpickr-months .flatpickr-month { background: transparent !important; color: var(--txt-blanco, var(--blanco, #fff)) !important; }
.flatpickr-current-month .flatpickr-monthDropdown-months { background: color-mix(in srgb, var(--negro) 85%, var(--blanco, var(--blanco, #fff))) !important; }
.flatpickr-day { font-size: var(--txt-s) !important; color: var(--blanco, #ffffff) !important; font-weight: 500 !important; border-radius: 8px !important; font-size: var(--txt-s) !important; height: 35px !important; line-height: 35px !important; margin-top: 0 !important; margin-bottom: 0 !important; }
.flatpickr-day:hover { background: color-mix(in srgb, var(--negro) 80%, var(--blanco, var(--blanco, #fff))) !important; border-color: color-mix(in srgb, var(--negro) 80%, var(--blanco, var(--blanco, #fff))) !important; }
.flatpickr-day.selected { background: var(--primario-t-4) !important; border-color: var(--primario) !important; color: var(--txt-blanco, var(--blanco, #fff)) !important; font-weight: bold; }
.flatpickr-day.today { border-color: var(--primario) !important; }
.flatpickr-weekday { color: color-mix(in srgb, var(--negro) 46%, var(--blanco, var(--blanco, #fff))) !important; }
.flatpickr-calendar:before, .flatpickr-calendar:after { display: none !important; }

/* Resaltar mes actual */
.lff-current-month {
    border: 1px solid var(--primario); /* Borde amarillo suave */
}
/* Meses deshabilitados */
.lff-disabled {
    opacity: 0.3;
    pointer-events: none;
    cursor: not-allowed;
    background: transparent !important;
}

/* Ocultar elementos vacíos */
.lff-hide { display: none !important; }

/* Animación Hover de las Tarjetas Clones */
.lff-card {
    transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}
.lff-card:hover {
    transform: scale(1.03) !important;
    box-shadow: 0 10px 20px rgba(0,0,0,0.08) !important;
    z-index: 2;
}

/* Fix Flatpickr year arrows overlapping */
.flatpickr-current-month .numInputWrapper {
    width: 5ch !important;
}
.flatpickr-current-month .numInputWrapper input.cur-year {
    padding: 0 !important;
    text-align: center !important;
}

/* Diseño moderno: Ocultar los cuadraditos de los checkboxes y usar el diseño de la fila */
.lff-cb-item input[type="checkbox"] {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -var(--space-3xs) !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Estado activo cuando la fila está seleccionada */
.lff-cb-item:has(input:checked) {
     /* Fondo gris de selección */
}

/* Píldora roja cuando la fila está seleccionada */
.lff-cb-item:has(input:checked) .lff-count {
    background-color: var(--primario) !important;
    border: none !important;
    color: var(--txt-blanco, var(--blanco, #fff)) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    padding: 0 var(--space-3xs) !important;
    box-sizing: border-box !important;
}

/* Flatpickr Range Colors */
.flatpickr-day.inRange,
.flatpickr-day.inRange.today,
.flatpickr-day.inRange:hover {
    background: color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))) !important;
    border-color: transparent !important;
    box-shadow: -5px 0 0 color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))), 5px 0 0 color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))) !important;
}
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange {
    background: var(--primario-t-4) !important;
    border-color: var(--primario) !important;
    color: var(--txt-blanco, var(--blanco, #fff)) !important;
}

/* Connected Pill Effect for Ranges */
.flatpickr-day.inRange:not(.startRange):not(.endRange) {
    border-radius: 0 !important;
}
.flatpickr-day.startRange {
    border-radius: 8px 0 0 8px !important;
}
.flatpickr-day.endRange {
    border-radius: 0 8px 8px 0 !important;
}
.flatpickr-day.startRange.endRange {
    border-radius: 8px !important;
}

/* Override green box-shadow from Flatpickr default theme on start and end range elements */
.flatpickr-day.startRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.startRange:hover {
    box-shadow: 5px 0 0 color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))) !important;
}
.flatpickr-day.endRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.endRange:hover {
    box-shadow: -5px 0 0 color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))) !important;
}
.flatpickr-day.startRange.endRange,
.flatpickr-day.startRange.endRange:hover {
    box-shadow: none !important;
}

/* Flatpickr Disabled Dates */
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
    color: color-mix(in srgb, var(--negro) 66%, var(--blanco, var(--blanco, #fff))) !important;
    background: transparent !important;
    border-color: transparent !important;
    cursor: not-allowed !important;
}

/* Forzar que los días del mes siguiente/anterior que SÍ son válidos sean blancos */
.flatpickr-day.prevMonthDay:not(.flatpickr-disabled),
.flatpickr-day.nextMonthDay:not(.flatpickr-disabled) {
    color: var(--txt-blanco, var(--blanco, #fff)) !important;
}

/* Estirar el interior del calendario para que ocupe todo el ancho dinámico */
.flatpickr-days,
.dayContainer {
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
}
.flatpickr-day { font-size: var(--txt-s) !important;
    max-width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    font-variant-numeric: tabular-nums !important;
}

/* Diseño Premium para los contadores (badges circulares/píldoras) */
.lff-count {
    
    align-items: center;
    justify-content: center;
    
    color: var(--txt-blanco, var(--blanco, #fff));
    font-size: var(--txt-s) !important;
    font-weight: 600;
    min-width: 22px;
    height: 22px;
    border-radius: 11px;
    padding: 0 var(--space-3xs);
    margin-left: auto;
    box-sizing: border-box;
    transition: none;
}
@media (pointer: fine) {
    .lff-cb-item:hover .lff-count {
        background-color: var(--primario) !important;
        border: none !important;
        color: var(--txt-blanco, var(--blanco, #fff)) !important;
        transition: none !important;
    }
}


/* Flatpickr Weekdays Customization */
.flatpickr-calendar .flatpickr-weekdays {
    background: transparent !important;
}
span.flatpickr-weekday {
    background: transparent !important;
    color: var(--rojo, var(--primario)) !important;
    font-weight: 700 !important;
    font-size: var(--txt-s) !important;
    text-transform: capitalize;
    font-family: var(--bricks-typography-body-font-family, sans-serif) !important;
}

/* Días sin eventos */
.flatpickr-day.lff-no-events:not(.inRange):not(.startRange):not(.endRange) {
    color: #555555 !important;
    pointer-events: none !important;
    background: transparent !important;
    border-color: transparent !important;
}

.flatpickr-calendar .flatpickr-day.today,
.flatpickr-calendar .flatpickr-day.today.lff-no-events {
    border-color: transparent !important;
    font-weight: 700 !important;
    position: relative !important;
}

.flatpickr-calendar .flatpickr-day.today::before {
    content: '';
    position: absolute;
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
    width: 18px;
    height: 1.5px;
    background-color: var(--primario);
    border-radius: 1px !important;
    pointer-events: none;
    z-index: 10;
    border: none;
}

.flatpickr-calendar .flatpickr-day.today.selected::before,
.flatpickr-calendar .flatpickr-day.today.startRange::before,
.flatpickr-calendar .flatpickr-day.today.endRange::before {
    background-color: var(--blanco, #fff) !important;
}
/* Ocultar días del mes ANTERIOR */
.flatpickr-day.prevMonthDay:not(.startRange):not(.inRange):not(.endRange),
.flatpickr-day.nextMonthDay:not(.startRange):not(.inRange):not(.endRange) {
    visibility: hidden !important;
}

/* Individual Clear Buttons */
.lff-clear-single {
    display: none;
    position: absolute;
    right: calc(var(--space-l) * 2.5);
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    background-color: var(--primario-t-4) !important;
    border: 2px solid var(--primario) !important;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    box-sizing: border-box !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 0 !important;
}



.lff-clear-single:hover {
    transform: translateY(-50%) scale(1.1);
}
.lff-input-wrap {
    position: relative;
}


/* --- Custom Month/Year Grids & Buttons --- */
.flatpickr-calendar .flatpickr-current-month .numInputWrapper {
    pointer-events: none; /* Evitar que se escriba en el input nativo */
    cursor: pointer;
}
.flatpickr-calendar .flatpickr-current-month .numInputWrapper input {
    cursor: pointer;
}
.flatpickr-calendar .flatpickr-current-month .numInputWrapper .arrowUp,
.flatpickr-calendar .flatpickr-current-month .numInputWrapper .arrowDown {
    display: none !important;
}

/* Permitir clics en la cabecera */
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month .cur-month {
    cursor: pointer !important;
    pointer-events: auto !important;
}
.flatpickr-current-month .cur-month:hover,
.flatpickr-current-month:hover,
.flatpickr-current-month .cur-month:hover,
.flatpickr-current-month .numInputWrapper:hover,
.flatpickr-current-month .numInputWrapper:hover input.cur-year {
    color: var(--txt-blanco, var(--blanco, #fff)) !important;
}

.lff-custom-overlay {
    position: absolute;
    top: 36px;
    left: 0;
    right: 0;
    bottom: 0;
    background: color-mix(in srgb, var(--negro) 85%, var(--blanco, var(--blanco, #fff)));
    z-index: 50;
    display: none;
    flex-direction: column;
    justify-content: center;
    border-bottom-left-radius: var(--radius-l, 1.6rem);
    border-bottom-right-radius: var(--radius-l, 1.6rem);
}
.lff-custom-overlay.active {
    display: flex;
}

.lff-custom-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-xs);
    overflow-y: auto;
    max-height: 100%;
    align-content: start;
}
.lff-custom-grid { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,0.2) transparent; }
.lff-custom-grid::-webkit-scrollbar { width: 6px; background-color: transparent; }
.lff-custom-grid::-webkit-scrollbar-track { background: transparent; }
.lff-custom-grid::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 10px; }
.lff-custom-grid::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.4); }

.lff-grid-item {
    padding: var(--space-s) var(--space-3xs);
    text-align: center;
    background: color-mix(in srgb, var(--negro) 80%, var(--blanco, var(--blanco, #fff)));
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s;
    font-size: var(--txt-s);
    color: var(--txt-blanco, var(--blanco, #fff));
}
@media (pointer: fine) {
    .lff-grid-item:hover { background: var(--primario); color: var(--blanco, #fff); font-weight: bold; }
}
.lff-grid-item.active {
    background: var(--primario-t-4) !important;
    border: 1px solid var(--primario) !important;
    color: var(--blanco, #fff); font-weight: bold;
}

.lff-calendar-buttons {
    display: flex;
    justify-content: space-between;
    gap: var(--space-xs);
    padding: var(--space-s);
    background: transparent;
    
}
.lff-cal-btn {
    flex: 1;
    font-size: var(--txt-m) !important;
    padding: var(--space-2xs) !important;
    text-transform: none;
    white-space: normal;
    line-height: 1.2;
}

.lff-grid-item.lff-no-events {
    opacity: 1 !important;
    color: #555555 !important;
    cursor: not-allowed;
}

/* Quick Chips */
.lff-quick-chips {
    display: flex;
    overflow-x: auto;
    gap: var(--space-xs);
    padding: var(--space-xs) var(--space-s) var(--space-2xs) var(--space-s) !important;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.lff-quick-chips::-webkit-scrollbar {
    display: none;
}
.lff-chip {
    background: color-mix(in srgb, var(--negro) 80%, var(--blanco, var(--blanco, #fff)));
    box-shadow: 0 2px 6px rgba(0,0,0,0.3);
    color: var(--blanco, #fff);
    border: none;
    border-radius: var(--radius-full, 20px);
    padding: var(--space-3xs) var(--space-xs);
    font-size: var(--txt-s);
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: all 0.2s ease;
}




.lff-quick-wrap {
    display: flex;
    flex-direction: column;
    padding: var(--space-xs) var(--space-2xs) 0 var(--space-2xs);
}
.lff-quick-title {
    font-size: var(--txt-s) !important;
    font-weight: bold !important;
    text-align: center !important;
    color: var(--txt-blanco, var(--blanco, #fff)) !important;
    margin-top: 0 !important;
    margin-bottom: var(--space-s) !important; margin-top: var(--space-2xs) !important;
    margin-left: 0 !important;
    width: 100% !important;
    display: block !important;
}
.lff-quick-chips {
    padding: 0 !important;
}

.lff-past-date {
    opacity: 1 !important;
    color: #555555 !important;
    pointer-events: none !important;
    text-decoration: none !important;
    position: relative !important;
    background: transparent !important;
    border-color: transparent !important;
}

/* Ensure next and prev month days that have events are clearly visible and clickable */
.flatpickr-day.prevMonthDay:not(.lff-no-events):not(.lff-past-date),
.flatpickr-day.nextMonthDay:not(.lff-no-events):not(.lff-past-date) {
    color: var(--txt-blanco, #fff) !important;
    pointer-events: auto !important;
    opacity: 1 !important;
}





.lff-chip.active {
    background: var(--primario-t-4) !important;
    border: 1px solid var(--primario) !important;
    color: var(--blanco) !important;
}

.lff-quick-wrap {
    position: relative;
}

.lff-calendar-buttons {
    padding: 0 var(--space-2xs) var(--space-2xs) var(--space-2xs) !important;
}






.lff-quick-title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-right: var(--space-3xs);
}

@keyframes bounceRight {
    0%, 100% { transform: translateY(-50%) translateX(0); }
    50% { transform: translateY(-50%) translateX(3px); }
}

.lff-chip {
    padding: var(--space-2xs) var(--space-s) !important;
    
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.lff-calendar-buttons .lff-chip {
    white-space: nowrap !important;
    text-align: center !important;
    flex: 0 0 auto !important;
    padding: var(--padding-vertical-2xs, var(--space-2xs)) var(--space-l) !important; /* A bit more horizontal padding for visual weight */
}
.lff-calendar-buttons {
    padding: var(--space-xs) !important;
    gap: var(--space-xs) !important;
    justify-content: center !important;
}


.lff-count { display: inline-flex !important; }

.lff-scroll-hint {
    display: none !important;
}






.lff-quick-wrap { padding-top: 2px !important; }
.lff-quick-title { margin-bottom: var(--space-s) !important; margin-top: var(--space-2xs) !important; }
.lff-quick-wrap { margin-top: 0 !important; }




/* Bloquear clicks manuales en dias pasados pero permitir seleccion de rango visual por JS */
.flatpickr-day.lff-past-day:not(.inRange):not(.startRange):not(.endRange) {
    color: #777777 !important;
    pointer-events: none !important;
    background: transparent !important;
    border-color: transparent !important;
}



/* Estilos para igualar el año al mes y añadir la flecha de desplegable */
.flatpickr-current-month::after {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    margin-left: 2px;
    vertical-align: middle;
    opacity: 0.8;
    pointer-events: none;
    transition: transform 0.2s ease;
}

.flatpickr-calendar.lff-overlay-active .flatpickr-current-month::after {
    transform: rotate(180deg);
}

.flatpickr-current-month .cur-year {
    font-weight: bold !important;
    font-size: inherit !important;
}

.flatpickr-calendar .flatpickr-current-month:hover .cur-month { color: var(--txt-blanco, var(--blanco, #fff)) !important; }

/* Animación Escala y Fundido (Zoom) para cambio de mes */



.flatpickr-calendar { overflow: hidden !important; overflow-x: hidden !important; }

/* Fix: Make the entire month header clickable and disable native year dragging */
.flatpickr-current-month,
.flatpickr-current-month * {
    cursor: pointer !important;
}
.flatpickr-current-month .numInputWrapper {
    pointer-events: none !important;
}






/* Fix contrast for selected and in-range dates so text is always solid white */
.flatpickr-day.selected, 
.flatpickr-day.startRange, 
.flatpickr-day.endRange, 
.flatpickr-day.selected.inRange, 
.flatpickr-day.startRange.inRange, 
.flatpickr-day.endRange.inRange, 
.flatpickr-day.selected:focus, 
.flatpickr-day.startRange:focus, 
.flatpickr-day.endRange:focus, 
.flatpickr-day.selected:hover, 
.flatpickr-day.startRange:hover, 
.flatpickr-day.endRange:hover, 
.flatpickr-day.selected.prevMonthDay, 
.flatpickr-day.startRange.prevMonthDay, 
.flatpickr-day.endRange.prevMonthDay, 
.flatpickr-day.selected.nextMonthDay, 
.flatpickr-day.startRange.nextMonthDay, 
.flatpickr-day.endRange.nextMonthDay,
.flatpickr-day.inRange {
    color: var(--blanco, #fff) !important;
    opacity: 1 !important;
}

/* Fix horizontal scrollbar on Windows due to 100vw calculation */
html, body {
    overflow-x: hidden;
}


/* --- ULTIMATE FAST FILTERS FIXES (v49) --- */

.lff-input-wrap {
    position: relative !important;
    display: block !important;
    width: 100% !important;
}

.lff-input-wrap .lff-arrow {
    position: absolute !important;
    right: var(--space-l) !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    pointer-events: none !important;
    font-size: var(--txt-s) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    z-index: 10 !important;
}

.lff-filter-container { position: relative; z-index: 500 !important; }
.lff-custom-select { position: relative; z-index: 550 !important; }
.lff-custom-select.active { z-index: 800 !important; }
.lff-select-dropdown { z-index: 800 !important; }
.flatpickr-calendar { z-index: 850 !important; }

.lff-card {
    transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}
.lff-card:hover {
    transform: scale(1.03) !important;
    box-shadow: 0 10px 20px rgba(0,0,0,0.12) !important;
    z-index: 2;
}
.lff-card img {
    transition: transform 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}
.lff-card:hover img {
    transform: scale(1.05) !important;
}


/* Mobile Bottom Navigation Bar Override */
.brxe-nav-nested, .bricks-mobile-menu, [class*="mobile-nav"], [class*="bottom-nav"], [class*="menu-inferior"] {
    z-index: 99999 !important;
}


/* Full Width Calendar Override */
.flatpickr-calendar {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}


/* --- TRANSPARENT SHADE (80% OPACITY) FOR ACTIVE CHIPS & RANGE START/END DATES --- */
.lff-chip.active {
    background: var(--primario-t-4) !important;
    border: 1px solid var(--primario) !important;
    color: var(--txt-blanco, var(--blanco, var(--blanco, #fff))) !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.startRange.endRange,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover {
    background: var(--primario-t-4) !important;
    border-color: var(--primario-t-4) !important;
    color: var(--txt-blanco, var(--blanco, var(--blanco, #fff))) !important;
}


/* --- SOLID RED BORDER + 80% TRANSPARENT BACKGROUND CONTRAST --- */
.lff-chip.active {
    background: var(--primario-t-4) !important;
    border: 1px solid var(--primario) !important;
    color: var(--txt-blanco, var(--blanco, var(--blanco, #fff))) !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.startRange.endRange,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover {
    background: var(--primario-t-4) !important;
    border: 2px solid var(--primario) !important;
    color: var(--txt-blanco, var(--blanco, var(--blanco, #fff))) !important;
    box-sizing: border-box !important;
}


/* --- PERFECT SYMMETRICAL VERTICAL CENTERING WITH BASELINE ADJUSTMENT --- */
.flatpickr-day { font-size: var(--txt-s) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    padding-top: 3px !important;
    padding-bottom: 0 !important; /* Pushes text DOWN into optical center */
    box-sizing: border-box !important;
}


/* --- HIGH-SPECIFICITY SOLID RED BORDER FOR ACTIVE TODO GRATIS BUTTON --- */
#lff-filter-form #lff_btn_free.active,
#lff-filter-form .lff-btn-toggle.active {
    background-color: var(--primario-t-4) !important;
    border: 1.5px solid var(--primario) !important;
    color: var(--txt-blanco, var(--blanco, var(--blanco, #fff))) !important;
}


/* --- FORCE CONFETTI CANVAS ABOVE ALL FILTER ELEMENTS & MENUS --- */
canvas[style*="z-index"],
canvas[style*="pointer-events"] {
    z-index: 999999 !important;
}


/* --- SUBTLE LIGHT GREY HIGHLIGHT BACKGROUND FOR CHECKED CATEGORY & LOCATION ROWS --- */
.lff-cb-item:has(input:checked),
.lff-cb-item.is-selected {
    background-color: rgba(255, 255, 255, 0.12) !important;
    border-radius: 6px !important;
}

@media (hover: hover) {
    .lff-cb-item:hover {
        background-color: rgba(255, 255, 255, 0.06) !important;
        border-radius: 6px !important;
    }
}


/* --- LARGER PROMINENT DROPDOWN ARROW ICONS --- */
.lff-arrow,
.lff-input-wrap .lff-arrow,
.lff-select-trigger .lff-arrow {
    font-size: var(--txt-s) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}


/* --- DAYS WITHOUT EVENTS INSIDE SELECTED RANGE: KEEP GREYED-OUT TEXT --- */
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange {
    color: var(--blanco, var(--blanco, #fff)) !important;
    opacity: 1 !important;
    font-weight: bold !important;
}

.flatpickr-day.inRange {
    background: color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))) !important;
    box-shadow: -5px 0 0 color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))), 5px 0 0 color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))) !important;
    opacity: 1 !important; /* Keep background 100% solid & uniform across all in-range days */
}

.flatpickr-day.inRange.lff-no-events:not(.startRange):not(.endRange) {
    background: color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))) !important;
    box-shadow: -5px 0 0 color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))), 5px 0 0 color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))) !important;
    color: #777777 !important; /* Visible medium-grey text for no-events days */
    opacity: 1 !important; /* Do NOT fade the cell background */
    font-weight: normal !important;
}

.flatpickr-day.inRange:not(.lff-no-events):not(.startRange):not(.endRange) {
    background: color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))) !important;
    box-shadow: -5px 0 0 color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))), 5px 0 0 color-mix(in srgb, var(--negro) 78%, var(--blanco, var(--blanco, #fff))) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    opacity: 1 !important;
    font-weight: 500 !important;
}


/* Remove right edge fade mask when scrolled to the very end */
.lff-quick-chips.at-end {
    -webkit-mask-image: none !important;
    mask-image: none !important;
}


/* --- COMPACT GREY CHIP BUTTON FOR MONTH & YEAR (NO RED, NO STRETCH) --- */
.flatpickr-calendar {
    margin-top: var(--space-xs) !important;
}

.flatpickr-months {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    position: relative !important;
    padding: var(--space-2xs) 0 !important;
}

.flatpickr-months .flatpickr-month {
    flex: 0 0 auto !important;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
}

.flatpickr-current-month {
    position: static !important;
    left: auto !important;
    transform: none !important;
    width: auto !important;
    max-width: max-content !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: var(--space-3xs) !important;
    background: color-mix(in srgb, var(--negro) 80%, var(--blanco, var(--blanco, #fff))) !important; /* GREY CHIP BACKGROUND - NEVER RED */
    border: none !important;
    border-radius: var(--radius-full, 20px) !important;
    padding: var(--space-3xs) var(--space-xs) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    font-weight: 600 !important;
    font-size: var(--txt-s) !important;
    cursor: pointer !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.3) !important;
    transition: background 0.2s ease, border-color 0.2s ease !important;
}

.flatpickr-current-month:hover {
    background: color-mix(in srgb, var(--negro) 73%, var(--blanco, var(--blanco, #fff))) !important;
    border: none !important;
}

.flatpickr-current-month {
    position: relative !important;
    cursor: pointer !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
    background: transparent !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    font-weight: 600 !important;
    font-size: var(--txt-s) !important;
    cursor: pointer !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    width: auto !important;
    display: inline-block !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.flatpickr-current-month .numInputWrapper {
    width: 4.5ch !important;
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
}

.flatpickr-current-month .numInputWrapper input.cur-year {
    background: transparent !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    font-weight: 600 !important;
    font-size: var(--txt-s) !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: left !important;
}

/* MAKE THE ENTIRE MONTH CHIP BEHAVE AS 1 SINGLE BUTTON */
.flatpickr-current-month {
    cursor: pointer !important;
    pointer-events: auto !important;
    user-select: none !important;
}
.flatpickr-current-month * {
    pointer-events: none !important;
}
.lff-chip {
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.1s ease !important;
}
.lff-chip:not(.active):hover {
    background: color-mix(in srgb, var(--negro) 73%, var(--blanco, var(--blanco, #fff))) !important;
}
.lff-chip.active:hover {
    background: rgba(224, 0, 0, 0.95) !important;
}

/* --- CUSTOM OVERLAY MONTH GRID STYLING & CUTOFF FIX --- */
.flatpickr-calendar {
    overflow: visible !important;
    min-height: 380px !important;
}

.lff-custom-overlay {
    position: absolute !important;
    top: 48px !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: color-mix(in srgb, var(--negro) 85%, var(--blanco, var(--blanco, #fff))) !important;
    z-index: 99999 !important;
    display: none !important;
    flex-direction: column !important;
    padding: var(--space-s) !important;
    border-radius: 0 0 16px 16px !important;
    overflow-y: auto !important;
    box-sizing: border-box !important;
}

.lff-custom-overlay.active {
    display: flex !important;
}

.lff-month-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: var(--space-xs) !important;
    padding: var(--space-3xs) !important;
}

.lff-month-item {
    padding: var(--space-s) var(--space-3xs) !important;
    text-align: center !important;
    background: color-mix(in srgb, var(--negro) 82%, var(--blanco, var(--blanco, #fff))) !important;
    color: var(--gris-l-3, #e0e0e0) !important;
    border: 2px solid transparent !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    font-size: var(--txt-s) !important;
    font-weight: 500 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.lff-month-item:hover {
    background: color-mix(in srgb, var(--negro) 76%, var(--blanco, var(--blanco, #fff))) !important;
    border-color: rgba(255, 255, 255, 0.15) !important;
}

/* Selected month style: 80% opacity red background + 2px solid red border */
.lff-month-item.active,
.lff-month-item.selected {
    background: var(--primario-t-4) !important;
    border: 1px solid var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    font-weight: bold !important;
    box-shadow: none !important;
}

.lff-month-item.lff-no-events {
    opacity: 1 !important;
    color: #555555 !important;
    cursor: not-allowed !important;
}
.lff-month-item.lff-no-events:hover {
    background: color-mix(in srgb, var(--negro) 82%, var(--blanco, var(--blanco, #fff))) !important;
    border-color: transparent !important;
}

/* --- STYLING FOR BOTH .lff-grid-item AND .lff-month-item --- */
.lff-grid-item {
    padding: var(--space-s) var(--space-3xs) !important;
    text-align: center !important;
    background: color-mix(in srgb, var(--negro) 82%, var(--blanco, var(--blanco, #fff))) !important;
    color: var(--gris-l-3, #e0e0e0) !important;
    border: 2px solid transparent !important;
    border-radius: 12px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    font-size: var(--txt-s) !important;
    font-weight: 500 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
}

.lff-grid-item:hover {
    background: color-mix(in srgb, var(--negro) 76%, var(--blanco, var(--blanco, #fff))) !important;
    border-color: rgba(255, 255, 255, 0.15) !important;
}

/* Selected month style: 80% opacity red background + 2px solid red border */
.lff-grid-item.active,
.lff-grid-item.selected {
    background: var(--primario-t-4) !important;
    border: 2px solid var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    font-weight: bold !important;
    box-shadow: none !important;
}

.lff-grid-item.lff-no-events {
    opacity: 1 !important;
    color: #555555 !important;
    cursor: not-allowed !important;
}
.lff-grid-item.lff-no-events:hover {
    background: color-mix(in srgb, var(--negro) 82%, var(--blanco, var(--blanco, #fff))) !important;
    border-color: transparent !important;
}

/* --- TRANSPARENT SAFETY BACKDROP FOR CALENDAR MODAL --- */
#lff_calendar_backdrop {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 99990 !important;
    background: transparent !important;
    display: none;
}
#lff_calendar_backdrop.active {
    display: block !important;
}
.flatpickr-calendar {
    z-index: 99999 !important;
}

/* --- GLOBAL TAP HIGHLIGHT & FOCUS OUTLINE SILENCER --- */
*,
*::before,
*::after,
a,
button,
input,
select,
textarea,
div,
span,
.lff-chip,
.lff-card,
.lff-custom-select,
.lff-select-trigger,
.flatpickr-calendar,
.flatpickr-day,
.flatpickr-current-month {
    -webkit-tap-highlight-color: transparent !important;
    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
    -webkit-touch-callout: none !important;
}

*:focus,
*:focus-visible,
*:active,
a:focus,
a:active,
button:focus,
button:active,
input:focus,
input:active,
.lff-chip:focus,
.lff-chip:active,
.lff-card:focus,
.lff-card:active,
.flatpickr-day:focus,
.flatpickr-day:active,
.flatpickr-current-month:focus,
.flatpickr-current-month:active {
    outline: none !important;
    box-shadow: none !important;
    -webkit-tap-highlight-color: transparent !important;
    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
}


/* Hover & Active Red Border Override */
.lff-btn:hover,
#lff-filter-form .lff-btn:hover,
#lff_btn_free:hover,
#lff_btn_clear:hover {
    background-color: var(--primario) !important;
    border-color: var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}

.lff-btn-toggle.active,
#lff-filter-form .lff-btn-toggle.active,
#lff_btn_free.active {
    background-color: var(--primario) !important;
    border-color: var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}


/* Disable native text selection in Flatpickr calendar */
.flatpickr-calendar,
.flatpickr-days,
.flatpickr-day,
.flatpickr-innerContainer,
.flatpickr-months {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
}

.flatpickr-calendar *::selection,
.flatpickr-calendar *::-moz-selection {
    background: transparent !important;
    color: inherit !important;
}


/* Todo Gratis Button Custom Styling */
#lff_btn_free {
    background-color: transparent !important;
    border: 1px solid var(--blanco, var(--blanco, #fff)) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    transition: all 0.25s ease-in-out !important;
}

/* hover replaced */
#lff_btn_free_unused {
    background-color: var(--primario) !important;
    border: 1px solid var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}

#lff_btn_free.active {
    background-color: var(--primario) !important;
    border: 1px solid var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}

#lff_btn_free:disabled,
#lff_btn_free[disabled] {
    background: color-mix(in srgb, var(--negro) 80%, var(--blanco, var(--blanco, #fff))) !important;
    border: none !important;
    color: #555555 !important;
    opacity: 1 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* Todo Gratis Button Custom Styling */
#lff_btn_free {
    background-color: transparent !important;
    border: 1px solid var(--blanco, var(--blanco, #fff)) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease !important;
    -webkit-tap-highlight-color: transparent !important;
}

#lff_btn_free:focus,
#lff_btn_free:active {
    outline: none !important;
}

/* Only apply hover on devices with real cursor, avoiding sticky mobile tap background */
@media (hover: hover) and (pointer: fine) {
    #lff_btn_free:not(.active):hover {
        background-color: var(--primario) !important;
        border: 1px solid var(--primario) !important;
        color: var(--blanco, var(--blanco, #fff)) !important;
    }
}

#lff_btn_free.active {
    background-color: var(--primario) !important;
    border: 1px solid var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}

#lff_btn_free:disabled


/* Mobile Tap Hover Cleanup for Both Action Buttons */
#lff_btn_free, #lff_btn_clear {
    background-color: transparent !important;
    border: 1px solid var(--blanco, var(--blanco, #fff)) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease !important;
    -webkit-tap-highlight-color: transparent !important;
}

#lff_btn_free:focus, #lff_btn_free:active,
#lff_btn_clear:focus, #lff_btn_clear:active {
    outline: none !important;
}

@media (hover: hover) and (pointer: fine) {
    #lff_btn_free:not(.active):hover,
    #lff_btn_clear:not(.active):hover {
        background-color: var(--primario) !important;
        border: 1px solid var(--primario) !important;
        color: var(--blanco, var(--blanco, #fff)) !important;
    }
}

#lff_btn_free.active,
#lff_btn_clear.active {
    background-color: var(--primario) !important;
    border: 1px solid var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}


/* Clean Reset for Fast Filter Action Buttons */
#lff_btn_free, #lff_btn_clear {
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    white-space: nowrap !important;
    font-size: var(--txt-m) !important;
    background-color: transparent !important; 
    border: 1px solid var(--blanco, var(--blanco, #fff)) !important; 
    color: var(--blanco, var(--blanco, #fff)) !important; 
    padding: var(--space-s) var(--space-l) !important; 
    border-radius: 25px !important; 
    cursor: pointer !important; 
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important; 
    font-weight: bold !important;
    text-align: center !important;
    box-sizing: border-box !important;
    width: 220px !important;
    max-width: 100% !important;
    outline: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

#lff_btn_free:focus, #lff_btn_free:active,
#lff_btn_clear:focus, #lff_btn_clear:active {
    outline: none !important;
    box-shadow: none !important;
}

/* ONLY apply hover background on devices with precise pointer (desktop mouse), NEVER touch screens */
@media (hover: hover) and (pointer: fine) {
    #lff_btn_free:not(.active):hover,
    #lff_btn_clear:not(.active):hover {
        background-color: var(--primario) !important;
        border-color: var(--primario) !important;
        color: var(--blanco, var(--blanco, #fff)) !important;
    }
}

/* ACTIVE TOGGLE STATE FOR TODO GRATIS */
#lff_btn_free.active {
    background-color: var(--primario) !important;
    border-color: var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}

/* ACTIVE FLASH STATE FOR LIMPIAR FILTROS */
#lff_btn_clear.active {
    background-color: var(--primario) !important;
    border-color: var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}

#lff_btn_free:disabled {
    opacity: 1 !important;
    color: #555555 !important;
    background: color-mix(in srgb, var(--negro) 80%, var(--blanco, var(--blanco, #fff))) !important;
    border: none !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}


/* === iOS TOUCH BUTTON FIXES === */

/* Remove tap highlight and improve touch on both buttons */
#lff_btn_free,
#lff_btn_clear {
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
    -webkit-appearance: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
}

/* On touch devices: remove ALL transitions to prevent iOS visual glitches */
@media (hover: none) {
    #lff_btn_free,
    #lff_btn_clear {
        transition: none !important;
        -webkit-transition: none !important;
    }
}

/* Explicit :active override - prevent iOS sticky active state from showing red */
#lff_btn_free:not(.active):active {
    background-color: transparent !important;
    border-color: var(--txt-blanco, var(--blanco, #fff)) !important;
    border-width: 1px !important;
}

/* Clear button - always transparent in :active (flash is CSS-animation based) */
#lff_btn_clear:active {
    background-color: transparent !important;
    border-color: var(--txt-blanco, var(--blanco, #fff)) !important;
}

/* Flash animation for Limpiar filtros button */
@-webkit-keyframes lff-clear-flash {
    0%   { background-color: var(--primario-t-4); border-color: var(--primario); border-width: 1.5px; }
    65%  { background-color: var(--primario-t-4); border-color: var(--primario); border-width: 1.5px; }
    100% { background-color: transparent;         border-color: var(--txt-blanco, var(--blanco, #fff)); border-width: 1px; }
}
@keyframes lff-clear-flash {
    0%   { background-color: var(--primario-t-4); border-color: var(--primario); border-width: 1.5px; }
    65%  { background-color: var(--primario-t-4); border-color: var(--primario); border-width: 1.5px; }
    100% { background-color: transparent;         border-color: var(--txt-blanco, var(--blanco, #fff)); border-width: 1px; }
}
#lff_btn_clear.lff-flash {
    -webkit-animation: lff-clear-flash 0.4s ease-out forwards !important;
    animation: lff-clear-flash 0.4s ease-out forwards !important;
    transition: none !important;
}

/* Fix Z-Index for mobile bottom nav overlap */
.lff-filter-container { position: relative; z-index: 90 !important; }
.lff-custom-select { position: relative; z-index: 90 !important; }
.lff-custom-select.active { z-index: 99 !important; }

#lff_btn_free:disabled,
#lff_btn_disabled {
    background: color-mix(in srgb, var(--negro) 80%, var(--blanco, var(--blanco, #fff))) !important;
    border: none !important;
    color: #555555 !important;
    opacity: 1 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* Todo Gratis Button Custom Styling */
#lff_btn_free {
    background-color: transparent !important;
    border: 1px solid var(--blanco, var(--blanco, #fff)) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease !important;
    -webkit-tap-highlight-color: transparent !important;
}

#lff_btn_free:focus,
#lff_btn_free:active {
    outline: none !important;
}

/* Only apply hover on devices with real cursor, avoiding sticky mobile tap background */
@media (hover: hover) and (pointer: fine) {
    #lff_btn_free:not(.active):hover {
        background-color: var(--primario) !important;
        border: 1px solid var(--primario) !important;
        color: var(--blanco, var(--blanco, #fff)) !important;
    }
}

#lff_btn_free.active {
    background-color: var(--primario) !important;
    border: 1px solid var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}

#lff_btn_free:disabled


/* Mobile Tap Hover Cleanup for Both Action Buttons */
#lff_btn_free, #lff_btn_clear {
    background-color: transparent !important;
    border: 1px solid var(--blanco, var(--blanco, #fff)) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
    transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease !important;
    -webkit-tap-highlight-color: transparent !important;
}

#lff_btn_free:focus, #lff_btn_free:active,
#lff_btn_clear:focus, #lff_btn_clear:active {
    outline: none !important;
}

@media (hover: hover) and (pointer: fine) {
    #lff_btn_free:not(.active):hover,
    #lff_btn_clear:not(.active):hover {
        background-color: var(--primario) !important;
        border: 1px solid var(--primario) !important;
        color: var(--blanco, var(--blanco, #fff)) !important;
    }
}

#lff_btn_free.active,
#lff_btn_clear.active {
    background-color: var(--primario) !important;
    border: 1px solid var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}


/* Clean Reset for Fast Filter Action Buttons */
#lff_btn_free, #lff_btn_clear {
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    white-space: nowrap !important;
    font-size: var(--txt-m) !important;
    background-color: transparent !important; 
    border: 1px solid var(--blanco, var(--blanco, #fff)) !important; 
    color: var(--blanco, var(--blanco, #fff)) !important; 
    padding: var(--space-s) var(--space-l) !important; 
    border-radius: 25px !important; 
    cursor: pointer !important; 
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important; 
    font-weight: bold !important;
    text-align: center !important;
    box-sizing: border-box !important;
    width: 220px !important;
    max-width: 100% !important;
    outline: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

#lff_btn_free:focus, #lff_btn_free:active,
#lff_btn_clear:focus, #lff_btn_clear:active {
    outline: none !important;
    box-shadow: none !important;
}

/* ONLY apply hover background on devices with precise pointer (desktop mouse), NEVER touch screens */
@media (hover: hover) and (pointer: fine) {
    #lff_btn_free:not(.active):hover,
    #lff_btn_clear:not(.active):hover {
        background-color: var(--primario) !important;
        border-color: var(--primario) !important;
        color: var(--blanco, var(--blanco, #fff)) !important;
    }
}

/* ACTIVE TOGGLE STATE FOR TODO GRATIS */
#lff_btn_free.active {
    background-color: var(--primario) !important;
    border-color: var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}

/* ACTIVE FLASH STATE FOR LIMPIAR FILTROS */
#lff_btn_clear.active {
    background-color: var(--primario) !important;
    border-color: var(--primario) !important;
    color: var(--blanco, var(--blanco, #fff)) !important;
}

#lff_btn_free:disabled {
    opacity: 1 !important;
    color: #555555 !important;
    background: color-mix(in srgb, var(--negro) 80%, var(--blanco, var(--blanco, #fff))) !important;
    border: none !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}


/* === iOS TOUCH BUTTON FIXES === */

/* Remove tap highlight and improve touch on both buttons */
#lff_btn_free,
#lff_btn_clear {
    -webkit-tap-highlight-color: transparent !important;
    touch-action: manipulation !important;
    -webkit-appearance: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
}

/* On touch devices: remove ALL transitions to prevent iOS visual glitches */
@media (hover: none) {
    #lff_btn_free,
    #lff_btn_clear {
        transition: none !important;
        -webkit-transition: none !important;
    }
}

/* Explicit :active override - prevent iOS sticky active state from showing red */
#lff_btn_free:not(.active):active {
    background-color: transparent !important;
    border-color: var(--txt-blanco, var(--blanco, #fff)) !important;
    border-width: 1px !important;
}

/* Clear button - always transparent in :active (flash is CSS-animation based) */
#lff_btn_clear:active {
    background-color: transparent !important;
    border-color: var(--txt-blanco, var(--blanco, #fff)) !important;
}

/* Flash animation for Limpiar filtros button */
@-webkit-keyframes lff-clear-flash {
    0%   { background-color: var(--primario-t-4); border-color: var(--primario); border-width: 1.5px; }
    65%  { background-color: var(--primario-t-4); border-color: var(--primario); border-width: 1.5px; }
    100% { background-color: transparent;         border-color: var(--txt-blanco, var(--blanco, #fff)); border-width: 1px; }
}
@keyframes lff-clear-flash {
    0%   { background-color: var(--primario-t-4); border-color: var(--primario); border-width: 1.5px; }
    65%  { background-color: var(--primario-t-4); border-color: var(--primario); border-width: 1.5px; }
    100% { background-color: transparent;         border-color: var(--txt-blanco, var(--blanco, #fff)); border-width: 1px; }
}
#lff_btn_clear.lff-flash {
    -webkit-animation: lff-clear-flash 0.4s ease-out forwards !important;
    animation: lff-clear-flash 0.4s ease-out forwards !important;
    transition: none !important;
}

/* Fix Z-Index for mobile bottom nav overlap */
.lff-filter-container { position: relative; z-index: 90 !important; }
.lff-custom-select { position: relative; z-index: 90 !important; }
.lff-custom-select.active { z-index: 99 !important; }
.lff-select-dropdown { z-index: 99 !important; }
.flatpickr-calendar { z-index: 99 !important; }

/* ========================================= */
/* WOW EFFECTS (UX PREMIUM)                 */
/* ========================================= */

/* 1. EFECTO SPRING (Micro-interacciones táctiles) */
/* Añadimos -webkit-tap-highlight para asegurar que :active funciona en iOS/Android */
.lff-chip, #lff_btn_free, #lff_btn_clear, .flatpickr-day, .lff-grid-item, .lff-month-item, .flatpickr-current-month, .lff-custom-select-trigger {
    -webkit-tap-highlight-color: transparent !important;
}

/* Aplicamos un sutil scale-down al pulsar botones interactivos */
.lff-chip:not(:disabled):not(.lff-no-events):active,
#lff_btn_free:not(:disabled):active,
#lff_btn_clear:not(:disabled):active,
.flatpickr-day:not(.flatpickr-disabled):not(.lff-no-events):not(.dummy-day):active,
.lff-grid-item:not(.lff-no-events):active,
.lff-month-item:not(.lff-no-events):active,
.flatpickr-current-month:not(:disabled):active,
.lff-custom-select-trigger:active {
    transform: scale(0.95) !important;
    transition: transform 0.1s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* 4. ANIMACIONES EN CASCADA (Entrada lateral sólida, sin fade) */
@keyframes lffSlideInRight {
    0% { transform: translateX(60px); }
    100% { transform: translateX(0); }
}

/* Animamos TODOS los chips a la vez (como un bloque), pero DENTRO de su contenedor
   para evitar que la tira entera se salga de los límites del calendario visualmente. */
.flatpickr-calendar.open .lff-quick-chips .lff-chip {
    /* Animación fluida sin rebote agresivo, esperando al auto-scroll, MUY LENTA */
    animation: lffSlideInRight 1.5s cubic-bezier(0.2, 0.8, 0.2, 1) backwards;
    animation-delay: 0.4s;
}

.lff-input-wrap.active .lff-arrow { transform: translateY(-50%) rotate(180deg) !important; }

.lff-arrow svg { width: var(--txt-s) !important; height: var(--txt-s) !important; }


/* =========================================
   MOBILE TYPOGRAPHY OVERRIDE
   ========================================= */
@media (max-width: 767px) {
    .lff-chip,
    .flatpickr-current-month,
    .flatpickr-current-month .numInputWrapper input.cur-year,
    .flatpickr-current-month .flatpickr-monthDropdown-months,
    .lff-quick-title,
    .lff-grid-item,
    .lff-month-item,
    .lff-cb-item,
    .lff-count,
    .lff-cal-btn,
    .flatpickr-day,
    span.flatpickr-weekday,
    .lff-select-text,
    .lff-input-wrap input,
    .lff-input-wrap input::placeholder,
    #lff_btn_free,
    #lff_btn_clear {
        font-size: var(--txt-m) !important;
    }
}



/* Fix date and time sizing in event cards for desktop */
@media (min-width: 769px) {
    .lff-card time,
    .lff-card time span {
        font-weight: 600 !important;
        font-size: var(--txt-s) !important;
    }
}
/* Event title sizing on mobiles */
@media (max-width: 767px) {
    .lff-card h1, 
    .lff-card h2, 
    .lff-card h3, 
    .lff-card h4, 
    .lff-card h5, 
    .lff-card h6, 
    .lff-card .brxe-post-title {
        font-size: var(--txt-xl) !important;
        font-weight: 900 !important;
    }
}
/* Increase chip text size on mobiles */
@media (max-width: 767px) {
    .lff-card .jet-listing-dynamic-terms__link,
    .lff-card a.brxe-button {
        font-size: var(--txt-m) !important;
    }
}
/* Override chips size on mobiles using their specific inline backgrounds */
@media (max-width: 767px) {
    .lff-card [style*="background:var(--negro-50)"],
    .lff-card [style*="background:var(--destacado-l-1)"] {
        font-size: var(--txt-m) !important;
    }
}
/* Event price sizing on mobiles */
@media (max-width: 767px) {
    .lff-card div[style*="margin-top:var(--space-m)"] > span[style*="font-size:var(--txt-m)"] {
        font-size: var(--txt-l) !important;
        font-weight: 900 !important;
    }
}
/* Squeeze cards on mobile portrait only, restoring the exact margins for vertical view */
@media (max-width: 767px) and (orientation: portrait) {
    .lff-card {
        width: auto !important;
        max-width: none !important;
        margin-left: var(--space-3xl) !important;
        margin-right: var(--space-3xl) !important;
    }
}
/* Make calendar more compact on mobile to prevent overflow */
@media (max-width: 767px) {
    .flatpickr-day {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        height: 35px !important;
        line-height: 35px !important;
    }
}
/* Fix long text going under the clear button on small mobiles */
@media (max-width: 480px) {
    #lff-filter-form .flatpickr-input,
    #lff-filter-form .lff-custom-select-trigger {
        padding-right: 55px !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        overflow: hidden !important;
    }
}
/* Give cards breathing room on all mobiles in landscape (including modern large phones up to 950px) */
@media (max-width: 950px) and (orientation: landscape) {
    #lff-results-grid > div {
        padding-left: var(--space-m) !important;
        padding-right: var(--space-m) !important;
    }
}
/* Límite de ancho para tablets */
@media (max-width: 1024px) {
    .lff-filter-container {
        max-width: 480px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Corrección de fondo para tablets */
@media (max-width: 1024px) {
    .lff-filter-container {
        max-width: none !important;
    }
    .lff-filter-container > div:first-child,
    #lff-filter-form {
        max-width: 480px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Separación superior del bloque de filtros */
.lff-filter-container {
    margin-top: var(--space-m) !important;
}

/* --- GLOW EFECT ON COUNTER --- */
#lff-total-events-counter {
    text-shadow: 0 0 15px rgba(255, 60, 60, 0.45) !important;
}

/* --- PREMIUM LIGHTWEIGHT TWEAKS --- */





/* BORDES INTELIGENTES (ID SPECIFICITY) */
#lff-filter-form .lff-select-trigger,
#lff-filter-form .lff-input-wrap input[type="text"],
#lff-filter-form .flatpickr-input {
    border-color: rgba(255, 255, 255, 0.25) !important;
    transition: border-color 0.3s ease !important;
}
@media (hover: hover) {
    #lff-filter-form .lff-select-trigger:hover,
    #lff-filter-form .lff-input-wrap input[type="text"]:hover,
    #lff-filter-form .flatpickr-input:hover {
        border-color: rgba(255, 255, 255, 1) !important;
    }
}
#lff-filter-form .lff-custom-select.active .lff-select-trigger,
#lff-filter-form .lff-input-wrap.active input[type="text"],
#lff-filter-form .lff-input-wrap.active .flatpickr-input {
    border-color: rgba(255, 255, 255, 1) !important;
}

/* IDLE GRIS PARA AMBOS BOTONES DE ACCION */
html body #lff-filter-form #lff_btn_free, 
html body #lff-filter-form #lff_btn_clear {
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    background-color: transparent !important;
    color: var(--blanco, #fff) !important;
    transition: all 0.3s ease !important;
}

/* TRANSICION MAS RAPIDA PARA EL BOTON LIMPIAR FILTROS AL VOLVER AL REPOSO */
html body #lff-filter-form #lff_btn_clear {
    transition: all 0.15s ease !important;
}

/* TODO GRATIS: COMPORTAMIENTO COMO LOS DESPLEGABLES (Borde blanco en hover, solo escritorio) */
@media (hover: hover) {
    html body #lff-filter-form #lff_btn_free:not(.active):hover {
        border: 1px solid rgba(255, 255, 255, 1) !important;
        border-color: rgba(255, 255, 255, 1) !important;
        background-color: transparent !important;
    }
}

/* TODO GRATIS: ESTADO ACTIVO (ROJO) */
html body #lff-filter-form #lff_btn_free.active {
    border: 1px solid var(--primario) !important;
    border-color: var(--primario) !important;
    background-color: var(--primario) !important;
}

/* LIMPIAR FILTROS: HOVER BLANCO COMO EL RESTO (solo escritorio) */
@media (hover: hover) {
    html body #lff-filter-form #lff_btn_clear:hover {
        border: 1px solid rgba(255, 255, 255, 1) !important;
        border-color: rgba(255, 255, 255, 1) !important;
        background-color: transparent !important;
    }
}

/* LIMPIAR FILTROS: ROJO AL PULSAR (MOMENTANEO) */
html body #lff-filter-form #lff_btn_clear:active {
    border: 1px solid var(--primario) !important;
    border-color: var(--primario) !important;
    background-color: var(--primario) !important;
    transition: none !important; /* ROJO INMEDIATO */
}

/* ESTADO DESHABILITADO (CUANDO NO HAY EVENTOS GRATIS) */
html body #lff-filter-form #lff_btn_free:disabled,
html body #lff-filter-form #lff_btn_free[disabled],
html body #lff-filter-form #lff_btn_free:disabled:hover,
html body #lff-filter-form #lff_btn_free[disabled]:hover {
    color: #555555 !important;
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    border-color: rgba(255, 255, 255, 0.25) !important;
    background-color: transparent !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}


/* Eliminar el margen vertical para que las filas se toquen */
.dayContainer {
    gap: 0 !important;
}
.flatpickr-day {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* ASPA DE BORRADO: Relativa y Auto-centrada (Sin px) */
.lff-clear-single::before,
.lff-clear-single::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    margin: auto !important;
    width: 45% !important;
    height: 9% !important;
    background-color: var(--blanco, var(--blanco, #fff)) !important;
    border-radius: 1px !important;
}
.lff-clear-single::before {
    transform: rotate(45deg) !important;
}
.lff-clear-single::after {
    transform: rotate(-45deg) !important;
}

/* Ocultar desplegables vacios */
.lff-custom-select.lff-empty-filter .lff-select-dropdown {
    display: none !important;
}

/* Deshabilitar botón si el desplegable está completamente vacío */
.lff-custom-select.lff-empty-filter .lff-select-trigger {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}


/* Bloqueo global de filtros cuando los resultados son 0 */
.lff-zero-results .lff-custom-select .lff-select-trigger,
.lff-zero-results .lff-input-wrap {
    pointer-events: none !important;
}

/* Oscurecer SOLO los que están vacíos (no tienen la X visible) */
.lff-zero-results .lff-custom-select:not(:has(.lff-clear-single[style*="display: flex"])) .lff-select-trigger,
.lff-zero-results .lff-input-wrap:not(:has(.lff-clear-single[style*="display: flex"])) {
    opacity: 0.4 !important;
    cursor: not-allowed !important;
}

/* Mantener el brillo original para los que tienen selección */
.lff-zero-results .lff-custom-select:has(.lff-clear-single[style*="display: flex"]) .lff-select-trigger,
.lff-zero-results .lff-input-wrap:has(.lff-clear-single[style*="display: flex"]) {
    opacity: 1 !important;
}

.lff-zero-results .lff-custom-select .lff-clear-single,
.lff-zero-results .lff-input-wrap .lff-clear-single {
    pointer-events: auto !important;
    cursor: pointer !important;
}

/* ---- Tamao del contador principal ---- */
#lff-total-events-counter { font-size: var(--txt-2xl, 48px) !important; }
@media (min-width: 992px) {
    #lff-total-events-counter { font-size: var(--txt-xl, 36px) !important; }
}

@keyframes lff-rocket-shake {
    0% { transform: translateY(0) rotate(0); }
    25% { transform: translateY(1px) rotate(-3deg); }
    50% { transform: translateY(-1px) rotate(3deg); }
    75% { transform: translateY(1px) rotate(-1deg); }
    100% { transform: translateY(0) rotate(0); }
}

@keyframes lff-rocket-launch {
    0% { transform: translateY(0) scale(1); opacity: 1; }
    15% { transform: translateY(5px) scale(0.9); opacity: 1; }
    100% { transform: translateY(-800px) scale(1.5); opacity: 0; }
}

#lff_btn_back_to_top:hover .lff-rocket-icon {
    animation: lff-rocket-shake 0.3s infinite ease-in-out;
}

#lff_btn_back_to_top.launching .lff-rocket-icon {
    animation: lff-rocket-launch 0.7s cubic-bezier(0.5, 0, 0.2, 1) forwards;
}

/* Tamao responsive del icono de categora al seleccionarse */
.lff-select-text svg,
.lff-select-text img,
.lff-select-text i,
.lff-select-text figure {
    width: 1.25em !important;
    height: 1.25em !important;
    max-width: 1.25em !important;
    max-height: 1.25em !important;
    vertical-align: middle !important;
    margin-right: 0.35em !important;
    display: inline-block !important;
}

/* ---- Buscador de texto ---- */
.lff-search-wrap {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
}
.lff-search-icon {
    position: absolute;
    left: var(--space-m);
    color: rgba(255,255,255,0.5);
    pointer-events: none;
    flex-shrink: 0;
}
.lff-search-input {
    padding-left: calc(var(--space-m) + 24px) !important;
    padding-right: calc(var(--space-m) + 28px) !important;
    font-size: var(--txt-m, 16px) !important;
}
.lff-search-input:focus::placeholder {
    color: transparent !important;
}
.lff-search-clear {
    position: absolute;
    right: var(--space-m);
    display: none;
    width: 20px;
    height: 20px;
    background: var(--rojo, #e74c3c);
    color: var(--blanco, #ffffff);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    padding: 0;
}


/* SEARCH INPUT INTELLIGENT BORDERS */
#lff-filter-form .lff-search-input {
    border: 1px solid rgba(255, 255, 255, 0.25) !important;
    transition: all 0.3s ease !important;
}
@media (hover: hover) {
    #lff-filter-form .lff-search-input:hover {
        border: 1px solid rgba(255, 255, 255, 1) !important;
    }
}
#lff-filter-form .lff-search-input:focus {
    border: 1px solid rgba(255, 255, 255, 1) !important;
}

/* SENDEROS-STYLE HOVER/FOCUS FOR FIELDS */
.lff-field {
    transition: all 0.3s ease !important;
}
.lff-field:hover, .lff-field:focus, .lff-custom-select.active .lff-field {
    border: 1px solid var(--blanco, #fff) !important;
}

/* Iconos categoria del filtro en blanco */
.lff-term-icon{color:#fff!important;opacity:1!important;filter:invert(1) brightness(10)!important;}
.lff-term-icon svg,.lff-term-icon svg path,.lff-term-icon svg polygon,.lff-term-icon svg circle,.lff-term-icon svg rect,.lff-term-icon svg ellipse{fill:#fff!important;}

/* Lupa del buscador de la agenda en blanco */
.lff-search-icon{color:#fff!important;stroke:#fff!important;}

/* Separacion unificada del filtro de la agenda (misma que Senderos: --space-s) */
#lff-filter-form{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:var(--space-s)!important;}
#lff-filter-form .lff-row{margin-bottom:0!important;}
#lff-filter-form .lff-actions{display:flex!important;justify-content:center!important;align-items:center!important;flex-wrap:wrap!important;gap:var(--space-s)!important;margin:0!important;}
