/* =================================================================
   29 Feria de Teatro de Castilla y León — Ciudad Rodrigo 2026
   Sistema visual. Paleta muestreada del cartel oficial.
   ================================================================= */

:root{
  /* Paleta 2026: negros + grises + marrón */
  --violet:   #333333;   /* acento frío → gris oscuro */
  --violet-700:#1a1a1a;  /* casi negro */
  --rose:     #b89a80;   /* marrón medio, zona media del degradado */
  --coral:    #c2a88f;   /* marrón, acento cálido */
  --coral-600:#835f3a;   /* marrón oscuro AA (texto/acentos sobre claro ≥4.5:1) */
  --indigo:   #555555;   /* gris */
  --ink:      #000000;   /* negro */
  --ink-soft: #333333;   /* gris oscuro, texto secundario */
  --green:    #797979;   /* gris medio (acento neutro) */

  --cream:    #f3ece4;   /* papel cálido (beige claro del marrón) */
  --paper:    #faf6f0;
  --line:     #e3d8cc;   /* divisorias sobre papel */
  --line-ink: rgba(0,0,0,.14);

  --topbar-bg: #333333;       /* franja superior (redes/buscador) */
  --menu-bg:   var(--coral);  /* fondo del menú principal */

  /* Degradado maestro: negro → gris → marrón */
  --grad-poster: linear-gradient(168deg, #000000 0%, #333333 30%, #797979 62%, #c2a88f 100%);
  --grad-soft:   linear-gradient(180deg, #f3ece4 0%, #e9ddd0 100%);

  --serif: 'Archivo', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --serif-wt: 800;   /* títulos con la tipografía del menú (Archivo) */
  --sans:  'Archivo', 'Helvetica Neue', Helvetica, Arial, sans-serif;

  --maxw: 1280px;
  --gut: clamp(24px, 5vw, 72px);

  --shadow-sm: 0 1px 3px rgba(0,0,0,.10), 0 6px 20px rgba(0,0,0,.07);
  --shadow-md: 0 8px 40px rgba(0,0,0,.16);
  --shadow-lg: 0 30px 80px rgba(0,0,0,.24);
}

/* Tipografía de títulos conmutable (persiste vía localStorage en site.js) */
[data-titlefont="cormorant"]{--serif:'Cormorant Garamond',Georgia,serif;--serif-wt:600;}
[data-titlefont="playfair"]{--serif:'Playfair Display',Georgia,serif;--serif-wt:700;}
[data-titlefont="dmserif"]{--serif:'DM Serif Display',Georgia,serif;--serif-wt:400;}
[data-titlefont="bodoni"]{--serif:'Bodoni Moda','Times New Roman',serif;--serif-wt:700;}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-size:17px;
  line-height:1.6;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}

/* ---------- Tipografía ---------- */
.display{
  font-family:var(--serif);
  font-weight:var(--serif-wt);
  line-height:.92;
  letter-spacing:-.01em;
  text-transform:uppercase;
  margin:0;
}
.serif{font-family:var(--serif);}
h1,h2,h3,h4{margin:0;}
.eyebrow{
  font-family:var(--sans);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.72rem;
}
.lead{font-size:clamp(1.05rem,1.5vw,1.32rem);line-height:1.5;color:var(--ink-soft);}

/* ---------- Layout helpers ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut);}
.section{padding:clamp(56px,8vw,120px) 0;}
.divider{height:1px;background:var(--line);border:0;margin:0;}

/* ===================================================================
   TOPBAR (social + idioma) — fiel a la web actual
   =================================================================== */
.topbar{background:var(--topbar-bg);color:rgba(250,243,238,.85);}
.topbar__in{max-width:var(--maxw);margin:0 auto;padding:0 24px;height:48px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;}
.social{display:flex;align-items:center;gap:6px;}
.social a{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:rgba(250,243,238,.8);transition:color .16s,background .16s;}
.social a svg{width:16px;height:16px;}
.social a:hover{color:#fff;background:rgba(255,255,255,.12);}
.topbar__right{display:flex;align-items:center;gap:18px;}
.topbar__url{font-family:var(--sans);font-weight:700;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(250,243,238,.6);}

/* Buscador en la topbar */
.topsearch{display:flex;align-items:center;background:rgba(250,243,238,.12);border-radius:999px;
  padding:2px 2px 2px 12px;transition:background .15s;}
.topsearch:focus-within{background:rgba(250,243,238,.2);}
.topsearch input{border:0;background:transparent;color:#fff;font-family:var(--sans);font-size:.8rem;
  width:128px;padding:5px 4px;}
.topsearch input::placeholder{color:rgba(250,243,238,.6);}
.topsearch button{border:0;background:transparent;color:rgba(250,243,238,.85);cursor:pointer;
  width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;}
.topsearch button:hover{color:#fff;}
.topsearch svg{width:16px;height:16px;}
@media (max-width:760px){ .topsearch{display:none;} }

/* Buscador en el menú móvil */
.mnav__search{display:flex;align-items:center;gap:6px;margin:10px 0;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:4px 6px 4px 14px;}
.mnav__search input{flex:1;border:0;background:transparent;font-family:var(--sans);font-size:.95rem;padding:7px 0;color:var(--ink);}
.mnav__search button{border:0;background:var(--coral-600);color:#fff;width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto;}
.mnav__search svg{width:17px;height:17px;}

/* ===================================================================
   HEADER (inyectado por site.js)
   =================================================================== */
.site-header{
  position:sticky;top:0;z-index:60;
  background:var(--menu-bg);     /* fondo del menú (editable en panel) */
  border-bottom:1px solid rgba(0,0,0,.16);
}
.site-header__bar{
  max-width:var(--maxw);margin:0 auto;
  padding:0 24px;
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:22px;
  height:52px;
}
.brand{display:flex;align-items:center;gap:14px;flex-shrink:0;justify-self:start;}
.brand__img{height:clamp(34px,3.6vw,46px);width:auto;max-width:none;flex-shrink:0;display:block;}
.brand-junta{display:flex;align-items:center;flex:none;}
.brand-junta img{width:98px;height:auto;display:block;}
@media (max-width:560px){.brand-junta img{width:74px;}}
.brand__mark{
  width:38px;height:38px;border-radius:50%;
  background:var(--grad-poster);
  display:grid;place-items:center;flex-shrink:0;
  box-shadow:0 2px 10px rgba(0,0,0,.4);
}
.brand__mark svg{width:19px;height:19px;}
.brand__txt{
  font-family:var(--sans);font-weight:800;
  text-transform:uppercase;letter-spacing:.06em;
  font-size:.58rem;line-height:1.32;color:var(--ink);
  display:flex;flex-direction:column;white-space:nowrap;
}
.brand__txt b, .brand__txt i, .brand__txt u{white-space:nowrap;}
.brand__txt b{font-size:.7rem;letter-spacing:.03em;}
.brand__txt i{font-style:normal;color:var(--violet-700);}
.brand__txt u{text-decoration:none;color:var(--coral-600);}

.nav{display:flex;align-items:stretch;gap:1px;margin:0;height:52px;justify-self:stretch;justify-content:space-between;}
.nav__item{position:relative;display:flex;align-items:center;}
.nav__item > a{
  font-family:var(--sans);font-weight:600;
  text-transform:uppercase;letter-spacing:.04em;
  font-size:.86rem;color:var(--ink);
  padding:7px 13px;border-radius:8px;
  transition:background .18s,color .18s;
  white-space:nowrap;display:flex;align-items:center;gap:5px;
}
/* Escalón intermedio: aprieta el menú antes de pasar a hamburguesa (8 ítems) */
@media (max-width:1240px){
  .site-header__bar{gap:12px;}
  .nav__item > a{font-size:.78rem;letter-spacing:.02em;padding:9px 9px;gap:4px;}
  .header__tools{gap:9px;}
}
.nav__item.has-panel > a::after{content:"";width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.55;}
.nav__item > a:hover{background:rgba(255,255,255,.30);color:#000;}
.nav__item > a.is-active{background:rgba(0,0,0,.14);color:#000;}
/* Panel desplegable (con puente para evitar que se cierre al bajar el ratón) */
.nav__panel{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);
  min-width:250px;padding-top:9px;
  opacity:0;visibility:hidden;transition:opacity .16s,transform .16s;z-index:70;
}
.nav__item:hover .nav__panel, .nav__item:focus-within .nav__panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.nav__panel-in{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);
  border-radius:14px;box-shadow:var(--shadow-md);padding:8px;}
.nav__panel a{font-family:var(--sans);font-weight:500;font-size:.82rem;color:var(--ink);
  padding:9px 13px;border-radius:8px;transition:background .14s,color .14s;white-space:nowrap;}
.nav__panel a:hover{background:rgba(194,168,143,.12);color:var(--coral-600);text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:2px;text-underline-offset:4px;}

.header__tools{display:flex;align-items:center;gap:12px;flex-shrink:0;justify-self:end;}
.lang{display:flex;gap:2px;font-family:var(--sans);font-weight:700;font-size:.7rem;letter-spacing:.06em;}
.lang button{
  background:none;border:0;color:rgba(250,243,238,.55);
  padding:4px 7px;border-radius:6px;text-transform:uppercase;
}
.lang button.is-active{color:#fff;background:rgba(255,255,255,.14);}
.lang button:hover{color:#fff;}

.btn{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--sans);font-weight:700;
  text-transform:uppercase;letter-spacing:.1em;font-size:.74rem;
  padding:12px 22px;border-radius:999px;border:1.5px solid transparent;
  transition:transform .16s, box-shadow .16s, background .16s, color .16s;
}
.btn--coral{background:var(--coral);color:#1a1a1a;box-shadow:0 6px 18px rgba(131,95,58,.34);}
.btn--coral:hover{background:var(--coral-600);color:#fff;transform:translateY(-2px);}
.btn--ink{background:var(--ink);color:var(--cream);}
.btn--ink:hover{transform:translateY(-2px);background:#160f29;}
.btn--ghost{border-color:currentColor;color:var(--ink);}
.btn--ghost:hover{background:var(--ink);color:var(--cream);}
.btn--light{background:#fff;color:var(--ink);}
.btn--light:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);}
.btn--lg{padding:15px 30px;font-size:.8rem;}
.btn--sm{padding:6px 15px;font-size:.66rem;letter-spacing:.12em;}
.topbar .btn--coral{box-shadow:none;}
.topbar__entradas{margin-right:4px;}

.hamburger{display:none;background:none;border:0;padding:6px;color:var(--ink);margin-left:4px;}
.hamburger svg{width:32px;height:32px;}

/* ===================================================================
   FOOTER (inyectado por site.js)
   =================================================================== */
.site-footer{background:var(--ink);color:var(--cream);}
.footer__top{
  max-width:var(--maxw);margin:0 auto;padding:clamp(48px,7vw,84px) var(--gut) 40px;
  display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:40px;
}
.social--footer{margin-top:22px;}
.social--footer a{color:rgba(250,243,238,.7);background:rgba(255,255,255,.07);}
.social--footer a:hover{color:#fff;background:rgba(255,255,255,.16);}
.footer__brand .display{font-size:clamp(1.6rem,2.6vw,2.3rem);color:#fff;line-height:.95;}
.footer__brand p{color:rgba(250,243,238,.66);max-width:34ch;margin:16px 0 0;font-size:.95rem;}
.footer__col h4{
  font-family:var(--sans);font-weight:700;text-transform:uppercase;
  letter-spacing:.16em;font-size:.7rem;color:var(--coral-600);margin-bottom:16px;
}
.footer__col a, .footer__col p{
  display:block;color:rgba(250,243,238,.78);font-size:.92rem;
  padding:5px 0;transition:color .16s;
}
.footer__col a:hover{color:#fff;}
.footer__orgs{
  border-top:1px solid rgba(250,243,238,.15);
  max-width:var(--maxw);margin:0 auto;padding:28px var(--gut);
  display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;
}
.footer__orgs .lbl{font-size:.66rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(250,243,238,.5);font-weight:700;}
.org-chip{
  font-family:var(--sans);font-weight:700;font-size:.74rem;
  color:rgba(250,243,238,.82);letter-spacing:.01em;
  padding:7px 14px;border:1px solid rgba(250,243,238,.22);border-radius:8px;
}
.footer__legal{
  border-top:1px solid rgba(250,243,238,.15);
  max-width:var(--maxw);margin:0 auto;padding:20px var(--gut);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;
  font-size:.8rem;color:rgba(250,243,238,.55);
}
.footer__legal a{color:rgba(250,243,238,.55);}
.footer__legal a:hover{color:#fff;}

/* ===================================================================
   FRANJA INSTITUCIONAL (Feria + Junta, destacada) + MURO DE PATROCINIO
   =================================================================== */
.institutional{background:#fff;border-top:1px solid var(--line);}
.institutional__in{
  max-width:var(--maxw);margin:0 auto;padding:clamp(34px,5vw,60px) var(--gut);
  display:flex;align-items:center;justify-content:space-between;gap:clamp(28px,5vw,72px);flex-wrap:wrap;
}
.institutional__logo{display:flex;flex-direction:column;gap:10px;}
.institutional__logo .cap{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:.62rem;color:var(--ink-soft);}
.institutional__logo img{display:block;width:auto;}
.institutional__logo--feria img{height:clamp(65px,8.5vw,107px);}
.institutional__logo--junta{align-items:flex-end;text-align:right;}
.institutional__logo--junta img{height:clamp(58px,7.5vw,96px);}
.institutional__div{flex:0 0 1px;align-self:stretch;background:var(--line);min-height:64px;}

.sponsorwall{background:var(--cream);border-top:1px solid var(--line);}
.sponsorwall__in{max-width:var(--maxw);margin:0 auto;padding:clamp(30px,4vw,52px) var(--gut);
  display:flex;justify-content:center;}
.sw-all{width:100%;max-width:1080px;height:auto;display:block;}

/* ===================================================================
   COMPONENTES REUTILIZABLES
   =================================================================== */

/* Marco de imagen placeholder rayado */
.ph{
  position:relative;overflow:hidden;background:var(--cream);
  background-image:repeating-linear-gradient(135deg,rgba(0,0,0,.10) 0 2px,transparent 2px 11px);
  border:1px solid var(--line);
  display:grid;place-items:center;color:var(--ink-soft);
}
.ph span{
  font-family:'Courier New',monospace;font-size:.72rem;letter-spacing:.04em;
  text-transform:uppercase;background:var(--paper);padding:5px 10px;border-radius:6px;
  border:1px solid var(--line);color:var(--ink-soft);
}

/* Sello / tag de fechas */
.datestamp{
  display:inline-flex;flex-direction:column;align-items:flex-start;
  font-family:var(--serif);text-transform:uppercase;line-height:.92;
}

/* Etiquetas de género */
.tag{
  display:inline-block;font-family:var(--sans);font-weight:600;
  font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;
  padding:5px 11px;border-radius:999px;border:1px solid var(--line-ink);
  color:var(--violet-700);background:rgba(0,0,0,.07);
}
.tag--coral{color:var(--coral-600);background:rgba(194,168,143,.12);border-color:rgba(194,168,143,.3);}
.tag--green{color:var(--green);background:rgba(111,122,62,.1);border-color:rgba(111,122,62,.28);}

/* Tarjeta */
.card{
  background:var(--paper);border:1px solid var(--line);border-radius:18px;
  overflow:hidden;transition:transform .2s, box-shadow .2s;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}

/* Pie de página interior / cabecera de sección de página interior */
.page-hero{position:relative;background:var(--grad-poster);color:#fff;overflow:hidden;}
.page-hero__inner{max-width:var(--maxw);margin:0 auto;padding:clamp(70px,11vw,150px) var(--gut) clamp(48px,7vw,90px);position:relative;z-index:2;}
.page-hero .crumbs{font-family:var(--sans);font-weight:600;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:rgba(255,255,255,.82);margin-bottom:22px;}
.page-hero .crumbs a:hover{text-decoration:underline;}
.page-hero h1{font-family:var(--serif);font-weight:var(--serif-wt);text-transform:uppercase;line-height:.9;font-size:clamp(2.6rem,7vw,6rem);}
.page-hero .lead{color:rgba(255,255,255,.9);max-width:62ch;margin-top:24px;}
.page-hero__glow{position:absolute;inset:0;background:radial-gradient(60% 90% at 85% 10%,rgba(255,255,255,.22),transparent 60%);z-index:1;}
/* Cabecera con imagen de fondo personalizable + degradado para legibilidad */
.page-hero--img{background-size:cover;background-repeat:no-repeat;background-color:#1a1a1a;
  min-height:clamp(300px,34vw,500px);display:flex;align-items:flex-end;}
.page-hero__overlay{position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.45) 42%,rgba(0,0,0,.18) 72%,rgba(0,0,0,.28) 100%);}
.page-hero--img .page-hero__inner{width:100%;padding-top:clamp(80px,9vw,120px);padding-bottom:clamp(40px,5vw,68px);}
.page-hero--img h1{text-shadow:0 2px 24px rgba(0,0,0,.5);}
.page-hero--img .crumbs{text-shadow:0 1px 10px rgba(0,0,0,.6);}

/* ===================================================================
   PANEL DE EXPLORACIÓN (solo home): tipografía + dirección
   =================================================================== */
.explore{
  position:fixed;left:20px;bottom:20px;
  z-index:80;display:flex;flex-direction:column;gap:6px;
  background:rgba(0,0,0,.92);backdrop-filter:blur(10px);
  padding:12px 14px;border-radius:18px;
  box-shadow:var(--shadow-lg);color:#fff;
}
.explore__row{display:flex;align-items:center;gap:10px;justify-content:space-between;}
.explore__lbl{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.6rem;color:rgba(255,255,255,.55);white-space:nowrap;}
.explore__opts{display:flex;gap:3px;background:rgba(255,255,255,.08);padding:3px;border-radius:999px;}
.explore__opts button{
  background:none;border:0;color:rgba(255,255,255,.7);
  font-family:var(--sans);font-weight:700;font-size:.74rem;letter-spacing:.02em;
  padding:7px 13px;border-radius:999px;transition:background .16s,color .16s;white-space:nowrap;
}
.explore__opts button.is-active{background:var(--coral);color:#fff;}
.dirswitch{
  position:fixed;left:50%;bottom:22px;transform:translateX(-50%);
  z-index:80;display:flex;align-items:center;gap:4px;
  background:rgba(0,0,0,.92);backdrop-filter:blur(10px);
  padding:7px 8px 7px 16px;border-radius:999px;
  box-shadow:var(--shadow-lg);color:#fff;
}
.dirswitch .lbl{font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;color:rgba(255,255,255,.6);margin-right:6px;}
.dirswitch button{
  background:none;border:0;color:rgba(255,255,255,.7);
  font-family:var(--sans);font-weight:700;font-size:.78rem;letter-spacing:.04em;
  padding:8px 15px;border-radius:999px;transition:background .16s,color .16s;white-space:nowrap;
}
.dirswitch button.is-active{background:var(--coral);color:#fff;}

/* ===================================================================
   RESPONSIVE
   =================================================================== */
@media (max-width:1080px){
  .site-header__bar{display:flex;}
  .nav{display:none;}
  .hamburger{display:block;}
  .header__tools{margin-left:auto;}
  .footer__top{grid-template-columns:1fr 1fr;}
  .footer__brand{grid-column:1 / -1;}
}
@media (max-width:860px){
  .topbar__url{display:none;}
}
@media (max-width:720px){
  .footer__top{grid-template-columns:1fr;gap:32px;}
  .institutional__in{flex-direction:column;text-align:center;gap:28px;}
  .institutional__logo--junta{align-items:center;text-align:center;}
  .institutional__div{display:none;}
}
@media (max-width:560px){
  body{font-size:16px;}
  .site-header__bar{height:50px;gap:14px;}
  .social a{width:26px;height:26px;}
}

/* Menú móvil (mega-menú en acordeón) */
.mnav{display:none;}
.mnav.open{display:block;border-top:1px solid var(--line-ink);background:var(--paper);max-height:78vh;overflow-y:auto;}
.mnav__group{border-bottom:1px solid var(--line);}
.mnav__group summary{padding:14px var(--gut);font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;}
.mnav__group summary::-webkit-details-marker{display:none;}
.mnav__group summary::after{content:"+";font-size:1.1rem;color:var(--coral-600);}
.mnav__group[open] summary::after{content:"–";}
.mnav__group a{display:block;padding:10px var(--gut) 10px calc(var(--gut) + 14px);font-size:.85rem;color:var(--ink-soft);font-weight:500;}
.mnav__group a:hover{color:var(--coral-600);}
.mnav__cta{display:block;margin:14px var(--gut);text-align:center;background:var(--coral);color:#fff;padding:13px;border-radius:999px;font-family:var(--sans);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.78rem;}
.mnav__lang{display:flex;gap:8px;padding:6px var(--gut) 14px;}
.mnav__lang button{background:rgba(0,0,0,.06);border:0;padding:8px 14px;border-radius:8px;font-weight:700;color:var(--ink);}
.mnav__lang button.is-active{background:var(--ink);color:#fff;}
.mnav__social{display:flex;gap:8px;padding:0 var(--gut) 20px;}
.mnav__social a{background:rgba(0,0,0,.06);color:var(--ink);}
.mnav__social a:hover{background:var(--ink);color:#fff;}

/* Animación de entrada */
@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;}
  .reveal.in{opacity:1;transform:none;}
}

/* Banner de cookies */
.cookiebar{position:fixed;left:16px;right:16px;bottom:16px;z-index:90;max-width:940px;margin:0 auto;
  background:var(--ink);color:var(--cream);border-radius:16px;box-shadow:var(--shadow-lg);
  padding:18px 22px;display:flex;align-items:center;gap:18px 22px;flex-wrap:wrap;justify-content:space-between;}
.cookiebar__txt{margin:0;font-size:.9rem;line-height:1.5;flex:1 1 320px;color:rgba(250,243,238,.9);}
.cookiebar__txt a{color:#fff;text-decoration:underline;text-decoration-color:var(--coral);text-underline-offset:3px;}
.cookiebar__btns{display:flex;gap:10px;flex-shrink:0;}
.cookiebar .btn--ghost{background:rgba(255,255,255,.14);color:#fff;border-color:transparent;}
.cookiebar .btn--ghost:hover{background:rgba(255,255,255,.28);color:#fff;}
@media (max-width:560px){.cookiebar{padding:16px;}.cookiebar__btns{width:100%;}.cookiebar__btns .btn{flex:1;justify-content:center;}}

/* ===================================================================
   FRANJA DE MARCA (logos + título) — entre topbar y menú, fondo negro
   Logos en blanco temporalmente vía filtro; al recibir los logos
   definitivos en blanco, cambiar el src y quitar el filtro.
   =================================================================== */
.brandband{background:#000;color:#fff;}
.brandband__in{max-width:var(--maxw);margin:0 auto;padding:14px 24px;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;}
.brandband__logo{display:flex;align-items:center;}
.brandband__logo--feria{justify-self:start;}
.brandband__logo--junta{justify-self:end;}
.brandband__logo img{width:auto;display:block;}
.brandband__logo--feria img{height:50px;}
.brandband__logo--junta img{height:78px;}
.brandband__center{display:flex;justify-content:center;align-items:center;}
.brandband__lockup{height:clamp(58px,7.8vw,94px);width:auto;display:block;}
.brandband__title{display:inline-flex;align-items:center;gap:16px;
  font-family:var(--sans);text-transform:uppercase;}
.bb-29{font-weight:800;font-size:clamp(2.9rem,5.6vw,4.4rem);line-height:.82;
  letter-spacing:-.03em;color:#fff;}
.bb-txt{display:flex;flex-direction:column;text-align:left;line-height:.98;
  font-weight:800;font-size:clamp(1rem,1.9vw,1.55rem);letter-spacing:.005em;color:#fff;}
.bb-txt u{text-decoration:none;color:var(--coral-600);}
.brandband__date{margin:8px 0 0;font-family:var(--sans);font-weight:600;
  color:var(--coral-600);font-size:clamp(.95rem,1.6vw,1.22rem);letter-spacing:.01em;}
@media (max-width:920px){
  .brandband__logo--feria img{height:40px;}
  .brandband__logo--junta img{height:62px;}
  .brandband__in{gap:14px;}
}
@media (max-width:680px){
  .brandband__in{grid-template-columns:1fr;justify-items:center;padding:12px 16px;}
  .brandband__logo{display:none;}
}

/* ===================================================================
   ACCESIBILIDAD — foco de teclado visible + saltar al contenido
   =================================================================== */
:focus-visible{outline:3px solid #111;outline-offset:2px;}
/* Zonas oscuras: anillo claro para que el foco se vea */
.topbar :focus-visible,.site-footer :focus-visible,.intro :focus-visible,
.fwslider :focus-visible,.cookiebar :focus-visible,.brandband :focus-visible,
.entradas :focus-visible{outline-color:#fff;}
.skip-link{position:absolute;left:8px;top:-60px;z-index:200;background:#111;color:#fff;
  padding:10px 18px;border-radius:0 0 10px 10px;font-family:var(--sans);font-weight:700;
  font-size:.85rem;text-decoration:none;transition:top .16s;}
.skip-link:focus{top:0;}

/* ===================================================================
   ACCESIBILIDAD — control en topbar: tamaño de texto + alto contraste
   =================================================================== */
.topbar__left{display:flex;align-items:center;gap:14px;}
.a11y-tools{display:flex;align-items:center;gap:4px;}
.a11y-btn{background:rgba(255,255,255,.12);border:0;color:rgba(250,243,238,.92);
  font-family:var(--sans);font-weight:700;font-size:.72rem;line-height:1;
  min-width:30px;height:26px;padding:0 7px;border-radius:6px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s;}
.a11y-btn:hover{background:rgba(255,255,255,.28);color:#fff;}
.a11y-btn[aria-pressed="true"]{background:#fff;color:#111;}
@media (max-width:560px){ .a11y-tools{gap:2px;} .a11y-btn{min-width:26px;padding:0 5px;} }

/* Tamaño de texto (escala los rem de todo el sitio) */
html.a11y-fs-1{font-size:112.5%;}
html.a11y-fs-2{font-size:125%;}

/* Alto contraste (opcional, activable por el usuario) */
html.a11y-contrast{--ink:#000;--ink-soft:#000;--coral-600:#000;--green:#000;
  --paper:#fff;--cream:#fff;--line:#000;--line-ink:#000;--topbar-bg:#000;--menu-bg:#000;}
html.a11y-contrast body{background:#fff;}
html.a11y-contrast a{text-decoration:underline;}
html.a11y-contrast .nav__item>a,html.a11y-contrast .nav__panel a{color:#fff;}
html.a11y-contrast .nav__item>a.is-active{background:#fff;color:#000;}
html.a11y-contrast .btn{border:2px solid currentColor;}
html.a11y-contrast .btn--coral,html.a11y-contrast .btn--ink{background:#000;color:#fff;}
html.a11y-contrast .btn--light,html.a11y-contrast .btn--ghost{background:#fff;color:#000;}
html.a11y-contrast .card,html.a11y-contrast .news__card,html.a11y-contrast .wpcard,
html.a11y-contrast .lodging__card,html.a11y-contrast .subnav__card{background:#fff;border:1px solid #000;}
html.a11y-contrast .subnav{background:#fff;}
html.a11y-contrast .intro,html.a11y-contrast .entradas{background:#000;}
html.a11y-contrast .intro::before,html.a11y-contrast .entradas__bg{display:none;}
html.a11y-contrast .intro__body p,html.a11y-contrast .intro__h,html.a11y-contrast .intro__sub{color:#fff;}

/* ===================================================================
   AJUSTES SOLO MÓVIL (≤760): logos en la franja del menú, sin franja
   de marca negra, y sin botón Contactar (se prioriza Entradas)
   =================================================================== */
.hdr-mlogo{display:none;}
@media (max-width:760px){
  /* La franja de marca "29 Feria…" se MANTIENE; además, logos en la franja del menú */
  .hdr-mlogo{display:flex;align-items:center;flex:0 0 auto;}
  .hdr-mlogo--feria{justify-self:start;}
  /* Distribución equilibrada: Feria (izq) · menú (centro real) · Junta (dcha) */
  .site-header__bar{height:64px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;}
  .hdr-mlogo--feria{order:1;justify-self:start;margin-left:-6px;}
  .header__tools{order:2;justify-self:center;margin-left:0;}
  .hdr-mlogo--junta{order:3;justify-self:end;margin-left:0;}
  .hdr-mlogo--feria img{height:50px;width:auto;display:block;}   /* +20% (logo negro) */
  .hdr-mlogo--junta img{height:46px;width:auto;display:block;}
  /* Menú (hamburguesa) centrado y en blanco, sobre círculo oscuro para que se vea */
  .hamburger{color:#fff;background:var(--ink);border-radius:50%;width:44px;height:44px;padding:0;
    display:flex;align-items:center;justify-content:center;}
  .hamburger svg{width:24px;height:24px;}
  .header__tools{margin-left:auto;}         /* hamburguesa a la derecha */
  .topbar__contactar{display:none;}          /* en móvil solo Entradas */
  .site-header{background:#ead9c4;}          /* franja del menú más clara (solo móvil) */
}

/* Botón "volver arriba" (flotante, esquina inferior derecha) */
.to-top{position:fixed;right:clamp(16px,2.5vw,28px);bottom:clamp(16px,2.5vw,28px);z-index:80;
  width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;background:var(--ink);color:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.32);display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s,transform .2s,background .15s;}
.to-top.is-on{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:var(--coral-600);}
.to-top svg{width:22px;height:22px;}
@media (prefers-reduced-motion:reduce){.to-top{transition:none;}}

/* ===================================================================
   CMP — Gestor de consentimiento de cookies (modal centrado por categorías)
   =================================================================== */
.cmp{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(0,0,0,.5);}
.cmp[hidden]{display:none;}
body.cmp-open{overflow:hidden;}
.cmp__box{background:#fff;color:var(--ink);border-radius:16px;max-width:520px;width:100%;
  padding:26px 26px 20px;box-shadow:0 30px 80px rgba(0,0,0,.45);position:relative;max-height:90vh;overflow:auto;}
.cmp__x{position:absolute;top:12px;right:12px;border:1px solid var(--line);background:#fff;font-size:1.3rem;line-height:1;
  cursor:pointer;color:var(--ink);width:34px;height:34px;border-radius:8px;display:grid;place-items:center;}
.cmp__x:hover{background:var(--cream);}
.cmp__h{font-family:var(--serif);font-weight:var(--serif-wt);font-size:1.25rem;text-align:center;margin:0 0 14px;color:var(--ink);}
.cmp__txt{font-size:.88rem;line-height:1.55;color:var(--ink-soft);margin:0 0 16px;}
.cmp__prefs{margin:0 0 16px;border-top:1px solid var(--line);}
.cmp__cat{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 2px;
  border-bottom:1px solid var(--line);margin:0;}
.cmp__cat-n{font-weight:700;font-size:.95rem;color:var(--ink);}
.cmp__always{font-size:.8rem;font-weight:700;color:var(--coral-600);}
.cmp__sw{appearance:none;-webkit-appearance:none;width:42px;height:24px;border-radius:999px;background:var(--line);
  position:relative;cursor:pointer;flex:0 0 auto;transition:background .15s;margin:0;}
.cmp__sw::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;
  background:#fff;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.3);}
.cmp__sw:checked{background:var(--coral-600);}
.cmp__sw:checked::after{left:21px;}
.cmp__btns{display:flex;flex-wrap:wrap;gap:10px;}
.cmp__btns .btn{flex:1 1 auto;justify-content:center;min-width:120px;}
.cmp__links{margin:14px 0 0;font-size:.78rem;text-align:center;color:var(--ink-soft);}
.cmp__links a{color:var(--coral-600);text-decoration:underline;text-underline-offset:2px;}
.footer__cookies{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;text-decoration:none;}
.footer__cookies:hover{text-decoration:underline;}
@media (max-width:480px){ .cmp__btns .btn{flex:1 1 100%;} }
