*,*::before,*::after{box-sizing:border-box}
/* Los saltos del menú a las secciones se deslizan en vez de teletransportarse.
   Con movimiento reducido en el sistema, vuelve al salto directo. */
html:focus-within{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}}
body{margin:0;font-family:var(--sitio-fuente);color:var(--sitio-texto);
  background:var(--sitio-secundario);-webkit-text-size-adjust:100%}
/* Ticket 1250: foco visible para quien navega con teclado. */
:focus-visible{outline:3px solid var(--sitio-texto);outline-offset:2px}
.cabecera__buscar:focus-within{outline:3px solid var(--sitio-texto);outline-offset:2px}
/* Ticket 1241: KAI, asesor de compra. El botón vive encima del carrito
   (abajo a la derecha); el panel, encima del botón; en celular, a lo ancho. */
.kq-kai-abrir{position:fixed;right:16px;bottom:84px;z-index:64;display:inline-flex;align-items:center;gap:.45rem;
  padding:.7rem 1.05rem;border:0;border-radius:999px;background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff);
  font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;box-shadow:0 10px 26px -10px rgba(0,0,0,.45)}
.kq-kai{position:fixed;right:16px;bottom:140px;z-index:66;width:min(380px,calc(100% - 32px));height:min(520px,70vh);
  display:flex;flex-direction:column;border-radius:var(--sitio-radio);background:var(--sitio-secundario);color:var(--sitio-texto);
  border:1px solid var(--sitio-borde);box-shadow:0 18px 44px -14px rgba(0,0,0,.4);overflow:hidden}
.kq-kai[hidden]{display:none}
.kq-kai__cabeza{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;
  background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff);font-size:.95rem}
