/**
 * Ahorro en tu carrito (cartsavings)
 *
 * Estilos deliberadamente neutros: heredan tipografía y tamaño del tema
 * y solo aportan color, espaciado y jerarquía. Los colores llegan como
 * custom properties desde la configuración del módulo.
 *
 * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
 */

.cartsavings {
    --cartsavings-bg: #f4faf5;
    --cartsavings-text: #2d3436;
    --cartsavings-accent: #2e7d32;
    --cartsavings-border: #cfe8d4;
    --cartsavings-radius: 6px;

    color: var(--cartsavings-text);
    font-size: inherit;
    line-height: 1.45;
    margin: 1rem 0;
}

.cartsavings--align-center {
    text-align: center;
}

.cartsavings--align-right {
    text-align: right;
}

.cartsavings-icon {
    color: var(--cartsavings-accent);
    flex: 0 0 auto;
    vertical-align: -0.15em;
}

.cartsavings-amount {
    color: var(--cartsavings-accent);
    font-weight: 700;
}

.cartsavings-percent {
    white-space: nowrap;
}

/* Bloque detallado */

.cartsavings--block {
    background: var(--cartsavings-bg);
    border: 1px solid var(--cartsavings-border);
    border-radius: var(--cartsavings-radius);
    padding: 0.85rem 1rem;
}

.cartsavings-title {
    align-items: center;
    display: flex;
    font-weight: 600;
    gap: 0.4rem;
    margin: 0 0 0.5rem;
}

.cartsavings--align-center .cartsavings-title {
    justify-content: center;
}

.cartsavings--align-right .cartsavings-title {
    justify-content: flex-end;
}

.cartsavings-lines {
    list-style: none;
    margin: 0;
    padding: 0;
}

.cartsavings-line {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 0.2rem 0;
    min-width: 0;
}

.cartsavings-label,
.cartsavings-value {
    min-width: 0;
    overflow-wrap: break-word;
}

.cartsavings-strike {
    text-decoration: line-through;
}

.cartsavings-line--total {
    border-top: 1px solid var(--cartsavings-border);
    font-weight: 600;
    margin-top: 0.35rem;
    padding-top: 0.45rem;
}

.cartsavings-line--final {
    font-weight: 600;
}

.cartsavings-line--summary {
    display: block;
    background: var(--cartsavings-accent);
    color: #ffffff;
    font-weight: 700;
    text-align: center;
    border-radius: var(--cartsavings-radius);
    padding: 0.5rem 0.8rem;
    margin: 0 0 0.4rem;
}

/* Tamaño de letra por línea (pestaña Líneas que se muestran) */

.cartsavings-size-small {
    font-size: 0.85em;
}

.cartsavings-size-large {
    font-size: 1.25em;
}

.cartsavings-footer {
    margin: 0.6rem 0 0;
    opacity: 0.75;
}

/* Línea única */

.cartsavings--inline .cartsavings-inline {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0;
}

.cartsavings--inline.cartsavings--align-center .cartsavings-inline {
    justify-content: center;
}

.cartsavings--inline.cartsavings--align-right .cartsavings-inline {
    justify-content: flex-end;
}

/* Distintivo compacto */

.cartsavings--compact .cartsavings-badge {
    align-items: center;
    background: var(--cartsavings-bg);
    border: 1px solid var(--cartsavings-border);
    border-radius: var(--cartsavings-radius);
    display: inline-flex;
    gap: 0.35rem;
    padding: 0.3rem 0.6rem;
}

.cartsavings--compact .cartsavings-badge strong {
    color: var(--cartsavings-accent);
}

/* Marcador vacío: sigue en el DOM para poder repoblarse por AJAX */

.cartsavings--empty {
    display: none;
    margin: 0;
}

/* Estado de actualización tras cambiar el carrito */

.cartsavings.is-updating {
    opacity: 0.45;
}

@media (prefers-reduced-motion: no-preference) {
    .cartsavings {
        transition: opacity 0.15s ease;
    }
}
