:root {
            --bg-color: #0b0b0b;
            --card-bg: #161616;
            --accent-color: #ffffff;
            --text-main: #e0e0e0;
            --text-muted: #888888;
            --border-color: #333333;
            --font-main: 'Inter', sans-serif;
        }

        /* 1. EFECTO FADE-IN AL CARGAR (PÁGINA COMPLETA) */
        @keyframes pageFadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }


        body {
            background-color: var(--bg-color);
            color: var(--text-main);
            /* font-family: var(--font-main); */
            font-family: 'Jost', sans-serif;
            margin: 0; 
            line-height: 1.6;
            animation: pageFadeIn 1.8s ease-out forwards;
            overflow-x: hidden;
            max-width: 100vw;
        }

html, body {
    margin: 0 !important;
    padding: 0 !important;
    top: 0 !important;
}

/* CABECERA */

    .cabecera-impulse
        { 
            position:sticky !important;
              top: 0 !important;
            left:0;
            width:100%;
            height:110px;
            background: linear-gradient(to bottom, #1e0e43, #000000);
            color:white;
            display:flex;
            align-items:center;
            transition:all .3s ease;
            z-index:9999;
            
    margin: 0;
    padding: 0;
       width: 100%;
    max-width: 100%;
        }

/* CONTENIDO */

.contenido-cabecera{
            display:flex;
            align-items:center;
            gap:15px;
            padding-left:25px;


        }

.logo-impulse img{
            height:55px;
            transition:all .3s ease;
        }

/* TITULO */

.titulo-impulse{
            margin:0;
   /*         font-size:30px;
            font-weight:700;*/
            white-space:nowrap;
            transition:all .3s ease;
    font-family: 'Inter', sans-serif; /* O la fuente principal definida en el sitio */
    font-size: 1.1rem;               /* Aproximadamente 17.6px */
    line-height: 1.5;
    font-weight: 400;                /* Peso normal */

    word-wrap: break-word;
    overflow-wrap: break-word;
        width: 100%;
        }

/* CONTENIDO WEB */

main{
    margin-top:20px;
  /*  padding:40px; */
    }

/* EFECTO SHRINK */

.cabecera-impulse.shrink{ height:70px; }
.cabecera-impulse.shrink .logo-impulse{ height:35px; }
.cabecera-impulse.shrink .titulo-impulse{ font-size:0.9rem; }
.cabecera-impulse.shrink .logo-impulse img{
            content:url("https://www.tributoimpulse.es/images/logo-192x192.png");
            height:35px;
        }

/* RESPONSIVE */

@media (max-width:767px){

        .cabecera-impulse{ height:85px; }
        main{ margin-top:15px; padding-top: 5px}
        .titulo-impulse{ font-size:1.0rem; }
        .cabecera-impulse.shrink{ height:60px;}
    }


/* TIPOGRAFÍA BASADA EN TRIBUTOIMPULSE.ES */

/* Display 4: Utilizado para títulos de sección destacados */
.display-3 {
    font-family: 'Inter', sans-serif;
    font-size: 1.2rem;
    line-height: 1.5;
    font-weight: 400;
}

.display-4 {
    font-family: 'Inter', sans-serif;
    font-size: 1.1rem;
    line-height: 1.5;
    font-weight: 400;
}

/* Display 5: Utilizado para subtítulos o títulos de tarjetas */
.display-5 {
    font-family: 'Inter', sans-serif;
    font-size: 2rem;
    line-height: 1.2;
    font-weight: 400;
}

/* Display 6: Utilizado para textos de énfasis medio */
.display-6 {
    font-family: 'Inter', sans-serif;
    font-size: 1.2rem;
    line-height: 1.5;
    font-weight: 400;
}

/* Display 7: Utilizado para textos secundarios, detalles y párrafos pequeños */
.display-7 {
    font-family: 'Inter', sans-serif;
    font-size: 1.1rem;
    line-height: 1.5;
    font-weight: 400;
}

/* --- OPTIMIZACIÓN RESPONSIVA (Media Queries) --- */

@media (max-width: 992px) {
    .display-4 {
        font-size: 0.88rem;
    }
    .display-5 {
        font-size: 1.6rem;
    }
    .display-6 {
        font-size: 0.96rem;
    }
    .display-7 {
        font-size: 0.88rem;
    }
}

/* --- AJUSTES ADICIONALES PARA EL LOOK 'PINK FLOYD' DEL SITIO --- */

/* En tributoimpulse, los títulos suelen llevar un ligero espaciado de letras */
h1.display-5, h2.display-5 {
   font-family: "Poppins", sans-serif;
    font-weight: 500; /* Extra Bold para máximo impacto */
    text-transform: uppercase;
    letter-spacing: 2px;
    line-height: 1.1;
}

.display-7 {
    color: #888888; /* El gris atenuado que usan para los detalles de la gira */
}
.im-seccion-titulo {
/* Identidad visual (mbr-section-title + mbr-fonts-style) */
        font-family: 'Inter', sans-serif;

    font-style: normal;
    font-weight: 300;           /* Peso fuerte para títulos */
    line-height: 1.6;           /* Interlineado equilibrado */
    letter-spacing: 1.4px;        /* Espaciado entre letras premium */
    color: #ffffff;             /* Blanco puro */
    
    /* Alineación (align-center) */
    text-align: center;
    
    /* Tamaño específico (display-6) */
    font-size: 1.8rem;          /* Aproximadamente 19-20px */
    
    /* Espaciado inferior (mb-4) */
    margin-bottom: 1.0rem;      /* Separación estándar de bloque (24px) */
}
.im-seccion-subtitulo {
    font-family: 'Inter', sans-serif;
    font-weight: 300;
    color: #bbbbbb;
    font-size: 1.1rem;
    max-width: 800px;
    margin: 0 auto;
}

@media (max-width:767px){

       .im-seccion-subtitulo {
    padding: 1rem;
}
    }
       .boton-entradas {
            background-color: #eb8f34; /* Color del botón */
            color: white; /* Color del texto */
            padding: 6px 5px; /* Tamaño del botón */
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 12px;
            margin: 8px;
            border-radius: 5px;
            border: none;
            cursor: pointer;
        }
		.boton-agotadas {
            background-color: #fc4c75; /* Color del botón */
            color: white; /* Color del texto */
            padding: 6px 5px; /* Tamaño del botón */
            text-align: center;
            text-decoration: none;
            display: inline-block;
            font-size: 12px;
            margin: 8px;
            border-radius: 5px;
            border: none;
            cursor: pointer;
        }
        .boton-entradas:hover {
            background-color: #ec9f35; /* Cambio de color al pasar el cursor */
        } 

.card-anteriores {
  	color: white;
  	padding: 1rem;
	border: 1px solid white;
  	border-color:dodgerblue;
	border-radius: .25rem;
}
.card-anteriores:hover {
            border: 1px solid #FFF;
        }
       
.im-card {
  /*background-color: dodgerblue;*/
  	color: white;
  	padding: 1rem;
  	border-color:#ffffff;
	
	  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  word-wrap: break-word;
  background-clip: border-box;
  border: 1px solid rgba(255,255,255,.250);
  border-radius: 0.25rem;
    line-height: 1.1;
}
.im-card:hover {
            border: 1px solid #eb8f34;
        }
.im-cards {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  gap: 1rem;
}
@media (min-width: 600px) {
  .im-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
  .im-cards { grid-template-columns: repeat(3, 1fr); }
}
        
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        


        /* 2. EFECTO DE REVELADO (SCROLL REVEAL) */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: all 1.2s cubic-bezier(0.2, 0.8, 0.2, 1);
        }

        .reveal.active {
            opacity: 1;
            transform: translateY(0);
        }

        /* DISEÑO RESPONSIVO Y ESTRUCTURA */
        .container {  margin: 0 auto; /* max-width: 1100px; */ /* padding: 0 5%; */}
        
        .hero {
            height: 100vh;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            background: linear-gradient(rgba(0,0,0,0.8), var(--bg-color)), 
                        url('https://images.unsplash.com/photo-1470229722913-7c0e2dbbafd3?auto=format&fit=crop&w=1600&q=80') center/cover no-repeat;
            text-align: center;
        }

        .hero h1 { font-size: clamp(2.5rem, 8vw, 5rem); letter-spacing: 5px; margin: 0; }

