/* Asomudá · estilos de asomuda.es
   Tipografías servidas desde la propia web (licencia SIL OFL 1.1, ver assets/fonts/OFL.txt).
   Colores en variables al principio: claro y oscuro según el sistema. */
@font-face{font-family:"Alegreya";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/alegreya-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Alegreya";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/alegreya-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Alegreya";font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/alegreya-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Alegreya";font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/alegreya-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Alegreya";font-style:italic;font-weight:700;font-display:swap;src:url(../fonts/alegreya-latin-700-italic.woff2) format("woff2")}
@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/alegreya-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/alegreya-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Alegreya Sans";font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/alegreya-sans-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Alegreya Sans";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/alegreya-sans-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/montserrat-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/montserrat-latin-500-normal.woff2) format("woff2")}

:root{
  --paper:#EDF0EA;
  --paper-2:#E1E7DF;
  --ink:#1C2220;
  --ink-soft:#4A5650;
  --rule:#C3CDC1;
  --prado:#2F5233;
  --salvia:#7F9464;
  --plate:#F6F8F3;
  --on-prado:#F3F6F1;
  --prado-soft:#DCE5D3;
  --arenisca:#AE7643;
  /* ilustración del pueblo */
  --ridge-1:#CCD6C8; --ridge-2:#A9BBA4; --ridge-3:#7F9A7C; --ridge-4:#4E6E53;
  --broom:#D8B73F; --rock:#8D948A; --rock-light:#A7ADA2; --rock-dark:#636B61; --moss:#7E9262;
  --rail:#4D5550; --statue:#6F786E; --plinth:#B4B6AC; --wall:#EFE7D6; --wall-2:#E2D8C4;
  --brick:#A9583B; --tile:#B65C3D; --tile-dark:#8C4530; --window:#3B4240; --church:#8D7360;
  --tree:#4C6A44; --tree-2:#62804F; --trunk:#5A4A3C; --meadow:#BDB98A; --grass:#8F8E5E;
  --carbon:#171A1C;
  --on-carbon:#E5E8E3;
  --on-carbon-soft:#9AA29D;
  --ember:#DCA466;
  --focus:#AE7643;

  --font-display:"Alegreya","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --font-body:"Alegreya Sans","Gill Sans","Segoe UI",system-ui,sans-serif;
  --font-data:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --font-brand:"Montserrat","Avenir Next","Segoe UI",system-ui,sans-serif;

  --step--1:.875rem;
  --step-0:1.0625rem;
  --step-1:1.25rem;
  --step-2:clamp(1.45rem,3.2vw,1.8rem);
  --step-3:clamp(2.1rem,6.5vw,3.4rem);
  --step-4:clamp(5rem,24vw,11.5rem);
  --wrap:74rem;
  --gutter-l:max(20px, env(safe-area-inset-left, 0px));
  --gutter-r:max(20px, env(safe-area-inset-right, 0px));
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#121715; --paper-2:#19201D; --ink:#E2E7E1; --ink-soft:#A5B0A9; --rule:#2C3631;
    --prado:#9CC49B; --salvia:#A6B78A; --plate:#EEF2EA; --on-prado:#0F1810; --prado-soft:#1F3026; --arenisca:#CC9761;
    --ridge-1:#2B3934; --ridge-2:#24312B; --ridge-3:#1D2924; --ridge-4:#16201C;
    --broom:#8E7A2E; --rock:#4A524D; --rock-light:#58605A; --rock-dark:#2F3632; --moss:#3F5238;
    --rail:#AEB5AE; --statue:#D4DAD2; --plinth:#4B4E48; --wall:#5E594E; --wall-2:#514C43;
    --brick:#6F3E2C; --tile:#7B412E; --tile-dark:#5A2F22; --window:#151A18; --church:#5F4D40;
    --tree:#22321F; --tree-2:#2C3F26; --trunk:#3A3029; --meadow:#3B3C2B; --grass:#5A5A3A;
    --carbon:#0A0C0D; --on-carbon:#E5E8E3; --on-carbon-soft:#8E9792; --ember:#E2AB6D; --focus:#CC9761;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#121715; --paper-2:#19201D; --ink:#E2E7E1; --ink-soft:#A5B0A9; --rule:#2C3631;
  --prado:#9CC49B; --salvia:#A6B78A; --plate:#EEF2EA; --on-prado:#0F1810; --prado-soft:#1F3026; --arenisca:#CC9761;
  --ridge-1:#2B3934; --ridge-2:#24312B; --ridge-3:#1D2924; --ridge-4:#16201C;
  --broom:#8E7A2E; --rock:#4A524D; --rock-light:#58605A; --rock-dark:#2F3632; --moss:#3F5238;
  --rail:#AEB5AE; --statue:#D4DAD2; --plinth:#4B4E48; --wall:#5E594E; --wall-2:#514C43;
  --brick:#6F3E2C; --tile:#7B412E; --tile-dark:#5A2F22; --window:#151A18; --church:#5F4D40;
  --tree:#22321F; --tree-2:#2C3F26; --trunk:#3A3029; --meadow:#3B3C2B; --grass:#5A5A3A;
  --carbon:#0A0C0D; --on-carbon:#E5E8E3; --on-carbon-soft:#8E9792; --ember:#E2AB6D; --focus:#CC9761;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion: no-preference){ html{scroll-behavior:smooth} }
body{
  background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:var(--step-0); line-height:1.6;
  overflow-x:clip;
}
h1,h2,h3{font-family:var(--font-display); font-weight:700; line-height:1.08; margin:0; text-wrap:balance}
p{margin:0}
a{color:inherit}
:focus-visible{outline:3px solid var(--focus); outline-offset:3px; border-radius:2px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.wrap{max-width:var(--wrap); margin-inline:auto; padding-left:var(--gutter-l); padding-right:var(--gutter-r)}
section[id]{scroll-margin-top:4.5rem}
.section{padding-block:clamp(3.5rem,9vw,6.5rem)}
.eyebrow{font-family:var(--font-data); font-size:.76rem; font-weight:500; letter-spacing:.09em; text-transform:uppercase; color:var(--prado)}
.h2{font-size:var(--step-3)}
.prose{max-width:62ch; display:grid; gap:1rem; color:var(--ink-soft)}
.prose strong{color:var(--ink); font-weight:700}
.data{font-family:var(--font-data); font-size:.82rem; font-variant-numeric:tabular-nums; color:var(--ink-soft)}
.split{display:grid; gap:2.25rem}
@media (min-width:900px){
  .split{grid-template-columns:5fr 7fr; gap:4.5rem; align-items:start}
  .split > .stick{position:sticky; top:6rem}
}
.head{display:grid; gap:.9rem}

/* ---------- Cabecera ---------- */
.site-head{
  position:sticky; top:env(safe-area-inset-top,0px); z-index:20;
  background:color-mix(in srgb, var(--paper) 90%, transparent);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--rule);
}
.site-head > .wrap{display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:3.75rem}
.brand{display:flex; align-items:center; gap:.65rem; text-decoration:none; min-width:0}
.mark{background:var(--plate); border-radius:50%; flex:none; display:block; width:2.75rem; height:2.75rem; padding:.12rem; box-shadow:0 0 0 1px var(--rule)}
.mark img{display:block; width:100%; height:100%}
.brand-text{display:grid; gap:.1rem; line-height:1.1; min-width:0}
.brand-name{font-family:var(--font-brand); font-weight:500; font-size:1rem; letter-spacing:.17em; text-transform:uppercase}
.logo-plate{background:var(--plate); border-radius:20px; padding:clamp(1rem,3vw,1.6rem); margin:0; box-shadow:0 0 0 1px var(--rule)}
.logo-plate img{display:block; width:100%; height:auto}
.hero-grid{display:grid; gap:2rem}
.hero-logo{display:none}
.logo-inline{max-width:13rem}
@media (min-width:1024px){
  .hero-grid{grid-template-columns:minmax(0,1fr) 19rem; gap:3rem; align-items:center}
  .hero-logo{display:block}
  .logo-inline{display:none}
}
.brand-sub{font-size:.72rem; color:var(--ink-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.nav-desk{display:none}
.nav-desk a{text-decoration:none}
@media (max-width:599px){
  .mark{width:2.4rem; height:2.4rem}
  .brand-name{font-size:.92rem; letter-spacing:.15em}
}
.menu-btn{
  font:700 .92rem/1 var(--font-body); color:var(--ink);
  background:var(--paper); border:1px solid var(--rule); border-radius:999px;
  padding:.62rem .9rem; display:inline-flex; align-items:center; gap:.45rem; cursor:pointer; flex:none;
  -webkit-tap-highlight-color:transparent;
}
.menu-btn svg{width:1.1rem; height:1.1rem}
.menu-btn path{stroke:currentColor; stroke-width:2; stroke-linecap:round; fill:none; transform-origin:8px 8px; transition:transform .2s ease, opacity .2s ease}
.menu-btn[aria-expanded="true"]{background:var(--ink); color:var(--paper); border-color:var(--ink)}
.menu-btn[aria-expanded="true"] .l1{transform:rotate(45deg) translateY(4px)}
.menu-btn[aria-expanded="true"] .l2{opacity:0}
.menu-btn[aria-expanded="true"] .l3{transform:rotate(-45deg) translateY(-4px)}
.site-head.is-open{background:var(--paper); -webkit-backdrop-filter:none; backdrop-filter:none}
.menu-panel{
  position:fixed; left:0; right:0; bottom:0; z-index:19;
  top:var(--menu-top, calc(env(safe-area-inset-top, 0px) + 3.8rem));
  background:var(--paper); overflow-y:auto; overscroll-behavior:contain;
  padding-bottom:env(safe-area-inset-bottom, 0px);
}
.menu-inner{max-width:var(--wrap); margin-inline:auto; padding-left:var(--gutter-l); padding-right:var(--gutter-r); padding-block:.25rem 2rem; display:grid; gap:1.75rem}
.menu-list{list-style:none; margin:0; padding:0; display:grid}
.menu-list a{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding-block:.9rem; text-decoration:none; border-bottom:1px solid var(--rule); color:var(--ink);
}
.menu-list b{display:block; font-family:var(--font-display); font-size:1.45rem; font-weight:700; line-height:1.15}
.menu-list small{display:block; font-size:.88rem; color:var(--ink-soft); margin-top:.15rem}
.menu-list svg{width:1.1rem; height:1.1rem; flex:none; color:var(--prado)}
.menu-list svg path{stroke:currentColor; stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round}
.menu-list a:active{background:var(--paper-2)}
.menu-foot{display:grid; gap:.8rem}
.menu-foot .btn{justify-content:center}
.menu-mail{font-family:var(--font-data); font-size:.82rem; color:var(--ink-soft); text-align:center; overflow-wrap:anywhere}
html.menu-open{overflow:hidden}
@media (prefers-reduced-motion: no-preference){
  .menu-panel:not([hidden]){animation:menuIn .22s ease-out}
  @keyframes menuIn{from{opacity:0; transform:translateY(-6px)} to{opacity:1; transform:none}}
}
@media (min-width:960px){
  .menu-btn, .menu-panel{display:none !important}
  .nav-desk{display:flex; gap:1.6rem; font-size:.95rem; font-weight:500}
  .nav-desk a{color:var(--ink-soft); padding-block:.4rem; border-bottom:2px solid transparent}
  .nav-desk a:hover{color:var(--ink); border-bottom-color:var(--prado)}
  .nav-desk a.cta-link{color:var(--prado); font-weight:700}
}

/* ---------- Portada ---------- */
.hero{padding-top:clamp(2.25rem,7vw,4.5rem)}
.hero-text{display:grid; gap:1.1rem}
.hero-title{
  font-size:var(--step-4); font-weight:800; letter-spacing:-.02em; line-height:.86;
  display:flex; align-items:flex-start; gap:.4rem; flex-wrap:wrap;
}
.gloss{
  font-family:var(--font-display); font-style:italic; font-weight:500;
  font-size:clamp(.95rem,2.6vw,1.25rem); letter-spacing:0; line-height:1.2;
  color:var(--arenisca); margin-top:.9em; max-width:9ch;
}
.lead{font-size:clamp(1.12rem,2.6vw,1.4rem); line-height:1.5; max-width:38ch; color:var(--ink-soft)}
.lead strong{color:var(--ink); font-weight:500}
.ctas{display:flex; flex-wrap:wrap; gap:.75rem; padding-top:.4rem}
@media (max-width:599px){ .ctas .btn{flex:1 1 auto; justify-content:center} }
.btn{
  display:inline-flex; align-items:center; gap:.5rem; text-decoration:none;
  font:700 1rem/1 var(--font-body); padding:.95rem 1.3rem; border-radius:999px;
  border:1.5px solid var(--prado); transition:transform .15s ease, background-color .15s ease;
}
.btn-primary{background:var(--prado); color:var(--on-prado)}
.btn-ghost{color:var(--prado)}
.btn-ghost:hover{background:var(--prado-soft)}
.btn:active{transform:translateY(1px)}
.btn svg{width:1rem;height:1rem}
.btn path{stroke:currentColor; stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round}

.hero-art{position:relative; margin:clamp(1.25rem,4vw,2.25rem) 0 0; overflow:hidden; height:clamp(250px,32vw,520px); display:flex; justify-content:center; align-items:flex-end; margin:0}
.hero-art > svg{height:100%; width:auto; aspect-ratio:1600/560; flex:none; overflow:visible; display:block}
.s-far{fill:var(--ridge-1)}
.s-hill{fill:var(--ridge-2)}
.s-broom{fill:var(--broom)}
.s-rock{fill:var(--rock)}
.s-rock-light{fill:var(--rock-light)}
.s-rock-dark{fill:var(--rock-dark)}
.s-crack{fill:none; stroke:var(--rock-dark); stroke-linecap:round; opacity:.55}
.s-moss{fill:var(--moss); opacity:.85}
.s-rail{fill:none; stroke:var(--rail); stroke-width:1.8; stroke-linecap:round}
.s-statue{fill:var(--statue)}
.s-mid{fill:var(--ridge-3)}
.s-plinth{fill:var(--plinth)}
.s-step{fill:none; stroke:var(--rock-dark); stroke-width:1.2; opacity:.6}
.s-wall{fill:var(--wall)}
.s-wall-2{fill:var(--wall-2)}
.s-brick{fill:var(--brick)}
.s-tile{fill:var(--tile)}
.s-tile-dark{fill:var(--tile-dark)}
.s-win{fill:var(--window)}
.s-church{fill:var(--church)}
.s-cross{fill:none; stroke:var(--church); stroke-width:3; stroke-linecap:round}
.s-tree{fill:var(--tree)}
.s-tree-2{fill:var(--tree-2)}
.s-trunk{fill:none; stroke:var(--trunk); stroke-width:4; stroke-linecap:round}
.s-meadow{fill:var(--meadow)}
.s-grass{fill:none; stroke:var(--grass); stroke-width:1.4; stroke-linecap:round; opacity:.7}
.s-ground{fill:var(--ridge-4)}
@media (prefers-reduced-motion: no-preference){
  .hero-art .layer{animation:rise 1.1s cubic-bezier(.2,.7,.2,1) both}
  .hero-art .l1{animation-delay:.05s} .hero-art .l2{animation-delay:.12s}
  .hero-art .l3{animation-delay:.2s} .hero-art .l4{animation-delay:.28s} .hero-art .l5{animation-delay:.36s}
  @keyframes rise{from{transform:translateY(18px)} to{transform:none}}
}

.facts-band{background:var(--ridge-4); color:var(--on-carbon)}
.facts{
  margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem 1.5rem;
  padding-block:1.6rem 1.8rem;
}
.facts div{display:grid; gap:.15rem; min-width:0; align-content:start}
.facts dt{font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; opacity:.78; white-space:nowrap}
.facts dd{margin:0; font-family:var(--font-data); font-size:1.05rem; font-weight:500; font-variant-numeric:tabular-nums}
.facts dd small{font-size:.72rem; opacity:.75; font-weight:400}
.facts .nw{white-space:nowrap}
.facts .f-wide{grid-column:1/-1}
@media (min-width:600px){ .facts{grid-template-columns:repeat(3,minmax(0,1fr))} .facts .f-wide{grid-column:span 2} }
@media (min-width:1024px){ .facts{grid-template-columns:repeat(5,minmax(0,1fr))} .facts .f-wide{grid-column:auto} }

/* ---------- Asociación ---------- */
.fines{list-style:none; margin:0; padding:0; display:grid; gap:0; border-top:1px solid var(--rule)}
.fines li{display:grid; grid-template-columns:2.4rem minmax(0,1fr); gap:.25rem 1rem; padding-block:1.25rem; border-bottom:1px solid var(--rule)}
.fines .let{font-family:var(--font-display); font-style:italic; font-weight:700; font-size:1.6rem; line-height:1; color:var(--arenisca); grid-row:span 2}
.fines h3{font-size:var(--step-1)}
.fines p{color:var(--ink-soft); grid-column:2}
.registry{display:grid; gap:.35rem; padding:1rem 1.1rem; background:var(--paper-2); border-radius:6px; max-width:30rem}

/* ---------- Historia ---------- */
.timeline{list-style:none; margin:0; padding:0; position:relative; display:grid; gap:0}
.timeline::before{content:""; position:absolute; left:.42rem; top:.6rem; bottom:.6rem; width:2px; background:var(--rule)}
.timeline li{position:relative; display:grid; gap:.3rem; padding:0 0 1.9rem 2.1rem}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:""; position:absolute; left:0; top:.42rem; width:.95rem; height:.95rem; border-radius:50%; background:var(--paper); border:2px solid var(--prado)}
.timeline li.key::before{background:var(--prado)}
.timeline .when{font-family:var(--font-data); font-size:.82rem; font-weight:500; color:var(--prado); letter-spacing:.02em}
.timeline p{color:var(--ink-soft); max-width:56ch}
.timeline p em{font-family:var(--font-display); font-style:italic; color:var(--ink); font-size:1.08em}
.timeline a{color:var(--prado); font-weight:700; text-underline-offset:3px}

/* ---------- Carbón (banda oscura) ---------- */
.carbon{
  background:var(--carbon); color:var(--on-carbon); position:relative; overflow:hidden;
  background-image:repeating-linear-gradient(176deg, transparent 0 46px, color-mix(in srgb, var(--on-carbon) 5%, transparent) 46px 47px);
}
.carbon .eyebrow{color:var(--ember)}
.carbon .prose{color:var(--on-carbon-soft)}
.carbon .prose strong{color:var(--on-carbon)}
.rails{list-style:none; margin:0; padding:0; display:grid; gap:1rem}
.rails li{display:grid; grid-template-columns:4rem minmax(0,1fr); gap:1rem; align-items:baseline; padding-top:1rem; border-top:1px solid color-mix(in srgb, var(--on-carbon) 18%, transparent)}
.rails .yr{font-family:var(--font-data); font-weight:500; color:var(--ember); font-size:1.05rem}
.rails p{color:var(--on-carbon-soft)}
.chart-wrap{display:grid; gap:.9rem; margin-top:clamp(2.5rem,6vw,4rem); padding-top:clamp(2rem,5vw,3rem); border-top:1px solid color-mix(in srgb, var(--on-carbon) 18%, transparent)}
.chart-wrap h3{font-size:var(--step-2)}
.chart-lede{color:var(--on-carbon-soft); max-width:56ch}
#popChart{width:100%; min-height:240px}
#popChart svg{display:block; width:100%; height:auto; overflow:visible}
.c-grid{stroke:color-mix(in srgb, var(--on-carbon) 14%, transparent); stroke-width:1}
.c-axis{fill:var(--on-carbon-soft); font-family:var(--font-data); font-size:11px}
.c-band{fill:color-mix(in srgb, var(--ember) 13%, transparent)}
.c-band-label{fill:var(--ember); font-family:var(--font-data); font-size:11px; letter-spacing:.04em}
.c-area{fill:color-mix(in srgb, var(--ember) 16%, transparent)}
.c-line{fill:none; stroke:var(--ember); stroke-width:2.5; stroke-linejoin:round; stroke-linecap:round}
.c-dot{fill:var(--ember); stroke:var(--carbon); stroke-width:2}
.c-dot.approx{fill:var(--carbon); stroke:var(--ember)}
.c-val{fill:var(--on-carbon); font-family:var(--font-data); font-size:12px; font-weight:500}
.c-ref{stroke:var(--on-carbon-soft); stroke-dasharray:4 4; stroke-width:1}
.c-ref-label{fill:var(--on-carbon-soft); font-family:var(--font-display); font-style:italic; font-size:13px}
.source{font-size:.82rem; color:var(--on-carbon-soft)}

/* ---------- Patrimonio ---------- */
.heritage{display:grid; gap:2.5rem}
@media (min-width:900px){ .heritage{grid-template-columns:7fr 5fr; gap:3.5rem; align-items:start} }
.monument{display:grid; gap:1rem}
.monument h3{font-size:var(--step-2)}
.monument .data{color:var(--prado)}
.monument p{color:var(--ink-soft); max-width:60ch}
.feature{padding:clamp(1rem,4vw,2rem); background:var(--paper-2); border-radius:8px}
.feature-art{margin:0; border-radius:6px; overflow:hidden; background:var(--paper)}
.feature-art svg{display:block; width:100%; height:auto}
.mk circle{fill:var(--prado); stroke:var(--plate); stroke-width:4}
.mk text{fill:var(--on-prado); font:700 25px var(--font-body); text-anchor:middle}
.keys{list-style:none; margin:0; padding:0; display:grid; gap:.7rem}
.keys li{display:grid; grid-template-columns:1.6rem minmax(0,1fr); gap:.75rem; align-items:start; color:var(--ink-soft)}
.pin{width:1.6rem; height:1.6rem; border-radius:50%; background:var(--prado); color:var(--on-prado); display:grid; place-items:center; font:700 .82rem/1 var(--font-body); margin-top:.1rem}
.feature .textlink{font-size:.98rem}
.look{list-style:none; margin:0; padding:0; display:grid; gap:.6rem}
.look li{display:grid; grid-template-columns:1.1rem minmax(0,1fr); gap:.6rem; color:var(--ink-soft)}
.look li::before{content:""; width:.55rem; height:.55rem; margin-top:.55rem; background:var(--arenisca); transform:rotate(45deg)}
.look-title{font-family:var(--font-data); font-size:.76rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ink)}
.side-monuments{display:grid; gap:0; border-top:1px solid var(--rule)}
.side-monuments .monument{padding-block:1.5rem; border-bottom:1px solid var(--rule)}

/* ---------- Valle ---------- */
.valley-top{display:grid; gap:2.5rem}
@media (min-width:900px){ .valley-top{grid-template-columns:7fr 5fr; gap:4rem; align-items:center} }
.vmap{width:100%; max-width:380px; margin:0 auto; display:grid; gap:.6rem}
.vmap svg{width:100%; height:auto; display:block}
.mp-ring{fill:none; stroke:var(--rule); stroke-width:1.2; stroke-dasharray:3 5}
.mp-ring-t{fill:var(--ink-soft); font:500 11px var(--font-data); paint-order:stroke; stroke:var(--paper); stroke-width:4px}
.mp-ray{stroke:var(--prado); stroke-width:1.2; opacity:.35}
.mp-dot{fill:var(--arenisca); stroke:var(--paper); stroke-width:2}
.mp-name{fill:var(--ink); font:500 15px var(--font-body); paint-order:stroke; stroke:var(--paper); stroke-width:4px; stroke-linejoin:round}
.mp-km{fill:var(--prado); font:500 12px var(--font-data); paint-order:stroke; stroke:var(--paper); stroke-width:4px; stroke-linejoin:round}
.mp-center{fill:var(--prado)}
.mp-center-t{fill:var(--on-prado); font:800 15px var(--font-display)}
.mp-north path{fill:var(--ink)}
.mp-north text{fill:var(--ink); font:500 12px var(--font-data)}
.mp-scale path{stroke:var(--ink); stroke-width:1.5; fill:none}
.mp-scale text{fill:var(--ink-soft); font:500 11px var(--font-data)}
.vmap figcaption{font-size:.85rem; color:var(--ink-soft); text-align:center; text-wrap:balance}
.routes-head{margin-top:clamp(3rem,7vw,4.5rem); display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.5rem 2rem}
.routes-head h3{font-size:var(--step-2)}
.routes{display:grid; gap:1rem; margin-top:1.25rem}
@media (min-width:1024px){ .routes{grid-template-columns:repeat(3,minmax(0,1fr))} }
.route{display:grid; grid-template-rows:auto auto 1fr auto; gap:.75rem; padding:1.35rem; border:1px solid var(--rule); border-radius:8px; background:var(--paper); min-width:0}
.route .kind{font-family:var(--font-data); font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--arenisca)}
.route h4{margin:0; font-family:var(--font-display); font-size:1.3rem; line-height:1.15}
.route p{color:var(--ink-soft); font-size:.98rem}
.route dl{margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem .75rem; padding-top:.9rem; border-top:1px dashed var(--rule)}
.route dl div{display:grid; gap:.05rem}
.route dt{font-size:.72rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em}
.route dd{margin:0; font-family:var(--font-data); font-size:.92rem; font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap}
@media (min-width:600px) and (max-width:1023px){ .route dl{grid-template-columns:repeat(4,minmax(0,1fr))} }
.route a{color:var(--prado); font-weight:700; font-size:.92rem; text-underline-offset:3px}
.near{display:grid; gap:1.25rem; margin-top:clamp(2.5rem,6vw,3.5rem)}
@media (min-width:1024px){ .near{grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem} }
.near div{display:grid; gap:.35rem; padding-top:1rem; border-top:2px solid var(--prado)}
.near h4{margin:0; font-family:var(--font-display); font-size:1.15rem}
.near p{font-size:.96rem; color:var(--ink-soft)}

