/*
Theme Name: Cie NGUÉ NI MEY
Theme URI: https://example.com
Author: Cie NGUÉ NI MEY
Description: Thème bloc sur mesure de la Cie NGUÉ NI MEY — danse, théâtre, musique. Noir scène, carmin, Marcellus et Open Sans. Tout le contenu est composé en blocs natifs et reste modifiable dans l'éditeur.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cie-ngue-ni-mey
Tags: block-theme, full-site-editing, one-column, custom-colors, editor-style
*/

/* Ce fichier est assemblé par scripts/blocs.py : en-tête ci-dessus + site/styles.css.
   Ne pas le modifier ici, modifier la maquette puis relancer le script. */

/* ==========================================================================
   Cie NGUÉ NI MEY
   Registre relevé sur la référence : noir chaud, un seul accent carmin,
   Marcellus (évasée) + Open Sans (chiffres, étiquettes), pilules et cercles,
   rayon 14 px, alignement à gauche, peu d'éléments et grands.

   Le balisage est celui des blocs natifs de WordPress (groupes, paragraphes,
   titres, images, boutons, listes) : cette feuille sert telle quelle à la
   maquette et au thème. Deux règles pour qu'elle résiste au CSS des blocs :
   - le cadrage d'une image vise « figure.x img » (0,1,2), jamais « .x img »,
     sinon « .wp-block-image img { height: auto } » l'emporte ;
   - les styles de bouton visent « .variante .wp-block-button__link » (0,2,0),
     au-dessus des styles d'élément générés par theme.json.
   ========================================================================== */

:root {
  --noir: #050102;
  --carmin: #cd2a32;
  --carmin-vif: #e02939;
  --pourpre: #5c0514;
  --blanc: #ffffff;
  --blanc-80: rgba(255, 255, 255, .8);
  --blanc-60: rgba(255, 255, 255, .6);
  --filet: rgba(255, 255, 255, .16);
  --filet-fort: rgba(255, 255, 255, .42);

  --f-titre: 'Marcellus', 'Optima', 'Candara', serif;
  --f-chiffre: 'Open Sans', 'Helvetica Neue', Arial, sans-serif;

  --t-h1: clamp(46px, 4.65vw, 67px);
  --t-h2: clamp(34px, 3.3vw, 48px);
  --t-h3: clamp(23px, 1.85vw, 27px);
  --t-sur: clamp(19px, 1.65vw, 24px);
  --t-corps: clamp(17px, 1.39vw, 20px);

  --gouttiere: clamp(20px, 5.6vw, 80px);
  --rayon: 14px;
  --section: clamp(96px, 10vw, 150px);

  /* Icônes : masques CSS, jamais de SVG dans le contenu (substitution n° 1) */
  --icone-logo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 64'%3E%3Ccircle cx='27.5' cy='9.5' r='4.6'/%3E%3Cpath d='M27.8 16.2c3.2-1.6 6.3-5.4 8.9-12.6l2 .8c-2.1 7.6-5.2 12.6-9.4 15.4z'/%3E%3Cpath d='M24.4 16.9c-3.9.8-8.1 3.4-11.7 7.4l1.6 1.5c3.3-3.2 7-5.2 10.8-5.8z'/%3E%3Cpath d='M25.2 15.4c4.9-.4 7.6 3.6 6.9 10.4-.6 5.9 1.4 11.3 6.8 17.6 3.9 4.6 7.9 9.2 10.1 16.4-9.6-2.6-22.4-2.2-35.4 1.3-3.1.8-6.6.6-9.2-.6 6.3-3.1 11.4-8.6 13.9-16.4 1.8-5.6 1.6-11.2 2.2-17.4.4-5.2 1.9-10.9 4.7-11.3z'/%3E%3C/svg%3E");
  --icone-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3Cpath d='M14.5 2.5a8 8 0 0 1 7 7M14.5 6a4.5 4.5 0 0 1 3.5 3.5'/%3E%3C/svg%3E");
  --icone-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='19' height='15' rx='2'/%3E%3Cpath d='M3 6.5l9 6.5 9-6.5'/%3E%3C/svg%3E");
  --icone-lecture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 3.5v17a1 1 0 0 0 1.5.9l14-8.5a1 1 0 0 0 0-1.8l-14-8.5A1 1 0 0 0 6 3.5z'/%3E%3C/svg%3E");
}

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

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--noir);
  color: var(--blanc);
  font-family: var(--f-titre);
  font-size: var(--t-corps);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; height: auto; }
figure { margin: 0; }
figure.wp-block-image { margin: 0; }
a { color: inherit; text-decoration: none; }
p { margin: 0; }
h1, h2, h3 { margin: 0; font-weight: 400; hyphens: none; text-wrap: balance; }
ul { margin: 0; }

.enveloppe {
  width: min(100% - 2 * var(--gouttiere), 1280px);
  margin-inline: auto;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--carmin-vif);
  outline-offset: 3px;
}

/* ---------- Éléments communs ---------- */

.surtitre {
  color: var(--carmin);
  font-size: var(--t-sur);
  line-height: 1.3;
  letter-spacing: .005em;
}

.titre-section {
  font-size: var(--t-h2);
  line-height: 1.18;
  margin-top: 18px;
}

.texte { color: var(--blanc-80); }
.texte + .texte { margin-top: 1em; }

/* Boutons : core/buttons + core/button */
.wp-block-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}
.wp-block-button { margin: 0; }
.wp-block-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 58px;
  padding: 0 32px;
  border-radius: 999px;
  color: var(--blanc);
  font-family: var(--f-titre);
  font-size: 19px;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  text-decoration: none;
  transition: background-color .25s, border-color .25s, color .25s;
}
.bouton-contour .wp-block-button__link { border: 1px solid var(--filet-fort); background: transparent; }
.bouton-contour .wp-block-button__link:hover { border-color: var(--blanc); background: rgba(255, 255, 255, .06); }
.bouton-plein .wp-block-button__link { border: 0; background: var(--carmin); }
.bouton-plein .wp-block-button__link:hover { background: var(--carmin-vif); }
.bouton-petit .wp-block-button__link { min-height: 48px; padding: 0 26px; font-size: 17px; }

