/* ============================================================
   FIESTAS PATRONALES «JESÚS DEL PERDÓN» — MANZANARES 2026
   Hoja de estilos principal · Iteración 1
   Identidad LIDERADA POR LA DEVOCIÓN (ver knowledge/sistema-diseno.md)
   ============================================================ */

/* ---------- RESET & BASE ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  /* Color base */
  --granate:#6E1423; --granate2:#8C1D34; --granate-dk:#4A0D18;
  --oro:#C8A24B; --oro2:#E4C878; --esperanza:#1F7A5A; --esperanza2:#2E9E76;
  --ambar:#D98324; /* SOLO chips de categoría */
  /* Neutros */
  --marfil:#F7F1E3; --marfil2:#FBF7EE; --piedra:#E7DECB;
  --tinta:#2B2118; --tinta-mut:#6B5D4E; --noche:#1A1114; --noche2:#241519; --blanco:#fff;
  /* Semánticos */
  --bg:var(--marfil); --fg:var(--tinta); --brand:var(--granate); --accent:var(--oro);
  /* Radios, sombras */
  --radius:14px; --radius-sm:8px; --radius-lg:24px;
  --shadow:0 8px 32px rgba(74,13,24,.18); --shadow-sm:0 2px 10px rgba(43,33,24,.10);
  --glass:rgba(255,255,255,.08); --glass-brd:rgba(200,162,75,.28);
  /* Tipografía */
  --font-display:'Fraunces',Georgia,serif;
  --font-body:'Nunito',system-ui,sans-serif;
  --fs-display:clamp(2.6rem,6vw,5rem); --fs-h1:clamp(2.1rem,4.5vw,3.4rem);
  --fs-h2:clamp(1.7rem,3.4vw,2.5rem); --fs-h3:clamp(1.25rem,2.2vw,1.6rem);
  --fs-body:1.05rem; --fs-sm:.9rem; --fs-kicker:.95rem;
  /* Espaciado */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;
  /* Layout */
  --maxw:1200px; --gutter:24px;
  --t-fast:.18s ease; --t-med:.32s ease;
}

html{scroll-behavior:smooth}
body{
  font-family:var(--font-body); background:var(--bg); color:var(--fg);
  line-height:1.7; font-weight:400; overflow-x:hidden;
}
a{color:var(--granate);text-decoration:none;transition:opacity var(--t-fast)}
a:hover{opacity:.78}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15;color:var(--granate)}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}

/* Kicker en VERSALITAS (Fraunces) */
.kicker{
  font-family:var(--font-display);font-weight:600;font-size:var(--fs-kicker);
  text-transform:uppercase;letter-spacing:.18em;color:var(--oro);display:block;margin-bottom:var(--sp-3)
}

/* Filete oro */
.rule-gold{width:64px;height:3px;border:0;margin:var(--sp-4) 0;
  background:linear-gradient(90deg,var(--oro),var(--oro2));border-radius:3px}
.center .rule-gold{margin-inline:auto}

/* Botones */
.btn{display:inline-flex;align-items:center;gap:.5em;padding:.8em 1.5em;border-radius:var(--radius);
  font-family:var(--font-body);font-weight:700;font-size:.98rem;cursor:pointer;border:2px solid transparent;
  transition:transform var(--t-fast),background var(--t-fast),box-shadow var(--t-fast)}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--granate);color:var(--marfil);box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--granate2);opacity:1}
.btn-secondary{background:transparent;border-color:var(--oro);color:var(--marfil)}
.btn-secondary:hover{background:rgba(200,162,75,.14);opacity:1}

/* Foco accesible */
:focus-visible{outline:3px solid var(--oro);outline-offset:2px;border-radius:4px}

/* ---------- SCROLL PROGRESS ---------- */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:9999;
  background:linear-gradient(90deg,var(--oro),var(--granate2));transition:width .1s linear}

/* ---------- NAVBAR ---------- */
.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;padding:14px 0;
  transition:background var(--t-med),padding var(--t-med),box-shadow var(--t-med)}
.navbar.scrolled{background:rgba(74,13,24,.94);backdrop-filter:blur(12px);
  box-shadow:0 2px 24px rgba(26,17,20,.5);padding:8px 0}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);
  display:flex;align-items:center;justify-content:space-between;gap:16px}
.nav-brand{display:flex;align-items:center;gap:10px;color:var(--marfil)}
.nav-escudo{width:36px;height:auto;filter:drop-shadow(0 0 6px rgba(200,162,75,.5))}
.nav-title{font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--marfil);letter-spacing:.3px}
.nav-links{display:flex;list-style:none;gap:4px;align-items:center;flex-wrap:wrap}
.nav-links a{color:rgba(247,241,227,.9);font-size:.82rem;font-weight:700;letter-spacing:.4px;
  text-transform:uppercase;padding:6px 12px;border-radius:50px;transition:background var(--t-fast),color var(--t-fast)}
.nav-links a:hover{background:rgba(200,162,75,.16);color:var(--oro2);opacity:1}
.nav-toggle{display:none;background:none;border:0;color:var(--marfil);font-size:1.5rem;cursor:pointer}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;
  text-align:center;color:var(--marfil);overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:-3;
  background:radial-gradient(120% 120% at 50% 20%,var(--granate) 0%,var(--granate-dk) 55%,var(--noche) 100%)}
