/* ============ Mini-site école — feuille de style fusionnée ============ */
/* Fusion de school-template.css (design system de base) et kintambo.css  */
/* (compléments / surcharges). En cas de doublon, les déclarations de     */
/* kintambo.css priment, comme dans l'ordre de chargement d'origine.      */

:root {
  --navy: #062b62;
  --navy-deep: #031c42;
  --blue-soft: #edf3f8;
  --red: #c6222b;
  --ink: #10213b;
  --muted: #617087;
  --line: #dce4eb;
  --white: #fff;
  --shadow: 0 18px 44px rgba(10,40,82,.11);
  --wrap: min(1160px,calc(100% - 40px));
  --sans: "DM Sans",Arial,sans-serif;
  --display: "Manrope",Arial,sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--ink);
  background: #fff;
  font: 16px/1.65 var(--sans);
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

/* Largeur de contenu du mini-site : scoping pour ne pas écraser .wrap de style.css. */
body[data-school] .wrap {
  width: var(--wrap);
  margin-inline: auto;
}

body[data-school] .skip-link {
  position: fixed;
  top: -100px;
  left: 16px;
  z-index: 10;
  padding: 12px 16px;
  background: #fff;
  color: var(--navy);
}

body[data-school] .skip-link:focus {
  top: 16px;
}

/* Header du mini-site école (ancien balisage) : scoping pour ne pas entrer
   en conflit avec l'en-tête partagé de style.css sur les pages globales. */
body[data-school] .site-header {
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  width: 100%;
  padding: 24px 0;
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.18);
}

body[data-school] .site-header .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

body[data-school] .brand {
  display: flex;
  align-items: center;
  gap: 12px;
  font: 600 10px/1.2 var(--display);
  letter-spacing: .12em;
}

body[data-school] .brand img {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

body[data-school] .brand b {
  font-size: 14px;
  letter-spacing: .03em;
}

.header-link {
  font-weight: 700;
  font-size: 14px;
}

.header-link span {
  color: #f3b6b9;
  margin-left: 8px;
}

.school-hero {
  position: relative;
  min-height: 720px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--navy-deep);
  color: #fff;
}

.school-hero>img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,rgba(2,22,52,.88) 0%,rgba(3,28,66,.56) 52%,rgba(3,28,66,.18) 100%),linear-gradient(0deg,rgba(2,20,47,.82),transparent 56%);
}

.hero-copy {
  position: relative;
  padding-top: 150px;
  padding-bottom: 76px;
}

.hero-kicker,.hero-copy h1,.hero-lead,.hero-badges,.hero-actions {
  max-width: 760px;
}

.hero-kicker,.red-label,.cali-label {
  font-size: 11px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.hero-kicker {
  color: #bed0e8;
}

.hero-copy h1 {
  margin: 22px 0 18px;
  color: #fff;
  font: 800 clamp(44px,7vw,84px)/.98 var(--display);
  letter-spacing: -.055em;
}

.hero-copy h1 em {
  font-style: normal;
  color: #d8e6f5;
}

.hero-lead {
  max-width: 650px;
  margin: 0;
  color: #edf4fb;
  font-size: 19px;
}

.hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 26px;
}

.hero-badges .badge-cali {
  border-color: #e7a9ac;
  background: rgba(198,34,43,.75);
}

.hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 32px;
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 11px 18px;
  border: 1px solid transparent;
  border-radius: 3px;
  font-weight: 800;
  font-size: 13px;
  transition: transform .25s ease,background .25s ease,border-color .25s ease;
}

.button:hover {
  transform: translateY(-2px);
}

.button-light {
  background: #fff;
  color: var(--navy);
}

.button-blue {
  background: var(--navy);
  color: #fff;
}

.button-ghost {
  border-color: rgba(255,255,255,.55);
  color: #fff;
}

.button-outline {
  border-color: #aab8c6;
  color: var(--navy);
  background: transparent;
}

.text-link {
  color: #fff;
  font-weight: 700;
  font-size: 13px;
}

.icon {
  margin-left: 7px;
}

.section-nav {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 8px 22px rgba(10,40,82,.05);
}

.section-nav-inner {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
}

.section-nav-inner::-webkit-scrollbar {
  display: none;
}

.section-nav a {
  position: relative;
  flex: none;
  padding: 17px 13px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.section-nav a:after {
  content: "";
  position: absolute;
  right: 13px;
  bottom: 0;
  left: 13px;
  height: 3px;
  background: var(--red);
  transform: scaleX(0);
  transition: transform .25s ease;
}

.section-nav a.is-active,.section-nav a:hover {
  color: var(--navy);
}

.section-nav a.is-active:after {
  transform: scaleX(1);
}

.quick-actions {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  margin-top: 28px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: var(--shadow);
}

.quick-actions a {
  min-height: 128px;
  padding: 24px;
  border-right: 1px solid var(--line);
  transition: background .25s ease;
}

.quick-actions a:last-child {
  border: 0;
}

.quick-actions a:hover {
  background: var(--blue-soft);
}

.quick-actions span {
  display: block;
  color: var(--red);
  font: 700 11px var(--display);
  letter-spacing: .12em;
}

.quick-actions strong {
  display: block;
  margin-top: 14px;
  font: 700 18px var(--display);
}

.quick-actions small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
}

.content-section {
  padding: 105px 0;
  scroll-margin-top: 58px;
}

.tinted {
  background: var(--blue-soft);
}

.section-head {
  max-width: 730px;
  margin-bottom: 42px;
}

.section-head h2,.cali-section h2,.fee-card h2,.final-cta h2 {
  margin: 0;
  color: var(--navy);
  font: 800 clamp(34px,5vw,57px)/1.03 var(--display);
  letter-spacing: -.045em;
}

.section-head p {
  margin: 17px 0 0;
  color: var(--muted);
  font-size: 17px;
  max-width: 650px;
}

.intro-grid {
  display: grid;
  grid-template-columns: 1fr .9fr;
  gap: 90px;
  align-items: center;
}

.intro-grid img {
  height: 410px;
  object-fit: cover;
}

.body-copy {
  max-width: 640px;
  color: var(--muted);
}

.values {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 27px;
}

.values span {
  padding: 8px 12px;
  border: 1px solid var(--line);
  color: var(--navy);
  font-weight: 700;
  font-size: 12px;
  background: #fff;
}

.cycle-path {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 14px;
}

.cycle-card {
  position: relative;
  min-height: 210px;
  padding: 24px 20px;
  background: #fff;
  border: 1px solid var(--line);
}

.cycle-card:after {
  content: "→";
  position: absolute;
  right: -12px;
  top: 89px;
  color: var(--red);
  font-size: 20px;
}

.cycle-card:last-child:after {
  display: none;
}

.cycle-card>span {
  color: var(--red);
  font-size: 12px;
  font-weight: 800;
}

.cycle-card h3 {
  margin: 35px 0 8px;
  font: 700 22px var(--display);
}

.cycle-card p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.options-line {
  display: flex;
  gap: 18px;
  align-items: center;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #ccd8e3;
  color: var(--muted);
  font-size: 14px;
}

.options-line strong {
  color: var(--navy);
}

.cali-section {
  padding: 96px 0;
  background: var(--navy);
  color: #fff;
}

..cali-grid {
  display: grid;
  grid-template-columns: 1fr .9fr;
  gap: 70px;
  align-items: center;
}

.cali-section h2 {
  color: #fff;
  max-width: 580px;
}

.cali-section p {
  max-width: 590px;
  color: #d2e1f3;
}

.cali-label {
  display: inline-block;
  padding: 8px 10px;
  border: 1px solid #e4a4a9;
  color: #ffd9db;
}

.cali-section img {
  height: 330px;
  width: 100%;
  object-fit: cover;
}

.english-mark {
  display: inline-block;
  margin-top: 10px;
  color: #f2b2b6;
  font: 700 14px var(--display);
}

.number {
  color: var(--red);
  font: 800 12px var(--display);
}

.admission-grid a,.news-grid a,.download-link {
  color: var(--red);
  font-weight: 800;
  font-size: 13px;
}

.timeline>div:last-child {
  border: 0;
}

.dates-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 14px;
}

.date-card {
  padding: 25px;
  background: #fff;
  border: 1px solid var(--line);
}

.date-card.is-next {
  border-top: 4px solid var(--red);
}

.date-tag {
  display: block;
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.date-card time {
  display: block;
  margin-top: 26px;
  color: var(--navy);
  font: 800 27px var(--display);
}

.date-card h3 {
  margin: 8px 0 0;
  font: 700 17px var(--display);
}

.date-card p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.fee-section {
  padding: 70px 0;
  background: #fff;
}

.fee-card {
  display: grid;
  grid-template-columns: 1fr .65fr;
  gap: 60px;
  padding: 45px;
  background: #fff4f4;
  border: 1px solid #f1cccc;
}

.red-label {
  color: var(--red);
}

.fee-card h2 {
  margin-top: 14px;
  font-size: 42px;
}

.fee-card p {
  color: var(--muted);
  max-width: 660px;
}

.fee-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 10px;
}

.fee-actions strong {
  margin-bottom: 4px;
  font: 700 18px var(--display);
}

.split-layout {
  display: grid;
  grid-template-columns: minmax(250px,.75fr) 1fr;
  gap: 80px;
  align-items: start;
}

.split-layout .section-head {
  margin-bottom: 0;
}

.calendar-list {
  margin: 0 0 30px;
  padding: 0;
  list-style: none;
}

.calendar-list li {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
}

.calendar-dot {
  width: 12px;
  height: 12px;
  flex: none;
  border-radius: 50%;
  background: var(--navy);
}

.calendar-dot.congés {
  background: #d5a13b;
}

.calendar-dot.examens {
  background: var(--red);
}

.calendar-list small,.calendar-list strong {
  display: block;
}

.calendar-list small {
  color: var(--muted);
  font-size: 12px;
}

.calendar-list strong {
  font: 700 17px var(--display);
}

.tabs {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--line);
}

.tab {
  padding: 12px 14px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
}

.tab.is-active {
  color: var(--navy);
  border-bottom: 3px solid var(--red);
}

.tab-panel {
  display: none;
}

.tab-panel.is-active {
  display: block;
}

.accordion {
  border-bottom: 1px solid var(--line);
}

.accordion summary {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 0;
  cursor: pointer;
  font: 700 15px var(--display);
  list-style: none;
}

.accordion summary::-webkit-details-marker {
  display: none;
}

.accordion summary span {
  color: var(--red);
  font-size: 20px;
  line-height: 1;
}

.accordion[open] summary span {
  transform: rotate(45deg);
}

.accordion p {
  margin: 0 25px 18px 0;
  color: var(--muted);
  font-size: 14px;
}

.download-link {
  display: inline-block;
  margin-top: 24px;
}

.uniform-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  margin-top: 5px;
}

.uniform-columns>div {
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line);
}

.uniform-columns h3 {
  margin: 0;
  font: 700 18px var(--display);
}

.uniform-columns p,.avoid p {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 14px;
}

.avoid {
  margin-top: 16px;
  padding: 16px 20px;
  background: #fff3f3;
  border: 1px solid #f1cccc;
}

.avoid strong {
  color: var(--red);
}

.accordions {
  max-width: 700px;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 14px;
}

.news-grid article {
  min-height: 230px;
  padding: 25px;
  background: #fff;
  border: 1px solid var(--line);
}

.news-grid span {
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.news-grid h3 {
  margin: 30px 0 8px;
  font: 700 20px var(--display);
}

.news-grid p {
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 14px;
}

.contact-section {
  background: #fff;
}

.contact-grid {
  display: grid;
  grid-template-columns: 1fr .9fr;
  gap: 80px;
}

.contact-grid h3 {
  font: 700 22px var(--display);
}

dl {
  margin: 28px 0;
}

dl div {
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}

dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
}

dd {
  margin: 3px 0 0;
  color: var(--navy);
  font-weight: 600;
}

.contact-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.map-card {
  position: relative;
  min-height: 440px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 8px;
  padding: 25px;
  background: #dfe8e4;
  overflow: hidden;
}

