
@font-face {
    font-family: 'Futura';
    src: url('../fonts/futura.woff2') format('woff2'),
         url('../fonts/futura.woff')  format('woff');
    font-weight: normal;
    font-style:  normal;
    font-display: swap;
}

*, *::before, *::after {
    font-family: 'Futura', Arial, Helvetica, sans-serif !important;
}



:root {

    --munet-yellow: #FED800;
    --munet-gray: #929497;
    --munet-green: #51D335;

    --munet-black: #111111;
    --munet-dark: #171717;

    --white: #ffffff;

}


* {
    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
}

body {

    margin: 0;

    font-family:
        'Futura',
        Arial,
        Helvetica,
        sans-serif;

    background: var(--munet-dark);

    color: var(--white);

    overflow-x: hidden;

}


/* =========================================================
   ANIMACIONES / REVEAL AL HACER SCROLL
========================================================== */

@keyframes fadeInUp {

    from {
        opacity: 0;
        transform: translateY(28px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


@keyframes fadeIn {

    from { opacity: 0; }

    to { opacity: 1; }

}


.reveal {

    opacity: 0;

    transform: translateY(28px);

    transition:
        opacity .7s ease,
        transform .7s ease;

}


.reveal.is-visible {

    opacity: 1;

    transform: translateY(0);

}


.hero-content {

    animation: fadeInUp .9s ease both;

}


@media (prefers-reduced-motion: reduce) {

    .reveal,
    .hero-content,
    .schedule-card,
    .social-link,
    .carousel-card,
    .site-footer::before,
    .footer-logo-img,
    .footer-social .social-link {

        animation: none !important;
        transition: none !important;

    }

    .reveal {
        opacity: 1;
        transform: none;
    }

}


/* =========================================================
   NAVBAR
========================================================== */

.munet-navbar {

    position: fixed;

    top: 0;
    left: 0;

    width: 100%;

    z-index: 1000;

    background:
        rgba(15, 15, 15, 0.94);

    backdrop-filter:
        blur(12px);

    border-bottom:
        1px solid
        rgba(254, 216, 0, 0.25);

}


/* Logo + nombre del museo, sin afectar el resto del navbar */
.navbar-brand.navbar-brand-group {

    display: flex;

    align-items: center;

    gap: 12px;

}


.navbar-brand img {

    height: 52px;

    width: auto;

    object-fit: contain;

    flex-shrink: 0;

}


.navbar-brand-text {

    color: #ffffff;

    font-size: .72rem;

    font-weight: 700;

    line-height: 1.2;

    text-transform: uppercase;

    letter-spacing: .3px;

    max-width: 140px;

    white-space: normal;


}


.navbar-nav {

    align-items: center;

}


.nav-link {

    color:
        #ffffff !important;

    font-size:
        0.82rem;

    font-weight:
        600;

    padding:
        8px 9px !important;

    transition:
        color .2s ease;

    white-space:
        nowrap;

}


.nav-link:hover {

    color:
        var(--munet-yellow)
        !important;

}


/* =========================================================
   REDES SOCIALES (NAVBAR)
========================================================== */

.social-links {

    display:
        flex;

    align-items:
        center;

    gap:
        5px;

    margin-left:
        10px;

    padding-left:
        10px;

    border-left:
        1px solid
        rgba(255,255,255,.2);

}


.social-link {

    width:
        30px;

    height:
        30px;

    display:
        flex;

    align-items:
        center;

    justify-content:
        center;

    border-radius:
        50%;

    color:
        #ffffff;

    text-decoration:
        none;

    transition:
        all .2s ease;

}


.social-link:hover {

    color:
        var(--munet-yellow);

    background:
        rgba(254,216,0,.12);

    transform:
        translateY(-2px);

}


/* =========================================================
   SWITCH DE IDIOMA (NAVBAR)
========================================================== */

.lang-switch {

    display: flex;

    align-items: center;

    gap: 4px;

    background: rgba(255,255,255,.06);

    border: 1px solid rgba(255,255,255,.18);

    border-radius: 20px;

    padding: 3px;

    margin-left: 6px;

}


.lang-switch-option {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 30px;

    height: 24px;

    border-radius: 16px;

    overflow: hidden;

    opacity: .5;

    transition:
        opacity .2s ease,
        background .2s ease,
        transform .2s ease,
        box-shadow .2s ease;

}


.lang-switch-option img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    display: block;

}


.lang-switch-option:hover {

    opacity: .85;

}


.lang-switch-option.active {

    opacity: 1;

    background: rgba(254,216,0,.2);

    box-shadow: 0 0 0 1px rgba(254,216,0,.7) inset;

    transform: scale(1.06);

}


/* =========================================================
   BOTÓN BOLETOS
========================================================== */

.ticket-button {

    background:
        var(--munet-yellow);

    color:
        #111 !important;

    border-radius:
        20px;

    padding:
        8px 14px !important;

    font-weight:
        800 !important;

    margin-left:
        7px;

    transition:
        all .2s ease;

}


.ticket-button:hover {

    background:
        #ffffff;

    color:
        #111 !important;

    transform:
        translateY(-2px);

}


/* =========================================================
   HERO
========================================================== */

.game-hero {

    position:
        relative;

    min-height:
        90vh;

    display:
        flex;

    align-items:
        center;

    overflow:
        hidden;


    background-image: none;

    background-size:
        cover;


    background-position:
        center;

}

/* =========================================================
   VIDEO DE FONDO DEL HERO
========================================================== */

.game-hero-video {
    position:   absolute;
    top:        0;
    left:       0;
    width:      100%;
    height:     100%;
    object-fit: cover;
    z-index:    0;
    pointer-events: none;
}

.game-hero-overlay {
    position:   absolute;
    inset:      0;
    z-index:    1;
    background: linear-gradient(
        90deg,
        rgba(0,0,0,.70) 0%,
        rgba(0,0,0,.38) 45%,
        rgba(0,0,0,.18) 100%
    );
}


/* =========================================================
   PARTICULAS
========================================================== */

#particles-js {

    position:
        absolute;

    inset:
        0;

    z-index:
        2;

    cursor:
        pointer;

}


/* =========================================================
   CONTENIDO HERO
========================================================== */

.hero-content {

    position:
        relative;

    z-index:
        5;


    padding:
        110px 5% 60px;

}


/* =========================================================
   PANEL DE CLICS
========================================================== */

.energy-panel {

    width:
        245px;

    max-width:
        90vw;

    padding:
        18px;

    background:
        rgba(10,10,10,.78);

    border:
        1px solid
        rgba(254,216,0,.45);

    border-radius:
        14px;

    backdrop-filter:
        blur(8px);

    box-shadow:
        0 12px 40px
        rgba(0,0,0,.45);

}


.energy-panel-title {

    display:
        flex;

    align-items:
        center;

    gap:
        8px;

    margin-bottom:
        14px;

    color:
        #ffffff;

    font-size:
        .76rem;

    font-weight:
        800;

    letter-spacing:
        1px;

    text-transform:
        uppercase;

}


.energy-icon {

    color:
        var(--munet-yellow);

    font-size:
        1.1rem;

}


.energy-number {

    font-size:
        2.8rem;

    line-height:
        1;

    font-weight:
        900;

    color:
        var(--munet-yellow);

    margin-bottom:
        4px;

}


.energy-unit {

    color:
        var(--munet-gray);

    font-size:
        .7rem;

    text-transform:
        uppercase;

    letter-spacing:
        1px;

    margin-bottom:
        15px;

}


/* =========================================================
   BARRA
========================================================== */

.energy-bar {

    width:
        100%;

    height:
        7px;

    background:
        rgba(255,255,255,.12);

    border-radius:
        10px;

    overflow:
        hidden;

}


.energy-progress {

    width:
        0%;

    height:
        100%;

    background:
        var(--munet-yellow);

    box-shadow:
        0 0 12px
        rgba(254,216,0,.8);

    transition:
        width .2s ease;

}


.energy-info {

    display:
        flex;

    justify-content:
        space-between;

    margin-top:
        8px;

    font-size:
        .68rem;

    color:
        var(--munet-gray);

}


.energy-info strong {

    color:
        #ffffff;

}


.energy-instruction {

    margin:
        15px 0 0;

    font-size:
        .68rem;

    line-height:
        1.5;

    color:
        #d4d4d4;

}


.energy-instruction span {

    color:
        var(--munet-yellow);

    font-weight:
        700;

}


.energy-divider {

    border: none;

    border-top: 1px solid rgba(255,255,255,.15);

    margin: 12px 0;

}


.ticket-instruction {

    margin:
        15px 0 0;

    font-size:
        .68rem;

    text-align:
        center;

    line-height:
        1.5;

    color:
        #FED800;

}


/* =========================================================
   INDICADOR DE CLIC
========================================================== */

.energy-click {

    position:
        fixed;

    z-index:
        9999;

    pointer-events:
        none;

    color:
        var(--munet-yellow);

    font-weight:
        900;

    font-size:
        15px;

    text-shadow:
        0 0 8px
        rgba(254,216,0,.9);

    animation:
        energyFloat .8s ease-out forwards;

}


@keyframes energyFloat {

    0% {

        opacity:
            1;

        transform:
            translateY(0)
            scale(1);

    }

    100% {

        opacity:
            0;

        transform:
            translateY(-45px)
            scale(1.15);

    }

}


/* =========================================================
   Info
========================================================== */

.information-section {

    background:
        #ffffff;

    color:
        #222;

    padding:
        65px 5%;

}


.information-container {

    max-width:
        1100px;

    margin:
        auto;

}


.section-title {

    color:
        #222;

    font-size:
        clamp(1.6rem, 3vw, 2.3rem);

    font-weight:
        800;

    margin-bottom:
        10px;

}


.section-title::after {

    content:
        "";

    display:
        block;

    width:
        55px;

    height:
        4px;

    margin-top:
        10px;

    background:
        var(--munet-yellow);

}


.section-intro {

    color:
        var(--munet-gray);

    margin-bottom:
        35px;

}


.schedule-card {

    height:
        100%;

    padding:
        25px;

    background:
        #f5f5f5;

    border:
        1px solid
        #e2e2e2;

    border-radius:
        12px;

    transition:
        transform .25s ease,
        box-shadow .25s ease;

}


.schedule-card:hover {

    transform:
        translateY(-6px);

    box-shadow:
        0 14px 30px
        rgba(0,0,0,.12);

}


.schedule-card h3 {

    font-size:
        1.05rem;

    font-weight:
        800;

    color:
        #222;

    margin-bottom:
        18px;

}


.schedule-card h3 i {

    color:
        #111;

    margin-right:
        7px;

}


.schedule-list {

    list-style:
        none;

    padding:
        0;

    margin:
        0;

}


.schedule-list li {

    position:
        relative;

    padding-left:
        17px;

    margin-bottom:
        10px;

    color:
        #555;

    font-size:
        .88rem;

    line-height:
        1.5;

}


.schedule-list li::before {

    content:
        "";

    position:
        absolute;

    left:
        0;

    top:
        8px;

    width:
        6px;

    height:
        6px;

    border-radius:
        50%;

    background:
        var(--munet-yellow);

}


.highlight {

    font-weight:
        700;

    color:
        #222;

}


/* =========================================================
Creditos
========================================================== */
.credits-section {
    width: 100%;
    padding: 40px 20px;
    display: flex;
    justify-content: center;
    background-color: #111111; 
}

.credits-container {
    max-width: 1000px; 
    width: 100%;
    border-radius: 12px;
    overflow: hidden; 
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); 
}

