/* ============================================================================
   DENKOR — componentes de página. Complementa estilos.css (que trae los tokens
   y lo estructural). Separado para que el sistema base se lea de un vistazo.
   ============================================================================ */

/* ============================ HERO ============================ */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--blanco) 0%,var(--hueso) 100%);}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 80% at 78% 42%,rgba(12,214,93,.10),transparent 62%);}
.hero-in{position:relative;z-index:2;display:grid;grid-template-columns:1.05fr .95fr;
  gap:48px;align-items:center;padding:66px 0 78px;}
.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--verde-hondo);background:var(--verde-tenue);
  border:1px solid rgba(12,214,93,.3);padding:7px 14px;border-radius:999px;margin-bottom:22px;}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--verde);
  box-shadow:0 0 0 3px rgba(12,214,93,.25);}
.hero h1{font-size:clamp(34px,4.6vw,60px);line-height:1.04;font-weight:700;margin-bottom:20px;}
.hero h1 em{font-style:normal;color:var(--verde-hondo);}
.hero p.sub{font-size:clamp(16px,1.35vw,18.5px);color:var(--suave);max-width:50ch;margin-bottom:30px;}
/* El padding inferior le reserva sitio propio a la tarjeta de precio: sin él
   se montaba sobre la empuñadura del equipo. Medido sobre el PNG real: el
   producto ocupa del 12% al 87% de ancho y del 25% al 78% de alto. */
.hero-fig{position:relative;display:grid;place-items:center;min-height:340px;padding-bottom:66px;}
.hero-fig .glow{width:74%;aspect-ratio:1;left:13%;top:8%;}
/* `contain` en vez del `fill` que heredaba: si una foto de producto no es
   cuadrada, `fill` la estira. Ninguna imagen puede salir deformada.

   PROBADO Y DESCARTADO: `mix-blend-mode:multiply` aquí (como sí lo usa la
   tarjeta del catálogo, .pr-img img) para fundir el fondo blanco de la foto
   —medido rgb(254,254,254)— con el panel —rgb(245,250,247)—. Se desplegó y se
   miró: sale PEOR. Multiply mezcla con TODO el fondo apilado, así que el `glow`
   verde de detrás tiñe el producto entero de verde, y el `drop-shadow` de abajo
   —que sobre una imagen opaca dibuja un rectángulo, no una silueta— deja el
   borde igual de visible. La tarjeta del catálogo puede usarlo porque no lleva
   drop-shadow ni glow. No reintentar sin quitar antes esas dos cosas. */
.flota{position:relative;z-index:2;width:min(100%,430px);object-fit:contain;
  filter:drop-shadow(0 30px 44px rgba(6,86,44,.22));animation:flotar 9s ease-in-out infinite;}
@keyframes flotar{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}

/* Tarjeta de precio anclada ABAJO A LA IZQUIERDA: el Air Ray apunta arriba-izquierda
   y su empuñadura baja por el centro, así que esa esquina es la única libre.
   Antes iba a la derecha y se montaba encima del mango. Los datos van apilados
   (display:block); en línea quedaban como una tira sobre el producto. */
.precio-flota{position:absolute;z-index:3;left:0;bottom:0;width:max-content;max-width:62%;
  background:rgba(255,255,255,.74);backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid rgba(255,255,255,.92);
  box-shadow:var(--sombra-l);border-radius:18px;padding:15px 19px;
  animation:flotar 9s ease-in-out .7s infinite;display:flex;flex-direction:column;gap:1px;}
.precio-flota .k{display:block;font-size:12px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--suave);font-weight:600;line-height:1.4;}
.precio-flota .v{display:block;font-family:Poppins,sans-serif;font-size:22px;font-weight:700;
  color:var(--tinta);line-height:1.18;letter-spacing:-.02em;}
.precio-flota .n{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--verde-hondo);font-weight:600;}
.precio-flota .n::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--verde);
  box-shadow:0 0 0 3px rgba(12,214,93,.22);}
/* El equipo del hero está en cuarentena: no lleva precio, lleva una consulta. */
.hero-consultar{display:inline-flex;align-items:center;gap:6px;min-height:44px;
  font-size:13px;font-weight:600;color:var(--verde-hondo);}
.hero-consultar:hover{text-decoration:underline;}

/* ============================ CONFIANZA ============================ */
.confianza{border-block:1px solid var(--linea);background:var(--blanco);}
.confianza-in{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--linea);}
.cf{background:var(--blanco);padding:22px 20px;display:flex;gap:13px;align-items:flex-start;}
.cf svg{flex:0 0 auto;color:var(--verde-hondo);margin-top:1px;}
.cf b{display:block;font-family:Poppins,sans-serif;font-size:14.5px;color:var(--tinta);font-weight:600;}
.cf span{font-size:12.5px;color:var(--suave);line-height:1.45;}