.map-grid {
  position: absolute;
  inset: 0;
  opacity: .6;
  background: linear-gradient(32deg,transparent 47%,#fff 48%,#fff 51%,transparent 52%),linear-gradient(118deg,transparent 47%,#fff 48%,#fff 51%,transparent 52%),linear-gradient(0deg,transparent 49%,#b7cbc4 50%,transparent 51%);
  background-size: 130px 90px,160px 130px,100% 100%;
}

.map-card span,.map-card a {
  position: relative;
  z-index: 1;
}

.final-cta {
  padding: 95px 0;
  background: var(--navy);
  color: #fff;
  text-align: center;
}

.final-cta h2 {
  color: #fff;
}

.final-cta p {
  max-width: 600px;
  margin: 18px auto 28px;
  color: #cddbed;
}

.final-cta>div>div {
  display: flex;
  justify-content: center;
  gap: 12px;
}

body[data-school] .site-footer {
  padding: 45px 0 90px;
  background: var(--navy-deep);
  color: #c4d2e3;
}

body[data-school] .site-footer .wrap {
  display: flex;
  align-items: center;
  gap: 20px;
}

body[data-school] .site-footer img {
  width: 42px;
  height: 42px;
  object-fit: contain;
}

body[data-school] .site-footer p {
  margin: 0;
  flex: 1;
  font-size: 13px;
}

body[data-school] .site-footer a {
  font-size: 13px;
  font-weight: 700;
}

.mobile-bar {
  display: none;
}

@media (max-width: 800px) {
  :root {
    --wrap: min(100% - 32px,600px);
  }

  body[data-school] .site-header {
    padding: 16px 0;
  }

  body[data-school] .brand img {
    width: 40px;
    height: 40px;
  }

  body[data-school] .header-link {
    font-size: 12px;
  }

  .school-hero {
    min-height: 720px;
  }

  .hero-copy {
    padding-top: 130px;
    padding-bottom: 52px;
  }

  .hero-copy h1 {
    font-size: clamp(42px,13vw,64px);
  }

  .hero-lead {
    font-size: 16px;
  }

  .hero-actions {
    align-items: stretch;
    flex-direction: column;
    max-width: 270px;
  }

  .hero-actions .text-link {
    text-align: center;
    padding: 5px;
  }

  .section-nav {
    top: 0;
  }

  .section-nav a {
    padding: 14px 10px;
    font-size: 12px;
  }

  .quick-actions {
    grid-template-columns: 1fr 1fr;
  }

  .quick-actions a {
    min-height: 116px;
    padding: 18px;
  }

  .quick-actions a:nth-child(2) {
    border-right: 0;
  }

  .quick-actions a:nth-child(-n+2) {
    border-bottom: 1px solid var(--line);
  }

  .quick-actions strong {
    font-size: 15px;
  }

  .content-section {
    padding: 75px 0;
  }

  .intro-grid,.cali-grid,.split-layout,.contact-grid,.fee-card {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .intro-grid img {
    height: 260px;
    order: -1;
  }

  .section-head {
    margin-bottom: 30px;
  }

  .section-head h2,.cali-section h2 {
    font-size: 39px;
  }

  .cycle-path {
    grid-template-columns: 1fr 1fr;
  }

  .cycle-card {
    min-height: 190px;
  }

  .cycle-card:after {
    display: none;
  }

  .options-line {
    display: block;
  }

  .options-line span {
    display: block;
    margin-top: 7px;
  }

  .cali-section {
    padding: 72px 0;
  }

  .cali-section img {
    height: 250px;
  }

  .admission-grid,.dates-grid,.news-grid {
    grid-template-columns: 1fr;
  }

  .timeline {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    border-top: 0;
  }

  .timeline>div:nth-child(odd) {
    padding-right: 10px;
  }

  .timeline>div:nth-child(even) {
    padding-left: 10px;
  }

  .fee-card {
    padding: 28px;
  }

  .fee-card h2 {
    font-size: 38px;
  }

  .uniform-columns {
    grid-template-columns: 1fr;
  }

  .map-card {
    min-height: 280px;
  }

  body[data-school] .site-footer {
    padding-bottom: 85px;
  }

  body[data-school] .site-footer .wrap {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  body[data-school] .site-footer p {
    flex-basis: calc(100% - 62px);
  }

  .mobile-bar {
    position: fixed;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    z-index: 5;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    background: rgba(3,28,66,.97);
    color: #fff;
    box-shadow: 0 -8px 24px rgba(0,0,0,.15);
  }

  .mobile-bar a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
    font-size: 18px;
  }

  .mobile-bar span {
    font-size: 10px;
    font-weight: 700;
  }

  .mobile-bar a:last-child {
    color: #ffd1d4;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,*:before,*:after {
    transition: none !important;
  }
}

.cali-grid {
  display: grid;
  grid-template-columns: 1fr .9fr;
  gap: 70px;
  align-items: center;
}

.cali-section {
  padding: 96px 0;
  background: var(--navy);
  color: #fff;
}

@media (max-width: 800px) {
  .cali-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

/* ============ Compléments et surcharges par établissement ============ */

/* Adresse : une information lisible, sans effet de bloc lourd. */

.address-card {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-top: 30px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
}

.address-card .pin {
  flex: none;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: var(--navy);
  font-size: 16px;
  font-weight: 800;
}

.address-card strong {
  display: block;
  color: var(--navy);
  font: 800 11px var(--display);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.address-card p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
  max-width: 600px;
}

.school-hero .address-card {
  max-width: 650px;
  border-color: rgba(255,255,255,.3);
  color: #fff;
}

.school-hero .address-card .pin {
  color: #fff;
}

.school-hero .address-card strong {
  color: #fff;
}

.school-hero .address-card p {
  color: #d2e1f3;
}

/* Admissions : distinguer les deux parcours et guider la prochaine action. */

#inscriptions {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

#inscriptions>.wrap {
  position: relative;
}

.admission-address {
  max-width: 660px;
  margin: 0 0 34px;
}

.admission-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 16px;
}

.admission-grid article {
  position: relative;
  min-height: 250px;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 16px 34px rgba(10,40,82,.08);
  overflow: hidden;
}

.admission-grid article:after {
  content: "";
  position: absolute;
  right: -28px;
  bottom: -42px;
  width: 130px;
  height: 130px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 50%;
}

.admission-grid article:first-child {
  background: var(--navy);
  color: #fff;
}

.admission-grid article:nth-child(2) {
  background: var(--blue-soft);
}

.admission-grid .number {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin-bottom: 28px;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: var(--red);
  font: 800 12px var(--display);
}

.admission-grid article:first-child .number {
  color: #fff;
  border-color: rgba(255,255,255,.5);
}

.admission-grid h3 {
  margin: 0 0 10px;
  color: var(--navy);
  font: 800 23px/1.15 var(--display);
}

.admission-grid article:first-child h3 {
  color: #fff;
}

.admission-grid p {
  max-width: 440px;
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

.admission-grid article:first-child p {
  color: #d2e1f3;
}

.timeline {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 0;
  margin-top: 42px;
  border-top: 1px solid var(--line);
}

.timeline>div {
  position: relative;
  border-right: 1px solid var(--line);
  min-height: 150px;
  padding: 24px 20px 0 0;
}

.timeline>div+div {
  padding-left: 20px;
  border-left: 1px solid var(--line);
}

.timeline b {
  position: absolute;
  top: -16px;
  left: 20px;
  place-items: center;
  width: 31px;
  height: 31px;
  border-radius: 50%;
  background: var(--red);
  font-size: 11px;
  display: block;
  margin-bottom: 14px;
  color: var(--red);
  font: 800 12px var(--display);
  letter-spacing: .12em;
}

.timeline strong {
  margin-top: 9px;
  display: block;
  color: var(--navy);
  font: 800 16px/1.25 var(--display);
}

.timeline p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

/* Badges inclinés : une signature graphique nette et institutionnelle. */

.hero-badges span {
  padding: 7px 11px;
  border: 1px solid rgba(255,255,255,.32);
  color: #f4f7fb;
  font-size: 12px;
  border-radius: 0;
  clip-path: polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);
  transition: transform .2s ease,background-color .2s ease;
}

.hero-badges span:hover {
  transform: translateY(-2px);
}

/* Parcours sélectionnés : la grille se resserre sans laisser de cartes vides. */

.cycle-path.is-selected {
  grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
  gap: 16px;
}

.cycle-path.is-selected .cycle-card {
  min-height: 220px;
  padding: 30px 26px;
  border: 1px solid var(--line);
  border-top: 2px solid var(--navy);
  border-radius: 0;
  background: #fff;
  box-shadow: 0 12px 26px rgba(10,40,82,.05);
  transition: transform .2s ease,box-shadow .2s ease;
}

.cycle-path.is-selected .cycle-card>span {
  display: none;
}

.cycle-path.is-selected .cycle-card h3 {
  margin-top: 0;
  color: var(--navy);
  font-size: 22px;
  letter-spacing: -.02em;
}

.cycle-path.is-selected .cycle-card p {
  max-width: 34ch;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}

.cycle-path.is-selected .cycle-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 34px rgba(10,40,82,.1);
}

/* Options au secondaire */

.options-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin: 58px 0 18px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.options-heading strong {
  color: var(--navy);
  font: 800 clamp(20px,2.6vw,26px)/1.15 var(--display);
  letter-spacing: -.02em;
}

.options-heading span {
  color: var(--muted);
  font-size: 13px;
}

.options-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 14px;
}

.option-card {
  min-height: 190px;
  padding: 22px 20px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  transition: transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.option-card:hover {
  transform: translateY(-4px);
  border-color: #b9c9d9;
  box-shadow: 0 18px 34px rgba(10,40,82,.1);
}

.option-card span {
  color: var(--red);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.option-card h3 {
  margin: 14px 0 7px;
  color: var(--navy);
  font: 700 18px var(--display);
}

.option-card p {
  margin: 0;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.55;
}

/* Sous-titres de section */

.sub-title {
  margin: 38px 0 8px;
  color: var(--navy);
  font: 800 clamp(20px,2.6vw,26px)/1.15 var(--display);
  letter-spacing: -.02em;
}

/* Tableau des tranches */

.table-scroll {
  overflow-x: auto;
  border: 1px solid var(--line);
  background: #fff;
}

.fee-table {
  width: 100%;
  min-width: 680px;
  border-collapse: collapse;
}

.fee-table caption {
  padding: 18px 18px 14px;
  color: var(--muted);
  font-size: 12px;
  text-align: left;
  caption-side: top;
}

.fee-table th,.fee-table td {
  padding: 16px 18px;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.fee-table thead th {
  background: var(--navy);
  color: #fff;
  font: 800 12px var(--display);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.fee-table tbody th {
  background: var(--blue-soft);
  color: var(--navy);
  font: 700 14px var(--display);
}

.fee-table td .fee-date {
  display: block;
  color: var(--navy);
  font: 700 15px var(--display);
}

.fee-table td .fee-note {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
}

.table-note {
  margin-top: 14px;
  color: var(--muted);
  font-size: 13px;
}

/* Modalités financières */

.modal-list {
  margin: 26px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.modal-list li {
  position: relative;
  padding: 18px 0 18px 48px;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 14.5px;
  line-height: 1.6;
}

.modal-list li b {
  position: absolute;
  top: 16px;
  left: 0;
  display: grid;
  place-items: center;
  width: 31px;
  height: 31px;
  border-radius: 50%;
  background: var(--red);
  color: #fff;
  font: 800 11px var(--display);
}

.modal-list li strong {
  color: var(--navy);
}

/* Notes d'information */

.info-note {
  margin-top: 26px;
  padding: 18px 22px;
  background: var(--blue-soft);
  border: 1px solid #d5e1ec;
  border-left: 1px solid var(--navy);
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}

.info-note strong {
  color: var(--navy);
}

.info-note.is-alert {
  background: #fff4f4;
  border-color: #f1cccc;
  border-left-color: var(--red);
}

/* ===== Préparer la rentrée — check-list illustrée ===== */

.rentree-head {
  display: grid;
  grid-template-columns: 1fr minmax(300px,430px);
  gap: 64px;
  align-items: center;
  margin-bottom: 10px;
}

.rentree-head .section-head {
  margin-bottom: 0;
}

.rentree-panel {
  position: relative;
  padding: 26px 26px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 22px 46px rgba(10,40,82,.12);
}

.rentree-panel .rentree-illus {
  display: block;
  width: min(220px,100%);
  margin: -4px auto 2px;
}

.rentree-panel-title {
  margin: 12px 0 2px;
  color: var(--red);
  font: 800 12px var(--display);
  letter-spacing: .16em;
  text-transform: uppercase;
}

.rentree-check-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rentree-check-list li+li {
  border-top: 1px solid var(--line);
}

.rentree-check-list a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 4px;
  color: var(--navy);
  font: 700 15px var(--display);
}

.rentree-check-list a:hover {
  color: var(--red);
}

.rentree-check-list .check {
  flex: none;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--red);
  color: #fff;
}

.rentree-check-list a .label {
  flex: 1;
}

.rentree-check-list a .arrow {
  color: var(--red);
  font-weight: 800;
}

.rentree-block {
  margin-top: 60px;
  scroll-margin-top: 90px;
}

.rentree-block-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  color: var(--navy);
  font: 800 clamp(22px,3vw,30px)/1.1 var(--display);
  letter-spacing: -.02em;
}

.icon-chip {
  flex: none;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--navy);
  box-shadow: 0 10px 22px rgba(10,40,82,.08);
}

/* Uniforme */

.outfit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.outfit-card {
  display: grid;
  grid-template-columns: 158px 1fr;
  gap: 6px;
  align-items: center;
  padding: 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 16px 34px rgba(10,40,82,.08);
}

.outfit-visual {
  display: grid;
  place-items: center;
  align-self: stretch;
  padding: 12px;
  background: var(--blue-soft);
  border-radius: 12px;
}

.outfit-visual svg {
  width: 100%;
  max-width: 128px;
  height: auto;
}

.outfit-body h4 {
  margin: 0 0 10px;
  color: var(--navy);
  font: 800 19px var(--display);
}

.outfit-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.outfit-list li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 6px 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}

.outfit-list li svg {
  flex: none;
  margin-top: 3px;
  color: var(--red);
}

/* Coiffure */

.coiffure-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.coiffure-card {
  display: flex;
  gap: 18px;
  align-items: center;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 16px 34px rgba(10,40,82,.08);
}

.coiffure-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 66px;
  height: 66px;
  border-radius: 16px;
  background: var(--blue-soft);
  color: var(--navy);
}

.coiffure-card h4 {
  margin: 0 0 5px;
  color: var(--navy);
  font: 800 18px var(--display);
}

.coiffure-card p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

/* Articles en vente */

.sale-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 4px;
}

.sale-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 16px 34px rgba(10,40,82,.08);
}

.sale-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.sale-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--blue-soft);
  color: var(--navy);
}

.sale-tag {
  flex: none;
  padding: 5px 11px;
  border-radius: 999px;
  background: var(--blue-soft);
  border: 1px solid #d5e1ec;
  color: var(--navy);
  font: 700 11px var(--display);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.sale-card h3 {
  margin: 0;
  color: var(--navy);
  font: 800 19px var(--display);
}

.sale-card p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.sale-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--muted);
  font-size: 12.5px;
}

.sale-meta svg {
  flex: none;
  color: var(--red);
}

/* Note : modèle prescrit */

.rentree-note {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 18px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
  box-shadow: 0 14px 28px rgba(10,40,82,.06);
}

.rentree-note svg {
  flex: none;
  margin-top: 1px;
  color: var(--navy);
}

.rentree-note strong {
  color: var(--navy);
}

/* Interdictions */

.ban-card {
  margin-top: 4px;
  padding: 30px 32px 26px;
  background: linear-gradient(150deg,#d62b35,var(--red) 55%,#a01821);
  border-radius: 16px;
  color: #fff;
  box-shadow: 0 22px 46px rgba(198,34,43,.28);
}

.ban-categories {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 30px;
}

.ban-cat-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin-bottom: 16px;
  border-radius: 14px;
  background: rgba(255,255,255,.16);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.25);
}

.ban-cat-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  color: #fff;
  font: 800 15px var(--display);
  letter-spacing: .02em;
}

.ban-cat-num {
  flex: none;
  display: grid;
  place-items: center;
  width: 27px;
  height: 27px;
  border-radius: 8px;
  background: rgba(255,255,255,.18);
  color: #ffd9db;
  font: 800 12px var(--display);
}

.ban-items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 9px;
}

.ban-items li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.45;
}

.ban-items .x {
  flex: none;
  display: grid;
  place-items: center;
  width: 17px;
  height: 17px;
  margin-top: 2px;
  border-radius: 50%;
  background: #fff;
  color: var(--red);
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
}

.ban-note {
  margin: 24px 0 0;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.22);
  color: #ffd9db;
  font-size: 13px;
}

/* ===== Dates importantes — calendrier condensé ===== */

.dates-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  margin-bottom: 30px;
}

.dates-top .section-head {
  margin-bottom: 0;
}

.dates-year {
  flex: none;
  margin-top: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  background: var(--navy);
  color: #fff;
  font: 700 12px var(--display);
  letter-spacing: .08em;
}

.dates-legend {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
  display: flex;
  gap: 22px;
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 600;
}

.dates-legend li {
  display: flex;
  align-items: center;
  gap: 8px;
}

.dates-legend .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--navy);
  box-shadow: 0 0 0 3px rgba(6,43,98,.12);
}

.dates-legend .dot.is-paiement {
  background: var(--red);
  box-shadow: 0 0 0 3px rgba(198,34,43,.14);
}

.dates-list {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.dates-list:before {
  content: "";
  position: absolute;
  left: 29px;
  top: 16px;
  bottom: 16px;
  width: 2px;
  background: #d4dee7;
}

.dates-item {
  display: grid;
  grid-template-columns: 58px 132px 1fr;
  grid-template-areas: "node date body";
  align-items: center;
  padding: 14px 0;
}

.dates-node {
  grid-area: node;
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
}

.dates-node:after {
  content: "";
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--navy);
  border: 3px solid var(--blue-soft);
  box-shadow: 0 0 0 1px #c9d5e0;
}

.dates-node.is-paiement:after {
  background: var(--red);
  box-shadow: 0 0 0 1px #e9c0c2;
}

.dates-item.is-next .dates-node:after {
  width: 15px;
  height: 15px;
  background: var(--red);
  border-color: #fff;
  box-shadow: 0 0 0 4px rgba(198,34,43,.16);
}

.dates-date {
  grid-area: date;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  color: var(--navy);
}

.dates-date b {
  font: 800 30px/1 var(--display);
  letter-spacing: -.02em;
}

