/* Asesorías y Suministros HSE · web pública · dirección C (clara, catálogo primero). Ver marca/guia-de-marca.html */
:root{--bg:#f3f4f7;--sup:#fff;--sup-2:#eceef4;--tinta:#171a26;--tinta-2:#555b70;--linea:#dcdfe8;
  --indigo:#3a3f94;--accion:#0b7d43;--accion-suave:#e3f4ea;--verde-logo:#00a859;--error:#b3261e}
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}
body{font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--tinta);line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{letter-spacing:-.015em;line-height:1.2}
.wrap{max-width:1280px;margin:0 auto;padding:0 24px}
.oculto,.trampa{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:absolute;left:-9999px}.saltar:focus{left:16px;top:8px;background:var(--sup);padding:8px 12px;z-index:50;border-radius:8px}
:focus-visible{outline:3px solid rgb(11 125 67 / .45);outline-offset:2px}

/* utilidades y cabecera */
.util{background:var(--indigo);color:#fff;font-size:13.5px}
.util .wrap{display:flex;gap:22px;min-height:36px;align-items:center;flex-wrap:wrap}
.util a{text-decoration:none}.util .der{margin-left:auto}
.util .ingresar{display:inline-flex;gap:6px;align-items:center;font-weight:600;background:rgba(255,255,255,.14);border-radius:6px;padding:3px 10px}
.util .ingresar:hover{background:rgba(255,255,255,.26)}.util .ingresar svg{width:15px;height:15px}
.cabecera{background:var(--sup);border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:20}
.barra{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:center;min-height:76px}
.marca img{height:52px;width:auto}
.buscar{display:flex;align-items:center;background:var(--sup-2);border:1px solid var(--linea);border-radius:8px;height:46px;max-width:620px;width:100%;justify-self:center}
.buscar input{border:0;background:none;font:inherit;color:var(--tinta);flex:1;padding:0 14px;outline:none;min-width:0;height:100%}
.buscar button{border:0;background:none;color:var(--tinta-2);width:46px;height:44px;cursor:pointer}.buscar svg{width:20px;height:20px}
.ico-cot{display:flex;gap:8px;align-items:center;font-weight:600;text-decoration:none;padding:10px 14px;border-radius:8px}
.ico-cot:hover{background:var(--sup-2)}
.cnt{background:var(--accion);color:#fff;border-radius:999px;font-size:12px;padding:1px 8px}
.catnav{border-top:1px solid var(--linea)}
.catnav ul{display:flex;gap:2px;list-style:none;padding:0;overflow-x:auto;min-height:46px;align-items:center;font-size:14.5px;font-weight:500;scrollbar-width:thin}
.catnav a{padding:8px 12px;border-radius:8px;display:block;white-space:nowrap;text-decoration:none}
.catnav a:hover{background:var(--sup-2)}.catnav a[aria-current]{color:var(--accion);background:var(--accion-suave)}
.catnav .sep{margin-left:auto}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:12px 20px;font:inherit;font-weight:600;font-size:15.5px;line-height:1.2;text-decoration:none;border:0;cursor:pointer;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn svg{width:20px;height:20px}
.btn-p{background:var(--accion);color:#fff}.btn-p:hover{filter:brightness(1.08)}
.btn-s{background:var(--sup);color:var(--tinta);border:1px solid var(--linea)}
.btn-claro{background:#fff;color:var(--indigo)}
.btn-wa{background:#1f9d55;color:#fff}
.btn[disabled]{opacity:.6;cursor:wait}

/* portada */
.portada{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;padding:22px 0}
.banner{position:relative;border-radius:12px;overflow:hidden;min-height:380px;display:flex;align-items:flex-end}
.banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgb(17 18 50 / .9),rgb(17 18 50 / .4) 70%,rgb(17 18 50 / .15))}
.banner .tx{position:relative;z-index:1;padding:40px;color:#fff;max-width:580px}
.banner h1{font-size:clamp(28px,3.4vw,44px);line-height:1.08}
.banner p{margin:14px 0 24px;font-size:17px;color:#e2e3f3}
.lateral{display:grid;gap:18px}
.caja{background:var(--sup);border:1px solid var(--linea);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.caja h2{font-size:20px}.caja p{color:var(--tinta-2);font-size:15px}
.caja.ase{background:var(--indigo);color:#fff;border:0}.caja.ase p{color:#d4d6f5}

/* secciones */
.seccion{padding:28px 0}
.seccion>h2,.cab h1,.cab h2{font-size:26px}
.cab{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin:22px 0 16px}
.cab a{color:var(--accion);font-weight:600;text-decoration:none}.cab small{color:var(--tinta-2)}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:16px}
.cat{background:var(--sup);border:1px solid var(--linea);border-radius:12px;padding:18px;text-decoration:none;display:grid;gap:4px}
.cat:hover{border-color:var(--accion)}.cat span{color:var(--tinta-2);font-size:14px}
.vacio{background:var(--sup);border:1px dashed #b9bdcb;border-radius:12px;padding:32px;display:grid;gap:16px;justify-items:start;color:var(--tinta-2);margin:18px 0}
.vacio h1{color:var(--tinta)}

/* tarjetas de producto */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.prod{background:var(--sup);border:1px solid var(--linea);border-radius:12px;overflow:hidden;transition:box-shadow .2s,transform .2s}
.prod:hover{box-shadow:0 10px 28px rgb(58 63 148 / .12);transform:translateY(-2px)}
.prod a{text-decoration:none;display:flex;flex-direction:column;height:100%}
.prod .foto{aspect-ratio:4/3;background:var(--sup-2)}
.prod .foto img{width:100%;height:100%;object-fit:contain;background:#fff}
.prod .tx{padding:14px 16px 16px;display:flex;flex-direction:column;gap:5px;flex:1}
.prod h3{font-size:16px;line-height:1.3}
.marca-p{font-size:12.5px;color:var(--tinta-2);text-transform:uppercase;letter-spacing:.04em}
.disp{font-size:13px;color:var(--tinta-2);font-weight:600}.disp.si{color:var(--accion)}
.precio{font-weight:700;font-size:17px;margin-top:auto;padding-top:6px}
.sin-foto{width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:6px;color:#8a90a3;font-size:12.5px}
.sin-foto svg{width:56px;height:56px}

/* catálogo */
.catalogo{display:grid;grid-template-columns:250px 1fr;gap:24px;padding-bottom:48px}
aside form{background:var(--sup);border:1px solid var(--linea);border-radius:12px;padding:20px;position:sticky;top:140px;display:grid;gap:10px}
aside h3{font-size:14px;color:var(--tinta-2);font-weight:600;margin-top:6px}
.filtro{list-style:none;padding:0;display:grid;gap:2px}
.filtro a{display:flex;justify-content:space-between;padding:6px 8px;border-radius:6px;text-decoration:none;font-size:14.5px}
.filtro a:hover{background:var(--sup-2)}.filtro a[aria-current]{background:var(--accion-suave);color:var(--accion);font-weight:600}
.filtro a.sub{padding-left:22px;font-size:14px}.filtro span{color:var(--tinta-2);font-size:13px}
select,input,textarea{font:inherit;color:var(--tinta);background:var(--sup);border:1px solid #8f95a8;border-radius:8px;padding:10px 12px;width:100%}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--accion);padding:0;flex:none;margin-top:2px}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.paginas{display:flex;gap:6px;margin-top:22px;flex-wrap:wrap}
.paginas a{padding:8px 13px;border:1px solid var(--linea);border-radius:8px;background:var(--sup);text-decoration:none}
.paginas a[aria-current]{background:var(--accion);color:#fff;border-color:var(--accion)}

/* ficha de producto */
.migas{font-size:14px;color:var(--tinta-2);margin:18px 0}.migas a{text-decoration:none;color:var(--tinta-2)}.migas a:hover{color:var(--accion)}
.ficha{display:grid;grid-template-columns:1fr 1fr;gap:32px;background:var(--sup);border:1px solid var(--linea);border-radius:12px;padding:28px}
.galeria{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-content:start}
.galeria .grande{grid-column:1/-1;aspect-ratio:4/3;object-fit:contain;background:#fff;border:1px solid var(--linea);border-radius:10px}
.galeria .mini{aspect-ratio:1;object-fit:cover;border:1px solid var(--linea);border-radius:8px}
.galeria .sin-foto.grande{background:var(--sup-2)}
.datos{display:grid;gap:14px;align-content:start}
.datos h1{font-size:clamp(24px,2.6vw,32px)}
.resumen{color:var(--tinta-2);font-size:17px}
.ejemplo{display:inline-block;background:var(--accion-suave);color:var(--accion);border-radius:6px;padding:3px 10px;font-size:13px;font-weight:600;justify-self:start}
.agregar{display:grid;grid-template-columns:1fr 150px;gap:12px;align-items:end;background:var(--bg);border-radius:10px;padding:16px}
.agregar .campo:first-of-type:not(:last-of-type){grid-column:1/-1}
.agregar .btn{grid-column:1/-1}
.agregar .nota{grid-column:1/-1}
.variantes{width:100%;border-collapse:collapse;font-size:14.5px}
.variantes th{text-align:left;color:var(--tinta-2);font-weight:600;font-size:13px;padding:8px 6px;border-bottom:1px solid var(--linea)}
.variantes td{padding:9px 6px;border-bottom:1px solid var(--sup-2)}
.nota{font-size:13.5px;color:var(--tinta-2)}
.texto{max-width:820px}.texto p{margin:10px 0}.texto h2{margin:22px 0 8px;font-size:21px}.texto ul{padding-left:20px;display:grid;gap:6px}
.texto a{color:var(--accion)}

/* asesorías */
.servicios{background:var(--sup);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea);padding:48px 0;margin-top:20px}
.servicios h2{font-size:28px}
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}
.sv{border-radius:12px;overflow:hidden;background:var(--sup-2);display:flex;flex-direction:column}
.sv img{height:190px;width:100%;object-fit:cover}.sv>div{padding:20px}.sv h3{font-size:19px;margin-bottom:8px}
.sv ul{padding-left:18px;display:grid;gap:4px;font-size:15px}.sv a{text-decoration:none}.sv a:hover{color:var(--accion)}
.linea-serv{display:grid;grid-template-columns:320px 1fr;gap:24px;background:var(--sup);border:1px solid var(--linea);border-radius:12px;overflow:hidden;margin-bottom:18px}
.linea-serv>img{width:100%;height:100%;min-height:220px;object-fit:cover}
.linea-serv>div{padding:24px 24px 24px 0}.linea-serv h2{font-size:22px;margin-bottom:14px}
.servs{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.serv{border:1px solid var(--linea);border-radius:10px;padding:14px;text-decoration:none}.serv:hover{border-color:var(--accion)}
.serv h3{font-size:16px;margin-bottom:4px}.serv p{font-size:14px;color:var(--tinta-2)}
.detalle-serv{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:start;padding-bottom:40px}
.detalle-serv .texto img{border-radius:12px;margin-top:18px}

/* formularios */
.formulario{background:var(--sup);border:1px solid var(--linea);border-radius:12px;padding:26px;display:grid;gap:14px}
.formulario h2{font-size:22px}
.campo{display:grid;gap:6px}.campo label{font-size:14px;font-weight:500}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.error{color:var(--error);font-size:14px}
.exito{background:var(--accion-suave);border:1px solid #b5dfc5;border-radius:12px;padding:24px;display:grid;gap:8px}
.exito b{font-size:18px}

/* cotización */
.cotizacion{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:start;padding-bottom:48px}
.cotizacion .cab{grid-column:1/-1}
.lista-cot{background:var(--sup);border:1px solid var(--linea);border-radius:12px;padding:20px;display:grid;gap:12px}
.item-cot{display:grid;grid-template-columns:1fr 110px auto;gap:12px;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--sup-2)}
.item-cot b{display:block}.item-cot small{color:var(--tinta-2)}
.item-cot button{border:0;background:none;color:var(--error);cursor:pointer;font:inherit;font-size:14px}

/* empresa, contacto, normasuite */
.empresa,.legal-txt{padding:24px 0 48px}
.ficha-emp{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 22px;background:var(--sup);border:1px solid var(--linea);border-radius:12px;padding:20px;margin:18px 0}
.ficha-emp dt{color:var(--tinta-2)}
.ficha-emp dd{min-width:0;overflow-wrap:anywhere}
.contacto{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:24px 0 48px;align-items:start}
.ns{padding:40px 0}
.ns-in{background:var(--indigo);color:#fff;border-radius:16px;padding:40px;display:grid;grid-template-columns:1fr 1.5fr;gap:36px;align-items:center}
.ns-in h2{font-size:28px}.ns-in p{color:#d4d6f5;margin:10px 0 20px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{background:rgb(255 255 255 / .1);border:1px solid rgb(255 255 255 / .2);border-radius:8px;padding:10px 14px;font-weight:500}
.modulos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:20px 0}
.mod{background:var(--sup);border:1px solid var(--linea);border-radius:12px;padding:20px}.mod h2{font-size:18px;margin-bottom:6px;color:var(--indigo)}.mod p{color:var(--tinta-2);font-size:14.5px}

/* pie */
.pie{background:var(--sup);border-top:1px solid var(--linea);padding:40px 0 28px;font-size:14.5px;color:var(--tinta-2);margin-top:20px}
.columnas{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:28px}
.columnas img{margin-bottom:10px}.columnas b{color:var(--tinta);display:block;margin-bottom:8px}
.columnas ul{list-style:none;padding:0;display:grid;gap:5px}.columnas a{text-decoration:none}.columnas a:hover{color:var(--accion)}
.pie .legal{margin-top:24px;padding-top:18px;border-top:1px solid var(--linea);font-size:13px}
.wa{position:fixed;right:20px;bottom:20px;height:54px;padding:0 20px;border-radius:999px;background:#1f9d55;color:#fff;display:flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;box-shadow:0 10px 26px rgb(31 157 85 / .35);z-index:30}
.wa svg{width:24px;height:24px}

@media (max-width:1000px){
  .barra{grid-template-columns:auto auto;padding:10px 0;gap:10px}
  .buscar{grid-column:1/-1;grid-row:2;max-width:none}
  .ico-cot{justify-self:end}
  .portada,.catalogo,.sgrid,.ns-in,.columnas,.ficha,.cotizacion,.detalle-serv,.contacto,.linea-serv{grid-template-columns:1fr}
  .linea-serv>div{padding:0 20px 20px}
  aside form{position:static}
  .util .der{display:none}
  .util .ingresar{margin-left:auto}
}
@media (max-width:560px){
  .wrap{padding:0 16px}
  .marca img{height:48px}
  .dos,.servs,.ficha-emp{grid-template-columns:1fr}
  .ficha-emp dd{margin-bottom:8px}
  .banner .tx{padding:24px}.ns-in{padding:26px}.ficha{padding:18px}
  .util .correo{display:none}
  .wa span{display:none}.wa{padding:0 15px}
  .agregar{grid-template-columns:1fr}
  .variantes{font-size:13px}.variantes th:nth-child(2),.variantes td:nth-child(2){display:none}
  .item-cot{grid-template-columns:1fr 90px}.item-cot button{grid-column:1/-1;justify-self:start}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