.credits-container img {
    width: 100%;
    height: auto;
    display: block; 
    object-fit: cover;
}

/* =========================================================
   CARRUSEL INFINITO
========================================================== */

.carousel-section {

    background: #111111;

    padding: 65px 5%;

}


.carousel-section .section-title,
.carousel-section .section-intro {

    color: #ffffff;

}


.carousel-section .section-intro {

    color: var(--munet-gray);

}


/* Wrapper exterior: contiene el carrusel + las flechas afuera */
.carousel-wrapper {

    position: relative;

    /* espacio lateral para que las flechas no solapen el contenido */
    padding: 0 52px;

}


#munetCarousel .carousel-inner {

    border-radius: 14px;

    overflow: hidden;

}


/* Tarjeta: layout horizontal texto-izq / imagen-der, altura fija */
.carousel-card {

    height: 400px;

    display: flex;

    flex-direction: row;

    align-items: stretch;

    padding: 0;

    background: #1c1c1c;

    border: 1px solid rgba(254,216,0,.2);

    overflow: hidden;

}


/* Columna izquierda — texto */
.carousel-card-body {

    flex: 0 0 52%;

    max-width: 52%;

    display: flex;

    flex-direction: column;

    justify-content: center;

    padding: 48px 40px 48px 44px;

    background:
        linear-gradient(
            135deg,
            rgba(254,216,0,.06),
            rgba(81,211,53,.03)
        );

    z-index: 1;

}