/* ============================ REPOSICIÓN ============================ */
.repo{position:relative;overflow:hidden;background:var(--tinta);color:#D8E9E1;border-radius:32px;padding:60px 56px;}
.repo .glow{width:520px;height:520px;right:-130px;top:-160px;
  background:radial-gradient(circle,rgba(12,214,93,.38),rgba(12,214,93,0) 68%);}
.repo-in{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:46px;align-items:center;}
.repo h2{color:#fff;font-size:clamp(27px,3.2vw,40px);line-height:1.12;margin-bottom:16px;}
.repo .kicker{color:var(--verde-luz);}
.repo-in>div>p{color:#A9C4B9;font-size:16.5px;margin-bottom:26px;max-width:48ch;}
.repo ul{list-style:none;padding:0;margin:0 0 30px;display:grid;gap:11px;}
.repo li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:#D8E9E1;}
.repo li svg{color:var(--verde);flex:0 0 auto;margin-top:3px;}
.repo .nota{font-size:13.5px;color:var(--verde-luz);font-weight:500;margin:0;}
.tarjeta-repo{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:var(--r-g);padding:26px;}
.tarjeta-repo .t{font-family:Poppins,sans-serif;font-size:13px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--verde-luz);margin-bottom:18px;font-weight:600;}
.fila{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:13px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:14px;}
.fila:last-of-type{border-bottom:none;}
.fila .nom{color:#EAF5F0;display:block;}
.fila .dias{font-family:"JetBrains Mono",monospace;font-size:12px;color:#8FAFA3;}
.barra{display:block;height:4px;border-radius:99px;background:rgba(255,255,255,.14);margin-top:6px;overflow:hidden;}
.barra i{display:block;height:100%;border-radius:99px;background:var(--verde);}
.barra.baja i{background:#E8A33D;}

/* ============================ MARCAS ============================ */
.marcas{border-block:1px solid var(--linea);background:var(--hueso);padding:30px 0 34px;overflow:hidden;}
/* Rótulo de la sección: es el que la web anterior tenía y el que hace que la
   tira se lea como "estas marcas las distribuimos" y no como decoración. */
.marcas-t{text-align:center;font-family:Poppins,sans-serif;font-size:12.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--suave);margin:0 0 26px;}
.pista{display:flex;align-items:center;gap:52px;width:max-content;animation:correr 44s linear infinite;}
/* Los logotipos van todos a la MISMA altura y con el ancho libre: si se fijaran
   los dos lados, un logo apaisado (3M) y uno alto (Orthometric) saldrían
   deformados. El width/height del HTML es el tamaño real del archivo y solo
   sirve para que el navegador reserve el hueco y no salte la maquetación. */
.pista img{height:42px;width:auto;object-fit:contain;flex:0 0 auto;}
/* #94A79F daba 2.40:1 sobre --hueso y no llegaba ni al mínimo de texto grande.
   --suave da 4.96:1 sobre hueso. */
.pista span{font-family:Poppins,sans-serif;font-size:19px;font-weight:600;color:var(--suave);white-space:nowrap;}
@keyframes correr{to{transform:translateX(-50%);}}
.marcas:hover .pista{animation-play-state:paused;}

/* ============================ RAZONES ============================ */
.razones{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;}
.rz .ic{width:46px;height:46px;border-radius:13px;background:var(--verde-tenue);display:grid;
  place-items:center;color:var(--verde-hondo);margin-bottom:15px;border:1px solid rgba(12,214,93,.25);}
.rz h3{font-size:17px;margin-bottom:8px;}
.rz p{font-size:14.5px;color:var(--suave);}

/* ============================ LOCAL Y NOSOTROS ============================ */
.local-teaser,.local-bloque{display:grid;grid-template-columns:1.1fr .9fr;gap:44px;align-items:center;}
.local-datos{display:grid;gap:14px;}
.local-datos>div{display:flex;gap:13px;align-items:flex-start;background:var(--hueso);
  border:1px solid var(--linea);border-radius:var(--r);padding:16px 18px;}
.local-datos svg{color:var(--verde-hondo);flex:0 0 auto;margin-top:2px;}
.local-datos b{display:block;font-family:Poppins,sans-serif;font-size:15px;color:var(--tinta);}
.local-datos span{font-size:13px;color:var(--suave);}
.historia{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}
.historia>div{position:relative;padding-top:26px;border-top:2px solid var(--verde);}
.hito{font-size:12px;color:var(--verde-hondo);font-weight:600;letter-spacing:.1em;}
.historia h2,.historia h3{font-size:20px;margin:8px 0 10px;}
.historia p{color:var(--suave);font-size:15px;}
.equipo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.persona{margin:0;}
.persona-img{aspect-ratio:3/4;border-radius:var(--r-g);background:var(--blanco);
  border:1px dashed var(--linea);display:grid;place-items:center;margin-bottom:13px;overflow:hidden;}
.persona-img span,.local-foto span{font-size:13px;color:var(--suave);text-align:center;padding:12px;}
.persona-img img{width:100%;height:100%;object-fit:cover;}
.persona figcaption b{display:block;font-family:Poppins,sans-serif;font-size:15.5px;color:var(--tinta);}
.persona figcaption span{font-size:13.5px;color:var(--suave);}
.local-foto{aspect-ratio:4/3;border-radius:var(--r-g);background:var(--hueso);
  border:1px dashed var(--linea);display:grid;place-items:center;}

/* ============================ LISTADO ============================ */
.listado{display:grid;grid-template-columns:250px 1fr;gap:34px;align-items:start;}
.filtros{position:sticky;top:110px;background:var(--blanco);border:1px solid var(--linea);
  border-radius:var(--r-g);padding:22px;}
/* fieldset/legend en vez de <h2>: así el lector de pantalla asocia "Marca" con
   sus casillas (WCAG 1.3.1). El reset quita el marco nativo del fieldset. */
.fgrupo{border:none;margin:0;padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--linea);}
.fgrupo:last-of-type{border-bottom:none;padding-bottom:6px;margin-bottom:6px;}
.fgrupo legend,.fgrupo h2,.fgrupo h3{font-size:13px;letter-spacing:.08em;text-transform:uppercase;
  margin-bottom:8px;padding:0;color:var(--tinta);font-family:Poppins,sans-serif;font-weight:600;}
/* 44px de alto y casilla de 22px: antes eran 17×17 dentro de 29px de alto */
.chk{display:flex;align-items:center;gap:11px;min-height:44px;padding:4px 0;
  font-size:14px;color:var(--texto);cursor:pointer;}
.chk input{width:22px;height:22px;accent-color:var(--verde-hondo);flex:0 0 auto;}
.chk i{font-style:normal;color:var(--suave);font-size:12px;}
.barra-orden{display:flex;justify-content:space-between;align-items:center;gap:14px;
  margin-bottom:18px;font-size:13.5px;color:var(--suave);flex-wrap:wrap;}
.orden{height:44px;border:1px solid var(--linea);border-radius:999px;padding:0 16px;
  font:inherit;font-size:14px;background:var(--blanco);color:var(--tinta);}
.mas{margin-top:24px;}
/* Botón de filtros: solo aparece en ≤1080px, donde los 18 checkboxes se apilaban
   ENCIMA de la lista y empujaban el primer producto a 1,455 px de scroll. */
.ver-filtros{display:none;width:100%;margin-bottom:16px;}
.sug{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px;text-align:left;width:100%;max-width:520px;}
.sug a{display:flex;justify-content:space-between;gap:14px;align-items:center;min-height:44px;
  padding:8px 14px;background:var(--blanco);border:1px solid var(--linea);border-radius:12px;
  font-size:14.5px;color:var(--tinta);transition:border-color .2s,transform .2s;}
.sug a:hover{border-color:var(--verde);transform:translateX(3px);}
.sug .mono{color:var(--suave);font-size:13px;white-space:nowrap;flex:0 0 auto;}
/* `.vacio p` (gris) le ganaba en especificidad al titular del estado vacío */
.vacio .vacio-t,.vacio-t{font-family:Poppins,sans-serif;font-size:19px;color:var(--tinta);font-weight:600;}
.vacio-wa{font-size:13.5px;color:var(--suave);margin-top:6px;}
.vacio-wa a{color:var(--verde-hondo);font-weight:600;}
/* Filtros con conteo vivo (js/app.js → Listado.conteos): una casilla que no daría
   ningún producto se apaga en vez de llevar a "Sin resultados". */
.chk-off{opacity:.45;cursor:default;}
.f-nada{font-size:13px;color:var(--suave);padding:6px 0;}
.f-todas{min-height:44px;font-size:13.5px;font-weight:600;color:var(--verde-hondo);padding:0;text-align:left;}
.f-todas:hover{text-decoration:underline;}
/* Filtros activos a la vista, quitables con un toque */
.f-activos{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;}
.f-activos[hidden]{display:none;}
.f-chip{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 12px 0 14px;border-radius:999px;
  background:var(--verde-tenue);border:1px solid rgba(12,214,93,.35);color:var(--verde-hondo);font-size:13.5px;font-weight:600;}
.f-chip span{font-size:18px;line-height:1;}
.f-chip:hover{border-color:var(--verde);}
.f-chip-todo{background:var(--blanco);border-color:var(--linea);color:var(--suave);}
/* Cabecera y pie del cajón: solo existen en pantallas chicas */
.filtros-cab,.filtros-pie{display:none;}

/* ============================ FICHA DE PRODUCTO ============================ */
.ficha{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;}
.ficha-img{position:relative;display:grid;place-items:center;background:var(--hueso);
  border:1px solid var(--linea);border-radius:32px;padding:40px;min-height:400px;overflow:hidden;}
.ficha-img .glow{width:80%;aspect-ratio:1;}
.marca-tag{display:inline-block;font-size:12px;letter-spacing:.13em;text-transform:uppercase;
  font-weight:700;color:var(--verde-hondo);background:var(--verde-tenue);
  border:1px solid rgba(12,214,93,.3);padding:6px 13px;border-radius:999px;margin-bottom:16px;}
.ficha-info h1{font-size:clamp(27px,3.3vw,42px);line-height:1.1;margin-bottom:14px;}
.ficha-sub{font-size:17px;color:var(--suave);margin-bottom:26px;}
.precio-bloque{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:24px;
  padding-bottom:24px;border-bottom:1px solid var(--linea);}
.precio{font-family:Poppins,sans-serif;font-size:40px;font-weight:700;color:var(--tinta);letter-spacing:-.02em;}
.cuotas{font-size:14px;color:var(--suave);} .cuotas b{color:var(--verde-hondo);}
.ficha-puntos{list-style:none;padding:0;margin:0 0 28px;display:grid;gap:10px;}
/* Cada <li> (y cada .aviso) es flex: icono + texto. Si el texto mezcla texto suelto con
   <b> o <a>, va DENTRO de un <span>: si no, cada trozo es un ítem flex y el navegador
   los pinta en columnas («Despacho en máximo 7 días hábiles | desde que confirmas…»). */
.ficha-puntos li{display:flex;gap:10px;align-items:flex-start;font-size:15px;}
.ficha-puntos li svg{color:var(--verde-hondo);flex:0 0 auto;margin-top:3px;}
.aviso{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--suave);margin:0;}
.aviso svg{color:var(--verde-hondo);flex:0 0 auto;}
.tabs-ficha{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.specs{width:100%;border-collapse:collapse;font-size:14.5px;}
.specs th{text-align:left;font-weight:500;color:var(--suave);padding:11px 0;
  border-bottom:1px solid var(--linea);width:45%;}
.specs td{padding:11px 0;border-bottom:1px solid var(--linea);color:var(--tinta);font-weight:500;}
.specs tr:last-child th,.specs tr:last-child td{border-bottom:none;}

/* ============================ CARRITO Y CHECKOUT ============================ */
.carro-layout{display:grid;grid-template-columns:1fr 360px;gap:26px;align-items:start;}
.citem{display:grid;grid-template-columns:1fr auto auto auto;gap:16px;align-items:center;
  background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);padding:18px;margin-bottom:12px;}
.citem h3{font-size:15.5px;margin-bottom:3px;}
.precio-u{font-size:13px;color:var(--suave);}
.cant{display:flex;align-items:center;gap:4px;border:1px solid var(--linea);border-radius:999px;padding:3px;}
.cant button{width:32px;height:32px;border-radius:999px;font-size:17px;line-height:1;
  color:var(--tinta);transition:background .2s;}
.cant button:hover{background:var(--verde-tenue);}
.cant span{min-width:26px;text-align:center;font-size:14px;}
.citem-t{font-family:Poppins,sans-serif;font-weight:700;font-size:16px;color:var(--tinta);min-width:76px;text-align:right;}
.quitar{width:32px;height:32px;border-radius:999px;color:var(--suave);font-size:20px;line-height:1;
  transition:background .2s,color .2s;}
.quitar:hover{background:#FBECEA;color:var(--rojo);}
.resumen{position:sticky;top:110px;}
.rline{display:flex;justify-content:space-between;gap:12px;padding:11px 0;
  border-bottom:1px solid var(--linea);font-size:14.5px;color:var(--texto);}
/* el importe nunca se parte en dos líneas ("S/" arriba y "24" abajo) cuando el
   nombre del producto es largo */
.rline>span:last-child{white-space:nowrap;flex:0 0 auto;}
.rline.total{border-bottom:none;padding-top:15px;font-family:Poppins,sans-serif;
  font-size:19px;font-weight:700;color:var(--tinta);}
.vacio{background:var(--hueso);border:1px solid var(--linea);border-radius:var(--r-g);
  padding:54px 24px;text-align:center;display:grid;gap:18px;place-items:center;}
.vacio p{color:var(--suave);}
.pagos{display:grid;gap:10px;}
.pago{display:flex;align-items:center;gap:13px;border:1px solid var(--linea);border-radius:var(--r);
  padding:15px 17px;cursor:pointer;transition:border-color .2s,background .2s;}
.pago:has(input:checked){border-color:var(--verde);background:var(--verde-tenue);}
.pago input{width:22px;height:22px;accent-color:var(--verde-hondo);flex:0 0 auto;}
.pago b{display:block;font-family:Poppins,sans-serif;font-size:15px;color:var(--tinta);}
.pago i{font-style:normal;font-size:13px;color:var(--suave);}

/* ============================ CUENTA ============================ */
.cuenta-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:26px;align-items:start;}
.bot-item{display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:14px 0;border-bottom:1px solid var(--linea);font-size:14.5px;}
.bot-item:last-child{border-bottom:none;}
.bot-item .nom{display:block;color:var(--tinta);}
.bot-item .barra{background:var(--linea);}
.bot-item .dias{font-size:12.5px;color:var(--suave);}

/* ============================ FICHA: CANTIDAD ============================ */
.cant-campo input{width:82px;height:52px;border:1px solid var(--linea);border-radius:999px;
  padding:0 8px 0 16px;font:inherit;font-size:16px;text-align:center;background:var(--blanco);color:var(--tinta);}
.cant-campo input:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 4px rgba(12,214,93,.15);}
.pasos{margin:0;padding-left:20px;display:grid;gap:9px;color:var(--suave);font-size:15px;}
.pasos li{padding-left:4px;}
.pasos li::marker{color:var(--verde-hondo);font-weight:700;}

/* ============================ PÁGINAS LEGALES ============================ */
.legal{max-width:78ch;}
.legal h2{font-size:22px;margin:38px 0 12px;padding-top:22px;border-top:1px solid var(--linea);}
.legal h3{font-size:17px;margin:22px 0 8px;}
.legal p{color:var(--texto);font-size:15.5px;line-height:1.72;margin-bottom:12px;}
.legal a{color:var(--verde-hondo);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.lista-legal{margin:0 0 14px;padding-left:20px;display:grid;gap:8px;color:var(--texto);font-size:15.5px;line-height:1.65;}
.lista-legal li::marker{color:var(--verde-hondo);}
.nota-legal{background:var(--hueso);border-left:3px solid var(--verde);border-radius:0 12px 12px 0;
  padding:14px 18px;font-size:14.5px!important;color:var(--suave)!important;margin:14px 0 18px!important;}
.tabla-envio{margin-bottom:16px;}
.tabla-envio th{width:38%;color:var(--tinta);font-weight:600;}
.tabla-envio td{color:var(--texto);font-weight:400;}
.proveedor{margin-bottom:24px;background:var(--hueso);}
.tipo-reclamo{display:grid;gap:10px;border-bottom:none;padding-bottom:0;margin-bottom:18px;}
.hoja{background:var(--hueso);border:1px solid var(--linea);border-radius:12px;padding:16px;
  font-family:"JetBrains Mono",Consolas,monospace;font-size:12.5px;line-height:1.6;
  white-space:pre-wrap;overflow-x:auto;margin-top:18px;color:var(--texto);}
.err{color:var(--rojo);font-size:14px;font-weight:600;margin-top:12px;}
.nota-maqueta{display:flex;gap:10px;align-items:flex-start;background:var(--verde-tenue);
  border:1px solid rgba(12,214,93,.3);border-radius:12px;padding:13px 15px;margin-bottom:18px;
  font-size:13.5px;color:var(--verde-hondo);}
.nota-maqueta svg{flex:0 0 auto;margin-top:2px;}

/* ============================ VISTA PREVIA "MI BOTIQUÍN" (botiquin.html) ===========================
   Es una PANTALLA DE EJEMPLO para mostrar en visita comercial, no un login real
   (no hay backend de cuentas — ver el comentario en paginas.js). Por eso la
   cinta de arriba es insistente: en cuanto alguien la mire tiene que quedar
   claro que es una demo, no su cuenta. El resto reusa los tokens de marca de
   siempre (--verde, --verde-hondo, --suave…), nada de colores nuevos. */
.demo-cinta{display:flex;gap:10px;align-items:flex-start;background:var(--verde-tenue);
  border:1px solid rgba(12,214,93,.35);border-radius:12px;padding:12px 16px;margin-bottom:22px;
  font-size:13.5px;color:var(--verde-hondo);line-height:1.5;}
.demo-cinta svg{flex:0 0 auto;margin-top:2px;color:var(--verde);}
.demo-cinta a{color:inherit;text-decoration:underline;text-underline-offset:2px;}

/* El "app frame": panel oscuro para que se sienta como una app instalada,
   distinto del resto de la tienda (blanca) a propósito — es la misma idea de
   contraste que ya usa `.repo` en el home. */
.demo-app{position:relative;overflow:hidden;background:var(--tinta);border-radius:var(--r-g);
  padding:30px clamp(18px,3vw,34px) 34px;margin:34px 0;isolation:isolate;}
.demo-app .glow{position:absolute;border-radius:50%;filter:blur(60px);z-index:0;pointer-events:none;}
.demo-glow-1{width:380px;height:380px;right:-100px;top:-140px;
  background:radial-gradient(circle,rgba(12,214,93,.32),rgba(12,214,93,0) 68%);}
.demo-glow-2{width:280px;height:280px;left:-90px;bottom:-120px;
  background:radial-gradient(circle,rgba(12,214,93,.18),rgba(12,214,93,0) 68%);}

.demo-top{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:16px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.12);}
.demo-quien{display:flex;align-items:center;gap:11px;}
.demo-av{width:38px;height:38px;border-radius:50%;background:var(--verde);color:#04170C;
  display:flex;align-items:center;justify-content:center;font-family:Poppins,sans-serif;font-weight:700;flex:0 0 auto;}
.demo-quien b{display:block;color:#fff;font-size:15px;}
/* OJO: iba ".demo-quien span" — como (0,1,1) le gana en especificidad a
   ".demo-av" (0,1,0) aunque .demo-av tambien sea un span, esa regla le
   apagaba el display:flex al avatar sin que nadie lo pidiera. Acotado a
   "div span" (el texto SÍ vive dentro de un div hijo) para que ya no alcance
   a ningún span-ícono hermano. Mismo arreglo abajo en .demo-kpi y .demo-linea. */
.demo-quien div span{display:block;color:#9FC2B2;font-size:12.5px;}
.demo-tabs{display:flex;gap:6px;background:rgba(255,255,255,.06);border-radius:999px;padding:4px;}
.demo-tabs button{border:0;background:none;color:#B9D3C7;font:inherit;font-size:13px;font-weight:600;
  padding:8px 16px;border-radius:999px;cursor:pointer;transition:background .18s,color .18s;}
.demo-tabs button:hover{color:#fff;}
.demo-tabs button.on{background:var(--verde);color:#04170C;}

.demo-kpis{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px;}
.demo-kpi{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:16px 18px;
  transition:transform .2s,border-color .2s,background .2s;}
.demo-kpi:hover{transform:translateY(-2px);border-color:rgba(12,214,93,.4);background:rgba(255,255,255,.08);}
.demo-kpi-ico{flex:0 0 auto;width:38px;height:38px;border-radius:11px;background:rgba(12,214,93,.16);
  color:var(--verde);display:flex;align-items:center;justify-content:center;}
.demo-kpi b{display:block;color:#fff;font-family:Poppins,sans-serif;font-size:19px;line-height:1.2;}
.demo-kpi div span{display:block;color:#9FC2B2;font-size:12px;}
/* El elemento que "flota": mismo keyframe que ya usa el hero (@keyframes flotar
   en componentes.css), aplicado más sutil porque acá es una tarjeta, no un
   producto. */
.demo-flota{animation:flotar 7s ease-in-out infinite;}

.demo-paneles{position:relative;z-index:1;background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:22px 24px;}
.demo-panel h3{color:#fff;font-family:Poppins,sans-serif;font-size:16px;margin-bottom:14px;}
.demo-panel-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px 14px;margin-bottom:14px;}
.demo-panel-head h3{margin-bottom:0;}
.demo-hint{font-size:12.5px;color:#7FA294;}
.demo-panel .bot-item{border-bottom-color:rgba(255,255,255,.1);gap:14px;}
.demo-panel .bot-item .nom{color:#fff;}
.demo-panel .bot-item .dias{color:#9FC2B2;}
.demo-panel .barra{background:rgba(255,255,255,.14);}
.demo-nota{display:flex;gap:9px;align-items:flex-start;margin-top:16px;padding-top:16px;
  border-top:1px solid rgba(255,255,255,.1);font-size:13px;color:#9FC2B2;line-height:1.5;}
.demo-nota svg{flex:0 0 auto;margin-top:1px;color:var(--verde-luz);}
.demo-vacio{font-size:13.5px;color:#9FC2B2;padding:18px 0;text-align:center;}

/* --- botón "quitar" en cada fila del botiquín --- */
.demo-quitar{flex:0 0 auto;width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.05);color:#9FC2B2;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .18s,color .18s,border-color .18s,transform .18s;}
.demo-quitar svg{width:12px;height:12px;}
.demo-quitar:hover{background:rgba(229,90,90,.16);border-color:rgba(229,90,90,.4);color:#F0A0A0;transform:scale(1.06);}
.demo-quitar:focus-visible{outline:2px solid var(--verde);outline-offset:2px;}

/* --- chips "+ agregar" --- */
.demo-agregar{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:18px;padding-top:16px;
  border-top:1px solid rgba(255,255,255,.1);}
.demo-agregar-t{font-size:12.5px;color:#7FA294;margin-right:2px;}
.demo-chip{border:1px dashed rgba(12,214,93,.4);background:rgba(12,214,93,.08);color:var(--verde-luz);
  font:inherit;font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:999px;cursor:pointer;
  transition:background .18s,border-color .18s,transform .18s;}
.demo-chip:hover{background:rgba(12,214,93,.18);border-color:var(--verde);transform:translateY(-1px);}
.demo-chip:focus-visible{outline:2px solid var(--verde);outline-offset:2px;}

/* --- cuenta regresiva a la próxima reposición: anillo SVG animado --- */
.demo-cuenta-regr{display:flex;align-items:center;gap:22px;margin-bottom:8px;flex-wrap:wrap;}
.demo-anillo{width:104px;height:104px;flex:0 0 auto;transform:rotate(-90deg);}
.demo-anillo .ring-bg{fill:none;stroke:rgba(255,255,255,.1);stroke-width:8;}
.demo-anillo .ring-fg{fill:none;stroke:var(--verde);stroke-width:8;stroke-linecap:round;
  transition:stroke-dashoffset 1s cubic-bezier(.16,1,.3,1),stroke .3s;}
.demo-anillo .ring-fg.ring-urgente{stroke:#E8A33D;}
.demo-cuenta-regr{position:relative;}
.demo-anillo-txt{position:absolute;left:0;top:0;width:104px;height:104px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;}
.demo-anillo-txt b{font-family:Poppins,sans-serif;font-size:28px;color:#fff;line-height:1;}
.demo-anillo-txt span{font-size:11px;color:#9FC2B2;margin-top:2px;}
.demo-regr-titulo{color:#fff;font-family:Poppins,sans-serif;font-size:15px;margin-bottom:3px;}
.demo-regr-sub{font-size:13px;color:#9FC2B2;}

/* --- animación de entrada al re-pintar la lista (agregar/quitar) --- */
@keyframes demo-entra{from{opacity:0;transform:translateY(7px);}to{opacity:1;transform:translateY(0);}}
.demo-entra{animation:demo-entra .32s ease both;}

.demo-linea{list-style:none;padding:0;margin:0;display:grid;gap:16px;}
.demo-linea li{display:flex;gap:12px;align-items:flex-start;}
.demo-punto{flex:0 0 auto;width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.2);margin-top:5px;}
.demo-linea li.pronto .demo-punto{background:var(--verde);box-shadow:0 0 0 4px rgba(12,214,93,.22);}
.demo-linea li b{display:block;color:#fff;font-size:14.5px;}
.demo-linea li div span{display:block;color:#9FC2B2;font-size:12.5px;margin-top:2px;}

.demo-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;
  background:var(--hueso);border:1px solid var(--linea);border-radius:var(--r-g);padding:26px 28px;margin-bottom:40px;}
.demo-cta h2{font-size:19px;margin-bottom:6px;}
.demo-cta p{color:var(--suave);font-size:14px;max-width:52ch;}

@media(max-width:720px){
  .demo-kpis{grid-template-columns:1fr;}
  .demo-cta{flex-direction:column;align-items:stretch;text-align:center;}
  .demo-cuenta-regr{justify-content:center;text-align:center;}
}
@media(prefers-reduced-motion:reduce){
  .demo-flota{animation:none;}
  .demo-entra{animation:none;}
  .demo-anillo .ring-fg{transition:none;}
}

/* aviso obligatorio del Libro de Reclamaciones, en todas las páginas */
.libro-aviso{display:flex;gap:13px;align-items:flex-start;background:var(--hueso);
  border:1px solid var(--linea);border-radius:var(--r);padding:16px 18px;margin:0 0 46px;
  font-size:13.5px;color:var(--suave);line-height:1.55;transition:border-color .2s;}
.libro-aviso:hover{border-color:var(--verde);}
.libro-aviso svg{flex:0 0 auto;color:var(--verde-hondo);margin-top:1px;}
.libro-aviso b{display:block;font-family:Poppins,sans-serif;font-size:14.5px;color:var(--tinta);margin-bottom:2px;}

/* ============================ FAQ ============================ */
.faq{display:grid;gap:10px;max-width:76ch;}
.faq-i{background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r);
  padding:4px 20px;transition:border-color .2s;}
.faq-i[open]{border-color:var(--verde);}
.faq-i summary{display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:56px;cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;
  font-size:15.5px;color:var(--tinta);list-style:none;}
.faq-i summary::-webkit-details-marker{display:none;}
.faq-i summary::after{content:"+";font-size:22px;color:var(--verde-hondo);flex:0 0 auto;line-height:1;}
.faq-i[open] summary::after{content:"−";}
.faq-i p{padding:0 0 18px;color:var(--suave);font-size:15px;line-height:1.7;}
.faq-i a{color:var(--verde-hondo);font-weight:600;}

/* ============================ GRACIAS / 404 ============================ */
.gracias{max-width:620px;margin-inline:auto;text-align:center;}
.gracias h1{font-size:clamp(26px,3.4vw,36px);margin-bottom:8px;}
.gracias p{color:var(--suave);font-size:15.5px;line-height:1.7;}
.gracias-ic{width:58px;height:58px;border-radius:50%;background:var(--verde);color:#04240F;
  display:grid;place-items:center;margin:0 auto 18px;}
.gracias-ic svg{width:28px;height:28px;}
.gracias-num{font-size:15px;color:var(--verde-hondo);font-weight:600;margin-bottom:14px;}
.g-lista{margin-top:22px;text-align:left;border-top:1px solid var(--linea);padding-top:6px;}
.e404{max-width:720px;margin-inline:auto;text-align:center;}
.e404 h1{font-size:clamp(30px,4.4vw,48px);margin-bottom:12px;}
.e404>p{color:var(--suave);font-size:16.5px;}
.e404 .buscar-grande{margin-inline:auto;}
.e404 .cats{grid-template-columns:repeat(4,1fr);text-align:left;}

/* ============================ CONTACTO ============================ */
.contacto-layout{display:grid;grid-template-columns:1fr .9fr;gap:30px;align-items:start;}
.contacto-layout .local-datos b a{color:var(--verde-hondo);}
.mapa{border:1px solid var(--linea);border-radius:var(--r-g);overflow:hidden;background:var(--hueso);}
.mapa iframe{display:block;}

/* ============================ RESPONSIVE ============================ */
@media (max-width:1080px){
  .razones,.equipo-grid{grid-template-columns:repeat(2,1fr);}
  .repo-in,.local-teaser,.local-bloque,.ficha,.tabs-ficha{grid-template-columns:1fr;gap:34px;}
  .listado{grid-template-columns:1fr;}
  .filtros,.resumen{position:static;}
  .carro-layout,.cuenta-layout,.contacto-layout{grid-template-columns:1fr;}
  .historia{grid-template-columns:1fr;gap:24px;}
  .e404 .cats{grid-template-columns:repeat(2,1fr);}
  /* Los filtros pasan a ser un cajón plegado: por defecto no ocupan pantalla y
     el primer producto queda a la vista sin scrollear. */
  .ver-filtros{display:inline-flex;}
  .filtros{display:none;margin-bottom:20px;}
  /* El cajón abierto es una hoja a pantalla completa. Antes se abría EN LÍNEA,
     medía 1.888 px y empujaba la lista fuera de la vista: al marcar un filtro no
     se veía ningún cambio y no había cómo volver a los productos. */
  .filtros.abierto{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;margin:0;border:0;border-radius:0;
    overflow-y:auto;overscroll-behavior:contain;padding:0 20px calc(96px + env(safe-area-inset-bottom,0px));}
  .filtros.abierto .filtros-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;
    position:sticky;top:0;z-index:2;background:var(--blanco);min-height:62px;margin:0 -20px 12px;padding:0 12px 0 20px;
    border-bottom:1px solid var(--linea);font-family:Poppins,sans-serif;font-size:17px;color:var(--tinta);}
  .filtros-cerrar{width:44px;height:44px;border-radius:999px;display:grid;place-items:center;color:var(--tinta);}
  .filtros-cerrar:hover{background:var(--hueso);}
  .filtros.abierto .filtros-pie{display:block;position:fixed;left:0;right:0;bottom:0;z-index:3;background:var(--blanco);
    border-top:1px solid var(--linea);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));
    box-shadow:0 -10px 24px -12px rgba(10,21,18,.18);}
}
@media (max-width:860px){
  .hero-in{grid-template-columns:1fr;gap:34px;padding:42px 0 56px;}
  .hero-fig{order:-1;min-height:250px;}
  .flota{width:min(78%,320px);}
  .confianza-in{grid-template-columns:1fr 1fr;}
}
@media (max-width:620px){
  .razones,.equipo-grid{grid-template-columns:1fr;}
  .repo{padding:38px 22px;border-radius:22px;}
  .precio-flota{padding:13px 16px;max-width:82%;}
  .precio-flota .v{font-size:19px;}
  .ficha-img{padding:24px;min-height:300px;border-radius:22px;}
  .citem{grid-template-columns:1fr auto;row-gap:12px;}
  .citem-t{text-align:left;}
  .e404 .cats{grid-template-columns:1fr;}
  .legal h2{font-size:20px;}
  .cant-campo input{width:100%;}
  .cant-campo{width:100%;}
}

/* Barra de compra de la ficha en móvil (js/app.js → barraCompraMovil). El
   padding derecho deja libre la esquina de la burbuja de Dana (widget de Forja,
   que no se puede mover desde aquí); el botón de WhatsApp queda por encima. */
.dk-barra-compra{display:none;}
@media (max-width:620px){
  .dk-barra-compra{display:flex;align-items:center;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:65;
    padding:10px 92px calc(10px + env(safe-area-inset-bottom,0px)) 16px;background:rgba(255,255,255,.97);
    border-top:1px solid var(--linea);box-shadow:0 -8px 22px -12px rgba(10,21,18,.22);
    transform:translateY(110%);visibility:hidden;transition:transform .25s var(--ease),visibility 0s .25s;}
  .dk-barra-compra.on{transform:none;visibility:visible;transition:transform .25s var(--ease),visibility 0s;}
  .dk-barra-compra .dkb-p{font-family:Poppins,sans-serif;font-weight:700;font-size:18px;color:var(--tinta);white-space:nowrap;}
  .dk-barra-compra .btn{flex:1;width:auto;height:44px;padding:0 12px;}
  body.con-barra-compra{padding-bottom:70px;}
}

/* "Imagen referencial": la imagen de ese producto se generó con IA a partir de su
   descripción; no es la foto de su empaque. Se dice encima de la misma imagen, en la
   tarjeta y en la ficha, que es donde se decide la compra (la publicidad no puede
   inducir a error sobre el producto). Discreta pero legible: --suave sobre blanco. */
.img-ref{position:absolute;left:10px;bottom:8px;z-index:2;font-size:11px;font-weight:600;
  letter-spacing:.02em;color:var(--suave);background:rgba(255,255,255,.88);
  padding:2px 7px;border-radius:6px;pointer-events:none;}

/* ============================ OLA 4 · VARIANTES Y SECCIONES ============================
   Todo con los tokens de estilos.css. El único color que no sale de ahí es la muestra
   del eje «Color» (--m), que es el color del PRODUCTO —un dato de catalogo.js, igual
   que su precio—, no un color de la interfaz. */

/* ---------- la descripción en el formato de Karina (borde/descripcion.mjs) ---------- */
.dk-rotulo{color:var(--tinta);font-weight:600;}
/* «Sobre este producto», junto a la ficha técnica: a todo el ancho, encima de la tabla.
   Vacío (descripción sin rótulos) no ocupa nada: la ficha queda como siempre. */
.ficha-sobre{grid-column:1 / -1;}
.ficha-sobre:empty{display:none;}
.dk-secs{max-width:78ch;}
.dk-sec{border-top:1px solid var(--linea);}
.dk-sec:last-child{border-bottom:1px solid var(--linea);}
.dk-sec summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:54px;
  cursor:pointer;font-family:Poppins,sans-serif;font-weight:600;font-size:16px;color:var(--tinta);
  list-style:none;transition:color .2s;}
.dk-sec summary::-webkit-details-marker{display:none;}
.dk-sec summary::after{content:"+";font-size:22px;line-height:1;color:var(--verde-hondo);flex:0 0 auto;}
.dk-sec[open] summary::after{content:"−";}
.dk-sec summary:hover{color:var(--verde-hondo);}
.dk-sec-c{padding:0 0 18px;}
.dk-sec-c p{color:var(--texto);font-size:15.5px;line-height:1.7;}
.dk-sec-c p + p{margin-top:10px;}

/* ---------- el selector de variantes ---------- */
.dk-var{display:grid;gap:18px;margin:0 0 22px;}
.dk-eje{border:0;margin:0;padding:0;min-width:0;}
.dk-eje-t{display:block;padding:0;margin:0 0 10px;font-size:13.5px;font-weight:600;color:var(--tinta);}
.dk-eje-t b{color:var(--verde-hondo);font-weight:600;}
.dk-chips{display:flex;flex-wrap:wrap;gap:8px;}
.dk-chip{position:relative;cursor:pointer;}
/* El radio de verdad sigue ahí (teclado y lector de pantalla); lo que se ve es la caja. */
.dk-chip input{position:absolute;left:0;top:0;width:1px;height:1px;margin:0;opacity:0;pointer-events:none;}
.dk-chip-c{display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:44px;padding:0 14px;
  justify-content:center;border:1px solid var(--linea);border-radius:12px;background:var(--blanco);
  font-size:14.5px;font-weight:500;color:var(--tinta);
  transition:border-color .2s,background .2s,box-shadow .2s,color .2s;}
.dk-chip:hover .dk-chip-c{border-color:var(--verde);}
.dk-chip input:checked + .dk-chip-c{border-color:var(--verde-hondo);box-shadow:inset 0 0 0 1px var(--verde-hondo);
  background:var(--verde-tenue);color:var(--verde-hondo);font-weight:600;}
.dk-chip input:focus-visible + .dk-chip-c{outline:2px solid var(--verde-hondo);outline-offset:3px;}
/* Combinación que no existe (o agotada): se ve, se puede elegir, y se nota que no va.
   No depende solo del color: borde punteado y el valor tachado. */
.dk-chip.dk-no .dk-chip-c{border-style:dashed;background:var(--hueso);color:var(--suave);}
.dk-chip.dk-no .dk-chip-c > span:last-child{text-decoration:line-through;text-decoration-thickness:1px;}
.dk-chip.dk-no input:checked + .dk-chip-c{box-shadow:none;}
.dk-muestra{width:18px;height:18px;border-radius:50%;flex:0 0 auto;background:var(--m);
  box-shadow:inset 0 0 0 1px rgba(10,21,18,.22);}
.dk-muestra-clara{background:repeating-conic-gradient(var(--linea) 0 25%,var(--blanco) 0 50%) 50% / 8px 8px;}
.dk-sel{width:100%;max-width:440px;height:48px;border:1px solid var(--linea);border-radius:12px;
  padding:0 14px;font:inherit;font-size:15px;background:var(--blanco);color:var(--tinta);
  transition:border-color .2s,box-shadow .2s;}
.dk-sel:focus{outline:none;border-color:var(--verde);box-shadow:0 0 0 4px rgba(12,214,93,.15);}
.dk-var-aviso{margin:0;font-size:13.5px;color:var(--texto);padding:10px 14px;border-radius:12px;
  background:var(--hueso);border:1px solid var(--linea);border-left:3px solid var(--verde);}
.dk-var-aviso:empty{display:none;}

/* ---------- las opciones libres (25-sep, Karina): talla, medida, color o tono que no son un SKU ---------- */
.dk-libre-nota{margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--suave);}
.dk-aviso-ficha{margin:-8px 0 22px;}
/* La que falta al agregar se nota por el texto y el borde, no solo por el color. */
.dk-libres .dk-falta .dk-eje-t{color:var(--rojo);}
.dk-libres .dk-falta .dk-eje-t::after{content:" · falta elegir";font-weight:600;}
.dk-libres .dk-falta .dk-chip-c,.dk-libres .dk-falta .dk-sel{border-color:var(--rojo);}

/* ---------- la guía de tamaños: debajo del selector y plegada ---------- */
.dk-guia{margin:0 0 22px;border:1px solid var(--linea);border-radius:var(--r);background:var(--blanco);}
.dk-guia summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 16px;cursor:pointer;
  list-style:none;font-size:14.5px;font-weight:600;color:var(--verde-hondo);}
.dk-guia summary::-webkit-details-marker{display:none;}
.dk-guia summary svg{flex:0 0 auto;}
.dk-guia summary::after{content:"+";margin-left:auto;font-size:20px;line-height:1;}
.dk-guia[open] summary::after{content:"−";}
.dk-guia-c{padding:0 16px 16px;display:grid;gap:12px;}
.dk-guia-c img{width:100%;height:auto;border-radius:10px;border:1px solid var(--linea);background:var(--blanco);}
.dk-guia-c p{font-size:14px;line-height:1.65;color:var(--texto);}

/* ---------- venta por metro ---------- */
.precio-por{font-family:Poppins,sans-serif;font-size:20px;font-weight:600;color:var(--suave);margin-left:-8px;}
/* La «m» va pegada al número (centrado), no al borde derecho: en el teléfono el
   borde derecho es donde se posa el botón flotante de WhatsApp. */
.cant-metro{position:relative;}
.cant-metro input{width:104px;padding:0 12px;}
.cant-u{position:absolute;left:calc(50% + 14px);top:50%;transform:translateY(-50%);font-size:14px;color:var(--suave);pointer-events:none;}

/* ---------- la tarjeta de una familia (y el precio por metro en cualquier tarjeta) ---------- */
.dk-opc{align-self:flex-start;font-size:12px;font-weight:600;color:var(--verde-hondo);background:var(--verde-tenue);
  border:1px solid rgba(12,214,93,.3);border-radius:999px;padding:3px 9px;line-height:1.35;}
.pr-precio{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px;position:relative;z-index:2;}
.pr-precio small{font-size:12px;font-weight:500;color:var(--suave);}
.p-um{font-size:12.5px;font-weight:500;color:var(--suave);}

@media (max-width:620px){
  .dk-chip-c{padding:0 12px;font-size:14px;}
  .dk-sel{max-width:none;}
  .dk-sec summary{font-size:15.5px;}
}

/* ============================================================================
   AUDITORÍA DE LA TIENDA · 25-sep-2026 (medido a 1440, 1024, 768 y 390 px)
   ============================================================================ */
/* Nombres del maestro con un trozo larguísimo sin espacios («(A1,A2,A3,B2+SINGLEBOND2
   +ATTAQUE Gel+accesorios)», «Minitornillos-Morelli»): el título no se podía partir y
   empujaba la ficha entera 100 px fuera del teléfono —botón «Agregar al carrito»
   incluido— o se cortaba dentro de la tarjeta. `anywhere` solo parte la palabra
   cuando no cabe; el texto normal sigue cortando por los espacios. */
.pr-b h3,.ficha-info h1,.citem h3,.rline>span:first-child,.miga,.specs td{overflow-wrap:anywhere;}
.ficha>*,.tabs-ficha>*,.rline>span:first-child{min-width:0;}
/* El botón de la tarjeta de una familia («Elegir opciones», «Elegir presentación»)
   no cabía en una línea ni en la rejilla de 2 del teléfono ni en la de 5 del
   escritorio: el texto partido se salía de la píldora de 42 px de alto. Ahora la
   píldora crece si hace falta y el texto va centrado. */
.pr-b .btn-sm{height:auto;min-height:42px;padding:8px 12px;line-height:1.25;text-align:center;}
/* «Quitar ese producto del carrito» dentro del aviso del checkout (un 422 del worker). */
.ck-quitar{display:inline;padding:0;border:0;background:none;color:var(--verde-hondo);
  font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;}

/* 1-oct · Pago con Culqi: la lista de medios (informativa; se elige en la ventana de Culqi) */
.medios-culqi{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
.medios-culqi li{border:1px solid var(--linea);border-radius:var(--r);padding:10px 12px;background:#fff;}
.medios-culqi b{display:block;font-family:Poppins,sans-serif;font-size:14px;color:var(--tinta);}
.medios-culqi i{font-style:normal;font-size:12.5px;color:var(--suave);line-height:1.35;display:block;margin-top:2px;}
@media (max-width:560px){.medios-culqi{grid-template-columns:1fr;}}
.ck-coordinar{margin-top:14px;}
.enlace{background:none;border:0;padding:0;font:inherit;color:var(--verde-hondo);font-weight:600;text-decoration:underline;cursor:pointer;}

/* 1-oct · producto pausado en la caja (lo pone js/vivo.js o el borde) */
.dk-pausado{margin:10px 0 0;padding:10px 14px;border-radius:var(--r);background:#FEF3F2;border:1px solid #F5C6C2;color:#8A1F1F;font-size:14px;line-height:1.45;}
