/* =============================================================================
   Santi - landing publica (santi.net.ar)
   -----------------------------------------------------------------------------
   Mobile-first: los estilos base son los del celular y las media queries solo
   agregan hacia arriba. El publico entra casi todo desde el telefono y muchos
   con conexion mala, asi que no hay fuentes remotas ni imagenes pesadas: la
   tipografia es la del sistema y los graficos son SVG inline en el HTML.

   Paleta: unica fuente de verdad en viajessde_core/lib/src/theme/brand_colors.dart
   (bandera de Santiago del Estero). No agregar hex sueltos fuera de :root.
   ============================================================================= */

:root {
    /* --- Marca (valores exactos de BrandColors) --- */
    --celeste: #2E7FD1;
    --celeste-claro: #6FB1E8;
    --celeste-oscuro: #1B5FA6;
    --rojo: #D0263B;
    --blanco: #FFFFFF;
    --gris-frio: #5B6472;

    /* --- Derivados. Son sombras/tintes de los de arriba, no colores nuevos:
           el celeste #2E7FD1 con texto blanco encima da 4.1:1 y no llega a AA
           para texto chico, asi que todo boton solido usa el oscuro y estos
           dos tonos mas profundos para hover y pie. --- */
    --celeste-hover: #164E88;
    --rojo-hover: #B01F31;
    --tinta: #16202B;
    --tinta-suave: #2C3441;
    --celeste-velo: #EAF3FC;
    --borde: #DDE5EE;

    --ancho-maximo: 1120px;
    --radio: 14px;
    --sombra: 0 6px 20px rgba(22, 32, 43, 0.08);
    --sombra-fuerte: 0 14px 34px rgba(22, 32, 43, 0.16);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    /* Los anclajes (#choferes) quedarian tapados por la barra fija sin esto. */
    scroll-padding-top: 74px;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 17px;
    line-height: 1.6;
    color: var(--tinta);
    background: var(--blanco);
}

h1,
h2,
h3 {
    margin: 0;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

p {
    margin: 0;
}

img,
svg {
    max-width: 100%;
}

a {
    color: var(--celeste-oscuro);
}

/* Foco visible propio: el default del navegador se pierde sobre las bandas
   celestes. Se usa el celeste claro justamente por ser el acento suave. */
a:focus-visible,
button:focus-visible {
    outline: 3px solid var(--celeste-claro);
    outline-offset: 3px;
    border-radius: 6px;
}

.contenedor {
    width: 100%;
    max-width: var(--ancho-maximo);
    margin: 0 auto;
    padding: 0 20px;
}

/* Link de salto: invisible hasta que se lo enfoca con el teclado. */
.salto-contenido {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 100;
    background: var(--blanco);
    color: var(--celeste-oscuro);
    padding: 10px 16px;
    font-weight: 700;
}

.salto-contenido:focus {
    left: 8px;
    top: 8px;
}

/* =============================================================================
   Marca
   ============================================================================= */

.marca {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: inherit;
}

.marca__signo {
    width: 34px;
    height: 34px;
    flex: none;
}

/* No hay logo definitivo: la marca se resuelve tipograficamente (la palabra
   bien tratada) mas un signo geometrico propio. Nada de escudos ni simbolos
   oficiales de la provincia o el municipio. */
.marca__texto {
    font-size: 1.4rem;
    font-weight: 800;
    letter-spacing: -0.035em;
    color: var(--celeste-oscuro);
}

.marca__punto {
    color: var(--rojo);
}

/* =============================================================================
   Barra superior
   ============================================================================= */

.barra {
    position: sticky;
    top: 0;
    z-index: 50;
    background: var(--blanco);
    border-bottom: 1px solid var(--borde);
}

/* La sombra aparece recien al scrollear (la agrega landing.js). Sin JS la
   barra sigue funcionando igual, solo que siempre plana. */
.barra--scrolleada {
    box-shadow: var(--sombra);
}

.barra__interior {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 64px;
}

/* =============================================================================
   Botones
   ============================================================================= */

.boton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 14px 22px;
    border-radius: 999px;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    border: 2px solid transparent;
    transition: background-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

.boton:hover {
    transform: translateY(-1px);
}

.boton__icono {
    width: 21px;
    height: 21px;
    flex: none;
}

.boton--chico {
    padding: 10px 16px;
    font-size: 0.94rem;
}

.boton--grande {
    padding: 17px 30px;
    font-size: 1.08rem;
}

/* El rojo es el acento fuerte de la bandera: se usa solo en el CTA de choferes
   de la barra y en detalles, nunca como fondo de seccion. Blanco sobre
   #D0263B da 5.2:1, asi que es legible tambien en texto chico. */
.boton--rojo {
    background: var(--rojo);
    color: var(--blanco);
}

.boton--rojo:hover {
    background: var(--rojo-hover);
}

/* Solido celeste: fondo oscuro (6.5:1 con blanco), no el celeste primario. */
.boton--celeste {
    background: var(--celeste-oscuro);
    color: var(--blanco);
}

.boton--celeste:hover {
    background: var(--celeste-hover);
}

/* Sobre las bandas celestes el CTA va en blanco: es el contraste mas alto
   disponible y ademas separa mejor que un rojo sobre azul. */
.boton--blanco {
    background: var(--blanco);
    color: var(--celeste-oscuro);
    box-shadow: var(--sombra-fuerte);
}

.boton--blanco:hover {
    background: var(--celeste-velo);
}

.boton--fantasma {
    background: transparent;
    color: var(--blanco);
    border-color: rgba(255, 255, 255, 0.65);
}

.boton--fantasma:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: var(--blanco);
}

