/**
 * Layout y elementos globales (cabecera, pie, botones, hero de arranque).
 * Los componentes reutilizables completos llegan en la tarea F1.6; aquí solo
 * lo mínimo para que la web tenga estructura y muestre el sistema visual.
 * Depende de base.css.
 */

/* ---------------- Botones ---------------- */
.fitec-btn[hidden] { display: none !important; }
.fitec-btn {
	display: inline-flex;
	align-items: center;
	gap: var(--fitec-space-2);
	font-family: var(--fitec-fuente-texto);
	font-weight: var(--fitec-peso-bold);
	font-size: var(--fitec-fs-200);
	line-height: 1;
	padding: 0.9em 1.6em;
	border: 2px solid transparent;
	border-radius: var(--fitec-radio-1);
	text-decoration: none;
	cursor: pointer;
	transition: transform var(--fitec-trans), background var(--fitec-trans), color var(--fitec-trans);
}
.fitec-btn:hover { transform: translateY(-2px); }
.fitec-btn--primario { background: var(--fitec-color-primario); color: var(--fitec-color-primario-contraste); }
.fitec-btn--primario:hover { background: var(--fitec-morado-oscuro); color: #fff; }
.fitec-btn--acento { background: var(--fitec-color-acento); color: var(--fitec-color-acento-contraste); }
.fitec-btn--acento:hover { background: var(--fitec-lima-oscuro); color: var(--fitec-tinta); }
.fitec-btn--fantasma { background: transparent; color: var(--fitec-tinta); border-color: var(--fitec-tinta); }
.fitec-btn--fantasma:hover { background: var(--fitec-tinta); color: #fff; }
.fitec-btn--negro { background: var(--fitec-tinta); color: #fff; }
.fitec-btn--negro:hover { background: #000; color: #fff; }

/* ---------------- Cabecera ---------------- */
.fitec-header {
	position: sticky;
	top: 0;
	z-index: var(--fitec-z-header);
	background: var(--fitec-color-fondo);
	border-bottom: var(--fitec-borde);
}
.fitec-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--fitec-space-4);
	padding-block: var(--fitec-space-5);
}
.fitec-header__brand { font-family: var(--fitec-fuente-titulo); font-size: var(--fitec-fs-400); text-transform: uppercase; text-decoration: none; color: var(--fitec-color-primario); }
.fitec-header__brand img { max-height: 56px; width: auto; }

.fitec-nav__list { display: flex; flex-wrap: wrap; gap: var(--fitec-space-4); list-style: none; margin: 0; padding: 0; }
.fitec-nav__list a { font-family: var(--fitec-fuente-texto); font-weight: var(--fitec-peso-semibold); text-decoration: none; color: var(--fitec-tinta); }
.fitec-nav__list a:hover { color: var(--fitec-color-primario); }

/* ============ Menú vanguardista: botón + overlay a pantalla completa ============ */
/* La cabecera NO es fija: se va con el scroll (el logo post-it desaparece al bajar).
   El logo va en un recuadro blanco que cuelga del borde superior, en TODAS las páginas. */
/* Cabecera limpia: logo en su color a la izquierda, «Menú» a la derecha, sin
   recuadro. No es fija: se va con el scroll. */
.fitec-header { position: static; background: transparent; border-bottom: 0; }
.fitec-header__inner { align-items: center; padding-block: var(--fitec-space-6) var(--fitec-space-5); }
.fitec-header__logo { display: inline-flex; align-items: center; position: relative; }
.fitec-header__logo img, .fitec-header__logo .custom-logo-link { position: relative; z-index: 1; }
/* Toque verde: las mismas cuatro rayitas de «¿Qué es FITEC?», en la esquina
   superior izquierda, por detrás del logo. */
.fitec-logo-lines { position: absolute; left: -8px; top: calc(50% + 3px); transform: translateY(-50%); width: 58px; height: 32px; z-index: 0; pointer-events: none; }
.fitec-logo-lines i { position: absolute; left: 0; width: 58px; height: 2.5px; background: var(--fitec-lima); transform: rotate(-33deg); transform-origin: left center; }
.fitec-logo-lines i:nth-child(1) { top: 3px; }
.fitec-logo-lines i:nth-child(2) { top: 9px; }
.fitec-logo-lines i:nth-child(3) { top: 15px; }
.fitec-logo-lines i:nth-child(4) { top: 21px; }
.fitec-header__logo .custom-logo-link { display: block; }
.fitec-header__logo img,
.fitec-header__logo .custom-logo { filter: none; width: 78px; height: auto; max-height: none; }
.fitec-burger { margin-top: 0; }

/* Sobre hero/foto (portada y páginas con imagen): flota encima, «Menú» en blanco
   y el logo con una sombra suave para que se lea sobre la imagen. */
.fitec-hero-header .fitec-header { position: absolute; top: 0; left: 0; right: 0; z-index: 5; }
.fitec-hero-header .fitec-burger { color: #fff; }
.fitec-hero-header .fitec-header__logo img,
.fitec-hero-header .fitec-header__logo .custom-logo { filter: none; }
.fitec-header__ed { display: none; }
body.home .fitec-header__ed { display: block; width: 78px; text-align: center; white-space: nowrap; color: #000; font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.01em; font-size: 0.74rem; line-height: 1; }
.fitec-burger { display: inline-flex; align-items: center; gap: 0.6em; background: none; border: 0; padding: 0.2em 0; cursor: pointer; color: var(--fitec-tinta); font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.06em; font-size: 1.05rem; }
.fitec-burger__label { line-height: 1; }
.fitec-burger__box { position: relative; width: 30px; height: 16px; flex: 0 0 30px; }
.fitec-burger__box i { position: absolute; left: 0; width: 100%; height: 2.5px; background: currentColor; border-radius: 2px; transition: transform 0.35s ease, opacity 0.2s ease, top 0.35s ease; }
.fitec-burger__box i:nth-child(1) { top: 0; }
.fitec-burger__box i:nth-child(2) { top: 7px; }
.fitec-burger__box i:nth-child(3) { top: 14px; }
body.fitec-menu-open { overflow: hidden; }

/* Logo FITEC fijo (post-it que baja al hacer scroll, en todas las páginas) */

/* Acceso lateral al menú (aparece al ocultarse la cabecera al hacer scroll) */
.fitec-menu-fab { position: fixed; right: 0; left: auto; top: 50%; transform: translate(110%, -50%); z-index: 995; display: flex; flex-direction: row-reverse; align-items: center; gap: 12px; background: #fff; color: var(--fitec-morado); border: 0; border-radius: 14px 0 0 14px; box-shadow: 0 8px 26px rgba(0,0,0,0.18); padding: 17px 19px; cursor: pointer; transition: transform 0.4s cubic-bezier(0.22,1,0.36,1); }
.fitec-menu-fab__brand { display: flex; flex-direction: column; align-items: center; gap: 5px; }
.fitec-menu-fab__logo { display: block; height: 34px; width: auto; }
.fitec-menu-fab__ed { font-family: var(--fitec-fuente-titulo); color: #000; font-size: 0.72rem; letter-spacing: 0.03em; line-height: 1; }
.fitec-menu-fab__stack { display: flex; flex-direction: column; align-items: center; gap: 7px; }
body.fitec-scrolled .fitec-menu-fab { transform: translate(0, -50%); }
body.fitec-menu-open .fitec-menu-fab { transform: translate(110%, -50%); }
.fitec-menu-fab__box { position: relative; width: 28px; height: 18px; }
.fitec-menu-fab__box i { position: absolute; left: 0; width: 100%; height: 3px; background: currentColor; border-radius: 2px; }
.fitec-menu-fab__box i:nth-child(1) { top: 0; }
.fitec-menu-fab__box i:nth-child(2) { top: 8px; }
.fitec-menu-fab__box i:nth-child(3) { top: 16px; }
.fitec-menu-fab__label { font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.86rem; line-height: 1; }

/* Equis de cerrar dentro del overlay (siempre visible al estar abierto) */
.fitec-menu-overlay__topbar-inner { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.fitec-menu-close { position: relative; width: 36px; height: 36px; background: none; border: 0; cursor: pointer; flex: 0 0 auto; }
.fitec-menu-close span { position: absolute; left: 6px; right: 6px; top: 50%; height: 2.5px; background: #fff; border-radius: 2px; }
.fitec-menu-close span:nth-child(1) { transform: rotate(45deg); }
.fitec-menu-close span:nth-child(2) { transform: rotate(-45deg); }

.fitec-menu-overlay { position: fixed; inset: 0; z-index: 990; background: linear-gradient(150deg, var(--fitec-morado), var(--fitec-morado-oscuro)); color: #fff; opacity: 0; visibility: hidden; transition: opacity 0.45s ease, visibility 0.45s ease; overflow-y: auto; display: flex; align-items: center; justify-content: center; }
body.fitec-menu-open .fitec-menu-overlay { opacity: 1; visibility: visible; }
/* Barra superior del menú: alinea la marca con el botón «Menú» de la cabecera (misma altura y mismo margen). */
.fitec-menu-overlay__topbar { position: absolute; top: 0; left: 0; right: 0; height: calc(56px + 2 * var(--fitec-space-5)); display: flex; align-items: center; z-index: 2; }
.fitec-menu-overlay__brand { font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.8rem; color: rgba(255,255,255,0.55); }
.fitec-menu-overlay__inner { position: relative; width: 100%; display: flex; align-items: stretch; gap: var(--fitec-space-8); padding-block: var(--fitec-space-6); }
.fitec-menu-overlay__main { flex: 1 1 auto; min-width: 0; }
.fitec-menu-overlay__poster { flex: 0 0 auto; align-self: stretch; position: relative; width: clamp(240px, 27vw, 350px); }
.fitec-menu-overlay__poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; border-radius: 6px; box-shadow: 0 22px 55px rgba(0,0,0,0.4); }
@media (max-width: 900px) { .fitec-menu-overlay__poster { display: none; } }
/* Cartel del menú: giro Getafe -> Parla al pasar el cursor. */
.fitec-menu-overlay__poster.fitec-flip { perspective: 1600px; }
.fitec-flip__inner { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform 0.7s cubic-bezier(0.4, 0.1, 0.2, 1); }
.fitec-menu-overlay__poster.fitec-flip:hover .fitec-flip__inner,
.fitec-menu-overlay__poster.fitec-flip:focus-within .fitec-flip__inner { transform: rotateY(180deg); }
.fitec-flip__face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.fitec-flip__face--back { transform: rotateY(180deg); }
@media (prefers-reduced-motion: reduce) { .fitec-flip__inner { transition: none; } }
.fitec-menu-list { list-style: none; margin: 0; padding: 0; counter-reset: fmenu; }
.fitec-menu-list > li { counter-increment: fmenu; opacity: 0; transform: translateY(26px); transition: opacity 0.5s ease, transform 0.5s ease; }
body.fitec-menu-open .fitec-menu-list > li { opacity: 1; transform: none; }
body.fitec-menu-open .fitec-menu-list > li:nth-child(1) { transition-delay: 0.10s; }
body.fitec-menu-open .fitec-menu-list > li:nth-child(2) { transition-delay: 0.16s; }
body.fitec-menu-open .fitec-menu-list > li:nth-child(3) { transition-delay: 0.22s; }
body.fitec-menu-open .fitec-menu-list > li:nth-child(4) { transition-delay: 0.28s; }
body.fitec-menu-open .fitec-menu-list > li:nth-child(5) { transition-delay: 0.34s; }
body.fitec-menu-open .fitec-menu-list > li:nth-child(6) { transition-delay: 0.40s; }
body.fitec-menu-open .fitec-menu-list > li:nth-child(7) { transition-delay: 0.46s; }
body.fitec-menu-open .fitec-menu-list > li:nth-child(8) { transition-delay: 0.52s; }
.fitec-menu-list > li > a { position: relative; display: inline-flex; align-items: flex-start; gap: 0.55rem; font-family: var(--fitec-fuente-titulo); text-transform: uppercase; font-size: clamp(1.8rem, 5vw, 3.6rem); line-height: 1.08; color: #fff; text-decoration: none; padding: 0.03em 0; transition: color 0.25s ease, transform 0.3s ease, opacity 0.25s ease; }
@media (max-height: 680px) { .fitec-menu-list > li > a { font-size: clamp(1.4rem, 4.2vh, 2.3rem); } .fitec-menu-overlay__inner { padding-block: 70px var(--fitec-space-5); } }
.fitec-menu-list > li > a::before { content: counter(fmenu, decimal-leading-zero); font-family: var(--fitec-fuente-texto); font-weight: 700; font-size: 0.8rem; color: var(--fitec-lima); padding-top: 0.5em; }
.fitec-menu-list > li > a:hover, .fitec-menu-list > li > a:focus-visible { color: var(--fitec-lima); transform: translateX(16px); opacity: 1; }
/* Toque foco: al pasar por un enlace, el resto se atenúan */
.fitec-menu-list:hover > li > a { opacity: 0.4; }
/* Flecha que entra al pasar el ratón + brillo en el número */
.fitec-menu-list > li > a::after { content: "\2192"; margin-left: 0.35em; color: var(--fitec-lima); opacity: 0; transform: translateX(-12px); transition: opacity 0.25s ease, transform 0.3s ease; }
.fitec-menu-list > li > a:hover::after, .fitec-menu-list > li > a:focus-visible::after { opacity: 1; transform: translateX(0); }
.fitec-menu-list > li > a:hover::before, .fitec-menu-list > li > a:focus-visible::before { text-shadow: 0 0 16px rgba(159,232,112,0.85); }
/* Halo lima suave para dar profundidad */
.fitec-menu-overlay::before { content: ""; position: absolute; bottom: -12%; left: -8%; width: 55vmin; height: 55vmin; background: radial-gradient(circle, rgba(159,232,112,0.16), transparent 70%); pointer-events: none; }
.fitec-menu-overlay__foot { margin-top: var(--fitec-space-8); display: flex; flex-wrap: wrap; align-items: center; gap: var(--fitec-space-5); }
.fitec-menu-overlay__tag { color: rgba(255,255,255,0.6); font-size: 0.9rem; letter-spacing: 0.02em; }
@media (prefers-reduced-motion: reduce) { .fitec-menu-overlay, .fitec-menu-list > li, .fitec-burger__box i { transition: none; } }

/* ---------------- Hero de arranque ---------------- */
.fitec-hero {
	background: var(--fitec-color-primario);
	color: #fff;
	padding-block: var(--fitec-space-9);
	position: relative;
	overflow: hidden;
	min-height: 100vh;
	display: flex;
	align-items: center;
}
@supports (min-height: 100dvh) { .fitec-hero { min-height: 100dvh; } }
.fitec-hero--photo { background-size: cover; background-position: center; background-repeat: no-repeat; }
.fitec-hero--video { position: relative; }
.fitec-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.fitec-hero__overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(rgba(112, 48, 160, 0.72), rgba(65, 28, 93, 0.86)); }
.fitec-hero__content { position: relative; z-index: 2; }
/* Tres líneas transversales blancas (acento gráfico en la esquina inferior derecha) */
/* Las líneas se recortan a partir de la cabecera (top) y no cruzan por encima
   de las letras: el contenido del hero va por encima (z-index). */
.fitec-hero__lines { position: absolute; top: clamp(88px, 13vh, 150px); left: 0; right: 0; bottom: clamp(46px, 7vh, 72px); z-index: 1; pointer-events: none; overflow: hidden; }
.fitec-hero__lines span { position: absolute; right: 8%; width: min(340px, 52vw); height: 4px; background: #fff; opacity: 0.9; transform: rotate(-33deg); transform-origin: right center; }
.fitec-hero__lines span:nth-child(1) { bottom: 15%; }
.fitec-hero__lines span:nth-child(2) { bottom: calc(15% + 17px); }
.fitec-hero__lines span:nth-child(3) { bottom: calc(15% + 34px); }
.fitec-hero__lines span:nth-child(4) { bottom: calc(15% + 51px); }
.fitec-hero__content { position: relative; z-index: 2; }
@media (prefers-reduced-motion: no-preference) {
	.fitec-hero__lines span { animation: fitec-line-in 1150ms ease both; }
	.fitec-hero__lines span:nth-child(2) { animation-delay: 160ms; }
	.fitec-hero__lines span:nth-child(3) { animation-delay: 320ms; }
	.fitec-hero__lines span:nth-child(4) { animation-delay: 480ms; }
}
@keyframes fitec-line-in { from { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .fitec-hero__video { display: none; } .fitec-hero--video { background: var(--fitec-color-primario); } }
.fitec-hero__kicker {
	display: inline-block;
	background: var(--fitec-lima);
	color: var(--fitec-tinta);
	font-weight: var(--fitec-peso-bold);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: var(--fitec-fs-100);
	padding: 0.4em 0.8em;
	margin-bottom: var(--fitec-space-4);
}
.fitec-hero__kicker--brand { background: var(--fitec-lima); color: #fff; font-family: var(--fitec-fuente-titulo); letter-spacing: 0.1em; font-size: clamp(1rem, 0.85rem + 0.8vw, 1.5rem); padding: 0.25em 0.6em; }
/* Disciplinas sobre el título del hero (texto lima, sin recuadro) */
.fitec-hero__kicker--disc { background: none; color: var(--fitec-lima); padding: 0; letter-spacing: 0.14em; font-weight: var(--fitec-peso-bold); font-size: var(--fitec-fs-100); }
/* Letras de FITEC dentro del título, en verde */
.fitec-fi { color: var(--fitec-lima); }
.fitec-hero__title { font-size: clamp(2.2rem, 1.1rem + 4.5vw, 3.8rem); color: #fff; margin: 0 0 var(--fitec-space-4); }
.fitec-hero__logo { display: block; width: min(440px, 78vw); height: auto; filter: drop-shadow(0 8px 30px rgba(0,0,0,0.45)); }
.fitec-hero__edicion { display: inline-block; margin-top: var(--fitec-space-4); color: #fff; font-family: var(--fitec-fuente-texto); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: clamp(1.05rem, 0.9rem + 0.7vw, 1.35rem); }
.fitec-hero__ed-verde { color: var(--fitec-lima); }
.fitec-hero__ednum { color: inherit; font-family: inherit; font-weight: 700; font-size: inherit; letter-spacing: inherit; }
/* Tarjeta «post-it» del hero: FITEC + subtítulo + edición sobre fondo blanco */
.fitec-hero__card { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 0.55rem; background: #fff; border-radius: 14px; padding: 1.5rem 1.7rem; box-shadow: 0 22px 55px rgba(0,0,0,0.32); margin: 0 0 var(--fitec-space-6); transform: rotate(-2deg); }
.fitec-hero__cardlogo { display: block; width: min(300px, 62vw); height: auto; }
.fitec-hero__cardlogo--text { font-family: var(--fitec-fuente-titulo); font-size: 3rem; color: var(--fitec-morado); }
.fitec-hero__cardsub { color: var(--fitec-tinta); font-family: var(--fitec-fuente-texto); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.82rem; line-height: 1.2; }
.fitec-hero__carded { color: #000; font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.03em; font-size: 1.05rem; }
.fitec-hero__lead { font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.3rem); max-width: 46ch; margin-bottom: var(--fitec-space-6); opacity: 0.95; }
.fitec-hero__cta { display: flex; flex-wrap: wrap; gap: var(--fitec-space-3); }

/* ---------------- Secciones genéricas ---------------- */
.fitec-section { padding-block: clamp(4.5rem, 3rem + 4vw, 8rem); }
.fitec-section--alt { background: var(--fitec-color-fondo-alt); }
/* Programación destacada: foto de fondo con degradado morado, textos en blanco */
.fitec-section--prog { background: var(--fitec-morado); background-size: cover; background-position: center; }
.fitec-section--prog .fitec-section__head h2,
.fitec-section--prog .fitec-section__link { color: #fff; }
.fitec-section--prog .fitec-tabs__btn { color: rgba(255,255,255,0.75); border-color: rgba(255,255,255,0.35); }
.fitec-section--prog .fitec-tabs__btn.is-active { color: var(--fitec-tinta); background: #fff; border-color: #fff; }
/* Espacios del festival en el inicio: fondo verde, textos oscuros */
.fitec-section--verde { background: var(--fitec-lima); }
.fitec-section--verde .fitec-section__head h2 { color: var(--fitec-tinta); }
.fitec-section--verde .fitec-section__link { color: var(--fitec-morado-oscuro); }
.fitec-section__title { margin-bottom: var(--fitec-space-6); }

.fitec-page { padding-block: var(--fitec-space-9); }
/* Cabecera de página con imagen destacada de fondo */
.fitec-pagehero { position: relative; min-height: 58vh; display: flex; align-items: flex-end; padding-block: var(--fitec-space-8); background-size: cover; background-position: center; color: #fff; }
.fitec-pagehero__title { color: #fff; font-size: clamp(2rem, 1rem + 4vw, 3.4rem); line-height: 1.05; margin: 0; }
.fitec-pagehero__kicker { display: inline-block; background: var(--fitec-lima); color: var(--fitec-tinta); font-weight: var(--fitec-peso-bold); text-transform: uppercase; letter-spacing: 0.06em; font-size: var(--fitec-fs-100); padding: 0.35em 0.7em; margin-bottom: var(--fitec-space-3); }
.fitec-pagehero--compania.is-plain { background: linear-gradient(140deg, var(--fitec-morado), var(--fitec-morado-oscuro)); }
/* En la ficha de compañía, la localidad va en blanco simple (sin la etiqueta lima) */
.fitec-pagehero--compania .fitec-pagehero__kicker { background: none; color: #fff; padding: 0; letter-spacing: 0.04em; opacity: 0.9; }
.fitec-company-logo { display: inline-block; background: #fff; border-radius: var(--fitec-radio-2); padding: 10px; box-shadow: var(--fitec-sombra-2); margin-bottom: var(--fitec-space-5); }
.fitec-company-logo img { display: block; width: 88px; height: 88px; object-fit: contain; }
/* Ficha de compañía a dos columnas: contenido + barra de web/redes a la derecha */
.fitec-company-layout { display: grid; grid-template-columns: 1fr; gap: var(--fitec-space-6); align-items: start; }
@media (min-width: 860px) { .fitec-company-layout { grid-template-columns: minmax(0, 1fr) 240px; } }
.fitec-company-main { min-width: 0; }
.fitec-company-side { display: flex; flex-direction: column; gap: var(--fitec-space-4); }
@media (min-width: 860px) { .fitec-company-side { position: sticky; top: calc(var(--fitec-space-6) + 20px); } }
.fitec-company-side__web { text-align: center; }
.fitec-company-side__box { background: var(--fitec-color-fondo-alt); border-radius: var(--fitec-radio-2); padding: var(--fitec-space-4); display: flex; flex-direction: column; gap: var(--fitec-space-4); }
.fitec-company-side__social { display: flex; flex-wrap: wrap; gap: var(--fitec-space-2); }
.fitec-social-ico { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--fitec-morado); color: #fff; transition: background 0.2s ease, transform 0.2s ease; }
.fitec-social-ico:hover { background: var(--fitec-morado-oscuro); transform: translateY(-2px); }
.fitec-company-side__contact { margin: 0; display: grid; grid-template-columns: 1fr; gap: 2px; }
.fitec-company-side__contact dt { font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.72rem; color: var(--fitec-morado); margin-top: var(--fitec-space-2); }
.fitec-company-side__contact dd { margin: 0; font-size: 0.95rem; word-break: break-word; }
.fitec-company-side__contact dd a { color: inherit; }
@media (max-width: 600px) { .fitec-pagehero { min-height: 48vh; } }
/* Quiénes somos: foto de cabecera fija (efecto parallax) y encuadre centrado. */
body.page-id-5 .fitec-pagehero { background-position: center 30%; background-attachment: fixed; position: relative; }
/* Capa extra gris oscura para dar más profundidad y disimular el desenfoque. */
body.page-id-5 .fitec-pagehero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(20,20,22,0.30), rgba(20,20,22,0.55)); z-index: 0; pointer-events: none; }
body.page-id-5 .fitec-pagehero .fitec-container { position: relative; z-index: 1; }
/* «Leer más»: enlace discreto con flechita, sin recuadro; el texto fluye igual. */
.fitec-entry details.fitec-readmore { border: 0; background: none; border-radius: 0; padding: 0; margin: var(--fitec-space-2) 0 0; }
.fitec-entry details.fitec-readmore > summary { position: static; padding: 0; border: 0; background: none; list-style: none; width: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 0; }
.fitec-entry details.fitec-readmore > summary::-webkit-details-marker { display: none; }
.fitec-entry details.fitec-readmore > summary::before { content: "Leer más"; font-size: 0.9rem; font-weight: var(--fitec-peso-semibold); color: var(--fitec-color-primario); }
.fitec-entry details.fitec-readmore[open] > summary::before { content: "Leer menos"; }
.fitec-entry details.fitec-readmore > summary::after { content: "\25be"; position: static; transform: none; top: auto; right: auto; font-size: 0.8rem; line-height: 1; color: var(--fitec-color-primario); }
.fitec-entry details.fitec-readmore[open] > summary::after { content: "\25b4"; }
.fitec-entry details.fitec-readmore[open] > summary { margin-bottom: var(--fitec-space-4); }
.fitec-entry details.fitec-readmore > *:not(summary):last-child { padding-bottom: 0; }
.fitec-page__header { margin-bottom: var(--fitec-space-6); }

/* ---------------- Pie ---------------- */
.fitec-footer {
	background: var(--fitec-tinta);
	color: #fff;
	padding-block: var(--fitec-space-8) var(--fitec-space-5);
}
.fitec-footer a { color: var(--fitec-lima); }
/* Última sección (apoyos) pegada al pie, sin hueco muerto. */
.fitec-section--apoyos { padding-block: clamp(2.5rem, 2rem + 2vw, 4rem) clamp(2rem, 1.5rem + 1.5vw, 3rem); }
.fitec-footer__top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--fitec-space-6) clamp(1.5rem, 5vw, 4rem);
	margin-bottom: var(--fitec-space-6);
}
.fitec-footer__brand { display: flex; flex-direction: column; gap: var(--fitec-space-3); }
.fitec-footer__logo-wrap { position: relative; display: inline-block; width: fit-content; }
.fitec-footer__logo-wrap img, .fitec-footer__logo-wrap .custom-logo, .fitec-footer__logo-wrap .custom-logo-link { width: 78px; height: auto; max-height: none; display: block; position: relative; z-index: 1; }
.fitec-footer__logo-wrap .fitec-logo-lines { z-index: 0; }
.fitec-footer__logo { display: inline-block; font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.06em; color: var(--fitec-lima); font-size: 1.6rem; text-decoration: none; }
.fitec-footer__tagline { margin: 0; font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.95rem; color: rgba(255,255,255,0.85); }
.fitec-footer__links { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(1rem, 4vw, 3rem); }
.fitec-footer__links a { color: var(--fitec-lima); font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.04em; font-size: 0.95rem; text-decoration: none; }
.fitec-footer__links a:hover { color: #fff; }
/* Bloque de contacto con iconos (Info Práctica) */
.fitec-contacto { margin: var(--fitec-space-4) 0 0; }
.fitec-contacto__datos { list-style: none; margin: 0 0 var(--fitec-space-5); padding: 0; display: grid; gap: var(--fitec-space-3); }
.fitec-contacto__datos li { display: flex; align-items: center; gap: var(--fitec-space-3); }
.fitec-contacto__ic { flex: 0 0 auto; width: 22px; height: 22px; color: var(--fitec-color-primario); display: inline-flex; }
.fitec-contacto__ic svg { width: 100%; height: 100%; }
.fitec-contacto__redes { display: flex; flex-wrap: wrap; gap: var(--fitec-space-3); }
.fitec-contacto__red { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--fitec-color-primario); color: #fff; text-decoration: none; transition: transform var(--fitec-trans), background var(--fitec-trans); }
.fitec-contacto__red:hover { background: var(--fitec-lima); color: var(--fitec-tinta); transform: translateY(-2px); }
.fitec-contacto__red svg { width: 15px; height: 15px; }
.fitec-form__hint { display: block; font-size: 0.8rem; color: var(--fitec-color-texto-suave); margin-top: 4px; }
/* Introducción y acceso del área profesional */
.fitec-area-intro { max-width: var(--fitec-ancho-ancho); margin: 0 auto var(--fitec-space-6); }
.fitec-area-intro__lead { margin: 0; text-align: justify; font-size: 1.05rem; }
.fitec-area-intro__cta { color: var(--fitec-morado); }
.fitec-acceso { display: flex; align-items: stretch; gap: var(--fitec-space-4); max-width: var(--fitec-ancho-ancho); margin: 0 auto; }
.fitec-acceso > * { flex: 1 1 0; min-width: 0; }
.fitec-acceso__login { display: flex; flex-direction: column; background: linear-gradient(160deg, var(--fitec-morado), var(--fitec-morado-oscuro, #411c5d)); color: #fff; border-radius: var(--fitec-radio-2); padding: var(--fitec-space-5); }
.fitec-acceso__login h2 { color: #fff !important; font-size: 1.2rem; margin: 0 0 var(--fitec-space-2); }
.fitec-acceso__login h2::before { background: var(--fitec-lima); }
.fitec-acceso__login-hint { color: rgba(255,255,255,0.8); font-size: 0.9rem; margin: 0 0 var(--fitec-space-4); }
.fitec-acceso__login label { color: rgba(255,255,255,0.9); }
.fitec-acceso__login .fitec-form__row input { background: #fff; }
.fitec-acceso__link { display: inline-block; margin-top: var(--fitec-space-3); color: var(--fitec-lima); font-size: 0.85rem; }
.fitec-acceso__card { display: flex; flex-direction: column; background: var(--fitec-color-fondo-alt); border-radius: var(--fitec-radio-2); padding: var(--fitec-space-5); border-top: 4px solid var(--fitec-lima); }
.fitec-acceso .fitec-acceso__card h2 { font-size: 1.2rem; margin: 0 0 var(--fitec-space-2); color: var(--fitec-morado); }
.fitec-acceso__card > p { margin: 0 0 var(--fitec-space-4); font-size: 0.95rem; }
.fitec-acceso__req { margin-top: auto; }
.fitec-acceso__toggle { align-self: flex-start; }
.fitec-acceso__form { margin-top: var(--fitec-space-4); }
.fitec-acceso__form[hidden] { display: none; }
@media (max-width: 900px) { .fitec-acceso { flex-direction: column; } }
@media (max-width: 700px) { .fitec-footer__top { flex-direction: column; align-items: flex-start; } .fitec-footer__links { gap: var(--fitec-space-3) var(--fitec-space-5); } }
.fitec-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--fitec-space-3);
	padding-top: var(--fitec-space-5);
	border-top: 1px solid rgba(255,255,255,0.18);
	font-size: var(--fitec-fs-100);
	color: rgba(255,255,255,0.7);
}
.fitec-footer__credit a { font-weight: var(--fitec-peso-bold); }
.fitec-footer__legal { display: flex; flex-wrap: wrap; gap: var(--fitec-space-3); }
.fitec-footer__legal a { color: rgba(255,255,255,0.85); text-decoration: none; }
.fitec-footer__legal a:hover { color: var(--fitec-lima); }

/* Aviso de cookies */
.fitec-cookies {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: var(--fitec-z-modal);
	background: var(--fitec-tinta);
	color: #fff;
	padding: var(--fitec-space-4) var(--fitec-gutter);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--fitec-space-4);
	box-shadow: 0 -6px 20px rgba(0,0,0,0.2);
}
.fitec-cookies[hidden] { display: none; }
.fitec-cookies__text { margin: 0; max-width: 70ch; font-size: 0.9rem; }
.fitec-cookies__text a { color: var(--fitec-lima); }
.fitec-cookies__actions { display: flex; gap: var(--fitec-space-3); flex-shrink: 0; }
.fitec-cookies .fitec-btn--fantasma { color: #fff; border-color: rgba(255,255,255,0.6); }
.fitec-cookies .fitec-btn--fantasma:hover { background: #fff; color: var(--fitec-tinta); }

/* ================= Contenido de páginas / FAQ (F1.8, F1.11) ================= */
.fitec-entry h2 { margin-top: var(--fitec-space-7); }
.fitec-entry h2:first-child { margin-top: 0; }
.fitec-entry h3 { margin-top: var(--fitec-space-5); }
.fitec-entry ul, .fitec-entry ol { padding-left: 1.4em; }
.fitec-entry img { border-radius: var(--fitec-radio-2); }
.fitec-entry iframe { display: block; width: 100%; aspect-ratio: 16 / 9; height: auto; margin: var(--fitec-space-6) 0; border: 0; border-radius: var(--fitec-radio-2); }
.fitec-entry p { text-align: justify; }
/* Efecto «se va escribiendo»: las palabras se encienden al bajar. */
.fitec-word { opacity: 0.18; transition: opacity 0.35s ease; }
.fitec-word.is-lit { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .fitec-word { opacity: 1; } }
.fitec-entry h2 { font-family: var(--fitec-fuente-titulo); text-transform: uppercase; font-size: clamp(1.5rem, 3vw, 2.2rem); letter-spacing: 0.01em; color: var(--fitec-morado); line-height: 1.1; }
.fitec-entry h2::before { content: ""; display: block; width: 46px; height: 5px; background: var(--fitec-lima); border-radius: 2px; margin-bottom: var(--fitec-space-3); }
.fitec-entry h3 { font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.02em; color: var(--fitec-tinta); font-size: 1.2rem; }

/* Acordeón de preguntas frecuentes (nativo details/summary, accesible) */
.fitec-entry details {
	border: var(--fitec-borde);
	border-radius: var(--fitec-radio-1);
	margin: 0 0 var(--fitec-space-3);
	padding: 0 var(--fitec-space-4);
	background: var(--fitec-color-fondo-alt);
}
.fitec-entry summary {
	cursor: pointer;
	padding: var(--fitec-space-4) 2rem var(--fitec-space-4) 0;
	font-weight: var(--fitec-peso-semibold);
	list-style: none;
	position: relative;
}
.fitec-entry summary::-webkit-details-marker { display: none; }
.fitec-entry summary::after {
	content: '+';
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.4em;
	color: var(--fitec-color-primario);
	font-weight: var(--fitec-peso-bold);
}
.fitec-entry details[open] summary::after { content: '\2013'; }
.fitec-entry details[open] summary { border-bottom: var(--fitec-borde); }
.fitec-entry details > *:not(summary) { margin-top: var(--fitec-space-3); }
.fitec-entry details > *:last-child { padding-bottom: var(--fitec-space-4); }
.fitec-entry summary:focus-visible { outline: 3px solid var(--fitec-color-foco); outline-offset: 2px; border-radius: var(--fitec-radio-1); }

/* -------- Puerta de acceso profesional (info restringida) -------- */
.fitec-pro-gate {
	background: var(--fitec-color-fondo-alt);
	border: 2px dashed var(--fitec-color-primario);
	border-radius: var(--fitec-radio-2);
	padding: var(--fitec-space-6);
	text-align: center;
}
.fitec-pro-gate__msg {
	font-weight: var(--fitec-peso-semibold);
	margin-bottom: var(--fitec-space-4);
}
.fitec-pro-gate__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--fitec-space-3);
	justify-content: center;
	margin: 0;
}

/* ---------------- Buscador ---------------- */
.fitec-search { display: flex; gap: var(--fitec-space-2); }
.fitec-search input[type="search"] {
	flex: 1;
	padding: 0.7em 0.9em;
	border: var(--fitec-borde);
	border-radius: var(--fitec-radio-1);
	font: inherit;
}

/* ================= Componentes de estructura (F1.6 / F1.7) ================= */

/* -------- Encabezado de sección -------- */
.fitec-section__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--fitec-space-3);
	margin-bottom: var(--fitec-space-6);
}
.fitec-section__head h2 { margin: 0; }
/* Títulos de bloque (secciones del inicio): un punto por debajo del título de la página, todos iguales */
.fitec-section__head h2,
.fitec-intro-block__title { font-size: clamp(1.5rem, 1rem + 1.6vw, 2rem); }
.fitec-section__link { font-weight: var(--fitec-peso-bold); text-transform: uppercase; font-size: var(--fitec-fs-100); letter-spacing: 0.04em; }

/* -------- Rejilla de tarjetas -------- */
.fitec-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--fitec-space-5);
}

/* -------- Tarjeta -------- */
.fitec-card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	background: var(--fitec-blanco);
	border: 0;
	border-radius: var(--fitec-radio-2);
	box-shadow: 0 1px 2px rgba(17, 17, 17, 0.05), 0 2px 6px rgba(17, 17, 17, 0.05);
	overflow: hidden;
	transition: transform var(--fitec-trans), box-shadow var(--fitec-trans);
	text-align: left;
}
.fitec-card:hover { transform: translateY(-4px); box-shadow: var(--fitec-sombra-2); }
.fitec-card--btn { cursor: pointer; padding: 0; border: 0; font: inherit; width: 100%; }
.fitec-card__link { display: flex; flex-direction: column; flex: 1 1 auto; color: inherit; text-decoration: none; }
.fitec-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	background: var(--fitec-morado);
	display: grid;
	place-items: center;
	overflow: hidden;
}
.fitec-card__media img { width: 100%; height: 100%; object-fit: cover; }
/* Tarjeta de compañía con logotipo: círculo blanco uniforme y centrado, para
   que todos los logos se vean igual aunque los suban en formatos distintos. */
.fitec-card__media--logo { background: var(--fitec-color-fondo-alt); }
.fitec-card__media--logo img {
	width: min(58%, 150px);
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: contain;
	background: #fff;
	border-radius: 50%;
	padding: 8px;
	box-shadow: 0 2px 8px rgba(17,17,17,0.06);
}
.fitec-card__ph {
	font-family: var(--fitec-fuente-titulo);
	text-transform: uppercase;
	color: rgba(255,255,255,0.55);
	font-size: 2rem;
	letter-spacing: 0.1em;
}
/* Reserva con foto del festival de fondo y «FITEC» encima (sin imagen propia) */
.fitec-card__ph--photo {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background-size: cover;
	background-position: center;
	color: rgba(255,255,255,0.85);
	text-shadow: 0 2px 10px rgba(0,0,0,0.35);
}
.fitec-card__tag {
	display: block;
	background: none;
	color: var(--fitec-lima-oscuro);
	font-weight: var(--fitec-peso-bold);
	text-transform: uppercase;
	font-size: 0.74rem;
	letter-spacing: 0.06em;
	padding: 0;
	margin-bottom: var(--fitec-space-2);
}
.fitec-card__body { padding: var(--fitec-space-4); display: flex; flex-direction: column; flex: 1 1 auto; }
.fitec-card__title { font-size: var(--fitec-fs-300); margin: 0 0 var(--fitec-space-2); line-height: 1.1; }
.fitec-card__company { font-size: 0.85rem; font-weight: var(--fitec-peso-semibold); color: var(--fitec-color-primario); margin: 0 0 var(--fitec-space-2); text-transform: uppercase; letter-spacing: 0.02em; }
.fitec-card__meta { font-size: var(--fitec-fs-100); color: var(--fitec-color-texto-suave); margin: 0 0 var(--fitec-space-2); font-weight: var(--fitec-peso-semibold); }
.fitec-card__pase { display: block; }
.fitec-card__pase + .fitec-card__pase { margin-top: 2px; }
.fitec-pase-linea { display: block; margin-bottom: 6px; }
.fitec-pase-linea__txt { display: block; }
.fitec-pase-linea__dir { display: inline-block; margin-top: 1px; font-size: 0.8rem; font-weight: var(--fitec-peso-semibold); color: var(--fitec-lima-oscuro); text-decoration: none; }
.fitec-pase-linea__dir:hover { color: var(--fitec-morado); }
/* Botón «Horarios» que despliega los días/sedes dentro de la tarjeta (mismo
   estilo de chip que la etiqueta de disciplina) */
.fitec-card__pases { display: block; margin: 0; }
.fitec-card__pases-toggle { display: inline-flex; align-items: center; gap: 6px; background: var(--fitec-morado); color: #fff; border: 0; text-transform: uppercase; font-weight: var(--fitec-peso-bold); font-size: 0.72rem; letter-spacing: 0.05em; padding: 0.25em 0.6em; border-radius: var(--fitec-radio-1); cursor: pointer; }
.fitec-card__pases-toggle:hover { background: var(--fitec-morado-oscuro); }
.fitec-card__pases-plus { font-weight: var(--fitec-peso-bold); transition: transform 0.2s ease; }
.fitec-card__pases.is-open .fitec-card__pases-plus { transform: rotate(45deg); }
.fitec-card__pases-list { display: none; margin-top: var(--fitec-space-2); font-size: var(--fitec-fs-100); color: var(--fitec-color-texto-suave); font-weight: var(--fitec-peso-semibold); }
.fitec-card__pases.is-open .fitec-card__pases-list { display: block; }
.fitec-card__excerpt { font-size: 0.95rem; color: var(--fitec-color-texto-suave); margin: 0 0 var(--fitec-space-3); }
.fitec-card__excerpt { margin-bottom: var(--fitec-space-3); }
/* Pie de la tarjeta: agrupa «Sesiones» y «Ver espectáculo» y se ancla abajo,
   para que queden a la misma altura en todas las tarjetas de la fila */
.fitec-card__foot { margin-top: auto; display: flex; flex-direction: column; align-items: flex-start; gap: var(--fitec-space-2); }
.fitec-card__cta {
	padding-top: var(--fitec-space-2);
	font-weight: var(--fitec-peso-bold);
	text-transform: uppercase;
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	color: var(--fitec-color-primario);
	background: none;
	border: 0;
	cursor: pointer;
	text-align: left;
	font-family: inherit;
}

/* -------- Accesos rápidos -------- */
.fitec-quicklinks {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: var(--fitec-space-4);
}
.fitec-quicklink {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 120px;
	padding: var(--fitec-space-4);
	border-radius: var(--fitec-radio-2);
	background: var(--fitec-tinta);
	color: #fff;
	text-decoration: none;
	font-family: var(--fitec-fuente-titulo);
	text-transform: uppercase;
	font-size: var(--fitec-fs-300);
	line-height: 1.05;
	transition: transform var(--fitec-trans);
}
.fitec-quicklink:hover { transform: translateY(-4px); color: #fff; }
.fitec-quicklink:nth-child(5n+1) { background: var(--fitec-morado); }
.fitec-quicklink:nth-child(5n+2) { background: var(--fitec-lima); color: var(--fitec-tinta); }
.fitec-quicklink:nth-child(5n+2):hover { color: var(--fitec-tinta); }
.fitec-quicklink:nth-child(5n+3) { background: var(--fitec-naranja); color: var(--fitec-tinta); }
.fitec-quicklink:nth-child(5n+3):hover { color: var(--fitec-tinta); }
.fitec-quicklink:nth-child(5n+4) { background: var(--fitec-tinta); }
.fitec-quicklink:nth-child(5n+5) { background: var(--fitec-morado-oscuro); }

/* -------- Bloque profesional / CTA -------- */
.fitec-cta-pro {
	background: var(--fitec-morado);
	color: #fff;
	border-radius: var(--fitec-radio-3);
	padding: var(--fitec-space-8) var(--fitec-gutter);
	text-align: center;
}
.fitec-cta-pro h2 { color: #fff; }
.fitec-cta-pro p { max-width: 52ch; margin-inline: auto; margin-bottom: var(--fitec-space-5); }

/* -------- Patrocinadores -------- */
.fitec-sponsors {
	display: flex;
	flex-wrap: wrap;
	gap: var(--fitec-space-5) var(--fitec-space-4);
	align-items: center;
	justify-content: space-between;
}
.fitec-sponsor-ph {
	width: 130px; height: 60px;
	background: var(--fitec-gris-claro);
	border-radius: var(--fitec-radio-1);
	display: grid; place-items: center;
	color: var(--fitec-gris); font-size: 0.8rem;
}
.fitec-sponsor { height: clamp(42px, 6vw, 62px); width: auto; max-width: 200px; object-fit: contain; }

/* -------- Estado vacío -------- */
.fitec-empty {
	padding: var(--fitec-space-6);
	border: 2px dashed var(--fitec-color-borde);
	border-radius: var(--fitec-radio-2);
	text-align: center;
	color: var(--fitec-color-texto-suave);
}

/* -------- Aviso de trabajo en curso -------- */
.fitec-wip {
	display: inline-block;
	background: var(--fitec-rosa);
	color: var(--fitec-tinta);
	font-size: 0.78rem;
	font-weight: var(--fitec-peso-semibold);
	padding: 0.3em 0.7em;
	border-radius: var(--fitec-radio-1);
	margin-bottom: var(--fitec-space-4);
}

/* -------- Presentación breve (dos columnas) -------- */
.fitec-intro {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--fitec-space-5);
	align-items: center;
}
@media (min-width: 800px) {
	.fitec-intro { grid-template-columns: 1.2fr 1fr; gap: var(--fitec-space-8); }
}

/* Bloque «¿Qué es FITEC?»: composición vanguardista (vídeo sobre bloque morado
   desplazado, título con FITEC resaltado en lima, líneas lima en la esquina) */
.fitec-intro-block { position: relative; }
.fitec-intro-block__title { margin: 0 0 var(--fitec-space-6); font-size: clamp(1.5rem, 1rem + 1.6vw, 2rem); line-height: 1.05; }
.fitec-intro-block__title .fitec-hl { background: var(--fitec-lima); color: var(--fitec-tinta); padding: 0 0.12em; }
.fitec-intro-grid { display: grid; grid-template-columns: 1fr; gap: var(--fitec-space-5); align-items: center; }
@media (min-width: 800px) { .fitec-intro-grid { grid-template-columns: 3fr 1fr; gap: var(--fitec-space-6); } }
.fitec-video-wrap { position: relative; }
.fitec-video-wrap::before { content: ''; position: absolute; top: 18px; right: 16px; left: -16px; bottom: -16px; background: var(--fitec-morado); border-radius: var(--fitec-radio-2); z-index: 0; }
.fitec-intro-block .fitec-video { position: relative; z-index: 1; margin: 0; box-shadow: 0 18px 45px rgba(65, 28, 93, 0.28); }
.fitec-video-lines { position: absolute; left: -8px; top: -8px; width: 90px; height: 76px; z-index: 2; pointer-events: none; }
.fitec-video-lines span { position: absolute; left: 0; width: 130%; height: 3px; background: var(--fitec-lima); transform: rotate(-33deg); transform-origin: left center; }
.fitec-video-lines span:nth-child(1) { top: 12px; }
.fitec-video-lines span:nth-child(2) { top: 24px; }
.fitec-video-lines span:nth-child(3) { top: 36px; }
.fitec-video-lines span:nth-child(4) { top: 48px; }
.fitec-intro-text p { font-size: 1.05rem; line-height: 1.55; margin: 0 0 var(--fitec-space-4); text-align: justify; }
@media (min-width: 800px) { .fitec-intro-text { border-left: 3px solid var(--fitec-lima); padding-left: var(--fitec-space-4); } }
@media (max-width: 640px) { .fitec-video-wrap::before { top: 12px; right: 12px; left: -12px; bottom: -12px; } }
.fitec-reveal { margin-top: var(--fitec-space-4); }
.fitec-reveal__toggle { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: var(--fitec-space-4); background: var(--fitec-morado); color: #fff; padding: 16px 22px; border-radius: var(--fitec-radio-2); font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.02em; font-size: clamp(1.3rem, 1rem + 2vw, 2rem); line-height: 1.1; transition: background 0.2s ease; }
.fitec-reveal__toggle::-webkit-details-marker { display: none; }
.fitec-reveal__toggle:hover { background: var(--fitec-morado-oscuro); }
.fitec-reveal__icon { flex: 0 0 auto; font-family: var(--fitec-fuente-texto); font-weight: 400; transition: transform 0.25s ease; }
.fitec-reveal[open] .fitec-reveal__icon { transform: rotate(45deg); }
.fitec-reveal__body { padding: var(--fitec-space-5) var(--fitec-space-2) 0; }
.fitec-reveal__body p { font-size: clamp(1.1rem, 1rem + 0.7vw, 1.55rem); line-height: 1.5; margin: 0 0 var(--fitec-space-5); max-width: none; }

/* ================= Programación: filtros, días y vista rápida (F2.12) ================= */

/* -------- Barra de filtros -------- */
.fitec-filters {
	display: flex;
	flex-wrap: wrap;
	gap: var(--fitec-space-3);
	align-items: flex-end;
	background: var(--fitec-color-fondo-alt);
	border-radius: var(--fitec-radio-2);
	padding: var(--fitec-space-4);
	margin-bottom: var(--fitec-space-6);
}
.fitec-filters__field { display: flex; flex-direction: column; gap: 4px; flex: 1 1 160px; }
.fitec-filters__field label { font-size: 0.78rem; font-weight: var(--fitec-peso-bold); text-transform: uppercase; letter-spacing: 0.03em; }
.fitec-filters__field select,
.fitec-filters__field input { padding: 0.6em 0.7em; border: var(--fitec-borde); border-radius: var(--fitec-radio-1); font: inherit; background: #fff; }
.fitec-filters__actions { display: flex; gap: var(--fitec-space-2); }

/* -------- Cabecera de día -------- */
.fitec-day {
	display: flex;
	align-items: baseline;
	gap: var(--fitec-space-3);
	margin: var(--fitec-space-7) 0 var(--fitec-space-4);
	padding-bottom: var(--fitec-space-2);
	border-bottom: var(--fitec-borde-fuerte);
}
.fitec-day:first-of-type { margin-top: 0; }
.fitec-day__num { font-family: var(--fitec-fuente-titulo); font-size: var(--fitec-fs-500); color: var(--fitec-color-primario); line-height: 1; }
.fitec-day__rest { font-family: var(--fitec-fuente-titulo); text-transform: uppercase; font-size: var(--fitec-fs-300); }

/* -------- Vista rápida (modal) -------- */
.fitec-modal {
	position: fixed;
	inset: 0;
	z-index: var(--fitec-z-modal);
	display: none;
	align-items: center;
	justify-content: center;
	padding: var(--fitec-gutter);
	background: rgba(35, 35, 35, 0.6);
}
.fitec-modal.is-open { display: flex; }
.fitec-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 640px;
	max-height: 90vh;
	overflow: auto;
	background: #fff;
	border-radius: var(--fitec-radio-3);
	box-shadow: var(--fitec-sombra-2);
}
.fitec-modal__media { aspect-ratio: 16 / 9; background: var(--fitec-morado); display: grid; place-items: center; overflow: hidden; }
.fitec-modal__ph { display: grid; place-items: center; width: 100%; height: 100%; background-size: cover; background-position: center; font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.1em; font-size: 3rem; color: rgba(255,255,255,0.85); text-shadow: 0 2px 12px rgba(0,0,0,0.4); }
.fitec-modal__media img { width: 100%; height: 100%; object-fit: cover; }
.fitec-modal__media .fitec-card__ph { font-size: 3rem; }
/* Vídeo a lo ancho en la cabecera del resumen */
.fitec-modal__video { position: relative; width: 100%; aspect-ratio: 16 / 9; }
.fitec-modal__video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* La cabecera (vídeo o foto) va SIEMPRE arriba y con la misma forma, para que
   el cambio de vídeo a foto no reordene el modal. */
.fitec-modal__body { padding: var(--fitec-space-6); }
.fitec-modal__tag { display: inline-block; background: var(--fitec-lima); color: var(--fitec-tinta); font-weight: var(--fitec-peso-bold); text-transform: uppercase; font-size: 0.75rem; padding: 0.3em 0.7em; border-radius: var(--fitec-radio-1); margin-bottom: var(--fitec-space-3); }
.fitec-modal__title { margin: 0 0 var(--fitec-space-2); }
.fitec-modal__company { color: var(--fitec-color-primario); font-weight: var(--fitec-peso-bold); text-transform: uppercase; margin: 0 0 var(--fitec-space-2); }
.fitec-modal__meta { font-weight: var(--fitec-peso-semibold); color: var(--fitec-color-texto-suave); margin: 0 0 var(--fitec-space-4); }
.fitec-modal__actions { display: flex; flex-wrap: wrap; gap: var(--fitec-space-3); margin-top: var(--fitec-space-5); }
.fitec-modal__actions:not(:has(a:not([hidden]))) { display: none; }
.fitec-modal__close {
	position: absolute;
	top: var(--fitec-space-3);
	right: var(--fitec-space-3);
	width: 40px; height: 40px;
	border-radius: 50%;
	border: 0;
	background: rgba(0,0,0,0.55);
	color: #fff;
	font-size: 1.3rem;
	cursor: pointer;
	display: grid; place-items: center;
	z-index: 2;
}
.fitec-modal__close:hover { background: var(--fitec-tinta); }
body.fitec-modal-open { overflow: hidden; }

/* ================= Fichas individuales (F2.13 / F3.14) ================= */
.fitec-single__header {
	background: var(--fitec-morado);
	color: #fff;
	padding-block: var(--fitec-space-8);
}
.fitec-single__header--big { padding-block: var(--fitec-space-9); }
.fitec-single__kicker { text-transform: uppercase; letter-spacing: 0.06em; font-weight: var(--fitec-peso-bold); font-size: var(--fitec-fs-100); margin: 0 0 var(--fitec-space-3); }
.fitec-single__kicker a { color: var(--fitec-lima); text-decoration: none; }
.fitec-single__title { color: #fff; font-size: clamp(2rem, 1rem + 4vw, 3.4rem); margin: 0 0 var(--fitec-space-3); }
.fitec-single__company { font-size: var(--fitec-fs-400); margin: 0; }
.fitec-single__company a { color: var(--fitec-lima); text-decoration: none; }
.fitec-single__complink { display: inline-flex; align-items: center; gap: var(--fitec-space-3); text-decoration: none; }
.fitec-single__complogo { display: inline-flex; background: #fff; border-radius: var(--fitec-radio-1); padding: 5px; box-shadow: 0 2px 8px rgba(0,0,0,0.18); flex-shrink: 0; }
.fitec-single__complogo img { width: 42px; height: 42px; object-fit: contain; display: block; }
.fitec-single__companyname { color: var(--fitec-lima); font-weight: var(--fitec-peso-semibold); }
.fitec-single__complink:hover .fitec-single__companyname { text-decoration: underline; }

.fitec-single__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--fitec-space-7);
	padding-block: var(--fitec-space-8);
}
@media (min-width: 900px) {
	.fitec-single__grid { grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); }
}
.fitec-single__media { margin: 0 0 var(--fitec-space-5); border-radius: var(--fitec-radio-2); overflow: hidden; }
.fitec-single__media img { width: 100%; }

.fitec-video { position: relative; margin: var(--fitec-space-5) 0; aspect-ratio: 16/9; }
.fitec-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: var(--fitec-radio-2); }

/* Tarjeta de datos (aside) */
.fitec-datacard {
	background: var(--fitec-color-fondo-alt);
	border: var(--fitec-borde);
	border-radius: var(--fitec-radio-2);
	padding: var(--fitec-space-5);
	position: sticky;
	top: 90px;
}
.fitec-datacard__title { font-size: var(--fitec-fs-300); margin: 0 0 var(--fitec-space-4); }
.fitec-datalist { margin: 0; }
.fitec-datalist dt { font-weight: var(--fitec-peso-bold); text-transform: uppercase; font-size: 0.72rem; letter-spacing: 0.04em; color: var(--fitec-color-texto-suave); margin-top: var(--fitec-space-3); }
.fitec-datalist dd { margin: 0 0 var(--fitec-space-2); }
.fitec-datalist a { color: var(--fitec-color-primario); }

.fitec-linklist { list-style: none; margin: 0; padding: 0; }
.fitec-linklist li { padding: var(--fitec-space-2) 0; border-bottom: var(--fitec-borde); }
.fitec-linklist li:last-child { border-bottom: 0; }
.fitec-linklist a { text-decoration: none; font-weight: var(--fitec-peso-semibold); }

/* Compartir */
.fitec-share { margin-top: var(--fitec-space-5); }
.fitec-share__label { display: block; font-weight: var(--fitec-peso-bold); text-transform: uppercase; font-size: 0.72rem; letter-spacing: 0.04em; margin-bottom: var(--fitec-space-2); color: var(--fitec-color-texto-suave); }
.fitec-share__btn {
	display: inline-block;
	background: var(--fitec-tinta);
	color: #fff;
	text-decoration: none;
	font-weight: var(--fitec-peso-semibold);
	font-size: 0.8rem;
	padding: 0.4em 0.8em;
	border-radius: var(--fitec-radio-1);
	margin: 0 4px 4px 0;
}
.fitec-share__btn:hover { background: var(--fitec-morado); color: #fff; }

.fitec-single__premio {
	display: inline-block;
	margin: var(--fitec-space-3) 0 0;
	background: var(--fitec-lima);
	color: var(--fitec-tinta);
	font-weight: var(--fitec-peso-bold);
	text-transform: uppercase;
	font-size: 0.78rem;
	letter-spacing: 0.03em;
	padding: 0.35em 0.8em;
	border-radius: var(--fitec-radio-1);
}
.fitec-pro-links { display: flex; flex-wrap: wrap; gap: var(--fitec-space-2); }

/* Bloque profesional */
.fitec-pro-block {
	margin-top: var(--fitec-space-7);
	padding-top: var(--fitec-space-6);
	border-top: var(--fitec-borde-fuerte);
}

/* Hero de compañía */
.fitec-company-hero { display: flex; flex-wrap: wrap; gap: var(--fitec-space-6); align-items: center; }
.fitec-company-hero__logo { flex: 0 0 auto; }
.fitec-company-hero__logo img { width: 160px; height: 160px; object-fit: cover; border-radius: var(--fitec-radio-2); background: #fff; }
.fitec-company-hero__text { flex: 1 1 300px; }
.fitec-company-hero__links { display: flex; flex-wrap: wrap; gap: var(--fitec-space-2); margin-top: var(--fitec-space-4); align-items: center; }

/* Cabecera de compañía con foto de fondo + logo y nombre a la izquierda */
.fitec-company-header { background: var(--fitec-morado); color: #fff; padding-block: var(--fitec-space-8); }
.fitec-company-header.has-photo { background-size: cover; background-position: center; }
.fitec-company-header__inner { display: flex; align-items: center; gap: var(--fitec-space-5); text-align: left; }
.fitec-company-header__logo { flex: 0 0 auto; background: #fff; border-radius: var(--fitec-radio-2); padding: 8px; box-shadow: var(--fitec-sombra-2); }
.fitec-company-header__logo img { display: block; width: 84px; height: 84px; object-fit: contain; }
.fitec-company-header__text { flex: 1 1 auto; min-width: 0; }
.fitec-company-header__name { color: #fff; margin: 0; font-size: var(--fitec-fs-500); line-height: 1.05; }
.fitec-company-header__meta { margin: var(--fitec-space-2) 0 0; font-weight: var(--fitec-peso-semibold); }
.fitec-company-header__meta a { color: var(--fitec-lima); text-decoration: none; }
@media (max-width: 560px) { .fitec-company-header__logo img { width: 60px; height: 60px; } }

/* Pantalla de acceso profesional a compañías (público) */
.fitec-company-locked .fitec-main { background: var(--fitec-morado); }
.fitec-company-gate {
	background: var(--fitec-morado);
	color: #fff;
	min-height: 62vh;
	display: flex;
	align-items: center;
	text-align: center;
	padding-block: var(--fitec-space-9);
}
.fitec-company-gate__inner { max-width: 620px; margin-inline: auto; }
.fitec-company-gate__title { color: #fff; font-size: var(--fitec-fs-400); margin-bottom: var(--fitec-space-3); }
.fitec-company-gate p { font-size: var(--fitec-fs-300); margin-bottom: var(--fitec-space-6); max-width: 40ch; margin-inline: auto; }
.fitec-company-gate__actions { display: flex; flex-wrap: wrap; gap: var(--fitec-space-3); justify-content: center; }
.fitec-company-gate .fitec-btn--fantasma { color: #fff; border-color: #fff; }
.fitec-company-gate .fitec-btn--fantasma:hover { background: #fff; color: var(--fitec-morado); }

/* ================= Mapa de espacios (F4.15) ================= */
.fitec-map {
	height: 420px;
	border-radius: var(--fitec-radio-2);
	overflow: hidden;
	margin-bottom: var(--fitec-space-6);
	border: var(--fitec-borde);
	z-index: 0;
}
.fitec-map--home { height: 380px; }
@media (max-width: 600px) { .fitec-map { height: 320px; } }

/* Espacios del festival en el inicio: mapa a todo el ancho con el título superpuesto */
.fitec-espacios-home { position: relative; max-width: var(--fitec-ancho-ancho); margin-inline: auto; padding-inline: var(--fitec-gutter); margin-block: clamp(3rem, 2rem + 3vw, 5.5rem); --focus: 1; }
.fitec-espacios-home .fitec-map--home { height: clamp(420px, 62vh, 620px); width: 100%; margin: 0; border: 0; border-radius: var(--fitec-radio-3); overflow: hidden; }
/* Aparece difuminado y toma nitidez/color cuando está centrado en pantalla. */
@media (prefers-reduced-motion: no-preference) {
	.fitec-espacios-home .fitec-map--home { filter: blur(calc((1 - var(--focus)) * 7px)); opacity: calc(0.4 + var(--focus) * 0.6); transition: filter 0.18s linear, opacity 0.18s linear; }
}
.fitec-espacios-home__head { position: absolute; top: 50%; bottom: auto; left: auto; right: calc(var(--fitec-gutter) + var(--fitec-space-4)); transform: translateY(-50%); z-index: 500; display: flex; flex-direction: column; align-items: flex-start; gap: var(--fitec-space-2); background: var(--fitec-morado); color: #fff; padding: var(--fitec-space-3) var(--fitec-space-4); border-radius: var(--fitec-radio-2); box-shadow: 0 10px 30px rgba(0,0,0,0.28); max-width: min(88vw, 300px); }
.fitec-espacios-home__title { color: #fff; margin: 0; font-size: clamp(1.2rem, 1rem + 1vw, 1.6rem); line-height: 1.1; }
@media (max-width: 600px) {
	.fitec-espacios-home__head { top: auto; bottom: var(--fitec-space-4); left: var(--fitec-space-4); right: var(--fitec-space-4); transform: none; max-width: none; }
}
/* Lista simple de espacios bajo el mapa: nombre + cómo llegar */
.fitec-espacios-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--fitec-space-3); }
.fitec-espacios-list__item { display: flex; align-items: center; justify-content: space-between; gap: var(--fitec-space-4); flex-wrap: wrap; padding: var(--fitec-space-4) var(--fitec-space-5); background: var(--fitec-color-fondo-alt); border: var(--fitec-borde); border-radius: var(--fitec-radio-2); }
.fitec-espacios-list__info { display: flex; align-items: center; gap: var(--fitec-space-3); flex-wrap: wrap; }
.fitec-espacios-list__name { font-family: var(--fitec-fuente-titulo); font-size: var(--fitec-fs-400); text-transform: uppercase; }
.fitec-espacios-list__sede { font-size: 0.68rem; font-weight: var(--fitec-peso-bold); text-transform: uppercase; letter-spacing: 0.03em; background: var(--fitec-morado); color: #fff; padding: 0.18em 0.5em; border-radius: var(--fitec-radio-1); }
.leaflet-container { font-family: var(--fitec-fuente-texto); }
/* Galería de carteles: carrusel a todo el ancho con flechas */
.fitec-carousel {
	position: relative;
	width: 100%;
	margin: 0 0 var(--fitec-space-5);
	background: var(--fitec-color-fondo-alt);
	border: var(--fitec-borde);
	border-radius: var(--fitec-radio-3);
	padding: var(--fitec-space-5) var(--fitec-space-6);
}
/* La página de galería es más ancha y alineada a la izquierda */
.fitec-galeria-page .fitec-container--narrow { max-width: 1080px; }
.fitec-galeria-page .fitec-page__header,
.fitec-galeria-page .fitec-entry { text-align: left; }
/* Láminas de foto (apaisadas) dentro del carrusel */
.fitec-carousel__track .fitec-galeria__item--foto { width: 240px; }
.fitec-galeria__item--foto img { aspect-ratio: 4 / 3; }
.fitec-carousel__track {
	display: flex;
	gap: var(--fitec-space-3);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 2px 40px;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}
.fitec-carousel__track .fitec-galeria__item { flex: 0 0 auto; width: 150px; scroll-snap-align: start; }
@media (max-width: 600px) { .fitec-carousel__track .fitec-galeria__item { width: 120px; } }
.fitec-carousel__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 0;
	background: var(--fitec-color-primario);
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	box-shadow: var(--fitec-sombra-2);
	display: grid;
	place-items: center;
	transition: background var(--fitec-trans), transform var(--fitec-trans);
}
.fitec-carousel__nav:hover { background: var(--fitec-morado-oscuro); transform: translateY(-50%) scale(1.08); }
.fitec-carousel__nav--prev { left: 6px; }
.fitec-carousel__nav--next { right: 6px; }

.fitec-galeria__item {
	display: flex;
	flex-direction: column;
	background: #fff;
	padding: 8px 8px 2px;
	border-radius: var(--fitec-radio-1);
	box-shadow: var(--fitec-sombra-1);
	text-decoration: none;
	color: var(--fitec-color-texto);
	transition: transform var(--fitec-trans), box-shadow var(--fitec-trans);
}
.fitec-galeria__item:hover { transform: translateY(-5px); box-shadow: var(--fitec-sombra-2); }
.fitec-galeria__item img { width: 100%; aspect-ratio: 297 / 420; object-fit: cover; display: block; border-radius: 3px; background: #eee; }
/* Visor (lightbox) de la galería */
.fitec-lightbox {
	position: fixed;
	inset: 0;
	z-index: 400;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(20, 20, 20, 0.93);
	padding: 4vw;
}
.fitec-lightbox.is-open { display: flex; }
.fitec-lightbox__figure { margin: 0; display: flex; flex-direction: column; align-items: center; max-width: 100%; }
.fitec-lightbox__img {
	max-width: min(90vw, 640px);
	max-height: 80vh;
	object-fit: contain;
	border-radius: var(--fitec-radio-1);
	box-shadow: 0 12px 44px rgba(0, 0, 0, 0.55);
	background: #fff;
}
.fitec-lightbox__caption { color: #fff; font-family: var(--fitec-fuente-titulo); font-size: 1.4rem; letter-spacing: 0.02em; margin-top: var(--fitec-space-3); }
.fitec-lightbox__close {
	position: absolute; top: 16px; right: 16px;
	width: 48px; height: 48px; border-radius: 50%; border: 0;
	background: rgba(255,255,255,0.16); color: #fff; font-size: 1.7rem; cursor: pointer;
	display: grid; place-items: center;
}
.fitec-lightbox__nav {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 56px; height: 56px; border-radius: 50%; border: 0;
	background: rgba(255,255,255,0.16); color: #fff; font-size: 2.3rem; cursor: pointer;
	display: grid; place-items: center;
	transition: background var(--fitec-trans);
}
.fitec-lightbox__nav:hover, .fitec-lightbox__close:hover { background: var(--fitec-color-primario); }
.fitec-lightbox__nav--prev { left: 3vw; }
.fitec-lightbox__nav--next { right: 3vw; }
@media (max-width: 600px) {
	.fitec-lightbox__nav { width: 44px; height: 44px; font-size: 1.9rem; }
	.fitec-lightbox__nav--prev { left: 8px; }
	.fitec-lightbox__nav--next { right: 8px; }
}

.fitec-galeria__item { padding: 6px 6px 2px; }

/* Rejilla de fotos del festival */
.fitec-fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--fitec-space-3); }
.fitec-foto { display: block; border-radius: var(--fitec-radio-2); overflow: hidden; box-shadow: var(--fitec-sombra-1); background: var(--fitec-color-fondo-alt); }
.fitec-foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform var(--fitec-trans-lenta); }
.fitec-foto:hover img { transform: scale(1.06); }
.fitec-galeria__year {
	font-family: var(--fitec-fuente-titulo);
	font-size: 1rem;
	text-align: center;
	letter-spacing: 0.02em;
	color: var(--fitec-color-primario);
	padding: 6px 0 3px;
}

/* Cabecera de programación: título a la izquierda, descarga PDF diferenciada a la derecha */
.fitec-prog-header { display: flex; flex-wrap: wrap; gap: var(--fitec-space-4); align-items: center; justify-content: space-between; margin-bottom: var(--fitec-space-5); }
.fitec-prog-header h1 { margin: 0; }
.fitec-prog-pdf { display: flex; flex-wrap: wrap; gap: var(--fitec-space-2); align-items: center; background: var(--fitec-color-fondo-alt); border-radius: var(--fitec-radio-2); padding: 10px 12px; }
.fitec-prog-pdf__label { color: var(--fitec-color-texto-suave); font-weight: var(--fitec-peso-semibold); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.04em; margin-right: 2px; }

/* Pestañas de sede (filtran la programación de la página) */
.fitec-sede-tabs { display: flex; flex-wrap: wrap; gap: var(--fitec-space-2); margin-bottom: var(--fitec-space-4); border-bottom: 2px solid var(--fitec-color-borde, #e6e1ea); }
.fitec-sede-tab { display: inline-block; padding: 8px 18px; text-decoration: none; font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.03em; font-size: 1.05rem; color: var(--fitec-color-texto-suave); border-bottom: 3px solid transparent; margin-bottom: -2px; }
.fitec-sede-tab:hover { color: var(--fitec-morado); }
.fitec-sede-tab.is-active { color: var(--fitec-morado); border-bottom-color: var(--fitec-morado); }

.fitec-map-toggle { display: flex; flex-wrap: wrap; gap: var(--fitec-space-2); margin-bottom: var(--fitec-space-4); }
.fitec-map-toggle__btn {
	font-family: inherit;
	font-weight: var(--fitec-peso-bold);
	text-transform: uppercase;
	font-size: 0.85rem;
	letter-spacing: 0.02em;
	padding: 0.5em 1.1em;
	border: 2px solid var(--fitec-color-primario);
	background: #fff;
	color: var(--fitec-color-primario);
	border-radius: var(--fitec-radio-1);
	cursor: pointer;
	transition: background var(--fitec-trans), color var(--fitec-trans);
}
.fitec-map-toggle__btn:hover { background: var(--fitec-morado-oscuro); color: #fff; }
.fitec-map-toggle__btn.is-active { background: var(--fitec-color-primario); color: #fff; }
.fitec-marker span {
	display: block;
	width: 22px;
	height: 22px;
	margin: 3px;
	background: var(--fitec-morado);
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.45);
}
.fitec-popup strong { font-size: 1.05rem; }
.fitec-popup ul { margin: 4px 0 6px; padding-left: 18px; }
.fitec-popup__dir {
	display: inline-block;
	margin-top: 6px;
	font-weight: var(--fitec-peso-bold);
	text-transform: uppercase;
	font-size: 0.75rem;
	letter-spacing: 0.03em;
}
.fitec-linklist__meta { color: var(--fitec-color-texto-suave); font-size: 0.8rem; font-weight: var(--fitec-peso-semibold); }

/* Globo del mapa con lista de espectáculos clicables */
.fitec-popup__title { font-size: 1.05rem; }
.fitec-popup__addr { display: block; color: var(--fitec-color-texto-suave); font-size: 0.85rem; margin: 2px 0 4px; }
.fitec-popup__shows { display: flex; flex-direction: column; gap: 6px; margin: 8px 0; max-height: 220px; overflow-y: auto; padding-right: 4px; }
/* El contenido del globo no debe cortarse: se limita su alto y hace scroll */
.leaflet-popup-content { max-height: 60vh; overflow-y: auto; }
.fitec-popup__show {
	display: flex;
	flex-direction: column;
	text-align: left;
	background: var(--fitec-hueso);
	border: 1px solid var(--fitec-color-borde);
	border-radius: 8px;
	padding: 6px 9px;
	cursor: pointer;
	font-family: inherit;
	transition: background var(--fitec-trans);
}
.fitec-popup__show:hover { background: var(--fitec-lima); }
.fitec-popup__show-name { font-weight: var(--fitec-peso-bold); line-height: 1.15; }
.fitec-popup__show-meta { font-size: 0.78rem; color: var(--fitec-color-texto-suave); }
.fitec-datacard__cta { margin: var(--fitec-space-4) 0 0; }

/* ================= Área profesional: formularios (F5.16) ================= */
.fitec-authbox, .fitec-register, .fitec-account { max-width: 960px; margin-inline: auto; }
.fitec-authbox { margin-bottom: var(--fitec-space-8); }
.fitec-form { max-width: 460px; }
.fitec-form__row { display: flex; flex-direction: column; gap: 5px; margin-bottom: var(--fitec-space-4); }
.fitec-form__row label { font-weight: var(--fitec-peso-semibold); font-size: 0.9rem; }
.fitec-form__row input, .fitec-form__row select {
	padding: 0.7em 0.8em;
	border: var(--fitec-borde);
	border-radius: var(--fitec-radio-1);
	font: inherit;
	background: #fff;
}
.fitec-form__check { margin-bottom: var(--fitec-space-3); font-size: 0.92rem; }
.fitec-form__check label { display: flex; gap: 8px; align-items: flex-start; }
.fitec-form__link { display: inline-block; margin-left: var(--fitec-space-4); font-size: 0.9rem; }

/* Título de la página del área profesional centrado */
.fitec-area .fitec-page__header { text-align: center; }

/* Centrado del bloque de acceso/registro */
.fitec-authbox, .fitec-register { text-align: center; }
.fitec-authbox h2 { font-size: var(--fitec-fs-300); margin-bottom: var(--fitec-space-4); }
.fitec-register__hint { color: var(--fitec-color-texto-suave); margin: 0 auto var(--fitec-space-5); max-width: 40ch; }
.fitec-authbox .fitec-form, .fitec-tabs__panel .fitec-form { margin-inline: auto; text-align: left; }
.fitec-authbox .fitec-form { display: inline-block; text-align: left; }

/* Pestañas */
.fitec-tabs__nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--fitec-space-2);
	margin-bottom: var(--fitec-space-6);
}
.fitec-tabs__btn {
	font-family: inherit;
	font-weight: var(--fitec-peso-bold);
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	padding: 0.75em 1.5em;
	border: 2px solid var(--fitec-color-primario);
	background: #fff;
	color: var(--fitec-color-primario);
	border-radius: var(--fitec-radio-1);
	cursor: pointer;
	transition: background var(--fitec-trans), color var(--fitec-trans);
}
.fitec-tabs__btn:hover { background: var(--fitec-morado-oscuro); color: #fff; }
.fitec-tabs__btn.is-active { background: var(--fitec-color-primario); color: #fff; }
.fitec-tabs__panel {
	max-width: 520px;
	margin-inline: auto;
	background: var(--fitec-color-fondo-alt);
	border: var(--fitec-borde);
	border-radius: var(--fitec-radio-2);
	padding: var(--fitec-space-6);
}
.fitec-tabs__panel .fitec-form { max-width: none; }
.fitec-tabs__panel[hidden] { display: none; }
/* Variante para la programación por sede (portada): parrilla a todo el ancho, sin caja */
.fitec-tabs--prog .fitec-tabs__panel { max-width: none; background: transparent; border: 0; padding: 0; }
/* Pestañas Getafe/Parla alineadas a la izquierda, bajo el título */
.fitec-tabs--prog .fitec-tabs__nav { justify-content: flex-start; }

/* Parrilla de programación destacada: 5 bloques en escritorio */
/* Programación destacada: UNA fila que se desliza a la derecha; primero el
   cartel de la sede, luego los espectáculos. Misma altura para todos. */
.fitec-prog-grid {
	display: grid;
	grid-auto-flow: column;
	grid-template-columns: clamp(250px, 26vw, 330px); /* 1ª columna: el cartel, un poco más ancha */
	grid-auto-columns: clamp(210px, 22vw, 260px);      /* resto: tarjetas, igual que en programación */
	grid-template-rows: 1fr;                            /* una sola fila: iguala la altura de todo */
	align-items: stretch;
	gap: var(--fitec-space-5);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	padding-bottom: var(--fitec-space-3);
	scrollbar-width: none;
}
.fitec-prog-grid::-webkit-scrollbar { display: none; }
.fitec-prog-grid > * { margin: 0; }
.fitec-prog-cartel {
	position: sticky;
	left: 0;
	z-index: 2;
	align-self: stretch;
	display: block;
	border-radius: var(--fitec-radio-2);
	overflow: hidden;
	background: transparent;
}
/* Imagen en absoluto: NO impone su alto (si no, la fila crecía a tamaño A3).
   Rellena la caja al alto que marcan las tarjetas, sin deformarse (cover). */
.fitec-prog-cartel img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; border-radius: var(--fitec-radio-2); }
@media (max-width: 700px) {
	.fitec-prog-grid { grid-template-columns: 66vw; grid-auto-columns: 76vw; }
	.fitec-prog-cartel { position: static; }
}

.fitec-account { text-align: center; max-width: 480px; margin: var(--fitec-space-8) auto; background: var(--fitec-color-fondo-alt); border: var(--fitec-borde); border-radius: var(--fitec-radio-3); padding: var(--fitec-space-8) var(--fitec-space-7); }
.fitec-account h2 { margin-top: 0; }
.fitec-account__state { margin-bottom: var(--fitec-space-5); }
.fitec-account__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--fitec-space-3); margin-bottom: var(--fitec-space-4); }
.fitec-account__logout { margin-top: var(--fitec-space-4); }

/* Mensajería (panel de compañía) */
.fitec-msgs { margin-top: 0; }
/* Chat de dos paneles: lista de conversaciones (izq) + hilo (der) */
.fitec-msgs__layout { display: grid; grid-template-columns: 240px 1fr; gap: var(--fitec-space-4); align-items: start; }
@media (max-width: 680px) { .fitec-msgs__layout { grid-template-columns: 1fr; } }
.fitec-msgs__list { list-style: none; margin: 0 0 0 -12px; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.fitec-msgs__conv a { display: block; padding: 10px 12px; border-radius: var(--fitec-radio-2); text-decoration: none; color: var(--fitec-color-texto-suave); font-weight: var(--fitec-peso-regular); }
.fitec-msgs__conv a:hover { background: var(--fitec-color-fondo-alt); }
.fitec-msgs__conv a small { display: block; font-size: 0.74rem; color: var(--fitec-color-texto-suave); }
.fitec-msgs__conv.is-unread a { color: var(--fitec-morado); font-weight: var(--fitec-peso-bold); }
.fitec-msgs__conv.is-active a { background: var(--fitec-color-fondo-alt); color: var(--fitec-morado); font-weight: var(--fitec-peso-semibold); }
.fitec-msgs__badge { background: var(--fitec-lima); color: var(--fitec-tinta); border-radius: 10px; padding: 1px 7px; font-size: 0.72rem; font-weight: var(--fitec-peso-bold); }
/* Panel del chat */
.fitec-msgs__panel { min-width: 0; display: flex; flex-direction: column; border: var(--fitec-borde); border-radius: var(--fitec-radio-3); overflow: hidden; background: var(--fitec-color-fondo-alt); }
.fitec-msgs__title { margin: 0; padding: var(--fitec-space-3) var(--fitec-space-4); background: #fff; border-bottom: var(--fitec-borde); font-size: 1rem; line-height: 1.25; }
.fitec-msgs__thread { display: flex; flex-direction: column; gap: var(--fitec-space-3); padding: var(--fitec-space-4); max-height: 380px; overflow-y: auto; }
.fitec-msg { max-width: 82%; padding: 9px 13px; border-radius: 14px; }
.fitec-msg--mine { align-self: flex-end; background: var(--fitec-lima); color: var(--fitec-tinta); border-bottom-right-radius: 3px; }
.fitec-msg--them { align-self: flex-start; background: #fff; border: var(--fitec-borde); border-bottom-left-radius: 3px; }
.fitec-msg__who { font-weight: var(--fitec-peso-bold); font-size: 0.74rem; }
.fitec-msg__body { margin: 3px 0; }
.fitec-msg__time { font-size: 0.7rem; opacity: 0.6; }
.fitec-msgs__form { display: flex; gap: var(--fitec-space-2); align-items: stretch; padding: var(--fitec-space-3) var(--fitec-space-4); border-top: var(--fitec-borde); background: #fff; }
.fitec-msgs__form textarea { flex: 1; height: 46px; min-height: 46px; padding: 11px 12px; border: var(--fitec-borde); border-radius: var(--fitec-radio-2); font-family: inherit; font-size: 1rem; resize: vertical; line-height: 1.3; }
.fitec-msgs__form .fitec-btn { align-self: stretch; display: inline-flex; align-items: center; }
.fitec-contact { margin-top: var(--fitec-space-7); padding-top: var(--fitec-space-6); border-top: var(--fitec-borde); }
.fitec-account__actions { display: flex; flex-wrap: wrap; gap: var(--fitec-space-3); margin: var(--fitec-space-5) 0; justify-content: center; }
.fitec-account__logout { margin-top: var(--fitec-space-5); }

.fitec-notice { padding: var(--fitec-space-4); border-radius: var(--fitec-radio-2); margin-bottom: var(--fitec-space-5); }
.fitec-notice--ok { background: #e3f6d6; border: 1px solid var(--fitec-color-exito); }
.fitec-notice--error { background: #fde3e0; border: 1px solid var(--fitec-color-error); }
.fitec-notice--info { background: var(--fitec-rosa); }
.fitec-notice ul { margin: 0; padding-left: 18px; }

/* ================= Panel de la compañía (F5.18 / F5.19) ================= */
.fitec-panel { display: grid; grid-template-columns: 250px 1fr; gap: var(--fitec-space-6); align-items: start; }
@media (max-width: 760px) { .fitec-panel { grid-template-columns: 1fr; } }
.fitec-panel__side { display: flex; flex-direction: column; gap: var(--fitec-space-4); position: sticky; top: var(--fitec-space-5); }
.fitec-panel__card { background: var(--fitec-morado); color: #fff; border: 0; border-radius: var(--fitec-radio-2); padding: var(--fitec-space-4); display: flex; flex-direction: row; align-items: center; gap: var(--fitec-space-3); text-align: left; }
.fitec-panel__logo { flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%; background: #fff; padding: 6px; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; }
.fitec-panel__logo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.fitec-panel__logo--ph { font-family: var(--fitec-fuente-titulo); color: var(--fitec-morado); font-size: 1.4rem; }
.fitec-panel__name { color: #fff; font-family: var(--fitec-fuente-titulo); text-transform: uppercase; font-size: 1rem; line-height: 1.05; }
.fitec-panel__nav { display: flex; flex-direction: column; gap: 3px; }
.fitec-panel__navlink { display: block; padding: 10px 14px; border-radius: var(--fitec-radio-2); text-decoration: none; color: var(--fitec-color-texto); font-weight: var(--fitec-peso-semibold); }
.fitec-panel__navlink:hover { background: var(--fitec-color-fondo-alt); }
.fitec-panel__navlink.is-active { background: var(--fitec-morado); color: #fff; }
.fitec-panel__logout { margin-top: var(--fitec-space-3); }
.fitec-panel__main { min-width: 0; }
.fitec-panel__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--fitec-space-4); margin-bottom: var(--fitec-space-5); }
.fitec-panel__h { font-size: clamp(1.5rem, 1rem + 1.6vw, 2rem); margin: 0; }
.fitec-inline-logout { display: inline; margin: 0; }

.fitec-panel__table { width: 100%; border-collapse: collapse; }
.fitec-panel__table th, .fitec-panel__table td { text-align: left; padding: var(--fitec-space-3); border-bottom: var(--fitec-borde); vertical-align: middle; }
.fitec-panel__table th { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--fitec-color-texto-suave); }

.fitec-badge { display: inline-block; padding: 0.28em 0.7em; border-radius: var(--fitec-radio-1); font-size: 0.72rem; font-weight: var(--fitec-peso-bold); text-transform: uppercase; letter-spacing: 0.02em; }
.fitec-badge--borrador { background: #e6e6e6; color: #555; }
.fitec-badge--pendiente { background: var(--fitec-naranja); color: var(--fitec-tinta); }
.fitec-badge--aprobada { background: var(--fitec-lima); color: var(--fitec-tinta); }
.fitec-badge--publicada { background: var(--fitec-morado); color: #fff; }
.fitec-badge--requiere_cambios { background: #fde3e0; color: var(--fitec-color-error); }
.fitec-badge--archivada { background: #ddd; color: #555; }

.fitec-btn--sm { padding: 0.45em 0.9em; font-size: 0.8rem; }

.fitec-fieldset { border: var(--fitec-borde); border-radius: var(--fitec-radio-2); padding: var(--fitec-space-5); margin: 0 0 var(--fitec-space-5); }
.fitec-fieldset legend { font-family: var(--fitec-fuente-titulo); text-transform: uppercase; padding: 0 var(--fitec-space-2); font-size: var(--fitec-fs-300); color: var(--fitec-color-primario); }
.fitec-form--wide { max-width: none; }
.fitec-form--wide .fitec-form__row input,
.fitec-form--wide .fitec-form__row textarea,
.fitec-form--wide .fitec-form__row select { width: 100%; }
.fitec-form__submit { display: flex; flex-wrap: wrap; gap: var(--fitec-space-3); margin-top: var(--fitec-space-5); }
.fitec-current-file { font-size: 0.85rem; color: var(--fitec-color-texto-suave); }

/* Botón de cerrar sesión (discreto pero cuidado) */
.fitec-logout {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: 1.5px solid var(--fitec-color-borde);
	color: var(--fitec-color-texto-suave);
	border-radius: var(--fitec-radio-1);
	padding: 0.5em 1em;
	font-family: inherit;
	font-weight: var(--fitec-peso-semibold);
	font-size: 0.85rem;
	cursor: pointer;
	transition: border-color var(--fitec-trans), color var(--fitec-trans);
}
.fitec-logout::before { content: "\21B6"; font-size: 1em; }
.fitec-logout:hover { border-color: var(--fitec-color-primario); color: var(--fitec-color-primario); }

/* ================= Directorio profesional (F5.20) ================= */
.fitec-directory__search { display: flex; gap: var(--fitec-space-2); max-width: 620px; margin: 0 auto var(--fitec-space-5); }
.fitec-directory__search input {
	flex: 1;
	padding: 0.8em 1em;
	border: var(--fitec-borde);
	border-radius: var(--fitec-radio-1);
	font: inherit;
}
.fitec-directory__count { font-weight: var(--fitec-peso-semibold); color: var(--fitec-color-texto-suave); margin: var(--fitec-space-5) 0 var(--fitec-space-4); }
.fitec-pagination { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--fitec-space-7); justify-content: center; }
.fitec-pagination .page-numbers {
	padding: 0.5em 0.9em;
	border: var(--fitec-borde);
	border-radius: var(--fitec-radio-1);
	text-decoration: none;
	color: var(--fitec-color-texto);
	font-weight: var(--fitec-peso-semibold);
}
.fitec-pagination .current { background: var(--fitec-color-primario); color: #fff; border-color: var(--fitec-color-primario); }
.fitec-pagination a.page-numbers:hover { background: var(--fitec-color-fondo-alt); }

/* ================= Votación por QR (F6) ================= */
.fitec-vote { max-width: 520px; margin-inline: auto; text-align: center; }
.fitec-vote__img { margin-bottom: var(--fitec-space-5); }
.fitec-vote__img img { border-radius: var(--fitec-radio-2); width: 100%; }
.fitec-vote__title { margin-bottom: var(--fitec-space-2); }
.fitec-vote__company { color: var(--fitec-color-primario); font-weight: var(--fitec-peso-bold); text-transform: uppercase; margin-bottom: var(--fitec-space-7); }
/* El formulario, todo alineado a la izquierda */
.fitec-vote__form { text-align: left; margin-top: var(--fitec-space-6); }
.fitec-vote__form .fitec-form__row { display: flex; flex-direction: column; gap: 5px; margin-bottom: var(--fitec-space-4); }
.fitec-vote__form input, .fitec-vote__form textarea {
	padding: 0.7em 0.9em; border: var(--fitec-borde); border-radius: var(--fitec-radio-1); font: inherit; width: 100%;
}
.fitec-vote__form .fitec-form__check { text-align: left; font-size: 0.8rem; color: var(--fitec-color-texto-suave); }
.fitec-vote__note { font-size: 0.85rem; color: var(--fitec-color-texto-suave); margin-top: 4px; }

/* Estrellas de valoración (etiqueta arriba a la izquierda, estrellas grandes) */
.fitec-stars { border: 0; padding: 0; margin: 0 0 var(--fitec-space-5); text-align: left; }
.fitec-stars legend { display: block; padding: 0; font-weight: var(--fitec-peso-bold); margin-bottom: var(--fitec-space-2); }
.fitec-stars__set { display: inline-flex; flex-direction: row-reverse; }
.fitec-stars__set input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.fitec-stars__set label { font-size: 3.2rem; line-height: 1; color: #d9d9d9; cursor: pointer; padding: 0 4px; transition: color var(--fitec-trans); }
.fitec-stars__set label:hover, .fitec-stars__set label:hover ~ label { color: #ffb800; }
.fitec-stars__set input:checked ~ label { color: #ffb800; }
.fitec-stars__set input:focus-visible + label { outline: 3px solid var(--fitec-color-foco); outline-offset: 2px; }

/* ============ Refinamientos responsive (móvil y tablet) ============ */
/* Contenido de texto: tablas anchas con scroll propio, sin romper el ancho */
.fitec-entry table { display: block; width: 100%; overflow-x: auto; }
.fitec-entry pre { overflow-x: auto; }

@media (max-width: 900px) {
	/* La cabecera flotante deja de ser absoluta para no montarse sobre el hero en tablet/móvil */
	.fitec-hero__lead { max-width: none; }
}

@media (max-width: 600px) {
	:root { --fitec-space-9: 3.5rem; }
	.fitec-hero { min-height: 88vh; padding-block: var(--fitec-space-8); }
	.fitec-section { padding-block: var(--fitec-space-8); }
	/* Cabecera de programación: título y descarga de PDF apilados y a la izquierda */
	.fitec-prog-header { flex-direction: column; align-items: flex-start; }
	.fitec-prog-pdf { width: 100%; }
	/* Redes de la compañía centradas cuando la barra pasa abajo */
	.fitec-company-side__social { justify-content: flex-start; }
	/* Menú lateral fijo un pelín más pequeño para no invadir */
	.fitec-menu-fab { padding: 10px 11px; }
}

@media (max-width: 400px) {
	/* En móviles muy estrechos, una sola columna de tarjetas */
	.fitec-grid { grid-template-columns: 1fr; }
	.fitec-quicklinks { grid-template-columns: 1fr 1fr; }
}

/* Cargar más (compañías, etc.) */
.fitec-loadmore__item { display: contents; }
.fitec-loadmore__item.is-hidden { display: none; }
.fitec-loadmore__more { text-align: center; margin-top: var(--fitec-space-6); }

/* Ranking público del Premio del Público */
.fitec-ranking { display: flex; flex-direction: column; gap: var(--fitec-space-3); }
.fitec-ranking__item { display: grid; grid-template-columns: 44px 84px 1fr auto; align-items: center; gap: var(--fitec-space-4); background: #fff; border-radius: var(--fitec-radio-2); padding: var(--fitec-space-3) var(--fitec-space-4); box-shadow: 0 1px 2px rgba(17,17,17,0.05), 0 2px 8px rgba(17,17,17,0.05); }
.fitec-ranking__pos { font-family: var(--fitec-fuente-titulo); font-size: 1.8rem; color: var(--fitec-morado); text-align: center; }
.fitec-ranking__item:nth-child(1) .fitec-ranking__pos { color: var(--fitec-lima-oscuro); }
.fitec-ranking__media { display: block; width: 84px; height: 64px; border-radius: var(--fitec-radio-1); background: var(--fitec-morado); background-size: cover; background-position: center; }
.fitec-ranking__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fitec-ranking__disc { color: var(--fitec-lima-oscuro); text-transform: uppercase; font-weight: var(--fitec-peso-bold); font-size: 0.72rem; letter-spacing: 0.06em; }
.fitec-ranking__title { font-family: var(--fitec-fuente-titulo); text-transform: uppercase; color: var(--fitec-tinta); text-decoration: none; font-size: 1.15rem; line-height: 1.1; }
.fitec-ranking__title:hover { color: var(--fitec-morado); }
.fitec-ranking__comp { color: var(--fitec-color-texto-suave); font-size: 0.85rem; }
.fitec-ranking__score { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.fitec-ranking__star { color: #d9d9d9; font-size: 1rem; }
.fitec-ranking__star.is-on { color: #ffb800; }
.fitec-ranking__num { font-family: var(--fitec-fuente-titulo); font-size: 1.2rem; color: var(--fitec-morado); }
.fitec-ranking__votes { color: var(--fitec-color-texto-suave); font-size: 0.78rem; }
@media (max-width: 560px) {
	.fitec-ranking__item { grid-template-columns: 34px 1fr auto; }
	.fitec-ranking__media { display: none; }
}

/* Opiniones del público (panel de la compañía, privado) */
.fitec-opiniones { margin: 0 0 var(--fitec-space-6); }
.fitec-opiniones__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--fitec-space-3); font-size: clamp(1.5rem, 1rem + 1.6vw, 2rem); margin: 0 0 var(--fitec-space-3); }
.fitec-opiniones__score { font-family: var(--fitec-fuente-texto); font-size: 0.9rem; color: var(--fitec-morado); font-weight: var(--fitec-peso-bold); text-transform: none; letter-spacing: 0; }
.fitec-opiniones__none { color: var(--fitec-color-texto-suave); font-style: italic; }
.fitec-opiniones__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--fitec-space-3); }
.fitec-opiniones__item { background: var(--fitec-color-fondo-alt); border-radius: var(--fitec-radio-2); padding: var(--fitec-space-3) var(--fitec-space-4); }
.fitec-opiniones__stars { display: block; color: #ffb800; font-size: 0.95rem; margin-bottom: 4px; }
.fitec-opiniones__text { margin: 0; }

/* ===== Banda en movimiento (ticker de disciplinas) ===== */
.fitec-ticker { overflow: hidden; background: var(--fitec-morado); padding-block: 12px; }
.fitec-ticker__track { display: inline-flex; align-items: center; white-space: nowrap; will-change: transform; animation: fitec-ticker 42s linear infinite; }
.fitec-ticker__word { font-family: var(--fitec-fuente-texto); text-transform: none; color: rgba(255,255,255,0.92); font-weight: var(--fitec-peso-regular); font-size: clamp(0.9rem, 0.8rem + 0.4vw, 1.15rem); letter-spacing: 0.02em; padding: 0 1.4rem; }
.fitec-ticker__word em { font-style: italic; }
.fitec-ticker__up { text-transform: uppercase; letter-spacing: 0.06em; }
.fitec-ticker__sep { color: var(--fitec-lima); font-size: 0.7rem; }
@keyframes fitec-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.fitec-ticker:hover .fitec-ticker__track { animation-play-state: paused; }
/* Frase fijada al fondo del hero, en verde, sobre el fondo del hero. */
.fitec-ticker--hero { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; background: transparent; padding-block: clamp(10px, 2.2vh, 20px); }
.fitec-ticker--hero .fitec-ticker__word { color: var(--fitec-lima); }
.fitec-ticker--hero .fitec-ticker__sep { color: var(--fitec-lima); }
@media (prefers-reduced-motion: reduce) { .fitec-ticker__track { animation: none; } }

/* ===== Aparición al hacer scroll ===== */
@media (prefers-reduced-motion: no-preference) {
	.fitec-reveal-init { opacity: 0; transform: translateY(18px); transition: opacity 1s cubic-bezier(0.22,1,0.36,1), transform 1s cubic-bezier(0.22,1,0.36,1); }
	.fitec-reveal-init.is-in { opacity: 1; transform: none; }
}

/* ===== Descarga de QR para compañías (página privada) ===== */
.fitec-qrdl { max-width: none; width: 100%; }
.fitec-qrdl__intro { color: var(--fitec-color-texto-suave); margin-bottom: var(--fitec-space-5); }
.fitec-qrdl__search { width: 100%; padding: 0.9em 1em; font-size: 1rem; border: var(--fitec-borde); border-radius: var(--fitec-radio-2); margin-bottom: var(--fitec-space-5); }
.fitec-qrdl__search:focus-visible { outline: 3px solid var(--fitec-color-foco); outline-offset: 2px; }
.fitec-qrdl__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); gap: var(--fitec-space-3); }
.fitec-qrdl__item { display: flex; flex-direction: column; gap: var(--fitec-space-3); padding: var(--fitec-space-4); background: var(--fitec-blanco); border-radius: var(--fitec-radio-2); box-shadow: 0 1px 2px rgba(17,17,17,0.05), 0 2px 6px rgba(17,17,17,0.05); }
.fitec-qrdl__item[hidden] { display: none; }
.fitec-qrdl__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fitec-qrdl__title { font-family: var(--fitec-fuente-titulo); text-transform: uppercase; font-size: 1.1rem; line-height: 1.1; }
.fitec-qrdl__company { color: var(--fitec-color-texto-suave); font-size: 0.9rem; }
.fitec-qrdl__actions { display: flex; gap: var(--fitec-space-2); align-items: stretch; margin-top: auto; }
.fitec-qrdl__actions .fitec-btn { flex: 1 1 0; min-width: 0; justify-content: center; text-align: center; padding: 0.6em 0.8em; font-size: 0.82rem; }
.fitec-qrdl__empty { text-align: center; color: var(--fitec-color-texto-suave); padding: var(--fitec-space-5) 0; grid-column: 1 / -1; }

/* Pantalla de contraseña de la página de descarga (a todo el ancho, morado) */
.fitec-pwform {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(2.5rem, 6vw, 5.5rem) var(--fitec-gutter);
	margin-block: var(--fitec-space-4);
	border-radius: var(--fitec-radio-3);
	background: linear-gradient(160deg, var(--fitec-morado), var(--fitec-morado-oscuro, #411c5d));
}
.fitec-pwform__card { width: 100%; max-width: 440px; text-align: center; color: #fff; }
.fitec-pwform__brand { display: inline-block; font-family: var(--fitec-fuente-titulo); text-transform: uppercase; letter-spacing: 0.14em; color: var(--fitec-lima); font-size: 1.4rem; margin-bottom: var(--fitec-space-4); }
.fitec-pwform__title { color: #fff; margin: 0 0 var(--fitec-space-3); }
.fitec-pwform__text { color: rgba(255,255,255,0.85); margin: 0 0 var(--fitec-space-5); }
.fitec-pwform__row { display: flex; flex-wrap: wrap; gap: var(--fitec-space-2); }
.fitec-pwform__row input { flex: 1 1 200px; padding: 0.85em 1em; font-size: 1rem; border: 0; border-radius: var(--fitec-radio-2); background: #fff; color: var(--fitec-tinta); }
.fitec-pwform__row input:focus-visible { outline: 3px solid var(--fitec-lima); outline-offset: 2px; }
.fitec-pwform__row .fitec-btn { flex: 0 0 auto; }
@media (max-width: 480px) { .fitec-pwform__row .fitec-btn { flex: 1 1 auto; justify-content: center; } }

/* ===== Galerías (carteles y fotos): tira horizontal a todo el ancho ===== */
.fitec-gallery {
	display: flex;
	gap: var(--fitec-space-3);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: var(--fitec-space-2) var(--fitec-gutter) var(--fitec-space-4);
}
.fitec-gallery::-webkit-scrollbar { display: none; }
.fitec-gallery__item {
	flex: 0 0 auto;
	display: block;
	border-radius: var(--fitec-radio-2);
	overflow: hidden;
	scroll-snap-align: start;
	box-shadow: 0 10px 30px rgba(17,17,17,0.14);
	transition: transform var(--fitec-trans), box-shadow var(--fitec-trans);
}
.fitec-gallery__item:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(17,17,17,0.22); }
.fitec-gallery__item img { display: block; width: auto; max-width: none; height: clamp(340px, 62vh, 580px); object-fit: cover; }
.fitec-gallery--fotos .fitec-gallery__item img { height: clamp(260px, 46vh, 440px); }
@media (max-width: 600px) {
	.fitec-gallery__item img { height: clamp(300px, 60vh, 460px); }
	.fitec-gallery--fotos .fitec-gallery__item img { height: clamp(220px, 42vh, 320px); }
}
