:root{
  --brand:#7a2e1d; --brand-2:#5e2215; --brand-ink:#fff;
  --bg:#f5f3ee; --card:#fff; --ink:#201d18; --ink-2:#55514a; --ink-3:#8a857b; --line:#e3dfd5; --line-2:#cfc9bb;
  --hi:#fbf1e2; --focus:#1f6fd0;
  --vacio:#e6d8b8; --uno:#2a78d6; --sel:#7a2e1d; --tinte:#d9a58f;
  --sans:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --serif:Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55}
a{color:var(--brand)}
.header{background:var(--brand);color:var(--brand-ink);padding:22px 0 20px;box-shadow:0 2px 5px rgba(0,0,0,.12)}
.inner{max-width:1400px;margin:0 auto;padding:0 18px}
.header h1{margin:0;font-family:var(--serif);font-size:clamp(23px,4.2vw,34px);line-height:1.15;font-weight:700}
.header p{margin:5px 0 0;font-size:14px;opacity:.88}
main{max-width:1400px;margin:0 auto;padding:22px 18px 40px;display:flex;flex-direction:column;gap:22px}
.intro{color:var(--ink-2);max-width:78ch}
.intro p{margin:0 0 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}
label.big{display:block;font-family:var(--serif);font-size:21px;font-weight:700;margin:0 0 8px}
.campo{position:relative}
.campo input{width:100%;font:inherit;font-size:18px;padding:13px 14px 13px 44px;border:2px solid var(--line-2);border-radius:10px;background:#fff;color:var(--ink)}
.campo input:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px rgba(31,111,208,.18)}
.campo svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--ink-3)}
.sug{list-style:none;margin:6px 0 0;padding:4px;border:1px solid var(--line-2);border-radius:10px;background:#fff;max-height:300px;overflow:auto;box-shadow:0 8px 22px rgba(0,0,0,.12)}
.sug[hidden]{display:none}
.sug li{padding:9px 12px;border-radius:7px;cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.sug li[aria-selected="true"],.sug li:hover{background:var(--hi)}
.sug .sub{font-size:13px;color:var(--ink-3)}
.ayuda{font-size:14px;color:var(--ink-3);margin:8px 0 0}
.mapbox svg{width:100%;height:auto;display:block}
path.mun{fill:var(--tinte);stroke:#fff;stroke-width:.7;stroke-linejoin:round;cursor:pointer;transition:fill .12s}
path.mun.sin{fill:var(--vacio)}
path.mun:hover,path.mun:focus-visible{fill:var(--brand);outline:none}
path.mun.sel{fill:var(--sel);stroke:#201d18;stroke-width:1.8}
.mapnota{font-size:12.5px;color:var(--ink-3);margin:6px 0 0;text-align:center}
/* resultado */
.res-h{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:baseline;justify-content:space-between;margin-bottom:12px}
.res-h h2{margin:0;font-family:var(--serif);font-size:clamp(22px,3.4vw,30px)}
.res-h .meta{color:var(--ink-3);font-size:14px}
.anos{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.anos button{font:inherit;font-size:15px;font-weight:600;padding:7px 14px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink);cursor:pointer}
.anos button[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
.anos button:disabled{color:#b5b0a4;background:#f2efe8;cursor:default;text-decoration:line-through}
.tablewrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:15px}
th{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);text-align:left;padding:8px 10px;border-bottom:2px solid var(--line);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
tr.sep td{background:var(--bg);font-weight:700;font-family:var(--serif);font-size:16px;border-bottom:1px solid var(--line-2)}
td.nom{font-weight:600}
td.cargo{color:var(--ink-2)}
.obs{display:block;font-size:12.5px;color:var(--ink-3);font-weight:400;margin-top:2px}
.btn{font:inherit;font-size:13.5px;font-weight:600;padding:6px 11px;border-radius:8px;border:1px solid var(--brand);background:#fff;color:var(--brand);cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--brand);color:#fff}
.barra{display:flex;flex-direction:column;gap:10px;margin:0 0 16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.paradas{display:flex;gap:4px;overflow-x:auto;padding-bottom:2px}
.parada{flex:1 0 76px;display:flex;flex-direction:column;align-items:center;gap:1px;font:inherit;padding:7px 6px;border-radius:8px;border:1px solid transparent;background:none;color:var(--ink-2);cursor:pointer}
.parada:hover{background:#fff}
.parada .yy{font-weight:700;font-size:15px}
.parada .dd{font-size:11.5px;color:var(--ink-3);white-space:nowrap}
.parada.on{background:var(--brand);border-color:var(--brand)}
.parada.on .yy,.parada.on .dd{color:#fff}
.scrub{display:flex;align-items:center;gap:10px;padding-top:10px;border-top:1px solid var(--line)}
.scrub .play{flex:0 0 auto;width:34px;height:34px;border-radius:50%;border:1px solid var(--line-2);background:#fff;color:var(--ink);cursor:pointer;display:grid;place-items:center;padding:0}
.scrub .play[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
.scrub .play svg{width:13px;height:13px}
.scrub .step{flex:0 0 auto;width:30px;height:30px;border-radius:7px;border:1px solid var(--line-2);background:#fff;font-size:15px;color:var(--ink-2);cursor:pointer;padding:0}
.scrub .step:disabled{opacity:.35;cursor:default}
.scrub input{flex:1 1 auto;min-width:80px;accent-color:var(--brand);height:26px;cursor:pointer}
.scrub .now{font-family:ui-monospace,Consolas,monospace;font-size:13px;color:var(--ink-2);min-width:50px;text-align:right}
.faltan{margin:0;font-size:13px;color:var(--ink-3)}
.docinfo{margin:0 0 10px;color:var(--ink-2)}
.cuerpo{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,46%);gap:18px;align-items:start}
@media(max-width:980px){.cuerpo{grid-template-columns:1fr}.prev{display:none}}
.prev{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:8px;text-align:center}
.prev .cab{font-size:12px;color:var(--ink-3);margin:0 0 6px;text-align:left;line-height:1.3;word-break:break-all}
.prev .cab b{display:block;font-size:13px;color:var(--ink);word-break:normal}
.prev .thumb{display:block;width:100%;border:1px solid var(--line-2);background:#fff;cursor:zoom-in;border-radius:4px}
.prev .pie{font-size:12px;color:var(--ink-3);margin:6px 0 0}
.prev .msg{font-size:13px;color:var(--ink-2);padding:30px 6px}
.vacio-msg{color:var(--ink-2);margin:6px 0 0}
.lista-n{display:flex;flex-direction:column;gap:2px}
.lista-n a{text-decoration:none;font:inherit;text-align:left;border-bottom:1px solid var(--line);padding:10px 4px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:8px;align-items:baseline;color:var(--ink)}
.lista-n a:hover{background:var(--hi)}
.atras{margin:0 0 8px;font-size:14px}.atras a{color:#fff;opacity:.9}
.lista-n .n{font-weight:600}.lista-n .d{color:var(--ink-2);font-size:14px}.lista-n .y{font-family:ui-monospace,Consolas,monospace;font-size:13px;color:var(--ink-3)}
.mas{margin-top:10px;font-size:14px;color:var(--ink-3)}
/* visor */
.visor{position:fixed;inset:0;z-index:50;background:rgba(20,16,12,.92);display:flex;flex-direction:column}
.visor[hidden]{display:none}
.v-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;color:#fff;flex-wrap:wrap}
.v-bar .t{flex:1 1 220px;min-width:0}
.v-bar .t b{display:block;font-size:15px}
.v-bar .t span{font-size:12.5px;opacity:.75;word-break:break-all}
.v-bar button,.v-bar a{font:inherit;font-size:14px;font-weight:600;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:7px 12px;cursor:pointer;text-decoration:none}
.v-bar button:hover,.v-bar a:hover{background:rgba(255,255,255,.28)}
.v-bar button:disabled{opacity:.35;cursor:default}
.v-area{flex:1;overflow:auto;text-align:center;padding:0 10px 20px;-webkit-overflow-scrolling:touch}
.v-area img{display:block;margin:0 auto;background:#fff;max-width:none}
.v-msg{color:#fff;padding:40px 20px}
footer{background:var(--brand);color:#fff;padding:20px 0;font-size:14px}
footer p{margin:0 0 6px}footer a{color:#fff}
.cita{font-size:13.5px;color:var(--ink-2);max-width:90ch}
:where(button,a,input,[tabindex]):focus-visible{outline:3px solid var(--focus);outline-offset:2px}

.avz{margin:16px 0 0;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.btn-avz{font-weight:700;font-size:15px;text-decoration:none;color:var(--brand);border:2px solid var(--brand);border-radius:999px;padding:8px 18px;background:#fff}
.btn-avz:hover{background:var(--brand);color:#fff}
.avz-t{font-size:13.5px;color:var(--ink-3);flex:1 1 220px}

/* ---- búsqueda avanzada ---- */
.filtros{display:flex;flex-direction:column;gap:14px}
.f-top{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.f-grande{flex:1 1 320px}
.f-mas{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px}
.f-mas[hidden]{display:none}
.f-g label{display:block;font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin:0 0 4px}
.f-g input[type=text],.f-g input:not([type]),.f-g input[type=search],.f-g input[type=number],.f-g select{width:100%;font:inherit;font-size:15px;padding:9px 10px;border:1px solid var(--line-2);border-radius:8px;background:#fff;color:var(--ink)}
.f-g .campo input{padding-left:44px;font-size:17px;border-width:2px}
.f-par span{display:flex;gap:8px;align-items:center}.f-par i{color:var(--ink-3);font-style:normal}
.chk{display:flex!important;align-items:center;gap:8px;text-transform:none!important;letter-spacing:0!important;font-size:15px!important;color:var(--ink)!important;font-weight:400!important;padding:9px 0;cursor:pointer}
.chk input{width:18px;height:18px;accent-color:var(--brand)}
.chips-c{display:flex;flex-wrap:wrap;gap:6px}
.cc{display:inline-flex!important;margin:0!important;text-transform:none!important;letter-spacing:0!important;cursor:pointer;position:relative}
.cc input{position:absolute;opacity:0;pointer-events:none}
.cc span{font-size:15px;font-weight:600;padding:6px 14px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink-3)}
.cc input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}
.cc input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}
.botonera{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pp{font-size:13.5px;color:var(--ink-2)}.pp select{font:inherit;padding:5px 8px;border:1px solid var(--line-2);border-radius:6px}
table.adv th[data-k]{cursor:pointer;user-select:none}
table.adv th[data-k]:hover{color:var(--ink)}
table.adv td a{color:var(--brand);font-weight:600;text-decoration:none}
table.adv td a:hover{text-decoration:underline}
.btn-ver{border:1px solid var(--brand);border-radius:8px;padding:3px 10px;font-size:13px;background:#fff}
.pag{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center;margin-top:12px;font-size:14px;color:var(--ink-2)}
.pbtn{display:flex;gap:10px;align-items:center}
.btn:disabled{opacity:.4;cursor:default}

.intro h2{font-family:var(--serif);font-size:clamp(22px,3.2vw,28px);margin:0 0 12px;padding-bottom:10px;border-bottom:3px solid var(--brand);color:var(--ink)}
.intro{max-width:none}.intro p{text-align:justify;line-height:1.7}
@media(max-width:768px){.intro p{text-align:left}}

/* ---- portada (index.html) ---- */
.portada{position:fixed;inset:0;z-index:100;transition:transform .8s cubic-bezier(.77,0,.18,1),opacity .8s ease;will-change:transform;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;color:#fff;
  background:radial-gradient(1200px 700px at 85% 20%,#a8452d 0%,rgba(168,69,45,0) 60%),linear-gradient(135deg,#3c140c 0%,#5e2215 38%,#7a2e1d 70%,#a0522d 100%)}
.portada::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(40,12,6,.78) 0%,rgba(40,12,6,.35) 48%,rgba(40,12,6,0) 75%);pointer-events:none}
.portada-ficha{position:absolute;right:max(2vw,12px);top:50%;width:min(44vw,560px);transform:translateY(-52%) rotate(3deg);z-index:0;
  -webkit-mask-image:linear-gradient(180deg,#000 55%,transparent 100%),linear-gradient(90deg,transparent 0%,#000 28%);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(180deg,#000 55%,transparent 100%),linear-gradient(90deg,transparent 0%,#000 28%);mask-composite:intersect;opacity:.92}
.portada-ficha img{display:block;width:100%;height:auto;filter:drop-shadow(0 18px 38px rgba(0,0,0,.5)) sepia(.12) contrast(1.02)}
.portada-in{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;justify-content:center;padding-top:60px;padding-bottom:30px;width:100%}
.portada-eyebrow{margin:0 0 14px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;opacity:.82;font-weight:600}
.portada h1{margin:0;font-family:var(--serif);font-size:clamp(34px,6.2vw,72px);line-height:1.05;font-weight:700;max-width:14ch;text-wrap:balance;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.portada-sub{margin:20px 0 0;max-width:46ch;font-size:clamp(16px,2vw,21px);line-height:1.5;opacity:.93}
.portada-cta{margin:30px 0 0;display:flex;flex-wrap:wrap;gap:12px}
.btn-portada{display:inline-block;text-decoration:none;font-weight:700;font-size:17px;padding:13px 26px;border-radius:999px;background:#fff;color:var(--brand-2);box-shadow:0 6px 20px rgba(0,0,0,.28)}
.btn-portada:hover{background:var(--hi)}
.btn-portada.sec{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.7);box-shadow:none}
.btn-portada.sec:hover{background:rgba(255,255,255,.14)}
/* logos a color sobre una banda clara al pie de la portada */
.portada-banda{position:relative;z-index:1;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink);box-shadow:0 -10px 30px rgba(0,0,0,.18)}
.portada-logos{width:100%;padding-top:16px;padding-bottom:18px}
.portada-colab{margin:0 0 12px;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand-2);font-weight:700}
.logos-fila{display:flex;flex-wrap:wrap;gap:14px 44px;align-items:center}
.logo-item{height:56px;display:flex;align-items:center}
.logo-item img{height:100%;width:auto;max-width:260px;display:block}
#lgLea{height:42px}
#lgDip{height:52px}
.logo-item .lg-txt{display:none;font-weight:700;font-size:14px;color:var(--brand-2)}
.logo-item.falta .lg-txt{display:block}
@media(max-width:820px){
  .portada-ficha{width:78vw;right:-14vw;top:auto;bottom:80px;transform:rotate(4deg);opacity:.5;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 40%);mask-image:linear-gradient(180deg,transparent 0%,#000 40%);-webkit-mask-composite:source-over;mask-composite:add}
  .portada::after{background:linear-gradient(180deg,rgba(40,12,6,.55),rgba(40,12,6,.2))}
}

/* tránsito portada → buscador: la portada es una cortina a pantalla completa que sube y deja ver el buscador */
body.con-portada{overflow:hidden}
.portada.sale{transform:translateY(-100%);opacity:.6}
.portada.sin-anim{transition:none}
.portada[hidden]{display:none}
.topbar{background:var(--brand);color:#fff;box-shadow:0 2px 5px rgba(0,0,0,.12)}
.topbar .inner{display:flex;align-items:center;gap:18px;padding-top:12px;padding-bottom:12px}
.topbar a{color:#fff;text-decoration:none;font-weight:600;font-size:14px;border:1px solid rgba(255,255,255,.5);border-radius:999px;padding:5px 14px;white-space:nowrap}
.topbar a:hover{background:rgba(255,255,255,.18)}
.topbar strong{font-family:var(--serif);font-size:clamp(15px,2.4vw,20px);line-height:1.2}
@media(prefers-reduced-motion:reduce){.portada{transition:none}}

/* pantalla inicial: texto a la izquierda; a la derecha, el mapa y debajo el buscador */
.inicio{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:34px;align-items:start}
.inicio .buscador{display:flex;flex-direction:column;gap:16px}
.b-busca .big{font-size:20px}
.mapbox{max-width:560px;margin:0 auto}
@media(max-width:900px){.inicio{grid-template-columns:1fr}.inicio .buscador{position:static}}

/* el mapa de la pantalla inicial va directamente sobre el fondo de la página, sin tarjeta blanca */
.inicio .buscador{background:transparent;border:0;padding:0;box-shadow:none}
.inicio .b-busca{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
path.mun{stroke:var(--bg)}

/* título compartido por el texto y el mapa */
.inicio-t{grid-column:1/-1;font-family:var(--serif);font-size:clamp(24px,3.6vw,34px);margin:0;padding-bottom:12px;border-bottom:3px solid var(--brand);color:var(--ink)}
.inicio .intro h2{display:none}
@media(max-width:900px){.inicio-t{grid-column:auto}}

.mapa-t{margin:0 0 6px;font-family:var(--serif);font-size:19px;font-weight:700;color:var(--ink);text-align:center}

.inicio .b-busca{position:relative;z-index:5}
.inicio .sug{z-index:6}

.inicio .b-busca{background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.inicio .b-mapa .avz{justify-content:center;margin-top:14px}

.avz-mini{margin:8px 2px 0;font-size:13px;text-align:right}
.avz-mini a{color:var(--brand);text-decoration:none;font-weight:600}
.avz-mini a:hover{text-decoration:underline}

.b-busca .campo input{padding-right:112px}
.btn-ir{position:absolute;right:7px;top:50%;transform:translateY(-50%);font:inherit;font-size:14px;font-weight:700;padding:8px 14px;border-radius:8px;border:0;background:var(--brand);color:#fff;cursor:pointer}
.btn-ir:disabled{background:var(--line-2);color:#fff;cursor:default}
.btn-ir:not(:disabled):hover{background:var(--brand-2)}

/* zoom con recuadro */
.recuadro{position:fixed;z-index:300;pointer-events:none;border:2px solid #fff;background:rgba(255,255,255,.18);outline:1px solid rgba(0,0,0,.55);box-shadow:0 0 0 9999px rgba(0,0,0,.18)}
.v-bar .t .v-hint{display:block;font-size:12px;opacity:.75;font-style:normal;margin-top:2px}
.v-area img,.prev .thumb{user-select:none;-webkit-user-drag:none}
.prev .thumb{cursor:crosshair}

/* marco del certificado con zoom por recuadro */
.prev .marco{position:relative;overflow:hidden;width:100%;background:#fff;border:1px solid var(--line-2);border-radius:4px;cursor:crosshair;min-height:80px}
.prev .marco img.thumb{position:absolute;left:0;top:0;max-width:none;width:100%;height:auto;border:0;border-radius:0;cursor:crosshair;transition:width .28s ease,left .28s ease,top .28s ease}
.prev .marco .msg{position:relative}
.prev-btns{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px}
@media(prefers-reduced-motion:reduce){.prev .marco img.thumb{transition:none}}

/* zoom del marco: transform en lugar de width/left/top (más fluido) */
.prev .marco img.thumb{position:static;display:block;width:100%;height:auto;max-width:none;transform-origin:0 0;transition:transform .35s cubic-bezier(.2,.7,.2,1)}

.prev .marco .thumb{position:static;display:block;width:100%;height:auto;max-width:none;border:0;border-radius:0;cursor:crosshair;transform-origin:0 0;transition:transform .35s cubic-bezier(.2,.7,.2,1)}

/* barra temporal bajo el mapa de la pantalla inicial */
.tiempo{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.t-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.t-chips button{font:inherit;font-size:14px;font-weight:600;padding:5px 11px;border-radius:999px;border:1px solid var(--line-2);background:#fff;color:var(--ink-2);cursor:pointer}
.t-chips button:hover{border-color:var(--ink-3)}
.t-chips button.on{background:var(--brand);border-color:var(--brand);color:#fff}
.tiempo .scrub{padding-top:10px;border-top:1px solid var(--line)}
.t-ayuda{margin:8px 0 0;font-size:12.5px;color:var(--ink-3)}
.t-ayuda[hidden]{display:none}
.aviso{margin:0 0 12px;padding:9px 12px;border-radius:8px;background:var(--hi);border:1px solid #e9d3b0;color:var(--ink-2);font-size:14px}

/* Alineación óptica de los logos: la línea de hueco entre los dos renglones de texto del logo de la Diputación
   (a 0,653 de su altura) queda a la misma altura que la del hueco entre «UNIVERSITAT DE» y «BARCELONA»
   en el logo de la UB (a 0,469 de su altura). LEaPREG se alinea por el palo central de su «E» (a 0,395 de su altura, mitad de su primera línea de texto). */
.portada-logos{--h-dip:52px;--h-ub:56px;--h-lea:42px;--G:calc(.653 * var(--h-dip))}
@media(min-width:760px){
  .logos-fila{align-items:flex-start}
  #lgDip{height:var(--h-dip);margin-top:0}
  #lgUb{height:var(--h-ub);margin-top:calc(var(--G) - .469 * var(--h-ub))}
  #lgLea{height:var(--h-lea);margin-top:calc(var(--G) - .395 * var(--h-lea))}
}

.logo-item a{display:flex;align-items:center;height:100%;text-decoration:none;color:inherit;border-radius:6px}
.logo-item a:hover img{opacity:.8}
.logo-item a:focus-visible{outline:3px solid var(--focus);outline-offset:4px}

/* buscador y barra temporal más compactos */
.inicio .b-busca{padding:12px 14px}
.b-busca label.big{font-size:16px;margin:0 0 6px}
.b-busca .campo input{font-size:15px;padding:8px 12px 8px 36px;border-width:1.5px;border-radius:8px}
.b-busca .campo svg{left:11px;width:17px;height:17px}
.b-busca .campo input{padding-right:92px}
.b-busca .btn-ir{font-size:12.5px;padding:6px 11px;right:5px}
.avz-mini{margin:5px 2px 0;font-size:12px}
.b-busca .tiempo{margin-top:10px;padding:8px 10px;border-radius:8px}
.b-busca .t-chips{gap:4px;margin-bottom:7px}
.b-busca .t-chips button{font-size:12px;padding:3px 9px}
.b-busca .tiempo .scrub{gap:8px;padding-top:7px}
.b-busca .tiempo .play{width:26px;height:26px}
.b-busca .tiempo .play svg{width:10px;height:10px}
.b-busca .tiempo .step{width:24px;height:24px;font-size:13px;border-radius:6px}
.b-busca .tiempo .scrub input{height:20px}
.b-busca .tiempo .now{font-size:12px;min-width:44px}
.b-busca .t-ayuda{margin:6px 0 0;font-size:11.5px}

/* botón «Pantalla completa» en una esquina del visualizador */
.prev .marco .esq-pant{position:absolute;top:6px;right:6px;z-index:2;display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:11.5px;font-weight:600;color:#fff;background:rgba(30,20,14,.62);border:1px solid rgba(255,255,255,.35);border-radius:6px;padding:4px 8px;cursor:pointer;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.prev .marco .esq-pant:hover{background:rgba(30,20,14,.85)}
.prev .marco .esq-pant svg{flex:0 0 auto}

.cuerpo .cita{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.5}

.cuerpo .cita.cita-ref{margin-top:8px;padding-top:0;border-top:0}


.cita-ref em{font-style:italic;font-weight:400;background:none;padding:0;text-decoration:none;user-select:all}

.aviso-trans + .cita{border-top:0!important;padding-top:0!important;margin-top:8px!important}
.cita.aviso-trans b{font-weight:700}

.cita-l{margin:4px 0 0;padding-left:18px}
.cita-l li{margin:0 0 5px}
.cita-l li > i:first-child{font-style:italic;font-weight:600}

/* ---- PRUEBA 2 del tránsito portada → buscador: fundido con ligero desplazamiento ----
   La portada se desvanece mientras el contenido sube unos píxeles y la ficha se acerca apenas; el buscador aparece
   desde abajo con otro fundido. Al volver, el recorrido es el inverso. */
.portada{transition:opacity .75s ease;will-change:auto}
.portada.sale{transform:none;opacity:0;pointer-events:none}
.portada .portada-ficha{transition:transform .9s ease}
.portada.sale .portada-ficha{transform:translateY(-52%) rotate(3deg) scale(1.04)}
.portada .portada-in,.portada .portada-banda{transition:opacity .5s ease,transform .75s ease}
.portada.sale .portada-in{opacity:0;transform:translateY(-18px)}
.portada.sale .portada-banda{opacity:0;transform:translateY(12px)}
body.con-portada main,body.con-portada .topbar,body.con-portada footer{opacity:0;transform:translateY(16px)}
main,.topbar,footer{transition:opacity .7s ease .25s,transform .8s ease .25s}
.portada.sin-anim,.portada.sin-anim *{transition:none!important}
@media(max-width:820px){.portada.sale .portada-ficha{transform:rotate(4deg) scale(1.03)}}
@media(prefers-reduced-motion:reduce){.portada,.portada *,main,.topbar,footer{transition:none!important}}

.portada-sub2{display:inline-block;margin-top:10px;font-size:.82em;opacity:.85}

/* portada: sin franja blanca bajo los logos */
.portada-banda{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;color:#fff}
.portada-colab{color:#fff;opacity:.85;border-top:1px solid rgba(255,255,255,.28);padding-top:16px}

/* los textos de la portada aparecen uno tras otro al cargar la página (y al volver a ella) */
.portada-in > *, .portada-banda .portada-logos > *{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease;transition-delay:calc(var(--i,0) * .14s)}
.portada.lista .portada-in > *, .portada.lista .portada-banda .portada-logos > *{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.portada-in > *, .portada-banda .portada-logos > *{opacity:1!important;transform:none!important;transition:none!important}}

/* pie claro con los logos a color */
footer{background:var(--bg);color:var(--ink-2);border-top:1px solid var(--line);padding:22px 0 26px}
footer .inner{display:flex;flex-direction:column;gap:14px}
footer p{margin:0;font-size:13.5px}
.pie-logos{display:flex;flex-wrap:wrap;gap:14px 40px;align-items:center}
.pie-logos a{display:flex;align-items:center;height:46px}
.pie-logos img{height:100%;width:auto;max-width:220px;display:block}
.pie-logos a:nth-child(3) img{height:34px}
.pie-logos a:nth-child(1) img{height:42px}
.portada-sub2 a{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* etiqueta del buscador: más grande */
.b-busca label.big{font-family:var(--serif);font-size:26px;margin:0 0 10px}

/* pie: solo los logos, centrados */
.pie-logos{justify-content:center}
footer .inner{align-items:center}

/* ---- ficha del municipio en móvil: sin desbordar y con la tabla en forma de tarjetas ---- */
@media(max-width:980px){
  .cuerpo{grid-template-columns:minmax(0,1fr)}
  .cuerpo > div{min-width:0}
}
@media(max-width:640px){
  .cuerpo table thead{display:none}
  .cuerpo table,.cuerpo tbody,.cuerpo tr,.cuerpo td{display:block;width:100%}
  .cuerpo tbody tr{padding:10px 0 9px;border-bottom:1px solid var(--line)}
  .cuerpo td{padding:0;border:0}
  .cuerpo td.nom{font-size:16px;font-weight:700}
  .cuerpo td.cargo{color:var(--ink-2);margin-top:2px}
  .cuerpo td.fe{display:inline-block;width:auto;margin:5px 18px 0 0;font-size:14px;color:var(--ink)}
  .cuerpo td.fe::before{content:attr(data-l) ": ";color:var(--ink-3);font-size:12px;letter-spacing:.05em;text-transform:uppercase}
  .docinfo{font-size:14px}
  .docinfo .btn{display:inline-block;margin-top:6px}
  .barra{padding:10px}
  .parada{flex:1 0 64px;padding:6px 4px}
  .parada .yy{font-size:14px}.parada .dd{font-size:10.5px}
}