.dates-date i {
  font-style: normal;
  color: var(--muted);
  font: 700 11px var(--display);
  text-transform: uppercase;
  letter-spacing: .12em;
}

.dates-body {
  grid-area: body;
  min-width: 0;
  padding-left: 28px;
}

.dates-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-right: 14px;
  color: var(--muted);
  font: 800 11px var(--display);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.dates-chip:before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--navy);
}

.dates-chip.is-paiement:before {
  background: var(--red);
}

.dates-chip.is-next {
  color: var(--red);
}

.dates-chip.is-next:before {
  background: var(--red);
  box-shadow: 0 0 0 3px rgba(198,34,43,.16);
}

.dates-body h3 {
  margin: 6px 0 3px;
  color: var(--navy);
  font: 800 18px var(--display);
  letter-spacing: -.01em;
}

.dates-body p {
  margin: 0;
  color: var(--muted);
  font-size: 13.5px;
}

.dates-strict {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 28px;
  padding: 15px 18px;
  background: #fff;
  border: 1px solid #f1cccc;
  border-radius: 14px;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.55;
  box-shadow: 0 10px 22px rgba(198,34,43,.05);
}

.dates-strict svg {
  flex: none;
  margin-top: 1px;
  color: var(--red);
}

.dates-strict strong {
  color: var(--navy);
}

@media (max-width: 620px) {
  .dates-item {
    grid-template-columns: 58px 1fr;
    grid-template-areas: "node date" "node body";
    align-items: start;
  }

  .dates-date {
    flex-direction: row;
    align-items: baseline;
    gap: 7px;
  }

  .dates-date b {
    font-size: 23px;
  }

  .dates-date i {
    margin-top: 0;
  }

  .dates-body {
    padding-top: 8px;
  }
}

/* Actualités : à la une */

.news-feature {
  padding: 34px;
  margin-bottom: 14px;
  background: var(--navy);
  color: #fff;
  border-bottom: 4px solid var(--red);
}

.news-feature .news-tag {
  color: #ffd9db;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.news-feature h3 {
  margin: 14px 0 10px;
  color: #fff;
  font: 800 clamp(26px,3.5vw,38px)/1.1 var(--display);
  letter-spacing: -.03em;
  max-width: 760px;
}

.news-feature p {
  margin: 0 0 18px;
  color: #d2e1f3;
  font-size: 14.5px;
  line-height: 1.65;
  max-width: 780px;
}

.news-feature .english-mark {
  display: block;
  color: #f2b2b6;
  font: 700 14px var(--display);
}

.news-feature a {
  color: #ffd1d4;
  font-weight: 800;
  font-size: 13px;
}

/* Espace évolutif */

.evolve-note {
  margin-top: 16px;
  padding: 16px 20px;
  background: #fff;
  border: 1px dashed #c6d2dd;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

/* Contact */

.contact-note {
  margin-top: 22px;
  padding: 16px 18px;
  background: var(--blue-soft);
  border: 1px solid #d5e1ec;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.6;
}

.contact-note strong {
  color: var(--navy);
}

.map-embed {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.map-shade {
  position: absolute;
  inset: auto 0 0 0;
  height: 120px;
  background: linear-gradient(transparent,rgba(3,20,52,.74));
}

.map-card span {
  font-weight: 800;
  color: #fff;
  text-shadow: 0 1px 3px rgba(3,20,52,.55);
}

.map-card a {
  font-weight: 800;
  font-size: 13px;
  color: #ffd1d4;
  text-shadow: 0 1px 3px rgba(3,20,52,.55);
}

.signature {
  margin-top: 32px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}

.signature strong {
  display: block;
  color: var(--navy);
  font: 700 18px var(--display);
}

.signature span {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

/* Formulaire de contact */

.contact-actions .button[data-open-modal] {
  font-family: var(--sans);
  cursor: pointer;
}

.contact-form {
  display: grid;
  gap: 16px;
}

.contact-form label {
  display: grid;
  gap: 7px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--navy);
}

.contact-form input,.contact-form select,.contact-form textarea {
  width: 100%;
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--blue-soft);
  color: var(--ink);
  font: 14px/1.5 var(--sans);
  transition: border-color .2s ease,box-shadow .2s ease,background .2s ease;
}

.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus {
  outline: none;
  border-color: var(--navy);
  box-shadow: 0 0 0 3px rgba(6,43,98,.12);
  background: #fff;
}

.contact-form textarea {
  min-height: 110px;
  resize: vertical;
}

.contact-form .cf-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.contact-form .cf-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.contact-form .cf-note {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.contact-form .cf-success {
  margin: 0;
  padding: 13px 15px;
  background: #eaf3ec;
  border: 1px solid #cfe4d2;
  color: #1f6b35;
  font-size: 13.5px;
  line-height: 1.55;
}

.contact-form .cf-success a {
  color: var(--navy);
  font-weight: 700;
  text-decoration: underline;
}

.contact-form .cf-success[hidden] {
  display: none;
}

/* Fenêtre modale : formulaire de contact */

.modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.modal.is-open {
  display: flex;
}

.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(3,20,52,.72);
  backdrop-filter: blur(4px);
}

.modal-card {
  position: relative;
  width: min(580px,100%);
  max-height: calc(100vh - 40px);
  overflow: auto;
  padding: 44px 40px 40px;
  background: #fff;
  border-top: 4px solid var(--red);
  box-shadow: 0 30px 70px rgba(2,20,47,.45);
}

.modal-card .red-label {
  color: var(--red);
}

.modal-card h3 {
  margin: 12px 0 10px;
  color: var(--navy);
  font: 800 clamp(24px,4vw,32px)/1.1 var(--display);
  letter-spacing: -.03em;
}

.modal-card .modal-intro {
  margin: 0 0 24px;
  color: var(--muted);
  font-size: 14.5px;
  line-height: 1.65;
}

.modal-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--blue-soft);
  color: var(--navy);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  transition: background .2s ease,color .2s ease,transform .2s ease;
}

.modal-close:hover {
  background: var(--navy);
  color: #fff;
  transform: rotate(90deg);
}

.modal-card .contact-form {
  padding: 0;
  background: transparent;
  box-shadow: none;
}

/* Responsive */

@media (max-width: 800px) {
  .options-heading {
    display: block;
  }

  .options-heading span {
    display: block;
    margin-top: 7px;
  }

  .options-grid {
    grid-template-columns: 1fr 1fr;
  }

  #inscriptions:after {
    right: -70px;
    top: 8%;
    width: 260px;
    opacity: .06;
  }

  .admission-grid {
    grid-template-columns: 1fr;
  }

  .timeline>div {
    border-right: 0;
    padding: 30px 0 0;
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .timeline>div+div {
    padding-left: 0;
  }

  .rentree-head {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .dates-top {
    flex-direction: column;
    gap: 14px;
  }

  .dates-year {
    align-self: flex-start;
    margin-top: 0;
  }

  .outfit-grid,.coiffure-grid,.sale-grid {
    grid-template-columns: 1fr;
  }

  .ban-categories {
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }

  .news-feature {
    padding: 26px;
  }

  .fee-table th,.fee-table td {
    padding: 12px 12px;
    font-size: 13px;
  }

  .address-card {
    padding: 16px 18px;
  }

  .contact-form .cf-row {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .options-grid {
    grid-template-columns: 1fr;
  }

  .timeline {
    grid-template-columns: 1fr;
  }

  .ban-categories {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ban-card {
    padding: 22px 20px;
  }

  .outfit-card {
    grid-template-columns: 1fr;
  }

  .outfit-visual {
    min-height: 150px;
  }

  .coiffure-card {
    flex-direction: column;
    align-items: flex-start;
  }

  .modal {
    padding: 12px;
  }

  .modal-card {
    padding: 34px 22px 28px;
  }
}

/* Inscriptions 2026-2027 — flat, no rounded cards, editorial */

.admission-grid.is-flat {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 0;
  border: 1px solid var(--line);
  border-top: 1px solid var(--navy);
  background: #fff;
}

.admission-grid.is-flat article {
  position: relative;
  min-height: 0;
  padding: 28px 24px;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  overflow: visible;
}

.admission-grid.is-flat article:last-child {
  border-right: 0;
}

.admission-grid.is-flat article:after {
  display: none;
}

.admission-grid.is-flat .number {
  border-radius: 0;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin-bottom: 18px;
  border: 1px solid var(--navy);
  color: var(--navy);
  background: transparent;
  font: 800 12px var(--display);
}

.admission-grid.is-flat article:first-child .number {
  color: var(--navy);
  border-color: var(--navy);
  background: transparent;
}

.admission-grid.is-flat article:first-child {
  background: #fff;
  color: var(--ink);
}

.admission-grid.is-flat article:first-child h3 {
  color: var(--navy);
}

.admission-grid.is-flat article:first-child p {
  color: var(--muted);
}

.admission-grid.is-flat .admission-check {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.admission-grid.is-flat .admission-check li {
  padding: 10px 0;
  border-bottom: 1px solid #e8eef3;
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted);
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.admission-grid.is-flat .admission-check li:before {
  content: "—";
  flex: none;
  color: var(--red);
  font-weight: 800;
  margin-top: 0;
}

.admission-grid.is-flat .admission-check li:last-child {
  border-bottom: 0;
}

.steps {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  margin: 0;
  padding: 0;
  list-style: none;
  border: 1px solid var(--line);
  border-top: 3px solid var(--navy);
  background: #fff;
}

.steps li {
  padding: 22px 18px;
  border-right: 1px solid var(--line);
}

.steps li:last-child {
  border-right: 0;
}

.steps li b {
  display: block;
  margin-bottom: 10px;
  color: var(--red);
  font: 800 11px var(--display);
  letter-spacing: .12em;
}

.steps li strong {
  display: block;
  color: var(--navy);
  font: 800 14px/1.3 var(--display);
}

.steps li p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.admission-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.admission-actions .button {
  border-radius: 0;
}

@media (max-width: 800px) {
  .admission-grid.is-flat {
    grid-template-columns: 1fr;
  }

  .admission-grid.is-flat article {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .admission-grid.is-flat article:last-child {
    border-bottom: 0;
  }

  .steps {
    grid-template-columns: 1fr 1fr;
  }

  .steps li {
    border-bottom: 1px solid var(--line);
  }

  .steps li:nth-child(2n) {
    border-right: 0;
  }

  .steps li:nth-last-child(-n+2) {
    border-bottom: 0;
  }
}

@media (max-width: 520px) {
  .steps {
    grid-template-columns: 1fr;
  }

  .steps li {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .steps li:last-child {
    border-bottom: 0;
  }
}

/* Inscriptions editorial — no rounded cards, no numbering */

#inscriptions .inscriptions-lead {
  max-width: 780px;
  margin: 0 0 36px;
  padding: 22px 0 24px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

#inscriptions .inscriptions-lead h3 {
  margin: 0 0 12px;
  color: var(--navy);
  font: 800 22px/1.2 var(--display);
  letter-spacing: -.02em;
}

#inscriptions .inscriptions-lead p {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.65;
}

#inscriptions .inscriptions-lead p:last-child {
  margin-bottom: 0;
}

#inscriptions .inscriptions-layout {
  display: grid;
  grid-template-columns: 1.2fr .72fr;
  gap: 36px;
  align-items: start;
  margin-top: 10px;
}

#inscriptions .inscriptions-block {
  padding: 0 0 28px;
  border-bottom: 1px solid var(--line);
}

#inscriptions .inscriptions-block:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

#inscriptions .inscriptions-block h3 {
  margin: 0 0 10px;
  color: var(--navy);
  font: 800 20px/1.25 var(--display);
  letter-spacing: -.02em;
}

#inscriptions .inscriptions-block h4 {
  margin: 18px 0 8px;
  color: var(--navy);
  font: 700 13px var(--display);
  letter-spacing: .06em;
  text-transform: uppercase;
}

#inscriptions .inscriptions-block p {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 14.5px;
  line-height: 1.65;
}

#inscriptions .inscriptions-block p strong {
  color: var(--ink);
}

#inscriptions .inscriptions-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

#inscriptions .inscriptions-list li {
  position: relative;
  padding: 8px 0 8px 18px;
  border-bottom: 1px solid #eef2f5;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}

#inscriptions .inscriptions-list li:before {
  content: "";
  position: absolute;
  left: 0;
  top: 16px;
  width: 6px;
  height: 1px;
  background: var(--navy);
}

#inscriptions .inscriptions-list li:last-child {
  border-bottom: 0;
}

#inscriptions .inscriptions-block.is-wide {
  grid-column: 1 / -1;
}

#inscriptions .callout {
  margin: 20px 0 0;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-left: 1px solid var(--red);
  background: #fff4f4;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.6;
}

#inscriptions .callout strong {
  color: var(--navy);
}

#inscriptions .inscriptions-aside {
  display: grid;
  gap: 16px;
  align-self: start;
  position: sticky;
  top: 76px;
}

#inscriptions .inscriptions-visual {
  position: relative;
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--blue-soft);
}

#inscriptions .inscriptions-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#inscriptions .inscriptions-visual:after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg,rgba(3,28,66,.72),transparent 62%);
  pointer-events: none;
}

#inscriptions .inscriptions-visual figcaption {
  position: absolute;
  z-index: 1;
  right: 16px;
  bottom: 14px;
  left: 16px;
  color: #fff;
  font: 800 12px var(--display);
  letter-spacing: .1em;
  text-transform: uppercase;
}

#inscriptions .aside-card {
  padding: 18px 18px 16px;
  border: 1px solid var(--line);
  background: #fff;
}

#inscriptions .aside-card h4 {
  margin: 0 0 8px;
  color: var(--navy);
  font: 800 13px var(--display);
  letter-spacing: .06em;
  text-transform: uppercase;
}

#inscriptions .aside-card p {
  margin: 0 0 8px;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.55;
}

#inscriptions .aside-card p:last-child {
  margin-bottom: 0;
}

#inscriptions .aside-card .aside-muted {
  color: var(--muted);
  font-size: 12.5px;
}

#inscriptions .aside-card.is-contact {
  background: var(--blue-soft);
}

#inscriptions .aside-card .aside-address {
  color: var(--navy);
  font-weight: 600;
  font-size: 13.5px;
}

#inscriptions .aside-card .cali-badge-inline {
  display: inline-block;
  padding: 6px 10px;
  border: 1px solid var(--navy);
  background: var(--navy);
  color: #fff;
  font: 700 11px var(--display);
  letter-spacing: .06em;
  text-transform: uppercase;
}

#inscriptions .aside-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

#inscriptions .aside-actions .button {
  border-radius: 0;
}

#inscriptions .text-link.is-dark {
  color: var(--navy);
  font-weight: 800;
}

@media (max-width: 900px) {
  #inscriptions .inscriptions-layout {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  #inscriptions .inscriptions-aside {
    position: static;
  }
}

/* Rythme final de la section admissions : simple, aéré et facile à parcourir. */

#inscriptions.content-section {
  padding: clamp(76px,9vw,112px) 0;
}

#inscriptions:after {
  display: none;
}

#inscriptions .section-head {
  max-width: 820px;
  margin-bottom: 42px;
}

#inscriptions .section-head h2 {
  max-width: 680px;
  margin-bottom: 16px;
}

#inscriptions .section-head .lead {
  margin: 0;
  line-height: 1.65;
}

#inscriptions .inscriptions-lead {
  max-width: 820px;
  margin: 0 0 46px;
  padding: 24px 0 26px;
}

