/* VapEsence 2026-11-05 - página de carrito (/carrito) y toque ligero al proceso de pedido (/pedido).
   Archivo independiente (no entra en la caché CCC). Todo va acotado a body#cart y body#checkout.
   Reversión: quitar el <link> de head.tpl (y, si se quiere, restaurar las plantillas desde la copia). */

body#cart, body#checkout {
  --vs-cp-blue: #2563eb; --vs-cp-blue-d: #1d4fd0; --vs-cp-ink: #07182e; --vs-cp-title: #001738; --vs-cp-mut: #66758d;
  --vs-cp-line: #e6ecf5; --vs-cp-soft: #f5f8fd; --vs-cp-green: #12935a; --vs-cp-green-bg: #e8f7ef; --vs-cp-green-line: #bfe8d2;
  --vs-cp-red: #d92b4b; --vs-cp-red-bg: #fff1f3;
  --vs-cp-shadow: 0 1px 2px rgba(0, 16, 42, .04), 0 12px 32px rgba(0, 16, 42, .07);
}

/* ------------------------------------------------------------------ */
/* 1. Título                                                            */
/* ------------------------------------------------------------------ */
html body#cart .vs-cp .page-title,
html body#checkout #main > .page-title {
  text-align: left; margin: 6px 0 18px; padding: 0;
  font: 850 28px/1.15 Inter, Arial, sans-serif; letter-spacing: -.035em; color: var(--vs-cp-title);
}
html body#cart .vs-cp .page-title::before, html body#cart .vs-cp .page-title::after,
html body#checkout #main > .page-title::before, html body#checkout #main > .page-title::after { display: none; }
html body#cart .vs-cp .page-title span, html body#checkout #main > .page-title span { padding: 0; background: none; border: 0; }

/* ------------------------------------------------------------------ */
/* 2. Líneas de producto = tarjetas                                     */
/* ------------------------------------------------------------------ */
html body#cart .vs-cp .cart-container { background: transparent; border: 0; box-shadow: none; padding: 0; margin: 0; }
html body#cart .vs-cp .cart-overview { margin: 0; padding: 0; background: transparent; border: 0; }
html body#cart .vs-cp ul.vs-cp-items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
html body#cart .vs-cp li.vs-cp-item {
  margin: 0; padding: 18px; background: #fff; border: 1px solid var(--vs-cp-line); border-radius: 16px; box-shadow: var(--vs-cp-shadow);
}

html body#cart .vs-cp .vs-cp-line {
  display: grid; grid-template-columns: 124px minmax(0, 1fr) auto; column-gap: 22px; row-gap: 12px;
  grid-template-areas: "img info side" "img qty side"; align-items: start; margin: 0;
}
html body#cart .vs-cp .vs-cp-line__main { display: contents; }
html body#cart .vs-cp .vs-cp-line__img { grid-area: img; display: flex; align-items: center; justify-content: center; width: 124px; height: 124px; padding: 0; border-radius: 14px; background: var(--vs-cp-soft); border: 1px solid var(--vs-cp-line); overflow: hidden; }
html body#cart .vs-cp .vs-cp-line__img a { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
html body#cart .vs-cp .vs-cp-line__img img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
html body#cart .vs-cp .vs-cp-line__info { grid-area: info; min-width: 0; }
html body#cart .vs-cp .vs-cp-line__qty { grid-area: qty; align-self: end; width: auto; flex: none; padding: 0; }
html body#cart .vs-cp .vs-cp-line__side { grid-area: side; align-self: stretch; display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; min-height: 124px; width: auto; flex: none; padding: 0; }

html body#cart .vs-cp .vs-cp-line .product-line-info { margin: 0; }
html body#cart .vs-cp .vs-cp-line a.vs-cp-line__name {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  font: 700 17px/1.3 Inter, Arial, sans-serif; letter-spacing: -.01em; color: var(--vs-cp-ink); text-decoration: none;
}
html body#cart .vs-cp .vs-cp-line a.vs-cp-line__name:hover { color: var(--vs-cp-blue); }

html body#cart .vs-cp .vs-cp-line__attrs { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
html body#cart .vs-cp .vs-cp-pill {
  display: inline-flex; align-items: center; gap: 4px; margin: 0; padding: 4px 11px; border-radius: 999px;
  background: var(--vs-cp-soft); border: 1px solid var(--vs-cp-line); color: var(--vs-cp-mut);
  font: 500 12.5px/1.3 Inter, Arial, sans-serif; text-transform: none;
}
html body#cart .vs-cp .vs-cp-pill .value { color: var(--vs-cp-ink); font-weight: 600; }
html body#cart .vs-cp .vs-cp-line .product-line-info-secondary.text-muted { display: inline-block; margin-top: 6px; font-size: 12.5px; }

