/**
 * inloff — SideCart styles V2.0
 *
 * Drawer derecho full-height, mobile-first, CR optimizado 2026.
 * Paleta: navy #1B2540, heart #C5A184, cream #FAF7F2, success #2E7D32.
 */

/* ============================================================
   Kill defensivo del cart-popup de Flatsome
   ============================================================ */
.cart-item.has-dropdown > .nav-dropdown,
#cart-popup,
.cart-popup-inner,
.header-cart-link + .nav-dropdown {
    display: none !important;
}

/* ============================================================
   Container + backdrop + variables
   ============================================================ */
.inloff-sidecart {
    position: fixed;
    inset: 0;
    z-index: 999999;
    visibility: hidden;
    pointer-events: none;

    --sc-navy: #1B2540;
    --sc-navy-deep: #131A2E;
    --sc-heart: #C5A184;
    --sc-heart-light: #D7B89E;
    --sc-cream: #FAF7F2;
    --sc-cream-warm: #F5EFE5;
    --sc-text: #2C2C2C;
    --sc-text-soft: #4A4A4A;
    --sc-muted: #6B6B6B;
    --sc-border: #E8E1D4;
    --sc-success-bg: #E8F5EC;
    --sc-success-border: #B8E0C2;
    --sc-success-text: #1B5E20;
    --sc-danger: #d04848;
}
.inloff-sidecart[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
}

.inloff-sidecart__backdrop {
    position: absolute;
    inset: 0;
    /* Overlay sólido en vez de backdrop-filter: blur a viewport completo (coste de
       GPU alto en animación/scroll, jank device-dependent). Mismo efecto atenuado. */
    background: rgba(19, 26, 46, 0.72);
    opacity: 0;
    transition: opacity .3s cubic-bezier(.22, .61, .36, 1);
}
.inloff-sidecart[aria-hidden="false"] .inloff-sidecart__backdrop {
    opacity: 1;
}

.inloff-sidecart__panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: 420px;
    background: #FFFFFF;
    box-shadow: -16px 0 48px rgba(19, 26, 46, 0.18);
    transform: translateX(100%);
    transition: transform .32s cubic-bezier(.22, .61, .36, 1);
    display: flex;
    flex-direction: column;
    /* FIX scroll horizontal: panel nunca permite overflow horizontal */
    overflow-x: hidden;
    overflow-y: hidden;
}
.inloff-sidecart[aria-hidden="false"] .inloff-sidecart__panel {
    transform: translateX(0);
}

.inloff-sidecart__inner {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    height: 100%;
    max-width: 100%;
}

/* ============================================================
   Scrollbar custom (delgada, brand, WebKit + Firefox)
   ============================================================ */
.inloff-sidecart__items {
    scrollbar-width: thin;
    scrollbar-color: var(--sc-heart) transparent;
}
.inloff-sidecart__items::-webkit-scrollbar {
    width: 6px;
}
.inloff-sidecart__items::-webkit-scrollbar-track {
    background: transparent;
    margin: 4px 0;
}
.inloff-sidecart__items::-webkit-scrollbar-thumb {
    background: rgba(197, 161, 132, 0.5);
    border-radius: 10px;
    transition: background 0.2s ease;
}
.inloff-sidecart__items::-webkit-scrollbar-thumb:hover {
    background: var(--sc-heart);
}

/* ============================================================
   Loading state
   ============================================================ */