/* Lecture vidéo : pastille blanche + triangle carmin, en pseudo-éléments */
.a-lecture::before,
.carte-video::before {
  content: '';
  position: absolute;
  z-index: 2;
  left: 50%; top: 50%;
  width: 56px; height: 56px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--blanc);
  box-shadow: 0 6px 30px rgba(0, 0, 0, .45);
  pointer-events: none;
}
.a-lecture::after,
.carte-video::after {
  content: '';
  position: absolute;
  z-index: 3;
  left: 50%; top: 50%;
  width: 20px; height: 20px;
  transform: translate(calc(-50% + 2px), -50%);
  background: var(--carmin-vif);
  -webkit-mask: var(--icone-lecture) center / contain no-repeat;
          mask: var(--icone-lecture) center / contain no-repeat;
  pointer-events: none;
}
.a-lecture--grand::before { width: 84px; height: 84px; }
.a-lecture--grand::after { width: 28px; height: 28px; }

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

.entete {
  position: absolute;
  inset: 0 0 auto;
  z-index: 20;
  padding-top: 36px;
}
/* Connecté : l'en-tête se cale sous la barre d'administration, quelle que soit
   sa hauteur (32 px, 46 px en mobile). Sans effet pour les visiteurs. */
.admin-bar .entete { top: var(--wp-admin--admin-bar--height, 0px); }
.entete .enveloppe {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

/* Logo : marque en masque CSS, nom et sous-titre en blocs site-title / site-tagline */
.logo {
  display: grid;
  grid-template-columns: 50px auto;
  column-gap: 12px;
  align-items: center;
  flex-shrink: 0;
}
.logo::before {
  content: '';
  grid-row: 1 / 3;
  width: 50px; height: 64px;
  background: var(--carmin-vif);
  -webkit-mask: var(--icone-logo) center / contain no-repeat;
          mask: var(--icone-logo) center / contain no-repeat;
}
.logo-nom { align-self: end; font-size: 25px; line-height: 1.05; letter-spacing: .01em; }
.logo-sous {
  align-self: start;
  margin-top: 5px;
  font-family: var(--f-chiffre);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--blanc);
}

