.empresa-page {
    --empresa-azul: #003149;
    --empresa-rojo: #aa0d2e;
    --empresa-card: #ffffff;
    --empresa-texto: #374151;
    --empresa-suave: #6b7280;
    --empresa-borde: rgba(0, 49, 73, 0.10);
    --empresa-sombra: 0 8px 30px rgba(0, 49, 73, 0.08);
    --empresa-sombra-hover: 0 18px 45px rgba(0, 49, 73, 0.15);
    --empresa-radio: 18px;
    --empresa-radio-sm: 12px;

    max-width: var(--content-max, 1280px);
    margin: 48px auto;
    padding: 0 24px 80px;
}


/* ============================================================
   ANIMACIONES DE ENTRADA
   ============================================================ */

.empresa-page .fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition:
        opacity .7s ease,
        transform .7s ease;
}

.empresa-page .fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}


/* ============================================================
   ESTADÍSTICAS
   ============================================================ */

.empresa-page .stats-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin: 40px 0 55px;
}

.empresa-page .stat-card {
    position: relative;
    overflow: hidden;

    background: var(--empresa-card);
    border: 1px solid var(--empresa-borde);
    border-radius: var(--empresa-radio);

    padding: 30px 24px;

    text-align: center;

    box-shadow: var(--empresa-sombra);

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

/* Línea superior */

.empresa-page .stat-card::before {
    content: '';

    position: absolute;
    top: 0;
    left: 0;
    right: 0;

    height: 4px;

    background: linear-gradient(90deg,
            var(--empresa-azul),
            var(--empresa-rojo));
}

/* Brillo suave */

.empresa-page .stat-card::after {
    content: '';

    position: absolute;

    width: 130px;
    height: 130px;

    top: -70px;
    right: -70px;

    border-radius: 50%;

    background: rgba(170, 13, 46, .05);

    transition: transform .4s ease;
}

.empresa-page .stat-card:hover {
    transform: translateY(-8px);
    box-shadow: var(--empresa-sombra-hover);
}

.empresa-page .stat-card:hover::after {
    transform: scale(1.4);
}


/* Número */

.empresa-page .stat-num {
    position: relative;
    z-index: 1;

    display: block;

    font-family: 'DM Serif Display', serif;
    font-size: clamp(2.4rem, 4vw, 3.2rem);
    line-height: 1;

    color: var(--empresa-rojo);

    margin-bottom: 10px;

    font-variant-numeric: tabular-nums;

    transition: transform .3s ease;
}

.empresa-page .stat-card:hover .stat-num {
    transform: scale(1.06);
}


/* Texto */

.empresa-page .stat-lbl {
    position: relative;
    z-index: 1;

    display: block;

    font-size: 1rem;
    line-height: 1.4;

    color: var(--empresa-suave);

    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: .8px;
}


/* ============================================================
   QUIÉNES SOMOS
   ============================================================ */

.empresa-page .qs-card {
    position: relative;

    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);

    gap: 40px;
    align-items: start;

    background: var(--empresa-card);

    border: 1px solid var(--empresa-borde);
    border-radius: var(--empresa-radio);

    padding: 40px;

    margin-bottom: 36px;

    box-shadow: var(--empresa-sombra);

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.empresa-page .qs-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--empresa-sombra-hover);
}


/* Imagen */

.empresa-page .qs-card img {
    width: 100%;
    height: auto;

    display: block;

    border-radius: var(--empresa-radio-sm);

    box-shadow:
        0 10px 25px rgba(0, 49, 73, .12);

    transition:
        transform .45s ease,
        box-shadow .45s ease;
}

.empresa-page .qs-card:hover img {
    transform: scale(1.025);
    box-shadow:
        0 15px 32px rgba(0, 49, 73, .16);
}


/* Texto */

.empresa-page .qs-card p {
    margin: 0;

    font-size: 1.05rem;
    line-height: 1.85;

    color: var(--empresa-texto);

    text-align: justify;
}


/* ============================================================
   MISIÓN / VISIÓN
   ============================================================ */

.empresa-page .mv-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 24px;

    margin-bottom: 36px;
}

.empresa-page .mv-card {
    position: relative;
    overflow: hidden;

    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);

    gap: 22px;
    align-items: start;

    background: var(--empresa-card);

    border: 1px solid var(--empresa-borde);
    border-radius: var(--empresa-radio);

    padding: 32px;

    box-shadow: var(--empresa-sombra);

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.empresa-page .mv-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--empresa-sombra-hover);
}


/* Línea inferior animada */

.empresa-page .mv-card::after {
    content: '';

    position: absolute;

    bottom: 0;
    left: 0;

    width: 100%;
    height: 4px;

    background: linear-gradient(90deg,
            var(--empresa-azul),
            var(--empresa-rojo));

    transform: scaleX(0);
    transform-origin: left;

    transition: transform .45s ease;
}

.empresa-page .mv-card:hover::after {
    transform: scaleX(1);
}


/* Imagen */

.empresa-page .mv-card img {
    width: 100%;
    height: auto;

    display: block;

    border-radius: var(--empresa-radio-sm);

    transition: transform .4s ease;
}