html body#cart .vs-cp .vs-cp-line__unit { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 10px 0 0; padding: 0; width: auto; flex: none; text-align: left; }
html body#cart .vs-cp .vs-cp-line__unit .value { font: 600 15px/1.2 Inter, Arial, sans-serif; color: var(--vs-cp-ink); }
html body#cart .vs-cp .vs-cp-line__unit .product-discount { display: inline-flex; align-items: baseline; gap: 8px; }
html body#cart .vs-cp .vs-cp-line__unit .regular-price { color: #94a3b8; text-decoration: line-through; font-size: 13.5px; font-weight: 500; }
html body#cart .vs-cp .vs-cp-line__unit .discount {
  display: inline-block; margin: 0; padding: 2px 8px; border-radius: 999px; background: var(--vs-cp-red-bg); color: var(--vs-cp-red);
  font: 700 12px/1.4 Inter, Arial, sans-serif;
}
html body#cart .vs-cp .vs-cp-line__unit .unit-price-cart { flex: 0 0 100%; font-size: 12px; color: var(--vs-cp-mut); }

/* Cantidad: - [n] + como en el desplegable (reutiliza el TouchSpin del tema para no romper el AJAX) */
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin {
  display: inline-flex; flex-wrap: nowrap; align-items: stretch; width: auto; max-width: none; min-height: 0; margin: 0;
  height: 44px; border: 1px solid #d3dcec; border-radius: 12px; background: #fff; overflow: hidden;
}
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .input-group-btn-vertical { display: contents; }
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .input-group-addon { display: none !important; }
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .btn {
  position: static; display: flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px;
  margin: 0; padding: 0; border: 0; border-radius: 0; background: #f3f6fc; color: var(--vs-cp-ink); box-shadow: none;
  font-size: 0; line-height: 1; cursor: pointer; transition: background .15s;
}
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .btn:hover { background: #e3ebfa; }
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .btn:focus-visible { outline: 2px solid var(--vs-cp-blue); outline-offset: -2px; }
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .btn i { display: none; }
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .btn::before { font: 600 22px/1 Inter, Arial, sans-serif; color: var(--vs-cp-ink); }
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .bootstrap-touchspin-down { order: 0; }
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .bootstrap-touchspin-down::before { content: "\2212"; }
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .bootstrap-touchspin-up { order: 2; }
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .bootstrap-touchspin-up::before { content: "+"; }
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin input.form-control {
  order: 1; flex: 0 0 48px; width: 48px; min-width: 0; height: 44px; padding: 0; border: 0; border-radius: 0; background: #fff;
  text-align: center; font: 700 16px/1 Inter, Arial, sans-serif; color: var(--vs-cp-ink); box-shadow: none; -moz-appearance: textfield; appearance: textfield;
}
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin input::-webkit-inner-spin-button,
html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
html body#cart .vs-cp .vs-cp-line__qty > input.form-control { width: 72px; height: 44px; border: 1px solid #d3dcec; border-radius: 12px; text-align: center; font-weight: 700; }

/* Subtotal de línea y eliminar */
html body#cart .vs-cp .vs-cp-line__total { margin: 0; padding: 0; width: auto; flex: none; text-align: right; }
html body#cart .vs-cp .vs-cp-line__total .product-price, html body#cart .vs-cp .vs-cp-line__total strong { font: 800 20px/1.2 Inter, Arial, sans-serif; letter-spacing: -.01em; color: var(--vs-cp-ink); white-space: nowrap; }
html body#cart .vs-cp .vs-cp-line__actions { margin: 0; padding: 0; width: auto; flex: none; display: flex; align-items: center; gap: 6px; }
html body#cart .vs-cp a.vs-cp-line__remove {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 10px; color: #7a889e;
  font: 500 13px/1 Inter, Arial, sans-serif; text-decoration: none; transition: color .15s, background .15s;
}
html body#cart .vs-cp a.vs-cp-line__remove .fa { font-size: 15px; }
html body#cart .vs-cp a.vs-cp-line__remove:hover, html body#cart .vs-cp a.vs-cp-line__remove:focus-visible { color: var(--vs-cp-red); background: var(--vs-cp-red-bg); }

/* ------------------------------------------------------------------ */
/* 3. Continuar comprando                                               */
/* ------------------------------------------------------------------ */
html body#cart .vs-cp a.btn.vs-cp-continue {
  display: inline-flex; align-items: center; gap: 8px; margin: 16px 0 6px; padding: 0 20px; height: 46px;
  border-radius: 999px; background: #fff; border: 1px solid #cfd9eb; color: var(--vs-cp-ink);
  font: 600 14px/1 Inter, Arial, sans-serif; text-transform: none; letter-spacing: 0; box-shadow: none; transition: border-color .15s, color .15s, background .15s;
}
html body#cart .vs-cp a.btn.vs-cp-continue:hover { border-color: var(--vs-cp-blue); color: var(--vs-cp-blue); background: #f5f8ff; }
html body#cart .vs-cp a.btn.vs-cp-continue .fa { font-size: 17px; line-height: 1; }

