/* Silo /zonas-bajas-emisiones/: portada, ficha de municipio, distintivos y normativa (templates/zbe/).

   Diseño «Editorial», elegido el 2026-10-19 (registro de la ronda, con la variante A «Listado»
   archivada, en design-proposals/zbe-silo/). Molde de las institucionales y de /articulos: cabecera en
   rejilla bajo filete de tinta, tira de cifras, barra de índice fija y numerada, apartados con el título
   fijo a la izquierda y banda K al pie. Pieza propia: la pegatina DGT en miniatura (.zb-pg).

   Sin tarjetas con sombra, pastillas ni iconos en cajitas; contenido en Pizarra, estado seleccionado en
   tinta, ningún enlace en azul. Todo cuelga de .zb con prefijo zb-: en producción las clases de Tailwind
   se renombran y una clase propia con nombre de utilidad se rompería. */

.zb{
  --tinta:var(--ink); --gris:var(--ink-2); --gris2:var(--muted); --linea:var(--hair); --linea2:rgb(var(--gris-100));
  --suave:var(--ground); --papel:#fff; --verde:var(--bev); --r:10px;
  --cabecera:80px;   /* cabecera fija de base.html (h-20) */
  --barra:52px;      /* barra fija del índice */
  /* Colores reales de las pegatinas de la DGT: un objeto real conserva su color (DESIGN.md §3.2, regla 5). */
  --dgt-azul:#0b6d9a; --dgt-verde:#6db33f; --dgt-amarillo:#ffe100;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; font-size:15px; line-height:1.5;
  color:var(--tinta); background:var(--papel); -webkit-font-smoothing:antialiased;
}
.zb :where(h1,h2,h3,h4,p,figure,ol,ul,dl,dd,blockquote){ margin:0; }
.zb :where(ol,ul){ padding:0; list-style:none; }
.zb a{ color:inherit; text-decoration:none; }
.zb img{ display:block; max-width:100%; }
.zb-vh{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.zb-f{ flex:none; }

/* ══ Pegatina DGT en miniatura ══
   Círculo con el color de la pegatina y su letra, en negro como en la real. La que no puede circular se
   vacía y se tacha: así una fila de cinco se lee de un vistazo. «Sin distintivo» no tiene pegatina:
   círculo de trazo discontinuo. */
.zb-pg{ position:relative; display:inline-grid; place-items:center; flex:none; width:24px; height:24px; border-radius:50%;
  font-size:10.5px; font-weight:800; letter-spacing:-.03em; line-height:1; color:#111; font-style:normal; }
.zb-pg--0{ background:var(--dgt-azul); }
.zb-pg--eco{ background:linear-gradient(90deg, var(--dgt-verde) 50%, var(--dgt-azul) 50%); font-size:7px; letter-spacing:0; }
.zb-pg--c{ background:var(--dgt-verde); }
.zb-pg--b{ background:var(--dgt-amarillo); }
.zb-pg--sin{ background:var(--papel); border:1.5px dashed var(--gris2); }
.zb-pg--no{ background:var(--papel); border:1.5px solid var(--hair-strong); color:var(--gris2); }
.zb-pg--sin.zb-pg--no{ border-style:dashed; }
.zb-pg--no::after{ content:""; position:absolute; left:calc(50% - .75px); top:-3px; bottom:-3px; width:1.5px; background:var(--gris); transform:rotate(45deg); }
.zb-pg--l{ width:34px; height:34px; font-size:14px; }
.zb-pg--l.zb-pg--eco{ font-size:9.5px; }
.zb-acc{ display:inline-flex; align-items:center; gap:5px; }
.zb-acc--s .zb-pg{ width:18px; height:18px; font-size:8px; }
.zb-acc--s .zb-pg--eco{ font-size:5.5px; }
.zb-leyenda{ display:flex; flex-wrap:wrap; gap:6px 16px; font-size:11.5px; color:var(--gris2); }
.zb-leyenda span{ display:inline-flex; align-items:center; gap:6px; }
.zb-leyenda .zb-pg{ width:16px; height:16px; font-size:7px; }

/* Mapas: sin radio ni sombra, a todo el ancho de la página. El z-index:0 encierra los paneles de
   Leaflet (400–1000) para que no tapen la barra fija. */
.zb-mapa{ position:relative; z-index:0; width:100%; height:360px; background:var(--suave); border-top:1px solid var(--linea); border-bottom:1px solid var(--linea); }
@media (min-width:768px){ .zb-mapa{ height:520px; } }

/* Flecha de los enlaces (13 px, la de /coches/) */
.zb-ir{ display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:700; color:var(--tinta); }
.zb-ir:hover{ text-decoration:underline; }
.zb-ir svg{ flex:none; }
button.zb-ir{ background:none; border:0; padding:0; cursor:pointer; font-family:inherit; }
.zb-ir--suave{ font-weight:600; color:var(--gris); }

/* Barra de reparto por nivel de restricción: neutros de Pizarra, del más claro (sin veto) a tinta (veta B o C). */
.zb-rep{ display:flex; height:12px; gap:2px; }
.zb-rep i{ display:block; height:100%; }
.zb-n1{ background:var(--hair-strong); }
.zb-n2{ background:var(--gris2); }
.zb-n3{ background:var(--tinta); }
.zb-sw{ display:inline-block; flex:none; width:10px; height:10px; }

/* Aviso de Google Maps (lo abre zbe-mini-maps.js; las clases hidden/flex las pone el JS) */
.zb-modal{ position:fixed; inset:0; z-index:60; align-items:center; justify-content:center; padding:16px; background:rgb(var(--ink-rgb) / .55); }
.zb-modal-c{ width:100%; max-width:440px; padding:22px 22px 18px; background:var(--papel); border-top:2px solid var(--tinta); }
.zb-modal-c h3{ font-size:18px; font-weight:700; letter-spacing:-.02em; margin-bottom:8px; }
.zb-modal-c p{ font-size:14px; color:var(--gris); line-height:1.55; }
.zb-modal-b{ display:flex; justify-content:flex-end; gap:18px; margin-top:18px; align-items:center; }
.zb-modal-b button{ background:none; border:0; font:inherit; font-size:13.5px; font-weight:600; color:var(--gris); cursor:pointer; }
.zb-modal-b button:hover{ text-decoration:underline; }
.zb-btn{ display:inline-flex; align-items:center; gap:7px; padding:9px 16px; background:var(--tinta); color:#fff; font-size:13.5px; font-weight:600; }
.zb .zb-btn{ color:#fff; }
.zb-btn:hover{ background:rgb(var(--gris-700)); }

/* Texto corrido (normativa, distintivos): el de la ficha de artículo */
.zb-prose{ font-size:16px; line-height:1.7; color:var(--gris); }
.zb-prose p{ margin-bottom:16px; }
.zb-prose p:last-child{ margin-bottom:0; }
.zb-prose strong{ font-weight:600; color:var(--tinta); }
.zb-prose em{ font-style:italic; }
.zb-prose p a, .zb-prose li a{ color:var(--tinta); text-decoration:underline; text-decoration-color:rgb(var(--gris-300)); text-underline-offset:3px; }
.zb-prose p a:hover, .zb-prose li a:hover{ text-decoration-color:currentColor; }
.zb-prose ul{ margin:0 0 16px; padding-left:20px; list-style:disc; }
.zb-prose li{ margin-bottom:7px; }
.zb-prose li::marker{ color:rgb(var(--gris-400)); }
.zb-prose h3{ margin:28px 0 8px; font-size:18px; line-height:1.3; font-weight:700; color:var(--tinta); }
.zb-prose > h3:first-child{ margin-top:0; }
.zb-nota{ margin:22px 0; padding:14px 18px; border-left:2px solid var(--tinta); background:var(--suave); font-size:15px; line-height:1.6; color:var(--gris); }
.zb-nota strong{ color:var(--tinta); font-weight:600; }
.zb-nota a{ color:var(--tinta); font-weight:600; text-decoration:underline; text-decoration-color:rgb(var(--gris-300)); text-underline-offset:3px; }
.zb-pie{ font-size:12px; line-height:1.55; color:var(--gris2); }
.zb-pie a{ text-decoration:underline; text-decoration-color:rgb(var(--gris-300)); text-underline-offset:3px; }

/* Cifras: el número manda, la etiqueta debajo */
.zb-cifra b{ display:block; font-size:26px; font-weight:700; letter-spacing:-.04em; line-height:1; font-variant-numeric:tabular-nums; color:var(--tinta); }
.zb-cifra b i{ font-style:normal; font-size:12px; font-weight:600; letter-spacing:0; color:var(--gris2); }
.zb-cifra span{ display:block; margin-top:5px; font-size:12px; line-height:1.35; color:var(--gris); }
.zb-cifra--acento b{ color:var(--verde); }


/* Niveles de restricción: tres filas con su cifra bajo la barra de reparto */
.zb-niv{ margin-top:18px; border-top:1px solid var(--linea2); }
.zb-niv li{ display:grid; grid-template-columns:10px minmax(0,1fr) auto 44px; gap:12px; align-items:baseline; padding:11px 0; border-bottom:1px solid var(--linea2); }
.zb-niv .zb-sw{ align-self:center; }
.zb-niv span{ font-size:14px; font-weight:600; }
.zb-niv b{ font-size:22px; font-weight:700; letter-spacing:-.04em; font-variant-numeric:tabular-nums; line-height:1; }
.zb-niv em{ font-style:normal; font-size:12px; font-weight:600; color:var(--gris2); text-align:right; font-variant-numeric:tabular-nums; }
.zb-sec-bd .zb-niv + .zb-pie{ margin-top:12px; }

/* ZBE de activación condicional: aviso bajo la entradilla de la ficha */
.zb-cond{ margin-top:12px; padding:10px 14px; border-left:2px solid var(--tinta); background:var(--suave); font-size:13.5px; line-height:1.55; color:var(--gris); }
.zb-cond strong{ color:var(--tinta); font-weight:600; }

/* Categoría sin pegatina física */
.zb-di-sin{ display:grid; place-items:center; width:100%; height:100%; border:1.5px dashed var(--hair-strong); border-radius:50%;
  font-size:10px; font-weight:600; color:var(--gris2); text-align:center; line-height:1.2; }

/* Barra de cobertura */
.zb-bar{ flex:1; max-width:160px; height:6px; background:var(--linea2); }
.zb-bar i{ display:block; height:100%; background:var(--tinta); }

/* Comprobador «¿Puede mi coche entrar?» (Alpine: zbe-comprobador.js). Seleccionado = tinta (aria-pressed). */
.zb-cmp h2, .zb-cmp h3{ font-size:17px; font-weight:700; letter-spacing:-.02em; }
.zb-cmp p{ font-size:13px; color:var(--gris); }
.zb-cmp-b{ display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); margin:14px 0 12px; border:1px solid var(--tinta); }
.zb-cmp-b button{ display:flex; flex-direction:column; align-items:center; gap:5px; padding:10px 2px 8px; background:var(--papel); border:0;
  border-left:1px solid var(--linea); font:inherit; font-size:10.5px; font-weight:600; color:var(--gris); cursor:pointer; }
.zb-cmp-b button:first-child{ border-left:0; }
.zb-cmp-b button:hover{ background:var(--suave); }
.zb-cmp-b button[aria-pressed="true"]{ background:var(--tinta); color:#fff; }
.zb-cmp-r{ font-size:15px; line-height:1.45; color:var(--tinta); }
.zb-cmp .zb-bar{ max-width:none; margin:10px 0; }
.zb-cmp-x{ font-size:13px; color:var(--gris); }
.zb-cmp-x a{ font-weight:600; color:var(--tinta); text-decoration:underline; text-underline-offset:3px; }

/* Cifras en fila (sanción, implantación) */
.zb-multa{ display:flex; flex-wrap:wrap; gap:16px 36px; margin:6px 0 18px; padding:16px 0; border-top:1px solid var(--tinta); border-bottom:1px solid var(--linea); }
.zb-multa .zb-cifra b{ font-size:32px; }

.zb-w{ max-width:1280px; margin:0 auto; padding:0 16px; }
@media (min-width:640px){ .zb-w{ padding:0 24px; } }
@media (min-width:1024px){ .zb-w{ padding:0 32px; } }

.zb-mg{ display:flex; flex-wrap:wrap; gap:6px; padding-top:16px; font-size:12px; color:var(--gris2); }
.zb-mg a{ color:var(--gris); }
.zb-mg a:hover{ text-decoration:underline; }
.zb-mg span[aria-current]{ color:var(--tinta); font-weight:600; }

.zb-hd{ display:grid; gap:16px 48px; margin-top:20px; padding-top:20px; border-top:1px solid var(--tinta); }
.zb-eyebrow{ font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--verde); }
.zb-hd h1{ margin-top:8px; font-size:40px; line-height:1; font-weight:800; letter-spacing:-.04em; }
.zb-lead{ max-width:640px; font-size:17px; line-height:1.55; color:var(--gris); }
.zb-lead strong{ font-weight:600; color:var(--tinta); }
.zb-meta{ display:flex; flex-wrap:wrap; margin-top:14px; font-size:12px; color:rgb(var(--gris-500)); }
.zb-meta span + span::before{ content:"·"; margin:0 8px; color:rgb(var(--gris-400)); }
@media (min-width:900px){ .zb-hd{ grid-template-columns:minmax(0,5fr) minmax(0,7fr); align-items:end; } }
@media (min-width:1024px){ .zb-hd{ margin-top:36px; } .zb-hd h1{ font-size:64px; } }

/* Tira de cifras bajo la cabecera, separadas por filetes (las cifras de /marcas) */
.zb-datos{ display:grid; grid-template-columns:1fr 1fr; margin-top:32px; border-top:1px solid var(--linea); border-bottom:1px solid var(--linea); }
.zb-datos > *{ padding:14px 14px 14px 0; }
.zb-datos > *:nth-child(even){ padding-left:14px; border-left:1px solid var(--linea); }
.zb-datos > *:nth-child(n+3){ border-top:1px solid var(--linea); }
.zb-datos .zb-cifra b{ font-size:30px; }
@media (min-width:768px){
  .zb-datos{ grid-template-columns:repeat(var(--n, 4), minmax(0,1fr)); }
  .zb-datos > *, .zb-datos > *:nth-child(even){ padding:18px 20px; border-left:1px solid var(--linea); border-top:0; }
  .zb-datos > *:first-child{ padding-left:0; border-left:0; }
  .zb-datos .zb-cifra b{ font-size:40px; }
}

/* Barra del índice, fija bajo la cabecera del sitio (la de las institucionales). institucional.js
   marca el apartado activo con aria-current. */
.zb-barra{ position:sticky; top:var(--cabecera); z-index:20; margin-top:36px; border-top:1px solid var(--linea); border-bottom:1px solid var(--linea); background:var(--papel); }
.zb-barra ol{ display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; scroll-behavior:smooth; }
.zb-barra ol::-webkit-scrollbar{ display:none; }
.zb-barra li{ flex:none; }
.zb-barra a{ display:flex; align-items:baseline; gap:6px; margin-bottom:-1px; padding:15px 12px 13px; border-bottom:2px solid transparent;
  white-space:nowrap; font-size:13.5px; font-weight:600; color:rgb(var(--gris-600)); transition:color .12s, border-color .12s; }
.zb-barra li:first-child a{ padding-left:0; }
.zb-barra i{ font-style:normal; font-size:11.5px; font-variant-numeric:tabular-nums; color:var(--verde); }
.zb-barra a:hover{ color:var(--tinta); }
.zb-barra a[aria-current]{ border-bottom-color:var(--tinta); color:var(--tinta); }

/* Apartados: filete de tinta; desde 900 px, título fijo a la izquierda (5/12) y cuerpo a la derecha.
   --ancho: el cuerpo ocupa todo el ancho bajo el título (mapa, listado de municipios, etiquetas). */
.zb-sec{ margin-top:64px; padding-top:18px; border-top:1px solid var(--tinta); scroll-margin-top:calc(var(--cabecera) + var(--barra) + 16px); }
.zb-sec:first-child{ margin-top:48px; }
.zb-sec-hd{ margin:0 0 20px; }
.zb-h2n{ display:block; margin-bottom:6px; font-size:12px; font-weight:600; letter-spacing:.04em; font-variant-numeric:tabular-nums; color:rgb(var(--gris-400)); }
.zb-sec h2{ font-size:26px; line-height:1.15; font-weight:700; letter-spacing:-.02em; }
.zb-sec-sub{ margin-top:8px; max-width:34em; font-size:14px; line-height:1.55; color:var(--gris); }
.zb-sec-bd > :first-child{ margin-top:0; }
.zb-sec--ancho .zb-sec-hd{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 24px; }
.zb-sec--ancho .zb-sec-hd > div{ min-width:0; }
.zb-sec--ancho .zb-sec-sub{ margin-top:0; }
@media (min-width:900px){
  .zb-sec:not(.zb-sec--ancho){ display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); column-gap:48px; }
  .zb-sec:not(.zb-sec--ancho) .zb-sec-hd{ position:sticky; top:calc(var(--cabecera) + var(--barra) + 24px); align-self:start; margin:0; }
  .zb-sec h2{ font-size:30px; }
  .zb-sec:not(.zb-sec--ancho) .zb-sec-bd{ max-width:720px; }
}


/* Filas con título (molde .pi-filas) */
.zb-filas{ border-top:1px solid var(--tinta); }
.zb-filas > li, .zb-filas > div{ padding:16px 0; border-bottom:1px solid var(--linea); }
.zb-filas h3{ font-size:16px; line-height:1.35; font-weight:700; }
.zb-filas p{ font-size:15px; line-height:1.6; color:var(--gris); }
.zb-filas .zb-ir{ margin-top:6px; font-size:13px; }
.zb-num{ display:block; margin-bottom:2px; font-size:12px; font-weight:600; font-variant-numeric:tabular-nums; color:var(--verde); }
@media (min-width:640px){
  .zb-filas > li, .zb-filas > div{ display:grid; grid-template-columns:190px minmax(0,1fr); gap:24px; }
}

/* Directorio de municipios: comunidades en columnas, cada una bajo filete de tinta */
.zb-dir{ columns:1; column-gap:40px; }
@media (min-width:640px){ .zb-dir{ columns:2; } }
@media (min-width:1024px){ .zb-dir{ columns:3; } }
.zb-dir-g{ break-inside:avoid; margin-bottom:26px; }
.zb-dir-g h3{ display:flex; align-items:baseline; justify-content:space-between; gap:8px; padding-bottom:7px; border-bottom:1px solid var(--tinta);
  font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--tinta); }
.zb-dir-g h3 i{ font-style:normal; font-weight:600; color:var(--gris2); letter-spacing:0; }
.zb-dir-g a, .zb-dir-g li > span{ display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--linea2); }
.zb-dir-n{ flex:1; min-width:0; font-size:15px; font-weight:600; letter-spacing:-.01em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.zb-dir-g a:hover .zb-dir-n{ text-decoration:underline; }
.zb-dir-z{ flex:none; font-size:12px; color:var(--gris2); font-variant-numeric:tabular-nums; }
.zb-dir-g [aria-current]{ background:var(--tinta); color:#fff; margin:0 -8px; padding-left:8px; padding-right:8px; }
.zb-dir-g [aria-current] .zb-dir-z{ color:rgba(255,255,255,.62); }
.zb-dir-g .zb-prog .zb-dir-n{ color:var(--gris); }

/* Zona de la ficha: tabla de distintivos con la respuesta escrita y tabla de horario */
.zb-tab{ width:100%; border-collapse:collapse; font-size:14.5px; }
.zb-tab caption{ text-align:left; padding-bottom:8px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--gris2); }
.zb-tab th, .zb-tab td{ padding:9px 0; border-bottom:1px solid var(--linea2); text-align:left; vertical-align:middle; }
.zb-tab thead th{ padding-top:0; border-bottom:1px solid var(--tinta); font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--gris2); }
.zb-tab tbody th{ font-weight:600; }
.zb-tab tbody th > span{ display:flex; align-items:center; gap:10px; }
.zb-tab td{ text-align:right; font-weight:600; font-variant-numeric:tabular-nums; }
.zb-tab td.zb-no{ color:var(--gris2); font-weight:500; }
.zb-tab + .zb-tab{ margin-top:22px; }
.zb-zb-m{ margin-top:18px; aspect-ratio:1 / 1; max-width:320px; border:1px solid var(--linea2); background:var(--suave); }
.zb-zb-m .zbe-mini-map{ width:100%; height:100%; }
.zb-zb-sw{ display:inline-block; width:12px; height:12px; margin-right:8px; background:var(--zc); vertical-align:baseline; }
.zb-zb-est{ margin-top:8px; font-size:13.5px; color:var(--gris); }
.zb-zb-est b{ color:var(--tinta); font-weight:600; }
.zb-zb-pie{ display:flex; flex-wrap:wrap; gap:8px 24px; margin-top:18px; }
@media (max-width:899px){ .zb-zb-m{ max-width:none; aspect-ratio:3 / 2; } }