.contenedor-oculto {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-10px);
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Esta es la clase que activa la función JS */
.revelar-contenido {
    max-height: 3000px; /* Suficiente para el contenido */
    opacity: 1;
    transform: translateY(0);
    margin-top: 20px;
}

        /* BOTONES */
        .btn-primary {
            border: 1px solid #fff;
            color: #fff;
            padding: 15px 35px;
            text-decoration: none;
            text-transform: uppercase;
            font-size: 0.8rem;
            letter-spacing: 2px;
            transition: 0.4s;
            display: inline-block;
            margin-top: 20px;
        }
        .btn-primary:hover { background: #fff; color: #000; box-shadow: 0 0 20px rgba(255,255,255,0.3); }

        /* SECCIONES TIPO IMPULSE */
        /*section { padding: 100px 0; border-bottom: 1px solid var(--border-color); }*/
       /* section { padding-top: 5rem; padding-bottom: 5rem; position: relative; background-color: #000; } */
 section { padding-top: 1rem; padding-bottom: 1rem; position: relative; }
        h2 { text-transform: uppercase; letter-spacing: 3px; text-align: center; margin-bottom: 25px; }

        /* GIRA */
        .concert-row {
            display: flex;
            justify-content: space-between;
            padding: 25px 0;
            border-bottom: 1px solid #222;
        }
        @media (max-width: 768px) { .concert-row { flex-direction: column; text-align: center; gap: 15px; } }

        /* TIENDA & EXPERIENCIA */
        .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
        @media (max-width: 768px) { .grid-2 { grid-template-columns: 1fr; } }
        
        .box { background: var(--card-bg); padding: 40px; border: 1px solid #333; }

        .secciongris {background: var(--card-bg); }



.redes-sociales {
    display: flex;
    gap: 15px; /* Espacio entre iconos */
    justify-content: center;
    padding: 20px;
}

.icono-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 45px;  /* Tamaño del círculo/contenedor */
    height: 45px;
    border-radius: 50%;
    text-decoration: none;
    transition: transform 0.3s ease;
}

.icono-social svg {
    width: 24px;  /* Tamaño real del icono */
    height: 24px;
    fill: white;  /* Forzamos el color blanco para que resalte */
}

/* Ajuste específico para Facebook para que el icono sea blanco sobre fondo azul */
.icono-social[aria-label="Facebook"] {
    background-color: #1877F2;
}

.icono-social:hover {
    transform: scale(1.1);
}

 
.contenedor{
  display: block; 
  margin: 20px auto; 
  width: 100%; 
  max-width: 600px;  
}
.reproductor { 
  display: block; 
  width: 100%; 
  height: 100%; 
  padding-bottom: 56.25%; 
  overflow: hidden; 
  position: relative; 
  cursor: hand; 
  cursor: pointer; 
}
img.imagen-previa { 
   display: block; 
   left: 0; 
   bottom: 0;
   margin: auto; 
   max-width: 100%; 
   width: 100%; 
   position: absolute; 
   right: 0; 
   top: 0; 
   height: auto 
}
div.youtube-play { 
   height: 64px; 
   width: 64px; 
   left: 50%; 
   top: 50%; 
   margin-left: -36px; 
   margin-top: -36px;
   opacity:0.7;
   position: absolute; 
   background:   url("https://cdn2.iconfinder.com/data/icons/social-icons-color/512/youtube-64.png") no-repeat; 
}
div.youtube-play:hover{
   opacity:1; 
}
#youtube-iframe { 
   width: 100%; 
   height: 100%; 
   position: absolute; 
   top: 0; 
   left: 0; 
}