.hero-bg-video{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}
/* Accesibilidad: sin autoreproducción si el usuario pide reducir movimiento (queda el póster/gradiente) */
@media (prefers-reduced-motion:reduce){.hero-bg-video{display:none}}
.hero-overlay{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(26,17,20,.35),rgba(26,17,20,.85))}
.hero-inner{max-width:820px;padding:120px var(--gutter) var(--sp-8)}
.hero .kicker{color:var(--oro2)}
.hero-title{font-size:var(--fs-display);color:var(--marfil);margin:.1em 0 .2em;text-shadow:0 2px 30px rgba(0,0,0,.4)}
.hero-sub{font-size:1.15rem;color:rgba(247,241,227,.92);max-width:620px;margin:0 auto var(--sp-6)}
.hero-cta{display:flex;gap:var(--sp-4);justify-content:center;flex-wrap:wrap;margin-bottom:var(--sp-7)}

/* Countdown */
.countdown-label{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.18em;
  font-size:.8rem;color:var(--oro2);margin-bottom:var(--sp-3)}
.countdown{display:flex;gap:var(--sp-3);justify-content:center;flex-wrap:wrap}
.cbox{background:var(--glass);border:1px solid var(--glass-brd);border-radius:var(--radius);
  padding:var(--sp-3) var(--sp-4);min-width:74px;backdrop-filter:blur(6px)}
.cbox span{display:block;font-family:var(--font-display);font-size:2rem;font-weight:600;color:var(--marfil);line-height:1}
.cbox small{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:rgba(247,241,227,.75);margin-top:6px}

/* ---------- SECCIONES (base para próximas iteraciones) ---------- */
.section{padding-block:var(--sp-9)}
.section-light{background:var(--marfil)}
.section-alt{background:var(--marfil2)}
.section-dark{background:var(--noche);color:var(--marfil)}
.section-dark h2{color:var(--marfil)}
.section-brand{background:linear-gradient(120deg,var(--granate),var(--granate2));color:var(--marfil)}
.section-brand h2{color:var(--marfil)}
.section-head{max-width:720px;margin:0 auto var(--sp-7)}
.section-head.center{text-align:center}
.section-title{font-size:var(--fs-h2)}
.placeholder-note{opacity:.6;font-size:var(--fs-sm);font-style:italic}

/* ---------- SECCIÓN «LA TRADICIÓN» ---------- */
.tradicion-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8);align-items:center}
.tradicion-img{margin:0;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow);border:1px solid var(--piedra)}
.tradicion-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;display:block}
.tradicion-texto{display:flex;flex-direction:column;gap:var(--sp-4)}
.tradicion-texto p{color:var(--tinta);line-height:1.8}
.tradicion-micros{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-2)}
.micro-card{display:flex;gap:var(--sp-4);align-items:flex-start;
  background:var(--marfil2);border:1px solid var(--piedra);border-radius:var(--radius);
  padding:var(--sp-4);transition:box-shadow var(--t-fast),transform var(--t-fast)}
.micro-card:hover{box-shadow:var(--shadow-sm);transform:translateX(4px)}
.micro-card__icon{flex:none;width:42px;height:42px;border-radius:50%;
  background:linear-gradient(135deg,var(--granate),var(--granate2));
  color:var(--oro2);display:flex;align-items:center;justify-content:center;font-size:1.1rem}
.micro-card__titulo{font-family:var(--font-display);font-weight:600;font-size:1rem;
  color:var(--granate);display:block;margin-bottom:2px}
.micro-card__desc{font-size:.88rem;color:var(--tinta-mut);margin:0;line-height:1.5}

@media (max-width:820px){
  .tradicion-grid{grid-template-columns:1fr}
  .tradicion-img{order:-1}
  .tradicion-img img{aspect-ratio:16/9}
}

/* ---------- SECCIÓN «EL DÍA GRANDE» ---------- */
.section-brand .kicker{color:var(--oro2)}
.section-brand .section-title{color:var(--marfil)}
.diagrande-intro{color:rgba(247,241,227,.92);font-size:1.1rem;line-height:1.8;
  max-width:640px;margin:0 auto}

.diagrande-proc{margin:var(--sp-7) auto 0;max-width:760px;
  background:rgba(255,255,255,.07);border:1px solid rgba(200,162,75,.35);
  border-radius:var(--radius-lg);padding:var(--sp-6)}

.proc-header{display:flex;gap:var(--sp-5);align-items:flex-start;margin-bottom:var(--sp-5);
  padding-bottom:var(--sp-5);border-bottom:1px solid rgba(200,162,75,.25)}
.proc-icon{flex:none;width:52px;height:52px;border-radius:50%;
  background:rgba(200,162,75,.18);border:1.5px solid var(--oro);
  color:var(--oro2);display:flex;align-items:center;justify-content:center;font-size:1.35rem}
.proc-meta{display:flex;flex-direction:column;gap:var(--sp-2)}
.proc-titulo{font-family:var(--font-display);font-size:1.25rem;font-weight:600;
  color:var(--marfil);display:block}
.proc-datos{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-5);
  font-size:.95rem;color:rgba(247,241,227,.85)}
