/* --- RESET Y VARIABLES GLOBALES --- */
:root {
    --header-height: 6rem; 
    --color-background: #050605;
    --color-text: #EAEAEA;
    --color-primary: #84FF00;
    --color-secondary: #BFFF00;
    --color-dark-grey: #1A1A1A;
    --font-display: 'Orbitron', sans-serif;
    --font-body: 'Poppins', sans-serif;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: var(--font-body);
    background-color: var(--color-background);
    color: var(--color-text);
    overflow-x: hidden;
}
.container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
ul { list-style: none; }
a { text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }

/*=============== HEADER Y NAVEGACIÓN ===============*/
#header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: rgba(5, 6, 5, 0.5);
    backdrop-filter: blur(10px);
    z-index: 1000;
    border-bottom: 1px solid rgba(132, 255, 0, 0.2);
}
.header__container {
    height: var(--header-height);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.header__logo img {
    height: 4.5rem; 
    width: auto;
}
.header__actions { display: flex; align-items: center; gap: 1rem; }
.nav__toggle {
    font-size: 1.5rem;
    color: var(--color-text);
    cursor: pointer;
}

@media screen and (max-width: 992px) {
    .nav {
        position: fixed;
        top: 0;
        right: -100%;
        width: 100%;
        height: 100%;
        background-color: rgba(5, 6, 5, 0.8);
        backdrop-filter: blur(16px);
        transition: right .4s;
        padding-top: 6rem;
    }
    .cta-button--header { display: none; }
}

.nav__list { display: flex; flex-direction: column; text-align: center; gap: 3rem; }
.nav__link { font-family: var(--font-display); color: var(--color-text); font-size: 1.5rem; transition: color .3s; }
.nav__link:hover { color: var(--color-primary); }
.nav__close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    font-size: 2rem;
    color: var(--color-text);
    cursor: pointer;
}
.show-menu { right: 0; }

/*=============== MAIN CONTENT ===============*/
.main { padding-top: var(--header-height); }
#hero {
    min-height: calc(100vh - var(--header-height));
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2rem;
    position: relative;
}
#bg-video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; opacity: 0.3; }

/* --- SECCIONES (ESTILOS GENERALES) --- */
section { padding: 6rem 0; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 700; color: var(--color-text); text-shadow: 0 0 15px rgba(132, 255, 0, 0.7); }
.section-title { font-size: 3rem; text-align: center; margin-bottom: 4rem; text-transform: uppercase; }
.cta-button {
    display: inline-block;
    padding: 0.8rem 2rem;
    font-family: var(--font-display);
    font-weight: 600;
    text-decoration: none;
    border: 2px solid var(--color-primary);
    color: var(--color-text);
    border-radius: 50px;
    transition: all 0.3s;
    cursor: pointer; 
    text-align: center;
    background-color: transparent;
}
.cta-button:hover { background-color: var(--color-primary); color: var(--color-background); box-shadow: 0 0 25px var(--color-primary); }

