/* Colores tomados del logo */
:root {
  --amarillo: #f8d00f;
  --amarillo-oscuro: #e0b800;
  --rojo: #e01b24;
  --azul: #0b3a8c;
  --azul-oscuro: #07255a;
  --azul-noche: #051a40;
  --verde-wa: #25d366;
  --texto: #1c2333;
  --texto-suave: #556070;
  --fondo: #ffffff;
  --fondo-alt: #f3f5f9;
  --borde: #dfe4ec;
  /* Superficies y texto derivados (antes escritos a mano en varios lugares) */
  --borde-fuerte: #c3ccd9;
  --amarillo-claro: #fff8d6;
  --amarillo-borde: #ecd56a;
  --texto-sobre-azul: #d6deee;
  --texto-sobre-azul-suave: #aab6cc;
  --verde-wa-oscuro: #128c4a;
  --verde-wa-claro: #e8f9ee;
  --verde-wa-texto: #05301a;
  /* Forma */
  --radio: 8px;
  --radio-pequeno: 6px;
  --sombra: 0 10px 24px -8px rgba(5, 26, 64, .22);
  --sombra-elevada: 0 24px 60px rgba(5, 26, 64, .35);
  /* Ritmo: tomado de las secciones del Inicio */
  --espacio-seccion: clamp(2.75rem, 5vw, 4rem);
  --espacio-cabecera: 1.5rem;
  --espacio-tarjeta: 1.1rem 1.2rem 1.25rem;
  --gap-tarjetas: 1.25rem;
  /* Escala tipográfica */
  --fs-h3: 1.25rem;
  --fs-pequeno: .875rem;
  --alto-control: 48px;
  --mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;
  /* Pliegue: el zigzag del papel filtrante plisado, firma visual de la marca */
  --pliegue: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='10' viewBox='0 0 16 10'%3E%3Cpath d='M0 9 L4 1 L8 9 L12 1 L16 9' fill='none' stroke='%23f8d00f' stroke-width='1.6' stroke-linejoin='miter'/%3E%3C/svg%3E");
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 90px; scrollbar-color: var(--azul) var(--fondo-alt); }

/* Superficies del navegador con la paleta de la marca */
::selection { background: var(--amarillo); color: var(--azul-noche); }
input, select, textarea { caret-color: var(--rojo); accent-color: var(--azul); }
:focus-visible { outline: 3px solid var(--amarillo); outline-offset: 2px; border-radius: 4px; }
.hero :focus-visible, .footer :focus-visible { outline-color: #fff; }
a { text-underline-offset: 3px; text-decoration-thickness: 1px; }

/* Códigos de filtro como etiquetas de repuesto: son datos, van en monoespaciada */
.codigo, .ref h3, .producto p, .filtro-tile__codigos, .hours td, .ficha__detalle {
  font-variant-numeric: tabular-nums;
}
.codigo, .ref h3 { font-family: var(--mono); letter-spacing: -.01em; }

.etiqueta-codigo {
  display: inline-block; margin-right: .3rem; padding: .05rem .4rem;
  font: 600 .82rem var(--mono); letter-spacing: -.01em; color: var(--azul-noche);
  background: var(--amarillo-claro); border: 1px solid var(--amarillo-borde); border-radius: 3px;
}

/* Franja plisada: separador propio, como el borde de un elemento filtrante */
.pliegue { height: 10px; background: var(--pliegue) left center / 16px 10px repeat-x; }
/* Títulos de sección como rótulo de taller: mayúsculas condensadas y un tramo corto de pliegue debajo */
.section__head h2, .about__text h2, .location__info h2, .fabrica__texto h2, .inicio-cabecera h2 {
  text-transform: uppercase; letter-spacing: .005em; font-weight: 800;
}
.section__head h2::after, .about__text h2::after, .location__info h2::after, .fabrica__texto h2::after, .inicio-cabecera h2::after {
  content: ""; display: block; width: 64px; height: 10px; margin-top: .6rem;
  background: var(--pliegue) left center / 16px 10px repeat-x;
  filter: grayscale(1) brightness(.55); opacity: .6;
}
.footer { position: relative; }
.footer::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 10px;
  background: var(--pliegue) left center / 16px 10px repeat-x;
}

body {
  margin: 0;
  font-family: "Barlow", system-ui, sans-serif;
  font-size: 17px;
  line-height: 1.6;
  color: var(--texto);
  background: var(--fondo);
}

img { max-width: 100%; display: block; }
[hidden] { display: none !important; }

h1, h2, h3 {
  font-family: "Barlow Condensed", "Barlow", sans-serif;
  line-height: 1.1;
  margin: 0 0 .5em;
  text-wrap: balance;
}
h2 { font-size: clamp(2rem, 4vw, 2.75rem); color: var(--azul-oscuro); }
h3 { font-size: var(--fs-h3); color: var(--azul-oscuro); }

a { color: inherit; }

.container { width: min(1180px, 100% - 32px); margin-inline: auto; }


