/*
CTC Separate Stylesheet
Updated: 2023-08-04 20:46:39
Theme Name: NeoplanNeve
Template: neve
Author: ThemeIsle
Tags: blog,custom-logo,e-commerce,rtl-language-support,grid-layout,one-column,two-columns,custom-background,custom-colors,custom-header,custom-menu,featured-image-header,featured-images,flexible-header,full-width-template,sticky-post,theme-options,threaded-comments,translation-ready,accessibility-ready,wide-blocks,block-styles,footer-widgets,portfolio,left-sidebar,right-sidebar
Version: 1.2.1691174799
*/


/* ============================================
   Checkout: tipografía Montserrat + color corporativo
   ============================================ */

/* --- Títulos principales ("Detalles de facturación", "Tu pedido") --- */
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3 {
    font-family: 'Montserrat', sans-serif !important;
    color: #342345 !important;
    font-weight: 700;
}

/* --- Todo el contenido del checkout en Montserrat --- */
.woocommerce-checkout,
.woocommerce-checkout p,
.woocommerce-checkout label,
.woocommerce-checkout input,
.woocommerce-checkout select,
.woocommerce-checkout textarea,
.woocommerce-checkout button,
.woocommerce-checkout table,
.woocommerce-checkout th,
.woocommerce-checkout td,
.woocommerce-checkout .woocommerce-input-wrapper,
.woocommerce-checkout .select2-container,
.woocommerce-checkout .select2-selection__rendered,
.woocommerce-checkout .select2-results__option {
    font-family: 'Montserrat', sans-serif !important;
}

/* --- Tabla "Tu pedido": productos, variaciones, subtotal, total --- */
.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td,
.woocommerce-checkout-review-order-table .product-name,
.woocommerce-checkout-review-order-table .product-total,
.woocommerce-checkout-review-order-table .variation,
.woocommerce-checkout-review-order-table .variation *,
.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td,
.woocommerce-checkout-review-order-table tfoot .amount,
.woocommerce-checkout-review-order-table tfoot .includes_tax,
.woocommerce-checkout-review-order-table tfoot small {
    font-family: 'Montserrat', sans-serif !important;
}

/* --- Métodos de pago --- */
.woocommerce-checkout #payment,
.woocommerce-checkout #payment label,
.woocommerce-checkout #payment .payment_box,
.woocommerce-checkout #payment .payment_box * {
    font-family: 'Montserrat', sans-serif !important;
}


/* =========================================================
   NEOPLANET · Estilo de formularios
   Checkout WooCommerce + formularios Elementor
   ========================================================= */