/* Distintivos: pegatina | texto | coches | cobertura en una fila ancha */
.zb-et{ border-top:1px solid var(--tinta); }
.zb-et > li{ display:grid; grid-template-columns:64px minmax(0,1fr); gap:10px 18px; padding:20px 0; border-bottom:1px solid var(--linea); }
.zb-et-img{ width:64px; height:64px; }
.zb-et-img img{ width:100%; height:100%; object-fit:contain; }
.zb-et h3{ font-size:20px; line-height:1.15; font-weight:700; letter-spacing:-.02em; }
.zb-et h3 + p{ margin-top:4px; font-size:14.5px; font-weight:600; color:var(--tinta); }
.zb-et-tx{ grid-column:1 / -1; font-size:14.5px; line-height:1.6; color:var(--gris); }
.zb-et-tx ul{ margin-top:6px; }
.zb-et-tx li{ position:relative; padding-left:14px; margin-top:3px; }
.zb-et-tx li::before{ content:""; position:absolute; left:0; top:.68em; width:6px; height:1.5px; background:var(--gris2); }
.zb-et-c{ grid-column:1 / -1; }
.zb-et-c b{ font-size:30px; font-weight:700; letter-spacing:-.04em; line-height:1; color:var(--verde); font-variant-numeric:tabular-nums; }
.zb-et-c b i{ font-style:normal; font-size:13px; font-weight:600; letter-spacing:0; color:var(--gris2); }
.zb-et-c span{ display:block; margin-top:4px; font-size:12px; color:var(--gris2); }
.zb-et-c .zb-bar{ max-width:none; margin-top:8px; }
@media (min-width:900px){
  .zb-et > li{ grid-template-columns:96px minmax(0,4fr) minmax(0,5fr) 200px; gap:28px; align-items:start; padding:24px 0; }
  .zb-et-img{ width:96px; height:96px; }
  .zb-et-tx, .zb-et-c{ grid-column:auto; }
}