/* Botones */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: var(--alto-control); padding: .7rem 1.4rem;
  border: 2px solid transparent;
  border-radius: 999px;
  font: 700 1rem "Barlow", sans-serif;
  text-decoration: none; cursor: pointer;
  transition: transform .15s, background-color .15s, color .15s, border-color .15s;
}
.btn:active { transform: translateY(1px); }
.btn svg { width: 20px; height: 20px; fill: currentColor; }
.btn--sm { padding: .5rem 1rem; font-size: .95rem; }
.btn--primary { background: var(--amarillo); color: var(--azul-noche); }
.btn--primary:hover { background: var(--amarillo-oscuro); }
.btn--outline { border-color: #fff; color: #fff; }
.btn--outline:hover { background: #fff; color: var(--azul-oscuro); }
/* Verde de WhatsApp con texto oscuro: el blanco sobre #25d366 no llega al contraste mínimo */
.btn--whatsapp { background: var(--verde-wa); color: var(--verde-wa-texto); }
.btn--whatsapp:hover { background: #1fbf5b; }

/* Barra superior */
.topbar { background: var(--azul-noche); color: #cfd8ea; font-size: .88rem; }
.topbar__inner {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem 1.5rem;
  padding-block: .45rem;
}
.topbar__item, .topbar__links a { display: inline-flex; align-items: center; gap: .4rem; }
.topbar__links { display: flex; flex-wrap: wrap; gap: 1.25rem; }
.topbar__links a { text-decoration: none; }
.topbar__links a:hover { color: var(--amarillo); }
.topbar svg { width: 15px; height: 15px; fill: var(--amarillo); }

/* Encabezado */
.header {
  position: sticky; top: 0; z-index: 50;
  background: #fff;
  border-bottom: 4px solid var(--rojo);
  box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
}
.header__inner { display: flex; align-items: center; justify-content: space-between; padding-block: .5rem; }
.header__logo img { width: 150px; height: auto; }

.nav { display: flex; align-items: center; gap: 1.75rem; }
.nav a:not(.btn) {
  font-weight: 600; text-decoration: none; color: var(--azul-oscuro);
  padding-block: .25rem; border-bottom: 3px solid transparent;
}
.nav a:not(.btn):hover { border-bottom-color: var(--amarillo); }
.nav a.activo { border-bottom-color: var(--rojo); }

/* Submenú de Productos */
.nav__grupo { position: relative; }
.nav__padre::after { content: ""; display: inline-block; margin-left: .35rem; border: 5px solid transparent; border-top-color: currentColor; transform: translateY(3px); }
.nav__sub {
  position: absolute; top: calc(100% + 8px); left: -1rem; z-index: 60; min-width: 220px;
  display: none; flex-direction: column; padding: .5rem 0;
  background: #fff; border: 1px solid var(--borde); border-radius: 6px; box-shadow: var(--sombra);
}
.nav__sub::before { content: ""; position: absolute; inset: -12px 0 auto; height: 12px; }
.nav__grupo:hover .nav__sub, .nav__grupo:focus-within .nav__sub { display: flex; }
.nav .nav__sub a { padding: .55rem 1.1rem; border-bottom: 0; font-weight: 600; }
.nav .nav__sub a:hover { background: var(--amarillo-claro); }

.nav-toggle {
  display: none; width: 44px; height: 44px; padding: 10px;
  border: 0; background: none; cursor: pointer;
}
.nav-toggle span { display: block; height: 3px; margin: 5px 0; background: var(--azul-oscuro); border-radius: 2px; transition: .2s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* Portada a todo el ancho: la foto de taller ocupa el fondo con los filtros a la derecha.
   El degradado azul solo cubre la zona del texto; los filtros quedan limpios. */
.hero {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: clamp(470px, 38vw, 580px);
  color: #fff; background: var(--azul-noche);
}
.hero__foto {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%; object-fit: cover; object-position: 72% 68%;
}
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(5, 26, 64, .93) 0%, rgba(5, 26, 64, .86) 30%, rgba(5, 26, 64, .45) 46%, rgba(5, 26, 64, 0) 58%);
}
.hero__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: minmax(0, 27rem); align-items: center;
  min-height: inherit; padding-block: 2.5rem;
}
.hero__text { min-width: 0; }
.hero h1 { font-size: clamp(2rem, 3vw, 2.85rem); color: #fff; margin-bottom: .3em; }
.hero h1 span { display: block; }
.hero__lead { max-width: 25rem; margin: 0 0 1rem; font-size: .95rem; line-height: 1.45; }

.hero__buscar {
  display: flex; align-items: center; gap: .5rem; max-width: 100%;
  padding: .35rem .35rem .35rem 1rem; background: #fff; border-radius: 999px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, .25);
}
.hero__buscar svg { width: 20px; height: 20px; flex: none; fill: var(--texto-suave); }
.hero__buscar input { flex: 1; min-width: 0; padding: .6rem 0; border: 0; outline: 0; background: none; font: inherit; font-size: .98rem; color: var(--texto); }
.hero__buscar button {
  flex: none; padding: .7rem 1.5rem; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--amarillo); color: var(--azul-noche); font: 700 1rem "Barlow", sans-serif;
}
.hero__buscar button:hover { background: var(--amarillo-oscuro); }
.hero__buscar:focus-within { box-shadow: 0 0 0 3px var(--amarillo), 0 10px 24px rgba(0, 0, 0, .25); }
.hero__catalogo { display: inline-block; margin: .7rem 0 1.1rem .4rem; color: #fff; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.hero__catalogo:hover { color: var(--amarillo); }

.sellos { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; row-gap: .8rem; }
.sellos li { display: flex; align-items: center; gap: .6rem; padding: 0 1.1rem; border-left: 1px solid rgba(255, 255, 255, .25); }
.sellos li:first-child { border-left: 0; padding-left: 0; }
.sellos svg { width: 32px; height: 32px; flex: none; color: #fff; }
.sellos span { font-size: .78rem; line-height: 1.3; color: var(--texto-sobre-azul); white-space: nowrap; }
.sellos { flex-wrap: nowrap; }
.sellos li { padding: 0 .6rem; gap: .45rem; }
.sellos svg { width: 28px; height: 28px; }

/* ---------- Inicio: sistema común de secciones ----------
   Todas las secciones posteriores al hero comparten espaciado, contenedor y título (.inicio-titulo). */
.inicio-bloque { padding-block: var(--espacio-seccion); }
.inicio-bloque + .inicio-bloque { padding-top: 0; }
.inicio-cabecera { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .5rem 2rem; margin-bottom: var(--espacio-cabecera); }
.inicio-cabecera h2 { margin: 0; }
.inicio-cabecera a { font-weight: 700; color: var(--azul); text-decoration: none; }
.inicio-cabecera a:hover { text-decoration: underline; }

/* Industrias: tarjetas fotográficas uniformes, solo informativas (no hay páginas de industria) */
.industrias__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.25rem; }
.industria { display: flex; flex-direction: column; overflow: hidden; }
.industria img {
  width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; object-position: 60% 58%;
  background: var(--fondo-alt); transition: transform .5s cubic-bezier(.16, 1, .3, 1);
}
.industria:hover img { transform: scale(1.03); }
.industria h3 { margin: 0; padding: 1rem 1.1rem .3rem; font-size: 1.2rem; font-weight: 700; color: var(--azul-oscuro); text-transform: none; }
.industria p { margin: 0; padding: 0 1.1rem 1.15rem; font-size: .9rem; line-height: 1.45; color: var(--texto-suave); }

/* Por qué Solo Filtros: tres razones en una fila, separadas por líneas finas */
.razones { list-style: none; margin: 0; padding: 1.75rem 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid var(--borde); }
.razones li { padding: .25rem 1.75rem; border-left: 1px solid var(--borde); }
.razones li:first-child { border-left: 0; padding-left: 0; }
.razones strong { display: block; font: 800 2.1rem/1 "Barlow Condensed", sans-serif; text-transform: uppercase; color: var(--azul-oscuro); }
.razones span { display: block; margin-top: .45rem; font-size: .95rem; color: var(--texto-suave); max-width: 22rem; }

/* Marcas: celdas iguales, logo centrado con tamaño óptico parejo (ver script.js) */
.franja-marcas ul { --cols: 7; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.franja-marcas li {
  flex: 0 0 calc((100% - (var(--cols) - 1) * .75rem) / var(--cols)); min-width: 0;
  display: grid; place-items: center; height: 84px; padding: .75rem;
  background: #fff; border: 1px solid var(--borde); border-radius: var(--radio);
}
.franja-marcas img { width: auto; height: auto; max-width: 82%; max-height: 50px; object-fit: contain; }
.hero h1 span { color: var(--amarillo); }
.hero__lead { font-size: 1.15rem; color: var(--texto-sobre-azul); max-width: 38rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.75rem; }

.status {
  display: inline-flex; align-items: center; gap: .5rem;
  margin: 1.5rem 0 0; font-weight: 600; font-size: .95rem;
}
.status::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
.status--abierto { color: #5ee08b; }
.status--cerrado { color: #ff8a8a; }

/* Secciones */
.section { padding-block: var(--espacio-seccion); }
.section--alt { background: var(--fondo-alt); }
.section__head { max-width: 46rem; margin-bottom: var(--espacio-cabecera); }
.section__head p { margin: 0; color: var(--texto-suave); }
.section__head h2 + p { margin-top: .25rem; }
/* Dos secciones seguidas de la misma página no duplican el espacio */
#nosotros + #sectores { padding-top: 0; }

/* Tarjeta base: blanco, borde fino, radio común; al pasar el mouse, borde y sombra suaves */
.tarjeta, .industria, .acceso, .producto, .vehiculo, .aplicacion, .ref, .filtro-tile, .contact__item, .pasos li, .about__list li, .b-caja {
  background: #fff; border: 1px solid var(--borde); border-radius: var(--radio);
}
.industria, .acceso, .producto, .contact__item, .pasos li { transition: border-color .25s ease-out, box-shadow .25s ease-out; }
.industria:hover, .acceso:hover, .producto:hover, .contact__item:hover, .pasos li:hover { border-color: var(--borde-fuerte); box-shadow: var(--sombra); }

/* Inicio: accesos directos ("Todo para el mantenimiento de tu equipo") */
.accesos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.acceso { display: flex; flex-direction: column; overflow: hidden; text-decoration: none; }
.acceso img {
  width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; padding: 1rem;
  background: #fff; border-bottom: 3px solid var(--amarillo);
  transition: transform .5s cubic-bezier(.16, 1, .3, 1);
}
.acceso img[src*="fabricacion"], .acceso img[src*="referencias"] { object-fit: cover; padding: 0; }
.acceso:hover img { transform: scale(1.03); }
.acceso__texto { display: flex; flex-direction: column; gap: .3rem; flex: 1; padding: 1.1rem 1.2rem 1.3rem; }
.acceso__texto strong { font: 700 1.35rem "Barlow Condensed", sans-serif; color: var(--azul-oscuro); }
.acceso__texto strong::after { content: " →"; color: var(--rojo); transition: margin .25s ease-out; }
.acceso:hover .acceso__texto strong::after { margin-left: .15rem; }
.acceso__texto span { font-size: .92rem; color: var(--texto-suave); line-height: 1.4; }

/* Catálogo: barra de filtros */
.catalogo__barra { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; }
.tabs { display: inline-flex; padding: 4px; background: var(--fondo-alt); border-radius: 999px; }
.tab {
  padding: .6rem 1.4rem; border: 0; border-radius: 999px; background: none; cursor: pointer;
  font: 700 1rem "Barlow", sans-serif; color: var(--azul-oscuro);
}
.tab.activo { background: var(--azul); color: #fff; }
.buscador {
  flex: 1 1 280px; max-width: 420px;
  display: flex; align-items: center; gap: .5rem;
  min-height: var(--alto-control); padding: 0 .9rem;
  border: 1px solid var(--borde-fuerte); border-radius: var(--radio-pequeno); background: #fff;
}
.buscador:hover { border-color: var(--azul); }
.buscador:focus-within { border-color: var(--azul); box-shadow: 0 0 0 1px var(--azul); }
.buscador svg { width: 20px; height: 20px; fill: var(--texto-suave); flex: none; }
.buscador input { flex: 1; min-width: 0; padding: .6rem 0; border: 0; outline: 0; font: 500 1rem "Barlow", sans-serif; background: none; }

.chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.chip {
  padding: .4rem 1rem; border: 1.5px solid var(--borde); border-radius: 999px;
  background: #fff; cursor: pointer; font: 600 .92rem "Barlow", sans-serif; color: var(--texto);
}
.chip:hover { border-color: var(--azul); }
.chip.activo { background: var(--amarillo); border-color: var(--amarillo); color: var(--azul-noche); }

.catalogo__conteo { margin: 1.5rem 0 .75rem; color: var(--texto-suave); font-size: .92rem; }
.mas-productos { display: flex; margin: 1.75rem auto 0; background: #fff; }
.mas-productos:hover, .legal .btn:hover { background: var(--azul); color: #fff; }
.catalogo__vacio { padding: 2rem; text-align: center; background: var(--fondo-alt); border-radius: var(--radio); }
.catalogo__vacio a { color: var(--azul); font-weight: 700; }

/* Catálogo: tarjetas */
.productos { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1.25rem; }
.producto { display: flex; flex-direction: column; overflow: hidden; }
.producto__foto { aspect-ratio: 1; overflow: hidden; background: #fff; border-bottom: 3px solid var(--amarillo); }
.producto__foto img { width: 100%; height: 100%; object-fit: contain; padding: .5rem; transition: transform .5s cubic-bezier(.16, 1, .3, 1); }
.producto:hover .producto__foto img { transform: scale(1.03); }
.producto__info { display: flex; flex-direction: column; flex: 1; padding: var(--espacio-tarjeta); }
.producto__uso { font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rojo); }
.producto__marca { margin-top: .4rem; font-size: var(--fs-pequeno); font-weight: 600; color: var(--texto-suave); }
.producto h3 { margin: .1rem 0 .4rem; font-size: var(--fs-h3); line-height: 1.15; }
.producto p { margin: 0 0 1rem; font-size: var(--fs-pequeno); color: var(--texto-suave); line-height: 1.45; }
.producto__foto img.sin-foto { object-fit: contain; padding: 22%; }
.producto--ficha .producto__foto { cursor: zoom-in; }
.producto__acciones { margin-top: auto; display: flex; flex-wrap: wrap; gap: .5rem; }
.producto__ficha, .producto__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  min-height: 40px; padding: .4rem .95rem; border: 1.5px solid transparent; border-radius: 999px;
  font: 700 .9rem "Barlow", sans-serif; text-decoration: none; cursor: pointer;
  transition: background-color .15s, color .15s, border-color .15s;
}
.producto__ficha { border-color: var(--borde-fuerte); background: #fff; color: var(--azul); }
.producto__ficha:hover { border-color: var(--azul); background: var(--azul); color: #fff; }
.producto__btn { background: var(--verde-wa-claro); color: var(--verde-wa-oscuro); }
.producto__btn:hover { background: var(--verde-wa); color: var(--verde-wa-texto); }
.producto__btn svg { width: 18px; height: 18px; fill: currentColor; }

.aviso {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem;
  margin-top: 2.5rem; padding: 1.75rem 2rem;
  background: var(--azul-oscuro) var(--pliegue) left top / 16px 10px repeat-x; padding-top: 2.25rem !important; border-radius: var(--radio);
}
.aviso h3 { color: var(--amarillo); font-size: 1.6rem; }
.aviso p { margin: 0; max-width: 46rem; color: var(--texto-sobre-azul); }

/* Ventana de ficha técnica */
.ficha {
  width: min(960px, 100% - 32px); max-height: calc(100% - 32px);
  padding: 0; border: 0; border-radius: var(--radio); overflow: auto;
  box-shadow: var(--sombra-elevada);
}
.ficha::backdrop { background: rgba(5, 26, 64, .6); }
.ficha__cerrar {
  /* Bloque a la derecha que no ocupa alto: no le quita ancho al contenido (antes era float) */
  position: sticky; top: .75rem; display: block; margin: .75rem .75rem -52px auto; z-index: 2;
  width: 40px; height: 40px; border: 0; border-radius: 50%;
  background: var(--fondo-alt); font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--azul-oscuro);
}
.ficha__cerrar:hover { background: var(--amarillo); }
.ficha__contenido { display: grid; grid-template-columns: 1fr 1.25fr; }
.ficha__foto { background: #fff; border-right: 1px solid var(--borde); }
.ficha__foto img { width: 100%; height: auto; position: sticky; top: 0; }
.ficha__datos .producto__marca { display: block; }
.ficha__foto img.sin-foto { padding: 3rem 2.5rem; }
.ficha__datos { padding: 1.75rem 1.75rem 2rem; min-width: 0; }
.ficha__datos h3 { font-size: clamp(1.6rem, 2.6vw, 2rem); margin: .15rem 0 .3rem; }
.ficha__datos > p { color: var(--texto-suave); margin: 0 0 1rem; }
.ficha__detalle { font-weight: 600; color: var(--azul) !important; }
.ficha__tabla { width: 100%; border-collapse: collapse; margin: .5rem 0 1.5rem; font-size: .92rem; font-variant-numeric: tabular-nums; }
.ficha__tabla th, .ficha__tabla td { padding: .5rem .6rem; border-bottom: 1px solid var(--borde); text-align: left; vertical-align: top; }
.ficha__tabla th { width: 42%; font-weight: 600; color: var(--azul-oscuro); }
.ficha__tabla tr:nth-child(odd) { background: var(--fondo-alt); }
.ficha__acciones { display: flex; flex-wrap: wrap; gap: .6rem; }
.btn--linea { border-color: var(--azul); color: var(--azul); }
.btn--linea:hover { background: var(--azul); color: #fff; }

/* Buscador de filtros */
/* Campos con etiqueta sobre el borde, al estilo de los catálogos de filtros */
.b-caja {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem 1rem;
  padding: 1.75rem 1.5rem 1.5rem;
}
.campo { position: relative; display: block; }
.campo[hidden] { display: none; }
.campo--ancho { grid-column: span 2; }
.campo > span {
  position: absolute; top: -.6rem; left: .7rem; padding: 0 .3rem;
  background: #fff; font-size: .78rem; font-weight: 500; color: var(--texto-suave); line-height: 1.2;
}
.campo select, .campo input {
  width: 100%; min-height: var(--alto-control); padding: .75rem 2.4rem .75rem .9rem;
  border: 1px solid var(--borde-fuerte); border-radius: var(--radio-pequeno); background-color: #fff;
  transition: border-color .15s, box-shadow .15s;
  font: 500 1rem "Barlow", sans-serif; color: var(--texto);
  appearance: none; cursor: pointer;
}
.campo select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5z' fill='%23333'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .6rem center; background-size: 22px;
}
.campo input { cursor: text; padding-right: .9rem; }
.campo select:not(:disabled):hover, .campo input:hover { border-color: var(--azul); }
.campo select:focus, .campo input:focus { outline: 0; border-color: var(--azul); box-shadow: 0 0 0 1px var(--azul); }
.campo:focus-within > span { color: var(--azul); }
.campo select:disabled { background-color: var(--fondo-alt); color: var(--texto-suave); cursor: not-allowed; }

.b-ayuda { margin: 1.5rem 0 .75rem; color: var(--texto-suave); }
/* Ficha de un vehículo */
.vehiculo { margin-top: var(--espacio-cabecera); padding: 1.5rem; }
.vehiculo__cabecera { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.vehiculo__cabecera h3 { margin: .2rem 0 0; font-size: clamp(1.35rem, 2vw, 1.6rem); }
.filtro-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 1rem; }
.filtro-tile { display: flex; flex-direction: column; overflow: hidden; }
.filtro-tile__foto { aspect-ratio: 1; display: grid; place-items: center; background: #fff; border-bottom: 3px solid var(--amarillo); color: var(--borde-fuerte); }
.filtro-tile__foto img { width: 100%; height: 100%; object-fit: contain; }
.filtro-tile__foto svg { width: 40%; }
.filtro-tile__tipo { padding: .7rem .8rem .3rem; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rojo); }
.filtro-tile__codigos { padding: 0 .8rem .7rem; }
.b-nota { margin: 1.25rem 0 0; font-size: var(--fs-pequeno); color: var(--texto-suave); }
#b-resultados > .catalogo__vacio { margin-top: 1.5rem; }
.b-mas { margin-top: 1.25rem; }

.aplicaciones, .refs { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 1rem; }
.aplicacion, .ref {
  display: flex; flex-direction: column; gap: .75rem;
  padding: var(--espacio-tarjeta);
}
.aplicacion .producto__btn, .ref .producto__btn { margin-top: auto; align-self: flex-start; }
.aplicacion__marca { font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rojo); }
.aplicacion h3 { margin: .1rem 0 0; font-size: 1.2rem; line-height: 1.2; }
.aplicacion__tabla { width: 100%; border-collapse: collapse; font-size: .9rem; }
.aplicacion__tabla th, .aplicacion__tabla td { padding: .45rem .4rem; border-bottom: 1px solid var(--borde); text-align: left; vertical-align: top; }
.aplicacion__tabla th { width: 36%; font-weight: 600; color: var(--texto-suave); }

.codigo {
  display: inline-flex; align-items: center; gap: .35rem; margin: 0 .3rem .3rem 0;
  padding: .2rem .55rem; border: 1.5px solid var(--borde); border-radius: var(--radio-pequeno); background: var(--fondo-alt);
  font: 600 .88rem "Barlow", sans-serif; color: var(--azul-oscuro); cursor: pointer;
}
.codigo:hover { border-color: var(--azul); background: #fff; }
.codigo--foto { padding-left: .2rem; background: #fff; }
.codigo--catalogo { border-color: var(--amarillo); background: var(--amarillo-claro); }
.codigo img { width: 34px; height: 34px; object-fit: contain; border-radius: 4px; background: #fff; }

.ref__cabecera { display: flex; align-items: center; gap: 1rem; }
.ref__foto { width: 96px; height: 96px; flex: none; display: grid; place-items: center; border-radius: 8px; border: 1px solid var(--borde); background: #fff; color: var(--borde-fuerte); overflow: hidden; }
.ref__foto img { width: 100%; height: 100%; object-fit: contain; }
.ref__foto svg { width: 55%; }
.ref__vehiculo { padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.ref__vehiculo:hover { color: var(--azul); text-decoration: underline; }

.ref h3 { margin: 0; font-size: 1.4rem; }
.ref__titulo { margin: .25rem 0 0; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-suave); }
#b-resultados > .ref__titulo { margin-top: 1.5rem; }
.b-productos { margin: .75rem 0 1rem; }
.ref__vehiculos { margin: 0; padding-left: 1.1rem; font-size: .9rem; color: var(--texto); }
.ref__vehiculos li { margin-bottom: .15rem; }
.ref__ver { align-self: flex-start; padding: 0; border: 0; background: none; font: 700 .9rem "Barlow", sans-serif; color: var(--azul); cursor: pointer; }
.ref__ver:hover { text-decoration: underline; }

.sugerencia {
  margin: 1rem 0 0; padding: .7rem 1rem; border-radius: var(--radio);
  background: var(--amarillo-claro); border: 1px solid #f1dd7a; font-size: .95rem;
}
.sugerencia button { margin-left: .35rem; padding: 0; border: 0; background: none; font: 700 .95rem "Barlow", sans-serif; color: var(--azul); cursor: pointer; text-decoration: underline; }

.ficha__aplicaciones { margin: -.5rem 0 1.5rem; font-size: .92rem; }
.ficha__aplicaciones summary { cursor: pointer; font-weight: 700; color: var(--azul); }
.ficha__aplicaciones ul { margin: .5rem 0 0; padding-left: 1.1rem; max-height: 220px; overflow: auto; }

/* Fabricación y reconstrucción */
/* Fondo blanco como las demás páginas (el usuario no quiso el fondo azul oscuro) */
.fabrica {
  padding-block: var(--espacio-seccion);
  color: var(--texto); background: #fff;
}
.fabrica__intro { display: grid; grid-template-columns: 1.1fr 1fr; gap: 3rem; align-items: center; }
.fabrica__texto { min-width: 0; }
.fabrica__texto > p { color: var(--texto-suave); max-width: 36rem; margin: 0 0 .9rem; }
.fabrica__texto strong { color: var(--azul-oscuro); font-weight: 700; }
.fabrica__servicios { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; margin: 1.5rem 0 1.75rem; }
.fabrica__servicios > div { padding: 1.1rem 0 0; border-top: 1px solid var(--borde); }
.fabrica__servicios h3 { margin: 0 0 .35rem; font-size: var(--fs-h3); color: var(--azul-oscuro); }
.fabrica__servicios p { margin: 0; font-size: .95rem; line-height: 1.45; color: var(--texto-suave); }
.fabrica__foto { margin: 0; }
.fabrica__foto img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radio); border: 1px solid var(--borde); }
.fabrica__foto figcaption { margin-top: .6rem; font-size: var(--fs-pequeno); color: var(--texto-suave); }

/* Proceso: tarjetas como las del Inicio, sobre fondo gris claro; el número de paso es información (orden real) */
.pasos {
  list-style: none; margin: 0; padding: 0; counter-reset: paso;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap-tarjetas);
}
.pasos li { counter-increment: paso; display: flex; flex-direction: column; overflow: hidden; color: var(--texto); }
.pasos img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-bottom: 3px solid var(--amarillo); }
.pasos h3 { display: flex; align-items: center; gap: .55rem; margin: 0; padding: 1rem 1.2rem .3rem; font: 700 var(--fs-h3) "Barlow Condensed", sans-serif; color: var(--azul-oscuro); }
.pasos h3::before {
  content: counter(paso); display: grid; place-items: center; flex: none;
  width: 1.6rem; height: 1.6rem; border-radius: 50%;
  background: var(--azul-oscuro); color: #fff; font: 700 .85rem "Barlow", sans-serif;
}
.pasos p { margin: 0; padding: 0 1.2rem 1.25rem; font-size: var(--fs-pequeno); line-height: 1.45; color: var(--texto-suave); }

.fabrica__equipo { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap-tarjetas); margin-top: var(--gap-tarjetas); }
.fabrica__equipo > div { padding: 1.25rem 1.4rem 1.4rem; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio); }
.fabrica__equipo h3 { margin: 0 0 .8rem; font: 700 .8rem "Barlow", sans-serif; letter-spacing: .08em; text-transform: uppercase; color: var(--texto-suave); }
.etiquetas { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.etiquetas li { padding: .35rem .8rem; background: var(--fondo-alt); border: 1px solid var(--borde); border-radius: 999px; font-size: var(--fs-pequeno); color: var(--texto); }

/* Nosotros */
.about { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 2.5rem 3rem; align-items: start; }
.about__text p { margin: 0 0 1rem; color: var(--texto-suave); max-width: 40rem; }
.about__text p:first-of-type { font-size: 1.15rem; line-height: 1.55; color: var(--texto); }
.about__list { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
.about__list li { padding: 1rem 1.2rem; }
.about__list strong { display: block; font: 700 var(--fs-h3) "Barlow Condensed", sans-serif; color: var(--azul-oscuro); }
.about__list span { font-size: .95rem; color: var(--texto-suave); }
/* Espacio reservado para una futura foto real del equipo (oculto hasta tener la foto) */
.about__equipo { grid-column: 1 / -1; margin: 0; }
.about__equipo img { width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; border-radius: var(--radio); }
.about__equipo figcaption { margin-top: .6rem; font-size: var(--fs-pequeno); color: var(--texto-suave); }

/* Ubicación */
/* Foto del local + datos arriba; el mapa ocupa todo el ancho debajo */
.location { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--gap-tarjetas) 3rem; align-items: start; }
.location__foto { margin: 0; min-width: 0; }
.location__foto img { width: 100%; height: auto; border-radius: var(--radio); border: 1px solid var(--borde); }
.location__foto figcaption { margin-top: .6rem; font-size: var(--fs-pequeno); color: var(--texto-suave); }
.location__botones { display: flex; flex-wrap: wrap; gap: .6rem; }
.location__map { grid-column: 1 / -1; }
.location address { font-style: normal; margin-bottom: 1rem; font-size: 1.1rem; line-height: 1.5; }
.hours { width: 100%; border-collapse: collapse; margin-bottom: 1.5rem; border: 1px solid var(--borde); border-radius: var(--radio); overflow: hidden; border-style: hidden; box-shadow: 0 0 0 1px var(--borde); }
.hours th, .hours td { padding: .75rem 1rem; border-bottom: 1px solid var(--borde); text-align: left; background: #fff; }
.hours th { font-weight: 600; }
.hours td { text-align: right; color: var(--texto-suave); }
.hours tr.hoy th, .hours tr.hoy td { background: var(--amarillo-claro); }
.hours tr.hoy th::after { content: "Hoy"; margin-left: .5rem; padding: .05rem .5rem; border-radius: 999px; background: var(--amarillo); color: var(--azul-noche); font-size: .75rem; }
.location__map { border-radius: var(--radio); overflow: hidden; border: 1px solid var(--borde); background: #fff; }
/* Mapa fijo: imagen siempre visible; al tocarla se abre Google Maps */
.mapa-fijo { display: block; }
.mapa-fijo img { display: block; width: 100%; height: clamp(260px, 32vw, 460px); object-fit: cover; object-position: 50% 45%; }
.mapa-barra {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.25rem;
  padding: .75rem 1rem; border-top: 1px solid var(--borde); font-size: var(--fs-pequeno); color: var(--texto-suave);
}
.mapa-barra a:not(.btn) { color: var(--azul); }
.mapa-barra__interactivo { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem; }
.mapa-barra__interactivo .btn { font: inherit; font-weight: 700; cursor: pointer; }

.mapa-aviso__recordar { display: flex; align-items: center; gap: .4rem; font-size: .85rem; color: var(--texto-suave); cursor: pointer; }
.location__map iframe { width: 100%; height: 100%; min-height: 380px; border: 0; display: block; }

/* Contacto */
/* Franja de contacto: igual que antes de la unificación (pedido del usuario) */
.contact { background: var(--fondo-alt); border-top: 1px solid var(--borde); padding-block: clamp(3rem, 6vw, 4.5rem); text-align: center; }
.contact h2 { color: var(--azul-noche); }
.contact > .container > p { margin-top: 0; color: var(--azul-oscuro); font-weight: 500; }
.contact__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.contact__item {
  display: flex; flex-direction: column; align-items: center; gap: .3rem;
  padding: 1.5rem 1rem; text-decoration: none;
}
.contact .contact__item { border-color: transparent; }
.contact__item svg { width: 34px; height: 34px; fill: var(--azul); }
.contact__item span { color: var(--texto-suave); font-size: var(--fs-pequeno); }
.contact__item strong { color: var(--azul-noche); font-size: 1.1rem; overflow-wrap: anywhere; }

/* Pie de página */
.footer { background: var(--azul-noche); color: var(--texto-sobre-azul-suave); font-size: .9rem; text-align: center; }
.footer__inner { padding-block: 2.5rem; display: grid; justify-items: center; gap: .25rem; }
.footer img { width: 150px; height: auto; margin-bottom: .75rem; }
.footer p { margin: 0; }
.footer__nav { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.4rem; margin-bottom: 1rem; }
.footer__nav a { color: var(--texto-sobre-azul); text-decoration: none; font-weight: 500; }
.footer__nav a:hover { color: var(--amarillo); }
.footer__legal { display: flex; flex-wrap: wrap; justify-content: center; gap: .3rem 1.2rem; margin: .6rem 0 .4rem; font-size: .85rem; }
.footer__legal a { color: var(--texto-sobre-azul-suave); }
.footer__legal a:hover { color: var(--amarillo); }
.footer__marcas { max-width: 44rem; font-size: .78rem; color: #8494b0; }

/* Aviso de datos junto a los medios de contacto */
.aviso-datos { max-width: 44rem; margin: 1.5rem auto 0; font-size: .85rem; color: var(--azul-oscuro); }
.aviso-datos a { font-weight: 700; color: var(--azul-noche); }

/* Páginas legales */
.legal__contenido { max-width: 46rem; }
.legal h1 { font-size: clamp(2rem, 4vw, 2.75rem); color: var(--azul-oscuro); }
.legal h2 { margin-top: 2rem; font-size: 1.45rem; }
.legal p, .legal li { color: var(--texto); line-height: 1.65; }
.legal ul { padding-left: 1.2rem; }
.legal li { margin-bottom: .4rem; }
.legal a { color: var(--azul); }
.legal__fecha { margin-top: -.25rem; font-size: .9rem; color: var(--texto-suave) !important; }
.legal__tabla { overflow-x: auto; margin: 1rem 0; }
.legal__tabla table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: .92rem; }
.legal__tabla th, .legal__tabla td { padding: .6rem .7rem; border: 1px solid var(--borde); text-align: left; vertical-align: top; }
.legal__tabla th { background: var(--fondo-alt); color: var(--azul-oscuro); }
.legal .btn { background: #fff; }

/* WhatsApp flotante */
.wa-float {
  position: fixed; right: 18px; bottom: 18px; z-index: 60;
  width: 58px; height: 58px; display: grid; place-items: center;
  background: var(--verde-wa-oscuro); border-radius: 50%;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
  transition: transform .15s;
}
.wa-float:hover { transform: scale(1.08); }
.wa-float svg { width: 32px; height: 32px; fill: #fff; }

/* Inicio: rejillas por ancho (1440 → 5/7/4 columnas · 1024 → 3/5/2 · 768 → 2/4/2 · 390 → 1/3/2) */
@media (max-width: 1199px) {
  .pasos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  /* Laptops: el Inicio se ve igual que en computadora (5 industrias en una fila) */
  .industrias__lista { gap: 1rem; }
}
@media (max-width: 900px) {
  .industrias__lista { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .industria:nth-child(n) { grid-column: span 2; }
  .industria:nth-child(5) { grid-column: 2 / 4; }
  .franja-marcas ul { --cols: 4; }
  .accesos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pasos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .b-caja { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .razones { grid-template-columns: 1fr; padding: .5rem 0; }
  .razones li, .razones li:first-child { padding: 1.1rem 0; border-left: 0; border-top: 1px solid var(--borde); }
  .razones li:first-child { border-top: 0; }
}
@media (max-width: 560px) {
  .industrias__lista { gap: .75rem; }
  .industria h3 { padding: .75rem .8rem .2rem; font-size: 1.05rem; }
  .industria p { padding: 0 .8rem .85rem; font-size: .82rem; }
  .franja-marcas ul { --cols: 3; gap: .5rem; }
  .franja-marcas li { height: 68px; padding: .5rem; flex-basis: calc((100% - 1rem) / 3); }
  .accesos { gap: .75rem; }
  .acceso img { padding: .6rem; }
  .acceso__texto { padding: .8rem .85rem 1rem; }
  .acceso__texto strong { font-size: 1.15rem; }
  .acceso__texto span { font-size: .85rem; }
}
/* Tablet y celular */

@media (max-width: 900px) {
  /* En pantallas angostas la escena va debajo del texto, a todo el ancho */
  /* Celular y tablet: texto arriba, foto completa debajo (los filtros no quedan tapados) */
  .hero { display: flex; flex-direction: column; min-height: 0; }
  .hero::before { display: none; }
  .hero__foto { position: static; order: 2; height: auto; aspect-ratio: 4 / 3; object-position: 100% 50%; }
  .hero__inner { min-height: 0; }
  .hero__inner, .about, .location, .fabrica__intro { grid-template-columns: 1fr; gap: 2rem; }
  .fabrica__equipo { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* Laptops y tablets horizontales: el menú sigue arriba, con menos separación */
@media (max-width: 1199px) and (min-width: 901px) {
  .nav { gap: 1.1rem; }
  .header__logo img { width: 130px; }
}
@media (max-width: 1000px) and (min-width: 901px) {
  .nav { gap: .85rem; font-size: .95rem; }
  .nav .btn { padding-inline: .9rem; }
}

/* Menú desplegable (hamburguesa) en tablet vertical y celular */
@media (max-width: 900px) {
  .nav-toggle { display: block; }
  .nav {
    position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; align-items: stretch; gap: 0;
    max-height: calc(100vh - 120px); overflow-y: auto;
    padding: .5rem 16px 1rem;
    background: #fff; border-bottom: 4px solid var(--rojo);
    box-shadow: 0 10px 20px rgba(0, 0, 0, .08);
    display: none;
  }
  .nav.abierto { display: flex; }
  .nav a:not(.btn) { padding: .8rem 0; border-bottom: 1px solid var(--borde); }
  .nav a.activo { color: var(--rojo); border-bottom-color: var(--borde); }
  .nav .btn { margin-top: .9rem; justify-content: center; }
  .nav__padre::after { display: none; }
  .nav__padre { display: block; }
  .nav__sub { position: static; display: flex; min-width: 0; padding: 0 0 0 1rem; border: 0; box-shadow: none; }
  .nav__sub::before { display: none; }
  .nav .nav__sub a { padding: .6rem 0; border-bottom: 1px solid var(--borde); font-weight: 500; color: var(--texto-suave); }
}

@media (max-width: 760px) {
  .header__logo img { width: 120px; }
  .topbar__item { display: none; }
  .contact__grid { grid-template-columns: 1fr; }
  .fabrica__servicios { grid-template-columns: 1fr; }
  .ficha__contenido { grid-template-columns: 1fr; }
  .ficha__foto { border-right: 0; border-bottom: 1px solid var(--borde); display: flex; justify-content: center; }
  .ficha__foto img { max-width: 300px; position: static; }
}

@media (max-width: 560px) {
  .productos { grid-template-columns: repeat(2, 1fr); gap: .75rem; }
  .producto__info { padding: .75rem .8rem .9rem; }
  .producto h3 { font-size: 1.1rem; }
  .producto p { font-size: .85rem; }
  .producto__btn { padding: .4rem .75rem; font-size: .85rem; }
  .tabs { width: 100%; }
  .tab { flex: 1; padding-inline: .5rem; }
  .buscador { max-width: none; }
  .chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: -16px; padding: 0 16px 4px; scrollbar-width: none; }
  .chip { flex: none; }
  .aviso { padding: 1.5rem 1.25rem; }
  .fabrica__servicios { grid-template-columns: 1fr; }
  .hero__inner { padding-bottom: 1rem; }
  .hero__buscar { padding-left: .8rem; }
  .hero__buscar button { padding: .65rem 1rem; }
  .sellos { flex-direction: column; gap: .7rem; }
  .sellos li, .sellos li:first-child { padding: 0; border-left: 0; }

  .fabrica .btn { width: 100%; justify-content: center; }
  .pasos { grid-template-columns: 1fr 1fr; gap: .75rem; }
  .pasos h3 { padding: .75rem .8rem .2rem; font-size: 1.05rem; }
  .pasos p { padding: 0 .8rem .85rem; font-size: .82rem; }
  .fabrica__equipo > div { padding: 1rem; }
  .b-caja { padding: 1.5rem 1rem 1rem; }
  .b-caja { grid-template-columns: 1fr; }
  .campo--ancho { grid-column: auto; }
  .aplicaciones, .refs { grid-template-columns: 1fr; }
  .vehiculo { padding: 1.1rem; }
  .vehiculo__cabecera h3 { font-size: 1.3rem; }
  .vehiculo__cabecera .btn { flex: 1 1 100%; justify-content: center; }
  .filtro-tiles { grid-template-columns: repeat(2, 1fr); gap: .6rem; }
  .producto__ficha { padding: .4rem .75rem; font-size: .85rem; }
  .ficha__datos { padding: 1.25rem 1.1rem 1.5rem; }
  .ficha__datos h3 { font-size: 1.6rem; }
  .ficha__tabla { font-size: .88rem; }
  .ficha__acciones .btn { flex: 1 1 100%; justify-content: center; }
}


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