#inscriptions .inscriptions-layout {
  grid-template-columns: minmax(0,1.15fr) minmax(280px,.72fr);
  gap: clamp(40px,6vw,72px);
  margin-top: 0;
}

#inscriptions .inscriptions-main {
  display: grid;
  gap: 34px;
}

#inscriptions .inscriptions-block {
  padding-bottom: 30px;
}

#inscriptions .inscriptions-block h3 {
  margin-bottom: 12px;
}

#inscriptions .inscriptions-aside {
  gap: 14px;
}

#inscriptions .aside-card {
  padding: 20px 20px 18px;
}

#inscriptions .inscriptions-visual {
  box-shadow: 0 12px 28px rgba(10,40,82,.08);
}

@media (max-width: 900px) {
  #inscriptions .inscriptions-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

@media (max-width: 640px) {
  #inscriptions.content-section {
    padding: 64px 0;
  }

  #inscriptions .section-head {
    margin-bottom: 32px;
  }

  #inscriptions .section-head h2 {
    font-size: clamp(2.25rem,11vw,3.5rem);
    line-height: .98;
    overflow-wrap: anywhere;
  }

  #inscriptions .section-head .lead {
    font-size: 15px;
  }

  #inscriptions .inscriptions-lead {
    margin-bottom: 36px;
    padding: 20px 0 22px;
  }

  #inscriptions .inscriptions-lead h3 {
    font-size: 20px;
  }

  #inscriptions .inscriptions-lead p {
    font-size: 14px;
    line-height: 1.6;
  }

  #inscriptions .inscriptions-main {
    gap: 28px;
  }

  #inscriptions .inscriptions-block {
    padding-bottom: 24px;
  }

  #inscriptions .inscriptions-block h3 {
    font-size: 19px;
  }

  #inscriptions .inscriptions-block p {
    font-size: 14px;
    line-height: 1.6;
  }

  #inscriptions .inscriptions-list li {
    font-size: 13.5px;
  }

  #inscriptions .aside-card {
    padding: 18px 16px 16px;
  }

  #inscriptions .aside-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  #inscriptions .aside-actions .button {
    width: 100%;
    min-height: 46px;
  }
}

/* Mobile refinements — inscriptions + global */

@media (max-width: 640px) {
  .hero-kicker {
    font-size: 10px;
  }

  .hero-copy h1 {
    letter-spacing: -.04em;
  }

  .section-nav-inner {
    gap: 2px;
  }

  .section-nav a {
    font-size: 12px;
    padding: 13px 10px;
    white-space: nowrap;
  }

  .quick-actions {
    grid-template-columns: 1fr;
  }

  .quick-actions a {
    border-right: 0;
    border-bottom: 1px solid var(--line);
    min-height: 0;
    padding: 16px 18px;
    display: grid;
    grid-template-columns: 28px 1fr auto;
    gap: 12px;
    align-items: center;
  }

  .quick-actions a:last-child {
    border-bottom: 0;
  }

  .quick-actions span {
    margin: 0;
  }

  .quick-actions strong {
    margin: 0;
    font-size: 15px;
  }

  .quick-actions small {
    display: none;
  }

  .cycle-path {
    grid-template-columns: 1fr;
  }

  .cycle-card {
    min-height: 0;
    padding: 18px 16px;
  }

  .options-grid {
    grid-template-columns: 1fr;
  }

  .intro-grid img {
    height: 220px;
  }

  .cali-grid img {
    height: 220px;
  }

  .contact-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .map-card {
    min-height: 260px;
  }

  .outfit-grid,.coiffure-grid,.sale-grid,.uniform-columns {
    grid-template-columns: 1fr;
  }

  .ban-categories {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .fee-table {
    min-width: 560px;
  }

  .table-scroll {
    margin: 0 -16px;
    padding: 0 16px;
    width: calc(100% + 32px);
    border-left: 0;
    border-right: 0;
  }

  .dates-list:before {
    left: 20px;
  }

  .dates-item {
    grid-template-columns: 40px 1fr;
  }

  .dates-node:after {
    width: 11px;
    height: 11px;
  }

  #inscriptions .inscriptions-visual {
    aspect-ratio: 4 / 3;
  }

  #inscriptions .inscriptions-visual figcaption {
    font-size: 11px;
    right: 12px;
    left: 12px;
    bottom: 10px;
  }
}

@media (max-width: 375px) {
  :root {
    --wrap: min(100% - 24px, 600px);
  }

  .content-section {
    padding: 56px 0;
  }

  .section-head h2 {
    font-size: clamp(28px,9vw,32px);
  }

  .section-head p {
    font-size: 15px;
  }

  .hero-copy {
    padding-top: 110px;
    padding-bottom: 40px;
  }

  .hero-badges {
    margin-top: 18px;
  }

  .hero-actions {
    gap: 10px;
  }
}

/* Fix mobile 2-col bug: inscriptions-layout must be 1 column on mobile */

@media (max-width: 900px) {
  #inscriptions .inscriptions-layout {
    grid-template-columns: 1fr !important;
  }

  #inscriptions .inscriptions-main,#inscriptions .inscriptions-aside {
    grid-column: 1;
  }
}

/* Cycles & options : version finale, sobre et facile à comprendre. */

#cycles.content-section {
  padding: clamp(64px,7vw,84px) 0;
}

#cycles .section-head {
  max-width: 760px;
  margin-bottom: 28px;
}

#cycles .section-head h2 {
  max-width: 680px;
  margin-bottom: 10px;
}

#cycles .section-head p {
  max-width: 660px;
}

#cycles .cycle-path.is-selected {
  gap: 10px;
}

#cycles .cycle-path.is-selected .cycle-card {
  min-height: 0;
  padding: 20px 0;
  border-top: 0;
  border-bottom: 1px solid var(--line);
  border-left: 0;
  border-right: 0;
  background: transparent;
  box-shadow: none;
  transition: none;
}

#cycles .cycle-path.is-selected .cycle-card h3 {
  margin: 0 0 6px;
  font-size: 18px;
}

#cycles .cycle-path.is-selected .cycle-card p {
  max-width: 30ch;
  font-size: 13.5px;
  line-height: 1.55;
}

#cycles .cycle-path.is-selected .cycle-card:hover {
  transform: none;
  box-shadow: none;
}

#cycles .options-heading {
  margin: 32px 0 14px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

#cycles .options-heading strong {
  font-size: 19px;
}

#cycles .options-heading span {
  font-size: 12.5px;
}

#cycles .options-grid {
  gap: 8px;
}

#cycles .option-card {
  min-height: 0;
  padding: 16px 14px;
  border-radius: 0;
  border-color: var(--line);
  box-shadow: none;
  transition: none;
}

#cycles .option-card span {
  font-size: 10px;
}

#cycles .option-card h3 {
  margin: 10px 0 5px;
  font-size: 15px;
}

#cycles .option-card p {
  font-size: 12.5px;
  line-height: 1.5;
}

#cycles .option-card:hover {
  transform: none;
  border-color: #c8d3dc;
  box-shadow: none;
}

@media (max-width: 800px) {
  #cycles .cycle-path.is-selected {
    grid-template-columns: 1fr;
  }

  #cycles .options-heading {
    margin-top: 28px;
  }

  #cycles .options-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  #cycles.content-section {
    padding: 56px 0;
  }

  #cycles .section-head {
    margin-bottom: 22px;
  }

  #cycles .cycle-path.is-selected .cycle-card {
    padding: 16px 0;
  }

  #cycles .cycle-path.is-selected .cycle-card h3 {
    font-size: 17px;
  }

  #cycles .cycle-path.is-selected .cycle-card p {
    font-size: 13px;
  }

  #cycles .options-heading {
    margin: 26px 0 12px;
    padding-top: 18px;
  }

  #cycles .option-card {
    padding: 14px 12px;
  }
}

/* Cycles & options : présentation compacte et institutionnelle. */

#cycles .cycle-path.is-selected {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

#cycles .cycle-path.is-selected .cycle-card {
  min-height: 0;
  padding: 22px 24px;
  border: 0;
  border-right: 1px solid var(--line);
  background: transparent;
}

#cycles .cycle-path.is-selected .cycle-card:last-child {
  border-right: 0;
}

#cycles .cycle-path.is-selected .cycle-card h3 {
  font-size: 20px;
}

#cycles .cycle-path.is-selected .cycle-card p {
  margin-bottom: 0;
}

#cycles .options-heading {
  display: flex;
  align-items: baseline;
  margin: 34px 0 14px;
  padding: 0;
  border: 0;
}

#cycles .options-heading strong {
  font-size: 18px;
}

#cycles .options-heading span {
  margin-left: auto;
}

#cycles .options-grid {
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 8px;
}

#cycles .option-card {
  min-height: 0;
  padding: 16px;
  border: 1px solid var(--line);
  background: #fff;
}

#cycles .option-card h3 {
  font-size: 16px;
}

#cycles .option-card p {
  font-size: 12.5px;
}

@media (max-width: 800px) {
  #cycles .cycle-path.is-selected {
    grid-template-columns: 1fr;
  }

  #cycles .cycle-path.is-selected .cycle-card {
    padding: 18px 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  #cycles .cycle-path.is-selected .cycle-card:last-child {
    border-bottom: 0;
  }

  #cycles .options-heading {
    display: block;
    margin-top: 28px;
  }

  #cycles .options-heading span {
    display: block;
    margin: 5px 0 0;
  }

  #cycles .options-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }
}

@media (max-width: 480px) {
  #cycles .options-grid {
    grid-template-columns: 1fr;
  }
}

/* Inscriptions : lecture centrale, sobre et orientée vers l'action. */

#inscriptions.content-section {
  padding: clamp(64px,7vw,88px) 0;
}

#inscriptions .section-head {
  max-width: 760px;
  margin-bottom: 30px;
}

#inscriptions .section-head h2 {
  max-width: 700px;
  margin-bottom: 12px;
  line-height: 1;
}

#inscriptions .section-head .lead {
  max-width: 660px;
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}

#inscriptions .inscriptions-lead {
  max-width: 800px;
  margin: 0 0 34px;
  padding: 18px 0 20px;
}

#inscriptions .inscriptions-lead h3 {
  margin-bottom: 8px;
  font-size: 20px;
}

#inscriptions .inscriptions-lead p {
  margin-bottom: 7px;
  font-size: 14px;
  line-height: 1.6;
}

#inscriptions .inscriptions-layout {
  display: block;
  max-width: 900px;
  margin: 0;
}

#inscriptions .inscriptions-main {
  display: grid;
  gap: 0;
}

#inscriptions .inscriptions-block {
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}

#inscriptions .inscriptions-block:first-child {
  border-top: 1px solid var(--line);
}

#inscriptions .inscriptions-block:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

#inscriptions .inscriptions-block h3 {
  margin-bottom: 8px;
  font-size: 20px;
}

#inscriptions .inscriptions-block p {
  max-width: 76ch;
  margin-bottom: 8px;
  font-size: 14px;
  line-height: 1.6;
}

#inscriptions .inscriptions-block h4 {
  margin: 16px 0 6px;
  font-size: 12px;
}

#inscriptions .inscriptions-list li {
  padding: 7px 0 7px 16px;
  font-size: 13.5px;
}

#inscriptions .callout {
  margin-top: 16px;
  border-left: 1px solid var(--red);
  background: #fff8f8;
}

#inscriptions .inscriptions-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  margin-top: 28px;
}

#inscriptions .inscriptions-cta .button {
  border-radius: 0;
}

#inscriptions .inscriptions-cta .text-link {
  color: var(--navy);
  font-size: 13px;
  font-weight: 800;
}

@media (max-width: 640px) {
  #inscriptions.content-section {
    padding: 56px 0;
  }

  #inscriptions .section-head {
    margin-bottom: 24px;
  }

  #inscriptions .section-head h2 {
    font-size: clamp(2rem,10vw,3rem);
  }

  #inscriptions .section-head .lead {
    font-size: 15px;
  }

  #inscriptions .inscriptions-lead {
    margin-bottom: 24px;
    padding: 16px 0 18px;
  }

  #inscriptions .inscriptions-block {
    padding: 20px 0;
  }

  #inscriptions .inscriptions-block h3 {
    font-size: 18px;
  }

  #inscriptions .inscriptions-block p {
    font-size: 13.5px;
  }

  #inscriptions .inscriptions-cta {
    align-items: stretch;
    flex-direction: column;
    gap: 9px;
  }

  #inscriptions .inscriptions-cta .button, #inscriptions .inscriptions-cta .text-link {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}

/* Inscriptions sans sidebar — full width editorial */

#inscriptions .inscriptions-main.is-full {
  display: grid;
  gap: 28px;
}

#inscriptions .inscriptions-main.is-full .inscriptions-block {
  padding: 0 0 28px;
  border-bottom: 1px solid var(--line);
}

#inscriptions .inscriptions-main.is-full .inscriptions-block:last-child {
  border-bottom: 0;
}

#inscriptions .inscriptions-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

#inscriptions .inscriptions-cta .button {
  border-radius: 0;
}

#inscriptions .inscriptions-cta .text-link.is-dark {
  margin-left: 8px;
  color: var(--navy);
  font-weight: 800;
}

#inscriptions .inscriptions-layout:has(.is-full) {
  grid-template-columns: 1fr;
}

@media (max-width: 900px) {
  #inscriptions .inscriptions-main.is-full {
    max-width: 100%;
  }
}

@media (max-width: 640px) {
  #inscriptions .inscriptions-cta {
    flex-direction: column;
    align-items: stretch;
  }

  #inscriptions .inscriptions-cta .button,#inscriptions .inscriptions-cta .text-link {
    width: 100%;
    text-align: center;
    justify-content: center;
  }

  #inscriptions .inscriptions-cta .text-link.is-dark {
    margin-left: 0;
    padding: 10px 0;
  }
}

/* Override final pour la version sans sidebar. */

#inscriptions .inscriptions-main.is-full {
  gap: 0;
  max-width: 900px;
}

#inscriptions .inscriptions-main.is-full .inscriptions-block {
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

#inscriptions .inscriptions-main.is-full .inscriptions-block:first-child {
  border-top: 1px solid var(--line);
}

#inscriptions .inscriptions-main.is-full .inscriptions-block:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

#inscriptions .inscriptions-cta {
  margin-top: 24px;
  padding-top: 20px;
}

@media (max-width: 640px) {
  #inscriptions .inscriptions-main.is-full .inscriptions-block {
    padding: 18px 0;
  }

  #inscriptions .inscriptions-cta {
    margin-top: 20px;
    padding-top: 16px;
  }
}

/* Admissions compactes : deux cartes pratiques et un rappel financier. */

#inscriptions .inscriptions-cards {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
  width: 100%;
}

#inscriptions .inscriptions-main.is-full {
  max-width: none;
}

#inscriptions .inscription-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 0;
  background: var(--navy);
  color: #fff;
  box-shadow: 0 18px 38px rgba(6,43,98,.16);
  transition: transform .25s ease, box-shadow .25s ease;
}

#inscriptions .inscription-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 46px rgba(6,43,98,.22);
}

#inscriptions .inscription-card:not(.is-featured) {
  background: var(--red);
  box-shadow: 0 18px 38px rgba(198,34,43,.17);
}

#inscriptions .inscription-card:not(.is-featured):hover {
  box-shadow: 0 24px 46px rgba(198,34,43,.24);
}

