/* ===================================================================
   FILTERWARE — sitio-v4 · Dirección C (Blueprint) aplicada a la
   estructura verificada de sitio-v3. Mismas clases, misma marca de
   accesibilidad — piel nueva.

   Regla de zonas:
   - AZUL / BLUEPRINT (zona-oscura): hero, secciones de relato
     ("por qué Filterware", procesos de fábrica/reparaciones,
     cierres CTA), header y footer.
   - FONDO CLARO (por defecto): buscador y resultados, tablas,
     grilla de equipos, fichas de producto, cuerpo de artículos.
   =================================================================== */

:root{
  /* -- zona clara (por defecto) -- */
  --azul:        #0B3C5D;
  --azul-2:      #124A70;
  --azul-fuerte: #082C46;
  --tinta:       #16242E;
  --tinta-suave: #445560;
  --gris:        #5B6B74;
  --fondo:       #EEF3F6;
  --panel:       #FFFFFF;
  --linea:       #D6DCDF;
  --linea-fuerte:#B7C1C6;
  --chip-fondo:  #E7EEF2;
  --ambar:       #8A5D00;
  --ambar-fondo: #FBF1DA;
  --ambar-borde: #E7CE97;
  --ok:          #1E6B45;

  /* -- zona oscura (blueprint) -- */
  --bg-osc:      #052d55;
  --panel-osc:   #073963;
  --panel-osc-2: rgba(3,30,57,.72);
  --ink-osc:     #eaf7ff;
  --muted-osc:   #b9d4e2;
  --lead-osc:    #c9e2ef;
  --line-osc:    #2f5c86;
  --line-osc-fuerte:#4a80ad;
  --cian:        #7ee1ff;

  /* -- acento compartido -- */
  --hot:         #ff5a1f;

  --radio: 3px;
  --mono: "SFMono-Regular","IBM Plex Mono",Consolas,"Liberation Mono",Menlo,monospace;
  --sans: -apple-system,"Segoe UI","Inter",Arial,sans-serif;
  --maxw: 1240px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ overflow-x:hidden; max-width:100%; }