.carousel-card-body h3 {

    font-weight: 800;

    font-size: clamp(1.25rem, 2vw, 1.65rem);

    color: #ffffff;

    margin-bottom: 6px;

    line-height: 1.15;

}


.carousel-card-body p {

    color: #cfcfcf;

    font-size: .92rem;

    line-height: 1.65;

    text-align: justify;

    margin-bottom: 0;

}


/* Columna derecha — imagen con marco difuminado */
.carousel-card-img {

    flex: 0 0 48%;

    max-width: 48%;

    position: relative;

    padding: 28px 28px 28px 0;

    overflow: visible;

}


.carousel-card-img-inner {

    position: relative;

    width: 100%;

    height: 100%;

    border-radius: 12px;

    overflow: hidden;

}


.carousel-card-img-inner img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    object-position: center;

    display: block;

    filter: brightness(.85) saturate(1.1);

    transition: transform .6s ease, filter .6s ease;

}


.carousel-item.active .carousel-card-img-inner img,
.carousel-item:hover .carousel-card-img-inner img {

    transform: scale(1.04);

    filter: brightness(.92) saturate(1.2);

}


/* Marco difuminado en los 4 bordes para fusión orgánica */
.carousel-card-img-inner::after {

    content: "";

    position: absolute;

    inset: 0;

    border-radius: 12px;

    box-shadow:
        inset 28px  0   32px  0  #1c1c1c,
        inset -20px 0   28px  0  #1c1c1c,
        inset 0  28px  32px  0  #1c1c1c,
        inset 0  -20px 28px  0  #1c1c1c;

    pointer-events: none;

    z-index: 1;

}