/* ---------- 1. Variables de marca ---------- */
.woocommerce-checkout,
.elementor-form {
  --f-bg: #f8f5fc;
  --f-bg-focus: #fff;
  --f-border: #e4dbef;
  --f-border-hover: #C8B6DD;
  --f-accent: #7B4FBF;
  --f-dark: #342345;
  --f-radius: 10px;
  --f-text: #342345;
  --f-label: #342345;
  --f-error: #d63638;
  --f-grad: linear-gradient(135deg, #C8B6DD 0%, #7B4FBF 100%);
  --f-ring-thin: 0 0 0 2px rgba(200, 182, 221, .35);
  --f-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23342345' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------- 2. CHECKOUT · Etiquetas ---------- */
.woocommerce-checkout .form-row label {
  font-size: 13px;
  font-weight: 500;
  color: var(--f-label);
  margin-bottom: 6px;
}
.woocommerce-checkout .form-row .required {
  color: var(--f-label);
  text-decoration: none;
  font-weight: 400;
  opacity: .55;
}

/* ---------- 3. CHECKOUT · Campos ---------- */
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select {
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  font-size: 15px;
  color: var(--f-text);
  background-color: var(--f-bg);
  border: 1px solid var(--f-border);
  border-radius: var(--f-radius);
  box-shadow: none;
  outline: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
  -webkit-appearance: none;
  appearance: none;
}
.woocommerce-checkout .form-row textarea { min-height: 110px; }

.woocommerce-checkout .form-row input.input-text::placeholder,
.woocommerce-checkout .form-row textarea::placeholder { color: #9a8fa8; }

.woocommerce-checkout .form-row input.input-text:hover,
.woocommerce-checkout .form-row textarea:hover,
.woocommerce-checkout .form-row select:hover { border-color: var(--f-border-hover); }

/* Flecha de los select nativos */
.woocommerce-checkout .form-row select {
  padding-right: 40px;
  background-image: var(--f-arrow);
  background-repeat: no-repeat;
  background-position: right 14px center;
}

/* ---------- 4. CHECKOUT · País / Provincia (select2) ---------- */
.woocommerce-checkout .select2-container .select2-selection--single {
  height: 48px;
  background: var(--f-bg);
  border: 1px solid var(--f-border);
  border-radius: var(--f-radius);
  transition: border-color .2s, box-shadow .2s;
}
.woocommerce-checkout .select2-container .select2-selection--single:hover {
  border-color: var(--f-border-hover);
}
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 46px;
  padding-left: 14px;
  padding-right: 40px;
  color: var(--f-text);
  font-size: 15px;
}
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
  height: 46px;
  right: 10px;
}

/* El campo conserva sus esquinas redondeadas al abrir la lista */
body .select2-container--default.select2-container--open .select2-selection--single {
  border-radius: var(--f-radius, 8px) !important;
}

/* Sin borde verde de WooCommerce al validar el campo */
body.woocommerce-checkout .form-row.woocommerce-validated .select2-container .select2-selection--single,
body.woocommerce-checkout .form-row.woocommerce-validated select {
  border-color: var(--f-border, #e4dfec) !important;
}
body.woocommerce-checkout .form-row.woocommerce-validated .select2-container .select2-selection--single:hover {
  border-color: var(--f-border-hover, #c9b8d8) !important;
}

/* Lista desplegada (checkout y ficha de producto) */
.select2-dropdown {
  border: 1px solid var(--f-border) !important;
  border-radius: 10px !important;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(52, 35, 69, .08);
}

/* Lista separada del campo, se abra hacia abajo o hacia arriba */
body .select2-container--open .select2-dropdown--below {
  transform: translateY(6px) !important;
  border-top: 1px solid var(--f-border, #e4dfec) !important;
}
body .select2-container--open .select2-dropdown--above {
  transform: translateY(-6px) !important;
  border-bottom: 1px solid var(--f-border, #e4dfec) !important;
}

/* Opcion resaltada al pasar el raton o navegar con teclado */
body .select2-container--default .select2-results .select2-results__option--highlighted[aria-selected],
body .select2-container--default .select2-results .select2-results__option--highlighted[data-selected],
body .select2-container--default .select2-results .select2-results__option--highlighted.select2-results__option--selectable {
  background: #7b4fbf !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Opcion ya elegida (cuando no esta resaltada) */
body .select2-container--default .select2-results .select2-results__option[aria-selected="true"]:not(.select2-results__option--highlighted),
body .select2-container--default .select2-results .select2-results__option[data-selected="true"]:not(.select2-results__option--highlighted),
body .select2-container--default .select2-results .select2-results__option--selected:not(.select2-results__option--highlighted) {
  background: #c9b8d8 !important;
  color: #2d1a3e !important;
  -webkit-text-fill-color: #2d1a3e !important;
}

/* Buscador interno (pais, provincia) */
body .select2-search--dropdown .select2-search__field {
  border: 1px solid var(--f-border, #e4dfec) !important;
  border-radius: 6px;
  background: var(--f-bg, #f8f5fc);
  padding: 6px 10px;
}
body .select2-search--dropdown .select2-search__field:focus {
  border-color: var(--f-border-hover, #c9b8d8) !important;
  outline: none;
}

/* ---------- 5. CHECKOUT · Validación ---------- */
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid select,
.woocommerce-checkout .form-row.woocommerce-invalid .select2-selection {
  border-color: var(--f-error);
  background-color: #fff;
}
.woocommerce-checkout .form-row.woocommerce-invalid label { color: var(--f-error); }

.woocommerce-checkout .form-row.woocommerce-validated input.input-text,
.woocommerce-checkout .form-row.woocommerce-validated select,
.woocommerce-checkout .form-row.woocommerce-validated .select2-selection {
  border-color: var(--f-border);
}

/* ---------- 6. CHECKOUT · Autocompletado y extras ---------- */
.woocommerce-checkout input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--f-bg) inset !important;
  -webkit-text-fill-color: var(--f-text) !important;
}
.woocommerce-checkout .form-row { margin-bottom: 18px; }
.woocommerce-checkout input[type="checkbox"] { accent-color: #7B4FBF; }

@media (max-width: 600px) {
  .woocommerce-checkout .form-row-first,
  .woocommerce-checkout .form-row-last { width: 100%; float: none; }
}

/* ---------- 7. ELEMENTOR · Mismo estilo ---------- */
body .elementor-form .elementor-field-label {
  font-size: 13px;
  font-weight: 500;
  color: var(--f-label);
  margin-bottom: 6px;
}
body .elementor-form .elementor-field-group .elementor-field-textual,
body .elementor-form .elementor-field-group .elementor-select-wrapper select {
  min-height: 48px;
  padding: 12px 14px;
  font-size: 15px;
  color: var(--f-text);
  background-color: var(--f-bg);
  border: 1px solid var(--f-border);
  border-radius: var(--f-radius);
  box-shadow: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
body .elementor-form .elementor-field-group textarea.elementor-field-textual { min-height: 130px; }
body .elementor-form .elementor-field-textual::placeholder { color: #9a8fa8; }

body .elementor-form .elementor-field-textual:hover,
body .elementor-form .elementor-select-wrapper select:hover { border-color: var(--f-border-hover); }

body .elementor-form .elementor-select-wrapper::before { color: var(--f-text); right: 14px; }
body .elementor-form input[type="checkbox"] { accent-color: #7B4FBF; }

body .elementor-form .elementor-button {
  background: #7B4FBF;
  border-radius: var(--f-radius);
  min-height: 48px;
  padding: 12px 28px;
  font-weight: 600;
  transition: background .2s;
}
body .elementor-form .elementor-button:hover { background: #342345; }

/* ---------- 8. FOCO · Borde degradado + halo fino (checkout y Elementor) ---------- */
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout .form-row input.input-text:focus-visible,
.woocommerce-checkout .form-row textarea:focus,
.woocommerce-checkout .form-row textarea:focus-visible,
body .elementor-form .elementor-field-textual:focus,
body .elementor-form .elementor-field-textual:focus-visible {
  outline: none !important;
  border-color: transparent !important;
  background: linear-gradient(#fff, #fff) padding-box, var(--f-grad) border-box !important;
  box-shadow: var(--f-ring-thin) !important;
}

.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row select:focus-visible {
  outline: none !important;
  border-color: transparent !important;
  background:
    var(--f-arrow) no-repeat right 14px center padding-box,
    linear-gradient(#fff, #fff) padding-box,
    var(--f-grad) border-box !important;
  box-shadow: var(--f-ring-thin) !important;
}

body .elementor-form .elementor-select-wrapper select:focus,
body .elementor-form .elementor-select-wrapper select:focus-visible {
  outline: none !important;
  border-color: transparent !important;
  background: linear-gradient(#fff, #fff) padding-box, var(--f-grad) border-box !important;
  box-shadow: var(--f-ring-thin) !important;
}

.woocommerce-checkout .select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--open .select2-selection--single {
  border-color: transparent !important;
  background: linear-gradient(#fff, #fff) padding-box, var(--f-grad) border-box !important;
  box-shadow: var(--f-ring-thin) !important;
}

/* ---------- 10. REFUERZO frente a estilos de Neve en el checkout ---------- */
body.woocommerce-checkout form .form-row input.input-text,
body.woocommerce-checkout form .form-row textarea,
body.woocommerce-checkout form .form-row select {
  min-height: 48px;
  padding: 12px 14px !important;
  font-size: 15px;
  line-height: 1.4;
  color: #342345;
  background-color: #f8f5fc !important;
  border: 1px solid #e4dbef !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}
body.woocommerce-checkout form .form-row textarea { min-height: 110px; }

body.woocommerce-checkout form .form-row input.input-text:hover,
body.woocommerce-checkout form .form-row textarea:hover,
body.woocommerce-checkout form .form-row select:hover {
  border-color: #C8B6DD !important;
}

/* ---------- 11. MÓVIL · Sin zoom en el buscador de País / Provincia ---------- */
@media (max-width: 767px) {
  body .select2-container .select2-search--dropdown .select2-search__field,
  body .select2-container .select2-search__field {
    font-size: 16px !important;
  }
}


/* Errores (deben ir después para ganar al bloque anterior) */
body.woocommerce-checkout form .form-row.woocommerce-invalid input.input-text,
body.woocommerce-checkout form .form-row.woocommerce-invalid select,
body.woocommerce-checkout form .form-row.woocommerce-invalid .select2-selection {
  border-color: #d63638 !important;
  background-color: #fff !important;
}

/* Texto centrado en País / Provincia */
body.woocommerce-checkout .select2-container .select2-selection--single {
  display: flex !important;
  align-items: center;
  height: 48px !important;
  padding: 0 !important;
}
body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 1.4 !important;
  padding: 0 40px 0 14px !important;
}
body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
  top: 50% !important;
  transform: translateY(-50%);
  height: 46px !important;
}

/* Móvil: 16px para evitar el zoom de iOS */
@media (max-width: 767px) {
  body.woocommerce-checkout form .form-row input.input-text,
  body.woocommerce-checkout form .form-row textarea,
  body.woocommerce-checkout form .form-row select {
    font-size: 16px !important;
  }
}


/* ---------- 12. CHECKOUT · Barra plegable de cupón / tarjeta regalo ---------- */

/* Barra (cualquier aviso que contenga el enlace del cupón) */
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon) {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 24px !important;
  padding: 16px 48px 16px 18px !important;
  font-size: 15px;
  color: #342345 !important;
  background: #f8f5fc !important;
  border: 1px solid #e4dbef !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: border-color .2s;
}
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon):hover {
  border-color: #C8B6DD !important;
}

/* Icono de la izquierda en morado */
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon)::before,
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon) svg {
  color: #7B4FBF !important;
  fill: currentColor;
}

/* El enlace deja de ser botón y toda la barra es clicable */
body.woocommerce-checkout a.showcoupon {
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  color: #7B4FBF !important;
  font-weight: 500;
  text-decoration: none !important;
}
body.woocommerce-checkout a.showcoupon::before {
  content: "";
  position: absolute;
  inset: 0;
}

/* Flecha de desplegable */
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon)::after {
  content: "";
  position: absolute;
  right: 18px;
  top: 50%;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none'%3E%3Cpath d='M2 5l5 5 5-5' stroke='%237B4FBF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
  transition: transform .25s;
  pointer-events: none;
}

/* Estado abierto */
body.woocommerce-checkout.coupon-open .woocommerce-info:has(a.showcoupon) {
  margin-bottom: 0 !important;
  border-radius: 10px 10px 0 0 !important;
  border-bottom-color: transparent !important;
}
body.woocommerce-checkout.coupon-open .woocommerce-info:has(a.showcoupon)::after {
  transform: translateY(-50%) rotate(180deg);
}

/* Panel desplegado con el campo */
body.woocommerce-checkout form.checkout_coupon {
  margin: 0 0 24px !important;
  padding: 16px 18px 18px !important;
  background: #f8f5fc;
  border: 1px solid #e4dbef !important;
  border-top: 0 !important;
  border-radius: 0 0 10px 10px !important;
}
body.woocommerce-checkout form.checkout_coupon .form-row { margin-bottom: 0; }

body.woocommerce-checkout form.checkout_coupon input.input-text {
  height: 46px;
  padding: 0 14px !important;
  background-color: #fff !important;
}
body.woocommerce-checkout form.checkout_coupon button {
  width: 100%;
  height: 46px;
  border: 0;
  border-radius: 10px !important;
  background: #7B4FBF !important;
  color: #fff !important;
  font-weight: 500;
}
body.woocommerce-checkout form.checkout_coupon button:hover {
  background: #342345 !important;
}

/* ---------- 12b. Barra de cupón: maquetación independiente de Neve ---------- */

/* La barra deja de ser flex: el contenido fluye en orden natural */
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon) {
  display: block !important;
  text-align: left !important;
  padding: 16px 220px 16px 18px !important;
  line-height: 1.4;
}

/* Icono en línea con el texto */
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon)::before {
  position: static !important;
  display: inline-block !important;
  vertical-align: middle;
  transform: none !important;
  margin: -2px 10px 0 0 !important;
  font-size: 18px;
  line-height: 1;
}

/* El enlace cubre toda la barra y muestra su texto a la derecha */
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon) a.showcoupon {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  margin: 0 !important;
  padding: 0 48px 0 0 !important;
  width: auto !important;
  min-width: 0 !important;
  float: none !important;
  order: 0 !important;
  white-space: nowrap;
}
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon) a.showcoupon::before {
  content: none !important;
}

/* Móvil: solo texto + flecha */
@media (max-width: 600px) {
  body.woocommerce-checkout .woocommerce-info:has(a.showcoupon) {
    padding: 14px 44px 14px 16px !important;
  }
  body.woocommerce-checkout .woocommerce-info:has(a.showcoupon) a.showcoupon {
    font-size: 0 !important;
  }
}


/* ---------- 13. CHECKOUT · Ocultar título "Información adicional" ---------- */
body.woocommerce-checkout .woocommerce-additional-fields > h3 {
  display: none !important;
}


/* ---------- 14. CHECKOUT · Espaciado y "¿Enviar a una dirección diferente?" ---------- */

/* Menos hueco entre la facturación y el bloque de envío */
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
body.woocommerce-checkout .col2-set .col-2,
body.woocommerce-checkout .woocommerce-shipping-fields {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* "¿Enviar a una dirección diferente?" con el mismo estilo que las etiquetas */
body.woocommerce-checkout #ship-to-different-address {
  margin: 8px 0 18px !important;
  padding: 0 !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.4;
  letter-spacing: normal;
  text-transform: none;
  color: #342345 !important;
}
body.woocommerce-checkout #ship-to-different-address label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
  cursor: pointer;
}
body.woocommerce-checkout #ship-to-different-address input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin: 0 !important;
  accent-color: #7B4FBF;
}

/* Notas del pedido pegadas al bloque anterior */
body.woocommerce-checkout .woocommerce-additional-fields {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* ---------- 15. CHECKOUT · Ocultar visualmente "Detalles de facturación" ---------- */
body.woocommerce-checkout .woocommerce-billing-fields > h3 {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ---------- 16. CHECKOUT · Emoji de ticket en la barra de cupón ---------- */
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon)::before {
  content: "🎟️" !important;
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif !important;
  font-size: 20px !important;
  line-height: 1 !important;
}

/* Por si Neve pinta el icono como SVG en lugar de pseudo-elemento */
body.woocommerce-checkout .woocommerce-info:has(a.showcoupon) > svg {
  display: none !important;
}

/* ---------- 17. CHECKOUT · Quitar párrafos vacíos que generan huecos ---------- */
body.woocommerce-checkout #customer_details p:not([class]):not(:has(*)) {
  display: none !important;
}


/* ---------- 18. CHECKOUT · Resumen del pedido ---------- */
body.woocommerce-checkout .woocommerce-checkout-review-order-table,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr,
body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td {
  border: 0 !important;
  background: none !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th {
  padding: 0 0 10px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #8a7d96 !important;
  border-bottom: 1px solid #e4dbef !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td {
  padding: 14px 0 !important;
  font-size: 15px;
  vertical-align: top;
  border-bottom: 1px solid #efe9f6 !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .product-quantity {
  color: #8a7d96;
  font-weight: 500;
}

/* Variación en segunda línea, más pequeña */
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation {
  display: block;
  margin: 3px 0 0 !important;
  font-size: 13px;
  color: #8a7d96;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dt,
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dd,
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation p {
  display: inline;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 400;
}

/* Subtotal y envío */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  padding: 10px 0 !important;
  font-size: 15px;
  font-weight: 400 !important;
  color: #5b4d69;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal td {
  padding-top: 14px !important;
}

/* Total destacado */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td {
  padding: 16px 0 18px !important;
  border-top: 1px solid #e4dbef !important;
  vertical-align: top;
  color: #342345;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th {
  font-size: 17px;
  font-weight: 600 !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td strong,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td strong .amount {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.1;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total .includes_tax {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: #8a7d96;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total .includes_tax .amount {
  font-size: 12px;
  font-weight: 400;
}


/* ---------- 19. CHECKOUT · Métodos de pago y ajustes del resumen ---------- */

/* === Resumen: quitar las líneas gruesas de Neve === */
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot,
body.woocommerce-checkout #order_review,
body.woocommerce-checkout .woocommerce-checkout-review-order {
  border: 0 !important;
  box-shadow: none !important;
}

/* === Resumen: producto === */
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name {
  padding-right: 12px !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total {
  white-space: nowrap;
  text-align: right;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table .npc-qty {
  color: #8a7d96;
  font-weight: 500;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dd {
  margin-left: .25em !important;
}

/* === Resumen: envío alineado con su etiqueta === */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  vertical-align: middle !important;
}
body.woocommerce-checkout #shipping_method,
body.woocommerce-checkout #shipping_method li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
  line-height: 1.4;
}

/* === Resumen: total en fila propia === */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total {
  display: flex;
  width: 100%;
  box-sizing: border-box;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-top: 4px;
  padding: 16px 0 18px;
  border-top: 1px solid #e4dbef !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td {
  padding: 0 !important;
  border: 0 !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th {
  padding-top: 3px !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td {
  flex: 1;
  text-align: right;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td strong,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td strong .woocommerce-Price-amount,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td strong bdi {
  font-size: 24px !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total .includes_tax {
  display: block;
  margin-top: 4px;
  white-space: nowrap;
  font-size: 12px !important;
  line-height: 1.4;
  color: #8a7d96;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total .includes_tax .woocommerce-Price-amount,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total .includes_tax bdi {
  font-size: 12px !important;
  font-weight: 400 !important;
}

/* === Métodos de pago como tarjetas === */
body.woocommerce-checkout #payment {
  background: none !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
}
body.woocommerce-checkout #payment ul.payment_methods {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 22px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  list-style: none;
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method {
  margin: 0 !important;
  padding: 14px 16px !important;
  background: #fff;
  border: 1px solid #e4dbef;
  border-radius: 10px;
  line-height: 1.4;
  transition: border-color .2s, background .2s;
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method:hover {
  border-color: #C8B6DD;
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method:has(input:checked) {
  background: #f8f5fc;
  border-color: #7B4FBF;
}
body.woocommerce-checkout #payment ul.payment_methods li > input[type="radio"] {
  accent-color: #7B4FBF;
  width: 17px;
  height: 17px;
  margin: 0 10px 0 0 !important;
  vertical-align: middle;
}
body.woocommerce-checkout #payment ul.payment_methods li > label {
  display: inline-flex !important;
  align-items: center;
  gap: 10px;
  margin: 0 !important;
  font-size: 15px;
  font-weight: 600;
  color: #342345;
  cursor: pointer;
  vertical-align: middle;
}
body.woocommerce-checkout #payment ul.payment_methods li > label img {
  max-height: 26px;
  width: auto;
  margin: 0 !important;
}

/* Descripción dentro de la tarjeta seleccionada */
body.woocommerce-checkout #payment div.payment_box {
  margin: 8px 0 0 !important;
  padding: 0 0 0 27px !important;
  background: none !important;
  font-size: 14px;
  line-height: 1.5;
  color: #5b4d69;
}
body.woocommerce-checkout #payment div.payment_box::before {
  display: none !important;
}
body.woocommerce-checkout #payment div.payment_box p:last-child {
  margin-bottom: 0;
}

/* === Términos y botón === */
body.woocommerce-checkout #payment .place-order {
  padding: 0 !important;
  margin-top: 20px;
}
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
  font-size: 14px;
  line-height: 1.5;
}
body.woocommerce-checkout #place_order {
  width: 100%;
  min-height: 52px;
  border-radius: 999px !important;
  font-size: 16px;
  font-weight: 600;
}

/* Botones redondos, coherentes con el resto de la web */
body.woocommerce-checkout form.checkout_coupon button,
body .elementor-form .elementor-button {
  border-radius: 999px !important;
}

/* === Móvil: nombre algo más pequeño para que quepa en una línea === */
@media (max-width: 600px) {
  body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td {
    font-size: 14px;
  }
}


/* ---------- 20. CHECKOUT · Resumen como filas flexibles (sin columnas de tabla) ---------- */

/* La tabla y sus bloques pasan a ser bloques normales */
body.woocommerce-checkout .woocommerce-checkout-review-order-table,
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot {
  display: block !important;
  width: 100% !important;
}

/* Cada fila: etiqueta a la izquierda, importe a la derecha */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr {
  display: flex !important;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  width: 100%;
  box-sizing: border-box;
}

/* Las celdas pierden bordes y rellenos propios (las líneas pasan a las filas) */
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  display: block !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Cabecera */
body.woocommerce-checkout .woocommerce-checkout-review-order-table thead tr {
  padding: 0 0 10px;
  border-bottom: 1px solid #e4dbef !important;
}

/* Productos */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tbody tr {
  padding: 14px 0;
  border-bottom: 1px solid #efe9f6 !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name {
  flex: 1;
  min-width: 0;
  text-align: left;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total {
  white-space: nowrap;
  text-align: right;
}

/* Subtotal, comisiones y envío */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr {
  padding: 10px 0;
  align-items: center;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal {
  padding-top: 14px;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
  text-align: right;
}

/* Total */
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total {
  align-items: flex-start;
  margin-top: 4px;
  padding: 16px 0 18px;
  border-top: 1px solid #e4dbef !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total th {
  padding-top: 3px !important;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total td {
  flex: 1;
  text-align: right;
}


/* ---------- 21. CHECKOUT · Logos de métodos de pago ---------- */

/* Cada tarjeta de pago: radio + nombre + logos a la derecha; descripción debajo */
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > label {
  display: flex !important;
  align-items: center;
  flex: 1;
  min-width: 0;
  gap: 10px;
}
body.woocommerce-checkout #payment ul.payment_methods li.wc_payment_method > .payment_box {
  flex-basis: 100%;
}

/* Logos de tarjeta: tamaño fijo, en fila y a la derecha */
body.woocommerce-checkout #payment .npc-card-logos {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}
body.woocommerce-checkout #payment .npc-card-logos img {
  display: block !important;
  width: 36px !important;
  height: 24px !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: contain;
}

/* Logo de PayPal */
body.woocommerce-checkout #payment img.npc-paypal {
  display: block !important;
  width: auto !important;
  height: 24px !important;
  max-height: 24px !important;
  margin: 0 !important;
}

/* Móvil: logos de tarjeta algo más pequeños */
@media (max-width: 600px) {
  body.woocommerce-checkout #payment .npc-card-logos img {
    width: 30px !important;
    height: 20px !important;
  }
}

/* ---------- 22. CHECKOUT · Variaciones ordenadas (una por línea) ---------- */
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation {
  display: block !important;
  margin: 4px 0 0 !important;
  padding: 0 !important;
  font-size: 13px;
  line-height: 1.5;
  color: #8a7d96;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dt,
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dd,
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dd p {
  display: inline !important;
  float: none !important;
  clear: none !important;
  margin: 0 !important;
  padding: 0 !important;
  font-weight: 400;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dd {
  margin-left: .25em !important;
}
/* Salto de línea después de cada valor */
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dd::after {
  content: "\A";
  white-space: pre;
}
body.woocommerce-checkout .woocommerce-checkout-review-order-table dl.variation dd:last-of-type::after {
  content: none;
}