body{
  margin:0; font-family:var(--sans); background:var(--fondo); color:var(--tinta);
  line-height:1.55; font-size:15px; -webkit-font-smoothing:antialiased;
  background-image:
    linear-gradient(rgba(11,60,93,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(11,60,93,.055) 1px,transparent 1px);
  background-size:28px 28px;
}
h1,h2,h3,h4{ font-family:var(--sans); color:var(--azul-fuerte); line-height:1.22; margin:0 0 .5em; font-weight:800; letter-spacing:-.01em; }
h1{ font-size:clamp(1.7rem,3.8vw,2.5rem); }
h2{ font-size:clamp(1.3rem,2.7vw,1.7rem); }
h3{ font-size:1.02rem; }
p{ margin:0 0 1em; color:var(--tinta-suave); }
a{ color:var(--azul-2); text-decoration:none; }
a:hover{ text-decoration:underline; }
img{ max-width:100%; display:block; }
ul{ margin:0 0 1em; padding-left:1.2em; }
li{ margin-bottom:.35em; }
button{ font-family:inherit; }
code,.mono{ font-family:var(--mono); }

.contenedor{ max-width:var(--maxw); margin:0 auto; padding:0 20px; }
.seccion{ padding:52px 0; border-bottom:1px solid var(--linea); position:relative; counter-increment:lamina; }
.seccion:last-of-type{ border-bottom:none; }
.seccion-fondo{ background:var(--panel); }
.centro{ text-align:center; }

/* -- lámina numerada: marca de documento técnico en cada sección -- */
.seccion > .contenedor::before{
  content:"LÁM. " counter(lamina,decimal-leading-zero);
  position:absolute; top:18px; right:20px; font:700 10px var(--mono);
  letter-spacing:.14em; color:var(--linea-fuerte); text-transform:uppercase;
}
.zona-oscura > .contenedor::before{ color:var(--line-osc-fuerte); }

/* ---------- franja demo ---------- */
.franja-demo{
  background:var(--bg-osc); color:var(--cian); text-align:center; font:700 .74rem var(--mono);
  padding:7px 14px; letter-spacing:.12em; text-transform:uppercase; border-bottom:1px solid var(--line-osc);
}

/* ---------- ZONA OSCURA (blueprint) ---------- */
.zona-oscura{
  background-color:var(--bg-osc);
  background-image:
    linear-gradient(rgba(126,225,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(126,225,255,.08) 1px,transparent 1px),
    linear-gradient(rgba(126,225,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(126,225,255,.04) 1px,transparent 1px);
  background-size:80px 80px,80px 80px,16px 16px,16px 16px;
  border-bottom-color:var(--line-osc);
  color:var(--ink-osc);
}
.zona-oscura h1,.zona-oscura h2,.zona-oscura h3,.zona-oscura h4{ color:var(--ink-osc); text-transform:uppercase; letter-spacing:-.02em; font-family:var(--mono); }
.zona-oscura p{ color:var(--muted-osc); }
.zona-oscura a{ color:var(--cian); }
.zona-oscura .eyebrow{ background:transparent; border-color:var(--cian); color:var(--cian); }
.zona-oscura .aviso-muestra{ background:rgba(255,255,255,.06); border-color:var(--line-osc-fuerte); color:var(--lead-osc); }
.zona-oscura .aviso-muestra b{ color:var(--ink-osc); }
.zona-oscura .badge-muestra{ background:rgba(255,255,255,.06); color:#f2c14e; border-color:#8a6a2a; }

/* ---------- meta / eyebrow tipo ficha técnica ---------- */
.meta-doc{
  display:flex; flex-wrap:wrap; gap:0; border:1px solid var(--linea); background:var(--panel);
  margin:18px 0 0;
}
.meta-doc .campo{ flex:1 1 140px; padding:10px 16px; border-right:1px solid var(--linea); }
.meta-doc .campo:last-child{ border-right:none; }
.meta-doc .etiqueta{ font-size:.76rem; text-transform:uppercase; letter-spacing:.6px; color:var(--gris); font-weight:700; display:block; }
.meta-doc .valor{ font-family:var(--mono); font-weight:700; color:var(--azul-fuerte); font-size:.92rem; }
.zona-oscura .meta-doc{ border-color:var(--cian); background:var(--panel-osc-2); }
.zona-oscura .meta-doc .campo{ border-color:var(--line-osc); }
.zona-oscura .meta-doc .etiqueta{ color:var(--muted-osc); }
.zona-oscura .meta-doc .valor{ color:var(--cian); }

.eyebrow{
  display:inline-block; font-family:var(--mono); font-size:.76rem; font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; color:var(--azul); background:var(--chip-fondo); border:1px solid var(--linea);
  padding:4px 10px; border-radius:var(--radio); margin-bottom:12px;
}

/* ---------- badges ---------- */
.badge-muestra{
  display:inline-flex; align-items:center; gap:6px; font-size:.76rem; font-weight:700;
  background:var(--ambar-fondo); color:var(--ambar); border:1px solid var(--ambar-borde);
  padding:3px 9px; border-radius:var(--radio); letter-spacing:.2px; max-width:100%; font-family:var(--mono);
}
.badge-muestra::before{ content:"DEMO"; }
.aviso-muestra{
  background:var(--ambar-fondo); border:1px solid var(--ambar-borde); border-left:3px solid var(--ambar);
  border-radius:0 var(--radio) var(--radio) 0; padding:12px 16px; font-size:.88rem; color:#5C3E00; margin:18px 0;
}
.aviso-muestra b{ color:#3E2900; }

/* ---------- botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 20px; border-radius:var(--radio); font-weight:800; font-size:.86rem;
  cursor:pointer; border:1px solid transparent; text-align:center; min-height:44px;
  font-family:var(--mono); text-transform:uppercase; letter-spacing:.04em;
  transition:background .12s ease, border-color .12s ease, color .12s ease;
}
.btn:hover{ text-decoration:none; }
.btn-primario{ background:var(--hot); color:#1a1200; border-color:var(--hot); }
.btn-primario:hover{ background:#e24d15; }
.btn-secundario{ background:#fff; border-color:var(--linea-fuerte); color:var(--azul-fuerte); }
.btn-secundario:hover{ background:var(--chip-fondo); }
.btn-oscuro{ background:var(--azul-fuerte); color:#fff; border-color:var(--azul-fuerte); }
.btn-oscuro:hover{ background:#051a2b; }
.zona-oscura .btn-secundario{ background:transparent; border-color:var(--cian); color:var(--ink-osc); }
.zona-oscura .btn-secundario:hover{ background:rgba(126,225,255,.12); }
.zona-oscura .btn-oscuro{ background:transparent; border-color:var(--line-osc-fuerte); color:var(--ink-osc); }
.zona-oscura .btn-primario{ color:#1a1200; }
.grupo-btn{ display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }

/* ---------- header / nav (siempre en zona oscura, es "chrome" no contenido) ---------- */
.cabecera{ position:sticky; top:0; z-index:200; background:var(--bg-osc); border-bottom:1px solid var(--line-osc); }
.barra-lineas{ border-bottom:1px solid var(--line-osc); background:#03203e; }
.barra-lineas .contenedor{ display:flex; align-items:center; gap:22px; padding:7px 20px; max-width:var(--maxw); margin:0 auto; }
.barra-lineas span.lbl{ font:700 10px var(--mono); letter-spacing:.14em; color:var(--muted-osc); text-transform:uppercase; }
.barra-lineas a{ font:700 11px var(--mono); letter-spacing:.08em; text-transform:uppercase; color:var(--cian); padding:2px 0; border-bottom:1px solid transparent; }
.barra-lineas a:hover{ text-decoration:none; border-color:var(--cian); }
.barra-nav{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 20px; max-width:var(--maxw); margin:0 auto; }
.logo{ display:flex; flex-direction:column; align-items:flex-start; gap:3px; }
.logo-img{ display:block; height:34px; width:auto; }
.logo small{ display:block; font-weight:600; font-size:.6rem; letter-spacing:1px; text-transform:uppercase; color:var(--muted-osc); font-family:var(--sans); }
.nav-links{ display:flex; align-items:center; gap:18px; }
.nav-links a{ color:var(--ink-osc); font:700 .78rem var(--mono); padding:6px 0; border-bottom:2px solid transparent; white-space:nowrap; text-transform:uppercase; letter-spacing:.03em; }
.nav-links a:hover{ text-decoration:none; }
.nav-links a:hover, .nav-links a.activo{ color:var(--cian); border-color:var(--cian); }
.nav-cta{ display:flex; align-items:center; gap:12px; }
.nav-cta .btn{ padding:9px 16px; font-size:.78rem; }

/* ---------- búsqueda rápida en el header (visible en toda página) ---------- */
.nav-buscar{ display:flex; align-items:stretch; order:-1; }
.nav-buscar-input{
  width:170px; border:1px solid var(--line-osc-fuerte); border-right:none; border-radius:var(--radio) 0 0 var(--radio);
  padding:0 10px; font-size:.83rem; font-family:var(--mono); min-height:38px; color:var(--ink-osc); background:#03203e;
}
.nav-buscar-input::placeholder{ color:var(--muted-osc); }
.nav-buscar-input:focus{ outline:2px solid var(--cian); outline-offset:1px; }
.nav-buscar-btn{
  border:1px solid var(--cian); background:var(--cian); color:#052142; font-weight:800; font-size:.76rem;
  padding:0 13px; border-radius:0 var(--radio) var(--radio) 0; cursor:pointer; min-height:38px; white-space:nowrap;
  font-family:var(--mono); text-transform:uppercase;
}
.nav-buscar-btn:hover{ background:#a4ebff; }
.btn-hamburguesa{
  display:none; width:44px; height:44px; border:1px solid var(--line-osc-fuerte); border-radius:var(--radio);
  background:transparent; cursor:pointer; align-items:center; justify-content:center; flex-direction:column; gap:5px;
}
.btn-hamburguesa span{ width:20px; height:2px; background:var(--ink-osc); display:block; }
@media (max-width:900px){
  .barra-lineas .contenedor{ gap:16px; overflow-x:auto; }
  .nav-links{
    position:fixed; inset:118px 0 0 0; background:var(--bg-osc); flex-direction:column; align-items:flex-start;
    padding:20px 24px; gap:2px; transform:translateX(100%); transition:transform .2s ease; overflow-y:auto; z-index:199;
  }
  .nav-links.abierto{ transform:translateX(0); }
  .nav-links a{ width:100%; padding:13px 4px; border-bottom:1px solid var(--line-osc); font-size:1rem; }
  .btn-hamburguesa{ display:flex; }
  .nav-cta .btn-solo-desktop{ display:none; }
  .nav-buscar{ width:100%; margin-bottom:16px; }
  .nav-buscar-input{ width:auto; flex:1; min-height:44px; font-size:.95rem; }
  .nav-buscar-btn{ min-height:44px; padding:0 18px; font-size:.85rem; }
}

/* ---------- portada / doc-hero (zona oscura) ---------- */
.doc-hero{ padding:52px 0 0; }
.doc-hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:36px; align-items:start; }
@media (max-width:900px){ .doc-hero-grid{ grid-template-columns:1fr; } }
.doc-hero-lead{ font-size:1.04rem; max-width:60ch; color:var(--lead-osc); border-left:2px solid var(--cian); padding-left:16px; }
.diagrama-tecnico{ border:1px solid var(--line-osc); background:var(--panel-osc-2); padding:14px; }
.diagrama-tecnico .titulo-diagrama{ font-family:var(--mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.5px; color:var(--muted-osc); border-bottom:1px solid var(--line-osc); padding-bottom:8px; margin-bottom:10px; }
.diagrama-tecnico svg{ stroke:var(--cian); }
.diagrama-tecnico svg circle{ fill:var(--cian); }
.diagrama-tecnico svg text[fill="#16242E"]{ fill:var(--ink-osc) !important; }
.diagrama-tecnico svg text[fill="#6B7A83"]{ fill:var(--muted-osc) !important; }

/* ---------- foto de hero: bloque segnaposto, tamaño y proporción declarados ---------- */
.foto-hero{
  --foto-hero-img: none;
  margin-top:34px; aspect-ratio:21/9; width:100%; border:1px solid var(--line-osc);
  background-color:#03203e;
  /* capa 1 (arriba): foto real cuando Andhray la agregue · capa 2 (abajo, fija): plano técnico de referencia */
  background-image:var(--foto-hero-img), url('../img/hero-blueprint.svg');
  background-size:cover, cover; background-position:center, center; background-repeat:no-repeat, no-repeat;
  display:flex; align-items:flex-end; justify-content:flex-start; position:relative; overflow:hidden;
}
.foto-hero span{
  position:relative; margin:14px; padding:8px 12px; max-width:70%;
  font:700 10px var(--mono); letter-spacing:.06em; line-height:1.5;
  color:var(--muted-osc); background:rgba(3,32,62,.72);
  border:1px dashed var(--line-osc-fuerte);
}
.foto-hero span code{ color:var(--cian); }
@media (max-width:520px){ .foto-hero{ aspect-ratio:4/5; } .foto-hero span{ max-width:88%; font-size:9.5px; } }

/* ---------- grids ---------- */
.grid{ display:grid; gap:16px; }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:900px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .grid-3,.grid-4,.grid-2{ grid-template-columns:1fr; } }

/* ---------- panel genérico ---------- */
.panel{ background:var(--panel); border:1px solid var(--linea); border-radius:var(--radio); padding:20px; }
.panel h3{ margin-bottom:.4em; }
.panel p{ margin-bottom:0; font-size:.9rem; }
.panel-titulo{
  display:flex; align-items:center; gap:10px; font-family:var(--mono); font-size:.78rem; text-transform:uppercase;
  letter-spacing:.5px; color:var(--gris); border-bottom:1px solid var(--linea); padding-bottom:10px; margin-bottom:14px;
}
.zona-oscura .panel{ background:var(--panel-osc-2); border-color:var(--line-osc); }
.zona-oscura .panel-titulo{ color:var(--cian); border-color:var(--line-osc); }
.zona-oscura .panel h3{ color:var(--ink-osc); }
.zona-oscura .panel p{ color:var(--muted-osc); }

/* ---------- estadísticas ---------- */
.franja-stats{ display:flex; flex-wrap:wrap; border:1px solid var(--linea); background:var(--panel); margin-top:22px; }
.franja-stats .item{ flex:1 1 160px; padding:16px 18px; border-right:1px solid var(--linea); }
.franja-stats .item:last-child{ border-right:none; }
.franja-stats .num{ font-family:var(--mono); font-size:1.5rem; font-weight:700; color:var(--azul-fuerte); }
.franja-stats .lab{ font-size:.74rem; color:var(--gris); text-transform:uppercase; letter-spacing:.4px; margin-top:2px; }
.zona-oscura .franja-stats{ border-color:var(--cian); background:var(--panel-osc-2); }
.zona-oscura .franja-stats .item{ border-color:var(--line-osc); }
.zona-oscura .franja-stats .num{ color:var(--cian); }
.zona-oscura .franja-stats .lab{ color:var(--muted-osc); }

/* ---------- BUSCADOR DE COMPATIBILIDAD (zona clara — zona de trabajo) ---------- */
.buscador{
  background:var(--panel); border:1px solid var(--azul); border-radius:var(--radio);
  background-image:
    linear-gradient(var(--linea) 1px, transparent 1px),
    linear-gradient(90deg, var(--linea) 1px, transparent 1px);
  background-size:24px 24px; background-position:-1px -1px; background-color:#fff;
  position:relative;
}
.buscador::before{
  content:"FICHA TÉC. / BUSCADOR DE COMPATIBILIDAD"; position:absolute; left:14px; top:-11px;
  background:var(--fondo); padding:0 8px; font:700 10px var(--mono); letter-spacing:.1em; color:var(--azul);
}
.buscador-inner{ background:rgba(255,255,255,.94); padding:26px 22px 22px; }
.buscador-cabecera{ display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.buscador-cabecera h2{ margin:0; }
.buscador-controles{ display:grid; grid-template-columns:1.1fr 1fr auto; gap:12px; align-items:end; }
@media (max-width:760px){ .buscador-controles{ grid-template-columns:1fr; } }
.campo-buscador label{ display:block; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--gris); margin-bottom:6px; font-family:var(--mono); }
.campo-buscador select, .campo-buscador input{
  width:100%; border:1px solid var(--linea-fuerte); border-radius:var(--radio); padding:11px 12px; font-size:.92rem;
  font-family:inherit; background:#fff; color:var(--tinta); min-height:46px;
}
.campo-buscador select:focus, .campo-buscador input:focus{ outline:2px solid var(--azul); outline-offset:1px; }
.btn-limpiar{ background:#fff; border:1px solid var(--linea-fuerte); border-radius:var(--radio); padding:11px 16px; font-weight:700; font-size:.85rem; cursor:pointer; min-height:46px; color:var(--tinta-suave); font-family:var(--mono); text-transform:uppercase; }
.btn-limpiar:hover{ background:var(--chip-fondo); }
.buscador-resumen{ font-size:.84rem; color:var(--gris); margin:14px 0 6px; font-family:var(--mono); }
.buscador-resumen b{ color:var(--azul-fuerte); }
.chips-familia{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:14px; }
.chips-familia-label{ font-size:.82rem; color:var(--gris); font-weight:600; margin-right:2px; }
.chip-familia{
  border:1px solid var(--linea-fuerte); background:#fff; padding:6px 12px; border-radius:var(--radio);
  font-weight:700; font-size:.76rem; cursor:pointer; color:var(--tinta-suave); min-height:32px; font-family:var(--mono); text-transform:uppercase;
}
.chip-familia.activo, .chip-familia:hover{ background:var(--azul-fuerte); color:#fff; border-color:var(--azul-fuerte); }

/* ---------- tablas técnicas ---------- */
.tabla-wrap{ overflow-x:auto; border:1px solid var(--linea); border-radius:var(--radio); background:#fff; }
table.tabla-tecnica{ width:100%; border-collapse:collapse; font-size:.86rem; min-width:640px; }
table.tabla-tecnica thead th{
  background:var(--chip-fondo); color:var(--tinta); text-align:left; font-size:.74rem; text-transform:uppercase;
  letter-spacing:.4px; padding:10px 12px; border-bottom:1px solid var(--linea-fuerte); white-space:nowrap; font-family:var(--mono);
}
table.tabla-tecnica td{ padding:9px 12px; border-bottom:1px solid var(--linea); color:var(--tinta-suave); vertical-align:top; }
table.tabla-tecnica tbody tr:hover{ background:var(--fondo); }
table.tabla-tecnica td.cod, table.tabla-tecnica td .cod{ font-family:var(--mono); font-weight:700; color:var(--azul-fuerte); white-space:nowrap; }
.tag-cat{
  font-family:var(--mono); font-size:.74rem; text-transform:uppercase; background:var(--chip-fondo); border:1px solid var(--linea);
  padding:2px 7px; border-radius:2px; color:var(--tinta-suave); white-space:nowrap;
}
.tag-maquina{ font-family:var(--mono); font-size:.74rem; background:#fff; border:1px solid var(--linea-fuerte); padding:2px 6px; border-radius:2px; margin:0 4px 4px 0; display:inline-block; color:var(--azul); }
.sin-resultados{ padding:26px 16px; text-align:center; color:var(--gris); font-size:.9rem; }

/* ---------- resultados del buscador: copiar código + tarjeta en mobile ---------- */
.copiar-codigo{
  display:block; border:0; background:none; padding:4px 0 0; margin:0; color:var(--gris); font-family:var(--mono);
  font-size:.74rem; font-weight:700; cursor:pointer; text-decoration:underline; text-underline-offset:2px;
}
.copiar-codigo:hover{ color:var(--azul); }
@media (max-width:760px){
  .tabla-resultados{ min-width:0; }
  .tabla-resultados thead{ display:none; }
  .tabla-resultados, .tabla-resultados tbody, .tabla-resultados tr, .tabla-resultados td{ display:block; width:100%; }
  .tabla-resultados tr{ border-bottom:1px solid var(--linea-fuerte); padding:10px 12px; }
  .tabla-resultados tr:last-child{ border-bottom:none; }
  .tabla-resultados td{
    display:grid; grid-template-columns:104px 1fr; gap:8px; border-bottom:none; padding:5px 0; font-size:.88rem;
  }
  .tabla-resultados td::before{
    content:attr(data-label); font-family:var(--mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.3px;
    color:var(--gris); font-weight:700; padding-top:1px;
  }
  .tabla-resultados td.cod{ background:var(--fondo); margin:0 -12px 4px; padding:8px 12px; }
  .tabla-resultados td.cod::before{ padding-top:3px; }
}

/* ---------- especificaciones ---------- */
.tabla-especs{ width:100%; border-collapse:collapse; margin:16px 0 6px; font-size:.88rem; }
.tabla-especs td{ padding:9px 4px; border-bottom:1px solid var(--linea); }
.tabla-especs td:first-child{ color:var(--gris); width:44%; font-size:.82rem; }
.tabla-especs td:last-child{ font-weight:700; color:var(--tinta); font-family:var(--mono); }

/* ---------- fichas de equipo (productos) ---------- */
.tarjeta-equipo{ background:#fff; border:1px solid var(--linea); border-radius:var(--radio); display:flex; flex-direction:column; }
.tarjeta-equipo .cabecera-eq{ display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-bottom:1px solid var(--linea); background:var(--fondo); }
.tarjeta-equipo .cabecera-eq .cod{ font-family:var(--mono); font-weight:700; font-size:.78rem; background:var(--azul-fuerte); color:#fff; padding:3px 8px; border-radius:2px; }
.tarjeta-equipo .cabecera-eq .linea-tag{ font-size:.76rem; text-transform:uppercase; letter-spacing:.4px; color:var(--gris); font-weight:700; }
.tarjeta-equipo .cuerpo-eq{ padding:14px; flex:1; display:flex; flex-direction:column; }
.tarjeta-equipo h3{ margin-bottom:6px; }
.tarjeta-equipo p{ font-size:.86rem; margin-bottom:10px; }
.tarjeta-equipo .pie-eq{ margin-top:auto; padding-top:10px; border-top:1px dashed var(--linea); display:flex; justify-content:space-between; align-items:center; gap:8px; }
.tarjeta-equipo .pie-eq .repuestos-count{ font-family:var(--mono); font-size:.76rem; color:var(--gris); }

/* ---------- grupos de equipos por línea (grilla productos.html) ---------- */
.grupo-linea{ margin-bottom:32px; }
.grupo-linea:last-child{ margin-bottom:0; }
.titulo-grupo-linea{
  font-family:var(--mono); font-size:.82rem; text-transform:uppercase; letter-spacing:.5px; color:var(--azul-fuerte);
  border-bottom:1px solid var(--linea-fuerte); padding-bottom:8px; margin-bottom:16px; font-weight:700;
}
.titulo-grupo-linea span{ color:var(--gris); font-weight:600; text-transform:none; letter-spacing:0; font-family:var(--sans); }
.panel-repuestos-eq{ margin-top:12px; padding-top:12px; border-top:1px dashed var(--linea); }
.panel-repuestos-eq .lista-repuestos{ margin-bottom:10px; }
.ver-en-buscador{ font-size:.84rem; font-weight:600; }

.filtro-barra{ display:flex; flex-wrap:wrap; gap:8px; margin:20px 0 24px; }
.chip-filtro{
  border:1px solid var(--linea-fuerte); background:#fff; padding:8px 15px; border-radius:var(--radio);
  font-weight:600; font-size:.82rem; cursor:pointer; color:var(--tinta-suave); min-height:40px;
}
.chip-filtro.activo, .chip-filtro:hover{ background:var(--azul-fuerte); color:#fff; border-color:var(--azul-fuerte); }

/* ---------- ficha de producto detallada ---------- */
.ficha-producto{ display:grid; grid-template-columns:.85fr 1.15fr; gap:32px; align-items:start; }
@media (max-width:860px){ .ficha-producto{ grid-template-columns:1fr; } }
.diagrama-producto{ background:var(--fondo); border-radius:var(--radio); border:1px solid var(--linea); aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; padding:16px; }
.diagrama-producto svg{ width:68%; }

.jerarquia{ margin-top:26px; border-top:1px solid var(--linea); padding-top:20px; }
.jerarquia-titulo{ display:flex; align-items:center; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.arbol-producto{ background:var(--fondo); border:1px solid var(--linea); border-radius:var(--radio); padding:14px; }
.nodo-producto{ display:flex; align-items:center; gap:10px; font-weight:800; color:var(--azul-fuerte); padding-bottom:10px; margin-bottom:10px; border-bottom:1px solid var(--linea); }
.nodo-producto .cod{ font-family:var(--mono); font-size:.72rem; background:var(--azul-fuerte); color:#fff; padding:3px 8px; border-radius:2px; font-weight:700; }
.lista-repuestos{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.lista-repuestos li{
  display:flex; justify-content:space-between; align-items:center; gap:10px; background:#fff;
  border:1px solid var(--linea); border-radius:2px; padding:10px 12px; margin:0; font-size:.86rem;
}
.lista-repuestos .nombre-rep{ font-weight:700; color:var(--tinta); }
.lista-repuestos .desc-rep{ color:var(--gris); font-size:.8rem; display:block; }
.lista-repuestos .codigo-rep{ font-family:var(--mono); font-size:.76rem; background:var(--chip-fondo); color:var(--azul-fuerte); padding:3px 8px; border-radius:2px; white-space:nowrap; font-weight:700; }
.zona-oscura .arbol-producto{ background:var(--panel-osc-2); border-color:var(--line-osc); }
.zona-oscura .nodo-producto{ color:var(--ink-osc); border-color:var(--line-osc); }
.zona-oscura .lista-repuestos li{ background:transparent; border-color:var(--line-osc); }
.zona-oscura .lista-repuestos .nombre-rep{ color:var(--ink-osc); }
.zona-oscura .lista-repuestos .desc-rep{ color:var(--muted-osc); }
.zona-oscura .lista-repuestos .codigo-rep{ background:transparent; border:1px solid var(--cian); color:var(--cian); }

/* ---------- fábrica ---------- */
.linea-tiempo{ border-left:2px solid var(--linea); margin-left:19px; padding-left:0; }
.paso-proceso{ position:relative; padding:0 0 26px 26px; margin-left:-1px; display:flex; flex-direction:column; }
.paso-proceso .num{
  position:absolute; left:-19px; top:0; flex-shrink:0; width:38px; height:38px; border-radius:50%;
  background:var(--azul-fuerte); color:#fff; display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:.9rem; font-family:var(--mono);
}
.tabla-cert td{ font-size:.86rem; }
.zona-oscura .linea-tiempo{ border-color:var(--line-osc); }
.zona-oscura .paso-proceso .num{ background:var(--bg-osc); border:1px solid var(--cian); color:var(--cian); }
.zona-oscura .paso-proceso h3{ color:var(--ink-osc); text-transform:none; font-family:var(--sans); font-weight:800; }
.zona-oscura .paso-proceso p{ color:var(--muted-osc); }

/* ---------- servicio / reparaciones ---------- */
.tabla-servicio th{ background:var(--chip-fondo); color:var(--tinta); text-align:left; padding:10px 13px; font-size:.76rem; text-transform:uppercase; letter-spacing:.3px; font-family:var(--mono); }
.tabla-servicio td{ padding:10px 13px; font-size:.86rem; }

/* ---------- blog ---------- */
.tarjeta-articulo{ background:#fff; border:1px solid var(--linea); border-radius:var(--radio); display:flex; flex-direction:column; }
.tarjeta-articulo .cont{ padding:16px; display:flex; flex-direction:column; gap:6px; flex:1; }
.categoria-tag{ font-family:var(--mono); font-size:.74rem; font-weight:700; color:var(--azul); text-transform:uppercase; letter-spacing:.4px; }
.meta-articulo{ font-size:.76rem; color:var(--gris); display:flex; gap:10px; align-items:center; margin-top:auto; padding-top:8px; font-family:var(--mono); }

.articulo{ max-width:740px; margin:0 auto; }
.articulo h1{ margin-bottom:.3em; text-transform:none; font-family:var(--sans); }
.articulo .meta-articulo{ margin-bottom:22px; padding-top:0; }
.articulo h2{ margin-top:1.5em; font-size:1.25rem; text-transform:none; font-family:var(--sans); color:var(--azul-fuerte); }
.articulo p{ font-size:.98rem; }
.recuadro-cientifico{
  background:var(--fondo); border-left:3px solid var(--azul); border-radius:0 var(--radio) var(--radio) 0;
  padding:14px 16px; margin:20px 0; font-size:.9rem;
}
.recuadro-cientifico b{ color:var(--azul-fuerte); }

/* ---------- formularios ---------- */
.form-grid{ display:grid; gap:14px; }
.campo{ display:flex; flex-direction:column; gap:6px; }
.campo label{ font-weight:700; font-size:.84rem; color:var(--azul-fuerte); font-family:var(--mono); text-transform:uppercase; letter-spacing:.02em; }
.campo input, .campo select, .campo textarea{
  border:1px solid var(--linea-fuerte); border-radius:var(--radio); padding:11px 13px; font-size:.92rem;
  font-family:inherit; background:#fff; color:var(--tinta); min-height:44px;
}
.campo textarea{ min-height:100px; resize:vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus{ outline:2px solid var(--azul); outline-offset:1px; }
.dos-cols{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:640px){ .dos-cols{ grid-template-columns:1fr; } }
.nota-legal{ font-size:.76rem; color:var(--gris); margin-top:16px; line-height:1.5; }

/* ---------- CTA banda (zona oscura — cierre de página) ---------- */
.cta-banda{
  background:var(--bg-osc); color:var(--ink-osc); border-radius:var(--radio); padding:38px 32px; text-align:center;
  border:1px solid var(--line-osc-fuerte);
  background-image:
    linear-gradient(rgba(126,225,255,.1) 1px,transparent 1px),
    linear-gradient(90deg,rgba(126,225,255,.1) 1px,transparent 1px);
  background-size:26px 26px;
}
.cta-banda h2{ color:var(--ink-osc); font-family:var(--mono); text-transform:uppercase; }
.cta-banda p{ color:var(--lead-osc); max-width:56ch; margin:0 auto; }
.cta-banda .actions,.cta-banda .grupo-btn{ justify-content:center; }

/* ---------- footer (siempre zona oscura) ---------- */
.pie{ background:#03203e; color:var(--muted-osc); padding:48px 0 22px; border-top:3px double var(--line-osc-fuerte); }
.pie h4{ color:var(--cian); font-size:.8rem; text-transform:uppercase; letter-spacing:.5px; font-family:var(--mono); }
.pie a{ color:var(--muted-osc); }
.pie a:hover{ color:var(--ink-osc); }
.pie-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:26px; margin-bottom:26px; }
@media (max-width:860px){ .pie-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .pie-grid{ grid-template-columns:1fr; } }
.pie-grid ul{ list-style:none; padding:0; margin:0; display:grid; gap:8px; font-size:.85rem; }
.pie-marca{ display:block; height:30px; width:auto; margin-bottom:10px; }
.pie-abajo{ border-top:1px solid var(--line-osc); padding-top:16px; font-size:.75rem; color:#7fa4c4; display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; }

/* ---------- diagrama línea de filtración (svg utilitario) ---------- */
.linea-svg text{ font-family:var(--mono); }