/* Cita fuerte (el eléctrico): la nota --fuerte de las institucionales */
.zb-fuerte{ padding:4px 0 4px 20px; border-left:2px solid var(--tinta); font-size:20px; line-height:1.45; letter-spacing:-.01em; color:var(--tinta); }
.zb-fuerte + .zb-ir{ margin-top:16px; }
@media (min-width:900px){ .zb-fuerte{ font-size:23px; } }

/* Banda K al pie: gris verdoso a sangre, lista a dos columnas con flecha en círculo */
.zb-mas{ margin-top:80px; padding:36px 0 40px; background:var(--rail); box-shadow:0 0 0 100vmax var(--rail); clip-path:inset(0 -100vmax); }
.zb-mas h2{ margin-bottom:16px; font-size:22px; line-height:1.2; font-weight:700; letter-spacing:-.02em; }
.zb-mas h2 + .zb-links{ margin-bottom:28px; }
.zb-mas .zb-links:last-child{ margin-bottom:0; }
.zb-links{ display:grid; grid-template-columns:minmax(0,1fr); column-gap:48px; border-top:1px solid var(--tinta); }
@media (min-width:768px){ .zb-links{ grid-template-columns:1fr 1fr; } }
.zb-go{ display:flex; align-items:center; gap:18px; padding:14px 2px; border-bottom:1px solid color-mix(in srgb, var(--tinta) 11%, var(--rail)); }
.zb-go span{ flex:1; min-width:0; font-size:16px; line-height:1.25; font-weight:700; letter-spacing:-.015em;
  text-decoration:underline; text-decoration-color:transparent; text-underline-offset:4px; transition:text-decoration-color .15s; }