/* ------------------------------------------------------------------ */
/* 4. Resumen (tarjeta pegajosa)                                        */
/* ------------------------------------------------------------------ */
@media (min-width: 992px) {
  html body#cart .vs-cp .cart-grid-right { align-self: stretch; }
  html body#cart .vs-cp .vs-cp-summary { position: sticky; top: 24px; }
}
html body#cart .vs-cp .card.vs-cp-summary {
  margin: 0 0 16px; padding: 0; background: #fff; border: 1px solid var(--vs-cp-line); border-radius: 16px; box-shadow: var(--vs-cp-shadow); overflow: visible;
}
html body#cart .vs-cp .vs-cp-totals { padding: 0; margin: 0; background: transparent; border: 0; }
html body#cart .vs-cp .vs-cp-totals hr { display: none; }
html body#cart .vs-cp .vs-cp-sum__title { margin: 0; padding: 22px 24px 4px; font: 800 19px/1.2 Inter, Arial, sans-serif; letter-spacing: -.02em; color: var(--vs-cp-title); text-align: left; text-transform: none; }
html body#cart .vs-cp .vs-cp-summary .card-body { padding: 14px 24px 0; background: transparent; border: 0; }

html body#cart .vs-cp .vs-cp-summary .cart-summary-line {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; margin: 0 0 10px; padding: 0;
  font: 400 14.5px/1.35 Inter, Arial, sans-serif; color: #44536b;
}
html body#cart .vs-cp .vs-cp-summary .cart-summary-line::before, html body#cart .vs-cp .vs-cp-summary .cart-summary-line::after { content: none; display: none; }
html body#cart .vs-cp .vs-cp-summary .cart-summary-line .label { margin: 0; padding: 0; font-weight: 400; color: #44536b; text-transform: none; }
html body#cart .vs-cp .vs-cp-summary .cart-summary-line .value { float: none; margin: 0; font-weight: 600; color: var(--vs-cp-ink); white-space: nowrap; }
html body#cart .vs-cp .vs-cp-summary .cart-summary-line > div { flex: 0 0 100%; }
html body#cart .vs-cp .vs-cp-sum__count { color: var(--vs-cp-mut); font-size: 12.5px; }

/* Ahorros en verde */
html body#cart .vs-cp .vs-cp-savings { list-style: none; margin: 4px 0 6px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
html body#cart .vs-cp .vs-cp-saving {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0; padding: 9px 12px; border-radius: 12px;
  background: var(--vs-cp-green-bg); border: 1px solid var(--vs-cp-green-line); color: var(--vs-cp-green); font: 600 14px/1.3 Inter, Arial, sans-serif;
}
html body#cart .vs-cp .vs-cp-saving__name { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
html body#cart .vs-cp .vs-cp-saving__name .fa-tag { font-size: 13px; }
html body#cart .vs-cp .vs-cp-saving__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html body#cart .vs-cp .vs-cp-saving__value { font-weight: 800; white-space: nowrap; }
html body#cart .vs-cp a.vs-cp-saving__remove { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; color: var(--vs-cp-green); font-size: 11px; text-decoration: none; opacity: .75; }
html body#cart .vs-cp a.vs-cp-saving__remove:hover { opacity: 1; background: rgba(18, 147, 90, .14); }

/* Total grande */
html body#cart .vs-cp .vs-cp-summary .cart-summary-totals { padding: 4px 24px 0; margin: 0; }
html body#cart .vs-cp .vs-cp-summary .cart-summary-line.cart-total {
  align-items: baseline; margin: 6px 0 0; padding: 16px 0 0; border-top: 1px solid var(--vs-cp-line); background: none;
}
html body#cart .vs-cp .vs-cp-summary .cart-summary-line.cart-total .label { font: 800 17px/1.2 Inter, Arial, sans-serif; color: var(--vs-cp-title); }
html body#cart .vs-cp .vs-cp-summary .cart-summary-line.cart-total .value { font: 850 30px/1.1 Inter, Arial, sans-serif; letter-spacing: -.03em; color: var(--vs-cp-title); }
html body#cart .vs-cp .vs-cp-summary .cart-summary-totals .iqitfreedeliverycount { display: none !important; }
html body#cart .vs-cp .vs-cp-summary .cart-summary-totals .cart-summary-line:not(.cart-total) .label.sub, html body#cart .vs-cp .vs-cp-summary .cart-summary-totals .cart-summary-line:not(.cart-total) .value.sub { font-size: 12.5px; color: var(--vs-cp-mut); font-weight: 400; }

