:root{
  --navy:#17467C; --navy-d:#0F3259; --cyan:#08B8D9; --cyan-d:#0590AB; --ink:#10233A; --deep:#0B1D31;
  --bg:#FFFFFF; --alt:#F2F6FA; --card:#FFFFFF; --text:#14263B; --muted:#56687C; --line:#D9E2EC; --link:#17467C;
  --ok:#1F7A4D; --warn:#A15C00; --danger:#B3261E;
  --head:'Barlow Semi Condensed','Arial Narrow',Arial,sans-serif;
  --body:'Barlow','Segoe UI',Helvetica,Arial,sans-serif;
  box-sizing:border-box;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0E1620; --alt:#131E2A; --card:#172432; --text:#E6EDF4; --muted:#9FB0C2; --line:#2A3A4C; --link:#6FD6EC;
  --ok:#6FCF97; --warn:#F2B96B; --danger:#F2A09A;
}}
:root[data-theme="dark"]{--bg:#0E1620; --alt:#131E2A; --card:#172432; --text:#E6EDF4; --muted:#9FB0C2; --line:#2A3A4C; --link:#6FD6EC; --ok:#6FCF97; --warn:#F2B96B; --danger:#F2A09A}
*,*::before,*::after{box-sizing:inherit}
body{margin:0; background:var(--bg); color:var(--text); font:17px/1.6 var(--body)}
img{max-width:100%; height:auto; display:block}
a{color:var(--link); text-underline-offset:.18em}
::selection{background:var(--cyan); color:#fff}
button,input,select,textarea{font:inherit; color:inherit}
input,select,textarea{accent-color:var(--navy)}
:focus-visible{outline:3px solid var(--cyan); outline-offset:2px}
h1,h2,h3,h4{font-family:var(--head); font-weight:600; line-height:1.1; margin:0}
p{margin:0 0 1em}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px}
@media (max-width:600px){.wrap{padding:0 16px}}
[hidden]{display:none !important}
.skip{position:absolute; left:12px; top:-60px; z-index:100; background:var(--ink); color:#fff; padding:10px 14px; font-weight:600; text-decoration:none}
.skip:focus{top:12px}

/* ---------- Barra superior + header ---------- */
.topbar{background:var(--navy-d); color:#DCE8F5; font-size:14px}
.topbar .wrap{display:flex; justify-content:space-between; gap:16px; height:36px; align-items:center}
.topbar a{color:#fff; text-decoration:none}
.topbar .datos{display:flex; gap:20px}
@media (max-width:600px){.topbar .hor{display:none}}
header.site{background:#fff; border-bottom:1px solid #D9E2EC; position:sticky; top:0; z-index:20; color:#14263B}
header.site .wrap{display:flex; align-items:center; justify-content:space-between; gap:20px; height:84px}
.logo img{height:56px; width:auto}
nav.menu ul{list-style:none; display:flex; gap:4px; margin:0; padding:0}
nav.menu a{display:block; white-space:nowrap; text-decoration:none; color:#14263B; font:600 17px/1 var(--head); padding:10px 10px; border-bottom:3px solid transparent}
nav.menu a:hover{color:var(--navy)}
nav.menu a.on{border-bottom-color:var(--cyan)}
.acciones{display:flex; align-items:center; gap:10px}
.carrito{position:relative; display:inline-flex; align-items:center; gap:8px; text-decoration:none; color:#fff; background:var(--navy); border-radius:3px; padding:10px 14px; font:600 16px/1 var(--head)}
.carrito:hover{background:var(--navy-d)}
.carrito svg{width:20px; height:20px}
.carrito .n{background:var(--cyan); color:#06202C; min-width:22px; height:22px; border-radius:11px; display:inline-grid; place-items:center; font-size:13px; padding:0 6px}
.burger{display:none; background:none; border:1px solid #D9E2EC; border-radius:3px; padding:9px 12px; cursor:pointer; font:600 15px var(--head); color:#14263B}
@media (max-width:980px){
  .burger{display:block}
  nav.menu{position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:1px solid #D9E2EC; display:none}
  nav.menu.open{display:block}
  nav.menu ul{flex-direction:column; padding:8px 24px 16px}
  nav.menu a{padding:13px 0; border-bottom:1px solid #EEF2F6; font-size:19px}
  nav.menu a.on{border-bottom-color:#EEF2F6; color:var(--navy)}
}
@media (max-width:600px){header.site .wrap{height:68px}.logo img{height:42px}.carrito .txt{display:none}}

/* ---------- Botones ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; border:0; border-radius:3px; padding:13px 20px; font:600 17px/1 var(--head); cursor:pointer; text-decoration:none; letter-spacing:.01em; white-space:nowrap}
.btn.primario{background:var(--navy); color:#fff}
.btn.primario:hover{background:var(--navy-d)}
.btn.cian{background:var(--cyan); color:#06202C}
.btn.cian:hover{background:#2FC8E6}
.btn.linea{background:transparent; color:#fff; box-shadow:inset 0 0 0 2px rgba(255,255,255,.75)}
.btn.suave{background:var(--alt); color:var(--text); box-shadow:inset 0 0 0 1px var(--line)}
.btn.sm{padding:8px 12px; font-size:15px}
.btn:disabled{opacity:.5; cursor:not-allowed}
.btns{display:flex; gap:12px; flex-wrap:wrap}

/* ---------- Hero ---------- */
.hero{position:relative; color:#fff; background:var(--deep); overflow:hidden}
.hero img{width:100%; height:min(74vh,640px); object-fit:cover}
.hero .sombra{position:absolute; inset:0; background:linear-gradient(90deg,rgba(8,24,42,.88) 0%,rgba(8,24,42,.55) 48%,rgba(8,24,42,.05) 80%)}
.hero .copy{position:absolute; inset:0; display:flex; align-items:center}
.hero .copy .wrap{width:100%}
.hero .eyebrow{font:600 15px/1 var(--head); letter-spacing:.12em; text-transform:uppercase; color:var(--cyan)}
.hero h1{font-size:clamp(40px,6vw,76px); font-weight:700; max-width:12ch; line-height:.98; margin-top:14px}
.hero p{font-size:20px; max-width:38ch; margin:22px 0 30px; color:#DCE8F5}
@media (max-width:700px){.hero img{height:560px}.hero .sombra{background:linear-gradient(180deg,rgba(8,24,42,.45),rgba(8,24,42,.85))}}

/* Franja de datos */
.franja{background:var(--navy); color:#fff}
.franja .wrap{display:grid; grid-template-columns:repeat(4,1fr)}
.franja div.d{padding:26px 20px; border-left:1px solid rgba(255,255,255,.15)}
.franja div.d:first-child{border-left:0; padding-left:0}
.franja b{display:block; font:700 32px/1 var(--head); color:var(--cyan)}
.franja span{font-size:15px; color:#DCE8F5}
@media (max-width:800px){.franja .wrap{grid-template-columns:1fr 1fr}.franja div.d{padding:20px 12px}.franja div.d:nth-child(3){border-left:0; padding-left:0}}

/* ---------- Secciones ---------- */
section.bloque{padding:84px 0}
section.bloque.alt{background:var(--alt)}
@media (max-width:700px){section.bloque{padding:56px 0}}
.titulo{max-width:720px; margin-bottom:40px}
.titulo .eyebrow{font:600 14px/1 var(--head); letter-spacing:.12em; text-transform:uppercase; color:var(--cyan-d)}
.titulo h2{font-size:clamp(32px,4vw,46px); margin-top:10px}
.titulo p{color:var(--muted); font-size:19px; margin-top:14px}
.grid3{display:grid; grid-template-columns:repeat(3,1fr); gap:28px}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center}
@media (max-width:900px){.grid3{grid-template-columns:1fr}.grid2{grid-template-columns:1fr; gap:28px}}
.servicio{background:var(--card); border:1px solid var(--line); border-radius:4px; overflow:hidden; display:flex; flex-direction:column}
.servicio img{aspect-ratio:16/8; object-fit:cover; width:100%}
.servicio .c{padding:24px 26px 28px; display:flex; flex-direction:column; gap:10px; flex:1}
.servicio h3{font-size:25px}
.servicio p{color:var(--muted); margin:0; flex:1}
.servicio a.mas{font:600 16px var(--head); text-decoration:none}
.foto-ancha img{border-radius:4px; width:100%; aspect-ratio:16/10; object-fit:cover}
.lista-check{list-style:none; padding:0; margin:18px 0 26px; display:grid; gap:10px}
.lista-check li{padding-left:30px; position:relative}
.lista-check li::before{content:""; position:absolute; left:0; top:.35em; width:18px; height:18px; border-radius:50%; background:var(--cyan) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%2306202C' stroke-width='2.4'/%3E%3C/svg%3E") center/14px no-repeat}
.sello{display:inline-flex; gap:12px; align-items:center; background:var(--alt); border:1px solid var(--line); padding:12px 16px; border-radius:4px; font:600 16px/1.2 var(--head)}
.sello b{font-size:26px; color:var(--navy)}
:root[data-theme="dark"] .sello b{color:var(--link)}

/* Llamado */
.llamado{background:linear-gradient(120deg,var(--navy-d),var(--navy)); color:#fff; padding:64px 0}
.llamado .wrap{display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap}
.llamado h2{font-size:clamp(28px,3.4vw,40px); max-width:22ch}
.llamado p{color:#DCE8F5; margin:10px 0 0}

/* Cabecera de página interna */
.cabecera{background:var(--deep); color:#fff; padding:56px 0 48px; position:relative; overflow:hidden}
.cabecera::after{content:""; position:absolute; right:-120px; top:-120px; width:420px; height:420px; border-radius:50%; border:60px solid rgba(8,184,217,.12); box-shadow:0 0 0 60px rgba(8,184,217,.06)}
.cabecera h1{font-size:clamp(36px,5vw,56px)}
.cabecera p{color:#B8CADC; margin:12px 0 0; max-width:60ch; font-size:19px}
.migas{font-size:14px; color:#9FB4CA; margin-bottom:12px}
.migas a{color:#DCE8F5}

/* ---------- Tienda ---------- */
.tienda{display:grid; grid-template-columns:240px 1fr; gap:40px; align-items:start}
@media (max-width:900px){.tienda{grid-template-columns:1fr; gap:24px}}
.filtros{position:sticky; top:104px; display:grid; gap:22px}
@media (max-width:900px){.filtros{position:static}}
.filtros h3{font-size:18px; margin-bottom:8px}
.filtros .cats{display:flex; flex-direction:column; gap:2px}
@media (max-width:900px){.filtros .cats{flex-direction:row; flex-wrap:wrap; gap:8px}}
.filtros .cats a,.filtros .cats button{display:block; text-decoration:none; background:none; border:0; text-align:left; padding:8px 10px; border-radius:3px; cursor:pointer; color:var(--text)}
@media (max-width:900px){.filtros .cats a,.filtros .cats button{border:1px solid var(--line)}}
.filtros .cats a.on,.filtros .cats button.on{background:var(--navy); color:#fff}
.campo{display:flex; flex-direction:column; gap:6px}
.campo label{font-weight:600; font-size:15px}
.campo input,.campo select,.campo textarea{border:1px solid #8C9BAB; border-radius:3px; padding:11px 12px; background:var(--card); width:100%}
.campo textarea{min-height:120px; resize:vertical}
.campo .ayuda{font-size:14px; color:var(--muted)}
.campo .error{font-size:14px; color:var(--danger)}
.barra-tienda{display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; flex-wrap:wrap}
.barra-tienda .n{color:var(--muted)}
.barra-tienda select{border:1px solid #8C9BAB; border-radius:3px; padding:9px 10px; background:var(--card)}
.productos{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:22px}
.producto{background:var(--card); border:1px solid var(--line); border-radius:4px; display:flex; flex-direction:column; overflow:hidden}
.producto .img{background:#fff; aspect-ratio:1; display:block}
.producto .img img{width:100%; height:100%; object-fit:contain; padding:14px}
.producto .c{padding:16px 18px 18px; display:flex; flex-direction:column; gap:6px; flex:1; border-top:1px solid var(--line)}
.producto .cat{font:600 13px/1 var(--head); letter-spacing:.08em; text-transform:uppercase; color:var(--cyan-d)}
.producto h3{font-size:21px}
.producto h3 a{color:inherit; text-decoration:none}
.producto h3 a:hover{color:var(--link)}
.producto .precio{font:700 24px/1 var(--head); margin-top:auto; padding-top:10px}
.producto .iva{font-size:13px; color:var(--muted)}
.producto .stock{font-size:14px; color:var(--muted)}
.producto .stock.bajo{color:var(--warn)}
.producto .btn{margin-top:10px}
.vacio{padding:48px; text-align:center; border:1px dashed var(--line); border-radius:4px; color:var(--muted)}

/* Ficha producto */
.ficha{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start}
@media (max-width:900px){.ficha{grid-template-columns:1fr; gap:28px}}
.ficha .foto{background:#fff; border:1px solid var(--line); border-radius:4px}
.ficha .foto img{width:100%; aspect-ratio:1; object-fit:contain; padding:24px}
.ficha h1{font-size:clamp(34px,4vw,48px)}
.ficha .precio{font:700 40px/1 var(--head); margin:18px 0 4px}
.ficha .resumen{font-size:19px; color:var(--muted); margin-top:14px}
.cantidad{display:inline-flex; border:1px solid #8C9BAB; border-radius:3px; overflow:hidden}
.cantidad button{background:var(--alt); border:0; width:44px; cursor:pointer; font-size:20px}
.cantidad input{width:64px; text-align:center; border:0; border-left:1px solid var(--line); border-right:1px solid var(--line); padding:10px 0; background:var(--card); -moz-appearance:textfield}
.cantidad input::-webkit-inner-spin-button{-webkit-appearance:none}
.comprar{display:flex; gap:12px; flex-wrap:wrap; margin:24px 0}
.aviso{padding:12px 16px; border-radius:3px; background:var(--alt); border-left:4px solid var(--cyan); margin:16px 0}
.aviso.ok{border-left-color:var(--ok)}
.aviso.error{border-left-color:var(--danger)}
.contenido h2{font-size:24px; margin:28px 0 8px}

/* Carro y pago */
.carro{display:grid; grid-template-columns:1fr 360px; gap:40px; align-items:start}
@media (max-width:900px){.carro{grid-template-columns:1fr}}
.lineas{border-top:1px solid var(--line)}
.linea{display:grid; grid-template-columns:88px 1fr auto auto; gap:18px; align-items:center; padding:18px 0; border-bottom:1px solid var(--line)}
.linea img{width:88px; height:88px; object-fit:contain; background:#fff; border:1px solid var(--line); border-radius:3px; padding:6px}
.linea h3{font-size:20px}
.linea .u{color:var(--muted); font-size:15px}
.linea .t{font:700 20px var(--head); min-width:100px; text-align:right}
.linea .quitar{background:none; border:0; color:var(--danger); cursor:pointer; padding:4px 0; font-size:14px; text-decoration:underline}
@media (max-width:600px){.linea{grid-template-columns:64px 1fr; gap:12px}.linea img{width:64px; height:64px}.linea .t{text-align:left}}
.caja{background:var(--alt); border:1px solid var(--line); border-radius:4px; padding:24px; position:sticky; top:104px}
.caja h2{font-size:24px; margin-bottom:14px}
.caja dl{display:grid; grid-template-columns:1fr auto; gap:8px; margin:0}
.caja dt{color:var(--muted)}
.caja dd{margin:0; text-align:right; font-weight:600}
.caja .total{border-top:1px solid var(--line); padding-top:12px; margin-top:6px; font:700 24px var(--head); color:var(--text)}
.caja .btn{width:100%; margin-top:18px}
.pasos{display:flex; gap:8px; list-style:none; padding:0; margin:0 0 32px; flex-wrap:wrap}
.pasos li{font:600 15px var(--head); padding:8px 14px; border-radius:20px; background:var(--alt); color:var(--muted)}
.pasos li.on{background:var(--navy); color:#fff}
.pasos li.ok{background:#DDF1E7; color:#185C3A}
form .filas{display:grid; grid-template-columns:1fr 1fr; gap:18px}
form .filas .full{grid-column:1/-1}
@media (max-width:600px){form .filas{grid-template-columns:1fr}}
fieldset{border:1px solid var(--line); border-radius:4px; padding:20px 22px 22px; margin:0 0 22px}
legend{font:600 19px var(--head); padding:0 6px}
.opcion{display:flex; gap:12px; align-items:flex-start; padding:12px 14px; border:1px solid var(--line); border-radius:3px; cursor:pointer; margin-top:10px}
.opcion:has(input:checked){border-color:var(--navy); box-shadow:inset 0 0 0 1px var(--navy)}
.opcion input{margin-top:5px}
.opcion span{flex:1}
.opcion b{white-space:nowrap}

/* Pasarela simulada */
.pasarela{max-width:460px; margin:0 auto; background:var(--card); border:1px solid var(--line); border-radius:6px; overflow:hidden; box-shadow:0 20px 50px rgba(10,30,50,.12)}
.pasarela .top{background:#2B2B2B; color:#fff; padding:18px 22px; display:flex; justify-content:space-between; align-items:center}
.pasarela .top small{color:#BBB}
.pasarela .cuerpo{padding:24px 22px}
.pasarela .monto{font:700 34px var(--head)}
.pasarela .sim{font-size:13px; background:#FFF4D6; color:#5A4200; padding:8px 12px; border-radius:3px; margin-bottom:16px}
.exito{text-align:center; max-width:620px; margin:0 auto}
.exito .ico{width:72px; height:72px; border-radius:50%; background:#DDF1E7; color:#185C3A; display:grid; place-items:center; margin:0 auto 18px}
.exito h1{font-size:40px}
.tabla-simple{width:100%; border-collapse:collapse; margin:20px 0; text-align:left}
.tabla-simple th,.tabla-simple td{padding:10px 8px; border-bottom:1px solid var(--line)}
.tabla-simple td:last-child,.tabla-simple th:last-child{text-align:right}

/* Contacto */
.contacto{display:grid; grid-template-columns:1fr 1.3fr; gap:56px}
@media (max-width:900px){.contacto{grid-template-columns:1fr; gap:32px}}
.dato{display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--line)}
.dato svg{flex:none; width:24px; height:24px; color:var(--cyan-d)}
.dato b{display:block; font:600 18px var(--head)}
.mapa{margin-top:24px; aspect-ratio:4/3; border-radius:4px; overflow:hidden; background:var(--alt); border:1px solid var(--line); display:grid; place-items:center; color:var(--muted); text-align:center; padding:20px}

/* ---------- Footer ---------- */
footer.site{background:var(--deep); color:#B8CADC; padding:56px 0 24px; font-size:16px}
footer.site .cols{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px}
@media (max-width:900px){footer.site .cols{grid-template-columns:1fr 1fr}}
@media (max-width:560px){footer.site .cols{grid-template-columns:1fr}}
footer.site h4{color:#fff; font-size:18px; margin-bottom:12px}
footer.site a{color:#DCE8F5; text-decoration:none}
footer.site a:hover{color:#fff; text-decoration:underline}
footer.site ul{list-style:none; padding:0; margin:0; display:grid; gap:6px}
footer.site .logo-pie{background:#fff; padding:10px 14px; border-radius:4px; display:inline-block; margin-bottom:14px}
footer.site .logo-pie img{height:44px; width:auto}
footer.site .legal{border-top:1px solid rgba(255,255,255,.12); margin-top:40px; padding-top:18px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:14px}
.wsp{position:fixed; right:20px; bottom:20px; z-index:30; width:58px; height:58px; border-radius:50%; background:#1FAF55; color:#fff; display:grid; place-items:center; box-shadow:0 8px 24px rgba(0,0,0,.25)}
.wsp svg{width:30px; height:30px}
.toast{position:fixed; left:50%; bottom:24px; transform:translateX(-50%); background:var(--ink); color:#fff; padding:14px 18px; border-radius:4px; z-index:60; display:flex; gap:14px; align-items:center; box-shadow:0 10px 30px rgba(0,0,0,.25); max-width:calc(100% - 32px)}
.toast a{color:var(--cyan); font-weight:600}
.producto .lista,.ficha .lista{display:block; font-size:13.5px; color:var(--muted); margin-top:8px}
.producto .lista + .precio{padding-top:2px; margin-top:0}
.producto .lista{margin-top:auto; padding-top:10px}
.lista s{color:var(--muted)}
.lista b{color:var(--ok); font-weight:600}
.ficha .lista.grande{font-size:16px; margin:6px 0 2px}
section.bloque .migas a{color:var(--link)}

/* ---------- Versión PHP (oct. 2026): clases en lugar de estilos en línea (la CSP no los permite) ---------- */
.mt0{margin-top:0}.mt8{margin-top:8px}.mt16{margin-top:16px}.mt22{margin-top:22px}.mt28{margin-top:28px}.mb0{margin-bottom:0}
section.bloque.compacta{padding-top:48px}
.h-pagina{font-size:44px; margin-bottom:24px}
@media (max-width:600px){.h-pagina{font-size:34px}}
.angosto{max-width:760px}
.titulo.pegado{margin-bottom:0}
.foto-cuadrada{aspect-ratio:1; background:#fff; object-fit:contain}
.cat-ficha{font:600 14px var(--head); letter-spacing:.1em; text-transform:uppercase; color:var(--cyan-d)}
.iva-ficha{color:var(--muted); display:block}
.muted{color:var(--muted)}
.chico{font-size:14px}
.aviso.compacto{margin:0; font-size:15px}
.migas.oscura{color:var(--muted)}
.ficha.separada{margin-top:20px}
/* Botón al sistema de proyectos (arriba a la derecha) */
.btn-proyectos{display:inline-flex; align-items:center; gap:6px; border-radius:3px; padding:9px 12px; font:600 15px/1 var(--head); text-decoration:none; color:var(--navy); box-shadow:inset 0 0 0 2px var(--navy); white-space:nowrap}
.btn-proyectos:hover{background:var(--navy); color:#fff}
.btn-proyectos svg{width:16px; height:16px}
@media (max-width:1100px){.btn-proyectos .largo{display:none}}
@media (max-width:420px){.btn-proyectos{padding:9px 8px}}
.topbar .proy{color:#fff; font-weight:600}
/* Mapa de Google */
.mapa.con-mapa{padding:0; display:block}
.mapa iframe{width:100%; height:100%; border:0; display:block}
/* Ficha: composición del kit */
.tabla-kit{width:100%; border-collapse:collapse; font-size:15px; margin-top:8px}
.tabla-kit td{padding:7px 0; border-bottom:1px solid var(--line); vertical-align:top}
.tabla-kit td:first-child{width:52px; font-weight:600; font-variant-numeric:tabular-nums}
.stock.cotizar{color:var(--cyan-d)}
.cod{color:var(--muted); font-size:14px}
/* Preguntas frecuentes */
.faq details{border-bottom:1px solid var(--line); padding:18px 0}
.faq summary{font:600 21px var(--head); cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:16px}
.faq summary::after{content:"+"; color:var(--cyan-d); font-size:26px; line-height:1}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:12px 0 0; color:var(--muted); font-size:17px}
/* Pedido */
.estado-pedido{display:inline-block; padding:4px 12px; border-radius:14px; background:var(--alt); border:1px solid var(--line); font:600 15px var(--head)}
.estado-pedido.ok{background:#DDF1E7; color:#185C3A; border-color:#B9E3CC}
.estado-pedido.warn{background:#FDF0D9; color:#7A4A00; border-color:#F2D7A6}
.banco{display:grid; grid-template-columns:auto 1fr; gap:6px 18px; margin:12px 0 0}
.banco dt{color:var(--muted)}.banco dd{margin:0; font-weight:600}
.cotizar-lista .linea{grid-template-columns:1fr auto auto}
.error-form{color:var(--danger); font-weight:600}
.trampa{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.campo [aria-invalid="true"]{border-color:var(--danger)}
.privacidad{font-size:14px; color:var(--muted); margin-top:16px}
.paginacion{display:flex; gap:8px; margin-top:28px; flex-wrap:wrap}
.filtros .cats a span{opacity:.6; font-size:13px; margin-left:4px}
