/* Reseteo Universal */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px; /* Base para rem */
}

body {
    font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    background-color: #f8fafc;
    color: #334155;
    line-height: 1.8;
}

/* Clases Utilitarias y de Contención */
.contenedor {
    width: 85%;
    max-width: 75rem;
    margin: 0 auto;
}

.seccion {
    padding: 6rem 0;
    background-color: #ffffff;
}

.seccion-gris {
    padding: 6rem 0;
    background-color: #f1f5f9;
}

.centrado {
    text-align: center;
}

/* Tipografía */
.titulo-principal {
    font-size: 3.5rem;
    color: #0f172a;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

.titulo-seccion {
    font-size: 2.5rem;
    color: #1e293b;
    margin-bottom: 1.5rem;
}

.titulo-tarjeta {
    font-size: 1.5rem;
    color: #0f172a;
    margin-bottom: 1rem;
}

.texto-destacado {
    font-size: 1.25rem;
    color: #475569;
    margin-bottom: 2rem;
}

.texto-normal {
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
    color: #475569;
}

.fuente-serif {
    font-family: 'Georgia', 'Times New Roman', serif;
}

b { color: #0f172a; }
i { color: #2563eb; }
u { text-decoration: none; border-bottom: 0.15rem solid #2563eb; }

/* Navegación y Cabecera (ADAPTADO A FLEXBOX) */
.barra-navegacion {
    background-color: #0f172a;
    padding: 1.5rem 0;
    border-bottom: 0.25rem solid #2563eb;
}

/* Convertimos el contenedor de la barra en un contenedor Flex */
.barra-navegacion .contenedor {
    display: flex;
    align-items: center;
    flex-wrap: wrap; 
}

.logo {
    color: #ffffff;
    font-size: 1.5rem;
    text-decoration: none;
    margin-right: 4rem;
}

.menu {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

.enlace-menu {
    display: block; /* Dejó de ser inline-block */
    color: #cbd5e1;
    text-decoration: none;
    font-size: 1rem;
    margin: 0 1rem;
    padding: 0.5rem 1rem;
    border-radius: 0.25rem;
}

.enlace-menu:hover, .enlace-menu.activo {
    color: #ffffff;
    background-color: #1e293b;
}

/* Hero Section */
.hero {
    background-color: #0f172a;
    padding: 8rem 0;
}

.hero .titulo-principal { color: #ffffff; }
.hero .texto-destacado { color: #94a3b8; }

/* Botones (ADAPTADO A FLEXBOX) */
.boton {
    /* inline-flex permite que se alineen al lado de otros botones, 
       pero usan flexbox internamente para centrar su texto */
    display: inline-flex; 
    align-items: center;
    justify-content: center;
    background-color: #2563eb;
    color: #ffffff;
    padding: 1rem 2.5rem;
    text-decoration: none;
    font-size: 1.1rem;
    border-radius: 0.5rem;
    margin-top: 1rem;
    margin-right: 1rem;
}

.boton:hover {
    background-color: #1d4ed8;
}

.boton-secundario {
    background-color: transparent;
    border: 0.15rem solid #2563eb;
    color: #2563eb;
}

.boton-secundario:hover {
    background-color: #2563eb;
    color: #ffffff;
}

/* Sistema de Columnas (ADAPTADO A FLEXBOX) */
.fila {
    display: flex;
    flex-wrap: wrap; /* Permite que las columnas bajen si no caben */
    justify-content: center;
    align-items: flex-start; /* Reemplaza el antiguo vertical-align: top */
    gap: 3rem; /* Reemplaza los márgenes individuales de las columnas */
}

.columna-mitad {
    flex: 0 0 45%; /* Ocupará estrictamente el 45% */
    text-align: left;
}

.columna-tercio {
    flex: 0 0 28%; /* Ocupará estrictamente el 28% */
    text-align: left;
    background-color: #ffffff;
    padding: 2.5rem;
    border-radius: 0.5rem;
    border: 0.0625rem solid #e2e8f0;
}

.columna-tercio:hover {
    border-color: #2563eb;
}

/* Medios */
.imagen-fluida {
    display: block; /* Elimina márgenes fantasma en la base de la imagen */
    width: 100%;
    height: auto;
    border-radius: 0.5rem;
    margin-bottom: 1.5rem;
}

.contenedor-video {
    background-color: #0f172a;
    padding: 1rem;
    border-radius: 0.5rem;
    text-align: center;
    margin-top: 2rem;
}

/* Tablas */
.tabla-precios {
    width: 100%;
    border-collapse: collapse;
    margin: 3rem 0;
    background-color: #ffffff;
}

.tabla-precios th, .tabla-precios td {
    border: 0.0625rem solid #e2e8f0;
    padding: 1.5rem;
    text-align: left;
}

.tabla-precios th {
    background-color: #f1f5f9;
    font-size: 1.2rem;
    color: #0f172a;
}

/* Pie de Página */
.pie-pagina {
    background-color: #0f172a;
    color: #64748b;
    padding: 4rem 0 2rem 0;
    border-top: 0.0625rem solid #1e293b;
}