/* ---------- Fiestas ---------- */
.fiestas{background:var(--paper-2)}
.year{display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:3px; margin-top:2rem; position:relative}
.year .m{display:grid; gap:.35rem; justify-items:center; padding-block:.55rem .5rem; background:var(--paper); border-radius:3px; min-height:3.7rem; align-content:start}
.year .m span{font-family:var(--font-data); font-size:.7rem; color:var(--ink-soft)}
.year .m.on{background:var(--prado-soft)}
.year .m.on span{color:var(--prado); font-weight:500}
.year .dots{display:flex; gap:3px; flex-wrap:wrap; justify-content:center}
.year .dot{width:.5rem; height:.5rem; border-radius:50%; background:var(--prado)}
.year .dot.p{background:var(--arenisca)}
.today{position:absolute; top:1.55rem; bottom:.2rem; width:2px; background:var(--ink); border-radius:1px}
.today::after{content:"hoy"; position:absolute; bottom:-1.3rem; left:50%; transform:translateX(-50%); font-family:var(--font-data); font-size:.66rem; color:var(--ink)}
.legend{display:flex; flex-wrap:wrap; gap:.4rem 1.25rem; margin-top:1.6rem; font-size:.85rem; color:var(--ink-soft)}
.legend span{display:inline-flex; align-items:center; gap:.4rem}
.legend i{width:.55rem; height:.55rem; border-radius:50%; background:var(--prado); display:inline-block}
.legend i.p{background:var(--arenisca)}
.feasts{list-style:none; margin:2rem 0 0; padding:0; display:grid; gap:0; border-top:1px solid var(--rule)}
.feast{display:grid; grid-template-columns:5.2rem minmax(0,1fr); gap:1rem; padding-block:1.2rem; border-bottom:1px solid var(--rule); align-items:start}
.feast .date{font-family:var(--font-data); font-variant-numeric:tabular-nums; line-height:1.15}
.feast .d{font-size:1.55rem; font-weight:500; display:block}
.feast .mo{font-size:.74rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft)}
.feast .body{display:grid; gap:.3rem; min-width:0}
.feast h3{font-size:1.3rem}
.feast .meta{display:flex; flex-wrap:wrap; gap:.4rem .6rem; align-items:center; font-size:.9rem; color:var(--ink-soft)}
.tag{font-family:var(--font-data); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; padding:.25rem .5rem; border-radius:3px; background:var(--paper); color:var(--prado)}
.tag.p{color:var(--arenisca)}
.next{font-family:var(--font-data); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; padding:.28rem .6rem; border-radius:999px; background:var(--prado); color:var(--on-prado)}
.feast.is-next{background:linear-gradient(90deg, var(--prado-soft), transparent 75%)}
.feast.is-next .date{padding-left:.6rem}
.note{margin-top:1.1rem; font-size:.88rem; color:var(--ink-soft)}
.note a{color:var(--prado); font-weight:700}

