/* base.css — estilos comunes a todas las páginas (inicio y trabajo).
   Se carga antes que las demás hojas de estilo: cada página pisa lo que necesite. */

/* --- FUENTE LOCAL (.woff2 en assets/fonts) --- */
@font-face {
    font-family: 'Work Sans';
    src: url('assets/fonts/WorkSans-VariableFont_wght.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

/* --- VARIABLES COMUNES (las usa también components/staggeredmenu) --- */
:root {
    --white: #ffffff;
    --black: #000000;
    --cyan: #47D2F5;
    --muted: #6b6b6b;
    --ease: cubic-bezier(0.16, 1, 0.3, 1);

    /* Escala tipográfica: el texto usa solo estos tamaños (los números gigantes del hero,
       las cifras y el footer son momentos "display" y llevan su propio tamaño) */
    --fs-sm: 0.875rem;                          /* 14px: etiquetas, botones, notas */
    --fs-body: 1rem;                            /* 16px: texto corrido */
    --fs-lead: clamp(1.125rem, 1.8vw, 1.625rem); /* 18–26px: párrafos destacados, preguntas */
    --fs-h3: clamp(1.5rem, 3vw, 2.35rem);       /* 24–38px: subtítulos */
    --fs-h2: clamp(2.4rem, 5.2vw, 4.6rem);      /* 38–74px: títulos de sección */
}

/* --- RESET --- */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font: 400 var(--fs-body)/1.5 'Work Sans', sans-serif;
}

/* Reparte las líneas de los títulos y evita palabras sueltas al final de los párrafos */
h1,
h2,
h3 {
    text-wrap: balance;
}

p {
    text-wrap: pretty;
}

/* height: auto mantiene la proporción cuando el <img> trae width/height (que se ponen para
   reservar el espacio antes de que cargue) y el CSS solo le fija el ancho */
img,
video {
    display: block;
    max-width: 100%;
    height: auto;
}

ul,
ol {
    list-style: none;
}

a {
    color: inherit;
    text-decoration: none;
}

button {
    font: inherit;
    color: inherit;
}

/* --- ACCESIBILIDAD --- */
.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* "Saltar al contenido": escondido arriba hasta que recibe el foco con Tab (los colores van en cada página) */
.skip-link {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 100000;
    padding: 0.8rem 1.4rem;
    border-radius: 999px;
    font-weight: 600;
    transform: translateY(-200%);
    transition: transform 0.33s var(--ease);
}

.skip-link:focus {
    transform: translateY(0);
}

/* Destinos de enlaces internos: reciben foco por JS pero no muestran anillo */
[tabindex="-1"]:focus {
    outline: none;
}

/* --- HEADER (el resto está en components/staggeredmenu/staggered-menu.css) --- */
.site-header {
    padding: 1.35rem 3vw;
}

@media (prefers-reduced-motion: reduce) {
    .skip-link {
        transition: none;
    }
}