/* =============================================================================
   Hero
   ============================================================================= */

.hero {
    /* Arranca en celeste primario y baja a los tonos oscuros: el texto queda
       sobre la parte de abajo, que es la que llega a contraste AA. */
    background: linear-gradient(168deg, var(--celeste) 0%, var(--celeste-oscuro) 52%, var(--celeste-hover) 100%);
    color: var(--blanco);
    padding: 44px 0 52px;
}

.hero__interior {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

/* El adorno solo existe de 960px para arriba (ver el bloque de escritorio). */
.hero__adorno {
    display: none;
}

.hero__signo {
    width: 62px;
    height: 62px;
    margin-bottom: 20px;
}

.hero__titulo {
    font-size: 2.15rem;
    font-weight: 800;
    margin-bottom: 16px;
}

.hero__marca {
    /* El nombre de la marca dentro del titulo, subrayado con el rojo de la
       bandera: el unico rojo del hero, a modo de acento. */
    border-bottom: 5px solid var(--rojo);
    padding-bottom: 2px;
}

.hero__bajada {
    font-size: 1.08rem;
    max-width: 34em;
    color: rgba(255, 255, 255, 0.94);
    margin-bottom: 22px;
}

.etiqueta-proximamente {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.42);
    border-radius: 999px;
    padding: 9px 17px;
    font-size: 0.93rem;
    font-weight: 700;
    margin-bottom: 14px;
}

.etiqueta-proximamente__punto {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--celeste-claro);
    flex: none;
}

/* Honestidad: las apps todavia no estan publicadas, asi que no hay botones de
   descarga que no lleven a ningun lado. Se dice tal cual. */
.hero__aclaracion {
    font-size: 0.97rem;
    color: rgba(255, 255, 255, 0.86);
    max-width: 36em;
    margin-bottom: 28px;
}

.hero__acciones {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}

/* =============================================================================
   Secciones genericas
   ============================================================================= */

.seccion {
    padding: 54px 0;
}

.seccion--clara {
    background: var(--celeste-velo);
}

.seccion__titulo {
    font-size: 1.7rem;
    font-weight: 800;
    margin-bottom: 8px;
}

.seccion__bajada {
    color: var(--gris-frio);
    font-size: 1.05rem;
    margin-bottom: 32px;
}

/* =============================================================================
   Pasos (como funciona)
   ============================================================================= */

.pasos {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 18px;
}

.paso {
    position: relative;
    background: var(--blanco);
    border: 1px solid var(--borde);
    border-radius: var(--radio);
    padding: 22px 20px 20px;
    box-shadow: var(--sombra);
}

.paso__numero {
    position: absolute;
    top: 20px;
    right: 20px;
    font-size: 2.4rem;
    font-weight: 800;
    line-height: 1;
    color: var(--celeste-velo);
}

.paso__icono {
    width: 34px;
    height: 34px;
    color: var(--celeste);
    margin-bottom: 12px;
    display: block;
}

.paso__titulo {
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 7px;
}

.paso__texto {
    color: var(--gris-frio);
    font-size: 1rem;
}

/* =============================================================================
   Choferes - la seccion mas importante de la pagina
   ============================================================================= */

.choferes {
    background: linear-gradient(160deg, var(--celeste-oscuro) 0%, var(--celeste-hover) 100%);
    color: var(--blanco);
    padding: 56px 0;
}

.insignia {
    display: inline-block;
    background: var(--rojo);
    color: var(--blanco);
    border-radius: 999px;
    padding: 7px 15px;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 16px;
}

