/* ========================================================
   CARRITO COMPLETO 2 COLUMNAS (PC Y MOBILE)
   ======================================================== */

/* Neutralizar contenedores de WordPress / Elementor */
.woocommerce-cart .elementor-widget-woocommerce-cart,
.woocommerce-cart .elementor-widget-woocommerce-cart > .elementor-widget-container,
.woocommerce-cart .elementor-widget-woocommerce-cart .woocommerce,
.woocommerce-cart .woocommerce-cart-form {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  display: block !important;
  box-sizing: border-box !important;
}

.jp-cart-wrapper {
  width: 100% !important;
  max-width: 1160px !important;
  margin: 0 auto !important;
  padding: 40px 15px !important;
  box-sizing: border-box !important;
  font-family: inherit !important;
}

/* Rejilla de 2 columnas en PC */
.jp-cart-grid {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 40px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Columna Izquierda (Productos) */
.jp-cart-col-main {
  flex: 1 1 700px !important;
  max-width: 744px !important;
  min-width: 0 !important;
  width: 100% !important;
}

/* Columna Derecha (Resumen) */
.jp-cart-col-side {
  flex: 0 0 372px !important;
  width: 372px !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.jp-cart-wrapper .cart-collaterals {
  width: 100% !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  display: block !important;
}

/* Cabecera Carrito */
.jp-cart-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  width: 100% !important;
}

.jp-cart-title {
  margin: 0 !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #0f3a66 !important;
}

.jp-cart-count {
  font-weight: 400 !important;
  color: #6b7583 !important;
}

.jp-cart-empty-link {
  font-size: 13px !important;
  color: #6b7583 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

.jp-cart-divider {
  height: 1px !important;
  background: #e9ebef !important;
  margin: 18px 0 20px 0 !important;
  border: 0 !important;
}

/* Lista de Tarjetas */
.jp-cart-items-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  width: 100% !important;
}

.jp-cart-card {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  width: 100% !important;
  background: #ffffff !important;
  border: 1px solid #e2e6eb !important;
  border-radius: 4px !important;
  padding: 20px !important;
  box-sizing: border-box !important;
  gap: 20px !important;
}

/* 1. Miniatura Forzada con COVER */
.jp-cart-wrapper .jp-card-thumb {
  width: 132px !important;
  height: 98px !important;
  min-width: 132px !important;
  max-width: 132px !important;
  min-height: 98px !important;
  max-height: 98px !important;
  flex: 0 0 132px !important;
  border-radius: 2px !important;
  overflow: hidden !important;
  background: #f6f8f9 !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
}

.jp-cart-wrapper .jp-card-thumb a,
.jp-cart-wrapper .jp-card-thumb img,
.jp-cart-wrapper .jp-card-thumb picture {
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 2. Cuerpo del Producto */
.jp-card-body {
  flex: 1 1 auto !important;
  min-width: 180px !important;
}

.jp-card-badge {
  display: inline-block !important;
  background: #e9f4fb !important;
  color: #2d85c6 !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: 0.9px !important;
  text-transform: uppercase !important;
  padding: 4px 8px !important;
  border-radius: 2px !important;
  line-height: 1 !important;
}

.jp-card-product-name {
  margin: 12px 0 0 0 !important;
  font-size: 17px !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
}

.jp-card-product-name a {
  color: #0f3a66 !important;
  text-decoration: none !important;
}

.jp-card-desc {
  margin: 4px 0 0 0 !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
  color: #5b6775 !important;
  max-width: 280px !important;
}

.jp-card-meta {
  list-style: none !important;
  margin: 12px 0 0 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

.jp-card-meta li {
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  font-size: 12px !important;
  color: #6c7684 !important;
}

/* 3. Selector de Cantidad */
.jp-card-qty-col {
  flex: 0 0 96px !important;
}

.jp-col-label {
  display: block !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
  color: #9aa3af !important;
  margin-bottom: 10px !important;
}

.jp-qty-stepper {
  display: flex !important;
  align-items: center !important;
  width: 96px !important;
  height: 36px !important;
  border: 1px solid #dde2e8 !important;
  border-radius: 2px !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
}

.jp-btn-qty {
  flex: 0 0 32px !important;
  width: 32px !important;
  height: 34px !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 16px !important;
  color: #6c7684 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.jp-qty-field {
  flex: 1 1 auto !important;
  height: 34px !important;
  border-left: 1px solid #dde2e8 !important;
  border-right: 1px solid #dde2e8 !important;
}

.jp-qty-field .quantity {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.jp-qty-field input.qty {
  width: 100% !important;
  height: 34px !important;
  border: none !important;
  background: transparent !important;
  text-align: center !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #0f3a66 !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  -moz-appearance: textfield !important;
}

.jp-qty-field input.qty::-webkit-outer-spin-button,
.jp-qty-field input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

/* 4. Subtotal y Eliminar */
.jp-card-subtotal-col {
  flex: 0 0 140px !important;
  text-align: right !important;
  margin-left: auto !important;
}

.jp-subtotal-val,
.jp-subtotal-val .woocommerce-Price-amount {
  font-size: 19px !important;
  font-weight: 700 !important;
  color: #0f3a66 !important;
  line-height: 1.1 !important;
}

.jp-unit-price {
  font-size: 12px !important;
  color: #9ba4b0 !important;
  margin-top: 6px !important;
}

.jp-remove-action {
  margin-top: 10px !important;
}

.jp-remove-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-size: 12px !important;
  color: #747e8b !important;
  text-decoration: none !important;
}

/* Banner de Cupón */
.jp-promo-banner {
  margin-top: 30px !important;
  background: #f6f8f9 !important;
  padding: 20px 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  border-radius: 2px !important;
  box-sizing: border-box !important;
  width: 100% !important;
}

.jp-promo-text h4 {
  margin: 0 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #0f3a66 !important;
}

.jp-promo-text p {
  margin: 4px 0 0 0 !important;
  font-size: 12px !important;
  color: #6c7684 !important;
}

.jp-promo-input-group {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 0 !important;
}

.jp-promo-input-group input#coupon_code {
  width: 208px !important;
  height: 40px !important;
  border: 1px solid #dde2e8 !important;
  border-radius: 2px !important;
  background: #ffffff !important;
  padding: 0 14px !important;
  font-size: 13px !important;
  color: #0f3a66 !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}

.jp-promo-input-group button.jp-btn-apply {
  width: 82px !important;
  height: 40px !important;
  border: 1px solid #013464 !important;
  border-radius: 2px !important;
  background: #ffffff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #0f3a66 !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}

/* Enlace inferior */
.jp-back-shop-link {
  margin-top: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 9px !important;
  font-size: 12px !important;
  color: #2d85c6 !important;
  text-decoration: none !important;
}

/* ========================================================
   COLUMNA DERECHA: RESUMEN DEL PEDIDO (FIGMA)
   ======================================================== */
.jp-totals-card {
  border: 1px solid #e2e6eb !important;
  border-radius: 4px !important;
  background: #ffffff !important;
  padding: 28px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  display: block !important;
}

.jp-totals-title {
  margin: 0 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 1.4px !important;
  text-transform: uppercase !important;
  color: #0f3a66 !important;
  line-height: 1 !important;
}

.jp-totals-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: baseline !important;
}

.jp-totals-subtotal-row {
  margin-top: 24px !important;
  font-size: 14px !important;
}

.jp-totals-tax-row,
.jp-totals-coupon-row {
  margin-top: 9px !important;
  font-size: 14px !important;
}

.jp-totals-label {
  color: #5b6775 !important;
}

.jp-totals-val,
.jp-totals-val .woocommerce-Price-amount {
  color: #1f2a36 !important;
  font-weight: 500 !important;
}

.jp-totals-val-sub {
  color: #6c7684 !important;
}

.jp-totals-divider {
  height: 1px !important;
  background: #e9ebef !important;
  margin-top: 18px !important;
  border: 0 !important;
}

/* Fila de Total Destacado */
.jp-totals-grand-row {
  margin-top: 60px !important;
}

.jp-totals-total-label {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #0f3a66 !important;
}

.jp-totals-total-val,
.jp-totals-total-val .woocommerce-Price-amount {
  font-size: 28px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  color: #0f3a66 !important;
}

/* Botones del Resumen */
.jp-totals-actions {
  margin-top: 23px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

.jp-btn-checkout {
  height: 50px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 13px !important;
  background: #49a8df !important;
  border: 1px solid #49a8df !important;
  border-radius: 2px !important;
  color: #ffffff !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  transition: background 0.2s ease !important;
}

.jp-btn-checkout:hover {
  background: #3b93c5 !important;
  color: #ffffff !important;
}

.jp-btn-continue {
  height: 46px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #ffffff !important;
  border: 1px solid #dde2e8 !important;
  border-radius: 2px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #0f3a66 !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
  transition: background 0.2s ease, border-color 0.2s ease !important;
}

.jp-btn-continue:hover {
  background: #f8fafc !important;
  border-color: #ccd3dc !important;
  color: #0f3a66 !important;
}

/* Sellos de Seguridad */
.jp-totals-divider-sec {
  height: 1px !important;
  background: #e9ebef !important;
  margin-top: 20px !important;
  border: 0 !important;
}

.jp-totals-trust-list {
  list-style: none !important;
  margin: 17px 0 0 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}

.jp-totals-trust-list li {
  display: flex !important;
  align-items: center !important;
  gap: 11px !important;
  font-size: 12px !important;
  color: #717a88 !important;
}

.jp-totals-footer-notice {
  margin: 24px 0 0 0 !important;
  padding: 0 4px !important;
  font-size: 12px !important;
  line-height: 1.7 !important;
  color: #9aa3af !important;
}

/* ========================================================
   RESPONSIVE (MÓVIL / TABLET)
   ======================================================== */
@media (max-width: 960px) {
  .jp-cart-grid {
    flex-direction: column !important;
    gap: 30px !important;
  }
  .jp-cart-col-main,
  .jp-cart-col-side {
    width: 100% !important;
    max-width: 100% !important;
    flex: 1 1 100% !important;
  }
  .jp-cart-card {
    flex-wrap: wrap !important;
    gap: 15px !important;
  }
  .jp-card-body {
    flex: 1 1 calc(100% - 152px) !important;
  }
  .jp-card-qty-col,
  .jp-card-subtotal-col {
    margin-left: 0 !important;
  }
  .jp-card-subtotal-col {
    text-align: left !important;
  }
  .jp-promo-banner {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 15px !important;
  }
  .jp-promo-input-group {
    width: 100% !important;
  }
  .jp-promo-input-group input#coupon_code {
    flex: 1 1 auto !important;
    width: 100% !important;
  }
}
/* Ocultar la tabla de envíos/cross-sells y avisos por defecto dentro del resumen */
.jp-cart-col-side .cross-sells { display: none !important; }
.jp-btn-checkout svg { flex: 0 0 auto; }
.jp-totals-title { font-family: inherit !important; }
.jp-cart-col-side .cart_totals {
  width: 100% !important;
  float: none !important;
  margin: 0 !important;
}
