/* ===========================
   VARIABLES DE COLOR Y FUENTES
   =========================== */
:root {
    /* Temática oscura */
    --color-bg: #000;
    --color-bg-secondary: #030306; /* negro azulado */
    --color-box: #030409; /* negro azulado */
    --color-text: #d4d4d4; /* gris clarito */
    --color-primary: #61c9f6; /* celeste agua */

    /* Hero gradient colors */
    --hero-color-azul: #1a62e2;
    --hero-color-naranja: #f59d06;
    --hero-color-celeste-v: #05709b;
    --hero-color-naranja-v: #ff621d;
    --hero-color-celeste-vivido: #61c9f6;

    /* Tipografía */
    --font-primary: 'Montserrat', sans-serif;
}

/* ===========================
   RESET GENERAL
   =========================== */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

html, body {
    height: 100%;
    font-family: var(--font-primary);
    background-color: var(--color-bg);
    color: var(--color-text);
    scroll-behavior: smooth;
}

a {
    color: inherit;
    text-decoration: none; /* eliminar subrayado */
    -webkit-tap-highlight-color: transparent; /* eliminar fondo celeste en móviles */
}

button {
    cursor: pointer;
    background: none;
    border: none;
    font-family: var(--font-primary);
}

ul {
    list-style: none;
}

img, video {
    display: block;
    max-width: 100%;
}

input, textarea, select {
    background: none;
    border: none;
    color: var(--color-text);
    font-family: var(--font-primary);
}

textarea {
    resize: none;
}

/* ===========================
   TIPOGRAFÍA GENERAL
   =========================== */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-primary);
    color: var(--color-text);
}

p {
    line-height: 1.5;
}

/* ===========================
   UTILIDADES
   =========================== */
.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

/* Flex utilities */
.flex {
    display: flex;
}

.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

.flex-between {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.flex-column {
    display: flex;
    flex-direction: column;
}


/* Animaciones generales para scroll */
.animate {
    opacity: 0;
    transform: translateY(50px);
    transition: all 0.8s ease-out;
}

.animate.show {
    opacity: 1;
    transform: translateY(0);
}

/* Animación opcional desde los lados */
.animate-left {
    opacity: 0;
    transform: translateX(-50px);
    transition: all 0.8s ease-out;
}

.animate-left.show {
    opacity: 1;
    transform: translateX(0);
}

.animate-right {
    opacity: 0;
    transform: translateX(50px);
    transition: all 0.8s ease-out;
}

.animate-right.show {
    opacity: 1;
    transform: translateX(0);
}