/* Menu : core/navigation */
.wp-block-navigation.menu { display: flex; align-items: center; font-size: 16px; line-height: 1.2; }
.wp-block-navigation.menu .wp-block-navigation__container {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.4vw, 42px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.wp-block-navigation.menu .wp-block-navigation-item { margin: 0; white-space: nowrap; transition: color .2s; }
.wp-block-navigation.menu .wp-block-navigation-item:hover,
.wp-block-navigation.menu .current-menu-item { color: var(--carmin-vif); }
.wp-block-navigation.menu .wp-block-navigation__responsive-container-open,
.wp-block-navigation.menu .wp-block-navigation__responsive-container-close { display: none; }

.entete-contact .wp-block-button__link { min-height: 56px; padding: 0 32px; font-size: 20px; }
/* « Contact » est un bouton sur bureau, un lien du menu replié en dessous de 1080 px */
@media (min-width: 1081px) { .wp-block-navigation.menu .menu-contact { display: none; } }

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

.hero {
  position: relative;
  min-height: max(100vh, 900px);
  overflow: hidden;
  isolation: isolate;
  /* halo central : un simple dégradé de fond */
  background:
    radial-gradient(ellipse 25vw 35vh at 55vw calc(20% + 35vh), rgba(96, 6, 22, .65), transparent),
    var(--noir);
}

/* Couches décoratives : pseudo-éléments de conteneurs statiques, tous
   positionnés par rapport à .hero (substitution n° 5 : aucun bloc vide). */
.hero > .enveloppe { position: static; }
.hero::before,
.hero::after,
.hero > .enveloppe::before,
.hero > .enveloppe::after,
.hero-texte::before,
.hero-colonne::before {
  content: '';
  position: absolute;
  z-index: -2;
  border-radius: 50%;
  pointer-events: none;
}
/* halos pourpres : la lumière de scène de la référence */
.hero::before {
  width: 74vw; height: 82vh;
  left: -30vw; top: 34%;
  background: radial-gradient(closest-side, rgba(150, 14, 40, 1), rgba(112, 9, 30, .85) 40%, rgba(80, 5, 20, .45) 70%, transparent);
  transform: rotate(-20deg);
  filter: blur(40px);
}
.hero::after {
  width: 48vw; height: 62vh;
  right: -15vw; top: 30%;
  background: radial-gradient(closest-side, rgba(140, 8, 34, 1), rgba(96, 4, 24, .7) 50%, transparent);
  transform: rotate(14deg);
  filter: blur(40px);
}
/* faisceaux : les plis de lumière qui montent en diagonale */
.hero > .enveloppe::before,
.hero > .enveloppe::after,
.hero-texte::before,
.hero-colonne::before {
  background: radial-gradient(closest-side, rgba(190, 22, 52, .85), transparent);
  filter: blur(20px);
}
.hero > .enveloppe::before { width: 10vw; height: 86vh; left: 8vw; top: 30%; transform: rotate(36deg); }
.hero > .enveloppe::after { width: 7vw; height: 66vh; left: 21vw; top: 46%; transform: rotate(40deg); opacity: .75; }
.hero-colonne::before { width: 8vw; height: 64vh; right: 5vw; top: 28%; transform: rotate(-32deg); }
.hero-texte::before { width: 5vw; height: 50vh; left: 1vw; top: 50%; transform: rotate(24deg); opacity: .8; }
/* poussières lumineuses */
.hero-actions::after,
.hero-colonne::after,
.hero-texte::after {
  content: '';
  position: absolute;
  z-index: 1;
  border-radius: 50%;
  background: rgba(255, 255, 255, .85);
  filter: blur(2px);
  pointer-events: none;
}
.hero-actions::after { width: 16px; height: 16px; left: 45.5%; top: 55%; filter: blur(1.5px); opacity: .9; }
.hero-colonne::after { width: 12px; height: 12px; left: 73.5%; top: 26%; opacity: .75; }
.hero-texte::after { width: 7px; height: 7px; left: 28%; top: 71%; opacity: .5; }

.hero-photo {
  position: absolute;
  z-index: -1;
  left: 17.5%;
  bottom: 0;
  width: min(1270px, 88vw);
  pointer-events: none;
  -webkit-mask-image: radial-gradient(ellipse 34% 62% at 51% 40%, #000 58%, transparent 100%);
          mask-image: radial-gradient(ellipse 34% 62% at 51% 40%, #000 58%, transparent 100%);
}
figure.hero-photo img {
  width: 100%;
  filter: hue-rotate(-21deg) saturate(.86) brightness(.72) contrast(1.28);
}

.hero .enveloppe {
  min-height: inherit;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  padding: 230px 0 150px;
}

.hero-texte { max-width: 640px; align-self: start; }
.hero-titre {
  font-size: var(--t-h1);
  line-height: 1.19;
  margin-top: 18px;
  white-space: nowrap;
}
.hero-devise {
  font-size: clamp(27px, 2.5vw, 36px);
  line-height: 1.3;
  margin-top: 14px;
  max-width: 520px;
}
.hero-intro {
  max-width: 430px;
  margin-top: 30px;
  color: var(--blanc);
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 48px;
}

/* Appel : pastille carmin et combiné en pseudo-éléments */
.appel,
.coord {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 56px;
  padding-left: 70px;
}
.appel::before,
.coord::before {
  content: '';
  position: absolute;
  left: 0; top: 50%;
  width: 56px; height: 56px;
  margin-top: -28px;
  border-radius: 50%;
  background: var(--carmin);
}
.appel::after,
.coord::after {
  content: '';
  position: absolute;
  left: 15.5px; top: 50%;
  width: 25px; height: 25px;
  margin-top: -12.5px;
  background: var(--blanc);
  -webkit-mask: var(--icone-tel) center / contain no-repeat;
          mask: var(--icone-tel) center / contain no-repeat;
}
.coord--mail::after {
  -webkit-mask-image: var(--icone-mail);
          mask-image: var(--icone-mail);
}
.appel-label { font-family: var(--f-chiffre); font-size: 15px; line-height: 1.3; }
.appel-numero { font-family: var(--f-chiffre); font-size: 22px; line-height: 1.25; }

.hero-colonne {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  width: 364px;
}

.date-phare-jour { font-family: var(--f-chiffre); font-weight: 600; font-size: 52px; line-height: 1; letter-spacing: -.01em; }
.date-phare-titre { color: var(--carmin-vif); font-size: 21px; line-height: 1.3; margin-top: 10px; }
.date-phare-lieu { font-size: 20px; line-height: 1.35; margin-top: 4px; }

figure.carte-video {
  position: relative;
  width: 100%;
  aspect-ratio: 363 / 197;
  margin-top: 30px;
  border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
  overflow: hidden;
}
figure.carte-video > a { display: block; height: 100%; }
figure.carte-video img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transition: transform .6s; }
figure.carte-video:hover img { transform: scale(1.04); }

.public {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  margin-top: 36px;
  text-align: left;
}
.public-label { font-size: 17px; line-height: 1.3; color: var(--blanc-80); }
.public-valeur { font-family: var(--f-chiffre); font-size: 22px; line-height: 1.35; white-space: nowrap; }

.avatars { display: flex; }
.avatars figure { flex-shrink: 0; }
.avatars figure + figure { margin-left: -12px; }
.avatars figure img {
  width: 46px; height: 46px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, .7);
  object-fit: cover;
}

/* ---------- La compagnie ---------- */

.compagnie {
  position: relative;
  padding: var(--section) 0 calc(var(--section) * .8);
  overflow: hidden;
  isolation: isolate;
}
.compagnie::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 60vw; height: 70%;
  right: -20vw; top: 10%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(92, 5, 20, .75), transparent);
  filter: blur(30px);
}

.compagnie-grille {
  display: grid;
  grid-template-columns: 1.08fr 1fr;
  gap: clamp(40px, 6vw, 96px);
  align-items: center;
}

.compagnie-visuel { position: relative; }
figure.compagnie-photo img {
  width: 100%;
  aspect-ratio: 5 / 4;
  object-fit: cover;
  border-radius: var(--rayon);
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 22%, #000 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 22%, #000 100%);
}
.compagnie-vignette {
  position: absolute;
  right: -40px;
  bottom: -64px;
  width: 46%;
}
figure.compagnie-vignette img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
  box-shadow: 0 30px 60px rgba(0, 0, 0, .6);
}

.compagnie-texte .texte { margin-top: 28px; max-width: 520px; }
.compagnie-texte .wp-block-buttons { margin-top: 44px; }

.verbes {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-top: clamp(110px, 11vw, 160px);
  border-top: 1px solid var(--filet);
}
.verbe { padding: 36px 32px 0 0; }
.verbe + .verbe { padding-left: 32px; border-left: 1px solid var(--filet); }
.verbe-num { font-family: var(--f-chiffre); font-weight: 600; font-size: 15px; color: var(--carmin-vif); }
.verbe-titre { font-size: clamp(28px, 2.5vw, 36px); line-height: 1.2; margin-top: 10px; }
.verbe-texte { font-size: 17px; line-height: 1.6; color: var(--blanc-60); margin-top: 12px; max-width: 260px; }