#inscriptions .inscription-card-body {
  position: relative;
  z-index: 0;
  min-height: 100%;
  padding: 30px 30px 28px;
}

#inscriptions .inscription-card-bg-icon {
  position: absolute;
  top: -28px;
  right: -20px;
  z-index: 0;
  width: 190px;
  height: 190px;
  color: rgba(255,255,255,.16);
  stroke-width: 1;
  pointer-events: none;
  transform: rotate(8deg);
  transition: transform .35s ease, color .35s ease;
}

#inscriptions .inscription-card:hover .inscription-card-bg-icon {
  color: rgba(255,255,255,.23);
  transform: rotate(3deg) scale(1.06);
}

#inscriptions .inscription-card-body {
  display: flex;
  flex-direction: column;
}

#inscriptions .inscription-card-body h3 {
  margin: 0 0 7px;
  color: #fff;
  font: 800 19px/1.2 var(--display);
}

#inscriptions .inscription-card-body p {
  margin: 0;
  color: rgba(255,255,255,.82);
  font-size: 13.5px;
  line-height: 1.55;
}

#inscriptions .inscription-card-body h4 {
  margin: 18px 0 5px;
  color: var(--navy);
  font: 800 11px var(--display);
  letter-spacing: .1em;
  text-transform: uppercase;
}

#inscriptions .inscription-card .card-kicker,
#inscriptions .inscription-card .inscription-card-body > h3,
#inscriptions .inscription-card .inscription-card-body > p,
#inscriptions .inscription-card .steps-compact,
#inscriptions .inscription-card .card-cta,
#inscriptions .inscription-card .card-kicker.is-alt {
  position: relative;
  z-index: 1;
  color: rgba(255,255,255,.92);
}

#inscriptions .inscription-card .inscription-card-body > h3 {
  color: #fff;
}

#inscriptions .inscription-card .card-subtitle {
  color: rgba(255,255,255,.72);
}

#inscriptions .inscription-card .card-icon,
#inscriptions .inscription-card .card-icon.is-alt {
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.4);
}

#inscriptions .inscription-card .inscriptions-list {
  margin: 0;
}

#inscriptions .inscription-card .inscriptions-list li {
  padding: 6px 0 6px 14px;
  border-bottom: 1px solid #eef2f5;
  font-size: 12.5px;
  line-height: 1.45;
}

#inscriptions .inscription-card .steps-compact {
  border-top-color: rgba(255,255,255,.2);
}

#inscriptions .inscription-card .steps-compact li {
  border-bottom-color: rgba(255,255,255,.16);
}

#inscriptions .inscription-card .steps-compact b {
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.38);
}

#inscriptions .inscription-card .steps-compact strong {
  color: #fff;
}

#inscriptions .inscription-card .steps-compact span {
  color: rgba(255,255,255,.76);
}

#inscriptions .inscription-card .card-cta,
#inscriptions .inscription-card .card-cta.is-alt {
  align-self: flex-start;
  margin-top: auto;
  padding-top: 22px;
  color: #fff;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.5);
  text-underline-offset: 4px;
}

#inscriptions .inscriptions-fees {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(280px,.8fr);
  gap: 24px;
  align-items: center;
  margin-top: 18px;
  padding: 18px 20px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

#inscriptions .inscriptions-fees h3 {
  margin: 0 0 5px;
  color: var(--navy);
  font: 800 17px/1.2 var(--display);
}

#inscriptions .inscriptions-fees p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

#inscriptions .inscriptions-fees .callout {
  margin: 0;
  padding: 12px 14px;
}

@media (max-width: 800px) {
  #inscriptions .inscriptions-cards {
    grid-template-columns: 1fr;
  }

  #inscriptions .inscription-card {
    grid-template-columns: 130px minmax(0,1fr);
  }

  #inscriptions .inscriptions-fees {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

@media (max-width: 480px) {
  #inscriptions .inscription-card {
    grid-template-columns: 1fr;
  }

  #inscriptions .inscription-card figure {
    min-height: 150px;
    max-height: 180px;
  }

  #inscriptions .inscription-card figure img {
    min-height: 150px;
  }
}

/* ============================================================
   Guided enrollment journey — enhancements (2026-2027)
   Keeps navy+red identity, improves orientation & task completion
   ============================================================ */

/* Typography & readability refinements (point 11) */
body {
  font-size: 17px;
  line-height: 1.6;
  color: #13233f;
}
:root {
  --muted: #4a5a73;
}
.section-head p,
.body-copy,
.inscriptions-lead p,
.inscription-card-body p,
.journey-intro,
.docs-checklist p,
.fees-card p,
.help-card p,
.help-list small {
  font-size: 15.5px;
  line-height: 1.65;
}
.section-head p { color: var(--muted); }
.body-copy { color: var(--muted); max-width: 640px; }
.inscriptions-list li,
.help-topics li,
.fees-list li,
.checklist li {
  line-height: 1.6;
}

/* Hero — enhanced */
.hero-kicker {
  max-width: 760px;
  color: #d6e2f1;
  font-size: 11px;
  letter-spacing: .13em;
}
.hero-badges {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border: 1px solid rgba(255,255,255,.34);
  background: rgba(255,255,255,.08);
  color: #f0f5fb;
  font: 700 11px var(--display);
  letter-spacing: .08em;
  text-transform: uppercase;
  backdrop-filter: blur(6px);
}
.hero-badge.is-live {
  background: rgba(198,34,43,.88);
  border-color: rgba(255,255,255,.45);
  color: #fff;
}
.hero-badge.is-outline {
  background: transparent;
  border-color: rgba(255,255,255,.5);
}
.hero-badge-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 4px rgba(255,255,255,.22);
  animation: heroPulse 1.6s infinite;
}
@keyframes heroPulse {
  0%,100% { box-shadow: 0 0 0 4px rgba(255,255,255,.22); }
  50% { box-shadow: 0 0 0 7px rgba(255,255,255,.08); }
}
.hero-actions .is-primary {
  box-shadow: 0 8px 22px rgba(0,0,0,.18);
  font-size: 14px;
  min-height: 50px;
  padding-inline: 22px;
}
.hero-actions .is-secondary {
  min-height: 50px;
  padding-inline: 20px;
  font-size: 14px;
}
.hero-action-icon {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  margin-right: 8px;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  font-weight: 800;
  font-size: 14px;
  line-height: 1;
}
.button-ghost .hero-action-icon { background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.5); }
.hero-meta {
  display: grid;
  gap: 14px;
  margin-top: 26px;
  max-width: 650px;
}
.hero-switcher {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  color: #d2e1f3;
  font-size: 13px;
}
.hero-switcher-label { color: #a9bdd8; font-weight: 600; font-size: 12px; }
.hero-switcher-details { position: relative; }
.hero-switcher-details summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.08);
  color: #fff;
  font-weight: 700;
}
.hero-switcher-details summary::-webkit-details-marker { display:none; }
.hero-switcher-menu {
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  min-width: 220px;
  background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 16px 30px rgba(3,28,66,.18);
  z-index: 5;
  display: grid;
}
.hero-switcher-menu a {
  padding: 11px 14px;
  color: var(--navy);
  font-weight: 600;
  font-size: 13px;
  border-bottom: 1px solid #eef2f5;
}
.hero-switcher-menu a:last-child { border-bottom: 0; }
.hero-switcher-menu a[aria-current="page"] { background: var(--blue-soft); color: var(--navy); }
.hero-switcher-menu a:hover { background: var(--blue-soft); }

/* 02 — Essential strip */
.essential-strip {
  background: #fff;
  border-bottom: 1px solid var(--line);
  box-shadow: 0 10px 24px rgba(10,40,82,.06);
}
.essential-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
}
.essential-item {
  position: relative;
  display: grid;
  gap: 4px;
  padding: 20px 22px;
  border-right: 1px solid var(--line);
  color: var(--ink);
  text-decoration: none;
  transition: background .2s ease;
  min-height: 110px;
  overflow: hidden;
  isolation: isolate;
}
.essential-item:last-child { border-right: 0; }
.essential-item:hover { background: var(--blue-soft); }
.essential-item.is-accent { background: var(--navy); color: #fff; border-color: transparent; }
.essential-item.is-accent .essential-label,
.essential-item.is-accent small { color: #c9d8ec; }
.essential-item.is-accent strong { color: #fff; }
.essential-icon { display:inline-flex; align-items:center; justify-content:center; color: var(--navy); position: relative; z-index: 1; }
.essential-item.is-accent .essential-icon { color: #fff; }
.essential-icon svg { width: 18px; height: 18px; stroke-width: 2; }
.essential-bg-icon {
  position: absolute;
  top: -8px;
  right: -6px;
  width: 96px;
  height: 96px;
  color: var(--navy);
  opacity: .07;
  pointer-events: none;
  z-index: 0;
  stroke-width: 1.5;
  transform: rotate(-8deg);
}
.essential-item.is-accent .essential-bg-icon {
  color: #fff;
  opacity: .14;
}
.essential-item:hover .essential-bg-icon {
  opacity: .11;
  transform: rotate(-6deg) scale(1.03);
  transition: opacity .25s ease, transform .25s ease;
}
.essential-item.is-accent:hover .essential-bg-icon { opacity: .18; }
.essential-item > *:not(.essential-bg-icon) { position: relative; z-index: 1; }
svg.essential-bg-icon {
  width: 96px;
  height: 96px;
}
.essential-label {
  color: var(--red);
  font: 800 10px var(--display);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.essential-item.is-accent .essential-label { color: #ffd1d4; }
.essential-item strong {
  color: var(--navy);
  font: 700 16px var(--display);
  line-height: 1.2;
}
.essential-item small {
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.4;
}

/* 03 — Trust banner */
.trust-banner {
  background: #fff8f8;
  border-bottom: 1px solid #f0d4d4;
}
.trust-banner-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 0;
}
.trust-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: var(--red);
  color: #fff;
  font-size: 18px;
}
.trust-banner-inner strong {
  display: block;
  color: var(--navy);
  font: 800 13px var(--display);
  letter-spacing: .02em;
}
.trust-banner-inner p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.55;
}
.trust-banner-inner p b { color: var(--navy); }
.trust-badge {
  margin-left: auto;
  flex: none;
  padding: 8px 12px;
  border: 1px solid var(--red);
  color: var(--red);
  font: 800 11px var(--display);
  letter-spacing: .06em;
  text-transform: uppercase;
  background: #fff;
  white-space: nowrap;
}

/* 04 — Quickstart */
.quickstart {
  margin: 0 0 36px;
  padding: 26px;
  background: var(--blue-soft);
  border: 1px solid #d6e1ec;
  border-top: 3px solid var(--navy);
}
.quickstart-head h3 {
  margin: 0 0 6px;
  color: var(--navy);
  font: 800 22px var(--display);
  letter-spacing: -.02em;
}
.quickstart-head p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}
.quickstart-grid {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 12px;
  margin-top: 18px;
}
.quickstart-card {
  display: grid;
  gap: 6px;
  padding: 18px 16px;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--ink);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.quickstart-card.is-primary {
  background: var(--navy);
  color: #fff;
  border-color: var(--navy);
}
.quickstart-card.is-primary strong { color: #fff; }
.quickstart-card.is-primary span { color: #c9d8ec; }
.quickstart-card.is-primary em { color: #ffd1d4; }
.quickstart-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(10,40,82,.1);
  border-color: #b9c9d9;
}
.quickstart-card.is-primary:hover { border-color: var(--navy-deep); }
.quickstart-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--red);
  color: #fff;
  font-weight: 800;
  font-size: 16px;
}
.quickstart-icon.is-alt { background: var(--navy); }
.quickstart-icon.is-muted { background: #fff; border: 1px solid var(--line); color: var(--navy); }
.quickstart-card strong {
  color: var(--navy);
  font: 700 15px var(--display);
  line-height: 1.3;
}
.quickstart-card span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
}
.quickstart-card em {
  margin-top: 6px;
  color: var(--red);
  font-style: normal;
  font-weight: 800;
  font-size: 12.5px;
}
.quickstart-card.is-muted { background: #f8fafc; }

/* Enhanced inscription cards - step lists */
.card-kicker {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  color: var(--red);
  font: 800 11px var(--display);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.card-kicker.is-alt { color: var(--navy); }
.card-icon {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--red);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  flex: none;
}
.card-icon.is-alt { background: var(--navy); }
.card-subtitle {
  color: var(--muted);
  font: 600 11px var(--sans);
  letter-spacing: 0;
  text-transform: none;
  margin-left: 4px;
}
.steps-compact {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  border-top: 1px solid #eef2f5;
}
.steps-compact li {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #eef2f5;
  align-items: flex-start;
}
.steps-compact li:last-child { border-bottom: 0; }
.steps-compact b {
  flex: none;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  font: 800 11px var(--display);
  margin-top: 1px;
}
.inscription-card.is-featured .steps-compact b { background: var(--red); }
.steps-compact strong {
  display: block;
  color: var(--navy);
  font: 700 13.5px var(--display);
  line-height: 1.3;
}
.steps-compact span {
  display: block;
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.45;
  margin-top: 2px;
}
.card-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 16px;
  color: var(--red);
  font-weight: 800;
  font-size: 13px;
}
.card-cta.is-alt { color: var(--navy); }
.inscription-card.is-featured { border-top: 3px solid var(--red); }

/* Journey timeline 5 steps */
.journey {
  margin-top: 28px;
  padding: 24px 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 3px solid var(--navy);
}
.journey h3 {
  margin: 0 0 6px;
  color: var(--navy);
  font: 800 19px var(--display);
}
.journey-intro {
  margin: 0 0 18px;
  color: var(--muted);
  font-size: 13.5px;
}
.journey-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5,1fr);
  gap: 0;
  border: 1px solid var(--line);
  background: #fff;
}
.journey-timeline li {
  position: relative;
  padding: 18px 16px;
  border-right: 1px solid var(--line);
  display: grid;
  gap: 6px;
  min-height: 130px;
}
.journey-timeline li:last-child { border-right: 0; }
.journey-timeline li:after {
  content: "→";
  position: absolute;
  right: -10px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  background: var(--red);
  color: #fff;
  font-size: 12px;
  border-radius: 50%;
  z-index: 1;
}
.journey-timeline li:last-child:after { display: none; }
.jt-num {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--navy);
  color: #fff;
  font: 800 12px var(--display);
}
.journey-timeline li strong {
  color: var(--navy);
  font: 700 13.5px var(--display);
  line-height: 1.3;
}
.journey-timeline li small {
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.4;
}