/* Envío gratis */
html body#cart .vs-cp .vs-cp-ship { margin: 14px 24px 0; padding: 13px 14px; border-radius: 12px; background: var(--vs-cp-soft); border: 1px solid var(--vs-cp-line); }
html body#cart .vs-cp .vs-cp-ship__text { margin: 0 0 9px; font: 400 13px/1.3 Inter, Arial, sans-serif; color: #33435c; }
html body#cart .vs-cp .vs-cp-ship__text strong { color: var(--vs-cp-ink); font-weight: 700; }
html body#cart .vs-cp .vs-cp-ship__bar { height: 8px; border-radius: 999px; background: #d9e4f6; overflow: hidden; }
html body#cart .vs-cp .vs-cp-ship__bar > span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #2563eb, #4b8bff); transition: width .35s ease; }
html body#cart .vs-cp .vs-cp-ship.is-free { background: var(--vs-cp-green-bg); border-color: var(--vs-cp-green-line); }
html body#cart .vs-cp .vs-cp-ship.is-free .vs-cp-ship__text, html body#cart .vs-cp .vs-cp-ship.is-free .vs-cp-ship__text strong { color: var(--vs-cp-green); }
html body#cart .vs-cp .vs-cp-ship.is-free .vs-cp-ship__bar { background: #bfe8d2; }
html body#cart .vs-cp .vs-cp-ship.is-free .vs-cp-ship__bar > span { background: var(--vs-cp-green); }

/* Código promocional */
html body#cart .vs-cp .vs-cp-summary .block-promo { margin: 0; padding: 14px 24px 0; background: none; border: 0; }
html body#cart .vs-cp .vs-cp-summary .block-promo .block-promo { padding: 0; }
html body#cart .vs-cp .vs-cp-summary .cart-voucher .promo-name { display: none; }
html body#cart .vs-cp .vs-cp-summary .cart-voucher-area { margin: 0; padding: 0; }
html body#cart .vs-cp .vs-cp-summary .promo-code { margin: 0; padding: 0; }
html body#cart .vs-cp .vs-cp-summary .promo-code .input-group { display: flex; flex-wrap: nowrap; align-items: stretch; width: 100%; border: 1px solid #d3dcec; border-radius: 12px; background: #fff; overflow: hidden; }
html body#cart .vs-cp .vs-cp-summary .promo-code .input-group:focus-within { border-color: var(--vs-cp-blue); box-shadow: 0 0 0 3px rgba(37, 99, 235, .14); }
html body#cart .vs-cp .vs-cp-summary .promo-code .voucher-icon { display: flex; align-items: center; align-self: center; flex: 0 0 auto; width: 42px; height: auto; margin: 0; line-height: 1; padding: 0 0 0 14px; border: 0; background: transparent; color: #8a97ad; box-shadow: none; cursor: default; }
html body#cart .vs-cp .vs-cp-summary .promo-code input.form-control { flex: 1 1 auto; min-width: 0; height: 46px; padding: 0 8px; border: 0; border-radius: 0; background: transparent; box-shadow: none; font: 500 14px/1 Inter, Arial, sans-serif; color: var(--vs-cp-ink); }
html body#cart .vs-cp .vs-cp-summary .promo-code input.form-control:focus { outline: 0; box-shadow: none; }
html body#cart .vs-cp .vs-cp-summary .promo-code .input-group-append { display: flex; margin: 0; }
html body#cart .vs-cp .vs-cp-summary .promo-code .input-group-append .btn {
  height: 100%; margin: 0; padding: 0 18px; border: 0; border-left: 1px solid #d3dcec; border-radius: 0; background: #f3f6fc; color: var(--vs-cp-blue);
  font: 700 14px/1 Inter, Arial, sans-serif; text-transform: none; box-shadow: none; transition: background .15s;
}
html body#cart .vs-cp .vs-cp-summary .promo-code .input-group-append .btn:hover { background: #e3ebfa; }
html body#cart .vs-cp .vs-cp-summary .promo-code .alert { margin: 0 0 10px; padding: 9px 12px; border-radius: 10px; font-size: 13px; }
html body#cart .vs-cp .vs-cp-summary .vsb-cart-note { margin: 10px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--vs-cp-soft); border: 1px solid var(--vs-cp-line); color: var(--vs-cp-mut); font: 400 12.5px/1.45 Inter, Arial, sans-serif; }
html body#cart .vs-cp .vs-cp-summary .vsb-cart-note strong { color: var(--vs-cp-blue); font-weight: 700; }
html body#cart .vs-cp .vs-cp-summary .promo-highlighted { margin: 12px 0 6px; font: 600 12.5px/1.3 Inter, Arial, sans-serif; color: var(--vs-cp-mut); }
html body#cart .vs-cp .vs-cp-summary .promo-discounts { list-style: none; margin: 0; padding: 0; font-size: 12.5px; }
html body#cart .vs-cp .vs-cp-summary .promo-discounts .cart-summary-line { margin: 0 0 4px; font-size: 12.5px; }