.kq-kai__cerrar{border:0;background:none;color:inherit;font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .25rem}
.kq-kai__mensajes{flex:1;overflow-y:auto;padding:.85rem;display:flex;flex-direction:column;gap:.6rem}
.kq-kai__msg{max-width:92%;font-size:.9rem;line-height:1.45}
.kq-kai__msg p{margin:0;padding:.55rem .75rem;border-radius:14px;background:rgba(0,0,0,.05)}
.kq-kai__msg--yo{align-self:flex-end}
.kq-kai__msg--yo p{background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff)}
.kq-kai__msg--pensando{font-size:.85rem;opacity:max(.75,var(--sitio-suave,0))}
.kq-kai__prod{display:flex;align-items:center;gap:.6rem;margin-top:.45rem;padding:.5rem;border:1px solid var(--sitio-borde);border-radius:var(--sitio-radio-sm);background:var(--sitio-secundario)}
.kq-kai__prod img{width:52px;height:52px;object-fit:cover;border-radius:8px;flex:none}
.kq-kai__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem;font-size:.85rem}
.kq-kai__info a{color:inherit;font-weight:600;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kq-kai__form{display:flex;gap:.4rem;padding:.65rem;border-top:1px solid var(--sitio-borde)}
.kq-kai__form input{flex:1;min-width:0;padding:.55rem .75rem;border:1px solid var(--sitio-borde);border-radius:var(--sitio-radio-sm);font:inherit;font-size:.9rem;background:#fff;color:#222}
@media (max-width:600px){.kq-kai{right:8px;left:8px;width:auto;bottom:136px;height:min(480px,65vh)}}
/* Ticket 1248: secciones solo para celular o solo para computador. */
@media (min-width:768px){[data-dispositivo="movil"]{display:none!important}}
@media (max-width:767px){[data-dispositivo="escritorio"]{display:none!important}}
/* Ticket 1240: aviso de cookies. Centrado abajo, entre la burbuja de WhatsApp
   (abajo a la izquierda) y el carrito (abajo a la derecha); en el celular,
   a lo ancho y por encima de las dos. */
.kq-cookies{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:80;width:min(520px,calc(100% - 200px));padding:1rem 1.1rem;
  border-radius:var(--sitio-radio);background:var(--sitio-secundario);color:var(--sitio-texto);
  border:1px solid var(--sitio-borde);box-shadow:0 12px 32px -12px rgba(0,0,0,.35);font-size:.9rem;line-height:1.45}
.kq-cookies[hidden]{display:none}
.kq-cookies__texto{margin:0 0 .75rem}
.kq-cookies__texto a{color:inherit;text-decoration:underline}
.kq-cookies__acciones{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.kq-cookies__no{border:1px solid currentColor;background:none;color:inherit;border-radius:var(--sitio-radio-sm);
  padding:.5rem 1rem;font:inherit;font-size:.85rem;cursor:pointer}
@media (max-width:760px){.kq-cookies{left:12px;right:12px;width:auto;transform:none;bottom:88px}}
/* Ticket 1249: en el celular, un campo de menos de 16 px hace que el iPhone
   acerque la pantalla al tocarlo (y el comprador queda con la página
   ampliada en pleno checkout). Va con !important porque cada formulario fija
   su propio tamaño con selectores más específicos. */
@media (max-width:767px){
  input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px!important}
}
img{max-width:100%}
h1,h2,h3{font-family:var(--sitio-fuente-titulo);font-weight:var(--sitio-titulo-peso);
  letter-spacing:var(--sitio-titulo-track);line-height:var(--sitio-titulo-altura)}
/* ── Anchos: la página usa TODA la pantalla ──────────────────────────────────
   Tres familias, como en cualquier tienda grande:
   1. De borde a borde: anuncio, encabezado, portada y pie. El fondo llena la
      pantalla; encajonarlos era lo que hacía ver la página como plantilla.
   2. Vitrina ancha (tope 1480px): productos, catálogo, categorías, galería…
      El comercio necesita el ancho para tarjetas grandes.
   3. Lectura (var(--sitio-ancho)): texto, preguntas, formulario. Una línea de
      texto de pantalla completa no se puede leer. */
.bloque{padding:var(--sitio-aire) 1.25rem;margin:0 auto}
.productos,.catalogo,.categorias,.galeria,.columnas,.seccion,.resenas,.botones,.video{max-width:1480px}
.texto,.faq,.formulario,.ubicacion,.whatsapp{max-width:var(--sitio-ancho)}
.bloque h2{font-size:calc(1.5rem * var(--sitio-titulo-escala));margin:0 0 1rem}

/* ── Portada ─────────────────────────────────────────────────────────────── */
.hero{position:relative;padding:calc(var(--sitio-aire) * 1.4) 1.25rem;overflow:hidden}
/* Sin foto, la portada no puede ser monumental: el mismo aire que luce con una
   imagen de fondo se convierte en media pantalla vacia sobre color plano. */
.hero:not(.hero--con-imagen){padding:calc(var(--sitio-aire) * 0.9) 1.25rem}
.hero__fondo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
/* El velo va sobre la foto, no como caja detrás del texto: así la imagen se ve
   entera y el titular se sigue leyendo. La opacidad la fija cada portada. */
.hero__velo{position:absolute;inset:0;z-index:1;background:#000;opacity:0}
.hero--velo-claro .hero__velo{background:#fff}
.hero__contenido{position:relative;z-index:2;max-width:46rem;margin:0 auto}
.hero[style*="left"] .hero__contenido,.hero--izquierda .hero__contenido{margin-left:0}
.hero--derecha .hero__contenido{margin-right:0}
.hero h1{font-size:calc(2rem * var(--sitio-titulo-escala));margin:0 0 .75rem}
.hero p{font-size:1.05rem;margin:0 0 1.25rem;opacity:.88;line-height:1.55}
.hero--con-imagen{color:#fff}
.hero--con-imagen.hero--velo-claro{color:var(--sitio-texto)}
/* Portada a pantalla completa: lo que hace que una foto se sienta de marca. */
.hero--completa{min-height:100svh;display:flex;align-items:center}
.hero--completa .hero__contenido{width:100%}
.hero__scroll{position:absolute;left:50%;bottom:1.75rem;z-index:2;width:1px;height:2.5rem;
  transform:translateX(-50%);background:currentColor;opacity:.45}

/* ── Botones ─────────────────────────────────────────────────────────────── */
.boton{display:inline-block;padding:.8rem 1.6rem;border:1px solid var(--sitio-primario);
  border-radius:var(--sitio-radio-sm);background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff);
  font-size:.95rem;font-weight:600;text-decoration:none;cursor:pointer;font-family:inherit;
  text-transform:var(--sitio-etiqueta-caja);letter-spacing:var(--sitio-etiqueta-track);
  transition:opacity .2s ease,transform .2s ease}
.boton:hover{opacity:.88;transform:translateY(-1px)}
.boton--whatsapp{background:#25d366;border-color:#25d366;color:#0b3d20}
.boton--chico{padding:.5rem 1rem;font-size:.85rem}
.whatsapp{text-align:center}

/* ── Encabezado ──────────────────────────────────────────────────────────────
   Barra de marca. El padding vertical es menor que el de un bloque normal: es
   una cabecera, no una sección. */
.cabecera{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  padding-top:1rem;padding-bottom:1rem;border-bottom:1px solid var(--sitio-borde)}
.cabecera--fija{position:sticky;top:0;z-index:20;background:var(--sitio-secundario)}
.cabecera__inicio{display:inline-flex;align-items:center;gap:.6rem;color:inherit;text-decoration:none}
.cabecera__marca{display:flex;align-items:center;gap:.6rem;margin-right:auto;min-width:0}
.cabecera__logo{height:40px;width:auto;max-width:170px;object-fit:contain}
.cabecera__nombre{font-family:var(--sitio-fuente-titulo,inherit);font-size:1.1rem;
  font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cabecera__enlaces{display:flex;flex-wrap:wrap;gap:1.1rem}
.cabecera__enlaces a{color:inherit;text-decoration:none;font-size:.9rem;font-weight:600}
.cabecera__enlaces a:hover{opacity:.7}
/* Menú de categorías: segunda fila del encabezado, como en las tiendas
   grandes. En pantallas angostas desfila de lado, no se apila. */
.cabecera__cats{width:100%;display:flex;gap:1.6rem;justify-content:flex-start;
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding:.55rem 0 .1rem;margin-top:.35rem;border-top:1px solid var(--sitio-borde)}
.cabecera__cats::-webkit-scrollbar{display:none}
.cabecera__cats a{color:inherit;text-decoration:none;font-size:.8rem;font-weight:600;
  white-space:nowrap;text-transform:uppercase;letter-spacing:.08em;opacity:.85}
.cabecera__cats a:hover{opacity:1;color:var(--sitio-primario)}
@media (max-width:600px){
  .cabecera{gap:.6rem}
  .cabecera__logo{height:32px}
  .cabecera__enlaces{gap:.8rem;width:100%;order:3}
  .cabecera__enlaces a{font-size:.82rem}
  /* En celular el encabezado fijo con logo + categorias + buscador se comia un
     cuarto de la pantalla y perseguia al comprador en todo el scroll. Abajo de
     600px deja de ser fijo (el carrito flotante sigue a mano) y, cuando hay
     menu de categorias, los enlaces sueltos ("Destacados") sobran. */
  .cabecera--fija{position:static}
  .cabecera:has(.cabecera__cats) .cabecera__enlaces{display:none}
  /* La fila de categorias se desliza: el degradado del borde derecho lo dice. */
  .cabecera__cats{gap:1.1rem;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);
    mask-image:linear-gradient(90deg,#000 88%,transparent);padding-right:2rem}
}

/* ── Galería y productos ─────────────────────────────────────────────────── */
.galeria__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}
.galeria__grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--sitio-radio-sm)}
.productos__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}
@media (min-width:768px){
  /* A pantalla ancha las tarjetas son grandes, como en una tienda de verdad:
     4-5 por fila en la vitrina de 1480px, no 8 miniaturas. */
  .productos__grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem}
  .galeria__grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
}
/* Tarjeta SIN caja: la foto es la protagonista, como en cualquier tienda
   grande. La caja con borde, fondo blanco y sombra hacia ver la rejilla como
   un formulario de pedidos — la foto grande y limpia es lo que vende. */
.producto{position:relative;transition:transform .25s ease}
.producto__fav{position:absolute;top:.55rem;right:.55rem;z-index:3;width:36px;height:36px;border-radius:50%;border:0;
  background:rgba(255,255,255,.94);color:#211f3a;display:grid;place-items:center;cursor:pointer;
  box-shadow:0 2px 10px rgba(0,0,0,.12);transition:transform .15s ease,color .15s ease}
.producto__fav:hover{transform:scale(1.08)}
.producto__fav.is-activo,.ficha__fav.is-activo,[data-kq-favoritos].is-activo{color:#e11d48}
.producto__fav.is-activo svg,.ficha__fav.is-activo svg{fill:currentColor}
.ficha__fav{display:inline-flex;align-items:center;gap:.45rem;margin:.2rem 0 .8rem;padding:.5rem .95rem;
  border:1px solid var(--sitio-borde);border-radius:999px;background:none;color:inherit;font:inherit;font-size:.88rem;cursor:pointer}
.ficha__fav.is-activo span::after{content:" ✓"}
.producto__foto{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  overflow:hidden;border-radius:var(--sitio-radio);background:#f4f4f5;margin-bottom:.7rem;
  transition:box-shadow .3s ease}
.producto:hover .producto__foto{box-shadow:0 12px 28px -14px rgba(0,0,0,.28)}
.producto__foto img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.producto:hover .producto__foto img{transform:scale(1.04)}
/* Segunda foto al pasar el mouse: el detalle que separa una tienda seria de
   una rejilla de fotos. Dos imagenes apiladas, cambio de opacidad y ya. */
.producto__foto2{position:absolute;inset:0;opacity:0;transition:opacity .35s ease}
.producto:hover .producto__foto2{opacity:1}
.producto__foto svg{width:34%;height:34%;opacity:.25}
.producto__oferta{position:absolute;top:.5rem;left:.5rem;z-index:1;padding:.18rem .5rem;
  border-radius:999px;background:#b42318;color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.02em}
/* El nombre del producto es una etiqueta, no un titular: va en la fuente del
   cuerpo. Con la fuente de titulares (serif fina en versalitas en los presets
   editoriales) la rejilla entera gritaba. */
.producto h3{font-family:var(--sitio-fuente);font-weight:500;font-size:.88rem;
  letter-spacing:0;text-transform:none;line-height:1.4;margin:0 0 .3rem;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em;opacity:.92}
.producto__precio{font-weight:650;color:inherit;font-size:.95rem;margin:0;display:flex;
  align-items:baseline;gap:.45rem;flex-wrap:wrap}
.producto__antes{font-weight:400;font-size:.82rem;opacity:max(.45,var(--sitio-suave,0));color:inherit}
.producto__insignia{position:absolute;top:.5rem;left:.5rem;z-index:1;padding:.18rem .5rem;
  border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.02em}
.producto__insignia--nuevo{background:var(--sitio-primario);color:var(--sitio-secundario-sobre-primario,var(--sitio-secundario))}
.producto__insignia--agotado{background:#3f3f46;color:#fff}
.producto--agotado .producto__foto img{filter:grayscale(.6);opacity:.75}
.kq-agregar[disabled]{opacity:.5;cursor:not-allowed}

/* ── Portada de mosaico ──────────────────────────────────────────────────────
   Para el comercio que todavía no tiene foto de marca: sus fotos de catálogo
   se ven bien al tamaño para el que fueron hechas, no estiradas a pantalla
   completa. */
.hero--mosaico{max-width:1480px;text-align:left;padding:calc(var(--sitio-aire) * .9) 1.25rem}
.hero--mosaico .hero__contenido{max-width:none;margin:0}
.hero__mosaico-grid{display:grid;gap:1.75rem;align-items:center}
.hero__fotos{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
.hero__fotos--3 .hero__foto:first-child,.hero__fotos--1 .hero__foto{grid-column:span 2}
.hero__foto{display:block;overflow:hidden;border-radius:var(--sitio-radio);background:#f4f4f5}
.hero__foto img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.hero--mosaico:hover .hero__foto img{transform:scale(1.02)}
/* En celular el mosaico va debajo del titular, con alto propio para que la
   portada no se coma tres pantallas.
   Ticket 1257: el marco toma la forma de la rejilla (2×2 y 1 foto, cuadrado;
   2 fotos, 2:1), así cada baldosa queda cuadrada como las fotos de catálogo y
   no las recorta. El tamaño sale del alto de pantalla: cabe en una pantalla. */
.hero__fotos{grid-auto-rows:minmax(0,1fr);aspect-ratio:1/1;width:min(100%,clamp(240px,46vh,340px));height:auto;margin:0 auto}
.hero__fotos--2{aspect-ratio:2/1;width:100%}
@media (min-width:860px){
  .hero--mosaico{padding:calc(var(--sitio-aire-ancho) * .75) 2rem}
  .hero__mosaico-grid{grid-template-columns:.9fr 1.1fr;gap:3.5rem}
  .hero__fotos{width:min(100%,clamp(340px,58vh,470px));margin-left:auto;margin-right:0}
  .hero__fotos--2{width:100%}
}

/* ── Ficha de producto ───────────────────────────────────────────────────── */
.ficha{max-width:1240px}
.ficha__volver{display:inline-block;margin-bottom:1.25rem;color:inherit;text-decoration:none;
  font-size:.85rem;opacity:max(.7,var(--sitio-suave,0))}
.ficha__volver:hover{opacity:1}
.ficha__grid{display:grid;gap:1.75rem}
.ficha__principal{aspect-ratio:1/1;background:#f4f4f5;border-radius:var(--sitio-radio);
  overflow:hidden;display:flex;align-items:center;justify-content:center}
.ficha__principal img{width:100%;height:100%;object-fit:cover}
.ficha__miniaturas{display:flex;gap:.5rem;margin-top:.6rem;overflow-x:auto;scrollbar-width:none}
.ficha__miniaturas::-webkit-scrollbar{display:none}
.ficha__mini{flex:none;width:64px;height:64px;padding:0;border:1px solid var(--sitio-borde);
  border-radius:var(--sitio-radio-sm);background:#f4f4f5;overflow:hidden;cursor:pointer}
.ficha__mini.is-active{border-color:var(--sitio-primario);border-width:2px}
.ficha__mini img{width:100%;height:100%;object-fit:cover}
/* Ticket 1405: videos del producto; el que se reproduce flota al bajar. */
.ficha__videos{display:grid;gap:.75rem;margin-top:.8rem}
.ficha__video{position:relative;aspect-ratio:16/9;border-radius:var(--sitio-radio);background:#000}
.ficha__video--vertical{aspect-ratio:9/16;max-width:340px}
.ficha__video__caja{position:absolute;inset:0;border-radius:inherit;overflow:hidden;background:#000}
.ficha__video__caja iframe,.ficha__video__caja video{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:contain;background:#000}
.ficha__video__cerrar{display:none}
.ficha__video.is-flotante .ficha__video__caja{position:fixed;inset:auto 16px 16px auto;width:min(320px,calc(100vw - 32px));
  aspect-ratio:16/9;z-index:60;overflow:visible;box-shadow:0 12px 32px rgba(0,0,0,.35)}
.ficha__video--vertical.is-flotante .ficha__video__caja{width:180px;aspect-ratio:9/16}
.ficha__video.is-flotante iframe,.ficha__video.is-flotante video{border-radius:var(--sitio-radio-sm)}
.ficha__video.is-flotante .ficha__video__cerrar{display:flex;align-items:center;justify-content:center;position:absolute;
  top:-12px;right:-12px;z-index:1;width:28px;height:28px;border:0;border-radius:50%;background:#111;color:#fff;
  font-size:18px;line-height:1;cursor:pointer}
body.kq-con-barra-ficha .ficha__video.is-flotante .ficha__video__caja{bottom:calc(88px + env(safe-area-inset-bottom))}
.ficha__marca{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;opacity:max(.6,var(--sitio-suave,0));margin:0 0 .4rem}
.ficha__promo{display:inline-flex;align-items:center;gap:.45rem;margin:0 0 .5rem;font-size:.85rem;font-weight:600}
.ficha__promo span{padding:.18rem .55rem;border-radius:999px;background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff);font-weight:800;font-size:.8rem}
.ficha h1{font-size:calc(1.7rem * var(--sitio-titulo-escala));margin:0 0 .75rem}
.ficha__precio{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin:0 0 .35rem}
.ficha__precio strong{font-size:1.55rem;color:var(--sitio-primario)}
.ficha__precio s{opacity:max(.5,var(--sitio-suave,0))}
.ficha__oferta{position:static}
.ficha__lista{font-size:.82rem;opacity:max(.7,var(--sitio-suave,0));margin:0 0 .5rem}
.ficha__ahorro{margin:0 0 .25rem;font-size:.88rem;font-weight:700;color:#13774f}
.ficha__iva{margin:0 0 .35rem;font-size:.78rem;opacity:max(.7,var(--sitio-suave,0))}
.ficha__entrega{display:flex;flex-wrap:wrap;gap:.4rem;margin:.15rem 0 .6rem}
.ficha__plazo,.ficha__pocas{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600;color:inherit}
.ficha__plazo{background:rgba(19,119,79,.1);color:#13774f}
.ficha__pocas{background:rgba(196,88,0,.12);color:#9a4700}
.producto__entrega{margin:.2rem 0 0;font-size:.75rem;opacity:max(.7,var(--sitio-suave,0));color:inherit}
.producto__estrellas{margin:0 0 .25rem;font-size:.78rem;line-height:1;display:flex;align-items:center;gap:.1rem}
.producto__estrellas-llenas{color:#e3a008;letter-spacing:.05em}
.producto__estrellas-vacias{color:currentColor;opacity:.2;letter-spacing:.05em}
.producto__estrellas-total{margin-left:.35rem;opacity:max(.65,var(--sitio-suave,0));color:inherit;font-size:.74rem}
.ficha__etiqueta{display:block;font-size:.78rem;font-weight:700;margin:1.25rem 0 .5rem;
  text-transform:var(--sitio-etiqueta-caja);letter-spacing:var(--sitio-etiqueta-track)}
.ficha__opciones{display:flex;flex-wrap:wrap;gap:.5rem}
.ficha__opcion{padding:.55rem 1rem;border:1px solid var(--sitio-borde);
  border-radius:var(--sitio-radio-sm);background:transparent;color:inherit;font:inherit;
  font-size:.88rem;cursor:pointer;transition:border-color .15s ease,background .15s ease}
.ficha__opcion:hover{border-color:var(--sitio-primario)}
.ficha__opcion[aria-pressed="true"]{background:var(--sitio-primario);border-color:var(--sitio-primario);
  color:var(--sitio-secundario-sobre-primario,var(--sitio-secundario))}
.ficha__opcion.is-agotada{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.ficha__aviso-var{color:#b42318;font-size:.85rem;margin:.5rem 0 0}
.ficha__compra{display:flex;gap:.75rem;align-items:stretch;margin:1.5rem 0 .5rem;flex-wrap:wrap}
.ficha__cantidad{display:flex;align-items:center;gap:.85rem;padding:0 .85rem;
  border:1px solid var(--sitio-borde);border-radius:var(--sitio-radio-sm)}
.ficha__cantidad button{border:0;background:none;font:inherit;font-size:1.15rem;cursor:pointer;
  color:inherit;padding:.4rem;line-height:1}
.ficha__cantidad span{min-width:1.4rem;text-align:center;font-weight:700}
.ficha__agregar{flex:1;min-width:200px;padding:.95rem 1.5rem;border:0;
  border-radius:var(--sitio-radio-sm);background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff);
  font:inherit;font-weight:700;font-size:.98rem;cursor:pointer;
  text-transform:var(--sitio-etiqueta-caja);letter-spacing:var(--sitio-etiqueta-track);
  transition:opacity .2s ease,transform .2s ease}
.ficha__agregar:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}
.ficha__agregar:disabled{opacity:.45;cursor:not-allowed}
.ficha__descripcion{margin-top:1.5rem;line-height:1.65;font-size:.95rem}
.ficha__descripcion p{margin:0 0 .75rem}
.ficha__descripcion ul,.ficha__descripcion ol{margin:0 0 .75rem;padding-left:1.2rem}
.ficha__mas{border-top:1px solid var(--sitio-borde);padding:.85rem 0}
.ficha__mas summary{cursor:pointer;font-weight:600;font-size:.9rem}
.ficha__mas p{margin:.6rem 0 0;font-size:.9rem;line-height:1.6;opacity:.85}
@media (min-width:860px){
  .ficha__grid{grid-template-columns:1.05fr 1fr;gap:3rem;align-items:start}
  .ficha h1{font-size:calc(2.1rem * var(--sitio-titulo-escala))}
}

/* La tarjeta entera lleva al producto; el botón de agregar no navega porque el
   script de la tienda corta el evento. */
.producto__enlace{color:inherit;text-decoration:none;display:block}

/* ── Confirmación de pedido ──────────────────────────────────────────────── */
.gracias{max-width:640px;text-align:center;min-height:52vh;display:flex;align-items:center}
.gracias__caja{width:100%}
.gracias__sello{display:inline-flex;align-items:center;justify-content:center;
  width:72px;height:72px;border-radius:999px;background:var(--sitio-primario);
  color:var(--sitio-sobre-primario,#fff);margin-bottom:1.1rem}
.gracias h1{font-size:calc(1.9rem * var(--sitio-titulo-escala));margin:0 0 .6rem}
.gracias__numero{font-size:1.05rem;margin:0 0 .4rem}
.gracias__numero b{padding:.15rem .6rem;border-radius:8px;background:rgba(0,0,0,.06)}
.gracias__texto{opacity:max(.75,var(--sitio-suave,0));margin:0 0 1.5rem;line-height:1.6}
/* ── Reseñas de la ficha ───────────────────────────────────────────────────
   Solo salen las publicadas. El sello de compra verificada es lo que las
   distingue de un testimonio escrito por el propio comerciante. */
.ficha-resenas{margin-top:2.5rem;padding-top:1.6rem;border-top:1px solid var(--sitio-borde)}
.ficha-resenas__cab{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.8rem;margin-bottom:1.2rem}
.ficha-resenas__cab h2{margin:0;font-size:calc(1.25rem * var(--sitio-titulo-escala))}
.ficha-resenas__nota{display:flex;align-items:center;gap:.5rem;font-size:.95rem}
.ficha-resenas__nota strong{font-size:1.2rem}
.ficha-resenas__nota span{opacity:max(.7,var(--sitio-suave,0))}
.ficha-resenas__lista{display:grid;gap:1.1rem}
@media (min-width:760px){.ficha-resenas__lista{grid-template-columns:1fr 1fr}}
.ficha-resena{padding:1rem 1.1rem;border-radius:12px;background:rgba(0,0,0,.035)}
.ficha-resena__cab{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.45rem;font-size:.9rem}
.ficha-resena__sello{padding:.12rem .5rem;border-radius:999px;background:rgba(19,122,58,.14);
  color:#137a3a;font-size:.7rem;font-weight:700}
.ficha-resena__texto{margin:0;font-size:.93rem;line-height:1.6}
.ficha-resena__respuesta{margin:.6rem 0 0;padding-left:.8rem;border-left:2px solid var(--sitio-primario);
  font-size:.88rem;line-height:1.55;opacity:.85}
.resena__estrellas{color:#f5a623;letter-spacing:.06em}

/* ── Avísame cuando llegue ─────────────────────────────────────────────────
   Un agotado sin salida pierde la venta dos veces: la de hoy y la del día en
   que vuelva a haber, porque nadie se enteró. */
.ficha__avisame{display:grid;gap:.6rem}
.ficha__avisame-t{margin:0;font-size:.92rem;font-weight:600}
.ficha__avisame-fila{display:grid;grid-template-columns:1fr auto;gap:.5rem}
.ficha__avisame-fila input{padding:.65rem .8rem;border:1px solid var(--sitio-borde);
  border-radius:9px;font:inherit;min-width:0}
.ficha__avisame-fila button{padding:.65rem 1.1rem;border:0;border-radius:9px;
  background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff);font:inherit;font-weight:700;cursor:pointer}
.ficha__avisame-fila button:disabled{opacity:.6;cursor:default}
.ficha__avisame-ok{margin:0;font-size:.9rem;color:#137a3a;font-weight:600}
.ficha__avisame-err{margin:0;font-size:.88rem;color:#b42318}
/* Pago que no se completó: el sello no puede ser el mismo visto bueno verde
   del pago aprobado, o el comprador se va creyendo que compró. */
.gracias--alerta .gracias__sello{background:#b3261e}

/* ── Portada en carrusel ─────────────────────────────────────────────────── */
.hero--carrusel{min-height:420px;display:flex;align-items:center}
.hero__slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.1s ease;z-index:0}
.hero__slide.is-activa{opacity:1}
.hero__puntos{position:absolute;left:50%;bottom:1.1rem;transform:translateX(-50%);
  z-index:3;display:flex;gap:.5rem}
.hero__punto{width:9px;height:9px;border-radius:999px;border:0;padding:0;cursor:pointer;
  background:rgba(255,255,255,.45);transition:background .25s ease,transform .25s ease}
.hero__punto.is-activa{background:#fff;transform:scale(1.25)}
.hero--velo-claro .hero__punto{background:rgba(0,0,0,.3)}
.hero--velo-claro .hero__punto.is-activa{background:#333}

/* ── Filas deslizables (carruseles de productos/categorías y banners) ──────
   scroll-snap: se deslizan con el dedo sin JS; las flechas las mueve el
   script y los puntos siguen la posición. */
.fila{position:relative}
.fila__pista{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding-bottom:.25rem}
.fila__pista::-webkit-scrollbar{display:none}
.fila__pista > *{scroll-snap-align:start;flex:0 0 auto}
.productos__grid--fila{display:flex}
.productos__grid--fila > .producto{flex:1 0 clamp(160px,22vw,250px);max-width:320px}
.categorias__grid--fila{display:flex}
.categorias__grid--fila > .categoria{flex:1 0 clamp(150px,20vw,220px);max-width:300px}
/* Las flechas viven en el margen de la fila, no encima de las tarjetas.
   Revisión 2026-10-18: el ícono toma el texto que se lee sobre blanco (sin la
   variable, hereda como antes). */
@media (min-width:700px){.fila--con-flechas{padding:0 52px}.fila--con-flechas .fila__flecha--prev{left:0}.fila--con-flechas .fila__flecha--next{right:0}}
.fila__flecha{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:40px;
  border-radius:50%;border:1px solid var(--sitio-borde);background:#fff;color:var(--sitio-texto-sobre-blanco);cursor:pointer;
  display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px -10px rgba(0,0,0,.35);
  opacity:.92;transition:opacity .2s,transform .2s}
.fila__flecha:hover{opacity:1;transform:translateY(-50%) scale(1.05)}
.fila__flecha--prev{left:2px}.fila__flecha--next{right:2px}
.fila__flecha[disabled]{opacity:.25;cursor:default}
.fila__puntos{display:flex;justify-content:center;gap:.45rem;margin-top:.7rem}
.fila__punto{width:9px;height:9px;border-radius:999px;border:0;padding:0;cursor:pointer;
  background:color-mix(in srgb,var(--sitio-primario) 30%,transparent);transition:background .25s,transform .25s}
.fila__punto.is-activa{background:var(--sitio-primario);transform:scale(1.25)}
@media (max-width:600px){.fila__flecha{display:none}}
/* Banners: cada imagen ocupa la pista entera; el alto lo elige el comerciante. */
.banner{padding-top:0;padding-bottom:0}
/* .bloque.banner--completo: gana también sobre el padding ancho de .bloque en
   pantallas grandes (una sola clase perdía en la media query). */
.bloque.banner--completo{max-width:none;padding-left:0;padding-right:0}
.banner--completo .fila__flecha--prev{left:14px}.banner--completo .fila__flecha--next{right:14px}
.banner__pista{gap:0;padding-bottom:0}
.banner__slide{width:100%;display:block;flex:0 0 100%;overflow:hidden}
.banner__slide img{width:100%;height:clamp(180px,32vw,420px);object-fit:cover;display:block}
.banner--bajo .banner__slide img{height:clamp(120px,20vw,260px)}
.banner--alto .banner__slide img{height:clamp(260px,46vw,620px)}
.banner:not(.banner--completo) .banner__slide img{border-radius:var(--sitio-radio)}
.banner .fila__puntos{position:absolute;left:0;right:0;bottom:.9rem;margin:0;z-index:2}
.banner .fila__punto{background:rgba(255,255,255,.5)}.banner .fila__punto.is-activa{background:#fff}
.banner + .bloque{padding-top:var(--sitio-aire)}

/* ── Popup de bienvenida ──────────────────────────────────────────────────── */
.kq-popup{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;
  padding:1rem;background:rgba(0,0,0,.55);animation:kq-popup-velo .25s ease}
.kq-popup[hidden]{display:none}
@keyframes kq-popup-velo{from{opacity:0}to{opacity:1}}
@keyframes kq-popup-caja{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@media (max-width:640px){.kq-popup{align-items:flex-end;padding:0}
  .kq-popup__caja{width:100%;max-height:85vh;border-radius:20px 20px 0 0;animation-name:kq-popup-hoja}}
@keyframes kq-popup-hoja{from{transform:translateY(100%)}to{transform:none}}
.kq-popup__caja{position:relative;width:min(820px,100%);max-height:90vh;overflow:auto;background:#fff;color:#222;
  border-radius:var(--sitio-radio);box-shadow:0 30px 80px -30px rgba(0,0,0,.6);display:grid;
  animation:kq-popup-caja .3s ease}
.kq-popup__caja--con-foto{grid-template-columns:1fr}
@media (min-width:700px){.kq-popup__caja--con-foto{grid-template-columns:1.1fr 1fr}}
.kq-popup__foto{min-height:220px;background:#f4f4f5}
.kq-popup__foto img{width:100%;height:100%;object-fit:cover;display:block;min-height:220px}
.kq-popup__texto{padding:2rem 1.75rem;display:flex;flex-direction:column;justify-content:center;gap:.75rem}
.kq-popup__texto h2{margin:0;font-size:calc(1.7rem * var(--sitio-titulo-escala));line-height:1.1}
.kq-popup__texto p{margin:0;opacity:.8;line-height:1.5}
.kq-popup__texto .boton{align-self:flex-start;margin-top:.5rem}
.kq-popup__cerrar{position:absolute;top:.6rem;right:.6rem;z-index:2;width:34px;height:34px;border-radius:50%;
  border:0;background:rgba(255,255,255,.92);color:#222;font-size:1rem;cursor:pointer;
  box-shadow:0 6px 16px -8px rgba(0,0,0,.5)}
@media (prefers-reduced-motion:reduce){.kq-popup,.kq-popup__caja{animation:none}}

/* ── Buscador y carrito en la cabecera ───────────────────────────────────── */
.cabecera__buscar{display:flex;align-items:center;gap:.5rem;flex:1;min-width:150px;
  max-width:420px;padding:.5rem .85rem;border:1px solid var(--sitio-borde);
  border-radius:999px;opacity:.9}
.cabecera__buscar svg{flex:none;opacity:.5}
.cabecera__buscar input{flex:1;min-width:0;border:0;background:none;font:inherit;
  font-size:.88rem;color:inherit;outline:none}
.cabecera__carrito{position:relative;display:inline-flex;align-items:center;
  border:0;background:none;color:inherit;cursor:pointer;padding:.35rem}
.cabecera__carrito b{position:absolute;top:-2px;right:-4px;min-width:17px;height:17px;
  padding:0 4px;border-radius:999px;background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff);
  font-size:.68rem;line-height:17px;text-align:center}
@media (max-width:600px){.cabecera__buscar{order:4;max-width:none;width:100%}}

/* ── Rejilla de Instagram ────────────────────────────────────────────────── */
.insta{max-width:1480px;text-align:center}
.insta__usuario{margin:-.4rem 0 1.1rem;font-size:.9rem}
.insta__usuario a{color:var(--sitio-acento,var(--sitio-primario));text-decoration:none;font-weight:600}
.insta__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.insta__foto{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;
  border-radius:var(--sitio-radio-sm)}
.insta__foto img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.insta__foto:hover img{transform:scale(1.05)}
.insta__velo{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.35);color:#fff;opacity:0;transition:opacity .25s ease}
.insta__foto:hover .insta__velo{opacity:1}
@media (min-width:768px){
  .insta__grid{grid-template-columns:repeat(6,1fr)}
  .insta__grid--3{grid-template-columns:repeat(3,1fr)}
  .insta__grid--4{grid-template-columns:repeat(4,1fr)}
  .insta__grid--5{grid-template-columns:repeat(5,1fr)}
}

/* ── Piezas compartidas de los bloques nuevos ────────────────────────────── */
/* Revisión 2026-10-18: los textos en color de marca (antetítulo, enlaces,
   estrellas, precio del destacado) van por --sitio-acento, que la sección
   alterna redefine con el color medido contra su fondo. Sin él, el principal. */
.kicker{display:block;font-size:.78rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--sitio-acento,var(--sitio-primario));margin-bottom:.6rem}
.boton--secundario{background:transparent;color:inherit;border-color:currentColor}
.boton--secundario:hover{opacity:.75}

/* ── Imagen con texto (promo) ────────────────────────────────────────────── */
.promo{max-width:1480px}
.promo__grid{display:grid;gap:1.75rem;align-items:center}
.promo__foto{overflow:hidden;border-radius:var(--sitio-radio);background:#f4f4f5;
  aspect-ratio:4/3}
.promo__foto img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.promo:hover .promo__foto img{transform:scale(1.03)}
.promo__contenido p{line-height:1.65;opacity:.85}
.promo__contenido .boton{margin-top:.75rem}
@media (min-width:860px){
  .promo__grid{grid-template-columns:1.05fr 1fr;gap:3.5rem}
  .promo--derecha .promo__foto{order:2}
}

/* ── Producto destacado ──────────────────────────────────────────────────── */
.destacado{max-width:1480px}
.destacado__grid{display:grid;gap:1.75rem;align-items:center}
.destacado__foto{display:block;overflow:hidden;border-radius:var(--sitio-radio);
  background:#f4f4f5;aspect-ratio:1/1}
.destacado__foto img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.destacado:hover .destacado__foto img{transform:scale(1.03)}
.destacado__precio{display:flex;align-items:baseline;gap:.6rem;margin:.25rem 0 .75rem}
.destacado__precio strong{font-size:1.45rem;color:var(--sitio-acento,var(--sitio-primario))}
.destacado__precio s{opacity:max(.5,var(--sitio-suave,0))}
.destacado__resumen{line-height:1.6;opacity:.8;margin:0 0 1.1rem}
.destacado__acciones{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}
.destacado__agregar{width:auto;margin:0;padding:.8rem 1.6rem;font-size:.95rem;
  background:var(--sitio-primario);border-color:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff)}
@media (min-width:860px){
  .destacado__grid{grid-template-columns:.9fr 1.1fr;gap:3.5rem}
}

/* ── Cuenta regresiva ────────────────────────────────────────────────────── */
.contador{text-align:center}
.contador__cajas{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin:1.25rem 0}
.contador__caja{min-width:78px;padding:.9rem .6rem;border:1px solid var(--sitio-borde);
  border-radius:var(--sitio-radio-sm);background:rgba(0,0,0,.02)}
.contador__caja b{display:block;font-size:1.9rem;font-variant-numeric:tabular-nums;
  font-family:var(--sitio-fuente-titulo);line-height:1}
.contador__caja span{display:block;margin-top:.35rem;font-size:.72rem;text-transform:uppercase;
  letter-spacing:.1em;opacity:max(.6,var(--sitio-suave,0))}
.contador__fin{font-size:1.05rem;font-weight:600}

/* ── Boletín ─────────────────────────────────────────────────────────────── */
.suscripcion__caja{display:grid;gap:1rem;padding:1.75rem;border-radius:var(--sitio-radio);
  background:var(--sitio-primario);color:var(--sitio-secundario-sobre-primario,var(--sitio-secundario))}
.suscripcion__caja h2{margin:0 0 .25rem;font-size:1.4rem}
.suscripcion__caja p{margin:0;opacity:.85;font-size:.95rem}
.suscripcion__form{display:flex;gap:.6rem;flex-wrap:wrap}
.suscripcion__form input{flex:1;min-width:210px;padding:.8rem 1rem;border:0;
  border-radius:var(--sitio-radio-sm);font:inherit}
.suscripcion__form .boton{background:var(--sitio-secundario);color:var(--sitio-primario);
  border-color:var(--sitio-secundario)}
.suscripcion__ok{font-weight:600}
.suscripcion__caja .suscripcion__legal{margin:.5rem 0 0;font-size:.78rem;opacity:max(.75,var(--sitio-suave,0))}
@media (min-width:860px){
  .suscripcion__caja{grid-template-columns:1fr auto;align-items:center;padding:2.25rem 2.5rem}
}

/* ── Franja de marcas ────────────────────────────────────────────────────── */
.marcas{text-align:center}
.marcas__titulo{font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;
  opacity:max(.55,var(--sitio-suave,0));margin:0 0 1.1rem}
.marcas__fila{display:flex;gap:2.5rem;justify-content:center;align-items:center;flex-wrap:wrap}
.marca img{height:34px;width:auto;max-width:130px;object-fit:contain;
  filter:grayscale(1);opacity:.55;transition:filter .25s ease,opacity .25s ease}
.marca:hover img{filter:none;opacity:1}
.marcas__fila--marquesina{flex-wrap:nowrap;overflow:hidden;justify-content:flex-start;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marcas__pista{display:flex;gap:2.5rem;width:max-content;align-items:center;
  animation:marcas-desfile 28s linear infinite}
.marcas--marquesina:hover .marcas__pista{animation-play-state:paused}
@keyframes marcas-desfile{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marcas__pista{animation:none}}

/* La foto del producto VUELA de la rejilla a la ficha (view transitions de
   navegacion completa). El nombre vive aqui; la activacion —@view-transition—
   se emite por pagina solo cuando el tema pide movimiento, y el nombre del
   lado de la rejilla lo pone un toque de JS al hacer clic. Donde el navegador
   no lo soporta, no pasa nada: navegacion de siempre. */
.ficha__principal img{view-transition-name:producto-activo}

/* ── Barra de anuncios ───────────────────────────────────────────────────── */
.anuncio{background:var(--sitio-primario);color:var(--sitio-secundario-sobre-primario,var(--sitio-secundario));
  font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:.5rem 1rem;text-align:center;overflow:hidden}
.anuncio__enlace{color:inherit;text-decoration:none;display:block}
.anuncio--marquesina{padding-left:0;padding-right:0}
.anuncio__pista{display:flex;gap:2.5rem;width:max-content;white-space:nowrap;
  animation:anuncio-desfile 22s linear infinite}
.anuncio--marquesina .anuncio__item{flex:none}
.anuncio__item + .anuncio__item::before{content:"•";margin-right:2.5rem;opacity:.6}
@keyframes anuncio-desfile{to{transform:translateX(-50%)}}
.visualmente-oculto{position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap}

/* ── Compra por categoría ────────────────────────────────────────────────── */
.categorias__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.categoria{display:block;text-decoration:none;color:inherit;text-align:center}
.categoria__foto{display:block;aspect-ratio:1/1;overflow:hidden;
  border-radius:var(--sitio-radio-sm);background:#f4f4f5;margin-bottom:.55rem}
.categoria__foto img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.categoria:hover .categoria__foto img{transform:scale(1.05)}
.categoria__nombre{display:block;font-weight:700;text-transform:capitalize;
  letter-spacing:var(--sitio-etiqueta-track)}
.categoria__total{display:block;font-size:.78rem;opacity:max(.75,var(--sitio-suave,0));margin-top:.1rem}
/* Cabecera del catálogo en una fila: título+total | buscador+orden. */
.catalogo__cabecera{display:flex;align-items:center;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;margin-bottom:.9rem}
.catalogo__cabecera h2{margin:0;display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}
.catalogo__cabecera h1{margin:0;display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;font-size:calc(1.5rem * var(--sitio-titulo-escala))}
.catalogo__total{font-family:var(--sitio-fuente);font-size:.82rem;font-weight:500;
  letter-spacing:0;text-transform:none;opacity:max(.55,var(--sitio-suave,0))}
.catalogo__acciones{display:flex;align-items:center;gap:.6rem;flex:1;
  justify-content:flex-end;min-width:230px}
.catalogo__orden select{padding:.55rem .7rem;border:1px solid var(--sitio-borde);
  border-radius:999px;font:inherit;font-size:.85rem;background:transparent;color:inherit;
  cursor:pointer}
.vacio{opacity:max(.7,var(--sitio-suave,0));font-style:italic}

/* ── Formulario ──────────────────────────────────────────────────────────── */
.formulario form{display:grid;gap:.85rem;max-width:480px}
.formulario label{display:grid;gap:.3rem;font-size:.9rem;font-weight:600;
  text-transform:var(--sitio-etiqueta-caja);letter-spacing:var(--sitio-etiqueta-track)}
.formulario input,.formulario textarea{width:100%;padding:.7rem .85rem;
  border:1px solid var(--sitio-borde);border-radius:var(--sitio-radio-sm);font:inherit;
  font-weight:400;text-transform:none;letter-spacing:normal}
.formulario input:focus,.formulario textarea:focus{outline:2px solid var(--sitio-primario);
  outline-offset:1px}
.formulario .error{color:#b42318;font-size:.9rem}
.formulario .formulario__autoriza{display:flex;gap:.55rem;align-items:flex-start;font-size:.85rem;
  font-weight:400;text-transform:none;letter-spacing:normal}
.formulario .formulario__autoriza input{width:auto;margin:.2rem 0 0;flex:none}
.formulario__ok{padding:1rem;border-radius:var(--sitio-radio);background:rgba(37,211,102,.12)}

.faq details{border-bottom:1px solid var(--sitio-borde);padding:.85rem 0}
.faq summary{cursor:pointer;font-weight:600}
/* ── Sección libre y sus elementos ───────────────────────────────────────── */
/* Rejilla de seis columnas: es lo que permite media sección, un tercio o dos
   tercios sin inventar medidas. En celular cada celda ocupa el ancho entero. */
.seccion__contenido{display:grid;grid-template-columns:1fr;gap:1rem;align-items:start}
.celda{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.celda>*{max-width:100%}
.celda--centro{align-items:center;text-align:center}
.celda--derecha{align-items:flex-end;text-align:right}
@media (min-width:700px){
  .seccion__contenido{grid-template-columns:repeat(6,1fr)}
  .celda{grid-column:span 6}
  .celda--dosTercios{grid-column:span 4}
  .celda--mitad{grid-column:span 3}
  .celda--tercio{grid-column:span 2}
  /* Colocación libre: la sección deja de ser rejilla y pasa a ser el marco de
     referencia; cada celda va donde la soltaron. El alto y las coordenadas los
     escribe cssDeSecciones por sección. Debajo de 700px nada de esto aplica
     y los elementos vuelven a apilarse en su orden de lista. */
  .seccion__contenido--lienzo{display:block;position:relative}
  .seccion__contenido--lienzo>.celda{position:absolute;margin:0}
}
.el-titulo{margin:0}
.el-titulo--grande{font-size:calc(1.6rem * var(--sitio-titulo-escala,1))}
.el-titulo--mediano{font-size:calc(1.2rem * var(--sitio-titulo-escala,1))}
.el-titulo--pequeno{font-size:1rem;text-transform:var(--sitio-etiqueta-caja,none);
  letter-spacing:var(--sitio-etiqueta-track,0)}
.el-texto p{margin:0 0 .7rem;line-height:1.6}
.el-texto p:last-child{margin-bottom:0}
.el-texto ul{margin:0 0 .7rem;padding-left:1.2rem;line-height:1.6}
.el-texto a{color:var(--sitio-acento,var(--sitio-primario));text-decoration:underline}
.el-imagen{width:100%;height:auto;border-radius:var(--sitio-radio);display:block}
.el-espacio{width:100%}
.el-espacio--pequeno{height:1rem}
.el-espacio--medio{height:2.25rem}
.el-espacio--grande{height:4rem}

/* ── Tarjetas ────────────────────────────────────────────────────────────── */
.tarjetas{display:grid;gap:1rem;width:100%;grid-template-columns:1fr}
@media (min-width:700px){
  .tarjetas--2{grid-template-columns:repeat(2,1fr)}
  .tarjetas--3{grid-template-columns:repeat(3,1fr)}
  .tarjetas--4{grid-template-columns:repeat(4,1fr)}
}
.tarjeta{position:relative;display:flex;flex-direction:column;gap:.5rem;padding:1.35rem;
  border:1px solid var(--sitio-borde);border-radius:var(--sitio-radio);
  box-shadow:var(--sitio-sombra,none);background:#fff;text-align:left}
/* El título de una tarjeta es una etiqueta, no un titular de portada: hereda
   la fuente del tema pero no su peso fino, o en los presets editoriales
   (titulares de 300) queda tan tenue que no se lee. */
.tarjeta h3{font-size:1.05rem;margin:0;font-weight:600;letter-spacing:0}
.tarjeta p{margin:0;line-height:1.55}
.tarjeta ul{margin:0;padding-left:1.1rem;line-height:1.6;font-size:.92rem}
.tarjeta .boton{margin-top:auto;align-self:flex-start}
.tarjeta__foto{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--sitio-radio-sm);
  margin-bottom:.25rem}
.tarjeta__icono{color:var(--sitio-primario)}
.tarjeta__precio{font-size:1.6rem;font-weight:700;color:var(--sitio-primario)}
.tarjeta__incluye{opacity:.85}
.tarjeta__etiqueta{position:absolute;top:.9rem;right:.9rem;padding:.2rem .6rem;border-radius:999px;
  background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff);font-size:.7rem;font-weight:700;letter-spacing:.02em}
.tarjeta--icono{align-items:flex-start}
/* Foto de fondo: la imagen llena la tarjeta, el velo garantiza la lectura y el
   contenido queda por encima. Todo con capas, sin un solo style en línea. */
.tarjeta--fondo{min-height:15rem;justify-content:flex-end;overflow:hidden;
  border:none;color:#fff}
.tarjeta--fondo h3,.tarjeta--fondo p{color:#fff}
.tarjeta--fondo .tarjeta__icono{color:#fff;position:relative;z-index:1}
.tarjeta__fondo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.tarjeta__velo-fondo{position:absolute;inset:0;z-index:0;
  background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(0,0,0,.72) 100%)}
.tarjeta--fondo>h3,.tarjeta--fondo>div,.tarjeta--fondo>.boton,
.tarjeta--fondo>.tarjeta__etiqueta{position:relative;z-index:1}

/* ── Columnas, imagen suelta, botones y separador ────────────────────────── */
.columnas__grid{display:grid;gap:1.5rem;grid-template-columns:1fr}
@media (min-width:700px){
  .columnas__grid--2{grid-template-columns:repeat(2,1fr)}
  .columnas__grid--3{grid-template-columns:repeat(3,1fr)}
}
.columna h3{font-size:calc(1.15rem * var(--sitio-titulo-escala,1));margin:.6rem 0 .4rem}
.columna p{margin:0 0 .5rem;line-height:1.55}
.columna ul{margin:0 0 .5rem;padding-left:1.1rem}
.columna__foto{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--sitio-radio)}

.imagen__foto{width:100%;height:auto;display:block;border-radius:var(--sitio-radio)}
.imagen--completo{max-width:100%;padding-left:0;padding-right:0}
.imagen--completo .imagen__foto{border-radius:0}

.botones__fila{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:inherit}
.boton--borde{background:transparent;color:var(--sitio-acento,var(--sitio-primario))}
.boton--borde:hover{background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff)}

.separador{padding-top:0;padding-bottom:0}
.separador--pequeno{height:1.5rem}
.separador--medio{height:3rem}
.separador--grande{height:5.5rem}
.separador__linea{border:0;border-top:1px solid var(--sitio-borde);margin:0;position:relative;top:50%}

/* ── Texto con formato ───────────────────────────────────────────────────── */
.texto p{margin:0 0 .8rem;line-height:1.6}
.texto p:last-child{margin-bottom:0}
.texto ul{margin:0 0 .8rem;padding-left:1.2rem;line-height:1.6}
.texto a,.columna a{color:var(--sitio-acento,var(--sitio-primario));text-decoration:underline}

/* ── Catálogo navegable ──────────────────────────────────────────────────── */
.catalogo__buscar{flex:1;max-width:340px;padding:.55rem .95rem;margin-bottom:0;
  border:1px solid var(--sitio-borde);border-radius:999px;font:inherit;font-size:.88rem;
  background:transparent;color:inherit}
.catalogo__buscar:focus{outline:2px solid var(--sitio-primario);outline-offset:1px}
/* En celular la fila de acciones (buscador, orden y «Filtrar») no cabe en 360-390 px y el buscador quedaba
   fuera de la pantalla, a la izquierda: se parte en dos filas con el buscador completo arriba. */
@media (max-width:600px){.catalogo__acciones{flex-wrap:wrap}
  .catalogo__buscar{flex:1 1 100%;max-width:none;min-width:0}}
/* Autocompletar (TX-34 D5): lista bajo el buscador; cada opción mide 44 px o más. */
.kq-auto{position:absolute;z-index:30;margin:0;padding:.35rem;list-style:none;max-height:min(420px,70vh);overflow:auto;
  background:var(--sitio-fondo,#fff);color:var(--sitio-texto,#222);border:1px solid var(--sitio-borde,#ddd);
  border-radius:14px;box-shadow:0 12px 28px -12px rgba(0,0,0,.35);text-align:left}
.kq-auto[hidden]{display:none}
.kq-auto__item{display:flex;align-items:center;gap:.7rem;min-height:44px;padding:.35rem .6rem;border-radius:10px;
  cursor:pointer;font-size:max(14px,.875rem);line-height:1.3}
.kq-auto__item--activa,.kq-auto__item:hover{background:rgba(127,127,127,.16)}
.kq-auto__foto{flex:none;width:40px;height:40px;border-radius:8px;object-fit:cover;background:rgba(127,127,127,.15)}
.kq-auto__texto{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kq-auto__tipo{flex:none;font-size:max(12px,.75rem);opacity:.7}
.kq-auto__estado{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Las categorías en UNA línea que se desliza de lado, no una sopa de tres
   filas de píldoras: 24 categorías apiladas eran medio bloque de puro chip. */
.catalogo__chips{display:flex;flex-wrap:nowrap;gap:.4rem;margin-bottom:1.5rem;
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  padding-bottom:.25rem;
  -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent);
  mask-image:linear-gradient(90deg,#000 92%,transparent)}
.catalogo__chips::-webkit-scrollbar{display:none}
.chip{flex:none;padding:.35rem .8rem;border:1px solid var(--sitio-borde);border-radius:999px;
  background:transparent;color:inherit;font:inherit;font-size:.82rem;cursor:pointer;
  text-transform:capitalize}
.chip:hover{border-color:var(--sitio-primario)}
.chip.is-active{background:var(--sitio-primario);border-color:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff)}
.catalogo[aria-busy="true"] .catalogo__grid{opacity:.5}
.catalogo__grid{transition:opacity .15s ease}
.catalogo__vacio{opacity:max(.7,var(--sitio-suave,0));font-style:italic}
.catalogo__sugerencias{margin:.75rem 0 0;display:grid;gap:.5rem}
.catalogo__sug-texto{margin:0;font-size:max(14px,.875rem)}
.catalogo__sug-lista{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}
.catalogo__sug-enlace{display:inline-flex;align-items:center;min-height:44px;padding:0 .25rem;color:var(--sitio-primario);text-decoration:underline}
.catalogo__sug-lista .catalogo__sug-enlace{padding:0 .9rem;border:1px solid var(--sitio-borde);border-radius:999px;text-decoration:none;color:inherit}
.catalogo__flecha{width:40px;height:40px;border-radius:999px;border:1px solid var(--sitio-borde);
  background:transparent;color:inherit;font-size:1.05rem;cursor:pointer;
  transition:border-color .2s ease,background .2s ease}
.catalogo__flecha:hover:not(:disabled){border-color:var(--sitio-primario);color:var(--sitio-primario)}
.catalogo__flecha:disabled{opacity:.35;cursor:default}
.catalogo__paginas{display:flex;align-items:center;justify-content:center;gap:1rem;
  flex-wrap:wrap;margin-top:1.5rem}
.catalogo__cuenta{font-size:.88rem;opacity:.8}
.catalogo__paginas .boton:disabled{opacity:.45;cursor:default;transform:none}

/* ── Panel lateral de filtros ────────────────────────────────────────────── */
/* En escritorio los filtros viven en una columna fija a la izquierda, como una
   tienda grande. En movil la misma columna se vuelve una hoja deslizante que
   abre el boton "Filtrar" de la cabecera. */
/* ── Banda "Explorar la tienda" ──────────────────────────────────────────────
   Reemplaza al catálogo completo en el inicio cuando vive en su propia página.
   Es una invitación, no una rejilla: aire, un titular y un botón. */
.explorar{text-align:center}
.explorar__caja{max-width:640px;margin:0 auto;display:flex;flex-direction:column;
  align-items:center;gap:.75rem}
.explorar h2{margin:0}
.explorar p{margin:0;opacity:max(.7,var(--sitio-suave,0))}
.explorar .boton{margin-top:.5rem}

img.sin-foto{visibility:hidden}
/* Ticket 1257: una foto con otra forma que su marco (muy ancha o muy alta) se
   muestra entera sobre el fondo neutro en vez de recortarse. La marca la pone
   el script de la página al cargar la foto. */
img.kq-encajada{object-fit:contain!important}
/* Categoría sin foto: su inicial sobre un tinte de la marca, no un cuadro vacío. */
.categoria__inicial{display:grid;place-items:center;width:100%;height:100%;font-family:var(--sitio-fuente-titulo);
  font-size:clamp(2.2rem,5vw,3.4rem);font-weight:600;line-height:1;color:var(--sitio-primario);
  background:color-mix(in srgb,var(--sitio-primario) 9%,var(--sitio-secundario))}
/* Pocos productos en una vitrina ancha: la fila va centrada con tarjetas de
   tamaño normal, no pegada a la izquierda con columnas vacías al lado.
   Revisión 2026-10-18: auto-fit (auto-fill dejaba las columnas vacías y
   corría 1 a 3 tarjetas a la izquierda) y no aplica si el comercio eligió
   «Columnas en computador». Espejo en sitio-render (productos__grid--pocos). */
@media (min-width:768px){
  html:not([data-kq-ajustes~="cols"]) .productos__grid:not(.productos__grid--fila):not(.catalogo__grid):not(:has(> :nth-child(5))){
    grid-template-columns:repeat(auto-fit,minmax(240px,300px));justify-content:center}
}
/* ── Ritmo visual ────────────────────────────────────────────────────────
   Una página donde todo flota sobre el mismo fondo se lee como una lista.
   Las bandas tintadas (un 4-6% del color de marca sobre el fondo, sin
   degradados) marcan dónde empieza y termina cada momento. */
.hero--mosaico{background:color-mix(in srgb,var(--sitio-primario) 4%,var(--sitio-secundario))}
.hero--mosaico .hero__contenido p{font-size:1.1rem;max-width:34ch;opacity:.85}
.hero__foto{border-radius:var(--sitio-radio-sm)}
/* Tarjetas de ícono (la barra de confianza): sin caja, ícono en círculo. */
.tarjeta--icono{border:0;background:transparent;box-shadow:none;padding:.75rem .5rem;
  text-align:center;align-items:center}
.tarjeta--icono .tarjeta__icono{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;
  background:color-mix(in srgb,var(--sitio-primario) 8%,#fff);margin-bottom:.35rem}
.tarjeta--icono h3{margin:0}
.tarjeta--icono p{opacity:.75}
/* Categorías: el nombre va sobre la foto, en una banda plana. */
.categoria{position:relative;overflow:hidden;border-radius:var(--sitio-radio-sm);text-align:left}
.categoria__pie{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:baseline;
  justify-content:space-between;gap:.5rem;padding:.6rem .8rem;background:rgba(17,17,17,.78);color:#fff}
.categoria__nombre{margin:0;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
  font-weight:600;color:#fff}
.categoria__total{margin:0;font-size:.72rem;opacity:max(.7,var(--sitio-suave,0));color:#fff;white-space:nowrap}
.categoria:hover .categoria__foto img{transform:scale(1.05)}
/* Editorial (imagen con texto): un panel tintado en vez de dos bloques sueltos. */
.promo{background:color-mix(in srgb,var(--sitio-primario) 5%,var(--sitio-secundario));
  border-radius:var(--sitio-radio);padding:calc(var(--sitio-aire) * .9) 2rem}
.promo__foto{box-shadow:0 18px 44px -24px rgba(0,0,0,.35)}
/* Banda "Todos los regalos": peso y aire, no texto en el vacío. */
.explorar{background:color-mix(in srgb,var(--sitio-primario) 6%,var(--sitio-secundario));
  padding:calc(var(--sitio-aire) * 1.2) 1.25rem}
.explorar h2{font-size:calc(2.1rem * var(--sitio-titulo-escala));margin:0}
.explorar p{letter-spacing:.06em;text-transform:uppercase;font-size:.8rem;opacity:max(.65,var(--sitio-suave,0))}
/* Títulos de sección con más presencia. */
.productos > h2,.categorias > h2,.galeria > h2{font-size:calc(1.85rem * var(--sitio-titulo-escala));margin-bottom:1.35rem}
/* Pie con marca, columnas y legal. */
.pie{text-align:left;padding-top:calc(var(--sitio-aire) * 1.1)}
.sello-katuq{text-align:center;padding:.7rem 1rem 1.1rem;font-size:.78rem;background:var(--sitio-fondo,#fff)}
.sello-katuq a{color:inherit;opacity:max(.7,var(--sitio-suave,0));text-decoration:none}
.sello-katuq a:hover{opacity:1}
.pie__grid{display:grid;gap:2rem;grid-template-columns:1fr}
.pie__logo{height:44px;width:auto;max-width:200px;object-fit:contain}
.pie__nombre{font-family:var(--sitio-fuente-titulo);font-size:1.4rem}
.pie__col{display:flex;flex-direction:column;gap:.45rem}
.pie__col h3{margin:0 0 .35rem;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;opacity:max(.75,var(--sitio-suave,0));font-weight:600}
.pie__col a{color:inherit;text-decoration:none;opacity:.85}
.pie__col a:hover{opacity:1;text-decoration:underline}
/* Las categorías vienen normalizadas en minúscula del índice: inicial mayúscula. */
.pie__cat{text-transform:capitalize}
.pie__legal{margin:2.25rem 0 0;padding-top:1.1rem;border-top:1px solid var(--sitio-borde);font-size:.8rem;opacity:max(.6,var(--sitio-suave,0))}
.pie__vendedor{margin:1.25rem 0 0;font-size:.78rem;opacity:max(.6,var(--sitio-suave,0));color:inherit}
.whatsapp__horario{margin:.6rem 0 0;font-size:.82rem;opacity:max(.7,var(--sitio-suave,0));color:inherit}
.pie--conversion{text-align:center}
.pie__conversion{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.1rem;font-size:.82rem}
/* Con las páginas propias el pie puede llegar a cinco columnas: se reparten
   solas en vez de fijarse, o una tienda sin horarios dejaba un hueco. */
@media (min-width:760px){.pie__grid{grid-template-columns:1.4fr repeat(auto-fit,minmax(140px,1fr))}}
.pie__col span{opacity:.85}
/* ── Configuración del pedido en la ficha ──────────────────────────────── */
.ficha__config{display:grid;gap:.7rem;margin:1.25rem 0 1.5rem}
/* Revisión 2026-10-18: pasos y campos son blancos fijos; su texto es el que se lee sobre blanco. */
.ficha__paso{border:1px solid var(--sitio-borde);border-radius:var(--sitio-radio-sm);background:#fff;color:var(--sitio-texto-sobre-blanco)}
.ficha__paso > summary{display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.85rem 1rem;cursor:pointer;list-style:none}
.ficha__paso > summary::-webkit-details-marker{display:none}
.ficha__paso-t{font-weight:600;font-size:.95rem}
.ficha__paso > summary small{opacity:max(.6,var(--sitio-suave,0));font-size:.78rem;margin-left:auto}
.ficha__paso > summary::after{content:"+";font-size:1.15rem;opacity:.55;line-height:1}
.ficha__paso[open] > summary::after{content:"–"}
.ficha__paso[open] > summary{border-bottom:1px solid var(--sitio-borde)}
.ficha__paso-c{display:grid;gap:.85rem;padding:.9rem 1rem 1rem}
/* Filas: etiqueta a la izquierda, control a la derecha. Nada de mayúsculas
   espaciadas en títulos largos: se leen como gritos. */
.ficha__familia{display:grid;gap:.45rem}
.ficha__fila{display:grid;grid-template-columns:2.2rem minmax(0,1fr);align-items:center;gap:.6rem}
.ficha__fila--sola{grid-template-columns:1fr;gap:.35rem}
.ficha__fila-t{font-size:.9rem;font-weight:600;opacity:.9}
.ficha__fila-n{font-size:.78rem;opacity:max(.55,var(--sitio-suave,0));font-variant-numeric:tabular-nums}
.ficha__fila-t small{font-weight:400;opacity:max(.55,var(--sitio-suave,0));font-size:.8rem}
.ficha__uno-a-uno summary{cursor:pointer;font-size:.82rem;font-weight:600;opacity:max(.65,var(--sitio-suave,0));list-style:none;padding:.15rem 0}
.ficha__uno-a-uno summary::-webkit-details-marker{display:none}
.ficha__uno-a-uno summary::before{content:"▸ ";font-size:.7rem}
.ficha__uno-a-uno[open] summary::before{content:"▾ "}
.ficha__unidades{display:grid;gap:.4rem;margin-top:.5rem}
@media (min-width:600px){.ficha__unidades{grid-template-columns:1fr 1fr;column-gap:.9rem}}
/* En el celular "Agregar al carrito" cabe en una línea: menos aire entre letras, no dos renglones. */
@media (max-width:600px){.ficha__agregar{letter-spacing:.06em;font-size:.82rem;padding:.9rem .75rem;white-space:nowrap;min-width:0}}
/* Barra fija de la ficha en móvil: precio y "Agregar" cuando el botón original ya salió de pantalla. */
.ficha__barra{position:fixed;left:0;right:0;bottom:0;z-index:62;display:none;align-items:center;gap:.75rem;
  padding:.65rem 1rem calc(.65rem + env(safe-area-inset-bottom));background:#fff;color:#211f3a;
  box-shadow:0 -8px 24px -12px rgba(0,0,0,.35);transform:translateY(110%);transition:transform .25s ease}
.ficha__barra.is-visible{transform:none}
.ficha__barra__precio{flex:1;min-width:0;font-weight:800;font-size:1.05rem}
.ficha__barra .ficha__agregar{flex:none;min-width:0;padding:.8rem 1.25rem}
body.kq-panel-abierto .ficha__barra{transform:translateY(110%)}
@media (max-width:640px){.ficha__barra{display:flex}body.kq-con-barra-ficha .kq-fab,body.kq-con-barra-ficha .kq-wa{bottom:calc(76px + env(safe-area-inset-bottom))}}
@media (prefers-reduced-motion:reduce){.ficha__barra{transition:none}}
/* Esqueletos del catálogo al filtrar o paginar. */
.producto--esqueleto{pointer-events:none}
.producto--esqueleto .producto__foto{background:linear-gradient(90deg,#eeedf2 25%,#f7f6fa 50%,#eeedf2 75%);background-size:200% 100%;animation:kq-brillo 1.1s linear infinite}
.producto--esqueleto .esq{display:block;height:.85rem;border-radius:6px;background:#eeedf2;margin-top:.5rem}
.producto--esqueleto .esq--corta{width:45%}
@keyframes kq-brillo{to{background-position:-200% 0}}
.catalogo__grid.is-nueva{animation:kq-aparece .15s ease}
@keyframes kq-aparece{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.producto--esqueleto .producto__foto,.catalogo__grid.is-nueva{animation:none}}
/* La barra de anuncios se esconde al bajar y vuelve al subir. */
.anuncio{transition:max-height .2s ease,padding .2s ease;max-height:4rem}
.anuncio.is-oculto{max-height:0;padding-top:0;padding-bottom:0}
@media (prefers-reduced-motion:reduce){.anuncio{transition:none}}
.ficha__fila .ficha__opciones{gap:.35rem}
.ficha__fila .ficha__opcion{padding:.4rem .7rem;font-size:.85rem}
.ficha__fila input,.ficha__fila select,.ficha__fila textarea,.ficha__tarjeta-campos input,
.ficha__tarjeta-campos textarea{width:100%;padding:.55rem .7rem;border:1px solid var(--sitio-borde);
  border-radius:var(--sitio-radio-sm);background:#fff;color:var(--sitio-texto-sobre-blanco);font:inherit;font-size:.9rem}
.ficha__fila textarea,.ficha__tarjeta-campos textarea{resize:vertical}
.ficha__opcion small{opacity:max(.7,var(--sitio-suave,0));font-weight:400;margin-left:.15rem}
/* Adiciones en cuadrícula compacta. */
.ficha__adiciones{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.5rem}
.ficha__adicion{display:grid;grid-template-columns:auto 40px 1fr;grid-template-rows:auto auto;column-gap:.6rem;
  align-items:center;padding:.5rem .6rem;border:1px solid var(--sitio-borde);border-radius:var(--sitio-radio-sm);
  cursor:pointer;transition:border-color .15s,background .15s}
.ficha__adicion:has(input:checked){border-color:var(--sitio-primario);background:color-mix(in srgb,var(--sitio-primario) 6%,#fff)}
.ficha__adicion input{grid-row:1/3;width:16px;height:16px;accent-color:var(--sitio-primario);margin:0}
.ficha__adicion img,.ficha__adicion-ph{grid-row:1/3;width:40px;height:40px;border-radius:6px;object-fit:cover;background:#f4f4f5}
.ficha__adicion-t{font-size:.82rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ficha__adicion strong{font-size:.8rem;opacity:.8}
.ficha__mas-adiciones{margin-top:.5rem}
.ficha__mas-adiciones summary{cursor:pointer;font-size:.85rem;font-weight:600;opacity:max(.75,var(--sitio-suave,0));list-style:none;padding:.35rem 0}
.ficha__mas-adiciones summary::-webkit-details-marker{display:none}
.ficha__mas-adiciones summary::before{content:"+ "}
.ficha__mas-adiciones[open] summary{display:none}
.ficha__mas-adiciones .ficha__adiciones{margin-top:.5rem}
.ficha__tarjeta-campos{display:grid;gap:.5rem;grid-template-columns:1fr 1fr}
.ficha__tarjeta-campos textarea{grid-column:1/-1}
.catalogo__cuerpo{display:grid;gap:2rem;align-items:start}
@media (min-width:900px){
  .catalogo--panel .catalogo__cuerpo{grid-template-columns:230px minmax(0,1fr)}
}
.catalogo__resultados{min-width:0}
.catalogo__abrir-filtros{display:none;padding:.5rem 1rem;border:1px solid var(--sitio-borde);
  border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.88rem;cursor:pointer}
.catalogo__abrir-filtros:hover{border-color:var(--sitio-primario)}
.filtros__cabecera{display:none;align-items:center;justify-content:space-between;margin-bottom:.75rem}
.filtros__cabecera h3{margin:0;font-size:1.05rem}
.filtros__cerrar{border:0;background:transparent;color:inherit;font-size:1.15rem;cursor:pointer;
  padding:.25rem .5rem}
/* "Busca tu detalle": caja clara sobre banda tintada, campos en fila.
   Revisión 2026-10-18: la caja es blanca fija; su texto, el que se lee sobre blanco. */
.buscador{background:color-mix(in srgb,var(--sitio-primario) 7%,var(--sitio-secundario))}
.buscador__caja{max-width:980px;margin:0 auto;background:#fff;border:1px solid var(--sitio-borde);
  border-radius:var(--sitio-radio);padding:1.4rem 1.5rem;box-shadow:var(--sitio-sombra);color:var(--sitio-texto-sobre-blanco)}
.buscador__caja h2{margin:0 0 1rem;font-size:calc(1.5rem * var(--sitio-titulo-escala))}
.buscador__campos{display:grid;gap:.75rem;grid-template-columns:1fr}
.buscador__campos label{display:grid;gap:.3rem}
.buscador__campos span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;opacity:.8;font-weight:600}
.buscador__campos select,.buscador__campos input{width:100%;padding:.65rem .8rem;border:1px solid var(--sitio-borde);
  border-radius:var(--sitio-radio-sm);background:#fff;color:inherit;font:inherit;font-size:.95rem}
.buscador__caja .boton{margin-top:1rem}
@media (min-width:700px){.buscador__campos{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
/* Burbuja de WhatsApp fija: abajo a la izquierda (a la derecha vive el carrito). */
.kq-wa{position:fixed;left:18px;bottom:18px;z-index:60;width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:#25d366;color:#fff;
  box-shadow:0 10px 24px -8px rgba(0,0,0,.45);transition:transform .15s}
.kq-wa:hover{transform:scale(1.06)}
/* Pie: horarios en dos columnas y franja de medios de pago. */
.pie__horario{display:flex;justify-content:space-between;gap:.75rem;font-size:.86rem}
.pie__horario b{font-weight:600;opacity:.85}.pie__horario i{font-style:normal;opacity:max(.7,var(--sitio-suave,0));white-space:nowrap}
.pie__pagos{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:2rem;padding-top:1.1rem;
  border-top:1px solid var(--sitio-borde)}
.pie__pagos-t{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:max(.55,var(--sitio-suave,0));font-weight:600;margin-right:.4rem}
.pie__pago{font-size:.78rem;padding:.3rem .65rem;border:1px solid var(--sitio-borde);border-radius:999px;opacity:.85}
/* ── Estilo "Tienda de regalos": la estructura visual de las tiendas clásicas
   (almara.com.co): logo grande, barra oscura de categorías, títulos en
   franja, baldosas con banda de color, tarjetas de producto y pie oscuro. ── */
html[data-estilo="tienda"] .cabecera{padding-top:1.1rem;padding-bottom:0;border-bottom:0;row-gap:.7rem}
html[data-estilo="tienda"] .cabecera__logo{height:64px;max-width:240px}
html[data-estilo="tienda"] .cabecera__nombre{font-size:1.5rem;letter-spacing:.06em;text-transform:uppercase}
html[data-estilo="tienda"] .cabecera__buscar{border-radius:999px}
html[data-estilo="tienda"] .cabecera__cats{margin:0 -1.25rem;width:calc(100% + 2.5rem);padding:.8rem 1.25rem;
  border-top:0;justify-content:center;gap:2rem;background:var(--sitio-primario);color:var(--sitio-secundario-sobre-primario,var(--sitio-secundario))}
html[data-estilo="tienda"] .cabecera__cats a{opacity:.95;font-family:var(--sitio-fuente-titulo);font-weight:500;
  font-size:.86rem;letter-spacing:.14em}
html[data-estilo="tienda"] .cabecera__cats a:hover{color:inherit;opacity:.7}
html[data-estilo="tienda"] .productos > h2,html[data-estilo="tienda"] .categorias > h2,
html[data-estilo="tienda"] .galeria > h2,html[data-estilo="tienda"] .resenas > h2,
html[data-estilo="tienda"] .faq > h2{margin:0 -1.25rem 1.6rem;padding:.75rem 1.5rem;
  background:color-mix(in srgb,var(--sitio-primario) 82%,#000);color:var(--sitio-secundario);
  font-family:var(--sitio-fuente-titulo);font-weight:500;font-size:1.1rem;letter-spacing:.16em;
  text-transform:uppercase;border-radius:0}
html[data-estilo="tienda"] .categoria{border-radius:6px;box-shadow:0 8px 20px -14px rgba(0,0,0,.35);background:#fff}
html[data-estilo="tienda"] .categoria__foto{display:block;aspect-ratio:1/1;overflow:hidden;background:#fff}
html[data-estilo="tienda"] .categoria__pie{position:static;justify-content:center;padding:.55rem .8rem;background:var(--kq-banda,#c96a5b)}
html[data-estilo="tienda"] .categoria__nombre{font-family:var(--sitio-fuente-titulo);font-size:1rem;letter-spacing:.06em;text-transform:none;font-weight:500}
html[data-estilo="tienda"] .categoria__total{display:none}
html[data-estilo="tienda"] .categoria:nth-child(6n+1){--kq-banda:#c96a5b}
html[data-estilo="tienda"] .categoria:nth-child(6n+2){--kq-banda:#c99a3b}
html[data-estilo="tienda"] .categoria:nth-child(6n+3){--kq-banda:#6f8f7a}
html[data-estilo="tienda"] .categoria:nth-child(6n+4){--kq-banda:#b5657c}
html[data-estilo="tienda"] .categoria:nth-child(6n+5){--kq-banda:#7d5a7e}
html[data-estilo="tienda"] .categoria:nth-child(6n+6){--kq-banda:#4f8a8b}
html[data-estilo="tienda"] .producto{background:#fff;border:1px solid var(--sitio-borde);border-radius:8px;
  padding:.7rem .7rem .9rem;text-align:center;box-shadow:0 8px 18px -14px rgba(0,0,0,.25)}
html[data-estilo="tienda"] .producto__foto{border-radius:6px;background:#fff}
html[data-estilo="tienda"] .producto__precio{justify-content:center;font-family:var(--sitio-fuente-titulo);font-weight:500;font-size:1.05rem}
html[data-estilo="tienda"] .boton,html[data-estilo="tienda"] .kq-agregar{border-radius:999px}
html[data-estilo="tienda"] .kq-agregar{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
html[data-estilo="tienda"] .buscador{padding-top:0;margin-top:-3.25rem;position:relative;z-index:3;background:transparent}
html[data-estilo="tienda"] .buscador__caja{border-radius:14px;box-shadow:0 18px 40px -22px rgba(0,0,0,.45)}
html[data-estilo="tienda"] .buscador__caja h2{letter-spacing:.06em;font-weight:500}
html[data-estilo="tienda"] .explorar{background:color-mix(in srgb,var(--sitio-primario) 12%,var(--sitio-secundario))}
html[data-estilo="tienda"] .promo{background:#fff;box-shadow:0 12px 30px -20px rgba(0,0,0,.35)}
html[data-estilo="tienda"] .pie{background:color-mix(in srgb,var(--sitio-primario) 90%,#000);color:var(--sitio-secundario);border-top:0;padding-bottom:2rem}
html[data-estilo="tienda"] .pie__col h3,html[data-estilo="tienda"] .pie__pagos-t{opacity:.8}
html[data-estilo="tienda"] .pie__legal,html[data-estilo="tienda"] .pie__pagos{border-color:rgba(255,255,255,.15)}
html[data-estilo="tienda"] .pie__pago{border-color:rgba(255,255,255,.3)}
html[data-estilo="tienda"] .sello{background:color-mix(in srgb,var(--sitio-primario) 90%,#000);color:var(--sitio-secundario)}
html[data-estilo="tienda"] .sello a{color:inherit}
html[data-estilo="tienda"] .categorias__grid{align-items:start}
html[data-estilo="tienda"] .categoria__pie{min-height:3.1rem;align-items:center}
html[data-estilo="tienda"] .categoria__nombre{text-transform:capitalize;text-align:center}
/* El logo suele ser oscuro: sobre el pie oscuro va en una placa clara. */
html[data-estilo="tienda"] .pie__logo{background:var(--sitio-secundario);padding:.6rem 1rem;border-radius:8px;box-sizing:content-box}
@media (max-width:600px){html[data-estilo="tienda"] .cabecera__cats{justify-content:flex-start;gap:1.4rem}}
.filtros__grupo{margin-bottom:1.6rem}
.filtros__titulo{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;opacity:max(.55,var(--sitio-suave,0));
  margin:0 0 .6rem;font-weight:700}
/* La lista de categorias es vertical y sin pildora: renglones que se leen,
   con el conteo alineado a la derecha. */
.catalogo__filtros .filtros__cats{display:flex;flex-direction:column;gap:.1rem;max-height:340px;
  overflow-y:auto}
.catalogo__filtros .chip{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  width:100%;border:0;border-radius:8px;padding:.42rem .6rem;font-size:.9rem;text-align:left}
.catalogo__filtros .chip:hover{background:color-mix(in srgb,var(--sitio-primario) 8%,transparent);
  border-color:transparent}
.catalogo__filtros .chip.is-active{background:color-mix(in srgb,var(--sitio-primario) 13%,transparent);
  color:var(--sitio-primario);font-weight:600}
.filtros__conteo{font-size:.75rem;opacity:.55;font-weight:400}
.catalogo__filtros .chip.is-active .filtros__conteo{opacity:.8}
.filtros__precio{display:flex;align-items:center;gap:.45rem}
.filtros__precio input{width:100%;min-width:0;padding:.45rem .6rem;border:1px solid var(--sitio-borde);
  border-radius:8px;font:inherit;font-size:.85rem;background:transparent;color:inherit;
  -moz-appearance:textfield;appearance:textfield}
.filtros__precio input::-webkit-outer-spin-button,.filtros__precio input::-webkit-inner-spin-button{
  -webkit-appearance:none;margin:0}
.filtros__precio input:focus{outline:2px solid var(--sitio-primario);outline-offset:1px}
.filtros__aplicar{margin-top:.55rem;width:100%;padding:.45rem .8rem;border:1px solid var(--sitio-borde);
  border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:.85rem;cursor:pointer}
.filtros__aplicar:hover{border-color:var(--sitio-primario);color:var(--sitio-primario)}
.filtros__oferta{display:flex;align-items:center;gap:.5rem;margin-top:.8rem;font-size:.9rem;
  cursor:pointer}
.filtros__oferta input{accent-color:var(--sitio-primario);width:1rem;height:1rem;margin:0}
@media (max-width:899px){
  .catalogo__abrir-filtros{display:inline-block}
  .catalogo__filtros{position:fixed;inset:0 auto 0 0;width:min(320px,85vw);z-index:70;
    background:var(--sitio-secundario,#fff);padding:1.25rem;overflow-y:auto;
    transform:translateX(-105%);transition:transform .25s ease;box-shadow:0 0 40px rgba(0,0,0,.18)}
  .catalogo__filtros.is-abierto{transform:none}
  .filtros__cabecera{display:flex}
}
.kq-sin-scroll{overflow:hidden}
.filtros__fondo{position:fixed;inset:0;z-index:69;background:rgba(0,0,0,.45)}
@media (min-width:900px){.filtros__fondo{display:none}}
/* TX-34 D13: aviso del catalogo cuando la carga falla. Deja los productos de antes y ofrece repetir la peticion. */
.catalogo__error{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;
  margin:0 0 1rem;padding:.75rem 1rem;border:1px solid #b42318;border-radius:var(--sitio-radio-sm);
  background:#fff;color:#7a1a12;font-size:.95rem}
.catalogo__error-t{flex:1;min-width:12rem}
.catalogo__reintentar{min-height:44px;padding:.5rem 1.2rem;border:1px solid #b42318;border-radius:999px;
  background:#b42318;color:#fff;font:inherit;font-size:.95rem;font-weight:700;cursor:pointer}

/* ── Video ───────────────────────────────────────────────────────────────── */
.video__marco{position:relative;width:100%;padding-top:56.25%;border-radius:var(--sitio-radio);
  overflow:hidden;background:#000}
.video__marco iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ── Reseñas ─────────────────────────────────────────────────────────────── */
.resenas__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.resena{margin:0;padding:1.25rem;border:1px solid var(--sitio-borde);border-radius:var(--sitio-radio)}
.resena__estrellas{color:var(--sitio-acento,var(--sitio-primario));letter-spacing:.1em;font-size:.95rem;margin-bottom:.6rem}
.resena__apagadas{opacity:.22}
.resena blockquote{margin:0 0 .6rem;font-size:.98rem;line-height:1.5}
.resena figcaption{font-size:.85rem;opacity:.7;font-weight:600}

/* ── Ticket 1236: marcas del catálogo, sucursales y agenda ───────────────── */
a.marca{display:inline-flex}
.marcas__lista{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1.1rem}
.marcas__nombre{padding:.45rem .9rem;border:1px solid var(--sitio-borde);border-radius:999px;
  font-size:.9rem;font-weight:600;text-decoration:none;color:inherit}
.marcas__nombre span{opacity:.6;font-weight:400;margin-left:.25rem}
.marcas__nombre:hover{border-color:var(--sitio-primario)}
.sucursales__descripcion,.agenda__descripcion{opacity:.8;margin:-.4rem 0 1.2rem}
.sucursales__grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.sede{border:1px solid var(--sitio-borde);border-radius:var(--sitio-radio);padding:1.1rem}
.sede h3{margin:0 0 .4rem;font-size:1.05rem}
.sede__direccion{font-weight:600;margin:0 0 .3rem}
.sede__horario{opacity:.75;font-size:.92rem;margin:0 0 .3rem}
.sede__acciones{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.8rem}
.sede__llamar{font-size:.9rem;color:inherit}
.agenda__form{display:grid;gap:.85rem;max-width:560px}
.agenda__fila{display:grid;gap:.85rem;grid-template-columns:1fr 1fr}
@media (max-width:560px){.agenda__fila{grid-template-columns:1fr}}
.agenda__campo{display:grid;gap:.3rem;font-size:.9rem;font-weight:600}
.agenda__campo input,.agenda__campo select,.agenda__campo textarea{width:100%;padding:.7rem .85rem;
  border:1px solid var(--sitio-borde);border-radius:var(--sitio-radio-sm);font:inherit;font-weight:400;
  background:transparent;color:inherit}
.agenda__campo input:focus,.agenda__campo select:focus,.agenda__campo textarea:focus{outline:2px solid var(--sitio-primario);outline-offset:1px}
.agenda__error{color:#b42318;font-size:.9rem;margin:0}
.agenda__listo{padding:1.1rem;border-radius:var(--sitio-radio);background:rgba(37,211,102,.12);display:grid;gap:.8rem;justify-items:start;max-width:560px}
.agenda__confirmacion{margin:0;font-weight:600}
.agenda__form[hidden],.agenda__listo[hidden],.agenda__wa[hidden],.agenda__error[hidden]{display:none}
.ficha__sedes{font-size:.9rem;margin:.4rem 0;opacity:.85}
/* Ticket 1235: cotizar con un asesor. */
.kq-cotiza{position:fixed;inset:0;z-index:2147483000;background:rgba(17,17,17,.5);display:flex;align-items:center;justify-content:center;padding:1rem}
.kq-cotiza[hidden]{display:none}
.kq-cotiza__caja{position:relative;background:#fff;color:#111;width:min(520px,100%);max-height:92vh;overflow:auto;border-radius:16px;padding:1.5rem 1.3rem;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.kq-cotiza__caja h2{margin:0 0 .3rem;font-size:1.25rem}
.kq-cotiza__x{position:absolute;right:.7rem;top:.5rem;border:0;background:none;font-size:1.7rem;line-height:1;cursor:pointer;color:inherit;opacity:.55}
.kq-cotiza__producto{margin:0 0 .9rem;opacity:.75;font-size:.92rem}
.kq-cotiza form{display:grid;gap:.75rem}
.kq-cotiza form[hidden],.kq-cotiza__listo[hidden],.kq-cotiza__error[hidden],#kq-cotiza-wa[hidden],#kq-agendar-wa[hidden]{display:none}
.kq-cotiza label{display:grid;gap:.3rem;font-size:.88rem;font-weight:600}
.kq-cotiza input,.kq-cotiza textarea,.kq-cotiza select{width:100%;padding:.65rem .8rem;border:1px solid rgba(0,0,0,.2);border-radius:9px;font:inherit;font-weight:400}
.kq-cotiza__fila{display:grid;gap:.75rem;grid-template-columns:1fr 1fr}
@media (max-width:520px){.kq-cotiza__fila{grid-template-columns:1fr}}
.kq-cotiza__error{color:#b42318;font-size:.88rem;margin:0}
.kq-cotiza__listo{display:grid;gap:.8rem;justify-items:start}
.kq-cotiza__ok{margin:0;font-weight:600}
.kq-cotizar,.kq-agendar{width:100%}

/* ── Ubicación ───────────────────────────────────────────────────────────── */
.ubicacion__direccion{font-size:1.05rem;font-weight:600;margin-bottom:.35rem}
.ubicacion__referencia,.ubicacion__horario{opacity:.75;font-size:.92rem;margin-bottom:.35rem}
.ubicacion .boton{margin-top:.9rem}

.pie{border-top:1px solid var(--sitio-borde);font-size:.9rem;text-align:center}
.pie nav{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:.75rem}
.pie a{color:inherit}
.sello{padding:1.5rem 1rem;text-align:center;font-size:.8rem;opacity:max(.6,var(--sitio-suave,0))}
#kq-chip-sesion{position:fixed;left:16px;bottom:16px;z-index:60;display:flex;align-items:center;
  gap:.6rem;padding:.5rem .8rem;border-radius:999px;background:#211f3a;color:#fff;
  font-size:.82rem;box-shadow:0 6px 24px rgba(0,0,0,.25)}
#kq-chip-sesion i{font-style:normal;opacity:.75}
#kq-chip-sesion button{border:0;border-radius:999px;padding:.25rem .6rem;background:rgba(255,255,255,.16);
  color:#fff;font:inherit;font-size:.75rem;cursor:pointer}
.sello a{color:inherit}

/* ── Cuenta del comprador ──────────────────────────────────────────────────
   Entrar con el correo y un codigo, y ver sus pedidos. Es lo que convierte la
   tienda en una a la que se vuelve: sin esto, saber donde va un pedido solo se
   puede preguntando por WhatsApp, que es la llamada de soporte mas frecuente
   de cualquier tienda. */
.kq-cuenta{position:fixed;inset:0;z-index:80}
.kq-cuenta[hidden]{display:none}
.kq-cuenta__velo{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.kq-cuenta__caja{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(440px,calc(100% - 2rem));max-height:86vh;overflow:auto;background:#fff;color:#211f3a;
  border-radius:16px;padding:1.6rem 1.4rem;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.kq-cuenta__x{position:absolute;right:.7rem;top:.5rem;border:0;background:none;
  font-size:1.7rem;line-height:1;cursor:pointer;color:inherit;opacity:.5}
.kq-cuenta__x:hover{opacity:1}
.kq-cuenta h2{margin:0 0 .5rem;font-size:1.25rem}
.kq-cuenta__nota{margin:0 0 1rem;font-size:.9rem;line-height:1.55;opacity:.75}
.kq-cuenta input{width:100%;padding:.75rem .85rem;margin-bottom:.7rem;border:1px solid rgba(0,0,0,.2);
  border-radius:9px;font:inherit}
.kq-cuenta__codigo{text-align:center;font-family:ui-monospace,Menlo,monospace;
  font-size:1.5rem;letter-spacing:.3em}
.kq-cuenta .kq-btn{margin-bottom:.5rem}
.kq-cuenta__err{margin:.4rem 0 0;color:#b42318;font-size:.88rem}
.kq-pref{display:flex;gap:.55rem;align-items:flex-start;margin:1rem 0 0;padding-top:.9rem;
  border-top:1px solid rgba(0,0,0,.08);font-size:.85rem;line-height:1.45;cursor:pointer}
.kq-pref[hidden]{display:none}
.kq-pref input{margin:.2rem 0 0;flex:none}
.kq-pedido{padding:.8rem 0;border-bottom:1px solid rgba(0,0,0,.08)}
.kq-pedido:last-child{border-bottom:0}
.kq-pedido__fila{display:flex;justify-content:space-between;gap:.7rem;align-items:center;
  font-size:.92rem;margin-bottom:.25rem}
.kq-pedido__estado{font-size:.76rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;
  background:rgba(0,0,0,.07);text-transform:uppercase;letter-spacing:.04em}
.kq-pedido__item{font-size:.85rem;opacity:.7;line-height:1.5}
.kq-pedido__guia{margin-top:.4rem;font-size:.82rem;opacity:.8}
.kq-pedido__guia a{color:var(--sitio-primario)}
/* Ticket 1244: estado de cuenta, frecuentes y "Volver a pedir". */
.kq-estado{padding:.8rem .9rem;border-radius:11px;background:rgba(0,0,0,.04);margin:0 0 .9rem}
.kq-cuenta__sub{margin:.4rem 0 .5rem;font-size:.95rem}
.kq-frecuente small{opacity:.7}
.kq-cuenta .kq-btn--chico{width:auto;display:inline-block;padding:.45rem .85rem;font-size:.84rem;margin:0}
.kq-pedido__otra{margin-top:.5rem!important}
@media (max-width:640px){
  .kq-cuenta__caja{left:0;right:0;bottom:0;top:auto;transform:none;width:100%;
    max-height:92vh;border-radius:18px 18px 0 0}
}

/* ── Aparición al hacer scroll ───────────────────────────────────────────────
   El estado oculto cuelga de la clase js-anim, que el servidor pone en el
   elemento html solo cuando el sitio pidió animaciones. Si el visitante tiene
   el JS bloqueado, el noscript del head la retira y la página se ve completa:
   nunca se deja contenido invisible dependiendo de que un script llegue a
   correr. (Ojo: nada de acentos graves aquí dentro, esto es una plantilla.) */
.js-anim [data-revelar]{opacity:0;transform:translateY(18px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
/* Variantes por sección: el comerciante elige cómo entra cada una. */
.js-anim [data-revelar="deslizar"]{transform:translateX(-32px)}
.js-anim [data-revelar="zoom"]{transform:scale(.95)}
.js-anim [data-revelar].visible{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .js-anim [data-revelar],.js-anim [data-revelar].visible{opacity:1;transform:none;transition:none}
  .boton:hover,.producto:hover{transform:none}
  .producto:hover .producto__foto img{transform:none}
  .anuncio__pista{animation:none}
}

@media (min-width:768px){
  .bloque{padding:var(--sitio-aire-ancho) 2rem}
  /* Dos secciones seguidas suman el aire de abajo de una y el de arriba de la
     otra. En una landing de cuatro bloques no se nota; en una tienda de nueve
     son pantallas enteras vacías entre la vitrina y las categorías. El de
     arriba se reduce: el corte entre secciones sigue leyéndose. */
  .bloque + .bloque:not(.hero):not(.cabecera):not(.anuncio){
    padding-top:calc(var(--sitio-aire-ancho) * .45)}
  .anuncio{padding-top:.5rem;padding-bottom:.5rem}
  .anuncio--marquesina{padding-left:0;padding-right:0}
  /* El encabezado es una barra, no una sección: sin esto, el padding de bloque
     de escritorio lo inflaba a media pantalla con los presets aireados. */
  .cabecera{padding-top:.8rem;padding-bottom:.55rem}
  .cabecera__cats{justify-content:center}
  .hero{padding:calc(var(--sitio-aire-ancho) * 1.5) 2rem}
  .hero:not(.hero--con-imagen){padding:calc(var(--sitio-aire-ancho) * 0.8) 2rem}
  .hero h1{font-size:calc(3rem * var(--sitio-titulo-escala))}
  .hero p{font-size:1.2rem}
  .bloque h2{font-size:calc(1.9rem * var(--sitio-titulo-escala))}
  .catalogo__cabecera h1{font-size:calc(1.9rem * var(--sitio-titulo-escala))}
  .categorias__grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
}
.kq-fab{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;align-items:center;
  gap:.5rem;padding:.8rem 1.1rem;border:0;border-radius:999px;background:var(--sitio-primario);
  color:var(--sitio-sobre-primario,#fff);font:inherit;font-weight:700;cursor:pointer;box-shadow:0 6px 24px rgba(0,0,0,.25)}
.kq-fab[hidden]{display:none}
.kq-fab__n{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;
  padding:0 6px;border-radius:999px;background:#fff;color:var(--sitio-primario);font-size:.8rem}
.kq-panel{position:fixed;inset:0;z-index:70;display:none;background:rgba(0,0,0,.45)}
.kq-panel[open]{display:block}
.kq-panel__caja{position:absolute;right:0;top:0;bottom:0;width:min(420px,100%);background:#fff;
  color:#211f3a;display:flex;flex-direction:column;box-shadow:-8px 0 32px rgba(0,0,0,.2)}
.kq-panel__cab{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.1rem;
  border-bottom:1px solid rgba(0,0,0,.08)}
.kq-panel__cab h2{margin:0;font-size:1.1rem}
.kq-x{border:0;background:none;font-size:1.6rem;line-height:1;cursor:pointer;color:inherit;padding:0 .3rem}
.kq-cuerpo{flex:1;overflow:auto;padding:1rem 1.1rem}
.kq-pie{border-top:1px solid rgba(0,0,0,.08);padding:1rem 1.1rem;display:grid;gap:.6rem}
.kq-linea{display:grid;grid-template-columns:56px 1fr auto;gap:.7rem;align-items:center;
  padding:.7rem 0;border-bottom:1px solid rgba(0,0,0,.06)}
.kq-linea img{width:56px;height:56px;object-fit:cover;border-radius:8px;background:#f4f4f5}
.kq-linea__t{font-size:.9rem;font-weight:600;line-height:1.25;margin:0 0 .2rem}
.kq-linea__p{font-size:.85rem;opacity:.75;margin:0}
.kq-cant{display:inline-flex;align-items:center;gap:.4rem;margin-top:.35rem}
.kq-cant button{width:26px;height:26px;border:1px solid rgba(0,0,0,.2);background:#fff;
  border-radius:6px;font:inherit;cursor:pointer;line-height:1}
.kq-cant span{min-width:20px;text-align:center;font-size:.9rem}
.kq-quitar{border:0;background:none;color:#b42318;font-size:.8rem;cursor:pointer;padding:0;
  text-decoration:underline}
.kq-tot{display:flex;justify-content:space-between;font-size:.92rem}
.kq-tot--fuerte{font-size:1.05rem;font-weight:700}
.kq-btn{display:block;width:100%;padding:.85rem 1rem;border:0;border-radius:10px;
  background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff);font:inherit;font-weight:700;cursor:pointer}
.kq-btn:disabled{opacity:.6;cursor:default}
.kq-btn--sec{background:none;color:inherit;border:1px solid rgba(0,0,0,.2);font-weight:600}
.kq-campo{display:grid;gap:.25rem;margin-bottom:.7rem;font-size:.85rem;font-weight:600}
.kq-entrega{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.kq-entrega .kq-campo{margin-bottom:.4rem}
@media (max-width:420px){.kq-entrega{grid-template-columns:1fr}}
.kq-campo input,.kq-campo textarea,.kq-campo select{width:100%;padding:.6rem .7rem;
  border:1px solid rgba(0,0,0,.2);border-radius:8px;font:inherit;font-weight:400}
.kq-dos{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.kq-ayuda{margin:-.35rem 0 .7rem;font-size:.76rem;line-height:1.45;color:#6b6685}
.kq-autoriza{display:flex;gap:.5rem;align-items:flex-start;margin:0 0 .8rem;font-size:.8rem;
  line-height:1.4;color:#4a4566;cursor:pointer}
.kq-autoriza input{margin:.15rem 0 0;flex:none}
.kq-btn--mini{width:auto;padding:.35rem .75rem;font-size:.8rem;margin-top:.35rem}
.kq-linea a.kq-linea__t{color:inherit;text-decoration:none;display:block}
.kq-err{color:#b42318;font-size:.85rem;margin:.3rem 0 0}
.kq-ok{text-align:center;padding:2rem 1rem}
.kq-ok h3{margin:0 0 .5rem}
.kq-ok__n{font-family:ui-monospace,Menlo,monospace;font-size:1.15rem;font-weight:700;
  background:#f4f4f5;padding:.4rem .7rem;border-radius:8px;display:inline-block;margin:.5rem 0}
.kq-vacio{text-align:center;opacity:.7;padding:2.5rem 1rem}
.kq-sec{margin-top:1rem;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.07)}
.kq-sec h3{margin:0 0 .45rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;opacity:.6}
.kq-rsm{display:flex;justify-content:space-between;gap:.75rem;padding:.25rem 0;font-size:.92rem}
.kq-rsm--total{border-top:1px solid rgba(0,0,0,.1);margin-top:.3rem;padding-top:.5rem;font-size:1rem}
.kq-lineas{margin:0;font-size:.92rem;line-height:1.45}
.kq-nota{font-size:.78rem;opacity:.65;font-weight:400}
.kq-agregar{margin-top:.5rem;width:100%;padding:.55rem;border-radius:999px;
  border:1px solid var(--sitio-borde,rgba(0,0,0,.14));background:transparent;color:inherit;
  font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;
  transition:background .2s ease,color .2s ease,border-color .2s ease}
.kq-agregar:hover:not(:disabled){background:var(--sitio-primario);
  border-color:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff)}
.kq-agregar:disabled{opacity:.55;cursor:default}
/* Feedback al agregar: el boton confirma, el contador rebota y un aviso ofrece ir al carrito. */
.kq-agregar.is-ok,.ficha__agregar.is-ok{background:var(--sitio-primario)!important;border-color:var(--sitio-primario)!important;color:#fff!important}
.kq-fab.is-pum,[data-kq-cuenta].is-pum{animation:kq-pum .3s ease}
@keyframes kq-pum{50%{transform:scale(1.3)}}
.kq-aviso{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));z-index:65;display:flex;align-items:center;gap:.9rem;
  max-width:min(480px,calc(100% - 2rem));padding:.75rem 1rem;border-radius:12px;background:#211f3a;color:#fff;
  font-size:.9rem;box-shadow:0 12px 32px -10px rgba(0,0,0,.5);transform:translate(-50%,16px);opacity:0;
  pointer-events:none;transition:transform .25s ease,opacity .25s ease}
.kq-aviso.is-visible{transform:translate(-50%,0);opacity:1;pointer-events:auto}
.kq-aviso b{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kq-aviso button{flex:none;border:0;border-radius:999px;padding:.45rem .85rem;background:#fff;color:#211f3a;font:inherit;font-weight:700;cursor:pointer}
@media (prefers-reduced-motion:reduce){.kq-fab.is-pum,[data-kq-cuenta].is-pum{animation:none}.kq-aviso{transition:none}}
/* Zona segura inferior en movil: las burbujas fijas no tapan el ultimo boton de la pagina. */
@media (max-width:640px){
  body{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .kq-fab{bottom:calc(16px + env(safe-area-inset-bottom))}
  .kq-aviso{left:1rem;right:1rem;max-width:none;transform:translateY(16px);bottom:calc(84px + env(safe-area-inset-bottom))}
  .kq-aviso.is-visible{transform:none}
  .kq-panel__caja{top:auto;left:0;width:100%;max-height:92vh;border-radius:18px 18px 0 0}
}
/* Con el cajon abierto o el aviso visible, WhatsApp se aparta. */
body.kq-panel-abierto .kq-wa,body.kq-aviso-abierto .kq-wa{opacity:0;pointer-events:none}
.kq-wa{transition:transform .15s,opacity .2s}
.kq-linea__v{margin:.1rem 0 0;font-size:.78rem;opacity:.7}
.kq-nudge{margin:0 0 .6rem;padding:.55rem .8rem;border-radius:9px;font-size:.85rem;
  background:rgba(0,0,0,.05)}
.kq-nudge--ok{background:rgba(37,211,102,.14)}
.kq-sug{margin-top:1.1rem;padding-top:.9rem;border-top:1px solid rgba(0,0,0,.08)}
.kq-sug__t{margin:0 0 .6rem;font-size:.8rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;opacity:.65}
/* ── Recoger en tienda y cupon ──────────────────────────────────────────── */
/* Los dos modos de entrega, como pestanas: se ve de una que hay opcion sin
   tener que abrir un desplegable. */
.kq-retiro{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.9rem}
.kq-modo{padding:.6rem .5rem;border:1.5px solid rgba(0,0,0,.16);border-radius:10px;
  background:#fff;color:inherit;font:inherit;font-size:.88rem;font-weight:600;cursor:pointer;
  transition:border-color .16s ease,background .16s ease}
.kq-modo.is-activo{border-color:var(--sitio-primario);background:var(--sitio-primario);color:var(--sitio-sobre-primario,#fff)}
.kq-cupon{margin:.2rem 0 .7rem}
.kq-cupon__fila{display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:start}
.kq-cupon__fila .kq-btn{width:auto;padding:.6rem 1rem;font-size:.88rem}
.kq-cupon__fila input{text-transform:uppercase}
.kq-cupon__ok{display:flex;align-items:center;justify-content:space-between;gap:.7rem;
  padding:.6rem .8rem;border-radius:9px;background:rgba(37,211,102,.14);font-size:.88rem;font-weight:600}
/* El descuento en verde: es la unica linea del total que resta. */
.kq-tot--desc{color:#137a3a;font-weight:600}
.kq-sug__item{display:flex;align-items:center;gap:.65rem;padding:.4rem 0}
.kq-sug__item img,.kq-sug__ph{width:44px;height:44px;border-radius:8px;object-fit:cover;
  background:#f0f0f1;flex:none}
.kq-sug__info{flex:1;min-width:0}
.kq-sug__info p{margin:0;font-size:.82rem;line-height:1.25;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kq-sug__info strong{font-size:.82rem}
.kq-sug__mas{flex:none;width:30px;height:30px;border-radius:999px;border:0;cursor:pointer;
  background:var(--sitio-primario,#111);color:#fff;font-size:1.1rem;line-height:1}
@media (max-width:480px){.kq-dos{grid-template-columns:1fr}}
/* ── TX-34 D9: celular. Areas de toque de 44 px, textos legibles y fijos en pila ──────────────────────
   Va al final de la hoja de la tienda para ganar a las reglas de arriba sin subir la especificidad.
   Orden fijo de abajo hacia arriba: barra de la ficha, carrito flotante y WhatsApp, aviso de cookies, KAI. */
@media (max-width:767px){
  body{--kq-b0:calc(16px + env(safe-area-inset-bottom));--kq-b1:calc(var(--kq-b0) + 68px)}
  .kq-wa{bottom:var(--kq-b0)}
  .kq-fab{bottom:var(--kq-b0);min-height:44px}
  .kq-cookies{left:12px;right:12px;width:auto;transform:none;bottom:var(--kq-b1);z-index:68}
  .kq-cookies{padding:.75rem 1rem;font-size:.85rem;line-height:1.35}
  .kq-cookies__texto{margin:0 0 .6rem}
  .kq-cookies__acciones{flex-wrap:nowrap}
  .kq-cookies__acciones>*{flex:1 1 auto;padding-left:.5rem;padding-right:.5rem}
  .kq-cookies__no,.kq-cookies .boton{min-height:44px;font-size:max(14px,.875rem)}
  .kq-kai-abrir{bottom:calc(var(--kq-b1) + var(--kq-cookies-alto,0px));min-height:44px;z-index:64}
  .kq-kai{bottom:calc(var(--kq-b1) + var(--kq-cookies-alto,0px) + 56px);z-index:69}
  .kq-kai__cerrar{min-width:44px;min-height:44px}
  .kq-kai__form input{min-height:44px}
  .kq-popup__cerrar{width:44px;height:44px}
  /* cabecera */
  .cabecera__inicio{min-height:44px}
  .cabecera__buscar{padding-top:0;padding-bottom:0}
  .cabecera__buscar input{min-height:44px}
  .cabecera__carrito{min-width:44px;min-height:44px;justify-content:center;padding:0;font-size:max(14px,.875rem)}
  .cabecera__carrito b{top:4px;right:2px;font-size:max(12px,.75rem)}
  .boton--chico{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-size:max(14px,.875rem)}
  .cabecera__enlaces a,.cabecera__cats a,.cabecera .cabecera__cats a{display:inline-flex;align-items:center;min-height:44px;font-size:max(14px,.875rem)}
  .anuncio__enlace{display:flex;align-items:center;justify-content:center;min-height:44px;font-size:max(14px,.875rem)}
  /* catalogo */
  .catalogo__abrir-filtros{min-height:44px;font-size:max(14px,.875rem)}
  .catalogo__buscar{min-height:44px}
  .catalogo__orden select{min-height:44px}
  .catalogo__flecha,.fila__flecha{width:44px;height:44px}
  .chip,.marcas__nombre{display:inline-flex;align-items:center;min-height:44px;font-size:max(14px,.875rem)}
  .filtros__cerrar{min-width:44px;min-height:44px}
  .filtros__aplicar,.filtros__precio input{min-height:44px}
  .filtros__oferta{min-height:44px}
  .producto__fav{width:44px;height:44px;top:.2rem;right:.2rem}
  .producto__insignia{font-size:max(12px,.75rem)}
  .kq-agregar{min-height:44px;font-size:max(14px,.875rem)}
  /* ficha */
  .ficha__volver{display:inline-flex;align-items:center;min-height:44px;margin-bottom:.5rem;font-size:max(14px,.875rem)}
  .ficha__fav{min-height:44px;font-size:max(14px,.875rem)}
  .ficha__cantidad{gap:.1rem;padding:0 .25rem}
  .ficha__cantidad button{min-width:44px;min-height:44px}
  .ficha__agregar{min-height:44px;font-size:max(14px,.875rem)}
  .ficha__avisame-fila input,.ficha__avisame-fila button{min-height:44px}
  /* carrito y checkout */
  .kq-x{min-width:44px;min-height:44px}
  .kq-cant{gap:.15rem}
  .kq-cant button{width:44px;height:44px}
  .kq-quitar{min-width:44px;min-height:44px;padding:0 .5rem;font-size:max(14px,.875rem)}
  .kq-btn,.kq-btn--mini,.kq-modo{min-height:44px}
  .kq-btn--mini,.kq-cuenta .kq-btn--chico{font-size:max(14px,.875rem)}
  .kq-campo input,.kq-campo select,.kq-campo textarea{min-height:44px}
  .kq-autoriza{align-items:center;min-height:44px}
  .kq-sug__mas{width:44px;height:44px}
  .kq-aviso{z-index:69}
  .kq-aviso button{min-height:44px;font-size:max(14px,.875rem)}
  html[data-estilo="tienda"] .cabecera__cats a{font-size:max(14px,.875rem)}
  html[data-estilo="tienda"] .kq-agregar{font-size:max(14px,.875rem)}
  /* pie */
  .pie__col{gap:0}
  .pie__col a{display:flex;align-items:center;min-height:44px}
  .pie__col h3,.pie__pagos-t{font-size:max(12px,.75rem)}
}
@media (max-width:640px){
  body.kq-con-barra-ficha{--kq-b0:calc(76px + env(safe-area-inset-bottom))}
  .ficha__barra .ficha__agregar{min-height:44px}
}

/* ── Ajustes de estilo (ticket 1227) ── */
html[data-kq-ajustes~="boton-recto"] :is(.boton,.kq-agregar,.ficha__agregar){border-radius:0}
html[data-kq-ajustes~="boton-redondeado"] :is(.boton,.kq-agregar,.ficha__agregar){border-radius:10px}
html[data-kq-ajustes~="boton-pastilla"] :is(.boton,.kq-agregar,.ficha__agregar){border-radius:999px}
html[data-kq-ajustes~="boton-chico"] .boton:not(.boton--chico){padding:.6rem 1.15rem;font-size:.88rem}
html[data-kq-ajustes~="boton-grande"] .boton:not(.boton--chico){padding:1rem 2.1rem;font-size:1.05rem}
html[data-kq-ajustes~="color-boton"]:not([data-kq-ajustes~="boton-contorno"]) .boton:not(.boton--whatsapp):not(.boton--secundario):not(.boton--borde),html[data-kq-ajustes~="color-boton"] .ficha__agregar{background:var(--sitio-boton);border-color:var(--sitio-boton);color:var(--sitio-sobre-boton)}
html[data-kq-ajustes~="boton-contorno"] .boton:not(.boton--whatsapp){background:transparent;color:var(--sitio-contorno);border:2px solid currentColor}
html[data-kq-ajustes~="boton-contorno"] .boton:not(.boton--whatsapp):hover{opacity:1;background:var(--sitio-contorno);border-color:var(--sitio-contorno);color:var(--sitio-sobre-contorno,var(--sitio-secundario))}
html[data-kq-ajustes~="boton-contorno"] .hero--con-imagen .boton:not(.boton--whatsapp){color:inherit}
html[data-kq-ajustes~="boton-contorno"] .hero--con-imagen .boton:not(.boton--whatsapp):hover{background:transparent;color:inherit;opacity:.85}
/* Revisión 2026-10-18: con «Contorno», el color de botón tiñe el contorno
   (arriba se excluye del relleno). El del boletín va sobre la caja del color
   principal y las cajas blancas fijas usan el contorno medido contra el blanco. */
html[data-kq-ajustes~="boton-contorno"] .suscripcion__form .boton{color:var(--sitio-secundario-sobre-primario,var(--sitio-secundario))}
html[data-kq-ajustes~="boton-contorno"] .suscripcion__form .boton:hover{background:var(--sitio-secundario-sobre-primario,var(--sitio-secundario));border-color:var(--sitio-secundario-sobre-primario,var(--sitio-secundario));color:var(--sitio-primario)}
html[data-kq-ajustes~="boton-contorno"] :is(.kq-cotiza__caja,.kq-popup__caja,.buscador__caja,.tarjeta:not(.tarjeta--fondo):not(.tarjeta--icono)){--sitio-contorno:var(--sitio-contorno-claro);--sitio-sobre-contorno:#fff}
html[data-kq-ajustes~="foto-11"] .producto__foto{aspect-ratio:1/1}
html[data-kq-ajustes~="foto-45"] .producto__foto{aspect-ratio:4/5}
html[data-kq-ajustes~="foto-34"] .producto__foto{aspect-ratio:3/4}
html[data-kq-ajustes~="foto-encajar"] .producto__foto img{object-fit:contain}
html[data-kq-ajustes~="sin-descuento"] .producto__oferta{display:none}
html[data-kq-ajustes~="sin-agotado"] .producto__insignia--agotado{display:none}
html[data-kq-ajustes~="sin-nuevo"] .producto__insignia--nuevo{display:none}
html[data-kq-ajustes~="sin-foto2"] .producto__foto2{display:none}
html[data-kq-ajustes~="color-etiqueta"] :is(.producto__oferta,.producto__insignia--nuevo){background:var(--sitio-etiqueta);color:var(--sitio-sobre-etiqueta)}
html[data-kq-ajustes~="color-oferta"] .producto--oferta .producto__precio>span,html[data-kq-ajustes~="color-oferta"] .ficha__precio:has(s) strong{color:var(--sitio-oferta)}
html[data-kq-ajustes~="color-enlace"] :is(.texto,.columna,.faq,.ficha__desc) a{color:var(--sitio-enlace)}
html[data-kq-ajustes~="alterno"] [data-alterno=""]{background-color:var(--sitio-fondo-alterno);color:var(--sitio-texto-alterno);box-shadow:0 0 0 100vmax var(--sitio-fondo-alterno);clip-path:inset(0 -100vmax);--sitio-texto:var(--sitio-texto-alterno);--sitio-acento:var(--sitio-acento-alterno);--sitio-contorno:var(--sitio-contorno-alterno);--sitio-sobre-contorno:var(--sitio-fondo-alterno)}
html[data-kq-ajustes~="alterno"] [data-alterno=""] .tarjeta:not(.tarjeta--fondo):not(.tarjeta--icono),html[data-estilo="tienda"][data-kq-ajustes~="alterno"] [data-alterno=""] .producto{color:var(--sitio-texto-sobre-blanco);--sitio-texto:var(--sitio-texto-sobre-blanco);--sitio-acento:var(--sitio-primario)}
html[data-kq-ajustes~="color-enlace"] :is([data-alterno=""].texto,[data-alterno=""].faq,[data-alterno=""] .columna,[data-alterno=""] .ficha__desc) a{color:var(--sitio-enlace-alterno,var(--sitio-enlace))}
html[data-kq-ajustes~="color-enlace"] [data-alterno=""] .tarjeta:not(.tarjeta--fondo):not(.tarjeta--icono) a{color:var(--sitio-enlace,var(--sitio-primario))}
html:not([data-estilo="tienda"])[data-kq-ajustes~="color-oferta"] [data-alterno=""] .producto--oferta .producto__precio>span{color:var(--sitio-oferta-alterno,var(--sitio-oferta))}
@media (min-width:768px){html[data-kq-ajustes~="alterno"] [data-alterno="escritorio"]{background-color:var(--sitio-fondo-alterno);color:var(--sitio-texto-alterno);box-shadow:0 0 0 100vmax var(--sitio-fondo-alterno);clip-path:inset(0 -100vmax);--sitio-texto:var(--sitio-texto-alterno);--sitio-acento:var(--sitio-acento-alterno);--sitio-contorno:var(--sitio-contorno-alterno);--sitio-sobre-contorno:var(--sitio-fondo-alterno)}
html[data-kq-ajustes~="alterno"] [data-alterno="escritorio"] .tarjeta:not(.tarjeta--fondo):not(.tarjeta--icono),html[data-estilo="tienda"][data-kq-ajustes~="alterno"] [data-alterno="escritorio"] .producto{color:var(--sitio-texto-sobre-blanco);--sitio-texto:var(--sitio-texto-sobre-blanco);--sitio-acento:var(--sitio-primario)}
html[data-kq-ajustes~="color-enlace"] :is([data-alterno="escritorio"].texto,[data-alterno="escritorio"].faq,[data-alterno="escritorio"] .columna,[data-alterno="escritorio"] .ficha__desc) a{color:var(--sitio-enlace-alterno,var(--sitio-enlace))}
html[data-kq-ajustes~="color-enlace"] [data-alterno="escritorio"] .tarjeta:not(.tarjeta--fondo):not(.tarjeta--icono) a{color:var(--sitio-enlace,var(--sitio-primario))}
html:not([data-estilo="tienda"])[data-kq-ajustes~="color-oferta"] [data-alterno="escritorio"] .producto--oferta .producto__precio>span{color:var(--sitio-oferta-alterno,var(--sitio-oferta))}}
@media (max-width:767px){html[data-kq-ajustes~="alterno"] [data-alterno="movil"]{background-color:var(--sitio-fondo-alterno);color:var(--sitio-texto-alterno);box-shadow:0 0 0 100vmax var(--sitio-fondo-alterno);clip-path:inset(0 -100vmax);--sitio-texto:var(--sitio-texto-alterno);--sitio-acento:var(--sitio-acento-alterno);--sitio-contorno:var(--sitio-contorno-alterno);--sitio-sobre-contorno:var(--sitio-fondo-alterno)}
html[data-kq-ajustes~="alterno"] [data-alterno="movil"] .tarjeta:not(.tarjeta--fondo):not(.tarjeta--icono),html[data-estilo="tienda"][data-kq-ajustes~="alterno"] [data-alterno="movil"] .producto{color:var(--sitio-texto-sobre-blanco);--sitio-texto:var(--sitio-texto-sobre-blanco);--sitio-acento:var(--sitio-primario)}
html[data-kq-ajustes~="color-enlace"] :is([data-alterno="movil"].texto,[data-alterno="movil"].faq,[data-alterno="movil"] .columna,[data-alterno="movil"] .ficha__desc) a{color:var(--sitio-enlace-alterno,var(--sitio-enlace))}
html[data-kq-ajustes~="color-enlace"] [data-alterno="movil"] .tarjeta:not(.tarjeta--fondo):not(.tarjeta--icono) a{color:var(--sitio-enlace,var(--sitio-primario))}
html:not([data-estilo="tienda"])[data-kq-ajustes~="color-oferta"] [data-alterno="movil"] .producto--oferta .producto__precio>span{color:var(--sitio-oferta-alterno,var(--sitio-oferta))}}
@media (min-width:1024px){html[data-kq-ajustes~="cols"] :is(.productos__grid,.catalogo__grid):not(.productos__grid--fila){grid-template-columns:repeat(var(--sitio-cols),minmax(0,1fr))}}
@media (max-width:767px){html[data-kq-ajustes~="cols-movil"] :is(.productos__grid,.catalogo__grid):not(.productos__grid--fila){grid-template-columns:repeat(var(--sitio-cols-movil),minmax(0,1fr))}}
html[data-kq-ajustes~="logo-centro"] .cabecera{justify-content:center;column-gap:1.25rem}
html[data-kq-ajustes~="logo-centro"] .cabecera__marca{order:-1;flex-basis:100%;margin:0;justify-content:center}
html[data-kq-ajustes~="logo-centro"] .cabecera__buscar{flex:0 1 340px}
html[data-kq-ajustes~="logo-centro"] .cabecera__cats{order:9;justify-content:center}
html[data-kq-ajustes~="logo-chico"] .cabecera__logo{height:30px}
html[data-kq-ajustes~="logo-grande"] .cabecera__logo{height:60px;max-width:240px}
@media (max-width:600px){html[data-kq-ajustes~="logo-chico"] .cabecera__logo{height:26px}html[data-kq-ajustes~="logo-grande"] .cabecera__logo{height:44px}}
html[data-kq-ajustes~="menu-mayusculas-si"] :is(.cabecera__enlaces a,.cabecera__cats a){text-transform:uppercase;letter-spacing:.06em}
html[data-kq-ajustes~="menu-mayusculas-no"] :is(.cabecera__enlaces a,.cabecera__cats a){text-transform:none;letter-spacing:normal}
/* Revisión 2026-10-18: la sección con ancho propio (de borde a borde o angosta) no toma el tope. */
html[data-kq-ajustes~="ancho-estrecho"] :is(.productos,.catalogo,.categorias,.galeria,.columnas,.seccion,.resenas,.botones,.video):not([data-ancho-propio]){max-width:1180px}
html[data-kq-ajustes~="ancho-amplio"] :is(.productos,.catalogo,.categorias,.galeria,.columnas,.seccion,.resenas,.botones,.video):not([data-ancho-propio]){max-width:1720px}
html[data-kq-ajustes~="texto-chico"]{font-size:93.75%}
html[data-kq-ajustes~="texto-grande"]{font-size:106.25%}
