/* El editor puede guardar estados visibles del carrito: el primer paint siempre es carga. */
html:not([data-sed-carrito-listo]) #carrito #carrito-contenido,
html:not([data-sed-carrito-listo]) #carrito #carrito-vacio { display: none !important; }
html:not([data-sed-carrito-listo]) #carrito #carrito-estado { display: flex !important; }
/* Pack editor_v3 — Estilos del flujo de compra (extraído de tumascota, marca neutra). */
[hidden] { display: none !important; }
.pasos, .carrito, .checkout, .resultado, .acceso, .transferencia, .sucursal, .cobertura-chip { --marca-suave: #f1e6f7; --marca-suave2: #e2c9ef; --marca-oscuro: #6d2b93; --tinta: #2b2230; --tinta-media: #5f5468; --tinta-suave: #8b8194; --crema: #faf7fc; --linea: #ece5f1; --linea-fuerte: #ddcfe6; --exito: #17915f; --alerta: #d1453b; --radio-xs: 10px; --radio-sm: 14px; --radio: 20px; --radio-lg: 28px; --sombra-sm: 0 2px 10px rgba(60,20,80,.06); --sombra: 0 12px 32px rgba(60,20,80,.09); }
ol.pasos, ul.resumen, ul#carrito-lista, ol.resultado__pasos { list-style: none; margin: 0; padding: 0; }
ol.pasos > li.pasos__item { display: inline-flex !important; flex-direction: row !important; align-items: center !important; white-space: nowrap !important; flex: none; }
ol.pasos > li.pasos__item > span { flex-shrink: 0; }
/* Confirmando la orden: tarjeta de carga con spinner (el motor esconde el
   formulario y scrollea hasta acá mientras se genera el pedido). */
:is(#checkout .checkout__estado[aria-busy="true"], #carrito .carrito__estado[aria-busy="true"], html:not([data-sed-carrito-listo]) #carrito #carrito-estado) { box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; width: min(100%, 560px); min-height: 220px; margin: 1.75rem auto; padding: 2rem 1.5rem; text-align: center; background: #fff; border: 1px solid var(--linea, #e8e5ec); border-radius: 24px; box-shadow: 0 12px 40px rgba(30, 24, 40, .06); font-size: 1.05rem; font-weight: 700; line-height: 1.5; color: var(--tinta, #2b2230); }
:is(#checkout .checkout__estado[aria-busy="true"], #carrito .carrito__estado[aria-busy="true"], html:not([data-sed-carrito-listo]) #carrito #carrito-estado)::before { content: ""; box-sizing: border-box; width: 44px; height: 44px; flex: 0 0 auto; border-radius: 50%; border: 4px solid var(--marca-suave2, #e9e5f0); border-top-color: var(--marca, #6d2b93); animation: cargando-girar .8s linear infinite; }
:is(#checkout .checkout__estado[aria-busy="true"], #carrito .carrito__estado[aria-busy="true"], html:not([data-sed-carrito-listo]) #carrito #carrito-estado)::after { content: "Esto puede tardar unos segundos."; max-width: 32ch; font-size: .875rem; font-weight: 400; color: var(--tinta-media, #706879); }
@keyframes cargando-girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { :is(#checkout .checkout__estado[aria-busy="true"], #carrito .carrito__estado[aria-busy="true"], html:not([data-sed-carrito-listo]) #carrito #carrito-estado)::before { animation: none; } }
.cargando { display: flex; align-items: center; gap: .6rem; padding: 1.1rem 0; color: var(--tinta-media); font-size: .9rem; font-weight: 600; }
.cargando__spinner { flex: 0 0 auto; width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--marca-suave2); border-top-color: var(--marca, #6d2b93); animation: cargando-girar .8s linear infinite; }
@media (prefers-reduced-motion: reduce) { .cargando__spinner { animation: none; } }
/* El motor envuelve cada paso en un botón para volver atrás: hereda la fila. */
.pasos__accion { display: inline-flex; align-items: center; gap: inherit; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.pasos__accion:disabled { cursor: default; }
.pasos__accion:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; border-radius: 8px; }
.aviso {
    grid-column: 1 / -1;
    text-align: center;
    padding: clamp(1.75rem, 4vw, 3rem);
    background: var(--crema);
    border: 2px dashed var(--linea-fuerte);
    border-radius: var(--radio-lg);
    color: var(--tinta-media);
}
.aviso__titulo { font-family: var(--fuente-display); font-size: 1.2rem; color: var(--tinta); margin-bottom: .3rem; }
.aviso .boton { margin-top: .9rem; }

.toast {
    position: fixed;
    left: 50%;
    bottom: 1.5rem;
    transform: translateX(-50%);
    z-index: 200;
    background: var(--tinta);
    color: #fff;
    padding: .8rem 1.3rem;
    border-radius: 999px;
    font-weight: 700;
    box-shadow: var(--sombra-lg);
    animation: subir .25s ease;
}
@keyframes subir { from { opacity: 0; transform: translate(-50%, 12px); } }
/* Pasos del checkout */
.pasos { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.75rem; }
.pasos__item {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .45rem 1rem .45rem .5rem;
    border-radius: 999px;
    background: var(--crema);
    color: var(--tinta-suave);
    font-weight: 700;
    font-size: .88rem;
}
.pasos__item span {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #fff;
    color: var(--tinta-suave);
    font-size: .78rem;
    font-weight: 800;
}
.pasos__item--activo { background: var(--marca-suave); color: var(--marca-oscuro); }
.pasos__item--activo span { background: var(--marca); color: #fff; }
.pasos__item--hecho { color: var(--exito); }
.pasos__item--hecho span { background: var(--exito); color: #fff; }
.carrito__estado { color: var(--tinta-media); font-weight: 700; }

.carrito__vacio {
    text-align: center;
    padding: clamp(2rem, 5vw, 3.5rem);
    background: var(--crema);
    border-radius: var(--radio-xl);
}
.carrito__vacio img { width: 150px; margin: 0 auto 1rem; }
.carrito__vacio p { color: var(--tinta-media); max-width: 34rem; margin-inline: auto; }
.carrito__vacio-acciones { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-top: 1.2rem; }

.carrito {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 20rem);
    gap: clamp(1.25rem, 3vw, 2.25rem);
    align-items: start;
}
.carrito__lista-caja {
    background: #fff;
    border: 2px solid var(--linea);
    border-radius: var(--radio-lg);
    padding: .5rem 1.1rem;
}
.carrito__lista li + li { border-top: 1px solid var(--linea); }

.carrito-linea {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr) auto;
    gap: .35rem 1.1rem;
    align-items: start;
    padding: 1.1rem 0;
}
.carrito-linea__media {
    width: 84px;
    height: 84px;
    border-radius: var(--radio-sm);
    background: var(--crema);
    overflow: hidden;
    display: grid;
    place-items: center;
}
.carrito-linea__media img { width: 100%; height: 100%; object-fit: contain; padding: .4rem; }
.carrito-linea__sinfoto { font-size: .7rem; color: var(--tinta-suave); text-align: center; }
.carrito-linea__cuerpo { display: grid; gap: .25rem; }
.carrito-linea__titulo {
    font-weight: 800;
    color: var(--tinta);
    text-decoration: none;
    line-height: 1.35;
}
.carrito-linea__titulo:hover { color: var(--marca); }
.carrito-linea__detalle { font-size: .84rem; color: var(--tinta-suave); }
.carrito-linea__aviso { font-size: .82rem; color: var(--alerta); font-weight: 700; }

/* stepper unificado: una pÃ­ldora con âˆ’ cantidad +, y Quitar al costado */
.carrito-linea__controles { display: flex; align-items: center; gap: .9rem; margin-top: .5rem; }
.carrito-linea__stepper {
    display: inline-flex;
    align-items: center;
    border: 2px solid var(--linea);
    border-radius: 999px;
    background: #fff;
}
.carrito-linea__boton {
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    font-weight: 800;
    font-size: 1.05rem;
    color: var(--tinta-media);
    cursor: pointer;
    line-height: 1;
}
.carrito-linea__boton:hover { color: var(--marca); }
.carrito-linea__cantidad {
    width: 2.4rem;
    border: 0;
    padding: 0;
    text-align: center;
    font: inherit;
    font-weight: 800;
    color: var(--tinta);
    -moz-appearance: textfield;
    appearance: textfield;
}
.carrito-linea__cantidad::-webkit-outer-spin-button,
.carrito-linea__cantidad::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.carrito-linea__quitar {
    border: 0;
    background: transparent;
    color: var(--tinta-suave);
    text-decoration: underline;
    cursor: pointer;
    font-size: .84rem;
}
.carrito-linea__quitar:hover { color: var(--alerta); }

/* columna derecha: lo que se paga por la lÃ­nea, con el unitario debajo */
.carrito-linea__pago { display: grid; gap: .1rem; justify-items: end; text-align: right; }
.carrito-linea__subtotal {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-family: var(--fuente-display);
    font-size: 1.2rem;
    font-weight: 700;
    white-space: nowrap;
}
.carrito-linea__unitario { font-size: .8rem; color: var(--tinta-suave); white-space: nowrap; }

.carrito__resumen {
    position: sticky;
    top: 8.5rem;
    background: #fff;
    border: 2px solid var(--linea);
    border-radius: var(--radio-lg);
    padding: 1.25rem;
    display: grid;
    gap: .7rem;
}
.carrito__fila { display: flex; justify-content: space-between; align-items: baseline; font-weight: 700; }
.carrito__fila b { font-family: var(--fuente-display); font-size: 1.4rem; }
.carrito__fila, .checkout__fila { gap: 1rem; }
.carrito__fila > span, .checkout__fila > span, .cuenta-orden__item > span { min-width: 0; overflow-wrap: anywhere; }
.carrito__fila > b, .checkout__fila > b, .cuenta-orden__item > b, .resumen-linea > b { flex-shrink: 0; white-space: nowrap; text-align: right; }
.carrito__fila--descuento { margin-block: .65rem; }
.carrito__fila--descuento > span { font-weight: 500; }
.carrito__fila--descuento > b { font-size: 1.05rem; }
.carrito__envio { margin: 0; font-size: .86rem; color: var(--exito); font-weight: 700; }
.carrito__nota { margin: 0; font-size: .84rem; color: var(--tinta-suave); }
.carrito__promos { margin: 0; font-size: .86rem; text-align: center; }
.carrito__promos a { color: var(--marca); font-weight: 700; }

/* ------------------------------------------------------------ Checkout */

.checkout__estado { color: var(--tinta-media); font-weight: 700; }

.acceso { display: grid; place-items: center; }
.acceso__caja {
    width: min(100%, 34rem);
    background: #fff;
    border: 2px solid var(--linea);
    border-radius: var(--radio-lg);
    padding: clamp(1.25rem, 3vw, 2rem);
    display: grid;
    gap: .8rem;
}
.acceso__caja h2 { margin: 0; }
.acceso__tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .35rem;
    background: var(--crema);
    border-radius: 999px;
    padding: .25rem;
}
.acceso__tab {
    border: 0;
    border-radius: 999px;
    background: transparent;
    padding: .55rem;
    font-weight: 800;
    color: var(--tinta-media);
    cursor: pointer;
}
.acceso__tab[aria-selected="true"] { background: #fff; color: var(--marca); box-shadow: var(--sombra-sm); }
.acceso__panel { display: grid; gap: .8rem; }
[data-recuperacion] form, [data-recuperacion] [data-rec-clave] { display: grid; gap: .8rem; }
.acceso__estado { margin: 0; font-size: .88rem; color: var(--alerta); font-weight: 700; }
.acceso__pie { margin: 0; font-size: .85rem; color: var(--tinta-suave); text-align: center; }
.acceso--solo { place-items: stretch; }

.checkout { display: grid; place-items: center; }
#checkout-tarjeta { margin-inline: auto; }
.checkout__caja {
    width: min(100%, 40rem);
    background: #fff;
    border: 2px solid var(--linea);
    border-radius: var(--radio-lg);
    padding: clamp(1.25rem, 3vw, 2rem);
    display: grid;
    gap: 1rem;
}
.checkout__campos { display: grid; gap: .9rem; }
.checkout__campos--par { grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.checkout__campos--par .campo--ancho { grid-column: 1 / -1; }
.checkout__paso { display: grid; gap: 1rem; }
.checkout__leyenda { margin: 0; font-size: .86rem; color: var(--tinta-suave); }
.checkout__resumen-caja {
    background: var(--crema);
    border-radius: var(--radio);
    padding: 1.1rem;
    display: grid;
    gap: .5rem;
}
.resumen { display: grid; gap: .4rem; }
.resumen-linea { display: flex; justify-content: space-between; gap: 1rem; font-size: .9rem; }
.resumen-linea__nombre { color: var(--tinta-media); }
.resumen-linea__monto { font-weight: 800; white-space: nowrap; }
.checkout__fila { display: flex; justify-content: space-between; align-items: baseline; font-weight: 700; padding-top: .4rem; border-top: 1px solid var(--linea-fuerte); }
.checkout__fila--total b { font-family: var(--fuente-display); font-size: 1.5rem; color: var(--marca); }
.checkout__importe-actualizado { position: relative; margin: 1.25rem 0; padding: 1rem 1.1rem 1rem 3rem; border: 1px solid #e7bb63; border-left: 4px solid #b87908; border-radius: 12px; background: #fff6df; color: #684400; }
.checkout__importe-actualizado::before { content: "!"; position: absolute; left: 1rem; top: 1.1rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: #946000; color: #fff; text-align: center; line-height: 1.25rem; font-weight: 800; }
.checkout__importe-actualizado strong { display: block; font-size: 1rem; }
.checkout__importe-actualizado p { margin: .4rem 0 0; font-size: .9rem; line-height: 1.55; }
.checkout__pago { margin: 0; font-size: .84rem; color: var(--tinta-suave); text-align: center; }

/* Pago: selector de medios + datos de transferencia a la vista */
.checkout__pagos { display: grid; gap: .7rem; }
.transferencia {
    background: var(--crema);
    border-radius: var(--radio);
    padding: 1rem 1.1rem;
    display: grid;
    gap: .5rem;
}
.transferencia__titulo { margin: 0; font-weight: 800; }
.transferencia__datos {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .25rem .9rem;
    margin: 0;
    font-size: .92rem;
}
.transferencia__datos dt { font-weight: 700; color: var(--tinta-suave); }
.transferencia__datos dd { margin: 0; font-weight: 800; word-break: break-all; user-select: all; }
.transferencia__datos dd.transferencia__monto { font-family: var(--fuente-display); font-size: 1.15rem; color: var(--marca); }

/* ------------------------------------------ Cierre del proceso (resultado) */

.resultado {
    width: min(100%, 40rem);
    margin-inline: auto;
    background: #fff;
    border: 2px solid var(--linea);
    border-radius: var(--radio-lg);
    padding: clamp(1.5rem, 4vw, 2.5rem);
    display: grid;
    gap: .8rem;
    justify-items: center;
    text-align: center;
    animation: resultado-entra .45s ease both;
}
@keyframes resultado-entra {
    from { opacity: 0; transform: translateY(12px) scale(.98); }
    to { opacity: 1; transform: none; }
}

/* La marca se dibuja sola: el aro primero y el trazo despuÃ©s, con un halo
   que se abre una vez. El estado elige quÃ© marca se ve (y con quÃ© color). */
.resultado__marca {
    position: relative;
    width: 104px;
    height: 104px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--crema);
    color: var(--tinta-media);
}
.resultado__marca::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 3px solid currentColor;
    opacity: 0;
    animation: resultado-halo 1.5s ease-out .3s 1;
}
.resultado__svg {
    width: 96px;
    height: 96px;
    grid-area: 1 / 1;
    fill: none;
    stroke: currentColor;
    stroke-width: 4.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0;
}
.resultado__aro { stroke-dasharray: 200; stroke-dashoffset: 200; animation: resultado-trazo .65s ease-out forwards; }
.resultado__trazo { stroke-dasharray: 60; stroke-dashoffset: 60; animation: resultado-trazo .5s ease-out .5s forwards; }
@keyframes resultado-trazo { to { stroke-dashoffset: 0; } }
@keyframes resultado-halo {
    0% { transform: scale(.85); opacity: .45; }
    100% { transform: scale(1.4); opacity: 0; }
}

.resultado--exito .resultado__svg--exito,
.resultado--pendiente .resultado__svg--pendiente,
.resultado--error .resultado__svg--error { opacity: 1; }

.resultado--exito { border-color: rgba(23, 145, 95, .35); }
.resultado--exito .resultado__marca { color: var(--exito); background: rgba(23, 145, 95, .09); }
.resultado--error { border-color: rgba(209, 69, 59, .35); }
.resultado--error .resultado__marca { color: var(--alerta); background: rgba(209, 69, 59, .09); }

.resultado__titulo { margin: 0; font-family: var(--fuente-display); font-size: clamp(1.35rem, 4vw, 1.7rem); }
.resultado__texto { margin: 0; max-width: 32rem; color: var(--tinta-media); }
.resultado__detalle { width: 100%; }
.resultado__detalle .transferencia__datos {
    text-align: left;
    background: var(--crema);
    border-radius: var(--radio);
    padding: 1rem 1.1rem;
}

/* QuÃ© sigue: los pasos del proceso, numerados por CSS para que la lista
   siga siendo semÃ¡ntica. */
.resultado__pasos {
    counter-reset: resultado-paso;
    list-style: none;
    margin: .2rem 0 0;
    padding: 0;
    width: 100%;
    max-width: 34rem;
    display: grid;
    gap: .6rem;
    text-align: left;
}
.resultado__paso {
    counter-increment: resultado-paso;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .7rem;
    align-items: start;
    font-size: .94rem;
    color: var(--tinta-media);
}
.resultado__paso::before {
    content: counter(resultado-paso);
    width: 1.7rem;
    height: 1.7rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--crema);
    color: var(--tinta-media);
    font-family: var(--fuente-display);
    font-size: .85rem;
}
.resultado--exito .resultado__paso::before { background: rgba(23, 145, 95, .1); color: var(--exito); }
.resultado--error .resultado__paso::before { background: rgba(209, 69, 59, .1); color: var(--alerta); }

.resultado__acciones {
    display: grid;
    gap: .5rem;
    width: min(100%, 22rem);
    margin-top: .5rem;
}
.resultado__acciones .boton { text-align: center; }

/* ------------------------------------------------- Checkout: entrega */

.entrega__modos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: .6rem;
}
.entrega__modo { position: relative; cursor: pointer; }
/* El radio queda oculto sobre la tarjeta entera: el estado lo muestra la caja */
.entrega__modo-control { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.entrega__modo-caja {
    display: grid;
    gap: .2rem;
    height: 100%;
    padding: .85rem 1rem;
    background: #fff;
    border: 2px solid var(--linea);
    border-radius: var(--radio);
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.entrega__modo:hover .entrega__modo-caja { border-color: var(--marca-suave2); }
.entrega__modo-control:checked + .entrega__modo-caja {
    border-color: var(--marca);
    background: var(--marca-suave);
    box-shadow: var(--sombra-sm);
}
.entrega__modo-control:focus-visible + .entrega__modo-caja { box-shadow: 0 0 0 4px var(--marca-suave2); }
.entrega__modo-titulo { font-family: var(--fuente-display); font-size: 1.05rem; color: var(--tinta); }
.entrega__modo-texto { font-size: .84rem; color: var(--tinta-media); }

.entrega__panel { display: grid; gap: .8rem; }

.sucursal {
    display: grid;
    gap: .3rem;
    background: var(--crema);
    border-radius: var(--radio);
    padding: 1.1rem;
}
.sucursal__nombre { margin: 0; font-family: var(--fuente-display); font-size: 1.15rem; color: var(--tinta); }
.sucursal__direccion { margin: 0; font-weight: 700; color: var(--tinta-media); }
.sucursal__direccion--falta { font-weight: 600; font-style: italic; color: var(--tinta-suave); }
.sucursal__dato { margin: 0; font-size: .88rem; color: var(--tinta-suave); }
.sucursal__dato--tel { font-weight: 700; color: var(--marca); text-decoration: none; }
.sucursal__dato--tel:hover { text-decoration: underline; }
.sucursal .boton { justify-self: start; margin-top: .5rem; }

.entrega__tipos { display: grid; gap: .5rem; }
.entrega__tipo {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .6rem;
    align-items: start;
    cursor: pointer;
}
.entrega__tipo-control { width: 1.1rem; height: 1.1rem; margin: .95rem 0 0; accent-color: var(--marca); cursor: pointer; }
.entrega__tipo-caja {
    display: grid;
    gap: .1rem;
    padding: .75rem .9rem;
    background: #fff;
    border: 2px solid var(--linea);
    border-radius: var(--radio-sm);
    transition: border-color .15s ease, background .15s ease;
}
.entrega__tipo:hover .entrega__tipo-caja { border-color: var(--marca-suave2); }
.entrega__tipo-control:checked + .entrega__tipo-caja { border-color: var(--marca); background: var(--marca-suave); }
.entrega__tipo-control:focus-visible + .entrega__tipo-caja { box-shadow: 0 0 0 4px var(--marca-suave2); }
.entrega__tipo-caja b { font-size: .95rem; color: var(--tinta); }
.entrega__tipo-caja span { font-size: .82rem; color: var(--tinta-suave); }

.envio__cotiza {
    margin: 0;
    padding: .85rem 1rem;
    background: var(--crema);
    border: 2px dashed var(--linea-fuerte);
    border-radius: var(--radio-sm);
    font-size: .88rem;
    color: var(--tinta-media);
}
.envio__cotiza strong { color: var(--tinta); }
.entrega__direccion { grid-template-columns:repeat(2,minmax(0,1fr)); }
.entrega__opcionales { margin:1rem 0 0; padding-top:1.25rem; border-top:1px solid var(--linea); }
.cobertura-chip { display:flex; align-items:center; gap:.65rem; width:fit-content; max-width:100%; margin:.25rem 0; padding:.7rem 1rem; border-radius:16px; background:#f6f2f5; color:var(--tinta-media); font-size:.88rem; font-weight:600; line-height:1.5; }
.cobertura-chip::before { content:""; width:9px; height:9px; flex-shrink:0; border-radius:50%; background:currentColor; }
.cobertura-chip[data-estado="cargando"] { background:#fff0f7; color:var(--marca,#ea2484); }
.cobertura-chip[data-estado="cargando"]::before { width:18px; height:18px; border:2px solid #f5c7dd; border-top-color:currentColor; background:transparent; animation:cargando-girar .8s linear infinite; }
.cobertura-chip[data-estado="gratis"] { background:#e7f6ee; color:#087a4c; }
.cobertura-chip[data-estado="costo"] { background:#edf3ff; color:#28569a; }
.cobertura-chip[data-estado="sin-cobertura"], .cobertura-chip[data-estado="error"] { background:#fff0e9; color:#a44417; }
@media(max-width:480px) { .entrega__direccion { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .cobertura-chip::before { animation:none !important; } }

.entrega__datos-adicionales { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:480px) { .entrega__datos-adicionales { grid-template-columns:1fr; } }

.entrega__calle-fila { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.65rem; align-items:stretch; }
.entrega__ubicar { padding-inline:1rem; white-space:nowrap; font-size:.85rem; border-radius:var(--radio,12px); }
@media(max-width:480px) { .entrega__calle-fila { grid-template-columns:minmax(0,1fr) 135px; } .entrega__ubicar { white-space:normal; padding-inline:.5rem; font-size:.8rem; } }

.cobertura-chip { width:100%; box-sizing:border-box; }

/* Advertencia de compra mínima: feedback visible y modal accesible. */
#checkout .checkout__leyenda--advertencia { color: #a83232; background: #fff2f1; border: 1px solid #f1c2be; border-left: 4px solid #d94a43; border-radius: 12px; padding: .9rem 1rem; font-weight: 500; line-height: 1.6; }
.checkout-alerta { box-sizing: border-box; position: fixed; inset: 0; margin: auto; width: min(440px, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); overflow-y: auto; padding: 2rem; border: 0; border-radius: 20px; background: #fff; box-shadow: 0 20px 60px rgba(30, 24, 40, .25); color: #2d3436; font-family: inherit; text-align: center; }
.checkout-alerta::backdrop { background: rgba(45, 52, 54, .45); backdrop-filter: blur(6px); }
.checkout-alerta__icono { display: grid; place-items: center; margin: 0 auto 1rem; width: 62px; height: 62px; border-radius: 50%; background: #fff0ee; color: #cf433c; font-size: 2rem; font-weight: 700; }
.checkout-alerta__titulo { margin: 0 0 .75rem; font-size: 1.2rem; font-weight: 700; line-height: 1.4; }
.checkout-alerta__texto { margin: 0 0 1.5rem; color: #636e72; font-size: .95rem; line-height: 1.6; }
.checkout-alerta__acciones { display: grid; gap: .65rem; }
.checkout-alerta__principal, .checkout-alerta__secundario { display: block; box-sizing: border-box; width: 100%; border: 0; border-radius: 12px; padding: .85rem 1rem; font: inherit; font-size: .9rem; font-weight: 600; line-height: 1.4; cursor: pointer; text-decoration: none; }
.checkout-alerta__principal { background: var(--marca, #6a5ae0); color: #fff; }
.checkout-alerta__secundario { background: #f1f3f4; color: #2d3436; }
.checkout-alerta__cerrar { margin-top: 1rem; padding: .4rem; border: 0; background: transparent; color: #636e72; font: inherit; font-size: .85rem; cursor: pointer; }
.checkout-alerta :focus-visible { outline: 2px solid var(--marca, #6a5ae0); outline-offset: 3px; }

.cuenta-panel__vista[data-cuenta-vista="cuenta"] { display: grid; gap: 1.5rem; }
.cuenta-domicilios { margin-top: 0; padding: 1.25rem; border: 1px solid var(--linea, #e6e2d9); border-radius: var(--r-lg, 16px); background: var(--papel, #fff); }
.cuenta-domicilios > .panel__titulo { margin: 0 0 1rem; padding-bottom: .65rem; border-bottom: 1px solid var(--linea, #e6e2d9); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--tinta, #171711); }
.cuenta-domicilios__lista { display: grid; gap: .75rem; margin: 1rem 0; }
.cuenta-domicilios__item { display: flex; align-items: center; gap: 1rem; padding: 1rem; border: 1px solid var(--linea, #e6e2e9); border-radius: 12px; background: var(--hueso, #f7f5f1); }
.cuenta-domicilios__item p { flex: 1; min-width: 0; overflow-wrap: anywhere; margin: 0; }
.cuenta-domicilios__acciones { display: flex; flex-shrink: 0; align-items: center; gap: .5rem; margin-left: auto; }
.domicilio-accion { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; width: 36px; height: 36px; padding: 0; border: 1px solid transparent; border-radius: 10px; cursor: pointer; transition: background .15s, border-color .15s; }
.domicilio-accion--editar { color: var(--marca, #6a5ae0); background: #f3f1f8; border-color: #e7e2ef; }
.domicilio-accion--quitar { color: #c84942; background: #fff0ee; border-color: #f4d9d5; }
.domicilio-accion--editar:hover { background: #e9e4f3; border-color: currentColor; }
.domicilio-accion--quitar:hover { background: #ffe1dc; border-color: currentColor; }
.domicilio-accion:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.cuenta-domicilios__form { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.cuenta-domicilios__form-acciones { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.cuenta-domicilios__form-acciones > button { grid-row: 1; }
.cuenta-domicilios__form-acciones > .boton--texto { border: 1px solid currentColor; }
.cuenta-domicilios__form-acciones > [type="submit"] { grid-column: 2; }
.cuenta-domicilios__form .acceso__estado { grid-column: 1 / -1; }
.checkout-guardar-domicilio { display: flex; align-items: center; gap: .65rem; font-size: .9rem; line-height: 1.5; }
.checkout-guardar-domicilio input { width: 18px; height: 18px; accent-color: var(--marca, #6a5ae0); }
@media (max-width: 600px) { .cuenta-domicilios__form { grid-template-columns: 1fr; } }

/* Componentes compartidos de carrito y checkout. */
.casilla {
    display: flex;
    align-items: center;
    gap: .55rem;
    font-size: .92rem;
    font-weight: 600;
    cursor: pointer;
}
.casilla input { width: 1.1rem; height: 1.1rem; accent-color: var(--marca); }
.modal-confirmar {
    position: fixed;
    inset: 0;
    z-index: 300;
    background: rgba(28, 18, 32, .6);
    display: grid;
    place-items: center;
    padding: 1.5rem;
}
.modal-confirmar__caja {
    background: var(--papel);
    border-radius: var(--r-lg);
    box-shadow: var(--sombra-alta);
    padding: 1.9rem 1.75rem;
    max-width: 26rem;
    width: 100%;
    text-align: center;
}
.modal-confirmar__titulo {
    font-family: var(--texto);
    font-size: 1.45rem;
    font-weight: 700;
    margin-bottom: .5rem;
}
.modal-confirmar__texto { color: var(--tinta-2); margin-bottom: 1.3rem; }
.modal-confirmar__acciones { display: grid; gap: .6rem; }
.carrito__fila--total { padding-top: .6rem; border-top: 1px solid var(--linea-fuerte); }
.carrito__fila--total b { font-size: 1.6rem; color: var(--marca); }
.compra-resumen { text-align: left; border-top: 1px solid var(--linea); padding-top: 1.25rem; }
.compra-resumen__titulo { margin: 0 0 1rem; font-size: 1.1rem; }
.compra-resumen .transferencia__datos { margin-top: 1.5rem; margin-bottom: 0; }
.compra-resumen .transferencia__datos dt,
.compra-resumen .transferencia__datos dd:not(.transferencia__monto) { font-weight: 400; }
.checkout__estado--aviso {
    width: min(100%, 40rem);
    min-height: 180px;
    margin: 1.5rem auto;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    display: grid;
    place-items: center;
    border: 2px solid var(--linea);
    border-radius: var(--r-lg);
    background: var(--papel);
    text-align: center;
    line-height: 1.7;
    text-wrap: pretty;
}
.ubicacion-modal { width:min(94vw,780px); max-height:90dvh; box-sizing:border-box; margin:auto; padding:1.5rem; border:1px solid var(--linea); border-radius:24px; color:var(--tinta); background:var(--papel); box-shadow:0 24px 80px #20102140; overflow:auto; }
.ubicacion-modal::backdrop { background:#24152b88; backdrop-filter:blur(4px); }
.ubicacion-modal__encabezado { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.ubicacion-modal__encabezado h2 { font-size:1.5rem; margin:0; }
.ubicacion-modal__ayuda,.ubicacion-modal__aviso { font-size:.9rem; color:var(--tinta-2); line-height:1.6; margin:.75rem 0; }
.ubicacion-modal__mapa { height: min(48dvh,420px); min-height:240px; border-radius:16px; overflow:hidden; background:var(--hueso); }
#checkout-tarjeta .checkout__estado--error[aria-busy="false"] {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    margin-top: 1.25rem;
    padding: 1rem 1.1rem;
    border: 1px solid #f3b8b8;
    border-left: 4px solid #b42318;
    border-radius: 12px;
    background: #fff1f0;
    color: #8f1d16;
    font-weight: 600;
    line-height: 1.6;
    text-align: left;
}
#checkout-tarjeta .checkout__estado--error[aria-busy="false"]::before {
    content: "!";
    display: grid;
    place-items: center;
    flex: 0 0 1.4rem;
    width: 1.4rem;
    height: 1.4rem;
    margin-top: .1rem;
    border: 0;
    border-radius: 50%;
    background: #b42318;
    color: #fff;
    font-size: .95rem;
    font-weight: 800;
    line-height: 1;
    animation: none;
}
@media (max-width: 480px) {
    .ubicacion-modal { padding: 1rem; }
    .ubicacion-modal__encabezado h2 { font-size: 1.2rem; }
}

/* Estado de carga del detalle de producto. */
.ficha-skeleton { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:28px 48px; width:100%; text-align:left; }
.ficha-skeleton__bloque { display:block; border-radius:12px; background:#f3edf1; animation:ficha-skeleton-pulso 1.5s ease-in-out infinite alternate; }
.ficha-skeleton__miga { grid-column:1/-1; width:45%; height:14px; margin-bottom:4px; }
.ficha-skeleton__imagen { aspect-ratio:1; border-radius:28px; }
.ficha-skeleton__resumen { display:flex; flex-direction:column; gap:18px; padding-top:6px; }
.ficha-skeleton__meta { width:42%; height:25px; border-radius:20px; }
.ficha-skeleton__marca { width:24%; height:13px; }
.ficha-skeleton__titulo { width:95%; height:76px; }
.ficha-skeleton__descripcion { width:100%; height:15px; }
.ficha-skeleton__descripcion-corta { width:72%; height:15px; margin-top:-8px; }
.ficha-skeleton__compra { width:100%; height:270px; margin-top:8px; border-radius:28px; }
.ficha-skeleton__beneficios { width:90%; height:60px; margin-top:8px; }
.ficha-skeleton__accesible { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@keyframes ficha-skeleton-pulso { to { opacity:.45; } }
@media(max-width:760px) { .ficha-skeleton { grid-template-columns:minmax(0,1fr); gap:24px; } .ficha-skeleton__miga { width:65%; } .ficha-skeleton__resumen { gap:16px; } }
@media(prefers-reduced-motion:reduce) { .ficha-skeleton__bloque { animation:none; } }
