/* =====================================================================
   site.css — cabeceira, menú e contido da web
   Usa os tokens de base.css (--ink, --muted-*, --line, --soft, --pad, --max).
   ===================================================================== */

/* ---------- Tokens propios ---------- */
:root{
  --zoom:.7s cubic-bezier(.22,.61,.36,1);
  --fade:.22s;
  --icon:#cfcfca;
  --accent:var(--gold);
  --header-h:96px;
  --nav:#a6a6a1;--nav-hover:#333;--nav-activo:#000;
  --num-bg:#5c5c57;--num-fg:#fff;
  /* Ritmo vertical: tres medidas para toda a web */
  --s-band:clamp(36px,4vw,56px);   /* respiro arriba e abaixo de cada banda (entre bandas: o dobre) */
  --s-head:clamp(28px,3.4vw,44px); /* baixo o título da páxina */
  --s-page:clamp(56px,6vw,96px);   /* final da páxina, antes do pé */
  --lh-text:1.65;                  /* interliña do texto de lectura */
}
/* Cor do texto: #333 en todo o sitio (modo claro); grises secundarios lexibles */
html:not([data-theme="dark"]){--ink:#333;--ink-2:#333;--ink-3:#333;--muted:#666;--muted-2:#555;--muted-3:#555;--muted-4:#666;--muted-5:#666;--gold:#8a6f3c}
:root[data-theme="dark"]{--icon:#4d4d48;--nav:#74746f;--nav-hover:#e6e6e1;--nav-activo:#fff;--num-bg:#c9c9c3;--num-fg:#191917}
@media(max-width:1000px){:root{--header-h:76px}}
/* Cor de acento lexible en claro e en escuro: en escuro aclárase automaticamente */
*{--acc:var(--accent)}
:root[data-theme="dark"] *{--acc:color-mix(in srgb,var(--accent) 58%,#efefea)}

body{font-size:1.0625rem}
[hidden]{display:none!important}
#app{min-height:70vh}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
/* Visor: o foco inicial (programático) non debuxa anel; só ao navegar co teclado (Tab) */
.viewer:not(.kbd) :focus-visible{outline:0}
[id]{scroll-margin-top:calc(var(--header-h) + 20px)}
.lucide{display:inline-block;vertical-align:middle;flex:none}

/* ================= Cabeceira ================= */
.cab{position:sticky;top:0;z-index:50;height:var(--header-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:0 var(--pad);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);view-transition-name:cab}
.marca{display:flex;align-items:center;gap:14px;font-size:.8125rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;justify-self:start}
.marca img{width:48px;height:48px;object-fit:contain}
:root[data-theme="dark"] .marca img{filter:invert(1)}
/* Seccións: gris suave; ao pasar o rato e na activa, a cor da sección (--c), máis grosor e un fío baixo a palabra */
.cab-nav{display:flex;gap:clamp(18px,2.4vw,40px)}
.cab-nav a,#menuNav a{--cc:var(--c)}
:root[data-theme="dark"] .cab-nav a,:root[data-theme="dark"] #menuNav a{--cc:color-mix(in srgb,var(--c) 58%,#efefea)}
.cab-nav a{display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:400;font-size:1.0625rem;line-height:1.1;color:var(--nav);transform-origin:center 70%;transition:color .3s,transform .35s cubic-bezier(.22,.61,.36,1)}
.cab-nav svg{width:26px;height:26px;stroke-width:1.5;color:var(--icon);transition:color .25s}
.cab-nav a:hover{transform:scale(1.07)}
.cab-nav a.active{transform:scale(1.12)}
.cab-nav a:hover,.cab-nav a.active,.cab-nav a:hover svg,.cab-nav a.active svg{color:var(--cc);font-weight:500}
/* A copia invisible en 500 reserva o ancho: a palabra engorda sen mover as veciñas */
.cab-nav a span{display:inline-grid;justify-items:center;border-bottom:2px solid transparent;padding-bottom:3px;transition:border-color .3s}
.cab-nav a span::after{content:attr(data-t);font-weight:500;height:0;visibility:hidden;overflow:hidden;user-select:none;pointer-events:none}
.cab-nav a:hover span{border-bottom-color:color-mix(in srgb,var(--cc) 40%,transparent)}
.cab-nav a.active span{border-bottom-color:var(--cc)}
.cab-accions{justify-self:end;display:flex;align-items:center;gap:6px}
.ico{border:0;background:none;color:var(--ink);width:44px;height:44px;display:grid;place-items:center;border-radius:50%;cursor:pointer;transition:background .2s}
.ico{-webkit-tap-highlight-color:transparent}
@media(hover:hover){.ico:hover{background:var(--soft)}}
.ico svg{width:24px;height:24px;stroke-width:1.6}
/* Busca: só a icona; ao premela, desprégase unha liña cara á esquerda */
.cab-busca{position:relative;display:flex;align-items:center}
.cab-busca input{position:absolute;right:100%;top:50%;transform:translateY(-50%);width:0;opacity:0;padding:8px 0;margin-right:6px;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:var(--bg);color:var(--ink);font:400 1rem "Montserrat",sans-serif;outline:0;pointer-events:none;transition:width .35s cubic-bezier(.22,.61,.36,1),opacity .25s}
.cab-busca.aberta input{width:var(--busca-w,240px);opacity:1;pointer-events:auto}
.cab-busca input::-webkit-search-cancel-button{display:none}
/* Suxestións da busca (despregable baixo a liña) */
.suxest{position:absolute;top:calc(100% + 14px);right:calc(100% + 6px);width:min(420px,calc(100vw - 2 * var(--pad)));max-height:min(70vh,560px);overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:var(--media-radius);box-shadow:0 18px 50px rgba(0,0,0,.12);padding:6px 0;z-index:60}
.suxest a{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:center;padding:10px 16px;color:var(--ink);border-bottom:1px solid var(--line)}
.suxest a:last-child{border-bottom:0}
.suxest a:hover,.suxest a.on{background:var(--soft)}
.suxest img,.sx-sen{width:52px;height:52px;object-fit:cover;border-radius:var(--media-radius-small);background:var(--soft)}
.sx-sen{display:grid;place-items:center;font-weight:300;font-size:1.5rem;color:var(--muted-2)}
.sx-t{display:block;font-size:.9375rem;line-height:1.3}
.sx-t b{font-weight:600}
.sx-k{display:block;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--acc,var(--muted));margin-top:4px}
.suxest a.sx-todos{display:block;text-align:center;padding:14px 16px;font-size:.9375rem;font-weight:500}
.sx-baleiro{margin:0;padding:16px;color:var(--muted);font-size:.9375rem}
@media(max-width:1000px){.cab{grid-template-columns:1fr auto}.cab-nav{display:none}}
@media(max-width:620px){.marca span{display:none}.suxest{position:fixed;top:var(--header-h);left:var(--pad);right:var(--pad);width:auto}}

/* ================= Menú a pantalla completa ================= */
.ov-top{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:52px}
:root[data-theme="dark"] .ov-top .marca img{filter:invert(1)}
/* Tema e linguas, como na web anterior: círculo partido e lingua activa nun círculo escuro */
.ov-axustes{display:flex;align-items:center;gap:6px}
.tema{width:30px;height:30px;padding:0;border:0;background:none;color:var(--ink);display:grid;place-items:center;cursor:pointer;border-radius:50%;margin-right:6px}
.tema svg{width:20px;height:20px;overflow:visible;transition:transform .6s cubic-bezier(.65,0,.35,1)}
.tema circle{fill:none;stroke:currentColor;stroke-width:1.65}
.tema path{fill:currentColor;stroke:none}
.tema[aria-pressed="true"] svg{transform:rotate(180deg)}
.tema:hover{opacity:.58}
.linguas{display:flex;gap:2px;margin-right:8px}
.linguas a{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;font-size:.75rem;font-weight:500;letter-spacing:.08em;color:var(--muted);transition:color .2s,background .2s}
.linguas a:hover{color:var(--ink)}
.linguas a[aria-current="true"]{background:#333;color:#eee;font-weight:600}
:root[data-theme="dark"] .linguas a[aria-current="true"]{background:#ededea;color:#191917}
@media(max-width:620px){.ov-top .marca{display:none}.ov-top{justify-content:flex-end}.linguas a{width:28px;height:28px;font-size:.6875rem}}
/* Bloque centrado, palabras aliñadas á esquerda e iconas en columna; ao pasar o rato a palabra engorda sen moverse */
#menuNav{display:grid;justify-content:center;margin-top:clamp(24px,5vh,72px)}
#menuNav a{display:flex;align-items:center;gap:.45em;height:1.6em;font-size:clamp(1.9rem,5vw,3rem);line-height:1;letter-spacing:-.035em;cursor:pointer}
#menuNav a svg{width:1.2em;height:1.2em;stroke-width:1.2;flex:none;color:var(--icon);transition:color .3s}
#menuNav a span{display:inline-grid;font-weight:300;transition:color .3s}
#menuNav a span::after{content:attr(data-t);font-weight:400;height:0;visibility:hidden;overflow:hidden;user-select:none;pointer-events:none}
#menuNav a:hover span,#menuNav a[aria-current="page"] span{font-weight:400}
#menuNav a:hover,#menuNav a[aria-current="page"],#menuNav a:hover svg,#menuNav a[aria-current="page"] svg{color:var(--cc)}
#menuNav .menu-colabora{margin-top:.25em;padding-top:.25em;border-top:1px solid var(--line)}

/* ================= Elementos comúns ================= */
.page{padding-top:clamp(40px,5vw,72px);padding-bottom:var(--s-page)}
.label{font-size:.8125rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--acc);margin-bottom:18px}
.label a{border-bottom:1px solid currentColor}
.label svg{width:16px;height:16px;vertical-align:-3px;margin-right:7px;color:var(--muted);transition:color .3s}
.card:hover .label svg,.home-hero:hover .label svg{color:var(--acc)}
.text-link{display:inline-block;font-size:.9375rem;font-weight:500;letter-spacing:.01em;color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:5px;transition:color .3s,border-color .3s}
.text-link:hover{color:var(--acc);border-bottom-color:currentColor}
.text-link.con-ico{display:inline-flex;align-items:center;gap:7px}
.text-link svg{width:16px;height:16px;color:var(--muted);transition:color .3s}
.text-link:hover svg{color:currentColor}
.aviso{font-size:.9rem;color:var(--muted);padding-top:18px;margin:0}
/* Botón: texto subliñado na cor da sección, cunha icona que reacciona á acción */
.boton{display:inline-flex;align-items:center;gap:.6em;margin-top:26px;padding:0 0 7px;border:0;border-bottom:1px solid currentColor;border-radius:0;background:none;color:var(--acc);font:500 1rem/1.2 "Montserrat",sans-serif;letter-spacing:.01em;cursor:pointer;transition:color .3s,border-color .3s,gap .35s cubic-bezier(.22,.61,.36,1)}
.boton::after{content:"";width:1.05em;height:1.05em;flex:none;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.boton:hover{color:var(--ink);border-bottom-color:var(--ink)}
.boton:hover::after{transform:translateX(5px)}
.boton:focus-visible{outline-offset:6px}
.boton.con-ico::after{display:none}
.boton svg{width:18px;height:18px;transition:transform .35s cubic-bezier(.22,.61,.36,1)}
.boton:hover .lucide-arrow-right{transform:translateX(5px)}
.boton:hover .lucide-external-link{transform:translate(2px,-2px)}
.boton:hover .lucide-download{transform:translateY(2px)}
.boton:hover .lucide-clipboard-pen,.boton:hover .lucide-mail,.boton:hover .lucide-search{transform:scale(1.08)}
/* Filtros (chips) */
.chips{display:flex;flex-wrap:wrap;gap:10px 30px;margin-bottom:32px}
.chip{display:inline-flex;align-items:center;gap:7px;border:0;background:none;padding:6px 0;color:var(--nav);font:500 1rem "Montserrat",sans-serif;cursor:pointer;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.chip:hover{color:var(--ink)}
.chip[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.chip svg{width:16px;height:16px;color:var(--muted);transition:color .25s}
.chip:hover svg,.chip[aria-pressed="true"] svg{color:currentColor}
.chip .n{font-size:.75rem;font-weight:400;color:var(--muted);vertical-align:.25em}
/* Pestanas */
.tab-lista{display:flex;flex-wrap:wrap;gap:6px 30px;border-bottom:1px solid var(--line);margin-bottom:26px}
.tab-lista [role=tab]{display:inline-flex;align-items:center;gap:7px;border:0;background:none;padding:10px 0;margin-bottom:-1px;font:400 1rem "Montserrat",sans-serif;color:var(--nav);cursor:pointer;border-bottom:2px solid transparent;transition:color .25s,border-color .25s}
.tab-lista [role=tab]:hover{color:var(--ink)}
.tab-lista [role=tab][aria-selected="true"]{color:var(--acc);border-bottom-color:var(--acc);font-weight:500}
.tab-lista [role=tab] svg{width:16px;height:16px;color:var(--muted);transition:color .25s}
.tab-lista [role=tab][aria-selected="true"] svg,.tab-lista [role=tab]:hover svg{color:currentColor}
.tab-panel{min-height:120px}
/* Migas de pan: as mesmas en todas as páxinas */
.migas{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 0;padding-top:clamp(20px,2.4vw,32px);font-size:.875rem;color:var(--muted)}
.migas a{color:var(--muted-2);border-bottom:1px solid var(--line);transition:color .2s,border-color .2s}
.migas a:hover{color:var(--ink);border-color:var(--ink)}
.migas .sep{color:var(--line);margin:0 10px}
.migas [aria-current]{color:var(--muted)}
.migas~.page{padding-top:clamp(24px,3vw,44px)}
/* Fundido ao filtrar (álbums e proxectos) */
.fade{transition:opacity var(--fade) ease}
.fade.out{opacity:0}
/* Contido só para escritorio ou só para móbil (no Markdown: <div class="so-escritorio">…) */
.so-mobil{display:none}

/* ================= Títulos ================= */
.page-head{max-width:980px;margin-bottom:var(--s-head)}
.page-head h1,.home-hero h1{font-weight:300;letter-spacing:-.025em;line-height:1.03;font-size:clamp(2.3rem,5vw,4.6rem);margin:0;text-wrap:balance}
/* Título de sección coa súa icona á esquerda, aliñada coa primeira liña */
.page-head h1.con-icona{display:flex;align-items:baseline;gap:.3em}
.page-head h1.con-icona svg{width:.95em;height:.95em;stroke-width:1;flex:none;align-self:flex-start;margin-top:.1em}
.lead{font-weight:300;font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.58;color:var(--ink-3);max-width:44rem;margin:20px 0 0}
.sub{font-size:.875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:14px 0 0}
/* Cor de cada sección e proxecto nos títulos: --accent (sección ou proxecto); --acc é a versión lexible en claro e escuro */
.page-head h1,.home-hero h1,.band-head h2,.prose h2,.prose h3,.prose h4,.prose h5,
.card h3,.row h3,.ev h3,.cal-mes,.cal-bar h2,.crono b,.acto-texto h1,.ficha-texto h1,.zona-cab h3,.ficha-card h4,
.co-razons h3,.co-outras h3,.co-pago h3,.co-cab h3,.convida h2,h3.grupo,.lectura h2,.lectura h3{color:var(--acc)}
.page-head h1.con-icona svg,.co-razons svg,.convida>div>svg{color:color-mix(in srgb,var(--acc) 62%,var(--bg))}

/* ================= Imaxes ================= */
.cover{background:var(--soft);overflow:hidden;aspect-ratio:4/3;border-radius:var(--media-radius)}
.cover img{width:100%;height:100%;object-fit:cover}
/* Imaxes enteiras (logotipos, ilustracións con fondo transparente): sen fondo, para integrarse en claro e en escuro */
.cover.contida{background:transparent}
.cover.contida img{object-fit:contain;object-position:center}
/* Logotipos con fondo branco: móstranse sobre unha superficie clara tamén en modo escuro */
.cover.clara,.cover.contida.clara{background:#fefefe}
.cover.clara img{padding:5%}
.cover.wide.clara{aspect-ratio:1}
.art-cols .cover:not(.contida){aspect-ratio:4/3}
.art-cols .cover{aspect-ratio:1;width:100%;max-width:520px;margin:-.5em auto 0}
.cover.wide{aspect-ratio:16/9;margin-bottom:clamp(32px,5vw,64px)}
.cover.wide.contida{aspect-ratio:auto;max-width:520px}
/* Encadre: --f punto focal (escritorio); --fm en pantallas verticais. Defínense en cada contido (foco / foco_mobil). */
.cover img,.ficha-imaxe img,.ficha-card-img img,.acto-imaxe img,.portada .capa img,.strip img{object-position:var(--f,50% 50%)}
@media(max-width:760px),(orientation:portrait){.cover img,.ficha-imaxe img,.ficha-card-img img,.acto-imaxe img,.portada .capa img,.strip img{object-position:var(--fm,var(--f,50% 50%))}}
/* Figuras e galerías (ábrense no visor) */
.fig{border:0;padding:0;background:none;cursor:zoom-in;display:block;overflow:hidden;border-radius:var(--media-radius);color:inherit;font:inherit;text-align:left}
.fig img{width:100%;height:auto;transition:opacity .25s}
.fig:hover img{opacity:.85}
.galeria{display:grid;gap:10px;margin:2.2em 0;max-width:none}
.galeria.n2{grid-template-columns:1fr 1fr}
.galeria.n3{grid-template-columns:repeat(3,1fr)}
.galeria.n2 img,.galeria.n3 img{aspect-ratio:4/3;height:100%;object-fit:cover}
.galeria.n1 .fig::after{content:attr(data-title);display:block;font-size:.875rem;color:var(--muted);margin-top:9px}
.strip{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.strip img{aspect-ratio:1;object-fit:cover;height:100%}
/* As imaxes aparecen suavemente ao cargar */
img.fi{opacity:0;transition:opacity .6s ease}
img.fi.on{opacity:1}

/* ================= Portada: imaxes a pantalla completa, distintas en cada visita ================= */
.portada{position:relative;height:calc(100svh - var(--header-h));min-height:420px;overflow:hidden;background:#111;color:#fff;cursor:pointer}
.portada:focus-visible{outline-offset:-4px}
.portada .capa{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease}
.portada .capa.on{opacity:1}
.portada .capa img{width:100%;height:100%;object-fit:cover;transform:scale(1);transition:transform 9s linear}
.portada .capa.on img{transform:scale(1.06)}
/* Debuxos, manuscritos e partituras: enteiros, sobre un fondo da mesma imaxe desenfocada */
.portada .capa.enteira::before{content:"";position:absolute;inset:-40px;background:var(--fondo) center/cover;filter:blur(36px) brightness(.55) saturate(.8)}
.portada .capa.enteira img{position:relative;object-fit:contain;padding:clamp(24px,4vw,56px) clamp(24px,4vw,56px) clamp(140px,18vh,200px)}
.portada::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(to top,rgba(0,0,0,.55),transparent);pointer-events:none}
.portada-pe{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(24px,5vh,56px);z-index:2;display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.portada-pe a{max-width:44rem;transition:opacity .4s}
.portada-pe .label{color:rgba(255,255,255,.8);margin-bottom:10px}
.portada-pe h2{font-weight:300;font-size:clamp(1.6rem,3.4vw,3rem);line-height:1.08;letter-spacing:-.02em;margin:0;text-wrap:balance}
.portada-ctrl{display:flex;align-items:center;gap:4px;font-size:.875rem;color:rgba(255,255,255,.85);flex:none;cursor:default}
.portada-ctrl [data-portada-n]{margin:0 8px;font-variant-numeric:tabular-nums}
.portada-ctrl .ico{color:#fff}
@media(hover:hover){.portada-ctrl .ico:hover{background:rgba(255,255,255,.14)}}
.portada-explorar{margin-right:18px;font-size:.9375rem;font-weight:500;color:#fff;border-bottom:1px solid rgba(255,255,255,.7);padding-bottom:3px;transition:opacity .25s}
.portada-explorar:hover{opacity:.7}
.portada-barra{position:absolute;left:0;bottom:0;height:2px;background:rgba(255,255,255,.75);width:0;z-index:2}
@media(max-width:620px){.portada-pe{flex-direction:column;align-items:flex-start}.portada-explorar{margin-right:auto}}

/* ================= Inicio e bandas ================= */
.home-hero{display:grid;grid-template-columns:1fr minmax(0,.8fr);gap:clamp(32px,7vw,110px);align-items:center;padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(48px,5.5vw,80px)}
.home-hero .cover{aspect-ratio:1}
.home-hero .text-link{margin-top:30px}
.band{padding-top:var(--s-band);padding-bottom:var(--s-band);border-top:1px solid var(--line)}
/* Nas bandas que tamén son .shell, o fío vai á largura do contido (non sobresae polos lados) */
.band.shell,.convida.shell{position:relative;border-top:0}
.band.shell::before,.convida.shell::before{content:"";position:absolute;top:0;left:var(--pad);right:var(--pad);border-top:1px solid var(--line)}
.band-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:24px}
.band-head h2{font-weight:300;font-size:clamp(1.5rem,2.4vw,2.3rem);letter-spacing:-.02em;margin:0}

/* ================= Tarxetas e filas ================= */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,3.4vw,52px) clamp(22px,3vw,42px)}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Fil fi sobre cada tarxeta: separa a fila de dentro da anterior (as imaxes claras non se confunden co texto de enriba) */
.cards:not(.catro)>.card,.fichas>.ficha-card{border-top:1px solid var(--line);padding-top:22px}
.card .cover{margin-bottom:18px}
.card .cover img{transition:transform var(--zoom)}
.card:hover .cover:not(.contida) img{transform:scale(1.035)}
.card .label{color:color-mix(in srgb,var(--acc) 80%,var(--muted));margin-bottom:8px;font-size:.8125rem}
.card[data-tags] .label{color:var(--acc)}
.card h3{font-weight:300;font-size:clamp(1.3rem,1.7vw,1.6rem);line-height:1.18;letter-spacing:-.02em;margin:0 0 8px}
.card p{font-size:1rem;line-height:1.55;color:var(--muted-3);margin:0}
.rows{border-top:1px solid var(--ink)}
.row{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:18px 0;border-bottom:1px solid var(--line);transition:opacity .2s}
.row h3{font-weight:300;font-size:clamp(1.15rem,1.9vw,1.7rem);letter-spacing:-.02em;line-height:1.15;margin:0}
.row .meta{font-size:.8125rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-align:right;flex:none}
.ev:hover h3,.card:hover h3,.row:hover h3{opacity:.75}

/* ================= Texto de artigo ================= */
.prose{max-width:720px}
.asoc-cols{display:grid;grid-template-columns:minmax(0,720px) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}
.asoc-logo{margin-top:-.5em}
.asoc-logo img{display:block;width:100%;max-width:520px;margin-inline:auto}
:root[data-theme="dark"] .asoc-logo img{filter:invert(1)}
@media(max-width:900px){.asoc-cols{grid-template-columns:1fr}.asoc-logo img{max-width:320px}.art-cols .cover{max-width:360px;margin:0 auto}}
.prose p,.prose li{font-size:1.125rem;line-height:var(--lh-text);color:var(--ink-3)}
.prose p{margin:0 0 1em}
.prose li+li{margin-top:.35em}
.prose h2{font-weight:300;font-size:clamp(1.6rem,2.5vw,2.4rem);letter-spacing:-.025em;line-height:1.1;margin:1.5em 0 .5em}
.prose h3{font-weight:500;font-size:1.2rem;margin:1.6em 0 .4em}
.prose :is(h2,h3):first-child{margin-top:0}
.prose ul,.prose ol{padding-left:1.1em;margin:0 0 1em}
.prose a{border-bottom:1px solid var(--acc)}
.prose blockquote{font-weight:300;font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.4;margin:1.5em 0;padding-left:22px;border-left:1px solid var(--acc)}
.related{margin-top:48px;max-width:720px}

/* ================= Proxecto monográfico (dossier) ================= */
.dossier{padding-bottom:0}
.dossier-hero{display:grid;grid-template-columns:1fr minmax(0,.7fr);gap:clamp(32px,7vw,110px);align-items:center;margin-bottom:clamp(32px,4.5vw,56px)}
.dossier-hero .page-head{margin-bottom:0}
.dossier-hero .cover{aspect-ratio:1}
.toc{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:28px}
.toc a{display:inline-flex;align-items:center;gap:6px;font-size:.875rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--acc);padding-bottom:3px}
.toc svg{width:16px;height:16px;color:var(--muted)}
.toc a:hover svg{color:var(--acc)}
/* Entre o texto e a primeira banda, só un pequeno respiro: o resto do ritmo pono as bandas */
.dossier .shell:not(.band)+.band{margin-top:clamp(20px,2.6vw,36px)}
.crono{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.crono li{display:grid;grid-template-columns:110px 1fr;gap:20px;padding:13px 0;border-bottom:1px solid var(--line)}
.crono b{font-weight:300;font-size:1.5rem;letter-spacing:-.02em;line-height:1.1}
.crono span{font-size:1.0625rem;line-height:1.55;color:var(--ink-3);max-width:44rem}

/* ================= Álbum ================= */
/* Grella xustificada (estilo Google Imaxes): filas da mesma altura, cada imaxe coa súa proporción real */
.album-grid{display:flex;flex-wrap:wrap;gap:10px;--fila:260px}
.album-grid::after{content:"";flex-grow:999}
.album-grid .fig{position:relative;flex-grow:calc(var(--r)*100);flex-basis:calc(var(--r)*var(--fila));aspect-ratio:var(--r);background:var(--soft)}
.album-grid .fig img{width:100%;height:100%;object-fit:cover}
.album-grid .ano{position:absolute;left:8px;bottom:8px;font-size:.75rem;letter-spacing:.06em;background:var(--bg);padding:3px 7px;border-radius:var(--media-radius-small)}

/* ================= Páxinas dun proxecto (p. ex. os 50 lugares da ruta) ================= */
.cards.catro{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 22px;margin-bottom:44px}
.cards.catro h3{font-size:1.15rem}
.cards.catro p{font-size:.9rem}
h3.grupo{font-weight:600;font-size:1.0625rem;margin:8px 0 18px}
.fig.portada{margin:0 0 clamp(32px,5vw,56px);max-width:980px}
.fig.portada img{max-height:72vh;width:auto;max-width:100%}
.seguinte{display:flex;justify-content:space-between;gap:24px;margin-top:48px;padding-top:22px;border-top:1px solid var(--line);max-width:980px}
.seguinte a{display:flex;flex-direction:column;gap:6px;font-weight:600;max-width:45%}
.seguinte a:last-child{text-align:right;margin-left:auto}
.seguinte .label{margin:0;font-size:.8125rem;color:var(--muted)}
.seguinte a:hover{opacity:.6}
/* Ficha dun lugar (deseño da web anterior): imaxe á esquerda, datos á dereita */
.ficha-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,72px);align-items:center}
.ficha-imaxe{position:relative;display:block;border:0;padding:0;background:var(--soft);border-radius:var(--media-radius);overflow:hidden;cursor:zoom-in;aspect-ratio:1;max-height:calc(100svh - var(--header-h) - 120px);width:100%}
.ficha-imaxe img{width:100%;height:100%;object-fit:cover;transition:transform var(--zoom),opacity .3s}
.ficha-imaxe:hover img{transform:scale(1.02);opacity:.96}
.ficha-galeria{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);color:var(--ink);font-size:.8125rem;font-weight:500;letter-spacing:.04em;padding:8px 12px;border-radius:var(--media-radius-small)}
.ficha-galeria svg{width:16px;height:16px}
.ficha-texto .label{margin-bottom:14px}
.ficha-texto h1{display:flex;align-items:baseline;gap:.45em;font-weight:300;font-size:clamp(2rem,3.4vw,3.1rem);line-height:1.06;letter-spacing:-.025em;margin:0 0 12px}
.ficha-num{font-weight:200;flex:none}
.ficha-lugar{font-size:1rem;color:var(--muted-2);margin:0 0 24px}
.ficha-desc{font-size:1.0625rem;line-height:var(--lh-text);color:var(--ink-3);margin:0 0 28px;max-width:38rem}
.ficha-datos{margin:0;max-width:38rem;display:grid;grid-template-columns:1fr 1fr;gap:20px 32px}
.ficha-datos dt{font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ficha-datos dd{margin:0;font-size:.9375rem;line-height:1.55;color:var(--ink-3)}
.fichap .seguinte{max-width:none}
/* Percorrido: zonas numeradas e tarxetas con número sobre a imaxe */
.ficha-total{font-weight:200;font-size:2.4rem;color:var(--acc);line-height:1}
.zona{margin:0 0 clamp(40px,5vw,60px)}
.zona-cab{display:grid;grid-template-columns:60px 1fr auto;gap:16px;align-items:end;padding-bottom:14px;margin-bottom:26px;border-bottom:1px solid var(--ink)}
.zona-num{font-weight:200;font-size:1.8rem;color:var(--muted);line-height:1}
.zona-cab .label{margin:0 0 4px}
.zona-cab h3{font-weight:300;font-size:clamp(1.5rem,2.4vw,2.1rem);letter-spacing:-.02em;margin:0}
.zona-n{font-size:.875rem;color:var(--muted)}
.fichas{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 24px}
.ficha-card-img{position:relative;display:block;width:100%;border:0;padding:0;background:var(--soft);border-radius:var(--media-radius);overflow:hidden;aspect-ratio:4/3;cursor:zoom-in;margin-bottom:14px}
.ficha-card-img img{width:100%;height:100%;object-fit:cover;transition:transform var(--zoom),opacity .3s}
.ficha-card-img:hover img{transform:scale(1.035);opacity:.94}
.ficha-card-img span{position:absolute;left:10px;bottom:10px;background:color-mix(in srgb,var(--bg) 90%,transparent);color:var(--ink);font-size:.75rem;font-weight:500;letter-spacing:.06em;padding:4px 8px;border-radius:var(--media-radius-small)}
.ficha-card h4{font-weight:400;font-size:1.0625rem;line-height:1.25;margin:0 0 6px}
.ficha-card p{font-size:.875rem;color:var(--muted-2);margin:0 0 6px}
.ficha-card small{display:block;font-size:.8125rem;line-height:1.5;color:var(--muted)}
.ficha-card a:hover h4{opacity:.7}
@media(max-width:1000px){.fichas{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.ficha-grid{grid-template-columns:1fr}.ficha-imaxe{aspect-ratio:4/3}.ficha-datos{grid-template-columns:1fr}.fichas{grid-template-columns:1fr 1fr;gap:26px 14px}.zona-cab{grid-template-columns:40px 1fr auto}}

/* ================= Colabora ================= */
.co-intro{font-weight:300;font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.58;color:var(--ink-3);max-width:44rem;margin:0 0 var(--s-band)}
.co-lead,.band-intro{max-width:44rem;color:var(--muted-2);font-size:1.0625rem;line-height:var(--lh-text);margin:-8px 0 32px}
.co-razons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
.co-razons>div{border-top:1px solid var(--ink);padding-top:16px}
.co-razons svg{width:26px;height:26px;margin-bottom:10px}
.co-razons h3{font-weight:500;font-size:1.125rem;margin:0 0 8px}
.co-razons p{margin:0;font-size:.9375rem;line-height:1.6;color:var(--muted-2)}
.co-modos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.co-modo{display:flex;flex-direction:column;border-top:1px solid var(--ink);padding-top:18px}
.co-cab h3{font-weight:300;font-size:1.6rem;letter-spacing:-.02em;margin:0 0 6px}
.co-cant{font-weight:300;font-size:1.35rem;margin-bottom:14px}
.co-cant small{font-size:.8125rem;color:var(--muted)}
.co-modo>p{font-size:.9375rem;line-height:1.6;color:var(--ink-3);margin:0 0 12px}
.co-modo ul{margin:0 0 14px;padding-left:1.1em;font-size:.9375rem;line-height:1.6;color:var(--muted-2)}
.co-modo details{font-size:.875rem;color:var(--muted-2);margin-bottom:18px}
.co-modo summary{cursor:pointer;font-weight:500;color:var(--ink);padding:6px 0}
.co-legal{font-size:.8125rem;color:var(--muted)}
.co-modo .boton{margin-top:auto;align-self:flex-start}
.co-outras{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.co-outras h3,.co-pago h3{font-weight:400;font-size:1.25rem;margin:0 0 10px}
.co-outras p,.co-pago p,.co-pago li{font-size:.9375rem;line-height:1.65;color:var(--ink-3)}
.co-pago{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.co-pago ol{padding-left:1.2em;margin:0 0 14px}
.co-codigo{display:flex;align-items:baseline;gap:14px}
.co-codigo span{font-size:.8125rem;color:var(--muted)}
.co-codigo b{font-weight:300;font-size:1.8rem;letter-spacing:.08em}
.co-iban{margin:0 0 12px}
.co-iban dt{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:10px}
.co-iban dd{margin:2px 0 0;font-size:1rem;letter-spacing:.04em}
.co-nota{font-size:.8125rem;color:var(--muted);line-height:1.55;margin:12px 0 0}
.co-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;max-width:860px}
.co-form label{display:flex;flex-direction:column;gap:6px;font-size:.875rem;color:var(--muted-2)}
.co-form .ancho{grid-column:1/-1}
.co-form input:not([type=checkbox]),.co-form select,.co-form textarea{font:400 1rem "Montserrat",sans-serif;color:var(--ink);background:var(--bg);border:0;border-bottom:1px solid var(--line);padding:10px 0;border-radius:0;outline:0}
.co-form input:focus,.co-form select:focus,.co-form textarea:focus{border-color:var(--ink)}
.co-form textarea{border:1px solid var(--line);padding:10px 12px;border-radius:var(--media-radius-small)}
.co-form .check{flex-direction:row;align-items:center;gap:10px}
/* Invitación a colaborar (ao pé dos proxectos) */
.convida{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;margin-top:clamp(24px,3vw,40px);margin-bottom:clamp(40px,5vw,64px);padding-top:28px;border-top:1px solid var(--line)}
.convida>div{display:flex;align-items:center;gap:20px}
.convida>div>svg{width:34px;height:34px;flex:none}
.convida h2{font-weight:300;font-size:clamp(1.3rem,2vw,1.75rem);letter-spacing:-.02em;margin:0 0 4px}
.convida p{margin:0;color:var(--muted-2);font-size:.9375rem;max-width:40rem}
.convida .boton{margin:0}
@media(max-width:1000px){.co-razons,.co-modos{grid-template-columns:1fr 1fr}.co-pago{grid-template-columns:1fr}}
@media(max-width:620px){.co-razons,.co-modos,.co-outras,.co-form{grid-template-columns:1fr}}

/* ================= Biblioteca ================= */
.filtro{width:100%;max-width:520px;border:0;border-bottom:1px solid var(--ink);background:none;color:var(--ink);font:300 1.2rem "Montserrat",sans-serif;padding:10px 0;margin-bottom:44px;outline:0;border-radius:0}
.busca-form .filtro{margin-bottom:26px}
.bib{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,90px);align-items:start}
.autor{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:clamp(32px,6vw,90px);align-items:start}
.autor .retrato{width:100%;filter:grayscale(1);border-radius:var(--media-radius)}
.autor .prose{margin:28px 0}
.autor .band{border:0;padding-bottom:0}
.ficha{display:flex;flex-wrap:wrap;gap:14px 44px;margin:0 0 44px;padding:18px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.ficha dt{font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ficha dd{margin:4px 0 0;font-size:1.0625rem}
.descargas{display:flex;flex-wrap:wrap;gap:16px 32px;margin:0 0 44px}
.pendente{font-weight:300;font-size:1.2rem;color:var(--muted)}
.lectura{max-width:36rem;margin-inline:auto;font-weight:300;font-size:1.125rem;line-height:1.75}
.lectura h2,.lectura h3{font-weight:400;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;margin:3.4em 0 1.6em}
.lectura p{margin:0 0 1.2em}

/* ================= Axenda ================= */
.cal-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.cal-bar h2{font-weight:300;font-size:clamp(1.6rem,2.6vw,2.4rem);letter-spacing:-.02em;margin:0;min-width:12ch;text-align:center;text-transform:capitalize}
.cal-bar>button{display:grid;place-items:center;border:0;background:none;color:var(--ink);width:40px;height:40px;border-radius:50%;cursor:pointer;font:300 1.6rem/1 "Montserrat",sans-serif;transition:background .2s}
.cal-bar>button svg{width:22px;height:22px;stroke-width:1.6}
.cal-bar>button:hover{background:var(--soft)}
.cal-bar>button[data-m="0"]{width:auto;height:auto;border-radius:0;font-size:.9375rem;font-weight:500;padding:4px 0;margin-left:10px;border-bottom:1px solid var(--ink)}
.cal-bar>button[data-m="0"]:hover{background:none;opacity:.6}
.cal-vista{margin-left:auto;display:flex;gap:22px}
.cal-tipos{margin-bottom:26px}
.cal-periodo{margin:34px 0 26px}
.ano-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:34px 40px;border-top:1px solid var(--ink);padding-top:28px;margin-bottom:var(--s-band)}
.ano-mes h3{font-weight:300;font-size:1.25rem;letter-spacing:-.01em;margin:0 0 10px;text-transform:capitalize}
.ano-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.ano-g b{font-size:.6875rem;font-weight:500;letter-spacing:.08em;color:var(--muted);padding:3px 0;text-transform:uppercase}
.ano-g .ad{display:grid;place-items:center;aspect-ratio:1;border:0;background:none;padding:0;border-radius:3px;font:400 .8125rem "Montserrat",sans-serif;color:var(--muted)}
.ano-g .ad.has{background:var(--num-bg);color:var(--num-fg);font-weight:700;cursor:pointer;transition:transform .15s}
.ano-g .ad.has:hover,.ano-g .ad.has:focus-visible{transform:scale(1.18);outline:0}
.ano-g .ad.has.past{background:none;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted)}
/* hoxe: mesmo requadro que no calendario mensual */
.ano-g .ad.today,.ano-g .ad.today.has.past{background:var(--accent);box-shadow:none;color:#fff;font-weight:700}
:root[data-theme="dark"] .ano-g .ad.today,:root[data-theme="dark"] .ano-g .ad.today.has.past{background:var(--acc);color:#191917}
.ano-pop{position:fixed;z-index:60;width:min(300px,calc(100vw - 16px));background:var(--bg);color:var(--ink);border:1px solid var(--line);border-top:2px solid var(--ink);box-shadow:0 10px 30px rgba(0,0,0,.18);padding:14px 16px 6px}
.ano-pop[hidden]{display:none}
.ano-pop .w{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.ano-pop a{display:block;padding:9px 0;border-top:1px solid var(--line);color:var(--ink)}
.ano-pop a:first-of-type{border-top:0}
.ano-pop a .k{display:block;font-size:.6875rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--pc,var(--acc))}
.ano-pop a b{display:block;font-weight:500;font-size:.9375rem;line-height:1.3}
.ano-pop a small{display:block;color:var(--muted);font-size:.8125rem;margin-top:2px}
.ano-pop a:hover b{text-decoration:underline}
.cal-corpo.out{opacity:0}
/* Calendario mensual: números grandes (á maneira do Carnegie Hall); días con actos nun requadro gris carbón, hoxe na cor da sección */
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--line);margin-bottom:var(--s-band)}
.cal-grid .wd{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:10px 12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.cal-grid .day{position:relative;display:flex;flex-direction:column;min-height:168px;padding:12px 14px 14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;isolation:isolate}
.cal-grid .day.out{background:var(--soft)}
.cal-grid .day .n{position:relative;display:block;align-self:flex-start;margin-bottom:auto;font-weight:800;font-size:clamp(1.6rem,2.3vw,2.3rem);line-height:1;letter-spacing:-.02em;color:var(--muted);transition:color .4s}
.cal-grid .day.has .n,.cal-grid .day.today .n{background:var(--num-bg);color:var(--num-fg);padding:.12em .3em .1em;border-radius:3px}
.cal-grid .day.today .n{background:var(--accent);color:#fff}
:root[data-theme="dark"] .cal-grid .day.today .n{background:var(--acc);color:#191917}
.cal-grid .day a{position:relative;display:block;margin-top:14px;color:var(--ink);font-size:.9375rem;font-weight:500;line-height:1.3;transition:color .4s}
.cal-grid .day a .k{display:block;font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;margin-bottom:3px;transition:color .4s}
.cal-grid .day a time{display:block;font-size:.8125rem;font-weight:400;color:var(--muted);margin-top:3px;transition:color .4s}
/* Coma no Met: a imaxe do acto (--img) está de fondo moi tenue, coma unha marca de auga, e aparece enteira ao pasar polo día */
.cal-grid .day.has::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.25)),var(--img,var(--bg)) var(--f,center)/var(--sz,cover) no-repeat;opacity:0;transform:scale(1.06);transition:opacity .5s ease,transform var(--zoom)}
.cal-grid .day.has[style*="--img"]::before{opacity:.1}
.cal-grid .day.has:hover::before{opacity:1;transform:scale(1)}
.cal-grid .day.has:hover a,.cal-grid .day.has:hover a .k,.cal-grid .day.has:hover a time{color:#fff}
.cal-grid .day.has:hover .n{opacity:1;color:var(--num-fg)}
/* Dia passat amb acte: com un dia qualsevol, amb text i miniatura grisos i suaus */
.cal-grid .day.past .n{opacity:.45}
.cal-grid .day.past.has .n{background:none;color:var(--muted);padding:0}
.cal-grid .day.past a,.cal-grid .day.past a .k,.cal-grid .day.past a time{color:var(--muted)}
.cal-grid .day.past a{opacity:.7}
.cal-grid .day.past.has::before{background:linear-gradient(color-mix(in srgb,var(--bg) 62%,transparent),color-mix(in srgb,var(--bg) 62%,transparent)),var(--img,var(--bg)) var(--f,center)/var(--sz,cover) no-repeat;filter:grayscale(1)}
.cal-grid .day.past.has[style*="--img"]::before{opacity:.35}
.cal-grid .day.past.has:hover::before{opacity:.6}
.cal-grid .day.past.has:hover a,.cal-grid .day.past.has:hover a .k,.cal-grid .day.past.has:hover a time{color:var(--ink-3)}
.cal-grid .day.past.has:hover .n{color:var(--muted)}
@media(max-width:1100px){.cal-grid .day{min-height:150px;padding:10px}.cal-grid .day a{font-size:.875rem}}
/* Lista (coma no Carnegie Hall) */
.cal-mes{font-weight:300;font-size:1.6rem;letter-spacing:-.02em;margin:44px 0 0;padding-bottom:12px;border-bottom:1px solid var(--ink);text-transform:capitalize}
.cal-mes:first-child{margin-top:18px}
.cal-list{border-top:1px solid var(--ink)}
.cal-list:has(>.cal-mes:first-child){border-top:0}
.cal-mes+.ev,.cal-list>.cal-mes{border-top:0}
.ev{position:relative;display:grid;grid-template-columns:96px 1fr auto 0;gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);transition:grid-template-columns .5s cubic-bezier(.22,.61,.36,1)}
.ev.con-imaxe:hover{grid-template-columns:96px 1fr auto 150px}
/* Acte obert: fons molt suau amb el color de la secció en passar-hi el ratolí */
.ev{padding-inline:16px;margin-inline:-16px;background:transparent;transition:grid-template-columns .5s cubic-bezier(.22,.61,.36,1),background-color .5s ease}
.ev:not(.past):hover{background:color-mix(in srgb,var(--accent) 3.5%,transparent)}
.ev .d{font-weight:300;font-size:2.6rem;line-height:.9;letter-spacing:-.03em}
.ev .d .num{display:inline-block;background:var(--num-bg);color:var(--num-fg);font-weight:800;font-size:2rem;line-height:1;letter-spacing:-.02em;padding:.14em .3em .12em;border-radius:3px}
.ev .d small{display:block;font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:10px}
.ev h3{font-weight:300;font-size:clamp(1.25rem,1.9vw,1.75rem);letter-spacing:-.02em;line-height:1.15;margin:0;transition:color .3s}
.ev p{margin:6px 0 0;font-size:.9375rem;color:var(--muted-2)}
.ev .w{font-size:.8125rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.ev .k{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;text-align:right}
/* O tipo de acto (pequeno) leva a cor do seu proxecto (--pc); o título, a da sección */
.ev .k,.cal-grid .day a .k{color:var(--pc,var(--acc))}
:root[data-theme="dark"] .ev .k,:root[data-theme="dark"] .cal-grid .day a .k{color:color-mix(in srgb,var(--pc,var(--accent)) 58%,#efefea)}
.cal-grid .day.has:hover a .k{color:#fff}
/* Actes passats: es llegeixen, però difuminats i en gris */
.ev.past{opacity:.5;transition:grid-template-columns .5s cubic-bezier(.22,.61,.36,1),opacity .3s}
.ev.past:hover{opacity:.75}
.ev.past .d .num{background:none;color:var(--muted);font-weight:300;padding:0}
.ev.past h3,.ev.past .k{color:var(--muted)}
.ev.past .ev-mini img{filter:grayscale(1) opacity(.55)}
.ev-ex{display:block;margin-top:6px;color:var(--muted);letter-spacing:.04em;text-transform:none;font-size:.75rem}
.ev-mini{overflow:hidden;border-radius:var(--media-radius);height:96px;opacity:0;transition:opacity .4s}
.ev:hover .ev-mini{opacity:1}
.ev-mini img{width:100%;height:100%;object-fit:cover;object-position:var(--f,50% 50%);transform:scale(1.08);transition:transform var(--zoom)}
.ev:hover .ev-mini img{transform:scale(1)}
.ev-mini.contida,.acto-imaxe.contida{background:transparent}
.ev-mini.contida img{object-fit:contain;transform:none}
.cal-empty{padding:40px 0;color:var(--muted);font-weight:300}
/* Páxina dun acto */
.acto-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,72px);align-items:start}
.acto-imaxe{border-radius:var(--media-radius);overflow:hidden;aspect-ratio:4/5;background:var(--soft)}
.acto-imaxe img{width:100%;height:100%;object-fit:cover}
.acto-imaxe.contida img{object-fit:contain;object-position:center}
.acto-texto h1{font-weight:300;font-size:clamp(2rem,3.6vw,3.2rem);line-height:1.06;letter-spacing:-.025em;margin:0 0 28px}
.acto-datos{margin:0 0 28px;display:grid;gap:16px}
.acto-datos>div{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}
.acto-datos dt{color:var(--icon);padding-top:2px}
.acto-datos dt svg{width:20px;height:20px;color:var(--muted)}
.acto-datos dd{margin:0;font-size:1rem;line-height:1.55;color:var(--ink-3)}
.acto-datos dd b{font-weight:600;color:var(--ink)}
.acto-datos a{border-bottom:1px solid var(--line);font-size:.9375rem}
.acto-botons{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin:0 0 32px}
.acto-botons .boton{margin:0}
.acto .band{margin-top:clamp(40px,5vw,64px)}
/* Acto xa pasado: imaxe en gris, text atenuat i reserva anulada */
.acto.pasado .acto-imaxe img{filter:grayscale(1) opacity(.5)}
.acto.pasado .acto-texto h1,.acto.pasado .acto-datos dd,.acto.pasado .acto-datos dd b,.acto.pasado .prose,.acto.pasado .acto-datos a,.acto.pasado .text-link{color:var(--muted-2,var(--muted));opacity:.7}
.acto.pasado .label{opacity:.5}
.acto.pasado .boton[aria-disabled]{pointer-events:none;cursor:default;background:var(--soft);color:var(--muted);border-color:var(--line)}
.acto.pasado .boton[aria-disabled] svg{display:none}
@media(max-width:760px){.cal-vista{display:none}.ev{grid-template-columns:62px 1fr;gap:14px}.ev.con-imaxe:hover{grid-template-columns:62px 1fr}.ev .d{font-size:1.9rem}.ev .d .num{font-size:1.5rem}.ev .k{grid-column:2;text-align:left}.ev-mini{display:none}.acto-grid{grid-template-columns:1fr}.acto-imaxe{aspect-ratio:4/3}}

/* ================= Compendio ================= */
.cx-barra{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;margin-bottom:28px}
.cx-barra .chips{margin:0}
.cx-busca{max-width:300px;margin:0;font-size:1rem}
.cx-grade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 32px}
.cx{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.cx img,.ent-ini{width:52px;height:52px;border-radius:var(--media-radius);object-fit:cover;object-position:center top;background:var(--soft)}
.ent-ini{display:grid;place-items:center;font-weight:300;font-size:1.4rem;color:var(--acc)}
.cx b{display:block;font-weight:500;font-size:1rem;line-height:1.25;color:var(--acc);transition:opacity .25s}
.cx small{display:block;font-size:.8125rem;line-height:1.35;color:var(--muted);margin-top:3px}
.cx:hover b{opacity:.7}
.cx img{transition:transform var(--zoom)}
.cx:hover img{transform:scale(1.06)}
/* Ficha dunha entrada: cabeceira compacta (retrato + identidade + datos) e pestanas */
.ent-cab{display:grid;grid-template-columns:minmax(0,280px) 1fr;gap:clamp(28px,4vw,56px);align-items:start;margin-bottom:clamp(28px,4vw,44px)}
.ent-cab.sen-retrato{grid-template-columns:1fr}
.ent-retrato{margin:0}
.ent-retrato .fig{border-radius:var(--media-radius);overflow:hidden;background:var(--soft);aspect-ratio:4/5;width:100%}
.ent-retrato img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform var(--zoom)}
.ent-retrato .fig:hover img{transform:scale(1.03)}
.ent-retrato figcaption{font-size:.75rem;color:var(--muted);margin-top:8px;line-height:1.4}
.ent-retrato.mono img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--media-radius)}
/* Logotipos, partituras e mapas: enteiros sobre branco */
.ent-retrato.contida .fig{background:#fff;border:1px solid var(--line)}
.ent-retrato.contida img{object-fit:contain;padding:7%}
.ent-retrato.ajustada .fig{aspect-ratio:auto}
.ent-retrato.ajustada img{display:block;height:auto;padding:0}
.ent-id .label{margin-bottom:10px}
.ent-id h1{font-weight:300;font-size:clamp(2.1rem,3.8vw,3.4rem);line-height:1.04;letter-spacing:-.025em;margin:0;color:var(--acc)}
.ent-sub{font-size:1.0625rem;color:var(--muted-2);margin:10px 0 0}
.ent-datos{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px 28px;margin:22px 0 0;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ent-datos dt{font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.ent-datos dd{margin:0;font-size:.9375rem;line-height:1.45;color:var(--ink-3)}
.ent-datos a{border-bottom:1px solid var(--line)}
.ent-lead{font-style:italic;font-weight:300;font-size:clamp(1.15rem,1.6vw,1.35rem);line-height:1.6;letter-spacing:-.005em;color:var(--ink-3);margin:22px 0 0;max-width:42rem}
.ent-bio{columns:2 340px;column-gap:44px}
.ent-bio p{margin:0 0 1em;font-size:1rem;line-height:var(--lh-text);color:var(--ink-3);break-inside:avoid-column}
.ent-temas{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px 36px}
.ent-temas>div{border-top:1px solid var(--line);padding-top:12px}
.ent-temas h3{font-weight:500;font-size:1.0625rem;margin:0 0 6px;color:var(--acc)}
.ent-temas p{margin:0;font-size:.9375rem;line-height:1.6;color:var(--ink-3)}
.ent-fitos{list-style:none;margin:0;padding:0;columns:2 320px;column-gap:44px}
.ent-fitos li{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);break-inside:avoid}
.ent-fitos b{font-weight:300;font-size:1.15rem;color:var(--acc)}
.ent-fitos span{font-size:.9375rem;line-height:1.5;color:var(--ink-3)}
.ent-fitos small{color:var(--muted)}
/* Interseccións: todas as tarxetas da mesma fila coa mesma altura e o fío inferior aliñado */
.ent-rels{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:2px 28px}
.ent-rels li{display:flex}
.ent-rels a{flex:1;display:grid;grid-template-columns:44px 1fr;gap:12px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line)}
.ent-rels a span{padding-top:2px}
.ent-rels img,.ent-rels .ent-ini{width:44px;height:44px;border-radius:var(--media-radius-small);object-fit:cover;object-position:center top;font-size:1.1rem}
.ent-rels b{display:block;font-weight:500;font-size:.9375rem;color:var(--acc)}
.ent-rels small{display:block;font-size:.75rem;color:var(--muted);margin-top:2px}
.ent-rels a:hover b{opacity:.7}
.ent-imaxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:22px}
.ent-imaxes figure{margin:0}
.ent-imaxes .fig{aspect-ratio:4/3;background:var(--soft);width:100%}
.ent-imaxes .fig img{width:100%;height:100%;object-fit:cover;object-position:center top}
.ent-imaxes figcaption{font-size:.8125rem;line-height:1.45;color:var(--ink-3);margin-top:8px}
.ent-imaxes figcaption small{display:block;color:var(--muted);font-size:.75rem;margin-top:3px}
.ent-imaxes figcaption a{border-bottom:1px solid var(--line)}
.ent-doc{display:grid;place-items:center;align-content:center;gap:8px;aspect-ratio:4/3;background:var(--soft);border-radius:var(--media-radius);color:var(--muted-2);font-size:.875rem}
.ent-doc svg{width:28px;height:28px;color:var(--acc)}
.ent-fontes{list-style:none;margin:0;padding:0;columns:2 320px;column-gap:44px}
.ent-fontes li{padding:9px 0;border-bottom:1px solid var(--line);break-inside:avoid;font-size:.9375rem}
.ent-fontes a{color:var(--ink);border-bottom:1px solid var(--line)}
.ent-fontes small{display:block;color:var(--muted);font-size:.75rem;margin-top:3px}
@media(max-width:1000px){.cx-grade{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.cx-grade{grid-template-columns:1fr}.ent-cab{grid-template-columns:1fr}.ent-retrato{max-width:240px}.cx-busca{max-width:none;width:100%}}

/* ================= Páxina 404 ================= */
.erro404{padding-top:clamp(56px,8vw,120px);padding-bottom:clamp(80px,10vw,160px)}
.e404-label{font-weight:600;font-size:clamp(1.1rem,1.6vw,1.4rem);letter-spacing:.04em;text-transform:uppercase;margin:0 0 clamp(48px,7vw,96px)}
.e404-num{font-weight:800;font-size:clamp(5rem,11vw,9rem);line-height:.9;letter-spacing:-.03em;margin:0 0 22px;color:var(--ink)}
.e404-txt{font-size:clamp(1.125rem,1.6vw,1.375rem);line-height:1.6;max-width:52rem;margin:0;color:var(--ink-3)}
.e404-txt a{color:var(--acc);border-bottom:1px solid currentColor;transition:opacity .25s}
.e404-txt a:hover{opacity:.7}

/* ================= Transicións entre páxinas ================= */
/* Fundido suave (navegadores compatibles); a cabeceira queda quieta */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.35s}

/* ================= Adaptación a pantallas ================= */
@media(max-width:1000px){
  .cards{grid-template-columns:1fr 1fr}
  .home-hero,.dossier-hero,.bib,.autor{grid-template-columns:1fr}
  .home-hero .home-hero-img,.dossier-hero .cover{max-width:440px}
  .autor .retrato{max-width:220px}
  .strip{grid-template-columns:repeat(3,1fr)}
  .cards.catro{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .so-escritorio{display:none}
  .so-mobil{display:block}
  .cal-grid{display:none}
}
@media(max-width:620px){
  .cards,.cards.two{grid-template-columns:1fr}
  .cards.catro{grid-template-columns:1fr 1fr;gap:20px 12px}
  .cards.catro h3{font-size:1rem}
  .row{flex-direction:column;gap:6px}
  .row .meta{text-align:left}
  .galeria.n3{grid-template-columns:1fr 1fr}
  .crono li{grid-template-columns:64px 1fr;gap:12px}
  .crono b{font-size:1.1rem}
  .album-grid{--fila:150px;gap:6px}
  .band-head{flex-direction:column;gap:12px}
  .lectura{font-size:1.08rem}
}
@media(prefers-reduced-motion:reduce){
  .card .cover img,.fig img,.row,.fade{transition:none}
  .portada .capa,.portada .capa img{transition:none}
  .portada .capa.on img{transform:none}
  img.fi{opacity:1;transition:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
}