/* ---------- Participa ---------- */
.join{display:grid; gap:1.5rem}
@media (min-width:900px){ .join{grid-template-columns:7fr 5fr; gap:2rem; align-items:stretch} }
.join-main{display:grid; gap:1.25rem; padding:clamp(1.5rem,5vw,2.75rem); background:var(--prado); color:var(--on-prado); border-radius:10px}
.join-main .eyebrow{color:var(--on-prado); opacity:.8}
.join-main p{max-width:46ch; opacity:.92}
.mail{display:flex; flex-wrap:wrap; align-items:center; gap:.6rem}
.mail-addr{
  font-family:var(--font-data); font-size:clamp(.8rem,2.6vw,1rem); font-weight:500;
  padding:.75rem .95rem; border-radius:6px; background:color-mix(in srgb, var(--on-prado) 14%, transparent);
  color:var(--on-prado); text-decoration:none; user-select:all; min-width:0;
}
.copy-btn{
  font:700 .92rem/1 var(--font-body); padding:.8rem 1.1rem; border-radius:999px; cursor:pointer;
  background:var(--on-prado); color:var(--prado); border:0;
}
.copy-state{font-size:.88rem; min-height:1.3em}
.join-side{display:grid; gap:.8rem; align-content:start; padding:clamp(1.5rem,5vw,2.25rem); border:1px solid var(--rule); border-radius:10px}
.join-side h3{font-size:var(--step-2)}
.join-side p{color:var(--ink-soft)}

