/* Sitio propio · hoja común de los cuatro modelos (diseño §B3).
   Un modelo = estas reglas + sus variables (colores, tipografías, radio) +
   los ajustes de `.modelo-*` al final. Responde a tres anchos: escritorio,
   el piso de 1024 px y celular. Se renderiza en el servidor: sin framework. */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--fondo); color: var(--texto);
  font: 16px/1.5 var(--f-texto); -webkit-font-smoothing: antialiased;
  --mapa-fondo: #eef0ec; --mapa-calle: #ffffff; --mapa-avenida: #f6e7b8;
}
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--f-titulo); margin: 0; line-height: 1.15; }
button, input, textarea { font: inherit; color: inherit; }
img, svg { display: block; }
.contenedor { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.ico { width: 22px; height: 22px; flex: none; }
.ico-chico { width: 16px; height: 16px; }
.solo-movil { display: none !important; }

/* ------------------------------------------------------------ botones */
.boton-primario, .boton-secundario, .boton-agregar, .boton-whatsapp {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 0 22px; border-radius: var(--radio); cursor: pointer;
  font-weight: 600; font-size: 15px; white-space: nowrap; border: 1.5px solid transparent;
}
.boton-primario { background: var(--primario); color: #fff; }
.boton-primario:disabled { background: #c7ccd2; cursor: not-allowed; }
.boton-secundario { background: transparent; border-color: var(--texto); color: var(--texto); }
.boton-ancho { width: 100%; }
.boton-icono { display: inline-grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; background: none; cursor: pointer; border-radius: 50%; }
.boton-whatsapp { background: #1f9d55; color: #fff; }

/* ------------------------------------------------------------ cabecera */
.anuncio { background: var(--primario-osc); color: #fff; text-align: center; font-size: 13px; padding: 8px 16px; letter-spacing: .01em; }
.cabecera { background: var(--superficie); border-bottom: 1px solid var(--borde); position: sticky; top: 0; z-index: 5; }
.cabecera-fila { display: flex; align-items: center; gap: 28px; min-height: 76px; }
.logo { font-family: var(--f-titulo); font-size: 26px; font-weight: 700; letter-spacing: -.01em; white-space: nowrap; }
.menu-principal { display: flex; gap: 26px; font-size: 15px; }
.menu-principal a { padding: 6px 0; border-bottom: 2px solid transparent; }
.menu-principal a.activo, .menu-principal a:hover { border-color: var(--acento); }
.cabecera-acciones { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.boton-carrito { position: relative; display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 10px; border-radius: var(--radio); font-weight: 600; }
.boton-carrito b { position: absolute; top: 2px; left: 26px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px; background: var(--acento); color: #fff; font-size: 11px; line-height: 19px; text-align: center; }

/* ------------------------------------------------------------- bloques */
.bloque { padding: 64px 0; }
.bloque-cabecera { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 26px; }
.bloque-cabecera h2, .testimonios h2 { font-size: 32px; }
.bloque-cabecera a { display: inline-flex; align-items: center; gap: 4px; color: var(--suave); font-size: 15px; }
.hero h1 { font-size: 52px; letter-spacing: -.02em; }
.hero p { font-size: 19px; color: var(--suave); max-width: 560px; margin: 18px 0 28px; }
.sobretitulo { display: inline-block; margin-bottom: 14px; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--acento); font-weight: 600; }

.tarjetas-grilla { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 22px; }
.tarjeta-producto { display: flex; flex-direction: column; }
.tarjeta-imagen { position: relative; display: block; aspect-ratio: 1 / 1; border-radius: var(--radio); overflow: hidden; }
.tarjeta-imagen svg, .galeria-principal svg, .coleccion-imagen svg, .imagen-texto-imagen svg, .hero-imagen svg,
.fila-imagen svg, .renglon-imagen svg, .galeria-miniaturas svg { width: 100%; height: 100%; }
.etiqueta { position: absolute; top: 12px; left: 12px; padding: 4px 10px; border-radius: 999px; background: var(--superficie); font-size: 12px; font-weight: 600; }
.etiqueta-oferta { background: var(--acento); color: #fff; }
.favorito { position: absolute; top: 10px; right: 10px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--superficie); display: grid; place-items: center; }
.tarjeta-cuerpo { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; }
.tarjeta-nombre { font-size: 16px; line-height: 1.35; }
.tarjeta-coleccion { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--suave); }
.precio { display: inline-flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.precio b { font-size: 18px; }
.precio s { color: var(--suave); font-size: 14px; }
.precio small { color: var(--suave); }
.cuotas { font-size: 13px; color: var(--suave); }
.boton-agregar { margin-top: 6px; min-height: 40px; background: transparent; border-color: var(--primario); color: var(--primario); }

.colecciones-grilla { display: grid; gap: 18px; }
.coleccion { display: block; }
.coleccion-imagen { display: block; border-radius: var(--radio); overflow: hidden; }
.coleccion-nombre { display: flex; flex-direction: column; font-weight: 600; }
.coleccion-nombre small { display: inline-flex; align-items: center; gap: 4px; font-weight: 400; color: var(--suave); font-size: 14px; }

.imagen-texto .contenedor { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.imagen-texto-imagen { aspect-ratio: 5 / 4; border-radius: var(--radio); overflow: hidden; }
.imagen-derecha .imagen-texto-imagen { order: 2; }
.imagen-texto h2 { font-size: 38px; }
.imagen-texto p { font-size: 18px; color: var(--suave); margin: 18px 0 28px; }

.banner { padding: 0; background: var(--acento); color: #fff; }
.banner .contenedor { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 64px; font-weight: 600; text-align: center; }

.testimonios h2 { text-align: center; margin-bottom: 34px; }
.testimonios-grilla { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.testimonios figure { margin: 0; padding: 28px; background: var(--superficie); border-radius: var(--radio); border: 1px solid var(--borde); }
.estrellas { display: flex; gap: 2px; color: var(--acento); }
.estrellas svg, .valoracion svg { fill: currentColor; }
.testimonios blockquote { margin: 14px 0; font-size: 17px; }
.testimonios figcaption { color: var(--suave); font-size: 14px; }

.sucursales-grilla { display: grid; grid-template-columns: 1.3fr 1fr; gap: 28px; align-items: stretch; }
.mapa { border-radius: var(--radio); overflow: hidden; min-height: 260px; border: 1px solid var(--borde); }
.mapa svg { width: 100%; height: 100%; }
.sucursales-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; align-content: start; }
.sucursales-lista li { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); }
.sucursales-lista span { display: flex; align-items: center; gap: 8px; color: var(--suave); font-size: 15px; }
.sucursales-lista .boton-secundario { align-self: flex-start; min-height: 38px; margin-top: 6px; font-size: 14px; }

.contacto .contenedor { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.contacto h2 { font-size: 34px; }
.contacto p { color: var(--suave); font-size: 18px; margin: 14px 0 24px; }
.contacto-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 26px; background: var(--superficie); border-radius: var(--radio); border: 1px solid var(--borde); }
.contacto-form .ancho, .contacto-form button { grid-column: 1 / -1; }

label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }
input:not([type=checkbox]):not([type=radio]), textarea, .campo {
  width: 100%; min-height: 46px; padding: 10px 14px; border: 1px solid var(--borde); border-radius: var(--radio);
  background: var(--superficie); font-weight: 400; font-size: 15px;
}
.campo { display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; }
label.check { flex-direction: row; align-items: center; gap: 10px; font-weight: 400; }
label.check small { margin-left: auto; color: var(--suave); }
input[type=checkbox], input[type=radio] { width: 18px; height: 18px; margin: 0; accent-color: var(--primario); }

/* ------------------------------------------------------------- catálogo */
.migas { display: flex; align-items: center; gap: 6px; padding: 22px 0 6px; font-size: 14px; color: var(--suave); flex-wrap: wrap; }
.migas span { color: var(--texto); }
.catalogo-cabecera { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding: 10px 0 22px; }
.catalogo-cabecera h1 { font-size: 36px; }
.catalogo-cabecera p { margin: 6px 0 0; color: var(--suave); }
.catalogo-herramientas { display: flex; align-items: center; gap: 12px; }
.ordenar { flex-direction: row; align-items: center; gap: 10px; font-weight: 400; color: var(--suave); }
.ordenar .campo { width: auto; min-width: 180px; color: var(--texto); }
.vista { display: inline-flex; border: 1px solid var(--borde); border-radius: var(--radio); overflow: hidden; }
.vista > * { padding: 10px; display: grid; place-items: center; }
.vista b { background: var(--primario); color: #fff; display: grid; }
.catalogo-cuerpo { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 36px; padding-bottom: 64px; }
.filtros section { padding: 18px 0; border-top: 1px solid var(--borde); display: grid; gap: 10px; }
.filtros h3 { font-family: var(--f-texto); font-size: 15px; font-weight: 700; }
.muestras { display: flex; gap: 10px; }
.muestras span { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--borde); }
.muestras .activa { outline: 2px solid var(--texto); outline-offset: 2px; }
.rango { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.rango .campo { color: var(--suave); }
.paginas { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 40px; }
.paginas > * { min-width: 40px; height: 40px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; border-radius: var(--radio); border: 1px solid var(--borde); background: var(--superficie); }
.paginas b { background: var(--primario); color: #fff; border-color: var(--primario); }
.paginas span { border: 0; background: none; }
.catalogo-resultados .tarjetas-grilla { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* lista densa (modelo Catálogo) */
.lista-productos { display: grid; border: 1px solid var(--borde); border-radius: var(--radio); background: var(--superficie); overflow: hidden; }
.fila-producto { display: grid; grid-template-columns: 76px minmax(0, 1fr) 130px 150px 210px; align-items: center; gap: 18px; padding: 12px 18px; border-top: 1px solid var(--borde); }
.fila-producto:first-child { border-top: 0; }
.fila-imagen { width: 76px; height: 76px; border-radius: var(--radio); overflow: hidden; }
.fila-datos { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fila-nombre { font-weight: 600; line-height: 1.3; }
.fila-sku { font: 13px 'IBM Plex Mono', monospace; color: var(--suave); }
.stock { font-size: 14px; display: inline-flex; align-items: center; gap: 6px; }
.stock::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #2e9e5b; }
.stock-poco::before { background: #e0a21b; }
.stock-sin { color: var(--suave); }
.stock-sin::before { background: #b8bec6; }
.fila-producto .precio { justify-content: flex-end; flex-direction: column; align-items: flex-end; gap: 0; }
.fila-comprar { display: flex; gap: 8px; justify-content: flex-end; }
.fila-comprar .boton-primario { min-height: 40px; padding: 0 14px; font-size: 14px; }
.cantidad { display: inline-flex; align-items: center; justify-content: space-between; gap: 6px; min-width: 96px; height: 40px; padding: 0 10px; border: 1px solid var(--borde); border-radius: var(--radio); background: var(--superficie); }
.cantidad b { font-weight: 600; }
.cantidad-grande { height: 50px; min-width: 120px; }

/* --------------------------------------------------------------- ficha */
.ficha { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 56px; padding: 14px 0 40px; }
.galeria { display: grid; gap: 12px; align-content: start; }
.galeria-principal { position: relative; aspect-ratio: 1 / 1; border-radius: var(--radio); overflow: hidden; }
.galeria-miniaturas { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.galeria-miniaturas :is(span, button) { aspect-ratio: 1 / 1; border-radius: var(--radio); overflow: hidden; border: 2px solid transparent; }
.galeria-miniaturas button { display: block; padding: 0; background: var(--foto); cursor: pointer; }
.galeria-miniaturas button:hover { border-color: var(--borde); }
.galeria-miniaturas .activa, .galeria-miniaturas .activa:hover { border-color: var(--primario); }
.galeria-miniaturas img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 8%; mix-blend-mode: multiply; }
/* Visor de la ficha: flechas sobre la foto, contador, y pantalla completa. */
.galeria-ampliar { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.galeria-flecha { position: absolute; top: 50%; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; margin-top: -22px; padding: 0;
  border: 1px solid var(--borde); border-radius: 50%; background: var(--superficie); color: var(--texto); cursor: pointer; box-shadow: 0 2px 10px rgba(0, 0, 0, .08); }
.galeria-flecha:hover { border-color: var(--texto); }
.galeria-anterior { left: 12px; }
.galeria-siguiente { right: 12px; }
.galeria-contador { position: absolute; right: 12px; bottom: 12px; padding: 4px 10px; border-radius: 999px; background: var(--superficie); border: 1px solid var(--borde); font-size: 13px; color: var(--suave); }
.visor { width: 100vw; height: 100vh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #fff; color: #1d1d1b; }
.visor[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); }
.visor::backdrop { background: rgba(0, 0, 0, .6); }
.visor-barra { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; font-size: 14px; color: #6b6b66; }
.visor-cerrar { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #e3e3df; border-radius: 50%; background: #fff; color: inherit; cursor: pointer; }
.visor-foto { display: flex; align-items: center; justify-content: center; min-height: 0; padding: 0 72px 24px; }
.visor-foto img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.visor .galeria-flecha { position: fixed; }
.visor-anterior { left: 16px; }
.visor-siguiente { right: 16px; }
.ficha-info { display: flex; flex-direction: column; gap: 18px; }
.ficha-info h1 { font-size: 38px; letter-spacing: -.01em; }
.ficha-marca { font: 14px 'IBM Plex Mono', monospace; color: var(--suave); }
.valoracion { display: flex; align-items: center; gap: 2px; color: var(--acento); }
.valoracion span { margin-left: 8px; color: var(--suave); font-size: 14px; }
.ficha-precio { display: flex; flex-direction: column; gap: 4px; }
.ficha-precio .precio b { font-size: 30px; }
.ficha-precio-ayuda { color: var(--suave); font-size: 14px; }
.ficha-etiqueta { display: block; margin-bottom: 10px; font-size: 14px; color: var(--suave); }
.ficha-etiqueta b { color: var(--texto); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 1px solid var(--borde); border-radius: var(--radio); background: var(--superficie); font-size: 14px; }
.chip i { width: 16px; height: 16px; border-radius: 50%; }
.chip-activo { border: 2px solid var(--texto); font-weight: 600; }
.suscripcion { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 10px; padding: 14px 16px; border: 1px solid var(--borde); border-radius: var(--radio); font-weight: 400; background: var(--superficie); }
.suscripcion.activa { border: 2px solid var(--primario); }
.suscripcion b { color: var(--primario); }
.suscripcion small { flex-basis: 100%; padding-left: 28px; color: var(--suave); }
.ficha-comprar { display: flex; gap: 12px; }
.ficha-comprar .boton-primario { min-height: 50px; }
.ficha-entrega { list-style: none; margin: 0; padding: 16px 18px; display: grid; gap: 12px; border: 1px solid var(--borde); border-radius: var(--radio); background: var(--superficie); }
.ficha-entrega li { display: flex; gap: 12px; font-size: 15px; color: var(--suave); }
.ficha-entrega li b { color: var(--texto); }
.ficha-entrega li.ok svg { color: #2e9e5b; }
.ficha-entrega a { text-decoration: underline; }
.ficha-descripcion h2 { font-size: 20px; margin-bottom: 8px; font-family: var(--f-texto); }
.ficha-descripcion p { margin: 0; color: var(--suave); }
.ficha-tecnica { width: 100%; border-collapse: collapse; font-size: 15px; }
.ficha-tecnica caption { text-align: left; font-weight: 700; padding-bottom: 8px; }
.ficha-tecnica th, .ficha-tecnica td { padding: 10px 0; border-top: 1px solid var(--borde); text-align: left; }
.ficha-tecnica th { font-weight: 400; color: var(--suave); width: 45%; }
.relacionados { padding-top: 24px; }

/* -------------------------------------------------------------- carrito */
.pagina-carrito-contenido { padding-top: 28px; padding-bottom: 72px; }
.pasos { list-style: none; display: flex; gap: 10px; margin: 0 0 22px; padding: 0; font-size: 14px; color: var(--suave); }
.pasos li { display: flex; align-items: center; gap: 8px; }
.pasos li + li::before { content: ''; width: 36px; height: 1px; background: var(--borde); margin-right: 2px; }
.pasos b { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--borde); font-size: 13px; }
.pasos .activo { color: var(--texto); font-weight: 600; }
.pasos .activo b { background: var(--primario); border-color: var(--primario); color: #fff; }
.pasos small { color: var(--suave); font-weight: 400; }
.pagina-carrito-contenido h1 { font-size: 36px; margin-bottom: 22px; }
.pagina-carrito-contenido h1 small { font: 400 16px var(--f-texto); color: var(--suave); margin-left: 8px; }
.carrito { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 40px; align-items: start; }
.carrito-renglones { display: grid; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); }
.renglon { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto 120px 42px; align-items: center; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--borde); }
.renglon-imagen { width: 96px; height: 96px; border-radius: var(--radio); overflow: hidden; }
.renglon-datos { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.renglon-datos a { font-weight: 600; }
.renglon-datos span { color: var(--suave); font-size: 14px; }
.renglon-sku { font-family: 'IBM Plex Mono', monospace; }
.renglon-total { text-align: right; font-size: 17px; }
.seguir { display: inline-flex; align-items: center; gap: 6px; padding: 18px 20px; color: var(--suave); }
.seguir svg { transform: rotate(180deg); }
.resumen { display: grid; gap: 18px; padding: 26px; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); position: sticky; top: 100px; }
.resumen h2 { font-size: 22px; }
.resumen dl { display: grid; grid-template-columns: 1fr auto; gap: 10px 0; margin: 0; }
.resumen dd { margin: 0; text-align: right; }
.resumen .total { font-size: 21px; font-weight: 700; padding-top: 12px; border-top: 1px solid var(--borde); }
.gratis, .descuento { color: #2e7d4f; font-weight: 600; }
.datos-pago { display: grid; gap: 12px; padding-top: 18px; border-top: 1px solid var(--borde); }
.datos-pago h3 { font: 700 15px var(--f-texto); }
.datos-pago .dos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.aviso-pago { margin: 0; font-size: 13px; color: var(--suave); text-align: center; }
.retiro-elegido { display: flex; gap: 12px; padding: 14px; border-radius: var(--radio); background: var(--fondo); }
.retiro-elegido span { display: flex; flex-direction: column; font-size: 14px; color: var(--suave); }
.retiro-elegido b { color: var(--texto); }
.retiro-elegido a { text-decoration: underline; color: var(--primario); }

/* ----------------------------------------------------------------- pie */
.pie { background: var(--primario-osc); color: rgba(255, 255, 255, .86); padding: 56px 0 24px; }
.pie-columnas { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
.pie h4 { font-family: var(--f-texto); font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: #fff; margin-bottom: 14px; }
.pie-columnas > div { display: flex; flex-direction: column; gap: 9px; font-size: 15px; }
.pie-tienda p { margin: 0; max-width: 300px; }
.logo-pie { color: #fff; font-size: 24px; align-self: flex-start; }
.pie-redes { display: flex; gap: 12px; }
.arrepentimiento { display: inline-block; margin-top: 4px; padding: 8px 12px; border: 1px solid rgba(255, 255, 255, .5); border-radius: var(--radio); color: #fff; font-weight: 600; align-self: flex-start; }
.pie-base { display: flex; align-items: center; gap: 24px; margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .18); font-size: 13px; }
.pie-pagos { display: inline-flex; align-items: center; gap: 8px; }
.data-fiscal { display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 4px; font-size: 9px; font-weight: 700; text-align: center; line-height: 1.1; }
.pie-legal { margin-left: auto; opacity: .75; }

/* ======================================================================
   MODELO 1 · CATÁLOGO — denso, se compra buscando
   ====================================================================== */
.modelo-catalogo { font-size: 15px; }
.modelo-catalogo .cabecera-fila { gap: 22px; min-height: 84px; }
.modelo-catalogo .logo { display: flex; align-items: center; gap: 10px; font-size: 17px; line-height: 1.1; }
.modelo-catalogo .logo-marca { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 6px; background: var(--primario); color: var(--acento); font-size: 17px; letter-spacing: .02em; }
.modelo-catalogo .logo small { font-weight: 500; color: var(--suave); font-size: 14px; }
.buscador-grande { flex: 1; display: flex; align-items: stretch; height: 48px; border: 2px solid var(--primario); border-radius: 8px; overflow: hidden; background: #fff; }
.buscador-rubro { display: flex; align-items: center; gap: 6px; padding: 0 14px; background: var(--fondo); border-right: 1px solid var(--borde); font-size: 14px; white-space: nowrap; color: var(--suave); }
.buscador-grande input { flex: 1; border: 0 !important; min-height: 0 !important; border-radius: 0 !important; outline: none; }
.buscador-grande .boton-primario { border-radius: 0; min-height: 0; }
.enlace-cuenta { display: flex; align-items: center; gap: 8px; padding: 0 8px; font-weight: 600; font-size: 14px; line-height: 1.15; }
.enlace-cuenta span { display: flex; flex-direction: column; }
.enlace-cuenta small { font-weight: 400; color: var(--suave); }
.barra-rubros { background: var(--primario); color: #fff; }
.barra-rubros .contenedor { display: flex; align-items: center; gap: 4px; height: 46px; font-size: 14px; }
.barra-rubros a { white-space: nowrap; padding: 0 12px; height: 46px; display: inline-flex; align-items: center; gap: 8px; }
.barra-rubros .rubros-todos { background: var(--primario-osc); font-weight: 600; padding: 0 16px; margin-left: -16px; }
.barra-rubros .destacado { color: var(--acento); font-weight: 600; }
.barra-rubros-ayuda { white-space: nowrap; margin-left: auto; display: inline-flex; align-items: center; gap: 6px; opacity: .85; }
.modelo-catalogo .bloque { padding: 40px 0; }
.modelo-catalogo .bloque-cabecera h2 { font-size: 24px; }
.hero-buscador { background: linear-gradient(180deg, var(--superficie), var(--fondo)); padding: 40px 0 32px !important; }
.hero-buscador .contenedor { display: grid; gap: 28px; }
.hero-buscador h1 { font-size: 36px; }
.hero-buscador p { font-size: 17px; margin: 8px 0 16px; }
.atajos { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; color: var(--suave); }
.atajos a { padding: 6px 12px; border-radius: 999px; background: var(--superficie); border: 1px solid var(--borde); color: var(--texto); }
.ventajas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ventajas li { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border-radius: 8px; background: var(--superficie); border: 1px solid var(--borde); }
.ventajas svg { color: var(--primario); }
.ventajas span { display: flex; flex-direction: column; font-size: 13px; color: var(--suave); }
.ventajas b { color: var(--texto); font-size: 15px; }
.colecciones-iconos .colecciones-grilla { grid-template-columns: repeat(6, 1fr); gap: 12px; }
.colecciones-iconos .coleccion { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 16px 12px; border-radius: 8px; background: var(--superficie); border: 1px solid var(--borde); text-align: center; }
.colecciones-iconos .coleccion-imagen { width: 84px; height: 84px; border-radius: 50%; }
.colecciones-iconos .coleccion-nombre { align-items: center; font-size: 14px; line-height: 1.25; }
.colecciones-iconos .coleccion-nombre small { font-size: 12px; margin-top: 4px; }
.modelo-catalogo .imagen-texto { background: var(--primario); color: #fff; }
.modelo-catalogo .imagen-texto p { color: rgba(255, 255, 255, .8); }
.modelo-catalogo .imagen-texto .boton-secundario { border-color: var(--acento); background: var(--acento); color: var(--texto); }
.modelo-catalogo .imagen-texto h2 { font-size: 30px; }
.modelo-catalogo .imagen-texto-imagen { aspect-ratio: 16 / 9; }
.modelo-catalogo .ficha-info h1 { font-size: 30px; }
.modelo-catalogo .catalogo-cabecera h1 { font-size: 28px; }
.modelo-catalogo .pagina-carrito-contenido h1 { font-size: 30px; }

/* ======================================================================
   MODELO 2 · VIDRIERA VISUAL — aire, fotos grandes, tipografía con serifa
   ====================================================================== */
.modelo-vidriera .anuncio { background: var(--acento); }
.modelo-vidriera .cabecera-fila { min-height: 88px; }
.modelo-vidriera .logo { font-size: 34px; font-weight: 500; letter-spacing: .02em; }
.modelo-vidriera .menu-principal { flex: 1; justify-content: center; letter-spacing: .04em; font-size: 14px; text-transform: uppercase; }
.modelo-vidriera .cabecera-acciones { margin-left: 0; }
.modelo-vidriera .boton-primario { background: var(--texto); letter-spacing: .08em; text-transform: uppercase; font-size: 13px; font-weight: 500; min-height: 50px; padding: 0 30px; }
.modelo-vidriera .boton-secundario { letter-spacing: .08em; text-transform: uppercase; font-size: 13px; font-weight: 500; }
.modelo-vidriera h1, .modelo-vidriera h2 { font-weight: 500; }
.hero-dividido { display: grid; grid-template-columns: 1fr 1.15fr; padding: 0; min-height: 560px; }
.hero-dividido .hero-texto { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 64px max(32px, calc((100vw - 1240px) / 2 + 32px)); padding-right: 64px; }
.hero-dividido h1 { font-size: 68px; }
.hero-dividido .hero-imagen { min-height: 100%; }
.colecciones-mosaico { padding-bottom: 24px; }
.colecciones-mosaico .colecciones-grilla { grid-template-columns: repeat(3, 1fr); gap: 20px; }
.colecciones-mosaico .coleccion { position: relative; }
.colecciones-mosaico .coleccion-imagen { aspect-ratio: 4 / 5; }
.colecciones-mosaico .coleccion-nombre { position: absolute; left: 20px; bottom: 18px; font-family: var(--f-titulo); font-size: 30px; font-weight: 500; }
.colecciones-mosaico .coleccion-nombre small { font-family: var(--f-texto); font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--texto); }
.modelo-vidriera .bloque-cabecera h2 { font-size: 40px; }
.modelo-vidriera .tarjeta-nombre { font-size: 15px; }
.modelo-vidriera .precio b { font-weight: 500; }
.modelo-vidriera .imagen-texto h2 { font-size: 46px; }
.modelo-vidriera .testimonios { background: var(--superficie); }
.modelo-vidriera .testimonios figure { border: 0; background: var(--fondo); text-align: center; }
.modelo-vidriera .estrellas { justify-content: center; }
.modelo-vidriera .testimonios blockquote { font-family: var(--f-titulo); font-size: 22px; line-height: 1.3; }
.modelo-vidriera .ficha-info h1 { font-size: 46px; }
.modelo-vidriera .chip { border-radius: 999px; }

/* ======================================================================
   MODELO 3 · MARCA — portada a sangre, producto protagonista
   ====================================================================== */
.modelo-marca .cabecera { background: var(--primario); border-bottom-color: transparent; color: #f4eedf; }
.modelo-marca .anuncio { background: var(--acento); color: var(--primario-osc); font-weight: 600; }
.modelo-marca .logo { font-size: 30px; font-style: italic; }
.modelo-marca .menu-principal { margin-left: auto; }
.modelo-marca .cabecera-acciones { margin-left: 0; }
.modelo-marca .boton-carrito b { color: var(--primario-osc); }
.modelo-marca .boton-primario { background: var(--acento); color: var(--primario-osc); border-radius: 999px; }
.modelo-marca .boton-secundario { border-radius: 999px; }
.hero-completo { background: var(--primario); color: #f4eedf; padding: 72px 0 88px; }
.hero-completo .contenedor { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; }
.hero-completo h1 { font-size: 64px; }
.hero-completo p { color: rgba(244, 238, 223, .82); }
.hero-completo .sobretitulo { color: var(--acento); }
.hero-completo .hero-imagen { aspect-ratio: 1 / 1; border-radius: 50%; overflow: hidden; border: 10px solid rgba(244, 238, 223, .12); }
.hero-botones { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-completo .boton-secundario { border-color: rgba(244, 238, 223, .6); color: #f4eedf; }
.grandes-grilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.producto-grande { display: flex; flex-direction: column; gap: 12px; padding: 18px; background: var(--superficie); border-radius: var(--radio); border: 1px solid var(--borde); }
.producto-grande h3 { font-size: 24px; }
.producto-grande p { margin: 0; color: var(--suave); font-size: 15px; }
.producto-grande-pie { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 8px; }
.producto-grande .chip { min-height: 34px; padding: 0 12px; border-radius: 999px; }
.modelo-marca .imagen-texto { background: var(--superficie); }
.modelo-marca .imagen-texto-imagen { border-radius: 999px 999px var(--radio) var(--radio); }
.modelo-marca .banner { background: var(--primario-osc); color: var(--acento); }
.modelo-marca .pie { background: #0d1f17; }

/* ======================================================================
   MODELO 4 · LOCAL CON SUCURSALES — cálido, pedir para retirar
   ====================================================================== */
.modelo-local .logo { padding: 8px 18px; border-radius: 999px; background: var(--primario); color: #fff; font-size: 22px; }
.selector-sucursal { display: inline-flex; align-items: center; gap: 10px; padding: 8px 14px; border: 1px solid var(--borde); border-radius: var(--radio); background: var(--fondo); cursor: pointer; text-align: left; }
.selector-sucursal span { display: flex; flex-direction: column; font-size: 14px; font-weight: 700; line-height: 1.2; }
.selector-sucursal small { font-weight: 400; color: var(--suave); font-size: 12px; }
.selector-sucursal > svg:first-child { color: var(--primario); }
.modelo-local .menu-principal { gap: 20px; }
.modelo-local .boton-carrito { background: var(--primario); color: #fff; padding: 0 16px 0 12px; border-radius: 999px; }
.modelo-local .boton-carrito b { position: static; background: var(--acento); color: var(--primario-osc); }
.modelo-local .boton-primario { border-radius: 999px; }
.modelo-local .boton-secundario { border-radius: 999px; border-color: var(--primario); color: var(--primario); }
.hero-local { background: radial-gradient(circle at 80% 30%, #fde3bd, var(--fondo) 60%); padding: 56px 0 !important; }
.hero-local .contenedor { display: grid; grid-template-columns: 1.2fr 1fr; gap: 40px; align-items: center; }
.hero-local h1 { font-size: 58px; color: var(--primario); }
.hero-retiro { display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: 10px; align-items: end; padding: 16px; background: var(--superficie); border-radius: var(--radio); box-shadow: 0 10px 30px rgba(138, 59, 18, .12); }
.hero-retiro .boton-primario { min-height: 46px; }
.hero-local .hero-imagen { aspect-ratio: 1 / 1; border-radius: 40% 60% 55% 45% / 50% 45% 55% 50%; overflow: hidden; }
.modelo-local .tarjeta-imagen { border-radius: var(--radio); }
.modelo-local .sucursales { background: var(--superficie); }
.modelo-local { --mapa-fondo: #f6efe4; --mapa-avenida: #f4d9a6; }
.modelo-local .contacto { background: var(--superficie); }

/* ======================================================================
   PISO 1024 px
   ====================================================================== */
@media (max-width: 1180px) {
  .contenedor { padding-left: 24px; padding-right: 24px; }
  .menu-principal { gap: 18px; font-size: 14px; }
  .modelo-vidriera .menu-principal { gap: 18px; font-size: 13px; }
  .modelo-local .menu-principal a:nth-child(n+4) { display: none; }
  .modelo-catalogo .enlace-cuenta span { display: none; }
  .hero h1 { font-size: 44px; }
  .hero-dividido h1 { font-size: 54px; }
  .hero-completo h1 { font-size: 50px; }
  .hero-local h1 { font-size: 46px; }
  .hero-retiro { grid-template-columns: 1fr 1fr; }
  .hero-retiro .boton-primario { grid-column: 1 / -1; }
  .ventajas li { padding: 12px; }
  .colecciones-iconos .colecciones-grilla { grid-template-columns: repeat(6, 1fr); }
  .barra-rubros-ayuda { display: none; }
  .barra-rubros a { padding: 0 10px; }
  .fila-producto { grid-template-columns: 64px minmax(0, 1fr) 120px 200px; grid-template-areas: "img datos precio comprar" "img stock precio comprar"; gap: 2px 14px; }
  .fila-producto .fila-imagen { grid-area: img; }
  .fila-producto .fila-datos { grid-area: datos; align-self: end; }
  .fila-producto .stock { grid-area: stock; align-self: start; font-size: 13px; }
  .fila-producto .precio { grid-area: precio; }
  .fila-producto .fila-comprar { grid-area: comprar; }
  .fila-imagen { width: 64px; height: 64px; }
  .catalogo-cuerpo { grid-template-columns: 210px minmax(0, 1fr); gap: 26px; }
  .carrito { grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; }
  .renglon { grid-template-columns: 80px minmax(0, 1fr) auto 96px 36px; gap: 14px; padding: 16px; }
  .renglon-imagen { width: 80px; height: 80px; }
  .ficha { gap: 36px; }
  .tarjetas-grilla { gap: 24px 16px; }
}

/* ======================================================================
   CELULAR
   ====================================================================== */
@media (max-width: 760px) {
  body { font-size: 15px; }
  .contenedor { padding-left: 16px; padding-right: 16px; }
  .solo-escritorio { display: none !important; }
  .solo-movil { display: inline-flex !important; }
  .anuncio { font-size: 12px; padding: 7px 12px; }
  .cabecera-fila { gap: 8px; min-height: 60px; }
  .logo { font-size: 22px; }
  .modelo-catalogo .logo { font-size: 14px; }
  .modelo-catalogo .logo-marca { width: 38px; height: 38px; font-size: 14px; }
  .modelo-catalogo .cabecera-fila { min-height: 64px; }
  .modelo-vidriera .logo { font-size: 26px; margin: 0 auto; }
  .modelo-vidriera .cabecera-fila { min-height: 64px; }
  .modelo-marca .logo { font-size: 24px; }
  .modelo-marca .cabecera-acciones { margin-left: auto; }
  .modelo-local .logo { font-size: 18px; padding: 6px 14px; }
  .modelo-local .boton-carrito { padding: 0 12px 0 10px; }
  .buscador-movil { display: flex !important; align-items: center; gap: 8px; margin-bottom: 10px; padding: 0 14px !important; height: 46px; width: calc(100% - 32px); border: 2px solid var(--primario); border-radius: 8px; background: #fff; }
  .buscador-movil input { border: 0 !important; min-height: 0 !important; padding: 0 !important; outline: none; }
  .modelo-local .selector-sucursal.solo-movil { display: flex !important; width: calc(100% - 32px); margin: 0 16px 10px; padding: 8px 12px; }
  .bloque { padding: 40px 0; }
  .bloque-cabecera { margin-bottom: 18px; }
  .bloque-cabecera h2, .testimonios h2 { font-size: 24px; }
  .modelo-vidriera .bloque-cabecera h2 { font-size: 30px; }
  .hero h1, .hero-dividido h1, .hero-completo h1, .hero-local h1 { font-size: 34px; }
  .hero-buscador h1 { font-size: 26px; }
  .hero p { font-size: 16px; margin: 12px 0 20px; }
  .ventajas { grid-template-columns: 1fr 1fr; gap: 8px; }
  .ventajas li { padding: 10px; gap: 8px; }
  .ventajas span { font-size: 12px; }
  .ventajas b { font-size: 13px; }
  .colecciones-iconos .colecciones-grilla { grid-template-columns: repeat(3, 1fr); gap: 8px; }
  .colecciones-iconos .coleccion { padding: 12px 6px; }
  .colecciones-iconos .coleccion-imagen { width: 60px; height: 60px; }
  .colecciones-iconos .coleccion-nombre { font-size: 12px; }
  .colecciones-mosaico .colecciones-grilla { grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
  .colecciones-mosaico .coleccion-nombre { left: 10px; bottom: 8px; font-size: 18px; }
  .colecciones-mosaico .coleccion-nombre small { display: none; }
  .hero-dividido { grid-template-columns: 1fr; min-height: 0; }
  .hero-dividido .hero-imagen { order: -1; aspect-ratio: 4 / 3; }
  .hero-dividido .hero-texto { padding: 28px 16px 36px; }
  .hero-completo { padding: 36px 0 44px; }
  .hero-completo .contenedor, .hero-local .contenedor { grid-template-columns: 1fr; gap: 24px; }
  .hero-completo .hero-imagen { width: 70%; margin: 0 auto; order: -1; }
  .hero-local .hero-imagen { display: none; }
  .hero-local { padding: 32px 0 !important; }
  .hero-retiro { grid-template-columns: 1fr; padding: 12px; }
  .tarjetas-grilla, .catalogo-resultados .tarjetas-grilla { grid-template-columns: 1fr 1fr; gap: 20px 12px; }
  .grandes-grilla, .testimonios-grilla, .sucursales-grilla, .contacto .contenedor { grid-template-columns: 1fr; }
  .imagen-texto .contenedor { grid-template-columns: 1fr; gap: 24px; }
  .imagen-derecha .imagen-texto-imagen { order: 0; }
  .imagen-texto h2, .modelo-vidriera .imagen-texto h2 { font-size: 28px; }
  .imagen-texto p { font-size: 16px; }
  .mapa { min-height: 180px; }
  .contacto-form { grid-template-columns: 1fr; padding: 18px; }
  .banner .contenedor { font-size: 14px; padding: 12px 16px; }

  .fila-producto { grid-template-columns: 64px minmax(0, 1fr) auto; grid-template-areas: "img datos datos" "img stock precio" "comprar comprar comprar"; gap: 6px 12px; padding: 12px; }
  .fila-imagen { grid-area: img; }
  .fila-datos { grid-area: datos; }
  .fila-producto .stock { grid-area: stock; font-size: 13px; }
  .fila-producto .precio { grid-area: precio; }
  .fila-comprar { grid-area: comprar; }
  .fila-comprar .boton-primario { flex: 1; }

  .catalogo-cabecera { align-items: flex-start; flex-direction: column; padding-bottom: 14px; }
  .catalogo-cabecera h1 { font-size: 26px; }
  .catalogo-herramientas { width: 100%; }
  .catalogo-herramientas .boton-secundario { flex: 1; min-height: 44px; }
  .ordenar { flex: 1; }
  .ordenar > :first-child { display: none; }
  .ordenar { font-size: 0; }
  .ordenar .campo { min-width: 0; font-size: 15px; min-height: 44px; }
  .catalogo-cuerpo { grid-template-columns: 1fr; }

  .ficha { grid-template-columns: minmax(0, 1fr); gap: 20px; padding-top: 4px; }
  .ficha-info h1, .modelo-vidriera .ficha-info h1, .modelo-catalogo .ficha-info h1 { font-size: 26px; }
  .ficha-precio .precio b { font-size: 26px; }
  .galeria-miniaturas { gap: 8px; }
  .galeria-flecha { width: 38px; height: 38px; margin-top: -19px; }
  .visor-foto { padding: 0 8px 16px; }
  .visor .galeria-flecha { top: auto; bottom: 18px; margin-top: 0; }
  .ficha-comprar .boton-primario { min-width: 0; padding: 0 14px; }
  .modelo-vidriera .ficha-comprar .boton-primario { letter-spacing: .06em; }

  .pasos small { display: none; }
  .pagina-carrito-contenido { padding-top: 18px; }
  .pagina-carrito-contenido h1 { font-size: 26px; }
  .carrito { grid-template-columns: 1fr; gap: 18px; }
  .renglon { grid-template-columns: 72px minmax(0, 1fr) auto; grid-template-areas: "img datos quitar" "img cantidad total"; gap: 8px 12px; padding: 14px; }
  .renglon-imagen { grid-area: img; width: 72px; height: 72px; }
  .renglon-datos { grid-area: datos; }
  .renglon .cantidad { grid-area: cantidad; justify-self: start; min-width: 92px; height: 38px; }
  .renglon-total { grid-area: total; align-self: center; }
  .renglon .boton-icono { grid-area: quitar; justify-self: end; align-self: start; width: 34px; height: 34px; }
  .resumen { position: static; padding: 18px; }

  .pie { padding: 36px 0 20px; }
  .pie-columnas { grid-template-columns: 1fr 1fr; gap: 24px; }
  .pie-tienda { grid-column: 1 / -1; }
  .pie-base { flex-wrap: wrap; gap: 14px; }
  .pie-legal { margin-left: 0; }
}

/* ======================================================================
   DATOS REALES — fotos del maestro, faltantes y vista previa
   ====================================================================== */
.tarjeta-imagen, .galeria-principal, .coleccion-imagen, .hero-imagen, .imagen-texto-imagen, .fila-imagen, .renglon-imagen { background: var(--foto); }
.tarjeta-imagen img, .galeria-principal img, .coleccion-imagen img, .hero-imagen img, .imagen-texto-imagen img,
.fila-imagen img, .renglon-imagen img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 8%; mix-blend-mode: multiply; }
.hero-imagen img, .imagen-texto-imagen img { object-fit: cover; padding: 0; mix-blend-mode: normal; }
.sin-foto { display: grid; place-items: center; width: 100%; height: 100%; font-family: var(--f-titulo); font-size: clamp(28px, 6vw, 72px); font-weight: 600; color: var(--primario); opacity: .55; }
.fila-imagen .sin-foto, .renglon-imagen .sin-foto { font-size: 28px; }
.colecciones-iconos .coleccion-imagen .sin-foto { font-size: 30px; }
.sin-foto-hero { font-size: clamp(80px, 14vw, 180px); min-height: 280px; }
.hero-imagen { display: grid; }
.hero-imagen > .sin-foto, .imagen-texto-imagen > .sin-foto { height: auto; min-height: 0; }
.imagen-texto-imagen { aspect-ratio: 4 / 3; border-radius: var(--radio); overflow: hidden; }
.etiqueta-falta, .precio-falta { color: #9a3412; }
.precio-falta { font-weight: 600; font-size: 14px; }
.aviso-falta { color: #9a3412; font-size: 14px; }
.vista-previa { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 20px; background: #1f2421; color: #f3f4f2; font: 13px/1.4 system-ui, sans-serif; }
.vista-previa a { color: #fff; text-decoration: underline; white-space: nowrap; }
.vista-previa-aviso { color: #ffcf8a; }
.menu-movil { display: none; }
.filtro-enlace { display: flex; justify-content: space-between; gap: 8px; font-size: 15px; color: var(--texto); }
.filtro-enlace small { color: var(--suave); }
.filtro-enlace.activo { font-weight: 700; color: var(--primario); }
.buscador-filtro .campo { width: 100%; }
.ordenar select.campo { appearance: none; padding-right: 32px; background: var(--superficie) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='1.8'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 16px; font: inherit; color: var(--texto); }
.catalogo-vacio, .carrito-vacio { padding: 40px; text-align: center; color: var(--suave); background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); }
.carrito-vacio .boton-primario { margin-top: 12px; }
.girado { transform: rotate(180deg); }
.form-agregar { display: flex; gap: 8px; }
.fila-comprar .form-agregar { justify-content: flex-end; }
.ficha-comprar .form-agregar { width: 100%; }
.ficha-comprar .form-agregar .boton-primario { flex: 1; }
.cantidad button { display: grid; place-items: center; padding: 0; border: 0; background: none; color: inherit; cursor: pointer; }
.boton-agregar:disabled, .boton-primario:disabled { opacity: .45; cursor: not-allowed; }
.mensaje-pago { margin: 0; font-size: 14px; color: var(--suave); white-space: pre-line; }
.mensaje-pago:empty { display: none; }
.mensaje-pago.es-error { color: #9a3412; }
.aviso-flotante { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); max-width: min(520px, calc(100% - 32px)); padding: 12px 18px; border-radius: 10px; background: #1f2421; color: #fff; font-size: 14px; white-space: pre-line; opacity: 0; pointer-events: none; transition: opacity .2s, transform .2s; z-index: 20; }
.aviso-flotante.visible { opacity: 1; transform: translate(-50%, 0); }
.aviso-flotante.es-error { background: #7c2d12; }
.hero-retiro-real { grid-template-columns: 1fr auto; align-items: center; }
.hero-retiro-lugar { display: flex; align-items: center; gap: 10px; font-size: 15px; }
.hero-retiro-lugar > svg { color: var(--primario); flex: none; }
.hero-retiro-lugar span { display: flex; flex-direction: column; }
.hero-retiro-lugar small { color: var(--suave); font-size: 12px; }
.sucursales-tarjetas { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; list-style: none; margin: 0; padding: 0; }
.contacto-botones { display: flex; flex-wrap: wrap; gap: 12px; }
.pie-redes a { display: inline-flex; margin-right: 10px; }
.pie-columnas span { display: block; color: inherit; opacity: .85; font-size: 14px; margin-bottom: 8px; }
.logo-nombre { max-width: 220px; white-space: normal; line-height: 1.15; }

@media (max-width: 760px) {
  .vista-previa { flex-direction: column; align-items: flex-start; gap: 4px; padding: 8px 16px; }
  .menu-movil:not([hidden]) { display: grid; gap: 2px; padding: 8px 16px 14px; border-top: 1px solid var(--borde); background: var(--superficie); }
  .menu-movil a { padding: 10px 0; font-size: 16px; border-bottom: 1px solid var(--borde); }
  .filtros { display: none; }
  .filtros.abiertos { display: block; }
  .hero-retiro-real { grid-template-columns: 1fr; }
  .sin-foto-hero { min-height: 200px; }
}

/* ======================================================================
   PUBLICACIÓN — páginas legales y botón de arrepentimiento
   ====================================================================== */
.pagina-legal { padding-bottom: 64px; }
.texto-legal { max-width: 760px; }
.texto-legal h1 { font: 700 34px/1.15 var(--f-titulo); margin: 14px 0 18px; }
.texto-legal h2 { font: 700 19px var(--f-texto); margin: 26px 0 8px; }
.texto-legal p { line-height: 1.6; color: var(--texto); margin: 0 0 12px; }
.texto-legal a:not(.boton-primario) { color: var(--primario); text-decoration: underline; }
.form-arrepentimiento { display: grid; gap: 14px; margin-top: 22px; padding: 24px; background: var(--superficie); border: 1px solid var(--borde); border-radius: var(--radio); }
.form-arrepentimiento .dos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-arrepentimiento .boton-primario { justify-self: start; }
.arrepentimiento-codigo { display: grid; gap: 6px; margin-top: 22px; padding: 20px 24px; border: 1px solid #2e7d4f; border-radius: var(--radio); background: #eef7f1; }
.arrepentimiento-codigo b { font: 700 24px 'IBM Plex Mono', monospace; letter-spacing: .04em; }
@media (max-width: 760px) {
  .texto-legal h1 { font-size: 27px; }
  .form-arrepentimiento { padding: 18px; }
  .form-arrepentimiento .dos { grid-template-columns: minmax(0, 1fr); }
  .form-arrepentimiento .boton-primario { justify-self: stretch; }
}
