/* ================================================================
   TOKENS
   ================================================================ */
:root{
  /* fijos: las paredes y la noche de San Miguel */
  --noche:#1A120D;
  --noche-2:#261A13;
  --cal:#F3E9D8;
  --almagre:#9A3324;
  --almagre-2:#7C2618;
  --ocre:#C98A2E;
  --ocre-claro:#E6B866;
  --anil:#22385E;
  --rosa:#C98476;
  --verde:#3F6B4F;
  --buga:#A32D63;

  /* cambian con el tema */
  --bg:#EBDFCB;
  --bg-2:#E1D0B5;
  --bg-3:#D7C3A3;
  --ink:#2A1D15;
  --ink-2:#5E4A3B;
  --ink-3:#6A5544;
  --hilo:#B69E7E;
  --acento:#9A3324;
  --sombra-rgb:48,28,14;
  --grafito:rgba(70,58,48,.44);
  --conf:#85560C;
  color-scheme:light;

  --f-disp:'Cormorant Garamond', 'Cormorant', 'Garamond', 'Times New Roman', Georgia, serif;
  --f-sans:'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --ease:cubic-bezier(.25,.46,.45,.94);
  --lado:clamp(20px, 4.2vw, 64px);
  --max:1440px;
  --sol:0;
}
:root, :root[data-theme]{
  --bg:#1D1611; --bg-2:#251C15; --bg-3:#30251C;
  --ink:#F0E6D5; --ink-2:#CFBFA9; --ink-3:#A8957F;
  --hilo:#4D3D30; --acento:#E59C82; --sombra-rgb:0,0,0; --grafito:rgba(232,218,198,.3); --conf:#E6B866;
  color-scheme:dark;
}

/* ================================================================
   BASE
   ================================================================ */
:root{box-sizing:border-box; padding-top:env(safe-area-inset-top, 0px); padding-bottom:env(safe-area-inset-bottom, 0px);}
*,*::before,*::after{box-sizing:inherit;}
html{background:var(--noche); scroll-padding-top:calc(env(safe-area-inset-top, 0px) + 72px); -webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--f-sans); font-weight:500; font-size:1rem; line-height:1.62; letter-spacing:-.006em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden;
}
img{display:block; max-width:100%;}
a{color:inherit;}
button{font:inherit; color:inherit; cursor:pointer; background:none; border:0; padding:0;}
h1,h2,h3,h4,p,figure,blockquote{margin:0;}
html{color-scheme:dark; background:var(--bg); overflow-x:hidden;}
body{overflow-x:clip;}
:focus-visible{outline:3px solid var(--acento); outline-offset:3px; border-radius:2px;}
.portada :focus-visible, .neta :focus-visible, .fiestas :focus-visible, footer :focus-visible, .cuentanos :focus-visible, .pizarron :focus-visible, .nav.sobre :focus-visible{outline-color:var(--ocre-claro);}
#dos:focus{outline:none;}
.sr{position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
.salta{position:fixed; left:12px; top:-80px; z-index:200; background:var(--ocre); color:var(--noche); padding:12px 16px; font-weight:700; text-decoration:none;}
.salta:focus{top:calc(env(safe-area-inset-top, 0px) + 12px);}
.cont{max-width:var(--max); margin:0 auto; padding:0 var(--lado);}

.lbl{font-family:var(--f-sans); font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; line-height:1.3;}
.disp{
  font-family:var(--f-disp); font-weight:300; text-transform:uppercase;
  letter-spacing:-.035em; line-height:.86;
}
.titulo{
  font-size:clamp(3rem, 9vw, 8.6rem); color:var(--ink);
  text-shadow:0 7px 14px rgba(var(--sombra-rgb), .14);
  text-wrap:balance;
}
.cursiva{font-family:var(--f-disp); font-style:italic; font-weight:400;}

.btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:17px 24px; border:1px solid currentColor; border-radius:3px;
  font-family:var(--f-sans); font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  text-decoration:none; transition:background .4s var(--ease), color .4s var(--ease);
}
.btn svg{width:16px; height:16px; transition:transform .4s var(--ease);}
.btn:hover svg{transform:translateX(4px);}
.btn-claro{color:var(--cal);}
.btn-claro:hover{background:var(--cal); color:var(--noche);}
.btn-oscuro{color:var(--ink);}
.btn-oscuro:hover{background:var(--ink); color:var(--bg);}
.enlace{
  font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; text-decoration:none;
  background:linear-gradient(currentColor, currentColor) 0 100% / 0% 1px no-repeat; padding-bottom:3px;
  transition:background-size .4s var(--ease);
}
.enlace:hover{background-size:100% 1px;}

/* estados */
.tag{display:inline-flex; align-items:center; gap:7px; font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; line-height:1; white-space:nowrap;}
.tag::before{content:''; width:7px; height:7px; border-radius:50%; background:currentColor; flex:none;}
.tag-ok{color:var(--verde);}
.tag-conf{color:var(--conf);}
.tag-falta{color:var(--acento);}
.tag-falta::before{background:transparent; box-shadow:inset 0 0 0 1.5px currentColor;}
.tag-broma{color:var(--rosa);}
:root .tag-ok{color:#7FB592;}

/* mapas */
.ir{display:inline-flex; align-items:center; gap:8px; font-size:.78rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; text-decoration:none; color:var(--acento);}
.ir svg{width:15px; height:15px;}
.ir:hover{text-decoration:underline; text-underline-offset:4px;}
.ir.off{color:var(--ink-3); cursor:default;}
.ir.off:hover{text-decoration:none;}

/* ================================================================
   FOTOS CON SOMBRA DE SOL
   ================================================================ */
.cuadro{position:relative; isolation:isolate;}
.cuadro::before{
  content:''; position:absolute; z-index:-1; left:6%; right:6%; top:10%; bottom:-2%;
  background:rgba(var(--sombra-rgb), .5); filter:blur(24px); border-radius:4px;
  transform:translate3d(calc(var(--sol) * 30px), 26px, 0);
  will-change:transform;
}
.marco{position:relative; overflow:hidden; background:var(--bg-3);}
.marco img{width:100%; height:100%; object-fit:cover;}
.rev .marco{clip-path:inset(0 0 100% 0); transition:clip-path 1.2s var(--ease);}
.rev .marco img{transform:scale(1.14); transition:transform 1.8s var(--ease);}
.rev.visto .marco{clip-path:inset(0 0 0 0);}
.rev.visto .marco img{transform:scale(1);}
.rev .cuadro::before, .cuadro.rev::before{opacity:0; transition:opacity 1.4s var(--ease) .35s;}
.rev.visto .cuadro::before, .cuadro.rev.visto::before{opacity:1;}
.pie{margin-top:12px; font-size:.82rem; color:var(--ink-3); line-height:1.4;}

.sube > span{display:block; overflow:hidden; padding-bottom:.04em;}
.sube > span > span{display:block; transform:translateY(106%); transition:transform 1.1s var(--ease);}
.sube.visto > span > span{transform:none;}
.sube > span:nth-child(2) > span{transition-delay:.08s;}
.sube > span:nth-child(3) > span{transition-delay:.16s;}
.sube > span:nth-child(4) > span{transition-delay:.24s;}

@media (prefers-reduced-motion: reduce){
  .rev .marco, .rev .marco img, .sube > span > span{clip-path:none !important; transform:none !important; transition:none !important;}
}
/* cincel: primero el trazo del cantero, luego el relleno */
@media (prefers-reduced-motion: no-preference){
  .cincel{--fin:var(--ink);}
  .neta .cincel, .fiestas .cincel, .portada .cincel, .cuentanos .cincel{--fin:var(--cal);}
  .sube.cincel > span > span, .cincel:not(.sube){
    transform:none; color:transparent; -webkit-text-stroke:1px var(--fin); text-shadow:none;
    clip-path:inset(-15% 100% -15% -3%);
    transition:clip-path 1.3s cubic-bezier(.6,.05,.25,1) var(--d, 0s), color 1s ease calc(var(--d, 0s) + 1.1s), -webkit-text-stroke-color 1s ease calc(var(--d, 0s) + 1.1s), text-shadow 1s ease calc(var(--d, 0s) + 1.1s);
  }
  .sube.cincel.visto > span > span, .cincel.visto:not(.sube){clip-path:inset(-15% -4% -15% -3%); color:var(--fin); -webkit-text-stroke-color:transparent;}
  .sube.cincel > span:nth-child(2) > span{--d:.22s;}
  .sube.cincel > span:nth-child(3) > span{--d:.44s;}
  .sube.cincel > span:nth-child(4) > span{--d:.66s;}
  .titulo.cincel.visto > span > span{text-shadow:0 7px 14px rgba(var(--sombra-rgb), .14);}
  .portada h2.cincel.visto > span > span, .cuentanos h2.cincel.visto > span > span{text-shadow:0 6px 40px rgba(0,0,0,.45);}
  .portada h2.sube > span, .cuentanos h2.sube > span{overflow:visible;}
}

/* ================================================================
   NAVEGACIÓN
   ================================================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:90;
  padding-top:env(safe-area-inset-top, 0px);
  color:var(--ink); background:color-mix(in srgb, var(--bg) 92%, transparent);
  -webkit-backdrop-filter:blur(12px) saturate(1.1); backdrop-filter:blur(12px) saturate(1.1);
  border-bottom:1px solid var(--hilo);
  transition:background .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease);
}
.nav.sobre{background:transparent; color:var(--cal); border-bottom-color:transparent; -webkit-backdrop-filter:none; backdrop-filter:none;}
.nav-in{display:flex; align-items:center; gap:28px; height:68px; max-width:var(--max); margin:0 auto; padding:0 var(--lado);}
.marca{display:flex; align-items:center; gap:12px; text-decoration:none; flex:none;}
.marca-sello{
  width:34px; height:34px; border:1px solid currentColor; border-radius:50%;
  display:grid; place-items:center; font-family:var(--f-disp); font-size:1.05rem; font-style:italic; line-height:1;
}
.marca-txt{font-family:var(--f-disp); font-size:1.15rem; font-weight:500; letter-spacing:-.01em; text-transform:uppercase; line-height:1;}
.marca-txt i{display:block; margin-top:3px; font-size:.82em; font-weight:400; letter-spacing:0; text-transform:none; opacity:.85;}
.nav-links{display:flex; gap:18px; margin-left:auto; min-width:0;}
@media (max-width: 1400px){
  .nav .btn, .sol{display:none;}
  .nav-links{gap:16px; overflow-x:auto; scrollbar-width:none; padding-right:26px;
    -webkit-mask-image:linear-gradient(90deg, #000 calc(100% - 30px), transparent); mask-image:linear-gradient(90deg, #000 calc(100% - 30px), transparent);}
  .nav-links::-webkit-scrollbar{display:none;}
  .nav-links a{flex:none;}
}
.nav-links a{font-size:.74rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; opacity:.78; transition:opacity .3s;}
.nav-links a:hover, .nav-links a.activo{opacity:1;}
.nav-links a.activo{text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1px;}
.sol{width:44px; height:26px; flex:none; opacity:.9;}
.sol path{fill:none; stroke:currentColor; stroke-width:1; stroke-dasharray:2 3; opacity:.6;}
.sol circle{fill:var(--ocre);}
.nav .btn{padding:11px 16px; font-size:.72rem; color:inherit;}
.nav .btn:hover{background:var(--ink); color:var(--bg);}
.nav.sobre .btn:hover{background:var(--cal); color:var(--noche);}
.pausa{flex:none; width:34px; height:34px; margin-left:14px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; opacity:.8; transition:opacity .2s, background .2s;}
.pausa:hover{opacity:1;}
.pausa svg{width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round;}
.pausa .i-play{display:none; fill:currentColor; stroke-width:1.5;}
.pausa[aria-pressed="true"] .i-pausa{display:none;}
.pausa[aria-pressed="true"] .i-play{display:block;}
@media (max-width: 1023px){ .pausa{margin-left:auto;} .nav .menu-btn{margin-left:6px;} }
.quieto *, .quieto *::before, .quieto *::after{animation-play-state:paused !important;}
.quieto .cursor-luz{display:none;}
.marquesina:hover .marquesina-pista, .marquesina:focus-within .marquesina-pista{animation-play-state:paused;}
html:has(dialog.legal[open]){overflow:hidden;}
.menu-btn{display:none; font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:10px 0 10px 12px;}
@media (max-width: 1023px){
  .nav-links, .nav .btn{display:none;}
  .menu-btn{display:block; margin-left:auto;}
}
@media (max-width: 600px){ .sol{display:none;} .nav-in{gap:14px;} .marca-txt{font-size:1rem;} }

.menu{
  position:fixed; inset:0; z-index:95; background:var(--noche); color:var(--cal);
  padding:calc(env(safe-area-inset-top, 0px) + 96px) var(--lado) calc(env(safe-area-inset-bottom, 0px) + 40px);
  display:flex; flex-direction:column; justify-content:space-between;
  clip-path:circle(0% at calc(100% - 44px) 34px); visibility:hidden;
  transition:clip-path .7s var(--ease), visibility 0s linear .7s;
}
.menu.abierto{clip-path:circle(150% at calc(100% - 44px) 34px); visibility:visible; transition:clip-path .7s var(--ease);}
.menu ol{list-style:none; margin:0; padding:0; display:grid; gap:4px;}
.menu li a{display:flex; align-items:baseline; gap:16px; text-decoration:none; font-family:var(--f-disp); font-weight:300; text-transform:uppercase; font-size:clamp(1.7rem, 7vw, 3rem); line-height:1.02; letter-spacing:-.03em;}
.menu li a span{font-family:var(--f-sans); font-size:.72rem; font-weight:600; letter-spacing:.1em; color:var(--ocre-claro); min-width:2.2em;}
.menu-cerrar{position:absolute; top:calc(env(safe-area-inset-top, 0px) + 22px); right:var(--lado); font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:10px 0;}

/* ================================================================
   CAPÍTULOS: portada fija + pliego que la cubre
   ================================================================ */
.capitulo{position:relative;}
.portada{
  position:sticky; top:0; height:100vh; height:100svh; overflow:hidden;
  background:var(--noche); color:var(--cal); --p:0;
}
.portada-foto{position:absolute; inset:0;}
.portada-foto img{width:100%; height:100%; object-fit:cover; transform:scale(calc(1.02 + var(--p) * .1)); will-change:transform;}
.portada-velo{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(26,18,13,.55) 0%, rgba(26,18,13,.1) 38%, rgba(26,18,13,.35) 62%, rgba(26,18,13,.9) 100%);
}
.portada-velo::after{content:''; position:absolute; inset:0; background:var(--noche); opacity:calc(var(--p) * .75);}
.portada-txt{
  position:absolute; left:0; right:0; bottom:0;
  padding:0 var(--lado) clamp(40px, 8vh, 96px); max-width:var(--max); margin:0 auto;
  transform:translate3d(0, calc(var(--p) * -60px), 0); opacity:calc(1 - var(--p) * 1.1);
}
.portada-num{display:flex; align-items:center; gap:18px; margin-bottom:18px;}
.portada-num b{font-family:var(--f-disp); font-weight:300; font-size:1.6rem; font-style:italic; color:var(--ocre-claro);}
.portada-num i{flex:0 0 64px; height:1px; background:currentColor; opacity:.5;}
.portada h2{font-size:clamp(3rem, 8.6vw, 8.8rem); max-width:13ch; text-shadow:0 6px 40px rgba(0,0,0,.45);}
.portada-sub{margin-top:22px; max-width:40ch; font-family:var(--f-disp); font-style:italic; font-weight:400; font-size:clamp(1.3rem, 2.2vw, 1.8rem); line-height:1.25; opacity:.92;}