.inloff-sidecart__loading {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.inloff-sidecart__spinner {
    width: 32px;
    height: 32px;
    border: 2.5px solid rgba(27, 37, 64, 0.12);
    border-top-color: var(--sc-heart);
    border-radius: 50%;
    animation: inloff-sidecart-spin 0.8s linear infinite;
}
@keyframes inloff-sidecart-spin {
    to { transform: rotate(360deg); }
}

/* ============================================================
   Header
   ============================================================ */
.inloff-sidecart__header {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 22px;
    border-bottom: 1px solid var(--sc-border);
    background: #FFFFFF;
}

.inloff-sidecart__title {
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    color: var(--sc-navy);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.inloff-sidecart__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 22px;
    padding: 0 7px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    background: var(--sc-heart);
    color: #FFFFFF;
    border-radius: 11px;
    letter-spacing: 0;
}

.inloff-sidecart__close {
    background: transparent;
    border: 0;
    padding: 8px;
    cursor: pointer;
    color: var(--sc-navy);
    border-radius: 50%;
    transition: background .15s ease, transform .15s ease;
    line-height: 0;
    margin: 0 !important;
    min-height: 0 !important;
    min-width: 0 !important;
}
.inloff-sidecart__close:hover {
    background: rgba(27, 37, 64, 0.08);
    transform: rotate(90deg);
}

/* ============================================================
   Free shipping bar — evolutivo con emoji + animación de fill
   ============================================================ */
.inloff-sidecart__shipping-bar {
    flex-shrink: 0;
    padding: 14px 22px 16px;
    background: var(--sc-cream-warm);
    border-bottom: 1px solid rgba(27, 37, 64, 0.06);
    transition: background 0.4s ease;
}

.inloff-sidecart__shipping-bar--unlocked {
    background: var(--sc-success-bg);
    border-bottom-color: var(--sc-success-border);
}

.inloff-sidecart__shipping-text {
    margin: 0 0 10px;
    font-size: 13px;
    color: var(--sc-text-soft);
    line-height: 1.4;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.inloff-sidecart__shipping-text strong {
    color: var(--sc-navy);
    font-weight: 700;
}
.inloff-sidecart__shipping-emoji {
    font-size: 18px;
    display: inline-flex;
    align-items: center;
    transition: transform 0.4s cubic-bezier(.22, .61, .36, 1);
}
.inloff-sidecart__shipping-emoji .inloff-ico { width: 18px; height: 18px; }
.inloff-sidecart__shipping-bar--hot .inloff-sidecart__shipping-emoji {
    animation: inloff-sc-shake 1.2s ease-in-out infinite;
}
.inloff-sidecart__shipping-bar--unlocked .inloff-sidecart__shipping-emoji {
    animation: inloff-sc-bounce 0.6s cubic-bezier(.22, .61, .36, 1);
}
@keyframes inloff-sc-shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-2px) rotate(-3deg); }
    75% { transform: translateX(2px) rotate(3deg); }
}
@keyframes inloff-sc-bounce {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.3) rotate(10deg); }
}
.inloff-sidecart__shipping-text--won {
    color: var(--sc-success-text) !important;
    font-weight: 700;
}
.inloff-sidecart__shipping-text--won strong {
    color: var(--sc-success-text);
}

.inloff-sidecart__shipping-track {
    height: 6px;
    background: rgba(27, 37, 64, 0.08);
    border-radius: 3px;
    overflow: hidden;
    position: relative;
}
.inloff-sidecart__shipping-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--sc-heart) 0%, var(--sc-heart-light) 100%);
    border-radius: 3px;
    transition: width .5s cubic-bezier(.22, .61, .36, 1), background 0.4s ease;
    position: relative;
}
.inloff-sidecart__shipping-bar--unlocked .inloff-sidecart__shipping-fill {
    background: linear-gradient(90deg, #2E7D32 0%, #4CAF50 100%);
}
/* Shimmer effect en el fill */
.inloff-sidecart__shipping-fill::after {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.3) 50%, transparent 100%);
    animation: inloff-sc-shimmer 2s ease-in-out infinite;
}
@keyframes inloff-sc-shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

/* ============================================================
   Items list
   ============================================================ */
.inloff-sidecart__items {
    list-style: none;
    margin: 0;
    padding: 0;
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
}

