/* Cards de programa (parrillas de la home y de las fichas de universidad).
   Foto a sangre con velo degradado del color de la universidad, texto blanco encima. */
.card-programa { position: relative; display: flex; flex-direction: column; justify-content: space-between; height: 100%; min-height: 27rem; border-radius: var(--radius); overflow: hidden; isolation: isolate; background: var(--uni-color, var(--primary)); color: #fff; text-decoration: none; box-shadow: 0 6px 24px rgba(0,0,0,.14); transition: transform .25s ease, box-shadow .25s ease; }
.card-programa:hover, .card-programa:focus-visible { color: #fff; transform: translateY(-3px); box-shadow: 0 18px 44px rgba(0,0,0,.26); }
.card-programa:focus-visible { outline: 3px solid var(--secondary); outline-offset: 3px; }

/* Capas de fondo: foto, velo degradado y refuerzo del color en hover */
.card-programa .card-img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center; transform: scale(1.001); transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.card-programa:hover .card-img { transform: scale(1.06); }
.card-velo { position: absolute; inset: 0; z-index: -1; pointer-events: none; background:
  linear-gradient(to top,
    color-mix(in srgb, var(--uni-color, var(--primary)) 96%, transparent) 0%,
    color-mix(in srgb, var(--uni-color, var(--primary)) 92%, transparent) 34%,
    color-mix(in srgb, var(--uni-color, var(--primary)) 66%, transparent) 62%,
    color-mix(in srgb, var(--uni-color, var(--primary)) 24%, transparent) 100%),
  linear-gradient(to bottom, rgba(0,0,0,.42) 0%, rgba(0,0,0,0) 34%); }
.card-programa::after { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--uni-color, var(--primary)); opacity: 0; transition: opacity .3s ease; pointer-events: none; }
.card-programa:hover::after { opacity: .2; }

/* Cabecera: chip de tipo y logo de la universidad */
.card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: .75rem; padding: 1.1rem 1.25rem 0; }
.card-tipo { font-family: 'Montserrat', sans-serif; font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; padding: .38rem .75rem; border-radius: 999px; white-space: nowrap; line-height: 1; background: color-mix(in srgb, var(--uni-color, var(--primary)) 90%, transparent); box-shadow: inset 0 0 0 1px rgba(255,255,255,.28), 0 2px 8px rgba(0,0,0,.18); }
.card-logo { max-height: 34px; max-width: 165px; width: auto; object-fit: contain; flex-shrink: 0; filter: drop-shadow(0 1px 4px rgba(0,0,0,.45)); }
.card-logo-oscuro { background: #fff; padding: .3rem .5rem; border-radius: 8px; filter: none; }

/* Cuerpo empujado al pie; la parte alta de la card deja respirar la foto */
.card-body-programa { display: flex; flex-direction: column; margin-top: auto; padding: 3.5rem 1.25rem 1.2rem; }
.card-programa h3 { font-family: 'Montserrat', sans-serif; font-size: 1.22rem; line-height: 1.25; font-weight: 700; color: #fff; margin: 0 0 .5rem; text-shadow: 0 1px 3px rgba(0,0,0,.3); }
.card-resumen { font-size: .88rem; line-height: 1.5; color: rgba(255,255,255,.9); margin: 0 0 .95rem; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card-meta { display: flex; flex-wrap: wrap; gap: .3rem .85rem; font-size: .8rem; font-weight: 600; color: rgba(255,255,255,.94); margin-bottom: .9rem; }
.card-meta span { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; }
.card-meta i { color: #fff; font-size: .78rem; }

/* Pie: plazas y CTA con chevron blanco */
.card-foot { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding-top: .85rem; border-top: 1px solid rgba(255,255,255,.24); }
.card-plazas { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; font-weight: 700; color: #fff; background: var(--secondary); box-shadow: 0 2px 8px rgba(0,0,0,.18); padding: .25rem .6rem; border-radius: 999px; white-space: nowrap; }
.card-programa .card-cta { display: inline-flex; align-items: center; gap: .4rem; margin: 0 0 0 auto; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: .9rem; color: #fff; white-space: nowrap; }
.card-programa .card-cta i { color: #fff; font-size: .8rem; transition: transform .2s ease; }
.card-programa:hover .card-cta i { transform: translateX(4px); }

@media (max-width: 575.98px) {
  .card-programa { min-height: 24rem; }
  .card-body-programa { padding: 3rem 1.1rem 1.1rem; }
  .card-top { padding: 1rem 1.1rem 0; }
}
@media (prefers-reduced-motion: reduce) {
  .card-programa, .card-programa .card-img, .card-programa::after, .card-programa .card-cta i { transition: none; }
  .card-programa:hover { transform: none; }
  .card-programa:hover .card-img { transform: scale(1.001); }
  .card-programa:hover .card-cta i { transform: none; }
}

/* Logo de la Fundación General de la USAL un 20 % más grande */
.card-logo[src*="logo-fusal"] { max-height: 49px; max-width: 238px; }
