/* ═══════════════════════════════════════════════════════════════════
   MSA Industrial Systems — sistema de diseño
   Claro, cálido y con fotografía. Referencias del cliente: RS Online,
   Supply, Innovation Parts Service.
   ═══════════════════════════════════════════════════════════════════ */

:root{
  --fondo:#ffffff;
  --sup:#ffffff;
  --sup2:#f8f9fb;           /* g50 del original */
  --sup3:#f1f2f4;           /* g100 */
  --borde:#e2e4e8;          /* g200 */
  --borde2:#c4c9d4;         /* g300 */
  --txt:#0f1010;            /* g900 */
  --txt2:#374151;           /* g700 */
  --txt3:#6b7280;           /* g500 */
  --azul:#111111;           /* el "oscuro" de MSA es negro, no azul */
  --tinta:#111111;          /* superficies que SIEMPRE van con texto claro;
                               a diferencia de --azul, no se invierte en tema oscuro */
  --tinta2:#1f2020;
  --azul2:#1a1a1a;
  --acento:#CC1E28;         /* EL ROJO DE MSA */
  --acento2:#e8222e;
  --brillo:rgba(204,30,40,.13);
  --rojoclaro:#fff5f5;
  --ok:#0f8a4d;
  --alerta:#b45309;
  --radio:12px;
  --ancho:1400px;
  --sombra:0 1px 3px rgba(0,0,0,.07);
  --sombra2:0 8px 32px rgba(0,0,0,.11);
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
  --titulo:'Barlow Condensed',system-ui,sans-serif;
  --trans:.2s cubic-bezier(.4,0,.2,1);
}
[data-tema="oscuro"]{
  --fondo:#0f1010; --sup:#171818; --sup2:#1f2020; --sup3:#2a2b2b;
  --borde:#2c2d2d; --borde2:#3d3e3e;
  --txt:#f5f5f5; --txt2:#c4c9d4; --txt3:#8b9096;
  --azul:#f5f5f5; --azul2:#ffffff;
  --tinta:#1a1b1b; --tinta2:#242525;   /* sigue oscuro: lleva texto blanco */
  --acento:#e8222e; --acento2:#ff3b47; --brillo:rgba(232,34,46,.18);
  --rojoclaro:#2a1416;
  --sombra:0 1px 3px rgba(0,0,0,.5); --sombra2:0 8px 32px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--fondo);color:var(--txt);
  font-family:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:15.5px;line-height:1.62;-webkit-font-smoothing:antialiased;
  transition:background .3s ease,color .3s ease;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit;cursor:pointer;border:0;background:0}
input,select{font:inherit}
.envoltura{max-width:var(--ancho);margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono)}

/* ─── Encabezado ─────────────────────────────────────────────── */
header.principal{
  position:sticky;top:0;z-index:100;background:rgba(255,253,250,.9);
  backdrop-filter:blur(14px) saturate(160%);border-bottom:1px solid var(--borde);
}
[data-tema="oscuro"] header.principal{background:rgba(18,22,28,.9)}
.barra{display:flex;align-items:center;gap:20px;height:72px}
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0}
.logo .marca-icono{
  width:38px;height:38px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(140deg,var(--tinta),var(--tinta2) 60%,var(--acento));
  display:grid;place-items:center;font-weight:800;font-size:13px;color:#fff;
  letter-spacing:-.4px;box-shadow:0 4px 14px rgba(10,61,98,.28);
}
.logo .txt{font-weight:750;font-size:16.5px;letter-spacing:-.35px;line-height:1.12}
.logo .txt small{display:block;font-size:10px;font-weight:600;color:var(--acento);
  letter-spacing:1.5px;text-transform:uppercase}

.buscador{position:relative;flex:1;max-width:540px}
.buscador input{
  width:100%;padding:11px 16px 11px 44px;background:var(--sup2);
  border:1.5px solid transparent;border-radius:10px;color:var(--txt);transition:var(--trans);
}
.buscador input::placeholder{color:var(--txt3)}
.buscador input:focus{outline:0;border-color:var(--acento);background:var(--sup);
  box-shadow:0 0 0 4px var(--brillo)}
.buscador .lupa{position:absolute;left:15px;top:50%;transform:translateY(-50%);
  color:var(--txt3);pointer-events:none;display:flex}