.pliego{
  position:relative; z-index:2; background:var(--pl, var(--bg)); color:var(--ink);
  box-shadow:0 -40px 70px -10px rgba(12,7,4,.6);
}
.pliego::before{ /* orilla recortada, como papel picado */
  content:''; position:absolute; left:0; right:0; top:-11px; height:12px;
  background:radial-gradient(circle at 11px 12px, var(--pl, var(--bg)) 10.5px, transparent 11px) repeat-x;
  background-size:22px 12px;
}
.capitulo > .pliego{margin-top:55vh; margin-top:55svh;}
#inicio > .pliego{margin-top:22vh; margin-top:22svh;}
@media (max-width: 760px){ .capitulo > .pliego{margin-top:40vh; margin-top:40svh;} #inicio > .pliego{margin-top:14vh;} }
.capitulo:not(#inicio) > .portada .portada-txt::after{
  content:"Sigue bajando"; display:block; margin-top:28px; padding-left:30px;
  font-family:var(--f-sans); font-size:.66rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; opacity:.72;
  background:linear-gradient(currentColor, currentColor) 0 50% / 20px 1px no-repeat;
}
@media (prefers-reduced-motion: no-preference){
  .capitulo:not(#inicio) > .portada .portada-txt::after{animation:baja 2.4s var(--ease) infinite;}
  @keyframes baja{0%, 100%{background-size:20px 1px;} 50%{background-size:8px 1px;}}
}
.pliego-in{padding:clamp(88px, 12vw, 168px) 0 clamp(96px, 12vw, 176px);}
.cabeza{display:flex; align-items:center; gap:18px; margin-bottom:28px; color:var(--ink-2);}
.cabeza b{font-family:var(--f-disp); font-style:italic; font-weight:400; font-size:1.5rem; color:var(--acento);}
.cabeza i{flex:0 0 64px; height:1px; background:var(--hilo);}
.intro{margin-top:30px; max-width:52ch; font-size:1.08rem; color:var(--ink-2);}
.regla{height:1px; background:var(--hilo); border:0; margin:0;}

@media (prefers-reduced-motion: reduce){
  .portada-foto img, .portada-txt{transform:none !important; opacity:1 !important;}
  .portada-velo::after{opacity:0 !important;}
}

/* ================================================================
   PORTADA INICIAL (hero)
   ================================================================ */
.hero .portada-foto img{object-position:50% 45%;}
.hero .portada-velo{background:linear-gradient(180deg, rgba(26,18,13,.5) 0%, rgba(26,18,13,0) 26%, rgba(26,18,13,0) 58%, rgba(26,18,13,.55) 80%, rgba(26,18,13,.86) 100%), linear-gradient(90deg, rgba(26,18,13,.66) 0%, rgba(26,18,13,.32) 34%, rgba(26,18,13,0) 58%);}
.hero-meta{
  position:absolute; left:0; right:0; top:calc(env(safe-area-inset-top, 0px) + 96px);
  display:flex; justify-content:space-between; gap:20px; padding:0 var(--lado); max-width:var(--max); margin:0 auto; opacity:.85;
}
.hero-txt{bottom:clamp(82px, 12vh, 128px);}
@media (min-width: 721px){
  .hero-txt{top:clamp(124px, 18vh, 184px); display:flex; flex-direction:column; justify-content:space-between; padding-bottom:0;}
  .hero .h1-main{font-size:clamp(4.4rem, 11.4vw, 11.4rem); line-height:.84;}
  .hero .h1-main .w{display:block;}
  .hero .h1-sub{font-size:clamp(2rem, 4.2vw, 4.2rem);}
}
.hero-kicker{font-family:var(--f-disp); font-style:italic; font-weight:300; font-size:clamp(1.6rem, 3.4vw, 3.2rem); line-height:1; margin-bottom:.1em; padding-left:.08em; color:var(--ocre-claro);}
.hero-titulo{margin:0;}
.hero .h1-main{display:block; font-size:clamp(4.2rem, 15.6vw, 16rem); line-height:.8; letter-spacing:-.05em; margin-left:-.04em; white-space:nowrap; filter:url(#labrado);}
.hero-bajo p{text-shadow:0 1px 12px rgba(0,0,0,.5);}
.hero .h1-sub{display:block; margin-top:.12em; margin-left:.06em; text-align:left; filter:url(#labrado); font-family:var(--f-disp); font-style:italic; font-weight:300; font-size:clamp(2rem, 5.2vw, 5.2rem); line-height:1; letter-spacing:-.01em; color:var(--ocre-claro);}
.hero h1 .w{display:inline-block; white-space:nowrap;}
.hero h1 .l{display:inline-block;}
.hero-bajo{display:flex; justify-content:space-between; align-items:flex-end; gap:28px; flex-wrap:wrap; margin-top:clamp(20px, 3.4vh, 36px);}
.hero-bajo p{max-width:34ch; font-size:clamp(1.02rem, 1.4vw, 1.18rem); line-height:1.5; opacity:.92;}
.hero-acc{display:flex; align-items:center; gap:26px; flex-wrap:wrap;}
.marquesina{
  position:absolute; left:0; right:0; bottom:0; overflow:hidden; white-space:nowrap;
  border-top:1px solid rgba(243,233,216,.22); padding:14px 0 calc(14px + env(safe-area-inset-bottom, 0px));
  opacity:calc(1 - var(--p) * 1.6);
}
.marquesina-pista{display:inline-flex; animation:marquesina 38s linear infinite;}
.marquesina span{font-family:var(--f-disp); font-style:italic; font-weight:400; font-size:1.35rem; padding:0 22px; opacity:.9;}
.marquesina span.e{color:var(--ocre-claro); font-style:normal; padding:0; font-size:.95rem; position:relative; top:-2px;}
@keyframes marquesina{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: no-preference){
  .hero .portada-foto img{animation:acerca 2.4s var(--ease) both;}
  .hero-titulo{animation:aparece 1.4s var(--ease) .3s both;}
  .h1-sub, .hero-bajo, .hero-meta{animation:aparece 1s var(--ease) both;}
  .h1-sub{animation-delay:.85s;}
  .hero-bajo{animation-delay:1.05s;}
  .hero-meta{animation-delay:1.1s;}
  @keyframes acerca{from{transform:scale(1.18);}}
  @keyframes letra{from{transform:translateY(40%); opacity:0;}}
  @keyframes aparece{from{opacity:0; transform:translateY(14px);}}
}
@media (prefers-reduced-motion: reduce){ .marquesina-pista{animation:none;} }
@media (max-width: 720px){
  .hero-meta span:last-child{display:none;}
  .hero .h1-main{font-size:clamp(3.6rem, 20vw, 7rem); white-space:normal;}
  .hero .h1-sub{text-align:left; font-size:clamp(1.9rem, 9vw, 2.6rem);}
}

/* ================================================================
   I. DOS SAN MIGUEL
   ================================================================ */
.guirnalda{position:relative; height:96px; margin:-11px 0 0; pointer-events:none; overflow:hidden;}
.guirnalda-capa{position:absolute; inset:0;}
.guirnalda-capa.sombra{transform:translate3d(calc(var(--sol) * 22px), 26px, 0) skewX(calc(var(--sol) * -10deg)); filter:blur(2px); opacity:.26; will-change:transform;}
.guirnalda-capa.sombra svg *{fill:rgb(var(--sombra-rgb)) !important; stroke:rgb(var(--sombra-rgb)) !important;}
.guirnalda svg.hilo-svg{position:absolute; inset:0; width:100%; height:100%;}
.guirnalda svg.hilo-svg path{fill:none; stroke:#6B5443; stroke-width:1.2; vector-effect:non-scaling-stroke;}
.bandera{position:absolute; top:0; width:48px; height:64px; transform-origin:50% 0;}
@media (prefers-reduced-motion: no-preference){ .guirnalda-capa:not(.sombra):not(.luz) .bandera{animation:mece 3.6s ease-in-out infinite alternate; animation-delay:var(--d);} }
@keyframes mece{from{transform:rotate(-5.5deg) translate3d(0,0,0);} to{transform:rotate(5.5deg) translate3d(0,2px,0);}}

.dos{--pl:var(--bg);}
.dos .pliego-in{overflow:hidden;}
.dos .pliego-in{padding-top:clamp(40px, 6vw, 88px); position:relative;}
.luz{
  position:absolute; z-index:0; pointer-events:none; top:6%; right:-6%; width:min(56vw, 760px); height:min(70vw, 900px);
  background:
    linear-gradient(90deg, transparent 0 22%, rgba(var(--sombra-rgb),.9) 22% 24%, transparent 24% 48%, rgba(var(--sombra-rgb),.9) 48% 50%, transparent 50% 74%, rgba(var(--sombra-rgb),.9) 74% 76%, transparent 76%),
    linear-gradient(180deg, transparent 0 46%, rgba(var(--sombra-rgb),.9) 46% 48%, transparent 48%),
    rgba(255, 236, 196, .75);
  -webkit-mask-image:radial-gradient(closest-side, #000 55%, transparent);
          mask-image:radial-gradient(closest-side, #000 55%, transparent);
  mix-blend-mode:soft-light; filter:blur(7px); opacity:.55;
  transform:translate3d(calc(var(--sol) * 90px), 0, 0) skewX(-22deg);
}
.dos .cont{position:relative; z-index:1;}
.dos-cols{display:grid; grid-template-columns:1fr 1px 1fr; gap:clamp(28px, 4vw, 64px); margin-top:clamp(56px, 7vw, 96px);}
.dos-cols > .regla{width:1px; height:auto;}
.ciudad h3{font-size:clamp(2rem, 3.8vw, 3.4rem); margin:14px 0 24px;}
.ciudad .fotos{display:grid; grid-template-columns:1.25fr 1fr; gap:14px; align-items:end;}
.ciudad .fotos .cuadro:first-child .marco{aspect-ratio:3/4;}
.ciudad .fotos .cuadro:last-child .marco{aspect-ratio:4/5;}
.ciudad .fotos .cuadro:last-child{margin-bottom:-28px;}
.ciudad > p{margin-top:48px; max-width:44ch; color:var(--ink-2); font-size:1.02rem;}
.manifiesto{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:clamp(32px, 6vw, 96px); margin-top:clamp(80px, 10vw, 150px); align-items:end;}
.manifiesto .grande{font-family:var(--f-disp); font-weight:400; font-size:clamp(1.6rem, 2.7vw, 2.35rem); line-height:1.24; letter-spacing:-.01em;}
.manifiesto .grande em{color:var(--acento);}
.manifiesto .chico{font-size:1.04rem; color:var(--ink-2); max-width:46ch;}
.manifiesto .firma{margin-top:22px; font-family:var(--f-disp); font-style:italic; font-size:1.3rem; color:var(--ink);}
.leyenda{margin-top:clamp(72px, 9vw, 120px); border-top:1px solid var(--hilo); border-bottom:1px solid var(--hilo); display:grid; grid-template-columns:auto repeat(3, 1fr);}
.leyenda > *{padding:22px 24px; border-left:1px solid var(--hilo);}
.leyenda > :first-child{border-left:0; padding-left:0; font-family:var(--f-disp); font-size:1.4rem; font-style:italic; align-self:center;}
.leyenda p{margin-top:10px; font-size:.9rem; color:var(--ink-2); line-height:1.45;}
@media (max-width: 860px){
  .dos-cols{grid-template-columns:1fr;}
  .dos-cols > .regla{height:1px; width:auto; margin:24px 0;}
  .manifiesto{grid-template-columns:1fr;}
  .leyenda{grid-template-columns:1fr;}
  .leyenda > *{border-left:0; border-top:1px solid var(--hilo); padding-left:0;}
  .leyenda > :first-child{border-top:0;}
}

/* ================================================================
   II. HISTORIA (horizontal)
   ================================================================ */
.historia{position:relative; background:var(--bg-2); z-index:3; box-shadow:0 -30px 60px -20px rgba(12,7,4,.35);}
.hist-pin{position:sticky; top:0; height:100vh; height:100svh; overflow:hidden; display:flex; flex-direction:column; justify-content:center;}
.hist-pista{display:flex; align-items:stretch; will-change:transform; padding-left:var(--lado);}
.hist-intro{flex:0 0 min(70vw, 760px); padding-right:clamp(40px, 6vw, 110px); display:flex; flex-direction:column; justify-content:center;}
.hist-intro .titulo{font-size:clamp(3rem, 8vw, 7.4rem);}
.hist-foto{margin:30px 0 0; max-width:300px;}
.hist-foto .marco{aspect-ratio:4/3;}
.historia.lineal .hist-foto{max-width:420px;}
.hist-intro p{margin-top:26px; max-width:40ch; color:var(--ink-2); font-size:1.05rem;}
.hist-intro .desliza{margin-top:30px; display:flex; align-items:center; gap:14px; color:var(--acento);}
.hist-intro .desliza i{width:64px; height:1px; background:currentColor;}
.anio{flex:0 0 clamp(300px, 30vw, 440px); padding:36px clamp(24px, 2.6vw, 40px) 36px; border-left:1px solid var(--hilo); display:flex; flex-direction:column;}
.anio b{display:block; font-family:var(--f-disp); font-weight:300; font-size:clamp(4rem, 7.2vw, 7rem); line-height:.82; letter-spacing:-.045em; color:var(--acento);}
.anio b small{font-size:.5em; letter-spacing:-.02em;}
.anio h3{margin-top:26px; font-family:var(--f-disp); font-weight:500; font-size:1.55rem; line-height:1.12;}
.anio p{margin-top:12px; font-size:.96rem; line-height:1.55; color:var(--ink-2);}
.anio .fte{margin-top:auto; padding-top:22px; font-size:.72rem; color:var(--ink-3); letter-spacing:.04em;}
.anio.ultimo{border-right:1px solid var(--hilo); margin-right:var(--lado);}
.hist-barra{position:absolute; left:var(--lado); right:var(--lado); bottom:calc(env(safe-area-inset-bottom, 0px) + 36px); height:1px; background:var(--hilo);}
.hist-barra i{position:absolute; inset:0; background:var(--acento); transform-origin:left; transform:scaleX(0);}
.historia.lineal .hist-pin{position:static; height:auto; overflow:visible; padding:clamp(88px, 12vw, 150px) 0;}
.historia.lineal{overflow:clip;}
.historia.lineal .hist-pista{flex-direction:column; padding:0 var(--lado); transform:none !important;}
.historia.lineal .hist-intro{flex:none; padding:0 0 40px;}
.historia.lineal .anio{flex:none; border-left:0; border-top:1px solid var(--hilo); padding:28px 0;}
.historia.lineal .anio.ultimo{border-right:0; margin:0;}
.historia.lineal .hist-barra, .historia.lineal .desliza{display:none;}

/* ================================================================
   III. COMUNIDADES
   ================================================================ */
.filas{margin-top:clamp(56px, 7vw, 96px); border-top:1px solid var(--hilo);}
.fila{border-bottom:1px solid var(--hilo);}
.fila-cab{
  width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:24px; align-items:center;
  padding:clamp(22px, 3vw, 34px) 0; text-align:left;
}
.fila-nom{display:block; font-size:clamp(2.3rem, 6.4vw, 5.6rem); transition:transform .5s var(--ease), color .4s var(--ease);}
.fila-lema{display:block; margin-top:10px; font-family:var(--f-disp); font-style:italic; font-size:clamp(1.1rem, 1.6vw, 1.35rem); color:var(--ink-2);}
.fila-cab:hover .fila-nom{transform:translateX(14px); color:var(--acento);}
.fila-mas{width:46px; height:46px; border:1px solid var(--hilo); border-radius:50%; display:grid; place-items:center; transition:transform .5s var(--ease), background .4s;}
.fila-mas svg{width:16px; height:16px;}
.fila-cab[aria-expanded="true"] .fila-mas{transform:rotate(45deg); background:var(--ink); color:var(--bg); border-color:var(--ink);}
.fila-cuerpo{display:grid; grid-template-rows:0fr; transition:grid-template-rows .7s var(--ease);}
.fila-cuerpo > div{overflow:hidden;}
.fila.abierta .fila-cuerpo{grid-template-rows:1fr;}
.dibujo-col{aspect-ratio:4/3; padding:5%; border:1px solid var(--hilo); background:radial-gradient(ellipse at 50% 62%, rgba(var(--sombra-rgb), .05), transparent 70%);}
.dibujo-col svg{width:100%; height:100%; display:block; overflow:visible;}
.dibujo-col path{fill:none; stroke:var(--ink-3); stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; opacity:.82;}
.dibujo-col .h{stroke-width:.8; opacity:.6;}
.dibujo-col .eco{opacity:.3;}
.dibujo-col .tr{stroke-dasharray:1 1; stroke-dashoffset:1; transition:stroke-dashoffset 2.6s cubic-bezier(.4,0,.2,1);}
.dibujo-col.visto .tr{stroke-dashoffset:0;}
@media (prefers-reduced-motion: reduce){ .dibujo-col .tr{stroke-dashoffset:0; transition:none;} }
.fiesta-col{margin-top:18px; padding:14px 18px; border-left:3px solid var(--acento); background:var(--bg-2);}
.fiesta-col .lbl{color:var(--acento);}
.fc-cuando{margin-top:4px; font-size:1.35rem; line-height:1.15;}
.fc-que{margin-top:6px; font-size:.92rem; line-height:1.5; color:var(--ink-2);}
.fila-det{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(28px, 4vw, 64px); padding:8px 0 clamp(40px, 5vw, 64px);}
.fila-det .marco{aspect-ratio:4/3;}
.fila-det .cronica{font-family:var(--f-disp); font-size:clamp(1.3rem, 1.9vw, 1.6rem); line-height:1.35; font-weight:400;}
.fila-det dl{margin:26px 0 0; display:grid; gap:16px;}
.fila-det dl div{display:grid; grid-template-columns:140px 1fr; gap:16px; align-items:baseline; padding-top:16px; border-top:1px solid var(--hilo);}
.fila-det dd{margin:0; font-size:.95rem; color:var(--ink-2);}
.fila-det blockquote{margin-top:28px; padding-left:22px; border-left:2px solid var(--ocre); font-family:var(--f-disp); font-style:italic; font-size:1.35rem; line-height:1.3;}
.fila-det blockquote cite{display:block; margin-top:8px; font-family:var(--f-sans); font-style:normal; font-size:.8rem; color:var(--ink-3);}
.fila-det .acciones{margin-top:28px; display:flex; gap:22px; flex-wrap:wrap; align-items:center;}
.vacio{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:24px;
  color:var(--ink-3); background:
    radial-gradient(circle at 50% 50%, transparent 0 5px, var(--bg-3) 5.5px) 0 0 / 26px 26px,
    var(--bg-2);
}
.vacio span{font-family:var(--f-disp); font-style:italic; font-size:1.2rem; color:var(--ink-2); background:var(--bg-3); padding:4px 12px;}
.vacio svg{width:26px; height:26px;}
@media (max-width: 760px){
  .fila-cab{grid-template-columns:minmax(0,1fr) auto;}
  .fila-cab .tag{display:none;}
  .fila-det{grid-template-columns:1fr;}
  .fila-det dl div{grid-template-columns:1fr; gap:6px;}
}

/* ================================================================
   IV. PUNTOS DE ENCUENTRO + PARQUE ZEFERINO
   ================================================================ */
.zeferino{position:relative; margin-top:clamp(56px, 7vw, 96px); background:var(--bg-2); overflow:hidden; isolation:isolate; contain:paint; min-height:600px; scroll-margin-top:120px;}
.zf-guirnalda{position:absolute; left:0; right:0; top:0; height:150px; margin:0; z-index:1; opacity:0; transform:translate3d(0,-60px,0); transition:opacity .6s var(--ease), transform .8s var(--ease);}
.zeferino.abierto .zf-guirnalda{transition:opacity 1.4s var(--ease) 1.6s, transform 1.8s var(--ease) 1.6s;}
.zeferino.abierto .zf-guirnalda{opacity:1; transform:none;}
.guirnalda-capa.luz{transform:translate3d(calc(var(--sol) * 34px), 58px, 0) scale(1.06, 1.5); transform-origin:50% 0; filter:blur(10px) saturate(1.6); opacity:.5; will-change:transform;}
.zf-cont{position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(28px, 5vw, 72px); padding:clamp(150px, 15vw, 186px) clamp(22px, 4vw, 56px) clamp(64px, 6vw, 80px);}
.zf-lbl{color:var(--acento);}
.zf-cont h3{margin-top:14px; font-size:clamp(2.6rem, 5.4vw, 5rem); padding-bottom:16px;
  background:linear-gradient(90deg, #D7312A, #EE8A2B, #F2CF3A, #2E8B57, #2F5DA8, #7A3D96, #D7312A) 0 100% / 200% 4px no-repeat;}
.zeferino.abierto .zf-cont h3{animation:arcoiris 7s linear infinite;}
@keyframes arcoiris{to{background-position:200% 100%;}}
.zf-lead{margin-top:22px; font-family:var(--f-disp); font-size:clamp(1.3rem, 1.9vw, 1.6rem); line-height:1.32;}
.zf-cita{margin:28px 0 0; padding:18px 22px; background:var(--bg); border-left:4px solid transparent; border-image:linear-gradient(#D7312A, #EE8A2B, #F2CF3A, #2E8B57, #2F5DA8, #7A3D96) 1; font-family:var(--f-disp); font-style:italic; font-size:1.55rem; line-height:1.15;}
.zf-cita cite{display:block; margin-top:8px; font-family:var(--f-sans); font-style:normal; font-size:.82rem; line-height:1.4; color:var(--ink-3);}
.zf-lista{list-style:none; margin:0; padding:0;}
.zf-lista li{display:grid; grid-template-columns:132px 1fr; gap:16px; padding:15px 0; border-top:1px solid var(--hilo); font-size:.95rem; color:var(--ink-2);}
.zf-lista b{font-size:.7rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-3); padding-top:3px;}
.zf-acc{display:flex; gap:22px; align-items:center; flex-wrap:wrap; padding-top:18px; border-top:1px solid var(--hilo);}
.zf-cortina{position:absolute; inset:0; z-index:3; display:flex; pointer-events:none;}
.zf-panel{flex:1; height:100%; position:relative; transform:translate3d(0,0,0); transform-origin:50% 0; will-change:transform; backface-visibility:hidden; transition:transform 2.6s cubic-bezier(.45,.05,.15,1); transition-delay:calc((5 - var(--i)) * 90ms);}
.zf-tela{position:absolute; inset:0 0 -12px 0; background:var(--c); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56'%3E%3Cpath fill-rule='evenodd' d='M0 0H56V56H0Z M22 28a6 6 0 1 0 12 0a6 6 0 1 0-12 0Z M28 5l4 6l-4 6l-4-6Z M28 39l4 6l-4 6l-4-6Z M5 28l6-4l6 4l-6 4Z M39 28l6-4l6 4l-6 4Z M3 3h4v4H3Z M49 3h4v4h-4Z M3 49h4v4H3Z M49 49h4v4h-4Z'/%3E%3C/svg%3E") 0 0 / 56px 56px; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56'%3E%3Cpath fill-rule='evenodd' d='M0 0H56V56H0Z M22 28a6 6 0 1 0 12 0a6 6 0 1 0-12 0Z M28 5l4 6l-4 6l-4-6Z M28 39l4 6l-4 6l-4-6Z M5 28l6-4l6 4l-6 4Z M39 28l6-4l6 4l-6 4Z M3 3h4v4H3Z M49 3h4v4h-4Z M3 49h4v4H3Z M49 49h4v4h-4Z'/%3E%3C/svg%3E") 0 0 / 56px 56px;}
.zeferino.abierto .zf-panel{transform:translate3d(0, -108%, 0) rotate(calc((var(--i) - 2.5) * 1.2deg)); transition-delay:calc(var(--i) * 150ms);}

.zf-abrir{
  position:absolute; z-index:4; left:50%; top:50%; transform:translate(-50%, -50%);
  display:flex; flex-direction:column; align-items:center; gap:12px; padding:28px 38px 24px;
  background:var(--cal); color:var(--noche);
  box-shadow:12px 26px 44px -16px rgba(0,0,0,.5);
  transition:opacity .4s var(--ease), background .3s;
}
.zf-abrir:hover{background:#fff;}
.zf-abrir-t{font-family:var(--f-disp); font-weight:300; text-transform:uppercase; font-size:clamp(1.9rem, 3.6vw, 3rem); letter-spacing:-.03em; line-height:.9;}
.zf-abrir-b{font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;}
.zeferino.abierto .zf-abrir{left:auto; top:auto; right:14px; bottom:12px; transform:none; padding:8px 12px; background:transparent; color:var(--ink-3); box-shadow:none;}
.zeferino.abierto .zf-abrir-t{display:none;}
.zeferino.abierto .zf-abrir-b{font-size:.68rem;}
.pin-orgullo i{background:linear-gradient(#D7312A, #EE8A2B, #F2CF3A, #2E8B57, #2F5DA8, #7A3D96);}
@media (prefers-reduced-motion: reduce){ .zf-panel, .zf-guirnalda{transition:none !important;} }
@media (max-width: 860px){
  .zf-cont{grid-template-columns:1fr; padding-top:130px;}
  .zf-lista li{grid-template-columns:1fr; gap:4px;}
}

.directorio{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0 clamp(28px, 4vw, 64px); margin-top:clamp(56px, 7vw, 96px);}
.dir{padding:34px 0 40px; border-top:1px solid var(--hilo);}
.dir .lbl{color:var(--acento);}
.dir h3{margin-top:12px; font-size:clamp(2.2rem, 4vw, 3.4rem);}
.dir .sub{margin-top:8px; font-family:var(--f-disp); font-style:italic; font-size:1.25rem; color:var(--ink-2);}
.dir .txt{margin-top:14px; font-size:.97rem; color:var(--ink-2); max-width:54ch;}
.dir-foto{margin:20px 30px 6px 0; max-width:440px;}
.dir-foto .marco{aspect-ratio:16/10;}
.dir .dato-dir{margin-top:10px; font-size:.86rem; color:var(--ink-3);}
.dir .acc{margin-top:20px; display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center;}
.direccion{margin-top:8px; font-size:.74rem; line-height:1.4; letter-spacing:.02em; color:var(--ink-3);}
.direccion::before{content:"Dirección: "; font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:.62rem;}
.pie-plato .direccion{margin-top:-4px;}
@media (max-width: 760px){ .directorio{grid-template-columns:1fr;} }

/* ruta en fotos e inserto */
.ruta-fotos{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:22px 14px; margin-top:28px;}
.ruta-fotos .marco{aspect-ratio:4/3;}
.ruta-fotos .pie{margin-top:8px;}
.inserto{position:absolute; z-index:2; right:-8px; top:-16px; width:36%; margin:0; background:#fff; padding:5px 5px 18px; transform:rotate(4deg); box-shadow:8px 14px 24px -8px rgba(var(--sombra-rgb), .5);}
.inserto img{width:100%; aspect-ratio:3/4; object-fit:cover;}

/* índice en la portada */
.indice{
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  display:grid; grid-template-columns:repeat(10, minmax(0,1fr));
  border-top:1px solid rgba(243,233,216,.24); padding:0 var(--lado) env(safe-area-inset-bottom, 0px);
  background:linear-gradient(180deg, rgba(26,18,13,0), rgba(26,18,13,.35));
  opacity:calc(1 - var(--p) * 1.6);
}
.indice a{
  display:flex; flex-direction:column; gap:5px; padding:15px 12px 17px; text-decoration:none;
  border-left:1px solid rgba(243,233,216,.14); transition:background .4s var(--ease);
}
.indice a:first-child{border-left:0;}
.indice a:hover, .indice a:focus-visible{background:rgba(243,233,216,.1);}
.indice b{font-family:var(--f-disp); font-style:italic; font-weight:400; font-size:1.15rem; line-height:1; color:var(--ocre-claro);}
.indice span{font-size:.68rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; line-height:1.25;}
@media (max-width: 1023px){
  .indice{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:0;}
  .indice::-webkit-scrollbar{display:none;}
  .indice a{flex:0 0 auto; min-width:118px; scroll-snap-align:start;}
  .indice a:first-child{padding-left:var(--lado);}
}

/* la subida y los miradores */
.subida{margin:0 0 48px;}
.subida h3{font-family:var(--f-disp); font-size:1.8rem; font-weight:400; line-height:1.1; margin-top:6px;}
.subida-tira{display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding:18px 4px 12px; margin:0 -4px; scrollbar-width:thin;}
.parada{flex:0 0 min(62%, 300px); scroll-snap-align:start; position:relative; margin:0;}
.parada .marco{aspect-ratio:4/5;}
.parada-n{position:absolute; z-index:3; top:-10px; left:-6px; width:34px; height:34px; border-radius:50%; background:var(--ink); color:var(--bg); display:grid; place-items:center; font-family:var(--f-disp); font-size:1.15rem; font-style:italic;}
.miradores{margin-top:clamp(72px, 9vw, 120px); padding-top:40px; border-top:1px solid var(--hilo);}
.mir-cab{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px 64px; align-items:end;}
.mir-cab .lbl{grid-column:1 / -1;}
.mir-cab h3{font-size:clamp(2.6rem, 6vw, 5rem);}
.mir-cab p:last-child{color:var(--ink-2); max-width:48ch;}
.mir-lista{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:clamp(18px, 2vw, 32px); margin-top:40px;}
.mir-foto .marco{aspect-ratio:4/3; position:relative;}
.mir h4{margin-top:18px; font-size:clamp(1.5rem, 2vw, 1.9rem);}
.mir dl{margin:14px 0 16px; display:grid; gap:10px;}
.mir dt{font-size:.66rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-3);}
.mir dd{margin:2px 0 0; font-size:.9rem; color:var(--ink-2); line-height:1.45;}
@media (max-width: 1023px){ .mir-lista{grid-template-columns:repeat(2, minmax(0,1fr));} }
@media (max-width: 600px){ .mir-lista{grid-template-columns:1fr;} .mir-cab{grid-template-columns:1fr;} }

/* cursor */
.cursor-luz{
  position:fixed; left:-230px; top:-230px; z-index:150; width:460px; height:460px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(255,214,150,.14) 0%, rgba(255,190,110,.06) 30%, rgba(255,190,110,0) 62%);
  mix-blend-mode:screen; opacity:0; transition:opacity .6s var(--ease); will-change:transform;
}
.cursor-anillo{position:fixed; left:-17px; top:-17px; z-index:151; width:34px; height:34px; pointer-events:none; opacity:0; transition:opacity .4s; will-change:transform;}
.cursor-anillo .ar{position:absolute; inset:0; border-radius:50%; border:1.5px solid var(--ocre); display:grid; place-items:center; transition:transform .4s var(--ease), background .3s, border-color .3s;}
.cursor-anillo i{font-style:normal; font-size:11px; color:var(--ocre); opacity:0; transform:scale(.3) rotate(-90deg); transition:opacity .3s, transform .4s var(--ease);}
.con-cursor .cursor-luz{opacity:1;}
.con-cursor .cursor-anillo{opacity:.95;}
.cursor-anillo.sobre .ar{transform:scale(1.7); background:rgba(201,138,46,.14); border-color:var(--ocre-claro);}
.cursor-anillo.sobre i{opacity:1; transform:scale(.6);}
.cursor-anillo.presion .ar{transform:scale(.7);}
.chispa{position:fixed; z-index:152; pointer-events:none; font-size:13px; line-height:1; text-shadow:0 0 6px rgba(255,210,140,.7);}

/* matasellos de la portada */
.matasellos{position:absolute; z-index:1; right:var(--lado); top:calc(env(safe-area-inset-top, 0px) + 132px); width:clamp(150px, 15vw, 210px); transform:rotate(-12deg); opacity:.78; pointer-events:none;}
.matasellos circle, .matasellos .ms-ondas{fill:none; stroke:var(--cal); stroke-width:1.4;}
.matasellos text{fill:var(--cal); font-family:var(--f-sans); font-weight:700; text-anchor:middle;}
.matasellos .ms-arco{font-size:10.5px; letter-spacing:.1em;}
.matasellos .ms-1{font-family:var(--f-disp); font-style:italic; font-weight:400; font-size:21px;}
.matasellos .ms-2{font-size:11px; letter-spacing:.2em;}
@media (max-width: 760px){ .matasellos{display:none;} }
@media (min-width: 861px){
  .hero{background:var(--bg); color:var(--ink);}
  .hero .portada-foto{left:46%; box-shadow:-30px 0 60px -24px rgba(var(--sombra-rgb), .45);}
  .hero .portada-velo{left:46%; background:linear-gradient(90deg, rgba(26,18,13,.26), rgba(26,18,13,0) 20%), linear-gradient(180deg, rgba(26,18,13,.4), rgba(26,18,13,0) 20%);}
  .hero .hero-txt{right:54%; margin:0; max-width:none;}
  .hero .h1-main{font-size:clamp(4rem, 8.4vw, 9.4rem); filter:url(#labrado-tinta);}
  .hero .h1-sub{color:var(--acento); font-size:clamp(1.8rem, 3.1vw, 3.3rem); filter:url(#labrado-tinta);}
  .hero-bajo{flex-direction:column; align-items:flex-start;}
  .hero-bajo p{color:var(--ink-2); text-shadow:none;}
  .hero .btn-claro{color:var(--ink);}
  .hero .btn-claro:hover{background:var(--ink); color:var(--bg);}
  .hero .enlace{color:var(--ink); padding:15px 24px; background:var(--bg); border:1px solid var(--hilo); background-image:none;
    box-shadow:0 16px 30px -14px rgba(var(--sombra-rgb), .6), 0 3px 8px rgba(var(--sombra-rgb), .14); transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
  .hero .enlace:hover{transform:translateY(-2px); box-shadow:0 22px 36px -14px rgba(var(--sombra-rgb), .65), 0 4px 10px rgba(var(--sombra-rgb), .16);}
  .hero-meta{right:54%; margin:0; max-width:none;}
  .hero .marquesina{background:rgba(26,18,13,.9); color:var(--cal); border-top:0;}
  .nav.sobre{color:var(--ink);}
}
@media (min-width: 861px) and (max-width: 1280px){ .hero-meta span:last-child{display:none;} }
@media (max-width: 720px){ .hero .portada-velo{background:linear-gradient(180deg, rgba(26,18,13,.55) 0%, rgba(26,18,13,.05) 22%, rgba(26,18,13,.35) 40%, rgba(26,18,13,.78) 62%, rgba(26,18,13,.92) 100%);} }
@media (prefers-reduced-motion: no-preference){ .matasellos{animation:aparece 1.2s var(--ease) 1.3s both;} }

/* postal y su reverso */
.postal-lente .marco{cursor:pointer;}
.reverso{
  position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:center; gap:10px;
  padding:16% 9% 10%; color:#2A1D15;
  background:
    repeating-linear-gradient(180deg, transparent 0 25px, rgba(80,100,130,.2) 25px 26px) 0 58% / 100% 42% no-repeat,
    radial-gradient(130% 100% at 50% 40%, transparent 60%, rgba(120,80,30,.22) 100%),
    #F3E8D2;
  clip-path:circle(0px at var(--rx, 50%) var(--ry, 50%));
  transition:clip-path .22s ease-out;
}
.lente .reverso{clip-path:circle(96px at var(--rx, 50%) var(--ry, 50%));}
.volteada .reverso{clip-path:circle(150% at 50% 50%); transition:clip-path .8s var(--ease);}
.rv-sello{position:absolute; top:7%; right:7%; width:48px; height:58px; border:2px dashed rgba(154,51,36,.55); display:grid; place-items:center; align-content:center; gap:2px; color:#9A3324; background:rgba(201,138,46,.12);}
.rv-sello b{font-size:16px; font-weight:400;} .rv-sello small{font-size:10px; font-weight:700; letter-spacing:.05em;}
.rv-mata{position:absolute; top:5%; right:20%; width:74px; height:74px; border:1.5px solid rgba(34,56,94,.45); border-radius:50%; display:grid; place-items:center; text-align:center; font-size:8px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; line-height:1.3; color:rgba(34,56,94,.6); transform:rotate(-14deg);}
.rv-txt{font-family:var(--f-disp); font-style:italic; font-size:clamp(1.15rem, 1.6vw, 1.45rem); line-height:1.24;}
.rv-firma{font-family:var(--f-disp); font-size:.95rem; color:#9A3324;}
@media (max-width: 760px){
  .rv-mata{display:none;}
  .rv-sello{width:30px; height:38px; top:5%; right:5%;}
  .rv-sello b{font-size:12px;} .rv-sello small{font-size:8px;}
  .reverso{padding:26% 8% 8%; gap:6px;}
  .rv-txt{font-size:1rem; line-height:1.2;}
  .rv-firma{font-size:.78rem;}
}
@media (max-width: 860px){
  .hero .h1-main, .hero .h1-sub{filter:none; text-shadow:0 4px 24px rgba(0,0,0,.45);}
  .dibujo svg g, .dibujo-col svg g, .dibujo-neta svg g, .dibujo-moji svg g{filter:none;}
}
.pista-postal{margin-top:44px !important; font-family:var(--f-disp); font-style:italic; font-size:1.15rem; color:var(--acento) !important;}
.pista-postal + p{margin-top:12px !important;}
.pista-toque{display:none;}
@media (hover: none){ .pista-raton{display:none;} .pista-toque{display:inline;} }

/* Zeferino: foto tipo fotografía */
.zf-foto{position:relative; margin:0 0 30px auto; width:min(250px, 72%); background:#FBF7EE; padding:10px 10px 0; transform:rotate(3deg); box-shadow:10px 18px 30px -14px rgba(var(--sombra-rgb), .5);}
.zf-foto::before{content:''; position:absolute; z-index:1; top:-12px; left:50%; width:86px; height:24px; transform:translateX(-50%) rotate(-4deg); background:rgba(214,190,138,.75);}
.zf-foto-in{position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--bg-3);}
.zf-foto-in img{width:100%; height:100%; object-fit:cover;}
.zf-foto figcaption{font-family:var(--f-disp); font-style:italic; font-size:1rem; color:#5E4A3B; text-align:center; padding:10px 4px 12px;}
@media (max-width: 860px){ .zf-foto{margin:0 auto 28px;} }

/* dibujos a lápiz */
.dir{position:relative; isolation:isolate;}
.dibujo{position:absolute; z-index:-1; right:-18px; top:-38px; width:min(44%, 230px); pointer-events:none;}
.dibujo svg{width:100%; height:auto; overflow:visible; display:block;}
.dibujo path{fill:none; stroke:var(--grafito); stroke-width:1.35; stroke-linecap:round; stroke-linejoin:round;}
.dibujo .h{stroke-width:.8; opacity:.8;}
.dibujo .eco{opacity:.36;}
.dibujo .tr{stroke-dasharray:1 1; stroke-dashoffset:1; transition:stroke-dashoffset 2.8s cubic-bezier(.4,0,.2,1);}
.dir.visto .dibujo .tr, .dibujo.visto .tr, .hero-dibujo.visto .tr{stroke-dashoffset:0;}
@media (prefers-reduced-motion: reduce){ .dibujo .tr{stroke-dashoffset:0; transition:none;} }
@media (max-width: 760px){ .dibujo{width:150px; top:-20px; right:-6px;} }

/* gis y cohetes */
.gis{position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:2;}
.brasa{position:fixed; z-index:152; width:5px; height:5px; border-radius:50%; pointer-events:none; background:radial-gradient(circle, #FFF6DA 0 35%, #E6B866 60%, rgba(230,184,102,0) 72%); box-shadow:0 0 8px rgba(255,200,110,.9);}
.destello{position:fixed; z-index:151; width:120px; height:120px; border-radius:50%; pointer-events:none; background:radial-gradient(circle, rgba(255,232,180,.55), rgba(255,200,120,0) 65%);}

/* Parroquia a trazo en la portada */
.hero-dibujo{display:none;}
@media (min-width: 861px){
  .hero-dibujo{display:block; position:absolute; z-index:1; pointer-events:none; left:calc(46% - min(23vw, (100vh - 200px) / 2.08) - 1.2vw); bottom:64px; width:min(23vw, calc((100vh - 200px) / 2.08));}
  .hero-dibujo svg{width:100%; height:auto; overflow:visible; display:block;}
  .hero-dibujo path{fill:none; stroke:var(--grafito); stroke-width:.85; stroke-linecap:round; stroke-linejoin:round;}
  .hero-dibujo .h{stroke-width:.55; opacity:.8;}
  .hero-dibujo .eco{opacity:.34;}
  .hero-dibujo .tr{stroke-dasharray:1 1; stroke-dashoffset:1; transition:stroke-dashoffset 3.4s cubic-bezier(.4,0,.2,1);}
  .hero .hero-txt{z-index:2;}
}
@media (prefers-reduced-motion: reduce){ .hero-dibujo .tr{stroke-dashoffset:0; transition:none;} }

/* papel quemado */
.papelitos{position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:0;}
.hist-pista{position:relative; z-index:1;}
.historia.lineal .papelitos{position:sticky; inset:auto; top:0; left:0; flex:none; height:100vh; height:100svh; margin-bottom:-100vh; margin-bottom:-100svh; display:block;}

/* dibujos de la sátira y de la mojiganga */
.dato{position:relative; isolation:isolate;}
.dibujo-neta{position:absolute; z-index:-1; right:-14px; top:-52px; width:min(38%, 200px); pointer-events:none;}
.dibujo-neta path{stroke:rgba(243,233,216,.42);}
.fiestas .cont{position:relative;}
.fiestas .titulo, .fiestas .cabeza, .fiestas .intro{position:relative; z-index:1;}
.dibujo-moji{position:absolute; z-index:0; right:var(--lado); top:-6px; width:clamp(130px, 17vw, 240px); pointer-events:none;}
.dibujo-moji path{stroke:rgba(243,233,216,.5); stroke-width:1.1;}
@media (max-width: 760px){ .dibujo-moji{width:110px; top:0; opacity:.8;} .dibujo-neta{width:130px; top:-30px;} }

/* logos */
.legales{display:flex; flex-wrap:wrap; gap:10px 24px; margin-top:22px;}
.legales a{font-size:.8rem; font-weight:600; color:var(--cal); text-decoration:underline; text-underline-offset:3px; text-decoration-color:rgba(243,233,216,.4);}
.legales a:hover{text-decoration-color:var(--ocre-claro);}
dialog.legal{padding:0; border:0; width:min(860px, 94vw); max-width:none; max-height:90vh; max-height:90svh; background:var(--bg); color:var(--ink); box-shadow:0 40px 120px rgba(0,0,0,.5); overflow:hidden;}
dialog.legal[open]{display:flex; flex-direction:column;}
dialog.legal:focus, dialog.legal:focus-visible{outline:none;}
dialog.legal::backdrop{background:rgba(26,18,13,.74);}
.legal-cab{display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px clamp(20px, 4vw, 48px); border-bottom:1px solid var(--hilo); background:var(--bg-2);}
.legal-cab .lbl{color:var(--acento);}
.legal .cerrar{font-size:.74rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:10px 18px; border:1px solid var(--ink);}
.legal .cerrar:hover{background:var(--ink); color:var(--bg);}
.legal-cuerpo{overflow:auto; padding:clamp(24px, 4vw, 48px) clamp(20px, 4vw, 48px) 56px;}
.legal-cuerpo h2{font-family:var(--f-disp); font-weight:400; text-transform:uppercase; font-size:clamp(2.2rem, 5vw, 3.6rem); line-height:.95; letter-spacing:-.02em;}
.legal-cuerpo .fecha-act{margin-top:10px; font-size:.8rem; color:var(--ink-3);}
.legal-cuerpo .resumen{margin-top:22px; padding:18px 20px; background:var(--bg-2); border-left:3px solid var(--acento); font-size:1rem; line-height:1.55; color:var(--ink); max-width:none;}
.legal-cuerpo h3{margin-top:30px; font-family:var(--f-disp); font-weight:500; font-size:1.45rem; line-height:1.15;}
.legal-cuerpo p, .legal-cuerpo li{margin-top:10px; font-size:.95rem; line-height:1.65; color:var(--ink-2); max-width:68ch;}
.legal-cuerpo ul{padding-left:20px; list-style:disc;}
.legal-cuerpo a{color:var(--acento); text-decoration:underline;}
.pendiente{background:rgba(201,138,46,.25); color:var(--ink); padding:0 4px; border-radius:2px; font-weight:600;}
.logos .lbl{color:rgba(243,233,216,.6);}
.logos-fila{display:flex; align-items:center; gap:22px; margin-top:14px; flex-wrap:wrap;}
.logo-slot{min-width:170px; min-height:78px; padding:14px 22px; border:1px solid rgba(243,233,216,.28); display:grid; place-items:center; background:rgba(243,233,216,.04);}
.logo-slot img{max-height:64px; width:auto;}
.logo-txt{font-family:var(--f-disp); font-weight:500; font-size:1.6rem; line-height:.95; color:var(--cal); text-align:center; text-transform:uppercase; letter-spacing:.01em;}
.logo-txt small{display:block; margin-top:4px; font-family:var(--f-sans); font-size:.62rem; font-weight:700; letter-spacing:.2em; color:var(--ocre-claro);}
.logos-x{color:var(--ocre-claro);}
.logos-nota{margin-top:16px; max-width:48ch; font-size:.9rem;}

/* antojos de la calle */
.antojos{margin-top:clamp(72px, 9vw, 120px); padding-top:36px; border-top:1px solid var(--hilo);}
.antojos-cab h3{margin-top:8px; font-size:clamp(2.2rem, 4.6vw, 4rem);}
.antojos-grid{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:clamp(16px, 2vw, 28px); margin-top:34px;}
.antojo{margin:0;}
.antojo:nth-child(even){margin-top:40px;}
.antojo .marco{aspect-ratio:3/4;}
.antojo figcaption{margin-top:14px;}
.antojo b{display:block; font-family:var(--f-disp); font-weight:500; font-size:1.3rem; line-height:1.1;}
.antojo span{display:block; margin-top:6px; font-size:.88rem; color:var(--ink-2); line-height:1.45;}
@media (max-width: 960px){ .antojos-grid{grid-template-columns:repeat(2, minmax(0,1fr));} }

/* ================================================================
   VII. LA MESA
   ================================================================ */
.mesa-marq{position:relative; left:auto; right:auto; bottom:auto; opacity:1; color:var(--ink); border-top:0; border-bottom:1px solid var(--hilo); padding:18px 0;}
.mesa-marq span{opacity:1;}
.mesa-marq span.e{color:var(--acento);}
.mesa-cab{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); column-gap:clamp(36px, 6vw, 96px); align-items:end;}
.mesa-cab h2{grid-row:1 / span 2;}
.mesa-cab .intro{margin-top:0;}
.recetario{display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(28px, 4vw, 64px); align-items:start; margin-top:clamp(48px, 6vw, 80px);}
.recetario .pizarron{position:sticky; top:96px;}
.mesa-cab .titulo{font-size:clamp(2.8rem, 6vw, 6.4rem);}
.mesa-nota{margin-top:26px; padding-top:18px; border-top:1px solid var(--hilo); font-size:.86rem; color:var(--ink-3); max-width:44ch;}
.pizarron{
  position:relative; padding:14px; transform:rotate(-.8deg);
  background:repeating-linear-gradient(90deg, #6B4A2E 0 7px, #5C3F27 7px 10px, #70502F 10px 16px);
  box-shadow:calc(var(--sol) * 30px) 32px 54px -22px rgba(var(--sombra-rgb), .65), inset 0 0 0 2px rgba(0,0,0,.28);
}
.piz-in{
  position:relative; padding:clamp(26px, 3.4vw, 44px) clamp(22px, 3vw, 40px); color:#EEE9DE;
  background:
    radial-gradient(120% 70% at 25% 15%, rgba(255,255,255,.07), transparent 60%),
    radial-gradient(70% 50% at 85% 90%, rgba(255,255,255,.05), transparent 60%),
    #1F2B24;
  box-shadow:inset 0 0 50px rgba(0,0,0,.5);
}
.piz-hoy{font-family:var(--f-disp); font-style:italic; font-weight:400; font-size:clamp(2.8rem, 5vw, 3.8rem); line-height:.9; text-align:center; color:#F3E7C8;}
.piz-hoy::after{content:''; display:block; width:110px; height:2px; margin:16px auto 0; background:rgba(243,231,200,.45);}
.piz-lista{list-style:none; margin:20px 0 0; padding:0;}
.piz-lista li{border-bottom:1px dashed rgba(238,233,222,.24);}
.piz-item{width:100%; text-align:left; display:flex; flex-direction:column; gap:4px; padding:14px 12px 14px 30px; position:relative; border-radius:2px; transition:background .3s;}
.piz-item::before{content:'✦'; position:absolute; left:6px; top:17px; font-size:.8rem; color:#E6B866; opacity:0; transform:scale(.4); transition:opacity .3s, transform .4s var(--ease);}
.piz-item:hover{background:rgba(238,233,222,.05);}
.piz-item[aria-selected="true"]{background:rgba(238,233,222,.08);}
.piz-item[aria-selected="true"]::before{opacity:1; transform:none;}
.piz-tipo{font-size:.66rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:rgba(238,233,222,.55);}
.piz-lista li:last-child{border-bottom:0;}
.piz-lista li.pilon{margin-top:8px; border-top:1px solid rgba(238,233,222,.35); border-bottom:0;}
.piz-nom{display:block; font-family:var(--f-disp); font-weight:500; font-size:clamp(1.5rem, 2.2vw, 1.95rem); line-height:1.05; color:#F6F1E6;}
.piz-nom small{font-family:var(--f-sans); font-size:.6rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap;}
.piz-nom .e-ok{color:#A9D7B6;}
.piz-nom .e-conf{color:#E6B866;}
.piz-nom .e-falta{color:#F2A797;}
.piz-txt{margin-top:7px; font-size:.9rem; line-height:1.5; color:rgba(238,233,222,.78);}
.piz-pie{margin-top:20px; text-align:center; font-family:var(--f-disp); font-style:italic; font-size:1.1rem; color:rgba(238,233,222,.6);}
.ficha-pila{position:relative;}
.ficha-pila::before{
  content:''; position:absolute; inset:14px -10px -14px 16px; transform:rotate(-2.6deg);
  background:radial-gradient(130% 100% at 50% 40%, transparent 50%, rgba(110,70,25,.3) 100%), linear-gradient(160deg, #E4D2A8, #D6C08F);
  box-shadow:10px 24px 40px -22px rgba(var(--sombra-rgb), .55);
}
.ficha-r{
  position:relative; z-index:1; color:#2A1D15;
  padding:clamp(34px, 4vw, 52px) clamp(24px, 3.4vw, 48px) clamp(34px, 3.6vw, 48px) clamp(40px, 4.6vw, 64px);
  background:
    linear-gradient(90deg, transparent calc(50% - 1px), rgba(255,249,232,.55) calc(50% - 1px), rgba(255,249,232,.55) 50%, rgba(96,64,28,.17) 50%, rgba(96,64,28,0) calc(50% + 9px)),
    linear-gradient(180deg, transparent calc(47% - 1px), rgba(255,249,232,.6) calc(47% - 1px), rgba(255,249,232,.6) 47%, rgba(96,64,28,.17) 47%, rgba(96,64,28,0) calc(47% + 10px)),
    radial-gradient(circle at 87% 11%, transparent 30px, rgba(128,78,28,.17) 31px, rgba(128,78,28,.05) 36px, transparent 38px),
    radial-gradient(ellipse 46% 30% at 12% 93%, rgba(140,92,38,.17), transparent 70%),
    radial-gradient(ellipse 26% 16% at 72% 72%, rgba(150,104,48,.09), transparent 70%),
    radial-gradient(130% 100% at 50% 42%, transparent 54%, rgba(118,76,28,.3) 100%),
    linear-gradient(90deg, transparent calc(clamp(24px, 3vw, 40px) - 1px), rgba(168,68,52,.3) calc(clamp(24px, 3vw, 40px) - 1px) clamp(24px, 3vw, 40px), transparent clamp(24px, 3vw, 40px)),
    repeating-linear-gradient(180deg, transparent 0 31px, rgba(80,95,120,.11) 31px 32px),
    linear-gradient(165deg, #F2E6C8 0%, #E9D7B0 55%, #E0CA9C 100%);
  box-shadow:inset 0 0 0 1px rgba(110,75,35,.12), inset 0 0 60px rgba(110,70,28,.16), 18px 32px 50px -28px rgba(var(--sombra-rgb), .6);
  transform:rotate(.6deg);
}
.ficha-r::after{
  content:''; position:absolute; right:0; bottom:0; width:48px; height:48px;
  background:linear-gradient(to top left, var(--bg) 0 50%, #BFA36F 50%, #D9C291 100%);
  filter:drop-shadow(-3px -3px 3px rgba(80,50,18,.28));
}
.ficha-r .cinta{position:absolute; top:-14px; left:50%; width:124px; height:28px; transform:translateX(-50%) rotate(-3deg); background:rgba(206,186,138,.78); box-shadow:0 1px 2px rgba(0,0,0,.12); clip-path:polygon(0 8%, 4% 0, 8% 10%, 12% 0, 88% 0, 92% 12%, 96% 0, 100% 10%, 100% 90%, 96% 100%, 92% 88%, 88% 100%, 12% 100%, 8% 90%, 4% 100%, 0 92%);}
.ficha-r .fr-num{color:#9A3324;}
.ficha-r h3{margin-top:10px; font-size:clamp(2.4rem, 4.6vw, 4.2rem); color:#2A1D15;}
.ficha-r .tag{margin-top:14px; color:#3F6B4F;}
.ficha-r .tag-conf{color:#85560C;}
.ficha-r .tag-falta{color:#9A3324;}
.fr-lead{margin-top:18px; font-family:var(--f-disp); font-size:clamp(1.35rem, 2vw, 1.7rem); line-height:1.3;}
.fr-datos{margin:22px 0 0; display:grid; gap:0;}
.fr-datos div{display:grid; grid-template-columns:150px 1fr; gap:16px; padding:12px 0; border-top:1px solid rgba(42,29,21,.14);}
.fr-datos dt{font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#7E6955; padding-top:3px;}
.fr-datos dd{margin:0; font-size:.95rem; line-height:1.5; color:#4A3A2E;}
.fr-receta{margin-top:28px; padding:24px 24px 22px; background:rgba(150,100,40,.07); border:1px dashed rgba(120,60,28,.32); box-shadow:inset 0 0 24px rgba(120,80,30,.08);}
.fr-receta > .lbl{color:#9A3324;}
.fr-equipo{margin-top:8px; font-family:var(--f-disp); font-style:italic; font-size:1.08rem; line-height:1.35; color:#4A3A2E;}
.fr-cols{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:24px; margin-top:18px;}
.fr-cols h4{font-family:var(--f-disp); font-weight:500; font-size:1.3rem; margin:0 0 8px;}
.fr-cols ul{margin:0; padding:0 0 0 18px; display:grid; gap:6px; font-size:.9rem; line-height:1.45; color:#4A3A2E;}
.fr-cols ol{margin:0; padding:0; list-style:none; counter-reset:p; display:grid; gap:10px; font-size:.9rem; line-height:1.45; color:#4A3A2E;}
.fr-cols ol li{counter-increment:p; display:grid; grid-template-columns:26px 1fr; gap:6px;}
.fr-cols ol li::before{content:counter(p); font-family:var(--f-disp); font-size:1.35rem; line-height:1; color:#9A3324;}
.fr-pide{margin-top:24px; font-family:var(--f-disp); font-style:italic; font-size:1.2rem; color:#4A3A2E;}
.fr-pide .enlace{font-family:var(--f-sans); font-style:normal; color:#9A3324; margin-left:8px;}
.ficha-r.entra > *{animation:ficha-entra .6s var(--ease) both;}
.ficha-r.entra > *:nth-child(3){animation-delay:.04s;} .ficha-r.entra > *:nth-child(4){animation-delay:.08s;} .ficha-r.entra > *:nth-child(5){animation-delay:.12s;} .ficha-r.entra > *:nth-child(n+6){animation-delay:.16s;}
@keyframes ficha-entra{from{opacity:0; transform:translate3d(0, 10px, 0);}}
@media (prefers-reduced-motion: reduce){ .ficha-r.entra > *{animation:none;} }
@media (max-width: 860px){
  .mesa-cab{grid-template-columns:1fr;} .mesa-cab h2{grid-row:auto;} .mesa-cab .intro{margin-top:24px;}
  .recetario{grid-template-columns:1fr;} .recetario .pizarron{position:static; transform:none;}
  .ficha-r{transform:none; scroll-margin-top:84px;}
  .fr-datos div, .fr-cols{grid-template-columns:1fr;} .fr-datos div{gap:4px;}
}

/* ================================================================
   IV. CERO PESOS
   ================================================================ */
.cero{--pl:var(--bg-2);}
.cero-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:clamp(32px, 5vw, 80px); margin-top:clamp(56px, 7vw, 96px); align-items:start;}
.croquis-wrap{position:sticky; top:96px;}
.croquis{position:relative; aspect-ratio:6/5.4; background:var(--bg); border:1px solid var(--hilo);}
.croquis svg{position:absolute; inset:0; width:100%; height:100%;}
.croquis{background:var(--bg);}
.croquis .m-cuad{fill:none; stroke:var(--hilo); stroke-width:.4; opacity:.45;}
.croquis .m-marco{fill:none; stroke:var(--ink-3); stroke-width:1.4; opacity:.6;}
.croquis .m-marco.fino{stroke-width:.6; opacity:.5;}
.croquis .m-nivel path{fill:none; stroke:var(--ink-3); stroke-width:.8; opacity:.32;}
.croquis .m-arroyo{fill:none; stroke:#6E8FB0; stroke-width:2.6; stroke-linecap:round; stroke-dasharray:1 5; opacity:.85;}
.croquis .m-agua{font-family:var(--f-disp); font-style:italic; font-size:12px; fill:#5F7F9E;}
.croquis .m-parque{fill:rgba(63,107,79,.16); stroke:rgba(63,107,79,.55); stroke-width:1;}
.croquis .m-lago{fill:rgba(110,143,176,.4); stroke:rgba(80,110,145,.5); stroke-width:.8;}
.croquis .m-via path{fill:none; stroke:var(--ink-3); stroke-width:5.5; stroke-linecap:round; opacity:.5;}
.croquis .m-via-in path{fill:none; stroke:var(--bg); stroke-width:3; stroke-linecap:round;}
.croquis .m-calle path{fill:none; stroke:var(--ink-3); stroke-width:1; opacity:.42;}
.croquis .m-plaza{fill:rgba(63,107,79,.22); stroke:rgba(63,107,79,.6); stroke-width:.8;}
.croquis .m-ico path{fill:none; stroke:var(--ink-2); stroke-width:1.2; stroke-linecap:round;}
.croquis .m-ico circle{fill:rgba(63,107,79,.5); stroke:none;}
.croquis .m-txt text{font-family:var(--f-sans); font-size:8px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; fill:var(--ink-3);}
.croquis .m-txt .m-chica{font-size:6.5px;}
.croquis .m-cartela rect{fill:var(--bg); stroke:var(--ink-3); stroke-width:.8;}
.croquis .m-tit{font-family:var(--f-disp); font-size:16px; font-weight:500; text-transform:uppercase; letter-spacing:.02em; fill:var(--ink);}
.croquis .m-sub{font-family:var(--f-disp); font-style:italic; font-size:11px; fill:var(--ink-3);}
.croquis .m-rosa path{fill:var(--ocre); opacity:.85;}
.croquis .m-rosa .m-rosa-2{fill:var(--ink-3); opacity:.6;}
.croquis .m-rosa text{font-family:var(--f-disp); font-size:14px; text-anchor:middle; fill:var(--ink-2);}
.pin-dir i{background:var(--anil);}
.pin.der{transform:translate(calc(-100% + 6px), -100%); align-items:flex-end;}

.croquis .calle-g{fill:none; stroke:var(--ink-3); stroke-width:2.2; opacity:.55;}
.croquis .arroyo{fill:none; stroke:#6E8FB0; stroke-width:2.4; stroke-dasharray:1 5; stroke-linecap:round; opacity:.8;}
.croquis .cerro{fill:none; stroke:var(--ink-3); stroke-width:1; opacity:.45;}
.croquis .txt{font-family:var(--f-sans); font-size:10px; font-weight:600; letter-spacing:.08em; fill:var(--ink-3); text-transform:uppercase;}
.pin{
  position:absolute; transform:translate(-50%, -100%); display:flex; flex-direction:column; align-items:center; gap:2px;
}
.pin b{
  display:block; white-space:nowrap; font-size:.66rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase;
  background:var(--ink); color:var(--bg); padding:5px 8px; border-radius:2px; transition:background .3s, transform .3s var(--ease);
}
.pin i{width:9px; height:9px; border-radius:50%; background:var(--acento); box-shadow:0 0 0 3px var(--bg);}
.pin:hover b, .pin.activo b{background:var(--acento); color:var(--cal); transform:translateY(-3px);}
.croquis-nota{margin-top:14px; font-size:.8rem; color:var(--ink-3);}
.ruta{padding:28px 0; border-top:1px solid var(--hilo); border-bottom:1px solid var(--hilo); margin-bottom:40px;}
.ruta h3{font-family:var(--f-disp); font-size:1.8rem; font-weight:400; line-height:1.1;}
.ruta ol{list-style:none; margin:18px 0 0; padding:0; display:grid; gap:12px; counter-reset:paso;}
.ruta li{display:grid; grid-template-columns:38px 1fr; gap:10px; font-size:.97rem; color:var(--ink-2); counter-increment:paso;}
.ruta li::before{content:counter(paso); font-family:var(--f-disp); font-size:1.5rem; line-height:1; color:var(--acento);}
.lugares{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:44px 24px;}
.lugar{scroll-margin-top:120px;}
.lugar .marco{aspect-ratio:4/3;}
.lugar h3{margin-top:22px; font-size:clamp(1.6rem, 2.2vw, 2.1rem);}
.lugar .tag{margin-top:12px;}
.lugar p{margin-top:10px; font-size:.93rem; color:var(--ink-2);}
.lugar .ir{margin-top:14px;}
.lugar.resalta h3{color:var(--acento);}
@media (max-width: 960px){
  .cero-grid{grid-template-columns:1fr;}
  .croquis-wrap{position:static;}
}
@media (max-width: 560px){ .lugares{grid-template-columns:1fr;} }

/* ================================================================
   V. NEGOCIOS
   ================================================================ */
.filtros{display:flex; gap:6px 26px; flex-wrap:wrap; margin-top:clamp(40px, 5vw, 64px); padding-bottom:18px; border-bottom:1px solid var(--hilo);}
.filtro{font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:6px 0; opacity:.55; transition:opacity .3s; position:relative;}
.filtro:hover{opacity:1;}
.filtro[aria-pressed="true"]{opacity:1;}
.filtro[aria-pressed="true"]::after{content:''; position:absolute; left:0; right:0; bottom:-19px; height:2px; background:var(--acento);}
.carta{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:56px clamp(20px, 2.6vw, 40px); margin-top:48px;}
.plato[hidden]{display:none;}
.plato .marco{aspect-ratio:4/5;}
.plato-cat{margin-top:20px; color:var(--acento);}
.plato h3{margin-top:8px; font-size:clamp(1.7rem, 2.4vw, 2.3rem);}
.plato p{margin-top:10px; font-size:.95rem; color:var(--ink-2); max-width:40ch;}
.plato .pie-plato{margin-top:16px; display:flex; flex-direction:column; gap:12px; align-items:flex-start;}
.plato.libre{grid-column:1 / -1; display:grid; grid-template-columns:auto 1fr auto; gap:32px; align-items:center; padding:36px 0; border-top:1px solid var(--hilo); border-bottom:1px solid var(--hilo);}
.plato.libre h3{margin:0; font-size:clamp(2rem, 4vw, 3.4rem);}
.plato.libre p{margin:0;}
.mercado{margin-top:clamp(80px, 10vw, 140px); display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(20px, 3vw, 44px); align-items:end;}
.mercado figure:nth-of-type(1) .marco{aspect-ratio:4/3;}
.mercado figure:nth-of-type(2) .marco{aspect-ratio:3/4;}
.mercado-txt{grid-column:1 / -1; display:flex; justify-content:space-between; align-items:baseline; gap:20px; flex-wrap:wrap; margin-bottom:8px;}
.mercado-txt h3{font-size:clamp(2.2rem, 5vw, 4.2rem);}
@media (max-width: 960px){ .carta{grid-template-columns:repeat(2, minmax(0,1fr));} }
@media (max-width: 600px){
  .carta{grid-template-columns:1fr;}
  .plato.libre{grid-template-columns:1fr; gap:14px;}
  .mercado{grid-template-columns:1fr;}
}

/* ================================================================
   VI. LA NETA (sátira)
   ================================================================ */
.neta{--pl:var(--noche); color:var(--cal);}
.neta .pliego{color:var(--cal);}
.neta .titulo{color:var(--cal); text-shadow:none;}
.neta .cabeza{color:rgba(243,233,216,.7);}
.neta .cabeza b{color:var(--ocre-claro);}
.neta .cabeza i{background:rgba(243,233,216,.25);}
.neta .intro{color:rgba(243,233,216,.8);}
.neta-item{display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(32px, 6vw, 100px); padding:clamp(64px, 8vw, 112px) 0; border-top:1px solid rgba(243,233,216,.16); align-items:center;}
.neta-item:first-of-type{margin-top:clamp(56px, 7vw, 96px);}
.neta-item.voltea .parodia{order:2;}
.parodia{position:relative;}
.parodia-marca{position:absolute; top:-30px; left:0; color:var(--rosa);}
.hoja-broma{
  background:var(--cal); color:var(--noche); padding:34px 30px 30px; position:relative;
  box-shadow:14px 30px 50px -18px rgba(0,0,0,.7);
  transform:rotate(-1.4deg);
}
.neta-item.voltea .hoja-broma{transform:rotate(1.2deg);}
.resena .fuente-r{position:absolute; top:16px; right:18px; font-size:.64rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#8A7866;}
.estrellas{display:flex; gap:4px; color:var(--ocre);}
.estrellas svg{width:17px; height:17px;}
.resena blockquote{margin-top:18px; font-family:var(--f-disp); font-style:italic; font-size:1.55rem; line-height:1.2;}
.resena .autor{margin-top:16px; font-size:.8rem; color:#8A7866;}
.etiqueta{border:2px solid var(--noche); padding:6px;}
.etiqueta > div{border:1px solid var(--noche); padding:22px 20px; text-align:center;}
.etiqueta h4{font-family:var(--f-disp); font-weight:500; text-transform:uppercase; letter-spacing:.02em; font-size:2.1rem; line-height:.95;}
.etiqueta .ed{font-family:var(--f-disp); font-style:italic; font-size:1.1rem; margin-top:6px;}
.etiqueta table{width:100%; margin-top:18px; border-collapse:collapse; font-size:.82rem; text-align:left;}
.etiqueta td{padding:7px 0; border-top:1px solid rgba(26,18,13,.3);}
.etiqueta td:last-child{text-align:right; font-weight:700;}
.cuenta h4{font-family:var(--f-disp); font-weight:500; font-size:1.7rem; line-height:1;}
.cuenta .banco{font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:#8A7866; margin-top:6px;}
.cuenta table{width:100%; margin-top:20px; border-collapse:collapse; font-size:.86rem;}
.cuenta td{padding:9px 0; border-top:1px dashed rgba(26,18,13,.35);}
.cuenta td:last-child{text-align:right;}
.cuenta tr.total td{border-top:2px solid var(--noche); font-weight:700; font-size:1rem; color:var(--almagre);}
.diploma{text-align:center; padding:40px 30px; outline:1px solid rgba(26,18,13,.4); outline-offset:-12px;}
.diploma .sello-d{width:74px; height:74px; margin:0 auto 12px; border-radius:50%; background:var(--ocre); display:grid; place-items:center; color:var(--noche); font-family:var(--f-disp); font-size:2rem; box-shadow:inset 0 0 0 4px rgba(26,18,13,.2);}
.diploma h4{font-family:var(--f-disp); font-weight:400; text-transform:uppercase; font-size:1.55rem; line-height:1.05; letter-spacing:.01em;}
.diploma p{margin-top:12px; font-family:var(--f-disp); font-style:italic; font-size:1.15rem; line-height:1.3;}
.diploma .firma-d{display:flex; justify-content:space-between; gap:12px; margin-top:26px; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:#8A7866;}
.diploma .firma-d span{flex:1; border-top:1px solid rgba(26,18,13,.4); padding-top:6px;}
.dato .lbl{color:var(--ocre-claro);}
.dato h3{margin-top:14px; font-size:clamp(2.2rem, 4.2vw, 3.8rem); color:var(--cal);}
.dato p{margin-top:18px; color:rgba(243,233,216,.86); max-width:58ch; font-size:1.02rem;}
.dato p strong{color:var(--cal); font-weight:700;}
.dato .cifra{display:flex; gap:28px; flex-wrap:wrap; margin-top:26px; padding-top:22px; border-top:1px solid rgba(243,233,216,.16);}
.dato .cifra div b{display:block; font-family:var(--f-disp); font-weight:300; font-size:clamp(2.6rem, 4.6vw, 3.8rem); line-height:.9; color:var(--ocre-claro);}
.dato .cifra div span{display:block; margin-top:6px; font-size:.78rem; color:rgba(243,233,216,.66); max-width:18ch;}
.dato .ftes{margin-top:22px; font-size:.78rem; color:rgba(243,233,216,.6);}
.dato .ftes a{color:rgba(243,233,216,.8);}
.cierre-neta{margin-top:clamp(40px, 6vw, 80px); padding-top:clamp(40px, 5vw, 64px); border-top:1px solid var(--ocre); font-family:var(--f-disp); font-size:clamp(1.5rem, 2.6vw, 2.2rem); line-height:1.28; max-width:36ch;}
@media (max-width: 860px){
  .neta-item{grid-template-columns:1fr;}
  .neta-item.voltea .parodia{order:0;}
  .parodia{margin:20px 6px 0;}
}

/* ================================================================
   VII. FIESTAS
   ================================================================ */
.fiestas{--pl:var(--almagre); color:var(--cal);}
.fiestas .pliego{color:var(--cal);}
.fiestas .pliego-in{padding-top:clamp(32px, 5vw, 64px);}
.fiestas .guirnalda svg.hilo-svg path{stroke:rgba(243,233,216,.6);}
.fiestas .guirnalda-capa.sombra svg *{fill:#2a0b05 !important; stroke:#2a0b05 !important;}
.fiestas .guirnalda-capa.sombra{opacity:.45;}
.fiestas .titulo{color:var(--cal); text-shadow:0 8px 16px rgba(40,8,3,.4);}
.fiestas .cabeza{color:rgba(243,233,216,.75);}
.fiestas .cabeza b{color:var(--ocre-claro);}
.fiestas .cabeza i{background:rgba(243,233,216,.3);}
.fiestas .intro{color:rgba(243,233,216,.86);}
.fiestas-cab{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(28px, 5vw, 80px); align-items:end;}
.kiosko-foto{margin:0; max-width:360px; justify-self:end; transform:rotate(2deg);}
.kiosko-foto .marco{aspect-ratio:3/4;}
.kiosko-foto .cuadro::before{background:rgba(40,8,3,.7);}
.kiosko-foto .pie{color:rgba(243,233,216,.72);}
@media (max-width: 760px){ .fiestas-cab{grid-template-columns:1fr;} .kiosko-foto{justify-self:start; max-width:300px;} }
@media (min-width: 861px){
  .fiestas > .portada{background:var(--almagre);}
  .fiestas > .portada .portada-foto{left:50%;}
  .fiestas > .portada .portada-velo{left:50%; background:linear-gradient(90deg, rgba(26,18,13,.45), rgba(26,18,13,0) 26%), linear-gradient(180deg, rgba(26,18,13,.35), rgba(26,18,13,0) 30%);}
  .fiestas > .portada .portada-txt{right:auto; width:50%; margin:0; padding-right:clamp(24px, 3vw, 48px);}
  .fiestas > .portada h2{font-size:clamp(3rem, 6.6vw, 6.8rem);}
}
.calendario{position:relative; margin-top:clamp(56px, 7vw, 96px); border-top:1px solid rgba(243,233,216,.3);}
.camino{
  position:absolute; top:0; bottom:0; left:calc(var(--lado) * -1 + 4px); width:calc(var(--lado) - 8px); max-width:46px; pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg, #000 calc(var(--rev, 0px) - 70px), transparent var(--rev, 0px));
  mask-image:linear-gradient(180deg, #000 calc(var(--rev, 0px) - 70px), transparent var(--rev, 0px));
}
.punado{position:absolute; inset:0; pointer-events:none; z-index:2;}
.punado .pf{position:absolute; left:0; top:0; opacity:0; border-radius:50% 50% 50% 50% / 62% 62% 38% 38%; box-shadow:0 2px 3px rgba(60,10,0,.35); will-change:transform;}
.punado .p0{background:radial-gradient(circle at 40% 30%, #FFC14D, #F08C00 62%, #C2410C);}
.punado .p1{background:radial-gradient(circle at 40% 30%, #FFD27A, #F6A21E 60%, #D9480F);}
.punado .p2{background:radial-gradient(circle at 40% 30%, #F9A43A, #E8590C 64%, #9A3412);}
.punado .pf-flor{border-radius:50%; box-shadow:none; filter:drop-shadow(0 3px 3px rgba(60,10,0,.4));}
.punado .pf-flor svg{width:100%; height:100%; display:block;}
.camino .p{position:absolute; border-radius:50% 50% 50% 50% / 62% 62% 38% 38%; opacity:.9; box-shadow:0 1px 1px rgba(60,10,0,.25);}
.camino .p0{background:radial-gradient(circle at 40% 30%, #FFC14D, #F08C00 62%, #C2410C);}
.camino .p1{background:radial-gradient(circle at 40% 30%, #FFD27A, #F6A21E 60%, #D9480F);}
.camino .p2{background:radial-gradient(circle at 40% 30%, #F9A43A, #E8590C 64%, #9A3412);}
.camino .flor{position:absolute; left:50%; width:28px; height:28px; margin:-14px 0 0 -14px; transform:scale(.15) rotate(-120deg); opacity:0; filter:drop-shadow(0 3px 4px rgba(60,10,0,.35));
  transition:transform 1s cubic-bezier(.3,1.5,.5,1), opacity .5s ease;}
.camino .flor svg{width:100%; height:100%; display:block;}
.camino .flor.abre{transform:none; opacity:1;}
@media (prefers-reduced-motion: no-preference){ .camino .flor.abre svg{animation:gira-flor 14s linear infinite;} @keyframes gira-flor{to{transform:rotate(360deg);}} }
@media (max-width: 760px){ .camino .flor{width:20px; height:20px; margin:-10px 0 0 -10px;} }
.fecha{display:grid; grid-template-columns:minmax(150px, .7fr) minmax(0,1.6fr) auto; gap:clamp(20px, 3vw, 48px); padding:28px 0; border-bottom:1px solid rgba(243,233,216,.22); align-items:baseline; transition:background .4s;}
.fecha .fecha-dia{margin:0; color:var(--cal); font-weight:300; font-family:var(--f-disp); font-weight:300; font-size:clamp(1.7rem, 2.6vw, 2.4rem); line-height:.95; letter-spacing:-.02em; text-transform:uppercase;}
.fecha h3{font-family:var(--f-disp); font-weight:500; font-size:clamp(1.5rem, 2.2vw, 1.9rem); line-height:1.1;}
.fecha p{margin-top:8px; font-size:.96rem; color:rgba(243,233,216,.84); max-width:62ch;}
.fecha .ahora{display:none; color:var(--noche); background:var(--ocre-claro); padding:6px 10px; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap;}
.fecha.este-mes{background:rgba(0,0,0,.14); box-shadow:-16px 0 0 rgba(0,0,0,.14), 16px 0 0 rgba(0,0,0,.14);}
.fecha.este-mes .ahora{display:inline-block;}
.mojis{margin-top:clamp(72px, 9vw, 130px); display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(32px, 5vw, 80px); align-items:center;}
.mojis .marco{aspect-ratio:3/5;}
.mojis-fotos{display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start;}
.mojis-fotos figure:last-child{margin-top:64px;}
.mojis .cuadro::before{background:rgba(40,8,3,.7);}
.mojis h3{font-size:clamp(2.4rem, 5vw, 4.4rem);}
.mojis p{margin-top:18px; color:rgba(243,233,216,.88); max-width:52ch;}
.mojis .pie{color:rgba(243,233,216,.7);}
@media (max-width: 760px){
  .fecha{grid-template-columns:1fr; gap:8px;}
  .fecha .ahora{justify-self:start;}
  .mojis{grid-template-columns:1fr;}
}

/* ================================================================
   VIII. VOCES
   ================================================================ */
.voces{background:var(--bg); position:relative; z-index:3;}
.voces .pliego-in{padding-top:clamp(96px, 12vw, 160px);}
.tarjetas{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(18px, 2vw, 28px); margin-top:clamp(56px, 7vw, 88px);}
.tarjeta{
  background:var(--bg-2); padding:52px 28px 32px; display:flex; flex-direction:column; min-height:340px;
  box-shadow:10px 24px 44px -26px rgba(var(--sombra-rgb), .55);
}
.tarjeta .lbl{display:flex; justify-content:space-between; gap:10px; color:var(--ink-3);}
.tarjeta blockquote{margin-top:22px; font-family:var(--f-disp); font-weight:400; font-size:clamp(1.55rem, 2.2vw, 2rem); line-height:1.18;}
.tarjeta cite{margin-top:auto; padding-top:26px; font-style:normal; font-size:.86rem; color:var(--ink-2);}
.tarjeta.tuya{background:transparent; border:1px dashed var(--hilo); box-shadow:none;}
.tarjeta.tuya blockquote{color:var(--ink-3); font-style:italic;}
@media (max-width: 860px){ .tarjetas{grid-template-columns:1fr;} .tarjeta{min-height:0;} }

/* ================================================================
   CUÉNTANOS + PIE
   ================================================================ */
.cuentanos{position:relative; z-index:3; min-height:92vh; display:flex; align-items:flex-end; overflow:hidden; color:var(--cal); background:var(--noche);}
.cuentanos > img{position:absolute; inset:0; width:100%; height:120%; object-fit:cover; object-position:0% 58%; transform:translate3d(0, calc(var(--cp, 0) * -10%), 0) scale(1.12); transform-origin:0% 58%;}
.cuentanos::before{content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(26,18,13,.2) 0%, rgba(26,18,13,.55) 45%, rgba(26,18,13,.92) 100%);}
.cuentanos .cont{position:relative; z-index:2; width:100%; padding-bottom:clamp(64px, 10vh, 120px);}
.cuentanos h2{font-size:clamp(3.6rem, 13vw, 12rem);}
.cuentanos-bajo{display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; margin-top:30px;}
.cta-form{display:flex; flex-direction:column; align-items:flex-start; gap:10px;}
.cta-form .btn{background:rgba(26,18,13,.42); box-shadow:0 18px 36px -16px rgba(0,0,0,.75), 0 2px 8px rgba(0,0,0,.25);}
.cuentanos-bajo .cta-nota{font-size:.8rem; opacity:.9; max-width:none; margin:0;}
.cta-nota a{color:var(--ocre-claro); text-decoration:underline;}
.cuentanos-bajo p{max-width:48ch; font-size:1.08rem; line-height:1.6; opacity:.92;}

.pie-pag{position:relative; z-index:3; background:var(--noche); color:rgba(243,233,216,.78); padding:clamp(72px, 9vw, 120px) 0 calc(40px + env(safe-area-inset-bottom, 0px));}
.pie-pag h2{font-size:clamp(2.6rem, 6vw, 5rem); color:var(--cal);}
.fuentes{display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:40px 48px; margin-top:48px; padding-top:40px; border-top:1px solid rgba(243,233,216,.16);}
.fuentes h3{font-family:var(--f-disp); font-weight:500; font-size:1.35rem; color:var(--cal); margin-bottom:14px;}
.fuentes ul{list-style:none; margin:0; padding:0; display:grid; gap:10px; font-size:.86rem; line-height:1.45;}
.fuentes a{color:var(--ocre-claro); text-decoration:none;}
.fuentes a:hover{text-decoration:underline; text-underline-offset:3px;}
.fuentes small{display:block; color:rgba(243,233,216,.55); font-size:.78rem;}
.creditos{margin-top:clamp(64px, 8vw, 110px); display:flex; justify-content:space-between; align-items:flex-end; gap:32px; flex-wrap:wrap; padding-top:32px; border-top:1px solid rgba(243,233,216,.16);}
.creditos .yb{display:flex; align-items:center; gap:16px; max-width:52ch; font-size:.95rem;}
.creditos .yb span{flex:none; width:48px; height:48px; border-radius:50%; background:var(--ocre); color:var(--noche); display:grid; place-items:center; font-family:var(--f-disp); font-size:1.2rem; font-weight:500;}
.creditos .yb b{color:var(--cal); font-weight:700;}
.creditos .nota{max-width:52ch; font-size:.82rem; color:rgba(243,233,216,.6);}
.gigante{margin-top:48px; font-size:clamp(4rem, 19vw, 19rem); line-height:.78; color:transparent; -webkit-text-stroke:1px rgba(243,233,216,.2); white-space:nowrap; letter-spacing:-.05em; overflow:hidden;}