/* Documents checklist */
.docs-checklist {
  margin-top: 28px;
  padding: 24px 22px;
  background: #fff;
  border: 1px solid var(--line);
}
.docs-checklist-head h3 {
  margin: 0 0 6px;
  color: var(--navy);
  font: 800 19px var(--display);
}
.docs-checklist-head p {
  margin: 0 0 16px;
  color: var(--muted);
  font-size: 13.5px;
}
.checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--line);
  background: #f8fafc;
}
.checklist li {
  display: flex;
  align-items: center;
  padding: 0;
  border-bottom: 1px solid #e6edf2;
  transition: background .15s ease;
}
.checklist li:last-child { border-bottom: 0; }
.checklist li:hover { background: #fff; }
.checklist li.is-checked { background: #eef6ee; }
.checklist label {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 14px 16px;
  cursor: pointer;
  color: var(--ink);
  font-size: 14.5px;
  font-weight: 500;
  user-select: none;
}
.checklist input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.check-box {
  flex: none;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border: 1.5px solid #9aa9bd;
  background: #fff;
  color: var(--muted);
  border-radius: 4px;
  transition: all .15s ease;
}
.check-box svg { width: 14px; height: 14px; stroke-width: 2; opacity: .55; }
.checklist li.is-checked .check-box {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}
.checklist li.is-checked .check-box svg { display: none; }
.checklist li.is-checked .check-box:before { content: "✓"; font-size: 13px; font-weight: 800; }
.docs-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
  font-style: italic;
}
.docs-print {
  margin-top: 16px;
  gap: 8px;
}

/* Dates anchor */
.dates-anchor {
  margin-top: 28px;
  padding: 22px;
  background: var(--blue-soft);
  border: 1px solid #d6e1ec;
}
.dates-anchor h3 {
  margin: 0 0 6px;
  color: var(--navy);
  font: 800 18px var(--display);
}
.dates-anchor p {
  margin: 0;
  color: var(--muted);
  font-size: 13.5px;
}
.dates-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-top: 14px;
}

/* Fees card reassuring */
.fees-card {
  margin-top: 28px;
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 24px;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 3px solid var(--navy);
  align-items: start;
}
.fees-kicker {
  margin: 0 0 8px;
  color: var(--red);
  font: 800 11px var(--display);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.fees-card h3 {
  margin: 0 0 10px;
  color: var(--navy);
  font: 800 20px var(--display);
}
.fees-card p { margin: 0 0 10px; color: var(--muted); font-size: 14px; }
.fees-list {
  margin: 12px 0 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.6;
}
.fees-card-actions {
  display: grid;
  gap: 10px;
  align-content: start;
  padding: 18px;
  background: var(--blue-soft);
  border: 1px solid #d6e1ec;
}
.fees-card-actions .button { justify-content: center; }
.callout.is-security {
  background: #fff4f4;
  border: 1px solid #f0c9c9;
  border-top: 3px solid var(--red);
  font-size: 12.5px;
}

/* CTA hierarchy */
.inscriptions-cta.is-hierarchical {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}
.is-cta-primary { min-height: 50px; padding-inline: 24px; font-size: 14px; box-shadow: 0 8px 18px rgba(6,43,98,.15); }
.is-cta-secondary { min-height: 50px; padding-inline: 20px; }
.cta-utility {
  margin-left: auto;
  color: var(--muted);
  font-size: 12.5px;
}
.cta-utility a { color: var(--navy); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.cta-utility a:hover { color: var(--red); }

/* Help section */
.help-section { background: #fff; }
.help-grid {
  display: grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 18px;
  align-items: start;
}
.help-card {
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line);
}
.help-card.is-contact {
  background: var(--blue-soft);
  border-color: #d6e1ec;
  border-top: 3px solid var(--navy);
}
.help-card h3 {
  margin: 0 0 14px;
  color: var(--navy);
  font: 800 18px var(--display);
}
.help-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
}
.help-list li {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #dde6ee;
  align-items: flex-start;
}
.help-list li:last-child { border-bottom: 0; }
.help-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--navy);
  font-size: 16px;
}
.help-icon.is-wa { background: #e6f4ea; border-color: #c6e7ce; }
.help-list strong {
  display: block;
  color: var(--navy);
  font: 700 12px var(--display);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.help-list a, .help-list span {
  display: block;
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
  word-break: break-word;
}
.help-list a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.help-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.help-topics {
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
}
.help-note {
  margin: 16px 0 0;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 3px solid var(--red);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

/* Desktop sticky */
.desktop-sticky {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 6;
  display: flex;
  gap: 8px;
  padding: 8px;
  background: rgba(3,28,66,.96);
  border: 1px solid rgba(255,255,255,.15);
  box-shadow: 0 12px 28px rgba(3,28,66,.25);
}
.desktop-sticky a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  background: #fff;
  color: var(--navy);
  font-weight: 700;
  font-size: 12.5px;
  white-space: nowrap;
}
.desktop-sticky a:first-child { background: var(--red); color: #fff; border-color: var(--red); }

/* Mobile bar enhanced */
.mobile-bar.is-enhanced {
  grid-template-columns: repeat(4,1fr);
}
.mobile-bar.is-enhanced a.is-cta {
  background: var(--red);
  color: #fff;
}

/* Inscription card featured tweaks */
.inscription-card.is-featured .inscription-card-body h3 { color: var(--navy); }

/* Print */
@media print {
  .site-header, .section-nav, .mobile-bar, .desktop-sticky, .hero-actions, .quickstart, .journey, .dates-anchor, .fees-card-actions .button, .help-actions, .inscriptions-cta, .final-cta { display: none !important; }
  .checklist { border: 1px solid #000; }
  body { font-size: 12pt; }
}

/* Responsive */
@media (max-width: 980px) {
  .essential-grid { grid-template-columns: 1fr 1fr; }
  .essential-item { border-bottom: 1px solid var(--line); }
  .essential-item:nth-child(2n) { border-right: 0; }
  .essential-item:nth-last-child(-n+2) { border-bottom: 0; }
  .quickstart-grid { grid-template-columns: 1fr 1fr; }
  .journey-timeline { grid-template-columns: 1fr 1fr; }
  .journey-timeline li { border-bottom: 1px solid var(--line); }
  .journey-timeline li:nth-child(2n) { border-right: 0; }
  .journey-timeline li:nth-last-child(-n+2) { border-bottom: 0; }
  .journey-timeline li:after { display: none; }
  .fees-card { grid-template-columns: 1fr; }
  .help-grid { grid-template-columns: 1fr; }
  .desktop-sticky { display: none; }
  .trust-banner-inner { flex-wrap: wrap; }
  .trust-badge { margin-left: 0; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .hero-kicker { font-size: 10px; }
  .hero-badges { gap: 6px; }
  .hero-badge { font-size: 10px; padding: 6px 10px; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .button { justify-content: center; }
  .hero-meta { gap: 10px; }
  .essential-grid { grid-template-columns: 1fr; }
  .essential-item { border-right: 0; border-bottom: 1px solid var(--line); min-height: 0; padding: 16px 18px; }
  .essential-item:last-child { border-bottom: 0; }
  .essential-bg-icon,
  svg.essential-bg-icon {
    width: 72px;
    height: 72px;
    top: -4px;
    right: -4px;
  }
  .trust-banner-inner { padding: 14px 0; gap: 12px; }
  .quickstart { padding: 18px 16px; }
  .quickstart-grid { grid-template-columns: 1fr; }
  .journey { padding: 18px 16px; }
  .journey-timeline { grid-template-columns: 1fr; }
  .journey-timeline li { border-right: 0; border-bottom: 1px solid var(--line); min-height: 0; }
  .journey-timeline li:last-child { border-bottom: 0; }
  .docs-checklist { padding: 18px 16px; }
  .checklist label { font-size: 14px; padding: 12px 14px; }
  .fees-card { padding: 0; border: 1px solid var(--line); }
  .fees-card-main { padding: 18px 16px; }
  .fees-card-actions { border-left: 0; border-right: 0; border-bottom: 0; }
  .inscriptions-cta.is-hierarchical { flex-direction: column; align-items: stretch; }
  .inscriptions-cta.is-hierarchical .button, .inscriptions-cta.is-hierarchical .text-link { width: 100%; justify-content: center; text-align: center; }
  .cta-utility { margin-left: 0; text-align: center; width: 100%; }
  .help-card { padding: 18px 16px; }
  .mobile-bar.is-enhanced { grid-template-columns: repeat(4,1fr); }
  .mobile-bar.is-enhanced a { font-size: 16px; }
}
@media (max-width: 400px) {
  .quickstart-card { padding: 14px 12px; }
  .help-list li { gap: 10px; }
}

/* Préparer sa rentrée — édition douce, images d'abord (refonte 2026) */
.rentree-section{
  background:#f8fafc;
}
.rentree-head{
  display:grid;
  grid-template-columns:1.4fr .85fr;
  gap:28px 40px;
  align-items:end;
  margin-bottom:34px;
}
.rentree-head>div>h2{
  margin:10px 0 14px;
  color:var(--navy);
  font:800 clamp(32px,4.2vw,48px)/1.03 var(--display);
  letter-spacing:-.04em;
}
.rentree-head>div>p{
  margin:0;
  color:var(--muted);
  font-size:17px;
  line-height:1.6;
  max-width:640px;
}
.rentree-head-note{
  margin:0;
  padding:16px 18px;
  background:#fff;
  border:1px solid #e8eef4;
  border-radius:16px;
  color:var(--muted);
  font-size:13.5px;
  line-height:1.6;
  align-self:center;
  box-shadow:0 8px 20px rgba(10,40,82,.05);
}
.rentree-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.rentree-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#fff;
  border:1px solid #e8eef4;
  border-radius:22px;
  box-shadow:0 10px 28px rgba(10,40,82,.06);
}
.rentree-card figure{
  margin:0;
  aspect-ratio:16/10.2;
  overflow:hidden;
  background:#eef3f8;
}
.rentree-card figure img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:transform .6s ease;
}
.rentree-card:hover figure img{transform:scale(1.03)}
.rentree-card-body{
  padding:20px 22px 18px;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.rentree-card-body h3{
  margin:0;
  color:var(--navy);
  font:700 19px/1.25 var(--display);
}
.rentree-card-body>p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.62;
}
.rentree-mini{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:4px;
}
.rentree-mini p{
  margin:0;
  padding:11px 12px;
  background:#f8fafc;
  border:1px solid #eef0f4;
  border-radius:14px;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}
.rentree-mini p strong{color:var(--navy)}
.rentree-tip{
  margin-top:2px;
  padding:11px 12px;
  background:#f8fafc;
  border:1px solid #eef0f4;
  border-radius:12px;
  color:var(--muted);
  font-size:13px;
  line-height:1.55;
}
.rentree-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:2px 0 0;
  padding:0;
  list-style:none;
}
.rentree-tags li{
  padding:7px 11px;
  background:#f8fafc;
  border:1px solid #e8eef4;
  border-radius:999px;
  color:var(--muted);
  font-size:13px;
  line-height:1;
}
.rentree-closing{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:0;
  margin-top:20px;
  overflow:hidden;
  background:#fff;
  border:1px solid #e8eef4;
  border-radius:22px;
  box-shadow:0 10px 28px rgba(10,40,82,.06);
}
.rentree-closing figure{
  margin:0;
  min-height:260px;
  background:#eef3f8;
  overflow:hidden;
}
.rentree-closing figure img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.rentree-closing-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:12px;
  padding:28px 28px 26px;
}
.rentree-closing-body h3{
  margin:0;
  color:var(--navy);
  font:800 24px/1.15 var(--display);
  letter-spacing:-.02em;
}
.rentree-closing-body p{
  margin:0;
  color:var(--muted);
  font-size:14.5px;
  line-height:1.6;
}
.rentree-closing-body a{
  align-self:flex-start;
  margin-top:4px;
  padding:10px 14px;
  background:var(--navy);
  color:#fff;
  border-radius:999px;
  font:700 13px var(--display);
  transition:transform .2s ease, background .2s ease;
}
.rentree-closing-body a:hover{transform:translateY(-1px); background:var(--navy-deep)}
@media(max-width:900px){
  .rentree-head{grid-template-columns:1fr;gap:18px}
  .rentree-grid{grid-template-columns:1fr;gap:16px}
  .rentree-mini{grid-template-columns:1fr}
  .rentree-closing{grid-template-columns:1fr}
  .rentree-closing figure{min-height:220px}
}

/* Inscriptions & Réinscriptions — édition douce (alignée THEME rentrée) */
#inscriptions{
  background:#fff;
}
.inscriptions-head{
  display:grid;
  grid-template-columns:1.4fr .85fr;
  gap:28px 40px;
  align-items:end;
  margin-bottom:34px;
}
.inscriptions-head>div>h2{
  margin:10px 0 14px;
  color:var(--navy);
  font:800 clamp(32px,4.2vw,48px)/1.03 var(--display);
  letter-spacing:-.04em;
}
.inscriptions-head>div>p.lead{
  margin:0;
  color:var(--muted);
  font-size:17px;
  line-height:1.6;
  max-width:640px;
}
.inscriptions-head-note{
  margin:0;
  padding:16px 18px;
  background:#f8fafc;
  border:1px solid #e8eef4;
  border-radius:16px;
  color:var(--muted);
  font-size:13.5px;
  line-height:1.6;
  align-self:center;
  box-shadow:0 8px 20px rgba(10,40,82,.04);
}
#inscriptions .inscriptions-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
#inscriptions .inscription-card{
  position:relative;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:#fff;
  border:1px solid #e8eef4;
  border-radius:22px;
  box-shadow:0 10px 28px rgba(10,40,82,.06);
  transition:transform .25s ease, box-shadow .25s ease;
}
#inscriptions .inscription-card:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 34px rgba(10,40,82,.10);
}
#inscriptions .inscription-card:not(.is-featured){
  background:#fff;
  box-shadow:0 10px 28px rgba(10,40,82,.06);
}
#inscriptions .inscription-card-bg-icon,
#inscriptions .card-icon,
#inscriptions .card-kicker .card-icon{display:none!important;}
#inscriptions .inscription-card-body{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:22px 24px 20px;
  min-height:100%;
}
#inscriptions .inscription-kicker{
  margin:0;
  color:var(--muted);
  font:800 11px var(--display);
  letter-spacing:.14em;
  text-transform:uppercase;
}
#inscriptions .inscription-card-body h3{
  margin:0;
  color:var(--navy);
  font:700 19px/1.25 var(--display);
}
#inscriptions .inscription-card-body>p{
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.62;
}
#inscriptions .inscription-card-body>p strong{color:var(--navy);}
#inscriptions .steps-compact{
  margin:8px 0 0;
  padding:0;
  list-style:none;
  border-top:0;
  display:grid;
  gap:10px;
}
#inscriptions .steps-compact li{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:11px 12px;
  background:#f8fafc;
  border:1px solid #eef0f4;
  border-radius:14px;
  border-bottom:1px solid #eef0f4;
}
#inscriptions .steps-compact li:last-child{border-bottom:1px solid #eef0f4;}
#inscriptions .steps-compact b{
  flex:none;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#fff;
  border:1px solid #e8eef4;
  color:var(--navy);
  font:800 12px var(--display);
  margin-top:1px;
  box-shadow:0 2px 8px rgba(10,40,82,.06);
}
#inscriptions .steps-compact strong{
  display:block;
  color:var(--navy);
  font:700 13.5px var(--display);
  line-height:1.3;
}
#inscriptions .steps-compact span{
  display:block;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.45;
  margin-top:2px;
}
/* Neutraliser anciens variants colorés */
#inscriptions .inscription-card.is-featured{border:1px solid #e8eef4; border-top:1px solid #e8eef4; background:#fff;}
#inscriptions .card-kicker,
#inscriptions .card-kicker.is-alt{color:var(--muted); margin-bottom:2px;}
#inscriptions .card-subtitle{color:var(--muted);}
#inscriptions .inscription-card-body h4{color:var(--navy);}
@media(max-width:900px){
  .inscriptions-head{grid-template-columns:1fr; gap:18px;}
  #inscriptions .inscriptions-cards{grid-template-columns:1fr; gap:16px;}
}

