/**
 * Safetop - Descatalogados (front) v2.8.0
 *
 * El producto descatalogado se ve "apagado" mediante filtros CSS sobre el
 * propio contenido (grayscale + opacity), sin ninguna capa ni fondo. El flag
 * "Descatalogado", el aviso "Ultimas unidades" y la caja del sustituto se
 * excluyen del filtro y se blindan con filter:none, de modo que quedan
 * siempre nitidos aunque un ancestro herede un filtro.
 *
 * Propiedades logicas (inline-start/block) para soporte RTL (he/ar).
 */

/* ---- Flag "Descatalogado" (identico en ficha y miniaturas de grid) ---- */
.product-flag.st-flag-discontinued {
    display: inline-flex !important;
    order: -1;
    background: #ff5900 !important;
    color: #fff !important;
    font-weight: 600;
    filter: none !important; /* nunca se apaga */
}

/* ---- Aviso "Ultimas unidades" (bajo "Descatalogado") ---- */
.product-flag.st-flag-lastunits {
    display: inline-flex !important;
    order: 0; /* siempre debajo del flag de descatalogado */
    background: #1f8a4c !important; /* verde: aun disponible, se puede comprar */
    color: #fff !important;
    font-weight: 600;
    filter: none !important; /* nunca se apaga */
}

/* ---- Ficha: ul propia del flag, fuera de las ramas atenuadas ---- */
.st-flags {
    position: absolute;
    top: 0.75rem;
    inset-inline-end: 0.75rem;
    z-index: 10;
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.25rem;
    filter: none !important; /* blindaje: no hereda el apagado */
}

/* ---- Miniaturas en listados, buscador y sliders ---- */
.js-product-miniature.st-discontinued {
    position: relative;
}

/* Miniatura descatalogada SIN stock: el contenido se apaga (imagen, titulo y
   precio) con el mismo filter que la ficha. Sin capas ni fondos. Los valores
   reales los define el CSS dinamico del <head>; aqui, un fallback razonable.
   Las miniaturas con ultimas unidades NO llevan .st-dimmed (se ven normales). */
.js-product-miniature.st-dimmed .thumbnail-container img,
.js-product-miniature.st-dimmed .product-title,
.js-product-miniature.st-dimmed .product-price-and-shipping {
    filter: grayscale(65%) opacity(0.55);
}

.js-product-miniature.st-discontinued .product-flags {
    position: absolute;
    z-index: 3;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
}

/* Se ocultan los flags ajenos, pero NO los nuestros (descatalogado + ultimas
   unidades). */
.js-product-miniature.st-discontinued .product-flags li:not(.st-flag-discontinued):not(.st-flag-lastunits) {
    display: none !important;
}

/* El flag va siempre el primero aunque el tema no use flex en la ul. */
.js-product-miniature.st-discontinued .product-flag.st-flag-discontinued {
    order: -1;
}

/* ---- Caja "Ver producto actualizado" / "Ver alternativa recomendada" /
   "Producto similar con stock" (recomendacion inversa) ---- */
.st-replacement-box {
    position: relative;
    z-index: 6;
    filter: none !important; /* blindaje: el naranja del CTA nunca se apaga */
    margin-block: 0.75rem;
    padding: 0.85rem 1rem;
    background: #fff7f2;
    border: 1px solid #ffd3b8;
    border-inline-start: 4px solid #ff5900;
    border-radius: 6px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem;
}

.st-replacement-box__msg {
    flex-basis: 100%;
    margin: 0;
    font-size: 0.9rem;
    color: #3b3b3b;
}

.st-replacement-box__cta {
    display: inline-block;
    max-width: 100%;
    background: #ff5900;
    color: #fff !important;
    font-weight: 600;
    padding: 0.5rem 0.9rem;
    border-radius: 4px;
    text-decoration: none !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: background 0.15s ease-in-out;
}

.st-replacement-box__cta:hover,
.st-replacement-box__cta:focus {
    background: #d94c00;
    color: #fff;
}

.st-replacement-box__cta:focus-visible {
    outline: 2px solid #1a1a1a;
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .st-replacement-box__cta {
        transition: none;
    }
}

/* ---- Boton "Ver sin atenuar / Atenuar de nuevo" (dentro de la caja) ---- */
.st-dim-toggle {
    display: inline-block;
    padding: 0.45rem 0.8rem;
    background: transparent;
    border: 1px solid #c9c9c9;
    border-radius: 4px;
    color: #555;
    font-size: 0.85rem;
    cursor: pointer;
    vertical-align: middle;
    transition: border-color 0.15s ease-in-out, color 0.15s ease-in-out;
}

/* Cuando no hay caja de sustituto, el boton va en su propio contenedor. */
.st-dim-toggle-wrap {
    position: relative;
    z-index: 6;
    filter: none !important;
    margin-block: 0.75rem;
}

.st-dim-toggle:hover,
.st-dim-toggle:focus {
    border-color: #8a8a8a;
    color: #222;
}

.st-dim-toggle:focus-visible {
    outline: 2px solid #1a1a1a;
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .st-dim-toggle {
        transition: none;
    }
}

/* ---- Tallas/colores sin stock en fichas con ultimas unidades ---- */
/* El ocultado real lo hace el JS (atributo hidden en <option>, display:none en
   las muestras de color). Refuerzo para navegadores que estilan <option>. */
select option.st-oos {
    display: none;
}

/* ---- Rediseno "sin stock, se puede reservar" ----
 * Colores y radio de esquina tomados del propio tema (confirmados en su
 * CSS real, no inventados): texto/boton #414141, radio pequeno 4-5px,
 * sombra igual a la que ya usa el tema en sus propios desplegables.
 */