/* ---------- Bobie Mfoumou ---------- */

.choregraphe {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  min-height: 860px;
  display: flex;
  align-items: center;
}
.choregraphe-photo {
  position: absolute;
  z-index: -1;
  right: 0; top: 0;
  width: 58%;
  height: 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 40%), linear-gradient(0deg, transparent 0, #000 25%);
  -webkit-mask-composite: source-in;
          mask-image: linear-gradient(90deg, transparent 0, #000 40%), linear-gradient(0deg, transparent 0, #000 25%);
          mask-composite: intersect;
}
figure.choregraphe-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.choregraphe .enveloppe { padding: var(--section) 0; }
.choregraphe-texte { max-width: 560px; }
.choregraphe-nom { font-size: clamp(52px, 5.6vw, 80px); line-height: 1.08; margin-top: 16px; }
.choregraphe-nom + .texte { margin-top: 34px; }
.choregraphe-texte .wp-block-buttons { margin-top: 44px; }

.choregraphe-fonctions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 34px;
}
.pastille {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 20px;
  border-radius: 999px;
  border: 1px solid var(--filet-fort);
  font-size: 16px;
  line-height: 1;
}

/* ---------- Créations ---------- */

.creations { padding: var(--section) 0; position: relative; }

.entete-section {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 64px;
}
.entete-section .titre-section { max-width: 640px; }

.creations-grille {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  grid-template-rows: auto auto;
  gap: 28px;
}

.creation { position: relative; }
.creation-image {
  position: relative;
  border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
  overflow: hidden;
}
figure.creation-image > a { display: block; height: 100%; }
figure.creation-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.creation:hover figure.creation-image img { transform: scale(1.04); }

.creation--phare { grid-row: 1 / 3; }
.creation--phare .creation-image { height: 100%; min-height: 620px; }
.creation--phare .creation-image::after {
  content: '';
  position: absolute;
  inset: 40% 0 0;
  background: linear-gradient(transparent, rgba(5, 1, 2, .92));
  pointer-events: none;
}
.creation--phare .creation-legende {
  position: absolute;
  left: 40px; right: 40px; bottom: 36px;
  z-index: 1;
}
.creation--phare .creation-titre { font-size: clamp(34px, 3vw, 44px); }

.creation--petite { display: grid; grid-template-columns: 1fr; }
.creation--petite .creation-image { aspect-ratio: 16 / 9; }
.creation--petite .creation-legende { padding-top: 20px; }

.creation-meta { font-family: var(--f-chiffre); font-size: 14px; letter-spacing: .02em; color: var(--blanc-80); }
.creation-titre { font-size: var(--t-h3); line-height: 1.2; margin-top: 6px; }
.creation-texte { font-size: 17px; line-height: 1.6; color: var(--blanc-80); margin-top: 10px; max-width: 460px; }

/* ---------- Transmission ---------- */

.transmission {
  position: relative;
  padding: var(--section) 0;
  overflow: hidden;
  isolation: isolate;
}
.transmission::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 70vw; height: 80%;
  left: -30vw; top: 12%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(110, 6, 26, .8), transparent);
  filter: blur(30px);
}

.transmission-grille {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: clamp(40px, 6vw, 110px);
  align-items: center;
}

.transmission-visuel { position: relative; }
figure.transmission-photo img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--rayon);
}
.transmission-carte {
  position: absolute;
  left: 32px; right: 32px; bottom: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
  background: rgba(5, 1, 2, .72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.transmission-texte .texte { margin-top: 28px; max-width: 540px; }
.transmission-texte .wp-block-buttons { margin-top: 44px; }

.liste-ateliers { margin: 40px 0 0; border-top: 1px solid var(--filet); }
.atelier {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid var(--filet);
}
.atelier-nom { font-size: clamp(21px, 1.7vw, 25px); line-height: 1.3; }
.atelier-public { font-family: var(--f-chiffre); font-size: 14px; color: var(--blanc-60); white-space: nowrap; }

/* ---------- Agenda ---------- */

.agenda {
  position: relative;
  padding: var(--section) 0;
  overflow: hidden;
  isolation: isolate;
}
.agenda-fond {
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: .5;
  -webkit-mask-image: linear-gradient(transparent, #000 30%, #000 70%, transparent);
          mask-image: linear-gradient(transparent, #000 30%, #000 70%, transparent);
}
figure.agenda-fond img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; }

.agenda-grille {
  display: grid;
  grid-template-columns: .8fr 1.6fr;
  gap: clamp(40px, 6vw, 100px);
  align-items: start;
}
.agenda-intro .texte { margin-top: 24px; max-width: 360px; }
.agenda-intro .wp-block-buttons { margin-top: 40px; }

.dates { border-top: 1px solid var(--filet-fort); }
.date {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  align-items: center;
  gap: 32px;
  padding: 30px 0;
  border-bottom: 1px solid var(--filet-fort);
}
.date-jour { font-family: var(--f-chiffre); font-weight: 600; font-size: 48px; line-height: 1; }
.date-mois { font-family: var(--f-chiffre); font-size: 15px; line-height: 1.3; margin-top: 8px; color: var(--blanc-80); }
.date-titre { font-size: var(--t-h3); line-height: 1.25; }
.date-lieu { font-size: 17px; line-height: 1.5; color: var(--blanc-80); margin-top: 4px; }

/* ---------- Médias ---------- */

.medias { padding: var(--section) 0 calc(var(--section) * .5); }

.medias-grille {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  grid-template-rows: 280px 280px;
  gap: 24px;
}
.media {
  position: relative;
  border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
  overflow: hidden;
}
figure.media > a,
.media figure.media-image,
.media figure.media-image > a { display: block; height: 100%; }
figure.media img,
.media figure.media-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.media:hover img { transform: scale(1.04); }
.media--video { grid-row: 1 / 3; }
.media--haute { grid-row: 1 / 3; grid-column: 3; }
.media-legende {
  position: absolute;
  z-index: 2;
  left: 28px; bottom: 24px;
  font-size: 20px;
  line-height: 1.3;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .6);
  pointer-events: none;
}

/* ---------- Contact ---------- */

.appel-contact {
  position: relative;
  padding: calc(var(--section) * .9) 0 var(--section);
  overflow: hidden;
  isolation: isolate;
}
.appel-contact::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 110vw; height: 120%;
  left: -5vw; top: 20%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(120, 8, 30, .9), rgba(92, 5, 20, .45) 55%, transparent);
  filter: blur(30px);
}
.appel-contact-grille {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 60px;
  align-items: end;
}
.appel-contact-titre { font-size: clamp(40px, 4.4vw, 64px); line-height: 1.14; margin-top: 18px; }
.coordonnees { display: grid; gap: 22px; justify-items: end; text-align: right; }
.coordonnee-label { font-size: 17px; color: var(--blanc-80); }
.coordonnee-valeur { font-family: var(--f-chiffre); font-size: clamp(19px, 1.6vw, 23px); line-height: 1.35; }
.coordonnees .wp-block-buttons { margin-top: 12px; }

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