.hero-content h1 { font-size: 5rem; line-height: 1.1; }
.hero-content > p { font-size: 1.5rem; font-weight: 300; margin: 1rem 0 2rem 0; color: #ccc; }
.event-details { background: rgba(0,0,0,0.3); border-radius: 10px; padding: 0.5rem 1.5rem; display: inline-block; margin-bottom: 2.5rem; }
.event-details p { margin: 0.5rem 0; line-height: 1.4; }
.event-details p:first-child { font-weight: 600; color: var(--color-primary); font-size: 1.2rem; text-shadow: 0 0 10px var(--color-primary); }
.event-details p:last-child { color: #ccc; font-size: 1rem; }

.about-content { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.about-image img { width: 100%; border-radius: 10px; box-shadow: 0 0 40px rgba(132, 255, 0, 0.4); }
#lineup { background-color: var(--color-dark-grey); }
.artists-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.artist-card { background: #111; text-align: center; border-radius: 10px; overflow: hidden; transition: transform 0.3s, box-shadow 0.3s; }
.artist-card:hover { transform: translateY(-10px); box-shadow: 0 0 30px var(--color-secondary); }
.artist-card img { width: 100%; height: 350px; object-fit: cover; }
.artist-info { padding: 1.5rem; }
.artist-info h3 { font-size: 1.8rem; }
.artist-info p { color: var(--color-primary); font-weight: 600; }

/* Estilos de la parrilla de tickets modificados para centrar un solo elemento */
.tickets-grid { 
    display: flex; 
    justify-content: center;
    align-items: center;
    gap: 3rem; 
}
.ticket-card { 
    background: var(--color-dark-grey); 
    padding: 2.5rem; 
    border: 1px solid rgba(132, 255, 0, 0.3); 
    border-radius: 10px; 
    text-align: center;
    max-width: 450px; /* Ancho máximo para que no se estire demasiado */
    width: 100%;
}
.ticket-card h3 { font-size: 2rem; color: var(--color-primary); }
.ticket-card .price { font-size: 3rem; margin: 1rem 0; }
.ticket-card ul { list-style: none; margin: 2rem 0; line-height: 2; }

/* ESTILOS DE LA SECCIÓN DE ACREDITACIÓN ELIMINADOS */

.footer { background-color: var(--color-dark-grey); padding: 4rem 0 2rem 0; text-align: center; }
.footer-logo { width: 180px; margin-bottom: 2rem; }
.social-links { margin-bottom: 2rem; }
.social-links a { color: var(--color-text); font-size: 1.5rem; margin: 0 1rem; }
.footer-legal { max-width: 800px; margin: 3rem auto 0 auto; padding-top: 2rem; border-top: 1px solid #333; color: #888; text-align: left; }
.footer-links { margin-top: 2rem; }
.footer-links a { color: #888; text-decoration: underline; transition: color .3s; }
.footer-links a:hover { color: var(--color-primary); }
.footer-credits { margin-top: 3rem; color: #555; }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/*=============== BREAKPOINTS / VISTA ESCRITORIO ===============*/
@media screen and (min-width: 992px) {
    .nav { all: unset; }
    .nav__list { flex-direction: row; gap: 2.5rem; }
    .nav__link { font-size: 1rem; }
    .nav__toggle, .nav__close { display: none; }
    
    .hero-content h1 { font-size: 5rem; }
    .section-title { font-size: 3rem; }
}

@media screen and (max-width: 768px) {
    .hero-content h1 { font-size: 3rem; }
    .section-title { font-size: 2.5rem; }
    .about-content, .artists-grid { grid-template-columns: 1fr; }
    section { padding: 4rem 0; }
}
```--- END OF FILE style.css ---

--- START OF FILE legal.html ---
```html
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Aviso Legal y Política de Devoluciones - VORTEX</title>
    <link rel="icon" type="image/png" href="assets/vortex-icon.png">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Poppins:wght@300;400;600&display=swap" rel="stylesheet">
    <style>
        :root {
            --color-background: #050605;
            --color-text: #EAEAEA;
            --color-primary: #84FF00;
            --font-display: 'Orbitron', sans-serif;
            --font-body: 'Poppins', sans-serif;
        }
        body {
            font-family: var(--font-body);
            background-color: var(--color-background);
            color: var(--color-text);
            line-height: 1.7;
            padding: 2rem;
        }
        .legal-container {
            max-width: 800px;
            margin: 2rem auto;
            background-color: #1A1A1A;
            padding: 2rem 3rem;
            border: 1px solid rgba(132, 255, 0, 0.2);
            border-radius: 10px;
        }
        h1, h2, h3 {
            font-family: var(--font-display);
            color: var(--color-primary);
            text-shadow: 0 0 10px rgba(132, 255, 0, 0.5);
            margin-top: 2rem;
            margin-bottom: 1rem;
        }
        h1 { font-size: 2.5rem; text-align: center; }
        h2 { font-size: 2rem; border-bottom: 1px solid rgba(132, 255, 0, 0.3); padding-bottom: 0.5rem; }
        h3 { font-size: 1.5rem; color: var(--color-text); }
        p, li { color: #ccc; margin-bottom: 1rem; }
        ul, ol { padding-left: 2rem; margin-bottom: 1rem; }
        strong { color: var(--color-text); }
        a { color: var(--color-primary); text-decoration: underline; }
        .back-link { display: block; text-align: center; margin-top: 3rem; font-family: var(--font-display); }
    </style>
</head>
<body>

    <div class="legal-container">
        <h1>Textos Legales</h1>
        <!-- PENDIENTE: Reemplazar placeholders por datos reales del cliente -->
        <p>Última actualización: {{FECHA_ACTUALIZACION}}</p>

        <!-- AVISO LEGAL -->
        <section id="aviso-legal">
            <h2>Aviso Legal</h2>
            <ul>
                <li><strong>Titular:</strong> {{RAZON_SOCIAL}}</li>
                <li><strong>CIF:</strong> {{CIF}}</li>
                <li><strong>Domicilio Social:</strong> {{DOMICILIO_SOCIAL}}</li>
                <li><strong>Email de Contacto:</strong> {{EMAIL_ATENCION}}</li>
                <li><strong>Teléfono de Contacto:</strong> {{TELEFONO_ATENCION}}</li>
                <li><strong>Datos Registrales:</strong> {{DATOS_REGISTRO}}</li>
            </ul>

            <h3>Objeto</h3>
            <p>El presente sitio web tiene por objeto la venta de entradas para eventos musicales organizados o promocionados por la Empresa, así como la difusión de información relacionada con dichos eventos.</p>
            
            <h3>Condiciones de uso</h3>
            <p>El acceso y utilización de esta página atribuye la condición de usuario e implica la aceptación de las presentes condiciones. El usuario se compromete a hacer un uso adecuado de los contenidos y servicios, absteniéndose de realizar actividades ilícitas, ilegales o contrarias a la buena fe y al orden público.</p>

            <h3>Propiedad intelectual e industrial</h3>
            <p>Todos los contenidos del sitio web (textos, imágenes, logotipos, vídeos, diseño gráfico, código fuente, etc.) son titularidad de la Empresa o de terceros que han autorizado su uso y están protegidos por los derechos de propiedad intelectual e industrial. Queda prohibida su reproducción, distribución o transformación sin la autorización expresa de sus titulares.</p>

            <h3>Responsabilidad</h3>
            <p>La Empresa no se hace responsable de los daños o perjuicios que pudieran derivarse del uso de la información, contenidos y servicios incluidos en este sitio web, ni del acceso a enlaces externos que se publiquen. La Empresa procurará mantener actualizada y exacta la información, pero no garantiza la ausencia de errores.</p>

            <h3>Protección de datos</h3>
            <p>La Empresa tratará los datos personales conforme a lo establecido en la normativa vigente y de acuerdo con lo descrito en la Política de Privacidad.</p>

            <h3>Legislación aplicable y jurisdicción</h3>
            <p>La relación entre la Empresa y el usuario se regirá por la legislación española. Para cualquier controversia que se derive del acceso o uso del sitio web, las partes se someterán a los juzgados y tribunales del domicilio del consumidor cuando así lo disponga la normativa de protección de consumidores, o a los de {{LOCALIDAD_EMPRESA}} en los demás casos.</p>
        </section>

        <!-- POLÍTICA DE DEVOLUCIONES -->
        <section id="politica-devoluciones">
            <h2>Política de Devoluciones</h2>

            <h3>Derecho de desistimiento</h3>
            <p>De conformidad con el artículo 103 l) del Real Decreto Legislativo 1/2007, el derecho de desistimiento no será aplicable al suministro de servicios relacionados con actividades de esparcimiento cuando los contratos prevean una fecha o un periodo de ejecución específicos. Por tanto, la compra de entradas para eventos musicales está exenta de desistimiento y no admite reembolso por voluntad unilateral del comprador.</p>

            <h3>Cancelación o cambio de fecha del evento</h3>
            <ul>
                <li>Si el evento se cancela de forma definitiva, el comprador tendrá derecho al reembolso del importe de la entrada, excluyendo en su caso los gastos de gestión asumidos por el intermediario de pago.</li>
                <li>Si el evento se pospone o cambia de fecha, la entrada será válida para la nueva fecha. Si el comprador no puede asistir, podrá solicitar la devolución dentro del plazo de {{PLAZO_SOLICITUD}} días desde el anuncio del cambio.</li>
            </ul>

            <h3>Modificación sustancial del cartel o programa</h3>
            <p>Cuando la variación afecte a más del 50 % de los artistas principales anunciados, el comprador podrá solicitar la devolución en un plazo de {{PLAZO_MODIFICACION}} días. La Empresa informará de las variaciones a través de los canales oficiales.</p>

            <h3>Procedimiento de devolución</h3>
            <ol>
                <li>Enviar un correo electrónico a {{EMAIL_ATENCION}} indicando número de pedido y motivo.</li>
                <li>La Empresa confirmará la recepción y, si procede el reembolso, ordenará la devolución a través del mismo método de pago utilizado.</li>
                <li>El plazo para ver reflejado el abono puede oscilar entre 5 y 10 días hábiles, en función de la entidad emisora de la tarjeta.</li>
            </ol>

            <h3>Entradas extraviadas o robadas</h3>
            <p>La Empresa no asume responsabilidad por entradas perdidas, robadas o dañadas. No se emitirán duplicados salvo disposición expresa del promotor y siempre que se pueda verificar la titularidad de la compra.</p>

            <h3>Resolución alternativa de litigios</h3>
            <p>Conforme al artículo 40 de la Ley 7/2017, los consumidores pueden acudir a la plataforma de resolución de litigios en línea de la Comisión Europea (<a href="https://ec.europa.eu/consumers/odr" target="_blank" rel="noopener noreferrer">https://ec.europa.eu/consumers/odr</a>) para resolver reclamaciones relativas a compras hechas en este sitio web.</p>
        </section>
        
        <!-- Enlace de vuelta corregido para apuntar a index.html -->
        <a href="index.html" class="back-link">Volver a la página principal</a>
    </div>

</body>
</html>