/* Botón */
html body#cart .vs-cp .vs-cp-actions { padding: 18px 24px 8px; margin: 0; }
html body#cart .vs-cp a.btn.vs-cp-checkout, html body#cart .vs-cp button.btn.vs-cp-checkout {
  display: flex; align-items: center; justify-content: center; width: 100%; height: 56px; margin: 0; padding: 0 20px; border: 0; border-radius: 14px;
  background: var(--vs-cp-blue); color: #fff; font: 700 17px/1 Inter, Arial, sans-serif; letter-spacing: 0; text-transform: none;
  box-shadow: 0 10px 22px rgba(37, 99, 235, .30); transition: background .15s, transform .1s, box-shadow .15s;
}
html body#cart .vs-cp a.btn.vs-cp-checkout:hover { background: var(--vs-cp-blue-d); box-shadow: 0 12px 26px rgba(37, 99, 235, .36); }
html body#cart .vs-cp a.btn.vs-cp-checkout:active { transform: translateY(1px); }
html body#cart .vs-cp button.btn.vs-cp-checkout.disabled { background: #cbd5e6; box-shadow: none; opacity: 1; }
html body#cart .vs-cp .vs-cp-actions .alert { margin: 0 0 12px; border-radius: 10px; font-size: 13px; }

/* Sellos de confianza: fila compacta con iconos alineados */
html body#cart .vs-cp .vs-cp-summary .blockreassurance_product {
  display: flex; flex-wrap: nowrap; align-items: flex-start; justify-content: space-between; gap: 6px; margin: 10px 24px 0; padding: 16px 0 20px; border-top: 1px solid var(--vs-cp-line);
}
html body#cart .vs-cp .vs-cp-summary .blockreassurance_product > div { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 7px; margin: 0; padding: 0; text-align: center; }
html body#cart .vs-cp .vs-cp-summary .blockreassurance_product > .clearfix { display: none; }
html body#cart .vs-cp .vs-cp-summary .blockreassurance_product .item-product { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin: 0; padding: 0; border-radius: 50%; background: var(--vs-cp-soft); border: 1px solid var(--vs-cp-line); overflow: hidden; float: none; }
html body#cart .vs-cp .vs-cp-summary .blockreassurance_product .item-product img { width: 22px; height: 22px; max-width: none; margin: 0; object-fit: contain; mix-blend-mode: multiply; }
html body#cart .vs-cp .vs-cp-summary .blockreassurance_product p.block-title { margin: 0; padding: 0; font: 600 11.5px/1.25 Inter, Arial, sans-serif; color: #44536b !important; text-transform: none; letter-spacing: 0; }

/* ------------------------------------------------------------------ */
/* 5. Carrito vacío                                                     */
/* ------------------------------------------------------------------ */
html body#cart .vs-cp .vs-cp-empty {
  display: flex; flex-direction: column; align-items: center; text-align: center; margin: 0; padding: 56px 24px 60px;
  background: #fff; border: 1px solid var(--vs-cp-line); border-radius: 16px; box-shadow: var(--vs-cp-shadow);
}
html body#cart .vs-cp .vs-cp-empty__icon {
  display: block; width: 84px; height: 84px; margin-bottom: 20px; border-radius: 50%; background: var(--vs-cp-soft) center / 40px 40px no-repeat
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l1 13H5L6 7z'/%3E%3Cpath d='M9 7a3 3 0 0 1 6 0'/%3E%3C/svg%3E");
  border: 1px solid var(--vs-cp-line);
}
html body#cart .vs-cp .vs-cp-empty__title { margin: 0 0 8px; font: 800 24px/1.2 Inter, Arial, sans-serif; letter-spacing: -.025em; color: var(--vs-cp-title); text-transform: none; }
html body#cart .vs-cp .vs-cp-empty__text { max-width: 440px; margin: 0 0 24px; font: 400 15px/1.55 Inter, Arial, sans-serif; color: var(--vs-cp-mut); }
html body#cart .vs-cp a.btn.vs-cp-empty__btn { display: inline-flex; align-items: center; justify-content: center; height: 52px; padding: 0 32px; border: 0; border-radius: 14px; background: var(--vs-cp-blue); color: #fff; font: 700 16px/1 Inter, Arial, sans-serif; text-transform: none; box-shadow: 0 10px 22px rgba(37, 99, 235, .28); }
html body#cart .vs-cp a.btn.vs-cp-empty__btn:hover { background: var(--vs-cp-blue-d); }
/* Si se borra la última línea por AJAX, la tarjeta de resumen sobra */
@supports selector(:has(*)) {
  html body#cart .vs-cp .cart-grid:has(.vs-cp-empty) .cart-grid-right,
  html body#cart .vs-cp .cart-grid:has(.vs-cp-empty) .vs-cp-continue { display: none; }
  html body#cart .vs-cp .cart-grid:has(.vs-cp-empty) .cart-grid-body { flex: 0 0 100%; max-width: 100%; }
}

