/* Bloques "Plan de estudios" (con CTA) y "Requisitos de acceso" de la ficha de programa. */

/* --- Plan de estudios --- */
.plan-estudios { margin-top: 1rem; }
.plan-estudios .accordion-button { padding: .85rem 1.1rem; font-size: 1rem; }
.plan-estudios .accordion-button::after { margin-left: 1rem; } /* la flecha no reparte el hueco con la pastilla */
.plan-estudios .accordion-button .ects-bloque { margin-left: auto; font-family: 'Open Sans', sans-serif; font-weight: 600; font-size: .78rem; color: var(--gray-dark); background: var(--gray-medium); border-radius: 999px; padding: .15rem .6rem; }
.plan-estudios .accordion-button:not(.collapsed) .ects-bloque { background: #fff; }
.tabla-plan { width: 100%; border-collapse: collapse; font-size: .92rem; margin: 0; }
.plan-estudios:not(.accordion) .tabla-plan { border: 1px solid var(--gray-medium); border-radius: 10px; overflow: hidden; }
.tabla-plan th { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: .78rem; text-transform: uppercase; letter-spacing: .03em; color: var(--primary); background: #e8f1ef; padding: .6rem .9rem; text-align: left; }
.tabla-plan td { padding: .55rem .9rem; border-top: 1px solid var(--gray-medium); vertical-align: middle; color: var(--text-dark); }
.tabla-plan tbody tr:nth-child(even) td { background: #fafafa; }
.tabla-plan .col-trim { width: 3.6rem; text-align: center; color: var(--gray-dark); }
.tabla-plan .col-ects { width: 4.2rem; text-align: center; font-weight: 600; }
.tabla-plan .col-tipo { width: 4.6rem; text-align: center; }
.tipo-asig { display: inline-block; min-width: 2.6rem; padding: .1rem .45rem; border-radius: 6px; background: var(--gray-medium); color: var(--gray-dark); font-size: .74rem; font-weight: 700; letter-spacing: .02em; }
.leyenda-plan { font-size: .78rem; color: var(--gray-dark); margin: .8rem 0 0; }
.leyenda-plan strong { color: var(--primary); }
.plan-estudios h3.h6 { margin: 1.2rem 0 .5rem; }

/* --- Llamada a la acción tras el plan --- */
/* Mismo fondo que el hero de la ficha: foto de la universidad con degradado de verde al color de la universidad. */
.cta-programa { position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 1.2rem; margin-top: 1.4rem; padding: 1.2rem 1.4rem; border-radius: var(--radius); background: var(--primary) linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%); color: #fff; box-shadow: var(--shadow); }
.cta-programa--foto { background: var(--hero-img) center / cover no-repeat; }
.cta-programa--foto::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to right, rgba(0,83,72,.96) 0%, rgba(0,83,72,.90) 40%, color-mix(in srgb, var(--uni-color, var(--primary-dark)) 78%, transparent) 78%, color-mix(in srgb, var(--uni-color, var(--primary-dark)) 68%, transparent) 100%); }
.cta-programa > * { position: relative; z-index: 1; }
.cta-programa__texto { display: flex; flex-direction: column; gap: .2rem; }
.cta-programa__texto strong { font-family: 'Montserrat', sans-serif; font-size: 1.05rem; }
.cta-programa__texto span { font-size: .92rem; opacity: .92; }
.cta-programa .btn { white-space: nowrap; flex-shrink: 0; }
.cta-programa .btn i { margin-left: .3rem; font-size: .8em; }

/* --- Requisitos de acceso --- */
.requisitos-acceso h3 { font-size: 1.05rem; margin: 1.4rem 0 .5rem; }
.requisitos-acceso h3:first-child { margin-top: .5rem; }
.requisitos-acceso ul, .requisitos-acceso ol { padding-left: 1.3rem; }
.requisitos-acceso li { margin-bottom: .45rem; }
.requisitos-acceso li ul { margin-top: .35rem; }
/* Listas largas de elementos cortos (titulaciones que dan acceso): a dos columnas y apretadas. */
.requisitos-acceso .lista-compacta { columns: 2; column-gap: 2rem; padding-left: 1.1rem; margin-bottom: 1rem; font-size: .93rem; }
.requisitos-acceso .lista-compacta li { break-inside: avoid; margin-bottom: .15rem; }
/* Listas largas plegadas: solo los 8 primeros elementos hasta pulsar "Ver las N titulaciones". */
.requisitos-acceso .lista-larga { margin-bottom: .3rem; }
.requisitos-acceso .lista-larga:not(.abierta) li:nth-child(n+9) { display: none; }
.requisitos-acceso .lista-larga__mas { display: inline-block; margin: 0 0 1.2rem; padding: 0; border: 0; background: none; font-size: .88rem; font-weight: 600; color: var(--secondary); cursor: pointer; }
.requisitos-acceso .lista-larga__mas:hover { color: var(--secondary-dark); }
.requisitos-acceso .lista-larga__mas i { font-size: .75em; margin-left: .2rem; transition: transform .2s; }
.requisitos-acceso .lista-larga__mas[aria-expanded="true"] i { transform: rotate(180deg); }

@media (max-width: 767.98px) {
  .tabla-plan { font-size: .85rem; }
  .tabla-plan th, .tabla-plan td { padding: .5rem .55rem; }
  .tabla-plan .col-trim { width: 2.8rem; }
  .tabla-plan .col-ects { width: 3.2rem; }
  .tabla-plan .col-tipo { width: 3.8rem; }
  .requisitos-acceso .lista-compacta { columns: 1; }
  .cta-programa { flex-direction: column; align-items: stretch; text-align: center; }
  .cta-programa .btn { width: 100%; }
}