.proc-datos i{color:var(--oro);margin-right:5px}

.proc-recorrido__titulo{font-family:var(--font-display);font-size:1rem;font-weight:600;
  color:var(--oro2);text-transform:uppercase;letter-spacing:.12em;margin-bottom:var(--sp-4)}
.proc-lista{list-style:none;display:grid;grid-template-columns:1fr 1fr;
  gap:0;counter-reset:parada}
.proc-lista li{counter-increment:parada;display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-2) var(--sp-3);font-size:.95rem;color:rgba(247,241,227,.88);
  border-left:2px solid rgba(200,162,75,.35);position:relative}
.proc-lista li::before{content:counter(parada,'0'counter(parada));
  font-family:var(--font-display);font-weight:600;font-size:.8rem;color:var(--oro);
  min-width:22px;text-align:right}
.proc-lista li + li{margin-top:0}
/* Línea de conexión visual */
.proc-lista li:not(:last-child)::after{content:'';position:absolute;left:-2px;bottom:-50%;
  width:2px;height:50%;background:rgba(200,162,75,.35)}
.proc-lista--single{grid-template-columns:1fr}
.proc-lista__destino{color:var(--oro2)!important;font-weight:700;
  background:rgba(200,162,75,.12);border-radius:var(--radius-sm);
  border-left-color:var(--oro)!important}
.proc-lista__destino::before{color:var(--oro2)!important}
.proc-lista__destino i{color:var(--oro2);font-size:.9em}

.diagrande-ctas{display:flex;gap:var(--sp-4);justify-content:center;flex-wrap:wrap;
  margin-top:var(--sp-7)}
/* Botón secundario sobre fondo granate */
.section-brand .btn-secondary{border-color:var(--oro);color:var(--marfil)}

/* --- Timeline del Día Grande --- */
.diagrande-timeline{max-width:720px;margin:var(--sp-8) auto 0;
  display:flex;flex-direction:column;gap:0}

.dg-momento{display:grid;grid-template-columns:72px 28px 1fr;align-items:stretch;gap:0}

.dg-momento__hora{display:flex;flex-direction:column;align-items:flex-end;
  justify-content:flex-start;padding-top:var(--sp-1);padding-right:var(--sp-3);gap:2px}
.dg-momento__h{font-family:var(--font-display);font-size:1.1rem;font-weight:700;
  color:var(--oro2);line-height:1}
.dg-momento__lbl{font-size:.6rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;color:rgba(200,162,75,.6)}

/* línea vertical continua + nodo */
.dg-momento__linea{display:flex;flex-direction:column;align-items:center;gap:0}
.dg-momento__linea::before{content:'';width:10px;height:10px;border-radius:50%;
  background:var(--oro);flex:none;margin-top:6px;
  box-shadow:0 0 0 3px rgba(200,162,75,.25)}
.dg-momento__linea::after{content:'';width:2px;flex:1;
  background:rgba(200,162,75,.3);min-height:var(--sp-6)}
.dg-momento:last-child .dg-momento__linea::after{display:none}

.dg-momento--climax .dg-momento__linea::before{width:14px;height:14px;
  background:var(--oro2);box-shadow:0 0 0 4px rgba(200,162,75,.35)}

/* tarjeta del momento */
.dg-momento__card{padding:var(--sp-1) var(--sp-5) var(--sp-6);
  display:flex;gap:var(--sp-4);align-items:flex-start}
.dg-momento__icon{flex:none;width:38px;height:38px;border-radius:50%;
  background:rgba(200,162,75,.14);border:1px solid rgba(200,162,75,.35);
  color:var(--oro);display:flex;align-items:center;justify-content:center;
  font-size:.95rem;margin-top:2px}
.dg-momento__icon--climax{width:48px;height:48px;font-size:1.2rem;
  background:rgba(200,162,75,.22);border-color:var(--oro);color:var(--oro2)}
.dg-momento__titulo{font-family:var(--font-display);font-size:1.05rem;font-weight:600;
  color:var(--marfil);display:block;margin-bottom:var(--sp-2)}
.dg-momento--climax .dg-momento__titulo{font-size:1.2rem;color:var(--oro2)}
.dg-momento__desc{font-size:.9rem;color:rgba(247,241,227,.8);line-height:1.6;margin:0}

.dg-momento__card--climax{background:rgba(255,255,255,.06);
  border:1px solid rgba(200,162,75,.4);border-radius:var(--radius-lg);
  padding:var(--sp-5);margin-left:0}

@media(max-width:600px){
  .dg-momento{grid-template-columns:60px 24px 1fr}
  .dg-momento__h{font-size:.95rem}
  .dg-momento__card{padding:var(--sp-1) var(--sp-3) var(--sp-5);gap:var(--sp-3)}
  .dg-momento__icon{width:32px;height:32px;font-size:.8rem}
  .dg-momento__icon--climax{width:40px;height:40px;font-size:1rem}
  .dg-momento__card--climax{padding:var(--sp-4)}
}
.section-brand .btn-secondary:hover{background:rgba(200,162,75,.18);opacity:1}
.section-brand .btn-primary{background:var(--marfil);color:var(--granate);border-color:var(--marfil)}
.section-brand .btn-primary:hover{background:var(--piedra);opacity:1}