/* ------------------------------------------------------------------ */
/* 6. Ventas cruzadas ("los clientes que adquirieron...")               */
/* ------------------------------------------------------------------ */
html body#cart .vs-cp .crossselling-products {
  margin: 22px 0 0; padding: 22px 22px 24px; background: #fff; border: 1px solid var(--vs-cp-line); border-radius: 16px; box-shadow: var(--vs-cp-shadow);
}
html body#cart .vs-cp .crossselling-products .section-title { margin: 0 0 16px; padding: 0; border: 0; text-align: left; font: 800 19px/1.25 Inter, Arial, sans-serif; letter-spacing: -.02em; color: var(--vs-cp-title); text-transform: none; }
html body#cart .vs-cp .crossselling-products .section-title::before, html body#cart .vs-cp .crossselling-products .section-title::after { display: none; }
html body#cart .vs-cp .crossselling-products .section-title span { padding: 0; border: 0; background: none; font: inherit; }

/* Botón Comprar a todo el ancho, debajo; el selector de cantidad sobra (se añade 1 y se ajusta en el carrito) */
html body#cart .vs-cp .crossselling-products .product-add-cart { display: block; width: 100%; margin: 10px 0 0; padding: 0; }
html body#cart .vs-cp .crossselling-products .product-add-cart form { width: 100%; margin: 0; }
html body#cart .vs-cp .crossselling-products .product-add-cart .input-group-add-cart { display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0; width: 100%; }
html body#cart .vs-cp .crossselling-products .product-add-cart .bootstrap-touchspin,
html body#cart .vs-cp .crossselling-products .product-add-cart .input-qty { display: none !important; }
html body#cart .vs-cp .crossselling-products .product-add-cart .btn.add-to-cart {
  display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; max-width: 100%; height: 44px; margin: 0; padding: 0 12px;
  border-radius: 12px; font: 700 14px/1 Inter, Arial, sans-serif; white-space: nowrap; overflow: hidden;
}
html body#cart .vs-cp .crossselling-products .product-miniature { height: 100%; }
html body#cart .vs-cp .crossselling-products .product-description-short { display: none; }

@media (min-width: 576px) {
  /* Cuadrícula en lugar de carrusel (el slider calculaba 6 tarjetas de 155 px): se anula el desplazamiento de Swiper. */
  html body#cart .vs-cp .crossselling-products .swiper-wrapper {
    display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; transform: none !important; width: 100% !important; height: auto !important;
  }
  html body#cart .vs-cp .crossselling-products .swiper-slide { width: auto !important; min-width: 0; margin: 0 !important; height: auto !important; }
  html body#cart .vs-cp .crossselling-products .swiper-button-prev, html body#cart .vs-cp .crossselling-products .swiper-button-next,
  html body#cart .vs-cp .crossselling-products .swiper-pagination { display: none !important; }
}
@media (min-width: 992px) {
  html body#cart .vs-cp .crossselling-products .swiper-wrapper { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  html body#cart .vs-cp .crossselling-products .swiper-slide:nth-child(n+9) { display: none; }
}

/* ------------------------------------------------------------------ */
/* 7. Móvil y tablet (< 992 px): apilado, barra inferior fija           */
/* ------------------------------------------------------------------ */
html body#cart .vs-cp .vs-cp-bar { display: none; }
@media (max-width: 991.98px) {
  html body#cart .vs-cp .cart-grid-right { margin-top: 18px; }
  html body#cart .vs-cp .vs-cp-summary { position: static; }
  html body#cart .vs-cp .vs-cp-actions a.btn.vs-cp-checkout { display: none; }
  html body#cart .vs-cp .vs-cp-actions { padding: 0; }
  html body#cart .vs-cp .vs-cp-actions .alert { margin: 14px 24px 0; }
  html body#cart .vs-cp .vs-cp-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; display: flex; align-items: center; justify-content: space-between; gap: 14px;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px)); background: #fff; border-top: 1px solid var(--vs-cp-line); box-shadow: 0 -10px 30px rgba(0, 16, 42, .12);
  }
  html body#cart .vs-cp .vs-cp-bar__tot { display: flex; flex-direction: column; min-width: 0; line-height: 1.15; }
  html body#cart .vs-cp .vs-cp-bar__lbl { font: 500 12px/1.2 Inter, Arial, sans-serif; color: var(--vs-cp-mut); }
  html body#cart .vs-cp .vs-cp-bar__val { font: 850 22px/1.15 Inter, Arial, sans-serif; letter-spacing: -.02em; color: var(--vs-cp-title); white-space: nowrap; }
  html body#cart .vs-cp a.vs-cp-bar__btn {
    display: flex; align-items: center; justify-content: center; flex: 1 1 auto; max-width: 240px; height: 50px; padding: 0 22px; border-radius: 14px;
    background: var(--vs-cp-blue); color: #fff; font: 700 16px/1 Inter, Arial, sans-serif; text-decoration: none; box-shadow: 0 8px 18px rgba(37, 99, 235, .3);
  }
  body#cart:has(.vs-cp-bar) { padding-bottom: 84px; }
}

