/* ============================================================
   VDT · Tema de la tienda (mobile-first). Nace del prototipo aprobado el 24/09/2026:
   00-Base/web/prototipo/tienda.html
   Tokens: 00-Base/marca/sistema-visual.md
   Tema: claro a propósito. La tienda real en WordPress es clara.
   ============================================================ */
:root{
  color-scheme: light;
  --azul:#046BD2; --azul-hover:#0355A6; --azul-osc:#02407D; --azul-suave:#EFF6FE;
  --tinta:#1B1F26; --gris-600:#5B6472; --gris-400:#9AA1AC; --gris-200:#DDE1E7;
  --gris-100:#ECEEF2; --gris-50:#F6F7F9; --blanco:#FFFFFF;
  --exito:#0E7A40; --exito-suave:#E7F4EC; --error:#C0342B;
  --fondo:#FFFFFF;

  /* Acento de ofertas. Variante A: amarillo (solo como fondo). */
  --acento-bg:#EEC43E; --acento-tx:#1B1F26;

  /* Cabecera. Variante: blanca. */
  --cab-bg:#FFFFFF; --cab-tx:#1B1F26; --cab-borde:#DDE1E7; --cab-icono:#1B1F26;
  --logo-filtro:none; --anuncio-bg:#02407D; --anuncio-tx:#FFFFFF;
  --buscador-borde:#C9CED6; --marca-tx:#17438C;
  --nav-bg:#046BD2; --nav-tx:#FFFFFF;
  --logo-alto:40px; --borde-campo:#858C97;

  --r-pill:999px; --r-boton:8px; --r-card:12px; --r-hoja:16px;
  --sombra-flota:0 -1px 3px rgba(27,31,38,.08);
  --sombra-hoja:0 8px 24px rgba(27,31,38,.12);
  --ancho:1200px;
}
:root[data-acento="naranja"]{ --acento-bg:#F97316; --acento-tx:#1B1F26; }
:root[data-acento="azul"]{ --acento-bg:#D6E8FC; --acento-tx:#02407D; }
:root[data-cabecera="azul"]{
  --cab-bg:#046BD2; --cab-tx:#FFFFFF; --cab-borde:#046BD2; --cab-icono:#FFFFFF;
  --logo-filtro:brightness(0) invert(1); --anuncio-bg:#02407D; --buscador-borde:#FFFFFF;
  --marca-tx:#FFFFFF; --nav-bg:#0355A6;
}

*,*::before,*::after{ box-sizing:border-box; }
body{
  margin:0; background:var(--fondo); color:var(--tinta);
  font-family:"Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  font-size:16px; line-height:1.5; font-stretch:100%;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
h1,h2,h3{ margin:0; text-wrap:balance; line-height:1.2; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; }
svg{ display:block; }
:focus-visible{ outline:2px solid var(--azul); outline-offset:2px; border-radius:4px; }
[hidden]{ display:none !important; }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.envoltura{ max-width:var(--ancho); margin:0 auto; padding-inline:16px; }

/* Precio: ancho normal. El expandido (120 %) se leía aplastado. */
.precio{ font-weight:700; font-variant-numeric:tabular-nums; letter-spacing:-.01em; line-height:1; }
.antes{ color:var(--gris-400); text-decoration:line-through; font-variant-numeric:tabular-nums; }

/* ---------- Anuncio y cabecera ---------- */
.anuncio{ background:var(--anuncio-bg); color:var(--anuncio-tx); text-align:center; font-size:13px; font-weight:600; padding:7px 16px; }
.cabecera{ position:sticky; top:env(safe-area-inset-top,0px); z-index:30; background:var(--cab-bg); color:var(--cab-tx); border-bottom:1px solid var(--cab-borde); }
.cab-fila{ display:grid; grid-template-columns:44px 1fr 44px; align-items:center; gap:8px; max-width:var(--ancho); margin:0 auto; padding:4px 8px; }
.icono-btn{ width:44px; height:44px; display:grid; place-items:center; background:transparent; border:0; border-radius:var(--r-boton); color:var(--cab-icono); position:relative; }
.marca{ display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; }
/* El PNG trae ~35 % de margen vacío: el dibujo ocupa 98×82 de 150×150. Se recorta aquí. */
.logo-caja{ height:var(--logo-alto); width:calc(var(--logo-alto) * 98 / 82); overflow:hidden; flex:none; }
.logo-caja img{ display:block; max-width:none; width:calc(var(--logo-alto) * 150 / 82); height:auto; margin:calc(var(--logo-alto) * -30 / 82) 0 0 calc(var(--logo-alto) * -30 / 82); filter:var(--logo-filtro); }
/* El recorte de arriba es para el logo del tema, que trae margen. Un logo subido en Personalizar se muestra entero. */
.logo-caja img.logo-propio{ width:100%; height:100%; margin:0; object-fit:contain; }
.marca-nombre{ font-family:"Lexend", "Archivo", system-ui, sans-serif; font-size:21px; font-weight:600; letter-spacing:-.01em; color:var(--marca-tx); line-height:1; }
.contador{
  position:absolute; top:4px; right:2px; min-width:18px; height:18px; padding:0 5px; border-radius:var(--r-pill);
  background:var(--acento-bg); color:var(--acento-tx); font-size:11px; font-weight:800; line-height:18px; text-align:center;
  box-shadow:0 0 0 2px var(--cab-bg);
}
.contador[data-n="0"]{ display:none; }
.txt-carrito{ display:none; }
.buscador-fila{ background:var(--cab-bg); padding:0 16px 12px; }
.buscador{ position:relative; max-width:640px; margin:0 auto; }
.buscador input{
  width:100%; height:46px; border:1px solid var(--buscador-borde); border-radius:var(--r-boton);
  padding:0 60px 0 14px; font:inherit; font-size:16px; color:var(--tinta); background:#fff;
}
.buscador input::placeholder{ color:var(--gris-600); }
.buscador button{ position:absolute; right:0; top:0; width:52px; height:46px; border:0; background:var(--azul); color:#fff; display:grid; place-items:center; border-radius:0 var(--r-boton) var(--r-boton) 0; }
.buscador button:hover{ background:var(--azul-hover); }
.nav-cats{ display:none; }

/* ---------- Bloques de inicio ---------- */
.seccion{ padding-block:24px; }
.seccion + .seccion{ padding-top:8px; }
.sec-tit{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:12px; }
.sec-tit h2{ font-size:20px; font-weight:700; font-stretch:110%; }
.ver-todo{ color:var(--azul); font-weight:600; font-size:15px; min-height:44px; display:inline-flex; align-items:center; white-space:nowrap; }

.banner{
  display:grid; grid-template-columns:1fr; background:var(--azul-suave); border-radius:var(--r-card);
  overflow:hidden; position:relative; margin-top:16px;
}
.banner-texto{ padding:22px 20px 0; display:grid; gap:10px; justify-items:start; position:relative; z-index:1; }
.banner h1{ font-size:30px; line-height:1.08; font-weight:800; font-stretch:112%; color:var(--azul-osc); letter-spacing:-.015em; max-width:13ch; }
.banner p{ color:var(--gris-600); font-size:15px; max-width:34ch; }
.banner-ilus{ height:170px; margin-top:-6px; }
.banner-ilus svg{ width:100%; height:100%; }

.boton{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:0 20px; border-radius:var(--r-boton); font-weight:700; font-size:16px; border:1px solid transparent; transition:background-color .15s; }
.boton-primario{ background:var(--azul); color:#fff; }
.boton-primario:hover{ background:var(--azul-hover); }
.boton-secundario{ background:#fff; color:var(--tinta); border-color:var(--gris-200); }
.boton-secundario:hover{ border-color:var(--gris-400); }
.boton-wa{ background:var(--exito); color:#fff; }

.confianza{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:16px 0 0; padding:0; }
.confianza li{ list-style:none; display:grid; gap:6px; justify-items:center; text-align:center; padding:12px 6px; border:1px solid var(--gris-200); border-radius:var(--r-card); }
.confianza svg{ color:var(--azul); }
.confianza strong{ font-size:13px; line-height:1.25; font-weight:700; }
.confianza small{ font-size:12px; line-height:1.3; color:var(--gris-600); }

.cats{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.cat{ position:relative; border-radius:var(--r-card); overflow:hidden; aspect-ratio:4/3; max-width:100%; display:block; }
.cat span{ position:absolute; left:10px; top:10px; z-index:1; background:rgba(255,255,255,.9); color:var(--tinta); border-radius:var(--r-pill); padding:5px 11px; font-size:14px; font-weight:700; max-width:calc(100% - 20px); }
.cat svg{ position:absolute; right:-6px; bottom:-8px; width:72%; height:auto; }
.cat[data-tono="azul"]{ background:#E3EFFC; }
.cat[data-tono="durazno"]{ background:#FBEDE4; }
.cat[data-tono="verde"]{ background:#E6F3EA; }
.cat[data-tono="acento"]{ background:var(--acento-bg); }
.cat[data-tono="acento"] span{ background:#fff; }

.fila{
  display:grid; grid-auto-flow:column; grid-auto-columns:46%; gap:12px;
  overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain;
  margin-inline:-16px; padding-inline:16px; scroll-padding-inline:16px; scrollbar-width:none;
}
.fila::-webkit-scrollbar{ display:none; }
.fila > *{ scroll-snap-align:start; }

/* ---------- Tarjeta de producto ---------- */
.card{ display:flex; flex-direction:column; border:1px solid var(--gris-200); border-radius:var(--r-card); overflow:hidden; background:#fff; }
.card-img{ position:relative; aspect-ratio:1; max-width:100%; background:var(--gris-50); display:grid; place-items:center; }
.card-img svg{ width:82%; height:82%; }
.badge{ display:inline-block; background:var(--acento-bg); color:var(--acento-tx); border-radius:var(--r-pill); font-size:12px; font-weight:800; padding:3px 9px; line-height:1.3; }
.card-img .badge{ position:absolute; left:8px; top:8px; }
.card-cuerpo{ padding:10px 12px 12px; display:grid; gap:6px; flex:1; align-content:start; }
.card-tit{ font-size:14px; line-height:20px; font-weight:500; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:40px; }
.card-precios{ display:flex; align-items:baseline; gap:4px 8px; flex-wrap:wrap; min-height:24px; }
.card-precios .precio{ font-size:20px; }
.card-precios .antes{ font-size:13px; }
.card-precios small{ font-size:13px; color:var(--gris-600); }

.local{ display:grid; gap:12px; background:var(--gris-50); border:1px solid var(--gris-200); border-radius:var(--r-card); padding:20px; }
.local-cab{ display:flex; gap:12px; align-items:center; }
.local-cab .ico{ width:44px; height:44px; flex:none; border-radius:var(--r-card); background:var(--azul); color:#fff; display:grid; place-items:center; }
.local h2{ font-size:20px; font-stretch:110%; }
.local address{ font-style:normal; color:var(--tinta); font-weight:600; }
.local p{ color:var(--gris-600); font-size:15px; }
.local .acciones{ display:flex; flex-wrap:wrap; gap:8px; }
.dato-copiable{ font-variant-numeric:tabular-nums; user-select:all; color:var(--tinta); font-weight:600; }

.pie{ background:var(--gris-50); border-top:1px solid var(--gris-200); margin-top:32px; padding-block:28px calc(28px + env(safe-area-inset-bottom,0px)); font-size:15px; }
.pie .envoltura{ display:grid; gap:20px; }
.pie h3{ font-size:15px; font-weight:700; margin-bottom:6px; }
.pie ul{ list-style:none; padding:0; margin:0; display:grid; }
.pie li a{ display:inline-flex; min-height:40px; align-items:center; color:var(--gris-600); }
.pie small{ color:var(--gris-600); font-size:13px; }
.pie-marca{ display:flex; align-items:center; gap:8px; --logo-alto:32px; --marca-tx:#17438C; --logo-filtro:none; }
.pie-marca .marca-nombre{ font-size:18px; }
.pie-intro{ display:grid; gap:10px; }

/* ---------- Categoría ---------- */
.migas{ font-size:13px; color:var(--gris-600); padding-top:14px; display:flex; gap:6px; flex-wrap:wrap; }
.migas a{ color:var(--azul); }
.cat-cab{ padding-block:8px 12px; display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.cat-cab h1{ font-size:26px; font-weight:800; font-stretch:110%; }
.cat-cab p{ color:var(--gris-600); font-size:14px; white-space:nowrap; }
.filtros{ display:flex; gap:8px; overflow-x:auto; margin-inline:-16px; padding:0 16px 14px; scrollbar-width:none; }
.filtros::-webkit-scrollbar{ display:none; }
.chip{
  flex:none; min-height:40px; padding:0 14px; border-radius:var(--r-pill); border:1px solid var(--gris-200);
  background:#fff; font-size:14px; font-weight:600; display:inline-flex; align-items:center; gap:6px;
}
.chip[aria-current="page"]{ background:var(--azul-suave); border-color:var(--azul); color:var(--azul-osc); }
.orden{ position:relative; flex:none; }
.orden select{ appearance:none; -webkit-appearance:none; min-height:40px; border-radius:var(--r-pill); border:1px solid var(--gris-200); background:#fff; font:inherit; font-size:14px; font-weight:600; padding:0 34px 0 14px; color:var(--tinta); }
.orden svg{ position:absolute; right:12px; top:50%; transform:translateY(-50%); pointer-events:none; }
.rejilla{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.mas{ display:flex; justify-content:center; padding-top:20px; }
.vacio{ padding:32px 0; text-align:center; color:var(--gris-600); display:grid; gap:12px; justify-items:center; }

/* ---------- Producto ---------- */
.pag-producto{ padding-bottom:104px; }
.galeria-caja{ position:relative; margin-inline:-16px; }
.galeria{ display:grid; grid-auto-flow:column; grid-auto-columns:100%; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; background:var(--gris-50); }
.galeria::-webkit-scrollbar{ display:none; }
.galeria figure{ margin:0; aspect-ratio:1; max-width:100%; display:grid; place-items:center; scroll-snap-align:start; }
.galeria svg{ width:78%; height:78%; }
.galeria-cont{ position:absolute; right:12px; bottom:12px; background:rgba(27,31,38,.72); color:#fff; font-size:12px; font-weight:700; border-radius:var(--r-pill); padding:3px 9px; font-variant-numeric:tabular-nums; }
.galeria-caja .badge{ position:absolute; left:12px; top:12px; font-size:13px; }
.puntos{ display:flex; justify-content:center; gap:4px; padding-top:6px; }
.puntos button{ width:32px; height:32px; border:0; background:transparent; display:grid; place-items:center; padding:0; }
.puntos button::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--gris-200); }
.puntos button[aria-current="true"]::before{ background:var(--azul); width:20px; border-radius:4px; }

.p-info{ display:grid; gap:20px; padding-top:12px; }
.p-cabeza{ display:grid; gap:6px; }
.p-info h1{ font-size:22px; line-height:28px; font-weight:600; }
.p-pres{ color:var(--gris-600); font-size:15px; }
.p-precio{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 10px; margin-top:6px; }
.p-precio .precio{ font-size:32px; }
.p-precio .antes{ font-size:17px; }

.bloque-tit{ font-size:16px; font-weight:700; }
.opciones{ border:0; padding:0; margin:0; display:grid; gap:8px; min-width:0; }
.opciones legend{ padding:0; margin-bottom:8px; font-size:15px; }
.op-lista{ display:flex; flex-wrap:wrap; gap:8px; }
.op{
  min-height:48px; min-width:72px; padding:0 16px; border-radius:var(--r-boton); border:1px solid var(--gris-200); background:#fff;
  font-weight:600; font-size:15px; display:inline-flex; flex-direction:column; justify-content:center; align-items:center; line-height:1.15;
}
.op small{ font-size:11px; font-weight:600; color:var(--gris-600); }
.op[aria-checked="true"]{ border:2px solid var(--azul); background:var(--azul-suave); color:var(--azul-osc); padding:0 15px; }
.op:disabled{ color:var(--gris-400); border-style:dashed; cursor:not-allowed; }
.op:disabled .op-v{ text-decoration:line-through; }
.op-fotos{ display:flex; flex-wrap:wrap; gap:8px; }
.op-foto{ width:76px; display:grid; gap:4px; justify-items:center; padding:0; border:0; background:transparent; font-size:13px; font-weight:600; color:var(--gris-600); }
.op-foto .mini{ width:76px; height:76px; border-radius:var(--r-boton); border:1px solid var(--gris-200); background:var(--gris-50); display:grid; place-items:center; overflow:hidden; }
.op-foto .mini svg{ width:88%; height:88%; }
.op-foto[aria-checked="true"]{ color:var(--tinta); }
.op-foto[aria-checked="true"] .mini{ border:2px solid var(--azul); }
.op-foto:disabled{ cursor:not-allowed; }
.op-foto:disabled .mini{ opacity:.45; border-style:dashed; }

/* Cantidad: tres fichas lado a lado. Cada una dice solo cantidad, total y descuento.
   El precio por unidad aparece una vez, debajo, y solo si eliges más de una. */
.cantidad{ border:0; padding:0; margin:0; min-width:0; display:grid; gap:8px; }
.cantidad legend{ padding:0; margin-bottom:10px; }
.cant-lista{ display:grid; gap:12px; }
.cant{ position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; min-height:60px; padding:10px 16px; border:1px solid var(--gris-200); border-radius:var(--r-card); background:#fff; cursor:pointer; }
.cant input{ width:20px; height:20px; accent-color:var(--azul); margin:0; }
.cant:has(input:checked){ border:2px solid var(--azul); background:var(--azul-suave); padding:9px 15px; }
.cant-n{ font-weight:700; font-size:16px; display:block; }
.cant-sub{ display:block; font-size:13px; color:var(--gris-600); }
.cant .precio{ font-size:20px; }
.cant-tag{ position:absolute; top:-10px; right:14px; background:var(--acento-bg); color:var(--acento-tx); border-radius:var(--r-pill); font-size:11px; font-weight:800; padding:2px 9px; line-height:1.4; }


.video{ position:relative; aspect-ratio:4/5; max-width:100%; max-height:440px; width:100%; border:0; border-radius:var(--r-card); background:var(--gris-100); display:grid; place-items:center; padding:0; }
.video .play{ width:64px; height:64px; border-radius:50%; background:var(--tinta); color:#fff; display:grid; place-items:center; }

.specs{ width:100%; border-collapse:collapse; font-size:15px; }
.specs th, .specs td{ text-align:left; padding:8px 0; border-bottom:1px solid var(--gris-100); vertical-align:top; }
.specs th{ font-weight:500; color:var(--gris-600); width:42%; padding-right:12px; }
.specs td{ color:var(--tinta); }
.specs tr:last-child th, .specs tr:last-child td{ border-bottom:0; }
.specs, .specs th, .specs td{ border-left:0; border-right:0; } /* Astra le pone borde a todas las celdas */

.dudas-card{ display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:14px 16px; border:1px solid var(--gris-200); border-radius:var(--r-card); background:#fff; }
.dudas-card:hover{ border-color:var(--gris-400); }
.dudas-card .ico{ width:40px; height:40px; flex:none; border-radius:50%; background:var(--tinta); color:#fff; display:grid; place-items:center; }
.dudas-card strong{ display:block; font-size:16px; }
.dudas-card span span{ display:block; font-size:14px; color:var(--gris-600); }
.dudas-card > svg{ margin-left:auto; flex:none; transform:rotate(-90deg); color:var(--gris-600); }

.lista-check{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.lista-check li{ display:flex; gap:10px; align-items:flex-start; }
.lista-check svg{ flex:none; color:var(--exito); margin-top:2px; }

.acordeon{ border-top:1px solid var(--gris-200); }
.acordeon details{ border-bottom:1px solid var(--gris-200); }
.acordeon summary{ list-style:none; min-height:52px; display:flex; align-items:center; justify-content:space-between; gap:12px; font-weight:600; cursor:pointer; }
.acordeon summary::-webkit-details-marker{ display:none; }
.acordeon summary svg{ transition:transform .15s; flex:none; }
.acordeon details[open] summary svg{ transform:rotate(180deg); }
.acordeon .txt{ padding-bottom:16px; color:var(--gris-600); font-size:15px; display:grid; gap:8px; }
.acordeon .txt a{ color:var(--azul); font-weight:600; }

.bloque{ display:grid; gap:12px; }
.sec-p{ display:grid; gap:14px; padding-top:12px; }
.sec-p > h2{ font-size:20px; font-weight:700; }
.caract-caja{ background:var(--gris-50); border-radius:var(--r-card); padding:18px; display:grid; gap:12px; }
.caract-caja h2{ font-size:17px; font-weight:700; }
.faq-panel{ background:var(--gris-50); margin-inline:-16px; padding:28px 16px; display:grid; gap:14px; }
.faq-panel > h2{ font-size:20px; font-weight:700; }
.faq-lista{ display:grid; gap:8px; }
.faq-lista details{ background:#fff; border:1px solid var(--gris-200); border-radius:var(--r-boton); padding-inline:16px; }
.faq-lista summary{ list-style:none; min-height:52px; padding-block:10px; display:flex; align-items:center; justify-content:space-between; gap:12px; font-weight:600; cursor:pointer; }
.faq-lista summary::-webkit-details-marker{ display:none; }
.faq-lista summary svg{ transition:transform .15s; flex:none; }
.faq-lista details[open] summary svg{ transform:rotate(180deg); }
.faq-lista .txt{ padding-bottom:16px; color:var(--gris-600); font-size:15px; }
.resenas-vacio{ border:1px dashed var(--gris-200); border-radius:var(--r-card); padding:20px; text-align:center; color:var(--gris-600); font-size:15px; }

.barra{
  position:fixed; left:0; right:0; bottom:0; z-index:40; background:#fff; border-top:1px solid var(--gris-200);
  transform:translateY(110%); transition:transform .2s ease-out;
  box-shadow:var(--sombra-flota); padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));
}
.barra-in{ max-width:var(--ancho); margin:0 auto; display:grid; grid-template-columns:auto 1fr 48px; gap:10px; align-items:center; }
.barra-precio{ display:grid; line-height:1.1; min-width:76px; gap:2px; }
.barra-precio .precio{ font-size:20px; }
.barra-precio small{ font-size:12px; font-weight:600; color:var(--exito); white-space:nowrap; }
.barra .boton-primario{ min-height:50px; padding:0 12px; }
.barra-carrito{ width:48px; height:48px; border-radius:50%; border:1px solid var(--gris-200); background:#fff; display:grid; place-items:center; }

/* ---------- Botón de ayuda, hojas y aviso ---------- */
.ayuda{
  position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:35;
  width:56px; height:56px; border-radius:50%; border:0; background:var(--tinta); color:#fff;
  display:grid; place-items:center; box-shadow:var(--sombra-hoja);
}
body.barra-on .barra{ transform:none; }
body.barra-on .ayuda{ bottom:calc(84px + env(safe-area-inset-bottom,0px)); }

dialog.hoja{
  border:0; padding:0; margin:auto 0 0; width:100%; max-width:100%; max-height:88vh; border-radius:var(--r-hoja) var(--r-hoja) 0 0;
  background:#fff; color:var(--tinta); box-shadow:var(--sombra-hoja);
}
dialog.hoja::backdrop{ background:rgba(27,31,38,.45); }
dialog.lateral{ margin:0 auto 0 0; height:100%; max-height:100%; width:min(86vw,360px); border-radius:0 var(--r-hoja) var(--r-hoja) 0; }
.hoja-cab{ position:sticky; top:0; z-index:1; background:#fff; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 8px 8px 20px; border-bottom:1px solid var(--gris-100); }
.hoja-cab h2{ font-size:18px; }
.hoja-cuerpo{ padding:16px 20px calc(24px + env(safe-area-inset-bottom,0px)); display:grid; gap:18px; }
.hoja .icono-btn{ color:var(--tinta); }
.grupo-op{ border:0; padding:0; margin:0; display:grid; gap:8px; min-width:0; }
.grupo-op legend{ font-weight:700; margin-bottom:8px; padding:0; }
.op-color{ display:flex; align-items:center; gap:12px; min-height:56px; padding:6px 14px; border:1px solid var(--gris-200); border-radius:var(--r-card); cursor:pointer; line-height:1.3; }
.op-color:has(input:checked){ border:2px solid var(--azul); background:var(--azul-suave); padding:5px 13px; }
.op-color input{ width:20px; height:20px; accent-color:var(--azul); margin:0; flex:none; }
.muestra{ width:28px; height:28px; border-radius:var(--r-boton); border:1px solid rgba(27,31,38,.14); flex:none; }
.op-color small{ display:block; color:var(--gris-600); font-size:13px; }
.nota{ font-size:14px; color:var(--gris-600); background:var(--gris-50); border-radius:var(--r-boton); padding:12px; }
.menu-lista{ list-style:none; padding:0; margin:0; }
.menu-lista a{ display:flex; align-items:center; min-height:52px; border-bottom:1px solid var(--gris-100); font-weight:600; }
.chat-log{ display:grid; gap:10px; }
.burbuja{ background:var(--gris-50); border-radius:var(--r-card) var(--r-card) var(--r-card) 4px; padding:10px 14px; font-size:15px; max-width:90%; justify-self:start; }
.burbuja-yo{ justify-self:end; background:var(--azul); color:#fff; border-radius:var(--r-card) var(--r-card) 4px var(--r-card); }
.sugerencias{ display:flex; flex-wrap:wrap; gap:8px; }
.sugerencias .chip{ flex:0 1 auto; color:var(--azul-osc); border-color:var(--azul); background:#fff; text-align:left; padding-block:8px; line-height:1.3; }
.sugerencias-tit{ font-size:13px; font-weight:600; color:var(--gris-600); }
.chat-entrada{ display:flex; gap:8px; }
.chat-entrada input{ flex:1; min-width:0; height:46px; border:1px solid var(--gris-200); border-radius:var(--r-boton); padding:0 12px; font:inherit; font-size:16px; background:var(--gris-50); color:var(--gris-600); }

.aviso{
  position:fixed; left:50%; transform:translateX(-50%); bottom:calc(24px + env(safe-area-inset-bottom,0px)); z-index:60;
  background:var(--tinta); color:#fff; border-radius:var(--r-boton); padding:12px 16px; font-size:14px; font-weight:600;
  width:max-content; max-width:calc(100vw - 32px); box-shadow:var(--sombra-hoja);
}
body.barra-on .aviso{ bottom:calc(92px + env(safe-area-inset-bottom,0px)); }

.buscador-escritorio{ display:none; }
.compra{ display:grid; gap:10px; }
.compra .boton{ min-height:52px; width:100%; }
.aviso-opciones{ margin:10px 0 0; font-size:14px; font-weight:600; }
.aviso-opciones small{ font-weight:400; color:var(--gris-600); }

/* ---------- Cantidad: fila "Más unidades" y contador ---------- */
.cant-paso{ grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:10px; border-top:1px solid rgba(4,107,210,.2); font-size:14px; color:var(--gris-600); }
.uds{ display:inline-flex; align-items:center; border:1px solid var(--borde-campo); border-radius:var(--r-boton); background:#fff; }
.uds button{ width:44px; height:44px; border:0; background:transparent; display:grid; place-items:center; font-size:20px; font-weight:600; color:var(--tinta); border-radius:var(--r-boton); }
.uds button:disabled{ color:var(--gris-400); cursor:not-allowed; }
.uds output{ min-width:32px; text-align:center; font-weight:700; font-variant-numeric:tabular-nums; }
.cant-simple{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cant-simple p{ font-size:14px; color:var(--gris-600); }
.confianza.info-2{ grid-template-columns:1fr 1fr; margin:0; }
.confianza.info-2 li:first-child{ grid-column:1 / -1; }
.confianza.info-2.con-garantia li:first-child{ grid-column:auto; }
.gal-flecha{ display:none; }

/* ---------- Carrito ---------- */
.pag-titulo{ padding-block:8px 16px; display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.pag-titulo h1{ font-size:26px; font-weight:800; font-stretch:110%; }
.pag-titulo p{ color:var(--gris-600); font-size:14px; }
.carrito-grid{ display:grid; gap:24px; align-items:start; padding-bottom:32px; }
.lineas{ list-style:none; margin:0; padding:0; display:grid; border-top:1px solid var(--gris-200); }
.linea{ display:grid; grid-template-columns:84px minmax(0,1fr); gap:14px; padding-block:16px; border-bottom:1px solid var(--gris-200); }
.linea-img{ width:84px; height:84px; border-radius:var(--r-boton); background:var(--gris-50); display:grid; place-items:center; }
.linea-img svg{ width:86%; height:86%; }
.linea-info{ display:grid; gap:2px; align-content:start; }
.linea-cab{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.linea-nombre{ font-weight:600; line-height:1.3; }
.linea-op{ font-size:14px; color:var(--gris-600); }
.linea-total{ display:grid; justify-items:end; gap:2px; flex:none; }
.linea-total .precio{ font-size:18px; }
.ahorro{ font-size:13px; font-weight:600; color:var(--exito); }
.linea-pie{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; }
.quitar{ border:0; background:transparent; padding:0 4px; min-height:44px; font-size:14px; color:var(--gris-600); text-decoration:underline; text-underline-offset:3px; }
.resumen{ background:var(--gris-50); border-radius:var(--r-card); padding:20px; display:grid; gap:12px; }
.resumen h2{ font-size:20px; }
.res-fila{ display:flex; justify-content:space-between; gap:12px; font-size:16px; }
.res-fila span:last-child{ font-variant-numeric:tabular-nums; text-align:right; }
.res-fila.verde span:last-child{ color:var(--exito); font-weight:600; }
.res-total{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; border-top:1px solid var(--gris-200); padding-top:12px; font-weight:700; }
.res-total .precio{ font-size:24px; }
.res-nota{ font-size:13px; color:var(--gris-600); }
.pago-nota{ display:flex; gap:8px; align-items:center; font-size:14px; color:var(--gris-600); }
.pago-nota svg{ color:var(--exito); flex:none; }
.resumen .boton{ width:100%; }
.seguir{ color:var(--azul); font-weight:600; font-size:15px; justify-self:center; min-height:44px; display:inline-flex; align-items:center; }
.agregado-linea{ display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:12px; align-items:center; }
.agregado-linea .linea-img{ width:64px; height:64px; }
.hoja-botones{ display:grid; gap:8px; }
.hoja-botones .boton{ width:100%; }
.hoja-cab h2{ display:flex; align-items:center; gap:8px; }
.hoja-cab h2 svg{ color:var(--exito); }

/* ---------- Pedido (checkout) ---------- */
.pedido-sub{ color:var(--gris-600); font-size:15px; margin-top:-10px; padding-bottom:16px; }
.form-pedido{ display:grid; gap:20px; padding-bottom:96px; align-items:start; }
.paso{ border:1px solid var(--gris-200); border-radius:var(--r-card); padding:14px 16px 20px; margin:0; display:grid; gap:16px; min-width:0; }
.paso legend{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:17px; padding:0 6px; }
.paso-n{ width:26px; height:26px; border-radius:50%; background:var(--azul); color:#fff; display:grid; place-items:center; font-size:14px; font-weight:700; }
.campo{ display:grid; gap:6px; min-width:0; align-content:start; }
.campo label{ font-weight:600; font-size:15px; }
.campo label small{ font-weight:400; font-size:14px; color:var(--gris-600); }
.campo input, .campo select{ width:100%; min-height:48px; border:1px solid var(--borde-campo); border-radius:var(--r-boton); padding:0 14px; font:inherit; font-size:16px; color:var(--tinta); background:#fff; }
.campo select{ appearance:none; -webkit-appearance:none; padding-right:42px; }
.sel{ position:relative; }
.sel svg{ position:absolute; right:12px; top:50%; transform:translateY(-50%); pointer-events:none; }
.campo input:focus-visible, .campo select:focus-visible{ outline:2px solid var(--azul); outline-offset:0; border-color:var(--azul); border-radius:var(--r-boton); }
.campo [aria-invalid="true"]{ border:2px solid var(--error); padding-inline:13px; }
.campo-ayuda{ font-size:13px; color:var(--gris-600); }
.campo-error{ font-size:14px; color:var(--error); font-weight:600; }
/* Ciudad: se escribe y la lista se filtra (en Guayas hay 95 opciones) */
.combo{ position:relative; }
.combo input{ padding-right:42px; scroll-margin-top:150px; }
.combo-lista{
  position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:20; margin:0; padding:4px 0; list-style:none;
  max-height:264px; overflow-y:auto; overscroll-behavior:contain; background:#fff;
  border:1px solid var(--gris-200); border-radius:var(--r-boton); box-shadow:var(--sombra-hoja);
}
.combo-lista li[role="option"]{ min-height:44px; display:flex; align-items:center; padding:6px 14px; cursor:pointer; line-height:1.3; }
.combo-lista li[role="option"] b{ font-weight:700; color:var(--azul-osc); }
.combo-lista li[aria-selected="true"]{ background:var(--azul-suave); }
.combo-vacio{ padding:10px 14px; font-size:14px; color:var(--gris-600); }
.campos-2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start; }
.op-entrega{ display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; padding:12px 14px; border:1px solid var(--gris-200); border-radius:var(--r-card); cursor:pointer; }
.op-entrega:has(input:checked){ border:2px solid var(--azul); background:var(--azul-suave); padding:11px 13px; }
.op-entrega input{ width:20px; height:20px; accent-color:var(--azul); margin:0; }
.op-entrega strong{ display:block; }
.op-entrega small{ display:block; font-size:13px; color:var(--gris-600); }
.op-entrega > span:last-child{ font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.pago-caja{ display:flex; gap:12px; align-items:flex-start; background:var(--exito-suave); border-radius:var(--r-boton); padding:14px; color:#0B5E32; font-size:15px; }
.pago-caja svg{ flex:none; }
.pedido-lado{ display:grid; gap:12px; }
.pedido-lado .boton{ width:100%; min-height:54px; }
.mini-lineas{ list-style:none; margin:0; padding:0 0 14px; display:grid; gap:14px; border-bottom:1px solid var(--gris-200); }
.mini-lineas li{ display:grid; grid-template-columns:60px minmax(0,1fr) auto; gap:12px; align-items:center; font-size:16px; font-weight:600; line-height:1.3; }
.mini-lineas .linea-img{ width:60px; height:60px; background:#fff; }
.mini-lineas small{ display:block; font-size:14px; font-weight:400; color:var(--gris-600); margin-top:2px; }
.mini-lineas li > span:last-child{ font-variant-numeric:tabular-nums; }
.res-filas{ display:grid; gap:10px; }
.form-alerta{ color:var(--error); font-weight:600; font-size:14px; }
.boton[aria-busy="true"]{ opacity:.75; cursor:progress; }

/* ---------- Gracias ---------- */
.gracias{ max-width:1000px; margin:0 auto; padding-block:24px 48px; display:grid; gap:24px; }
.gracias-ico{ width:56px; height:56px; border-radius:50%; background:var(--exito-suave); color:var(--exito); display:grid; place-items:center; }
.gracias h1{ font-size:28px; font-weight:800; font-stretch:110%; line-height:1.15; }
.gracias .boton{ width:100%; }

/* ---------- Detalles visibles ---------- */
.det-bloque{ display:grid; gap:8px; }
.det-bloque h3{ font-size:16px; font-weight:700; }
.desc{ color:var(--gris-600); display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.desc.abierta{ display:block; }
.leer-mas{ justify-self:start; border:0; background:transparent; padding:0; min-height:40px; color:var(--azul); font-weight:600; }
.specs{ border-top:1px solid var(--gris-200); }

/* ---------- Gracias ---------- */
.gracias-cab{ background:var(--exito-suave); border-radius:var(--r-card); padding:28px 20px; display:grid; justify-items:center; text-align:center; gap:8px; }
.gracias-cab .gracias-ico{ width:64px; height:64px; background:var(--exito); color:#fff; margin-bottom:6px; }
.gracias-cab .gracias-ico svg{ width:32px; height:32px; }
.gracias-cab h1{ color:#0B5E32; }
.gracias-chip{ background:#fff; color:var(--tinta); border-radius:var(--r-pill); padding:4px 14px; font-weight:700; font-size:15px; font-variant-numeric:tabular-nums; }
.gracias-grid{ display:grid; gap:24px; align-items:start; }
.linea-tiempo{ list-style:none; margin:0; padding:0; display:grid; }
.linea-tiempo li{ position:relative; display:grid; grid-template-columns:32px minmax(0,1fr); gap:14px; padding-bottom:22px; }
.linea-tiempo li:last-child{ padding-bottom:0; }
.linea-tiempo li::after{ content:""; position:absolute; left:15px; top:34px; bottom:2px; width:2px; background:var(--gris-200); }
.linea-tiempo li:last-child::after{ display:none; }
.lt-n{ width:32px; height:32px; border-radius:50%; border:2px solid var(--gris-200); background:#fff; color:var(--gris-600); display:grid; place-items:center; font-weight:700; font-size:15px; }
.linea-tiempo li.ahora .lt-n{ background:var(--azul); border-color:var(--azul); color:#fff; }
.linea-tiempo strong{ display:block; font-size:17px; }
.linea-tiempo p{ color:var(--gris-600); font-size:15px; }
.wa-demo{ margin-top:12px; background:#EFEAE2; border-radius:var(--r-card); padding:14px; display:grid; gap:6px; max-width:380px; }
.wa-burbuja{ background:#fff; border-radius:8px 8px 8px 2px; padding:10px 12px; font-size:14px; color:var(--tinta); line-height:1.45; box-shadow:0 1px 1px rgba(27,31,38,.1); }
.wa-boton{ background:#fff; border-radius:8px; padding:9px; text-align:center; font-size:14px; font-weight:600; color:#027EB5; box-shadow:0 1px 1px rgba(27,31,38,.1); }
.wa-demo small{ font-size:12px; color:var(--gris-600); text-align:center; }
.entrega-a{ display:grid; gap:2px; padding-top:14px; border-top:1px solid var(--gris-200); font-size:15px; }
.entrega-a b{ font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--gris-600); font-weight:700; margin-bottom:2px; }
.gracias-ayuda{ display:grid; gap:10px; text-align:center; }
.gracias-ayuda p{ color:var(--gris-600); font-size:15px; }

/* ---------- Escritorio ---------- */
@media (min-width:900px){
  :root{ --logo-alto:48px; }
  .cabecera{ border-bottom:0; }
  .cab-fila{ grid-template-columns:auto minmax(0,1fr) auto; padding:12px 16px; gap:32px; }
  .cab-fila .menu-btn{ display:none; }
  .marca{ justify-content:flex-start; order:-1; gap:10px; }
  .marca-nombre{ font-size:24px; }
  .cab-fila .carrito-btn{ justify-self:end; width:auto; padding:0 12px; gap:8px; display:flex; font-weight:600; }
  .carrito-btn .txt-carrito{ display:inline; }
  .carrito-btn .contador{ position:static; box-shadow:none; }
  .buscador-fila{ display:none; }
  .buscador-escritorio{ display:block; width:100%; max-width:620px; justify-self:center; }
  .nav-cats{ display:block; background:var(--nav-bg); }
  .nav-cats ul{ list-style:none; margin:0 auto; padding:0 16px; max-width:var(--ancho); display:flex; gap:32px; }
  .nav-cats a{ display:inline-flex; min-height:46px; align-items:center; font-size:15px; font-weight:600; color:var(--nav-tx); border-bottom:3px solid transparent; padding-top:3px; }
  .nav-cats a:hover{ border-bottom-color:rgba(255,255,255,.7); }
  .nav-cats li:last-child{ margin-left:auto; }
  .nav-cats li:last-child a{ gap:8px; }
  .banner{ grid-template-columns:1.1fr 1fr; min-height:300px; }
  .banner-texto{ padding:40px; align-content:center; }
  .banner h1{ font-size:44px; }
  .banner-ilus{ height:auto; margin:0; align-self:end; }
  .confianza li{ grid-template-columns:auto 1fr; justify-items:start; text-align:left; align-items:center; column-gap:12px; row-gap:0; padding:14px 16px; }
  .confianza li svg{ grid-row:span 2; }
  .confianza li.solo svg{ grid-row:auto; }
  .cats{ grid-template-columns:repeat(4,1fr); }
  .fila{ grid-auto-columns:calc((100% - 48px) / 5); margin-inline:0; padding-inline:0; }
  .rejilla{ grid-template-columns:repeat(4,1fr); gap:16px; }
  .pie .envoltura{ grid-template-columns:2fr 1fr 1fr; }
  .pag-producto{ padding-bottom:40px; }
  /* La galería fija vive dentro de .p-top: al terminar la ficha se suelta y no pisa a "También te puede interesar". */
  .p-top{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 56px; align-items:start; }
  .col-galeria{ position:sticky; top:132px; padding-top:12px; }
  .galeria-caja{ margin-inline:0; border-radius:var(--r-card); overflow:hidden; }
  .p-info{ padding-top:12px; }
  .p-info h1{ font-size:28px; line-height:34px; }
  .gal-flecha{ position:absolute; top:50%; transform:translateY(-50%); z-index:1; width:44px; height:44px; border-radius:50%; border:1px solid var(--gris-200); background:#fff; color:var(--tinta); display:grid; place-items:center; box-shadow:0 2px 8px rgba(27,31,38,.12); }
  .gal-ant{ left:14px; } .gal-sig{ right:14px; }
  .gal-ant svg{ transform:rotate(90deg); } .gal-sig svg{ transform:rotate(-90deg); }
  .gal-flecha:disabled{ opacity:0; pointer-events:none; }
  .carrito-grid{ grid-template-columns:minmax(0,1fr) 360px; gap:40px; }
  .gracias-grid{ grid-template-columns:minmax(0,1fr) 400px; gap:40px; }
  .carrito-grid .resumen{ position:sticky; top:132px; }
  .form-pedido{ grid-template-columns:minmax(0,1fr) 380px; column-gap:40px; padding-bottom:48px; }
  .form-pedido > .paso{ grid-column:1; }
  .pedido-lado{ grid-column:2; grid-row:1 / span 3; position:sticky; top:132px; }
  .barra{ display:none; }
  .compra{ grid-template-columns:1fr auto; }
  .compra .boton-secundario{ width:auto; }
  .faq-panel{ margin-inline:0; border-radius:var(--r-card); padding:24px; }
  body.barra-on .ayuda{ bottom:24px; }
  body.barra-on .aviso{ bottom:24px; }
  dialog.hoja:not(.lateral){ margin:auto; max-width:480px; border-radius:var(--r-hoja); }
}

@media (prefers-reduced-motion:reduce){
  *{ transition:none !important; scroll-behavior:auto !important; }
}

/* ============================================================
   Ajustes sobre Astra: el tema padre trae estilos de botones, contenedor y
   extras que chocan con el diseño. Se neutralizan aquí, no en Astra.
   ============================================================ */
#page .ast-container{ max-width:var(--ancho); padding-left:16px !important; padding-right:16px !important; }
.site-content > .ast-container{ display:block; }
#primary{ margin:0 !important; padding:0 !important; width:100%; }
.ast-separate-container #primary, .ast-plain-container #primary{ padding:0; }
body, .site{ background:var(--fondo); }
#ast-scroll-top{ display:none !important; }
.woocommerce-breadcrumb{ display:none; }

/* Botones del tema: Astra pinta todo <button> con su color, sombra y relleno */
.icono-btn, .icono-btn:hover, .icono-btn:focus, .barra-carrito, .gal-flecha, .puntos button, .uds button,
.op, .chip, .leer-mas, .dudas-card, .ayuda, .quitar, .combo-lista li{
  box-shadow:none; text-transform:none; letter-spacing:normal; line-height:inherit;
}
.icono-btn, .icono-btn:hover, .icono-btn:focus{ background:transparent; color:var(--cab-icono); padding:0; }
.puntos button, .puntos button:hover, .uds button:hover, .leer-mas:hover, .quitar:hover{ background:transparent; }
.op:hover{ background:#fff; color:var(--tinta); }
.op[aria-checked="true"]:hover{ background:var(--azul-suave); color:var(--azul-osc); }
.boton{ text-decoration:none; line-height:1.2; }
.boton-primario:hover, .boton-primario:focus{ color:#fff; }
.boton-secundario:hover, .boton-secundario:focus{ background:#fff; color:var(--tinta); }
.boton:disabled{ opacity:.55; cursor:not-allowed; }
.uds button, .barra-carrito, .gal-flecha{ padding:0; }
.cant input[type=radio]{ margin:0; }
#vdt-compra .compra{ margin-top:16px; }

/* Pedido en escritorio: Astra pone el resumen flotando al 40 %, con relleno y borde, con una regla
   que lleva dos id. Hace falta la misma fuerza para devolverlo a su columna. */
body form.form-pedido #order_review#order_review{ width:auto; float:none; clear:none; margin:0; padding:0; border:0; }

/* Fotos reales (WooCommerce) en lugar de las ilustraciones del prototipo */
.galeria figure img, .card-img img{ width:100%; height:100%; object-fit:contain; margin:0; }
.card-img img{ width:86%; height:86%; }
.video-caja{ border-radius:var(--r-card); overflow:hidden; }
.video-caja iframe, .video-caja video{ width:100%; aspect-ratio:9/16; max-height:560px; height:auto; }
.desc p{ margin:0 0 .6em; }
.banner-ilus img{ width:100%; height:100%; object-fit:contain; object-position:center bottom; display:block; }
.cat img{ position:absolute; right:-4px; bottom:-6px; width:66%; height:auto; object-fit:contain; }
.cat.cat-foto img{ inset:0; width:100%; height:100%; object-fit:cover; }
.vdt-inicio{ padding-top:0; }
.orden label{ position:relative; display:block; }
.mas .boton{ min-width:220px; }

/* Carrito: la cantidad se guarda sola al tocar − / + */
.linea-nombre{ color:var(--tinta); }
.linea .uds output{ min-width:32px; }
.carrito-avisos{ margin-bottom:12px; }
.woocommerce-message, .woocommerce-error, .woocommerce-info{ border-radius:var(--r-boton); font-size:15px; }

/* ---------- Pedido: campos de WooCommerce con el aspecto de .campo del prototipo ---------- */
.form-pedido .form-row{ display:grid; gap:6px; margin:0; padding:0; width:100%; float:none; }
.form-pedido .form-row label{ font-weight:600; font-size:15px; margin:0; line-height:1.4; }
.form-pedido .form-row label .required{ display:none; }
.form-pedido .form-row label .optional{ font-weight:400; font-size:14px; color:var(--gris-600); visibility:visible; }
.form-pedido .woocommerce-input-wrapper{ display:block; position:relative; }
.form-pedido .form-row input.input-text, .form-pedido .form-row select{
  width:100%; min-height:48px; border:1px solid var(--borde-campo); border-radius:var(--r-boton); padding:0 14px;
  font:inherit; font-size:16px; color:var(--tinta); background:#fff; box-shadow:none;
}
.form-pedido .form-row select{ appearance:none; -webkit-appearance:none; padding-right:42px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%231B1F26' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; }
.form-pedido .form-row input:focus-visible, .form-pedido .form-row select:focus-visible{ outline:2px solid var(--azul); outline-offset:0; border-color:var(--azul); }
.form-pedido .form-row [aria-invalid="true"]{ border:2px solid var(--error); padding-inline:13px; }
.form-pedido .form-row.woocommerce-validated input.input-text{ border-color:var(--borde-campo); }
.form-pedido .form-row .description{ font-size:13px; color:var(--gris-600); display:block !important; position:static; background:none; padding:0; margin:0; }
.form-pedido .form-row .description::before{ display:none; }
.form-pedido .vdt-oculto{ display:none !important; }
.form-pedido #campos-envio{ display:grid; gap:16px; }
.form-pedido #campos-envio[hidden]{ display:none; }
.form-pedido .combo input{ padding-right:14px; }
.pedido-lado #payment{ background:none; border-radius:0; }
.pedido-lado #payment .place-order{ padding:0; margin:0; display:grid; gap:10px; }
.pedido-lado #place_order{ width:100%; min-height:54px; font-size:17px; float:none; }
.woocommerce-checkout-review-order-table{ display:grid; gap:12px; }
.woocommerce-NoticeGroup, .woocommerce-notices-wrapper{ grid-column:1 / -1; }
.blockUI.blockOverlay{ border-radius:var(--r-card); }
.form-pedido .form-row.woocommerce-validated select, .form-pedido .form-row.woocommerce-validated input.input-text{ border:1px solid var(--borde-campo); padding-inline:14px; }
.form-pedido .form-row.woocommerce-validated select{ padding-right:42px; }
.banner-ilus:empty{ display:none; }
.banner:has(.banner-ilus:empty) .banner-texto{ padding-bottom:24px; }
/* Trampa para bots: fuera de la pantalla (no display:none, que algunos bots detectan) */
.vdt-trampa{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
