/* ===================== TIENDA VIRTUS ===================== */

/* Ícono del carrito en el navbar */
.nav-carrito {
    position: relative;
    color: var(--secondary-color);
    font-size: 1.25rem;
    text-decoration: none;
    margin-left: 1.5rem;
    transition: color 0.2s;
}
.nav-carrito:hover, .nav-carrito.activo { color: var(--primary-color); }
.carrito-badge {
    position: absolute;
    top: -8px; right: -10px;
    background: var(--primary-color);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    min-width: 18px; height: 18px;
    border-radius: 50%;
    display: none;
    align-items: center; justify-content: center;
    padding: 0 4px;
}

/* Encabezado de la tienda */
.tienda-header {
    text-align: center;
    padding: 55px 20px 30px;
    background: var(--light-bg);
}
.tienda-header h1 { color: var(--secondary-color); font-size: 2rem; margin-bottom: 8px; }
.tienda-header p { color: #777; max-width: 560px; margin: 0 auto; }

.tienda-main { max-width: 1150px; margin: 0 auto; padding: 40px 20px 70px; }

/* Filtros intuitivos */

/* Buscador principal visible */
.buscador-principal {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    margin-bottom: 18px;
}
.buscador-principal > i {
    position: absolute;
    left: 18px;
    color: #8b8b8b;
    font-size: 1rem;
    pointer-events: none;
}
.buscador-principal input {
    width: 100%;
    height: 54px;
    margin: 0;
    padding: 0 52px 0 48px;
    border: 1px solid #ddd7c8;
    border-radius: 14px;
    background: #fff;
    font-family: inherit;
    font-size: .98rem;
    color: #333;
    box-shadow: 0 3px 12px rgba(0,0,0,.035);
    transition: .2s ease;
}
.buscador-principal input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(212,175,55,.12);
}
.buscador-principal input::placeholder { color: #9a9a9a; }
.buscador-limpiar {
    position: absolute;
    right: 12px;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: #f2f0ea;
    color: #666;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
}
.buscador-limpiar:hover { background: #e7e2d6; color: #111; }
.filtros-tienda { margin-bottom: 34px; }
.categorias-rapidas { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 22px; }
.categoria-chip { border: 1px solid #ddd7c8; background: #fff; color: #555; border-radius: 999px; padding: 9px 18px; font-family: inherit; font-size: .88rem; font-weight: 600; cursor: pointer; transition: .2s ease; }
.categoria-chip:hover { border-color: var(--primary-color); color: var(--secondary-color); }
.categoria-chip.activa { background: var(--secondary-color); color: #fff; border-color: var(--secondary-color); box-shadow: 0 5px 14px rgba(0,0,0,.14); }
.filtros-barra { display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: 12px; align-items: end; padding: 18px; background: #f8f7f3; border: 1px solid #ebe6d8; border-radius: 14px; }
.filtro-busqueda { position: relative; display: flex; align-items: center; align-self: end; height: 46px; }
.filtro-busqueda i { position: absolute; left: 15px; color: #999; }
.filtro-busqueda input { display:block; width: 100%; height: 46px; margin:0; padding: 0 14px 0 42px; border: 1px solid #ddd8ca; border-radius: 9px; background: #fff; font-family: inherit; font-size: .9rem; }
.filtro-select-wrap { display: flex; flex-direction: column; gap: 5px; }
.filtro-select-wrap span { font-size: .68rem; color: #777; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; }
.filtro-select-wrap select { display:block; width:100%; height: 46px; margin:0; padding: 0 11px; border: 1px solid #ddd8ca; border-radius: 9px; background: #fff; font-family: inherit; color: #444; cursor: pointer; }
.filtro-busqueda input:focus, .filtro-select-wrap select:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(212,175,55,.12); }
.filtros-resumen { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; color: #777; font-size: .85rem; }
.filtros-resumen button { background: none; border: none; color: #777; font-family: inherit; cursor: pointer; }
.filtros-resumen button:hover { color: var(--primary-dark); }
.producto-categorias { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:2px; }
.producto-categoria { display: inline-block; background: #f1ead5; color: #80691f; border-radius: 20px; padding: 3px 8px; font-size: .64rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; margin-right: 0; margin-bottom: 6px; }
.sin-resultados { text-align: center; padding: 70px 20px; color: #777; }
.sin-resultados i { color: #d8d2c4; font-size: 3rem; margin-bottom: 14px; }
.sin-resultados h2 { color: var(--secondary-color); font-size: 1.35rem; }
.sin-resultados p { margin: 6px 0 22px; }

/* Grilla de productos */
.productos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 26px;
}
.producto-card {
    background: #fff;
    border: 1px solid var(--border-color);
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform 0.25s, box-shadow 0.25s;
    display: flex; flex-direction: column;
}
.producto-card[hidden] { display: none; }
.producto-card:hover { transform: translateY(-5px); box-shadow: 0 12px 28px rgba(0,0,0,0.1); }
.producto-img {
    position: relative;
    height: 240px;
    background: var(--light-bg);
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
}
.producto-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    box-sizing: border-box;
    padding: 12px;
}
.producto-img i { font-size: 3.5rem; color: #d8d2c4; }
.agotado-tag {
    position: absolute; top: 12px; left: 12px;
    background: rgba(0,0,0,0.75); color: #fff;
    font-size: 0.72rem; font-weight: 600;
    padding: 4px 10px; border-radius: 20px;
}
.oferta-especial-tag{position:absolute;top:12px;right:12px;background:#d92f3b;color:#fff;font-size:.7rem;font-weight:700;padding:5px 10px;border-radius:20px;box-shadow:0 4px 12px rgba(217,47,59,.25);z-index:2}
.oferta-detalle-tag{display:inline-flex;align-items:center;gap:6px;background:#d92f3b;color:#fff;border-radius:20px;padding:6px 12px;font-size:.75rem;font-weight:700;margin-bottom:10px}
.producto-info { padding: 16px 18px 20px; }
.producto-marca {
    display: inline-block;
    font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase;
    color: var(--primary-color); font-weight: 600; margin-bottom: 4px;
}
.producto-info h3 { font-size: 1.05rem; color: var(--secondary-color); margin-bottom: 8px; line-height: 1.3; }
.producto-precio { color: #555; font-size: 0.95rem; }
.producto-precio strong { color: var(--secondary-color); font-size: 1.05rem; }
.producto-precio del,.producto-inicio-info del{color:#999;margin:0 5px;text-decoration-thickness:1.5px}
.producto-precio .precio-oferta,.producto-inicio-info .precio-oferta{color:#d92f3b}

.tienda-vacia, .carrito-vacio {
    text-align: center; padding: 70px 20px; color: #888;
}
.tienda-vacia i, .carrito-vacio i { font-size: 3rem; color: #d8d2c4; margin-bottom: 16px; }
.tienda-vacia p, .carrito-vacio p { margin-bottom: 20px; }

/* ---------- Ficha de producto ---------- */
.producto-detalle { max-width: 1000px; margin: 30px auto; padding: 0 20px 70px; }
.back-link { display: inline-block; color: var(--primary-color); text-decoration: none; font-weight: 600; margin-bottom: 24px; }
.back-link:hover { color: #e6c200; }
.producto-detalle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 45px; align-items: start; }
.producto-detalle-img {
    background: var(--light-bg); border-radius: 16px; overflow: hidden;
    aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center;
}
.producto-detalle-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    box-sizing: border-box;
    padding: 18px;
}
.producto-detalle-img i { font-size: 5rem; color: #d8d2c4; }
.producto-detalle-info h1 { color: var(--secondary-color); font-size: 1.9rem; margin: 4px 0 14px; }
.producto-desc { color: #555; line-height: 1.7; margin-bottom: 20px; }
.precio-grande { font-size: 2rem; font-weight: 700; color: var(--secondary-color); margin-bottom: 22px; }
.precio-grande.en-oferta{display:flex;align-items:baseline;gap:10px;color:#d92f3b;flex-wrap:wrap}
.precio-grande del{font-size:1.15rem;font-weight:500;color:#999;text-decoration-thickness:2px}
.tamano-precio{display:flex;gap:5px;align-items:baseline;flex-wrap:wrap}
.tamano-precio del{font-size:.75rem;color:#999}
.tamano-precio strong{font-weight:600;color:#555}
.selector-label { display: block; font-weight: 600; margin-bottom: 10px; color: var(--secondary-color); }

.tamanos-selector { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 26px; }
.tamano-opcion {
    position: relative;
    border: 2px solid var(--border-color); border-radius: 10px;
    padding: 12px 16px; cursor: pointer; transition: all 0.2s;
    display: flex; flex-direction: column; min-width: 120px;
}
.tamano-opcion input { position: absolute; opacity: 0; }
.tamano-opcion:has(input:checked) { border-color: var(--primary-color); background: rgba(212,175,55,0.06); }
.tamano-nombre { font-weight: 600; font-size: 0.92rem; color: var(--secondary-color); }
.tamano-precio { color: #666; font-size: 0.9rem; margin-top: 2px; }
.tamano-opcion.agotado { opacity: 0.5; cursor: not-allowed; }
.tamano-agotado { font-size: 0.72rem; color: #c0392b; font-weight: 600; margin-top: 2px; }

.cantidad-row { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.cantidad-control { display: flex; align-items: center; border: 1px solid var(--border-color); border-radius: 8px; overflow: hidden; }
.cantidad-control button { background: var(--light-bg); border: none; width: 40px; height: 42px; font-size: 1.2rem; cursor: pointer; color: var(--secondary-color); }
.cantidad-control button:hover { background: #eee; }
.cantidad-control input { width: 52px; height: 42px; text-align: center; border: none; font-size: 1rem; font-family: inherit; }

.btn-agregar {
    width: 100%; background: var(--primary-color); color: #fff;
    border: none; border-radius: 10px; padding: 15px;
    font-family: inherit; font-size: 1.05rem; font-weight: 600; cursor: pointer;
    transition: background 0.2s; display: flex; align-items: center; justify-content: center; gap: 10px;
}
.btn-agregar:hover { background: #c19b2e; }
.agregado-msg { text-align: center; color: #2e7d32; font-weight: 600; margin-top: 12px; opacity: 0; transition: opacity 0.3s; }
.agregado-msg.visible { opacity: 1; }
.sin-stock-msg { color: #c0392b; font-weight: 500; }

/* ---------- Carrito ---------- */
.carrito-main { max-width: 820px; margin: 0 auto; padding: 40px 20px 70px; }
.carrito-main h1 { color: var(--secondary-color); margin-bottom: 26px; }
.carrito-item {
    display: grid; grid-template-columns: 70px 1fr auto auto 30px;
    gap: 16px; align-items: center;
    background: #fff; border: 1px solid var(--border-color);
    border-radius: 12px; padding: 12px 16px; margin-bottom: 12px;
}
.ci-img img, .ci-noimg { width: 70px; height: 70px; border-radius: 8px; object-fit: cover; background: var(--light-bg); display: flex; align-items: center; justify-content: center; }
.ci-noimg i { color: #d8d2c4; font-size: 1.5rem; }
.ci-info h4 { font-size: 0.98rem; color: var(--secondary-color); margin-bottom: 2px; }
.ci-info span { font-size: 0.82rem; color: #888; }
.ci-precio { font-size: 0.85rem; color: #666; margin-top: 3px; }
.ci-cant { display: flex; align-items: center; border: 1px solid var(--border-color); border-radius: 8px; overflow: hidden; }
.ci-cant button { background: var(--light-bg); border: none; width: 32px; height: 34px; cursor: pointer; font-size: 1.1rem; }
.ci-cant button:hover { background: #eee; }
.ci-cant span { width: 36px; text-align: center; font-weight: 600; font-size: 0.95rem; }
.ci-subtotal { font-weight: 700; color: var(--secondary-color); font-size: 0.98rem; white-space: nowrap; }
.ci-quitar { background: none; border: none; color: #c0392b; font-size: 1rem; cursor: pointer; }

.carrito-resumen { margin-top: 24px; background: var(--light-bg); border-radius: 14px; padding: 24px; }
.carrito-total { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.carrito-total span { font-size: 1.1rem; color: #555; }
.carrito-total strong { font-size: 1.7rem; color: var(--secondary-color); }
.btn-finalizar {
    width: 100%; background: #25D366; color: #fff; border: none; border-radius: 10px;
    padding: 15px; font-family: inherit; font-size: 1.05rem; font-weight: 600; cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 10px; transition: background 0.2s;
}
.btn-finalizar:hover { background: #1da851; }
.carrito-nota { text-align: center; font-size: 0.82rem; color: #999; margin-top: 12px; }
.seguir-comprando { display: block; text-align: center; margin-top: 16px; color: var(--primary-color); text-decoration: none; font-weight: 600; }

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
    .filtros-barra { grid-template-columns: 1fr 1fr; }
    .categorias-rapidas { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; scrollbar-width: none; }
    .categorias-rapidas::-webkit-scrollbar { display: none; }
    .categoria-chip { flex: 0 0 auto; }
    .producto-detalle-grid { grid-template-columns: 1fr; gap: 26px; }
    .producto-detalle-info h1 { font-size: 1.5rem; }
    .precio-grande { font-size: 1.6rem; }
    .tienda-header h1 { font-size: 1.6rem; }
    .carrito-item { grid-template-columns: 60px 1fr auto; grid-template-areas: "img info quitar" "img cant subtotal"; row-gap: 8px; }
    .ci-img { grid-area: img; } .ci-info { grid-area: info; } .ci-cant { grid-area: cant; } .ci-subtotal { grid-area: subtotal; text-align: right; } .ci-quitar { grid-area: quitar; justify-self: end; }
    .nav-carrito { margin-left: auto; margin-right: 12px; }
}

@media (max-width: 480px) {
    .buscador-principal input { height: 50px; font-size: .92rem; }
    .filtros-barra { grid-template-columns: 1fr; padding: 14px; }
    .filtros-resumen { align-items: flex-start; gap: 10px; }
}

/* ---------- Checkout ---------- */
.checkout-main { max-width: 950px; margin: 0 auto; padding: 40px 20px 70px; }
.checkout-main h1 { color: var(--secondary-color); margin-bottom: 26px; }
.checkout-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 30px; align-items: start; }
.checkout-datos h2 { font-size: 1.15rem; color: var(--secondary-color); margin-bottom: 14px; }
.checkout-datos label { display: block; font-weight: 600; font-size: 0.9rem; margin: 12px 0 6px; color: var(--secondary-color); }
.checkout-datos input, .checkout-datos select, .checkout-datos textarea {
    width: 100%; padding: 11px 14px; border: 1px solid var(--border-color); border-radius: 8px;
    font-family: inherit; font-size: 0.98rem; box-sizing: border-box;
}
.checkout-datos input:focus, .checkout-datos select:focus, .checkout-datos textarea:focus { outline: none; border-color: var(--primary-color); }
.fila-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.entrega-opciones { display: flex; gap: 12px; margin-bottom: 8px; flex-wrap: wrap; }
.entrega-opcion {
    flex: 1; min-width: 140px; border: 2px solid var(--border-color); border-radius: 10px;
    padding: 14px; cursor: pointer; display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 0.92rem;
}
.entrega-opcion i { color: var(--primary-color); }
.entrega-opcion:has(input:checked) { border-color: var(--primary-color); background: rgba(212,175,55,0.06); }
.entrega-opcion input { width: auto !important; }
.checkout-resumen { background: var(--light-bg); border-radius: 14px; padding: 24px; position: sticky; top: 90px; }
.checkout-resumen h2 { font-size: 1.1rem; color: var(--secondary-color); margin-bottom: 14px; }
.resumen-item { display: flex; justify-content: space-between; gap: 10px; font-size: 0.9rem; padding: 8px 0; border-bottom: 1px solid #e6e2d8; color: #555; }
.resumen-item small { color: #999; }
.checkout-total { display: flex; justify-content: space-between; align-items: center; margin: 16px 0; }
.checkout-total span { font-size: 1.05rem; color: #555; }
.checkout-total strong { font-size: 1.5rem; color: var(--secondary-color); }

/* ---------- Retorno del pago ---------- */
.retorno-main { max-width: 560px; margin: 0 auto; padding: 70px 20px; text-align: center; }
.retorno-icono { font-size: 4rem; margin-bottom: 18px; }
.retorno-icono.ok { color: #2e7d32; }
.retorno-icono.pend { color: #e6a700; }
.retorno-icono.fail { color: #c0392b; }
.retorno-main h1 { color: var(--secondary-color); margin-bottom: 12px; }
.retorno-main p { color: #666; line-height: 1.7; }
.retorno-acciones { margin-top: 28px; display: flex; flex-direction: column; gap: 12px; align-items: center; }

@media (max-width: 768px) {
    .checkout-grid { grid-template-columns: 1fr; }
    .checkout-resumen { position: static; }
}

/* ---------- Seguimiento del pedido (cliente) ---------- */
.pedido-page { min-height: 100vh; display: flex; flex-direction: column; background: #f7f6f2; }
.pedido-page .navbar { width: 100%; }
.pedido-page .footer { width: 100%; margin-top: auto; }
.pedido-main { width: calc(100% - 40px); max-width: 720px; margin: 42px auto 64px; padding: 36px; background: #fff; border: 1px solid #ece8dc; border-top: 4px solid var(--primary-color); border-radius: 18px; box-shadow: 0 12px 35px rgba(26,26,26,.07); }
.pedido-main h1 { color: var(--secondary-color); margin-bottom: 6px; font-size: 1.85rem; line-height: 1.25; }
.pedido-sub { color: #666; margin-bottom: 28px; }
.seguimiento { display: flex; justify-content: space-between; margin: 30px 0; position: relative; }
.seguimiento::before { content: ''; position: absolute; top: 24px; left: 8%; right: 8%; height: 3px; background: var(--border-color); z-index: 0; }
.seg-paso { position: relative; z-index: 1; text-align: center; flex: 1; }
.seg-icono { width: 48px; height: 48px; border-radius: 50%; background: #fff; border: 3px solid var(--border-color); display: flex; align-items: center; justify-content: center; margin: 0 auto 8px; color: #ccc; font-size: 1.1rem; }
.seg-paso.hecho .seg-icono { border-color: var(--primary-color); background: var(--primary-color); color: #fff; }
.seg-paso span { font-size: 0.78rem; color: #888; display: block; line-height: 1.3; }
.seg-paso.hecho span { color: var(--secondary-color); font-weight: 600; }
.alerta-pedido { padding: 16px; border-radius: 10px; text-align: center; margin: 24px 0; font-weight: 500; }
.alerta-pedido.pendiente { background: #fff4e0; color: #b9770a; }
.alerta-pedido.rechazado { background: #fdecea; color: #c0392b; }
.pedido-detalle-box { background: var(--light-bg); border-radius: 14px; padding: 24px; margin-top: 20px; }
.pedido-detalle-box h2 { font-size: 1.1rem; color: var(--secondary-color); margin-bottom: 14px; }
.pedido-linea { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #e6e2d8; font-size: 0.92rem; color: #555; }
.pedido-linea small { color: #999; }
.pedido-linea.total { border-bottom: none; font-weight: 700; color: var(--secondary-color); font-size: 1.05rem; margin-top: 6px; }
.pedido-entrega { margin-top: 16px; font-size: 0.92rem; color: #555; }
.pedido-ayuda { text-align: center; color: #999; font-size: 0.85rem; margin-top: 24px; }

@media (max-width: 600px) {
    .pedido-main { width: calc(100% - 24px); margin: 22px auto 40px; padding: 24px 18px; border-radius: 14px; }
    .pedido-main h1 { font-size: 1.5rem; }
    .seguimiento { align-items: flex-start; margin: 26px -6px; }
    .seguimiento::before { left: 12%; right: 12%; top: 20px; }
    .seg-icono { width: 40px; height: 40px; font-size: .95rem; }
    .seg-paso span { font-size: .68rem; padding: 0 2px; }
    .pedido-detalle-box { padding: 18px; }
    .pedido-linea { gap: 14px; }
    .pedido-linea > span:last-child { white-space: nowrap; }
}

/* ===== V14: Cupones checkout ===== */
.cupon-box{
    margin:20px 0 14px;
    padding:16px;
    border:1px solid #e7dfc9;
    border-radius:12px;
    background:#fffdf7;
}
.cupon-box label{
    display:block;
    margin-bottom:8px;
    font-weight:600;
}
.cupon-fila{
    display:flex;
    gap:8px;
}
.cupon-fila input{
    flex:1;
    min-width:0;
    text-transform:uppercase;
}
.cupon-fila button{
    border:0;
    border-radius:8px;
    padding:0 18px;
    background:#1a1a1a;
    color:#fff;
    font-family:inherit;
    font-weight:600;
    cursor:pointer;
}
.cupon-fila button:disabled{opacity:.55;cursor:wait}
.cupon-estado{margin:9px 0 0;font-size:13px;min-height:18px}
.cupon-estado.ok{color:#177245;font-weight:600}
.cupon-estado.error{color:#b42318;font-weight:500}
.checkout-desglose{margin-top:6px}
.checkout-subtotal,.checkout-descuento{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:7px 0;
    font-size:14px;
}
.checkout-descuento{color:#177245}
.pedido-descuento{color:#177245;font-weight:600}
@media (max-width:520px){
    .cupon-fila{flex-direction:column}
    .cupon-fila button{min-height:44px}
}

/* ===== V15: Checkout premium Virtus ===== */
.checkout-main{
    max-width:1040px;
    padding-top:46px;
}
.checkout-main > h1{
    font-size:clamp(1.75rem,3vw,2.25rem);
    letter-spacing:-.035em;
    margin-bottom:30px;
}
.checkout-grid{
    grid-template-columns:minmax(0,1.25fr) minmax(340px,.85fr);
    gap:34px;
}
.checkout-resumen{
    position:sticky;
    top:92px;
    overflow:hidden;
    padding:0;
    border:1px solid #ebe6d9;
    border-radius:20px;
    background:#fff;
    box-shadow:0 18px 55px rgba(27,24,17,.08);
}
.checkout-resumen::before{
    content:"";
    display:block;
    height:4px;
    background:linear-gradient(90deg,var(--primary-color),#efd678,var(--primary-color));
}
.checkout-resumen-cabecera{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    padding:24px 24px 18px;
}
.checkout-resumen-cabecera h2{
    margin:2px 0 0;
    font-size:1.28rem;
    letter-spacing:-.02em;
}
.checkout-eyebrow{
    display:block;
    color:#9b7b20;
    font-size:.7rem;
    line-height:1;
    font-weight:700;
    letter-spacing:.13em;
    text-transform:uppercase;
}
.checkout-seguro{
    display:inline-flex;
    align-items:center;
    gap:6px;
    white-space:nowrap;
    padding:7px 10px;
    border:1px solid #e8e1cc;
    border-radius:999px;
    background:#fbf8ef;
    color:#6f5d28;
    font-size:.7rem;
    font-weight:600;
}
.checkout-productos{
    margin:0 24px;
    border-top:1px solid #eee9df;
    border-bottom:1px solid #eee9df;
}
.resumen-item{
    align-items:center;
    gap:18px;
    padding:15px 0;
    border-bottom:1px solid #f0ece4;
    color:#303030;
}
.resumen-item:last-child{border-bottom:0}
.resumen-producto-info{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:3px;
}
.resumen-producto-nombre{
    color:#242424;
    font-size:.9rem;
    font-weight:600;
    line-height:1.35;
}
.resumen-producto-meta{
    color:#999;
    font-size:.75rem;
}
.resumen-producto-precio{
    flex:0 0 auto;
    color:#282828;
    font-size:.9rem;
    font-weight:650;
    white-space:nowrap;
}
.cupon-box{
    margin:18px 24px 8px;
    padding:16px;
    border:1px solid #e9e2cf;
    border-radius:15px;
    background:linear-gradient(145deg,#fffcf4,#faf7ee);
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.cupon-box.aplicado{
    border-color:#a8d5bd;
    background:linear-gradient(145deg,#f6fcf8,#eff9f3);
    box-shadow:0 0 0 3px rgba(23,114,69,.06);
}
.cupon-box.error-cupon{
    border-color:#efb5af;
    background:#fffafa;
}
.cupon-titulo{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:13px;
}
.cupon-icono{
    width:36px;
    height:36px;
    flex:0 0 36px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#1f1f1f;
    color:#fff;
    box-shadow:0 5px 14px rgba(0,0,0,.12);
}
.cupon-titulo strong{
    display:block;
    color:#222;
    font-size:.88rem;
    line-height:1.25;
}
.cupon-titulo small{
    display:block;
    margin-top:2px;
    color:#8c8c8c;
    font-size:.7rem;
    line-height:1.35;
}
.cupon-fila{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
}
.cupon-input-wrap{
    min-width:0;
    height:44px;
    display:flex;
    align-items:center;
    gap:9px;
    padding:0 12px;
    border:1px solid #ded7c8;
    border-radius:10px;
    background:#fff;
    transition:border-color .2s ease,box-shadow .2s ease;
}
.cupon-input-wrap:focus-within{
    border-color:var(--primary-color);
    box-shadow:0 0 0 3px rgba(212,175,55,.11);
}
.cupon-input-wrap > i{
    color:#ae9c6e;
    font-size:.8rem;
}
.cupon-fila .cupon-input-wrap input{
    width:100%;
    min-width:0;
    height:100%;
    padding:0;
    border:0;
    outline:0;
    background:transparent;
    color:#252525;
    font-family:inherit;
    font-size:.82rem;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.cupon-fila .cupon-input-wrap input::placeholder{
    color:#b0aaa0;
    font-weight:400;
    letter-spacing:0;
    text-transform:none;
}
.cupon-fila button{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:0 15px;
    border-radius:10px;
    background:#222;
    transition:transform .18s ease,background .18s ease,opacity .18s ease;
}
.cupon-fila button:hover:not(:disabled){
    background:#000;
    transform:translateY(-1px);
}
.cupon-fila button i{font-size:.72rem}
.cupon-fila button:disabled{opacity:.55;cursor:wait;transform:none}
.cupon-estado{
    min-height:0;
    margin:0;
    font-size:.74rem;
    line-height:1.4;
    transition:margin .2s ease;
}
.cupon-estado:not(:empty){margin:10px 1px 0}
.cupon-estado.ok,
.cupon-estado.error{
    display:flex;
    align-items:flex-start;
    gap:6px;
}
.checkout-desglose{
    margin:4px 24px 0;
    padding:12px 0 4px;
}
.checkout-subtotal,.checkout-descuento{
    padding:6px 0;
    font-size:.82rem;
}
.checkout-subtotal span{color:#777}
.checkout-descuento span,
.checkout-descuento strong{color:#177245}
.checkout-total{
    margin:9px 0 0;
    padding:15px 0 12px;
    border-top:1px solid #e9e4da;
}
.checkout-total span{
    color:#282828;
    font-size:.95rem;
    font-weight:600;
}
.checkout-total strong{
    font-size:1.7rem;
    letter-spacing:-.035em;
}
.checkout-pagar{
    width:calc(100% - 48px);
    min-height:60px;
    margin:4px 24px 0;
    padding:10px 13px;
    border-radius:13px;
    justify-content:flex-start;
    gap:11px;
    box-shadow:0 9px 22px rgba(185,145,37,.22);
}
.checkout-pagar-icono{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:rgba(255,255,255,.17);
}
.checkout-pagar-texto{
    min-width:0;
    display:flex;
    flex:1;
    flex-direction:column;
    align-items:flex-start;
    text-align:left;
    line-height:1.25;
}
.checkout-pagar-texto strong{font-size:.93rem}
.checkout-pagar-texto small{
    margin-top:2px;
    color:rgba(255,255,255,.76);
    font-size:.67rem;
    font-weight:400;
}
.checkout-pagar-flecha{
    margin-left:auto;
    margin-right:4px;
    font-size:.84rem;
}
.checkout-confianza{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px 16px;
    margin:14px 24px 0;
    color:#858585;
    font-size:.66rem;
}
.checkout-confianza span{
    display:inline-flex;
    align-items:center;
    gap:5px;
}
.checkout-confianza i{color:#9f8846}
.checkout-resumen .carrito-nota{
    max-width:310px;
    margin:9px auto 0;
    padding:0 24px;
    color:#aaa;
    font-size:.68rem;
    line-height:1.5;
}
.checkout-resumen .seguir-comprando{
    margin:14px 0 0;
    padding:15px 24px 19px;
    border-top:1px solid #f0ece4;
    color:#9b7b20;
    font-size:.78rem;
}
.checkout-resumen .seguir-comprando i{
    margin-right:5px;
    font-size:.7rem;
}

@media (max-width:768px){
    .checkout-main{padding:28px 14px 50px}
    .checkout-grid{grid-template-columns:1fr;gap:22px}
    .checkout-resumen{position:static;border-radius:17px}
}
@media (max-width:520px){
    .checkout-resumen-cabecera{padding:20px 18px 15px}
    .checkout-seguro{font-size:.62rem;padding:6px 8px}
    .checkout-productos{margin:0 18px}
    .cupon-box{margin:16px 18px 7px;padding:14px}
    .cupon-fila{grid-template-columns:1fr}
    .cupon-fila button{width:100%}
    .checkout-desglose{margin-left:18px;margin-right:18px}
    .checkout-pagar{width:calc(100% - 36px);margin-left:18px;margin-right:18px}
    .checkout-confianza{margin-left:18px;margin-right:18px}
    .checkout-resumen .carrito-nota{padding-left:18px;padding-right:18px}
    .checkout-resumen .seguir-comprando{padding-left:18px;padding-right:18px}
}


/* === V16: condición de envío === */
.envio-politica{
    margin-top:12px;
    display:flex;
    align-items:flex-start;
    gap:9px;
    padding:11px 12px;
    border:1px solid #e8dfc8;
    border-radius:11px;
    background:#fffaf0;
    color:#6d6249;
    font-size:.75rem;
    line-height:1.5;
}
.envio-politica i{
    margin-top:3px;
    color:#b58d25;
}
.envio-politica strong{color:#3a3427}
.checkout-envio{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:7px 0 4px;
    font-size:.82rem;
}
.checkout-envio span{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#777;
}
.checkout-envio span i{
    width:15px;
    color:#a88b3a;
    text-align:center;
}
.checkout-envio strong{font-weight:700}
.checkout-envio .envio-gratis{color:#177245}
.checkout-envio .envio-por-pagar{color:#9a6717}
.checkout-envio .envio-pendiente{color:#777}
.checkout-envio-aviso{
    margin:2px 0 8px;
    padding:8px 10px;
    border-radius:9px;
    background:#f7f7f7;
    color:#777;
    font-size:.68rem;
    line-height:1.45;
}
.checkout-envio-aviso.gratis{
    background:#f0f8f3;
    color:#356f4f;
}
.checkout-envio-aviso.por-pagar{
    background:#fff7e8;
    color:#855f20;
}
@media (max-width:520px){
    .envio-politica{font-size:.71rem}
}