/* Fix: Inscriptions — blue / red with big background icon */
#inscriptions .inscription-card.is-blue{
  background:var(--navy);
  border-color:transparent;
  color:#fff;
  box-shadow:0 18px 38px rgba(6,43,98,.22);
}
#inscriptions .inscription-card.is-red{
  background:var(--red);
  border-color:transparent;
  color:#fff;
  box-shadow:0 18px 38px rgba(198,34,43,.20);
}
#inscriptions .inscription-card.is-blue:hover{transform:translateY(-3px);box-shadow:0 24px 48px rgba(6,43,98,.28);}
#inscriptions .inscription-card.is-red:hover{transform:translateY(-3px);box-shadow:0 24px 48px rgba(198,34,43,.28);}
#inscriptions .inscription-card.is-blue .inscription-card-bg-icon,
#inscriptions .inscription-card.is-red .inscription-card-bg-icon{
  display:block!important;
  position:absolute;
  top:-18px;
  right:-16px;
  width:200px;
  height:200px;
  color:rgba(255,255,255,.13);
  stroke-width:1.15;
  pointer-events:none;
  transform:rotate(8deg);
  transition:transform .35s ease, color .35s ease;
}
#inscriptions .inscription-card.is-blue:hover .inscription-card-bg-icon,
#inscriptions .inscription-card.is-red:hover .inscription-card-bg-icon{
  color:rgba(255,255,255,.20);
  transform:rotate(3deg) scale(1.06);
}
#inscriptions .inscription-card.is-blue .inscription-card-body,
#inscriptions .inscription-card.is-red .inscription-card-body{position:relative;z-index:1;}
#inscriptions .inscription-card.is-blue .inscription-kicker,
#inscriptions .inscription-card.is-red .inscription-kicker{color:rgba(255,255,255,.70);}
#inscriptions .inscription-card.is-blue h3,
#inscriptions .inscription-card.is-red h3{color:#fff;}
#inscriptions .inscription-card.is-blue .inscription-card-body>p,
#inscriptions .inscription-card.is-red .inscription-card-body>p{color:rgba(255,255,255,.84);}
#inscriptions .inscription-card.is-blue .inscription-card-body>p strong,
#inscriptions .inscription-card.is-red .inscription-card-body>p strong{color:#fff;}
#inscriptions .inscription-card.is-blue .steps-compact li,
#inscriptions .inscription-card.is-red .steps-compact li{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.18);}
#inscriptions .inscription-card.is-blue .steps-compact b,
#inscriptions .inscription-card.is-red .steps-compact b{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.32);color:#fff;box-shadow:none;}
#inscriptions .inscription-card.is-blue .steps-compact strong,
#inscriptions .inscription-card.is-red .steps-compact strong{color:#fff;}
#inscriptions .inscription-card.is-blue .steps-compact span,
#inscriptions .inscription-card.is-red .steps-compact span{color:rgba(255,255,255,.76);}

