/* ========== RESET & FUENTES ========== */
* { box-sizing: border-box; margin: 0; padding: 0; }

@font-face {
  font-family: 'Cressida';
  src: url('../fonts/cressidaregular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

:root {
  --amarillo: #fdee1a;
  --amarillo-2: #ffe600;
  --negro: #000;
  --gris-oscuro: #111;
  --blanco: #fff;
  --swiper-theme-color: var(--amarillo);
}

/* ========== TIPOGRAFÍA GLOBAL ========== */
body {
  font-family: 'Cressida', Arial, sans-serif;
  background: var(--negro) url('../img/logo2.svg') repeat 0 0 / 1000px;
  color: var(--blanco); /* ← antes estaba #000 sobre fondo negro */
  min-height: 100vh;
  line-height: 1.5;
}

h1, h2, h4, h5, h6, .evento-slide h3 { font-family: 'Cressida', sans-serif; }
h3, button, nav, a.boton-menu { font-family: Arial, sans-serif !important; }

input, textarea, select, label { font-family: 'Cressida', sans-serif; }
.texto-nosotros { text-align: justify; font-size: 1.2rem; margin: 1rem auto; max-width: 800px; color: var(--blanco); }

/* ========== HEADER ========== */
header {
  position: relative;
  margin-top: 50px; /* altura del nav fijo */
  z-index: 1;
  background: #f6eb11 url('../img/pelicula.svg') repeat-x 0 0 / 1000px;
  animation: mover-fondo 120s linear infinite;
  color: var(--blanco);
  padding-top: 134px;
  padding-bottom: 2rem;
  text-align: center;
  min-height: 180px;
}

.logo-rebote {
  position: absolute;
  top: 10px; left: 50%;
  transform: translateX(-50%);
  width: 170px;
  z-index: 10;
  animation: bounce-logo 1.2s ease;
}

@keyframes bounce-logo {
  0%   { transform: translateX(-50%) scale(0.5) translateY(-30px); opacity: 0; }
  60%  { transform: translateX(-50%) scale(1.2) translateY(10px);  opacity: 1; }
  80%  { transform: translateX(-50%) scale(0.95) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1) translateY(0); }
}

/* ========== NAV FIJO ========== */
nav {
  position: fixed; top: 0; left: 0; width: 100%;
  background-image: linear-gradient(to right, #b90000, #732121);
  z-index: 9999;
  padding: 0.1rem 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}

.menu-toggle {
  display: none;
  font-size: 2rem;
  cursor: pointer;
  color: var(--blanco);
  text-align: center;
  padding: 0.5rem 1rem;
  z-index: 10;
}

/* (unificada) lista del nav */
nav ul {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1rem;
  list-style: none;
  margin: 1rem 0;
  padding: 0.5rem;
}

nav ul li a {
  text-decoration: none;
  color: var(--blanco);
  font-weight: bold;
  transition: all 0.3s ease;
  background-color: rgba(0,0,0,0.6);
  padding: 0.4rem 1rem;
  border-radius: 8px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.3);
}
nav ul li a:hover { color: #f4b400; }

/* ========== SECCIONES GENERALES ========== */
section { padding: 3rem 1.5rem; text-align: center; }
section h2 { font-size: 1.75rem; margin-bottom: 1rem; color: var(--amarillo); }
section p { max-width: 700px; margin: 0 auto 1rem; font-size: 1.1rem; }

img { max-width: 100%; height: auto; }

/* ========== FORMULARIOS ========== */
form {
  display: flex; flex-direction: column; gap: 1rem;
  max-width: 400px; margin: 0 auto;
}
input[type="text"], input[type="tel"], input[type="date"],
input[type="number"], select {
  width: 100%; padding: 0.75rem;
  font-family: Arial, sans-serif; font-size: 1rem;
  border: none; border-radius: 8px;
  background-color: #f0f4ff; margin-bottom: 1rem;
}
form input::placeholder, form textarea::placeholder {
  color: #070101; font-style: italic; font-family: Arial, sans-serif;
  font-size: 14px; letter-spacing: 0.5px;
}
form input, form button { padding: 0.75rem; font-size: 1rem; border: 1px solid #ccc; border-radius: 0.5rem; }
form button { background-color: #2e2b2b; color: var(--blanco); cursor: pointer; transition: background 0.3s; }
form button:hover { background-color: #444; }
form label {
  display: block; margin: 1.2rem 0 0.3rem; font-weight: bold; color: var(--blanco);
  font-family: 'Chewy', cursive; font-size: 1.1rem;
}

.flash-messages {
  background-color: #fff3cd; color: #856404;
  padding: 10px 15px; margin: 15px; border: 1px solid #ffeeba;
  border-radius: 5px; font-family: Arial, sans-serif; font-size: 1rem; list-style: none;
}

/* ========== BOTONES, ENLACES, CTA ========== */
.boton-menu {
  display: inline-block; padding: 0.7rem 1.5rem;
  background-color: #f4b400; color: #000; font-weight: bold;
  text-decoration: none; border-radius: 8px; margin-top: 1rem;
  transition: background 0.3s ease;
}
.boton-menu:hover { background-color: #fff176; }

.btn-portada {
  background-color: var(--amarillo); color: #000;
  padding: 0.75rem 1.5rem; border-radius: 25px; text-decoration: none; font-weight: bold;
  transition: background 0.3s;
}
.btn-portada:hover { background-color: #fff200; }

/* ========== SECCIONES ESPECÍFICAS ========== */
footer { background-color: #2e2b2b; color: var(--blanco); text-align: center; padding: 1rem; margin-top: 2rem; }

.gallery {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 1rem;
}
.gallery img { width: 300px; border-radius: 0.5rem; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }

.whatsapp-float { position: fixed; bottom: 20px; right: 20px; z-index: 999; }
.whatsapp-float img { width: 60px; height: 60px; }

.social-floats {
  position: fixed; bottom: 90px; right: 20px; display: flex; flex-direction: column; gap: 10px; z-index: 999;
}
.social-floats a img {
  width: 45px; height: 45px; border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3); transition: transform 0.2s ease;
}
.social-floats a img:hover { transform: scale(1.1); }

.dark-section {
  background-color: #e53131b0; color: var(--blanco);
  padding: 3rem 1.5rem; margin: 1rem auto; border-radius: 10px;
  width: 90%; max-width: 1200px; box-shadow: 0 0 10px rgba(255,255,255,0.1);
}

.nosotros-container { display: flex; align-items: center; justify-content: center; gap: 2rem; flex-wrap: wrap; margin-top: 2rem; }
.nosotros-imagen img { width: 400px; max-width: 100%; border-radius: 20px; box-shadow: 0 4px 8px rgba(255,255,255,0.2); }
.nosotros-texto { max-width: 500px; color: var(--blanco); font-size: 1.1rem; line-height: 1.6; }
.texto-nosotros, .texto-nosotros * { font-family: Arial, sans-serif; }

.menu-imagen-cuadro { margin-top: 2rem; display: flex; justify-content: center; align-items: center; }
.menu-imagen-cuadro img {
  max-width: 100%; width: 400px; border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4); transition: transform 0.3s ease;
}
.menu-imagen-cuadro img:hover { transform: scale(1.05); }

.eventos-container { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: center; }
.evento {
  background: var(--gris-oscuro); padding: 1rem; border-radius: 10px; width: 300px; text-align: center;
  box-shadow: 0 0 10px rgba(255,255,255,0.1); max-width: 100%; word-wrap: break-word; overflow-wrap: break-word;
}
.evento img { width: 100%; border-radius: 8px; margin-bottom: 1rem; object-fit: cover; }
.evento a { color: #f4b400; text-decoration: underline; }
.evento p { font-size: 1rem; line-height: 1.5; word-break: break-word; overflow-wrap: break-word; }

/* ========== PORTADA ========== */
.portada-section {
  width: 100%; height: 100vh; margin: 0 auto; position: relative; z-index: 1;
  background: url('../img/portada.png') center / cover no-repeat;
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  text-align: center; padding: 2rem;
}
.texto-portada { color: var(--amarillo); font-size: 1.5rem; font-weight: bold; }

/* ========== TABLA MENÚ ========== */
.tabla-productos-wrapper { display: flex; justify-content: center; overflow-x: auto; margin-bottom: 2rem; }
.tabla-productos {
  width: 90%; max-width: 900px; border-collapse: collapse; background-color: var(--negro); color: var(--blanco);
  font-family: 'Chewy', cursive; border-radius: 10px; overflow: hidden; box-shadow: 0 0 10px var(--amarillo-2);
}
.tabla-productos th { background-color: var(--amarillo-2); color: #000; padding: 10px; text-transform: uppercase; font-size: 1rem; }
.tabla-productos td { padding: 10px; text-align: center; border-top: 1px solid #444; }
.tabla-productos img { border-radius: 8px; }

/* ========== IMÁGENES MENÚ: ZOOM FULLSCREEN ========== */
.menu-img { width: 100%; border-radius: 10px; cursor: pointer; transition: transform 0.2s ease; }
.menu-img:hover { transform: scale(1.02); }

.img-fullscreen {
  position: fixed; inset: 0; background-color: rgba(0,0,0,0.9);
  display: flex; justify-content: center; align-items: center; z-index: 9999;
}
.img-fullscreen img { max-width: 90%; max-height: 90%; }
.img-fullscreen .close { position: absolute; top: 20px; right: 20px; font-size: 30px; color: var(--blanco); cursor: pointer; }

/* ========== SWIPER (EVENTOS / PELÍCULAS / MENÚ) ========== */
/* IMPORTANTE: evita ".swiper .swiper" (eso anida dos contenedores y rompe paddings) */
.swiper { padding: 0 1rem; max-width: 100%; box-sizing: border-box; }
.swiper-slide { margin-bottom: 30px; }

.swiper-pagination { position: relative; bottom: 0; margin-top: 10px; text-align: center; }
.swiper-pagination-bullet {
  width: 10px; height: 10px; background: #999; opacity: 1; margin: 0 5px; transition: background 0.3s;
}
.swiper-pagination-bullet-active { background: var(--swiper-theme-color) !important; }

/* Flechas */
.swiper-button-prev, .swiper-button-next {
  color: var(--swiper-theme-color); background-color: rgba(0,0,0,0.6); padding: 15px; border-radius: 50%;
}

/* Carrusel de menú */
.mySwiper-menu { width: 100%; padding: 2rem 1rem; }
.mySwiper-menu .swiper-slide {
  background: transparent; text-align: center; display: flex; flex-direction: column;
  align-items: center; justify-content: flex-start; flex: 0 0 auto; width: auto;
}

/* Estructura uniforme de altura en eventos */
.mySwiper-eventos { width: 100%; }
.mySwiper-eventos .swiper-wrapper { align-items: stretch; }

/* ========== PROXIMAMENTE (SEDES) ========== */
.proximamente-section { text-align: center; background: var(--gris-oscuro); padding: 3rem 1rem; }
.portada-doble { display: flex; justify-content: center; align-items: center; gap: 40px; flex-wrap: wrap; }
.portada-item { position: relative; width: 45%; max-width: 600px; }
.portada-item img {
  width: 100%; height: 350px; object-fit: cover; border-radius: 15px;
  box-shadow: 0 0 20px rgba(255,255,255,0.3); transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.portada-item img:hover { transform: scale(1.03); box-shadow: 0 0 35px rgba(255,230,0,0.6); }
.titulo-sede {
  position: absolute; bottom: 20px; left: 20px; font-size: 2.3rem; color: var(--amarillo-2);
  font-family: Arial, sans-serif; text-shadow: 2px 2px 8px #000; pointer-events: none;
}

/* ========== ANIMACIONES ========== */
@keyframes mover-fondo { from { background-position: 0 0; } to { background-position: -1000px 0; } }

/* ========== RESPONSIVE ========== */
@media (max-width: 768px) {
  header { margin-top: 50px; padding-top: 80px; background-position: center; min-height: 165px; }
  header h1 { font-size: 1.5rem; }

  nav { padding: 0 0.5rem; font-size: 1.2rem; }
  .menu-toggle { display: block; }
  nav ul { display: none; flex-direction: column; background: var(--negro); position: absolute; top: 100%; left: 0; width: 100%; z-index: 99; }
  nav ul.show { display: flex !important; }
  nav ul li { text-align: center; padding: 1rem 0; color: #FFD700; }

  .eventos-container, .gallery { flex-direction: column; align-items: center; }
  .evento { width: 90%; }

  form { width: 100%; padding: 0 1rem; }

  .menu-imagen-cuadro img { width: 90%; }

  .nosotros-container { flex-direction: column; }
  .nosotros-imagen img, .nosotros-texto { width: 100%; }

  .portada-section { width: 100%; height: 30vh; padding: 3rem 1rem; background-size: contain; }
  .portada-section h1 { font-size: 2rem; }
  .portada-section p { font-size: 1rem; }

  .swiper-slide { padding: 0 10px; }
  .mySwiper-menu { padding: 1rem; }

  .portada-item { width: 90%; }
  .portada-item img { height: auto; }
  .titulo-sede { font-size: 1.7rem; bottom: 15px; }
}

/* Accesibilidad: reducir animaciones si el usuario lo pide */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}
/* Forzamos 1/2/3 por vista controlando el ancho de cada slide */
.mySwiper-eventos .swiper-slide { width: 100% !important; } /* móvil por defecto */

@media (min-width: 768px) {
  .mySwiper-eventos .swiper-slide {
    width: calc((100% - 20px) / 2) !important; /* 2 por vista con 20px de gap */
  }
}

@media (min-width: 1024px) {
  .mySwiper-eventos .swiper-slide {
    width: calc((100% - 40px) / 3) !important; /* 3 por vista con 20px+20px de gap */
  }
}

/* Por defecto móvil: 1 por vista */
.mySwiper-eventos .swiper-slide { width: 100% !important; }

/* Tablet: 2 por vista (spaceBetween: 20px => 1 gap) */
@media (min-width: 768px) {
  .mySwiper-eventos .swiper-slide {
    width: calc((100% - 20px) / 2) !important;
  }
}

/* Desktop: 3 por vista (spaceBetween: 20px => 2 gaps = 40px) */
@media (min-width: 1024px) {
  .mySwiper-eventos .swiper-slide {
    width: calc((100% - 40px) / 3) !important;
  }
}


/* Evita que algo global estire los slides a 100% */
.mySwiper-eventos .swiper-wrapper { align-items: stretch; }

.flash {
  margin: 10px auto;
  padding: 12px;
  border-radius: 8px;
  text-align: center;
  width: 90%;
  font-family: Arial, sans-serif;
  animation: aparecer 0.5s ease;
}

.flash.success {
  background: #162e0b;
  color: #b6ff7a;
  border: 1px solid #66ff00;
}

.flash.error {
  background: #3a0b0b;
  color: #ffaaaa;
  border: 1px solid #ff4c4c;
}

@keyframes aparecer {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

.slide-link img { cursor: pointer; transition: transform .25s ease, filter .25s ease; }
.slide-link img:hover { transform: scale(1.02); filter: brightness(1.05); }

/* Quitar subrayado de todos los enlaces dentro del slider */
.slide-link,
.slide-link:link,
.slide-link:visited,
.slide-link:hover,
.slide-link:active {
  text-decoration: none !important;
  border: none !important;
  outline: none !important;
}

/* Estilo del texto "Ver video" */
.ver-video {
  text-align: center;
  font-weight: bold;
  color: #ffde00;
  margin-top: 8px;
  text-transform: uppercase;
  transition: color 0.3s ease;
  text-decoration: none !important;
  border: none !important;
}

/* Efecto hover */
.slide-link:hover .ver-video {
  color: #fff;
}

/* Imagen animada */
.slide-link img {
  cursor: pointer;
  border-radius: 10px;
  transition: transform 0.3s ease, filter 0.3s ease;
}

.slide-link img:hover {
  transform: scale(1.03);
  filter: brightness(1.1);
}

/* Quitar subrayado de los links de los slides */
.slide-link,
.slide-link:link,
.slide-link:visited,
.slide-link:hover,
.slide-link:active {
  text-decoration: none !important;
  border: none !important;
  outline: none !important;
}

/* Texto "Ver video" */
.ver-video {
  text-align: center;
  font-weight: bold;
  color: #ffde00;
  margin-top: 8px;
  text-transform: uppercase;
  transition: color 0.3s ease;
  text-decoration: none !important;
  border: none !important;
}

/* Hover */
.slide-link:hover .ver-video {
  color: #fff;
}

/* Imagen del evento */
.slide-link img {
  cursor: pointer;
  border-radius: 10px;
  transition: transform 0.3s ease, filter 0.3s ease;
}

.slide-link img:hover {
  transform: scale(1.03);
  filter: brightness(1.1);
}