@media (max-width:640px){
  .diagrande-proc{padding:var(--sp-4)}
  .proc-lista{grid-template-columns:1fr}
  .proc-header{flex-direction:column;gap:var(--sp-3)}
  .proc-datos{flex-direction:column;gap:var(--sp-2)}
}
@media (prefers-reduced-motion:reduce){
  .micro-card{transition:none}
}

/* ---------- SECCIÓN «FITC LAZARILLO» ---------- */
.fitc-datos{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);margin:var(--sp-6) 0 var(--sp-5)}
.fitc-ctas{display:flex;gap:var(--sp-4);justify-content:center;flex-wrap:wrap;margin-top:var(--sp-5)}

/* Botón con borde (sobre fondo marfil) */
.btn-outline{background:transparent;border-color:var(--granate);color:var(--granate)}
.btn-outline:hover{background:rgba(110,20,35,.07);opacity:1}

@media (max-width:820px){
  .fitc-datos{grid-template-columns:1fr}
}

/* Logo FITC */
.fitc-logo-wrap{text-align:center;margin-bottom:var(--sp-5)}
.fitc-logo{height:56px;width:auto;display:inline-block;
  background:rgba(255,255,255,.72);border-radius:10px;
  padding:6px 14px;box-shadow:0 2px 12px rgba(0,0,0,.10);
  filter:drop-shadow(0 1px 3px rgba(110,20,35,.18));
  transition:opacity var(--t-fast),transform var(--t-fast)}
.fitc-logo:hover{opacity:.85;transform:scale(1.03)}
@media (prefers-reduced-motion:reduce){.fitc-logo{transition:none}}

/* Obras destacadas */
.fitc-obras{margin-top:var(--sp-6);text-align:center}
.fitc-obras__titulo{font-family:var(--font-display);font-size:.85rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--granate);
  margin-bottom:var(--sp-3)}
.fitc-obras__lista{list-style:none;display:flex;flex-wrap:wrap;gap:var(--sp-2);
  justify-content:center}
.fitc-obra-chip{display:inline-flex;align-items:center;padding:6px var(--sp-4);
  border:1.5px solid var(--granate);border-radius:99px;
  font-size:.85rem;font-weight:700;color:var(--granate);
  transition:background var(--t-fast),color var(--t-fast)}
.fitc-obra-chip:hover{background:var(--granate);color:var(--marfil);opacity:1}
/* Redes sociales FITC */
.fitc-redes{display:flex;justify-content:center;gap:var(--sp-3);margin-top:var(--sp-5)}
.fitc-red{display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;border:1.5px solid var(--granate);
  color:var(--granate);font-size:1.1rem;
  transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}
.fitc-red:hover{background:var(--granate);color:var(--marfil);transform:scale(1.1);opacity:1}
.fitc-red:focus-visible{outline:3px solid var(--oro);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.fitc-red{transition:none}}

/* ---------- SECCIÓN «FUSIOMANZ» ---------- */
.section-dark .kicker{color:var(--oro2)}
.section-dark h2{color:var(--marfil)}
.fusio-intro{color:rgba(247,241,227,.88);font-size:1.05rem;line-height:1.8;
  max-width:580px;margin:0 auto}

.fusio-lineup{list-style:none;max-width:720px;margin:var(--sp-7) auto var(--sp-6);
  display:flex;flex-direction:column;gap:0;border-left:2px solid rgba(200,162,75,.35);
  padding-left:0}
.fusio-item{display:grid;grid-template-columns:88px 1fr;gap:var(--sp-4);align-items:start;
  padding:var(--sp-4) var(--sp-5);border-bottom:1px solid rgba(200,162,75,.12);
  transition:background var(--t-fast)}
.fusio-item:first-child{border-top:1px solid rgba(200,162,75,.12)}
.fusio-item:hover{background:rgba(255,255,255,.04)}

.fusio-fecha{font-family:var(--font-display);font-weight:600;font-size:.88rem;
  text-transform:uppercase;letter-spacing:.12em;color:var(--oro);
  padding-top:3px;white-space:nowrap}

.fusio-artista{display:flex;flex-direction:column;gap:4px}
.fusio-artista strong{font-family:var(--font-display);font-weight:600;font-size:1.15rem;
  color:var(--marfil);line-height:1.2}
.fusio-desc{font-size:.88rem;color:rgba(247,241,227,.65);line-height:1.5}

.fusio-cta{display:flex;justify-content:center;margin-top:var(--sp-2)}

/* Botón sobre fondo oscuro (noche) */
.btn-fusio{background:var(--oro);color:var(--noche);border-color:var(--oro);font-weight:800}
.btn-fusio:hover{background:var(--oro2);border-color:var(--oro2);opacity:1}

@media (max-width:560px){
  .fusio-item{grid-template-columns:68px 1fr;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3)}
  .fusio-artista strong{font-size:1rem}
}

/* ---------- SECCIÓN «INFO PRÁCTICA» ---------- */
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);align-items:start}
.info-bloque--wide{grid-column:1/-1}

.info-bloque{background:var(--marfil2);border:1px solid var(--piedra);border-radius:var(--radius);
  padding:var(--sp-5)}