.zb-go span small{ display:block; margin-top:3px; font-size:13px; font-weight:400; letter-spacing:0; color:var(--gris); }
.zb-go i{ flex:none; display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:var(--papel);
  font-style:normal; font-size:15px; line-height:1; transition:background .15s, color .15s, transform .15s; }
.zb-go:hover span{ text-decoration-color:var(--tinta); }
.zb-go:hover i{ background:var(--tinta); color:var(--papel); transform:translateX(3px); }
.zb-go:focus-visible{ outline:2px solid var(--tinta); outline-offset:2px; }
.zb-mas .zb-pie{ margin-top:22px; max-width:60em; }

.zb-barra ol{ position:relative; }
.zb-datos--3{ --n:3; }
.zb-datos--4{ --n:4; }
/* .zb-cifra span pone display:block a todo span: el grupo de pegatinas dentro de una cifra vuelve a fila */
.zb-cifra .zb-acc{ display:inline-flex; margin-top:0; }
.zb-dir--acc .zb-dir-z{ min-width:50px; text-align:right; }
.zb-leyenda + .zb-dir{ margin-top:18px; }
.zb-tab th.zb-r{ text-align:right; }
.zb-sec h2 .zb-zb-sw{ width:14px; height:14px; margin-right:10px; vertical-align:2px; }
.zb-sec-bd > .zb-nota:first-child{ margin-top:0; }
.zb-et h3 + p{ font-weight:400; color:var(--gris); }

/* Jerarquía normativa: tres pasos en la tira de cifras */
.zb-pasos > li{ display:flex; flex-direction:column; gap:4px; }
.zb-pasos .zb-num{ margin:0; }
.zb-pasos b{ font-size:21px; line-height:1.15; font-weight:700; letter-spacing:-.025em; }
.zb-pasos a:hover b{ text-decoration:underline; }
.zb-pasos li > span:last-child{ font-size:13px; line-height:1.45; color:var(--gris); }
@media (max-width:767px){ .zb-pasos{ grid-template-columns:1fr; } .zb-pasos > li, .zb-pasos > li:nth-child(even){ padding:14px 0; border-left:0; } .zb-pasos > li + li{ border-top:1px solid var(--linea); } }
