.product-tile .earlyaccess {
    color: #4597F7;
}

.evg-before-Banner{
    display: none;
}

/* iOS Safari: saltar render/layout/paint de tiles fuera del viewport.
   Reduce GPU/compositor pressure que causaba auto-reload del tab.
   Supported Safari 18+. Para browsers viejos es ignorado (sin impacto). */
.product-grid .region {
    content-visibility: auto;
    contain-intrinsic-size: 400px 500px;
}

/* Cupón sorpresa (STP-3594): el badge sobresale por ARRIBA del tile (top
   negativo + translate en .surprise-component-container) y content-visibility
   implica contain:paint, que recorta el badge al box de la celda — por eso
   nunca se veía. Se exime SOLO la celda cuyo tile trae badge real
   (.product-surprise solo se renderiza con isSurpriseEnabled); el resto del
   grid conserva la optimización iOS. En browsers sin :has() la regla se
   ignora (badge recortado como hoy, sin regresión). */
.product-grid .region:has(.product-surprise) {
    content-visibility: visible;
}

/* Cupón sorpresa (STP-3594): si hay badge en la PRIMERA fila, dar aire arriba
   del grid para que el sticker (sobresale ~117px desktop / ~71px mobile) no
   quede detrás de la barra sticky de filtros/ordenar (z-index 2; subir el z
   del badge por encima haría que tape la barra al scrollear). */
@media (min-width: 768px) {
    .row.product-grid:has(> .region:nth-child(-n+3) .product-surprise) {
        padding-top: 120px;
    }
}

@media (max-width: 767px) {
    .row.product-grid:has(> .region:nth-child(-n+2) .product-surprise) {
        padding-top: 80px;
    }
}

/* iOS pagination: navegación clásica en lugar de infinite scroll */
.plp-pagination-ios {
    padding: 1rem 0;
}
.plp-pagination-ios .btn {
    min-width: 110px;
    padding: 0.5rem 1rem;
}
.plp-pagination-ios .btn.disabled {
    opacity: 0.4;
    pointer-events: none;
}
.plp-pagination-ios .plp-page-info {
    font-weight: 600;
    min-width: 60px;
    text-align: center;
}