/****** CSS Reset ******/
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    border: 0;
    font-size: 100%;
}
/****** Final CSS Reset ******/

/****** Fuente de la web ******/
@font-face {
    font-family: "Roboto", sans-serif;
    font-optical-sizing: auto;
    font-weight: 100;
    font-style: normal;
    font-variation-settings: "wdth" 100;
}
/****** Final fuente de la web ******/

/****** Estilos a elementos generales ******/
html,
body {
    height: auto;
    min-height: 100vh;
    width: auto;
    min-width: 100vw;

    font-family: "Roboto", sans-serif;
}

section {
    width: 100%;
    min-height: 100vh;

    color: #1a1a1a;
}

.contenido {
    min-height: 100vh;
    width: 100%;

    padding: 64px 32px;
}

@media (max-width: 800px) {
    #bienvenida .contenido {
        padding: 32px 16px;
    }
}
/****** Final estilos a elementos generales ******/

/****** Estilos para sección de bienvenida ******/
#bienvenida {
    background-image: url("/img/pedida.jpg"); /* puede ser relativa o absoluta */
    background-size: cover; /* ajusta la imagen para cubrir toda la sección */
    background-position: center; /* centra la imagen */
    background-repeat: no-repeat; /* evita que se repita */
}

#bienvenida .contenido {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;

    text-align: center;
}

#bienvenida .contenido .encabezado h1 {
    font-size: 32px;
    font-weight: 400;
    margin-bottom: 8px;
}

@media (max-width: 800px) {
    #bienvenida .contenido .encabezado h1 {
        font-size: 16px;
    }
}

#bienvenida .contenido .encabezado h2 {
    font-size: 64px;
    font-weight: 300;
    margin-bottom: 8px;
}

@media (max-width: 800px) {
    #bienvenida .contenido .encabezado h2 {
        font-size: 32px;
    }
}

#bienvenida .contenido .encabezado p {
    font-size: 32px;
    font-weight: 300;
}

@media (max-width: 800px) {
    #bienvenida .contenido .encabezado p {
        font-size: 16px;
    }
}

#bienvenida .faltan p {
    font-size: 32px;
    color: #f7f5f2;
}

@media (max-width: 800px) {
    #bienvenida .faltan p {
        font-size: 16px;
    }
}

#bienvenida .faltan .contador {
    display: flex;
    justify-content: center;
    gap: 32px;
    margin-top: 16px;
}

#bienvenida .faltan .contador .contador-caja {
    height: 128px;
    width: 128px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    background-color: #e6ddce;
    color: #1a1a1a;

    border-radius: 12px;

    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

@media (max-width: 800px) {
    #bienvenida .faltan .contador .contador-caja {
        height: 96px;
        width: 96px;
    }
}

#bienvenida .faltan .contador .contador-caja span:first-child {
    font-size: 48px;
    font-weight: bold;
}

@media (max-width: 800px) {
    #bienvenida .faltan .contador .contador-caja span:first-child {
        font-size: 32px;
    }
}

#bienvenida .faltan .contador .contador-caja .etiqueta {
    font-size: 16px;
    margin-top: 8px;
    color: #6b4e2e;
}
/****** Final estilos para sección de bienvenida ******/

/****** Estilos para sección de itinerario ******/
#itinerario {
    background-image: url("/img/itinerario.jpg"); /* puede ser relativa o absoluta */
    background-size: cover; /* ajusta la imagen para cubrir toda la sección */
    background-position: bottom; /* centra la imagen */
    background-repeat: no-repeat; /* evita que se repita */
}

#itinerario .contenido {
    display: flex;
    flex-direction: column;
    justify-content: center;

    gap: 128px;

    text-align: center;
}

@media (max-width: 800px) {
    #itinerario .contenido {
        gap: 64px;
    }
}

#itinerario .contenido h2 {
    font-size: 32px;
    font-weight: bold;
    margin: 0;
    color: #f7f5f2;
}

@media (max-width: 800px) {
    #itinerario .contenido h2 {
        font-size: 24px;
    }
}

#itinerario .contenido .bloques {
    display: flex;
    flex-wrap: wrap;

    gap: 32px;

    justify-content: center;
}

@media (max-width: 800px) {
    #itinerario .contenido .bloques {
        gap: 16px;
    }
}

#itinerario .contenido .bloques .bloque {
    flex: 1 1 350px;
    background-color: white;
    border-radius: 16px;
    padding: 32px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    text-align: center;
}

@media (max-width: 800px) {
    #itinerario .contenido .bloques .bloque {
        padding: 16px;
    }
}

#itinerario .contenido .bloques .bloque h3 {
    font-size: 32px;
    margin-bottom: 8px;
    color: #c2a46f;
}

@media (max-width: 800px) {
    #itinerario .contenido .bloques .bloque h3 {
        font-size: 16px;
    }
}

#itinerario .contenido .bloques .bloque h4 {
    font-size: 16px;
    margin-bottom: 8px;
}

#itinerario .contenido .bloques .bloque p {
    margin: 8px 0;
    font-size: 16px;
    white-space: nowrap;
}

#itinerario .contenido .bloques .bloque p.gold {
    color: #c2a46f;
    font-weight: 900;
}

#itinerario .contenido .bloques .bloque iframe {
    margin-top: 1rem;
    width: 100%;
    max-width: 100%;
    height: 200px;
    border: none;
    border-radius: 0.5rem;
}
/****** Final estilos para sección de itinerario ******/

/****** Estilos para sección de lista ******/
#lista {
    background-image: url("/img/thor2.jpg"); /* puede ser relativa o absoluta */
    background-size: cover; /* ajusta la imagen para cubrir toda la sección */
    background-position: top; /* centra la imagen */
    background-repeat: repeat; /* evita que se repita */
}