.seccion-full {

    width: 100%;
    min-height: 60vh;

    display: flex;
    align-items: center;
    justify-content: center;
 flex-wrap: wrap;
 
    /* 1. Forzar que el texto salte de línea */
    white-space: normal !important; 
    
    /* 2. Asegurar que no supere el ancho de la pantalla */
    display: block;
    width: 100% !important;
    max-width: 100vw; 
    box-sizing: border-box; /* Fundamental para que el padding no "empuje" hacia afuera */
    
    /* 3. Evitar desbordamiento de palabras muy largas */
    overflow-wrap: break-word;
    word-wrap: break-word;
    
    /* 4. Ajuste de márgenes (opcional para estética) */
    padding-left: 15px;
    padding-right: 15px;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

/* contenedor interior */
.seccion-full-contenido {

    max-width: 1200px;
    width: 100%;

    text-align: center;

}

/* título */
.seccion-full h2 {

    font-size: 42px;
    margin-bottom: 20px;
    font-weight: 700;

}

/* texto */
.seccion-full p {

    font-size: 18px;
    line-height: 1.6;
    max-width: 700px;
    margin: auto;

}

/* responsive */

@media (max-width: 767px) {

    .seccion-full {
        padding: 60px 20px;
        min-height: 50vh;
    }
    
    .seccion-full-contenido {
        margin-right: 20px;

         } 

    .seccion-full h2 {
        font-size: 30px;
    }

    .seccion-full p {
        font-size: 16px;
    }

}

.seccion-full img {

    max-width: 100%;
    height: auto;

    display: block;
    margin: auto;

}
.res{

    max-width: 100%;
    height: auto;

    display: block;
    margin: auto;

}
        /* GALERÍA */
        .gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px; }
        .gallery img { width: 100%; height: 250px; object-fit: cover; filter: grayscale(1); transition: 0.6s; }
        .gallery img:hover { filter: grayscale(0); transform: scale(1.03); }