.inloff-sidecart__item {
    display: grid;
    grid-template-columns: 80px 1fr;
    /* sin grid-template-rows fijos: el auto-placement genera tantas filas como
       necesite (1 base + pending opcional + savings opcional). */
    column-gap: 14px;
    row-gap: 10px;
    padding: 16px 22px;
    border-bottom: 1px solid #F0EBE0;
    max-width: 100%;
    box-sizing: border-box;
    animation: inloff-sc-fadeIn 0.25s ease;
}
@keyframes inloff-sc-fadeIn {
    from { opacity: 0; transform: translateX(20px); }
    to { opacity: 1; transform: translateX(0); }
}
.inloff-sidecart__item.is-removing {
    animation: inloff-sc-removeItem 0.3s ease forwards;
    pointer-events: none;
}
@keyframes inloff-sc-removeItem {
    0% { opacity: 1; max-height: 200px; transform: translateX(0); }
    100% { opacity: 0; max-height: 0; transform: translateX(40px); padding-top: 0; padding-bottom: 0; margin: 0; border: 0; }
}
.inloff-sidecart__item > .inloff-sidecart__thumb {
    grid-row: 1;
    grid-column: 1;
}
.inloff-sidecart__item > .inloff-sidecart__body {
    grid-row: 1;
    grid-column: 2;
    min-width: 0;
}
/* Pending y savings ocupan el ancho completo del item y se apilan
   en el orden del DOM (pending va antes que savings en el PHP).
   Sin grid-row explícito el auto-placement de CSS Grid los coloca
   en filas consecutivas — si hay solo uno, ocupa la fila 2; si hay
   ambos, pending va a la 2 y savings a la 3. */
.inloff-sidecart__item > .inloff-sidecart__pending,
.inloff-sidecart__item > .inloff-sidecart__savings {
    grid-column: 1 / -1;
}
.inloff-sidecart__item:last-child {
    border-bottom: 0;
}

.inloff-sidecart__thumb {
    display: block;
    width: 80px;
    height: 80px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--sc-cream);
    flex-shrink: 0;
    transition: transform 0.2s ease;
}
.inloff-sidecart__thumb:hover {
    transform: scale(1.03);
}
.inloff-sidecart__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.inloff-sidecart__body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.inloff-sidecart__row-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.inloff-sidecart__name {
    font-size: 14px;
    font-weight: 500;
    color: var(--sc-navy);
    line-height: 1.35;
    text-decoration: none;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    flex: 1;
    min-width: 0;
    word-break: break-word;
    transition: color 0.15s ease;
}
.inloff-sidecart__name:hover {
    color: var(--sc-heart);
}

.inloff-sidecart__remove {
    background: transparent;
    border: 0;
    padding: 4px;
    cursor: pointer;
    color: #8a92a8;
    border-radius: 50%;
    transition: color .15s ease, background .15s ease, transform .15s ease;
    line-height: 0;
    flex-shrink: 0;
    margin: -2px -4px 0 0 !important;
    min-height: 0 !important;
    min-width: 0 !important;
}
.inloff-sidecart__remove:hover {
    color: var(--sc-danger);
    background: rgba(208, 72, 72, 0.08);
    transform: scale(1.1);
}

/* EPO options con word-break para URLs largos (fix scroll horizontal) */
.inloff-sidecart__epo {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
    max-width: 100%;
}
.inloff-sidecart__epo li {
    font-size: 11.5px;
    color: var(--sc-muted);
    line-height: 1.4;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 100%;
}
.inloff-sidecart__epo-key {
    font-weight: 500;
    color: var(--sc-text-soft);
}
.inloff-sidecart__epo-val {
    color: var(--sc-muted);
}

.inloff-sidecart__row-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
}

/* ============================================================
   Qty stepper
   ============================================================ */