.pied { padding: 80px 0 40px; border-top: 1px solid var(--filet); }
.pied-grille {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 48px;
}
.pied-texte { font-size: 17px; line-height: 1.6; color: var(--blanc-60); margin-top: 22px; max-width: 360px; }
.pied-titre { font-size: 19px; color: var(--carmin-vif); }
.pied .pied-liens { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 8px; font-size: 17px; }
.pied-liens a { color: var(--blanc-80); transition: color .2s; }
.pied-liens a:hover { color: var(--blanc); }
.pied .pied-contact { font-family: var(--f-chiffre); font-size: 16px; }
.pied-bas {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 64px;
  padding-top: 28px;
  border-top: 1px solid var(--filet);
  font-family: var(--f-chiffre);
  font-size: 14px;
  line-height: 1.7;
  color: var(--blanc-60);
}

/* ==========================================================================
   Pages internes — mêmes jetons, mêmes dispositifs que l'accueil
   ========================================================================== */

/* ---------- En-tête de page ---------- */

.page-hero {
  position: relative;
  min-height: 720px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
}
.page-hero > .enveloppe { position: static; padding: 220px 0 110px; }
.page-hero::before,
.page-hero::after,
.page-hero > .enveloppe::before {
  content: '';
  position: absolute;
  z-index: -2;
  border-radius: 50%;
  pointer-events: none;
}
.page-hero::before {
  width: 74vw; height: 82vh;
  left: -30vw; top: 34%;
  background: radial-gradient(closest-side, rgba(150, 14, 40, 1), rgba(112, 9, 30, .85) 40%, rgba(80, 5, 20, .45) 70%, transparent);
  transform: rotate(-20deg);
  filter: blur(40px);
}
.page-hero::after,
.page-hero > .enveloppe::before {
  background: radial-gradient(closest-side, rgba(190, 22, 52, .85), transparent);
  filter: blur(20px);
}
.page-hero::after { width: 10vw; height: 86vh; left: 8vw; top: 30%; transform: rotate(36deg); }
.page-hero > .enveloppe::before { width: 5vw; height: 50vh; left: 1vw; top: 50%; transform: rotate(24deg); opacity: .8; }

.page-hero-photo {
  position: absolute;
  z-index: -1;
  right: 0; top: 0;
  width: 62%;
  height: 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 50%), linear-gradient(0deg, transparent 0, #000 32%);
  -webkit-mask-composite: source-in;
          mask-image: linear-gradient(90deg, transparent 0, #000 50%), linear-gradient(0deg, transparent 0, #000 32%);
          mask-composite: intersect;
}
figure.page-hero-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 40%;
  filter: brightness(.82) contrast(1.08);
}
figure.page-hero-photo--haut img { object-position: 50% 18%; }
.page-hero-texte { max-width: 800px; }
.page-hero-titre { font-size: var(--t-h1); line-height: 1.19; margin-top: 18px; }
.page-hero-intro { max-width: 540px; margin-top: 28px; color: var(--blanc-80); }
.page-hero .choregraphe-fonctions { margin-top: 32px; }
.page-hero--compacte { min-height: 600px; }

/* ---------- Démarche : grand texte + paragraphes ---------- */

.demarche { padding: var(--section) 0; }
.demarche-grille {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 7vw, 120px);
  align-items: start;
}
.grand-texte { font-size: clamp(30px, 3vw, 44px); line-height: 1.25; margin-top: 18px; }
.demarche-textes { padding-top: 46px; }
.demarche-textes .wp-block-buttons { margin-top: 40px; }

/* ---------- Titre de section seul ---------- */

.tete-section { max-width: 760px; margin-bottom: 64px; }
.tete-section .texte { margin-top: 24px; max-width: 580px; }

/* ---------- Trois langages ---------- */

.langages { position: relative; padding: var(--section) 0; overflow: hidden; isolation: isolate; }
.langages::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 80vw; height: 70%;
  left: 10vw; top: 30%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(92, 5, 20, .7), transparent);
  filter: blur(30px);
}
.langages-grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; align-items: start; }
.langage:nth-child(2) { margin-top: 90px; }
.langage-image {
  aspect-ratio: 4 / 5;
  border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
  overflow: hidden;
}
figure.langage-image img { width: 100%; height: 100%; object-fit: cover; }
.langage-titre { font-size: clamp(28px, 2.5vw, 36px); line-height: 1.2; margin-top: 26px; }
.langage-texte { font-size: 17px; line-height: 1.6; color: var(--blanc-80); margin-top: 10px; max-width: 360px; }

