/**
 * Componente común: card-servicio
 *
 * Tarjeta de servicio con `descripcion_corta`.
 * Usada en T-02, T-14, T-18 y en common/related/ para el tipo `servicio`.
 *
 * Clases raíz del componente:
 *   .pf-card-servicio                    bloque
 *   .pf-card-servicio--default           variante de listado
 *   .pf-card-servicio--destacada         variante grande con indicadores
 *   .pf-card-servicio--compact           variante sin imagen (relacionados, 404)
 *   .pf-card-servicio__media/__image     imagen destacada
 *   .pf-card-servicio__body              columna de texto
 *   .pf-card-servicio__terms/__term      píldoras de categoria-de-servicio
 *   .pf-card-servicio__title/__link      titular
 *   .pf-card-servicio__excerpt           descripcion_corta
 *   .pf-card-servicio__cta               pista de enlace
 *
 * DIRECCIÓN «EXPEDIENTE» (docs/DISENO-EXPEDIENTE.md, tanda 11):
 *   - Una sola señal de hover: el borde pasa a `--pf-color-border-strong`. Sin
 *     `translateY`, sin sombra, sin borde teal; la transición solo anima el borde.
 *   - Sin foco propio: el enlace del titular hereda el anillo global de
 *     style.css (`--pf-color-focus`, 2px, offset 2px).
 *   - Los términos dejan las mayúsculas: 13px, peso 400, borde de 1px y fondo
 *     `surface`. En oscuro el fondo alterno se confundía con la tarjeta (#77);
 *     el borde es lo que la hace legible con seguridad.
 *   - «Ver servicio» en `--pf-color-link` (teal, el color de «más información»
 *     de tarjeta), peso 400, subrayado solo en hover de la tarjeta.
 *   - El titular no declara color: h1–h6 ya son `--pf-color-heading`.
 *
 * Colores, espacios, radios y tipografía salen del vocabulario canónico de
 * tokens que define style.css §1 (agente core). SIN literal de respaldo: un
 * `var(--x, #0b5fff)` se queda SIEMPRE con el literal cuando el token no
 * existe, así que el respaldo no protegía de nada, enmascaraba el fallo y hacía
 * que la tarjeta pintara un azul inventado en vez de la paleta de marca. Si un
 * token falta, tiene que notarse. Ver issue #60 y DEC-038.
 *
 * @package pfuture
 * @module servicios
 */

.pf-card-servicio {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    background: var(--pf-color-surface);
    border: 1px solid var(--pf-color-border);
    border-radius: var(--pf-radius-card);
    transition: border-color var(--pf-transition);
}

.pf-card-servicio:hover,
.pf-card-servicio:focus-within {
    border-color: var(--pf-color-border-strong);
}

.pf-card-servicio__media {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--pf-color-bg-alt);
}

.pf-card-servicio__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pf-card-servicio__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: var(--pf-space-sm);
    padding: var(--pf-space-md);
}

.pf-card-servicio__terms {
    display: flex;
    flex-wrap: wrap;
    gap: var(--pf-space-2xs);
    margin: 0;
    padding: 0;
    list-style: none;
}

.pf-card-servicio__term {
    padding: 0.15em 0.7em;
    border: var(--pf-rule);
    border-radius: var(--pf-radius-pill);
    background: var(--pf-color-surface);
    color: var(--pf-color-text-soft);
    font-size: var(--pf-text-xs);
    font-weight: var(--pf-weight-regular);
    line-height: var(--pf-leading-normal);
    /* Una píldora no parte línea: «Desarrollo de Software» es una unidad. */
    white-space: nowrap;
}

.pf-card-servicio__title {
    margin: 0;
    font-size: var(--pf-text-lg);
    line-height: var(--pf-leading-snug);
}

.pf-card-servicio__link {
    color: inherit;
    text-decoration: none;
}

/* El enlace del título cubre la tarjeta: un solo destino, un solo tabulador. */
.pf-card-servicio__link::after {
    content: "";
    position: absolute;
    inset: 0;
}

.pf-card-servicio__excerpt {
    margin: 0;
    color: var(--pf-color-text-soft);
    font-size: var(--pf-text-sm);
    line-height: var(--pf-leading-normal);
}

.pf-card-servicio__cta {
    margin: auto 0 0;
    padding-top: var(--pf-space-sm);
    color: var(--pf-color-link);
    font-size: var(--pf-text-sm);
    font-weight: var(--pf-weight-regular);
    text-decoration: none;
    text-underline-offset: var(--pf-underline-offset);
}

.pf-card-servicio:hover .pf-card-servicio__cta,
.pf-card-servicio:focus-within .pf-card-servicio__cta {
    text-decoration: underline;
}

/* Variante destacada: ficha grande con indicadores. */
.pf-card-servicio--destacada .pf-card-servicio__body {
    padding: var(--pf-space-lg);
}

.pf-card-servicio--destacada .pf-card-servicio__title {
    font-size: var(--pf-text-xl);
}

/* Variante compacta: sin imagen, para relacionados y 404. */
.pf-card-servicio--compact .pf-card-servicio__media {
    display: none;
}

@media (prefers-reduced-motion: reduce) {
    .pf-card-servicio {
        transition: none;
    }
}


/* El dibujo de la ficha, a 40px, encima del título. Tinta de marca. */
.pf-card-servicio__pictograma {
    margin-block-end: var(--pf-space-sm);
    color: var(--pf-color-brand);
}