.inloff-sidecart__qty {
    display: inline-flex;
    align-items: stretch;
    flex: 0 0 auto;
    width: 110px;
    height: 36px;
    border: 1px solid #E0D8C8;
    border-radius: 999px;
    background: #FFFFFF;
    overflow: hidden;
    line-height: 1;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.inloff-sidecart__qty:focus-within {
    border-color: var(--sc-heart);
    box-shadow: 0 0 0 3px rgba(197, 161, 132, 0.15);
}

.inloff-sidecart__qty-btn,
.inloff-sidecart .inloff-sidecart__qty-btn {
    box-sizing: border-box !important;
    width: 36px !important;
    height: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: var(--sc-navy) !important;
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    cursor: pointer;
    transition: background .12s ease, transform 0.08s ease;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    box-shadow: none !important;
}
.inloff-sidecart__qty-btn:hover {
    background: var(--sc-cream) !important;
    color: var(--sc-heart) !important;
}
.inloff-sidecart__qty-btn:active {
    transform: scale(0.92);
}
.inloff-sidecart__qty-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.inloff-sidecart__qty-input {
    box-sizing: border-box;
    flex: 0 0 38px;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0 !important;
    padding: 0 2px !important;
    border: 0 !important;
    border-left: 1px solid #F0EBE0 !important;
    border-right: 1px solid #F0EBE0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    color: var(--sc-navy);
    line-height: 34px !important;
    -webkit-appearance: none !important;
    appearance: textfield !important;
    box-shadow: none !important;
    outline: none !important;
}
.inloff-sidecart__qty-input::-webkit-inner-spin-button,
.inloff-sidecart__qty-input::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    margin: 0;
}

.inloff-sidecart__line-total {
    font-size: 14px;
    font-weight: 700;
    color: var(--sc-navy);
    white-space: nowrap;
}
.inloff-sidecart__line-total .amount {
    color: inherit;
}

/* ============================================================
   Callout de ahorros por línea
   ============================================================ */
.inloff-sidecart__savings {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 9px 12px;
    background-color: var(--sc-success-bg);
    color: var(--sc-success-text);
    border: 1px solid var(--sc-success-border);
    border-radius: 8px;
    font-size: 12.5px;
    line-height: 1.35;
    width: 100%;
    box-sizing: border-box;
    max-width: 100%;
}
.inloff-sidecart__savings-icon {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    color: #2E7D32;
}
.inloff-sidecart__savings-text {
    flex: 1 1 auto;
    min-width: 0;
    word-break: break-word;
}
.inloff-sidecart__savings-text strong {
    font-weight: 700;
}
.inloff-sidecart__savings-text .amount {
    color: inherit;
    font-weight: 700;
}
.inloff-sidecart__savings-text small {
    color: #2E7D32;
    font-size: 11px;
    opacity: .85;
    margin-left: 2px;
}

/* ============================================================
   PENDING_PERSONALIZATION — estado pendiente por línea
   Discreto y amable. Una línea: glifo pen heart + label navy + CTA link
   heart con flecha micro. Sin fondo, sin borde — el peso lo lleva el item.
   Mismo lenguaje que /carrito/, ajustado al ancho del drawer.
   ============================================================ */
