/* La page de l'enseignement : ce qui lui est propre. Le reste est dans site.css.
   Accent : l'azur. L'image d'ouverture est calculée, pas générée : ce sont les bassins
   d'attraction de la méthode de Newton pour z^3 = 1 (atelier-site/newton.py). */

.ensino { --accent: var(--azur); --accent-fond: var(--azur); --sur-accent: #0f1115; }

/* ── Ouverture ────────────────────────────────────────────────────────────── */
.ensino .hero h1 { font-size: clamp(1.25rem, 4.4vw, 3.4rem); }
.ensino .hero h1 span { display: block; }
.ensino .hero-image { object-position: 50% 62%; }
.hero-legende { margin-top: 1.6rem; }
.ensino i { font-family: var(--didone); font-size: 1.06em; }

/* ── Les unités curriculaires ─────────────────────────────────────────────── */
.semestre {
  margin: clamp(2rem, 4vw, 2.8rem) 0 1rem;
  font-family: var(--mono); font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--discret);
}
.ucs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(1rem, 2.2vw, 1.6rem); margin: 0; padding: 0; list-style: none; }
.uc { display: flex; flex-direction: column; padding: clamp(1.3rem, 2.8vw, 2rem); }
.uc h4 { margin: 1rem 0 .2rem; font-weight: 800; font-size: 1.22em; line-height: 1.22; text-wrap: balance; }
.uc-curso { font-size: .92em; color: var(--discret); }
.uc > p:not(.etat):not(.uc-curso):not(.uc-ficha) { color: var(--doux); }
/* tous les cadres ont la même hauteur et se posent au bas de la carte, au-dessus du lien :
   deux cartes voisines ont donc leurs cadres alignés */
.uc-formula {
  margin-top: auto; height: 7.6rem; padding: 0 1rem;
  display: flex; align-items: center; overflow-x: auto; overflow-y: hidden;
  background: var(--creux); border: 1px solid var(--trait); border-radius: .7rem;
  font-size: 1.16em; color: var(--texte);
}
.uc-formula math { flex: 0 0 auto; margin: auto; }
.ensino math { font-family: "Latin Modern Math", "STIX Two Math", "Cambria Math", math; }
.uc-ficha { margin: 1.1rem 0 0; }

/* ── La thèse ─────────────────────────────────────────────────────────────── */
.tese { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: clamp(2rem, 5vw, 4rem); }
.tese h2 { margin-top: 1.1rem; }
.tese-titulo { font-family: var(--didone); font-optical-sizing: auto; font-size: 1.45em; line-height: 1.25; color: var(--texte); }
.tese-texte > p:not(.etat):not(.tese-titulo):not(.actions) { color: var(--doux); }
.tese .terminal { margin-top: 3.4rem; }

/* ── Le parcours ──────────────────────────────────────────────────────────── */
.percurso { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; gap: clamp(2rem, 6vw, 5rem); }

@media (max-width: 760px) {
  .ensino .hero h1 { font-size: clamp(1.25rem, 5.4vw, 2.6rem); }
  .ucs { grid-template-columns: minmax(0, 1fr); }
  .tese { grid-template-columns: minmax(0, 1fr); }
  .tese .terminal { margin-top: 0; }
  .percurso { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
}