.info-bloque__titulo{font-family:var(--font-display);font-size:1.1rem;font-weight:600;
  color:var(--granate);margin-bottom:var(--sp-4);display:flex;align-items:center;gap:.5em}
.info-bloque__titulo i{font-size:.9em}

/* Sedes */
.sedes-grid{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}
.sede-link{display:flex;align-items:center;gap:8px;padding:var(--sp-2) var(--sp-3);
  border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;color:var(--granate);
  background:var(--blanco);border:1px solid var(--piedra);min-height:44px;
  transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast)}
.sede-link:hover{background:rgba(110,20,35,.05);border-color:var(--granate);
  transform:translateX(3px);opacity:1}
.sede-link i{flex:none;color:var(--granate);font-size:.8em}

/* Teléfonos */
.tel-cards{display:flex;flex-direction:column;gap:var(--sp-4)}
.tel-card{background:var(--blanco);border:1px solid var(--piedra);border-radius:var(--radius-sm);
  padding:var(--sp-4)}
.tel-card__nombre{font-family:var(--font-display);font-weight:600;color:var(--granate);
  font-size:1rem;display:block;margin-bottom:4px}
.tel-card__desc{font-size:.84rem;color:var(--tinta-mut);margin-bottom:var(--sp-3)}
.tel-card__nums{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.tel-enlace{display:inline-flex;align-items:center;gap:6px;padding:var(--sp-2) var(--sp-4);
  background:var(--granate);color:var(--marfil);border-radius:var(--radius-sm);
  font-weight:700;font-size:.88rem;min-height:44px;
  transition:background var(--t-fast)}
.tel-enlace:hover{background:var(--granate2);opacity:1;color:var(--marfil)}
.tel-enlace i{font-size:.85em}

/* Museos */
.museos-lista{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2) var(--sp-6)}
.museos-lista dt{font-weight:700;color:var(--tinta);font-size:.9rem;
  grid-column:1/-1;margin-top:var(--sp-3);padding-top:var(--sp-3);
  border-top:1px solid var(--piedra)}
.museos-lista dt:first-child{margin-top:0;padding-top:0;border-top:none}
.museos-lista dd{font-size:.86rem;color:var(--tinta-mut);margin:0}
.museos-nota{margin-top:var(--sp-4);font-size:.82rem;color:var(--tinta-mut);font-style:italic}
.museos-nota a{color:var(--granate);font-weight:700}

/* FAQ */
.faq{display:flex;flex-direction:column;gap:var(--sp-3)}
.faq-item{border-radius:var(--radius-sm);background:var(--blanco);border:1px solid var(--piedra);
  padding:var(--sp-4)}
.faq-item dt{font-weight:800;color:var(--granate);margin-bottom:var(--sp-2);font-size:.95rem}
.faq-item dd{color:var(--tinta);font-size:.9rem;line-height:1.65;margin:0}
.faq-item dd a{color:var(--granate);font-weight:700}

/* Aviso oficial */
.info-aviso{margin-top:var(--sp-6);font-size:.82rem;color:var(--tinta-mut);
  font-style:italic;text-align:center;display:flex;align-items:flex-start;
  gap:8px;justify-content:center}
.info-aviso i{flex:none;color:var(--granate);margin-top:2px}

@media (max-width:820px){
  .info-grid{grid-template-columns:1fr}
  .info-bloque--wide{grid-column:auto}
  .sedes-grid{grid-template-columns:1fr}
  .museos-lista{grid-template-columns:1fr}
  .museos-lista dt{grid-column:auto}
}

/* ---------- SECCIÓN «CIERRE» ---------- */
.cierre{text-align:center;padding-block:var(--sp-9)}
.cierre-inner{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);
  max-width:600px;margin:0 auto}
.cierre-escudo{width:72px;height:auto;filter:drop-shadow(0 0 12px rgba(200,162,75,.5));
  margin-bottom:var(--sp-2)}
.cierre-frase{font-family:var(--font-display);font-size:clamp(1.8rem,4.5vw,3rem);
  font-weight:600;color:var(--marfil);line-height:1.2;margin:0}
.cierre-subtitulo{font-family:var(--font-display);font-size:clamp(1.2rem,2.5vw,1.7rem);
  font-weight:400;color:var(--oro2);font-style:italic;margin:0}
.cierre-kicker{color:var(--oro2);margin-top:var(--sp-2)}
.cierre .rule-gold{margin-inline:auto}

/* ---------- BOTONES FLOTANTES (FAB) ---------- */
.fab-group{position:fixed;bottom:var(--sp-6);right:var(--sp-6);
  display:flex;flex-direction:column;gap:var(--sp-3);align-items:center;z-index:200}
.fab{width:52px;height:52px;border-radius:50%;border:none;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:1.3rem;box-shadow:0 4px 16px rgba(0,0,0,.22);
  transition:transform var(--t-fast),opacity var(--t-fast),box-shadow var(--t-fast);
  text-decoration:none}