.inloff-sidecart__pending {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 6px 0 0;
    padding: 0;
    width: 100%;
    box-sizing: border-box;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--sc-navy, #1B2540);
}
.inloff-sidecart__pending-icon {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--sc-heart, #C5A184);
    opacity: 0.95;
}
.inloff-sidecart__pending-icon .inloff-ico { width: 13px; height: 13px; }
.inloff-sidecart__pending-text {
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 500;
    letter-spacing: 0.005em;
    color: var(--sc-navy, #1B2540);
}
.inloff-sidecart__pending-cta {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0;
    background: none;
    color: var(--sc-heart, #C5A184);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
    text-decoration: none;
    white-space: nowrap;
    border-radius: 2px;
    transition: color 160ms cubic-bezier(0.2, 0, 0, 1),
                transform 160ms cubic-bezier(0.2, 0, 0, 1);
}
.inloff-sidecart__pending-cta:hover {
    color: #A4845F;
    text-decoration: none;
}
.inloff-sidecart__pending-cta:hover .inloff-sidecart__pending-arrow {
    transform: translateX(2px);
}
.inloff-sidecart__pending-cta:focus-visible {
    outline: 2px solid var(--sc-heart, #C5A184);
    outline-offset: 3px;
    color: var(--sc-heart, #C5A184);
}
.inloff-sidecart__pending-arrow {
    flex: 0 0 auto;
    transition: transform 160ms cubic-bezier(0.2, 0, 0, 1);
}
@media (prefers-reduced-motion: reduce) {
    .inloff-sidecart__pending-cta,
    .inloff-sidecart__pending-arrow { transition: none; }
}

/* ============================================================
   Footer (summary + CTA + trust)
   ============================================================ */
.inloff-sidecart__footer {
    flex-shrink: 0;
    padding: 18px 22px 22px;
    background: #FFFFFF;
    border-top: 1px solid var(--sc-border);
    box-shadow: 0 -8px 28px rgba(19, 26, 46, 0.06);
    max-width: 100%;
    box-sizing: border-box;
}

.inloff-sidecart__summary {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 6px;
}
.inloff-sidecart__summary-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--sc-muted);
    text-transform: uppercase;
    letter-spacing: 0.12em;
}
.inloff-sidecart__summary-value {
    font-size: 22px;
    font-weight: 700;
    color: var(--sc-navy);
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
}
.inloff-sidecart__summary-value .amount {
    color: inherit;
}
.inloff-sidecart__summary-tax {
    font-size: 10px;
    font-weight: 500;
    color: var(--sc-muted);
    text-transform: uppercase;
    letter-spacing: .06em;
}

/* Aviso de Klarna (carrito y sidecart), inc/inloff-stripe-klarna.php.
   Crema de la marca; el sello de Klarna es el único rosa. */
.inloff-klarna-msg {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
    padding: 10px 12px;
    background: #FBF7F0;
    border: 1px solid #EADFCC;
    border-radius: 10px;
    font-size: 13px;
    line-height: 1.4;
    color: #1B2B4B;
    text-align: left;
}
.inloff-klarna-msg__logo {
    display: block;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 5px;
}
.inloff-klarna-msg strong {
    font-weight: 700;
    white-space: nowrap;
}
.inloff-klarna-msg strong .woocommerce-Price-amount {
    font-weight: inherit;
}
.inloff-envio-nota {
    display: block;
    margin-top: 2px;
    font-size: 11.5px;
    font-weight: 400;
    opacity: .85;
}
.inloff-klarna-msg[hidden] {
    display: none; /* el display:flex de arriba anularía el hidden del navegador */
}
/* En la ficha, bajo el botón de añadir y antes del aviso de personalizado. */
.inloff-klarna-msg--ficha {
    flex-basis: 100%;
    margin: 12px 0 0;
}
.sticky-add-to-cart .inloff-klarna-msg--ficha,
.sticky-add-to-cart-wrapper .inloff-klarna-msg--ficha {
    display: none;
}

.inloff-sidecart__summary-descuento {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin: -2px 0 10px;
    font-size: 13px;
    color: var(--sc-success-text);
}
.inloff-sidecart__summary-descuento strong {
    font-weight: 700;
}
.inloff-sidecart__summary-note {
    margin: 0 0 16px;
    font-size: 11.5px;
    color: var(--sc-muted);
    line-height: 1.4;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* CTA primary — dominante, navy con shadow + icon + price inline */
.inloff-sidecart__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 16px 20px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.4px;
    text-decoration: none;
    border-radius: 999px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background .2s ease, color .2s ease, border-color .2s ease, transform .12s ease, box-shadow .2s ease;
    line-height: 1.2;
    box-sizing: border-box;
    position: relative;
    overflow: hidden;
    margin: 0 !important;
    min-height: 0 !important;
}

.inloff-sidecart__btn--primary {
    background: var(--sc-navy);
    color: #FFFFFF;
    border-color: var(--sc-navy);
    box-shadow: 0 6px 18px rgba(27, 37, 64, 0.22);
}
.inloff-sidecart__btn--primary:hover {
    background: var(--sc-navy-deep);
    border-color: var(--sc-navy-deep);
    color: #FFFFFF;
    transform: translateY(-2px);
    box-shadow: 0 10px 24px rgba(27, 37, 64, 0.28);
}
.inloff-sidecart__btn--primary:active {
    transform: translateY(0);
    box-shadow: 0 4px 14px rgba(27, 37, 64, 0.2);
}

/* Shine effect en hover sobre el botón primary */
.inloff-sidecart__btn--primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 80%;
    height: 100%;
    background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.15) 50%, transparent 100%);
    transition: left 0.6s ease;
    pointer-events: none;
}
.inloff-sidecart__btn--primary:hover::before {
    left: 130%;
}