@media (max-width: 767.98px) {
  html body#cart .vs-cp .page-title, html body#checkout #main > .page-title { font-size: 24px; margin-bottom: 14px; }
  html body#cart .vs-cp li.vs-cp-item { padding: 14px; }
  html body#cart .vs-cp .vs-cp-line { grid-template-columns: 84px minmax(0, 1fr) auto; column-gap: 14px; row-gap: 10px; grid-template-areas: "img info info" "img qty side"; }
  html body#cart .vs-cp .vs-cp-line__img { width: 84px; height: 84px; border-radius: 12px; }
  html body#cart .vs-cp .vs-cp-line a.vs-cp-line__name { font-size: 15px; }
  html body#cart .vs-cp .vs-cp-line__side { flex-direction: row-reverse; align-items: center; align-self: end; justify-content: flex-start; min-height: 0; gap: 4px; }
  html body#cart .vs-cp .vs-cp-line__total .product-price, html body#cart .vs-cp .vs-cp-line__total strong { font-size: 17px; }
  html body#cart .vs-cp .vs-cp-line__remove-text { display: none; }
  html body#cart .vs-cp a.vs-cp-line__remove { padding: 9px; }
  html body#cart .vs-cp a.vs-cp-line__remove .fa { font-size: 17px; }
  html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin { height: 40px; }
  html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin .btn { flex-basis: 40px; width: 40px; height: 40px; }
  html body#cart .vs-cp .vs-cp-line__qty .bootstrap-touchspin input.form-control { flex-basis: 42px; width: 42px; height: 40px; }
  html body#cart .vs-cp .vs-cp-sum__title { padding: 18px 18px 2px; }
  html body#cart .vs-cp .vs-cp-summary .card-body { padding-left: 18px; padding-right: 18px; }
  html body#cart .vs-cp .vs-cp-summary .cart-summary-totals { padding-left: 18px; padding-right: 18px; }
  html body#cart .vs-cp .vs-cp-ship { margin-left: 18px; margin-right: 18px; }
  html body#cart .vs-cp .vs-cp-summary .block-promo { padding-left: 18px; padding-right: 18px; }
  html body#cart .vs-cp .vs-cp-summary .blockreassurance_product { margin-left: 18px; margin-right: 18px; }
  html body#cart .vs-cp .crossselling-products { padding: 16px 14px 18px; }
}

/* ------------------------------------------------------------------ */
/* 8. Proceso de pedido (/pedido): tarjetas, pasos y botones, sin tocar campos ni módulos de pago */
/* ------------------------------------------------------------------ */
html body#checkout #main > .row { row-gap: 16px; }
html body#checkout section.checkout-step {
  margin: 0 0 14px; padding: 0; background: #fff; border: 1px solid var(--vs-cp-line); border-radius: 16px; box-shadow: var(--vs-cp-shadow);
}
html body#checkout section.checkout-step.-current { border-color: #b9ccf4; box-shadow: 0 0 0 3px rgba(37, 99, 235, .08), var(--vs-cp-shadow); }
html body#checkout section.checkout-step .step-title {
  margin: 0; padding: 18px 22px; border: 0; background: transparent; font: 800 18px/1.25 Inter, Arial, sans-serif; letter-spacing: -.015em; color: var(--vs-cp-title); text-transform: none;
}
html body#checkout section.checkout-step.-unreachable .step-title { color: #94a3b8; font-weight: 700; }
html body#checkout section.checkout-step .step-number { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; margin-right: 8px; padding: 0 8px; border-radius: 999px; background: var(--vs-cp-soft); border: 1px solid var(--vs-cp-line); color: var(--vs-cp-blue); font-size: 14px; font-weight: 800; }
html body#checkout section.checkout-step.-current .step-number { background: var(--vs-cp-blue); border-color: var(--vs-cp-blue); color: #fff; }
html body#checkout section.checkout-step .content { padding: 4px 22px 22px; }
html body#checkout section.checkout-step .step-edit { color: var(--vs-cp-blue); font-weight: 600; text-transform: none; }
html body#checkout section.checkout-step .form-control:not([type="checkbox"]):not([type="radio"]) { border-radius: 10px; border-color: #d3dcec; }
html body#checkout section.checkout-step .form-control:focus { border-color: var(--vs-cp-blue); box-shadow: 0 0 0 3px rgba(37, 99, 235, .14); }
html body#checkout section.checkout-step button.continue.btn-primary,
html body#checkout section.checkout-step .btn.continue {
  min-height: 50px; border: 0; border-radius: 12px; background: var(--vs-cp-blue); color: #fff; font: 700 15px/1.1 Inter, Arial, sans-serif; text-transform: none; letter-spacing: 0; box-shadow: 0 8px 18px rgba(37, 99, 235, .24);
}
html body#checkout section.checkout-step .btn.continue:hover { background: var(--vs-cp-blue-d); }