/* ---------- Llegar ---------- */
.arrive{display:grid; gap:2.5rem}
@media (min-width:900px){ .arrive{grid-template-columns:repeat(2,minmax(0,1fr)); gap:4rem} }
.arrive h3{font-size:var(--step-2)}
.arrive .col{display:grid; gap:1rem; align-content:start}
.arrive p{color:var(--ink-soft); max-width:56ch}
.road{font-family:var(--font-data); font-size:.85rem; font-weight:500; padding:.1rem .4rem; border-radius:3px; background:var(--paper-2); color:var(--ink); white-space:nowrap}
.stays{list-style:none; margin:0; padding:0; display:grid; border-top:1px solid var(--rule)}
.stays li{display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding-block:.85rem; border-bottom:1px solid var(--rule)}
.stays b{font-family:var(--font-display); font-size:1.15rem}
.stays span{font-family:var(--font-data); font-size:.82rem; color:var(--ink-soft); white-space:nowrap}
.textlink{color:var(--prado); font-weight:700; text-underline-offset:3px}

/* ---------- Pie ---------- */
.foot{background:var(--carbon); color:var(--on-carbon-soft); font-size:.9rem}
.foot .wrap{padding-block:3rem 2.5rem; display:grid; gap:2rem}
@media (min-width:760px){ .foot .wrap{grid-template-columns:5fr 4fr 3fr} }
.foot h2{font-family:var(--font-brand); font-size:1.15rem; font-weight:500; letter-spacing:.17em; text-transform:uppercase; color:var(--on-carbon)}
.foot-brand{display:flex; gap:1rem; align-items:center}
.mark-lg{width:4rem; height:4rem; box-shadow:none}
.foot h3{font-family:var(--font-data); font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ember); font-weight:500; margin-bottom:.5rem}
.foot address{font-style:normal; display:grid; gap:.2rem}
.foot a{color:var(--on-carbon)}
.foot-bottom{grid-column:1/-1; padding-top:1.5rem; border-top:1px solid color-mix(in srgb, var(--on-carbon) 15%, transparent); display:flex; flex-wrap:wrap; gap:.9rem 2.5rem; justify-content:space-between; align-items:baseline}
.foot .legal{margin:0; max-width:64ch; font-family:var(--font-data); font-size:.74rem; line-height:1.7}
.foot .credit{margin:0; font-size:.88rem; color:var(--on-carbon-soft)}
.foot .credit a{color:var(--on-carbon); font-weight:700; text-underline-offset:3px}
/* ---------- Base ---------- */
body{margin:0}
/* Alegreya convierte «siglo XV» en numerales con barras cuando la página está en español: se desactiva */
body{font-variant-ligatures:none}
img{max-width:100%}
[hidden]{display:none !important}
:root{padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px)}

