/* ============================================================
   MÓDULO: SERVICIOS
   ============================================================ */

.servicios-page {
    max-width: var(--content-max, 1280px);
    margin: 0 auto;
    padding: 0 24px 80px;
}


/* ============================================================
   GRID DE SERVICIOS
   ============================================================ */

.servicios-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 24px;

    margin-top: 45px;
}


/* ============================================================
   TARJETA
   ============================================================ */

.servicio-card {
    position: relative;

    overflow: hidden;

    background: #fff;

    border: 1px solid rgba(0, 49, 73, .10);
    border-radius: 18px;

    box-shadow: 0 8px 30px rgba(0, 49, 73, .08);

    cursor: pointer;

    transition:
        transform .35s ease,
        box-shadow .35s ease;
}

.servicio-card:hover {
    transform: translateY(-8px);

    box-shadow:
        0 18px 45px rgba(0, 49, 73, .16);
}


/* ============================================================
   IMAGEN
   ============================================================ */

.servicio-image {
    overflow: hidden;
}

.servicio-image img {
    display: block;

    width: 100%;
    height: auto;

    transition:
        transform .5s ease;
}

.servicio-card:hover .servicio-image img {
    transform: scale(1.04);
}


/* ============================================================
   LÍNEA INFERIOR
   ============================================================ */

.servicio-card::after {
    content: '';

    position: absolute;

    left: 0;
    bottom: 0;

    width: 100%;
    height: 4px;

    background: linear-gradient(90deg,
            #003149,
            #aa0d2e);

    transform: scaleX(0);
    transform-origin: left;

    transition: transform .4s ease;
}

.servicio-card:hover::after {
    transform: scaleX(1);
}


/* ============================================================
   ANIMACIÓN DE ENTRADA
   ============================================================ */

.servicios-page .fade-up {
    opacity: 0;

    transform: translateY(30px);

    transition:
        opacity .7s ease,
        transform .7s ease;
}

.servicios-page .fade-up.visible {
    opacity: 1;

    transform: translateY(0);
}


/* ============================================================
   TABLET
   ============================================================ */

@media (max-width: 992px) {

    .servicios-page {
        padding-left: 20px;
        padding-right: 20px;
    }

    .servicios-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


/* ============================================================
   MÓVIL
   ============================================================ */

@media (max-width: 768px) {

    .servicios-page {
        padding-left: 16px;
        padding-right: 16px;
        padding-bottom: 60px;
    }

    .servicios-grid {
        grid-template-columns: 1fr;

        gap: 20px;

        margin-top: 30px;
    }

    .servicio-card {
        border-radius: 15px;
    }
}


/* ============================================================
   REDUCIR MOVIMIENTO
   ============================================================ */

@media (prefers-reduced-motion: reduce) {

    .servicios-page .fade-up {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .servicio-card,
    .servicio-image img,
    .servicio-card::after {
        transition: none;
    }

    .servicio-card:hover {
        transform: none;
    }

    .servicio-card:hover .servicio-image img {
        transform: none;
    }
}