/* ---------- Bloc image + liste ---------- */

.visuel-liste { position: relative; padding: var(--section) 0; overflow: hidden; isolation: isolate; }
.visuel-liste::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 60vw; height: 80%;
  right: -22vw; top: 10%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(110, 6, 26, .75), transparent);
  filter: blur(30px);
}
.visuel-liste-grille {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: clamp(40px, 6vw, 110px);
  align-items: center;
}
figure.visuel-liste-photo img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  border-radius: var(--rayon);
  -webkit-mask-image: linear-gradient(0deg, transparent 0, #000 30%);
          mask-image: linear-gradient(0deg, transparent 0, #000 30%);
}
.visuel-liste-texte .texte { margin-top: 28px; max-width: 540px; }
.visuel-liste-texte .wp-block-buttons { margin-top: 44px; }

/* ---------- Créations : rangées alternées ---------- */

.repertoire { padding: var(--section) 0; }
.rangee {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: clamp(40px, 6vw, 100px);
  align-items: center;
}
.rangee + .rangee { margin-top: clamp(110px, 11vw, 170px); }
.rangee--inverse { grid-template-columns: 1fr 1.15fr; }
.rangee--inverse .rangee-visuel { order: 2; }
.rangee-visuel { position: relative; }
figure.rangee-image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
}
.rangee-num { font-family: var(--f-chiffre); font-weight: 600; font-size: 15px; color: var(--carmin-vif); }
.rangee-meta { color: var(--carmin); font-size: var(--t-sur); line-height: 1.3; margin-top: 14px; }
.rangee-titre { font-size: var(--t-h2); line-height: 1.15; margin-top: 12px; }
.rangee-texte .texte { margin-top: 24px; max-width: 520px; }

.fiche { margin: 34px 0 0; border-top: 1px solid var(--filet); max-width: 520px; }
.fiche-ligne {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 24px;
  padding: 14px 0;
  border-bottom: 1px solid var(--filet);
}
.fiche-cle { font-family: var(--f-chiffre); font-size: 14px; color: var(--blanc-60); white-space: nowrap; }
.fiche-valeur { font-size: 18px; line-height: 1.4; text-align: right; }

.wp-block-buttons.actions { margin-top: 40px; }

/* ---------- Encart ---------- */

.encart-section { padding: 0 0 var(--section); }
.encart {
  position: relative;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 48px;
  align-items: end;
  padding: clamp(36px, 5vw, 76px);
  border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
  overflow: hidden;
  isolation: isolate;
}
.encart::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 90%; height: 160%;
  left: -30%; top: 10%;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgba(130, 8, 32, .85), transparent);
  filter: blur(30px);
}
.encart .texte { margin-top: 24px; max-width: 560px; }
.encart .wp-block-buttons.actions { margin-top: 0; justify-content: flex-end; }

/* ---------- Formats de transmission ---------- */

.formats { padding: var(--section) 0; }
.formats-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.format {
  display: grid;
  grid-template-columns: 210px 1fr;
  gap: 30px;
  align-items: center;
  padding: 24px;
  border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
  background: rgba(255, 255, 255, .02);
}
figure.format-image img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--rayon); }
.format-public { font-family: var(--f-chiffre); font-size: 14px; color: var(--carmin-vif); }
.format-titre { font-size: var(--t-h3); line-height: 1.2; margin-top: 8px; }
.format-texte { font-size: 17px; line-height: 1.6; color: var(--blanc-80); margin-top: 10px; }

.etapes { padding: 0 0 var(--section); }
.etapes .verbes { margin-top: 0; }
.verbes--trois { grid-template-columns: repeat(3, 1fr); }

/* ---------- Onglets (agenda) : toutes les variantes sont dans la page ---------- */

.agenda-page { padding: var(--section) 0; }
.onglets { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 56px; }
.onglet {
  display: inline-flex;
  align-items: center;
  min-height: 50px;
  padding: 0 28px;
  border-radius: 999px;
  border: 1px solid var(--filet-fort);
  color: var(--blanc);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  user-select: none;
  transition: background-color .25s, border-color .25s;
}
.onglet:hover { border-color: var(--blanc); }
.onglet.est-actif { background: var(--carmin); border-color: var(--carmin); }
.panneau { display: none; }
.panneau.est-actif { display: block; }

.agenda-page .date { grid-template-columns: 170px 1fr 1fr auto; }
.date-type { font-family: var(--f-chiffre); font-size: 14px; color: var(--carmin-vif); }
.date-passee { opacity: .62; }
.pastille-terminee { color: var(--blanc-60); }

/* ---------- Médias ---------- */

.videos { padding: var(--section) 0 calc(var(--section) * .7); }
.videos-grille {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  grid-template-rows: 250px 250px;
  gap: 24px;
}
.videos-grille .media:first-child { grid-row: 1 / 3; }

.photos { padding: calc(var(--section) * .7) 0 var(--section); }
.galerie {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 230px;
  gap: 20px;
}
.galerie .media:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.galerie .media:nth-child(4) { grid-row: span 2; }
.galerie .media:nth-child(7) { grid-column: span 2; }

.ressources { padding: 0 0 var(--section); }
.ressources-grille { display: grid; grid-template-columns: .8fr 1.6fr; gap: clamp(40px, 6vw, 100px); align-items: start; }
.ressources .texte { margin-top: 24px; max-width: 380px; }
.liste-ressources { border-top: 1px solid var(--filet-fort); }
.ressource {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 0;
  border-bottom: 1px solid var(--filet-fort);
}
.ressource-nom { font-size: var(--t-h3); line-height: 1.25; }
.ressource-detail { font-family: var(--f-chiffre); font-size: 14px; color: var(--blanc-60); margin-top: 4px; }

