/* Reset basico */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* Estilos base para el HTML y el Body */
html, body {
    height: 100%;
    font-family: 'Manrope', sans-serif;
    color: #FFFFFF;
    overflow-x: hidden;
}

/* ---------------------------------------------------------------------- */
/* ESTILOS PARA DESKTOP (1024px y mas) */
/* ---------------------------------------------------------------------- */
.hero-container {
    display: flex;
    height: 100vh;
    width: 100vw;
    overflow: hidden;
    background-color: #1E1C2C;
}

.hero-left {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding-left: 8vw;
    padding-right: 3vw;
    text-align: left;
}

.hero-logo {
    height: 1.75vw;
    width: auto;
    margin-bottom: 4vw;
}

.hero-title {
    font-family: 'ClashDisplay', sans-serif;
    font-weight: 500;
    font-size: 4.5vw;
    margin-bottom: 2vw;
    color: #FFFFFF;
    line-height: 100%;
}

.hero-description {
    font-size: 1.2vw;
    line-height: 115%;
    margin-bottom: 3vw;
    max-width: 40vw;
}

.hero-qr {
    width: 10vw;
    height: 10vw;
    object-fit: contain;
}

.hero-right {
    flex: 1; /* Ocupa la otra parte del espacio disponible (ej. 50%) */
    display: flex;
    justify-content: flex-end; /* Alinea la imagen al extremo derecho */
    align-items: center; /* Centra la imagen verticalmente */
    overflow: visible;
    position: relative; /* Necesario para z-index y positioning */
    z-index: 1; /* Asegura que la imagen quede por debajo en tablet */
}

/* Estilos especificos para la imagen de desktop */
.hero-image-desktop {
    display: block; /* Muestra la imagen de desktop por defecto */
    height: 100%; /* Ocupa el 100% del alto del contenedor hero-right */
    width: auto; /* Ancho automatico para mantener la proporcion */
    object-fit: contain; /* Asegura que la imagen se vea entera sin cortarse */
    /* Para asegurar que este en el extremo derecho del viewport si es necesario */
    /* Este margen es para "empujar" la imagen hacia la derecha si el flexbox no es suficiente */
    /* margin-left: auto; */
    /* background-color: rgba(255, 0, 0, 0.3); /* Para depuracion */
}

.hero-image-tablet {
    display: none; /* Oculta la imagen de tablet por defecto */
}


/* ---------------------------------------------------------------------- */
/* MEDIA QUERIES */
/* ---------------------------------------------------------------------- */

/* Estilos para TABLET (Maximo 1023px de ancho) */
@media (max-width: 1023px) {
    .hero-container {
        flex-direction: column;
        height: auto;
        min-height: 100vh;
        overflow: auto;
    }

    .hero-left {
        width: 100%;
        padding: 10vw;
        align-items: flex-start;
        text-align: left;
        padding-bottom: 200px; /* Espacio para la superposicion de la imagen */
        background-color: #1E1C2C;
    }

    .hero-logo {
        height: 24px;
        width: auto;
        margin-bottom: 52px;
    }

    .hero-title {
        font-family: 'ClashDisplay', sans-serif;
        font-weight: 500;
        font-size: 64px;
        margin-bottom: 32px;
        line-height: 100%;
    }

    .hero-description {
        font-size: 24px;
        line-height: 115%;
        margin-bottom: 52px;
        max-width: 600px;
    }

    .hero-qr {
        width: 150px;
        height: 150px;
        object-fit: contain;
        margin-bottom: 0;
        position: relative;
        z-index: 2;
    }

    .hero-right {
        width: 100%; /* Ocupa todo el ancho disponible */
        height: auto; /* El alto se ajusta al contenido */
        margin-top: -200px; /* Superpone la imagen 200px sobre el hero-left */
        padding-top: 0;
        position: relative;
        z-index: 1;
        justify-content: center; /* Centra la imagen horizontalmente en tablet */
        align-items: flex-start; /* Alinea la imagen arriba del contenedor hero-right */
    }

    /* Oculta la imagen de desktop y muestra la de tablet */
    .hero-image-desktop {
        display: none;
    }

    .hero-image-tablet {
        display: block; /* Muestra la imagen de tablet */
        width: 100%; /* Ocupa el 100% del ancho del contenedor hero-right */
        height: auto; /* Alto automatico para mantener la proporcion */
        object-fit: contain; /* Asegura que la imagen se vea entera sin cortarse */
    }
}

/* Estilos para MOBILE (Maximo 599px de ancho) */
@media (max-width: 599px) {
    .hero-container {
        display: none;
    }
}