.choferes__titulo {
    font-size: 1.95rem;
    font-weight: 800;
    margin-bottom: 14px;
}

.choferes__bajada {
    font-size: 1.08rem;
    color: rgba(255, 255, 255, 0.94);
    max-width: 40em;
    margin-bottom: 28px;
}

.beneficios {
    list-style: none;
    margin: 0 0 32px;
    padding: 0;
    display: grid;
    gap: 14px;
}

.beneficio {
    background: rgba(255, 255, 255, 0.11);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: var(--radio);
    padding: 16px 18px;
    font-size: 0.99rem;
    color: rgba(255, 255, 255, 0.92);
}

.beneficio strong {
    display: block;
    color: var(--blanco);
    font-size: 1.05rem;
    margin-bottom: 4px;
}

.choferes__cta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 26px;
}

.choferes__cta .boton {
    width: 100%;
}

.choferes__nota {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.86);
}

.choferes__requisitos {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.8);
    border-top: 1px solid rgba(255, 255, 255, 0.22);
    padding-top: 18px;
    max-width: 44em;
}

/* =============================================================================
   Contacto
   ============================================================================= */

.contacto .boton {
    width: 100%;
}

.contacto__horario {
    margin-top: 14px;
    color: var(--gris-frio);
    font-size: 0.95rem;
}

/* =============================================================================
   Pie
   ============================================================================= */

.pie {
    background: var(--tinta);
    color: rgba(255, 255, 255, 0.78);
    padding: 40px 0 34px;
    font-size: 0.95rem;
}

.pie__interior {
    display: grid;
    gap: 26px;
}

.marca__texto--pie {
    color: var(--blanco);
    font-size: 1.3rem;
}

.pie__nota {
    margin-top: 6px;
    color: rgba(255, 255, 255, 0.7);
}

.pie__enlaces {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.pie__enlaces a {
    color: var(--blanco);
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
    align-self: flex-start;
}

.pie__enlaces a:hover {
    border-bottom-color: var(--celeste-claro);
    color: var(--celeste-claro);
}

.pie__empresa {
    border-top: 1px solid var(--tinta-suave);
    padding-top: 20px;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.88rem;
}

/* =============================================================================
   Movimiento
   -----------------------------------------------------------------------------
   No hay animaciones de entrada: ningun bloque arranca en opacity 0. Lo unico
   que se mueve es el hover de los botones y el scroll suave, y las dos cosas se
   apagan si el sistema pide menos movimiento.
   ============================================================================= */

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .boton,
    .boton:hover {
        transition: none;
        transform: none;
    }
}

/* =============================================================================
   Pantallas medianas (tablet / celular apaisado)
   ============================================================================= */

@media (min-width: 600px) {
    .hero {
        padding: 64px 0 72px;
    }

    .hero__titulo {
        font-size: 2.9rem;
    }

    .hero__acciones {
        flex-direction: row;
        flex-wrap: wrap;
        width: auto;
    }

    .seccion__titulo {
        font-size: 2rem;
    }

    .choferes__titulo {
        font-size: 2.4rem;
    }

    .choferes__cta {
        flex-direction: row;
        align-items: center;
        gap: 18px;
    }

    .choferes__cta .boton,
    .contacto .boton {
        width: auto;
    }

    .pasos {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    .beneficios {
        grid-template-columns: repeat(2, 1fr);
    }

    .pie__enlaces {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 22px;
    }
}

/* =============================================================================
   Escritorio
   ============================================================================= */

@media (min-width: 960px) {
    body {
        font-size: 18px;
    }

    .hero {
        padding: 88px 0 96px;
    }

    /* En escritorio el hero pasa a dos columnas: texto a la izquierda y el
       adorno a la derecha, que si no queda media pantalla vacia. */
    .hero__interior {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 48px;
    }

    .hero__texto {
        max-width: 620px;
    }

    .hero__adorno {
        display: block;
        width: 320px;
        height: 320px;
        flex: none;
    }

    .hero__signo {
        width: 74px;
        height: 74px;
    }

    .hero__titulo {
        font-size: 3.6rem;
    }

    .hero__bajada {
        font-size: 1.2rem;
    }

    .seccion {
        padding: 78px 0;
    }

    .pasos {
        grid-template-columns: repeat(4, 1fr);
    }

    .choferes {
        padding: 84px 0;
    }

    .choferes__titulo {
        font-size: 2.8rem;
        max-width: 16em;
    }

    .beneficios {
        grid-template-columns: repeat(4, 1fr);
    }

    .pie__interior {
        grid-template-columns: 1fr auto;
        align-items: start;
    }

    .pie__empresa {
        grid-column: 1 / -1;
    }
}