.empresa-page .mv-card:hover img {
    transform: scale(1.05);
}


/* Título */

.empresa-page .mv-title {
    margin: 0 0 12px;

    font-family: 'DM Serif Display', serif;

    font-size: 2rem;
    line-height: 1.15;

    color: var(--empresa-azul);
}


/* Texto */

.empresa-page .mv-text {
    margin: 0;

    font-size: 1.05rem;
    line-height: 1.8;

    color: var(--empresa-texto);

    text-align: justify;
}


/* ============================================================
   POLÍTICA
   ============================================================ */

.empresa-page .pol-card {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);

    gap: 32px;
    align-items: start;

    background: var(--empresa-card);

    border: 1px solid var(--empresa-borde);
    border-radius: var(--empresa-radio);

    padding: 40px;

    margin-bottom: 32px;

    box-shadow: var(--empresa-sombra);

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.empresa-page .pol-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--empresa-sombra-hover);
}


/* Imagen */

.empresa-page .pol-card img {
    width: 100%;
    height: auto;

    display: block;

    border-radius: var(--empresa-radio-sm);

    transition: transform .4s ease;
}

.empresa-page .pol-card:hover img {
    transform: scale(1.05);
}


/* Introducción */

.empresa-page .pol-intro {
    margin: 0 0 22px;

    font-size: 1.05rem;
    line-height: 1.85;

    color: var(--empresa-texto);

    text-align: justify;
}


/* Lista */

.empresa-page .pol-list {
    list-style: none;

    padding: 0;
    margin: 0;

    counter-reset: empresa-politica;
}


/* Elementos */

.empresa-page .pol-list li {
    position: relative;

    padding: 12px 0 12px 40px;

    border-bottom: 1px solid var(--empresa-borde);

    font-size: 1.05rem;
    line-height: 1.7;

    color: var(--empresa-texto);

    counter-increment: empresa-politica;
}

.empresa-page .pol-list li:last-child {
    border-bottom: none;
}


/* Número */

.empresa-page .pol-list li::before {
    content: counter(empresa-politica);

    position: absolute;

    top: 13px;
    left: 0;

    width: 24px;
    height: 24px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--empresa-azul);
    color: #fff;

    font-size: .78rem;
    font-weight: 700;

    transition:
        transform .3s ease,
        background .3s ease;
}

.empresa-page .pol-list li:hover::before {
    transform: scale(1.12);
    background: var(--empresa-rojo);
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 992px) {

    .empresa-page {
        margin: 40px auto;
        padding-left: 20px;
        padding-right: 20px;
    }

    .empresa-page .qs-card {
        grid-template-columns: 190px minmax(0, 1fr);
        gap: 28px;
        padding: 30px;
    }

    .empresa-page .mv-card,
    .empresa-page .pol-card {
        padding: 28px;
    }

    .empresa-page .mv-title {
        font-size: 1.8rem;
    }
}


/* ============================================================
   MÓVIL
   ============================================================ */

@media (max-width: 768px) {

    .empresa-page {
        margin: 30px auto;
        padding: 0 16px 60px;
    }

    .empresa-page .stats-row {
        grid-template-columns: 1fr;

        gap: 16px;

        margin-top: 30px;
        margin-bottom: 40px;
    }

    .empresa-page .stat-card {
        padding: 25px 20px;
    }

    .empresa-page .qs-card,
    .empresa-page .mv-card,
    .empresa-page .pol-card {
        grid-template-columns: 1fr;
    }

    .empresa-page .qs-card {
        padding: 24px;
        gap: 24px;
    }

    .empresa-page .mv-card {
        padding: 24px;
        gap: 20px;
    }

    .empresa-page .pol-card {
        padding: 24px;
        gap: 24px;
    }

    .empresa-page .qs-card img,
    .empresa-page .mv-card img,
    .empresa-page .pol-card img {
        max-width: 180px;
    }

    .empresa-page .qs-card p,
    .empresa-page .mv-text,
    .empresa-page .pol-intro,
    .empresa-page .pol-list li {
        font-size: 1rem;
    }

    .empresa-page .mv-title {
        font-size: 1.75rem;
    }
}


/* ============================================================
   MÓVIL PEQUEÑO
   ============================================================ */

@media (max-width: 480px) {

    .empresa-page {
        padding-left: 12px;
        padding-right: 12px;
    }

    .empresa-page .stat-num {
        font-size: 2.6rem;
    }

    .empresa-page .stat-lbl {
        font-size: .9rem;
    }

    .empresa-page .qs-card,
    .empresa-page .mv-card,
    .empresa-page .pol-card {
        padding: 20px;
        border-radius: 15px;
    }

    .empresa-page .pol-list li {
        padding-left: 36px;
    }
}


/* ============================================================
   ACCESIBILIDAD
   ============================================================ */

@media (prefers-reduced-motion: reduce) {

    .empresa-page *,
    .empresa-page *::before,
    .empresa-page *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }

    .empresa-page .fade-up {
        opacity: 1;
        transform: none;
    }
}