/* ==========================================================================
   COMPONENTE · Grid de servicios/características (icono + texto) — reutilizable
   Enfoque Mobile-First. Base = valores Home; variante .--compact = Profesionales.
   ========================================================================== */

.services-block {
    padding: var(--pt-m, 32px) 0 var(--pb-m, 32px);
    background-color: #FFFFFF;
    box-sizing: border-box;
    font-family: 'Be Vietnam Pro', system-ui, sans-serif;
}

.services-block .sec-custom-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 36px;                      /* bloque superior → botón (53px en escritorio) */
}

.services-intro {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;                      /* header → grid (44px en escritorio) */
    width: 100%;
}

/* ---- Encabezado ---- */
.services-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    text-align: center;
}

.services-tagline {
    font-weight: 500;
    font-size: 14px;
    line-height: 160%;
    letter-spacing: 2.16px;
    text-transform: uppercase;
}

.services-heading {
    margin: 0;
    max-width: 856px;
    font-weight: 600;
    font-size: 26px;                /* móvil; 32px en escritorio */
    line-height: 120%;
    letter-spacing: -0.72px;
    color: #27292B;
}

/* ---- Grid de tarjetas (Mobile-First: 1 → 2 → 4) ---- */
.services-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    width: 100%;
}

.services-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 24px;
    box-sizing: border-box;
    background-color: #FFFFFF;
    border: 1px solid #C8C8C8;
    border-radius: 23px;
}

.services-card-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 11px;
    width: 100%;
}

.services-card-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
    width: 100%;
}

.services-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    background: #EAF4FA;
    border-radius: 50%;
}

.services-icon img {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.services-card-title {
    margin: 0;
    font-weight: 600;
    font-size: 20px;
    line-height: 140%;
    letter-spacing: -0.3px;
    color: #27292B;
    text-align: center;
}

.services-card-desc {
    margin: 0;
    font-weight: 400;
    font-size: 14px;                /* base (Home); 12px en variante compacta */
    line-height: 160%;
    letter-spacing: -0.45px;
    color: #6C7981;
    text-align: center;
}

/* ---- Botón CTA ---- */
.services-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 20px;
    box-sizing: border-box;
    background: #0E2C45;
    border-radius: 24px;
    color: #FFFFFF;
    font-weight: 500;
    font-size: 14px;
    line-height: 110%;
    letter-spacing: -0.154px;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .25s ease, transform .25s ease;
}

.services-btn:hover {
    background: #006491;
    transform: translateY(-1px);
}

/* ---- Variante compacta (Profesionales): grid más junto + descripción menor ---- */
.services-block--compact .services-card-desc {
    font-size: 12px;
    line-height: 130%;
}

/* ==========================================================================
   Breakpoints (Mobile-First → min-width)
   ========================================================================== */
@media (min-width: 600px) {
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 36px;
    }

    .services-block--compact .services-grid {
        gap: 20px;
    }
}

@media (min-width: 768px) {
    .services-block {
        padding: var(--pt-t, var(--pt-m, 32px)) 0 var(--pb-t, var(--pb-m, 32px));
    }
}

@media (min-width: 992px) {
    .services-block {
        padding: var(--pt-d, 50px) 0 var(--pb-d, 50px);
    }

    .services-block .sec-custom-container {
        gap: 53px;
    }

    .services-intro {
        gap: 44px;
    }

    .services-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .services-heading {
        font-size: 32px;
    }
}