/* ---------- Contact ---------- */

.contact { padding: var(--section) 0; position: relative; }
.contact-grille {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: clamp(40px, 7vw, 110px);
  align-items: start;
}
.coord-liste { display: grid; gap: 30px; margin-top: 44px; }
.coord { padding-left: 74px; }
.coord .appel-numero { font-size: clamp(18px, 1.5vw, 22px); word-break: break-word; }
.contact-infos .texte { margin-top: 24px; max-width: 440px; }
.contact-infos .choregraphe-fonctions { margin-top: 44px; }

/* Formulaire : Contact Form 7 dans un core/shortcode (maquette : même balisage) */
.formulaire {
  padding: clamp(28px, 3.5vw, 48px);
  border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
  background: rgba(255, 255, 255, .025);
}
.formulaire .wpcf7 form { margin: 0; }
.formulaire-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.champ { display: grid; gap: 10px; margin: 0; }
.champ--large { grid-column: 1 / -1; }
.champ label { font-size: 17px; line-height: 1.3; color: var(--blanc-80); }
.champ .wpcf7-form-control-wrap { display: block; }
.champ input, .champ select, .champ textarea {
  display: block;
  width: 100%;
  min-height: 56px;
  margin: 0;
  padding: 0 24px;
  border-radius: 999px;
  border: 1px solid var(--filet-fort);
  background: rgba(255, 255, 255, .04);
  color: var(--blanc);
  font-family: var(--f-chiffre);
  font-size: 17px;
  transition: border-color .2s;
  -webkit-appearance: none;
          appearance: none;
}
.champ select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='1.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 20px center;
  background-size: 18px;
}
.champ select option { color: #111; }
.champ textarea { min-height: 170px; padding: 18px 24px; border-radius: var(--rayon); resize: vertical; line-height: 1.6; }
.champ input:focus, .champ select:focus, .champ textarea:focus { outline: none; border-color: var(--blanc); }
.formulaire-envoi { margin-top: 30px; display: flex; align-items: center; gap: 16px; }
.formulaire .bouton-envoyer {
  display: inline-flex;
  align-items: center;
  min-height: 58px;
  padding: 0 32px;
  border: 0;
  border-radius: 999px;
  background: var(--carmin);
  color: var(--blanc);
  font-family: var(--f-titre);
  font-size: 19px;
  line-height: 1;
  cursor: pointer;
  transition: background-color .25s;
  -webkit-appearance: none;
          appearance: none;
}
.formulaire .bouton-envoyer:hover { background: var(--carmin-vif); }
.formulaire .wpcf7-spinner { margin: 0; background-color: var(--carmin-vif); }
.formulaire .wpcf7-not-valid-tip { margin-top: 8px; font-family: var(--f-chiffre); font-size: 14px; color: var(--carmin-vif); }
.formulaire .wpcf7 form .wpcf7-response-output {
  margin: 20px 0 0;
  padding: 0;
  border: 0;
  font-family: var(--f-chiffre);
  font-size: 16px;
  color: var(--blanc-80);
}
.formulaire .wpcf7 form.init .wpcf7-response-output { display: none; }
.formulaire .wpcf7 form.invalid .wpcf7-response-output,
.formulaire .wpcf7 form.unaccepted .wpcf7-response-output,
.formulaire .wpcf7 form.failed .wpcf7-response-output,
.formulaire .wpcf7 form.spam .wpcf7-response-output { color: var(--carmin-vif); }

.profils { padding: 0 0 var(--section); }
.profils-grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.profil { padding-top: 30px; border-top: 1px solid var(--filet-fort); }
.profil-titre { font-size: var(--t-h3); line-height: 1.2; }
.profil-texte { font-size: 17px; line-height: 1.6; color: var(--blanc-80); margin-top: 12px; }
.lien-carmin { margin-top: 18px; font-size: 18px; }
.lien-carmin a { display: inline-block; color: var(--carmin-vif); border-bottom: 1px solid currentColor; }

.creations--sans-haut { padding-top: 0; }
.creations-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }

/* ==========================================================================
   Adaptations
   ========================================================================== */

@media (max-width: 1240px) {
  .wp-block-navigation.menu .wp-block-navigation__container { gap: 20px; }
  .wp-block-navigation.menu { font-size: 15px; }
  .logo-sous { display: none; }
}