/* Botón "Saber más" — estilo MUNET */
.btn-munet {

    display: inline-flex;

    align-items: center;

    gap: 7px;

    margin-top: 28px;

    padding: 10px 24px;

    background: var(--munet-yellow);

    color: #111 !important;

    font-weight: 800;

    font-size: .85rem;

    letter-spacing: .5px;

    border: 2px solid var(--munet-yellow);

    border-radius: 22px;

    text-decoration: none;

    transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;

    width: fit-content;

}


.btn-munet:hover {

    background: transparent;

    color: var(--munet-yellow) !important;

    transform: translateY(-3px);

    box-shadow: 0 8px 24px rgba(254,216,0,.25);

}



.carousel-btn {

    position: absolute;

    top: 50%;

    transform: translateY(-50%);

    width: 40px;

    height: 40px;

    display: flex;

    align-items: center;

    justify-content: center;

    background: rgba(254,216,0,.85);

    border: none;

    border-radius: 50%;

    cursor: pointer;

    z-index: 20;

    transition: background .2s ease, transform .25s ease;

}


.carousel-btn:hover {

    background: var(--munet-yellow);

    transform: translateY(-50%) scale(1.1);

}


.carousel-btn-prev {
    left: 0;
}


.carousel-btn-next {
    right: 0;
}


.carousel-btn .carousel-control-prev-icon,
.carousel-btn .carousel-control-next-icon {

    filter: invert(1);

    width: 18px;

    height: 18px;

}


#munetCarousel .carousel-indicators [data-bs-target] {

    background-color: var(--munet-yellow);

    width: 10px;

    height: 10px;

    border-radius: 50%;

    margin: 0 5px;

}


/* Responsive: en móvil la imagen queda debajo */
@media (max-width: 767px) {

    .carousel-wrapper {

        padding: 0 44px;

    }

    .carousel-card {

        flex-direction: column;

        height: auto;

    }

    .carousel-card-body {

        flex: none;

        max-width: 100%;

        padding: 32px 24px 20px;

    }

    .carousel-card-img {

        flex: none;

        max-width: 100%;

        height: 220px;

        padding: 0 20px 20px;

    }

    .carousel-card-img-inner {

        height: 100%;

    }

    .carousel-card-img-inner::after {

        box-shadow:
            inset 0   20px 24px 0 #1c1c1c,
            inset 0  -20px 24px 0 #1c1c1c,
            inset 20px  0  24px 0 #1c1c1c,
            inset -20px 0  24px 0 #1c1c1c;

    }

}


/* =========================================================
   FOOTER — 3 columnas
========================================================== */

.site-footer {

    position: relative;

    background: #0d0d0d;

    color: var(--munet-gray);

    padding-top: 6px;

    overflow: hidden;

}