.sugerencias{
  position:absolute;top:calc(100% + 9px);left:0;right:0;background:var(--sup);
  border:1px solid var(--borde);border-radius:12px;box-shadow:var(--sombra2);
  max-height:min(70vh,470px);overflow-y:auto;display:none;z-index:200;
}
.sugerencias.abierto{display:block;animation:caer .2s ease}
@keyframes caer{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.sug{display:flex;gap:12px;padding:11px 14px;border-bottom:1px solid var(--borde);
  cursor:pointer;transition:background .13s;align-items:center}
.sug:last-child{border-bottom:0}
.sug:hover,.sug.sel{background:var(--sup2)}
.sug .pn{font-family:var(--mono);font-weight:650;font-size:13.5px;color:var(--azul)}
.sug .d{font-size:12.5px;color:var(--txt2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sug mark{background:var(--brillo);color:var(--acento2);padding:0 3px;border-radius:3px}

.acciones{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}
.icono-btn{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;
  color:var(--txt2);border:1px solid transparent;transition:var(--trans);position:relative}
.icono-btn:hover{background:var(--sup2);color:var(--azul);border-color:var(--borde)}
.contador{position:absolute;top:1px;right:1px;background:var(--acento);color:#fff;max-width:34px;overflow:hidden;
  font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;
  display:grid;place-items:center;padding:0 4px;box-shadow:0 2px 6px var(--brillo)}
.idioma{font-size:12px;font-weight:750;letter-spacing:.5px}

/* ─── Botones ────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:10px;
  font-weight:650;font-size:14.5px;transition:var(--trans);white-space:nowrap;
  background:var(--acento);color:#fff;border:1.5px solid var(--acento);
  box-shadow:0 4px 14px var(--brillo);
}
.btn:hover{background:var(--acento2);border-color:var(--acento2);
  transform:translateY(-2px);box-shadow:0 10px 26px var(--brillo)}
.btn:active{transform:none}
.btn.azul{background:var(--tinta);border-color:var(--tinta);box-shadow:0 4px 14px rgba(10,61,98,.22)}
.btn.azul:hover{background:var(--tinta2);border-color:var(--tinta2)}
.btn.fantasma{background:transparent;color:var(--txt);border-color:var(--borde2);box-shadow:none}
.btn.fantasma:hover{background:var(--sup2);border-color:var(--acento);color:var(--acento2)}
.btn.claro{background:#fff;color:var(--tinta);border-color:#fff}
.btn.claro:hover{background:#fff;color:var(--acento2);transform:translateY(-2px)}
.btn.chico{padding:8px 15px;font-size:13px}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}

/* ─── Hero con fotografía ────────────────────────────────────── */
.hero{position:relative;overflow:hidden;min-height:min(84vh,720px);display:flex;
  align-items:center;padding:80px 0}
.hero-foto{position:absolute;inset:0;z-index:0}
.hero-foto img{width:100%;height:100%;object-fit:cover;
  animation:acercar 22s ease-out forwards}
@keyframes acercar{from{transform:scale(1.1)}to{transform:scale(1)}}
.hero-velo{position:absolute;inset:0;
  background:linear-gradient(100deg,
    rgba(8,35,56,.94) 0%, rgba(10,61,98,.86) 38%,
    rgba(10,61,98,.55) 66%, rgba(224,123,24,.28) 100%)}
.hero-grano{position:absolute;inset:0;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.1) 1px, transparent 1px);
  background-size:3px 3px}
.hero .envoltura{position:relative;z-index:2;width:100%}
.hero-txt{max-width:660px;color:#fff}
.insignia{display:inline-flex;align-items:center;gap:9px;padding:7px 16px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.26);
  border-radius:100px;font-size:13px;color:#fff;margin-bottom:26px;
  backdrop-filter:blur(8px)}
.insignia .punto{width:7px;height:7px;border-radius:50%;background:#5ee5a1;
  box-shadow:0 0 10px #5ee5a1;animation:parpadeo 2.2s ease-in-out infinite}
@keyframes parpadeo{0%,100%{opacity:1}50%{opacity:.3}}

.hero h1{font-size:clamp(35px,5.6vw,62px);line-height:1.06;margin:0 0 22px;
  font-weight:800;letter-spacing:-1.9px;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.28)}
.hero h1 .destacado{color:#ffc477;display:inline-block}
.hero p.entrada{font-size:clamp(15.5px,2vw,19px);color:rgba(255,255,255,.93);
  margin:0 0 34px;max-width:560px;text-shadow:0 1px 12px rgba(0,0,0,.28)}

.busca-hero{max-width:620px;position:relative;margin-bottom:20px}
.busca-hero input{width:100%;padding:19px 22px 19px 56px;font-size:16.5px;
  background:#fff;border:2px solid transparent;border-radius:14px;color:var(--txt);
  box-shadow:0 16px 44px rgba(0,0,0,.24);transition:var(--trans)}
.busca-hero input:focus{outline:0;border-color:var(--acento);
  box-shadow:0 16px 44px rgba(0,0,0,.24),0 0 0 5px rgba(224,123,24,.28)}
.busca-hero .lupa{position:absolute;left:22px;top:50%;transform:translateY(-50%);
  color:var(--txt3);pointer-events:none;display:flex}
.ejemplos{font-size:13px;color:rgba(255,255,255,.8);display:flex;gap:9px;
  flex-wrap:wrap;align-items:center}
.ejemplos button{font-family:var(--mono);font-size:12px;padding:5px 12px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);
  border-radius:7px;color:#fff;transition:var(--trans);backdrop-filter:blur(6px)}
.ejemplos button:hover{background:#fff;color:var(--azul);border-color:#fff}

.cifras{display:flex;gap:46px;margin-top:52px;flex-wrap:wrap}
.cifra .n{font-size:34px;font-weight:800;letter-spacing:-1.2px;
  font-family:var(--mono);color:#fff}
.cifra .t{font-size:12px;color:rgba(255,255,255,.72);text-transform:uppercase;
  letter-spacing:1.3px;font-weight:600}

/* ─── Secciones ──────────────────────────────────────────────── */
section.bloque{padding:88px 0}
section.bloque.arena{background:var(--sup2)}
.titulo-sec{margin-bottom:44px;max-width:640px}
.titulo-sec.centro{margin-left:auto;margin-right:auto;text-align:center}
.titulo-sec .eti{font-size:11.5px;font-weight:750;letter-spacing:2.2px;color:var(--acento);
  text-transform:uppercase;margin-bottom:12px;display:flex;align-items:center;gap:9px}
.titulo-sec.centro .eti{justify-content:center}
.titulo-sec .eti::before{content:"";width:26px;height:2px;background:var(--acento);border-radius:2px}
.titulo-sec.centro .eti::before{display:none}
.titulo-sec h2{font-size:clamp(26px,3.7vw,39px);margin:0 0 12px;font-weight:780;
  letter-spacing:-1.1px;line-height:1.14}
.titulo-sec p{color:var(--txt2);margin:0;font-size:16.5px}

.rejilla-tarjetas{display:grid;gap:20px;
  grid-template-columns:repeat(auto-fill,minmax(238px,1fr))}
.tarjeta{
  background:var(--sup);border:1px solid var(--borde);border-radius:var(--radio);
  padding:26px;transition:var(--trans);position:relative;overflow:hidden;display:block;
}
.tarjeta:hover{border-color:var(--acento);transform:translateY(-5px);box-shadow:var(--sombra2)}
.tarjeta .ico{width:48px;height:48px;border-radius:12px;
  background:linear-gradient(140deg,var(--sup2),var(--sup3));
  display:grid;place-items:center;margin-bottom:17px;color:var(--acento);
  border:1px solid var(--borde);transition:var(--trans)}
.tarjeta:hover .ico{background:linear-gradient(140deg,var(--acento),var(--acento2));
  color:#fff;transform:scale(1.06) rotate(-4deg);border-color:transparent}
.tarjeta h3{margin:0 0 7px;font-size:16.5px;font-weight:700;letter-spacing:-.3px}
.tarjeta p{margin:0;font-size:14px;color:var(--txt2);line-height:1.6}
.tarjeta .cuenta{font-family:var(--mono);font-size:12px;color:var(--acento);margin-top:12px;
  font-weight:650}

/* tarjeta de categoría con foto */
.cat-foto{position:relative;border-radius:var(--radio);overflow:hidden;
  aspect-ratio:4/3;display:block;background:var(--sup3);box-shadow:var(--sombra)}
.cat-foto img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.4,0,.2,1)}
.cat-foto:hover img{transform:scale(1.09)}
.cat-foto .capa{position:absolute;inset:0;
  background:linear-gradient(to top,rgba(8,35,56,.9) 0%,rgba(8,35,56,.35) 45%,transparent 75%)}
.cat-foto .txt{position:absolute;left:20px;right:20px;bottom:18px;color:#fff}
.cat-foto .txt h3{margin:0 0 3px;font-size:18px;font-weight:730;letter-spacing:-.3px}
.cat-foto .txt span{font-size:12.5px;opacity:.86;font-family:var(--mono)}

/* marcas */
.rejilla-marcas{display:grid;gap:14px;
  grid-template-columns:repeat(auto-fill,minmax(152px,1fr))}
.marca{background:var(--sup);border:1px solid var(--borde);border-radius:12px;
  padding:22px 14px;text-align:center;transition:var(--trans)}
.marca:hover{border-color:var(--acento);transform:translateY(-3px);box-shadow:var(--sombra)}
.marca .nom{font-weight:700;font-size:14.5px;margin-bottom:4px;letter-spacing:-.25px}
.marca .num{font-size:11.5px;color:var(--txt3);font-family:var(--mono)}

/* banda con foto */
.banda{position:relative;overflow:hidden;border-radius:var(--radio);
  display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:400px;
  box-shadow:var(--sombra2)}
.banda .foto{position:relative;overflow:hidden;min-height:320px}
.banda .foto img{width:100%;height:100%;object-fit:cover}
.banda .cuerpo{background:var(--tinta);color:#fff;padding:52px 46px;display:flex;
  flex-direction:column;justify-content:center}
.banda .cuerpo h2{font-size:clamp(24px,3.2vw,34px);margin:0 0 16px;font-weight:780;
  letter-spacing:-1px;line-height:1.16}
.banda .cuerpo p{color:rgba(255,255,255,.9);margin:0 0 26px;font-size:16px}
.banda .lista{list-style:none;padding:0;margin:0 0 28px}
.banda .lista li{padding:9px 0 9px 30px;position:relative;color:rgba(255,255,255,.94);
  font-size:15px;border-bottom:1px solid rgba(255,255,255,.13)}
.banda .lista li:last-child{border-bottom:0}
.banda .lista li::before{content:"";position:absolute;left:0;top:17px;width:15px;height:2px;
  background:var(--acento);border-radius:2px}

/* ─── Catálogo ───────────────────────────────────────────────── */
.diseno-catalogo{display:grid;grid-template-columns:252px 1fr;gap:32px;
  align-items:start;padding:38px 0 78px}
.filtros{position:sticky;top:96px;background:var(--sup);border:1px solid var(--borde);
  border-radius:var(--radio);padding:22px;max-height:calc(100vh-124px);overflow-y:auto;
  box-shadow:var(--sombra)}
.filtros h4{margin:0 0 13px;font-size:11.5px;text-transform:uppercase;letter-spacing:1.4px;
  color:var(--acento);font-weight:750}
.filtros .grupo{margin-bottom:26px}
.filtros .grupo:last-child{margin-bottom:0}
.opcion{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:14px;
  color:var(--txt2);cursor:pointer;transition:color .15s}
.opcion:hover{color:var(--azul)}
.opcion input{accent-color:var(--acento);width:16px;height:16px;cursor:pointer}
.opcion .n{margin-left:auto;font-size:11px;color:var(--txt3);font-family:var(--mono)}

.barra-resultados{display:flex;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}
.barra-resultados .cuenta{color:var(--txt2);font-size:14.5px}
.barra-resultados .cuenta b{color:var(--txt);font-family:var(--mono)}
.barra-resultados select{margin-left:auto;padding:9px 13px;background:var(--sup);
  border:1px solid var(--borde);border-radius:9px;color:var(--txt)}

.rejilla-productos{display:grid;gap:18px;
  grid-template-columns:repeat(auto-fill,minmax(236px,1fr))}
.prod{background:var(--sup);border:1px solid var(--borde);border-radius:var(--radio);
  overflow:hidden;transition:var(--trans);display:flex;flex-direction:column}
.prod:hover{border-color:var(--acento);transform:translateY(-5px);box-shadow:var(--sombra2)}
.prod .img{aspect-ratio:4/3;background:var(--sup2);display:grid;place-items:center;
  border-bottom:1px solid var(--borde);position:relative;overflow:hidden}
.prod .img img{width:100%;height:100%;object-fit:contain;padding:16px;
  transition:transform .45s cubic-bezier(.4,0,.2,1)}
.prod:hover .img img{transform:scale(1.09)}
.prod .marca-eti{position:absolute;top:10px;left:10px;font-size:10px;font-weight:750;
  padding:4px 9px;border-radius:6px;letter-spacing:.3px}
.prod .cuerpo{padding:16px;display:flex;flex-direction:column;flex:1;gap:8px}
.prod .pn{font-family:var(--mono);font-weight:700;font-size:13.5px;color:var(--azul);
  word-break:break-all}
.prod .desc{font-size:12.5px;color:var(--txt2);line-height:1.5;flex:1;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.prod .pie{display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin-top:auto;padding-top:11px;border-top:1px solid var(--borde)}
.prod .precio{font-weight:750;font-size:16px;font-family:var(--mono);color:var(--azul)}
.prod .precio.pedir{font-size:12px;font-weight:650;color:var(--txt3);font-family:inherit}

.estado{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;
  padding:4px 10px;border-radius:20px}
.estado.hay{background:rgba(15,138,77,.1);color:var(--ok)}
.estado.no{background:rgba(209,135,0,.12);color:var(--alerta)}
.estado .pt{width:5px;height:5px;border-radius:50%;background:currentColor}

/* ─── Ficha de producto ──────────────────────────────────────── */
.ficha{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:50px;
  padding:38px 0 66px}
.ficha .visual{background:var(--sup);border:1px solid var(--borde);border-radius:18px;
  aspect-ratio:1;display:grid;place-items:center;padding:42px;position:sticky;top:96px;
  box-shadow:var(--sombra)}
.ficha .visual img{max-height:100%;object-fit:contain}
.migas{font-size:13px;color:var(--txt3);margin-bottom:22px;display:flex;gap:8px;flex-wrap:wrap}
.migas a:hover{color:var(--acento)}
.ficha h1{font-family:var(--mono);font-size:clamp(23px,3.2vw,32px);margin:0 0 9px;
  font-weight:750;letter-spacing:-1px;word-break:break-all;color:var(--azul)}
.ficha .sub-marca{font-size:14.5px;color:var(--txt2);margin-bottom:22px}
.precio-caja{background:var(--sup2);border:1px solid var(--borde);border-radius:14px;
  padding:26px;margin:24px 0}
.precio-caja .grande{font-size:37px;font-weight:800;font-family:var(--mono);
  letter-spacing:-1.5px;line-height:1.1;color:var(--azul)}
.precio-caja .aviso{font-size:14px;color:var(--txt2);line-height:1.6}
.cantidad{display:flex;align-items:center;border:1.5px solid var(--borde2);border-radius:10px;
  overflow:hidden;background:var(--sup)}
.cantidad button{width:40px;height:46px;color:var(--txt2);font-size:18px;transition:var(--trans)}
.cantidad button:hover{background:var(--sup3);color:var(--acento)}
.cantidad input{width:58px;height:46px;text-align:center;background:transparent;border:0;
  color:var(--txt);font-family:var(--mono);font-weight:700}
.cantidad input:focus{outline:0}

.pestanas{display:flex;gap:3px;border-bottom:2px solid var(--borde);margin:36px 0 0}
.pestanas button{padding:13px 20px;color:var(--txt3);font-weight:650;font-size:14.5px;
  border-bottom:3px solid transparent;transition:var(--trans);margin-bottom:-2px}
.pestanas button:hover{color:var(--txt2)}
.pestanas button.activa{color:var(--acento);border-bottom-color:var(--acento)}
.panel-pestana{display:none;padding:26px 0}
.panel-pestana.activa{display:block;animation:aparecer .28s ease}
@keyframes aparecer{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
table.specs{width:100%;border-collapse:collapse;font-size:14.5px}
table.specs td{padding:13px 0;border-bottom:1px solid var(--borde)}
table.specs td:first-child{color:var(--txt2);width:44%}
table.specs td:last-child{font-weight:650;font-family:var(--mono);font-size:14px;color:var(--azul)}
table.specs tr:last-child td{border-bottom:0}
.marca-origen{font-size:10.5px;color:var(--txt3);font-family:system-ui;font-weight:500;
  margin-left:8px;padding:2px 7px;border:1px solid var(--borde2);border-radius:5px}

/* ─── Cotización ─────────────────────────────────────────────── */
.cot-diseno{display:grid;grid-template-columns:1fr 378px;gap:32px;
  align-items:start;padding:38px 0 78px}
.lista-cot{background:var(--sup);border:1px solid var(--borde);border-radius:14px;
  overflow:hidden;box-shadow:var(--sombra)}
.linea{display:grid;grid-template-columns:76px 1fr auto;gap:16px;padding:18px;
  border-bottom:1px solid var(--borde);align-items:center}
.linea-pie{display:flex;align-items:center;gap:26px}
.linea-total{text-align:right;min-width:92px}
.linea-total .importe{font-weight:700;white-space:nowrap}
.linea-total .quitar{font-size:12px;color:var(--txt3);margin-top:5px}
.linea-total .quitar:hover{color:var(--acento)}
.linea:last-child{border-bottom:0}
.linea .mini{width:76px;height:64px;background:var(--sup2);border-radius:9px;
  display:grid;place-items:center;overflow:hidden;border:1px solid var(--borde)}
.linea .mini img{width:100%;height:100%;object-fit:contain;padding:7px}
.resumen{background:var(--sup);border:1px solid var(--borde);border-radius:14px;
  padding:26px;position:sticky;top:96px;box-shadow:var(--sombra)}
.resumen h3{margin:0 0 20px;font-size:18px;font-weight:730}
.reng{display:flex;justify-content:space-between;padding:10px 0;font-size:14.5px;color:var(--txt2)}
.reng.total{border-top:2px solid var(--borde);margin-top:10px;padding-top:17px;
  font-size:20px;font-weight:780;color:var(--azul);font-family:var(--mono)}
.campo{margin-bottom:15px}
.campo label{display:block;font-size:12.5px;font-weight:650;color:var(--txt2);margin-bottom:7px}
.campo input,.campo textarea{width:100%;padding:11px 14px;background:var(--sup2);
  border:1.5px solid transparent;border-radius:9px;color:var(--txt);transition:var(--trans)}
.campo input:focus,.campo textarea:focus{outline:0;border-color:var(--acento);background:var(--sup);
  box-shadow:0 0 0 4px var(--brillo)}
.campo textarea{resize:vertical;min-height:78px;font-family:inherit}

.nota{background:#fff8ec;border:1px solid #f2ddb8;border-left:4px solid var(--alerta);
  border-radius:10px;padding:16px 18px;font-size:14px;color:#7a5c10;line-height:1.6;margin:20px 0}
[data-tema="oscuro"] .nota{background:#2e2412;border-color:#5a4620;color:#e8c88a}
.nota.info{background:#eef6fc;border-color:#c5dcf0;border-left-color:var(--azul);color:#0d4467}
[data-tema="oscuro"] .nota.info{background:#132535;border-color:#255580;color:#a8d4f0}
.nota b{font-weight:750}

/* ─── Pie ────────────────────────────────────────────────────── */
footer.principal{padding:64px 0 32px;background:var(--tinta);color:#fff;margin-top:0}
.pie-rejilla{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:42px;margin-bottom:42px}
footer h5{font-size:11.5px;text-transform:uppercase;letter-spacing:1.4px;
  color:var(--acento);margin:0 0 16px;font-weight:750}
footer ul{list-style:none;padding:0;margin:0}
footer li{margin-bottom:10px;font-size:14px;color:rgba(255,255,255,.88)}
footer a{color:rgba(255,255,255,.88);transition:color .15s}
footer a:hover{color:var(--acento2)}
footer .logo .txt{color:#fff}
footer .logo .marca-icono{background:rgba(255,255,255,.16)}
.pie-abajo{border-top:1px solid rgba(255,255,255,.16);padding-top:24px;display:flex;
  justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;
  color:rgba(255,255,255,.72)}

/* ─── Utilidades y animaciones ───────────────────────────────── */
.revelar{opacity:0;transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.4,0,.2,1)}
.revelar.visible{opacity:1;transform:none}
.vacio{text-align:center;padding:76px 20px;color:var(--txt3)}
.vacio h3{color:var(--txt2);margin:0 0 8px;font-weight:650}
.cargador{width:36px;height:36px;border:3px solid var(--borde);border-top-color:var(--acento);
  border-radius:50%;animation:girar .8s linear infinite;margin:48px auto}
@keyframes girar{to{transform:rotate(360deg)}}

.brindis{position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(90px);
  background:var(--tinta);color:#fff;border-radius:12px;padding:14px 22px;
  box-shadow:var(--sombra2);z-index:500;font-size:14.5px;font-weight:650;
  display:flex;align-items:center;gap:11px;opacity:0;transition:var(--trans)}
.brindis.ver{transform:translateX(-50%) translateY(0);opacity:1}
.brindis .check{color:#5ee5a1;display:flex}

/* ─── Responsivo ─────────────────────────────────────────────── */
@media(max-width:980px){
  .ficha{grid-template-columns:1fr;gap:30px}
  .ficha .visual{position:static;aspect-ratio:4/3}
  .diseno-catalogo,.cot-diseno{grid-template-columns:1fr}
  .filtros{position:static;max-height:none}
  .resumen{position:static}
  .banda{grid-template-columns:1fr}
  .banda .cuerpo{padding:38px 30px}
  .pie-rejilla{grid-template-columns:1fr 1fr;gap:30px}
}
@media(max-width:720px){
  .barra{height:auto;padding:13px 0;flex-wrap:wrap;gap:12px}
  .buscador{order:3;flex-basis:100%;max-width:none}
  .hero{min-height:auto;padding:60px 0}
  .cifras{gap:28px;margin-top:38px}
  .cifra .n{font-size:26px}
  section.bloque{padding:58px 0}
  /* Carrito en móvil: foto + datos arriba; cantidad e importe comparten la
     fila de abajo, a lo ancho. Antes el control de cantidad caía en una
     columna de 60px y el botón "+" quedaba cortado fuera de la pantalla. */
  .linea{grid-template-columns:64px 1fr;gap:12px 14px;padding:16px 14px;align-items:start}
  .linea .mini{width:64px;height:56px}
  .linea-pie{grid-column:1 / -1;justify-content:space-between;gap:10px 14px;
    padding-top:2px;flex-wrap:wrap}
  .linea-total{display:flex;align-items:center;gap:16px;text-align:left;min-width:0}
  .linea-total .quitar{margin-top:0}
  .linea .cantidad{width:max-content}
  .pie-rejilla{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .revelar{opacity:1;transform:none}
  .hero-foto img{animation:none}
}

/* ═══════════════════════════════════════════════════════════════════
   HERO v2 — inspirado en la referencia de Daniel (electricmotorwholesale):
   claro, rejilla técnica sutil, tipografía enorme, producto real a la vista.
   ═══════════════════════════════════════════════════════════════════ */
.hero{position:relative;overflow:hidden;padding:70px 0 60px;background:var(--fondo);
  min-height:auto;display:block;border-bottom:1px solid var(--borde)}
.hero-fondo{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-rejilla{position:absolute;inset:-1px;
  background-image:linear-gradient(var(--borde) 1px,transparent 1px),
                   linear-gradient(90deg,var(--borde) 1px,transparent 1px);
  background-size:64px 64px;opacity:.65;
  mask-image:radial-gradient(ellipse 90% 75% at 30% 35%,#000 20%,transparent 78%);
  -webkit-mask-image:radial-gradient(ellipse 90% 75% at 30% 35%,#000 20%,transparent 78%)}
.hero-halo{display:none}

.hero-diseno{position:relative;z-index:2;display:grid;grid-template-columns:1.08fr .92fr;
  gap:56px;align-items:center}

.credencial{display:inline-flex;align-items:center;gap:10px;padding:7px 16px 7px 12px;
  background:var(--sup);border:1px solid var(--borde);border-radius:100px;font-size:13px;
  color:var(--txt2);margin-bottom:26px;box-shadow:var(--sombra);font-weight:550}
.credencial .punto{width:7px;height:7px;border-radius:50%;background:var(--ok);
  box-shadow:0 0 0 3px rgba(15,138,77,.16);animation:parpadeo 2.4s ease-in-out infinite}
@keyframes parpadeo{0%,100%{opacity:1}50%{opacity:.4}}
.credencial b{color:var(--txt);font-weight:700}

.hero h1{font-size:clamp(38px,5.6vw,66px);line-height:1.02;margin:0 0 22px;font-weight:800;
  letter-spacing:-2.4px;color:var(--txt)}
.hero h1 .destacado{color:var(--acento)}
.hero p.entrada{font-size:clamp(16px,1.9vw,19px);color:var(--txt2);margin:0 0 32px;max-width:520px}

.busca-hero{position:relative;max-width:560px;margin-bottom:16px}
.busca-hero input{width:100%;padding:20px 22px 20px 58px;font-size:16.5px;background:var(--sup);
  border:2px solid var(--borde);border-radius:15px;color:var(--txt);box-shadow:var(--sombra);
  transition:var(--trans)}
.busca-hero input:focus{outline:0;border-color:var(--acento);
  box-shadow:0 0 0 5px var(--brillo),0 14px 40px rgba(29,43,54,.13)}
.busca-hero .lupa{position:absolute;left:22px;top:50%;transform:translateY(-50%);
  color:var(--txt3);pointer-events:none;display:flex}
.ejemplos{font-size:13px;color:var(--txt3);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ejemplos button{font-family:var(--mono);font-size:12px;padding:6px 12px;background:var(--sup);
  border:1px solid var(--borde);border-radius:8px;color:var(--txt2);transition:var(--trans)}
.ejemplos button:hover{border-color:var(--acento);color:var(--acento2);
  transform:translateY(-2px);box-shadow:0 5px 14px var(--brillo)}

.sellos{display:flex;gap:26px;flex-wrap:wrap;margin-top:34px;padding-top:26px;
  border-top:1px solid var(--borde)}
.sello{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--txt2);font-weight:550}
.sello svg{color:var(--ok);flex-shrink:0}

/* ── Mosaico de producto real ── */
.hero-vitrina{position:relative}
.vitrina-rejilla{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}
.vt{background:var(--sup);border:1px solid var(--borde);border-radius:16px;padding:18px;
  box-shadow:var(--sombra);transition:transform .5s cubic-bezier(.34,1.3,.5,1),box-shadow .35s;
  opacity:0;transform:translateY(26px) scale(.95);display:block}
.vt.entra{opacity:1;transform:none}
.vt:hover{transform:translateY(-8px) scale(1.03);box-shadow:var(--sombra2);border-color:var(--acento)}

.vt .marco{aspect-ratio:1;background:linear-gradient(145deg,var(--sup2),var(--sup));
  border-radius:11px;display:grid;place-items:center;overflow:hidden;margin-bottom:12px;
  border:1px solid var(--borde)}
.vt .marco img{width:100%;height:100%;object-fit:contain;padding:9px;
  transition:transform .45s cubic-bezier(.4,0,.2,1)}
.vt:hover .marco img{transform:scale(1.11) rotate(-2deg)}
.vt .m{font-size:10.5px;font-weight:750;letter-spacing:.5px;text-transform:uppercase;
  color:var(--acento);margin-bottom:3px}
.vt .p{font-family:var(--mono);font-size:12.5px;font-weight:700;color:var(--azul);
  word-break:break-all;line-height:1.3}
.vt .precio{font-family:var(--mono);font-size:13.5px;font-weight:750;color:var(--txt);margin-top:6px}
.vt .precio.pedir{font-size:11.5px;color:var(--txt3);font-family:inherit;font-weight:600}

/* ── Carrusel infinito de marcas ── */
.tira{overflow:hidden;padding:26px 0;border-bottom:1px solid var(--borde);background:var(--sup2);
  position:relative}
.tira::before,.tira::after{content:"";position:absolute;top:0;bottom:0;width:130px;z-index:2;
  pointer-events:none}
.tira::before{left:0;background:linear-gradient(90deg,var(--sup2),transparent)}
.tira::after{right:0;background:linear-gradient(270deg,var(--sup2),transparent)}
.tira-pista{display:flex;gap:14px;width:max-content;animation:correr 46s linear infinite}
.tira:hover .tira-pista{animation-play-state:paused}
@keyframes correr{to{transform:translateX(-50%)}}
.tira-item{display:flex;align-items:center;gap:11px;padding:11px 20px;background:var(--sup);
  border:1px solid var(--borde);border-radius:11px;white-space:nowrap;transition:var(--trans)}
.tira-item:hover{border-color:var(--acento);transform:translateY(-3px);box-shadow:var(--sombra)}
.tira-item .n{font-weight:700;font-size:14px;letter-spacing:-.2px}
.tira-item .c{font-family:var(--mono);font-size:11px;color:var(--txt3);
  background:var(--sup2);padding:2px 8px;border-radius:20px}

@media(max-width:980px){
  .hero-diseno{grid-template-columns:1fr;gap:44px}
  .hero-vitrina{max-width:460px;margin:0 auto}
  .hero h1{letter-spacing:-1.5px}
}
@media(max-width:560px){
  .vitrina-rejilla{gap:11px}
  .vt{padding:13px}
  .vt:nth-child(2),.vt:nth-child(3),.vt:nth-child(4){margin-top:0}
  .sellos{gap:16px}
}
@media(prefers-reduced-motion:reduce){
  .vt,.hero-halo{animation:none!important}
  .tira-pista{animation:none}
}


/* ═══ Tipografía de la marca ═══
   Barlow Condensed en títulos e Inter en el cuerpo: son las que Daniel ya
   usaba en su sitio. Se respetan para no cambiarle la identidad. */
h1, h2, h3, .titulo-sec h2, .hero h1, .logo .txt, .btn, .tarjeta h3,
.credencial, nav button, .pestanas button, footer h5 {
  font-family:var(--titulo);
  letter-spacing:.005em;
}
.hero h1{font-weight:800;letter-spacing:-.012em;line-height:1}
.titulo-sec h2{font-weight:700}
.btn{font-weight:700;letter-spacing:.045em;text-transform:uppercase;font-size:13.5px}
.btn.chico{font-size:12px}
.titulo-sec .eti{font-family:var(--titulo);letter-spacing:.14em}
.tarjeta h3{font-weight:700;font-size:19px}
footer h5{letter-spacing:.12em;font-size:13px}

/* El logo real de MSA reemplaza al cuadrito con iniciales */
.logo-img{height:46px;width:auto;object-fit:contain;display:block}
footer .logo-img{height:52px;filter:brightness(0) invert(1)}
@media(max-width:720px){ .logo-img{height:38px} }


/* ═══ Barra superior de contacto ═══
   La tenía su sitio original y es lo normal en un distribuidor: horario,
   correo y teléfono siempre a la vista. */
.topbar{background:#111;padding:8px 0;font-size:12.5px}
[data-tema="oscuro"] .topbar{background:#000}
.topbar-int{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.tb-izq,.tb-der{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.topbar span,.topbar a{color:rgba(255,255,255,.62);display:inline-flex;align-items:center;gap:6px}
.topbar a:hover{color:#fff}
.topbar svg{color:var(--acento)}
.tb-sep{width:1px;height:13px;background:rgba(255,255,255,.2);padding:0}
.tb-tel{font-weight:700;color:#fff!important;font-family:var(--titulo);letter-spacing:.03em;
  font-size:14px}
@media(max-width:860px){ .tb-izq span:first-child{display:none} }
@media(max-width:600px){
  .topbar{font-size:11.5px}
  .tb-izq{display:none}
  .topbar-int{justify-content:center}
}

/* Carrusel con los logos reales de las marcas */
.tira-logo{display:flex;align-items:center;justify-content:center;padding:14px 26px;
  background:var(--sup);border:1px solid var(--borde);border-radius:10px;height:74px;
  min-width:150px;transition:var(--trans)}
.tira-logo:hover{border-color:var(--acento);box-shadow:var(--sombra)}
.tira-logo img{max-height:38px;max-width:112px;object-fit:contain;
  filter:grayscale(1);opacity:.62;transition:var(--trans)}
.tira-logo:hover img{filter:none;opacity:1}
[data-tema="oscuro"] .tira-logo img{filter:grayscale(1) brightness(2.4);opacity:.7}
[data-tema="oscuro"] .tira-logo:hover img{filter:brightness(1.9);opacity:1}

/* El encabezado deja de ser translúcido: se ve más sólido y menos "plantilla" */
header.principal{background:var(--sup);backdrop-filter:none;
  box-shadow:0 2px 8px rgba(0,0,0,.06);border-bottom:1px solid var(--borde)}
@media(min-width:721px){ .barra{height:80px} }


/* ═══════════════════════════════════════════════════════════════════
   Correcciones de móvil — van al final para que ganen a todo lo anterior.
   ═══════════════════════════════════════════════════════════════════ */

/* Nada puede desbordar el ancho de la pantalla. */
body{max-width:100%}
#encabezado{display:contents}
.pista-campo{font-size:12px;color:var(--txt3);margin-top:5px;line-height:1.45}

/* Versión con fondo transparente: la M en rojo y el resto en blanco. Ya no
   hace falta la placa blanca que Daniel veía como un recuadro vacío. */
.logo-pie{display:block;width:auto;max-width:210px;height:auto}
.nav-ing{font-weight:650;font-size:14px;color:var(--txt2);padding:8px 12px;border-radius:8px;
  letter-spacing:.01em}
.nav-ing:hover{color:var(--acento);background:var(--sup2)}
@media(max-width:720px){ .nav-ing{display:none} }

/* En CSS grid, un hijo NO se encoge por debajo del ancho de su contenido a
   menos que lleve min-width:0. Sin esto, la imagen de 420px de la ficha
   estiraba la columna a 674px en una pantalla de 375. */
.ficha > *, .diseno-catalogo > *, .cot-diseno > *, .hero-diseno > *, .banda > *{min-width:0}
.ficha .visual img, .prod .img img, .vt .marco img{max-width:100%;height:auto}
.ficha .visual img{max-height:100%}

@media(max-width:720px){
  /* Encabezado: el logo manda, lo demás se acomoda debajo. */
  .barra{height:auto!important;padding:12px 0;display:grid;
    grid-template-columns:auto 1fr;grid-template-areas:"logo acciones" "buscador buscador";
    gap:12px;align-items:center}
  .logo{grid-area:logo}
  .acciones{grid-area:acciones;justify-content:flex-end;gap:4px}
  .buscador{grid-area:buscador;max-width:none}
  .acciones .btn{padding:8px 13px;font-size:11.5px}
  .icono-btn{width:38px;height:38px}
  .logo-img{height:34px}

  /* Ficha de producto */
  .ficha{grid-template-columns:1fr!important;gap:22px;padding:20px 0 44px}
  .ficha .visual{position:static;aspect-ratio:4/3;padding:22px;border-radius:14px}
  .ficha h1{font-size:26px;letter-spacing:-.5px;word-break:break-word}
  .migas{font-size:12px;margin-bottom:14px}
  .precio-caja{padding:18px}
  .precio-caja .grande{font-size:30px}
  .pestanas{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .pestanas::-webkit-scrollbar{display:none}
  .pestanas button{padding:12px 15px;font-size:13.5px;white-space:nowrap}
  table.specs td{font-size:13.5px;padding:11px 0}
  table.specs td:first-child{width:46%}

  /* El botón de agregar ocupa todo el ancho: es la acción principal */
  .precio-caja .btn{width:100%;justify-content:center}
  .cantidad{width:100%;justify-content:space-between}
  .cantidad input{flex:1}
}

@media(max-width:400px){
  .ficha h1{font-size:22px}
  .acciones .btn{display:none}      /* el catálogo ya está en el menú de abajo */
}


/* ═══ Ajustes finos de móvil ═══ */
@media(max-width:720px){
  /* nada del contenido puede sobresalir de la pantalla */
  body{max-width:100%}
  .envoltura{padding:0 16px}

  /* el chat no debe tapar acciones importantes */
  .msa-burbuja{bottom:16px;right:16px}

  /* tablas y bloques anchos hacen scroll dentro de su caja, no de la página */
  table.specs{display:block;overflow-x:auto}
  .lista-cot{overflow:hidden}

  /* controles cómodos para el dedo */
  .cantidad button{width:46px;height:48px}
  .cantidad input{width:56px;height:48px}
  .btn{padding:13px 20px}
  .prod .pie .btn.chico{padding:10px 14px}

  /* números de parte largos no rompen la caja */
  .prod .pn,.ficha h1,.linea .mono{overflow-wrap:anywhere}

  /* la ficha de producto respira */
  .ficha{padding:22px 0 44px}
  .ficha .visual{padding:24px}
  .precio-caja{padding:20px}
  .precio-caja .grande{font-size:30px}
  .pestanas{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .pestanas button{white-space:nowrap;padding:12px 15px}

  /* el resumen de la cotización, cómodo */
  .resumen{padding:20px}
  .cot-diseno{gap:22px;padding:22px 0 44px}
}

@media(max-width:400px){
  .tb-der > a[href$="info.html"], .topbar .tb-sep{display:none}
  .linea-total .importe{font-size:14px}
  .hero h1{font-size:clamp(30px,8.6vw,38px)}
  .ejemplos button{font-size:11px;padding:5px 9px}
  .sellos{gap:12px}
  .sello{font-size:12.5px}
  .linea{grid-template-columns:56px 1fr;padding:14px 12px}
  .cifra .n{font-size:24px}
}


/* ═══ Áreas táctiles en móvil ═══
   Medido con el navegador a 375px: varios controles quedaban por debajo de lo
   cómodo para el dedo (30px de alto o menos). Se agrandan sin cambiar el diseño. */
@media(max-width:720px){
  /* atajos de número de parte del hero */
  .ejemplos button{min-height:40px;padding:9px 14px;font-size:12.5px}

  /* quitar una pieza del carrito */
  .linea .quitar{min-height:40px;padding:9px 12px;margin-left:-12px;font-size:13.5px}

  /* casillas y radios de los filtros del catálogo */
  .opcion{padding:10px 0;min-height:44px}
  .opcion input{width:20px;height:20px;flex-shrink:0}

  /* enviar del chat y cerrar */
  .msa-form button{width:48px;height:48px}
  .msa-cab button{width:40px;height:40px}
  .msa-form textarea{min-height:48px}

  /* selector de orden del catálogo */
  .barra-resultados select{min-height:44px;width:100%}
  .barra-resultados{gap:10px}
  .barra-resultados select{margin-left:0}

  /* iconos del encabezado */
  .icono-btn{width:44px;height:44px}

  /* paginación */
  .paginacion .btn{min-height:44px;min-width:56px;justify-content:center}
}
