/* --- Estilos de Etiquetas --- */
.odp-label {
    display: inline-block; padding: 4px 8px; font-size: 12px;
    font-weight: bold; border-radius: 4px; margin-bottom: 8px;
    color: #fff; line-height: 1; margin-right: 5px;
    animation: odp-fade-in 0.5s ease;
}
@keyframes odp-fade-in { from { opacity: 0; } to { opacity: 1; } }

.odp-unique-opportunity { background-color: #111; }
.odp-limited-time-deal { background-color: #d32f2f; }
.odp-labels-wrapper-single { margin-bottom: 10px; }

/* --- Estilos de Precio --- */
.price .odp-price-wrapper {
    font-size: 1.5em; font-weight: bold; color: #333;
}
.odp-price-wrapper .odp-discount-percentage {
    font-size: 0.6em; font-weight: bold; color: #d32f2f;
    margin-left: 10px; padding: 3px 6px; border-radius: 3px;
    background-color: #fbe9e7;
}
.odp-price-wrapper .odp-regular-price {
    display: block; font-size: 0.6em; font-weight: normal;
    color: #777; text-decoration: line-through;
}
/* Ocultamos el precio de oferta por defecto para evitar duplicados */
.price > .sale > del, .price > del { display: none; }
.price > .sale > ins, .price > ins { background: none; text-decoration: none; }

/* --- Estilos de Valoración en Tienda --- */
.odp-shop-rating { margin-bottom: 5px; }
.odp-shop-rating .star-rating { font-size: 1em; }

/* --- Estilos del Modal de Mensaje Exclusivo --- */
.odp-modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.7); z-index: 99998;
    display: flex; align-items: center; justify-content: center;
    opacity: 0; visibility: hidden; transition: all 0.3s ease;
}
.odp-modal-overlay.active { opacity: 1; visibility: visible; }
.odp-modal-container {
    background: #fff; padding: 30px; border-radius: 8px;
    max-width: 500px; width: 90%; position: relative;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    transform: scale(0.9); transition: all 0.3s ease;
}
.odp-modal-overlay.active .odp-modal-container { transform: scale(1); }
.odp-modal-close {
    position: absolute; top: 10px; right: 10px; width: 30px; height: 30px;
    background: #eee; border-radius: 50%; border: none; font-size: 20px;
    cursor: pointer; line-height: 30px; text-align: center;
}
.odp-exclusive-message-trigger-wrapper a {
    display: inline-block; margin-top: 15px; padding: 8px 12px;
    background: #f0f0f0; border-radius: 5px; text-decoration: none;
    color: #333; font-weight: bold; transition: background 0.2s;
}
.odp-exclusive-message-trigger-wrapper a:hover { background: #e0e0e0; }

/* --- Animación de Botones --- */
.button, button.single_add_to_cart_button, .wc-block-components-button {
    position: relative; overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    z-index: 1;
}
.button:hover, button.single_add_to_cart_button:hover, .wc-block-components-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}
.odp-ripple {
    position: absolute; border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    transform: scale(0); animation: odp-ripple-effect 0.6s linear;
    pointer-events: none;
}
@keyframes odp-ripple-effect {
    to { transform: scale(4); opacity: 0; }
}