/* ==========================================================================
   Componentes de la web multipágina (octubre 2026)
   ========================================================================== */

/* ---------- Comunes ---------- */
.skip{position:absolute; left:-999px; top:.5rem; z-index:50; background:var(--ink); color:var(--paper); padding:.6rem 1rem; border-radius:6px}
.skip:focus{left:.5rem}
.section-alt{background:var(--paper-2)}
.sec-head{display:grid; gap:.9rem; max-width:46rem; margin-bottom:clamp(1.75rem,4vw,2.75rem)}
.sec-head .prose{max-width:58ch}
.btn-sm{padding:.7rem 1rem; font-size:.94rem}
.btn-gold{background:var(--broom); color:#1C2220; border-color:var(--broom)}
.btn-gold:hover{filter:brightness(1.05)}
.btn-light{color:var(--on-prado); border-color:color-mix(in srgb, var(--on-prado) 55%, transparent)}
.btn-light:hover{background:color-mix(in srgb, var(--on-prado) 12%, transparent)}
.nav-desk a[aria-current="page"]{color:var(--ink); border-bottom-color:var(--prado)}
.menu-sub{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.45rem}
.menu-sub a{display:inline-block; padding:.5rem .85rem; border:1px solid var(--rule); border-radius:999px; text-decoration:none; font-size:.95rem; color:var(--ink)}
.menu-label{font-family:var(--font-data); font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.6rem}
.crumbs{font-size:.9rem; color:var(--ink-soft); display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; margin:0; padding:0; list-style:none}
.crumbs li + li::before{content:"/"; margin-right:.35rem; color:var(--rule)}
.crumbs a{color:var(--prado); font-weight:700; text-underline-offset:3px}
.sources{font-size:.86rem; color:var(--ink-soft); display:grid; gap:.35rem; padding-top:1.25rem; border-top:1px solid var(--rule)}
.sources ul{margin:0; padding-left:1.1rem; display:grid; gap:.2rem}
.sources a{color:var(--prado); overflow-wrap:anywhere}

/* ---------- Portada: titular de marca y próximo evento ---------- */
.hero-title.is-brand{font-size:clamp(3.3rem,16vw,9.2rem); letter-spacing:-.025em}
.hero-title.is-brand .gloss{max-width:none; flex-basis:100%; margin-top:.35em}
.ticker{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.2rem 1rem; align-items:center;
  max-width:34rem; padding:.75rem .9rem .75rem .75rem; margin-top:.35rem;
  border:1px solid var(--rule); border-radius:14px; background:var(--paper-2);
  text-decoration:none; color:var(--ink);
}
.ticker:hover{border-color:var(--prado)}
.tk-date{display:grid; justify-items:center; align-content:center; width:3.6rem; height:3.6rem; border-radius:10px; background:var(--prado); color:var(--on-prado); font-family:var(--font-data); line-height:1}
.tk-date b{font-size:1.45rem; font-weight:500}
.tk-date small{font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; margin-top:.2rem}
.tk-body{display:grid; gap:.1rem; min-width:0}
.tk-kicker{font-family:var(--font-data); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--arenisca)}
.tk-title{font-family:var(--font-display); font-weight:700; font-size:1.2rem; line-height:1.15}
.tk-meta{font-size:.9rem; color:var(--ink-soft); white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.ticker > svg{width:1.1rem; height:1.1rem; color:var(--prado)}
.ticker > svg path{stroke:currentColor; stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round}

/* ---------- Banda de pueblos ---------- */
.valley-band{background:var(--ridge-4); color:var(--on-carbon)}
.valley-band .wrap{display:grid; gap:.75rem; padding-block:1.25rem 1.4rem}
@media (min-width:900px){ .valley-band .wrap{grid-template-columns:auto minmax(0,1fr); align-items:center; gap:1.5rem} }
.vb-label{font-family:var(--font-data); font-size:.74rem; letter-spacing:.09em; text-transform:uppercase; opacity:.85; margin:0}
.vb-list{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:.45rem}
.vb-list a{
  display:inline-block; padding:.45rem .85rem; border-radius:999px; text-decoration:none;
  border:1px solid color-mix(in srgb, var(--on-carbon) 32%, transparent); color:var(--on-carbon);
  font-weight:500; font-size:.96rem; line-height:1.2;
}
.vb-list a:hover{background:color-mix(in srgb, var(--on-carbon) 12%, transparent)}
.vb-list a.is-home{background:var(--on-carbon); color:var(--ridge-4); border-color:var(--on-carbon)}

/* ---------- Cesta de Navidad ---------- */
.cesta{background:var(--prado); color:var(--on-prado); position:relative; overflow:hidden; border-top:6px solid var(--broom)}
.cesta .wrap{position:relative; display:grid; gap:2rem}
@media (min-width:960px){ .cesta .wrap{grid-template-columns:minmax(0,11fr) minmax(0,13fr); gap:3.5rem; align-items:start} }
.cesta .eyebrow{color:var(--broom)}
.cesta-photo{margin:0; display:grid; gap:.6rem}
.cesta-photo img{display:block; width:100%; height:auto; border-radius:12px; box-shadow:0 0 0 4px color-mix(in srgb, var(--broom) 70%, transparent), 0 18px 40px -18px rgba(0,0,0,.55)}
.cesta-photo figcaption{font-size:.85rem; opacity:.85}
.cesta-text{display:grid; gap:1.25rem; align-content:start}
.cesta-title{font-size:clamp(2.3rem,7vw,3.8rem)}
.cesta-lead{font-size:clamp(1.08rem,2.4vw,1.25rem); max-width:44ch; opacity:.95}
.cesta-stats{margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem}
.cesta-stats div{display:grid; gap:.15rem; padding:.85rem .8rem; border-radius:10px; background:color-mix(in srgb, var(--on-prado) 11%, transparent); min-width:0}
.cesta-stats dt{font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; opacity:.85; order:2}
.cesta-stats dd{margin:0; font-family:var(--font-data); font-weight:500; font-size:clamp(1.25rem,4.6vw,1.75rem); color:var(--broom); line-height:1.1; order:1; white-space:nowrap}
.steps{list-style:none; margin:0; padding:0; display:grid; gap:.8rem; counter-reset:paso}
.steps li{display:grid; grid-template-columns:2rem minmax(0,1fr); gap:.8rem; align-items:start; counter-increment:paso}
.steps li::before{content:counter(paso); width:2rem; height:2rem; border-radius:50%; display:grid; place-items:center; font:700 .95rem/1 var(--font-body); background:var(--broom); color:#1C2220}
.steps b{display:block}
.cesta .note-box{padding:.9rem 1rem; border-radius:10px; border:1.5px dashed color-mix(in srgb, var(--on-prado) 45%, transparent); font-size:.95rem}
.lote{border-top:1px solid color-mix(in srgb, var(--on-prado) 25%, transparent); padding-top:1rem}
.lote summary{cursor:pointer; font-weight:700; font-size:1.05rem; list-style:none; display:flex; align-items:center; gap:.6rem}
.lote summary::-webkit-details-marker{display:none}
.lote summary::before{content:"+"; width:1.6rem; height:1.6rem; border-radius:50%; display:grid; place-items:center; background:color-mix(in srgb, var(--on-prado) 16%, transparent); font-family:var(--font-data)}
.lote[open] summary::before{content:"−"}
.lote ul{margin:1rem 0 0; padding:0; list-style:none; columns:2 13rem; column-gap:2rem; font-size:.95rem}
.lote li{break-inside:avoid; padding:.22rem 0 .22rem 1rem; position:relative; opacity:.95}
.lote li::before{content:""; position:absolute; left:0; top:.78rem; width:.38rem; height:.38rem; border-radius:50%; background:var(--broom)}
.cesta-ctas{display:flex; flex-wrap:wrap; gap:.7rem}

/* ---------- Agenda ---------- */
.agenda-grid{display:grid; gap:2rem}
@media (min-width:960px){ .agenda-grid{grid-template-columns:21rem minmax(0,1fr); gap:3rem; align-items:start} .cal{position:sticky; top:5.5rem} }
.cal{border:1px solid var(--rule); border-radius:14px; padding:1rem; background:var(--paper)}
.cal[hidden]{display:none}
.cal-head{display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.5rem}
.cal-title{font-family:var(--font-display); font-weight:700; font-size:1.3rem; text-transform:capitalize; margin:0}
.cal-nav{display:flex; gap:.35rem}
.cal-nav button{width:2.5rem; height:2.5rem; border-radius:50%; border:1px solid var(--rule); background:var(--paper); color:var(--ink); cursor:pointer; display:grid; place-items:center; padding:0}
.cal-nav button:disabled{opacity:.35; cursor:default}
.cal-nav svg{width:1rem; height:1rem}
.cal-nav path{stroke:currentColor; stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round}
.cal-grid{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; text-align:center}
.cal-dow{font-family:var(--font-data); font-size:.68rem; color:var(--ink-soft); padding-block:.35rem; text-transform:uppercase}
.cal-day{
  position:relative; aspect-ratio:1; min-height:2.4rem; display:grid; place-items:center;
  font:500 .92rem/1 var(--font-data); border-radius:9px; color:var(--ink); border:0; background:none; padding:0;
}
button.cal-day{cursor:pointer}
.cal-day.blank{visibility:hidden}
.cal-day.is-past{color:var(--ink-soft); opacity:.5}
.cal-day.is-today{box-shadow:inset 0 0 0 2px var(--ink)}
.cal-day.has{background:var(--prado-soft); color:var(--prado)}
.cal-day.has::after{content:""; position:absolute; bottom:14%; left:50%; width:.34rem; height:.34rem; margin-left:-.17rem; border-radius:50%; background:var(--prado)}
.cal-day.has.fest::after{background:var(--arenisca)}
.cal-day.has.is-past{opacity:.55}
.cal-day.sel{background:var(--prado); color:var(--on-prado)}
.cal-day.sel::after{background:var(--on-prado)}
.cal-legend{display:flex; flex-wrap:wrap; gap:.35rem 1rem; margin-top:.8rem; font-size:.82rem; color:var(--ink-soft)}
.cal-legend span{display:inline-flex; align-items:center; gap:.4rem}
.cal-legend i{width:.5rem; height:.5rem; border-radius:50%; background:var(--prado); display:inline-block}
.cal-legend i.f{background:var(--arenisca)}
.cal-day-info{margin-top:.8rem; font-size:.9rem; color:var(--ink-soft); min-height:1.4em}
.evs{list-style:none; margin:0; padding:0; display:grid; gap:.9rem}
.ev{
  display:grid; grid-template-columns:4.4rem minmax(0,1fr); gap:.9rem 1rem; align-items:start;
  padding:1rem; border:1px solid var(--rule); border-radius:14px; background:var(--paper);
  scroll-margin-top:6rem; transition:box-shadow .2s ease, border-color .2s ease;
}
.ev.is-hl{border-color:var(--prado); box-shadow:0 0 0 3px var(--prado-soft)}
.ev.is-now{border-color:var(--arenisca)}
@media (min-width:700px){ .ev{grid-template-columns:5rem minmax(0,1fr) 6.5rem; padding:1.15rem 1.25rem} }
.ev-date{display:grid; justify-items:center; align-content:start; gap:.15rem; padding:.6rem .25rem; border-radius:10px; background:var(--prado-soft); color:var(--prado); font-family:var(--font-data); text-align:center; line-height:1.05}
.ev-date .wd{font-size:.66rem; text-transform:uppercase; letter-spacing:.08em}
.ev-date .d{font-size:1.75rem; font-weight:500}
.ev-date .mo{font-size:.7rem; text-transform:uppercase; letter-spacing:.06em}
.ev-date.is-text .d{font-size:1rem; padding-block:.35rem}
.ev.fest .ev-date{background:color-mix(in srgb, var(--arenisca) 16%, var(--paper)); color:var(--arenisca)}
.ev-body{display:grid; gap:.4rem; min-width:0; align-content:start}
.ev h3{font-size:1.3rem; line-height:1.15}
.ev .when{font-weight:500; font-size:.98rem; color:var(--ink); display:flex; flex-wrap:wrap; gap:0 .7rem}
.ev .when span:not(:last-child)::after{content:"·"; margin-left:.7rem; color:var(--ink-soft)}
.ev p{color:var(--ink-soft); font-size:.98rem}
.ev .meta{display:flex; flex-wrap:wrap; gap:.4rem; align-items:center}
.ev a{color:var(--prado); font-weight:700; text-underline-offset:3px}
.pill{font-family:var(--font-data); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; padding:.28rem .6rem; border-radius:999px; background:var(--prado); color:var(--on-prado); white-space:nowrap}
.pill.now{background:var(--arenisca); color:#fff}
.tag.asoc{background:var(--prado-soft)}
.ev-poster{grid-column:2; justify-self:start; display:block; width:5.5rem; padding:0; border:0; background:none; cursor:zoom-in; border-radius:8px; overflow:hidden; box-shadow:0 0 0 1px var(--rule)}
@media (min-width:700px){ .ev-poster{grid-column:3; grid-row:1; width:100%} }
.ev-poster img{display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; object-position:top}
.evs-empty{padding:1.25rem; border:1px dashed var(--rule); border-radius:14px; color:var(--ink-soft)}
.recent-wrap{margin-top:clamp(2.5rem,6vw,3.5rem); display:grid; gap:1rem}
.recent-wrap h3{font-size:var(--step-2)}
.recent{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem}
@media (min-width:760px){ .recent{grid-template-columns:repeat(4,minmax(0,1fr))} }
.recent li{display:grid; gap:.45rem; min-width:0}
.recent a{display:block; cursor:zoom-in; border-radius:10px; overflow:hidden; box-shadow:0 0 0 1px var(--rule)}
.recent img{display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; object-position:top}
.recent b{font-family:var(--font-display); font-size:1.05rem; line-height:1.2}
.recent span{font-family:var(--font-data); font-size:.78rem; color:var(--ink-soft)}
.lightbox{border:0; padding:0; background:transparent; max-width:min(92vw,560px); max-height:92vh; overflow:visible}
.lightbox::backdrop{background:rgba(10,12,13,.82)}
.lightbox img{display:block; max-width:100%; max-height:84vh; width:auto; height:auto; border-radius:10px; margin-inline:auto}
.lightbox p{color:#E5E8E3; text-align:center; margin-top:.6rem; font-size:.95rem}
.lb-close{position:absolute; top:-.6rem; right:-.6rem; width:2.6rem; height:2.6rem; border-radius:50%; border:0; background:#F3F6F1; color:#1C2220; font:700 1.3rem/1 var(--font-body); cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.4)}

/* ---------- Servicios ---------- */
.srvs{display:grid; gap:1rem}
@media (min-width:700px){ .srvs{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1100px){ .srvs{grid-template-columns:repeat(4,minmax(0,1fr))} }
.srv{display:grid; grid-template-rows:auto auto 1fr auto; gap:.9rem; padding:1.3rem; border-radius:14px; background:var(--paper); border:1px solid var(--rule); min-width:0}
.srv-top{display:flex; align-items:center; gap:.8rem}
.srv-ico{width:3rem; height:3rem; flex:none; border-radius:50%; background:var(--prado-soft); color:var(--prado); display:grid; place-items:center}
.srv-ico svg{width:1.6rem; height:1.6rem}
.srv-ico path, .srv-ico circle, .srv-ico rect{stroke:currentColor; stroke-width:1.6; fill:none; stroke-linecap:round; stroke-linejoin:round}
.srv h3{font-size:1.4rem}
.srv-what{font-size:.95rem; color:var(--ink-soft)}
.srv dl{margin:0; display:grid; gap:.6rem; align-content:start}
.srv dl div{display:grid; grid-template-columns:6.2rem minmax(0,1fr); gap:.6rem; align-items:center}
.srv dt{font-size:.72rem; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-soft)}
.srv dd{margin:0; font-family:var(--font-data); font-size:.98rem; color:var(--ink)}
.srv dd a{color:var(--prado); font-weight:500}
.falta{display:inline-flex; align-items:center; gap:.4rem; color:var(--arenisca); font-family:var(--font-data); font-size:.82rem; border:1.5px dashed currentColor; border-radius:6px; padding:.2rem .5rem}
.srv.is-missing{border:1.5px dashed color-mix(in srgb, var(--arenisca) 60%, var(--rule))}
.srv .btn{justify-content:center}
.srv-other{background:transparent; border-style:dashed}
.srv-note{margin-top:1.25rem; font-size:.9rem; color:var(--ink-soft); max-width:70ch}

/* ---------- Pueblos ---------- */
.pueblos-grid{display:grid; gap:2.5rem}
@media (min-width:960px){ .pueblos-grid{grid-template-columns:5fr 7fr; gap:3.5rem; align-items:start} }
.mp-link{cursor:pointer}
.mp-link:hover .mp-dot, .mp-link:focus .mp-dot{fill:var(--prado)}
.mp-link:hover .mp-name, .mp-link:focus .mp-name{text-decoration:underline}
.mp-dot.is-here{fill:var(--prado); r:8}
.pcards{list-style:none; margin:0; padding:0; display:grid; gap:0; border-top:1px solid var(--rule)}
@media (min-width:700px){ .pcards{grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:2rem} }
.pcards a{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.15rem 1rem; align-items:center; padding:1rem 0; border-bottom:1px solid var(--rule); text-decoration:none; color:var(--ink); height:100%}
.pcards b{font-family:var(--font-display); font-size:1.3rem; line-height:1.15}
.pcards small{grid-column:1; font-size:.9rem; color:var(--ink-soft)}
.pcards .km{grid-row:1 / span 2; grid-column:2; font-family:var(--font-data); font-size:.82rem; color:var(--prado); white-space:nowrap; display:flex; align-items:center; gap:.4rem}
.pcards .km svg{width:1rem; height:1rem}
.pcards .km path{stroke:currentColor; stroke-width:2; fill:none; stroke-linecap:round; stroke-linejoin:round}
.pcards a:hover b{color:var(--prado)}

/* ---------- Asociación ---------- */
.doing{list-style:none; margin:0; padding:0; display:grid; gap:.9rem}
@media (min-width:700px){ .doing{grid-template-columns:repeat(2,minmax(0,1fr))} }
.doing li{display:grid; grid-template-columns:2.6rem minmax(0,1fr); gap:.8rem; align-items:start; padding:1rem; border-radius:12px; background:var(--paper)}
.doing svg{width:2.6rem; height:2.6rem; padding:.55rem; border-radius:50%; background:var(--prado-soft); color:var(--prado)}
.doing path, .doing circle, .doing rect{stroke:currentColor; stroke-width:1.7; fill:none; stroke-linecap:round; stroke-linejoin:round}
.doing b{display:block; font-family:var(--font-display); font-size:1.12rem; line-height:1.2; margin-bottom:.15rem}
.doing span{color:var(--ink-soft); font-size:.95rem}
.organos{display:grid; gap:1rem; margin-top:clamp(2.5rem,6vw,3.5rem)}
@media (min-width:900px){ .organos{grid-template-columns:repeat(3,minmax(0,1fr))} }
.organos article{display:grid; gap:.5rem; align-content:start; padding-top:1rem; border-top:2px solid var(--prado)}
.organos h3{font-size:1.3rem}
.organos p{color:var(--ink-soft); font-size:.98rem}
.docs-row{display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.75rem}

/* ---------- Páginas interiores ---------- */
.page-hero{padding-block:clamp(1.75rem,5vw,3rem) clamp(1.5rem,4vw,2.5rem)}
.page-hero .wrap{display:grid; gap:1rem}
.page-title{font-size:clamp(2.6rem,10vw,5.6rem); font-weight:800; letter-spacing:-.015em; line-height:.95}
.page-lead{font-size:clamp(1.08rem,2.4vw,1.3rem); line-height:1.5; max-width:44ch; color:var(--ink-soft)}
.ridge{display:block; width:100%; height:clamp(90px,14vw,170px)}
.ridge .r1{fill:var(--ridge-1)} .ridge .r2{fill:var(--ridge-2)} .ridge .r3{fill:var(--ridge-3)} .ridge .r4{fill:var(--ridge-4)}
.ridge .rd{fill:var(--arenisca)} .ridge .rc{fill:var(--wall)} .ridge .rt{fill:var(--tile)}
.vsec{padding-block:clamp(2.75rem,7vw,4.5rem)}
.vsec + .vsec{padding-top:0}
.cards3{display:grid; gap:1rem}
@media (min-width:800px){ .cards3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:1100px){ .cards3{grid-template-columns:repeat(3,minmax(0,1fr))} }
.card{display:grid; gap:.55rem; align-content:start; padding:1.25rem; border:1px solid var(--rule); border-radius:12px; background:var(--paper)}
.card .data{color:var(--prado)}
.card h3{font-size:1.3rem}
.card p{color:var(--ink-soft); font-size:.98rem}
.card a{color:var(--prado); font-weight:700; text-underline-offset:3px}
.tellus{display:grid; gap:1rem; padding:clamp(1.25rem,4vw,2rem); border-radius:14px; background:var(--prado); color:var(--on-prado)}
@media (min-width:800px){ .tellus{grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:2rem} }
.tellus h2{font-size:var(--step-2)}
.tellus p{opacity:.92; max-width:56ch}
.mini-map{max-width:300px}
.side-facts{margin:0; display:grid; gap:0; border-top:1px solid var(--rule)}
.side-facts div{display:flex; justify-content:space-between; gap:1rem; padding-block:.7rem; border-bottom:1px solid var(--rule)}
.side-facts dt{color:var(--ink-soft); font-size:.92rem}
.side-facts dd{margin:0; font-family:var(--font-data); font-size:.92rem; text-align:right}

/* ---------- Documentos: estatutos y textos legales ---------- */
.doc-wrap{display:grid; gap:2.5rem; padding-block:clamp(1rem,4vw,2rem) clamp(3rem,8vw,5rem)}
@media (min-width:1000px){ .doc-wrap{grid-template-columns:16rem minmax(0,1fr); gap:4rem; align-items:start} .toc{position:sticky; top:5.5rem; max-height:calc(100vh - 7rem); overflow:auto} }
.toc{font-size:.92rem}
.toc p{font-family:var(--font-data); font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.6rem}
.toc ol{list-style:none; margin:0; padding:0; display:grid; gap:.1rem; border-left:2px solid var(--rule)}
.toc a{display:block; padding:.35rem .8rem; text-decoration:none; color:var(--ink-soft); line-height:1.3}
.toc a:hover{color:var(--prado)}
.doc{max-width:70ch; display:grid; gap:1rem; color:var(--ink)}
.doc h2{font-size:clamp(1.5rem,3.6vw,2rem); margin-top:1.5rem; scroll-margin-top:5.5rem}
.doc h2:first-child{margin-top:0}
.doc h3{font-size:1.18rem; margin-top:.75rem; scroll-margin-top:5.5rem}
.doc h4{font-family:var(--font-display); font-size:1.05rem; margin:.4rem 0 0}
.doc p, .doc li{color:var(--ink-soft)}
.doc ol, .doc ul{margin:0; padding-left:1.4rem; display:grid; gap:.35rem}
.doc ol.alpha{list-style:lower-alpha}
.doc strong{color:var(--ink)}
.doc a{color:var(--prado); font-weight:700; text-underline-offset:3px; overflow-wrap:anywhere}
.doc .titulo{font-family:var(--font-data); font-size:.78rem; letter-spacing:.09em; text-transform:uppercase; color:var(--prado); margin-top:1.75rem}
.doc .sign{padding:1rem 1.1rem; border-radius:8px; background:var(--paper-2); font-size:.95rem}
.doc-meta{display:flex; flex-wrap:wrap; gap:.6rem; align-items:center}
.kv{margin:0; display:grid; gap:0; border-top:1px solid var(--rule)}
.kv div{display:grid; gap:.1rem; padding-block:.7rem; border-bottom:1px solid var(--rule)}
@media (min-width:600px){ .kv div{grid-template-columns:13rem minmax(0,1fr); gap:1rem} }
.kv dt{font-size:.9rem; color:var(--ink-soft)}
.kv dd{margin:0; color:var(--ink)}

/* ---------- Contador de visitas (pie) ---------- */
.visits{grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1rem; padding:1rem 1.1rem; border-radius:12px; background:color-mix(in srgb, var(--on-carbon) 6%, transparent)}
.visits[hidden]{display:none}
.visits .digits{display:inline-flex; gap:3px}
.visits .digits span{
  display:grid; place-items:center; width:1.6rem; height:2.2rem; border-radius:5px;
  background:color-mix(in srgb, var(--on-carbon) 11%, transparent); color:var(--ember);
  font:500 1.2rem/1 var(--font-data); font-variant-numeric:tabular-nums;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.25);
}
.visits .v-label{display:grid; gap:.05rem; line-height:1.3}
.visits .v-label b{color:var(--on-carbon); font-weight:700}
.visits .v-label small{font-size:.84rem}
.foot nav ul{list-style:none; margin:0; padding:0; display:grid; gap:.25rem}
.foot nav a{text-decoration:none}
.foot nav a:hover{text-decoration:underline}

/* ---------- Estadísticas ---------- */
.stat-cards{display:grid; gap:1rem; grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:900px){ .stat-cards{grid-template-columns:repeat(4,minmax(0,1fr))} }
.stat{display:grid; gap:.2rem; padding:1.1rem; border-radius:12px; background:var(--paper-2)}
.stat b{font:500 clamp(1.6rem,5vw,2.4rem)/1.1 var(--font-data); color:var(--prado)}
.stat span{font-size:.88rem; color:var(--ink-soft)}
.bars{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); align-items:end; gap:3px; height:160px; padding-top:1rem; border-bottom:1px solid var(--rule)}
.bars i{display:block; background:var(--prado); border-radius:3px 3px 0 0; min-height:2px}
.bars i.zero{background:var(--rule)}
.tbl{width:100%; border-collapse:collapse; font-size:.95rem}
.tbl th, .tbl td{text-align:left; padding:.65rem .5rem; border-bottom:1px solid var(--rule)}
.tbl th{font-size:.74rem; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-soft); font-weight:500}
.tbl td.n{font-family:var(--font-data); text-align:right}
.tbl th.n{text-align:right}

@media print{
  .site-head, .menu-panel, .foot, .toc, .skip{display:none !important}
  body{background:#fff; color:#000}
  .doc p, .doc li{color:#000}
}

/* ---------- Ajustes ---------- */
@media (min-width:1024px){ .hero-grid.solo{grid-template-columns:minmax(0,1fr)} }
.hero-text .crumbs{margin-bottom:.25rem}
@media (min-width:600px) and (max-width:999px){ .foot .wrap{grid-template-columns:repeat(2,minmax(0,1fr))} .foot-brand{grid-column:1/-1} }
@media (min-width:1000px){ .foot .wrap{grid-template-columns:4fr 3fr 3fr 3fr} }
.near h4 a{color:inherit}
.ev .tag.p{background:color-mix(in srgb, var(--arenisca) 14%, var(--paper))}
.foot .wrap{align-items:start}
.foot-brand{align-items:flex-start}
/* Rejillas de una columna en móvil: que nunca crezcan más que la pantalla */
.agenda-grid, .evs, .srvs, .cards3, .pueblos-grid, .doing, .organos, .recent-wrap, .cesta .wrap, .doc-wrap{grid-template-columns:minmax(0,1fr)}
.ev, .srv, .card{min-width:0}
.ev a, .card a, .doc a, .srv a{overflow-wrap:anywhere}
@media (min-width:700px){ .srvs{grid-template-columns:repeat(2,minmax(0,1fr))} .doing{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:800px){ .cards3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (min-width:900px){ .organos{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (min-width:960px){ .agenda-grid{grid-template-columns:21rem minmax(0,1fr)} .pueblos-grid{grid-template-columns:5fr 7fr} .cesta .wrap{grid-template-columns:minmax(0,11fr) minmax(0,13fr)} }
@media (min-width:1000px){ .doc-wrap{grid-template-columns:16rem minmax(0,1fr)} }
@media (min-width:1100px){ .srvs{grid-template-columns:repeat(4,minmax(0,1fr))} .cards3{grid-template-columns:repeat(3,minmax(0,1fr))} }
.cal-day.has.fest{background:color-mix(in srgb, var(--arenisca) 16%, var(--paper)); color:var(--arenisca)}