/* Resumen lateral del pedido */
html body#checkout #js-checkout-summary.cart-summary {
  margin: 0 0 16px; padding: 0; background: #fff; border: 1px solid var(--vs-cp-line); border-radius: 16px; box-shadow: var(--vs-cp-shadow); overflow: hidden;
}
html body#checkout #js-checkout-summary hr { margin: 0; border-color: var(--vs-cp-line); opacity: 1; }
html body#checkout #js-checkout-summary .card-body, html body#checkout #js-checkout-summary .card-block { padding: 14px 22px; }
html body#checkout #js-checkout-summary .cart-summary-line { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; margin: 0 0 8px; font: 400 14px/1.35 Inter, Arial, sans-serif; color: #44536b; }
html body#checkout #js-checkout-summary .cart-summary-line::before, html body#checkout #js-checkout-summary .cart-summary-line::after { content: none; display: none; }
html body#checkout #js-checkout-summary .cart-summary-line .value { float: none; font-weight: 600; color: var(--vs-cp-ink); white-space: nowrap; }
html body#checkout #js-checkout-summary .cart-summary-line.cart-total .label { font: 800 16px/1.2 Inter, Arial, sans-serif; color: var(--vs-cp-title); }
html body#checkout #js-checkout-summary .cart-summary-line.cart-total .value { font: 850 26px/1.1 Inter, Arial, sans-serif; letter-spacing: -.03em; color: var(--vs-cp-title); }
html body#checkout #js-checkout-summary .promo-name .cart-summary-line { color: var(--vs-cp-green); font-weight: 600; }
html body#checkout #js-checkout-summary .promo-name .cart-summary-line .label { color: var(--vs-cp-green); }
html body#checkout #js-checkout-summary .promo-name .cart-summary-line .pull-right span { color: var(--vs-cp-green); font-weight: 800; }
html body#checkout #js-checkout-summary .promo-code .input-group { flex-wrap: nowrap; border: 1px solid #d3dcec; border-radius: 12px; overflow: hidden; background: #fff; }
html body#checkout #js-checkout-summary .promo-code input.form-control { height: 44px; border: 0; border-radius: 0; box-shadow: none; }
html body#checkout #js-checkout-summary .promo-code .voucher-icon { border: 0; background: transparent; color: #8a97ad; box-shadow: none; }
html body#checkout #js-checkout-summary .promo-code .input-group-append .btn { height: 100%; border: 0; border-left: 1px solid #d3dcec; border-radius: 0; background: #f3f6fc; color: var(--vs-cp-blue); font-weight: 700; text-transform: none; box-shadow: none; }
html body#checkout #js-checkout-summary .vsb-cart-note { margin: 10px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--vs-cp-soft); border: 1px solid var(--vs-cp-line); color: var(--vs-cp-mut); font-size: 12.5px; line-height: 1.45; }
html body#checkout #js-checkout-summary .vsb-cart-note strong { color: var(--vs-cp-blue); }

/* Ajustes finos de /pedido (v3) */
html body#checkout #main { padding-top: 18px; }
html body#checkout #js-checkout-summary .alert.iqitfreedeliverycount { margin: 10px 0 0; padding: 10px 12px !important; border-radius: 12px; background: var(--vs-cp-soft); border: 1px solid var(--vs-cp-line); color: #33435c; font: 400 13px/1.35 Inter, Arial, sans-serif; }
html body#checkout #js-checkout-summary .alert.iqitfreedeliverycount strong { font-weight: 700; color: var(--vs-cp-ink); }
@media (max-width: 767.98px) {
  html body#checkout section.checkout-step .step-title { padding: 15px 16px; font-size: 16.5px; }
  html body#checkout section.checkout-step .content { padding: 2px 16px 18px; }
}