@media (max-width: 1080px) {
  /* Menu repliable : le burger de core/navigation, à 1080 px au lieu de 600 */
  .wp-block-navigation.menu .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: grid;
    place-items: center;
    width: 52px; height: 52px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid var(--filet-fort);
    background: none;
    color: var(--blanc);
    cursor: pointer;
  }
  .wp-block-navigation.menu .wp-block-navigation__responsive-container-open svg { width: 22px; height: 22px; fill: currentColor; }
  .wp-block-navigation.menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
  .wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open {
    display: flex;
    flex-direction: column;
    position: fixed;
    inset: 0;
    z-index: 100000;
    padding: 28px var(--gouttiere);
    overflow: auto;
    /* le CSS du bloc est imprimé après cette feuille : seul endroit où !important est justifié */
    background-color: rgba(5, 1, 2, .985) !important;
    color: var(--blanc) !important;
  }
  .wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-close {
    display: grid;
    place-items: center;
    position: absolute;
    top: 22px; right: var(--gouttiere);
    width: 52px; height: 52px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid var(--filet-fort);
    background: none;
    color: var(--blanc);
    cursor: pointer;
  }
  .wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 22px; height: 22px; fill: currentColor; }
  .wp-block-navigation.menu .is-menu-open .wp-block-navigation__container {
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;
    margin-top: 96px;
  }
  .wp-block-navigation.menu .is-menu-open .wp-block-navigation-item { font-size: 26px; }
  .entete .entete-boutons { display: none; }

  .hero .enveloppe { grid-template-columns: 1fr; gap: 64px; padding-bottom: 90px; }
  .hero-colonne { align-items: flex-start; text-align: left; }
  .hero-photo { width: 150vw; transform: translateX(-40%); opacity: .75; }

  .compagnie-grille, .transmission-grille, .agenda-grille, .appel-contact-grille { grid-template-columns: 1fr; }
  .compagnie-vignette { right: 16px; }
  .verbes { grid-template-columns: repeat(2, 1fr); }
  .verbe:nth-child(3) { padding-left: 0; border-left: 0; }
  .verbe:nth-child(n + 3) { padding-top: 40px; }

  .choregraphe-photo { width: 100%; opacity: .55; }

  .creations-grille { grid-template-columns: 1fr; }
  .creation--phare { grid-row: auto; }
  .creation--phare .creation-image { min-height: 520px; }

  .medias-grille { grid-template-columns: 1fr 1fr; grid-template-rows: 360px 240px 240px; }
  .media--video { grid-row: 1; grid-column: 1 / 3; }
  .media--haute { grid-row: auto; grid-column: auto; }

  .coordonnees { justify-items: start; text-align: left; }
  .pied-grille { grid-template-columns: 1fr 1fr; }
  .pied-grille > :first-child { grid-column: 1 / 3; }
}

@media (max-width: 640px) {
  .entete { padding-top: 22px; }
  .logo { grid-template-columns: 38px auto; }
  .logo::before { width: 38px; height: 50px; }
  .logo-nom { font-size: 21px; }

  .hero { min-height: auto; }
  .hero .enveloppe { padding: 150px 0 70px; }
  .hero-titre { white-space: normal; font-size: 44px; }
  .hero-photo { width: 190vw; left: 0; transform: translateX(-30%); bottom: auto; top: 110px; opacity: .38; }
  .hero-actions { flex-direction: column; align-items: flex-start; gap: 22px; }
  .hero-colonne { width: 100%; }
  .hero-actions::after, .hero-colonne::after, .hero-texte::after { display: none; }

  .compagnie-vignette { right: 12px; bottom: -40px; width: 55%; }
  .verbes { grid-template-columns: 1fr; }
  .verbe, .verbe + .verbe { padding: 28px 0 0; border-left: 0; }
  .verbe + .verbe { margin-top: 28px; border-top: 1px solid var(--filet); }

  .choregraphe { min-height: auto; }
  .entete-section { flex-direction: column; align-items: flex-start; margin-bottom: 44px; }
  .creation--phare .creation-image { min-height: 440px; }
  .creation--phare .creation-legende { left: 24px; right: 24px; bottom: 24px; }

  .transmission-carte { left: 14px; right: 14px; bottom: 14px; flex-direction: column; align-items: flex-start; }
  .atelier { flex-direction: column; gap: 2px; }

  .date { grid-template-columns: 1fr; gap: 10px; }
  .date .wp-block-buttons { justify-self: start; }

  .medias-grille { grid-template-columns: 1fr; grid-template-rows: 300px repeat(4, 220px); }
  .media--video { grid-column: auto; }

  .pied-grille { grid-template-columns: 1fr; }
  .pied-grille > :first-child { grid-column: auto; }
  .pied-bas { flex-direction: column; }
}

/* ---------- Pages internes : adaptations ---------- */

@media (max-width: 1080px) {
  .page-hero-photo { width: 100%; opacity: .5; }
  .demarche-grille, .visuel-liste-grille, .rangee, .rangee--inverse, .encart,
  .ressources-grille, .contact-grille { grid-template-columns: 1fr; }
  .rangee--inverse .rangee-visuel { order: 0; }
  .demarche-textes { padding-top: 0; }
  .encart .wp-block-buttons.actions { justify-content: flex-start; }
  .langages-grille { grid-template-columns: 1fr 1fr; }
  .langage:nth-child(2) { margin-top: 60px; }
  .formats-grille { grid-template-columns: 1fr; }
  .agenda-page .date { grid-template-columns: 150px 1fr auto; }
  .agenda-page .date-lieu-col { display: none; }
  .galerie { grid-template-columns: repeat(2, 1fr); }
  .galerie .media:nth-child(7) { grid-column: auto; }
  .creations-trio, .profils-grille { grid-template-columns: 1fr 1fr; }
  .verbes--trois { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .page-hero { min-height: auto; }
  .page-hero > .enveloppe { padding: 150px 0 72px; }
  .page-hero-titre { font-size: 40px; }
  .page-hero-photo { opacity: .38; }
  .langages-grille { grid-template-columns: 1fr; }
  .langage:nth-child(2) { margin-top: 0; }
  .format { grid-template-columns: 1fr; }
  figure.format-image img { aspect-ratio: 16 / 10; }
  .agenda-page .date { grid-template-columns: 1fr; }
  .videos-grille { grid-template-columns: 1fr; grid-template-rows: 280px 200px 200px; }
  .videos-grille .media:first-child { grid-row: auto; }
  .galerie { grid-template-columns: 1fr; grid-auto-rows: 240px; }
  .galerie .media:nth-child(1), .galerie .media:nth-child(4) { grid-column: auto; grid-row: auto; }
  .ressource { flex-direction: column; align-items: flex-start; }
  .formulaire-grille { grid-template-columns: 1fr; }
  .creations-trio, .profils-grille, .verbes--trois { grid-template-columns: 1fr; }
  .fiche-ligne { flex-direction: column; gap: 2px; }
  .fiche-valeur { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