#lista .contenido {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: end;
    text-align: center;
}

#lista .contenido .bloque {
    background-color: rgba(
        255,
        255,
        255,
        0.75
    ); /* Blanco con 75% de opacidad */
    backdrop-filter: blur(8px); /* Difumina la imagen de fondo */
    -webkit-backdrop-filter: blur(8px); /* Soporte para Safari */
    border-radius: 16px;
    padding: 32px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); /* Un poco más de sombra para mejor contraste */
    text-align: center;
}

#lista .contenido .bloque h2 {
    font-size: 48px;
    font-weight: 700;
    margin-bottom: 48px;
    color: #1a1a1a;
}

@media (max-width: 800px) {
    #lista .contenido .bloque h2 {
        font-size: 32px;
        margin-bottom: 32px;
    }
}

#lista .contenido .bloque p {
    font-size: 24px;
    margin-bottom: 16px;
    font-weight: 200;
    color: #1a1a1a;
}

@media (max-width: 800px) {
    #lista .contenido .bloque p {
        font-size: 16px;
        margin-bottom: 16px;
    }
}

#lista .contenido .bloque p.cuenta {
    font-size: 32px;
    font-weight: 700;
    margin-top: 48px;
}

@media (max-width: 800px) {
    #lista .contenido .bloque p.cuenta {
        margin-top: 32px;
        font-size: 24px;
    }
}
/****** Final estilos para sección de lista ******/

/****** Estilos para sección de codigo ******/
#codigo {
    background-color: #f5e5d0;
}

#codigo .contenido {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

#codigo .contenido .bloque {
    padding: 32px;
    text-align: center;
}

#codigo .contenido .bloque h2 {
    font-size: 48px;
    font-weight: 700;
    margin-bottom: 48px;
    color: #1a1a1a;
}

@media (max-width: 800px) {
    #codigo .contenido .bloque h2 {
        font-size: 32px;
        margin-bottom: 32px;
    }
}

#codigo .contenido .bloque p {
    font-size: 24px;
    margin-bottom: 24px;
    font-weight: 200;
    color: #1a1a1a;
}

@media (max-width: 800px) {
    #codigo .contenido .bloque p {
        font-size: 16px;
        margin-bottom: 16px;
    }
}
/****** Final estilos para sección de codigo ******/

/****** Estilos para sección de autobus ******/
#autobus {
    background-color: #6c957e;
}

#autobus .contenido {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

#autobus .contenido .bloque {
    padding: 32px;
    text-align: center;
}

#autobus .contenido .bloque h2 {
    font-size: 48px;
    font-weight: 700;
    margin-bottom: 48px;
    color: #f7f5f2;
}

@media (max-width: 800px) {
    #autobus .contenido .bloque h2 {
        font-size: 32px;
        margin-bottom: 32px;
    }
}

#autobus .contenido .bloque p {
    font-size: 24px;
    margin-bottom: 24px;
    font-weight: 200;
    color: #f7f5f2;
}

@media (max-width: 800px) {
    #autobus .contenido .bloque p {
        font-size: 16px;
        margin-bottom: 16px;
    }
}

/****** Estilos para sección de confirmacion ******/
#confirmacion {
    background-image: url("/img/DSCF6651.jpg"); /* puede ser relativa o absoluta */
    background-size: cover; /* ajusta la imagen para cubrir toda la sección */
    background-position: top; /* centra la imagen */
    background-repeat: repeat; /* evita que se repita */
}

@media (max-width: 800px) {
    #confirmacion {
        background-image: url("/img/IMG_0936.jpg"); /* puede ser relativa o absoluta */
    }
}

#confirmacion .contenido {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: end;
    text-align: center;
}

#confirmacion .contenido .bloque {
    background-color: rgba(
        255,
        255,
        255,
        0.75
    ); /* Blanco con 75% de opacidad */
    backdrop-filter: blur(8px); /* Difumina la imagen de fondo */
    -webkit-backdrop-filter: blur(8px); /* Soporte para Safari */
    border-radius: 16px;
    padding: 32px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); /* Un poco más de sombra para mejor contraste */
    text-align: center;
}

#confirmacion .contenido .bloque h2 {
    font-size: 48px;
    font-weight: 700;
    margin-bottom: 48px;
    color: #1a1a1a;
}

@media (max-width: 800px) {
    #confirmacion .contenido .bloque h2 {
        font-size: 32px;
        margin-bottom: 32px;
    }
}

#confirmacion .contenido .bloque p {
    font-size: 24px;
    margin-bottom: 16px;
    font-weight: 200;
    color: #1a1a1a;
}

@media (max-width: 800px) {
    #confirmacion .contenido .bloque p {
        font-size: 16px;
        margin-bottom: 16px;
    }
}

#confirmacion .contenido .bloque p.cuenta {
    font-size: 32px;
    font-weight: 700;
    margin-top: 48px;
}

@media (max-width: 800px) {
    #confirmacion .contenido .bloque p.cuenta {
        margin-top: 32px;
        font-size: 24px;
    }
}
/****** Final estilos para sección de confirmacion ******/

.boton-confirmar {
    margin-top: 32px;
    display: inline-block;
    background-color: #d4af37; /* dorado elegante */
    color: #fff;
    font-family: "Segoe UI", sans-serif;
    font-size: 18px;
    font-weight: 600;
    padding: 14px 28px;
    border: none;
    border-radius: 40px;
    text-decoration: none;
    transition:
        background-color 0.3s ease,
        transform 0.2s ease;
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
}

.boton-confirmar:hover {
    background-color: #c2a46f;
    transform: translateY(-2px);
}