/* Contenedor principal de la sección */
.gallery-section {
    width: 100%;
    overflow: hidden; /* Evita el scroll lateral de la web */
    padding: 40px 0;
    position: relative;
}

/* El "marco" donde se ve la imagen */
.carousel-container {
    position: relative;
    max-width: 1000px; /* Ancho máximo en escritorio */
    margin: 0 auto;
    overflow: hidden; /* Esconde las fotos que no están activas */
}

/* La tira que se mueve */
.gallery-track {
    display: flex;
    transition: transform 0.5s ease-in-out;
    width: 100%;
}

/* Cada imagen dentro del carrusel */
.gallery-track img {
    width: 100%; /* Cada foto ocupa el 100% del contenedor */
    flex-shrink: 0; /* Evita que las fotos se aplasten */
    height: 500px; /* Altura fija para mantener estética */
    object-fit: cover; /* Recorta la imagen para llenar el espacio sin deformar */
}

/* Botones de navegación */
.carousel-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.5);
    color: white;
    border: none;
    padding: 15px;
    cursor: pointer;
    font-size: 20px;
    z-index: 10;
    transition: background 0.3s;
}

.carousel-btn:hover { background: rgba(0, 0, 0, 0.8); }
.prev { left: 10px; }
.next { right: 10px; }

/* Ajustes para Móvil */
@media (max-width: 768px) {
    .gallery-track img {
        height: 300px; /* Más bajo en móviles */
    }
    .carousel-btn {
        padding: 10px;
        font-size: 16px;
    }
}




 
       
       .miembros {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  max-width: 1200px;
  margin: auto;
  padding: 1rem;
  background-color: #f5f5f5;
}

/* Cada miembro */
.miembro {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1rem;
  border-bottom: 1px solid #ccc;
  padding: 1rem 0;
  background-color: transparent;
}

/* Imágenes de miembros */
.miembro img {
  width: 100%;
  max-width: 180px;
  height: auto;
  border-radius: 8px;
  object-fit: cover;
}

/* Texto del miembro */
.miembro-content {
  flex: 1;
}

/* Nombre del miembro */
.miembro-content h4 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-size: 1.25rem;
}

/* Descripción */
.miembro-content p {
  margin: 0;
  font-style: italic;
  text-align: justify;
  line-height: 1.4;
}

/* Galería de imágenes para coros */
.miembro-galeria {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

/* Responsive */
@media (max-width: 768px) {
  .miembro {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .miembro-content p {
    /*text-align: center;*/
        padding: 1rem;
  }
  .miembro-galeria {
    justify-content: center;
  }
}
       
   


        /* CONTACTO 
        .contact-form { max-width: 600px; margin: 0 auto; display: flex; flex-direction: column; gap: 15px; }
        .contact-form input, .contact-form textarea {
            background: #111; border: 1px solid #333; padding: 15px; color: #fff;
        }*/
.contact-form { 
    padding: 1rem;
    max-width: 600px; 
    margin: 0 auto; 
    display: flex; 
    flex-direction: column; 
    gap: 15px; 
}

.contact-form-error { 
    padding: 1rem;
    max-width: 600px; 
    margin: 0 auto; 
    color: #fff;                 /* Color del texto */
    background-color: #e74c3c;  /* Fondo rojo */
    border: 1px solid #c0392b;  /* Borde rojo oscuro */
    padding: 10px 15px;          /* Espaciado interno */
    border-radius: 5px;          /* Bordes redondeados */
    font-size: 0.9rem;           /* Tamaño de fuente */
    margin-top: 5px;             /* Separación del input */
    transition: all 0.3s ease;   /* Suaviza aparición/desaparición */
}


.contact-form input, 
.contact-form textarea {
    background: #323232;
    border: 1px solid #333; 
    padding: 15px; 
    color: #fff;
}

.contact-form button {
    background: #007bff;
    border: none;
    padding: 15px;
    color: #fff;
    cursor: pointer;
    transition: background 0.3s ease;
}

.contact-form button:hover {
    background: #2b92ff;
}
        footer {  text-align: center;  color: var(--text-muted); font-size: 0.8rem; 

 display: flex;
  flex-direction: column;

  max-width: 1200px;
            width: 100%;
  margin: auto;

 }