.fab:hover{transform:scale(1.1);box-shadow:0 6px 24px rgba(0,0,0,.30);opacity:1}
.fab:focus-visible{outline:3px solid var(--oro);outline-offset:3px}
.fab--wa{background:#25D366;color:#fff}
.fab--wa:hover{background:#1ebe5d;color:#fff}
.fab--top{background:var(--granate);color:var(--marfil)}
.fab--top:hover{background:var(--granate2)}
/* Animación entrada/salida del botón «arriba» */
.fab--top[hidden]{display:none}
.fab--top.fab--visible{display:inline-flex;
  animation:fabIn .22s ease both}
@keyframes fabIn{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .fab{transition:none}
  .fab--top.fab--visible{animation:none}
}
@media (max-width:480px){
  .fab-group{bottom:var(--sp-4);right:var(--sp-4)}
  .fab{width:48px;height:48px;font-size:1.15rem}
}

/* ---------- FOOTER ---------- */
.footer{background:var(--granate-dk);color:rgba(247,241,227,.85);padding-block:var(--sp-8) var(--sp-6)}
.footer-grid{display:flex;flex-wrap:wrap;gap:var(--sp-7);justify-content:space-between}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:var(--sp-4)}
.footer-brand img{width:48px}
.footer-brand strong{font-family:var(--font-display);font-size:1.2rem;color:var(--marfil)}
.footer h4{font-family:var(--font-display);color:var(--oro2);margin-bottom:var(--sp-3);font-weight:600}
.footer a{color:rgba(247,241,227,.85)}
.footer a:hover{color:var(--oro2)}
.footer-bottom{border-top:1px solid rgba(200,162,75,.2);margin-top:var(--sp-6);padding-top:var(--sp-4);
  font-size:.82rem;opacity:.7;display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3)}

/* ---------- RESPONSIVE ---------- */
@media (max-width:820px){
  .nav-links{position:fixed;inset:64px 0 auto 0;flex-direction:column;background:rgba(74,13,24,.98);
    padding:var(--sp-5);gap:var(--sp-2);transform:translateY(-140%);transition:transform var(--t-med);
    box-shadow:var(--shadow)}
  .nav-links.open{transform:translateY(0)}
  .nav-links a{width:100%;font-size:1rem}
  .nav-toggle{display:block}
}
@media (max-width:600px){
  .section{padding-block:var(--sp-7)}
  .cbox{min-width:64px;padding:var(--sp-2) var(--sp-3)}
  .cbox span{font-size:1.6rem}
}

/* ---------- ACCESIBILIDAD: reduce motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* ---------- PROGRAMA: BLOQUES POR DÍA ---------- */
.programa{display:flex;flex-direction:column;gap:var(--sp-6);margin-top:var(--sp-6)}

.dia{display:grid;grid-template-columns:92px 1fr;gap:var(--sp-5);align-items:start}

.dia-fecha{position:sticky;top:84px;display:flex;flex-direction:column;align-items:center;
  background:linear-gradient(160deg,var(--granate),var(--granate2));color:var(--marfil);
  border-radius:var(--radius);padding:var(--sp-3) var(--sp-2);box-shadow:var(--shadow-sm);
  border:1px solid rgba(200,162,75,.35)}
.dia-dow{font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;opacity:.85}
.dia-num{font-family:var(--font-display);font-weight:600;font-size:2.1rem;line-height:1;margin:2px 0}
.dia-mes{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--oro2)}

.dia-eventos{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(258px,1fr))}

.evento-card{background:var(--blanco);border-radius:var(--radius);box-shadow:var(--shadow-sm);
  padding:var(--sp-5);border:1px solid var(--piedra);position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:var(--sp-2);
  transition:transform var(--t-fast),box-shadow var(--t-fast),border-color var(--t-fast)}
.evento-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--oro)}
.evento-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--oro),var(--oro2));transform:scaleX(0);
  transition:transform var(--t-fast);transform-origin:left}
.evento-card:hover::after{transform:scaleX(1)}

.evento-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}
.evento-hora{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--granate)}
.evento-hora i{font-size:.85em;margin-right:2px}
.evento-hora--tbc{font-family:var(--font-body);font-size:.8rem;font-weight:600;color:var(--tinta-mut);font-style:italic}
.evento-chip{flex:none;padding:3px 10px;border-radius:50px;font-size:.68rem;font-weight:800;
  color:var(--blanco);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}

.evento-titulo{font-family:var(--font-body);font-weight:800;font-size:1.05rem;color:var(--tinta);line-height:1.32}
.evento-fecha{display:flex;flex-direction:column;gap:1px;
  border-left:3px solid var(--oro);padding-left:var(--sp-3);margin-bottom:2px}
.evento-fecha__dow{font-size:.68rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;color:var(--tinta-mut)}
.evento-fecha__num{font-family:var(--font-display);font-size:1.05rem;font-weight:700;
  color:var(--granate);line-height:1.1}
.evento-fecha--rango{display:flex;flex-direction:row;align-items:center;gap:6px;
  font-size:.78rem;font-weight:700;color:var(--granate);border-left:3px solid var(--oro);
  padding-left:var(--sp-3);margin-bottom:2px}
.evento-lugar{display:flex;align-items:flex-start;gap:7px;font-size:var(--fs-sm);color:var(--tinta-mut)}
.evento-lugar i{color:var(--granate);margin-top:3px}
.evento-rango{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;
  color:var(--oro);background:rgba(200,162,75,.12);padding:2px 10px;border-radius:50px;align-self:flex-start}