.inloff-sidecart__btn-label {
    flex: 0 1 auto;
}
.inloff-sidecart__btn-price {
    flex: 0 0 auto;
    margin-left: auto;
    margin-right: 6px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: none;
    opacity: 0.95;
}
.inloff-sidecart__btn-price .amount {
    color: inherit;
}
.inloff-sidecart__btn-arrow {
    flex: 0 0 auto;
    transition: transform 0.25s cubic-bezier(.22, .61, .36, 1);
}
.inloff-sidecart__btn--primary:hover .inloff-sidecart__btn-arrow {
    transform: translateX(4px);
}

/* Ver carrito como link discreto, no botón ghost feo */
.inloff-sidecart__view-cart {
    display: block;
    text-align: center;
    margin-top: 12px;
    font-size: 12px;
    color: var(--sc-muted);
    text-decoration: none;
    letter-spacing: 0.4px;
    transition: color 0.15s ease;
    padding: 4px;
}
.inloff-sidecart__view-cart:hover {
    color: var(--sc-heart);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}

/* Trust badges con flag emoji */
.inloff-sidecart__trust {
    list-style: none;
    margin: 18px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid #F0EBE0;
    display: flex;
    justify-content: space-around;
    gap: 6px;
}
.inloff-sidecart__trust li {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 10.5px;
    color: var(--sc-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    flex: 1 1 auto;
    justify-content: center;
    text-align: center;
}
.inloff-sidecart__trust svg {
    color: var(--sc-heart);
    flex-shrink: 0;
}
.inloff-sidecart__trust-flag {
    font-size: 14px;
    line-height: 1;
}
.inloff-sidecart__trust-flag .inloff-ico { width: 15px; height: 15px; }

/* Aviso cuando el servidor no acepta un cambio (p. ej. una cantidad por encima del tope) */
.inloff-sidecart__aviso {
    margin: 12px 20px 0;
    padding: 10px 12px;
    border-left: 3px solid var(--sc-heart);
    background: rgba(197, 161, 132, .12);
    font-size: 13px;
    line-height: 1.4;
}

/* ============================================================
   Empty state
   ============================================================ */
.inloff-sidecart__empty {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 48px 32px;
}
.inloff-sidecart__empty-icon {
    color: var(--sc-heart);
    margin-bottom: 22px;
    opacity: 0.75;
    animation: inloff-sc-floatY 3s ease-in-out infinite;
}
@keyframes inloff-sc-floatY {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}
.inloff-sidecart__empty-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 22px;
    font-style: italic;
    font-weight: 500;
    color: var(--sc-navy);
    margin: 0 0 10px;
    line-height: 1.2;
}
.inloff-sidecart__empty-text {
    font-size: 13.5px;
    color: var(--sc-muted);
    line-height: 1.5;
    margin: 0 0 28px;
    max-width: 280px;
}
.inloff-sidecart__empty .inloff-sidecart__btn {
    width: auto;
    min-width: 220px;
}

/* ============================================================
   Confetti container (canvas-confetti host)
   ============================================================ */
.inloff-sidecart__confetti {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 9999;
    overflow: hidden;
}
.inloff-sidecart__confetti-piece {
    position: absolute;
    width: 8px;
    height: 12px;
    border-radius: 1px;
    opacity: 0;
    will-change: transform, opacity;
}
.inloff-sidecart__confetti--active .inloff-sidecart__confetti-piece {
    animation: inloff-sc-confetti 1.6s cubic-bezier(.22, .61, .36, 1) forwards;
}
@keyframes inloff-sc-confetti {
    0% {
        opacity: 1;
        transform: translate(0, 0) rotate(0deg);
    }
    100% {
        opacity: 0;
        transform: translate(var(--tx, 0), var(--ty, 100px)) rotate(var(--rot, 360deg));
    }
}

/* ============================================================
   Body lock + updating state
   ============================================================ */
body.inloff-sidecart-open {
    overflow: hidden;
}
.inloff-sidecart__items.is-updating {
    opacity: 0.55;
    pointer-events: none;
    transition: opacity .15s ease;
}

