/* YOVA — reconstruction à l'identique (phase 1) */

:root {
  --bleu: #397290;
  --sombre: #1d1e20;
  --noir: #1a1a1a;
  --blanc: #fff;
  --page: 1440px;
  --gouttiere: 108px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: Archivo, sans-serif;
  font-size: 16px;
  line-height: 1.3;
  color: var(--sombre);
  background: var(--blanc);
}

h1, h2, h3, h4 {
  font-family: "Archivo Black", Archivo, sans-serif;
  font-weight: 400;
  margin: 0;
}

p { margin: 0; }

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

a { color: inherit; }

.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* ---------- En-tête ---------- */

.entete {
  position: sticky;
  top: 0;
  z-index: 20;
  height: 92px;
  background: var(--bleu);
}

.entete__inner {
  max-width: var(--page);
  height: 100%;
  margin: 0 auto;
  padding: 0 124px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.entete__logo { flex: 0 0 auto; }
.entete__logo img { width: 92px; height: 92px; object-fit: contain; }

.nav {
  flex: 1 1 auto;
  display: flex;
  justify-content: center;
  gap: 64px;
}

.nav a {
  font-size: 16px;
  line-height: 1;
  color: var(--blanc);
  text-decoration: none;
}

.nav a:hover { text-decoration: underline; }
.nav a[aria-current="page"] { text-decoration: underline; }

.social {
  flex: 0 0 auto;
  display: flex;
  gap: 16px;
}

.social a { display: block; color: var(--blanc); }
.social svg { width: 20px; height: 20px; display: block; fill: currentColor; }

/* ---------- Blocs ---------- */

.bloc {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.bloc__fond {
  position: absolute;
  inset: 0;
  z-index: -2;
}

.bloc__fond img,
.bloc__fond video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bloc__voile {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--sombre);
}

.bloc__contenu {
  max-width: var(--page);
  margin: 0 auto;
  padding: 0 var(--gouttiere);
  text-align: center;
  color: var(--blanc);
}

/* ---------- Hero ---------- */

.hero { min-height: 624px; }
.hero .bloc__voile { opacity: .35; }
.hero .bloc__contenu { padding-top: 117px; padding-bottom: 213px; }

.hero__logo {
  width: 204px;
  height: 163px;
  object-fit: contain;
  margin: 0 auto 34px;
}

.hero h1 {
  font-size: 24px;
  line-height: 1.3;
  margin-bottom: 24px;
}

.hero__accroche {
  max-width: 561px;
  margin: 0 auto;
  font-size: 16px;
  line-height: 1.3;
  letter-spacing: .1em;
}

/* ---------- Bloc « Qui sommes-nous ? » ---------- */

.presentation { min-height: 679px; }
.presentation .bloc__voile { opacity: .63; }
.presentation .bloc__contenu { padding-top: 115px; padding-bottom: 98px; }

.presentation h3 { font-size: 24px; line-height: 1.3; }

.presentation__texte {
  max-width: 939px;
  margin: 101px auto 0;
  font-size: 20px;
  line-height: 1.3;
  letter-spacing: .1em;
}

.bouton {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 268px;
  height: 50px;
  margin-top: 102px;
  border-radius: 25px;
  background: var(--bleu);
  color: var(--blanc);
  font-size: 16px;
  line-height: 1.5;
  text-transform: uppercase;
  text-decoration: none;
  letter-spacing: .05em;
}

.bouton:hover { filter: brightness(1.1); }

/* ---------- Bloc « Événements 2025 » ---------- */

.evenements { height: 857px; overflow: visible; z-index: 1; }
.evenements .bloc__voile { opacity: .82; }
.evenements .bloc__contenu { padding-top: 30px; padding-bottom: 42px; }

.evenements h3 { font-size: 24px; line-height: 1.3; }

.evenements__texte {
  max-width: 574px;
  margin: 24px auto 0;
  font-size: 16px;
  line-height: 1.3;
  letter-spacing: .1em;
}

.video {
  width: 326px;
  height: 573px;
  margin: 137px auto 0;
  background: var(--sombre);
}

.video iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

/* ---------- Partenaires ---------- */

.partenaires {
  min-height: 251px;
  background: var(--bleu);
  padding-top: 32px;
}

.partenaires h3 {
  font-size: 32px;
  line-height: 1.3;
  color: var(--noir);
  text-align: center;
}

.partenaires__logos {
  max-width: var(--page);
  margin: 0 auto;
  padding: 36px 0 0 291px;
  display: flex;
  align-items: center;
}

.partenaires__logos img { object-fit: contain; }
.partenaires__logos img:nth-child(1) { width: 49px;  height: 81px; margin-right: 167px; }
.partenaires__logos img:nth-child(2) { width: 81px;  height: 54px; margin-right: 148px; }
.partenaires__logos img:nth-child(3) { width: 119px; height: 79px; margin-right: 67px; }
.partenaires__logos img:nth-child(4) { width: 148px; height: 99px; }

/* ---------- Pied de page ---------- */

.pied { min-height: 384px; }
.pied .bloc__voile { opacity: .18; }
.pied .bloc__contenu { padding-top: 57px; padding-bottom: 100px; }

.pied__logo {
  width: 238px;
  height: 159px;
  object-fit: contain;
  margin: 0 auto 6px;
}

.pied p { font-size: 16px; line-height: 1.2; }
.pied p + p { margin-top: 24px; }
.pied a { color: var(--blanc); }

/* ---------- Adaptation petits écrans ---------- */

@media (max-width: 1200px) {
  :root { --gouttiere: 40px; }
  .entete__inner { padding: 0 40px; }

  .partenaires__logos {
    padding: 36px 40px 0;
    justify-content: center;
    flex-wrap: wrap;
    gap: 48px;
  }
  .partenaires__logos img:nth-child(n) { margin-right: 0; }
}

@media (max-width: 860px) {
  :root { --gouttiere: 20px; }

  .entete { height: auto; }
  .entete__inner { padding-left: 20px; padding-right: 20px; }
  .entete__inner {
    flex-wrap: wrap;
    justify-content: center;
    padding-top: 12px;
    padding-bottom: 12px;
    gap: 12px;
  }
  .nav { flex-wrap: wrap; gap: 20px; order: 3; width: 100%; }

  .hero { min-height: 0; }
  .hero .bloc__contenu { padding-top: 60px; padding-bottom: 80px; }

  .presentation { min-height: 0; }
  .presentation .bloc__contenu { padding-top: 60px; padding-bottom: 60px; }
  .presentation__texte { margin-top: 40px; font-size: 17px; }
  .bouton { margin-top: 48px; }

  .evenements { min-height: 0; }
  .evenements .bloc__contenu { padding-top: 60px; padding-bottom: 60px; }
  .video { margin-top: 48px; width: 100%; max-width: 326px; height: 70vw; max-height: 573px; }

  .partenaires { padding-top: 40px; padding-bottom: 40px; }
  .partenaires h3 { font-size: 26px; }
  .partenaires__logos { gap: 32px; }

  .pied { min-height: 0; }
  .pied .bloc__contenu { padding-top: 48px; padding-bottom: 56px; }
}

/* ======================================================
   Page « À propos de YOVA »
   ====================================================== */

.etiquette {
  font-family: "Archivo Black", Archivo, sans-serif;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 400;
}

.titre-section {
  font-family: "Archivo Black", Archivo, sans-serif;
  font-size: 24px;
  line-height: 1.3;
  font-weight: 400;
  letter-spacing: .1em;
}

.texte {
  font-size: 20px;
  line-height: 30px;
  letter-spacing: .1em;
}

/* Hero de la page */
.hero-interieur { min-height: 580px; }
.hero-interieur .bloc__voile { opacity: .74; }
.hero-interieur .bloc__contenu { padding-top: 160px; padding-bottom: 276px; }

.hero-interieur h1 {
  font-size: 32px;
  line-height: 1.3;
  margin-bottom: 32px;
}

.hero-interieur__accroche {
  max-width: 606px;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.3;
}

/* Notre vision */
.vision { min-height: 569px; }
.vision .bloc__voile { opacity: .68; }
.vision .bloc__contenu { padding-top: 114px; padding-bottom: 139px; }
.vision .titre-section { margin-top: 9px; }
.vision .texte { margin-top: 78px; }

/* Notre mission */
.mission { min-height: 583px; }
.mission .bloc__voile { opacity: .82; }
.mission .bloc__contenu { padding-top: 50px; padding-bottom: 77px; }
.mission .titre-section { margin-top: 42px; }
.mission .texte { margin-top: 33px; }
.mission .colonnes-3 { margin-top: 57px; }

/* Notre approche unique */
.incubateur { min-height: 656px; }
.incubateur .bloc__voile { opacity: .87; }
.incubateur .bloc__contenu { padding-top: 26px; padding-bottom: 0; }
.incubateur .titre-section { margin-top: 26px; }
.incubateur .texte { margin-top: 90px; }
.incubateur .liste { margin-top: 32px; }
.incubateur .colonnes-3 { margin-top: 20px; }

/* Nos objectifs stratégiques */
.objectifs { min-height: 667px; }
.objectifs .bloc__voile { opacity: .82; }
.objectifs .bloc__contenu { padding-top: 28px; padding-bottom: 32px; }
.objectifs .titre-section { margin-top: 24px; }
.objectifs .texte { margin-top: 43px; }
.objectifs .sous-titre { margin-top: 4px; }
.objectifs .colonnes-2 { margin-top: 56px; }

.sous-titre {
  font-size: 14px;
  line-height: 1.3;
  letter-spacing: .1em;
}

/* Listes à puces */
.liste {
  list-style: disc;
  margin: 0 auto;
  padding: 0;
  max-width: 1060px;
  text-align: center;
}

.liste li {
  font-size: 20px;
  line-height: 30px;
  letter-spacing: .1em;
  list-style-position: inside;
}

.liste li + li { margin-top: 30px; }
.liste strong { font-weight: 700; }

/* Colonnes */
.colonnes-3 {
  display: grid;
  grid-template-columns: repeat(3, 240px);
  gap: 175px;
  justify-content: center;
}

.colonnes-3 p {
  font-size: 16px;
  line-height: 20.8px;
}

.colonnes-2 {
  display: grid;
  grid-template-columns: repeat(2, 392px);
  column-gap: 166px;
  row-gap: 59px;
  justify-content: center;
}

.colonnes-2 p {
  font-size: 20px;
  line-height: 26px;
}

.colonnes-2 strong { font-weight: 700; }

/* Président fondateur */
.president { min-height: 1022px; }
.president .bloc__voile { opacity: .84; }
.president .bloc__contenu { padding-top: 86px; padding-bottom: 59px; }

.president__entete {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 51px;
}

.president__identite {
  width: 423px;
  padding-top: 44px;
}

.president__nom {
  font-family: "Archivo Black", Archivo, sans-serif;
  font-size: 32px;
  line-height: 1.3;
  font-weight: 400;
}

.president__role {
  font-size: 16px;
  line-height: 1.2;
}

.president__portrait {
  width: 351px;
  height: 312px;
  object-fit: cover;
}

.pilule {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ff601b;
  color: var(--blanc);
  border-radius: 20px;
  text-decoration: none;
  text-transform: uppercase;
}

.pilule--petite {
  width: 97px;
  height: 19px;
  margin-top: 10px;
  font-size: 10px;
  line-height: 15px;
  letter-spacing: .05em;
}

.pilule--grande {
  width: 237px;
  height: 41px;
  margin-top: 49px;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: .05em;
}

.president .titre-section { margin-top: 15px; }
.president__bio { margin-top: 35px; }
.president__bio p + p { margin-top: 32px; }
.president__bio strong { font-weight: 700; }

@media (max-width: 1200px) {
  .colonnes-3 { grid-template-columns: repeat(3, 1fr); gap: 48px; }
  .colonnes-2 { grid-template-columns: repeat(2, 1fr); column-gap: 60px; row-gap: 48px; }
}

@media (max-width: 860px) {
  .hero-interieur,
  .vision, .mission, .incubateur, .objectifs, .president { min-height: 0; }

  .hero-interieur .bloc__contenu { padding-top: 70px; padding-bottom: 70px; }
  .vision .bloc__contenu,
  .mission .bloc__contenu,
  .incubateur .bloc__contenu,
  .objectifs .bloc__contenu,
  .president .bloc__contenu { padding-top: 56px; padding-bottom: 56px; }

  .hero-interieur h1 { font-size: 26px; }
  .titre-section { font-size: 20px; }
  .texte { font-size: 17px; line-height: 26px; }
  .vision .texte, .mission .texte, .incubateur .texte, .objectifs .texte { margin-top: 32px; }
  .incubateur .colonnes-3, .mission .colonnes-3, .objectifs .colonnes-2 { margin-top: 40px; }

  .colonnes-3, .colonnes-2 { grid-template-columns: 1fr; gap: 32px; }
  .liste li { font-size: 17px; line-height: 26px; }

  .president__entete { flex-direction: column; align-items: center; gap: 24px; }
  .president__identite { width: auto; padding-top: 0; }
  .president__portrait { width: 100%; max-width: 351px; height: auto; }
  .president__bio { margin-top: 40px; }
}

/* ======================================================
   Page « Programme — Yennayer 2025 »
   ====================================================== */

.bande { padding: 0; }
.bande--bleue { background: var(--bleu); }
.bande--orange { background: #ff601b; }
.bande--ciel { background: #a4bce3; }

.pilule--explorer {
  width: 219px;
  height: 36px;
  border-radius: 25px;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: .05em;
}

.pilule--explorer-sombre {
  width: 194px;
  height: 56px;
  border-radius: 28px;
  color: #0d131a;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: .05em;
}

/* Hero du programme */
.hero-programme { min-height: 1229px; }
.hero-programme .bloc__voile { opacity: .86; }
.hero-programme .bloc__contenu { padding-top: 117px; padding-bottom: 42px; }
.hero-programme h1 { font-size: 32px; line-height: 1.3; }
.hero-programme__sur-titre {
  width: 400px;
  margin: 50px auto 0;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: .1em;
}
.hero-programme__chapo {
  max-width: 1030px;
  margin: 4px auto 0;
  font-family: "Archivo Black", Archivo, sans-serif;
  font-size: 24px;
  line-height: 31.2px;
  font-weight: 400;
}
.hero-programme .video-verticale { margin-top: 40px; }

.video-verticale {
  width: 402px;
  height: 707px;
  margin-left: auto;
  margin-right: auto;
  background: var(--sombre);
}

.video-verticale iframe { width: 100%; height: 100%; border: 0; display: block; }

/* Couverture médiatique */
.medias { min-height: 334px; padding: 15px 0 33px; }
.medias h2 {
  font-size: 24px;
  line-height: 1.3;
  color: var(--sombre);
  text-align: center;
}

.medias__liste {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: var(--page);
  margin: 0 auto;
  padding: 71px var(--gouttiere) 0;
}

.medias__liste iframe { border: 0; display: block; background: var(--sombre); }

/* Soirée du 10 janvier */
.soiree { min-height: 410px; }
.soiree .bloc__contenu { padding-top: 48px; padding-bottom: 79px; }
.soiree h2 { font-size: 32px; line-height: 1.3; }
.soiree__lieu { font-size: 18px; line-height: 1.3; margin-top: 12px; }
.soiree__logo { width: 61px; height: 41px; object-fit: contain; margin: 28px auto 0; }
.soiree h3 { font-size: 24px; line-height: 1.3; margin-top: 37px; }
.soiree__accroche {
  max-width: 962px;
  margin: 27px auto 0;
  font-size: 16px;
  line-height: 20.8px;
  letter-spacing: .1em;
}

/* YANE */
.yane { min-height: 791px; }
.yane--prog { height: 791px; min-height: 0; overflow: visible; z-index: 1; }
.yane .bloc__voile { opacity: .57; }
.yane .bloc__contenu { padding-top: 58px; padding-bottom: 3px; }
.yane :is(h1, h2, h3) { font-size: 48px; line-height: 62.4px; }
.yane .texte { max-width: 1117px; margin: 24px auto 0; }

.galerie-3 {
  display: grid;
  grid-template-columns: repeat(3, 400px);
  gap: 12px;
  justify-content: center;
  margin-top: 92px;
}

.galerie-3 img {
  width: 400px;
  height: 396px;
  object-fit: cover;
  border-radius: 16px;
}

.yane .pilule--explorer { margin-top: 12px; }

/* Warm-up */
.warmup { min-height: 374px; }
.warmup .bloc__voile { opacity: .85; }
.warmup .bloc__contenu { padding-top: 68px; padding-bottom: 80px; }
.warmup h3 { font-size: 32px; line-height: 1.3; }
.warmup .texte { max-width: 881px; margin: 34px auto 0; }

/* Bande « Programme de la journée » */
.journee { min-height: 193px; padding: 16px var(--gouttiere) 17px; text-align: center; color: var(--blanc); }
.journee h2 { font-size: 24px; line-height: 1.3; }
.journee h3 { font-size: 18px; line-height: 1.3; margin-top: 8px; }
.journee p {
  max-width: 503px;
  margin: 7px auto 0;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: .1em;
}

/* Collage des ateliers */
.collage {
  position: relative;
  height: 1464px;
  max-width: var(--page);
  margin: 0 auto;
  color: var(--sombre);
}

.collage > * { position: absolute; margin: 0; text-align: center; }
.collage img { object-fit: cover; border-radius: 16px; }

.collage h2,
.collage h3 {
  font-family: "Archivo Black", Archivo, sans-serif;
  font-weight: 400;
  color: #000;
  font-size: 28px;
  line-height: 36.4px;
}

.collage .legende {
  font-family: "Archivo Black", Archivo, sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 20.8px;
  color: var(--noir);
}

.collage .texte { color: var(--sombre); }

/* Orchestre */
.orchestre { min-height: 943px; }
.orchestre .bloc__voile { opacity: .71; }
.orchestre .bloc__contenu { padding-top: 105px; padding-bottom: 138px; }
.orchestre :is(h1, h2, h3) { font-size: 40px; line-height: 52px; }
.orchestre__nom { max-width: 1121px; margin: 0 auto; font-size: 20px; line-height: 30px; letter-spacing: .1em; }
.orchestre__sous-titre { max-width: 1121px; margin: 8px auto 0; font-size: 16px; line-height: 20.8px; letter-spacing: .1em; }
.orchestre .texte { max-width: 1027px; margin: 56px auto 0; }
.orchestre .texte + .texte { margin-top: 32px; }
.orchestre__photo { width: 955px; height: 304px; object-fit: cover; margin: 17px auto 0; border-radius: 16px; }

/* Hamsi Boubeker */
.hamsi { min-height: 1188px; }
.hamsi .bloc__voile { opacity: .86; }
.hamsi .bloc__contenu { padding-top: 52px; padding-bottom: 0; }
.hamsi :is(h1, h2, h3) { font-size: 48px; line-height: 62.4px; }

.hamsi__colonnes {
  display: flex;
  align-items: flex-start;
  gap: 72px;
  margin-top: 20px;
}

.hamsi__texte { width: 612px; text-align: center; }
.hamsi__texte .texte + .texte { margin-top: 32px; }
.hamsi__portrait { width: 504px; height: 499px; object-fit: cover; margin-top: 165px; border-radius: 16px; }
.hamsi .pilule--explorer-sombre { margin-top: 26px; }

.galerie-4 {
  display: grid;
  grid-template-columns: repeat(4, 266px);
  gap: 16px;
  justify-content: center;
  margin-top: 111px;
}

.galerie-4 img { width: 266px; height: 266px; object-fit: cover; border-radius: 16px; }

/* Bande infos pratiques */
.infos {
  min-height: 333px;
  padding: 77px var(--gouttiere) 22px;
  text-align: center;
  color: var(--noir);
  font-size: 18px;
  line-height: 23.4px;
}

.infos p { margin: 0; }
.infos strong { font-family: "Archivo Black", Archivo, sans-serif; font-weight: 400; }
.infos p + p { margin-top: 23.4px; }

@media (max-width: 1200px) {
  .galerie-3 { grid-template-columns: repeat(3, 1fr); }
  .galerie-3 img { width: 100%; height: auto; aspect-ratio: 400 / 396; }
  .galerie-4 { grid-template-columns: repeat(4, 1fr); }
  .galerie-4 img { width: 100%; height: auto; aspect-ratio: 1; }
  .hamsi__colonnes { gap: 40px; }
  .hamsi__texte { width: auto; flex: 1 1 0; }
  .hamsi__portrait { flex: 0 0 auto; width: 40%; height: auto; aspect-ratio: 504 / 499; }
  .orchestre__photo { width: 100%; height: auto; aspect-ratio: 955 / 304; }
  .medias__liste iframe { width: 31%; height: auto; aspect-ratio: 16 / 9; }

  .collage { position: static; height: auto; padding: 0 var(--gouttiere) 56px; }
  .collage > * { position: static !important; width: auto !important; left: auto !important; top: auto !important; margin: 0 auto; }
  .collage img { display: block; width: 100%; max-width: 420px; height: auto; margin: 24px auto; }
  .collage h2, .collage h3 { margin-top: 32px; }
  .collage .legende { margin-top: 8px; }
  .collage .texte { margin-top: 12px; }
}

@media (max-width: 860px) {
  .hero-programme, .medias, .soiree, .yane, .warmup,
  .journee, .orchestre, .hamsi, .infos { min-height: 0; }

  .hero-programme .bloc__contenu { padding-top: 60px; padding-bottom: 60px; }
  .hero-programme h1 { font-size: 24px; }
  .hero-programme__sur-titre { width: auto; margin-top: 24px; }
  .hero-programme__chapo { font-size: 18px; line-height: 1.4; }
  .video-verticale { width: 100%; max-width: 402px; height: 112vw; max-height: 707px; }
  .hero-programme .video-verticale { margin-top: 32px; }

  .medias { padding: 40px 0; }
  .medias__liste { flex-direction: column; gap: 24px; padding-top: 32px; }
  .medias__liste iframe { width: 100%; }

  .soiree .bloc__contenu,
  .yane .bloc__contenu,
  .warmup .bloc__contenu,
  .orchestre .bloc__contenu,
  .hamsi .bloc__contenu { padding-top: 48px; padding-bottom: 48px; }

  .soiree h2, .warmup h3 { font-size: 24px; }
  .yane :is(h1,h2,h3), .hamsi :is(h1,h2,h3) { font-size: 32px; line-height: 1.2; }
  .orchestre :is(h1,h2,h3) { font-size: 28px; line-height: 1.2; }

  .galerie-3 { grid-template-columns: 1fr; gap: 16px; margin-top: 40px; }
  .galerie-4 { grid-template-columns: repeat(2, 1fr); margin-top: 48px; }

  .journee { padding: 32px 20px; }
  .infos { padding: 40px 20px; }

  .hamsi__colonnes { flex-direction: column; align-items: center; gap: 24px; }
  .hamsi__texte { width: 100%; }
  .hamsi__portrait { width: 100%; max-width: 504px; margin-top: 0; }
}

/* ======================================================
   Page « Contactez-nous »
   ====================================================== */

.contact { min-height: 664px; background: rgba(22, 107, 224, .31); }
.contact .bloc__contenu { padding-top: 52px; padding-bottom: 111px; color: var(--sombre); }
.contact h1 { font-size: 48px; line-height: 62.4px; }

.contact__intro {
  max-width: 447px;
  margin: 14px auto 0;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: .1em;
  color: #56585e;
}

.formulaire {
  width: 822px;
  max-width: 100%;
  margin: 46px auto 0;
  text-align: left;
}

.formulaire label {
  display: block;
  font-size: 14px;
  line-height: 19px;
  letter-spacing: .1em;
  color: #0d131a;
}

.formulaire input,
.formulaire textarea {
  display: block;
  width: 100%;
  padding: 16px;
  border: 2px solid #b8c0cc;
  border-radius: 16px;
  background: var(--blanc);
  color: #0d131a;
  font-family: Archivo, sans-serif;
  font-size: 10px;
}

.formulaire input { height: 42px; }
.formulaire textarea { height: 86px; resize: vertical; }
.formulaire label + label,
.formulaire .champ + .champ { margin-top: 0; }
.formulaire .champ + .champ { margin-top: 0; }

.bouton-envoi {
  display: block;
  width: 305px;
  height: 58px;
  margin: 4px auto 0;
  border: 0;
  border-radius: 50px;
  background: #176be0;
  color: var(--blanc);
  font-family: Archivo, sans-serif;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.contact .bouton-envoi { margin-top: 46px; }

/* Newsletter */
.newsletter { min-height: 690px; background: rgba(133, 204, 164, .73); }
.newsletter .bloc__contenu { padding-top: 102px; padding-bottom: 121px; color: var(--sombre); }
.newsletter h2 { font-size: 40px; line-height: 52px; }

.newsletter__titre {
  max-width: 812px;
  margin: 36px auto 0;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: .1em;
}

.newsletter__texte {
  max-width: 812px;
  margin: 92px auto 0;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: .1em;
}

.newsletter__formulaire {
  width: 503px;
  max-width: 100%;
  margin: 17px auto 0;
  text-align: left;
}

.newsletter__formulaire label {
  display: block;
  font-size: 14px;
  line-height: 19px;
  letter-spacing: .1em;
  color: #000;
}

.newsletter__formulaire input {
  display: block;
  width: 100%;
  height: 52px;
  margin-top: 1px;
  padding: 16px;
  border: 1px solid #b8c0cc;
  border-radius: 10px;
  background: var(--blanc);
  color: #000;
  font-family: Archivo, sans-serif;
  font-size: 16px;
}

.bouton-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  width: 142px;
  height: 64px;
  margin: 14px auto 0;
  border: 0;
  border-radius: 50px;
  background: #000;
  color: var(--blanc);
  font-family: Archivo, sans-serif;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: .05em;
  text-transform: uppercase;
  cursor: pointer;
}

@media (max-width: 860px) {
  .contact, .newsletter { min-height: 0; }
  .contact .bloc__contenu { padding-top: 48px; padding-bottom: 56px; }
  .newsletter .bloc__contenu { padding-top: 56px; padding-bottom: 56px; }
  .contact h1 { font-size: 32px; line-height: 1.2; }
  .newsletter h2 { font-size: 28px; line-height: 1.2; }
  .newsletter__texte { margin-top: 32px; }
  .formulaire { margin-top: 32px; }
}

/* ======================================================
   Page « À propos de Yennayer »
   ====================================================== */

.yennayer-hero { min-height: 555px; }
.yennayer-hero .bloc__voile { opacity: .88; }
.yennayer-hero .bloc__contenu { padding-top: 37px; padding-bottom: 51px; }
.yennayer-hero h1 { max-width: 1057px; margin: 0 auto; font-size: 32px; line-height: 41.6px; }
.yennayer-hero .texte { max-width: 1195px; margin: 22px auto 0; }
.yennayer-hero .texte + .texte { margin-top: 32px; }

.reperes { min-height: 763px; }
.reperes .bloc__voile { opacity: .95; }
.reperes .bloc__contenu { padding-top: 40px; padding-bottom: 0; }
.reperes h2 { max-width: 1166px; margin: 0 auto; font-size: 32px; line-height: 41.6px; }
.reperes .texte { max-width: 1166px; margin: 32px auto 0; }

.reperes__photos {
  display: flex;
  gap: 75px;
  padding-left: 63px;
  margin-top: 80px;
  margin-bottom: -21px;
}

.reperes__photos img { object-fit: cover; border-radius: 16px; }

.valeurs { min-height: 587px; }
.valeurs .bloc__voile { opacity: .83; }
.valeurs .bloc__contenu { padding-top: 30px; padding-bottom: 4px; }
.valeurs h2 { max-width: 1008px; margin: 0 auto; font-size: 32px; line-height: 41.6px; }
.valeurs h3 { max-width: 1133px; margin: 92px auto 0; font-size: 18px; line-height: 23.4px; }
.valeurs .texte { max-width: 1133px; margin: 32px auto 0; }
.valeurs .texte + .texte { margin-top: 32px; }

/* Objectifs de l'événement */
.objectifs-evenement { background: #ecf0f3; color: var(--sombre); }

.plan {
  position: relative;
  max-width: var(--page);
  margin: 0 auto;
}

.plan > * { position: absolute; margin: 0; text-align: center; }
.plan img { object-fit: cover; border-radius: 16px; }

.plan h2 {
  font-family: "Archivo Black", Archivo, sans-serif;
  font-weight: 400;
  font-size: 48px;
  line-height: 62.4px;
}

.plan .intitule {
  font-family: "Archivo Black", Archivo, sans-serif;
  font-weight: 400;
  font-size: 18px;
  line-height: 23.4px;
  color: #0d131a;
}

.plan .texte-gris {
  font-size: 20px;
  line-height: 30px;
  letter-spacing: .1em;
  color: #56585e;
}

@media (max-width: 1200px) {
  .reperes__photos { padding-left: 0; justify-content: center; flex-wrap: wrap; gap: 32px; }
  .reperes__photos img { width: 45%; height: auto; }

  .plan { position: static; height: auto !important; padding: 56px var(--gouttiere); }
  .plan > * { position: static !important; width: auto !important; left: auto !important; top: auto !important; margin: 0 auto; }
  .plan img { display: block; width: 100%; max-width: 360px; height: auto; margin: 24px auto; }
  .plan .intitule { margin-top: 32px; }
  .plan .texte-gris { margin-top: 12px; }
}

@media (max-width: 860px) {
  .yennayer-hero, .reperes, .valeurs { min-height: 0; }
  .yennayer-hero .bloc__contenu,
  .reperes .bloc__contenu,
  .valeurs .bloc__contenu { padding-top: 48px; padding-bottom: 48px; }
  .yennayer-hero h1, .reperes h2, .valeurs h2 { font-size: 24px; line-height: 1.3; }
  .plan h2 { font-size: 28px; line-height: 1.2; }
  .reperes__photos { margin-top: 40px; }
  .reperes__photos img { width: 100%; }
  .valeurs h3 { margin-top: 40px; }
}

/* ======================================================
   Page « Artiste à l'honneur »
   ====================================================== */

.hamsi--artiste .bloc__contenu { padding-top: 40px; }
.hamsi--artiste .hamsi__colonnes { margin-top: 32px; }
.hamsi--artiste .hamsi__portrait { height: 500px; margin-top: 65px; }
.hamsi--artiste { overflow: visible; z-index: 1; height: 1188px; min-height: 0; }
.hamsi--artiste .bloc__fond { overflow: hidden; }
.hamsi--artiste .galerie-4 { margin-top: 112px; margin-bottom: -42px; }

.orchestre--artiste { min-height: 952px; }
.orchestre--artiste .bloc__voile { opacity: .94; }
.orchestre--artiste .bloc__contenu { padding-top: 90px; padding-bottom: 39px; }
.orchestre--artiste .orchestre__nom {
  max-width: 606px;
  margin: 8px auto 0;
  font-size: 24px;
  line-height: 31.2px;
  letter-spacing: normal;
}
.orchestre--artiste .texte { max-width: 981px; margin: 57px auto 0; }
.orchestre--artiste .texte + .texte { margin-top: 16px; }
.orchestre--artiste .orchestre__photo { width: 1051px; height: 358px; margin-top: 77px; }
.orchestre--artiste .pilule--explorer {
  width: 218px;
  height: 40px;
  border-radius: 28px;
  margin-top: 3px;
}

.yane--artiste { min-height: 866px; }
.yane--artiste .bloc__contenu { padding-bottom: 66px; }

.artistes-fin { min-height: 539px; }
.artistes-fin .bloc__voile { opacity: .42; }
.artistes-fin .bloc__contenu { padding-top: 106px; padding-bottom: 98px; }
.artistes-fin h2 { font-size: 100px; line-height: 130px; }
.artistes-fin .texte { max-width: 503px; margin: -15px auto 0; }

@media (max-width: 1200px) {
  .hamsi--artiste { height: auto; min-height: 0; }
  .hamsi--artiste .galerie-4 { margin-bottom: 0; }
  .orchestre--artiste .orchestre__photo { width: 100%; height: auto; aspect-ratio: 1051 / 358; }
}

@media (max-width: 860px) {
  .orchestre--artiste, .yane--artiste, .artistes-fin { min-height: 0; }
  .orchestre--artiste .bloc__contenu,
  .artistes-fin .bloc__contenu { padding-top: 48px; padding-bottom: 48px; }
  .orchestre--artiste .orchestre__nom { font-size: 20px; line-height: 1.3; }
  .orchestre--artiste .texte { margin-top: 32px; }
  .orchestre--artiste .orchestre__photo { margin-top: 32px; }
  .artistes-fin h2 { font-size: 44px; line-height: 1.1; }
  .hamsi--artiste .hamsi__portrait { height: auto; margin-top: 0; }
  .hamsi--artiste .galerie-4 { margin-top: 48px; }
}

/* ======================================================
   Page « Soirée Warm-Up »
   ====================================================== */

.pilule--reserver {
  width: 342px;
  height: 50px;
  border-radius: 25px;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: .05em;
}

.pilule--moyenne {
  width: 315px;
  height: 39px;
  border-radius: 25px;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: .05em;
}

.pilule--programme {
  width: 268px;
  height: 39px;
  border-radius: 25px;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: .05em;
}

/* Hero warm-up */
.warmup-hero { min-height: 744px; }
.warmup-hero .bloc__contenu { padding-top: 88px; padding-bottom: 29px; }
.warmup-hero h2 { font-size: 32px; line-height: 41.6px; }
.warmup-hero__lieu { font-size: 18px; line-height: 23.4px; margin-top: 11px; }
.warmup-hero__logo { width: 94px; height: 63px; object-fit: contain; margin: 33px auto 0; }
.warmup-hero h1 { font-size: 48px; line-height: 62.4px; margin-top: 75px; }
.warmup-hero .texte { max-width: 962px; margin: 46px auto 0; }
.warmup-hero .pilule--reserver { margin-top: 38px; }

/* Pourquoi */
.pourquoi { min-height: 888px; }
.pourquoi .bloc__voile { opacity: .9; }
.pourquoi .bloc__contenu { padding: 88px 0 0; }
.pourquoi h2 { font-size: 32px; line-height: 41.6px; }

.pourquoi__corps { position: relative; max-width: var(--page); height: 600px; margin: 0 auto; }
.pourquoi__corps > * { position: absolute; margin: 0; text-align: center; }
.pourquoi__corps img { object-fit: cover; border-radius: 16px; }
.pourquoi__corps .texte { color: var(--blanc); }
.pourquoi__corps .intitule {
  font-family: "Archivo Black", Archivo, sans-serif;
  font-size: 18px;
  line-height: 23.4px;
}

/* Warm-up 11 janvier */
.warmup-bande { min-height: 487px; }
.warmup-bande .bloc__voile { opacity: .85; }
.warmup-bande .bloc__contenu { padding-top: 100px; padding-bottom: 71px; }
.warmup-bande h3 { font-size: 32px; line-height: 41.6px; }
.warmup-bande .texte { max-width: 881px; margin: 34px auto 0; }
.warmup-bande .pilule--programme { margin-top: 2px; }

/* Billetterie */
.billetterie { min-height: 633px; }
.billetterie .bloc__voile { opacity: .94; }
.billetterie .bloc__contenu { padding: 24px 108px 0; }
.billetterie iframe { display: block; width: 1135px; max-width: 100%; height: 348px; border: 0; background: transparent; }

/* Infos pratiques */
.infos-soiree { min-height: 623px; }
.infos-soiree .bloc__voile { opacity: .97; }
.infos-soiree .bloc__contenu { padding-top: 83px; padding-bottom: 0; }
.infos-soiree h2 { font-size: 32px; line-height: 41.6px; }
.infos-soiree__prix { max-width: 881px; margin: 27px auto 0; font-size: 20px; line-height: 30px; letter-spacing: .1em; }
.infos-soiree__etiquette { max-width: 881px; margin: 39px auto 0; font-size: 16px; line-height: 20.8px; letter-spacing: .1em; }
.infos-soiree__adresse { max-width: 881px; margin: 15px auto 0; font-size: 20px; line-height: 30px; letter-spacing: .1em; }
.infos-soiree__adresse span { font-family: "IBM Plex Sans", Archivo, sans-serif; letter-spacing: normal; text-transform: none; }
.infos-soiree__carte { display: block; width: 331px; height: 154px; margin: 40px auto 0; border: 0; }
.infos-soiree__fin { margin-top: -1px; font-size: 24px; line-height: 31.2px; letter-spacing: .1em; }
.infos-soiree .pilule--reserver { margin-top: 19px; }

@media (max-width: 1200px) {
  .pourquoi__corps { position: static; height: auto; padding: 40px var(--gouttiere) 56px; }
  .pourquoi__corps > * { position: static !important; width: auto !important; left: auto !important; top: auto !important; margin: 0 auto 24px; }
  .pourquoi__corps img { display: block; width: 100%; max-width: 420px; height: auto; }
  .billetterie .bloc__contenu { padding: 24px var(--gouttiere) 0; }
}

@media (max-width: 860px) {
  .warmup-hero, .pourquoi, .warmup-bande, .billetterie, .infos-soiree { min-height: 0; }
  .warmup-hero .bloc__contenu,
  .warmup-bande .bloc__contenu { padding-top: 56px; padding-bottom: 56px; }
  .warmup-hero h1 { font-size: 28px; line-height: 1.2; margin-top: 40px; }
  .warmup-hero h2, .pourquoi h2, .warmup-bande h3, .infos-soiree h2 { font-size: 24px; line-height: 1.3; }
  .pilule--reserver, .pilule--moyenne { max-width: 100%; }
  .billetterie { padding-bottom: 32px; }
  .infos-soiree .bloc__contenu { padding-top: 56px; padding-bottom: 56px; }
  .infos-soiree__fin { font-size: 18px; line-height: 1.4; }
}

.gras-noir { font-family: "Archivo Black", Archivo, sans-serif; font-weight: 400; }
.titre-noir { font-family: "Archivo Black", Archivo, sans-serif; font-weight: 400; }

.hamsi--prog { height: 1188px; min-height: 0; overflow: visible; z-index: 1; }

@media (max-width: 1200px) {
  .evenements, .yane--prog, .hamsi--prog { height: auto; }
}

/* ======================================================
   Phase 2 — bandeau « Yennayer 2027 : bientôt » (accueil)
   ====================================================== */

.savedate {
  background: var(--sombre);
  color: var(--blanc);
  text-align: center;
  padding: 64px var(--gouttiere) 72px;
}

.savedate h2 { font-size: 32px; line-height: 1.3; }

.savedate p {
  margin-top: 16px;
  font-size: 20px;
  line-height: 30px;
  letter-spacing: .1em;
}

.savedate .bouton { margin-top: 32px; }

@media (max-width: 860px) {
  .savedate { padding: 48px 20px 56px; }
  .savedate h2 { font-size: 24px; }
  .savedate p { font-size: 17px; line-height: 26px; }
}