.evento-foot{margin-top:auto;padding-top:var(--sp-2)}
.evento-acceso{display:inline-block;font-size:.76rem;font-weight:700;color:var(--esperanza);
  background:rgba(31,122,90,.10);padding:2px 10px;border-radius:50px}
.evento-acceso.is-tbc{color:var(--tinta-mut);background:rgba(107,93,78,.10)}
.evento-reservas{display:flex;align-items:flex-start;gap:7px;font-size:.8rem;color:var(--granate);font-weight:600}
.evento-reservas i{color:var(--granate);margin-top:3px}
.prog-nota-acceso{font-size:.85rem;color:var(--tinta-mut);text-align:center;margin-top:var(--sp-3);font-style:italic}

/* ---------- BOTÓN "MÁS INFORMACIÓN" ---------- */
.evento-mas{margin-top:var(--sp-2);align-self:flex-start;background:none;border:0;cursor:pointer;
  color:var(--granate);font-family:var(--font-body);font-weight:700;font-size:.82rem;
  display:inline-flex;align-items:center;gap:6px;padding:4px 0;border-bottom:2px solid transparent;
  transition:border-color var(--t-fast)}
.evento-mas:hover{border-bottom-color:var(--oro)}
.evento-mas i{color:var(--oro)}

/* ---------- MODAL ---------- */
.modal-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;
  padding:var(--sp-4);background:rgba(26,17,20,.68);backdrop-filter:blur(4px)}
.modal-overlay[hidden]{display:none}
.modal{position:relative;background:var(--marfil2);color:var(--tinta);border-radius:var(--radius-lg);
  max-width:640px;width:100%;max-height:88vh;overflow-y:auto;box-shadow:var(--shadow);
  border-top:6px solid var(--granate);padding:var(--sp-7) var(--sp-6) var(--sp-6);animation:modalIn .28s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.modal-close{position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;border:0;
  background:rgba(110,20,35,.08);color:var(--granate);font-size:1.1rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background var(--t-fast)}
.modal-close:hover{background:rgba(110,20,35,.16)}
.modal-chip{display:inline-block;background:var(--granate);color:var(--marfil);font-size:.7rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.08em;padding:3px 10px;border-radius:50px;margin-bottom:var(--sp-3)}
.modal-titulo{font-family:var(--font-display);color:var(--granate);font-size:clamp(1.4rem,3vw,2rem);
  margin-bottom:var(--sp-3);line-height:1.2}
.modal-meta{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);font-size:.85rem;color:var(--tinta-mut);margin-bottom:var(--sp-4)}
.modal-meta i{color:var(--granate);margin-right:4px}
.modal-info p{margin-bottom:var(--sp-3);line-height:1.7}
.modal-extra{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--piedra);
  display:flex;flex-direction:column;gap:var(--sp-2);font-size:.9rem;font-weight:600;color:var(--granate)}
.modal-extra i{width:18px;color:var(--granate)}
.modal-fuente{margin-top:var(--sp-4);font-size:.8rem;color:var(--tinta-mut)}
.modal-fuente a{color:var(--granate);font-weight:700}
@media (prefers-reduced-motion:reduce){.modal{animation:none}}
.evento-obs{font-size:.82rem;color:var(--tinta-mut);font-style:italic;opacity:.9;
  border-top:1px dashed var(--piedra);padding-top:var(--sp-2)}

@media (max-width:640px){
  .dia{grid-template-columns:1fr;gap:var(--sp-3)}
  .dia-fecha{position:static;flex-direction:row;gap:var(--sp-2);justify-content:flex-start;
    align-items:baseline;padding:var(--sp-2) var(--sp-4)}
  .dia-num{font-size:1.4rem;margin:0}
  .dia-eventos{grid-template-columns:1fr}
}

/* ---------- UTILIDAD: ocultar ---------- */
.hidden{display:none!important}

/* Texto visualmente oculto (accesible) */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- PROGRAMA INTERACTIVO (Iteración 3) ---------- */
.prog-wrap{margin-top:var(--sp-6)}

/* --- Controles --- */
.prog-controls{display:flex;flex-direction:column;gap:var(--sp-5);
  background:var(--marfil2);border:1px solid var(--piedra);border-radius:var(--radius-lg);
  padding:var(--sp-5) var(--sp-5) var(--sp-4);margin-bottom:var(--sp-6)}

/* --- Buscador --- */
.prog-search__inner{position:relative;display:flex;align-items:center}
.prog-search__icon{position:absolute;left:14px;color:var(--tinta-mut);font-size:.95rem;pointer-events:none}
.prog-search__input{width:100%;padding:.75em 2.8em .75em 2.6em;border:1.5px solid var(--piedra);
  border-radius:var(--radius);font-family:var(--font-body);font-size:var(--fs-body);
  background:var(--blanco);color:var(--tinta);transition:border-color var(--t-fast)}
.prog-search__input:focus{outline:none;border-color:var(--granate)}
.prog-search__input:focus-visible{outline:3px solid var(--oro);outline-offset:2px}
.prog-search__clear{position:absolute;right:10px;background:none;border:0;cursor:pointer;
  color:var(--tinta-mut);padding:6px;border-radius:50%;min-width:32px;min-height:32px;
  display:flex;align-items:center;justify-content:center;transition:color var(--t-fast)}