/* Banner nativo #product-availability retextado: mismo elemento, bloque
   ancho en vez de badge pequeno en linea, pero compacto (poca altura) y en
   gris intermedio (tono neutro, #6c757d ya es el gris "secondary" que usa
   el propio Bootstrap del tema) en vez del naranja nativo de .badge-warning,
   para no competir visualmente con el naranja de marca del CTA. */
#product-availability.st-oos-banner {
    display: flex !important;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    box-sizing: border-box;
    padding: 0.4rem 0.9rem;
    margin-block-end: 0.6rem;
    border-radius: 5px;
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1.3;
    background: #6c757d !important;
    color: #ffffff !important;
    white-space: normal;
}

#product-availability.st-oos-banner .fa-exclamation-circle {
    font-size: 1rem;
    flex-shrink: 0;
}

/* Corazon (wishlist): SOLO se oculta si hay un aviso real que mostrar en su
   lugar (.st-oos-has-notify: modulo de avisos activo y configurado). Sin
   eso, el corazon nativo se queda tal cual. Comparar: SOLO se oculta si hay
   similares que mostrar en su lugar (.st-oos-has-similar); sin similares, el
   "Comparar" nativo se queda visible. En cualquier otra ficha (producto
   normal, con stock) ambos siguen igual. */
.product-add-to-cart.st-oos-has-notify .col-add-wishlist {
    display: none !important;
}

.product-add-to-cart.st-oos-has-similar .col-add-compare {
    display: none !important;
}

/* Fila "Avisame cuando este disponible" / "Ver similares". */
.st-oos-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-block-start: 0.75rem;
}

.st-oos-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex: 1 1 200px;
    box-sizing: border-box;
    padding: 0.65rem 1rem;
    background: #ffffff;
    border: 1px solid #d8d8d8;
    border-radius: 5px;
    color: #414141;
    font-size: 0.9rem;
    font-weight: 600;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    transition: border-color 0.15s ease-in-out, color 0.15s ease-in-out, background 0.15s ease-in-out;
}

.st-oos-action-btn i {
    color: #ff5900;
}

.st-oos-action-btn:hover,
.st-oos-action-btn:focus {
    border-color: #ff5900;
    color: #ff5900;
    background: #fff7f2;
}

.st-oos-action-btn:focus-visible {
    outline: 2px solid #1a1a1a;
    outline-offset: 2px;
}

.st-oos-action-btn:disabled {
    cursor: default;
}

/* Envoltorio del boton real de "Avisame" (boton + mensaje de error debajo),
   mismo flex-basis que el resto de acciones de la fila. */
.st-oos-notify-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex: 1 1 200px;
}

.st-oos-notify-wrap .st-oos-action-btn {
    flex: 1 1 auto;
}

/* Estado "ya suscrito": tono verde suave, sin hover interactivo (no hay
   accion posible desde aqui, igual que el propio widget de ps_emailalerts). */
.st-oos-action-btn.st-oos-notify-done {
    border-color: #cfe8d8;
    background: #f3faf5;
    color: #2f7a46;
    cursor: default;
}

.st-oos-action-btn.st-oos-notify-done i {
    color: #2f9e5c;
}

.st-oos-action-btn.st-oos-notify-done:hover,
.st-oos-action-btn.st-oos-notify-done:focus {
    border-color: #cfe8d8;
    background: #f3faf5;
    color: #2f7a46;
}

/* Mensaje de error del intento de suscripcion (respuesta del propio
   ps_emailalerts, o aviso generico si la peticion falla). */
.st-oos-notify-msg {
    margin: 0;
    font-size: 0.8rem;
    color: #c0392b;
}

/* "Ver similares" con varios productos: desplegable nativo <details>,
   mismo patron que ya usa esta tienda para su propio widget "Variantes". */
.st-oos-similar-details {
    position: relative;
    flex: 1 1 200px;
}

.st-oos-similar-details > summary {
    list-style: none;
}

.st-oos-similar-details > summary::-webkit-details-marker {
    display: none;
}

.st-oos-similar-details > summary::after {
    content: '\25be';
    margin-inline-start: 0.35rem;
    font-size: 0.7rem;
}

.st-oos-similar-details[open] > summary::after {
    content: '\25b4';
}

.st-oos-similar-list {
    position: absolute;
    top: calc(100% + 0.4rem);
    inset-inline-start: 0;
    z-index: 20;
    min-width: 100%;
    box-sizing: border-box;
    background: #ffffff;
    border: 1px solid #e3e3e3;
    border-radius: 5px;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    padding: 0.4rem;
    display: flex;
    flex-direction: column;
}

.st-oos-similar-list a {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.4rem 0.6rem;
    border-radius: 4px;
    color: #414141;
    font-size: 0.85rem;
    font-weight: 500;
    text-decoration: none !important;
    white-space: normal;
}

.st-oos-similar-list a:hover,
.st-oos-similar-list a:focus {
    background: #fff7f2;
    color: #ff5900;
}

/* Miniatura del producto en el desplegable, mismo tamano/ajuste que ya usa
   el widget "Variantes" (safetopspareparts) de esta misma tienda. */
.st-oos-similar-thumb {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    object-fit: contain;
    border-radius: 3px;
    background: #f7f7f7;
}

/* Nota de envio/cobro, bajo la fila de botones. */
.st-oos-charge-note {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-block-start: 0.75rem;
    margin-block-end: 0;
    font-size: 0.82rem;
    color: #767676;
}

.st-oos-charge-note i {
    color: #999999;
}

@media (prefers-reduced-motion: reduce) {
    .st-oos-action-btn {
        transition: none;
    }
}