/* línea superior con degradado en movimiento */
.site-footer::before {

    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 3px;

    background: linear-gradient(
        90deg,
        var(--munet-yellow),
        var(--munet-green),
        var(--munet-yellow)
    );

    background-size: 200% 100%;

    animation: footerGradientMove 6s linear infinite;

}


@keyframes footerGradientMove {

    0% { background-position: 0% 0; }

    100% { background-position: -200% 0; }

}


.footer-inner {

    max-width: 1100px;

    margin: 0 auto;

    padding: 46px 5% 34px;

    display: grid;

    grid-template-columns: 1fr 1.3fr 1fr;

    gap: 40px;

    text-align: left;

}


.footer-col.footer-brand {

    display: flex;

    flex-direction: column;

    align-items: flex-start;

}


.footer-logo-img {

    width: 190px;

    max-width: 100%;

    margin-bottom: 12px;

    transition:
        transform .4s ease,
        filter .4s ease;

}


.footer-logo-img:hover {

    transform: scale(1.05) rotate(-2deg);

    filter: drop-shadow(0 0 12px rgba(254,216,0,.5));

}


.footer-tagline {

    color: var(--munet-gray);

    font-size: .78rem;

    line-height: 1.5;

    letter-spacing: .3px;

    margin: 0;

}


.footer-heading {

    display: flex;

    align-items: center;

    gap: 8px;

    color: var(--munet-yellow);

    font-size: .82rem;

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: .8px;

    margin-bottom: 14px;

}


.footer-contact p {

    color: #cfcfcf;

    font-size: .85rem;

    line-height: 1.7;

    margin: 0;

}


.footer-social {

    display: flex;

    justify-content: flex-start;

    gap: 12px;

    margin: 0;

}


.footer-social .social-link {

    width: 36px;

    height: 36px;

    font-size: 1.1rem;

    background: rgba(255,255,255,.06);

    border: 1px solid rgba(254,216,0,.25);

    animation: footerIconFloat 3s ease-in-out infinite;

}


.footer-social .social-link:nth-child(1) { animation-delay: 0s;   }
.footer-social .social-link:nth-child(2) { animation-delay: .2s;  }
.footer-social .social-link:nth-child(3) { animation-delay: .4s;  }
.footer-social .social-link:nth-child(4) { animation-delay: .6s;  }


@keyframes footerIconFloat {

    0%, 100% { transform: translateY(0); }

    50% { transform: translateY(-5px); }

}


.footer-social .social-link:hover {

    background: var(--munet-yellow);

    color: #111 !important;

    border-color: var(--munet-yellow);

    animation-play-state: paused;

}


.footer-bottom {

    border-top: 1px solid rgba(255,255,255,.08);

    padding: 16px 5% 22px;

    text-align: center;

    color: var(--munet-gray);

    font-size: .72rem;

}


@media (max-width: 767px) {

    .footer-inner {

        grid-template-columns: 1fr;

        text-align: center;

        gap: 34px;

    }


    .footer-col.footer-brand {

        align-items: center;

    }


    .footer-heading,
    .footer-social {

        justify-content: center;

    }

}


/* =========================================================
   RESPONSIVE
========================================================== */

@media (max-width: 1399px) {

    .nav-link {

        font-size:
            .75rem;

        padding:
            7px 6px !important;

    }

}


@media (max-width: 1199px) {

    .navbar-nav {

        align-items:
            flex-start;

        padding:
            15px 0;

    }


    .social-links {

        border-left:
            none;

        border-top:
            1px solid
            rgba(255,255,255,.15);

        margin:
            10px 0 0;

        padding:
            12px 0 0;

    }


    .lang-switch {

        margin: 10px 0 0;

    }


    .ticket-button {

        display:
            inline-block;

        margin:
            10px 0 0;

    }

}


@media (max-width: 575px) {

    .navbar-brand-text {

        display: none;

    }

}


@media (max-width: 576px) {

    .navbar-brand img {

        height:
            43px;

    }


    .hero-content {

        padding:
            110px 20px 45px;

    }


    .energy-panel {

        width:
            180px;

        padding:
            15px;

    }


    .energy-number {

        font-size:
            2.4rem;

    }


    .information-section,
    .carousel-section {

        padding:
            45px 20px;

    }


    .carousel-card {

        min-height: 260px;

    }

    

}