.prog-search__clear:hover{color:var(--granate)}

/* --- Chips de categoría --- */
.prog-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.prog-chip{display:inline-flex;align-items:center;gap:6px;padding:.45em .95em;
  border-radius:50px;font-family:var(--font-body);font-size:.82rem;font-weight:700;
  cursor:pointer;border:2px solid transparent;background:var(--blanco);color:var(--tinta);
  border-color:var(--piedra);min-height:44px;min-width:44px;
  transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast),transform var(--t-fast)}
.prog-chip:hover{transform:translateY(-1px);border-color:var(--granate)}
.prog-chip[data-macro=""].active{background:var(--granate);color:var(--marfil);border-color:var(--granate)}
.prog-chip[data-macro=""]:hover{border-color:var(--granate2)}
/* Chips de categoría activos: usan el color semántico de cada categoría */
.prog-chip[data-macro]:not([data-macro=""]).active{
  background:var(--chip-color,var(--granate));color:var(--chip-fg,#fff);
  border-color:var(--chip-color,var(--granate))}

/* --- Selector de días por fase --- */
.prog-fases{display:flex;flex-direction:column;gap:var(--sp-4)}
/* Botón "Todos los días" fuera de las fases */
.prog-fases > .dia-btn{align-self:flex-start}

.fase{display:flex;flex-direction:column;gap:var(--sp-2)}
.fase__label{color:var(--tinta-mut);font-size:.78rem;margin-bottom:0;display:flex;align-items:center;gap:.4em}
.fase--diagrande{background:rgba(110,20,35,.07);border:1.5px solid rgba(200,162,75,.4);
  border-radius:var(--radius);padding:var(--sp-3) var(--sp-4)}
.fase--diagrande .fase__label{color:var(--granate)}

.fase-dias{display:flex;gap:var(--sp-2);overflow-x:auto;padding-bottom:var(--sp-2);
  padding-top:var(--sp-3);
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.fase-dias::-webkit-scrollbar{height:4px}
.fase-dias::-webkit-scrollbar-track{background:var(--piedra);border-radius:4px}
.fase-dias::-webkit-scrollbar-thumb{background:var(--oro);border-radius:4px}

/* Botones de día */
.dia-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:1px;padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);cursor:pointer;
  border:1.5px solid var(--piedra);background:var(--blanco);color:var(--tinta);
  min-width:52px;min-height:60px;scroll-snap-align:start;flex-shrink:0;
  transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast),transform var(--t-fast)}
.dia-btn:hover{border-color:var(--granate2);transform:translateY(-2px)}
.dia-btn.active{background:var(--granate);color:var(--marfil);border-color:var(--oro)}
.dia-btn__num{font-family:var(--font-display);font-weight:600;font-size:1.3rem;line-height:1}
.dia-btn__dow{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;opacity:.85}
.dia-btn__mes{font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;opacity:.7}
.dia-btn__tag{display:block;background:var(--oro);color:var(--noche);
  font-size:.52rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  padding:1px 6px;border-radius:50px;white-space:nowrap;
  margin-bottom:2px;line-height:1.4;text-align:center}
/* "Todos los días" button wider */
.dia-btn[data-fecha=""] .dia-btn__num{font-size:1rem}
.dia-btn[data-fecha=""]{min-width:72px}

/* --- PROMPT INICIAL (sin selección) --- */
.prog-prompt{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);
  padding:var(--sp-5) var(--sp-5);text-align:center;
  color:var(--tinta-mut);border-top:1px solid var(--piedra)}
.prog-prompt i{font-size:2rem;color:var(--oro);opacity:.7}
.prog-prompt p{font-size:var(--fs-body);max-width:36ch;margin:0;line-height:1.5}
.prog-prompt.hidden{display:none}

/* --- GRID DE RESULTADOS (plano, sin acordeón) --- */
.resultado-grid{display:grid;gap:var(--sp-4);
  grid-template-columns:repeat(auto-fill,minmax(258px,1fr));
  padding-top:var(--sp-5)}

/* --- Contador de resultados --- */
.prog-counter{font-size:var(--fs-sm);color:var(--tinta-mut);font-weight:600;
  margin:0;padding-top:var(--sp-2);border-top:1px solid var(--piedra);
  min-height:1.5em}
.prog-counter:empty{border-top-color:transparent}

@media (max-width:640px){
  .resultado-grid{grid-template-columns:1fr}
}

/* --- Estado vacío --- */
.prog-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);
  padding:var(--sp-8) var(--sp-5);text-align:center;color:var(--tinta-mut)}
.prog-empty p{font-size:var(--fs-body)}
.prog-empty__btn{margin-top:var(--sp-2)}

/* --- Responsive programa interactivo --- */
@media (max-width:640px){
  .prog-controls{padding:var(--sp-4) var(--sp-3) var(--sp-3);gap:var(--sp-4)}
  .prog-chips{gap:var(--sp-2)}
  .prog-chip{font-size:.76rem;padding:.4em .75em;min-height:44px}
  .dia-btn{min-width:48px;min-height:56px;padding:var(--sp-2)}
  .dia-btn__num{font-size:1.1rem}
  .prog-counter{text-align:left}
}