/* ============================================================
   Mobile (≤ 600px)
   ============================================================ */
@media (max-width: 600px) {
    .inloff-sidecart__panel {
        max-width: 100%;
    }
    .inloff-sidecart__header {
        padding: 14px 18px;
    }
    .inloff-sidecart__shipping-bar {
        padding: 12px 18px 14px;
    }
    .inloff-sidecart__item {
        padding: 14px 18px;
        grid-template-columns: 68px 1fr;
        column-gap: 12px;
    }
    .inloff-sidecart__thumb {
        width: 68px;
        height: 68px;
    }
    .inloff-sidecart__footer {
        padding: 16px 18px 20px;
        padding-bottom: max(20px, env(safe-area-inset-bottom));
    }
    .inloff-sidecart__name {
        font-size: 13.5px;
    }
    .inloff-sidecart__btn {
        padding: 15px 18px;
        font-size: 12.5px;
    }
    .inloff-sidecart__btn-price {
        font-size: 13.5px;
    }
    .inloff-sidecart__summary-value {
        font-size: 20px;
    }
    .inloff-sidecart__trust {
        gap: 4px;
    }
    .inloff-sidecart__trust li {
        font-size: 9.5px;
        letter-spacing: 0.3px;
    }
}

/* ============================================================
   Reduced motion
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
    .inloff-sidecart__shipping-fill::after,
    .inloff-sidecart__shipping-emoji,
    .inloff-sidecart__empty-icon,
    .inloff-sidecart__confetti-piece,
    .inloff-sidecart__item {
        animation: none !important;
    }
    .inloff-sidecart__panel,
    .inloff-sidecart__backdrop,
    .inloff-sidecart__btn,
    .inloff-sidecart__close,
    .inloff-sidecart__thumb {
        transition: none !important;
    }
}

/* ============================================================
   Cross-sells — banner duplicados sueltos en sidecart
   ============================================================ */
.inloff-cs-loose-banner {
    margin: 0 16px 12px;
    background: #F8F1E5;
    border: 1px solid rgba(197, 161, 132, .45);
    border-radius: 10px;
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.inloff-cs-loose-banner__row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.inloff-cs-loose-banner__row + .inloff-cs-loose-banner__row {
    border-top: 1px dashed rgba(197, 161, 132, .4);
    padding-top: 10px;
}
.inloff-cs-loose-banner__icon {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #C5A184;
    color: #FFFFFF;
    font-size: 14px;
    line-height: 1;
}
.inloff-cs-loose-banner__text {
    flex: 1 1 200px;
    margin: 0;
    font-size: 13px;
    line-height: 1.4;
    color: #1B2540;
}
.inloff-cs-loose-banner__text strong { font-weight: 700; }
.inloff-cs-loose-banner__cta {
    flex: 0 0 auto;
    margin: 0;
    padding: 7px 14px;
    background: #1B2540;
    color: #FFFFFF;
    border: 0;
    border-radius: 7px;
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: background-color .18s ease, opacity .15s ease;
}
.inloff-cs-loose-banner__cta:hover,
.inloff-cs-loose-banner__cta:focus { background: #2A3658; color: #FFFFFF; }
.inloff-cs-loose-banner__cta:disabled,
.inloff-cs-loose-banner__cta.is-loading { opacity: .6; cursor: progress; }

@media (max-width: 480px) {
    .inloff-cs-loose-banner__cta { width: 100%; text-align: center; }
}

/* ─── Cuenta atrás: la línea fija de cada artículo (carrito, panel lateral y checkout) ───
   Aquí y no en inloff-cuenta-atras.css: el aviso «La oferta terminó…» sigue
   saliendo hasta 7 días después, cuando ese CSS ya no se carga. */
.inloff-ca-linea {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin: 6px 0 0;
    font-size: 12.5px;
    line-height: 1.4;
    color: #7E5E3B;
}
.inloff-ca-linea .inloff-ca__icono {
    flex: none;
    width: 14px;
    height: 14px;
    margin-top: 1px;
}
.inloff-ca-linea--terminada {
    color: #5E6882;
}
