/*
|--------------------------------------------------------------------------
| CEDIM SUR — R4.8G.2
| Normalización compartida de listados clínicos y de equipo
|--------------------------------------------------------------------------
*/

.especialidades-grid,
.servicios-grid,
.profesionales-grid,
.colaboradores-grid {
    align-items: stretch;
}

.especialidades-grid > .especialidad,
.servicios-grid > .servicio,
.profesionales-grid > .profesional,
.colaboradores-grid > .colaborador-card {
    min-width: 0;
    height: 100%;
    border-color: var(--linea, rgba(var(--identidad-principal-rgb), 0.14));
    background: var(--blanco, #ffffff);
    box-shadow: 0 14px 34px rgba(var(--identidad-principal-oscuro-rgb), 0.08);
    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        border-color 0.22s ease;
}

.especialidades-grid > .especialidad:hover,
.especialidades-grid > .especialidad:focus-within,
.servicios-grid > .servicio:hover,
.servicios-grid > .servicio:focus-within,
.profesionales-grid > .profesional:hover,
.profesionales-grid > .profesional:focus-within,
.colaboradores-grid > .colaborador-card:hover,
.colaboradores-grid > .colaborador-card:focus-within {
    transform: translateY(-4px);
    border-color: rgba(var(--identidad-principal-rgb), 0.28);
    box-shadow: 0 20px 44px rgba(var(--identidad-principal-oscuro-rgb), 0.12);
}

.especialidad-imagen,
.servicio-imagen,
.profesional-foto,
.colaborador-foto {
    flex: 0 0 auto;
}

.especialidad-imagen,
.servicio-imagen {
    min-height: 210px;
    aspect-ratio: 16 / 9;
}

.profesional-foto,
.colaborador-foto {
    min-height: 270px;
    aspect-ratio: 4 / 3;
}

.especialidad-imagen img,
.servicio-imagen img,
.profesional-foto img,
.colaborador-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.listado-imagen-fallback {
    position: relative;
    z-index: 1;
    width: 92px;
    height: 92px;
    display: grid;
    place-items: center;
    border: 7px solid rgba(255, 255, 255, 0.68);
    border-radius: 50%;
    color: #ffffff;
    background: var(--principal, var(--identidad-principal));
    box-shadow: 0 16px 34px rgba(var(--identidad-principal-rgb), 0.22);
}

.listado-imagen-fallback span {
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.especialidad-contenido,
.servicio-contenido,
.profesional-contenido,
.colaborador-contenido {
    min-width: 0;
}

.especialidad-contenido h3,
.servicio-contenido h3,
.profesional-contenido h3,
.colaborador-contenido h3 {
    overflow-wrap: anywhere;
}

.especialidad-contenido p,
.servicio-contenido p,
.profesional-contenido p,
.colaborador-contenido p {
    overflow-wrap: anywhere;
}

.especialidad-enlace,
.servicio-enlace,
.profesional-enlace,
.colaborador-enlace {
    margin-top: auto;
    width: fit-content;
    max-width: 100%;
    color: var(--principal, var(--identidad-principal));
    font-weight: 700;
    text-decoration: none;
}

.especialidad-enlace:focus-visible,
.servicio-enlace:focus-visible,
.profesional-enlace:focus-visible,
.colaborador-enlace:focus-visible {
    outline: 3px solid var(--principal, var(--identidad-principal));
    outline-offset: 4px;
    border-radius: 4px;
}

.estado-vacio-listado {
    grid-column: 1 / -1;
    width: 100%;
    padding: 28px;
    border: 1px dashed rgba(var(--identidad-principal-rgb), 0.28);
    border-radius: var(--radio, 22px);
    background: rgba(255, 255, 255, 0.72);
    text-align: center;
}

.estado-vacio-listado strong {
    display: block;
    margin: 0;
    color: var(--texto, var(--identidad-texto));
    font-size: 1.05rem;
}

.estado-vacio-listado p {
    max-width: 620px;
    margin: 8px auto 0;
    color: var(--texto-suave, #607579);
}

@media (max-width: 700px) {
    .especialidad-imagen,
    .servicio-imagen {
        min-height: 190px;
    }

    .profesional-foto,
    .colaborador-foto {
        min-height: 240px;
    }

    .estado-vacio-listado {
        padding: 22px 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .especialidades-grid > .especialidad,
    .servicios-grid > .servicio,
    .profesionales-grid > .profesional,
    .colaboradores-grid > .colaborador-card {
        transition: none;
    }

    .especialidades-grid > .especialidad:hover,
    .especialidades-grid > .especialidad:focus-within,
    .servicios-grid > .servicio:hover,
    .servicios-grid > .servicio:focus-within,
    .profesionales-grid > .profesional:hover,
    .profesionales-grid > .profesional:focus-within,
    .colaboradores-grid > .colaborador-card:hover,
    .colaboradores-grid > .colaborador-card:focus-within {
        transform: none;
    }
}

/* R4.8J.3 — textos administrables y tarjetas sin desborde */
.especialidad-enlace,
.servicio-enlace,
.profesional-enlace,
.colaborador-enlace,
.estado-vacio-listado,
.estado-vacio-listado strong,
.estado-vacio-listado p {
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal;
}

.especialidades-grid,
.servicios-grid,
.profesionales-grid,
.colaboradores-grid {
    min-width: 0;
    max-width: 100%;
}
