/*
Theme Name: Welfare23
Theme URI: https://welfare23.cl
Author: FlowCode AI
Description: Insumos médicos domiciliarios Welfare23 — tema a medida, WooCommerce.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: welfare23-theme
*/

/* Reset: box-sizing:border-box global — sin esto, padding se suma por fuera de max-width
   (bug real encontrado: la franja de "Día del Niño" quedaba más angosta que su fondo). */
*, *::before, *::after{ box-sizing:border-box; }

.screen-reader-text{ border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute !important; width:1px; word-wrap:normal !important; }

/* Sin scroll horizontal: el drawer del mini-cart de WooCommerce (position:fixed, trasladado
   fuera de pantalla mientras está cerrado) y el badge del contador pueden sumar unos px al
   scrollWidth del documento en anchos angostos aunque no se vean; esto lo neutraliza sin ocultar contenido. */
html{ overflow-x:hidden; }
body{ overflow-x:hidden; max-width:100vw; }

/* Barra superior: solo datos reales (despacho, forma de pago) — nada de promesas que no
   se pueden cumplir (soporte 24/7, garantías inventadas) ni de "Mi cuenta". */
.w23-topbar{ background:#0A3049; color:#fff; }
.w23-topbar__inner{
  max-width:1280px; margin:0 auto; padding:0.5rem 1.25rem;
  display:flex; gap:1.5rem; justify-content:center; flex-wrap:wrap;
}
.w23-topbar__item{ display:inline-flex; align-items:center; gap:0.4rem; font-size:0.8rem; white-space:nowrap; }
.w23-topbar__item svg{ flex-shrink:0; }

/* Header / navegación */
.w23-header{ position:sticky; top:0; z-index:50; background:#fff; }
.w23-header .wp-block-navigation{ font-size:0.98rem; }
/* Logo propio (marca EKG/pulso) vía Site Logo + Site Title de WordPress — custom-logo, no SVG
   dibujado a mano. .w23-logo-mark es el grupo flex que los mantiene juntos; los bloques nativos
   traen su propio margen que hay que poner en 0 para que no se vea un salto entre ícono y texto. */
.w23-logo-mark{ display:flex; align-items:center; gap:0.55rem; }
.w23-logo-mark .wp-block-site-logo{ margin:0; line-height:0; }
.w23-logo-mark .custom-logo{ display:block; flex-shrink:0; width:34px; height:34px; object-fit:contain; }
.w23-logo-mark .wp-block-site-title{ margin:0; }
.w23-logo-mark .wp-block-site-title a{ text-decoration:none !important; }
.w23-logo-mark__text{
  font-family:var(--wp--preset--font-family--heading); font-weight:700; font-size:1.15rem; color:#0A3049;
}
footer .w23-logo-mark .custom-logo{ width:30px; height:30px; }
footer .w23-logo-mark__text{ color:#fff; }
@media (max-width:480px){
  .w23-logo-mark .custom-logo{ width:28px; height:28px; }
  .w23-logo-mark__text{ font-size:1.02rem; }
}

/* Mini-carrito: sin cuentas de cliente, es el único control a la derecha */
.w23-header-actions{ align-items:center; }
.w23-header-actions .wc-block-mini-cart__button{
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; padding:0 !important; border-radius:50%;
  color:#0A3049; background:transparent; border:none;
}
.w23-header-actions .wc-block-mini-cart__button:hover{ background:#F3FAF9; }
.w23-header-actions .wc-block-mini-cart__icon{ width:22px; height:22px; }
.w23-header-actions .wc-block-mini-cart__badge{ background:#14B8AD !important; color:#0A3049 !important; }

/* Buscador de productos en el header */
.w23-search-form{ position:relative; display:flex; align-items:center; }
.w23-search-input{
  width:200px; max-width:40vw; height:40px; border:1px solid #DCEAE8; border-radius:999px;
  padding:0 2.6rem 0 1rem; font-size:0.9rem; color:#0A3049; background:#F3FAF9;
  transition:width .2s,max-width .2s;
}
.w23-search-input::placeholder{ color:#4E6270; }
.w23-search-input:focus{ outline:2px solid #14B8AD; outline-offset:1px; width:260px; max-width:60vw; }
.w23-search-submit{
  position:absolute; right:2px; top:2px; width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; border:none; background:transparent;
  color:#0A3049; cursor:pointer;
}
.w23-search-submit:hover{ background:#DCEAE8; }
@media (max-width:480px){
  /* 140px no alcanza para el placeholder "Buscar combos…" (≈114px de texto + 16px de padding
     izquierdo + 41.6px del botón-lupa a la derecha ≈ 172px necesarios): se leía cortado
     ("Buscar cor"). La fila de búsqueda va sola (debajo del logo, no comparte espacio con el
     menú), así que sobra ancho de sitio: 390-470px libres a la derecha del campo en 320/360/390. */
  .w23-search-input{ width:min(220px,65vw); max-width:none; }
}

/* Menú hamburguesa: colapsa entre 980 y 1080px (si no, el header desborda en tablet) */
@media (min-width:600px) and (max-width:1079.98px){
  .w23-header .wp-block-navigation__responsive-container-open:not(.always-shown){ display:flex !important; }
  .w23-header .wp-block-navigation__responsive-container:not(.is-menu-open){ display:none !important; }
}

/* WhatsApp flotante */
.w23-wa{ position:fixed; right:20px; bottom:20px; width:58px; height:58px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 20px rgba(0,0,0,0.25); z-index:1000; }
.w23-wa svg{ width:30px; height:30px; fill:#fff; }
.w23-wa:hover{ transform:scale(1.06); }

/* Cards de producto (loop clásico WooCommerce) — usado en tienda, home, relacionados y categorías: una sola tarjeta para todo el sitio */
.woocommerce ul.products,
ul.products{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr)) !important;
  gap:clamp(1rem,2vw,1.75rem) !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
}
/* El clearfix ::before/::after de WooCommerce (woocommerce-layout.css) se convierte en un ítem
   más de la grilla y ocupa la primera celda, corriendo el primer producto a la 2da columna. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
ul.products::before,
ul.products::after{
  content:none !important;
  display:none !important;
}
.woocommerce ul.products li.product,
ul.products li.product{
  float:none !important;
  width:auto !important;
  margin:0 !important;
  clear:none !important;
  display:flex !important;
  flex-direction:column;
  background:#fff;
  border:1px solid #DCEAE8;
  border-radius:14px;
  overflow:hidden;
  padding:0 !important;
  list-style:none;
  transition:box-shadow .2s,transform .2s;
}
.woocommerce ul.products li.product:hover{ box-shadow:0 12px 28px rgba(16,19,28,0.1); transform:translateY(-3px); }
.woocommerce ul.products li.product:focus-within{ outline:2px solid #14B8AD; outline-offset:2px; }
.woocommerce ul.products li.product > a:not(.button){ text-decoration:none; color:inherit; display:flex; flex-direction:column; flex:1 0 auto; }
.woocommerce ul.products li.product a img{
  width:100%; aspect-ratio:1/1; object-fit:contain; display:block;
  background:#F3FAF9; padding:1rem; box-sizing:border-box;
  transition:transform .3s;
}
.woocommerce ul.products li.product:hover img{ transform:scale(1.04); }
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--wp--preset--font-family--heading); font-weight:600; font-size:1rem;
  margin:0.9rem 1rem 0.3rem; color:#0A3049; min-height:2.6em; line-height:1.3;
  text-wrap:balance; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.woocommerce ul.products li.product .price{ display:block; margin:0 1rem 1rem; font-weight:700; color:#0B3D5C; font-size:1.05rem; }
/* Agregar al carrito (grilla): fondo oscurecido a #0B3D5C (igual que el hero) — texto blanco
   sobre #14B8AD daba 3.37:1 (falla AA en texto chico); sobre #0B3D5C da 4.50:1. */
.woocommerce ul.products li.product .button{
  display:block; width:calc(100% - 2rem); margin:auto 1rem 1.1rem;
  text-align:center; background:#0B3D5C; color:#fff; border-radius:10px;
  padding:0.7rem 0.6rem; font-weight:600; line-height:1.25; white-space:normal;
  box-sizing:border-box; font-size:0.88rem; flex-shrink:0;
}
.woocommerce ul.products li.product .button:hover{ background:#082C43; }
.woocommerce ul.products li.product .button:focus-visible{ outline:2px solid #0A3049; outline-offset:2px; }
/* Confirmación "Ver carrito" que WooCommerce inyecta tras el agregado AJAX (elemento
   .added_to_cart.wc-forward, nativo del core) — por defecto sale como texto suelto sin estilo,
   pegado al borde de la tarjeta; se convierte en una píldora visible para que el click SÍ dé
   una señal clara junto al botón, sin depender de que el usuario mire el contador del header. */
.woocommerce ul.products li.product a.added_to_cart.wc-forward{
  display:flex; align-items:center; justify-content:center; gap:0.35rem;
  width:calc(100% - 2rem); margin:0.5rem 1rem 1.1rem; padding:0.55rem 0.6rem;
  background:#E3F7F5; color:#0F8F87; border-radius:10px; font-weight:700; font-size:0.85rem;
  text-decoration:none;
}
.woocommerce ul.products li.product a.added_to_cart.wc-forward::before{ content:"✓"; }
.woocommerce ul.products li.product a.added_to_cart.wc-forward:hover{ background:#DCEAE8; }
.w23-cat-filter{ display:flex; flex-wrap:wrap; gap:0.6rem; margin:0 0 2rem; }
.w23-cat-filter__pill{
  display:inline-flex; align-items:center; padding:0.55rem 1.1rem; border-radius:999px;
  border:1px solid #DCEAE8; color:#0A3049; text-decoration:none; font-weight:600; font-size:0.9rem;
  transition:background .15s,color .15s,border-color .15s;
}
.w23-cat-filter__pill:hover{ border-color:#0B3D5C; color:#0B3D5C; }
.w23-cat-filter__pill.is-active{ background:#14B8AD; border-color:#14B8AD; color:#0A3049; }

.woocommerce-ordering{ display:inline-block; margin-bottom:2rem; }
.woocommerce-ordering select.orderby{
  appearance:none; -webkit-appearance:none;
  border:1px solid #DCEAE8; border-radius:999px; background:#fff;
  padding:0.55rem 2.2rem 0.55rem 1.1rem; font-weight:600; font-size:0.9rem; color:#0A3049;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310131C' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 0.75rem center; background-size:14px;
  cursor:pointer;
}
.woocommerce-ordering select.orderby:hover{ border-color:#14B8AD; }
.woocommerce-result-count{ color:#4E6270; font-size:0.92rem; }
.woocommerce span.onsale{ position:absolute; margin:0.7rem; background:#0A3049; color:#fff; border-radius:999px; padding:0.25rem 0.7rem; font-size:0.75rem; font-weight:700; z-index:2; }
.woocommerce nav.woocommerce-pagination ul{ display:flex; gap:0.4rem; list-style:none; padding:0; justify-content:center; margin:2.5rem 0 0; }
.woocommerce nav.woocommerce-pagination ul li{ list-style:none; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span{ display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:38px; border:1px solid #DCEAE8; border-radius:8px; color:#0A3049; text-decoration:none; }
.woocommerce nav.woocommerce-pagination ul li span.current{ background:#14B8AD; color:#0A3049; border-color:#14B8AD; }

/* Single producto */
.woocommerce div.product .woocommerce-product-gallery img{ border-radius:14px; }
.woocommerce div.product p.price, .woocommerce div.product span.price{ color:#0B3D5C; font-size:1.5rem; font-weight:700; }

.woocommerce div.product form.cart{
  display:flex; align-items:center; flex-wrap:wrap; gap:1rem; margin-bottom:1.5rem;
}
.woocommerce div.product form.cart .quantity{ margin:0; }
.woocommerce div.product form.cart .quantity .qty{ height:48px; box-sizing:border-box; border-radius:10px; }
.woocommerce div.product .single_add_to_cart_button,
.woocommerce div.product .w23-wa-product-btn{
  height:48px; box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center;
  border-radius:10px !important; font-weight:700 !important; font-size:0.98rem;
  padding:0 1.6rem !important; border:none !important; margin:0 !important; line-height:1; white-space:nowrap;
}
/* Agregar al carrito (ficha): mismo criterio que el botón de grilla — #0B3D5C + texto blanco = 4.50:1. */
.woocommerce div.product .single_add_to_cart_button{ background:#0B3D5C !important; color:#fff; }
.woocommerce div.product .single_add_to_cart_button:hover{ background:#082C43 !important; }
.woocommerce div.product .w23-wa-product-btn{ background:#0F7A3E; color:#fff; text-decoration:none; gap:0.5rem; }
.woocommerce div.product .w23-wa-product-btn:hover{ background:#0B6B36; }

/* Info de despacho / pago / garantía debajo del botón de compra */
.w23-product-info{ display:flex; flex-direction:column; gap:1.1rem; padding:1.5rem; margin-bottom:1.5rem; background:#F3FAF9; border-radius:14px; }
.w23-product-info__item{ display:flex; gap:0.9rem; align-items:flex-start; }
.w23-product-info__icon{ display:inline-flex; flex-shrink:0; }
.w23-product-info__icon svg{ width:22px; height:22px; }
.w23-product-info__item strong{ display:block; font-size:0.95rem; color:#0A3049; margin-bottom:0.15rem; }
.w23-product-info__item span{ display:block; font-size:0.88rem; color:#4E6270; line-height:1.5; }
.w23-product-info__item a{ color:#0B3D5C; font-weight:600; }

/* Tabs de producto */
.woocommerce div.product .woocommerce-tabs ul.tabs{ border-bottom:1px solid #DCEAE8; padding:0; margin:0 0 1.5rem; display:flex; gap:0.5rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{ list-style:none; margin:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  display:inline-block; padding:0.8rem 1.2rem; font-weight:600; color:#4E6270; text-decoration:none; border-bottom:2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:#0B3D5C; border-bottom-color:#0B3D5C; }
.woocommerce div.product .woocommerce-tabs .panel{ color:#333; line-height:1.7; }

/* Relacionados: mismo título que el resto del sitio */
.woocommerce div.product .related.products > h2{ font-family:var(--wp--preset--font-family--heading); font-size:1.7rem; margin-bottom:1.5rem; }

/* Carrito en bloques (/carrito/ usa wc-block-cart-items, no la tabla clásica de abajo):
   el nombre del producto salía con el estilo de link por defecto de WooCommerce Blocks (teal,
   subrayado, 13px) en vez del estilo de link del resto del sitio. */
.wc-block-cart-item__product .wc-block-components-product-name{
  color:#0A3049 !important; text-decoration:none !important; font-weight:600 !important; font-size:1rem !important;
}
.wc-block-cart-item__product .wc-block-components-product-name:hover,
.wc-block-cart-item__product .wc-block-components-product-name:focus{
  text-decoration:underline; color:#0F8F87;
}
/* El monto bajo el nombre es el precio UNITARIO y el de la columna derecha es el TOTAL de la
   fila; con cantidad 1 son iguales y sin cantidad >1 no queda claro cuál es cuál (el reclamo
   real de la clienta con el "$50.000"). Se rotula el de la izquierda como precio unitario. */
.wc-block-cart-item__prices .wc-block-components-product-price__value::after{
  content:" c/u"; font-weight:400; font-size:0.85em; color:#4E6270;
}
.wc-block-components-quantity-selector__input{ font-size:0.95rem; font-weight:600; }
/* /carrito/ usa el template "page-cart" que trae el propio WooCommerce (el tema no define uno
   propio), con post-content "alignwide" y CERO padding lateral — ni el tema define padding
   global de raíz (useRootPaddingAwareAlignments). Medido a 390px: la celda de total cierra a 2px
   del borde. Con overlay scrollbar (Chromium, iOS) no se nota; en un Android con scrollbar que sí
   reserva ancho, esos 2px desaparecen y se come el último dígito del monto ("$45.000"→"$45.00").
   Mismo refuerzo, más chico, en el cajón lateral (18px de por sí, pero con 20+ artículos conviene
   dejar más aire). Scope a ≤782px: mismo breakpoint que ya usa WooCommerce para el carrito. */
@media (max-width:782px){
  .woocommerce-cart .entry-content.wp-block-post-content{
    padding-left:1rem; padding-right:1rem;
  }
  .wc-block-mini-cart__drawer .wc-block-cart-items{
    padding-right:0.5rem;
  }
}
/* La causa de fondo del corte (confirmada reproduciendo, no solo midiendo el caso con montos
   cortos): WooCommerce (mini-cart-contents.css) fija ".is-mobile/.is-small table.wc-block-cart-items
   .wc-block-cart-items__row{ grid-template-columns:80px 132px }" — foto+producto fijos en 212px,
   el resto (cantidad + total) queda "auto" sizeado por contenido. Con montos de 5 cifras
   ($10.000-$20.000) entra justo; en cuanto el total crece (combo más caro, o cantidad alta —
   reproducido subiendo la cantidad a 12 de un ítem de $20.000 → $240.000) la columna del total
   crece con su contenido y el grid entero se sale del contenedor sin encogerse: la fila queda más
   ancha que la tarjeta y el monto se corta en el borde. Pasa en /carrito/ Y en el cajón (misma
   regla, mismas clases .is-mobile/.is-small). Se angostan las dos columnas fijas de WC para
   dejarle aire a cantidad+total, que sí se ajustan solos (ya tienen su propio layout flex). */
.is-mobile table.wc-block-cart-items .wc-block-cart-items__row,
.is-small table.wc-block-cart-items .wc-block-cart-items__row{
  grid-template-columns:64px minmax(0,1fr) !important;
  column-gap:0.6rem !important;
}
/* Título del cajón "Tu carrito (artículos: N)": WooCommerce (mini-cart-contents.css) le pone
   2em (32px, h2.wc-block-mini-cart__title) — en un cajón de 480px entra en una sola fila, pero
   bajo ese ancho el cajón se angosta al viewport y cada mitad del título (dos flex-items
   independientes, "Tu carrito" y "(artículos: N)") envuelve por su cuenta: "Tu" queda arriba de
   "carrito" y "(artículos:" arriba de "N)", leyéndose como dos columnas en vez de una frase. */
@media (max-width:480px){
  /* Especificidad: WooCommerce define "h2.wc-block-mini-cart__title" (elemento+clase); una
     regla con solo la clase pierde el empate y el 2em de WC gana igual. Hay que igualar el
     selector exacto. */
  h2.wc-block-mini-cart__title{ font-size:1.2rem; line-height:1.35; }
}
.woocommerce table.shop_table{ border-radius:12px; overflow:hidden; border:1px solid #DCEAE8; border-collapse:separate; width:100%; }
.woocommerce table.shop_table th{ background:#F3FAF9; font-weight:700; color:#0A3049; padding:1rem; text-align:left; }
.woocommerce table.shop_table td{ padding:1rem; border-top:1px solid #DCEAE8; vertical-align:middle; }
.woocommerce table.shop_table td.product-thumbnail img{ border-radius:10px; width:70px; height:70px; object-fit:contain; background:#F3FAF9; }
.woocommerce table.shop_table td.product-name a{ font-weight:600; color:#0A3049; text-decoration:none; }
.woocommerce table.shop_table .quantity .qty{ height:42px; border-radius:8px; box-sizing:border-box; }
.woocommerce a.remove{ color:#0B3D5C !important; border-radius:50% !important; }
.woocommerce a.remove:hover{ background:#14B8AD !important; color:#0A3049 !important; }
.woocommerce #payment #place_order, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button{ background:#14B8AD; color:#0A3049; border-radius:10px; border:none; padding:0.85rem 1.5rem; font-weight:700; }
.woocommerce #payment #place_order:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover{ background:#0F8F87; color:#0A3049; }
.woocommerce .cart-collaterals .cart_totals{ background:#F3FAF9; border-radius:14px; padding:1.5rem; }
.woocommerce .cart-collaterals .cart_totals h2{ margin-top:0; }
.woocommerce .cart-collaterals .cart_totals table{ width:100%; }
.woocommerce .cart-collaterals .cart_totals table td, .woocommerce .cart-collaterals .cart_totals table th{ padding:0.7rem 0; border-top:1px solid #DCEAE8; }
.woocommerce-message, .woocommerce-info{ border-top-color:#14B8AD !important; background:#EAF9F7; }
.woocommerce-message::before, .woocommerce-info::before{ color:#14B8AD !important; }

/* Checkout: campos, secciones y pago */
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #order_review_heading{ font-family:var(--wp--preset--font-family--heading); font-size:1.3rem; }
.woocommerce-checkout .form-row label{ font-weight:600; font-size:0.92rem; color:#0A3049; margin-bottom:0.3rem; }
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea{
  border:1px solid #DCEAE8; border-radius:8px; padding:0.75rem; box-sizing:border-box; width:100%;
}
/* Select2 (Región) reemplaza el <select> nativo por su propio contenedor visual — hay que
   estilarlo aparte, si no queda sin borde visible (bug reportado en móvil 390px). */
.woocommerce-checkout .select2-container{ width:100% !important; }
.woocommerce-checkout .select2-container .select2-selection--single{
  border:1px solid #DCEAE8 !important; border-radius:8px !important; height:48px !important;
  display:flex; align-items:center; padding:0 0.75rem;
}
.woocommerce-checkout .select2-container .select2-selection__rendered{ padding:0 !important; color:#0A3049; line-height:normal; }
.woocommerce-checkout .select2-container .select2-selection__arrow{ height:46px !important; }
.woocommerce-checkout .select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--open .select2-selection--single{ border-color:#14B8AD !important; }
/* Layout de 2 columnas: datos + notas a la izquierda, resumen pegajoso a la derecha */
.woocommerce-checkout form.checkout{ display:block; }
@media (min-width:900px){
  .woocommerce-checkout form.checkout{
    display:grid; grid-template-columns:1.5fr 1fr; column-gap:2.5rem; align-items:start;
  }
  .woocommerce-checkout #customer_details{ grid-column:1; grid-row:1 / span 2; }
  .woocommerce-checkout #order_review_heading{ grid-column:2; grid-row:1; margin-top:0; }
  .woocommerce-checkout #order_review{ grid-column:2; grid-row:2; position:sticky; top:90px; }
}
.woocommerce-checkout #customer_details .col2-set{ display:block; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{ width:100%; float:none; }
.woocommerce-checkout #customer_details .col-2{ margin-top:1rem; }
.woocommerce-checkout #order_notes_field textarea{ min-height:80px; }

/* Miniatura de producto en "Tu pedido" */
.w23-order-item{ display:flex; align-items:center; gap:0.75rem; }
.w23-order-thumb{ width:44px; height:44px; object-fit:contain; background:#F3FAF9; border-radius:8px; flex-shrink:0; }
.w23-order-item__name{ font-size:0.92rem; }

/* Tabla "Tu pedido" con la estética del sitio */
.woocommerce-checkout-review-order-table{ border:1px solid #DCEAE8; border-radius:12px; border-collapse:separate; overflow:hidden; width:100%; }
.woocommerce-checkout-review-order-table thead th{ background:#F3FAF9; padding:0.8rem 1rem; font-weight:700; color:#0A3049; text-align:left; }
.woocommerce-checkout-review-order-table td{ padding:0.8rem 1rem; border-top:1px solid #DCEAE8; }
.woocommerce-checkout-review-order-table tfoot th, .woocommerce-checkout-review-order-table tfoot td{ padding:0.7rem 1rem; border-top:1px solid #DCEAE8; }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td{ font-size:1.1rem; font-weight:700; color:#0A3049; }

/* Avisos de WooCommerce con la paleta de marca en vez del azul por defecto */
.woocommerce-info, .woocommerce-message{ border-top-color:#14B8AD !important; background:#EAF9F7; color:#0A3049; }
.woocommerce-info::before, .woocommerce-message::before{ color:#14B8AD !important; }
.woocommerce-NoticeGroup .woocommerce-info a, .woocommerce-cart .woocommerce-info a{ color:#0B3D5C; font-weight:600; }

.w23-thankyou-wa{ margin-top:1.5rem; }

.woocommerce-checkout #payment{ background:#F3FAF9; border-radius:14px; }
.woocommerce-checkout #payment ul.payment_methods{ border-bottom:1px solid #DCEAE8; padding:1.2rem 1.2rem 0.8rem; margin:0; }
.woocommerce-checkout #payment div.payment_box{ background:#fff !important; border-radius:10px; margin:1rem 1.2rem 1.2rem !important; }
.woocommerce-checkout #payment div.payment_box::before{ display:none; }
.woocommerce-checkout #payment #place_order{ margin:0 1.2rem 1.2rem; width:calc(100% - 2.4rem); float:none; }

/* Mi cuenta */
.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:0; border:1px solid #DCEAE8; border-radius:14px; overflow:hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li{ border-bottom:1px solid #DCEAE8; }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child{ border-bottom:none; }
.woocommerce-account .woocommerce-MyAccount-navigation li a{ display:block; padding:0.9rem 1.2rem; color:#0A3049; text-decoration:none; font-weight:600; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{ background:#14B8AD; color:#0A3049; }

/* Hero home — foto real de la clienta (mujer con los brazos abiertos, pedido explícito del
   brief) a sangre completa, con velo degradado azul marino para que el texto blanco mantenga
   AA en cualquier punto de la imagen (el velo es más oscuro a la izquierda, donde va el texto,
   y se aclara hacia la derecha para no tapar la foto entera). */
.w23-hero{ position:relative; overflow:hidden; background:#0B3D5C; }
.w23-hero__bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 88%;
}
.w23-hero__scrim{
  position:absolute; inset:0;
  background:linear-gradient(100deg,rgba(11,61,92,0.94) 0%,rgba(11,61,92,0.82) 38%,rgba(15,90,114,0.55) 65%,rgba(20,184,173,0.35) 100%);
}
.w23-hero__inner{
  position:relative; z-index:2; max-width:1280px; margin:0 auto;
  padding:clamp(3rem,8vw,5.5rem) clamp(1.25rem,4vw,2rem);
  min-height:420px; display:flex; align-items:center;
}
.w23-hero__copy{ max-width:640px; }
.w23-hero__logo{ display:inline-flex; margin-bottom:1.1rem; }
/* Texto blanco: contraste alto en todo el ancho gracias al velo azul marino. */
.w23-hero__eyebrow{
  display:inline-block; margin-bottom:0.9rem; padding:0.4rem 0.9rem; border-radius:999px;
  background:rgba(255,255,255,0.18); border:1px solid rgba(255,255,255,0.35);
  color:#fff; font-size:0.75rem; font-weight:700; letter-spacing:0.14em; text-transform:uppercase;
}
.w23-hero__title{
  font-family:var(--wp--preset--font-family--heading); font-weight:700; color:#fff;
  font-size:clamp(2rem,4.2vw,3.4rem); line-height:1.15; margin:0 0 0.75rem;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
@media (max-width:480px){
  .w23-hero__title{ font-size:clamp(1.6rem,7vw,2.2rem); }
}
.w23-hero__subtitle{
  font-family:var(--wp--preset--font-family--heading); font-weight:600; color:#fff;
  font-size:clamp(1.05rem,1.8vw,1.3rem); margin:0 0 0.75rem; max-width:46ch;
}
.w23-hero__lead{
  font-size:clamp(0.95rem,1.4vw,1.05rem); color:#fff; max-width:42ch; margin:0 0 1.25rem;
}
.w23-hero__ctas{ display:flex; gap:0.85rem; flex-wrap:wrap; margin-bottom:1.25rem; }
.w23-btn{ display:inline-flex; align-items:center; justify-content:center; padding:0.8rem 1.5rem; border-radius:999px; font-weight:600; text-decoration:none; font-size:0.95rem; }
/* "Comprar ahora" no se toca: fondo blanco / texto #0A3049, es el contraste ya aprobado del
   hero. "Ver categorías" pasa a blanco (texto y borde) — sobre #0B3D5C da 4.50:1. Hover invierte
   a fondo blanco con texto #0B3D5C (4.50:1 también, mismo par de colores). */
.w23-hero .w23-btn--solid{ background:#fff; color:#0A3049; }
.w23-hero .w23-btn--solid:hover{ background:#F3FAF9; color:#0A3049; }
.w23-hero .w23-btn--outline{ background:transparent; color:#fff; border:2px solid #fff; }
.w23-hero .w23-btn--outline:hover{ background:#fff; color:#0B3D5C; }
/* Fila de 3 micro-ítems (ícono + label + sublabel). Blanco — 4.50:1 sobre #0B3D5C, pasa AA en
   texto chico. Los íconos SVG (stroke) se cambiaron a blanco directo en hero-home.php. */
.w23-hero__micro{ display:flex; flex-wrap:wrap; gap:1rem 1.5rem; }
.w23-hero__micro-item{ display:inline-flex; align-items:center; gap:0.5rem; }
.w23-hero__micro-item svg{ flex-shrink:0; }
.w23-hero__micro-text{ display:flex; flex-direction:column; line-height:1.3; }
.w23-hero__micro-text strong{ color:#fff; font-size:0.85rem; font-weight:700; }
/* Sin opacity:0.8 — mezclado con el fondo #0B3D5C bajaba el contraste real a 3.38:1 (blanco
   puro da 4.50:1). El tono más suave ahora es solo tipográfico (font-weight), no de color. */
.w23-hero__micro-text em{ color:#fff; font-style:normal; font-size:0.75rem; }

@media (max-width:899px){
  .w23-hero__copy{ max-width:none; text-align:center; }
  .w23-hero__ctas,.w23-hero__micro{ justify-content:center; }
  .w23-hero__bg{ object-position:center 85%; }
}

/* Barra de confianza final */
.w23-trust-bar{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; max-width:1280px; margin:0 auto; padding:0 clamp(1rem,4vw,2rem); }
.w23-trust-bar__item{ display:flex; align-items:center; gap:0.9rem; }
.w23-trust-bar__icon{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; background:#fff; flex-shrink:0; }
.w23-trust-bar__icon svg{ width:22px; height:22px; }
.w23-trust-bar__item strong{ display:block; font-size:0.92rem; color:#0A3049; }
.w23-trust-bar__item em{ display:block; font-style:normal; font-size:0.82rem; color:#4E6270; }
@media (max-width:900px){
  .w23-trust-bar{ grid-template-columns:repeat(2,1fr); row-gap:1.5rem; }
}
@media (max-width:480px){
  .w23-trust-bar{ grid-template-columns:1fr; }
}

/* Pilares de marca — auto-fit en vez de 4 columnas fijas: en /nosotros/ hay 3 tarjetas y con
   repeat(4,1fr) quedaba una columna vacía (540px muertos) y el texto partido en 4 líneas.
   Con auto-fit cada tarjeta llena el ancho disponible sin importar si son 3 o 4. */
/* max-width:1280px (no "none") — el contenedor "constrained" de WP le pone el contentSize
   de theme.json (740px) a este bloque HTML crudo porque no lleva la clase alignwide/alignfull
   que activaría el wideSize; con 3 tarjetas y ese tope, minmax(240px,1fr) no entraba en 3
   columnas y "Atención directa" quedaba sola en una segunda fila. Se iguala al wideSize del
   sitio (1280px) en vez de sacar el tope del todo, para no dejar la segunda fila de 4 tarjetas
   (que ya vivía en una sección alignfull) pegada a los bordes del navegador. */
.w23-pillars{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1.25rem; max-width:1280px; width:100%; margin-inline:auto; }
.w23-pillar{ text-align:center; padding:1.75rem 1rem; border-radius:14px; background:#F3FAF9; }
.w23-pillar__icon{ display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; background:#fff; margin-bottom:0.9rem; }
.w23-pillar__icon svg{ width:26px; height:26px; }
.w23-pillar h3{ font-size:1.05rem; margin:0 0 0.2rem; font-family:var(--wp--preset--font-family--heading); }
.w23-pillar p{ margin:0; color:#4E6270; font-size:0.92rem; }

/* Fila de insumos — 4 tarjetas (un ícono propio por dispositivo, sin fotos por unidad: el
   material real que llegó son fotos de los 7 combos, no de cada aparato suelto). Fondo de la
   sección turquesa muy claro, tarjeta blanca, radio 14px. 4 en desktop, 2 en tablet, deslizable
   en horizontal en móvil. */
.w23-cat-row{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; max-width:1280px; margin:0 auto; padding:0 clamp(1rem,4vw,2rem);
}
.w23-cat-card{
  display:flex; align-items:center; gap:0.9rem; height:110px; border-radius:14px;
  background:#fff; text-decoration:none !important; color:#0A3049; overflow:hidden; padding:0.9rem 1rem;
  box-shadow:0 1px 3px rgba(16,19,28,0.06); transition:box-shadow .2s,transform .2s;
}
.w23-cat-card:hover{ box-shadow:0 12px 26px rgba(16,19,28,0.14); transform:translateY(-3px); }
.w23-cat-card__media{
  display:flex; align-items:center; justify-content:center; flex-shrink:0; width:78px; height:88px;
}
.w23-cat-card__media img{ max-height:88px; max-width:100%; width:auto; height:auto; object-fit:contain; }
.w23-cat-card__media--icon{
  width:60px; height:60px; border-radius:50%; background:#E3F7F5;
}
.w23-cat-card__text{ display:flex; flex-direction:column; gap:0.3rem; min-width:0; }
.w23-cat-card__text strong{ font-weight:700; font-size:0.98rem; line-height:1.25; }
.w23-cat-card__text em{ font-style:normal; font-size:0.85rem; font-weight:600; color:#0B3D5C; white-space:nowrap; }
@media (max-width:900px){
  .w23-cat-row{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:640px){
  .w23-cat-row{
    grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:78%;
    overflow-x:auto; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch;
  }
  .w23-cat-card{ scroll-snap-align:start; }
}

/* Cómo comprar: pasos con conectores */
.w23-steps{ display:flex; align-items:flex-start; gap:0; }
.w23-step{ flex:1; background:#fff; border-radius:14px; padding:1.75rem 1.5rem; position:relative; }
.w23-step__num{ position:absolute; top:1.2rem; right:1.4rem; font-family:var(--wp--preset--font-family--heading); font-weight:700; font-size:1.6rem; color:#14B8AD; opacity:0.35; }
.w23-step__icon{ display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:50%; background:#E3F7F5; margin-bottom:1rem; }
.w23-step__icon svg{ width:26px; height:26px; }
.w23-step h3{ font-size:1.1rem; margin:0 0 0.4rem; }
.w23-step p{ margin:0; color:#4E6270; font-size:0.92rem; line-height:1.55; }
.w23-step__connector{ flex:0 0 auto; width:clamp(24px,4vw,56px); height:2px; background:repeating-linear-gradient(90deg,#14B8AD 0 6px,transparent 6px 12px); margin-top:2.6rem; }

/* Productos destacados de la home: 3 columnas parejas en desktop (no el auto-fill genérico de /tienda/) */
.w23-featured-products ul.products{ grid-template-columns:repeat(3,1fr) !important; }

@media (max-width:900px){
  .w23-steps{ flex-direction:column; gap:1.25rem; }
  .w23-step__connector{ display:none; }
  .w23-featured-products ul.products{ grid-template-columns:repeat(2,1fr) !important; }
}
@media (max-width:600px){
  .w23-featured-products ul.products{ grid-template-columns:1fr !important; }
}
@media (max-width:600px){
  .w23-wa{ right:14px; bottom:14px; width:52px; height:52px; }
}

/* Contacto: tarjetas de datos + formulario en caja */
.w23-contact-info{ display:grid; grid-template-columns:repeat(3,1fr); max-width:900px; margin:0 auto; gap:1.25rem; }
.w23-contact-info__item{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:0.7rem; padding:1.5rem 1rem; border:1px solid #DCEAE8; border-radius:14px; }
.w23-contact-info__icon{ display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; background:#E3F7F5; }
.w23-contact-info__icon svg{ width:24px; height:24px; }
.w23-contact-info__item strong{ font-size:0.95rem; color:#0A3049; }
.w23-contact-info__item a, .w23-contact-info__item span{ color:#4E6270; font-size:0.9rem; text-decoration:none; }
.w23-contact-info__item a:hover{ color:#0B3D5C; }

.w23-contact-form{
  display:flex; flex-direction:column; gap:1rem; margin-top:0;
  background:#F3FAF9; border-radius:16px; padding:clamp(1.5rem,4vw,2.25rem);
}
.w23-contact-form .w23-honeypot{ position:absolute; left:-9999px; }

/* Un solo país de venta (Chile): selector redundante oculto */
.w23-hidden-field{ display:none !important; }
.w23-contact-form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.w23-contact-form label{ display:flex; flex-direction:column; gap:0.35rem; font-weight:600; font-size:0.9rem; color:#0A3049; }
.w23-contact-form input, .w23-contact-form textarea{
  font-family:inherit; font-weight:400; font-size:0.98rem; color:#0A3049;
  padding:0.75rem; border:1px solid #DCEAE8; border-radius:8px; box-sizing:border-box; width:100%;
  background:#fff;
}
.w23-contact-form input::placeholder, .w23-contact-form textarea::placeholder{ color:#9099AC; }
.w23-contact-form__submit{
  background:#14B8AD; color:#0A3049; border:none; border-radius:10px; padding:0.9rem 1.6rem;
  font-weight:700; font-size:1rem; cursor:pointer; width:100%;
}
.w23-contact-form__submit:hover{ background:#0F8F87; }

@media (max-width:600px){
  .w23-contact-info{ grid-template-columns:1fr; }
  .w23-contact-form__row{ grid-template-columns:1fr; }
}

.w23-footer-contact svg{ vertical-align:-2px; margin-right:0.15rem; }

/* Galería: masonry simple por columnas — evita el corte feo de un grid parejo cuando las
   fotos vienen con proporciones distintas (retrato vs. producto cuadrado). */
.w23-gallery-grid{
  column-count:3; column-gap:1.25rem;
}
.w23-gallery-item{
  margin:0 0 1.25rem; break-inside:avoid; border-radius:14px; overflow:hidden;
  background:#F3FAF9; position:relative;
}
.w23-gallery-item img{ display:block; width:100%; height:auto; }
.w23-gallery-item__link{ display:block; line-height:0; }
.w23-gallery-item__link img{ transition:transform .25s; }
.w23-gallery-item__link:hover img{ transform:scale(1.03); }
.w23-gallery-item figcaption{
  padding:0.7rem 0.9rem; font-size:0.9rem; font-weight:600; color:#0A3049; background:#fff;
}
.w23-gallery-item figcaption a{ color:#0A3049; text-decoration:none; }
.w23-gallery-item figcaption a:hover{ color:#0F8F87; text-decoration:underline; }
@media (max-width:900px){
  .w23-gallery-grid{ column-count:2; }
}
@media (max-width:560px){
  .w23-gallery-grid{ column-count:1; }
}

/* Ancla bajo header sticky */
[id]{ scroll-margin-top:90px; }

/* Respeta la preferencia del sistema de reducir movimiento: desactiva transiciones/animaciones */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.001ms !important;
    scroll-behavior:auto !important;
  }
  .woocommerce ul.products li.product:hover,
  .woocommerce ul.products li.product:hover img,
  .w23-category:hover,
  .w23-wa:hover{ transform:none !important; }
}
