/* CEFAT International · Edfield / Manrope · responsive editorial grid */
@font-face {
  font-family: Manrope;
  src: url("../fonts/manrope-400.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("../fonts/manrope-500.ttf") format("truetype");
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("../fonts/manrope-600.ttf") format("truetype");
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("../fonts/manrope-700.ttf") format("truetype");
  font-weight: 700;
  font-display: swap;
}
:root {
  --rouge: #900b09;
  --rouge-fonce: #710806;
  --rouge-clair: #bb2420;
  --rouge-pale: #f9eeed;
  --bleu: #01293a;
  --bleu-fonce: #01212f;
  --bleu-pale: #ebf2f5;
  --texte: #01293a;
  --texte-doux: #555f63;
  --gris: #f8fbfc;
  --gris-2: #ebf2f5;
  --bordure: #e2ebee;
  --blanc: #fff;
  --titres: Manrope, Arial, sans-serif;
  --corps: Manrope, Arial, sans-serif;
  --conteneur: 1280px;
  --gutter: 48px;
  --transition: 180ms ease;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 24px;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
  background: #fff;
  color: var(--texte-doux);
  font: 500 16px/1.5 var(--corps);
}
img {
  display: block;
  max-width: 100%;
}
a {
  color: inherit;
  text-decoration: none;
}
a,
button {
  touch-action: manipulation;
}
button,
input,
select,
textarea {
  font: inherit;
}
button,
a,
input,
select,
textarea,
summary {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
a:hover {
  color: var(--rouge);
}
:focus-visible {
  outline: 3px solid #ab5029;
  outline-offset: 5px;
}
p {
  margin: 0 0 0.7em;
}
p:last-child {
  margin-bottom: 0;
}
ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
ol {
  padding-left: 1.3em;
}
address {
  font-style: normal;
}
svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
  flex-shrink: 0;
  vertical-align: middle;
}
strong {
  font-weight: 700;
  color: var(--texte);
}
h1,
h2,
h3,
h4 {
  margin: 0 0 0.45em;
  color: var(--texte);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.035em;
}
h1 {
  font-size: clamp(36px, 4vw, 56px);
}
h2 {
  font-size: clamp(28px, 3.1vw, 44px);
}
h3 {
  font-size: 22px;
  letter-spacing: -0.02em;
}
h4 {
  font-size: 18px;
  letter-spacing: -0.01em;
}
small {
  font-size: 13px;
  line-height: 1.5;
}
blockquote {
  margin: 0;
}
figure {
  margin: 0;
}
button {
  border-radius: 0;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.lien-evitement {
  position: fixed;
  left: 16px;
  top: 12px;
  z-index: 300;
  background: #fff;
  padding: 12px 18px;
  transform: translateY(-180%);
}
.lien-evitement:focus {
  transform: none;
}
[hidden],
.est-masque {
  display: none !important;
}
.conteneur {
  width: min(var(--conteneur), calc(100% - var(--gutter) * 2));
  margin-inline: auto;
}
.section {
  padding: 64px 0;
}
.section--serre {
  padding: 32px 0;
}
.section--gris {
  background: var(--gris);
}
.section--sombre {
  background: var(--bleu);
  color: #d6e2e6;
}
.section--sombre h2,
.section--sombre h3,
.section--sombre strong {
  color: #fff;
}
.centre {
  text-align: center;
}
.section__tete {
  max-width: 740px;
  margin-bottom: 28px;
}
.section__tete--centre {
  margin-inline: auto;
  text-align: center;
}
.section__tete p {
  max-width: 620px;
  margin-inline: auto;
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 32px;
  margin-bottom: 28px;
}
.section-heading h2 {
  margin: 0;
}
.section-heading > p {
  max-width: 470px;
  margin: 0;
}
.etiquette {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--texte);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  margin-bottom: 16px;
}
.etiquette::before {
  content: "";
  width: 4px;
  height: 4px;
  background: currentColor;
  flex: none;
}
.centre .etiquette,
.section__tete--centre .etiquette {
  justify-content: center;
}
.etiquette--rouge {
  color: var(--rouge);
}
.grille-2,
.grille-3,
.grille-4 {
  display: grid;
  gap: 20px 24px;
}
.grille-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grille-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grille-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.grille--asym {
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 64px;
}
.grille--lateral {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 64px;
  align-items: start;
}
.grille--faq {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 96px;
}
.grille--serree {
  gap: 0;
}
.actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  min-height: 48px;
  padding: 12px 24px;
  background: var(--rouge);
  color: #fff;
  border: 1px solid transparent;
  border-radius: 4px;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.5;
  transition:
    background var(--transition),
    color var(--transition);
}
.btn:hover {
  background: var(--rouge-fonce);
  color: #fff;
}
.btn--grand {
  padding: 16px 28px;
  min-height: 52px;
}
.btn--white {
  background: #fff;
  color: var(--texte);
}
.btn--white:hover {
  background: var(--bleu-pale);
  color: var(--texte);
}
.btn--bleu {
  background: var(--bleu);
}
.btn--bleu:hover {
  background: var(--bleu-fonce);
}
.btn--outline {
  background: var(--bleu-pale);
  color: var(--texte);
}
.btn--outline:hover {
  background: var(--bleu);
  color: #fff;
}
.btn--ghost {
  background: rgb(255 255 255/0.12);
  color: white;
  border-color: rgb(255 255 255/0.24);
}
.btn--ghost:hover {
  background: white;
  color: var(--texte);
}
.btn--bloc {
  width: 100%;
}
.lien-fleche {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  font-weight: 600;
  font-size: 14px;
  color: var(--texte);
}
.lien-fleche svg {
  width: 18px;
  height: 18px;
}
.asset-icon {
  width: 20px;
  height: 20px;
  object-fit: contain;
  flex: none;
}
.photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 6px;
}
/* Compact wrapping for menus and short interface labels. */
.nav__links,
.nav__actions,
.nav__mobile-extra,
.footer a,
.toc a,
.encart a,
.fil,
.filtres button,
.btn {
  line-height: 1.25;
}
.fil {
  row-gap: 4px;
}
/* Navigation: the three-column Edfield masthead. */
.nav {
  position: relative;
  z-index: 30;
  border-bottom: 1px solid var(--bordure);
  background: #fff;
  color: var(--texte);
}
.nav__inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  min-height: 76px;
  align-items: stretch;
  max-width: calc(var(--conteneur) + var(--gutter) * 2);
  margin: auto;
}
.nav__links {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 20px var(--gutter);
  border-right: 1px solid var(--bordure);
  font-size: 14px;
  white-space: nowrap;
}
.nav__links > a[aria-current] {
  font-weight: 700;
}
.nav__links > a[aria-current]::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  background: var(--rouge);
  margin-right: 7px;
  vertical-align: middle;
}
.nav__marque {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 10px 38px;
  min-width: 240px;
}
.nav__rubrique {
  position: relative;
}
.nav__rubrique summary {
  display: flex;
  align-items: center;
  gap: 6px;
  list-style: none;
  cursor: pointer;
}
.nav__rubrique summary::-webkit-details-marker {
  display: none;
}
.nav__rubrique summary svg {
  width: 14px;
  height: 14px;
  transition: transform 180ms ease;
}
.nav__rubrique[open] summary svg {
  transform: rotate(180deg);
}
.nav__rubrique.est-active > summary {
  color: var(--rouge);
  font-weight: 700;
}
.nav__sous-menu {
  position: absolute;
  z-index: 35;
  top: 100%;
  left: -16px;
  min-width: 240px;
  padding: 14px 6px 6px;
  background: #fff;
  border-bottom: 2px solid var(--rouge);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 12px 24px rgb(1 41 58 / 0.12);
}
.nav__sous-menu a {
  display: block;
  padding: 13px 12px;
  color: var(--bleu);
  font-size: 13px;
  line-height: 1.3;
  border-radius: 3px;
}
.nav__sous-menu a:hover,
.nav__sous-menu a:focus-visible,
.nav__sous-menu a[aria-current] {
  background: var(--bleu-pale);
  color: var(--rouge);
}
.nav__sous-menu a[aria-current] {
  font-weight: 700;
}
@media (prefers-reduced-motion: reduce) {
  .nav__rubrique summary svg {
    transition: none;
  }
}
.nav__marque img,
.footer__marque img,
.portail__marque img {
  filter: url("../img/logo-teinte.svg#bordeaux");
}
.nav__marque img {
  object-fit: contain;
  width: 84px;
  height: 60px;
  background: white;
  border-radius: 3px;
}
.nav__marque span {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.nav__marque strong {
  font-size: 25px;
  line-height: 1;
  letter-spacing: -1px;
}
.nav__marque small {
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.13em;
}
.nav__actions {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: flex-end;
  padding: 16px var(--gutter);
  border-left: 1px solid var(--bordure);
  font-size: 13px;
}
.nav__actions > a {
  white-space: nowrap;
}
.nav__actions > a[aria-current] {
  color: var(--rouge);
  font-weight: 700;
}
.nav__burger,
.nav__mobile-extra {
  display: none;
}
.page-accueil .nav {
  position: relative;
  width: 100%;
  background: #fff;
  color: var(--bleu);
  border-color: #d5e2e8;
}
.page-accueil .nav__inner {
  grid-template-columns: 1fr auto 1fr;
}
.page-accueil .nav__marque {
  min-width: 240px;
  padding: 10px 38px;
}
.page-accueil .nav__marque img {
  width: 84px;
  height: 60px;
  background: transparent;
  border-radius: 0;
}
.page-accueil .nav__links,
.page-accueil .nav__actions {
  border-color: var(--bordure);
}
.page-accueil .nav__links > a[aria-current] {
  color: var(--rouge);
}
.page-accueil .nav__links > a[aria-current]::before {
  background: var(--rouge-clair);
}
.page-accueil .nav__actions .btn {
  background: var(--rouge);
  border-color: var(--rouge);
  color: #fff;
}
.page-accueil .nav a:not(.btn):hover {
  color: var(--rouge);
  text-decoration: underline;
  text-underline-offset: 6px;
}
.page-accueil .nav__actions .btn:hover {
  background: var(--rouge-fonce);
  border-color: var(--rouge-fonce);
}
/* Homepage */
.ed-hero {
  --hero-gutter: max(var(--gutter), calc((100% - var(--conteneur)) / 2));
  position: relative;
  isolation: isolate;
  overflow: hidden;
  margin: 0;
  background: var(--bleu);
  color: #fff;
  touch-action: pan-y;
}
.ed-hero__slides {
  display: grid;
}
.hero__slide {
  grid-area: 1 / 1;
  position: relative;
  z-index: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1200ms cubic-bezier(0.45, 0, 0.55, 1);
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(580px, 72svh, 740px);
  padding: 64px var(--hero-gutter) 120px;
  background: var(--bleu);
}
.hero__slide.est-actif {
  z-index: 1;
  opacity: 1;
  pointer-events: auto;
}
.ed-hero__visual,
.ed-hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
}
.ed-hero__image {
  object-fit: cover;
  object-position: center 42%;
}
.ed-hero__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    var(--bleu) 0%,
    color-mix(in srgb, var(--bleu) 95%, transparent) 28%,
    color-mix(in srgb, var(--bleu) 65%, transparent) 56%,
    color-mix(in srgb, var(--bleu) 18%, transparent) 100%
  );
}
.ed-hero__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--conteneur);
  text-align: left;
  transform: translateY(24px);
}
.ed-hero__emblem {
  display: block;
  width: 112px;
  height: 80px;
  object-fit: contain;
  margin: 0 auto 12px;
  padding: 5px;
  border-radius: 4px;
  background: white;
}
.ed-hero__eyebrow {
  display: block;
  margin-bottom: 12px;
  color: #fff;
  font-size: 10px;
  line-height: 1.5;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.ed-hero .ed-hero__title {
  max-width: 700px;
  margin: 0 0 18px;
  color: #fff;
  font-family: var(--titres);
  font-size: clamp(38px, 4vw, 56px);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.035em;
  text-wrap: balance;
}
.ed-hero__description {
  max-width: 540px;
  margin: 0 0 24px;
  color: #d6e2e6;
  font-size: 16px;
  line-height: 1.5;
  text-wrap: pretty;
}
.ed-hero .ed-hero__cta {
  min-height: 48px;
  padding: 14px 24px;
  border: 1px solid var(--rouge);
  border-radius: 4px;
  background: var(--rouge);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
}
.ed-hero .ed-hero__cta:hover {
  background: #b51a17;
  border-color: #b51a17;
}
.ed-hero__arrow,
.ed-hero__pause {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1px solid rgb(255 255 255 / 0.65);
  border-radius: 4px;
  background: color-mix(in srgb, var(--bleu) 45%, transparent);
  color: #fff;
  transition:
    background var(--transition),
    border-color var(--transition);
}
.ed-hero__arrow {
  position: absolute;
  z-index: 2;
  bottom: 32px;
}
.ed-hero__arrow--prev {
  right: calc(var(--hero-gutter) + 64px);
}
.ed-hero__arrow--next {
  right: var(--hero-gutter);
}
.ed-hero__arrow:hover,
.ed-hero__pause:hover {
  background: var(--rouge);
  border-color: #fff;
}
.ed-hero__arrow svg {
  width: 24px;
  height: 24px;
}
.ed-hero__navigation {
  position: absolute;
  z-index: 2;
  left: var(--hero-gutter);
  bottom: 36px;
  display: flex;
  align-items: center;
  gap: 18px;
}
.ed-hero__points {
  display: flex;
  gap: 2px;
}
.ed-hero__points button {
  display: grid;
  place-items: center;
  width: 36px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
}
.ed-hero__points span {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgb(255 255 255 / 0.45);
  transition:
    background 250ms,
    box-shadow 250ms;
}
.ed-hero__points button[aria-current] span {
  background: #fff;
  box-shadow: 0 0 0 5px rgb(255 255 255 / 0.2);
}
.ed-hero__pause {
  width: 44px;
  height: 44px;
  border-color: rgb(255 255 255 / 0.35);
}
.ed-hero__pause svg {
  width: 18px;
  height: 18px;
}
.ed-hero :focus-visible {
  outline-color: #fff;
}
@media (max-width: 1000px) {
  .hero__slide {
    min-height: 620px;
    padding: 48px var(--hero-gutter) 112px;
  }
  .ed-hero .ed-hero__title {
    font-size: clamp(36px, 4.8vw, 48px);
  }
  .ed-hero__arrow {
    width: 46px;
    height: 46px;
  }
  .ed-hero__arrow--prev {
    right: calc(var(--hero-gutter) + 58px);
  }
  .ed-hero__arrow--next {
    right: var(--hero-gutter);
  }
}
@media (max-width: 700px) {
  .hero__slide {
    min-height: 600px;
    padding: 48px var(--hero-gutter) 112px;
  }
  .ed-hero__image {
    object-position: 55% center;
  }
  .ed-hero__visual::after {
    background: linear-gradient(
      180deg,
      color-mix(in srgb, var(--bleu) 45%, transparent),
      color-mix(in srgb, var(--bleu) 88%, transparent) 65%,
      var(--bleu)
    );
  }
  .ed-hero__emblem {
    width: 84px;
    height: 60px;
    margin-bottom: 12px;
  }
  .ed-hero__eyebrow {
    font-size: 9px;
    letter-spacing: 0.11em;
    margin-bottom: 12px;
  }
  .ed-hero .ed-hero__title {
    font-size: clamp(30px, 6.5vw, 40px);
    margin-bottom: 16px;
  }
  .ed-hero__description {
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 18px;
  }
  .ed-hero .ed-hero__cta {
    min-height: 48px;
    padding: 14px 22px;
    font-size: 14px;
  }
  .ed-hero__arrow {
    top: auto;
    bottom: 24px;
    transform: none;
    width: 44px;
    height: 44px;
  }
  .ed-hero__arrow--prev {
    right: calc(var(--hero-gutter) + 56px);
  }
  .ed-hero__arrow--next {
    right: var(--hero-gutter);
  }
  .ed-hero__navigation {
    bottom: 24px;
    gap: 6px;
  }
  .ed-hero__points button {
    width: 26px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero__slide {
    transition: none;
  }
}
.recherche-accueil {
  padding: 40px 0;
  background: var(--bleu);
  color: #d6e2e6;
  border-top: 1px solid #224453;
}
.recherche-accueil__ligne {
  display: grid;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
  align-items: center;
  gap: 28px;
}
@media (min-width: 1001px) {
  .recherche-accueil__entete {
    align-self: start;
    display: flex;
    align-items: center;
    min-height: 60px;
  }
}
.recherche-accueil .etiquette {
  color: #c1d0d7;
  margin-bottom: 10px;
}
.recherche-accueil h2 {
  color: #fff;
  font-size: clamp(24px, 2.3vw, 28px);
  line-height: 1.15;
  margin: 0;
}
.recherche-accueil__entete p {
  font-size: 14px;
  line-height: 1.5;
  margin: 0;
  max-width: 410px;
}
.recherche-accueil__champ {
  position: relative;
}
.recherche-accueil__form {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 6px 6px 6px 20px;
  border: 0;
  border-radius: 4px;
  background: #fff;
  color: var(--bleu);
  transition:
    box-shadow 200ms,
    border-color 200ms;
}
.recherche-accueil__form:focus-within {
  box-shadow: none;
}
.recherche-accueil__icone {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  transition:
    transform 200ms,
    color 200ms;
}
.recherche-accueil__form:focus-within .recherche-accueil__icone {
  transform: scale(1.1);
  color: var(--rouge);
}
.recherche-accueil__form input {
  flex: 1;
  min-width: 0;
  width: 100%;
  min-height: 48px;
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: var(--bleu);
  font: inherit;
  font-size: 16px;
  box-shadow: none;
  outline: none;
}
.recherche-accueil__form input:focus {
  border: 0;
  outline: none;
  box-shadow: none;
}
.recherche-accueil__form input:focus-visible {
  outline: none;
  background: var(--gris);
}
.recherche-accueil__form input::placeholder {
  color: #64737a;
}
.recherche-accueil__form .btn {
  flex-shrink: 0;
}
.recherche-accueil__suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 16px;
  align-items: center;
  margin-top: 12px;
  font-size: 13px;
}
.recherche-accueil__suggestions button,
.recherche-accueil__plus {
  padding: 8px 0;
  border: 0;
  background: transparent;
  color: #fff;
  font: inherit;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.recherche-accueil__suggestions a {
  margin-left: auto;
  color: #fff;
}
.recherche-accueil__statut {
  margin: 0;
  font-size: 12px;
  overflow-wrap: anywhere;
}
.recherche-accueil__resultats {
  position: absolute;
  z-index: 40;
  top: calc(100% + 8px);
  inset-inline: 0;
  max-height: min(420px, 55svh);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  background: #fff;
  color: var(--bleu);
  border-radius: 6px;
  box-shadow: 0 14px 40px rgb(1 33 47 / 0.22);
  animation: recherche-apparition 200ms ease-out;
  transition:
    opacity 180ms ease,
    transform 180ms ease;
}
.recherche-accueil__resultats.est-ferme {
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
}
.recherche-accueil__resume {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px 8px 18px;
  background: var(--bleu-pale);
}
.recherche-accueil__fermer {
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--bleu);
  font-size: 24px;
}
.recherche-accueil__fermer:hover {
  background: #d5e2e8;
}
.recherche-accueil__statut:empty {
  display: none;
}
.recherche-accueil.est-en-recherche .recherche-accueil__statut::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 8px;
  border: 2px solid #597b8c;
  border-top-color: var(--bleu);
  border-radius: 50%;
  vertical-align: -2px;
  animation: recherche-tour 650ms linear infinite;
}
.recherche-accueil__grille {
  display: flex;
  flex-direction: column;
}
.recherche-accueil__resultat {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px;
  column-gap: 14px;
  padding: 14px 18px;
  background: #fff;
  border-bottom: 1px solid var(--bordure);
  color: var(--bleu);
  transition: background 180ms;
}
.recherche-accueil__resultat:hover,
.recherche-accueil__resultat:focus-visible {
  background: var(--gris);
}
.recherche-accueil__cycle {
  grid-column: 1;
  font-size: 11px;
  color: var(--rouge);
  font-weight: 700;
  margin-bottom: 5px;
}
.recherche-accueil__resultat h3 {
  grid-column: 1;
  color: var(--bleu);
  font-size: 16px;
  line-height: 1.2;
  margin: 0 0 5px;
}
.recherche-accueil__resultat p {
  grid-column: 1;
  font-size: 12px;
  color: var(--texte-doux);
  line-height: 1.5;
  margin: 0;
}
.recherche-accueil__lien {
  grid-column: 2;
  grid-row: 1 / span 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  align-self: center;
  color: var(--bleu);
  font-size: 0;
  font-weight: 700;
}
.recherche-accueil__lien svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
  flex-shrink: 0;
}
.recherche-accueil__vide {
  margin: 0;
  padding: 18px;
  font-size: 14px;
}
.recherche-accueil__vide a {
  color: var(--rouge);
  text-decoration: underline;
}
.recherche-accueil__plus {
  width: 100%;
  padding: 14px 18px;
  color: var(--bleu);
  font-size: 13px;
}
.recherche-accueil :focus-visible {
  outline-color: #b5d9e9;
}
.recherche-accueil__resultats :focus-visible {
  outline: 2px solid var(--bleu);
  outline-offset: -3px;
}
@keyframes recherche-tour {
  to {
    transform: rotate(360deg);
  }
}
@keyframes recherche-apparition {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (max-width: 1000px) {
  .recherche-accueil__ligne {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .recherche-accueil__entete p {
    max-width: none;
  }
  .recherche-accueil__grille {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .recherche-accueil {
    padding: 32px 0;
  }
  .recherche-accueil__form {
    flex-wrap: wrap;
    gap: 6px 10px;
    padding: 8px;
  }
  .recherche-accueil__icone {
    margin-left: 6px;
  }
  .recherche-accueil__form input {
    width: calc(100% - 40px);
  }
  .recherche-accueil__form .btn {
    width: 100%;
  }
  .recherche-accueil__suggestions a {
    margin-left: 0;
    flex-basis: 100%;
    padding-top: 8px;
  }
  .recherche-accueil__grille {
    grid-template-columns: 1fr;
  }
}
@media (prefers-reduced-motion: reduce) {
  .recherche-accueil *,
  .recherche-accueil *::before {
    animation: none !important;
    transition: none !important;
  }
}
.bienvenue__grille {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 4vw, 64px);
}
.bienvenue__contenu {
  padding-left: clamp(24px, 3vw, 40px);
  border-left: 1px solid var(--bordure);
}
.bienvenue .etiquette {
  margin-bottom: 14px;
  line-height: 1.3;
}
.bienvenue h2 {
  max-width: 620px;
  margin-bottom: 20px;
  font-family: var(--titres);
  font-size: 30px;
  line-height: 1.08;
  letter-spacing: -0.025em;
  text-wrap: pretty;
}
.bienvenue__mission {
  margin-bottom: 24px;
  font-size: 15px;
  line-height: 1.6;
}
.bienvenue .bienvenue__engagement {
  margin: 0;
  padding: 0 0 0 16px;
  border-left: 3px solid var(--rouge);
  color: var(--texte);
  font-size: 15px;
  line-height: 1.5;
  font-weight: 600;
}
@media (max-width: 900px) {
  .bienvenue__grille {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .bienvenue__contenu {
    padding: 24px 0 0;
    border-left: 0;
    border-top: 1px solid var(--bordure);
  }
}
@media (max-width: 700px) {
  .bienvenue h2 {
    font-size: 25px;
    margin-bottom: 16px;
  }
  .bienvenue__mission,
  .bienvenue .bienvenue__engagement {
    font-size: 14px;
  }
}
.intro-editorial {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 96px;
}
.intro-editorial h2 {
  font-size: 30px;
  line-height: 1.3;
  letter-spacing: -0.025em;
  max-width: 540px;
}
.intro-editorial p {
  font-size: 16px;
}
.intro-editorial .lien-fleche {
  margin-top: 16px;
}
.ed-values {
  background: var(--gris);
  border-top: 1px solid var(--bordure);
  border-bottom: 1px solid var(--bordure);
}
.ed-values__head {
  margin-bottom: 28px;
}
.ed-values__head .etiquette {
  margin-bottom: 12px;
  line-height: 1.3;
}
.ed-values__head h2 {
  margin: 0;
  max-width: 620px;
  font-size: 30px;
  line-height: 1.08;
  text-wrap: pretty;
}
.ed-values .grille-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.carte-atout {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  gap: 12px;
  padding: 24px;
  border: 1px solid var(--bordure);
  border-radius: 4px;
  background: var(--blanc);
}
.carte-atout__icone {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 4px;
  background: var(--rouge-pale);
  color: var(--rouge);
  font-size: 13px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.carte-atout h3 {
  align-self: center;
  font-size: 17px;
  line-height: 1.2;
  margin: 0;
  letter-spacing: 0;
}
.carte-atout p {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
}
.ed-campus {
  background: var(--rouge);
  color: #fff;
}
.ed-campus .etiquette,
.ed-campus h2 {
  color: #fff;
}
.ed-campus .section-heading {
  align-items: center;
}
.ed-campus .etiquette {
  margin-bottom: 12px;
  line-height: 1.3;
}
.ed-campus h2 {
  font-size: 30px;
  line-height: 1.08;
}
.ed-campus .section-heading > p {
  color: #f1d7d6;
  max-width: 450px;
  font-size: 14px;
}
.ed-campus__body {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 24px;
}
.ed-campus__image {
  position: relative;
  min-height: 400px;
  margin: 0;
  overflow: hidden;
  border-radius: 4px;
  background: var(--bleu-fonce);
}
.ed-campus__image > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 650ms ease-in-out;
}
.ed-campus__image > img.est-actif {
  opacity: 1;
}
.ed-campus__legende {
  position: absolute;
  z-index: 1;
  top: 20px;
  left: 20px;
  right: 20px;
  width: fit-content;
  max-width: calc(100% - 40px);
  padding: 12px 16px;
  background: rgb(1 33 47 / 0.88);
  border-radius: 4px;
  font-size: 14px;
  line-height: 1.3;
}
.ed-campus__legende strong {
  display: block;
  color: #fff;
}
.ed-campus__legende span {
  display: block;
  margin-top: 4px;
  color: #d6e2e6;
  font-size: 11px;
}
.ed-campus__image::after {
  content: "";
  position: absolute;
  inset: 50% 0 0;
  background: linear-gradient(transparent, rgb(1 33 47 / 0.7));
  pointer-events: none;
}
.ed-campus__image .btn {
  position: absolute;
  z-index: 1;
  bottom: 24px;
  left: 24px;
  max-width: calc(100% - 48px);
}
.ed-campus .grille-campus {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  border: 0;
}
.ed-campus .campus {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-content: start;
  gap: 4px 12px;
  padding: 20px;
  border: 1px solid rgb(255 255 255 / 0.25);
  border-radius: 4px;
  background: rgb(255 255 255 / 0.06);
  color: #fff;
  text-align: left;
  transition:
    background var(--transition),
    color var(--transition);
}
.ed-campus .campus svg {
  margin: 2px 0 0;
  color: currentColor;
}
.ed-campus .campus h3,
.ed-campus .campus__nom {
  margin: 0 0 4px;
  font-size: 17px;
  line-height: 1.2;
  color: currentColor;
  font-weight: 600;
}
.ed-campus .campus p,
.ed-campus .campus__pays,
.ed-campus .campus small {
  grid-column: 2;
  margin: 0;
  font-size: 13px;
  line-height: 1.35;
}
.ed-campus .campus--principal {
  grid-column: 1 / -1;
}
.ed-campus .campus[aria-pressed="true"] {
  background: var(--blanc);
  color: var(--texte);
}
.ed-campus .campus[aria-pressed="true"] svg {
  color: var(--rouge);
}
.ed-campus .campus:hover:not([aria-pressed="true"]) {
  background: rgb(255 255 255 / 0.15);
}
.ed-campus .campus:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}
.ed-campus .campus__action {
  grid-column: 2;
  margin-top: 6px;
  font-size: 11px;
  font-weight: 600;
}
.ed-campus__contact {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgb(255 255 255 / 0.25);
}
.ed-campus__contact p {
  margin: 0;
  font-size: 14px;
}
.ed-campus__contact .btn {
  flex-shrink: 0;
}
.grille-campus {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid var(--bordure);
}
.campus {
  padding: 32px 24px;
  border-right: 1px solid var(--bordure);
}
.campus:last-child {
  border-right: 0;
}
.campus svg {
  width: 18px;
  height: 18px;
  margin-bottom: 24px;
  color: var(--texte);
}
.campus h3 {
  font-size: 17px;
}
.campus p {
  font-size: 13px;
  margin-bottom: 6px;
}
.campus small {
  font-size: 11px;
}
.ed-programs .section-heading {
  align-items: end;
}
.ed-programs .section-heading h2 {
  font-size: 30px;
  line-height: 1.08;
}
.ed-programs__intro {
  max-width: 560px;
  margin: 12px 0 0;
  font-size: 14px;
  line-height: 1.4;
}
.ed-programs .section-heading > .btn {
  flex-shrink: 0;
}
.ed-programs .carte__corps {
  padding: 22px;
}
.ed-programs .carte__corps h3 {
  margin: 14px 0 12px;
  font-size: 20px;
  line-height: 1.15;
}
.ed-programs .carte__corps p {
  margin-bottom: 20px;
  font-size: 14px;
}
.ed-programs .carte__corps .btn {
  min-height: 44px;
}
.ed-programs__domaines {
  margin-top: 32px;
}
.ed-programs__domaines > h3 {
  margin-bottom: 12px;
  font-size: 18px;
  line-height: 1.2;
}
.ed-programs .grille-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.tuile {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 14px;
  font-weight: 600;
  border-bottom: 1px solid var(--bordure);
  padding: 24px 20px;
  color: var(--texte);
}
.tuile__icone {
  display: none;
}
.tuile:hover {
  background: var(--gris);
}
.ed-programs .grille-4 {
  margin-top: 0;
  column-gap: 24px;
  row-gap: 0;
}
.ed-programs .tuile {
  min-height: 64px;
  padding: 16px 8px;
  line-height: 1.2;
  transition:
    background var(--transition),
    color var(--transition);
}
.ed-programs .tuile svg {
  flex: none;
}
.featured-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.formation {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 28px;
  border: 1px solid var(--bordure);
  border-radius: 4px;
  background: var(--gris);
}
.formation--rouge {
  background: var(--bleu-pale);
}
.formation h3 {
  font-size: 24px;
  line-height: 1.15;
}
.formation__sous {
  font-size: 14px;
  margin-bottom: 20px;
}
.formation .badge {
  margin-bottom: 16px;
}
.formation .puces {
  font-size: 14px;
}
.formation__action {
  width: 100%;
  margin-top: auto;
  padding-top: 20px;
}
.page-accueil #formations .section-heading h2,
.page-accueil #evenements .section-heading h2,
.questions-accueil h2,
.admissions-banner h2 {
  font-size: 30px;
  line-height: 1.08;
  text-wrap: pretty;
}
.page-accueil #formations .section-heading > p {
  font-size: 14px;
  line-height: 1.4;
}
.page-accueil #formations .etiquette,
.page-accueil #evenements .etiquette,
.questions-accueil .etiquette,
.admissions-banner .etiquette {
  margin-bottom: 12px;
  line-height: 1.3;
}
.chiffres {
  background: var(--bleu);
  color: #baced5;
}
.chiffres h2,
.chiffres strong,
.chiffres .etiquette {
  color: #fff;
}
.chiffres__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.chiffres__citation {
  font-size: 22px;
  color: #fff;
}
.compteurs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.compteur {
  padding: 30px;
  border-left: 1px solid #285060;
  border-bottom: 1px solid #285060;
  display: flex;
  flex-direction: column;
}
.compteur strong {
  font-size: 56px;
  letter-spacing: -0.05em;
  font-weight: 500;
  line-height: 1.3;
}
.compteur span {
  font-size: 13px;
}
.temoignage {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--bordure);
  border-bottom: 1px solid var(--bordure);
}
.temoignage__fond {
  background-image: none !important;
  padding: 48px;
  border-right: 1px solid var(--bordure);
}
.temoignage__contenu > svg {
  color: var(--rouge);
  margin-bottom: 28px;
  width: 32px;
  height: 32px;
}
.temoignage blockquote {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--texte);
  letter-spacing: -0.025em;
}
.temoignage cite {
  display: block;
  font-style: normal;
  color: var(--texte);
  margin-top: 30px;
  font-size: 14px;
  font-weight: 700;
}
.temoignage cite span {
  display: block;
  margin-top: 4px;
  font-weight: 400;
  font-size: 12px;
  color: var(--texte-doux);
}
.temoignage__carte {
  padding: 48px;
  align-content: center;
  background: var(--gris);
}
.temoignage__carte h2 {
  font-size: 36px;
}
.temoignage__carte p {
  font-size: 15px;
  margin-bottom: 28px;
}
.events-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.event-card {
  overflow: hidden;
  border: 1px solid var(--bordure);
  border-radius: 4px;
  background: var(--gris);
}
.event-card > a {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.event-card > a:hover {
  color: inherit;
}
.event-card > a:hover .lien-fleche {
  color: var(--rouge);
}
.event-card > a:focus-visible {
  outline-offset: -4px;
}
.event-card__corps {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
  padding: 22px;
}
.event-card__corps .lien-fleche {
  margin-top: auto;
  padding-top: 16px;
  min-height: 44px;
  font-size: 13px;
}
.event-card img {
  width: 100%;
  aspect-ratio: 1.7;
  object-fit: cover;
  border-radius: 0;
}
.event-card small {
  display: block;
  margin: 0 0 12px;
  color: var(--rouge);
}
.event-card h3 {
  font-size: 20px;
  line-height: 1.15;
}
.event-card p {
  font-size: 14px;
}
.admissions-banner {
  background: var(--rouge);
  color: #f0dada;
}
.admissions-banner__inner {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
  gap: clamp(28px, 4vw, 56px);
  align-items: center;
}
.admissions-banner__inner > img {
  width: 100%;
  height: 320px;
  object-fit: cover;
  border-radius: 4px;
}
.admissions-banner .lien-fleche {
  color: #fff;
  min-height: 44px;
}
.admissions-banner h2,
.admissions-banner .etiquette {
  color: #fff;
}
.admissions-banner p {
  max-width: 480px;
  margin-bottom: 24px;
  font-size: 15px;
  line-height: 1.5;
}
/* Shared interior header */
.page-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 280px;
  border-bottom: 1px solid var(--bordure);
}
.page-header__titre {
  padding: 44px var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: end;
}
.page-header h1 {
  max-width: 650px;
  margin: 0;
  line-height: 1.12;
}
.page-header__description {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  padding: 44px var(--gutter);
  border-left: 1px solid var(--bordure);
}
.page-header__description p {
  max-width: 380px;
  font-size: 14px;
  margin: 0;
}
.page-header__description img {
  width: 140px;
  height: 140px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
}
.fil {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 12px;
  margin-bottom: 18px;
  color: #6b787e;
}
.fil a:hover {
  color: var(--rouge);
}
.page-fiche .page-header {
  background: var(--gris);
}
.page-fiche .page-header h1 {
  font-size: clamp(32px, 3.5vw, 52px);
}
.page-fiche .page-header__description img {
  width: 190px;
  height: 190px;
}
.page-fiche .page-header__description p {
  font-size: 15px;
}
/* Catalog and program pages */
.catalogue-heading {
  margin-bottom: 32px;
}
.catalogue-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 32px;
}
.filtres {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.filtres--centre {
  justify-content: center;
  margin-bottom: 40px;
}
.filtres button {
  border: 1px solid transparent;
  background: var(--gris-2);
  color: var(--texte);
  border-radius: 3px;
  padding: 9px 16px;
  min-height: 40px;
  font-size: 13px;
  transition: background var(--transition);
}
.filtres button[aria-pressed="true"] {
  background: var(--rouge);
  color: white;
}
.filtres button:hover {
  border-color: var(--rouge);
}
.search-field {
  border: 1px solid var(--bordure);
  background: var(--gris);
  padding: 11px 16px;
  width: 280px;
  border-radius: 3px;
  font-size: 13px;
  color: var(--texte);
}
.compte-resultats {
  font-size: 12px;
  margin: 0 0 24px;
}
.carte {
  overflow: hidden;
  background: var(--gris);
  border: 1px solid var(--bordure);
  border-radius: 4px;
  display: flex;
  flex-direction: column;
}
.carte > img {
  width: 100%;
  aspect-ratio: 1.7;
  object-fit: cover;
  transition: transform 350ms ease;
}
.carte:hover > img {
  transform: scale(1.025);
}
.carte__titre {
  display: none;
}
.carte__corps {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex: 1;
  align-items: start;
}
.carte__corps h3 {
  font-size: 21px;
  margin: 22px 0 14px;
}
.carte__corps p {
  font-size: 13px;
  line-height: 1.5;
}
.carte__corps .btn {
  margin-top: auto;
  width: 100%;
  justify-content: space-between;
  font-size: 12px;
  min-height: 40px;
  padding: 10px 14px;
}
.carte__corps .puces {
  font-size: 13px;
  margin: 10px 0 24px;
}
.card-meta {
  display: flex;
  justify-content: space-between;
  width: 100%;
  gap: 12px;
  align-items: center;
}
.badge {
  display: inline-flex;
  align-items: center;
  background: var(--bleu);
  color: #fff;
  padding: 3px 9px;
  border-radius: 2px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.01em;
}
.badge--rouge {
  background: #266448;
  color: #fff;
}
.badge--blanc {
  background: white;
  color: var(--texte);
}
.meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 12px;
  margin: 12px 0;
}
.meta strong {
  font-weight: 600;
}
.carte .meta {
  font-size: 11px;
  margin: 8px 0 12px;
}
.puces {
  padding-left: 18px;
  list-style: disc;
}
.puces li {
  margin-bottom: 10px;
  padding-left: 2px;
}
.puces--coches {
  list-style: none;
  padding: 0;
}
.puces--coches li {
  display: flex;
  gap: 12px;
}
.puces--coches svg {
  width: 15px;
  height: 15px;
  margin-top: 5px;
  color: var(--texte);
}
.barre-action {
  border-bottom: 1px solid var(--bordure);
  background: white;
}
.barre-action__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 22px 0;
}
.fiche__section {
  padding-bottom: 28px;
  margin-bottom: 28px;
  border-bottom: 1px solid var(--bordure);
  scroll-margin-top: 30px;
}
.fiche__section h2 {
  font-size: 30px;
  margin-bottom: 18px;
}
.fiche__section p,
.fiche__section li {
  font-size: 15px;
  line-height: 1.55;
}
.fiche__icone {
  display: none;
}
.chiffres-fiche {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 32px;
  background: var(--gris);
  border: 1px solid var(--bordure);
}
.chiffres-fiche li {
  padding: 22px 18px;
  border-right: 1px solid var(--bordure);
  display: flex;
  flex-direction: column;
}
.chiffres-fiche li:last-child {
  border: 0;
}
.chiffres-fiche strong {
  font-size: 18px;
  line-height: 1.3;
  margin-bottom: 8px;
}
.chiffres-fiche span {
  font-size: 11px;
  color: var(--texte-doux);
}
.programme {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.programme__bloc {
  padding: 28px;
  background: var(--gris);
  border: 1px solid var(--bordure);
}
.programme__bloc h3 {
  font-size: 19px;
  border-bottom: 1px solid var(--bordure);
  padding-bottom: 16px;
  margin-bottom: 18px;
}
.programme__bloc ul {
  list-style: disc;
  padding-left: 16px;
}
.programme__bloc li {
  font-size: 14px;
}
.debouches {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
}
.debouches li {
  padding: 18px 24px 18px 0;
  border-bottom: 1px solid var(--bordure);
}
.debouches strong {
  display: block;
  font-size: 15px;
}
.debouches span {
  display: block;
  font-size: 13px;
  line-height: 1.5;
  margin-top: 8px;
}
.encart {
  padding: 28px;
  background: var(--gris);
  border: 1px solid var(--bordure);
  margin-bottom: 24px;
  border-radius: 4px;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.encart h2,
.encart h3 {
  font-size: 21px;
  margin-bottom: 22px;
}
.encart li {
  padding: 9px 0;
  border-bottom: 1px solid var(--bordure);
}
.encart li:last-child {
  border: 0;
}
.encart a:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.encart svg {
  width: 16px;
  height: 16px;
  vertical-align: middle;
}
.encart__ligne {
  display: flex;
  gap: 12px;
}
.encart--sombre {
  background: var(--bleu);
  color: #d1e1e8;
  border-color: var(--bleu);
}
.encart--sombre h2,
.encart--sombre h3,
.encart--sombre strong {
  color: #fff;
}
.encart--sombre a:hover {
  color: #fff;
}
.toc a {
  display: block;
  padding: 9px 0;
  font-size: 13px;
}
.toc {
  border-top: 3px solid var(--rouge);
}
/* About and institutional pages */
.intro__visuel {
  position: relative;
}
.intro__visuel > img {
  width: 100%;
  height: 520px;
  object-fit: cover;
  border-radius: 6px;
}
.intro__carte {
  background: var(--bleu);
  color: #d1e0e6;
  padding: 28px;
  position: relative;
  margin: -70px 28px 0 0;
  max-width: 360px;
}
.intro__carte h3 {
  color: #fff;
  font-size: 23px;
}
.intro__carte p {
  font-size: 13px;
}
.trio {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--bordure);
}
.trio__item {
  padding: 36px;
  border-right: 1px solid var(--bordure);
}
.trio__item:last-child {
  border: 0;
}
.trio__item h3 {
  font-size: 23px;
}
.trio__item p {
  font-size: 14px;
}
.trio__item--sombre {
  background: var(--bleu);
  color: #c5d6dd;
}
.trio__item--sombre h3 {
  color: #fff;
}
.president {
  border-top: 1px solid var(--bordure);
  border-bottom: 1px solid var(--bordure);
}
.president__cadre {
  display: grid;
  grid-template-columns: minmax(0, 0.65fr) minmax(0, 1.35fr);
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
}
.president__photo {
  margin: 0;
  padding: 0;
  border: 1px solid var(--bordure);
  border-radius: 4px;
  overflow: hidden;
  background: var(--bleu-pale);
}
.president__photo img {
  width: 100%;
  height: 420px;
  padding: 24px 20px 0;
  object-fit: contain;
  object-position: bottom;
}
.president__texte {
  padding: 0;
  max-width: 740px;
}
.president__entete {
  margin-bottom: 20px;
}
.president__entete h2 {
  margin: 0;
  font-size: 30px;
  line-height: 1.08;
}
.president__texte p {
  font-size: 14px;
  line-height: 1.55;
  margin: 0 0 14px;
}
.president__texte .president__bienvenue {
  font-size: 16px;
  line-height: 1.4;
  font-weight: 600;
  color: var(--bleu);
  margin-bottom: 18px;
}
.president__conviction {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 12px;
  margin: 20px 0 18px;
  padding: 18px 20px;
  border-left: 3px solid var(--rouge);
  background: var(--bleu-pale);
  color: var(--bleu);
}
.president__guillemet {
  color: var(--rouge);
}
.president__guillemet svg {
  width: 26px;
  height: 26px;
  fill: currentColor;
}
.president__conviction p {
  margin: 0;
}
.president__texte .president__conclusion {
  color: var(--bleu);
  font-weight: 600;
  margin-bottom: 0;
}
.president__signature {
  border-top: 3px solid var(--rouge);
  padding: 22px 24px;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  background: var(--bleu);
  color: #d1e0e7;
}
.president__signature strong {
  font-size: 18px;
  color: white;
  margin-bottom: 4px;
}
.frise {
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid var(--bordure);
}
.frise__item {
  padding: 24px 24px 0 0;
  position: relative;
}
.frise__item::before {
  content: "";
  width: 7px;
  height: 7px;
  background: var(--rouge);
  position: absolute;
  top: -4px;
  left: 0;
}
.frise__item strong {
  font-size: 36px;
  font-weight: 500;
  display: block;
  margin-bottom: 16px;
}
.frise__item span {
  font-size: 13px;
}
.bloc-vision {
  padding: 40px;
  background: var(--gris);
  border: 1px solid var(--bordure);
}
.grand {
  font-size: 24px;
  line-height: 1.5;
  color: var(--texte);
}
.mission-liste {
  padding: 0;
  list-style: none;
}
.mission-liste li {
  display: flex;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid var(--bordure);
}
.mission-liste li > span {
  font-size: 13px;
  flex: none;
  width: 26px;
  color: var(--rouge);
}
.mission-liste h4 {
  font-size: 18px;
}
.mission-liste p {
  font-size: 14px;
}
.valeur {
  padding: 32px;
  border-top: 1px solid var(--bordure);
}
.valeur h3 {
  font-size: 22px;
}
.valeur p {
  font-size: 14px;
}
.liste-coches {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 28px 0;
}
.liste-coches li {
  display: flex;
  gap: 10px;
  font-size: 13px;
}
.liste-coches svg {
  width: 15px;
  height: 15px;
  margin-top: 3px;
}
.liste-coches--1 {
  grid-template-columns: 1fr;
}
.aide-liste li {
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
  font-size: 14px;
}
.aide-liste strong {
  color: inherit;
}
.equipe-carte {
  background: var(--gris);
  border: 1px solid var(--bordure);
  overflow: hidden;
  border-radius: 4px;
}
.equipe-carte > img {
  width: 100%;
  height: 330px;
  object-fit: cover;
  object-position: 50% 35%;
}
.equipe-carte__corps {
  padding: 28px;
}
.equipe-carte h3 {
  font-size: 21px;
}
.equipe-carte .role {
  color: var(--rouge);
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 20px;
}
.equipe-carte p {
  font-size: 13px;
}
.equipe-detail {
  border-top: 1px solid var(--bordure);
  margin-top: 24px;
  padding-top: 16px;
}
.equipe-detail summary {
  font-size: 13px;
  font-weight: 600;
  color: var(--texte);
  cursor: pointer;
}
.equipe-detail h4 {
  font-size: 15px;
  margin-top: 24px;
}
.partenaire {
  padding: 32px;
  border: 1px solid var(--bordure);
  border-radius: 4px;
  min-height: 235px;
  background: var(--gris);
}
.partenaire__logo {
  width: 56px;
  height: 56px;
  border: 1px solid var(--bordure);
  background: white;
  display: grid;
  place-items: center;
  color: var(--texte);
  font-weight: 700;
  margin-bottom: 28px;
}
.partenaire h3 {
  font-size: 21px;
}
.partenaire p {
  font-size: 14px;
}
.galerie {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 24px;
}
.galerie figure {
  margin: 0;
}
.galerie button {
  border: 0;
  background: none;
  padding: 0;
  width: 100%;
  text-align: left;
  color: inherit;
}
.galerie img {
  width: 100%;
  aspect-ratio: 1.4;
  object-fit: cover;
  border-radius: 4px;
  transition: filter var(--transition);
}
.galerie button:hover img {
  filter: brightness(0.88);
}
.galerie figcaption {
  padding: 18px 0;
  font-weight: 600;
  color: var(--texte);
  font-size: 17px;
}
.galerie small {
  display: block;
  font-size: 11px;
  font-weight: 500;
  color: var(--rouge);
  margin-bottom: 8px;
}
.lightbox {
  border: 0;
  padding: 20px;
  background: var(--bleu);
  color: white;
  max-width: min(1000px, 94vw);
  max-height: 94svh;
  border-radius: 6px;
}
.lightbox::backdrop {
  background: rgb(0 15 22/0.85);
}
.lightbox img {
  max-height: 74svh;
  max-width: 100%;
  object-fit: contain;
  margin: auto;
}
.lightbox button {
  display: block;
  margin: 0 0 16px auto;
  border: 1px solid #78929d;
  color: white;
  background: transparent;
  border-radius: 3px;
  padding: 8px 16px;
}
.lightbox p {
  margin-top: 16px;
  font-size: 14px;
}
/* Forms, contact, FAQ */
.contact-editorial {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid var(--bordure);
}
.contact-editorial__intro {
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--bordure);
}
.contact-editorial__intro > div {
  padding: 36px 48px 36px 48px;
  flex: 1;
}
.contact-editorial__intro h2 {
  font-size: 40px;
}
.contact-editorial__intro > img {
  margin: 48px;
  width: 260px;
  height: 260px;
  object-fit: cover;
  border-radius: 4px;
}
.contact-editorial > .formulaire {
  padding: 36px 48px 36px 48px;
}
.formulaire > p {
  font-size: 14px;
  margin-bottom: 32px;
}
.champs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 24px;
}
.champ {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.champ--large {
  grid-column: 1/-1;
}
.champ label,
.champ legend {
  color: var(--texte);
  font-size: 13px;
  font-weight: 600;
}
.champ input,
.champ select,
.champ textarea {
  width: 100%;
  min-height: 54px;
  background: var(--gris);
  border: 1px solid var(--bordure);
  border-radius: 3px;
  padding: 14px 16px;
  color: var(--texte);
  font-size: 14px;
}
.champ input:hover,
.champ select:hover,
.champ textarea:hover {
  border-color: #a9bec6;
}
.champ input:focus,
.champ select:focus,
.champ textarea:focus {
  outline: 2px solid var(--bleu);
  outline-offset: 1px;
}
.champ textarea {
  resize: vertical;
  min-height: 160px;
}
.champ input::placeholder,
.champ textarea::placeholder {
  color: #6b7e86;
  opacity: 1;
}
.champ small,
.note {
  font-size: 12px;
  line-height: 1.5;
  color: #60747e;
}
.champ .btn {
  margin-top: 4px;
}
.tuiles-choix {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}
.tuiles-choix label {
  position: relative;
  cursor: pointer;
}
.tuiles-choix input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
}
.tuiles-choix label > span {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px;
  background: var(--gris);
  border: 1px solid var(--bordure);
  border-radius: 4px;
}
.tuiles-choix input:checked + span {
  background: var(--bleu);
  border-color: var(--bleu);
  color: #fff;
}
.tuiles-choix input:checked + span strong {
  color: #fff;
}
.tuiles-choix input:focus-visible + span {
  outline: 3px solid #ab5029;
  outline-offset: 4px;
}
.tuile-choix__icone {
  display: none;
}
.tuiles-choix strong {
  font-size: 18px;
  font-weight: 600;
}
.tuiles-choix .sous {
  font-size: 12px;
}
.carte-contact {
  border: 1px solid var(--bordure);
  padding: 32px;
  background: white;
}
.carte-contact__icone {
  margin-bottom: 28px;
  color: var(--rouge);
}
.carte-contact h3 {
  font-size: 21px;
}
.carte-contact p,
.carte-contact address {
  font-size: 14px;
}
.carte-map {
  border: 1px solid var(--bordure);
  border-radius: 4px;
  overflow: hidden;
  margin-top: 32px;
  background: var(--gris);
}
.carte-map iframe {
  width: 100%;
  height: 420px;
  border: 0;
  display: block;
}
.faq {
  border-top: 1px solid var(--bordure);
}
.faq__item {
  border-bottom: 1px solid var(--bordure);
}
.faq__item summary {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 18px;
  list-style: none;
  padding: 23px 0;
  color: var(--texte);
  font-size: 15px;
  font-weight: 600;
}
.faq__item summary::-webkit-details-marker {
  display: none;
}
.faq__item summary svg {
  width: 16px;
  height: 16px;
  color: #648a9a;
  transition: transform var(--transition);
}
.faq__item[open] summary svg {
  transform: rotate(45deg);
}
.faq__item > div {
  padding: 0 24px 24px 34px;
  font-size: 14px;
}
.faq-centered {
  max-width: 760px;
  margin: auto;
}
.questions-accueil .grille--faq {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(28px, 4vw, 56px);
}
.questions-accueil .grille--faq > div:first-child p {
  max-width: 400px;
  margin: 16px 0 20px;
  font-size: 14px;
}
.questions-accueil .faq {
  display: grid;
  gap: 10px;
  align-content: start;
  border: 0;
}
.questions-accueil .faq__item {
  border: 1px solid var(--bordure);
  border-radius: 4px;
}
.questions-accueil .faq__item[open] {
  background: var(--gris);
}
.questions-accueil .faq__item summary {
  gap: 12px;
  padding: 16px 18px;
  font-size: 14px;
  line-height: 1.25;
  align-items: flex-start;
}
.questions-accueil .faq__item summary svg {
  margin-top: 1px;
}
.questions-accueil .faq__item > div {
  padding: 0 18px 18px 46px;
}
.request-panel {
  background: var(--rouge);
  color: #e8c8c7;
}
.request-panel h2,
.request-panel .etiquette {
  color: white;
}
.request-panel .champ label {
  color: white;
}
.request-panel .champ input,
.request-panel .champ select,
.request-panel .champ textarea {
  background: rgb(255 255 255/0.12);
  border-color: rgb(255 255 255/0.2);
  color: white;
}
.request-panel .champ option {
  color: var(--texte);
}
.request-panel .champ input::placeholder,
.request-panel .champ textarea::placeholder {
  color: #efd9d8;
}
.request-panel .champ small {
  color: #f0dada;
}
/* CTAs and footer */
.cta-rouge {
  background: var(--rouge);
  color: #f1d7d6;
  padding: 64px var(--gutter);
}
.cta-rouge__inner {
  display: flex;
  gap: 48px;
  align-items: center;
  justify-content: space-between;
}
.cta-rouge__inner > div {
  max-width: 760px;
}
.cta-rouge h2 {
  color: #fff;
  font-size: 34px;
}
.cta-rouge p {
  font-size: 14px;
}
.cta-rouge .btn {
  flex-shrink: 0;
}
.cta-photo {
  background: var(--rouge) !important;
  color: #efd9d8;
  padding: 56px var(--gutter) 56px var(--gutter);
  text-align: center;
}
.cta-photo h2,
.cta-photo .etiquette {
  color: white;
}
.cta-photo .etiquette,
.cta-photo .actions {
  justify-content: center;
}
.cta-photo p {
  max-width: 680px;
  margin: 0 auto 30px;
}
.cta-photo .btn:not(.btn--ghost) {
  background: white;
  color: var(--texte);
}
.footer-contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--gris);
  border-top: 1px solid var(--bordure);
}
.footer-contact > div {
  padding: 36px var(--gutter) 36px var(--gutter);
  align-content: center;
}
.footer-contact > div:first-child {
  border-right: 1px solid var(--bordure);
}
.footer-contact h2 {
  font-size: 28px;
  margin: 0;
  line-height: 1.12;
}
.footer-contact p {
  font-size: 14px;
  max-width: 500px;
}
.footer-contact .etiquette {
  margin-bottom: 20px;
}
.footer {
  background: var(--bleu);
  color: #c1d0d7;
}
.footer__grille {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  max-width: calc(var(--conteneur) + var(--gutter) * 2);
  margin: auto;
}
.footer__grille > div {
  padding: 36px var(--gutter) 36px var(--gutter);
  border-right: 1px solid #224453;
}
.footer__grille > div:last-child {
  border: 0;
}
.footer h2 {
  font-size: 14px;
  color: #fff;
  letter-spacing: 0;
  margin-bottom: 18px;
}
.footer p,
.footer address {
  font-size: 12px;
  margin-bottom: 22px;
}
.footer strong {
  color: #fff;
}
.footer a {
  display: block;
  font-size: 12px;
  margin: 0 0 8px;
}
.footer a:hover {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.footer .footer__marque {
  font-size: 30px;
  font-weight: 700;
  color: white;
  letter-spacing: -0.035em;
  line-height: 1.2;
  margin-bottom: 22px;
}
.footer__marque span {
  display: block;
  font-size: 11px;
  letter-spacing: 0.04em;
  font-weight: 500;
  margin-top: 4px;
}
.footer__marque img {
  width: 140px;
  height: 100px;
  object-fit: contain;
  background: white;
  border-radius: 4px;
  padding: 6px;
}
.footer__identite address {
  margin-top: 40px;
}
.footer__bas {
  border-top: 1px solid #224453;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 26px var(--gutter);
  font-size: 10px;
}
.footer__bas a {
  margin: 0;
  font-size: 11px;
}
/* Center the content while section backgrounds remain full width. */
@media (min-width: 1201px) {
  .page-header,
  .contact-editorial,
  .footer-contact {
    padding-inline: max(
      0px,
      calc((100% - var(--conteneur) - var(--gutter) * 2) / 2)
    );
  }
  .footer__bas {
    padding-inline: max(var(--gutter), calc((100% - var(--conteneur)) / 2));
  }
}
/* Tablet */
@media (max-width: 1200px) {
  :root {
    --gutter: 32px;
  }
  .nav__links {
    gap: 18px;
    font-size: 13px;
  }
  .nav__marque {
    min-width: 200px;
    padding: 8px 24px;
  }
  .nav__actions {
    display: none;
  }
  .nav__burger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
    background: none;
    border: 0;
    width: 76px;
    align-items: center;
    color: inherit;
    grid-column: 2;
    grid-row: 1;
  }
  .nav__burger span {
    height: 1px;
    width: 23px;
    background: currentColor;
    transition: transform 0.2s;
  }
  .nav__burger[aria-expanded="true"] span:first-child {
    transform: translateY(4px) rotate(45deg);
  }
  .nav__burger[aria-expanded="true"] span:last-child {
    transform: translateY(-4px) rotate(-45deg);
  }
  .nav__links {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: #fff;
    color: var(--texte);
    padding: 16px var(--gutter) 24px;
    box-shadow: 0 16px 24px rgb(1 41 58/0.12);
    max-height: calc(100svh - 76px);
    overflow: auto;
    white-space: normal;
  }
  .nav__links.est-ouvert {
    display: flex;
  }
  .nav__links > a,
  .nav__mobile-extra > a {
    display: block;
    min-height: 44px;
    padding: 10px 0;
    border-bottom: 1px solid var(--bordure);
    font-size: 15px;
  }
  .nav__mobile-extra {
    display: block;
  }
  .nav__rubrique > summary {
    justify-content: space-between;
    min-height: 44px;
    padding: 10px 0;
    border-bottom: 1px solid var(--bordure);
    font-size: 15px;
  }
  .nav__sous-menu {
    position: static;
    min-width: 0;
    padding: 4px 0 4px 12px;
    margin: 6px 0 12px;
    border: 0;
    border-left: 2px solid var(--rouge);
    border-radius: 0;
    box-shadow: none;
  }
  .page-accueil .nav__inner {
    grid-template-columns: 1fr auto;
  }
  .page-accueil .nav__marque {
    min-width: 0;
    padding: 8px var(--gutter);
  }
  .page-accueil .nav__links {
    justify-content: flex-start;
    padding-inline: var(--gutter);
    background: #fff;
    color: var(--bleu);
  }
  .page-accueil .nav__links > a,
  .page-accueil .nav__mobile-extra > a {
    border-color: #d5e2e8;
  }
  .intro-editorial {
    gap: 40px;
  }
  .ed-campus__body {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .ed-campus__image {
    min-height: 300px;
  }
  .grille-campus {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .campus {
    border-bottom: 1px solid var(--bordure);
  }
  .featured-grid,
  .grille-3,
  .galerie {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ed-programs .grille-4 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .page-header__description {
    gap: 20px;
  }
  .page-header__description img {
    width: 96px;
    height: 96px;
  }
  .section {
    padding: 48px 0;
  }
  .section--serre {
    padding: 28px 0;
  }
  .grille--faq {
    gap: 48px;
  }
  .page-fiche .grille--lateral {
    grid-template-columns: 1fr;
  }
  .page-fiche aside {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  .page-fiche aside .encart {
    margin: 0;
  }
  .toc {
    grid-column: 1/-1;
  }
  .page-fiche .chiffres-fiche {
    grid-template-columns: repeat(4, 1fr);
  }
  .footer__grille {
    grid-template-columns: 1.2fr 1fr;
  }
  .footer__grille > div {
    border-bottom: 1px solid #224453;
  }
  .contact-editorial > .formulaire {
    padding: 24px 32px 24px 32px;
  }
  .contact-editorial__intro > div {
    padding: 24px 32px 24px 32px;
  }
  .contact-editorial__intro > img {
    margin: 32px;
    width: 220px;
    height: 240px;
  }
  .champs {
    gap: 20px;
  }
  .frise {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
  }
}
/* Mobile: 390px Edfield references, with content-led wrapping down to 320px. */
@media (max-width: 700px) {
  .ed-programs .section-heading h2 {
    font-size: 25px;
  }
  .ed-programs .carte__corps {
    padding: 20px;
  }
  :root {
    --gutter: 20px;
  }
  body {
    font-size: 14px;
    line-height: 1.5;
  }
  h1 {
    font-size: 36px;
  }
  h2 {
    font-size: 30px;
  }
  h3 {
    font-size: 21px;
  }
  .nav__inner {
    min-height: 66px;
  }
  .nav__marque {
    gap: 8px;
    padding: 5px 20px;
  }
  .nav__marque img {
    width: 78px;
    height: 56px;
  }
  .page-accueil .nav__marque img {
    width: 82px;
    height: 58px;
  }
  .page-accueil .nav__marque {
    padding: 5px var(--gutter);
  }
  .nav__marque strong {
    font-size: 21px;
  }
  .nav__marque small {
    font-size: 7px;
  }
  .nav__burger {
    width: 66px;
  }
  .nav__links {
    max-height: calc(100svh - 66px);
  }
  .section {
    padding: 40px 0;
  }
  .section--serre {
    padding: 24px 0;
  }
  .section__tete {
    margin-bottom: 24px;
  }
  .etiquette {
    font-size: 11px;
    margin-bottom: 14px;
  }
  .section-heading {
    display: block;
    margin-bottom: 24px;
  }
  .section-heading > p,
  .section-heading > .btn,
  .section-heading > .lien-fleche {
    margin-top: 20px;
  }
  .grille-2,
  .grille-3,
  .grille-4,
  .grille--asym,
  .grille--lateral,
  .grille--faq,
  .intro-editorial,
  .featured-grid,
  .events-grid,
  .chiffres__inner,
  .temoignage,
  .admissions-banner,
  .president__cadre,
  .trio,
  .contact-editorial,
  .footer-contact {
    grid-template-columns: 1fr;
  }
  .grille--asym,
  .grille--faq,
  .grille--lateral {
    gap: 32px;
  }
  .intro-editorial {
    gap: 24px;
  }
  .intro-editorial h2 {
    font-size: 25px;
    margin-bottom: 0;
  }
  .intro-editorial p {
    font-size: 14px;
  }
  .ed-values__head {
    margin-bottom: 24px;
  }
  .ed-values__head h2 {
    font-size: 25px;
    margin: 0;
  }
  .ed-values .grille-3 {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .carte-atout {
    padding: 20px;
  }
  .carte-atout h3 {
    font-size: 17px;
  }
  .ed-campus h2 {
    font-size: 25px;
  }
  .ed-campus__image {
    min-height: 260px;
  }
  .ed-campus__image .btn {
    bottom: 16px;
    left: 16px;
    max-width: calc(100% - 32px);
  }
  .ed-campus .grille-campus {
    grid-template-columns: 1fr;
  }
  .ed-campus .campus {
    padding: 16px;
  }
  .ed-campus__contact {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .grille-campus {
    grid-template-columns: 1fr 1fr;
  }
  .campus {
    padding: 24px 16px;
  }
  .campus h3 {
    font-size: 15px;
  }
  .campus p {
    font-size: 12px;
  }
  .campus svg {
    margin-bottom: 18px;
  }
  .ed-programs .grille-4 {
    grid-template-columns: 1fr 1fr;
  }
  .tuile {
    font-size: 12px;
    padding: 20px 10px;
    gap: 12px;
  }
  .tuile svg {
    width: 14px;
    height: 14px;
  }
  .formation {
    padding: 20px;
  }
  .formation h3 {
    font-size: 22px;
  }
  .chiffres__inner {
    gap: 32px;
  }
  .compteur {
    padding: 24px;
  }
  .compteur strong {
    font-size: 44px;
  }
  .compteur span {
    font-size: 12px;
  }
  .temoignage__fond,
  .temoignage__carte {
    padding: 32px 20px;
    border-right: 0;
  }
  .temoignage blockquote {
    font-size: 20px;
  }
  .temoignage__carte h2 {
    font-size: 28px;
  }
  .event-card img {
    aspect-ratio: 1.65;
  }
  .event-card h3 {
    font-size: 20px;
  }
  .event-card__corps {
    padding: 20px;
  }
  .admissions-banner__inner,
  .questions-accueil .grille--faq {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .admissions-banner__inner > img {
    height: 240px;
  }
  .page-accueil #formations .section-heading h2,
  .page-accueil #evenements .section-heading h2,
  .questions-accueil h2,
  .admissions-banner h2 {
    font-size: 25px;
  }
  .page-header {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .page-header__titre {
    padding: 40px 20px 24px;
  }
  .page-header__titre h1 {
    max-width: 100%;
    font-size: 34px;
  }
  .fil {
    font-size: 10px;
    gap: 6px;
    margin-bottom: 20px;
  }
  .page-header__description {
    padding: 0 20px 32px;
    border: 0;
    align-items: center;
    gap: 24px;
  }
  .page-header__description p {
    font-size: 12px;
    flex: 1;
  }
  .page-header__description img {
    width: 86px;
    height: 86px;
  }
  .page-fiche .page-header__description img {
    width: 96px;
    height: 110px;
  }
  .page-fiche .page-header__description p {
    font-size: 12px;
  }
  .page-fiche .page-header h1 {
    font-size: 33px;
  }
  .catalogue-toolbar {
    gap: 20px;
  }
  .filtres {
    gap: 6px;
  }
  .filtres--centre {
    margin-bottom: 30px;
    justify-content: flex-start;
  }
  .filtres button {
    padding: 9px 12px;
    font-size: 11px;
    min-height: 40px;
  }
  .search-field {
    width: 100%;
    min-height: 46px;
    font-size: 13px;
  }
  .catalogue-toolbar .filtres {
    width: 100%;
  }
  .carte__corps {
    padding: 24px;
  }
  .carte__corps h3 {
    font-size: 22px;
    margin: 20px 0 12px;
  }
  .carte > img {
    aspect-ratio: 1.7;
  }
  .carte__corps .btn {
    min-height: 44px;
  }
  .compte-resultats {
    font-size: 11px;
  }
  .barre-action__inner {
    align-items: stretch;
    flex-direction: column;
    gap: 16px;
  }
  .barre-action .meta {
    margin: 0;
  }
  .barre-action .btn {
    align-self: start;
  }
  .page-fiche .chiffres-fiche {
    grid-template-columns: 1fr 1fr;
    margin-bottom: 36px;
  }
  .chiffres-fiche li {
    padding: 18px 16px;
  }
  .chiffres-fiche strong {
    font-size: 17px;
  }
  .fiche__section {
    margin-bottom: 32px;
    padding-bottom: 32px;
  }
  .fiche__section h2 {
    font-size: 26px;
  }
  .fiche__section p,
  .fiche__section li {
    font-size: 14px;
  }
  .programme,
  .debouches {
    grid-template-columns: 1fr;
  }
  .programme__bloc {
    padding: 24px;
  }
  .debouches li {
    padding-right: 0;
  }
  .page-fiche aside {
    display: block;
  }
  .page-fiche aside .encart {
    margin-bottom: 20px;
  }
  .encart {
    padding: 24px;
  }
  .intro__visuel > img {
    height: 380px;
  }
  .intro__carte {
    padding: 24px;
    margin: -60px 20px 0 0;
  }
  .frise {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
  .frise__item strong {
    font-size: 30px;
  }
  .frise__item span {
    font-size: 12px;
  }
  .bloc-vision {
    padding: 28px;
  }
  .grand {
    font-size: 20px;
  }
  .valeur {
    padding: 24px 0;
  }
  .trio__item {
    padding: 28px;
    border-right: 0;
    border-bottom: 1px solid var(--bordure);
  }
  .president__photo {
    width: min(100%, 360px);
    margin-inline: auto;
  }
  .president__photo img {
    height: 300px;
    object-position: bottom;
  }
  .president__texte {
    padding: 0;
  }
  .president__texte p {
    font-size: 14px;
  }
  .president__entete h2 {
    font-size: 25px;
  }
  .president__texte .president__bienvenue {
    font-size: 15px;
  }
  .president__conviction {
    padding: 16px;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 10px;
  }
  .president__guillemet svg {
    width: 20px;
    height: 20px;
  }
  .equipe-carte > img {
    height: 340px;
  }
  .equipe-carte__corps {
    padding: 24px;
  }
  .partenaire {
    min-height: 0;
    padding: 28px;
  }
  .galerie {
    grid-template-columns: 1fr 1fr;
    gap: 24px 14px;
  }
  .galerie img {
    aspect-ratio: 0.9;
  }
  .galerie figcaption {
    font-size: 13px;
    padding-top: 14px;
  }
  .galerie small {
    font-size: 10px;
  }
  .contact-editorial__intro {
    border-right: 0;
    border-bottom: 1px solid var(--bordure);
  }
  .contact-editorial__intro > div {
    padding: 32px 20px 20px 20px;
  }
  .contact-editorial__intro h2 {
    font-size: 30px;
  }
  .contact-editorial__intro > img {
    display: none;
  }
  .contact-editorial > .formulaire {
    padding: 24px 20px 32px 20px;
  }
  .champs {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .champ label {
    font-size: 12px;
  }
  .champ input,
  .champ select,
  .champ textarea {
    font-size: 16px;
    padding: 13px 14px;
    min-height: 52px;
  }
  .tuiles-choix {
    gap: 12px;
  }
  .tuiles-choix label > span {
    padding: 20px;
  }
  .tuiles-choix strong {
    font-size: 16px;
  }
  .carte-map iframe {
    height: 300px;
  }
  .faq__item summary {
    font-size: 13px;
    gap: 12px;
    padding: 20px 0;
  }
  .faq__item > div {
    padding-left: 28px;
    font-size: 13px;
  }
  .cta-rouge,
  .cta-photo {
    padding: 36px 20px 36px 20px;
  }
  .cta-rouge .conteneur,
  .cta-photo .conteneur {
    width: 100%;
  }
  .cta-rouge__inner {
    display: block;
  }
  .cta-rouge h2 {
    font-size: 28px;
  }
  .cta-rouge .actions,
  .cta-rouge__inner > .btn {
    margin-top: 24px;
  }
  .footer-contact > div {
    padding: 24px 20px 24px 20px;
  }
  .footer-contact > div:first-child {
    border-right: 0;
    border-bottom: 1px solid var(--bordure);
  }
  .footer-contact h2 {
    font-size: 26px;
  }
  .footer-contact p {
    font-size: 13px;
  }
  .footer__grille {
    grid-template-columns: 1fr 1fr;
  }
  .footer__grille > div {
    padding: 24px 20px 24px 20px;
  }
  .footer__identite {
    grid-column: 1/-1;
  }
  .footer__grille > div:last-child {
    grid-column: 1/-1;
    border-top: 1px solid #224453;
  }
  .footer__identite address {
    margin-top: 28px;
  }
  .footer__bas {
    padding: 24px 20px;
    flex-direction: column;
    align-items: start;
    gap: 16px;
    line-height: 1.5;
  }
  .footer__bas span {
    font-size: 10px;
  }
  .btn {
    font-size: 13px;
    min-height: 46px;
  }
  .btn--grand {
    font-size: 13px;
    min-height: 48px;
    padding: 14px 20px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}
@media print {
  .nav,
  .footer,
  .footer-contact,
  .btn,
  .barre-action {
    display: none !important;
  }
  body {
    font-size: 11pt;
    color: black;
  }
  .section {
    padding: 20px 0;
  }
  .page-header {
    min-height: 0;
  }
  .conteneur {
    width: 100%;
  }
  .grille--lateral {
    display: block !important;
  }
  .encart,
  .carte,
  .fiche__section {
    break-inside: avoid;
  }
}

/* Page-specific editorial compositions. */
.history-timeline {
  margin-top: 56px;
}
.history-timeline .frise {
  display: block;
  border: 0;
}
.history-timeline .frise__item {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 40px;
  padding: 30px 0;
  border-top: 1px solid var(--bordure);
  align-items: center;
}
.history-timeline .frise__item::before {
  display: none;
}
.history-timeline .frise__item strong {
  font-size: 28px;
  margin: 0;
}
.history-timeline .frise__item span {
  font-size: 20px;
  color: var(--texte);
  font-weight: 600;
  letter-spacing: -0.02em;
}
.formation-hero {
  padding: 22px 0 36px;
  background: var(--bleu-pale);
  border-bottom: 1px solid var(--bordure);
}
.formation-hero .fil {
  margin-bottom: 22px;
  color: #526975;
}
.formation-hero__grille {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  align-items: center;
  gap: clamp(28px, 4vw, 56px);
}
.formation-hero__contenu {
  padding-block: 8px;
}
.formation-hero__cycle {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
  color: #526975;
  font-size: 12px;
}
.formation-hero__cycle .etiquette {
  margin: 0;
}
.formation-hero h1 {
  margin: 0 0 16px;
  font-size: clamp(30px, 3.3vw, 44px);
  line-height: 1.08;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
.formation-hero__description {
  max-width: 560px;
  margin: 0 0 22px;
  font-size: 17px;
  line-height: 1.45;
  color: var(--bleu);
}
.formation-hero__diplome {
  margin: 0 0 24px;
  padding-top: 18px;
  border-top: 1px solid #cbdce4;
}
.formation-hero__diplome dt {
  font-size: 12px;
  color: #526975;
  margin-bottom: 4px;
}
.formation-hero__diplome dd {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--bleu);
}
.formation-hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 24px;
}
.formation-hero__actions .lien-fleche {
  font-size: 13px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.formation-hero__visuel {
  overflow: hidden;
  border-radius: 4px;
  background: #d2e2ea;
  border-bottom: 4px solid var(--rouge);
}
.formation-hero__visuel img {
  width: 100%;
  height: clamp(310px, 29vw, 380px);
  object-fit: cover;
}
.formation-hero + .section {
  padding-top: 40px;
}
@media (max-width: 900px) {
  .formation-hero__grille {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }
  .formation-hero__description {
    max-width: 650px;
  }
  .formation-hero__visuel img {
    height: 300px;
  }
}
@media (max-width: 700px) {
  .formation-hero {
    padding: 16px 0 24px;
  }
  .formation-hero .fil {
    margin-bottom: 16px;
  }
  .formation-hero__contenu {
    padding: 0;
  }
  .formation-hero h1 {
    font-size: 30px;
    margin-bottom: 12px;
  }
  .formation-hero__description {
    font-size: 15px;
    margin-bottom: 18px;
  }
  .formation-hero__diplome {
    padding-top: 14px;
    margin-bottom: 18px;
  }
  .formation-hero__actions {
    gap: 6px 20px;
  }
  .formation-hero__visuel img {
    height: 230px;
  }
  .formation-hero + .section {
    padding-top: 28px;
  }
}
.page-fiche .page-header {
  border: 0;
  background: var(--bleu-pale);
  min-height: 0;
  padding: 24px max(var(--gutter), calc((100% - var(--conteneur)) / 2)) 28px;
  gap: 32px;
  align-items: center;
}
.page-fiche .page-header__titre {
  padding: 0;
}
.page-fiche .page-header .fil {
  margin-bottom: 12px;
}
.page-fiche .page-header h1 {
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.1;
}
.page-fiche .page-header__description {
  border: 0;
  padding: 0;
  align-items: center;
}
.page-fiche .page-header__description img {
  display: none;
}
.page-fiche .page-header__description p {
  max-width: 450px;
}
.page-fiche .carte h3 {
  font-size: 21px;
}
@media (max-width: 700px) {
  .catalogue-toolbar > label {
    width: 100%;
  }
  .history-timeline .frise__item {
    grid-template-columns: 64px 1fr;
    gap: 20px;
    padding: 24px 0;
  }
  .history-timeline .frise__item strong {
    font-size: 22px;
  }
  .history-timeline .frise__item span {
    font-size: 16px;
  }
  .fiche-panorama span {
    left: 12px;
    right: 12px;
    bottom: 12px;
    font-size: 10px;
    padding: 8px 12px;
  }
  .page-fiche .page-header__description p {
    font-size: 13px;
  }
}

/* Catalogue, contact et préinscription : composants du thème. */
.page-harmonisee main .section h2,
.page-harmonisee main .cta-rouge h2 {
  font-size: 30px;
  line-height: 1.08;
  text-wrap: pretty;
}
.page-harmonisee main .etiquette {
  margin-bottom: 12px;
  line-height: 1.3;
}
.page-catalogue .catalogue-heading {
  margin-bottom: 24px;
}
.page-catalogue .catalogue-toolbar {
  padding: 20px;
  gap: 20px;
  align-items: end;
  background: var(--gris);
  border: 1px solid var(--bordure);
  border-radius: 4px;
  margin-bottom: 16px;
}
.catalogue-recherche {
  display: grid;
  gap: 8px;
  max-width: 100%;
  font-size: 12px;
  color: var(--texte);
  font-weight: 600;
}
.page-catalogue .search-field {
  width: 320px;
  max-width: 100%;
  min-height: 44px;
  background: #fff;
}
.page-catalogue .filtres button {
  min-height: 44px;
}
.page-catalogue .carte__corps {
  padding: 22px;
}
.page-catalogue .carte__corps h3 {
  margin: 14px 0 10px;
  font-size: 20px;
  line-height: 1.15;
}
.page-catalogue .meta {
  gap: 8px 16px;
  margin: 0 0 16px;
}
.page-catalogue .carte__corps .puces {
  margin: 4px 0 20px;
}
.page-catalogue .carte__corps .btn {
  min-height: 44px;
}
.page-catalogue [data-vide] {
  padding: 24px;
  border: 1px solid var(--bordure);
  background: var(--gris);
  border-radius: 4px;
  font-size: 14px;
}
.catalogue-complement {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--bordure);
  font-size: 14px;
}
.page-catalogue .cta-rouge {
  padding: 48px 0;
}
.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
}
.contact-introduction > p {
  margin-top: 16px;
  font-size: 14px;
}
.contact-direct {
  display: grid;
  margin-top: 24px;
  gap: 16px;
  font-size: 15px;
  color: var(--texte);
  overflow-wrap: anywhere;
}
.contact-direct__bloc {
  padding: 20px;
  background: var(--bleu-pale);
  border: 1px solid var(--bordure);
  border-radius: 4px;
  min-width: 0;
}
.contact-direct__titre {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.2;
  font-weight: 600;
  color: var(--rouge);
}
.contact-direct__titre svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}
.contact-direct__lien {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding-block: 10px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.contact-direct__lien + .contact-direct__lien {
  border-top: 1px solid #ccdde5;
}
.contact-direct__lien:hover > span:first-of-type {
  text-decoration: underline;
  text-underline-offset: 4px;
}
.contact-direct__lien > span:first-of-type {
  min-width: 0;
}
.contact-direct__fleche {
  margin-left: auto;
  flex-shrink: 0;
  font-size: 17px;
}
.contact-direct__bloc--email {
  background: var(--bleu);
  border-color: var(--bleu);
  color: white;
}
.contact-direct__bloc--email .contact-direct__titre {
  color: #c7e1ed;
}
.drapeau-ci {
  width: 24px;
  height: 16px;
  flex-shrink: 0;
  border-radius: 2px;
  box-shadow: 0 0 0 1px #01293a15;
}
.telephone-ci {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 600px) {
  .contact-direct__bloc {
    padding: 16px;
  }
  .contact-direct__lien {
    font-size: 14px;
  }
}
.page-harmonisee .formulaire {
  padding: 28px;
  border: 1px solid var(--bordure);
  border-radius: 4px;
  background: #fff;
  min-width: 0;
}
.page-harmonisee .formulaire > p {
  margin-bottom: 24px;
}
.page-harmonisee .champs {
  gap: 18px 20px;
}
.page-harmonisee .champ input:not([type="radio"]),
.page-harmonisee .champ select {
  min-height: 48px;
  padding: 12px 14px;
}
.page-harmonisee .champ label {
  line-height: 1.25;
}
.contact-coordonnees,
.contact-campus {
  margin-top: 28px;
}
.contact-campus.ed-campus {
  padding: 24px;
  border-radius: 4px;
}
.contact-campus > h3 {
  color: var(--bleu);
  font-size: 22px;
  line-height: 1.15;
  margin-bottom: 20px;
}
/* Un panorama photographique des campus pour les pages intérieures. */
.section.campus-reseau {
  background: var(--bleu-pale);
}
.campus-reseau__grille {
  display: grid;
  grid-template-columns: 1.15fr 1fr 1fr;
  gap: 20px;
}
.campus-reseau__carte {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--bordure);
  border-radius: 4px;
  background: white;
  text-align: left;
  font: inherit;
  color: var(--bleu);
  cursor: pointer;
  transition: border-color 180ms ease;
}
.campus-reseau__carte:hover {
  border-color: var(--rouge);
}
.campus-reseau__carte:focus-visible {
  outline: 3px solid var(--rouge);
  outline-offset: 4px;
}
.campus-reseau__carte--siege {
  grid-row: span 2;
  background: var(--bleu);
  color: white;
}
.campus-reseau__photo {
  display: block;
  position: relative;
  height: 160px;
  width: 100%;
  overflow: hidden;
}
.campus-reseau__carte--siege .campus-reseau__photo {
  flex: 1;
  min-height: 280px;
}
.campus-reseau__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.82) saturate(0.82);
}
.campus-reseau__agrandir {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 4px;
  background: white;
  color: var(--bleu);
}
.campus-reseau__badge {
  position: absolute;
  bottom: 16px;
  left: 16px;
  padding: 6px 10px;
  background: var(--rouge);
  color: white;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
}
.campus-reseau__infos {
  display: grid;
  gap: 4px;
  padding: 16px 18px;
}
.campus-reseau__carte--siege .campus-reseau__infos {
  padding: 22px;
}
.campus-reseau__pays {
  font-size: 11px;
  color: #526975;
}
.campus-reseau__carte--siege .campus-reseau__pays {
  color: #c4d8e2;
}
.campus-reseau__nom {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.15;
}
.campus-reseau__detail {
  font-size: 12px;
  line-height: 1.4;
}
.campus-reseau__note {
  font-size: 11px;
  color: #526975;
  margin: 14px 0 0;
}
.campus-credits {
  margin-top: 10px;
  font-size: 11px;
  line-height: 1.5;
}
.campus-credits summary {
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.campus-credits p {
  margin: 10px 0;
  font-size: inherit;
}
.campus-credits ul {
  padding-left: 16px;
  list-style: disc;
}
.campus-credits a {
  text-decoration: underline;
}
@media (max-width: 1000px) {
  .campus-reseau__grille {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .campus-reseau__carte--siege {
    grid-column: 1 / -1;
    grid-row: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
  }
  .campus-reseau__carte--siege .campus-reseau__photo {
    min-height: 0;
    height: 240px;
  }
}
@media (max-width: 600px) {
  .campus-reseau__grille {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
  .campus-reseau__carte--siege {
    display: flex;
  }
  .campus-reseau__photo,
  .campus-reseau__carte--siege .campus-reseau__photo {
    flex: none;
    height: 190px;
  }
  .campus-reseau__carte--siege .campus-reseau__infos {
    padding: 16px 18px;
  }
}
.page-contact .carte-contact {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 24px;
  border-radius: 4px;
  overflow-wrap: anywhere;
}
.page-contact .carte-contact h3 {
  font-size: 20px;
  line-height: 1.15;
  margin-bottom: 14px;
}
.page-contact .carte-contact > .lien-fleche {
  margin-top: auto;
  padding-top: 12px;
  min-height: 44px;
}
.page-contact .campus {
  padding: 20px 16px;
}
.page-contact .campus h3 {
  line-height: 1.2;
}
.page-contact .campus svg {
  margin-bottom: 12px;
}
.page-contact .carte-map {
  margin-top: 24px;
}
.page-contact .carte-map iframe {
  height: 340px;
}
.inscription-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 32px;
  align-items: start;
}
.inscription-cycle {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
.inscription-cycle legend {
  padding: 0 0 12px;
}
.page-preinscription .tuiles-choix {
  margin-bottom: 0;
}
.page-preinscription .tuiles-choix input {
  min-height: 0;
  padding: 0;
}
.page-preinscription .tuiles-choix label > span {
  padding: 20px;
  gap: 6px;
}
.inscription-groupe {
  margin: 4px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--bordure);
  font-size: 17px;
  line-height: 1.2;
}
.inscription-scolarite .inscription-groupe {
  margin-top: 8px;
}
.inscription-scolarite > .note {
  margin: 0;
}
.inscription-scolarite input[type="file"] {
  min-height: 48px;
  padding: 8px;
  font-size: 12px;
}
.inscription-scolarite input[type="file"]::file-selector-button {
  margin-right: 10px;
  padding: 8px 10px;
  border: 0;
  border-radius: 3px;
  background: var(--bleu-pale);
  color: var(--texte);
  font: inherit;
  cursor: pointer;
}
.inscription-scolarite select:disabled {
  color: var(--texte-doux);
  opacity: 0.65;
}
.inscription-scolarite [data-fichier-nom] {
  overflow-wrap: anywhere;
}
.inscription-scolarite .est-erreur {
  color: var(--rouge);
}
.page-preinscription .inscription-aide .encart {
  padding: 22px;
  margin-bottom: 16px;
}
.page-preinscription main .inscription-aide h2,
.page-preinscription main .inscription-aide h3 {
  font-size: 20px;
  line-height: 1.15;
  margin-bottom: 14px;
}
.inscription-detail summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  list-style: none;
  cursor: pointer;
  color: var(--texte);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
}
.inscription-detail summary::-webkit-details-marker {
  display: none;
}
.inscription-detail summary::after {
  content: "+";
  color: var(--rouge);
  font-size: 22px;
  font-weight: 400;
}
.inscription-detail[open] summary::after {
  content: "−";
}
.inscription-detail[open] summary {
  margin-bottom: 16px;
}
@media (max-width: 1000px) {
  .inscription-layout {
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 24px;
  }
}
@media (max-width: 850px) {
  .contact-layout,
  .inscription-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .page-preinscription .inscription-aide {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
  }
  .page-preinscription .inscription-aide .encart {
    margin: 0;
  }
}
@media (max-width: 700px) {
  .page-harmonisee main .section h2,
  .page-harmonisee main .cta-rouge h2 {
    font-size: 25px;
  }
  .page-harmonisee .formulaire,
  .page-contact .carte-contact,
  .page-catalogue .carte__corps {
    padding: 20px;
  }
  .page-catalogue .catalogue-toolbar {
    padding: 16px;
  }
  .page-catalogue .catalogue-recherche,
  .page-catalogue .search-field {
    width: 100%;
  }
  .page-catalogue .filtres {
    gap: 6px;
  }
  .page-catalogue .filtres button {
    padding-inline: 12px;
  }
  .page-catalogue .cta-rouge {
    padding: 40px 0;
  }
  .page-preinscription .inscription-aide {
    display: block;
  }
  .page-preinscription .inscription-aide .encart {
    margin-bottom: 16px;
  }
  .page-preinscription main .inscription-aide h2 {
    font-size: 20px;
  }
  .page-preinscription .tuiles-choix label > span {
    padding: 16px;
  }
  .page-contact .carte-map iframe {
    height: 280px;
  }
  .contact-campus.ed-campus {
    padding: 16px;
  }
}

/* À propos : même langage éditorial que l’accueil. */
.apropos-header {
  padding: 28px 0 40px;
  background: var(--bleu);
  color: #d6e2e6;
}
.apropos-header .fil {
  color: #d6e2e6;
  margin-bottom: 28px;
}
.apropos-header .fil a:hover {
  color: #fff;
  text-decoration: underline;
}
.apropos-header__intro {
  max-width: 780px;
  margin: auto;
  text-align: center;
}
.apropos-header .etiquette {
  justify-content: center;
  color: #fff;
  margin-bottom: 14px;
}
.apropos-header h1 {
  margin: 0 0 16px;
  color: #fff;
  font-size: clamp(32px, 3.7vw, 46px);
  line-height: 1.08;
  text-wrap: balance;
}
.apropos-header__intro p {
  max-width: 600px;
  margin: auto;
  font-size: 15px;
  line-height: 1.5;
}
.page-catalogue .apropos-header h1 {
  white-space: pre-line;
}
@media (max-width: 700px) {
  .page-fiche .page-header {
    padding-block: 20px 24px;
    gap: 14px;
  }
}
.apropos-navigation {
  background: var(--bleu-pale);
  border-bottom: 1px solid var(--bordure);
}
.apropos-navigation .conteneur {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0 32px;
  padding-block: 6px;
}
.apropos-navigation a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-block: 8px;
  color: var(--texte);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
}
.apropos-navigation a:hover {
  color: var(--rouge);
  text-decoration: underline;
  text-underline-offset: 5px;
}
.page-a-propos main .section h2 {
  max-width: 650px;
  font-size: 30px;
  line-height: 1.08;
  text-wrap: pretty;
}
.page-a-propos main .etiquette {
  margin-bottom: 12px;
  line-height: 1.3;
}
.apropos-engagement,
.apropos-valeurs {
  margin-top: 28px;
}
.apropos-engagement .bloc-vision,
.apropos-mission {
  padding: 28px;
  border: 1px solid var(--bordure);
  border-radius: 4px;
}
.apropos-engagement h3 {
  margin-bottom: 16px;
  font-size: 22px;
  line-height: 1.15;
}
.apropos-engagement .grand {
  font-size: 18px;
  line-height: 1.4;
}
.apropos-engagement .liste-coches {
  margin: 20px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--bordure);
  gap: 14px;
}
.apropos-engagement .liste-coches svg {
  color: var(--rouge);
}
.apropos-vision__image {
  display: block;
  width: 100%;
  height: auto;
  margin-top: 20px;
  border-radius: 4px;
}
.apropos-mission > p {
  font-size: 14px;
}
.apropos-mission .mission-liste li {
  gap: 12px;
  padding: 14px 0;
}
.apropos-mission .mission-liste li > span {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 4px;
  background: var(--rouge-pale);
  font-weight: 600;
}
.apropos-mission .mission-liste h4 {
  font-size: 16px;
  line-height: 1.2;
  margin-bottom: 6px;
}
.apropos-mission .mission-liste p {
  font-size: 13px;
}
.apropos-mission__conclusion {
  margin-top: 16px;
}
.page-a-propos .intro-editorial {
  gap: clamp(28px, 4vw, 56px);
}
.page-a-propos .intro-editorial p {
  font-size: 14px;
}
.page-a-propos .history-timeline {
  margin-top: 28px;
}
.page-a-propos .history-timeline .frise {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}
.page-a-propos .history-timeline .frise__item {
  display: block;
  padding: 20px;
  border: 1px solid var(--bordure);
  border-top: 3px solid var(--rouge);
  border-radius: 4px;
  background: #fff;
}
.page-a-propos .history-timeline .frise__item strong {
  margin-bottom: 12px;
  color: var(--rouge);
  font-size: 28px;
  line-height: 1;
}
.page-a-propos .history-timeline .frise__item span {
  font-size: 14px;
  line-height: 1.4;
  font-weight: 500;
}
.page-a-propos .equipe-carte > img {
  height: 260px;
}
.page-a-propos .equipe-carte__corps {
  padding: 22px;
}
.page-a-propos .equipe-carte h3 {
  font-size: 19px;
  line-height: 1.2;
}
.page-a-propos .equipe-carte .role {
  margin-bottom: 14px;
  line-height: 1.3;
}
.apropos-valeurs .grille-3 {
  gap: 16px;
  counter-reset: valeur;
}
.apropos-valeurs .valeur {
  counter-increment: valeur;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--bordure);
  border-radius: 4px;
  transition:
    transform 220ms ease,
    box-shadow 220ms ease,
    border-color 220ms ease;
}
.apropos-valeurs .valeur::before {
  content: counter(valeur, decimal-leading-zero);
  display: inline-block;
  margin-bottom: 14px;
  padding: 6px 9px;
  border-radius: 4px;
  background: var(--rouge-pale);
  color: var(--rouge);
  font-size: 12px;
  font-weight: 700;
  transition:
    background 220ms ease,
    color 220ms ease,
    transform 220ms ease;
}
@media (hover: hover) and (pointer: fine) {
  .apropos-valeurs .valeur:hover {
    transform: translateY(-4px);
    border-color: #d4b1ae;
    box-shadow: 0 10px 24px rgb(1 41 58 / 0.08);
  }
  .apropos-valeurs .valeur:hover::before {
    background: var(--rouge);
    color: #fff;
    transform: scale(1.05);
  }
}
@media (prefers-reduced-motion: reduce) {
  .apropos-valeurs .valeur,
  .apropos-valeurs .valeur::before {
    transition: none;
  }
  .apropos-valeurs .valeur:hover,
  .apropos-valeurs .valeur:hover::before {
    transform: none;
  }
}
.apropos-valeurs .valeur h3 {
  font-size: 18px;
  line-height: 1.2;
}
.page-a-propos .chiffres__inner {
  gap: clamp(28px, 4vw, 56px);
  align-items: center;
}
.page-a-propos .aide-liste {
  margin-top: 24px;
}
.page-a-propos .aide-liste li {
  margin-bottom: 14px;
}
.page-a-propos .compteurs {
  gap: 12px;
}
.apropos-atouts .chiffres__inner {
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr);
  gap: 24px;
  align-items: stretch;
}
.apropos-atouts__entete {
  grid-column: 1 / -1;
}
.apropos-atouts__entete h2 {
  margin-bottom: 0;
}
.page-a-propos main .section .apropos-atouts__entete h2 {
  max-width: none;
  text-wrap: initial;
}
@media (min-width: 1001px) {
  .page-a-propos main .section .apropos-atouts__entete h2 {
    font-size: clamp(25px, 2.4vw, 30px);
    white-space: nowrap;
  }
}
.apropos-atouts__liste {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.apropos-atouts__liste li {
  display: flex;
  align-items: center;
  min-height: 132px;
  gap: 12px;
  padding: 20px 18px;
  background: #0c3546;
  border: 1px solid #315362;
  border-radius: 4px;
}
.apropos-atouts__icone {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  color: #c7e1ed;
}
.apropos-atouts__icone svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.apropos-atouts__liste h3 {
  font-size: 16px;
  line-height: 1.2;
  color: white;
  margin: 0 0 8px;
}
.apropos-atouts__liste p {
  font-size: 13px;
  line-height: 1.45;
  color: #c8dae2;
  margin: 0;
}
.page-a-propos .apropos-atouts .compteurs {
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
}
.page-a-propos .apropos-atouts .compteur {
  justify-content: center;
  padding: 20px 18px;
  background: #0c3546;
  border-color: #315362;
}
.page-a-propos .apropos-atouts .compteur strong {
  font-size: 38px;
  margin-bottom: 8px;
  color: #c7e1ed;
}
.apropos-atouts .compteur span {
  color: #c8dae2;
  line-height: 1.45;
}
@media (max-width: 1000px) {
  .apropos-atouts .chiffres__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }
}
@media (max-width: 600px) {
  .apropos-atouts__liste {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    grid-template-rows: auto;
  }
  .apropos-atouts__liste li {
    padding: 16px;
    min-height: 0;
  }
}
.page-a-propos .compteur {
  padding: 24px;
  border: 1px solid #285060;
  border-radius: 4px;
}
.page-a-propos .compteur strong {
  font-size: 42px;
  line-height: 1.1;
  margin-bottom: 10px;
}
@media (max-width: 1000px) {
  .page-a-propos .history-timeline .frise {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .apropos-engagement {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 700px) {
  .apropos-header {
    padding: 20px 0 28px;
  }
  .apropos-header .fil {
    margin-bottom: 24px;
  }
  .apropos-header__intro p {
    font-size: 14px;
  }
  .apropos-navigation .conteneur {
    gap: 0 20px;
  }
  .apropos-navigation a {
    font-size: 12px;
  }
  .page-a-propos main .section h2 {
    font-size: 25px;
  }
  .apropos-engagement,
  .apropos-valeurs {
    margin-top: 24px;
  }
  .apropos-engagement .bloc-vision,
  .apropos-mission,
  .apropos-valeurs .valeur {
    padding: 20px;
  }
  .apropos-engagement .grand {
    font-size: 16px;
  }
  .page-a-propos .history-timeline .frise {
    grid-template-columns: 1fr;
  }
  .page-a-propos .history-timeline .frise__item {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 16px;
    padding: 18px;
    border-top: 1px solid var(--bordure);
    border-left: 3px solid var(--rouge);
  }
  .page-a-propos .history-timeline .frise__item strong {
    margin: 0;
    font-size: 25px;
  }
  .page-a-propos .compteur {
    padding: 18px;
  }
  .page-a-propos .compteur strong {
    font-size: 36px;
  }
}
/* Admissions : comparaison des tarifs et préparation du dossier. */
.page-scolarite main .section h2 {
  font-size: clamp(25px, 2.7vw, 32px);
  line-height: 1.12;
  margin-bottom: 14px;
}
.page-scolarite main .section h3 {
  font-size: 21px;
  line-height: 1.2;
}
.page-scolarite main .section p {
  font-size: 14px;
  line-height: 1.5;
}
.page-scolarite .section-heading {
  align-items: end;
  gap: 24px;
}
.page-scolarite .section-heading p {
  margin: 0;
}
.scolarite-intro__grille,
.scolarite-paiement,
.scolarite-dossier {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  align-items: start;
  gap: 48px;
}
.scolarite-intro .badge {
  margin-bottom: 16px;
  background: var(--rouge-pale);
  color: var(--rouge);
}
.scolarite-intro p {
  max-width: 650px;
  margin-bottom: 20px;
}
.scolarite-intro p a {
  color: var(--rouge);
  text-decoration: underline;
}
.scolarite-rentree {
  padding: 24px;
  background: var(--bleu-pale);
  border-left: 3px solid var(--bleu);
  border-radius: 4px;
}
.scolarite-rentree > span {
  display: block;
  font-size: 13px;
  margin-bottom: 8px;
}
.scolarite-rentree > strong {
  display: block;
  font-size: 24px;
  line-height: 1.2;
  margin-bottom: 20px;
}
.scolarite-devise {
  font-size: 13px;
  white-space: nowrap;
  color: var(--texte-doux);
}
.scolarite-tarifs + .scolarite-tarifs {
  margin-top: 36px;
}
.scolarite-tarifs__entete {
  margin-bottom: 14px;
}
.scolarite-tarifs__entete h3 {
  margin-bottom: 6px;
}
.scolarite-tarifs__entete p {
  margin: 0;
}
.scolarite-table {
  overflow-x: auto;
  border: 1px solid var(--bordure);
  border-radius: 4px;
  background: #fff;
}
.scolarite-table table {
  width: 100%;
  min-width: 800px;
  border-collapse: collapse;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.scolarite-table caption {
  text-align: left;
  padding: 14px 18px;
  font-size: 12px;
  background: var(--bleu-pale);
}
.scolarite-table th,
.scolarite-table td {
  padding: 18px;
  text-align: right;
  border-bottom: 1px solid var(--bordure);
  white-space: nowrap;
}
.scolarite-table thead {
  background: var(--bleu);
  color: #fff;
}
.scolarite-table thead th {
  font-size: 13px;
  font-weight: 600;
}
.scolarite-table th:first-child {
  text-align: left;
}
.scolarite-table th span {
  display: block;
  margin-top: 5px;
  font-size: 12px;
  font-weight: 500;
}
.scolarite-table thead span {
  color: #d6e2e6;
}
.scolarite-table tbody th span {
  color: var(--texte-doux);
}
.scolarite-table tbody tr:last-child > * {
  border-bottom: 0;
}
.scolarite-table tbody tr:hover {
  background: var(--gris);
}
.scolarite-table__total {
  background: var(--rouge-pale);
  color: var(--rouge);
  font-weight: 700;
}
.scolarite-table sup {
  font-size: 9px;
}
.scolarite-table-aide {
  display: none;
}
.scolarite-tenue {
  padding: 12px 16px;
  margin: 12px 0 0;
  border-left: 3px solid var(--rouge);
  background: #fff;
}
.scolarite-regles {
  padding-left: 20px;
  margin: 20px 0 0;
  font-size: 14px;
  line-height: 1.5;
}
.scolarite-regles li + li {
  margin-top: 12px;
}
.scolarite-regles li::marker {
  color: var(--rouge);
}
.scolarite-banque {
  padding: 28px;
  border-radius: 4px;
  background: var(--bleu);
  color: #fff;
}
.scolarite-banque h3 {
  color: #fff;
  margin-bottom: 20px;
}
.scolarite-banque dl {
  margin: 0;
}
.scolarite-banque dl > div {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 0;
  border-bottom: 1px solid #315362;
}
.scolarite-banque dl > div:last-child {
  border: 0;
  padding-bottom: 0;
}
.scolarite-banque dt {
  font-size: 13px;
  color: #c1d0d7;
}
.scolarite-banque dd {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
}
.scolarite-banque dl > .scolarite-banque__compte {
  display: block;
}
.scolarite-banque__compte dd {
  margin-top: 8px;
  font-size: clamp(17px, 1.8vw, 22px);
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.scolarite-dossier {
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
}
.scolarite-dossier p {
  max-width: 440px;
  margin-bottom: 22px;
}
.scolarite-documents {
  list-style: none;
  padding: 0;
  margin: 0;
  border-top: 1px solid var(--bordure);
}
.scolarite-documents li {
  display: grid;
  grid-template-columns: 125px minmax(0, 1fr);
  gap: 18px;
  padding: 16px 0;
  border-bottom: 1px solid var(--bordure);
  font-size: 14px;
  line-height: 1.45;
}
.scolarite-documents strong {
  font-size: 13px;
  color: var(--rouge);
}
.scolarite-formations {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 40px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.scolarite-formations li {
  border-bottom: 1px solid var(--bordure);
  padding: 16px 0;
  font-size: 15px;
}
.scolarite-formations span {
  display: block;
  margin-top: 5px;
  font-size: 13px;
  color: var(--texte-doux);
  line-height: 1.5;
}
.scolarite-contacts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.scolarite-contacts article {
  padding: 24px;
  border: 1px solid var(--bordure);
  border-radius: 4px;
  background: #fff;
}
.scolarite-contacts h3 {
  margin-bottom: 8px;
}
.scolarite-contacts__liens {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  margin-top: 20px;
  font-size: 14px;
}
.scolarite-contacts__liens a:last-child {
  flex-basis: 100%;
  color: var(--rouge);
  overflow-wrap: anywhere;
}
.scolarite-signature {
  margin: 24px 0 0;
  color: var(--texte-doux);
}
.inscription-infos {
  background: var(--bleu-pale);
}
.inscription-infos p {
  font-size: 13px;
  line-height: 1.5;
}
@media (max-width: 900px) {
  .scolarite-intro__grille,
  .scolarite-paiement,
  .scolarite-dossier {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .scolarite-table-aide {
    display: block;
    font-size: 12px !important;
    color: var(--texte-doux);
  }
}
@media (max-width: 600px) {
  .scolarite-contacts,
  .scolarite-formations {
    grid-template-columns: 1fr;
  }
  .scolarite-documents li {
    grid-template-columns: 100px minmax(0, 1fr);
    gap: 12px;
  }
  .scolarite-banque,
  .scolarite-rentree,
  .scolarite-contacts article {
    padding: 20px;
  }
  .scolarite-rentree > strong {
    font-size: 21px;
  }
  .page-scolarite .section-heading {
    align-items: start;
  }
}
/* Portail étudiant : entrée compacte, dans la palette du site. */
.page-connexion {
  background: var(--bleu-pale);
}
.page-connexion main {
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
.portail__navigation {
  padding: 24px 32px 12px;
}
.portail__retour-site {
  background: transparent;
  border: 1px solid #c9dce5;
  font-size: 13px;
}
.page-connexion .portail {
  flex: 1;
  display: grid;
  align-items: center;
  padding: 12px 20px 40px;
}
.portail > .conteneur {
  width: min(100%, 580px);
}
.portail__carte {
  border: 1px solid var(--bordure);
  border-radius: 4px;
  background: white;
  box-shadow: 0 12px 40px #01293a08;
}
.portail__marque {
  display: flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  margin-bottom: 28px;
  color: var(--bleu);
}
.portail__marque img {
  width: 140px;
  height: 100px;
  object-fit: contain;
}
.portail__marque > span {
  display: grid;
  gap: 4px;
}
.portail__marque strong {
  font-size: 25px;
  line-height: 1;
  letter-spacing: -1px;
}
.portail__marque small {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
}
.portail__connexion {
  padding: 32px;
  min-width: 0;
}
.portail__connexion .etiquette {
  font-size: 11px;
  margin-bottom: 10px;
}
.portail__connexion h1 {
  font-size: 28px;
  line-height: 1.12;
  margin: 0 0 12px;
  letter-spacing: -0.7px;
}
.portail__connexion > p {
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 20px;
}
.portail__connexion .portail__information {
  padding: 12px 14px;
  background: var(--bleu-pale);
  border-left: 3px solid var(--bleu);
  color: var(--bleu);
  font-size: 12px;
}
.portail__champs {
  display: grid;
  gap: 16px;
  padding: 0;
  margin: 0;
  border: 0;
  min-width: 0;
}
.portail__champs legend {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.portail__mot-de-passe {
  position: relative;
}
.portail__mot-de-passe input {
  width: 100%;
  padding-right: 90px !important;
}
.portail__mot-de-passe button {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  min-height: 40px;
  padding: 0 10px;
  border: 0;
  background: transparent;
  color: var(--bleu);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.portail__aide {
  font-size: 12px;
}
.portail__aide summary {
  cursor: pointer;
  color: var(--rouge);
  font-weight: 700;
}
.portail__aide p {
  margin: 10px 0 6px;
}
.portail__aide a,
.portail__inscription a {
  color: var(--rouge);
  font-weight: 700;
}
.portail__retour {
  font-size: 13px;
  line-height: 1.5;
  color: var(--bleu);
  margin: 12px 0 0;
}
.portail__retour:empty {
  display: none;
}
.portail__inscription {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--bordure);
  display: grid;
  gap: 5px;
  font-size: 13px;
}
.portail__assistance {
  text-align: center;
  font-size: 12px;
  line-height: 1.6;
  margin: 22px 0 0;
}
.portail__assistance a {
  white-space: nowrap;
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 700px) {
  .portail__navigation {
    padding: 16px 20px 8px;
  }
  .page-connexion .portail {
    padding: 12px 20px 24px;
  }
  .portail__connexion {
    padding: 24px;
  }
  .portail__connexion h1 {
    font-size: 24px;
  }
}