/* Dates importantes — agenda dynamique de l'établissement */
.important-dates { background: #fff; }
.important-dates-head { display:flex; align-items:flex-start; justify-content:space-between; gap:28px; }
.important-dates-head .section-head { margin-bottom:30px; }
.dates-year-badge { flex:none; margin-top:7px; padding:9px 13px; background:var(--blue-soft); border:1px solid #d7e2ed; color:var(--navy); font:800 11px var(--display); letter-spacing:.08em; text-transform:uppercase; }
.next-date-card { margin-bottom:34px; padding:24px; background:var(--navy); color:#fff; box-shadow:0 18px 36px rgba(6,43,98,.16); }
.next-date-label { display:inline-flex; align-items:center; gap:8px; color:#ffced2; font:800 11px var(--display); letter-spacing:.12em; text-transform:uppercase; }
.next-date-label svg { width:17px; height:17px; }
.next-date-content { display:grid; grid-template-columns:150px minmax(0,1fr); gap:24px; align-items:start; margin-top:18px; }
.next-date-date { display:grid; gap:5px; color:#fff; }
.next-date-date b { font:800 clamp(42px,5vw,62px)/.9 var(--display); letter-spacing:-.05em; }
.next-date-date span { color:#c9d8ec; font:800 12px var(--display); letter-spacing:.1em; text-transform:uppercase; }
.next-date-copy { min-width:0; padding-left:24px; border-left:1px solid rgba(255,255,255,.2); }
.date-category { display:inline-flex; padding:5px 9px; background:var(--blue-soft); color:var(--navy); font:800 10px var(--display); letter-spacing:.1em; text-transform:uppercase; }
.next-date-copy .date-category { background:rgba(255,255,255,.12); color:#ffced2; }
.next-date-copy h3 { margin:12px 0 7px; color:#fff; font:800 clamp(22px,3vw,31px)/1.15 var(--display); }
.next-date-copy p { max-width:68ch; margin:0; color:#d2e1f3; font-size:15px; line-height:1.6; }
.next-date-card .date-details { color:#d2e1f3; }
.next-date-empty { display:flex; align-items:center; gap:12px; margin-top:18px; color:#d2e1f3; }
.next-date-empty svg { flex:none; width:22px; height:22px; }
.next-date-empty p { margin:0; }
.dates-timeline { position:relative; display:grid; gap:14px; max-width:900px; padding-left:54px; }
.dates-timeline:before { content:""; position:absolute; top:12px; bottom:12px; left:17px; width:1px; background:#d7e2ed; }
.date-event { position:relative; display:grid; grid-template-columns:100px minmax(0,1fr); gap:22px; align-items:start; padding:18px 20px; background:#fff; border:1px solid var(--line); box-shadow:0 8px 20px rgba(10,40,82,.04); }
.date-event-marker { position:absolute; top:22px; left:-54px; display:grid; place-items:center; width:34px; height:34px; border:4px solid #fff; border-radius:50%; background:var(--navy); color:#fff; box-shadow:0 0 0 1px #d7e2ed; }
.date-event-marker svg { width:15px; height:15px; stroke-width:2.2; }
.date-event-date { display:grid; gap:2px; color:var(--navy); }
.date-event-date b { font:800 29px/.95 var(--display); letter-spacing:-.04em; }
.date-event-date span { color:var(--red); font:800 11px var(--display); letter-spacing:.1em; text-transform:uppercase; }
.date-event-date small { color:var(--muted); font-size:12px; }
.date-event-body { min-width:0; }
.date-event-body h3 { margin:8px 0 4px; color:var(--navy); font:800 18px/1.25 var(--display); }
.date-event-body p { margin:0; color:var(--muted); font-size:14px; line-height:1.55; }
.date-details { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:10px; color:var(--muted); font-size:12.5px; }
.date-details span { display:inline-flex; align-items:center; gap:5px; }
.date-details svg { width:14px; height:14px; color:var(--red); }
.date-event-link { display:inline-flex; align-items:center; gap:5px; margin-top:12px; color:var(--navy); font-size:12.5px; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.date-event-link svg { width:14px; height:14px; }
.date-event.is-past { opacity:.52; }
.date-event.is-past .date-event-marker { background:#8997a8; }
.date-event.is-today { border-color:var(--red); box-shadow:0 10px 24px rgba(198,34,43,.1); }
.date-event.is-today .date-event-marker { background:var(--red); box-shadow:0 0 0 4px rgba(198,34,43,.16); }
.dates-reminder { display:grid; grid-template-columns:34px minmax(0,1fr) auto; gap:14px; align-items:center; max-width:900px; margin-top:24px; padding:18px 20px; background:#fff8f8; border:1px solid #f0d8d8; }
.dates-reminder>svg { width:24px; height:24px; color:var(--red); }
.dates-reminder h3 { margin:0 0 3px; color:var(--navy); font:800 16px var(--display); }
.dates-reminder p { margin:0; color:var(--muted); font-size:13.5px; line-height:1.5; }
.dates-reminder .button { white-space:nowrap; }
.dates-contact-cta { display:flex; align-items:center; justify-content:space-between; gap:22px; max-width:900px; margin-top:18px; padding-top:22px; border-top:1px solid var(--line); }
.dates-contact-cta h3 { margin:0 0 4px; color:var(--navy); font:800 17px var(--display); }
.dates-contact-cta p { margin:0; color:var(--muted); font-size:13.5px; line-height:1.5; }
.dates-contact-cta .button { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.dates-contact-cta .button svg { width:15px; height:15px; }

@media (max-width:700px) {
  .important-dates-head { display:block; }
  .dates-year-badge { display:inline-block; margin:-10px 0 24px; }
  .next-date-card { padding:20px 18px; }
  .next-date-content { grid-template-columns:1fr; gap:16px; }
  .next-date-copy { padding:16px 0 0; border-top:1px solid rgba(255,255,255,.2); border-left:0; }
  .dates-timeline { padding-left:38px; }
  .dates-timeline:before { left:11px; }
  .date-event { grid-template-columns:1fr; gap:10px; padding:16px; }
  .date-event-marker { left:-38px; width:27px; height:27px; }
  .date-event-marker svg { width:13px; height:13px; }
  .date-event-date { display:flex; align-items:baseline; gap:7px; }
  .date-event-date b { font-size:25px; }
  .dates-reminder { grid-template-columns:28px 1fr; padding:16px; }
  .dates-reminder .button { grid-column:1 / -1; justify-self:start; }
  .dates-contact-cta { display:grid; gap:14px; }
}

/* Modalités de paiement */
.fees-section .section-head { max-width:780px; }
.fees-intro .button { display:inline-flex; align-items:center; gap:8px; margin-top:8px; }
.fees-intro .button svg { width:15px; height:15px; }
.fees-audience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:34px; }
.fee-audience-card { position:relative; padding:26px; background:#fff; border:1px solid var(--line); }
.fee-audience-card.is-red { border-top-color:var(--line); }
.fee-audience-card>svg { width:27px; height:27px; margin-bottom:18px; color:var(--navy); }
.fee-audience-card.is-red>svg { color:var(--red); }
.fee-audience-card h3 { margin:0 0 10px; color:var(--navy); font:800 22px/1.2 var(--display); }
.fee-audience-card p:not(.fees-kicker) { color:var(--muted); font-size:14px; line-height:1.6; }
.fee-audience-card .button { display:inline-flex; align-items:center; gap:7px; margin-top:8px; }
.fee-audience-card .button svg { width:14px; height:14px; }
.fees-block { margin-top:42px; }
.fees-block-head h3 { margin:0; color:var(--navy); font:800 24px var(--display); }
.fees-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin-top:18px; background:#d6e1ec; border:1px solid #d6e1ec; }
.fees-steps article { display:flex; gap:14px; padding:22px 18px; background:#fff; }
.fees-step-number { flex:none; display:grid; place-items:center; width:31px; height:31px; border-radius:50%; background:var(--navy); color:#fff; font:800 14px var(--display); }
.fees-steps h4 { margin:2px 0 6px; color:var(--navy); font:800 16px var(--display); }
.fees-steps p { margin:0; color:var(--muted); font-size:13.5px; line-height:1.5; }
.fees-note { display:flex; gap:8px; align-items:flex-start; margin:14px 0 0; color:var(--muted); font-size:13px; line-height:1.5; }
.fees-note svg { flex:none; width:17px; height:17px; color:var(--red); }
.fees-after { display:grid; grid-template-columns:34px minmax(0,1fr); gap:16px; margin-top:34px; padding:24px; background:#fff; border:1px solid var(--line); }
.fees-after>svg { width:25px; height:25px; color:var(--navy); }
.fees-after h3 { margin:0 0 8px; color:var(--navy); font:800 20px var(--display); }
.fees-after p:not(.fees-kicker) { margin:0; color:var(--muted); font-size:14px; line-height:1.6; }
.fees-important { display:grid; grid-template-columns:210px minmax(0,1fr); gap:24px; margin-top:18px; padding:24px; background:#fff; border:1px solid var(--line); }
.fees-important>div { display:flex; align-items:flex-start; gap:10px; }
.fees-important>div svg { width:22px; height:22px; color:var(--red); }
.fees-important h3 { margin:1px 0 0; color:var(--navy); font:800 20px var(--display); }
.fees-important .fees-list { margin:0; }
.fees-security { display:grid; grid-template-columns:34px minmax(0,1fr); gap:16px; margin-top:18px; padding:24px; background:#fff4f4; border:1px solid #f0c9c9; }
.fees-security>svg { width:26px; height:26px; color:var(--red); }
.fees-security h3 { margin:0 0 8px; color:var(--navy); font:800 20px var(--display); }
.fees-security p:not(.fees-kicker) { margin:0; color:var(--muted); font-size:14px; line-height:1.6; }
.fees-final { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:30px; padding-top:24px; border-top:1px solid var(--line); }
.fees-final h3 { margin:0 0 5px; color:var(--navy); font:800 19px var(--display); }
.fees-final p { max-width:650px; margin:0; color:var(--muted); font-size:13.5px; line-height:1.5; }
.fees-final>div:last-child { display:flex; flex-wrap:wrap; gap:10px; }
.fees-final .button { white-space:nowrap; }
@media (max-width:700px) {
  .fees-audience-grid, .fees-steps { grid-template-columns:1fr; }
  .fee-audience-card, .fees-after, .fees-important, .fees-security { padding:19px; }
  .fees-important { grid-template-columns:1fr; gap:12px; }
  .fees-final { display:grid; gap:16px; }
  .fees-final>div:last-child { display:grid; }
  .fees-final .button { justify-content:center; }
}

/* Inscription et modalités financières : lecture pratique pour les parents. */
.inscriptions-head>div>h3 {
  margin:0 0 12px;
  color:var(--navy);
  font:800 clamp(22px,3vw,30px)/1.15 var(--display);
}
.inscription-intro-copy {
  max-width:68ch;
  margin:0 0 10px;
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}
.inscriptions-head .button { margin-top:14px; gap:8px; }
.inscriptions-head .button svg { width:15px; height:15px; }
.inscription-quick-guide {
  display:grid;
  gap:10px;
  align-self:center;
  padding:24px;
  background:var(--navy);
  color:#fff;
  box-shadow:0 16px 30px rgba(6,43,98,.14);
}
.quick-guide-label {
  color:#ffced2;
  font:800 11px var(--display);
  letter-spacing:.13em;
  text-transform:uppercase;
}
.inscription-quick-guide strong { font:800 22px/1.25 var(--display); }
.inscription-quick-guide span:last-child { color:#d2e1f3; font-size:13.5px; line-height:1.5; }
.fee-audience-card { display:flex; flex-direction:column; }
.fee-audience-card h4 { margin:12px 0 0; color:var(--navy); font:800 15px var(--display); }
.fee-audience-card .button { align-self:flex-start; margin-top:auto; }
.parent-checklist, .fees-list { margin:8px 0 14px; padding:0; list-style:none; }
.parent-checklist li, .fees-list li { position:relative; padding-left:20px; color:var(--muted); font-size:13px; line-height:1.5; }
.parent-checklist li + li, .fees-list li + li { margin-top:7px; }
.parent-checklist li:before, .fees-list li:before { content:""; position:absolute; top:.62em; left:0; width:7px; height:7px; border-radius:50%; background:var(--red); }
.inscription-financial {
  margin-top:56px;
  padding:40px;
  background:var(--blue-soft);
  border-top:1px solid #d7e2ed;
}
.inscription-financial .fees-intro { max-width:780px; }
.inscription-financial .fees-intro h3 { margin:0 0 14px; color:var(--navy); font:800 clamp(27px,3vw,38px)/1.1 var(--display); }
.inscription-financial .fees-intro p { margin:0 0 10px; color:var(--muted); font-size:14px; line-height:1.6; }
.inscription-financial>.fees-important { display:flex; gap:10px; align-items:flex-start; margin:24px 0 0; padding:18px 20px; background:#fff; border:1px solid #efc9cb; }
.inscription-financial>.fees-important svg { flex:none; width:21px; height:21px; color:var(--red); }
.inscription-financial>.fees-important strong { color:var(--navy); }
.fees-accordions { display:grid; gap:10px; margin-top:24px; }
.fees-accordion { background:#fff; border:1px solid var(--line); }
.fees-accordion summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; color:var(--navy); cursor:pointer; list-style:none; font:800 17px/1.3 var(--display); }
.fees-accordion summary::-webkit-details-marker { display:none; }
.fees-accordion summary:after { content:"+"; flex:none; color:var(--red); font:400 25px/1 var(--display); }
.fees-accordion[open] summary { border-bottom:1px solid var(--line); }
.fees-accordion[open] summary:after { content:"−"; }
.fees-accordion summary:focus-visible { outline:3px solid rgba(198,34,43,.35); outline-offset:-3px; }
.fees-accordion-body { padding:0 20px 20px; }
.fees-accordion-body>p { max-width:780px; margin:16px 0 0; color:var(--muted); font-size:14px; line-height:1.6; }
.inscription-financial .fees-accordion .fees-block { margin-top:0; }
.inscription-financial .fees-accordion .fees-after { margin-top:0; }
.payment-follow-up { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:18px 0 0; padding:0; list-style:none; counter-reset:payment-follow-up; }
.payment-follow-up li { display:grid; grid-template-columns:32px 1fr; column-gap:11px; padding:18px; background:#fff; border:1px solid var(--line); }
.payment-follow-up li>span { grid-row:span 2; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--red); color:#fff; font:800 13px var(--display); }
.payment-follow-up strong { color:var(--navy); font:800 14px/1.3 var(--display); }
.payment-follow-up small { margin-top:4px; color:var(--muted); font-size:12.5px; line-height:1.45; }
.fees-retain { align-items:start; }
.fees-retain>div { min-width:150px; }
.fees-retain>div svg { width:22px; height:22px; color:var(--red); }
.fees-retain .fees-list { margin:0; }
.fees-final strong, .fees-final small { display:block; color:var(--navy); font-size:12.5px; }
.fees-final strong { margin-top:12px; font-weight:800; }
.fees-final small { margin-top:2px; color:var(--muted); }
.fees-final>div:last-child { align-self:start; }
@media (max-width:700px) {
  .inscription-financial { margin-top:38px; padding:24px 18px; }
  .payment-follow-up { grid-template-columns:1fr; }
  .inscription-financial>.fees-important { padding:16px; }
  .fees-accordion summary { padding:16px; }
  .fees-accordion-body { padding:0 16px 16px; }
}

/* Actualités de l'école : trois contenus récents, lisibles sur tous les écrans. */
.school-actualites { background:#f8fafc; }
.school-actualites-head { max-width:720px; }
.school-actualites-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.school-actualite-card { display:flex; flex-direction:column; min-width:0; background:#fff; border:1px solid var(--line); transition:transform .25s ease,box-shadow .25s ease; }
.school-actualite-card:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(10,40,82,.09); }
.school-actualite-media { display:block; min-height:170px; background:var(--blue-soft); overflow:hidden; }
.school-actualite-media img { width:100%; height:170px; object-fit:cover; transition:transform .35s ease; }
.school-actualite-card:hover .school-actualite-media img { transform:scale(1.03); }
.school-actualite-body { display:flex; flex:1; flex-direction:column; padding:20px; }
.school-actualite-meta { margin:0 0 10px; color:var(--red); font:800 10px var(--display); letter-spacing:.08em; text-transform:uppercase; }
.school-actualite-body h3 { margin:0 0 9px; color:var(--navy); font:800 19px/1.25 var(--display); }
.school-actualite-body h3 a:hover { text-decoration:underline; text-underline-offset:3px; }
.school-actualite-body>p:not(.school-actualite-meta) { margin:0; color:var(--muted); font-size:13.5px; line-height:1.55; }
.school-actualite-link { display:inline-flex; align-items:center; gap:7px; margin-top:auto; padding-top:18px; color:var(--navy); font-size:12.5px; font-weight:800; }
.school-actualite-link span { transition:transform .2s ease; }
.school-actualite-link:hover span { transform:translateX(3px); }
.school-actualites-more { margin-top:24px; }
@media (max-width:700px) {
  .school-actualites-grid { grid-template-columns:1fr; }
  .school-actualite-media, .school-actualite-media img { min-height:190px; height:190px; }
}

/* Modal de contact : un chemin court vers la messagerie du parent. */
.contact-modal[hidden] { display:none; }
.contact-modal { position:fixed; z-index:20; inset:0; display:grid; place-items:center; padding:20px; }
.contact-modal-backdrop { position:absolute; inset:0; background:rgba(3,28,66,.72); }

/* Registration page: calm, formal information surface with a solid navy shell. */
body.inscription-page-body {
  --page-navy: #062b62;
  --page-navy-deep: #031c42;
  --page-paper: #fbfcfe;
  --page-line: #dfe6ee;
  background: var(--page-paper);
}

body.inscription-page-body .topbar {
  background: var(--page-navy-deep);
  border-bottom: 1px solid rgba(255,255,255,.12);
}

body.inscription-page-body .site-header,
body.inscription-page-body .site-header.is-scrolled,
body.inscription-page-body .site-header.scrolled {
  top: 38px;
  background: var(--page-navy) !important;
  border-bottom: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 10px 30px rgba(3,28,66,.16);
}

body.inscription-page-body .main-nav {
  background: var(--page-navy) !important;
}

body.inscription-page-body .site-header .main-nav__inner,
body.inscription-page-body .site-header .nav-wrap {
  min-height: 74px;
  height: 74px;
}

body.inscription-page-body main { padding-top: 112px; }

body.inscription-page-body .section-nav {
  top: 112px;
  background: #fff;
  border-bottom-color: var(--page-line);
  box-shadow: 0 5px 18px rgba(10,40,82,.04);
}

body.inscription-page-body.header-scrolled .section-nav { top: 62px; }

body.inscription-page-body.header-scrolled .site-header .main-nav__inner,
body.inscription-page-body.header-scrolled .site-header .nav-wrap {
  min-height: 62px;
  height: 62px;
}

body.inscription-page-body .section-nav a { color: #52637a; }

body.inscription-page-body .section-nav a.is-active,
body.inscription-page-body .section-nav a:hover { color: var(--page-navy); }

body.inscription-page-body .content-section { padding: 82px 0; }

body.inscription-page-body .inscriptions-head {
  margin-bottom: 42px;
  align-items: center;
}

body.inscription-page-body #inscriptions {
  position: relative;
  background: var(--page-navy-deep);
  color: #fff;
  overflow: hidden;
}

body.inscription-page-body #inscriptions::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../images/website/eleves2.png");
  background-size: cover;
  background-position: center;
  opacity: .28;
  pointer-events: none;
}

body.inscription-page-body #inscriptions::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(3,28,66,.96) 0%, rgba(3,28,66,.82) 55%, rgba(3,28,66,.55) 100%);
  pointer-events: none;
}

body.inscription-page-body #inscriptions .wrap { position: relative; z-index: 1; }

body.inscription-page-body .inscriptions-head__main > h2,
body.inscription-page-body .inscription-financial .fees-intro h3,
body.inscription-page-body .rentree-head > div > h2 { letter-spacing: -.03em; }

body.inscription-page-body .inscriptions-head__main > h2 { color: #fff; }

body.inscription-page-body .inscriptions-head__kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
  color: #9dc2f5;
  font: 800 12px/1 var(--display);
  letter-spacing: .14em;
  text-transform: uppercase;
}

body.inscription-page-body .inscriptions-head__kicker::before {
  content: "";
  width: 22px;
  height: 2px;
  background: #9dc2f5;
}

body.inscription-page-body .inscriptions-head__year {
  display: inline-flex;
  align-items: center;
  margin: 0 0 18px;
  padding: 7px 14px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  color: #fff;
  font: 700 13px/1 var(--display);
  letter-spacing: .02em;
}

body.inscription-page-body .inscriptions-head__main .lead,
body.inscription-page-body .inscriptions-head__main .inscription-intro-copy { color: #d2e1f3; }

body.inscription-page-body .inscriptions-head__main .button-blue { background: #fff; color: var(--page-navy); }

body.inscription-page-body .inscriptions-head__main .button-blue:hover { background: #eaf1f8; }

body.inscription-page-body .fee-audience-card,
body.inscription-page-body .rentree-card,
body.inscription-page-body .rentree-closing,
body.inscription-page-body .fees-accordion,
body.inscription-page-body .payment-follow-up li {
  border: 1px solid var(--page-line);
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(10,40,82,.05);
}

body.inscription-page-body .fee-audience-card.is-red { background: #fff; }

body.inscription-page-body .fee-audience-card.is-red > svg,
body.inscription-page-body .fees-note svg,
body.inscription-page-body .fees-accordion summary:after,
body.inscription-page-body .parent-checklist li:before,
body.inscription-page-body .fees-list li:before { color: var(--page-navy); }

body.inscription-page-body .fee-audience-card.is-red h3,
body.inscription-page-body .fee-audience-card.is-red h4 { color: var(--page-navy); }

body.inscription-page-body .inscription-financial {
  background: #eef3f8;
  border-top: 0;
  border-radius: 14px;
}

body.inscription-page-body .inscription-financial > .fees-important {
  border-color: var(--page-line);
  border-radius: 10px;
}

body.inscription-page-body .fees-security {
  background: #f7f9fc;
  border-color: var(--page-line);
}

body.inscription-page-body .fees-security > svg { color: var(--page-navy); }

body.inscription-page-body .fees-accordion[open] summary { border-bottom-color: var(--page-line); }
body.inscription-page-body .rentree-section { background: #f1f5f9; }
body.inscription-page-body .rentree-tags li { border-radius: 8px; }
body.inscription-page-body .final-cta { background: var(--page-navy-deep); }

@media (max-width: 991px) {
  /* Sur mobile l'en-tête partagé est fixé à 68px (style.css) : aligner le contenu dessus. */
  body.inscription-page-body main { padding-top: 68px; }
  body.inscription-page-body .content-section { padding: 58px 0; }
  body.inscription-page-body .section-nav { top: 68px; }
  body.inscription-page-body.header-scrolled .section-nav { top: 68px; }
  body.inscription-page-body.header-scrolled .site-header .main-nav__inner,
  body.inscription-page-body.header-scrolled .site-header .nav-wrap {
    min-height: 68px;
    height: 68px;
  }
}
.contact-modal-dialog { position:relative; width:min(100%,620px); max-height:min(760px,calc(100vh - 40px)); overflow:auto; padding:34px; background:#fff; box-shadow:0 24px 70px rgba(0,0,0,.25); }
.contact-modal-close { position:absolute; top:14px; right:16px; width:34px; height:34px; border:1px solid var(--line); background:#fff; color:var(--navy); font-size:25px; line-height:1; cursor:pointer; }
.contact-modal-kicker { margin:0 0 8px; color:var(--red); font:800 10px var(--display); letter-spacing:.12em; text-transform:uppercase; }
.contact-modal-dialog h2 { margin:0 0 8px; color:var(--navy); font:800 clamp(27px,4vw,38px)/1.1 var(--display); }
.contact-modal-dialog>p { max-width:54ch; margin:0 0 24px; color:var(--muted); font-size:14px; line-height:1.55; }
.contact-form { display:grid; gap:16px; }
.contact-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.contact-form label { display:grid; gap:6px; color:var(--navy); font:800 12px var(--display); }
.contact-form input, .contact-form textarea { width:100%; padding:11px 12px; border:1px solid #b9c7d6; border-radius:2px; background:#fff; color:var(--ink); font:400 14px/1.45 var(--sans); }
.contact-form textarea { resize:vertical; min-height:120px; }
.contact-form input:focus, .contact-form textarea:focus, .contact-modal-close:focus-visible { outline:3px solid rgba(198,34,43,.22); outline-offset:2px; border-color:var(--red); }
.contact-form-note { margin:0; color:var(--muted); font-size:12px; line-height:1.4; }
.contact-form-error { display:block; color:var(--red); font-size:11px; font-weight:600; }
.contact-form-status { margin:0; padding:11px 13px; font-size:13px; line-height:1.45; }
.contact-form-status--error { background:#fff4f4; border:1px solid #f0c9c9; color:#8f1d25; }
.contact-form-status--success { background:#eef8f1; border:1px solid #b9dec2; color:#1e6330; }
.contact-form-trap { position:absolute; left:-10000px; width:1px; height:1px; opacity:0; }
.contact-form button { justify-self:start; gap:8px; cursor:pointer; }
.contact-form button svg { width:15px; height:15px; }
.contact-submit-loading { display:none; }
.contact-submit.is-sending { cursor:wait; opacity:.78; }
.contact-submit.is-sending .contact-submit-label,
.contact-submit.is-sending svg { display:none; }
.contact-submit.is-sending .contact-submit-loading { display:inline-flex; align-items:center; gap:8px; }
.contact-submit.is-sending .contact-submit-loading:before { content:""; width:14px; height:14px; border:2px solid rgba(255,255,255,.45); border-top-color:#fff; border-radius:50%; animation:contact-submit-spin .7s linear infinite; }
.contact-submit:disabled { pointer-events:none; }
@keyframes contact-submit-spin { to { transform:rotate(360deg); } }
.contact-actions button { cursor:pointer; font-family:inherit; }
body.contact-modal-open { overflow:hidden; }
@media (max-width:600px) {
  .contact-modal { padding:10px; }
  .contact-modal-dialog { max-height:calc(100vh - 20px); padding:28px 18px 22px; }
  .contact-form-grid { grid-template-columns:1fr; }
}

/* Keep the registration shell identical to the contact page. */
body.inscription-page-body .topbar {
  background: var(--pck-navy-900);
  border-bottom-color: rgba(255,255,255,.1);
}

body.inscription-page-body .site-header {
  top: 38px;
  background: var(--pck-navy-900) !important;
  border-bottom-color: rgba(255,255,255,.12);
  box-shadow: 0 10px 30px rgba(0,30,84,.16);
}

body.inscription-page-body .site-header.scrolled,
body.inscription-page-body .site-header.is-scrolled {
  top: 0;
  background: var(--pck-navy-900) !important;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: 0 14px 34px rgba(0,30,84,.22);
}

body.inscription-page-body .topbar.is-hidden + .site-header { top: 0; }
body.inscription-page-body .main-nav { background: transparent !important; }

body.inscription-page-body footer.site-footer {
  padding: 72px 0 32px;
  background-color: var(--pck-navy-900);
  color: #fff;
}

body.inscription-page-body .site-footer img {
  width: auto;
  height: 100%;
}

body.inscription-page-body .site-footer p.footer-motto {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.9);
}

body.inscription-page-body .site-footer p.footer-brand__desc {
  max-width: 300px;
  font-size: 14px;
  line-height: 1.65;
  color: rgba(255,255,255,.72);
}

@media (max-width:1024px) {
  body.inscription-page-body footer.site-footer { padding: 56px 0 28px; }
}

@media (max-width:640px) {
  body.inscription-page-body footer.site-footer { padding: 48px 0 24px; }
}
