@font-face {
    font-family: "Onest-Thin";
    src: url("../fonts/onest/static/Onest-Thin.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Onest-ExtraLight";
    src: url("../fonts/onest/static/Onest-ExtraLight.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Onest-Light";
    src: url("../fonts/onest/static/Onest-Light.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Onest-Regular";
    src: url("../fonts/onest/static/Onest-Regular.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Onest-Medium";
    src: url("../fonts/onest/static/Onest-Medium.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Onest-SemiBold";
    src: url("../fonts/onest/static/Onest-SemiBold.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Onest-Bold";
    src: url("../fonts/onest/static/Onest-Bold.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Onest-ExtraBold";
    src: url("../fonts/onest/static/Onest-ExtraBold.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Onest-Black";
    src: url("../fonts/onest/static/Onest-Black.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "IBMPlexMono-Regular";
    src: url("../fonts/IBM_Plex_Mono/IBMPlexMono-Medium.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

:root {
    --bg-white: #ffffff;
    --bg-nieve: #fcf7ff;
    --bg-claro: #f5f6fc;
    --azul-extra: #9ad4f0;
    --azul-soft: #62bde8;
    --azul-main: #36a9e1;
    --azul-pro: #0d12a5;
    --azul-dark: #00065c;
    --azul-night: #000330;
    --font-main: "Onest-Regular", sans-serif;
    --font-onest-thin: "Onest-Thin", sans-serif;
    --font-onest-extra-light: "Onest-ExtraLight", sans-serif;
    --font-onest-light: "Onest-Light", sans-serif;
    --font-onest-regular: "Onest-Regular", sans-serif;
    --font-onest-medium: "Onest-Medium", sans-serif;
    --font-onest-semi-bold: "Onest-SemiBold", sans-serif;
    --font-onest-bold: "Onest-Bold", sans-serif;
    --font-onest-extra-bold: "Onest-ExtraBold", sans-serif;
    --font-onest-black: "Onest-Black", sans-serif;
    --font-IBMPlexMono-Regular: "IBMPlexMono-Regular", monospace;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
}

body {
    font-family: var(--font-main);
    background-color: var(--bg-white);
    color: var(--azul-night);
    overflow-x: hidden;
    line-height: 1.6;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-onest-semi-bold);
    line-height: 1.2;
}

.contenedor {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
}

.barra-superior {
    background-color: var(--bg-white);
    padding: 8px 0;
    font-size: 12px;
    color: #555;
    border-bottom: 1px solid #ebecef;
}

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

.barra-sup-izq {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.barra-sup-izq span {
    display: flex;
    align-items: center;
    gap: 8px;
}

.icono-linkedin {
    color: var(--azul-soft);
    display: flex;
    align-items: center;
    background-color: transparent;
    transition: color 0.3s;
}

.icono-linkedin:hover {
    color: var(--azul-main);
}

.contenedor-logo {
    display: flex;
    align-items: center;
    gap: 15px;
}

.linea-logo {
    width: 3px;
    height: 30px;
    background-color: var(--azul-main);
}

.texto-logo {
    font-size: 24px;
    font-family: var(--font-onest-extra-bold);
    color: var(--azul-dark);
    display: flex;
    align-items: center;
    gap: 5px;
}

.texto-logo span {
    font-family: var(--font-onest-light);
    font-size: 24px;
}

.seccion-hero {
    background-color: var(--azul-pro);
    color: var(--bg-white);
    padding: 32px 0 160px 0;
    position: relative;
    border-radius: 0;
    margin: 0;
    min-height: 100dvh;
    overflow: hidden;
}

.video-fondo {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
}

.contenedor-cabecera {
    position: fixed;
    top: 10%;
    right: 50%;
    transform: translateX(50%);
    z-index: 8;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: var(--azul-dark);
    padding: 10px;
    border-radius: 4px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    transition: top 0.25s ease;
}

.contenedor-cabecera.en-scroll {
    top: 1%;
}

.contenido-hero-frente {
    position: relative;
    margin-top: 120px;
    z-index: 2;
}

.navegacion-principal {
    display: flex;
    align-items: center;
    gap: 12px;
}

.navegacion-principal a {
    color: var(--bg-white);
    text-decoration: none;
    font-size: 14px;
    font-family: var(--font-onest-regular);
    transition: color 0.3s;
}

.navegacion-principal a:hover {
    color: var(--azul-extra);
}

.separador-nav {
    color: var(--azul-main);
    font-size: 12px;
    font-family: var(--font-onest-extra-bold);
}

.btn-primario {
    display: inline-block;
    background-color: var(--azul-main);
    color: var(--bg-white);
    padding: 12px 40px;
    border-radius: 4px;
    text-decoration: none;
    font-family: var(--font-onest-semi-bold);
    transition: background-color 0.3s;
}

.btn-primario:hover {
    background-color: var(--azul-soft);
}

.seccion-intro {
    padding: 96px 5%;
    background-color: var(--bg-nieve);
}

.envoltura-intro {
    position: relative;
    margin: 0 auto;
    padding: 48px 0;
}

.caja-texto-intro {
    width: 100%;
    background-color: var(--bg-white);
    padding: 80px 64px;
    padding-right: 50%;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.06);
    border-radius: 4px;
    position: relative;
    z-index: 2;
}

.insignia-firma {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1.5px solid var(--azul-pro);
    color: var(--azul-pro);
    font-size: 12px;
    font-family: var(--font-IBMPlexMono-Regular);
    padding: 4px 12px;
    border-radius: 4px;
    margin-bottom: 32px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
}

.punto-insignia {
    width: 6px;
    height: 6px;
    background-color: var(--azul-pro);
    border-radius: 50%;
}

.caja-texto-intro h2 {
    font-size: 36px;
    color: var(--azul-night);
    margin-bottom: 24px;
    line-height: 1.25;
}

.caja-texto-intro p {
    color: #777;
    margin-bottom: 40px;
    font-size: 16px;
    line-height: 1.6;
}

.envoltura-img-intro {
    position: absolute;
    top: 0;
    bottom: 0;
    right: -1%;
    width: 50%;
    height: 95%;
    margin: auto 0;
    z-index: 2;
    filter: drop-shadow(-10px 0 15px rgba(0, 0, 0, 0.1));
}

.envoltura-img-intro img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 900px) {
    .envoltura-intro {
        padding: 0;
    }

    .caja-texto-intro {
        width: 100%;
        padding: 40px;
        padding-bottom: 96px;
    }

    .envoltura-img-intro {
        position: relative;
        width: 100%;
        height: 350px;
        margin-top: -64px;
        clip-path: none;
        transform: none;
    }
}

.seccion-cita {
    padding: 128px 0;
    background-color: var(--bg-claro);
    background-image: radial-gradient(#d1d5db 2px, transparent 1px);
    background-size: 76px 76px;
    text-align: center;
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.texto-cita {
    font-size: 50px;
    font-family: var(--font-onest-semi-bold);
    max-width: 900px;
    margin: 0 auto;
    color: var(--azul-extra);
    line-height: 1.4;
    position: relative;
    z-index: 3;
}

.palabra-cita {
    display: inline-block;
    transition: color 0.1s;
}

.imagenes-cayendo {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 2;
}

.imagen-cayendo {
    position: absolute;
    top: -150px;
    height: auto;
    will-change: transform, opacity;
}

.seccion-equipo {
    padding: 5rem 0;
    background-color: var(--bg-nieve);
}

.insignia-equipo-container {
    margin-bottom: 48px;
    display: flex;
    justify-content: center;
}

.rejilla-equipo {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
}

.tarjeta-destacada {
    grid-column: span 2;
    background: var(--bg-white);
    border-radius: 8px;
    padding: 20px;
    border-left: 4px solid var(--azul-main);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
}

.tarjeta-destacada h2 {
    font-size: 20px;
    color: var(--azul-night);
    line-height: 1.35;
}

.tarjeta-destacada p {
    font-size: 12px;
    color: #666;
    line-height: 1.7;
}

.tarjeta-info {
    grid-column: span 1;
    background: var(--bg-white);
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
}

.icono-tarjeta {
    width: 28px;
    height: 28px;
    object-fit: contain;
    margin-bottom: 8px;
}

.tarjeta-info h3 {
    font-size: 16px;
    color: var(--azul-night);
}

.tarjeta-info p {
    font-size: 12px;
    color: #666;
    line-height: 1.6;
}

.contenedor-fotos {
    grid-column: span 2;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.tarjeta-miembro {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    aspect-ratio: 1 / 1.1;
}

.img-miembro {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: grayscale(100%);
    transition:
        filter 0.4s,
        transform 0.4s;
}

.tarjeta-miembro:hover .img-miembro {
    filter: grayscale(0%);
    transform: scale(1.03);
}

.info-miembro {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 3, 48, 0.6),
        rgb(0, 6, 92, 0.6)
    );
    backdrop-filter: blur(6px) saturate(180%);
    margin: 12px 8px;
    padding: 4px;
    color: white;
    text-align: center;
    border-radius: 8px;
}

.nombre-miembro {
    font-family: var(--font-onest-extra-bold);
    font-size: 12px;
    color: white;
}

.rol-miembro {
    font-size: 12px;
    color: var(--azul-extra);
    font-family: var(--font-onest-medium);
    margin-top: 4px;
}

.tarjeta-enlace {
    grid-column: span 2;
    background: var(--bg-white);
    border-radius: 8px;
    padding: 20px;
    border-left: 4px solid var(--azul-main);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
    align-items: flex-start;
}

.tarjeta-enlace h2 {
    font-size: 20px;
    color: var(--azul-night);
    line-height: 1.35;
}

.tarjeta-enlace p {
    font-size: 12px;
    color: #666;
    line-height: 1.7;
    margin-bottom: 8px;
}

.btn-equipo {
    background-color: var(--azul-soft);
    color: var(--bg-white);
    border: none;
    padding: 8px 16px;
    font-size: 12px;
}

.btn-equipo:hover {
    background-color: var(--azul-main);
}

.seccion-estadisticas {
    background: linear-gradient(
        90deg,
        var(--azul-night) 0%,
        var(--azul-pro) 100%
    );
    color: var(--bg-white);
    padding: 56px 48px;
    margin: 0 auto;
    max-width: 1200px;
    width: 90%;
    border-radius: 12px;
}

.rejilla-estadisticas {
    display: grid;
    grid-template-columns: 4fr 1fr 1fr 1fr;
    gap: 32px;
    align-items: stretch;
}

.titulo-estadisticas {
    font-size: 40px;
    font-family: var(--font-onest-extra-bold);
    color: var(--bg-white);
    line-height: 1.25;
}

.item-estadistica {
    text-align: left;
}

.icono-estadistica {
    width: 40px;
    height: 40px;
    background-color: var(--bg-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}

.icono-estadistica-img {
    width: 20px;
    height: 20px;
    filter: brightness(0) saturate(100%) invert(22%) sepia(80%) saturate(600%)
        hue-rotate(195deg);
}

.numero-estadistica {
    font-size: 28px;
    font-family: var(--font-onest-extra-bold);
    color: var(--bg-white);
    margin-bottom: 4px;
}

.etiqueta-estadistica {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.4;
}

.abs {
    position: absolute;
    left: 0;
    width: 100%;
    height: 100%;
    top: 0;
    display: flex;
    align-items: flex-end;
    opacity: 0.5;
    flex-direction: column;
}

section.seccion-estadisticas {
    position: relative;
    overflow: hidden;
}

.sqr {
    width: 900px;
    aspect-ratio: 1 / 1;
    background: var(--bg-white);
    border-radius: 100%;
    margin: 150px 0 0 550px;
    filter: blur(100px);
}

.sqr2 {
    width: 500px;
    aspect-ratio: 1 / 1;
    background: var(--bg-white);
    border-radius: 100%;
    margin: -475px 150px 0 0;
    filter: blur(100px);
}

.seccion-servicios {
    padding: 80px 0;
    background-color: var(--bg-white);
}

.cabecera-servicios-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: flex-end;
    margin-bottom: 48px;
}

.cabecera-servicios-izq h2 {
    font-size: 40px;
    color: var(--azul-night);
    line-height: 1.2;
    margin-top: 16px;
    margin-bottom: 0;
}

.cabecera-servicios-der {
    display: block;
}

.cabecera-servicios-der p {
    color: #555;
    font-size: 14px;
    line-height: 1.7;
}

.rejilla-servicios {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.tarjeta-servicio {
    padding: 32px;
    background: var(--bg-white);
    border-radius: 8px;
    border: 2px solid var(--azul-main);
    transition:
        background-color 0.3s ease,
        box-shadow 0.3s ease,
        color 0.3s ease;
    cursor: pointer;
}

.tarjeta-servicio:hover {
    background-color: var(--azul-soft);
    box-shadow: 0 8px 24px rgba(54, 169, 225, 0.25);
    border-color: transparent;
}

.icono-servicio {
    width: 52px;
    height: 52px;
    background-color: var(--azul-soft);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    transition: background-color 0.3s ease;
}

.icono-servicio img {
    width: 24px;
    height: 24px;
    filter: brightness(0) invert(1);
    transition: filter 0.3s ease;
}

.tarjeta-servicio:hover .icono-servicio {
    background-color: var(--bg-white);
}

.tarjeta-servicio:hover .icono-servicio img {
    filter: brightness(0) saturate(100%) invert(75%) sepia(19%) saturate(1883%)
        hue-rotate(166deg) brightness(96%) contrast(93%);
}

.tarjeta-servicio h3 {
    font-size: 18px;
    color: var(--azul-main);
    margin-bottom: 12px;
    transition: color 0.3s ease;
}

.tarjeta-servicio:hover h3 {
    color: var(--bg-white);
}

.tarjeta-servicio p {
    color: #666;
    font-size: 13px;
    line-height: 1.65;
    transition: color 0.3s ease;
}

.tarjeta-servicio:hover p {
    color: rgba(255, 255, 255, 0.85);
}

.seccion-logos {
    padding: 96px 0;
    background-color: var(--bg-claro);
}

.cabecera-logos {
    text-align: center;
    margin-bottom: 56px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.cabecera-logos .insignia-firma {
    margin-bottom: 0;
}

.seccion-logos h3 {
    font-size: 40px;
    color: var(--azul-night);
    max-width: 600px;
    line-height: 1.25;
    margin: 0;
}

.seccion-logos p {
    font-size: 14px;
    color: #666;
    max-width: 560px;
    line-height: 1.7;
    margin: 0;
}

.contenedor-logos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border-left: 1px solid #e2e8f0;
    position: relative;
}

.tarjeta-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 40px;
    border: 1px solid #e2e8f0;
    border-left: none;
    background-color: transparent;
    transition:
        background-color 0.3s,
        box-shadow 0.3s;
    position: relative;
}

.tarjeta-logo:hover {
    background-color: var(--bg-white);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
    z-index: 1;
}

.tarjeta-logo img {
    max-height: 56px;
    max-width: 180px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.6;
    transition:
        opacity 0.3s,
        filter 0.3s,
        transform 0.3s;
}

.tarjeta-logo:hover img {
    filter: grayscale(0%);
    opacity: 1;
    transform: scale(1.05);
}

.seccion-noticias {
    padding: 80px 0;
    background-color: var(--bg-white);
}

.cabecera-noticias {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 48px;
    margin-bottom: 48px;
}

.cabecera-noticias-izq {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
}

.cabecera-noticias-izq .insignia-firma {
    margin-bottom: 0;
}

.cabecera-noticias-izq h3 {
    font-size: 32px;
    color: var(--azul-night);
    line-height: 1.25;
    margin: 0;
}

.cabecera-noticias-izq p {
    font-size: 14px;
    color: #666;
    line-height: 1.7;
    margin: 0;
    max-width: 600px;
}

.cabecera-noticias-der {
    flex-shrink: 0;
}

.rejilla-noticias {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.tarjeta-noticia {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    background: var(--bg-white);
    transition: box-shadow 0.3s;
}

.tarjeta-noticia:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.img-noticia {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    clip-path: polygon(0 0, calc(100% - 40px) 0, 100% 40px, 100% 100%, 0 100%);
    border-radius: 8px 0 0 0;
}

.contenido-noticia {
    padding: 20px 24px 24px;
}

.meta-noticia {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
    justify-content: space-between;
}

.categoria-noticia {
    color: var(--azul-pro);
    font-size: 11px;
    font-family: var(--font-onest-bold);
    white-space: nowrap;
}

.fecha-noticia {
    color: #999;
    font-size: 11px;
    font-family: var(--font-onest-regular);
}

.contenido-noticia h3 {
    font-size: 15px;
    color: var(--azul-night);
    line-height: 1.45;
    font-family: var(--font-onest-semi-bold);
    margin: 0;
}

.pie-pagina {
    background-image:
        radial-gradient(circle, rgba(54, 169, 225, 0.2) 2px, transparent 1px),
        linear-gradient(var(--azul-night), var(--azul-dark));
    background-size:
        76px 76px,
        100% 100%;
    color: var(--bg-white);
    padding: 64px 0 0;
}

.rejilla-pie {
    display: grid;
    grid-template-columns: 1.5fr 1fr 2fr;
    gap: 48px;
    margin-bottom: 48px;
    align-items: start;
}

.logo-texto-pie {
    display: flex;
    align-items: stretch;
    gap: 14px;
    margin-bottom: 20px;
}

.linea-logo-pie {
    width: 3px;
    background-color: var(--azul-main);
    border-radius: 2px;
    min-height: 60px;
    flex-shrink: 0;
}

.nombre-pie {
    font-size: 34px;
    font-family: var(--font-onest-extra-bold);
    color: var(--bg-white);
    line-height: 1;
    letter-spacing: -0.5px;
}

.subtitulo-pie {
    font-size: 22px;
    font-family: var(--font-onest-regular);
    color: var(--bg-white);
    line-height: 1.2;
}

.datos-pie {
    margin-bottom: 20px;
}

.datos-pie p {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.55);
    margin-bottom: 4px;
    line-height: 1.5;
}

.menu-pie h4 {
    font-size: 13px;
    font-family: var(--font-onest-semi-bold);
    color: var(--bg-white);
    margin-bottom: 16px;
    text-transform: none;
    letter-spacing: 0;
}

.menu-pie ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.menu-pie ul li {
    margin-bottom: 10px;
}

.menu-pie ul li a {
    color: rgba(255, 255, 255, 0.6);
    text-decoration: none;
    font-size: 13px;
    font-family: var(--font-onest-regular);
    transition: color 0.2s;
}

.menu-pie ul li a:hover {
    color: var(--bg-white);
}

.sedes-pie h4 {
    font-size: 13px;
    font-family: var(--font-onest-semi-bold);
    color: var(--bg-white);
    margin-bottom: 16px;
}

.rejilla-sedes {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}

.sede-pie h5 {
    font-size: 12px;
    font-family: var(--font-onest-bold);
    color: var(--bg-white);
    margin-bottom: 6px;
}

.sede-pie p {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.55);
    line-height: 1.55;
    margin: 0;
}

.base-pie {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: 24px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.45);
}

.base-pie > p {
    margin: 0;
}

.enlaces-legal {
    display: flex;
    gap: 16px;
    align-items: center;
}

.enlaces-legal a {
    color: rgba(255, 255, 255, 0.45);
    text-decoration: none;
    font-size: 12px;
    transition: color 0.25s;
}

.enlaces-legal a:hover {
    color: var(--bg-white);
}

.credito-pie {
    margin: 0;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.6);
    font-family: var(--font-onest-semi-bold);
}

.btn-actualidad {
    background-color: var(--azul-soft);
    color: var(--bg-white);
    padding: 10px 20px;
    font-size: 13px;
    font-family: var(--font-onest-semi-bold);
    white-space: nowrap;
}

.btn-actualidad:hover {
    background-color: var(--azul-main);
}

@media (max-width: 1024px) {
    .contenedor-barra-sup {
        flex-direction: column;
        gap: 8px;
        padding: 12px 0;
    }

    .barra-sup-izq {
        justify-content: center;
    }

    .contenedor-cabecera {
        flex-wrap: wrap;
        justify-content: center;
        gap: 20px;
        padding-top: 24px;
        padding-bottom: 24px;
        transform: none;
    }

    .navegacion-principal {
        order: 3;
        width: 100%;
        justify-content: center;
        flex-wrap: wrap;
        gap: 8px;
    }

    .separador-nav {
        display: none;
    }

    .navegacion-principal a {
        padding: 8px 16px;
        background: rgba(255, 255, 255, 0.08);
        border-radius: 6px;
        font-family: var(--font-onest-medium);
    }

    .contenido-hero-frente {
        margin-top: 60px;
    }

    .rejilla-equipo,
    .rejilla-estadisticas,
    .rejilla-servicios,
    .rejilla-noticias,
    .rejilla-sedes {
        grid-template-columns: repeat(2, 1fr);
    }

    .tarjeta-destacada,
    .tarjeta-enlace {
        grid-column: span 2;
    }

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

    .tarjeta-logo:last-child {
        grid-column: span 2;
        border-radius: 0 0 8px 8px;
        border-left: 1px solid #e2e8f0;
        border-top: none;
    }

    .tarjeta-logo:nth-child(2) {
        border-radius: 0 8px 0 0;
    }

    .cabecera-servicios-grid {
        grid-template-columns: 1fr;
        gap: 24px;
        text-align: center;
    }

    .cabecera-servicios-der p {
        max-width: 650px;
        margin: 0 auto;
    }

    .cabecera-noticias {
        flex-direction: column;
        text-align: center;
        gap: 24px;
    }

    .cabecera-noticias-izq {
        align-items: center;
    }

    .rejilla-pie {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 900px) {
    .rejilla-equipo,
    .rejilla-estadisticas,
    .rejilla-servicios,
    .rejilla-noticias,
    .rejilla-sedes {
        grid-template-columns: 1fr;
    }

    .tarjeta-destacada,
    .tarjeta-enlace {
        grid-column: span 1;
    }

    .contenedor-fotos {
        grid-column: span 1;
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .contenedor-logos {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .tarjeta-logo {
        border-radius: 8px !important;
        border-left: 1px solid #e2e8f0 !important;
        border-top: 1px solid #e2e8f0 !important;
    }

    .tarjeta-logo:last-child {
        grid-column: span 1;
    }

    .rejilla-pie {
        grid-template-columns: 1fr;
    }

    .cabecera-logos {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .tarjeta-miembro {
        aspect-ratio: 3 / 2;
    }

    .texto-cita {
        font-size: 32px;
        padding: 0 16px;
    }

    .texto-logo {
        font-size: 32px;
    }

    .base-pie {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }

    .enlaces-legal {
        flex-wrap: wrap;
        justify-content: center;
    }
}

@media (max-width: 768px) {
    .navegacion-principal,
    .accion-cabecera {
        display: none !important;
    }

    .contenido-hero-frente {
        margin-top: 40px;
    }

    .seccion-intro {
        padding: 64px 5%;
    }

    .caja-texto-intro {
        padding: 32px;
        padding-bottom: 80px;
    }

    .caja-texto-intro h2 {
        font-size: 28px;
    }

    .seccion-cita {
        padding: 80px 0;
    }

    .texto-cita {
        font-size: 24px;
        padding: 0;
    }

    .tarjeta-destacada,
    .tarjeta-info,
    .tarjeta-enlace {
        padding: 24px;
    }

    .tarjeta-destacada h2,
    .tarjeta-enlace h2 {
        font-size: 22px;
    }

    .seccion-estadisticas {
        padding: 32px 24px;
        width: 100%;
        max-width: 100%;
        border-radius: 0;
    }

    .titulo-estadisticas {
        font-size: 28px;
        text-align: center;
    }

    .item-estadistica {
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .cabecera-servicios-izq h2,
    .seccion-logos h3,
    .cabecera-noticias-izq h3 {
        font-size: 28px;
    }

    .seccion-equipo,
    .seccion-servicios,
    .seccion-logos,
    .seccion-noticias {
        padding: 56px 0;
    }

    .tarjeta-logo {
        padding: 32px 24px;
    }

    .nombre-pie {
        font-size: 28px;
    }

    .pie-pagina {
        padding-top: 48px;
    }

    .menu-pie {
        text-align: center;
    }

    .sedes-pie h4 {
        text-align: center;
    }

    .rejilla-sedes {
        text-align: center;
    }

    .navegacion-principal a {
        width: 100%;
        text-align: center;
    }

    .seccion-hero {
        min-height: auto;
        padding-top: 70px;
        padding-bottom: 0;
    }

    .video-fondo {
        position: relative;
        height: auto;
        width: 100%;
        display: block;
        vertical-align: bottom;
        object-fit: contain;
    }

    .seccion-hero.hero-landing .contenido-hero-frente {
        display: none;
    }
}

.icono-contacto {
    width: 14px;
    filter: brightness(0) opacity(0.6);
}

.img-linkedin-cabecera {
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.logo-principal {
    height: 30px;
}

.btn-contacto-cabecera {
    background-color: var(--azul-soft);
    border-radius: 4px;
    padding: 0.6rem 1.5rem;
    color: white;
    display: inline-block;
}

.btn-contacto-cabecera:hover,
.btn-conozca-firma:hover {
    background-color: var(--azul-main);
}

.btn-conozca-firma {
    background-color: var(--azul-soft);
    color: white;
    border-radius: 4px;
    border: none;
    padding: 0.8rem 1.8rem;
}

.img-linkedin-pie {
    width: 18px;
    height: 18px;
    object-fit: contain;
}

.btn-menu-movil {
    display: none;
}

.menu-movil {
    display: none;
}

@media (max-width: 1024px) {
    .barra-superior {
        display: none;
    }

    .navegacion-principal,
    .accion-cabecera {
        display: none !important;
    }

    .contenedor-cabecera {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        width: 100%;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;
        gap: 20px;
        padding: 14px 16px;
        z-index: 999;
        background-color: var(--azul-dark);
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
    }

    .btn-menu-movil {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        width: 42px;
        height: 42px;
        background: rgba(255, 255, 255, 0.1);
        border: 1px solid rgba(255, 255, 255, 0.2);
        border-radius: 6px;
        cursor: pointer;
        padding: 8px;
        flex-shrink: 0;
        margin-right: 14px;
        transition: background 0.25s;
    }

    .btn-menu-movil:hover {
        background: rgba(255, 255, 255, 0.18);
    }

    .hamburguesa-linea {
        display: block;
        width: 20px;
        height: 2px;
        background-color: var(--bg-white);
        border-radius: 2px;
        transform-origin: center;
        transition:
            transform 0.35s ease,
            opacity 0.25s ease;
    }

    .btn-menu-movil.activo .hamburguesa-linea:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .btn-menu-movil.activo .hamburguesa-linea:nth-child(2) {
        opacity: 0;
        transform: scaleX(0);
    }

    .btn-menu-movil.activo .hamburguesa-linea:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .seccion-hero {
        position: relative;
        padding-top: 70px;
    }

    .menu-movil {
        position: fixed;
        z-index: 10;
        top: 0;
        right: -100vw;
        width: 100vw;
        height: 100dvh;
        display: flex;
        flex-direction: column;
        transition: right 300ms cubic-bezier(0.4, 0, 0.2, 1);
        background: var(--azul-dark);
        padding-top: 70px;
        overflow-y: auto;
        pointer-events: none;
    }

    .menu-movil.abierto {
        right: 0;
        pointer-events: auto;
    }

    .menu-movil-interior {
        padding: 20px 20px 32px;
        display: flex;
        flex-direction: column;
        gap: 0;
        width: 100%;
    }

    .menu-movil-contacto {
        display: flex;
        flex-direction: column;
        gap: 2px;
        margin-bottom: 4px;
    }

    .menu-movil-dato {
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 10px 8px;
        color: rgba(255, 255, 255, 0.6);
        text-decoration: none;
        font-size: 13px;
        border-radius: 6px;
        transition:
            background 0.2s,
            color 0.2s;
    }

    .menu-movil-dato:hover {
        background: rgba(255, 255, 255, 0.07);
        color: var(--bg-white);
    }

    .menu-movil-icono {
        width: 15px;
        height: 15px;
        flex-shrink: 0;
        object-fit: contain;
        filter: brightness(0) invert(1) opacity(0.6);
    }

    .menu-movil-icono--linkedin {
        filter: none;
        opacity: 0.6;
    }

    .menu-movil-dato:hover .menu-movil-icono {
        filter: brightness(0) invert(1);
        opacity: 1;
    }

    .menu-movil-dato:hover .menu-movil-icono--linkedin {
        filter: none;
        opacity: 1;
    }

    .menu-movil-separador {
        height: 1px;
        background: rgba(255, 255, 255, 0.12);
        margin: 8px 0 12px;
    }

    .menu-movil-nav {
        display: flex;
        flex-direction: column;
        gap: 2px;
        margin-bottom: 24px;
    }

    .menu-movil-nav a {
        display: block;
        padding: 12px 8px;
        color: var(--bg-white);
        text-decoration: none;
        font-size: 16px;
        font-family: var(--font-onest-semi-bold);
        border-radius: 6px;
        letter-spacing: 0.2px;
        transition:
            background 0.2s,
            color 0.2s;
    }

    .menu-movil-nav a:hover {
        background: rgba(255, 255, 255, 0.08);
        color: var(--azul-extra);
    }

    .menu-movil-cta {
        width: 100%;
        text-align: center;
        padding: 14px;
        font-size: 15px;
    }
}

.grid-dots {
    height: 80px;
    background-image: radial-gradient(
        circle,
        rgba(255, 255, 255, 0.15) 1px,
        transparent 1px
    );
    background-size: 24px 24px;
    background-position: 12px 12px;
}
