/* Source : assets/css/tokens.css */
@layer jetons, base, composants, gabarits, utilitaires;
@layer jetons {
/* FOCUS WEB 2026, source des tokens du thème.
   Valeurs héritées du prototype V3 et des arbitrages de rubrique.
   Les primitives ne sont lues que par les rôles sémantiques ci-dessous.
   docs/tokens.json est exporté depuis ce fichier, jamais édité à la main. */

:root {
  /* Primitives, valeurs exactes du thème avant migration. */
  --p-encre: #1C1A17;
  --p-encre-2: #4A453D;
  --p-papier: #F9F4E6;
  --p-papier-fonce: #F3EEE3;
  --p-papier-2: #EEE8DB;
  --p-blanc: #FFFDF9;
  --p-creme-2: #E6DFD2;
  --p-succes: #2C6664;
  --p-erreur: #A3372B;
  --p-attention: #C2843C;
  --p-montpellier-fond: #E9A48C;
  --p-montpellier-titre: #1C1A17;
  --p-montpellier-encre: #9A4F34;
  --p-design-fond: #788067;
  --p-design-titre: #F9F3AD;
  --p-design-encre: #4D5541;
  --p-evasion-fond: #6BA8A6;
  --p-evasion-titre: #F9F4E6;
  --p-evasion-encre: #2C6664;
  --p-atable-fond: #CEDFC9;
  --p-atable-titre: #4B5C44;
  --p-atable-encre: #4B5C44;
  --p-style-fond: #533E28;
  --p-style-titre: #F39769;
  --p-style-encre: #533E28;
  --p-vernissage-fond: #FCE4E3;
  --p-vernissage-titre: #3B4395;
  --p-vernissage-encre: #3B4395;
  --p-mobilites-fond: #2D304E;
  --p-mobilites-titre: #F9F2A0;
  --p-mobilites-encre: #2D304E;
  --p-resonances-fond: #CBB7D8;
  --p-resonances-titre: #1C1A17;
  --p-resonances-encre: #6F4A86;
  --p-musique-fond: #C9739C;
  --p-musique-titre: #1C1A17;
  --p-musique-encre: #7A2A5E;
  --p-e-1: 4px; --p-e-2: 8px; --p-e-3: 12px; --p-e-4: 16px;
  --p-e-5: 24px; --p-e-6: 32px; --p-e-7: 48px; --p-e-8: 64px;
  --p-e-9: 96px; --p-e-10: 128px;
  --p-rayon-droit: 0; --p-rayon-champ: 4px; --p-rayon-pilule: 999px;
  --p-ombre-couverture: 0 40px 60px -40px rgba(28, 26, 23, .55);
  --p-f-titre: "GT Super Display", Georgia, serif;
  --p-f-texte: "GT Super Text", Georgia, serif;
  --p-f-ui: "Work Sans", "Helvetica Neue", Arial, sans-serif;
  --p-t-xs: 12px; --p-t-s: 14px; --p-t-m: 16px;
  --p-t-corps-mobile: 18.5px; --p-t-corps: 20px;
  --p-t-carte: clamp(21px, 1.8vw, 26px);
  --p-t-section: clamp(28px, 2.8vw, 40px);
  --p-t-display: clamp(38px, 5.8vw, 86px);
  --p-col: 1312px; --p-col-large: 1560px; --p-lecture: 680px;
  /* Variante A : 2200 px utiles au plafond, gouttieres internes conservees. */
  --p-col-xl-fluide: calc(60vw + 448px);
  --p-col-xxl: 2328px;
  --p-col-pied-xl-min: 1440px;
  --p-marge: clamp(20px, 4.2vw, 64px);
  --p-cible: 44px;
  --p-d-1: 150ms; --p-d-2: 250ms; --p-d-3: 400ms;
  --p-d-4: 600ms; --p-d-5: 900ms;
  --p-ease: cubic-bezier(.2, .7, .2, 1);
  --p-ease-out: cubic-bezier(.23, 1, .32, 1);
  --p-ease-in-out: cubic-bezier(.77, 0, .175, 1);
  --p-ease-tiroir: cubic-bezier(.32, .72, 0, 1);

  /* Menu editorial et logo approuves le 25 octobre, sans effet sur les autres composants. */
  --menu-marge: clamp(22px, 4.5vw, 144px);
  --menu-largeur: 2600px;
  --menu-colonne-min: 210px;
  --menu-colonnes-gap: clamp(64px, 10vw, 300px);
  --menu-haut: clamp(28px, 5vh, 72px);
  --menu-principal-haut: clamp(44px, 7vh, 100px);
  --menu-secondaire-haut: clamp(48px, 8vh, 112px);
  --menu-titre: clamp(3rem, 3.3vw, 4.75rem);
  --menu-titre-mobile: 2.375rem;
  --menu-interligne: 1.1;
  --menu-interligne-mobile: 1.14;
  --menu-approche: -.023em;
  --menu-approche-mobile: -.022em;
  --menu-service: .8125rem;
  --menu-service-xxl: .875rem;
  --menu-service-approche: .045em;
  --menu-service-approche-mobile: .035em;
  --menu-fermer-mobile: .6875rem;
  --menu-fermer-approche: .1em;
  --menu-rubriques-gap: 5px;
  --menu-rubriques-gap-mobile: 3px;
  --menu-groupes-gap: 28px;
  --menu-groupes-gap-mobile: 22px;
  --menu-top-hauteur: 82px;
  --menu-top-hauteur-mobile: 67px;
  --menu-top-padding: 10px 18px;
  --menu-top-padding-mobile: 6px 14px;
  --menu-secondaire-col-gap: 18px;
  --menu-icone: 19px;
  --menu-social-gap: 10px;
  --menu-focus-ecart: 6px;
  --menu-duree: 180ms;
  --menu-duree-service: 140ms;
  --menu-courbe: cubic-bezier(0, 0, .58, 1);
  --logo-editorial-largeur: clamp(240px, 21vw, 360px);
  --logo-editorial-mobile: 190px;
  --logo-editorial-ratio: 192.96 / 15.25;

  /* --- Papier et encre ------------------------------------------------ */
  --fond: var(--papier);   /* alias historique, une seule source de papier */
  --papier: var(--p-papier);        /* papier crème (menus, panneaux) */
  --papier-fonce: var(--p-papier-fonce);  /* bandeaux, formulaires, encadrés */
  --papier-2: var(--p-papier-2);      /* hachures, vides */
  --blanc: var(--p-blanc);         /* cartes de l'administration */
  --encre: var(--p-encre);         /* texte, boutons pleins, filets forts */
  --encre-2: var(--p-encre-2);       /* texte secondaire, métadonnées */
  --ligne: color-mix(in srgb, var(--encre) 35%, transparent);
  --creme-sur-encre: var(--papier);
  --creme-2-sur-encre: var(--p-creme-2);

  /* États (formulaires, messages) */
  --succes: var(--p-succes);
  --erreur: var(--p-erreur);
  --attention: var(--p-attention);

  /* --- Rubriques : fond (aplat), titre (texte sur l'aplat), encre (texte sur papier)
     Le thème les pose sur le <body> ou le conteneur selon le slug de la catégorie principale. */
  --r-montpellier-fond: var(--p-montpellier-fond); --r-montpellier-titre: var(--p-montpellier-titre); --r-montpellier-encre: var(--p-montpellier-encre); /* D048, Kris */
  --r-design-fond: var(--p-design-fond); --r-design-titre: var(--p-design-titre); --r-design-encre: var(--p-design-encre);
  --r-evasion-fond: var(--p-evasion-fond); --r-evasion-titre: var(--p-evasion-titre); --r-evasion-encre: var(--p-evasion-encre);
  --r-atable-fond: var(--p-atable-fond); --r-atable-titre: var(--p-atable-titre); --r-atable-encre: var(--p-atable-encre);
  --r-style-fond: var(--p-style-fond); --r-style-titre: var(--p-style-titre); --r-style-encre: var(--p-style-encre);
  --r-vernissage-fond: var(--p-vernissage-fond); --r-vernissage-titre: var(--p-vernissage-titre); --r-vernissage-encre: var(--p-vernissage-encre);
  --r-mobilites-fond: var(--p-mobilites-fond); --r-mobilites-titre: var(--p-mobilites-titre); --r-mobilites-encre: var(--p-mobilites-encre);
  --r-resonances-fond: var(--p-resonances-fond); --r-resonances-titre: var(--p-resonances-titre); --r-resonances-encre: var(--p-resonances-encre); /* D048, Kris */
  --r-musique-fond: var(--p-musique-fond); --r-musique-titre: var(--p-musique-titre); --r-musique-encre: var(--p-musique-encre);

  /* --- Polices (D020, D021) : cinq fichiers WOFF2 auto-hébergés --------- */
  --f-titre: var(--p-f-titre);   /* Light 300 et Light Italic, titres de 32 px et plus */
  --f-texte: var(--p-f-texte);      /* Book 350 et Book Italic, texte, chapôs, titres de cartes */
  --f-titre-texte: var(--f-texte); /* Alias public historique. */
  --f-ui: var(--p-f-ui); /* 400, 500, 600, interface, étiquettes, questions */

  /* --- Échelle typographique (taille fluide, interligne) ---------------- */
  --t-96: var(--p-t-display);   /* titres d'ouverture ; interligne 1,02 */
  --t-64: clamp(31px, 4vw, 58px);     /* titres de section forts */
  --t-40: var(--p-t-section);   /* intertitres de section */
  --t-26: var(--p-t-carte);   /* titres de cartes (GT Super Text) ; interligne 1,18 */
  --texte: var(--p-t-corps); /* API conservée, taille du corps, pas une couleur. */
  --chapo: clamp(19px, 1.6vw, 23px);  /* chapô en italique ; interligne 1,5 */
  --question: 17px;                   /* questions d'entretien, Work Sans 500 ; 16 px sous 640 px */
  --etiquette: var(--p-t-xs);                  /* Work Sans 600, capitales, interlettrage .16em */
  --meta: var(--p-t-xs);                       /* Work Sans 400, interlettrage .04em */
  --titre-interlettrage: -.015em;

  /* --- Mise en page ---------------------------------------------------- */
  --col: var(--p-col); /* Boîte historique, marges internes comprises. */
  --marge: var(--p-marge);  /* marges latérales */
  --lecture: var(--p-lecture);                   /* colonne de texte */
  --section-y: var(--p-e-9);
  --section: var(--section-y);
  --h1-page: clamp(34px, 4vw, 58px);
  --grille-gap-y: 88px; --grille-gap-x: 56px; /* grille de cartes 3 colonnes ; 56/28 sous 1000 px ; 48 sous 640 px */
  --cible: var(--p-cible);                      /* cible tactile minimale */
  /* Points de rupture (dans les @media, pas en variables) : 1000 px (tablette), 640 px (mobile) */

  /* --- Formats d'image ------------------------------------------------- */
  --ratio-carte: 5 / 6;
  --ratio-couverture: 200 / 240;
  --ratio-double-page: 400 / 240;

  /* --- Mouvement ------------------------------------------------------- */
  --duree-courte: .3s;   /* survol, couleur, trait de lien */
  --duree-moyenne: .45s; /* menu, galerie, panneau */
  --duree-longue: .6s;   /* apparition des cartes et des photos (jusqu'à 1,1 s pour le dézoom) */
  --courbe-sortie: var(--p-ease-out);
  --courbe-douce: var(--p-ease);
  --d-1: var(--p-d-1); --d-2: var(--p-d-2); --d-3: var(--p-d-3); --d-4: var(--p-d-4); --d-5: var(--p-d-5);
  --ease: var(--p-ease);
  --ease-vt: cubic-bezier(.7, 0, .2, 1);
  --da-fast: var(--d-1); --da-link: var(--d-2); --da-enter: var(--d-3); --da-long: var(--d-4); --da-curve: var(--ease);

  /* --- Divers ---------------------------------------------------------- */
  --focus-contour: 2px solid var(--encre); /* décalé de 3 px */
  --ombre-couverture: var(--p-ombre-couverture);

  /* Rôles sémantiques, API de la bibliothèque ds-. */
  --texte-encre: var(--encre);
  --texte-2: var(--encre-2);
  --texte-doux: var(--encre-2);
  --texte-inverse: var(--papier);
  --fond-2: var(--papier-2);
  --fond-section: var(--papier);
  /* Teintes de lecture exactes de MAITRE2, distinctes des aplats de rubrique. */
  --teinte-design: #F2DAD5; --teinte-evasion: #DCE8EE;
  --teinte-atable: #F4E1CC; --teinte-vernissage: #E6DDEB;
  --teinte-mobilites: #E4E2DD; --teinte-style: #F1E4DA;
  --teinte-montpellier: color-mix(in oklab, var(--r-montpellier-fond) 14%, var(--papier));
  --teinte-resonances: color-mix(in oklab, var(--r-resonances-fond) 14%, var(--papier));
  --teinte-musique: color-mix(in oklab, var(--r-musique-fond) 14%, var(--papier));
  --teinte-magazine: var(--papier);
  --teinte-rubrique: var(--papier);
  --galerie-gap: 12px;
  --galerie-hauteur: clamp(200px, 17vw, 300px);
  --galerie-portrait: 520px;
  --mvt-teinte: 500ms;
  /* Une carte compacte retrouve sa ligne lorsque le texte est agrandi. */
  --carte-compacte-texte-min: 9em;
  --carte-compacte-photo-part: .4;
  --fond-rubrique: var(--papier);
  --encre-rubrique: var(--encre);
  --titre-rubrique: var(--encre);
  --accent-rubrique: var(--encre);
  --filet: var(--ligne);
  --filet-fort: var(--encre-2);
  --lien: var(--encre);
  --lien-survol: var(--encre-2);
  --focus: var(--encre);
  --focus-inverse: var(--papier);
  --selection-fond: var(--encre);
  --selection-texte: var(--papier);
  --espace-minime: var(--p-e-1); --espace-serre: var(--p-e-2);
  --espace-lie: var(--p-e-3); --espace-courant: var(--p-e-4);
  --espace-groupe: var(--p-e-5); --espace-bloc: var(--p-e-6);
  --espace-region: var(--p-e-7); --espace-composition: var(--p-e-8);
  --espace-section: var(--p-e-9); --espace-ouverture: var(--p-e-10);
  --rayon-droit: var(--p-rayon-droit); --rayon-champ: var(--p-rayon-champ);
  --rayon-pilule: var(--p-rayon-pilule);
  --ombre-edition: var(--ombre-couverture);
  --z-base: 0; --z-carte: 1; --z-contenu: 2; --z-sticky: 3;
  --z-fermer: 4; --z-entete: 20; --z-volet: 30; --z-modale: 40;
  --z-progression: 99998; --z-evitement: 100002;
  --t-xs: var(--etiquette); --t-s: var(--p-t-s); --t-m: var(--p-t-m);
  --t-corps-mobile: var(--p-t-corps-mobile); --t-corps: var(--texte);
  --t-carte: var(--t-26); --t-section: var(--t-40); --t-display: var(--t-96);
  --lh-titre: 1.08; --lh-carte: 1.2; --lh-ui: 1.5; --lh-texte: 1.66;
  --lh-chapo-archive: 1.45;
  --ls-titre: var(--titre-interlettrage); --ls-etiquette: .16em;
  --ls-meta: .04em; --ls-ui: .08em;
  --p-ls-action: .12em; --ls-action: var(--p-ls-action);
  --graisse-titre: 300; --graisse-texte: 350;
  --graisse-ui: 400; --graisse-action: 500; --graisse-etiquette: 600;
  --col-large: var(--p-col-large);
  --bordure-fine: 1px; --focus-epaisseur: 2px; --focus-decalage: 3px;
  --hauteur-ville-repliee: calc(var(--espace-region) + 2 * var(--bordure-fine) + var(--espace-serre));
  --ease-out: var(--courbe-sortie);
  --ease-in-out: var(--p-ease-in-out);
  --ease-tiroir: var(--p-ease-tiroir);
  --mvt-pression: 160ms; --mvt-survol: 180ms; --mvt-volet: 250ms;
  --mvt-entree: 360ms; --mvt-cascade: 50ms;
  --mvt-photo: var(--d-4); --mvt-bandeau: var(--d-4);
  --mvt-decalage: var(--espace-lie);
  --mvt-pression-echelle: .97; --mvt-photo-echelle: 1.03;
  --mvt-repos: 0ms;
  --mvt-galerie-ouverture: 200ms; --mvt-galerie-fermeture: 150ms;
  --mvt-menu-decalage: calc(var(--espace-courant) + 2 * var(--bordure-fine));
  --hauteur-barre-admin: var(--espace-bloc);
  --hauteur-barre-admin-mobile: calc(var(--espace-region) - 2 * var(--bordure-fine));
  --volet-padding-haut: calc(var(--espace-composition) + var(--espace-serre));
  --volet-padding-bas: calc(var(--espace-groupe) + var(--espace-minime));
  --volet-retrait-fermer: calc(-1 * (var(--espace-region) + var(--espace-serre)));
  --volet-fermer-padding: calc(var(--espace-courant) - 2 * var(--bordure-fine));
  --volet-texte: clamp(32px, min(7vw, 6.4svh), 92px);
  --volet-texte-mobile: clamp(32px, min(8.4vw, 5svh), 40px);
  --volet-photo-largeur: min(26vw, 320px);

  /* Rôles des composants, proportions relevées ou composition explicitement autorisée. */
  --t-extrait: var(--question);
  --mesure-titre: 24ch; --mesure-extrait: 40ch;
  --mesure-extrait-archive: 46ch;
  --mesure-chapo: 760px; --mesure-chapo-rubrique: 34em;
  --taille-point: calc(var(--espace-serre) - var(--bordure-fine));
  --hauteur-champ: calc(var(--espace-region) + var(--espace-minime));
  --hauteur-message: 180px; --lh-champ: 1.4; --ls-credits: .06em;
  --ratio-paysage: 3 / 2; --ratio-portrait: 4 / 5; --ratio-bandeau: 2 / 1;
  --t-bandeau: clamp(32px, 3vw, 56px); --t-carte-mobile: 24px;
  --hauteur-bandeau: clamp(360px, 28vw, 480px);
  --hauteur-photo-moitie: clamp(360px, 30vw, 520px);
  --hauteur-composition-moitie: clamp(360px, 30vw, 460px);
  --composition-photo-tablette: 3 / 11;
  --rail-amorce: var(--espace-bloc);
  --voile-photo: linear-gradient(90deg,
    color-mix(in srgb, var(--encre) 86%, transparent) 0%,
    color-mix(in srgb, var(--encre) 74%, transparent) 58%,
    color-mix(in srgb, var(--encre) 38%, transparent) 78%,
    color-mix(in srgb, var(--encre) 12%, transparent) 100%);
  /* Rôles de compatibilité des composants migrés, valeurs historiques exactes. */
  --p-ds-t-hero-bureau: 72px; --t-hero-bureau: var(--p-ds-t-hero-bureau);
  --p-ds-t-hero-compact: 64px; --t-hero-compact: var(--p-ds-t-hero-compact);
  --p-ds-t-hero-tablette: 52px; --t-hero-tablette: var(--p-ds-t-hero-tablette);
  --p-ds-t-hero-mobile: 40px; --t-hero-mobile: var(--p-ds-t-hero-mobile);
  --p-ds-t-hero-mobile-moyen: 34px; --t-hero-mobile-moyen: var(--p-ds-t-hero-mobile-moyen);
  --p-ds-t-hero-mobile-long: 30px; --t-hero-mobile-long: var(--p-ds-t-hero-mobile-long);
  --p-ds-t-hero-mobile-tres-long: 28px; --t-hero-mobile-tres-long: var(--p-ds-t-hero-mobile-tres-long);
  --p-ds-t-continuation: clamp(22px,1.7vw,24px); --t-continuation: var(--p-ds-t-continuation);
  --p-ds-t-rubriques-liees: clamp(24px,2.4vw,34px); --t-rubriques-liees: var(--p-ds-t-rubriques-liees);
  --p-ds-largeur-continuation: 1120px; --largeur-continuation: var(--p-ds-largeur-continuation);
  --p-ds-largeur-formulaire: 720px; --largeur-formulaire: var(--p-ds-largeur-formulaire);
  --p-ds-largeur-filtre-archive: 640px; --largeur-filtre-archive: var(--p-ds-largeur-filtre-archive);
  --p-ds-largeur-couverture-archive: 180px; --largeur-couverture-archive: var(--p-ds-largeur-couverture-archive);
  --p-ds-largeur-couverture-liee: 160px; --largeur-couverture-liee: var(--p-ds-largeur-couverture-liee);
  --p-ds-largeur-couverture-liee-mobile: 140px; --largeur-couverture-liee-mobile: var(--p-ds-largeur-couverture-liee-mobile);
  --p-ds-largeur-carte-mobile: 320px; --largeur-carte-mobile: var(--p-ds-largeur-carte-mobile);
  --p-ds-largeur-recherche-min: 220px; --largeur-recherche-min: var(--p-ds-largeur-recherche-min);
  --p-ds-largeur-porte-min: 260px; --largeur-porte-min: var(--p-ds-largeur-porte-min);
  --p-ds-largeur-rail-archive: clamp(260px,26vw,380px); --largeur-rail-archive: var(--p-ds-largeur-rail-archive);
  --p-ds-largeur-trait-archive: clamp(140px,21vw,308px); --largeur-trait-archive: var(--p-ds-largeur-trait-archive);
  --p-ds-hauteur-photo-archive-max: 880px; --hauteur-photo-archive-max: var(--p-ds-hauteur-photo-archive-max);
  --p-ds-hauteur-lecteur: min(80svh,820px); --hauteur-lecteur: var(--p-ds-hauteur-lecteur);
  --p-ds-hauteur-lecteur-mobile: min(70svh,640px); --hauteur-lecteur-mobile: var(--p-ds-hauteur-lecteur-mobile);
  --p-ds-espace-ouverture-archive: clamp(48px,7vw,120px); --espace-ouverture-archive: var(--p-ds-espace-ouverture-archive);
  --p-ds-espace-ouverture-archive-mobile: clamp(32px,7vw,56px); --espace-ouverture-archive-mobile: var(--p-ds-espace-ouverture-archive-mobile);
  --p-ds-grille-liste-gap-x: clamp(20px,2.2vw,32px); --grille-liste-gap-x: var(--p-ds-grille-liste-gap-x);
  --p-ds-grille-liste-gap-y: clamp(32px,3vw,48px); --grille-liste-gap-y: var(--p-ds-grille-liste-gap-y);
  --p-ds-ls-signature: .14em; --ls-signature: var(--p-ds-ls-signature);
  --ls-libelle-champ: var(--p-ls-action);
  --p-ds-erreur-formulaire: #8B2635; --erreur-formulaire: var(--p-ds-erreur-formulaire);
  --p-ds-fond-serie-atable: #E4ECDF; --fond-serie-atable: var(--p-ds-fond-serie-atable);
  --p-ds-fond-serie-design: #E7E8DE; --fond-serie-design: var(--p-ds-fond-serie-design);
  --p-ds-fond-serie-evasion: #DEEBEA; --fond-serie-evasion: var(--p-ds-fond-serie-evasion);
  --p-ds-fond-serie-style: #F2E5D9; --fond-serie-style: var(--p-ds-fond-serie-style);
  --p-ds-fond-serie-vernissage: #F7E5E4; --fond-serie-vernissage: var(--p-ds-fond-serie-vernissage);
  --p-ds-fond-serie-mobilites: #E3E5ED; --fond-serie-mobilites: var(--p-ds-fond-serie-mobilites);
  --opacite-desactivee: .65;
}
/* Aucun changement de grille jusqu'a 1440 px inclus, ni de voie de lecture. */
@media (width > 1440px) {
  :root {
    --col: clamp(var(--p-col), var(--p-col-xl-fluide), var(--p-col-xxl));
    --col-large: max(var(--p-col-large), calc(var(--col) - 2 * var(--marge)));
  }
}
@media (max-width: 1023px) { :root { --section-y:72px; } }
@media (max-width: 640px) { :root { --section-y:48px; } }

@media (prefers-reduced-motion: reduce) {
  :root {
    --duree-courte: 0s; --duree-moyenne: 0s; --duree-longue: 0s;
    --mvt-pression: 0ms; --mvt-survol: 0ms; --mvt-volet: 0ms;
    --mvt-entree: 0ms; --mvt-cascade: 0ms; --mvt-photo: 0ms; --mvt-bandeau: 0ms;
    --mvt-decalage: 0px; --mvt-pression-echelle: 1; --mvt-photo-echelle: 1;
  }
}

}

/* Shared reading contract, 31/10/2026. Existing values, no font substitution. */
:root{--focus-reading-measure:34em;--focus-paragraph-gap:1.2em;--focus-meta-size:12px;--focus-text-weight:350;--focus-rule:1px solid #d6d4ce;--focus-control-size:44px;--focus-grid-gap:clamp(18px,2vw,36px)}

/* Source : assets/css/base.css */
@layer jetons, base, composants, gabarits, utilitaires;
/* Attente photographique commune : aucun aplat clair sous une grande image. */
html:root .s2-paint-surface { background-color:var(--encre); background-size:cover; background-position:var(--s2-focal,50% 50%); background-repeat:no-repeat; }
html:root .s2-paint-image { background-color:transparent!important; transition:opacity .2s ease; }
@media(prefers-reduced-motion:reduce) { html:root .s2-paint-image { transition:none; } }
@layer base {
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-padding-top: 120px; }
  body { margin: 0; background: var(--fond); color: var(--encre); font-family: var(--f-texte); font-size: var(--texte); font-weight: 350; line-height: 1.66; -webkit-font-smoothing: antialiased; }
  h1, h2, h3 { font-family: var(--f-titre); font-weight: 300; line-height: 1.08; letter-spacing: var(--titre-interlettrage); text-wrap: balance; }
  h1 { font-size: var(--t-64); } h2 { font-size: var(--t-40); }
  a { color: inherit; text-underline-offset: .2em; }
  button, input { font: inherit; color: inherit; }
  button, a, input { touch-action: manipulation; }
  button { cursor: pointer; }
  img, video { max-width: 100%; height: auto; }
  iframe { max-width: 100%; }
  :focus-visible { outline: var(--focus-contour); outline-offset: 3px; }
  /* V3 ligne 19 : gouttières incluses dans les 1 312 px, pas ajoutées. */
  .cont { width: 100%; max-width: var(--col); margin-inline: auto; padding-inline: var(--marge); }
  .skip-link { position: fixed; inset: 8px auto auto 8px; z-index: 100002; padding: 12px 20px; background: var(--fond); transform: translateY(-160%); }
  .skip-link:focus { transform: none; }
  .sr, .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
  [hidden] { display: none !important; }
  .plus { display: inline-flex; align-items: center; gap: 12px; font: 600 12px var(--f-ui); text-transform: uppercase; letter-spacing: .16em; text-decoration: none; min-height: 48px; }
  .trait { width: 32px; height: 1px; background: currentColor; }
  .plus .trait { transform-origin:left; transition: transform var(--d-2) var(--ease); }
  .plus:hover .trait { transform:scaleX(1.3); }
  @media (max-width: 640px) { body { font-size: 18.5px; } html { scroll-padding-top:88px; } }
  @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
}
/* Commandes fonctionnelles : bordure contrastée et zone tactile, liens de texte exclus. */
html:root .da-search-form input { border-color:var(--encre); min-height:48px; }
html:root :is(.rub-filtres,.da-search-rubriques) > a { display:inline-flex; align-items:center; min-height:44px; }
html:root .focus-share :is(a,button) { min-width:44px; min-height:44px; }
html:root .focus-article-body [id] { scroll-margin-top:calc(var(--t1-header,104px) + 96px); }
html:root .s1-hero .s1-hero-cta:focus-visible { outline:2px solid var(--papier); outline-offset:3px; box-shadow:0 0 0 5px var(--encre); }
html:root .wpcf7 .wpcf7-acceptance label { min-height:44px; cursor:pointer; }
/* Zones utiles seulement : graphisme et dimension des caractères inchangés. */
html:root :is(.rank-math-breadcrumb,.da-breadcrumb,.fil,nav[aria-label="Fil d’Ariane"],nav[aria-label="Fil d'Ariane"]) a { position:relative; }
html:root :is(.rank-math-breadcrumb,.da-breadcrumb,.fil,nav[aria-label="Fil d’Ariane"],nav[aria-label="Fil d'Ariane"]) a::before { content:""; position:absolute; left:50%; top:50%; width:max(100%,44px); height:max(100%,44px); transform:translate(-50%,-50%); }
html:root #contenu .da-breadcrumb p { overflow:visible; }
html:root main:is(.ct,.ann) a:is([href^="mailto:"],[href^="tel:"]) { display:inline-flex; align-items:center; min-height:44px; padding-block:8px; }
html:root #contenu:is(.ct,.ann) .wpcf7 .wpcf7-list-item label { width:100%; min-height:44px; cursor:pointer; }
html:root :is(.focus-home-card-link,.focus-archive-card-link,.focus-related-card):focus-visible { outline:2px solid var(--encre); outline-offset:3px; }
/* Les zones de commande restent dans leur ligne, sans recouvrir une voisine. */
html:root .v3-pied a { min-width:44px; }
html:root #contenu:is(.ct,.ann) .wpcf7-acceptance a { display:inline-flex; align-items:center; min-height:44px; }
html:root #contenu:is(.ct,.ann) .ann-note a { display:inline-flex; align-items:center; min-height:44px; }
html:root #contenu .focus-share :is(a,button) { min-width:44px; min-height:44px; }
html:root .focus-related > p > a,
html:root .focus-article-ending > p > a { display:inline-flex; align-items:center; min-height:44px; }
html:root .focus-article-body p > a:only-child { display:inline-flex; align-items:center; min-height:44px; }

/* Source : assets/css/components/sections.css */
@layer composants {
  .r-montpellier, .r-magazine-montpellier { --r-fond: var(--r-montpellier-fond); --r-titre: var(--r-montpellier-titre); --r-encre: var(--r-montpellier-encre); }
  .r-design, .r-architecturedesign { --r-fond: var(--r-design-fond); --r-titre: var(--r-design-titre); --r-encre: var(--r-design-encre); }
  .r-evasion { --r-fond: var(--r-evasion-fond); --r-titre: var(--r-evasion-titre); --r-encre: var(--r-evasion-encre); }
  .r-atable, .r-gastronomie { --r-fond: var(--r-atable-fond); --r-titre: var(--r-atable-titre); --r-encre: var(--r-atable-encre); }
  .r-style, .r-mode { --r-fond: var(--r-style-fond); --r-titre: var(--r-style-titre); --r-encre: var(--r-style-encre); }
  .r-vernissage, .r-art { --r-fond: var(--r-vernissage-fond); --r-titre: var(--r-vernissage-titre); --r-encre: var(--r-vernissage-encre); }
  .r-mobilites, .r-auto { --r-fond: var(--r-mobilites-fond); --r-titre: var(--r-mobilites-titre); --r-encre: var(--r-mobilites-encre); }
  .r-resonances { --r-fond: var(--r-resonances-fond); --r-titre: var(--r-resonances-titre); --r-encre: var(--r-resonances-encre); }
  .r-musique { --r-fond:var(--r-musique-fond); --r-encre:var(--r-musique-encre); --r-titre:var(--r-musique-titre); }
  :is(.r-montpellier,.r-magazine-montpellier,.r-design,.r-architecturedesign,
      .r-evasion,.r-atable,.r-gastronomie,.r-style,.r-mode,.r-vernissage,.r-art,
      .r-mobilites,.r-auto,.r-resonances,.r-musique) {
    --fond-rubrique:var(--r-fond);
    --encre-rubrique:var(--r-encre);
    --titre-rubrique:var(--r-titre);
    --accent-rubrique:var(--r-encre);
    --teinte-rubrique:var(--r-teinte);
  }
  .r-design,.r-architecturedesign { --r-teinte:var(--teinte-design); --r-menu:var(--r-encre); }
  .r-evasion { --r-teinte:var(--teinte-evasion); --r-menu:var(--r-encre); }
  .r-atable,.r-gastronomie { --r-teinte:var(--teinte-atable); --r-menu:var(--r-encre); }
  .r-vernissage,.r-art { --r-teinte:var(--teinte-vernissage); --r-menu:var(--r-encre); }
  .r-mobilites,.r-auto { --r-teinte:var(--teinte-mobilites); --r-menu:var(--r-encre); }
  .r-style,.r-mode { --r-teinte:var(--teinte-style); --r-menu:var(--r-encre); }
  .r-montpellier,.r-magazine-montpellier { --r-teinte:var(--teinte-montpellier); --r-menu:var(--r-encre); }
  .r-resonances { --r-teinte:var(--teinte-resonances); --r-menu:var(--r-encre); }
  .r-musique { --r-teinte:var(--teinte-musique); --r-menu:var(--r-encre); }
}
html:is(.native-rubrique,.native-article) { --page-teinte:var(--r-teinte,var(--papier)); }
html.native-rubrique .focus-category .rub-ouv { --c2-opening-surface:transparent; }
html:root .focus-home .v3-defile { --d-lavis:var(--r-teinte,var(--papier)); --d-encre:var(--r-encre,var(--encre)); background:transparent; }
html:root body { transition:background-color var(--mvt-teinte) var(--ease-in-out); }
@media(prefers-reduced-motion:reduce) { html:root body { transition:none; } }

/* Source : assets/css/components/common-guide.css */
/* Briques communes du guide V3.12, sans créer une page ou une URL. */
@layer composants {
  .titre { margin: 0; font-family: var(--f-titre); font-weight: 300; letter-spacing: -.015em; line-height: 1.08; }
  .t-96 { font-size: var(--t-96); line-height: 1.02; }
  .t-64 { font-size: var(--t-64); } .t-40 { font-size: var(--t-40); }
  .t-26 { font: 350 var(--t-26)/1.18 var(--f-titre-texte); letter-spacing: -.01em; }
  .angle { font-family: inherit; font-style: italic; }
  .etiq { display: inline-flex; align-items: center; gap: 8px; font: 600 12px var(--f-ui); letter-spacing: .16em; text-transform: uppercase; color: var(--r-encre,var(--encre)); }
  .etiq::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--r-fond,var(--encre)); box-shadow: inset 0 0 0 1px rgba(28,26,23,.2); }
  .meta { font-family: var(--f-ui); font-size: 12px; letter-spacing: .04em; color: var(--encre-2); }
  .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; min-width:44px; padding: 12px 24px; border: 1px solid var(--encre); border-radius:999px; background: transparent; color: var(--encre); font: 600 12px/1.5 var(--f-ui); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition:transform var(--d-2) var(--ease); }
  .btn:hover, .btn-plein { background: var(--encre); color: var(--fond); }
  .btn-clair { border-color: var(--papier); background:var(--papier); color:var(--encre); }
  .btn-clair:hover { background: var(--fond); color: var(--encre); }
  .msg { padding: 18px 20px; border-left: 3px solid var(--encre); background: var(--papier-fonce); }
  .msg .t { margin: 0 0 4px; font: 600 13px var(--f-ui); }
  .msg p { margin: 0; font-size: 16px; line-height: 1.5; }
  .msg a { text-decoration: underline; }
  .msg-ok { border-left-color: var(--succes); } .msg-err-bloc { border-left-color: var(--erreur); } .msg-info { border-left-color: var(--encre-2); }
  .msg-err { margin: 2px 0 0; font: 400 12px/1.45 var(--f-ui); color: var(--erreur); }
  .msg-err::before { content: '! '; font-weight: 700; }
  .vide-bloc { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 32px; border: 1px dashed rgba(28,26,23,.35); }
  .vide-bloc .t { margin: 0; font: 350 26px/1.15 var(--f-titre-texte); }
  .vide-bloc p { margin: 0; font-size: 16px; line-height: 1.55; color: var(--encre-2); }
  .vide-bloc.sombre { background: var(--encre); border-color: var(--encre); color: var(--fond); }
  .vide-bloc.sombre p { color: var(--creme-2-sur-encre); } .vide-bloc.sombre .t { color: var(--fond); }
}

/* Source : assets/css/components/header.css */
/* Prototype V3 : lignes 50-59, 155-161, 231-239, 427-437. */
@layer composants {
  .v3-tete { position: sticky; top: 0; z-index: 20; background: var(--fond); }
  .v3-tete .cont, .v3o-tete .cont { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 104px; }
  .v3-gauche { display: flex; align-items: center; }
  .v3-burger, .v3o-fermer { justify-self: start; display: inline-flex; align-items: center; gap: 14px; min-height: 48px; padding: 0; border: 0; background: none; color: var(--encre); font: 600 12px var(--f-ui); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; }
  .v3-tete .v3-burger { min-width: var(--cible); }
  .v3-tete .v3-burger > svg { width: calc(var(--espace-bloc) + var(--espace-minime)); height: var(--espace-groupe); }
  .v3-logo { display: flex; align-items: center; gap: 12px; flex-shrink: 0; min-height: 44px; text-decoration: none; }
  .v3-logo img { display: block; height: auto; }
  .v3-logo .emb { width: 54px; } .v3-logo .mot { width: 150px; }
  .v3-droite { justify-self: end; display: flex; align-items: center; gap: 22px; }
  .v3-droite a { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0; font: 600 12px var(--f-ui); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; }
  .v3-droite .search-link { min-width: 44px; justify-content: center; }
  .v3-tete .filet { position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--encre); }
  .v3-reseaux { display: flex; align-items: center; gap: 2px; }
  .v3-reseaux a { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; color: var(--encre); opacity: .72; transition: opacity .3s ease, background-color .3s ease; }
  .v3-reseaux a:hover, .v3-reseaux a:focus-visible { opacity: 1; background: rgba(28,26,23,.06); }
  .v3-reseaux svg { width: 20px; height: 20px; }
  .v3-reseaux-tete { margin-left: 22px; padding-left: 14px; border-left: 1px solid var(--ligne); }
  .v3-reseaux-tete a { width: 36px; height: 36px; }
  .v3-reseaux-tete svg { width: 18px; height: 18px; }
  .v3-tete .v3-droite .v3-reseaux-tete { margin-left: 0; }
  .v3-tete .v3-droite .v3-reseaux-tete a { justify-content: center; }
  .v3o-reseaux { justify-content: center; margin-top: 8px; }
  .reading-progress { display: block; position: absolute; bottom: -1px; left: 0; width: 100%; height: 2px; background: var(--r-fond, var(--encre)); transform: scaleX(0); transform-origin: left; }
  @media (any-pointer: coarse) { .v3-reseaux a { width: 44px; height: 44px; } }
  @media (max-width: 1000px) { .v3-reseaux-tete { display: none; } }
  @media (min-width: 1001px) and (max-width: 1200px) {
    .v3-tete .v3-droite { gap: var(--espace-lie); }
    .v3-tete .v3-droite .v3-reseaux-tete { padding-left: var(--espace-serre); }
  }
  @media (max-width: 640px) {
    .v3-tete .cont, .v3o-tete .cont { min-height: 72px; }
    .v3-logo { gap: 8px; } .v3-logo .emb { width: 36px; } .v3-logo .mot { width: 96px; }
    .v3-burger .txt, .v3-droite .magazine-link { display: none !important; }
    .v3-burger { min-width: 44px; } .v3-droite { gap: 6px; }
  }
}
/* Commandes rapprochees des bords, logo toujours au centre de la grille. */
html:root .v3-tete > .cont {
  max-width: none;
  padding-inline: clamp(calc(var(--espace-courant) + var(--espace-minime)), 2vw, var(--espace-bloc));
}
/* Filet noir demandé par Kris ; les styles globaux WP ne le diluent pas. */
.v3-tete .filet { border-top: 1px solid var(--encre); }
/* Le bandeau conserve sa géométrie : aucune animation de largeur ou hauteur. */
html:root .v3-reseaux a { min-width:44px; min-height:44px; }
html:root:is([data-s1-hero-visible],[data-t1-visible]) .v3-tete { isolation:isolate; background:transparent; color:var(--papier); }
html:root:is([data-s1-hero-visible],[data-t1-visible]) .v3-tete::before {
 content:""; position:absolute; z-index:-1; inset:0 0 auto; height:calc(100% + 220px); pointer-events:none;
 background:linear-gradient(to bottom,rgba(28,26,23,.66) 0%,rgba(28,26,23,.66) 24%,rgba(28,26,23,.62) 36%,rgba(28,26,23,.53) 48%,rgba(28,26,23,.4) 60%,rgba(28,26,23,.24) 72%,rgba(28,26,23,.1) 84%,rgba(28,26,23,.03) 92%,rgba(28,26,23,0) 100%);
}
html:root:is([data-s1-hero-visible],[data-t1-visible]) .v3-tete .filet { display:none; }
html:root:is([data-s1-hero-visible],[data-t1-visible]) .v3-tete :is(a,button) { color:var(--papier); opacity:1; }
html:root:is([data-s1-hero-visible],[data-t1-visible]) .v3-tete :focus-visible { outline:2px solid var(--papier); outline-offset:3px; box-shadow:0 0 0 5px var(--encre); }

/* Marque retenue : deux SVG originaux superposes, aucune modification du footer. */
html:root .v3-tete .focus-brand {
  display: grid; grid-template-areas: "marque"; align-items: center;
  width: var(--logo-editorial-largeur); max-width: 100%; gap: 0;
}
html:root .v3-tete .focus-brand img {
  grid-area: marque; display: block; width: 100%; height: auto;
  aspect-ratio: var(--logo-editorial-ratio); object-fit: contain; filter: none;
}
html:root .v3-tete .focus-brand__light { visibility: hidden; }
html:root:is([data-s1-hero-visible],[data-t1-visible]) .v3-tete .focus-brand img { filter: none; }
html:root:is([data-s1-hero-visible],[data-t1-visible]) .v3-tete .focus-brand__dark { visibility: hidden; }
html:root:is([data-s1-hero-visible],[data-t1-visible]) .v3-tete .focus-brand__light { visibility: visible; }
@media (max-width: 700px) {
  html:root .v3-tete .focus-brand { width: var(--logo-editorial-mobile); }
}

/* Source : assets/css/components/nav.css */
@layer composants {
  html.menu-open { overflow: hidden; }
  .v3o { position: fixed; inset: 0; margin: 0; padding: 0; border: 0; width: 100%; max-width: none; height: 100dvh; max-height: none; overflow-y: auto; background: var(--fond); color: var(--encre); }
  .v3o[open] { display: flex; flex-direction: column; animation: v3o-in .45s cubic-bezier(.23,1,.32,1); }
  .v3o:not([open]) { display: none; }
  .v3o::backdrop { background: var(--fond); }
  .v3o-fermer { display: inline-flex; align-items: center; justify-self: start; padding: 0; border: 0; background: transparent; }
  .menu-search { display: flex; justify-self: end; align-items: center; justify-content: center; width: 44px; height: 44px; }
  .v3o-corps { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 64px; padding-block: 40px 56px; }
  .v3o-rubs { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 120px; }
  .v3o-rubs a, .v3o-rubs > li > span { display: flex; align-items: center; gap: 18px; min-height: 76px; font: 300 clamp(34px, 4vw, 56px)/1 var(--f-titre); text-decoration: none; }
  .v3o-rubs a::before, .v3o-rubs > li > span::before { content: ''; width: 10px; height: 10px; flex: none; border-radius: 50%; background: var(--r-fond, var(--papier-2)); box-shadow: inset 0 0 0 1px rgba(28,26,23,.2); transition: transform .4s cubic-bezier(.23,1,.32,1); }
  .v3o-rubs a:hover { font-style: italic; }
  .v3o-rubs a:hover::before { transform: scale(1.8); }
  .v3o-rubs li { animation: v3o-li .7s cubic-bezier(.23,1,.32,1) both; }
  .v3o-rubs li:nth-child(1) { animation-delay: .05s; } .v3o-rubs li:nth-child(2) { animation-delay: .1s; }
  .v3o-rubs li:nth-child(3) { animation-delay: .15s; } .v3o-rubs li:nth-child(4) { animation-delay: .2s; }
  .v3o-rubs li:nth-child(5) { animation-delay: .25s; } .v3o-rubs li:nth-child(6) { animation-delay: .3s; }
  .v3o-rubs li:nth-child(7) { animation-delay: .35s; } .v3o-rubs li:nth-child(8) { animation-delay: .4s; }
  @keyframes v3o-in { from { opacity: 0; } to { opacity: 1; } }
  @keyframes v3o-li { from { opacity: 0; translate: 0 24px; } to { opacity: 1; translate: 0 0; } }
  .v3o-bas { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 36px; }
  .v3o-bas a { display: inline-flex; align-items: center; min-height: 44px; font: 600 12px var(--f-ui); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; }
  .v3o-bas a:hover { text-decoration: underline; text-underline-offset: 5px; }
  .v3o-corps > .v3-reseaux { justify-content: center; }
  @media (max-width: 640px) {
    .v3o-fermer .txt { display: none; } .v3o-fermer { width: 44px; }
    .v3o-rubs { grid-template-columns: 1fr; gap: 0; margin: 0; padding-inline: 28px; }
    .v3o-rubs a, .v3o-rubs > li > span { min-height: 60px; font-size: 34px; }
    .v3o-corps { justify-content: flex-start; gap: 40px; }
    .v3o-bas { align-items: flex-start; flex-direction: column; padding-inline: 28px; gap: 0; }
  }
}

/* Source : assets/css/components/footer.css */
/* Une dernière page de magazine : signature ample, sommaire, puis informations.
   Périmètre strictement limité au footer. Contenus et liens inchangés. */
html:root .v3-pied {
  width: 100%;
  background: transparent;
  color: var(--encre);
  border-block-start: var(--bordure-fine) solid var(--encre);
  padding-block: var(--espace-composition) calc(var(--espace-bloc) + var(--focus-consent-clearance, 0px));
}

/* La gouttière reste celle de Focus ; la colonne maximale ne bride plus le pied. */
html:root .v3-pied > .cont {
  width: 100%;
  max-width: none;
  padding-inline: var(--marge);
}
html:root .v3-pied .grille {
  display: grid;
  grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr));
  gap: var(--espace-region);
}
html:root .v3-pied .grille > * { min-inline-size: 0; }

/* Le logo fourni reste une image, sans déformation ni nouveau dessin. */
html:root .v3-pied .marque {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  align-items: end;
  gap: var(--espace-groupe) var(--espace-region);
  padding-block-end: var(--espace-region);
  border-block-end: var(--bordure-fine) solid var(--ligne);
}
html:root .v3-pied .marque .v3-logo {
  grid-row: 1 / span 2;
  width: 75%;
  max-inline-size: calc(var(--lecture) * 2 / 3);
  min-inline-size: 0;
  align-self: center;
  gap: var(--espace-courant);
}
html:root .v3-pied .marque .emb { width: 20%; height: auto; }
html:root .v3-pied .marque .mot {
  width: calc(80% - var(--espace-courant));
  height: auto;
}
html:root .v3-pied .marque p {
  margin: 0;
  max-inline-size: var(--mesure-chapo-rubrique);
  font: var(--graisse-texte) var(--chapo)/var(--lh-chapo-archive) var(--f-texte);
  color: var(--encre);
}
html:root .v3-pied .marque .v3-reseaux {
  grid-column: 2;
  margin: 0;
  gap: var(--espace-serre);
}
html:root .v3-pied .v3-reseaux a {
  width: var(--cible);
  height: var(--cible);
  color: var(--encre);
  opacity: 1;
  border: var(--bordure-fine) solid var(--ligne);
  border-radius: var(--rayon-pilule);
  transition: background-color var(--mvt-survol) var(--ease-out);
}

html:root .v3-pied h2 {
  margin: 0 0 var(--espace-courant);
  font: var(--graisse-etiquette) var(--t-xs)/var(--lh-ui) var(--f-ui);
  letter-spacing: var(--ls-etiquette);
  text-transform: uppercase;
  color: var(--encre-2);
}
html:root .v3-pied ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
html:root .v3-pied li { min-inline-size: 0; }
html:root .v3-pied li a,
html:root .v3-pied li > span,
html:root .v3-pied .bas a {
  display: inline-flex;
  align-items: center;
  min-height: var(--cible);
  max-inline-size: 100%;
  padding-block: var(--espace-serre);
  font: var(--graisse-ui) var(--t-m)/var(--lh-ui) var(--f-ui);
  color: var(--encre);
  text-decoration: none;
  overflow-wrap: break-word;
}

/* Un sommaire typographique, ponctué des couleurs de rubrique déjà présentes. */
html:root .v3-pied .footer-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--espace-groupe);
}
/* Rubriques, Le magazine et Focus partagent la même échelle et les mêmes filets. */
html:root .v3-pied .grille > nav > ul > li {
  border-block-end: var(--bordure-fine) solid var(--ligne);
}
html:root .v3-pied .grille > nav a {
  display: flex;
  gap: var(--espace-lie);
  padding-block: var(--espace-serre);
  font: var(--graisse-titre) var(--t-carte)/var(--lh-carte) var(--f-titre);
  letter-spacing: var(--ls-titre);
}
html:root .v3-pied .footer-sections a::before {
  content: "";
  flex: 0 0 var(--espace-serre);
  width: var(--espace-serre);
  height: var(--espace-serre);
  background: var(--r-fond, var(--encre));
  border: var(--bordure-fine) solid var(--encre-2);
  border-radius: var(--rayon-pilule);
}

html:root .v3-pied .bas {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--espace-courant) var(--espace-groupe);
  margin-block-start: var(--espace-composition);
  padding-block-start: var(--espace-courant);
  border-block-start: var(--bordure-fine) solid var(--ligne);
  font: var(--graisse-ui) calc(var(--t-s) - 2pt)/var(--lh-ui) var(--f-ui);
  text-transform: uppercase;
  color: var(--encre-2);
}
html:root .v3-pied .bas nav,
html:root .v3-pied .bas ul {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--espace-serre) var(--espace-groupe);
}
html:root .v3-pied .bas nav {
  margin-inline-start: auto;
  max-inline-size: 100%;
  scroll-margin-bottom: calc(var(--espace-courant) + var(--focus-consent-clearance, 0px));
}
html:root .v3-pied .bas a { font-size: calc(var(--t-s) - 2pt); }
html:root .v3-pied :is(a, button):focus-visible {
  outline: var(--focus-epaisseur) solid var(--encre);
  outline-offset: var(--focus-decalage);
}

@media (hover: hover) and (pointer: fine) {
  html:root .v3-pied .v3-reseaux a:hover { background-color: var(--papier-2); }
}
@media (max-width: 1000px) {
  html:root .v3-pied .grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html:root .v3-pied .grille > nav:first-of-type { grid-column: 1 / -1; }
  html:root .v3-pied .marque { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  html:root .v3-pied { padding-block-start: var(--espace-region); }
  html:root .v3-pied .grille { gap: var(--espace-bloc) var(--espace-groupe); }
  html:root .v3-pied .marque {
    grid-template-columns: minmax(0, 1fr);
    padding-block-end: var(--espace-bloc);
  }
  html:root .v3-pied .marque .v3-logo { grid-row: auto; }
  html:root .v3-pied .marque .v3-reseaux { grid-column: 1; }
  html:root .v3-pied .footer-sections { column-gap: var(--espace-courant); }
  html:root .v3-pied .grille > nav a { font-size: var(--t-corps-mobile); }
  html:root .v3-pied .bas { margin-block-start: var(--espace-region); }
  html:root .v3-pied .bas nav { margin-inline-start: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html:root .v3-pied .v3-reseaux a { transition: none; }
}

/* Consolidation Z2 : reflux sans annuler la composition et le logo du staging. */
@media (max-width:640px) {
 html:root body.home .v3-pied :is(.marque p,nav) { min-inline-size:0; overflow-wrap:anywhere; }
 html:root body.home .v3-pied .marque p { max-inline-size:min(100%,var(--mesure-chapo-rubrique)); }
 html:root body.home .v3-pied nav { max-inline-size:100%; }
 html:root body.home .v3-pied .grille > nav a { min-inline-size:0; overflow-wrap:anywhere; }
}
/* Garder le plafond graphique actuel, borner au parent et permettre le reflux. */
html:root body.home .v3-pied .marque .v3-logo { max-inline-size:min(100%,calc(var(--lecture) * 2 / 3)); flex-wrap:wrap; }

/* Source : assets/css/components/newsletter.css */
/* Prototype V3.6 lignes 440-449, 471-472 et V3.9 lignes 638-640. */
@layer composants {
  .v3-lettre-bande { margin-top: 140px; background: var(--papier-fonce); }
  .v3-lettre-bande .cont { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 56px; align-items: end; padding-top: 72px; padding-bottom: 72px; }
  .v3-lettre-bande .txt { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
  .v3-lettre-bande p { margin: 0; font-size: 17px; line-height: 1.5; color: var(--encre-2); }
  .lettre-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
  .v3-lettre { display: flex; align-items: center; gap: 16px; border-bottom: 1px solid var(--encre); }
  .v3-lettre input { flex: 1; min-width: 0; width: 100%; min-height: 56px; padding: 0; border: 0; border-radius: 0; background: transparent; font: 350 19px var(--f-texte); color: var(--encre); }
  .v3-lettre input::placeholder { color: #6E675C; opacity: 1; }
  .v3-lettre input:focus { outline: none; }
  .v3-lettre:focus-within { border-bottom-width: 2px; }
  .v3-lettre button { flex: none; background: none; border: 0; padding: 0; color: var(--encre); }
  .v3-lettre [disabled] { opacity: 1; cursor: not-allowed; }
  .v3-lettre-bande .lettre-rgpd { font: 400 12px/1.5 var(--f-ui); color: var(--encre-2); }
  .v3-lettre-bande .lettre-rgpd a { color: var(--encre); text-decoration: underline; text-underline-offset: 3px; }
  @media (max-width: 640px) {
    .v3-lettre-bande { margin-top: 96px; }
    .v3-lettre-bande .cont { grid-template-columns: minmax(0,1fr); gap: 24px; padding-top: 56px; padding-bottom: 56px; }
  }
}
.v3-lettre-bande .titre { margin: 0; font: 300 var(--t-40)/1.08 var(--f-titre); letter-spacing: -.015em; }
@media (max-width: 1142px) { .v3-lettre-bande .titre { font-family: var(--f-titre-texte); font-weight: 350; } }

/* Source : assets/css/components/consent.css */
/* V3.12, .ck et .ck-panneau, adaptés aux parts publiques du Shadow DOM.
   Aucune action, catégorie, valeur de consentement ou visibilité forcée. */
#wpconsent-container { font-family: var(--f-texte); }
#wpconsent-container::part(wpconsent-banner) {
  box-sizing: border-box; display: grid; grid-template-columns: minmax(0,1fr);
  left: 24px; right: auto; top: auto; bottom: 24px;
  width: min(460px,calc(100vw - 48px)); min-width: 0; max-width: calc(100vw - 48px);
  max-height: calc(100dvh - 48px); overflow: auto; gap: 18px;
  padding: 26px 26px 20px; border: 1px solid var(--encre); border-radius: 0;
  background: var(--fond); color: var(--encre);
  box-shadow: 0 30px 60px -30px rgba(28,26,23,.45);
}
#wpconsent-container::part(wpconsent-banner-body) {
  box-sizing: border-box; grid-column: 1 / -1; width: 100%; min-width: 0; max-width: 100%;
  max-height: none; padding: 0; margin: 0; overflow: visible; overflow-wrap: anywhere;
  text-align: left; font: 350 16px/1.55 var(--f-texte); color: var(--encre-2);
}
#wpconsent-container::part(wpconsent-banner-footer) {
  box-sizing: border-box; grid-column: 1 / -1; display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; min-width: 0; width: 100%; max-width: 100%;
}
#wpconsent-container::part(wpconsent-button-accept),
#wpconsent-container::part(wpconsent-button-cancel),
#wpconsent-container::part(wpconsent-button-preferences),
#wpconsent-container::part(wpconsent-preferences-accept-button),
#wpconsent-container::part(wpconsent-preferences-cancel-button),
#wpconsent-container::part(wpconsent-preferences-save-button) {
  box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; height: auto; min-height: 46px;
  padding: 8px; border: 1px solid var(--encre); border-radius: 999px;
  background: var(--fond); color: var(--encre); font: 600 12px/1.5 var(--f-ui);
  letter-spacing: .1em; text-transform: uppercase; white-space: normal; overflow-wrap: anywhere;
}
/* Lien public officiellement géré par WPConsent, toujours présent dans le pied. */
html:has(.v3-pied .wpconsent-open-preferences) #wpconsent-container::part(wpconsent-settings-button) { display:none!important; }
#wpconsent-container::part(wpconsent-button-cancel) { order: 0; }
#wpconsent-container::part(wpconsent-button-preferences) { order: 1; }
#wpconsent-container::part(wpconsent-button-accept) { order: 2; }
#wpconsent-container::part(wpconsent-preferences-modal) { background: rgba(28,26,23,.45); }
#wpconsent-container::part(wpconsent-preferences-content) {
  box-sizing: border-box; width: min(620px,calc(100vw - 32px)); min-width: 0; max-width: calc(100vw - 32px);
  padding: 26px 26px 20px; background: var(--fond); color: var(--encre);
  border: 1px solid var(--encre); border-radius: 0; box-shadow: 0 30px 60px -30px rgba(28,26,23,.45);
}
#wpconsent-container::part(wpconsent-preferences-header) { padding: 0 0 10px; border: 0; }
#wpconsent-container::part(wpconsent-preferences-title) { margin: 0; color: var(--encre); font: 350 26px/1.15 var(--f-titre-texte); }
#wpconsent-container::part(wpconsent-preferences-description),
#wpconsent-container::part(wpconsent-accordion-content) { color: var(--encre-2); font: 350 15px/1.5 var(--f-texte); }
#wpconsent-container::part(wpconsent-accordion-item) { border-color: var(--ligne); border-radius: 0; }
#wpconsent-container::part(wpconsent-accordion-header) { padding: 16px 0; }
#wpconsent-container::part(wpconsent-accordion-toggle) { color: var(--encre); font: 600 13px/1.5 var(--f-ui); min-height: 44px; }
#wpconsent-container::part(wpconsent-preferences-buttons) { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
#wpconsent-container::part(wpconsent-preferences-buttons-left) { display: contents; }
#wpconsent-container::part(wpconsent-preferences-close) { color: var(--encre); min-width: 44px; min-height: 44px; }
#wpconsent-container::part(wpconsent-button-accept):focus-visible,
#wpconsent-container::part(wpconsent-button-cancel):focus-visible,
#wpconsent-container::part(wpconsent-button-preferences):focus-visible,
#wpconsent-container::part(wpconsent-preferences-accept-button):focus-visible,
#wpconsent-container::part(wpconsent-preferences-cancel-button):focus-visible,
#wpconsent-container::part(wpconsent-preferences-save-button):focus-visible,
#wpconsent-container::part(wpconsent-preferences-close):focus-visible,
#wpconsent-container::part(wpconsent-accordion-toggle):focus-visible { outline: 2px solid var(--encre); outline-offset: 3px; }
@media (max-width: 640px) {
  #wpconsent-container::part(wpconsent-banner) { left: 0; right: 0; bottom: 0; width: 100%; max-width: 100%; padding: 22px 20px 18px; border-width: 1px 0 0; }
  #wpconsent-container::part(wpconsent-banner-footer),
  #wpconsent-container::part(wpconsent-preferences-buttons) { grid-template-columns: minmax(0,1fr); }
  #wpconsent-container::part(wpconsent-preferences-modal) { align-items: flex-end; }
  #wpconsent-container::part(wpconsent-preferences-content) { width: 100%; max-width: 100%; max-height: 92dvh; padding: 22px 20px 18px; overflow-y: auto; }
}

/* Source : assets/css/components/interface-fixes-5d.css */
/* 5D : barre WordPress, uniquement pour les visiteurs connectés. */
body.admin-bar .v3-tete { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .v3-tete { top: 46px; }
}

/* Sans couche pour que les métadonnées ne reprennent pas une couleur héritée.
   Jeton existant : contraste 9,11:1 sur --fond, sans changer les rubriques. */
#contenu.focus-single .v3-ouv :is(.credits, .art-meta),
#contenu.focus-single .v3-ouv :is(.credits, .art-meta) :is(span, strong, time, a),
#contenu :is(.cnvs-meta-author, .cnvs-meta-date, .pk-meta-author, .pk-meta-date),
#contenu :is(.cnvs-meta-author, .cnvs-meta-date, .pk-meta-author, .pk-meta-date) :is(span, strong, time, a) {
  --cnvs-post-meta-color: var(--encre-2);
  --pk-post-meta-color: var(--encre-2);
  color: var(--encre-2);
}

/* Source : assets/css/templates/content.css */
@layer gabarits {
  .focus-content { width: min(var(--lecture), calc(100% - 2 * var(--marge))); margin: 64px auto var(--section); overflow-wrap: break-word; }
  .focus-content > article > h1 { margin-block: 0 48px; }
  .focus-content p { line-height: 1.66; }
  .focus-content pre { overflow: auto; }
  .focus-content figure { margin-inline: 0; }
  .focus-content .alignwide { max-width: var(--col); }
}

/* Source : assets/css/templates/article.css */
@layer gabarits {
  .focus-single { overflow-wrap: anywhere; }
  .focus-single .v3-ouv { text-align: center; padding: 72px 0 56px; }
  .focus-single .v3-ouv .cont { max-width: 1240px; display: flex; flex-direction: column; align-items: center; gap: 22px; }
  .focus-single .v3-ouv h1 { margin: 0; font-size: var(--t-96); line-height: 1.02; }
  .focus-single .chapo { font: italic var(--chapo)/1.5 var(--f-texte); color: var(--encre-2); max-width: 760px; }
  .focus-single .chapo p { margin: 0; }
  .focus-single .credits, .focus-single .art-meta { display: flex; justify-content: center; flex-wrap: wrap; gap: 22px; font: var(--meta)/1.5 var(--f-ui); color: var(--encre-2); }
  .focus-single .rank-math-breadcrumb { font: var(--meta)/1.6 var(--f-ui); }
  .focus-single .rank-math-breadcrumb p { margin: 0; }
  .focus-label { font: 600 var(--etiquette)/1.5 var(--f-ui); letter-spacing: .16em; text-transform: uppercase; margin: 0; }
  .focus-rubric { color: var(--r-encre, var(--encre)); }
  .focus-kick { display: block; height: 46px; background: currentColor; mask: no-repeat center / contain; -webkit-mask: no-repeat center / contain; }
  .focus-kick.k-design { aspect-ratio: 157 / 96; mask-image: url("../../images/masque-k-design.png"); -webkit-mask-image: url("../../images/masque-k-design.png"); }
  .focus-kick.k-evasion { aspect-ratio: 322 / 203; mask-image: url("../../images/masque-k-evasion.png"); -webkit-mask-image: url("../../images/masque-k-evasion.png"); }
  .focus-kick.k-montpellier { aspect-ratio: 808.69 / 259.27; mask-image: url("../../images/masque-k-montpellier.png"); -webkit-mask-image: url("../../images/masque-k-montpellier.png"); }
  .focus-kick.k-resonances { aspect-ratio: 790.9 / 300.45; mask-image: url("../../images/masque-k-resonances.png"); -webkit-mask-image: url("../../images/masque-k-resonances.png"); }
  .focus-kick.k-atable { aspect-ratio: 176 / 117; mask-image: url("../../images/masque-k-atable.png"); -webkit-mask-image: url("../../images/masque-k-atable.png"); }
  .focus-kick.k-style { aspect-ratio: 359 / 316; mask-image: url("../../images/masque-k-style.png"); -webkit-mask-image: url("../../images/masque-k-style.png"); }
  .focus-kick.k-vernissage { aspect-ratio: 211 / 88; mask-image: url("../../images/masque-k-vernissage.png"); -webkit-mask-image: url("../../images/masque-k-vernissage.png"); }
  .focus-kick.k-mobilites { aspect-ratio: 268 / 139; mask-image: url("../../images/masque-k-mobilites.png"); -webkit-mask-image: url("../../images/masque-k-mobilites.png"); }
  @supports not (mask-image: none) { .focus-rubric.has-mask .sr-only { position: static; width: auto; height: auto; clip-path: none; } .focus-kick { display: none; } }
  .focus-partner { padding: 12px 20px; background: var(--papier-fonce); font: var(--meta)/1.5 var(--f-ui); }
  .focus-article-hero { margin: 0; }
  .focus-article-hero img { display: block; width: 100%; height: auto; }
  .focus-article-hero.b-plein img { height: min(92vh, 1000px); object-fit: cover; }
  .focus-article-hero.ouv-colonne { width: min(var(--focus-hero-width, 880px), calc(100% - 2 * var(--marge))); margin-inline: auto; }
  .focus-single figcaption { font: var(--meta)/1.6 var(--f-ui); color: var(--encre-2); padding-top: 12px; }
  .focus-article-hero figcaption { padding-inline: var(--marge); }
  .focus-article-body { margin-block: 80px; }
  .focus-article-body > * { width: min(var(--lecture), calc(100% - 2 * var(--marge))); margin-inline: auto; }
  .focus-article-body p { font: 350 var(--texte)/1.66 var(--f-texte); margin-block: 0 24px; hyphens: manual; }
  .focus-article-body h2, .focus-article-body h1 { font-size: var(--t-40); margin-block: 48px 20px; }
  .focus-article-body h3 { font-size: var(--t-26); }
  .focus-article-body figure { margin-block: 40px; }
  .focus-article-body img { display: block; max-width: 100%; height: auto; }
  .focus-article-body iframe, .focus-article-body video { width: 100%; }
  .focus-article-body pre, .focus-article-body table { max-width: 100%; overflow-x: auto; }
  .focus-article-body .alignwide, .focus-article-body .is-style-focus, .focus-article-body .focus-diptyque, .focus-article-body .focus-image-text { width: min(var(--col), calc(100% - 2 * var(--marge))); }
  .focus-article-body .alignfull, .focus-article-body .is-style-pleine-largeur { width: 100%; max-width: none; }
  .focus-article-body .is-style-question { font: 500 var(--question)/1.45 var(--f-ui); margin-block: 44px 12px; }
  .focus-article-body .is-style-lettrine::first-letter { float: left; font: 300 5.6em/.78 var(--f-titre); padding: .06em .08em 0 0; color: var(--r-encre, var(--encre)); }
  .focus-article-body .is-style-grande-citation { width: min(1100px, calc(100% - 2 * var(--marge))); margin-block: 96px; text-align: center; border: 0; }
  .focus-article-body .is-style-grande-citation p { font: italic 300 clamp(36px, 4.6vw, 72px)/1.06 var(--f-titre); }
  .focus-article-body .focus-diptyque { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .focus-article-body .focus-diptyque figure { margin: 0; }
  .focus-article-body .focus-image-text { gap: 64px; }
  .focus-article-pages, .focus-share { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; font: var(--meta)/1.5 var(--f-ui); }
  .focus-article-pages a, .focus-article-pages > .post-page-numbers, .focus-share a, .focus-share button { display: inline-flex; align-items: center; min-height: 24px; padding-inline: 12px; }
  .focus-share button { font: inherit; color: inherit; background: none; border: 0; text-decoration: underline; cursor: pointer; }
  .focus-share [hidden] { display: none; }
  .focus-article-pages [aria-current] { background: var(--encre); color: var(--fond); }
  .focus-article-ending { width: min(var(--lecture), calc(100% - 2 * var(--marge))); margin: 64px auto; }
  .focus-article-ending > p { font: var(--meta)/1.5 var(--f-ui); }
  .b-paru { display: flex; align-items: center; gap: 16px; margin-top: 40px; font: var(--meta)/1.6 var(--f-ui); }
  .b-paru img { width: 46px; height: auto; }
  .focus-related { margin-block: var(--section); }
  .focus-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grille-gap-x); }
  .focus-related-card { text-decoration: none; }
  .focus-related-card img { width: 100%; height: auto; aspect-ratio: var(--ratio-carte); object-fit: cover; }
  .focus-related-card h3 { font: 350 var(--t-26)/1.18 var(--f-texte); }
  .focus-next { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); background: var(--encre); color: var(--fond); text-decoration: none; margin-block: var(--section); }
  .focus-next:not(:has(.focus-next-image)) { grid-template-columns: 1fr; }
  .focus-next-copy { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 22px; padding: 64px var(--marge); }
  .focus-next-image img { display: block; width: 100%; height: min(88vh, 860px); object-fit: cover; }
  .focus-next-title { font: 300 var(--t-64)/1.1 var(--f-titre); }
  @media (max-width: 820px) { .focus-related-grid { gap: 24px; } }
  @media (max-width: 640px) {
    .focus-single .v3-ouv { padding-block: 40px; }
    .focus-article-hero.b-plein img { height: auto; aspect-ratio: var(--ratio-carte); object-fit: cover; }
    .focus-article-body { margin-block: 48px; }
    .focus-article-body p { font-size: 18.5px; }
    .focus-article-body .is-style-question { font-size: 16px; }
    .focus-related-grid { grid-template-columns: 1fr; gap: 48px; }
    .focus-next { grid-template-columns: 1fr; }
    .focus-next-image img { height: auto; aspect-ratio: 4 / 5; }
    .focus-next-copy { padding: 36px 20px 44px; }
    .focus-article-body .focus-diptyque { grid-template-columns: 1fr; gap: 12px; }
  }
  @media (pointer: coarse) { .focus-article-pages a, .focus-share a, .focus-share button { min-width: var(--cible); min-height: var(--cible); } }
}

/* Source : assets/css/components/article-media.css */
/* Règles non stratifiées et strictement bornées aux articles : les styles natifs de
   galerie sont eux aussi non stratifiés. Prototype v3.css:120-126,585-612,651-684. */
.focus-single .focus-article-body .wp-block-gallery { width: calc(min(100%,var(--col)) - 2 * var(--marge)); margin-inline:auto; gap: var(--galerie-gap); }
.focus-single .focus-article-body .wp-block-gallery:not(.is-style-diaporama):not(.p1-gallery) { display:flex; flex-wrap:wrap; }
/* Le noyau utilise :not(#individual-image) : même garde + #contenu réel, sans !important. */
#contenu.focus-single .focus-article-body .wp-block-gallery > figure.wp-block-image:not(#individual-image) { position: relative; margin: 0; width: 100%; max-width: none; min-width: 0; }
#contenu.focus-single .focus-article-body .wp-block-gallery > figure.wp-block-image:not(#individual-image) img { width: 100%; height: auto; flex: none; }
.focus-single .focus-article-body .wp-block-gallery > figure.wp-block-image figcaption { position: static; max-height: none; overflow: visible; padding: 12px 0 0; color: var(--encre-2); text-shadow: none; font: var(--meta)/1.5 var(--f-ui); }
.focus-single .focus-article-body .wp-block-gallery > figure.wp-block-image::before { content: none; }
.focus-single .focus-article-body .wp-block-gallery > figcaption { grid-column: 1 / -1; }
.focus-single .focus-gallery-open { position: absolute; top: 12px; right: 12px; min-width: 36px; min-height: 36px; border: 1px solid var(--encre); border-radius: 50%; background: var(--fond); color: var(--encre); font: var(--texte)/1 var(--f-ui); cursor: zoom-in; }
.focus-single .focus-article-body .wp-block-gallery.is-style-diaporama { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: min(46vw, 560px); grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; padding-bottom: 12px; scrollbar-width: thin; }
.focus-single .focus-article-body .is-style-diaporama > figure { scroll-snap-align: start; }
.focus-single .focus-article-body .is-style-diaporama > figure img { aspect-ratio: var(--ratio-carte); object-fit: cover; }
.focus-single .focus-diapo-controls { display: flex; justify-content: flex-end; gap: 8px; width: min(var(--col), calc(100% - 2 * var(--marge))); margin: 0 auto 18px; }
.focus-single .focus-diapo-controls button { width: 48px; height: 48px; border: 1px solid var(--encre); color: var(--encre); background: transparent; }
.focus-single .focus-diapo-controls button:disabled { opacity: .45; cursor: default; }
/* Les quatre couleurs suivantes sont reprises exactement du prototype, pas une palette nouvelle. */
html:has(> body > dialog.focus-media-dialog[open]), body:has(> dialog.focus-media-dialog[open]) { background: #14130F; transition:none; }
dialog.focus-media-dialog { position: fixed; inset: 0; width: 100%; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: #14130F; color: #F4F0E8; }
dialog.focus-media-dialog:not([open]) { display: none; }
dialog.focus-media-dialog[open] { display: grid; grid-template-rows: auto minmax(0, 1fr); animation: focus-gallery-in var(--mvt-galerie-ouverture) var(--ease-out); }
dialog.focus-media-dialog[open][data-closing=true] { animation: focus-gallery-out var(--mvt-galerie-fermeture) var(--ease-out) both; }
dialog.focus-media-dialog::backdrop { background: #14130F; }
.focus-media-dialog .lb-haut { display: flex; justify-content: space-between; align-items: center; padding: 18px var(--marge); font: var(--meta)/1.5 var(--f-ui); }
.focus-media-dialog button { min-width: 44px; min-height: 44px; color: inherit; background: transparent; border: 0; font: inherit; cursor: pointer; }
.focus-media-dialog button:focus-visible { outline: 2px solid #F4F0E8; outline-offset: 3px; }
.focus-media-dialog .lb-fig { display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 14px; min-height: 0; min-width: 0; margin: 0; padding: 0 112px 28px; }
.focus-media-dialog .lb-stage { min-height: 0; min-width: 0; display: grid; place-items: center; touch-action: pan-y; }
.focus-media-dialog .lb-stage img { display: block; width: 100%; height: 100%; min-height: 0; max-width: 100%; max-height: calc(100dvh - var(--lb-reserve, 160px)); object-fit: contain; aspect-ratio: auto; }
.focus-media-dialog[aria-busy=true] .lb-stage img { opacity: 0; }
.focus-media-dialog figcaption { max-width: 100%; max-height: 25dvh; overflow-y: auto; overflow-wrap: anywhere; margin: 0; padding: 0; color: #CFC8BA; text-align: center; font: var(--meta)/1.5 var(--f-ui); }
.focus-media-dialog .lb-credit { display: block; margin-top: 4px; max-width: 100%; overflow-wrap: anywhere; color: #CFC8BA; font: var(--etiquette)/1.5 var(--f-ui); }
.focus-media-dialog .lb-credit:empty { display: none; }
.focus-media-dialog .lb-nav { position: absolute; top: 50%; translate: 0 -50%; width: 56px; height: 56px; border: 1px solid currentColor; font-size: var(--texte); }
.focus-media-dialog .lb-nav[hidden] { display: none; }
.focus-media-dialog .lb-prec { left: var(--marge); }
.focus-media-dialog .lb-suiv { right: var(--marge); }
.focus-single .focus-media-facade { margin-bottom: 40px; }
.focus-single .focus-media-stage { position: relative; isolation: isolate; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; width: 100%; min-height: 0; aspect-ratio: 16 / 9; background: var(--encre); color: var(--creme-sur-encre); text-align: center; }
.focus-single .focus-media-ratio-8-5.focus-media-stage, .focus-single .focus-media-ratio-8-5 > .focus-media-stage { aspect-ratio: 8 / 5; }
.focus-single .focus-media-ratio-4-3.focus-media-stage, .focus-single .focus-media-ratio-4-3 > .focus-media-stage { aspect-ratio: 4 / 3; }
.focus-single .focus-media-ratio-1-1.focus-media-stage, .focus-single .focus-media-ratio-1-1 > .focus-media-stage { aspect-ratio: 1; }
.focus-single .focus-media-ratio-portrait-1-2.focus-media-stage, .focus-single .focus-media-ratio-portrait-1-2 > .focus-media-stage { aspect-ratio: 1 / 2; }
.focus-single .focus-media-poster { position: absolute; inset: 0; z-index: 0; opacity: .45; }
.focus-single .focus-media-poster img { width: 100%; height: 100%; object-fit: cover; }
.focus-single .focus-media-facade [data-focus-load] { position: relative; z-index: 2; min-height: var(--cible); padding: 12px 20px; border: 1px solid currentColor; color: inherit; background: var(--encre); font: var(--meta)/1.5 var(--f-ui); }
.focus-single .focus-media-facade [data-focus-fallback] { display: inline-flex; align-items: center; margin-top: 8px; min-height: 24px; color: var(--encre); font: var(--meta)/1.5 var(--f-ui); }
.focus-single .focus-media-facade .focus-media-screen { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; border: 0; object-fit: contain; }
.focus-single .focus-media-status { position: relative; z-index: 2; color: var(--creme-2-sur-encre); font: var(--meta)/1.5 var(--f-ui); }
.focus-single .focus-media-facade :focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
@keyframes focus-gallery-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes focus-gallery-out { from { opacity: 1; transform: none; } to { opacity: 0; transform: translateY(6px); } }
@media (max-width: 640px) { .focus-single .focus-article-body .wp-block-gallery.is-style-diaporama { grid-auto-columns: 80%; } .focus-media-dialog .lb-fig { padding: 0 12px 92px; } .focus-media-dialog .lb-nav { top: auto; bottom: 20px; translate: none; } .focus-media-dialog .lb-haut { padding-inline: 12px; } }
@media (pointer: coarse) { .focus-single .focus-gallery-open, .focus-single .focus-media-facade [data-focus-fallback] { min-width: var(--cible); min-height: var(--cible); } }
@media (prefers-reduced-motion: reduce) { dialog.focus-media-dialog[open], dialog.focus-media-dialog[open][data-closing=true] { animation: none; } .focus-single .is-style-diaporama { scroll-behavior: auto; } }
/* Lecteurs natifs : ratio du média, aperçu local et aucune ressource distante avant clic. */
.focus-single .focus-native-media { width: min(680px, calc(100% - 2 * var(--marge))); margin: 40px auto; }
.focus-single .focus-native-media .focus-media-facade { margin-bottom: 0; }
.focus-single .focus-native-media .focus-media-stage { aspect-ratio: var(--media-ratio, 16/9); background: var(--papier); color: var(--encre); border: 1px solid var(--ligne); }
.focus-single .focus-native-media .focus-media-stage.is-vertical { max-height: 80vh; width: auto; margin-inline: auto; }
.focus-single .focus-native-media .focus-media-poster { opacity: 1; }
.focus-single .focus-native-media [data-focus-load] { display: grid; place-items: center; width: 56px; height: 56px; min-width: 56px; padding: 0; border-radius: 50%; border: 1px solid var(--encre); color: var(--encre); background: var(--papier); }
.focus-single .focus-native-media [data-focus-load][hidden] { display: none; }
.focus-single .focus-native-media .focus-media-status { color: var(--encre); background: var(--papier); }
.focus-single .focus-native-media .focus-media-status:empty { display: none; }
.focus-single .focus-native-media [data-focus-media="soundcloud"] .focus-media-stage { height: var(--media-height,166px); aspect-ratio: auto; }
.focus-single .focus-native-media > figcaption, .focus-single .focus-external-media > figcaption { margin-top: 12px; font: 12px/1.5 var(--f-ui); color: var(--encre-2); }
.focus-single .focus-external-media { width: min(680px, calc(100% - 2 * var(--marge))); margin: 40px auto; }
.focus-single .focus-external-media > img { width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover; }
.focus-single .focus-embed-captioned { width: min(680px, calc(100% - 2 * var(--marge))); margin-inline: auto; }
.focus-single .focus-embed-captioned .focus-native-media { width: 100%; }

/* Source : assets/css/components/carnet.css */
@layer gabarits {
  .focus-carnet.b-adresse { width: min(var(--lecture), calc(100% - 2 * var(--marge))); margin: 64px auto; padding-block: 26px; border-block: 1px solid var(--encre); color: var(--encre); background: var(--fond); }
  .focus-carnet.b-adresse h2 { font: 350 var(--t-26)/1.18 var(--f-texte); margin: 0 0 22px; }
  .focus-carnet.b-adresse p { font: var(--question)/1.55 var(--f-ui); margin: 0 0 12px; }
  .focus-carnet.b-adresse a { display: inline-flex; align-items: center; min-height: 24px; overflow-wrap: anywhere; }
  @media (pointer: coarse) { .focus-carnet.b-adresse a { min-height: var(--cible); } }
}

/* Source : assets/css/components/visual-corrections.css */
/* D020 : règles bornées aux titres d'articles/cartes, volontairement hors couche.
   Les styles globaux WordPress non stratifiés dépassent les règles @layer.
   Tailles issues des jetons : t-26 = 25,92 px à 1440, 21 px à 390.
   Aucun nouveau fichier de police, aucune règle sur les pages fixes. */
.focus-home .v3-art h3,
.focus-single .focus-related-card h3 {
  font: normal 350 var(--t-26)/1.18 var(--f-texte);
  letter-spacing: var(--titre-interlettrage);
}
.focus-home .v3-art.grand h3 {
  font: normal 350 var(--t-40)/1.08 var(--f-texte);
}
.focus-home .v3-ouvre h1,
.focus-single .focus-next-title,
.focus-single.focus-template-breve .v3-ouv h1 {
  font: normal 350 var(--t-64)/1.08 var(--f-texte);
}
.focus-single:not(.focus-template-breve) .v3-ouv h1 {
  font: normal 300 var(--t-96)/1.02 var(--f-titre);
}
/* t-64 atteint 32 px à 800 px ; t-40 à 8000/7 px. */
@media (min-width: 800px) {
  .focus-home .v3-ouvre h1,
  .focus-single .focus-next-title,
  .focus-single.focus-template-breve .v3-ouv h1 {
    font-family: var(--f-titre); font-weight: 300;
  }
}
@media (min-width: 1142.857143px) {
  .focus-home .v3-art.grand h3 {
    font-family: var(--f-titre); font-weight: 300;
  }
}
.focus-home .focus-title-angle,
.focus-archives .focus-title-angle,
.focus-single .focus-title-angle {
  font: inherit;
  font-style: italic;
}

/* Source : assets/css/components/article-corrections.css */
/* Hors couche : neutralisation des sélecteurs natifs non stratifiés, portée article. */
#contenu.focus-single .focus-article-body > :is(figure,div,p,ul,ol,blockquote) {
  margin-left: auto; margin-right: auto; box-sizing: border-box;
}
#contenu.focus-single .focus-article-body :is(.wp-block-image,.wp-block-gallery,.gallery,.pk-gallery,.wp-block-columns) {
  box-sizing: border-box; float: none; margin-inline: auto; min-width: 0; max-width: 100%;
}
#contenu.focus-single .focus-article-body > :is(.wp-block-image,.wp-block-gallery,.gallery,.pk-gallery,.wp-block-columns) {
  width: calc(min(100%, var(--col)) - 2 * var(--marge));
}
#contenu.focus-single .focus-article-body > .p1-gallery-run { width: calc(min(100%, var(--col)) - 2 * var(--marge)); }
#contenu.focus-single .focus-article-body > .p1-single-portrait { width: min(var(--galerie-portrait), calc(100% - 2 * var(--marge))); }
#contenu.focus-single .focus-article-body > .p1-single-photo { margin-block: var(--espace-groupe); }
#contenu.focus-single .focus-article-body > .p1-single-photo img { display:block; width:100%; height:auto; object-fit:contain; }
#contenu.focus-single .focus-article-body > :is(.alignfull,.is-style-pleine-largeur) { width: 100%; max-width: 100%; }
#contenu.focus-single .focus-article-body :is(.wp-block-image,.wp-block-column) img { margin-inline: auto; max-width: 100%; height: auto; }
#contenu.focus-single .focus-article-body .focus-gallery-grid:not(.is-style-diaporama):not(.p1-gallery) {
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px;
}
#contenu.focus-single .focus-gallery-grid > :is(figure,.gallery-item,.pk-gallery-item) { width: 100%; min-width: 0; margin: 0; float: none; position: relative; }
#contenu.focus-single .focus-gallery-grid > br { display: none; }
#contenu.focus-single .focus-gallery-grid > figcaption { grid-column: 1 / -1; }
#contenu.focus-single .focus-gallery-grid img { width: 100%; height: auto; }
#contenu.focus-single .focus-next { max-width: var(--col); margin-inline: auto; }
#contenu.focus-single .focus-next > span { min-width: 0; }
#contenu.focus-single .focus-next-image { display: block; overflow: hidden; }
#contenu.focus-single .focus-next-image img { max-width: 100%; }
.focus-single .focus-share :is(a,button), .v3-reseaux a, .focus-single .focus-gallery-open { min-width: var(--cible); min-height: var(--cible); }
@media (max-width: 640px) {
  #contenu.focus-single .focus-gallery-grid:not(.is-style-diaporama):not(.p1-gallery) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* DA1 : jetons locaux, aucune taille ni couleur changée hors des articles. */
#contenu.focus-single {
  --focus-chapo-size: clamp(21px, 1.2vw + 17px, 28px);
  --focus-chapo-leading: 1.38;
  --focus-chapo-measure: 62ch;
  --focus-chapo-space-after: 2em;
  --focus-caption-size: 12.5px;
  --focus-caption-leading: 1.5;
  --focus-caption-measure: 62ch;
  --focus-caption-space-before: 10px;
  --focus-title-wrap: balance;
  --focus-body-wrap: pretty;
}
#contenu.focus-single :is(h1, h2, h3, .focus-next-title) {
  text-wrap: var(--focus-title-wrap);
}
#contenu.focus-single .focus-article-body {
  font-variant-ligatures: common-ligatures;
  /* Pas de oldstyle-nums : onum absent des quatre WOFF2 GT Super livrés. */
}
#contenu.focus-single .focus-article-body p {
  text-wrap: var(--focus-body-wrap);
}
#contenu.focus-single .focus-article-body blockquote {
  hanging-punctuation: first;
}
/* Chapô converti au rendu ; repli CSS historique séparé pour les H2 conservés. */
#contenu.focus-single .focus-article-body > .focus-chapo {
  font-family: var(--f-titre);
  font-size: var(--focus-chapo-size);
  font-weight: 300;
  font-style: normal;
  line-height: 1.38;
  max-width: var(--focus-chapo-measure);
  text-wrap: var(--focus-body-wrap);
  margin-bottom: var(--focus-chapo-space-after);
}
@supports selector(h2:has(+ p)) {
  #contenu.focus-single .focus-article-body > h2.wp-block-heading:first-child:has(+ p) {
    font-family: var(--f-titre);
    font-size: var(--focus-chapo-size);
    font-weight: 300;
    font-style: normal;
    line-height: var(--focus-chapo-leading);
    max-width: var(--focus-chapo-measure);
    text-wrap: var(--focus-body-wrap);
    margin-bottom: var(--focus-chapo-space-after);
  }
}
#contenu.focus-single figcaption {
  font-family: var(--f-ui);
  font-size: var(--focus-caption-size);
  line-height: var(--focus-caption-leading);
  color: var(--encre-2);
  max-width: min(var(--focus-caption-measure), 100%);
  margin-top: var(--focus-caption-space-before);
  margin-inline: 0;
  padding-top: 0;
  text-align: left;
}
/* Une legende commune de galerie occupe sa propre ligne sous les photos.
   Le plafond de lecture des legendes individuelles ne doit pas la comprimer. */
#contenu.focus-single .focus-article-body .wp-block-gallery > figcaption {
  width: 100%;
  max-width: 100%;
}
/* La légende reste sur l'axe de sa photographie. Le hero conserve sa règle. */
#contenu.focus-single .focus-article-body > figure > figcaption,
#contenu.focus-single .focus-article-body > .wp-block-image > figure > figcaption {
  margin-inline-start: 0;
}
#contenu.focus-single .focus-article-hero > figcaption {
  padding-inline: 0;
  margin-inline-start: max(var(--marge), calc((100% - var(--lecture)) / 2));
  max-width: min(var(--focus-caption-measure), calc(100% - 2 * var(--marge)));
}
@media (max-width: 640px) {
  #contenu.focus-single { --focus-chapo-leading: 1.4; }
}

/* Articles XL/XXL : largeur de lecture seule, mesure globale --lecture intacte.
   1440 : 680 ; 1920 : 740 ; 2560 : 780 ; 3240 : 800 px.
   Chapôs, citations, figures et compositions particulières gardent leur voie. */
@media (width > 1440px) {
  html:root #contenu.focus-single .focus-article-body > :is(p,h1,h2,h3,h4,h5,h6,ul,ol):not(.focus-chapo):not(.ds-chapo):not(.s1-pull):not(.is-style-grande-citation):not(.da-photo-credit):not(.alignwide):not(.alignfull):not(.is-style-pleine-largeur):not(h2.wp-block-heading:first-child:has(+ p)) {
    width: min(clamp(680px, min(calc(12.5vw + 500px), calc(6.25vw + 620px), calc(2.94117647vw + 704.705882px)), 800px), calc(100% - 2 * var(--marge)));
  }
}

/* Rythme article : séparer le texte des médias, pas les images d'une même galerie.
   Marges du média seul : la fusion conserve un intertitre déjà plus espacé.
   Chapôs, crédits, citations et compositions spéciales restent hors de cette règle. */
html:root #contenu.focus-single .focus-article-body {
  --article-espace-media: var(--espace-region);
}
html:root #contenu.focus-single .focus-article-body > :is(p,h1,h2,h3,h4,h5,h6,ul,ol):not(.focus-chapo,.ds-chapo,.focus-chapo-opening,.da-photo-credit,.wp-element-caption,.s1-pull,.is-style-grande-citation,.da-q,.da-interview-question,.is-style-question) + :is(.wp-block-image,.wp-block-gallery,.p1-gallery-run):not(.alignfull,.is-style-pleine-largeur,.is-style-diaporama) {
  margin-block-start: var(--article-espace-media);
}
html:root #contenu.focus-single .focus-article-body > :is(.wp-block-image,.wp-block-gallery,.p1-gallery-run):not(.alignfull,.is-style-pleine-largeur,.is-style-diaporama):has(+ :is(p,h1,h2,h3,h4,h5,h6,ul,ol):not(.focus-chapo,.ds-chapo,.focus-chapo-opening,.da-photo-credit,.wp-element-caption,.s1-pull,.is-style-grande-citation,.da-q,.da-interview-question,.is-style-question)) {
  margin-block-end: var(--article-espace-media);
}
@media (max-width: 640px) {
  html:root #contenu.focus-single .focus-article-body {
    --article-espace-media: var(--espace-bloc);
  }
}

/* Source : assets/css/components/da-article.css */
/* V2. Chaque règle exige le drapeau correspondant sur html. */
html:root { --da-lh-h1: 1.05; --da-lh-title: 1.2; --da-lh-body: 1.66; --da-lh-meta: 1.5; }
html:root .focus-single .v3-ouv h1 { line-height: var(--da-lh-h1); text-wrap: balance; }
html:root .focus-single .v3-ouv .cont { gap: 24px; }
html:root .focus-single .v3-ouv h1 + .chapo { margin-top: 1cap; }
html:root .focus-single :is(.credits,.art-meta) { font: 400 12.5px/var(--da-lh-meta) var(--f-ui); color: var(--encre-2); gap: 16px; }
html:root .focus-single .credits { text-transform: uppercase; letter-spacing: .08em; }
html:root .focus-single .credits strong { font-weight: 500; text-transform: none; letter-spacing: normal; }
html:root .focus-single .art-meta > * + * { border-inline-start: 1px solid var(--ligne); padding-inline-start: 16px; }
html:root #contenu.focus-single .focus-article-body > :is(h2,h3) { line-height: var(--da-lh-title); text-wrap: balance; }
html:root #contenu.focus-single .focus-article-body p:not(.focus-chapo):not(.da-photo-credit):not(.da-interview-question) { line-height: var(--da-lh-body); text-wrap: pretty; }
html:root #contenu.focus-single .focus-article-body blockquote { padding-inline-start: 24px; border-inline-start: 1px solid var(--r-encre,var(--encre)); margin-block: 48px; hanging-punctuation: first; }
html:root #contenu.focus-single .focus-article-body blockquote p { font-family: var(--f-titre); font-style: italic; font-weight: 300; }
html:root #contenu.focus-single :is(figcaption,.da-photo-credit) { background: transparent; color: var(--encre-2); }
html:root #contenu.focus-single .da-photo-credit { font: 400 12px/1.5 var(--f-ui); text-transform: uppercase; letter-spacing: .08em; padding-inline-start: 12px; border-inline-start: 1px solid var(--ligne); }
html:root #contenu.focus-single .focus-article-body p.da-interview-question { font: 500 12.5px/1.5 var(--f-ui); text-transform: uppercase; letter-spacing: .08em; margin-block: 2em .6em; }
html:root #contenu.focus-single .da-interview-question strong { font: inherit; }
html:root .da-interview-question::before { content: ''; display: block; width: 24px; height: 1px; background: var(--r-encre,var(--encre)); opacity: .6; margin-block-end: 12px; }
html:root .da-breadcrumb { max-width: 100%; font: 400 12px/1.5 var(--f-ui); text-transform: none; letter-spacing: normal; color: var(--encre-2); }
html:root .da-breadcrumb p { display: flex; align-items: center; gap: 8px; margin: 0; min-width: 0; }
html:root .da-breadcrumb svg { flex: 0 0 12px; }
html:root .da-breadcrumb a { text-decoration: none; color: var(--encre); position: relative; }
html:root .da-breadcrumb a::after { content: ''; position: absolute; inset: auto 0 0; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform 250ms; }
html:root .da-breadcrumb a:is(:hover,:focus-visible)::after { transform: scaleX(1); }
html:root .da-breadcrumb [aria-current] { color: var(--encre-2); }
html:root .focus-share { justify-content: flex-start; gap: 16px; }
html:root .focus-share :is(a,button) { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 8px; color: var(--encre); background: transparent; border: 0; text-decoration: none; position: relative; overflow: visible; }
html:root .focus-share svg { width: 24px; height: 24px; flex: 0 0 24px; overflow: visible; }
html:root .da-share-tip { position: absolute; inset: 100% auto auto 0; z-index: 2; padding: 6px 8px; color: var(--encre); background: var(--fond); border: 1px solid var(--ligne); font: 400 12px/1.5 var(--f-ui); white-space: nowrap; visibility: hidden; pointer-events: none; }
html:root .focus-share a[href^="mailto:"] .da-share-tip { left:50%; transform:translateX(-50%); }
html:root .focus-share :is(a,button):is(:hover,:focus-visible) .da-share-tip { visibility: visible; }
html:root .focus-share [hidden] { display: none; }
html:root .focus-share [data-share-native] { display: none; }
html:root .focus-share :is(a,button):hover { color: var(--encre-2); }
html:root .focus-related { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: baseline; }
html:root .focus-related > :is(h2,p) { margin: 0; }
/* Le lien de rubrique est réduit de 30 %, avec une cible utile conservée. */
html:root #contenu.focus-single > .focus-related > p > a { zoom:.7; min-height:calc(var(--cible) / .7); }
html:root .focus-related-grid { grid-column: 1/-1; grid-template-columns: repeat(3,minmax(0,220px)); justify-content: space-between; }
html:root .focus-related-card img { aspect-ratio: 5/3; width: 100%; object-fit: cover; }
html:root .focus-related-card h3 { line-height: 1.2; text-wrap: balance; }
html:root #contenu.focus-single .focus-related-card .focus-card-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--espace-minime) var(--espace-courant); }
/* Article suivant : reduction de 20 %, sans reduire les libelles utilitaires. */
html:root #contenu.focus-single .focus-next { grid-template-columns: minmax(0,7fr) minmax(0,5fr); width: 80%; max-width: calc(var(--col)*.8); max-height: none; margin-top: var(--espace-section); background: var(--encre); color: var(--fond); }
html:root #contenu.focus-single .focus-next:not(:has(.focus-next-image)) { grid-template-columns: 1fr; }
html:root #contenu.focus-single .focus-next-image img { width: 100%; height: calc(min(88vh,860px)*.8); object-fit: cover; }
html:root #contenu.focus-single .focus-next-copy { min-width: 0; padding: calc(var(--espace-composition)*.8) calc(clamp(28px,4vw,72px)*.8); gap: calc(22px*.8); overflow: visible; justify-content: center; }
html:root #contenu.focus-single .focus-next-title { font-size: calc(var(--t-64)*.8); line-height: 1.1; }
html:root .focus-next :is(.focus-next-title,.angle,.plus,.focus-label) { color: var(--fond); }
html:root .focus-next .trait { width: 46px; background: currentColor; }
html:is(:root,:root,:root) :is(a,button):focus-visible { outline: 2px solid var(--encre); outline-offset: 3px; }
@media (max-width: 640px) {
  html:root .da-breadcrumb p { white-space: nowrap; overflow: hidden; }
  html:root .da-breadcrumb a { flex-shrink: 0; }
  html:root .da-breadcrumb [aria-current] { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  html:root .focus-related { grid-template-columns: minmax(0,1fr); }
  html:root .focus-related-grid { grid-template-columns: minmax(0,1fr); }
  html:root #contenu.focus-single .focus-next { grid-template-columns: minmax(0,1fr); max-height: none; }
  html:root #contenu.focus-single .focus-next-image img { height: auto; aspect-ratio: 4/5; }
  html:root #contenu.focus-single .focus-next-copy { padding: calc(36px*.8) var(--espace-courant) calc(var(--cible)*.8); }
}
@media (pointer: coarse) { html:root .focus-share :is(a,button) { min-width: 44px; min-height: 44px; } }
@media (prefers-reduced-motion: reduce) { html:root .da-breadcrumb a::after { transition: none; } }
html:root .da-breadcrumb-separator { flex: 0 0 auto; height: auto; border: 0; color: var(--encre-2); }
html:root #contenu.focus-single .focus-article-body p.da-q { margin-block-start: 44px; color: var(--encre); }
html:root #contenu.focus-single .focus-article-body p.da-q-first { margin-block-start: 28px; }
html:root #contenu.focus-single .focus-article-body p.da-q > .da-q-text { display: block; font: 500 17px/1.5 var(--f-ui); color: var(--encre); text-transform: none; letter-spacing: 0; margin-block-end: 12px; }
html:root .da-q-text :is(strong,b) { font: inherit; }
html:root #contenu.focus-single .focus-article-body .da-q-break { display: none; }
html:root .da-q::before { content: none; }
html:root #contenu.focus-single .focus-article-body > h2.focus-chapo-opening:first-child {
  font-family: var(--f-titre); font-weight: 300; font-style: normal;
  font-size: var(--focus-chapo-size); line-height: 1.38;
  max-width: var(--focus-chapo-measure); margin-bottom: var(--focus-chapo-space-after); text-wrap: pretty;
}
@media (max-width: 640px) {
  html:root #contenu.focus-single .focus-article-body > :is(p.focus-chapo,h2.focus-chapo-opening).focus-chapo--long { font-size: 19.5px; line-height: 1.42; }
}
/* V7 : nouvelles branches, légendes volontairement inchangées. */
html:root #contenu.focus-single .v3-ouv .cont { gap: 22px; }
html:root #contenu.focus-single .v3-ouv :is(.focus-chapo,.chapo),
html:root #contenu.focus-single .focus-article-body > h2.focus-chapo-opening:first-child {
  font: italic 350 clamp(19px,1.6vw,23px)/1.5 var(--f-texte); color: var(--encre-2);
  width: 100%; max-width: 760px; text-align: center; margin: 0 auto 0; text-wrap: pretty;
}
html:root #contenu.focus-single .focus-article-body > h2.focus-chapo-opening:first-child { margin-bottom: 2em; }
html:root:root #contenu.focus-single .da-head-credits { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; font: 400 12px/1.5 var(--f-texte); letter-spacing: .06em; text-transform: none; }
html:root:root #contenu.focus-single .da-head-credits strong { font-weight: inherit; letter-spacing: inherit; }
html:root .da-response { display: block; }
html:root .focus-article-body .da-dropcap::first-letter { float: left; font: 300 5.6em/.78 var(--f-titre); padding: .06em .08em 0 0; color: var(--r-encre,var(--encre)); }
@media (max-width: 640px) {
  html:root #contenu.focus-single .focus-article-body p.da-q > .da-q-text { font-size: 16px; }
  html:root #contenu.focus-single .v3-ouv :is(.focus-chapo,.chapo),
  html:root #contenu.focus-single .focus-article-body > h2.focus-chapo-opening:first-child { font-size: 19px; }
  html:root .focus-article-body .da-dropcap::first-letter { float: none; font: inherit; padding: 0; color: inherit; }
}
/* Maillage éditorial, sans remplacer les huit liens utilitaires du pied commun. */
.focus-continue { max-width: 1120px; margin: var(--section-gap,96px) auto; }
.focus-continue > h2 { margin-bottom: 32px; }
.focus-continue .v3-grille { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.focus-continue-column { min-width: 0; }
.focus-continue-label { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: 12px; font: 500 12px/1.5 var(--f-ui); text-transform: uppercase; letter-spacing: .08em; text-decoration: underline; text-underline-offset: 4px; }
.focus-continue .ph { aspect-ratio: 3/2; }
.focus-continue h3 { font: 350 24px/1.2 var(--f-texte); }
html:root .focus-continue .focus-card-meta { font-size: 14px; line-height: 1.5; }
@media(max-width:760px){ .focus-continue .v3-grille { grid-template-columns: 1fr; gap: 32px; } }

/* Ouverture d'article en deux panneaux. Les portraits de groupe restent protégés. */
html:root #contenu.focus-single .t1-article-frame.focus-article-split {
  grid-template-columns: repeat(2,minmax(0,1fr));
  align-items: stretch;
  gap: 0;
  padding-top: var(--t1-header);
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .v3-ouv {
  grid-area: 1 / 1;
  align-self: stretch;
  align-items: stretch;
  height: auto;
  min-height: calc(100svh - var(--t1-header));
  padding: var(--espace-composition) var(--marge);
  color: var(--encre);
  background: #fff;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .v3-ouv > .cont {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  gap: var(--espace-groupe);
  text-align: center;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .v3-ouv h1 {
  width: 100%;
  margin: 0;
  color: var(--encre);
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split .da-head-credits {
  width: 100%;
  margin-top: auto;
  padding-top: var(--espace-composition);
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 0;
  text-align: left;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split .v3-ouv :is(.da-head-credits,.da-head-credits a,.da-head-credits strong,.da-head-credits span,.da-head-credits time,.da-breadcrumb,.da-breadcrumb a,.da-breadcrumb [aria-current],.focus-format,.focus-format a) {
  color: var(--encre-2);
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split .s2-trace {
  color: #000;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split .v3-ouv .focus-rubric {
  display: flex;
  justify-content: center;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split .s2-trace i {
  background: currentColor;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split :is(.v3-ouv > .cont)::before,
html:root #contenu.focus-single .t1-article-frame.focus-article-split :is(.s4-hero-shade,.s2-fading-shade),
html:root #contenu.focus-single .focus-article-hero.ouv-colonne .s4-hero-shade {
  display: none;
  background: none;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero {
  grid-area: 1 / 2;
  display: grid;
  grid-template-rows: minmax(0,1fr) auto;
  align-self: stretch;
  min-width: 0;
  min-height: 0;
  width: 100%;
  max-width: none;
  margin: 0;
  background: #fff;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero > .s2-hero-surface {
  align-self: stretch;
  min-width: 0;
  min-height: 0;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero > .s2-hero-surface > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--s2-focal,50% 50%);
}
/* Blanc local : ne remplace aucun jeton de la palette partagée. */
html:root:has(#contenu.focus-single .t1-article-frame.focus-article-split) body {
  background-color: #fff;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split .da-head-credits > span {
  display: block;
  width: 100%;
  padding-block: 10px;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split .da-head-credits > span + span {
  border-top: 1px solid color-mix(in srgb, var(--encre) 25%, transparent);
}
/* Navigation papier propre à cette ouverture, y compris sa première peinture. */
html:root:has(#contenu.focus-single .t1-article-frame.focus-article-split) .v3-tete {
  color: var(--encre);
  background: #fff;
}
html:root:has(#contenu.focus-single .t1-article-frame.focus-article-split) .v3-tete::before {
  display: none;
  background: none;
}
html:root:has(#contenu.focus-single .t1-article-frame.focus-article-split) .v3-tete :is(a,button) {
  color: var(--encre);
}
html:root:has(#contenu.focus-single .t1-article-frame.focus-article-split) .v3-tete .focus-brand__dark {
  visibility: visible;
}
html:root:has(#contenu.focus-single .t1-article-frame.focus-article-split) .v3-tete .focus-brand__light {
  visibility: hidden;
}
html:root:has(#contenu.focus-single .t1-article-frame.focus-article-split) .v3-tete .focus-brand img {
  filter: none;
}
html:root:has(#contenu.focus-single .t1-article-frame.focus-article-split) .v3-tete :is(a,button):focus-visible {
  outline-color: var(--encre);
  box-shadow: none;
}
@media (max-width: 1023px) {
  html:root #contenu.focus-single .t1-article-frame.focus-article-split {
    grid-template-columns: minmax(0,1fr);
  }
  html:root #contenu.focus-single .t1-article-frame.focus-article-split > .v3-ouv {
    min-height: 0;
    padding-block: var(--espace-bloc);
  }
  html:root #contenu.focus-single .t1-article-frame.focus-article-split .da-head-credits {
    margin-top: 0;
    padding-top: var(--espace-groupe);
  }
  html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero {
    grid-area: 2 / 1;
  }
  html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero > .s2-hero-surface > img {
    position: relative;
    inset: auto;
    height: auto;
    aspect-ratio: auto;
    object-fit: contain;
  }
}

/* Hierarchie editoriale : ouverture forte, texte courant conserve. */
@media (min-width: 1024px) {
  html:root #contenu.focus-single .t1-article-frame.focus-article-split > .v3-ouv h1 {
    font-size: clamp(64px, 6.666667vw, 96px);
  }
  html:root #contenu.focus-single .focus-article > .focus-chapo.ds-chapo--article {
    font-size: clamp(24px, 1.944445vw, 28px);
  }
  html:root:root #contenu.focus-single .da-head-credits { font-size: 13px; }
}
@media (min-width: 1920px) {
  html:root #contenu.focus-single .t1-article-frame.focus-article-split > .v3-ouv h1 {
    font-size: clamp(96px, calc(5.625vw - 12px), 132px);
  }
  html:root #contenu.focus-single .focus-article > .focus-chapo.ds-chapo--article {
    font-size: clamp(28px, calc(.9375vw + 10px), 34px);
  }
}

/* Petites sources et groupes : photo entiere, centree, sans agrandissement force. */
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero.ouv-colonne > .s2-hero-surface,
html:root #contenu.focus-single .t1-article-frame.focus-article-split.native-hero-group > .focus-article-hero > .s2-hero-surface {
  background: #fff;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero.ouv-colonne > .s2-hero-surface > img,
html:root #contenu.focus-single .t1-article-frame.focus-article-split.native-hero-group > .focus-article-hero > .s2-hero-surface > img {
  object-fit: contain;
  object-position: 50% 50% !important;
  background-color: #fff !important;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero.ouv-colonne > .s2-hero-surface,
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero.ouv-colonne::before {
  width: 100%;
  max-width: var(--focus-hero-width,100%);
  justify-self: center;
}
/* L'attente photographique adopte le meme cadrage que l'image finale. */
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero.ouv-colonne::before,
html:root #contenu.focus-single .t1-article-frame.focus-article-split.native-hero-group > .focus-article-hero::before,
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero.ouv-colonne :is(.s2-hero-surface,.s2-waiting-crop),
html:root #contenu.focus-single .t1-article-frame.focus-article-split.native-hero-group > .focus-article-hero :is(.s2-hero-surface,.s2-waiting-crop) {
  background-size: contain;
  background-position: 50% 50%;
}
html:root #contenu.focus-single .t1-article-frame.focus-article-split > .focus-article-hero.ouv-colonne .s2-waiting-crop,
html:root #contenu.focus-single .t1-article-frame.focus-article-split.native-hero-group > .focus-article-hero .s2-waiting-crop {
  height: 100%;
  min-height: 0;
  aspect-ratio: auto !important;
}


/* Recette du 10 novembre 2026 : titres longs dans la demi-colonne blanche. */
@media (min-width: 1024px) {
  html:root #contenu.focus-single .t1-article-frame.focus-article-split > .v3-ouv h1.focus-title-long {
    max-width: none;
    font-size: clamp(3rem, 4.722222vw, 4.25rem);
  }
}
@media (min-width: 1920px) {
  html:root #contenu.focus-single .t1-article-frame.focus-article-split > .v3-ouv h1.focus-title-long {
    font-size: clamp(4.25rem, 3.4375vw, 5.5rem);
  }
}

/* Source : assets/css/components/da-cards.css */
html:root .v3-art .ph { overflow: hidden; aspect-ratio: 4 / 5; }
html:root .v3-art .ph img { width: 100%; height: 100%; object-fit: cover; }
html:root .v3-art.native-photo-group .ph { aspect-ratio:3/2; height:auto; }
html:root .v3-art :is(h2,h3) { line-height: 1.2; text-wrap: balance; }
html:root .v3-art.da-card-empty { background: var(--r-fond,var(--fond)); padding: 24px; }
html:root .da-card-empty .ph { display: none; }
html:root .da-card-empty > a { display: flex; flex-direction: column; justify-content: center; min-height: 280px; }
html:root .da-card-empty :is(h2,h3) { font-size: clamp(26px,2.4vw,40px); color: var(--da-card-ink,var(--encre)); }
html:root .da-card-empty:is(.r-style,.r-mode,.r-mobilites,.r-auto) { --da-card-ink:var(--fond); }
html:root .da-card-empty :is(.etiq,.chapo-court) { background:var(--fond); color:var(--encre); padding:4px 8px; }
html:root .focus-home > :is(.focus-home-section,.v3-local) { margin-block: 96px; padding-top:0; }
html:root .focus-home > .v3-defile { margin-block:96px; }
html:root .focus-home h1,html:root .focus-archives h1 { line-height:1.05; text-wrap:balance; }
html:root .focus-related-card.da-card-empty { background:var(--r-fond,var(--papier)); padding:24px; display:flex; align-items:center; min-height:280px; }
html:root .focus-home .v3-mosa { row-gap: 48px; }
html:root .da-infinite-more { display: grid; justify-items: center; gap: 16px; margin-block: 48px; }
html:root .da-infinite-grid { margin-block: 48px; }
html:root .da-infinite-status { min-height: 1.5em; font: 400 13px/1.5 var(--f-ui); color: var(--encre-2); }
html:root .da-infinite-more .btn { cursor: pointer; color: var(--encre); background: transparent; }
html:root .da-infinite-more :is(button,a):focus-visible { outline: 2px solid var(--encre); outline-offset: 3px; }
html:root .arc-pages[hidden],html:root .da-infinite-more [hidden] { display: none; }
@media(max-width:819px) { html:root .focus-home > :is(.focus-home-section,.v3-defile,.v3-local) { margin-block: 80px; } }

/* Source : assets/css/components/da-motion.css */
/* Géométrie héritée. Le mouvement est partagé dans ds-mouvement.css. */
html:root :is(.focus-article-body p, .v3o-bas, .v3-pied) a { position: relative; text-decoration: none; }
html:root :is(.focus-article-body p, .v3o-bas, .v3-pied) a::after {
  content: ''; position: absolute; inset: auto 0 calc(-1 * var(--focus-epaisseur));
  height: var(--bordure-fine); background: currentColor;
  transform: scaleX(0); transform-origin: left;
}
html:root :is(a, button):focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); }
html:root .da-reading-progress {
  position: fixed; inset: 0 0 auto; height: var(--focus-epaisseur);
  background: var(--encre); transform: scaleX(0); transform-origin: left;
  z-index: var(--z-progression); pointer-events: none;
}
html:root body.admin-bar .da-reading-progress { top: var(--hauteur-barre-admin); }
@media (max-width: 782px) {
  html:root body.admin-bar .da-reading-progress { top: var(--hauteur-barre-admin-mobile); }
}

/* Source : assets/css/components/da-cookies.css */
/* Parts publics WPConsent uniquement, actions et visibilité inchangées. */
html:root #wpconsent-container::part(wpconsent-banner) { background:var(--fond); border:1px solid var(--encre); border-radius:0; box-shadow:none; }
html:root #wpconsent-container::part(wpconsent-banner-body) { font:350 16px/1.5 var(--f-texte); color:var(--encre-2); }
html:root #wpconsent-container::part(wpconsent-button-accept),
html:root #wpconsent-container::part(wpconsent-button-cancel),
html:root #wpconsent-container::part(wpconsent-button-preferences) { background:var(--fond); color:var(--encre); border:1px solid var(--encre); border-radius:999px; min-height:48px; font-size:12px; }
/* La pastille reste une commande accessible ; seul son fond sombre est remplacé. */
html:root #wpconsent-container::part(wpconsent-settings-button) { background-color:var(--fond)!important; color:var(--encre)!important; border:1px solid var(--encre)!important; box-shadow:0 2px 4px rgb(0 0 0 / .12); }
/* Le path interne possède un fill fixé et aucun part public. Habillage visuel seul :
   le bouton, son nom accessible, son focus et ses actions restent ceux de WPConsent. */
html:root #wpconsent-container::part(wpconsent-settings-button)::before { content:''; position:absolute; inset:2px; background:var(--fond); border-radius:inherit; pointer-events:none; }
html:root #wpconsent-container::part(wpconsent-settings-button)::after { content:''; position:absolute; inset:0; margin:auto; width:24px; height:24px; background:var(--encre); pointer-events:none; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='m10 2 4 0 .5 3 2 1 2.8-1 2 3.5-2.3 2v3l2.3 2-2 3.5-2.8-1-2 1-.5 3h-4l-.5-3-2-1-2.8 1-2-3.5 2.3-2v-3l-2.3-2 2-3.5 2.8 1 2-1z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat; }
html:root #wpconsent-container::part(wpconsent-settings-button):focus-visible { outline:2px solid var(--encre); outline-offset:3px; }

/* Source : assets/css/components/da-v8.css */
/* V8 : chaque règle reste derrière son interrupteur. Aucune animation. */
.da-chapo-mobile { display: none; }
html:root .leg-grille > *, html:root .leg-texte section { min-width: 0; max-width: 100%; }
html:root .da-leg-scroll { min-width: 0; max-width: 100%; }
html:root .fd-card { content-visibility: auto; contain-intrinsic-size: auto 360px; }
html:root .da-search-form { display: flex; gap: 12px; flex-wrap: wrap; width: min(100%,680px); }
html:root .da-search-form input { flex: 1 1 220px; min-width: 0; max-width: 100%; padding: 12px; border: 1px solid var(--ligne); background: var(--fond); color: var(--encre); font: inherit; }
html:root .da-search-rubriques { display: flex; gap: 16px; flex-wrap: wrap; margin-block: 32px; }
html:root .da-search .arc-ouv-txt { min-width: 0; max-width: 100%; }
html:root .da-search h1 { overflow-wrap: anywhere; }
html:root :is(.da-search-form,.da-search-rubriques) :is(a,button,input):focus-visible,
html:root .da-leg-scroll:focus-visible { outline: 2px solid var(--encre); outline-offset: 3px; }
@media (max-width: 640px) {
  html:root .da-chapo-desktop { display: none !important; }
  html:root #contenu.focus-single p.da-chapo-mobile { display: block; font: italic 350 19px/1.5 var(--f-texte); color: var(--encre-2); text-align: center; width: calc(100% - 2 * var(--marge)); max-width: 760px; margin: 32px auto 0; text-wrap: pretty; }
  html:root:root .focus-related-grid { display: grid; grid-auto-flow: column; grid-auto-columns: min(78vw,320px); grid-template-columns: none; gap: 20px; justify-content: start; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; padding: 6px; margin: -6px; }
  html:root .focus-related-grid::-webkit-scrollbar { display: none; }
  html:root .focus-related-card { min-width: 0; scroll-snap-align: start; }
  html:root .focus-related-card:focus-visible { outline: 2px solid var(--encre); outline-offset: 3px; }
  html:root .da-leg-scroll { overflow-x: auto; overscroll-behavior-x: contain; box-shadow: inset -5px 0 5px -5px var(--encre-2); margin-bottom: 20px; }
  html:root .da-leg-scroll table { width: 100%; min-width: 520px; margin-bottom: 0; }
  html:root .da-leg-scroll :is(th,td) { word-break: normal; overflow-wrap: normal; hyphens: none; }
  html:root .leg :is(.leg-som,.leg-autres,.leg-texte) a { min-height: 24px; display: inline-block; padding-block: 3px; }
  html:root .leg button { min-width: 24px; min-height: 24px; }
  html:root #contenu .fd-card :is(p,span,small,li,a,button),
  html:root #contenu :is(.fd-primary-filters,.fd-selects,.fd-search-wrap) { font-size: max(12px,.75rem); line-height: 1.5; }
  html:root #contenu .fd-card :is(a,button),
  html:root #contenu :is(.fd-primary-filters button,.fd-selects select,.fd-search-wrap input) { min-height: 40px; min-width: 40px; }
  html:root #contenu .fd-card a { display: inline-flex; align-items: center; }
}

/* Source : assets/css/components/da-menu-cine.css */
/* Sommaire editorial approuve : styles limites au dialogue, sans photographie. */
html:root .fm-menu {
  --fond-menu: var(--encre);
  position: fixed; inset: 0; margin: 0; border: 0; padding: 0;
  width: 100%; max-width: none; height: 100dvh; max-height: none;
  overflow: auto; overscroll-behavior: contain;
  background: var(--fond-menu); color: var(--papier);
  scrollbar-color: var(--papier) var(--fond-menu); scrollbar-width: thin;
}
html:root .fm-menu::backdrop { background: var(--fond-menu); }
html:root .fm-menu::selection, html:root .fm-menu ::selection { background: var(--papier); color: var(--fond-menu); }
html:root .fm-menu, html:root .fm-menu::backdrop, html:root .fm-menu__top {
  transition: background-color var(--menu-duree) var(--menu-courbe);
}
html:root .fm-menu :is(a,button):focus-visible { outline: 2px solid currentColor; outline-offset: var(--menu-focus-ecart); }
html:root .fm-menu__sheet {
  display: grid; grid-template-columns: minmax(var(--menu-colonne-min), .9fr) minmax(0, 1.1fr);
  grid-template-rows: auto 1fr; column-gap: var(--menu-colonnes-gap);
  width: min(calc(100% - 2 * var(--menu-marge)), var(--menu-largeur));
  min-height: 100%; margin-inline: auto; padding-block: var(--menu-haut) var(--espace-composition);
}
html:root .fm-menu__top {
  grid-column: 1 / -1; grid-row: 1; position: sticky; top: 0; z-index: 2;
  display: flex; justify-content: space-between; align-items: center; gap: var(--espace-groupe);
  min-height: var(--menu-top-hauteur); padding-block: var(--menu-top-padding); background: var(--fond-menu);
}
html:root .fm-menu__brand { display: flex; align-items: center; flex: none; width: max-content; max-width: 100%; min-height: var(--cible); text-decoration: none; }
html:root .fm-menu__logo { display: block; width: var(--logo-editorial-largeur); height: auto; max-width: 100%; aspect-ratio: var(--logo-editorial-ratio); object-fit: contain; filter: none; opacity: 1; }
html:root .fm-menu__close {
  display: flex; align-items: center; justify-content: center; gap: var(--p-t-s);
  min-height: var(--espace-region); margin-right: calc(-1 * var(--espace-serre)); padding: var(--espace-serre);
  border: 0; background: transparent; color: inherit; cursor: pointer;
  font: 500 var(--p-t-xs)/1.5 var(--f-ui); text-transform: uppercase; letter-spacing: var(--menu-fermer-approche);
}
html:root .fm-menu__close svg { flex: none; }
html:root .fm-menu__main { grid-column: 2; grid-row: 2; align-self: start; min-width: 0; padding-top: var(--menu-principal-haut); }
html:root .fm-menu__main ul { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--menu-rubriques-gap); list-style: none; margin: 0; padding: 0; }
html:root .fm-menu__main li { min-width: 0; margin: 0; padding: 0; }
html:root .fm-menu__main a {
  display: block; width: fit-content; max-width: 100%; min-height: var(--cible); padding-block: 2px;
  font: 300 var(--menu-titre)/var(--menu-interligne) var(--f-titre); color: inherit;
  letter-spacing: var(--menu-approche); text-decoration: none; overflow-wrap: anywhere;
  transition: color var(--p-d-1) var(--menu-courbe), transform var(--p-d-1) var(--menu-courbe);
}
html:root .fm-menu__main a:hover { color: var(--blanc); transform: translateX(var(--espace-minime)); }
html:root .fm-menu__bottom {
  grid-column: 1; grid-row: 2; align-self: start; min-width: 0; padding-top: var(--menu-secondaire-haut);
  display: grid; justify-items: start; gap: var(--menu-groupes-gap);
}
html:root :is(.fm-menu__issue,.fm-menu__secondary) { display: grid; min-width: 0; gap: 0; }
html:root :is(.fm-menu__issue,.fm-menu__secondary) a {
  display: flex; align-items: center; width: fit-content; max-width: 100%; min-height: var(--cible);
  font: 350 var(--menu-service)/1.5 "GT Super Text", Georgia, serif; letter-spacing: var(--menu-service-approche);
  text-transform: lowercase; text-decoration: none; overflow-wrap: anywhere; color: inherit;
  transition: color var(--menu-duree-service) var(--menu-courbe);
}
html:root .fm-menu__issue a { font-weight: 350; }
html:root .fm-menu__issue a + a { font-weight: 350; }
html:root :is(.fm-menu__issue,.fm-menu__secondary) a:hover { text-decoration: underline; color: var(--blanc); }
html:root .fm-menu__social .v3-reseaux { display: flex; justify-content: flex-start; align-items: center; gap: var(--menu-social-gap); margin: 0 0 0 calc(-1 * var(--menu-social-gap)); }
html:root .fm-menu__social a {
  display: grid; place-items: center; width: var(--cible); height: var(--cible); color: inherit; opacity: 1; border-radius: 0; background: transparent;
  transition: color var(--menu-duree-service) var(--menu-courbe);
}
html:root .fm-menu__social a:hover { color: var(--blanc); }
html:root .fm-menu__social svg { width: var(--menu-icone); height: var(--menu-icone); }

html:root .fm-menu:has(.fm-menu__main .r-montpellier:focus-visible) { --fond-menu: var(--r-montpellier-encre); }
html:root .fm-menu:has(.fm-menu__main .r-design:focus-visible) { --fond-menu: var(--r-design-encre); }
html:root .fm-menu:has(.fm-menu__main .r-evasion:focus-visible) { --fond-menu: var(--r-evasion-encre); }
html:root .fm-menu:has(.fm-menu__main .r-atable:focus-visible) { --fond-menu: var(--r-atable-encre); }
html:root .fm-menu:has(.fm-menu__main .r-style:focus-visible) { --fond-menu: var(--r-style-encre); }
html:root .fm-menu:has(.fm-menu__main .r-vernissage:focus-visible) { --fond-menu: var(--r-vernissage-encre); }
html:root .fm-menu:has(.fm-menu__main .r-mobilites:focus-visible) { --fond-menu: var(--r-mobilites-encre); }
html:root .fm-menu:has(.fm-menu__main .r-resonances:focus-visible) { --fond-menu: var(--r-resonances-encre); }
@media (hover: hover) and (pointer: fine) {
  html:root .fm-menu:has(.fm-menu__main .r-montpellier:hover) { --fond-menu: var(--r-montpellier-encre); }
  html:root .fm-menu:has(.fm-menu__main .r-design:hover) { --fond-menu: var(--r-design-encre); }
  html:root .fm-menu:has(.fm-menu__main .r-evasion:hover) { --fond-menu: var(--r-evasion-encre); }
  html:root .fm-menu:has(.fm-menu__main .r-atable:hover) { --fond-menu: var(--r-atable-encre); }
  html:root .fm-menu:has(.fm-menu__main .r-style:hover) { --fond-menu: var(--r-style-encre); }
  html:root .fm-menu:has(.fm-menu__main .r-vernissage:hover) { --fond-menu: var(--r-vernissage-encre); }
  html:root .fm-menu:has(.fm-menu__main .r-mobilites:hover) { --fond-menu: var(--r-mobilites-encre); }
  html:root .fm-menu:has(.fm-menu__main .r-resonances:hover) { --fond-menu: var(--r-resonances-encre); }
}
@media (min-width: 2300px) {
  html:root :is(.fm-menu__issue,.fm-menu__secondary) a { font-size: var(--menu-service-xxl); }
}
@media (max-width: 700px) {
  html:root .fm-menu { --menu-marge: var(--menu-groupes-gap-mobile); }
  html:root .fm-menu__sheet { display: flex; flex-direction: column; padding-block: var(--espace-lie) var(--espace-groupe); }
  html:root .fm-menu__top { min-height: var(--menu-top-hauteur-mobile); padding-block: var(--menu-top-padding-mobile); gap: var(--espace-lie); flex: none; }
  html:root .fm-menu__logo { width: var(--logo-editorial-mobile); }
  html:root .fm-menu__close { font-size: var(--menu-fermer-mobile); gap: var(--menu-social-gap); }
  html:root .fm-menu__main { padding-top: calc(var(--espace-groupe) + var(--espace-lie)); width: 100%; flex: none; }
  html:root .fm-menu__main ul { gap: var(--menu-rubriques-gap-mobile); }
  html:root .fm-menu__main a { font-size: var(--menu-titre-mobile); line-height: var(--menu-interligne-mobile); letter-spacing: var(--menu-approche-mobile); }
  html:root .fm-menu__bottom { padding-top: calc(var(--espace-groupe) + var(--espace-courant)); width: 100%; gap: var(--menu-groupes-gap-mobile); flex: none; }
  html:root .fm-menu__secondary { grid-template-columns: 1fr 1.05fr; column-gap: var(--menu-secondaire-col-gap); width: 100%; }
  html:root :is(.fm-menu__issue,.fm-menu__secondary) a { font-size: var(--menu-service); letter-spacing: var(--menu-service-approche-mobile); }
}
@media (prefers-reduced-motion: reduce) {
  html:root .fm-menu, html:root .fm-menu::backdrop, html:root .fm-menu .fm-menu__top,
  html:root .fm-menu :is(a,button) { animation: none; transition: none; scroll-behavior: auto; }
  html:root .fm-menu__main a:hover { transform: none; }
}

/* Source : assets/css/components/da-interview-sticky.css */
/* La largeur du corps reste libre, contrairement à ses paragraphes directs. */
html:root #contenu.focus-single .focus-article-body > .s1-qa { width:min(1100px,calc(100% - 2 * var(--marge))); max-width:none; display:grid; grid-template-columns:4fr 8fr; gap:clamp(20px,5vw,72px); align-items:start; margin:44px auto; padding-top:24px; border-top:1px solid var(--r-encre,var(--encre)); overflow:visible; }
html:root #contenu.focus-single .s1-qa > .s1-q { position:sticky; top:var(--s1-header-offset,112px); margin:0; font:500 17px/1.5 var(--f-ui); letter-spacing:0; text-transform:none; color:var(--encre); min-width:0; }
html:root #contenu.focus-single .s1-q :is(strong,b,a) { font:inherit; color:inherit; }
html:root #contenu.focus-single .s1-q a { text-decoration:underline; text-underline-offset:.18em; }
:root .s1-r { --da-lh-body:1.66; min-width:0; color:var(--encre); font:350 20px/1.66 var(--f-texte); }
html:root #contenu.focus-single .focus-article-body .s1-qa > p.s1-q.s1-q { line-height:1.5; }
html:root #contenu.focus-single .focus-article-body .s1-r > p { font:inherit; margin:0 0 1.5em; }
:root .s1-r > :last-child { margin-bottom:0; }
:root .s1-r .da-q-break { display:none; }
@media(max-width:760px) {
 html:root #contenu.focus-single .focus-article-body > .s1-qa { display:block; padding-top:0; }
 html:root #contenu.focus-single .s1-qa > .s1-q { position:static; padding:12px 0; margin-bottom:12px; background:var(--fond); border-bottom:1px solid var(--r-encre,var(--encre)); z-index:3; }
 html:root #contenu.focus-single .s1-qa > .s1-q.s1-q-stick { position:sticky; }
}
@media(max-width:640px) {
 :root .s1-r { font-size:20px; }
 html:root #contenu.focus-single .s1-qa > .s1-q { font-size:16px; }
}

/* Source : assets/css/components/da-pullquote-full.css */
/* Le corps est déjà pleine largeur : pas de 100vw qui inclurait la barre de défilement. */
html:root #contenu.focus-single .focus-article-body > blockquote.s1-pull { --da-lh-body:1.1; box-sizing:border-box; width:100%; max-width:none; margin:clamp(40px,7vw,100px) 0; padding:clamp(40px,7vw,100px) var(--marge); border:0; background:var(--r-encre,var(--encre)); color:var(--fond); font:italic 300 clamp(28px,4.6vw,64px)/1.1 var(--f-titre); text-align:center; }
html:root #contenu.focus-single .focus-article-body .s1-pull > * { max-width:1100px; margin:0 auto; color:inherit; font:inherit; }
:root .s1-pull > p + p { margin-top:1em; }
html:root #contenu.focus-single .focus-article-body > blockquote.s1-pull-long { font-size:clamp(24px,3.4vw,44px); }
html:root #contenu.focus-single .focus-article-body .s1-pull cite { display:block; margin:24px auto 0; font:400 12px/1.5 var(--f-ui); letter-spacing:.14em; text-transform:uppercase; }
:root .s1-pull a { color:inherit; }
:root .s1-pull a:focus-visible { outline:2px solid currentColor; outline-offset:3px; }

/* Source : assets/css/components/da-view-transitions.css */
/* S2, opt-in seulement sur les gabarits autorisés. Aucun état caché permanent. */
/* L'attente est bornée à la surface photographique, la légende reste sur papier. */
.focus-article-hero[data-hero-id] { display:grid; grid-template-columns:minmax(0,1fr); }
/* Cette attente reste dans root pendant que la surface nommée grandit. */
.focus-article-hero[data-hero-id]::before { content:""; grid-area:1/1; background-image:var(--s2-backdrop,none); background-size:cover; background-position:var(--s2-focal,50% 50%); background-repeat:no-repeat; }
.s2-hero-surface { display:block; position:relative; overflow:clip; grid-area:1/1; min-width:0; background-color:var(--encre); background-image:var(--s2-wait,none); background-size:cover; background-position:var(--s2-focal,50% 50%); background-repeat:no-repeat; }
.s2-hero-surface > img { display:block; position:relative; width:100%; transition:opacity .4s ease; }
.s2-waiting-layer { position:absolute; inset:0; display:grid; place-items:center; overflow:clip; pointer-events:none; }
.s2-waiting-crop { display:block; width:100%; min-height:100%; background-size:cover; background-position:var(--s2-focal,50% 50%); background-repeat:no-repeat; }
.s2-fading-shade { position:absolute; pointer-events:none; opacity:0; transition:opacity .4s ease; }
html:root.s2-shade-pending #contenu.focus-single .t1-article-frame .v3-ouv .cont::before,
html:root.s2-shade-pending .v3-tete::before { opacity:0!important; }
.s2-hero-surface.s2-image-pending > img { opacity:0; }
@media(max-width:1023px) { .native-hero-group .s2-hero-surface, .native-hero-group .focus-article-hero[data-hero-id]::before { background-size:contain; } .s2-hero-surface:has(> img[data-focus-photo="left"]), .focus-article-hero[data-hero-id]:has(img[data-focus-photo="left"])::before { background-position:25% 50%; } }
@media (prefers-reduced-motion:no-preference) {
  @view-transition { navigation:auto; }
  html:root [data-s2-hero-surface] { view-transition-name:s2-hero; }
  html:root [data-s2-transition-image] { object-fit:cover; }
  html:root::view-transition-group(s2-hero) { animation-duration:.7s; animation-timing-function:cubic-bezier(.7,0,.2,1); }
  html:root::view-transition-old(s2-hero), html:root::view-transition-new(s2-hero) { width:100%; height:100%; object-fit:cover; animation-duration:.7s; }
  /* Géométrie du groupe inchangée, 700 ms : seul le fondu de ses clichés est
     neutralisé. L'ancien est déjà peint ; le nouveau peut encore être vide. */
  html:root.s2-enter::view-transition-old(s2-hero) { opacity:1; animation:none; mix-blend-mode:normal; }
  html:root.s2-enter::view-transition-new(s2-hero) { opacity:0; animation:none; }
  html:root.s2-wait-for-photo::view-transition-new(s2-hero) { opacity:0; animation:none; }
  html:root.s2-wait-for-photo::view-transition-old(s2-hero) { opacity:1; animation:none; }
  html:root::view-transition-old(root), html:root::view-transition-new(root) { animation-duration:.3s; animation-timing-function:ease; }
  html:root.s2-enter .v3-ouv :is(h1,.credits), html:root.s2-enter .focus-article > .focus-chapo { animation:s2-title-in .5s; }
  /* La photo qui grandit est unique : pas de doublon déjà plein écran dans root. */
  html:root.s2-enter .focus-article-hero[data-hero-id]::before { background-image:none; background-color:var(--encre); }
  html:root:root .v3-tete { view-transition-name:s2-header; }
  html:root::view-transition-old(s2-header) { display:none; }
  html:root::view-transition-new(s2-header) { animation:none; }
  html:root.s2-enter .v3-ouv :is(h1,.focus-chapo,.chapo) { animation-delay:0s; }
  html:root.s2-root-only::view-transition-group(s2-hero), html:root.s2-root-only::view-transition-old(s2-hero) { animation-duration:.3s; }
}
@keyframes s2-title-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
/* Transitions 4 : uniquement l'aller, aucune surcharge des retours traverse. */
.s4-hero-shade { display:none; }
html:root.s4-arrival .s4-hero-shade { display:block; position:absolute; inset:0; pointer-events:none; background:linear-gradient(to top,rgba(28,26,23,.8) 0%,rgba(28,26,23,.78) 12%,rgba(28,26,23,.76) 24%,rgba(28,26,23,.73) 36%,rgba(28,26,23,.69) 48%,rgba(28,26,23,.63) 60%,rgba(28,26,23,.42) 72%,rgba(28,26,23,.16) 84%,rgba(28,26,23,.03) 92%,rgba(28,26,23,0) 100%); }
html:root.s4-arrival #contenu.focus-single .t1-article-frame .v3-ouv .cont::before { background:none!important; }
@media (prefers-reduced-motion:no-preference) {
 html:root.s4-arrival::view-transition { background:var(--papier); }
 html:root.s4-arrival::view-transition-old(root) { animation:s4-page-out .15s ease both; mix-blend-mode:normal; }
 html:root.s4-arrival::view-transition-new(root) { animation:s4-page-in .25s .1s ease both; mix-blend-mode:normal; }
 html:root.s4-simple::view-transition-new(root) { animation-duration:.2s; }
 html:root.s4-arrival::view-transition-old(s2-hero),
 html:root.s4-arrival::view-transition-new(s2-hero) { height:100%; width:100%; object-fit:cover; object-position:var(--s2-focal,50% 50%); mix-blend-mode:normal; filter:none; backdrop-filter:none; }
 html:root.s4-simple::view-transition-group(s2-hero) { animation:none; }
 html:root.s4-simple::view-transition-old(s2-hero) { animation:s4-page-out .15s ease both; }
 html:root.s4-simple::view-transition-new(s2-hero) { display:none; }
 html:root.s4-arrival .s4-photo::before { background:none!important; }
 html:root.s4-arrival .s2-hero-surface { filter:none; backdrop-filter:none; mix-blend-mode:normal; box-shadow:none; }
 html:root.s4-no-native #contenu { animation:s4-page-in .3s ease both; }
 html:root.s4-arrival .s2-trace.s2-trace-run { animation-delay:.3s; }
}
@keyframes s4-page-out { from { opacity:1; } to { opacity:0; } }
@keyframes s4-page-in { from { opacity:0; } to { opacity:1; } }
@media (prefers-reduced-motion:reduce) {
  html:root [data-s2-hero-surface] { view-transition-name:none; }
  .s2-hero-surface > img, .s2-fading-shade { transition:none; }
  html:root::view-transition-group(*), html:root::view-transition-old(*), html:root::view-transition-new(*) { animation:none!important; }
}

/* Source : assets/css/components/da-trace-lettrage.css */
/* Deux masques imbriqués : silhouette originale et balayage indépendant. */
@property --w { syntax:"<percentage>"; inherits:false; initial-value:100%; }
:root .s2-trace { display:block; pointer-events:none; width:clamp(180px,24vw,320px); max-width:100%; aspect-ratio:322/203; flex-shrink:0; }
:root .s2-trace i { display:block; width:100%; height:100%; background:var(--r-encre,var(--encre)); -webkit-mask:var(--m) center/contain no-repeat; mask:var(--m) center/contain no-repeat; }
:root .s2-trace-article { margin:0 auto 6px; opacity:1; }
:root .focus-rubric:has(.s2-trace-article) { display:block; width:100%; margin-inline:auto; }
/* Ligne dédiée au décor, en haut à droite, donc aucun texte recouvert. */
:root .rub-ouv .s2-trace-category { align-self:flex-end; margin-left:auto; width:clamp(200px,30vw,440px); opacity:.18; }
:root:root .s2-trace-hero { width:clamp(180px,24vw,320px); max-width:100%; height:96px; margin:0 0 0 auto; opacity:.16; }
:root:root .s2-trace-hero i { background:var(--fond); }
/* DAV-L1 : ratio du fichier fourni, sans modifier la géométrie du repli PNG. */
:root:root .s2-trace-svg { aspect-ratio:var(--ar); height:auto; }
:root:root .s2-trace-svg i { mask-mode:alpha; }
:root:root:root .s2-trace-hero.s2-trace-svg { width:min(clamp(180px,24vw,320px),calc(96px * var(--ar))); height:auto; }
@media(max-width:600px) { :root:root .s2-trace-svg { max-width:60%; min-width:0; } }
:root .s2-trace.s2-trace-run { -webkit-mask-image:linear-gradient(104deg,#000 var(--w),transparent calc(var(--w) + 12%)); mask-image:linear-gradient(104deg,#000 var(--w),transparent calc(var(--w) + 12%)); animation:s2-trace-wipe 2.2s cubic-bezier(.55,0,.25,1) both; }
:root .s2-trace-category.s2-trace-run { opacity:1; animation:s2-trace-wipe 2.2s cubic-bezier(.55,0,.25,1) both,s2-trace-settle 1.6s 2.2s ease both; }
@keyframes s2-trace-wipe { from { --w:-12%; } to { --w:100%; } }
@keyframes s2-trace-settle { from { opacity:1; } to { opacity:.18; } }
@media (max-width:640px) { :root .s2-trace { max-width:60%; } }
@supports not (mask-image:linear-gradient(black,transparent)) {
  :root .s2-trace { display:none; }
  :root .s2-trace + .sr-only { position:static; width:auto; height:auto; margin:0; overflow:visible; clip-path:none; white-space:normal; }
}
@media (prefers-reduced-motion:reduce) {
  :root .s2-trace.s2-trace-run { animation:none; -webkit-mask-image:none; mask-image:none; }
  :root .s2-trace-category.s2-trace-run { opacity:.18; }
}

/* Source : assets/css/components/da-article-hero-plein.css */
/* T1 : ordre DOM conservé, une seule copie du chapô. Le corps reste hors de la grille. */
html:root { --t1-header:104px; --t1-height:clamp(520px,calc(100svh - var(--t1-header)),960px); }
html:root .t1-article-frame { display:grid; grid-template-columns:minmax(0,1fr); isolation:isolate; position:relative; }
html:root #contenu .t1-article-frame > .v3-ouv { grid-area:1/1; z-index:1; align-self:start; display:flex; align-items:flex-end; min-width:0; height:var(--t1-height); margin:0; padding:clamp(20px,3vw,48px) var(--marge); color:var(--fond); background:linear-gradient(transparent,color-mix(in srgb,var(--encre) 72%,transparent)); }
html:root #contenu .t1-article-frame .v3-ouv .cont { width:100%; max-width:1200px; margin:0; padding:0; gap:12px; align-items:flex-start; text-align:left; }
html:root #contenu .t1-article-frame .v3-ouv h1 { margin:0; font:300 clamp(36px,6vw,88px)/1.05 var(--f-titre); color:inherit; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; hyphens:none; }
html:root #contenu .t1-article-frame .v3-ouv :is(.focus-chapo,.chapo) { margin:0; max-width:760px; font:italic 350 clamp(19px,1.6vw,23px)/1.5 var(--f-texte); color:inherit; text-align:left; }
html:root #contenu .t1-article-frame .v3-ouv :is(.da-breadcrumb,.da-breadcrumb a,.da-breadcrumb [aria-current],.da-breadcrumb-separator,.credits,.credits strong,.focus-label) { color:inherit; }
html:root #contenu .t1-article-frame .da-head-credits { justify-content:flex-start; gap:8px 22px; }
html:root .t1-article-frame .s2-trace { color:var(--papier); width:clamp(126px,16.8vw,224px); max-height:64px; margin:0; }
html:root .t1-article-frame .s2-trace i { background:var(--fond); }
html:root #contenu .t1-article-frame > .focus-article-hero { grid-area:1/1; margin:0; width:100%; max-width:none; }
html:root .t1-article-frame > .focus-article-hero > .s2-hero-surface > img { display:block; width:100%; height:var(--t1-height); object-fit:cover; }
html:root .t1-article-frame a { min-height:44px; display:inline-flex; align-items:center; }
html:root .t1-article-frame a:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
html:root[data-t1-header] .v3-tete { position:fixed; inset:0 0 auto; background:var(--fond); color:var(--encre); }
html:root[data-t1-visible] .v3-tete { background:transparent; color:var(--fond); }
html:root[data-t1-visible] .v3-tete :is(a,button) { color:inherit; }
html:root[data-t1-visible] .v3-tete .v3-logo img { filter:brightness(0) invert(1); }
html:root[data-t1-visible] .v3-tete .filet { background:currentColor; border-color:currentColor; }
@media(max-width:600px) {
 html:root { --t1-header:72px; --t1-height:min(88svh,720px); }
 html:root #contenu .t1-article-frame > .v3-ouv { padding:20px; }
 html:root #contenu .t1-article-frame .da-head-credits { gap:6px 12px; }
}

/* Source : assets/css/components/da-coherence.css */
/* C1 : papier et composants communs, sans modifier les gabarits d'article. */
html:root body { background-color:var(--page-teinte,var(--papier)); }
html:root main, html:root .v3-art:not(.da-card-empty) { background-color:transparent; }
html:root :is(.fd-public,.fd-discovery,.fd-directory,.fd-card) { background-color:var(--papier); }
html:root .fd-public { --fd-paper:var(--papier); --fd-card:var(--papier); }
html:root .fd-public { --fd-muted:var(--encre-2); }
html:root .fd-public :is(.fd-kicker,.fd-count,.fd-category,.fd-image-credit,.fd-distance) { color:var(--encre-2); }
html:root .fd-public input::placeholder { color:var(--encre-2); opacity:1; }
html:root .fd-public .fd-address { color:var(--encre-2)!important; }
/* Les en-têtes sur photographie et les panneaux S1 restent prioritaires. */
html:root #contenu :is(.btn,.focus-back,.focus-article-return,.s1-hero-cta) { min-height:48px; min-width:44px; border-width:1px; border-radius:999px; font-family:var(--f-ui); }
html:root #contenu .btn-plein:is(:hover,:focus-visible) { background:var(--encre); color:var(--papier); }
html:root .v3-tete { transition:background-color var(--mvt-teinte) var(--ease-in-out); }
html:root:not([data-s1-hero-visible]):not([data-t1-visible]) .v3-tete { background-color:var(--page-teinte,var(--papier)); }
@media(prefers-reduced-motion:reduce) { html:root .v3-tete { transition:none; } }
html:root #contenu:not(.focus-single):not(.focus-home) h1 { font-size:var(--h1-page); line-height:1.05; text-transform:none; }
/* Conserver la taille des étiquettes ; ne corriger que le gris secondaire. */
html:root :is(.meta,.focus-home-meta,.focus-archive-meta,.ann-note,.ct-note,.fd-card .fd-meta) { color:var(--encre-2); }
html:root :is(#contenu.ct,#contenu.ann,#contenu.mag,.v3-lettre,#contenu.dist) :is(.btn,.btn-plein,.fd-action-link,button:not(.fd-map-column button),input[type=submit]) {
 box-sizing:border-box; height:auto; min-height:48px; min-width:44px; max-width:100%; border:1px solid var(--encre); border-radius:999px;
 padding:12px 22px; font:600 12px/1.5 var(--f-ui); color:var(--encre); background:transparent;
 display:inline-flex; align-items:center; justify-content:center; text-align:center; text-decoration:none; transition:transform .25s;
}
html:root :is(#contenu.ct,#contenu.ann,#contenu.mag,.v3-lettre) :is(.btn-plein,input[type=submit],button[type=submit]),
html:root #contenu.dist :is(.fd-nearme,.fd-primary-filters button.is-active) { background:var(--encre); color:var(--papier); }
html:root :is(#contenu.mag,#contenu.dist) :is(.focus-media-stage button,.dist-devenir .btn-plein) { background:var(--papier); color:var(--encre); }
html:root :is(#contenu.ct,#contenu.ann,#contenu.mag,.v3-lettre,#contenu.dist) :is(.btn,.btn-plein,.fd-action-link,button:not(.fd-map-column button),input[type=submit]):focus-visible { outline:2px solid var(--encre); outline-offset:3px; }
@media(hover:hover) { html:root :is(#contenu.ct,#contenu.ann,#contenu.mag,.v3-lettre,#contenu.dist) :is(.btn,.btn-plein,.fd-action-link,button:not(.fd-map-column button),input[type=submit]):not(:disabled):hover { transform:translateY(-2px); } }
@media(prefers-reduced-motion:reduce) { html:root :is(#contenu.ct,#contenu.ann,#contenu.mag,.v3-lettre,#contenu.dist) :is(.btn,.btn-plein,.fd-action-link,button:not(.fd-map-column button),input[type=submit]) { transition:none; transform:none!important; } }

/* E2 : cycle de vie initial seulement, la durée de défilement reste historique. */
html:root[data-focus-header-boot] :is(body, .v3-tete) { transition: none; }

/* E2 : fond restauré pendant le verrou de géométrie TRANSITIONS 4 uniquement. */
html:root[data-focus-header-restore] body { background-color:var(--focus-header-paper); }
html:root[data-focus-header-restore]:not([data-s1-hero-visible]):not([data-t1-visible]) .v3-tete { background-color:var(--focus-header-paper); }

/* Source : assets/css/components/da-article-t2.css */
/* DAV-T2 : aucune règle active sans le drapeau, aucun effet animé. */
html:root[data-t1-visible] .v3-tete { isolation:isolate; background:transparent; }
html:root[data-t1-visible] .v3-tete :is(a,button):focus-visible { outline:2px solid var(--fond); outline-offset:3px; box-shadow:0 0 0 5px var(--encre); }
/* Le texte est dans .v3-ouv, frère de la figure photo, et non dans la figure. */
html:root #contenu .t1-article-frame > .v3-ouv { background:none; }
html:root #contenu .t1-article-frame .v3-ouv .cont { position:relative; isolation:isolate; max-width:none; }
html:root #contenu.focus-single .t1-article-frame .v3-ouv .cont::before { content:""; position:absolute; z-index:-1; pointer-events:none; inset:-256px calc(-1 * var(--marge)) calc(-1 * clamp(20px,3vw,48px)); inset-block-start:-256px; background:linear-gradient(to bottom,rgba(28,26,23,0) 0,rgba(28,26,23,.025) 32px,rgba(28,26,23,.083) 64px,rgba(28,26,23,.167) 96px,rgba(28,26,23,.278) 128px,rgba(28,26,23,.392) 160px,rgba(28,26,23,.493) 192px,rgba(28,26,23,.574) 224px,rgba(28,26,23,.64) 256px,rgba(28,26,23,.72) 100%); }
html:root #contenu.focus-single .t1-article-frame .v3-ouv .da-head-credits,
html:root #contenu.focus-single .t1-article-frame .v3-ouv .da-head-credits :is(a,strong,span,time) { color:var(--fond); opacity:1; }
html:root #contenu.focus-single .focus-carnet.b-adresse { background:var(--papier); }
html:root #contenu.focus-single p.da-chapo-mobile[data-t2-chapo="mobile"] { display:none; }
@media (max-width:760px) {
 html:root #contenu.focus-single .s1-qa > .s1-q { background:var(--papier); }
}
@media (max-width:640px) {
 html:root { --t1-height:min(78svh,640px); }
 html:root #contenu .t1-article-frame .v3-ouv [data-t2-chapo="desktop"] { display:none; }
 html:root #contenu .t1-article-frame .v3-ouv .cont::before { bottom:-20px; }
 html:root #contenu.focus-single p.da-chapo-mobile[data-t2-chapo="mobile"] { display:block; width:calc(100% - 2 * var(--marge)); max-width:760px; margin:32px auto 0; color:var(--encre-2); font:italic 350 19px/1.5 var(--f-texte); text-align:center; }
}

/* Source : assets/css/components/da-coherence3.css */
/* C3 : compléter les pastilles C1 sur accueil et recherche seulement. */
html:root :is(.focus-home,.da-search) .btn {
 box-sizing:border-box; min-height:48px; min-width:44px; max-width:100%; height:auto;
 border:1px solid var(--encre); border-radius:999px; padding:12px 22px;
 font:600 12px/1.5 var(--f-ui); color:var(--encre); background:transparent;
 display:inline-flex; align-items:center; justify-content:center; text-align:center;
 text-decoration:none; transition:transform .25s;
}
html:root .focus-home .v3-ouvre .btn-clair { color:var(--fond); border-color:var(--fond); background:rgba(14,13,11,.76); }
html:root :is(.focus-home,.da-search) .btn-plein { color:var(--papier); background:var(--encre); }
html:root :is(.focus-home,.da-search) .btn:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
@media(hover:hover) {
 html:root :is(.focus-home,.da-search) .btn:not(:disabled):hover { transform:translateY(-2px); background:var(--encre); color:var(--papier); }
 html:root :is(.focus-home,.da-search) .btn-clair:hover { color:var(--encre); background:var(--papier); }
}
html:root :is(.focus-home,.da-search) .btn:active { transform:none; }
@media(prefers-reduced-motion:reduce) {
 html:root :is(.focus-home,.da-search) .btn { transition:none; transform:none!important; }
}
/* Bloc F : le bouton natif reste opérant, seul son habillage mobile change. */
@media(max-width:640px) {
 html:root #wpconsent-consent-floating,
 html:root #wpconsent-container::part(wpconsent-settings-button) {
  position:fixed!important; inset:auto 12px 12px auto!important;
  width:44px!important; height:44px!important; min-width:44px!important; min-height:44px!important;
  max-width:44px!important; max-height:44px!important; padding:8px!important; box-sizing:border-box;
 }
}

/* Source : assets/css/components/da-polish.css */
/* P1 : chaque règle exige son drapeau ; les données et la géométrie T2 restent intactes. */
html:root #contenu :is(.btn-plein,input[type=submit]) { background:var(--encre); color:var(--papier); }
html:root #contenu :is(.btn-plein,input[type=submit]):is(:hover,:focus-visible) { background:var(--encre); color:var(--papier); }
html:root #contenu .focus-gallery-open { position:absolute; width:1px; height:1px; min-width:0; min-height:0; padding:0; margin:-1px; border:0; clip-path:inset(50%); overflow:hidden; }
html:root #contenu .wp-block-gallery img { cursor:zoom-in; }
html:root #contenu .wp-block-gallery figure:has(.focus-gallery-open:focus-visible) img,
html:root #contenu .wp-block-gallery img:focus-visible { outline:2px solid var(--encre); outline-offset:3px; }
html:root #contenu .focus-related { width:calc(100% - 2 * var(--marge)); max-width:1200px; margin-inline:auto; }
html:root #contenu .focus-related > p { justify-self:end; white-space:nowrap; }
html:root #contenu .focus-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-flow:row; gap:24px; justify-content:normal; overflow:visible; }
html:root #contenu .focus-related-grid > a { min-width:0; max-width:none; width:100%; }
html:root #contenu .focus-related-grid img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
html:root #contenu .focus-related-grid h3 { font:300 clamp(22px,2vw,24px)/1.2 var(--f-titre); margin-top:12px; }
html:root #contenu .focus-related-grid .etiq { font-size:12px; }
html:root #contenu .s2-trace-article { width:clamp(126px,16.8vw,224px); margin-bottom:4.2px; }
html:root #contenu .t1-article-frame .s2-trace-article { width:clamp(105px,12.6vw,168px); max-height:44.8px; margin-bottom:0; }
html:root #contenu .focus-article-body .p1-gallery { display:flex; flex-wrap:wrap; gap:var(--galerie-gap); align-items:start; justify-content:center; }
/* Ancien balisage Gutenberg : la liste traverse les deux colonnes de sa figure. */
html:root #contenu .focus-article-body .wp-block-gallery > .blocks-gallery-grid.p1-gallery { grid-column:1 / -1; width:100%; flex-basis:100%; margin:0; }
/* Une rangée unique se justifie aussi ; le plafond individuel borne la dernière. */
html:root #contenu .focus-article-body .p1-gallery::after { content:none; }
/* Réserve de regroupement : la rangée peut se resserrer avant de se couper.
   Le facteur supérieur à 1 évite la croissance partielle des portraits isolés. */
html:root #contenu .focus-article-body .p1-gallery > .p1-image:not(#individual-image) { flex:var(--p1-grow) 1 calc(var(--p1-ar) * max(calc(var(--galerie-hauteur) * .8),var(--p1-min-hauteur,0px))); width:auto; max-width:min(100%,calc(var(--p1-ar) * var(--galerie-hauteur) * 1.35)); min-width:min(120px,100%); margin:0; align-self:start; grid-column:auto; grid-row:auto; }
html:root #contenu.focus-single .focus-article-body .p1-gallery .p1-image img { width:100%; height:auto; max-height:none; display:block; aspect-ratio:var(--p1-ar); object-fit:contain; }
html:root #contenu .focus-article-body .p1-image :is(a,button) { width:100%; height:auto; max-width:100%; }
html:root #contenu .focus-article-body .p1-gallery figcaption { font:400 12px/1.5 var(--f-ui); color:var(--encre-2); padding-top:12px; }
html:root #contenu .p1-gallery > figcaption { flex:0 0 100%; order:2; }
html:root #contenu.mag .focus-media-facade { width:100%; max-width:100%; background:var(--papier); color:var(--encre); border:1px solid var(--ligne); }
html:root #contenu.mag .focus-media-stage { width:100%; max-width:100%; aspect-ratio:16/10; height:min(80svh,820px); background:var(--papier); color:var(--encre); }
html:root #contenu.mag .focus-media-stage button { background:var(--encre); color:var(--papier); }
html:root #contenu.mag .focus-media-stage :is(iframe,video) { width:100%; height:100%; }
html:root #contenu .wpcf7 { width:100%; max-width:720px; min-width:0; }
html:root #contenu .wpcf7 .cf7resp table { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 40px; width:100%; }
html:root #contenu .wpcf7 .cf7resp :is(tbody,tr) { display:contents; }
html:root #contenu .wpcf7 .cf7resp td { display:block; min-width:0; width:auto; padding:0; border:0; }
html:root #contenu .wpcf7 .cf7resp td:has([name=your-tel],textarea,input[type=submit]) { grid-column:1/-1; }
html:root #contenu .wpcf7 .cf7resp p { margin:0; }
html:root #contenu .wpcf7 .cf7resp label { display:block; font:400 12px/1.5 var(--f-ui); text-transform:uppercase; letter-spacing:.12em; color:var(--encre-2); }
html:root #contenu .wpcf7 .cf7resp label:focus-within { color:var(--encre); }
html:root #contenu .wpcf7 .wpcf7-form-control-wrap { display:block; margin-top:8px; }
html:root #contenu .wpcf7 :is(input:not([type=hidden]):not([type=checkbox]):not([type=submit]),select,textarea):where(:not(.ds-champ)) { width:100%; max-width:100%; padding:12px 0; border:0; border-bottom:1px solid rgba(28,26,23,.35); border-radius:0; background:transparent; color:var(--encre); font:350 20px/1.4 var(--f-texte); box-sizing:border-box; transition:box-shadow .2s; }
html:root #contenu .wpcf7 :is(input,select,textarea):focus-visible { outline:2px solid var(--encre); outline-offset:3px; box-shadow:inset 0 -2px var(--encre); }
html:root #contenu .wpcf7 textarea { min-height:160px; resize:vertical; }
html:root #contenu .wpcf7 input.wpcf7-quiz { width:140px; }
html:root #contenu .wpcf7 .wpcf7-list-item { margin:0; }
html:root #contenu .wpcf7 .wpcf7-list-item label { display:flex; align-items:flex-start; gap:12px; min-height:44px; color:var(--encre); font:350 15px/1.5 var(--f-texte); text-transform:none; letter-spacing:normal; cursor:pointer; }
html:root #contenu .wpcf7 input[type=checkbox] { appearance:none; flex:0 0 20px; width:20px; height:20px; margin:2px 0 0; border:1px solid var(--encre); background:transparent; }
html:root #contenu .wpcf7 input[type=checkbox]:checked::after { content:""; display:block; width:10px; height:6px; margin:4px 3px; border-left:2px solid var(--encre); border-bottom:2px solid var(--encre); transform:rotate(-45deg); }
html:root #contenu .wpcf7 input[type=submit] { min-height:48px; border:1px solid var(--encre); border-radius:999px; padding:12px 24px; font:600 12px/1.5 var(--f-ui); cursor:pointer; }
html:root #contenu .wpcf7 input[type=submit] { padding-right:52px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F9F4E6' stroke-width='1.5'%3E%3Cpath d='M3 12h17m-6-6 6 6-6 6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 20px center; background-size:20px; transition:transform .2s; }
@media(hover:hover) { html:root #contenu .wpcf7 input[type=submit]:hover { transform:translateY(-2px); } }
html:root #contenu .wpcf7 input[type=submit]:active { transform:none; }
html:root #contenu .wpcf7 .submitting input[type=submit] { opacity:.6; cursor:wait; }
html:root #contenu .wpcf7 .wpcf7-not-valid-tip { font:400 13px/1.5 var(--f-ui); color:#8B2635; }
html:root #contenu .wpcf7 [aria-invalid=true] { border-bottom-color:#8B2635; }
html:root #contenu .wpcf7 .wpcf7-response-output { border:1px solid var(--ligne); color:var(--encre); }
html:root #contenu .wpcf7 :is(input,textarea):autofill { box-shadow:inset 0 0 0 1000px var(--papier); -webkit-text-fill-color:var(--encre); }
@media(min-width:1201px) { html:root #contenu .focus-related-grid { gap:32px; } }
@media(max-width:900px) { html:root #contenu .focus-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
 html:root #contenu .focus-related-grid { grid-template-columns:minmax(0,1fr); }
 html:root #contenu .focus-related-grid img { aspect-ratio:16/10; }
 html:root #contenu .s2-trace-article { max-width:40%; }
 html:root #contenu .focus-article-body { --galerie-gap:8px; }
 html:root #contenu.mag .focus-media-stage { height:min(70svh,640px); }
 html:root #contenu .wpcf7 .cf7resp table { grid-template-columns:minmax(0,1fr); }
 html:root #contenu .wpcf7 :is(input:not([type=hidden]):not([type=checkbox]):not([type=submit]),textarea,select):where(:not(.ds-champ)) { font-size:18px; }
}
@media(prefers-reduced-motion:reduce) { html:root #contenu .wpcf7 :is(input,textarea,select) { transition:none; transform:none; } }

/* Source : assets/css/components/da-finitions4.css */
/* C4, présentation seulement. Aucun effet hors du drapeau. */
html:root #contenu.focus-home .dfl-cartes .v3-art:not(.da-card-empty),
html:root #contenu.focus-home .dfl-cartes .focus-home-card-link { background:transparent; border:0; box-shadow:none; }
html:root #contenu.focus-home .dfl-cartes .focus-home-card-link { gap:0; }
html:root #contenu.focus-home .dfl-cartes .etiq { margin-top:16px; }
html:root #contenu.focus-home .dfl-cartes h3 { margin-top:8px; color:var(--encre); }
html:root #contenu.focus-single :is(.focus-article-hero,.t1-article-frame) .focus-chapo { display:none; }
html:root #contenu.focus-single p.da-chapo-mobile[data-t2-chapo="mobile"] { display:block; width:calc(100% - 2 * var(--marge)); max-width:760px; margin:32px auto 0; color:var(--encre-2); font:italic 350 19px/1.5 var(--f-texte); text-align:center; }
html:root #contenu .t1-article-frame .v3-ouv .cont::before { inset-block-start:0; }
html:root #contenu.focus-category .rub-ouv > .cont > .s2-trace-category { position:relative; inset:auto; display:block; width:clamp(140px,21vw,308px); max-width:100%; margin:32px auto 0; }
html:root #contenu.focus-category .rub-ouv > .cont > .s2-trace-category + h1 { margin-block-start:24px; }
html:root #contenu.focus-single .c4-qa .s1-q :is(strong,b) { font:inherit; }
html:root #contenu.focus-single .c4-qa .s1-q a { color:inherit; text-decoration:underline; text-underline-offset:.18em; }
html:root #contenu.focus-single .c4-qa a:focus-visible { outline:2px solid var(--encre); outline-offset:3px; }
html:root #contenu.focus-single .focus-related { width:calc(100% - 2 * var(--marge)); max-width:var(--lecture,680px); margin-inline:auto; }
html:root #contenu.focus-single .focus-related > p { justify-self:end; white-space:nowrap; }
html:root #contenu.focus-single .focus-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-flow:row; justify-content:normal; gap:clamp(16px,2vw,32px); overflow:visible; }
html:root #contenu.focus-single .focus-related-grid > a { width:100%; max-width:none; min-width:0; }
html:root #contenu.focus-single .focus-related-grid img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
html:root #contenu.focus-single .focus-related-grid h3 { margin-top:12px; }
html:root #contenu.focus-home .s1-issue-band { margin-block:96px; background:var(--papier-fonce); }
html:root #contenu.focus-home .s1-issue-band > a { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-items:center; gap:32px; width:100%; max-width:var(--col); margin-inline:auto; box-sizing:border-box; height:auto; min-height:0; max-height:none; padding:48px var(--marge); }
html:root #contenu.focus-home .s1-issue-band .ph { grid-column:1/7; width:100%; height:auto; aspect-ratio:4/3; }
html:root #contenu.focus-home .s1-issue-band .ph img { width:100%; height:100%; object-fit:cover; }
html:root #contenu.focus-home .s1-issue-band .legende { grid-column:8/13; gap:16px; }
html:root #contenu.focus-home .s1-issue-band #une { font-size:clamp(32px,4vw,56px); }
html:root #contenu.focus-home .s1-issue-band .btn { border-radius:999px; min-height:48px; }
@media(min-width:1024px) { html:root #contenu.focus-single p.da-chapo-mobile[data-t2-chapo="mobile"] { font-size:21px; max-width:820px; } }
@media(max-width:1023px) {
 html:root #contenu.focus-single .focus-related-grid:not(:has(> :nth-child(3))) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 html:root #contenu.focus-home .s1-issue-band { margin-block:72px; }
}
@media(max-width:640px) {
 html:root #contenu.focus-category .rub-ouv > .cont > .s2-trace-category { max-width:56vw; }
 html:root #contenu.focus-single .focus-related-grid,
 html:root #contenu.focus-single .focus-related-grid:not(:has(> :nth-child(3))) { grid-template-columns:minmax(0,1fr); gap:20px; }
 html:root #contenu.focus-single .focus-related-grid img { aspect-ratio:16/10; }
 html:root #contenu.focus-home .s1-issue-band { margin-block:48px; }
 html:root #contenu.focus-home .s1-issue-band > a { grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto; gap:24px; padding:32px var(--marge); }
 html:root #contenu.focus-home .s1-issue-band :is(.ph,.legende) { grid-column:1; }
 html:root #contenu.focus-home .s1-issue-band .btn { width:100%; justify-content:center; box-sizing:border-box; }
}

/* Source : assets/css/components/da-finitions5.css */
/* C5 : chaque règle est bornée au drapeau ; aucune dépendance JavaScript. */
html:root #contenu.focus-single .t1-article-frame .v3-ouv h1 { display:block; max-width:18ch; font-size:var(--t-hero-bureau); line-height:1.05; text-wrap:balance; overflow:visible; -webkit-line-clamp:unset; }
html:root #contenu.focus-single .t1-article-frame .v3-ouv h1 :is(em,i,.focus-title-angle) { display:block; }
/* Les trois portraits relus en Q gardent leurs visages aux petites largeurs. */
@media(max-width:1023px) {
 html:root #contenu .t1-article-frame img[data-focus-photo="left"] { object-position:25% 50% !important; }
 html:root #contenu .t1-article-frame.native-hero-group { padding-top:var(--t1-header); }
 html:root #contenu .t1-article-frame.native-hero-group > .focus-article-hero { grid-area:1/1; }
 html:root #contenu .t1-article-frame.native-hero-group > .focus-article-hero > .s2-hero-surface > img { height:auto; aspect-ratio:auto; object-fit:contain; }
 html:root #contenu .t1-article-frame.native-hero-group > .v3-ouv { grid-area:2/1; height:auto; min-height:0; padding:var(--espace-bloc) var(--marge) 0; color:var(--encre); background:none; }
 html:root #contenu .t1-article-frame.native-hero-group .v3-ouv .cont::before { display:none; }
 html:root #contenu.focus-single .t1-article-frame.native-hero-group .v3-ouv .da-head-credits,
 html:root #contenu.focus-single .t1-article-frame.native-hero-group .v3-ouv .da-head-credits :is(a,strong,span,time) { color:var(--encre-2); }
 html:root .t1-article-frame.native-hero-group .s2-trace { color:var(--r-encre,var(--encre)); }
 html:root .t1-article-frame.native-hero-group .s2-trace i { background:currentColor; }
}
html:root #contenu.focus-single .focus-related.cont { width:calc(100% - 2 * var(--marge)); max-width:var(--largeur-continuation); padding-inline:0; margin-inline:auto; }
html:root #contenu.focus-single .focus-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--grille-liste-gap-x); overflow:visible; }
html:root #contenu.focus-single .focus-related-grid > a { min-width:0; width:100%; max-width:none; }
html:root #contenu.focus-single .focus-related-grid img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
html:root #contenu.focus-single .focus-related-grid h3 { margin-top:var(--espace-lie); font:350 var(--t-continuation)/1.2 var(--f-texte); }
html:root #contenu.focus-single .focus-related-card .etiq { font-size:var(--t-xs); }
html:root #contenu.focus-single .focus-format { font:500 var(--t-xs)/1.5 var(--f-ui); letter-spacing:var(--ls-credits); margin:0; }
html:root #contenu.focus-single .focus-article-body :is(h2,h3):not(.focus-chapo) { border-top:var(--bordure-fine) solid var(--ligne); padding-top:var(--espace-groupe); margin-top:var(--espace-region); }
html:root #contenu.focus-single .focus-article-body :is(figcaption,.wp-element-caption) { background:transparent; font:400 var(--t-xs)/1.5 var(--f-ui); color:var(--encre-2); }
html:root #contenu.focus-single .native-toc { width:calc(100% - 2 * var(--marge)); max-width:var(--lecture); margin:var(--espace-bloc) auto; border-block:var(--bordure-fine) solid var(--ligne); font:400 var(--t-s)/1.5 var(--f-ui); }
html:root #contenu.focus-single .native-toc :is(summary,a) { min-height:var(--cible); padding-block:calc(var(--espace-serre) + var(--focus-epaisseur)); }
html:root #contenu.focus-single .native-toc summary { cursor:pointer; }
html:root #contenu.focus-single .native-toc a { display:inline-flex; align-items:center; }
html:root #contenu.focus-single .focus-gallery-open { width:calc(var(--espace-groupe) + var(--espace-minime)); height:calc(var(--espace-groupe) + var(--espace-minime)); min-width:calc(var(--espace-groupe) + var(--espace-minime)); min-height:calc(var(--espace-groupe) + var(--espace-minime)); margin:0; padding:0; clip-path:none; overflow:visible; border:var(--bordure-fine) solid var(--encre); color:var(--encre); background:color-mix(in srgb,var(--papier) 94%,transparent); opacity:0; }
html:root #contenu.focus-single .wp-block-gallery figure:is(:hover,:focus-within) .focus-gallery-open,
html:root #contenu.focus-single .focus-gallery-open:focus-visible { opacity:1; }
html:root #contenu.focus-single .focus-gallery-open::before { content:""; position:absolute; inset:calc(-1 * var(--espace-serre)); border-radius:50%; }
html:root #contenu.focus-single .focus-gallery-open:focus-visible { outline:var(--focus-epaisseur) solid var(--encre); outline-offset:var(--focus-decalage); box-shadow:0 0 0 calc(var(--espace-minime) + var(--bordure-fine)) var(--papier); }
html:root #contenu.focus-single .wp-block-gallery img { cursor:zoom-in; }
html:root #contenu.focus-single .wp-block-gallery :focus-visible { outline:var(--focus-epaisseur) solid var(--encre); outline-offset:var(--focus-decalage); }
html:root #contenu.focus-single .wp-block-gallery .da-reveal { opacity:1; visibility:visible; transform:none; }
html:root #contenu:is(.ct,.ann) .wpcf7 { width:100%; max-width:var(--largeur-formulaire); }
html:root #contenu:is(.ct,.ann) .wpcf7 .cf7resp table { display:grid; width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:calc(var(--espace-groupe) + var(--espace-minime)) var(--espace-groupe); border:0; }
html:root #contenu:is(.ct,.ann) .wpcf7 .cf7resp :is(tbody,tr) { display:contents; }
html:root #contenu:is(.ct,.ann) .wpcf7 .cf7resp td { display:block; min-width:0; width:auto; padding:0; border:0; }
html:root #contenu:is(.ct,.ann) .wpcf7 .cf7resp td:has([name=your-tel]) { grid-column:auto; }
html:root #contenu:is(.ct,.ann) .wpcf7 .cf7resp td:has(textarea,[name=quiz-form],[type=checkbox],[type=submit]) { grid-column:1/-1; }
html:root #contenu:is(.ct,.ann) .wpcf7 .cf7resp p { margin:0; }
html:root #contenu:is(.ct,.ann) .wpcf7 label { display:block; color:var(--encre); font:400 var(--t-xs)/1.5 var(--f-ui); text-transform:uppercase; letter-spacing:var(--ls-libelle-champ); }
html:root #contenu:is(.ct,.ann) .wpcf7 .wpcf7-form-control-wrap { display:block; margin-top:var(--espace-serre); }
html:root #contenu:is(.ct,.ann) .wpcf7 input.wpcf7-form-control.wpcf7-quiz[name=quiz-form] { width:calc(50% - var(--espace-lie)); margin-top:var(--espace-serre); }
html:root #contenu:is(.ct,.ann) .wpcf7 .wpcf7-list-item { margin:0; }
html:root #contenu:is(.ct,.ann) .wpcf7 .wpcf7-list-item label { display:flex; align-items:flex-start; gap:var(--espace-lie); font-size:var(--t-m); min-height:var(--cible); text-transform:none; letter-spacing:normal; }
html:root #contenu:is(.ct,.ann) .wpcf7 input[type=checkbox] { flex:0 0 calc(var(--espace-courant) + var(--espace-minime)); width:calc(var(--espace-courant) + var(--espace-minime)); height:calc(var(--espace-courant) + var(--espace-minime)); margin-top:var(--focus-epaisseur); border:var(--bordure-fine) solid var(--encre); background:var(--papier); }
html:root #contenu:is(.ct,.ann) .wpcf7 input[type=submit] { min-height:var(--espace-region); margin-top:var(--espace-bloc); border:var(--bordure-fine) solid var(--encre); border-radius:var(--rayon-pilule); background-color:var(--encre); color:var(--papier); }
html:root #contenu:is(.ct,.ann) .wpcf7 :is(input,textarea,select):focus-visible { outline:0; box-shadow:inset 0 0 0 var(--focus-epaisseur) var(--encre); }
html:root #contenu:is(.ct,.ann) .wpcf7 input:autofill { box-shadow:inset 0 0 0 calc(var(--espace-section) + var(--espace-minime)) var(--papier); -webkit-text-fill-color:var(--encre); }
html:root #contenu:is(.ct,.ann) .wpcf7 form.submitting input[type=submit] { opacity:.65; cursor:progress; }
html:root #contenu:is(.ct,.ann) :is(.ann-note,.wpcf7-not-valid-tip,.wpcf7-response-output) { color:var(--encre); font-size:var(--t-s); line-height:1.5; }
html:root #contenu:is(.ct,.ann) .wpcf7 .wpcf7-response-output { border-color:var(--encre); }
html:root #contenu:is(.ct,.ann) .wpcf7 :is(.wpcf7-not-valid-tip,[aria-invalid=true]) { color:var(--erreur-formulaire); border-color:var(--erreur-formulaire); }
html:root #contenu:is(.ct,.ann) .wpcf7 form.invalid .wpcf7-response-output { color:var(--erreur-formulaire); border-color:var(--erreur-formulaire); }
html:root #contenu .focus-media-facade[data-focus-media=calameo] .focus-media-stage { background-color:var(--papier); background-image:var(--c5-cover,none); background-size:contain; background-position:center; background-repeat:no-repeat; }
html:root #contenu .focus-media-facade[data-focus-media=calameo] [data-focus-load] { border:var(--bordure-fine) solid var(--encre); border-radius:var(--rayon-pilule); min-height:var(--espace-region); padding:var(--espace-lie) var(--espace-groupe); background:var(--papier); color:var(--encre); }
html:root #contenu .focus-media-facade[data-focus-media=calameo] [data-focus-load]:focus-visible { outline:var(--focus-epaisseur) solid var(--encre); outline-offset:var(--focus-decalage); }
html:root #contenu.mag #feuilleter .v3-intertitre > .meta { display:none; }
html:root #contenu .focus-media-facade[data-focus-media=calameo] .focus-media-stage { width:100%; height:auto; max-height:var(--hauteur-lecteur); aspect-ratio:16/10; }
html:root #contenu:is(.apr,.ct,.mag) .apr-portes ul { grid-template-columns:repeat(auto-fit,minmax(min(var(--largeur-porte-min),100%),1fr)); }
html:root .leg-texte :is(p,li) { line-height:1.7; }
html:root .leg-som li a { display:block; min-height:var(--cible); }
html:root .leg-som li a::before { content:none; }
html:root .leg-texte h2 > .n { display:none; }
html:root .p404 .da-search-form { display:flex; flex-wrap:wrap; justify-content:center; gap:var(--espace-courant); max-width:var(--largeur-formulaire); margin:var(--espace-bloc) auto; }
html:root .p404 .da-search-form input { min-width:0; flex:1 1 var(--largeur-recherche-min); min-height:var(--espace-region); background:var(--papier); border:var(--bordure-fine) solid var(--encre); padding:var(--espace-lie) var(--espace-courant); font:350 var(--t-corps)/1.4 var(--f-texte); }
@media (max-width:1279px) { html:root #contenu.focus-single .t1-article-frame .v3-ouv h1 { font-size:var(--t-hero-compact); } }
@media (max-width:1023px) { html:root #contenu.focus-single .t1-article-frame .v3-ouv h1 { font-size:var(--t-hero-tablette); } }
@media (max-width:1000px) {
 html:root #contenu.focus-single .focus-related-grid:not(:has(> a:nth-child(3))) { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:780px) { html:root #contenu.focus-single .focus-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) {
 html:root #contenu .focus-media-facade[data-focus-media=calameo] .focus-media-stage { max-height:var(--hauteur-lecteur-mobile); }
 html:root #contenu.focus-single .t1-article-frame .v3-ouv h1 { width:100%; max-width:none; font-size:var(--t-hero-mobile); }
 html:root #contenu.focus-single .t1-article-frame .v3-ouv h1.c5-title-mobile-34 { font-size:var(--t-hero-mobile-moyen); }
 html:root #contenu.focus-single .t1-article-frame .v3-ouv h1.c5-title-mobile-30 { font-size:var(--t-hero-mobile-long); }
 html:root #contenu.focus-single .t1-article-frame .v3-ouv h1.c5-title-mobile-28 { font-size:var(--t-hero-mobile-tres-long); }
 html:root #contenu:is(.ct,.ann) .wpcf7 .cf7resp table { grid-template-columns:minmax(0,1fr); }
 html:root #contenu.focus-single .focus-related-grid,
 html:root #contenu.focus-single .focus-related-grid:not(:has(> a:nth-child(3))) { display:flex; gap:calc(var(--espace-courant) + var(--espace-minime)); overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scrollbar-width:none; padding:var(--espace-minime) 0 var(--espace-lie); }
 html:root #contenu.focus-single .focus-related-grid::-webkit-scrollbar { display:none; }
 html:root #contenu.focus-single .focus-related-grid > a { flex:0 0 min(78vw,var(--largeur-carte-mobile)); max-width:var(--largeur-carte-mobile); scroll-snap-align:start; }
 html:root #contenu.focus-single .focus-related-grid img { aspect-ratio:3/2; }
 html:root .t1-article-frame .s2-trace { max-width:40%; }
 html:root #contenu:is(.ct,.ann) .wpcf7 input.wpcf7-form-control.wpcf7-quiz[name=quiz-form] { width:100%; }
}
@media (hover:none) { html:root #contenu.focus-single .focus-gallery-open { opacity:1; } }
/* V2 : la photographie entière est un bouton, le petit signe reste discret. */
html:root #contenu.focus-single .focus-gallery-open.focus-gallery-trigger { position:relative; inset:auto; display:block; width:100%; height:auto; min-width:0; min-height:0; padding:0; border:0; border-radius:0; background:transparent; opacity:1; transform:none; cursor:zoom-in; }
html:root #contenu.focus-single .focus-gallery-trigger::before { content:none; }
html:root #contenu.focus-single .focus-gallery-trigger img { display:block; width:100%; }
html:root #contenu.focus-single .focus-gallery-trigger::after { content:"+"; position:absolute; bottom:var(--espace-lie); right:var(--espace-lie); width:calc(var(--espace-groupe) + var(--espace-minime)); height:calc(var(--espace-groupe) + var(--espace-minime)); display:grid; place-items:center; border:var(--bordure-fine) solid var(--encre); border-radius:50%; color:var(--encre); background:color-mix(in srgb,var(--papier) 94%,transparent); opacity:0; font:400 var(--t-corps)/1 var(--f-ui); }
html:root #contenu.focus-single .focus-gallery-trigger:is(:hover,:focus-visible)::after { opacity:1; }
@media(hover:none) { html:root #contenu.focus-single .focus-gallery-trigger::after { opacity:1; } }
/* Z : le crédit de la grande photo partage la colonne de l'introduction. */
html:root #contenu.focus-single .focus-article-hero > figcaption { width:calc(100% - 2 * var(--marge)); max-width:var(--mesure-chapo); margin:var(--espace-lie) auto 0; padding:0; text-align:left; }
@media(max-width:640px) { html:root #contenu.focus-single .focus-article-hero > figcaption { text-align:center; } }

/* Source : assets/css/components/ds-bouton.css */
/* La même commande, que sa destination soit un lien ou une action. */
.ds-bouton { box-sizing: border-box; display: inline-flex; align-items: center; justify-content: center; gap: var(--espace-lie); min-height: var(--espace-region); min-width: var(--cible); max-width: 100%; padding: var(--espace-lie) var(--espace-groupe); border: var(--bordure-fine) solid var(--filet-fort); border-radius: var(--rayon-pilule); background: transparent; color: var(--texte-encre); font: var(--graisse-etiquette) var(--t-xs)/var(--lh-ui) var(--f-ui); letter-spacing: var(--ls-ui); text-align: center; text-decoration: none; cursor: pointer; }
.ds-bouton { transition: transform var(--mvt-pression) var(--ease-out); }
.ds-bouton--historique { letter-spacing: var(--ls-action); text-transform: uppercase; border-color: var(--texte-encre); }
.ds-bouton--plein { color: var(--texte-inverse); background: var(--texte-encre); }
.ds-bouton--inverse { color: var(--texte-encre); background: var(--papier); border-color: var(--papier); }
.ds-bouton--lien { border-color: transparent; border-radius: var(--rayon-droit); padding-inline: 0; text-decoration: underline; text-underline-offset: var(--espace-minime); }
.ds-bouton:focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); transition: none; }
.ds-bouton:active:not(:disabled):not([aria-disabled=true]):not(:focus-visible) { transform: scale(var(--mvt-pression-echelle)); transition: transform var(--mvt-pression) var(--ease-out); }
.ds-bouton:is(:disabled, [aria-disabled=true]) { opacity: var(--opacite-desactivee); cursor: not-allowed; }
.ds-bouton[aria-busy=true] { cursor: progress; }
@media (hover: hover) and (pointer: fine) {
  .ds-bouton:hover:not(:disabled):not([aria-disabled=true]) { color: var(--texte-inverse); background: var(--texte-encre); }
  .ds-bouton--plein:hover:not(:disabled):not([aria-disabled=true]) { color: var(--texte-encre); background: var(--papier); }
}
@media (prefers-reduced-motion: reduce) { .ds-bouton:active:not(:disabled):not([aria-disabled=true]):not(:focus-visible) { transform: none; transition: none; } }

/* Source : assets/css/components/ds-carte.css */
/* Une histoire, un lien. Les sélecteurs de navigation historiques restent présents. */
.ds-carte { display: flex; flex-direction: column; gap: var(--espace-courant); min-width: 0; color: var(--texte-encre); }
.ds-carte-lien { display: flex; flex: 1; flex-direction: column; min-width: 0; gap: var(--espace-courant); color: inherit; text-decoration: none; }
.ds-carte-photo { position: relative; display: block; width: 100%; aspect-ratio: var(--ratio-carte); overflow: clip; background: var(--fond-2); }
.ds-carte-photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--s2-focal, 50% 30%); }
.ds-carte-contenu { display: flex; flex-direction: column; align-items: flex-start; gap: var(--espace-serre); min-width: 0; }
.ds-carte-titre { margin: 0; max-width: var(--mesure-titre); font: var(--graisse-texte) var(--t-carte)/var(--lh-carte) var(--f-texte); letter-spacing: var(--ls-titre); text-wrap: balance; overflow-wrap: break-word; }
.ds-carte .chapo-court { max-width: var(--mesure-extrait); margin: 0; color: var(--texte-2); font: var(--graisse-texte) var(--t-extrait)/var(--lh-ui) var(--f-texte); }
.ds-carte .ds-meta { margin: var(--espace-courant) 0 0; }
.ds-carte-contenu .ds-meta { margin: var(--espace-serre) 0 0; }
.ds-carte--une .ds-carte-titre { font-family: var(--f-titre); font-size: var(--t-section); font-weight: var(--graisse-titre); line-height: var(--lh-titre); }
.ds-carte--compacte .ds-carte-photo { aspect-ratio: var(--ratio-paysage); }
.ds-carte--portrait .ds-carte-photo { aspect-ratio: var(--ratio-portrait); }
.ds-carte--portrait .ds-carte-photo img { object-position: var(--s2-focal, 50% 25%); }
.ds-carte--groupe .ds-carte-photo { aspect-ratio: var(--ds-source-ratio, var(--ratio-paysage)); }
.ds-carte--sans-image .ds-carte-photo { background: var(--fond-section); border: var(--bordure-fine) solid var(--filet); }
.ds-carte-lien:focus-visible, a.ds-carte:focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); }
.ds-carte--bandeau { --focus: var(--focus-inverse); }
.ds-carte--bandeau .ds-carte-lien { position: relative; display: grid; overflow: clip; color: var(--texte-inverse); }
.ds-carte--bandeau .ds-carte-photo { grid-area: 1/1; aspect-ratio: var(--ratio-bandeau); max-height: var(--hauteur-bandeau); }
.ds-carte--bandeau .ds-carte-photo::after { content: ""; position: absolute; inset: 0; background: var(--voile-photo); pointer-events: none; }
.ds-carte--bandeau .ds-carte-contenu { grid-area: 1/1; position: relative; z-index: var(--z-contenu); align-self: end; width: min(var(--mesure-extrait), 100%); padding: var(--espace-region) var(--marge); }
.ds-carte--bandeau :is(.ds-carte-titre, .ds-etiquette, .chapo-court, .ds-meta) { color: var(--texte-inverse); }
.ds-carte--bandeau .ds-carte-titre { font: var(--graisse-titre) var(--t-bandeau)/var(--lh-titre) var(--f-titre); }
/* Variante de migration, mêmes boîtes et rythme que les listes historiques. */
.ds-carte--archive .ds-carte-titre { max-width: none; margin-top: calc(0px - var(--espace-serre)); }
.ds-carte--archive .chapo-court { max-width: var(--mesure-extrait-archive); }
.ds-carte--archive > .ds-meta { margin: 0; }
.ds-carte--archive.ds-carte--une .ds-carte-titre { font: var(--graisse-texte) var(--t-section)/var(--lh-carte) var(--f-texte); }
@media (min-width: 1142.857143px) {
  .ds-carte--archive.ds-carte--une .ds-carte-titre { font-family: var(--f-titre); font-weight: var(--graisse-titre); }
}
.ds-carte--bandeau .ds-etiquette::before { background: currentColor; border-color: currentColor; }
@media (max-width: 640px) {
  .ds-carte--bandeau { --focus: var(--texte-encre); }
  .ds-carte--bandeau .ds-carte-lien { display: flex; color: var(--texte-encre); }
  .ds-carte--bandeau .ds-carte-photo { aspect-ratio: var(--ratio-paysage); }
  .ds-carte--bandeau .ds-carte-photo::after { content: none; }
  .ds-carte--bandeau .ds-carte-contenu { width: 100%; padding: 0; }
  .ds-carte--bandeau :is(.ds-carte-titre, .chapo-court, .ds-meta) { color: inherit; }
  .ds-carte--bandeau .ds-etiquette { color: var(--encre-rubrique); }
  .ds-carte--bandeau .ds-carte-titre { font: var(--graisse-texte) var(--t-carte)/var(--lh-carte) var(--f-texte); }
}

/* Source : assets/css/components/ds-champ.css */
/* Habillage du contrôle existant, aucune valeur ni structure CF7 modifiée. */
.ds-champ, html:root #contenu:is(.ct,.ann) .wpcf7 .ds-champ { display: block; box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; height: var(--hauteur-champ); padding: var(--espace-lie); border: var(--bordure-fine) solid var(--filet-fort); border-radius: var(--rayon-champ); background: var(--papier); color: var(--texte-encre); font: var(--graisse-texte) var(--t-corps)/var(--lh-champ) var(--f-texte); text-transform: none; letter-spacing: normal; caret-color: var(--texte-encre); }
textarea.ds-champ, html:root #contenu:is(.ct,.ann) .wpcf7 textarea.ds-champ { height: auto; min-height: var(--hauteur-message); resize: vertical; }
.ds-champ::placeholder { color: var(--texte-2); opacity: 1; }
.ds-champ:focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); box-shadow: none; }
.ds-champ[aria-invalid=true], html:root #contenu:is(.ct,.ann) .wpcf7 .ds-champ[aria-invalid=true] { border-color: var(--erreur); color: var(--erreur); }
.ds-champ:disabled { background: var(--fond-2); cursor: not-allowed; }
.ds-champ-aide, .ds-champ-erreur { font: var(--graisse-ui) var(--t-s)/var(--lh-ui) var(--f-ui); color: var(--texte-2); }
.ds-champ-erreur { color: var(--erreur); }
.ds-champ-choix { accent-color: var(--texte-encre); }
.ds-champ-choix:focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); }
.ds-champ--formulaire { --filet-fort: var(--texte-encre); }

/* Source : assets/css/components/ds-chapo.css */
/* Le chapô introduit, il ne devient pas un deuxième titre. */
.ds-chapo { max-width: var(--mesure-chapo); margin-inline: auto; color: var(--texte-2); font: italic var(--graisse-texte) var(--chapo)/var(--lh-ui) var(--f-texte); }
.ds-chapo--article { text-align: center; }
.ds-chapo--rubrique { max-width: var(--mesure-chapo-rubrique); text-align: center; }
.ds-chapo > p { margin: 0; font: inherit; }
.ds-chapo--archive { max-width: 100%; line-height: var(--lh-chapo-archive); }
html:root #contenu.focus-single .focus-article > .ds-chapo--article { display: block; width: calc(100% - 2 * var(--marge)); margin-block: var(--espace-region); }
@media (max-width: 640px) {
  html:root #contenu.focus-single .focus-article > .ds-chapo--article { margin-block: var(--espace-bloc); }
}
/* Chapô XXL : largeur et corps augmentes ensemble, autres tailles inchangees. */
@media (min-width: 1920px) {
  html:root #contenu.focus-single .focus-article > .ds-chapo--article {
    max-width: calc(var(--mesure-chapo)*1.2);
    font-size: calc(var(--chapo)*1.2);
  }
}

/* Source : assets/css/components/ds-composition.css */
/* Motifs éditoriaux, les cartes et les données restent partagées. */
html:root #contenu.focus-home .ds-dernieres-suite {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--espace-region) var(--espace-groupe);
  margin-top: var(--espace-region);
}
@media (max-width: 1024px) {
  html:root #contenu.focus-home .ds-dernieres-suite { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  html:root #contenu.focus-home .ds-dernieres-ouverture { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espace-region) var(--espace-groupe); }
  html:root #contenu.focus-home .ds-dernieres-ouverture .grand { grid-column: 1 / -1; grid-row: auto; }
}
html:root #contenu .ds-composition { padding-block: var(--espace-bloc); background: transparent; }
html:root #contenu.focus-home > section:not(.s1-hero):not(.home-portraits) { background: transparent; }
html:root #contenu .ds-composition-cartes { grid-column: contenu; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: row; row-gap: var(--espace-bloc); column-gap: var(--grille-gap-x); margin: 0; padding: 0; overflow: visible; }
html:root #contenu .ds-composition-cartes > .ds-carte { grid-column: 1 / -1; grid-row: auto; }
html:root #contenu .ds-suite { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--espace-bloc) var(--grille-gap-x); }
html:root #contenu .ds-suite > .ds-carte { grid-column: span 4; }
html:root #contenu .ds-suite .ds-carte-photo { aspect-ratio: var(--ratio-paysage); }
html:root #contenu .ds-composition :is(.ds-carte, .ds-carte-lien) { gap: var(--espace-courant); }
html:root #contenu .ds-composition .ds-carte-lien { display: flex; grid-template-columns: none; color: inherit; }
html:root #contenu .ds-composition .ds-carte-photo { grid-column: auto; grid-row: auto; flex: none; }
html:root #contenu .ds-composition .ds-carte-titre { margin: 0; font: var(--graisse-texte) var(--t-carte)/var(--lh-carte) var(--f-texte); }
html:root #contenu .ds-composition .ds-meta { margin: var(--espace-serre) 0 0; }
html:root #contenu .ds-composition .ds-etiquette { margin: 0; }
html:root #contenu .ds-composition .ds-carte-photo img { object-position: var(--s2-focal, 50% 30%); }
html:root #contenu .ds-portraits .ds-carte-titre { margin: 0; }
html:root #contenu .ds-portraits .ds-etiquette { margin: 0; }
html:root #contenu .ds-composition-cartes > .ds-carte--une .ds-carte-titre { font: var(--graisse-titre) var(--t-section)/var(--lh-titre) var(--f-titre); }
html:root #contenu .ds-composition-cartes > .ds-carte--moitie .ds-carte-lien { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grille-gap-x); }
html:root #contenu .ds-carte--moitie .ds-carte-photo { grid-column: 1 / 7; grid-row: 1; width: 100%; height: auto; max-width: var(--ds-source-width); justify-self: start; aspect-ratio: var(--ratio-paysage); }
html:root #contenu .ds-carte--moitie .ds-carte-contenu { grid-column: 7 / -1; grid-row: 1; width: 100%; padding: 0; align-self: center; }
html:root #contenu .ds-carte--horizontale .ds-carte-lien { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: var(--grille-gap-x); align-items: center; }
html:root #contenu .ds-composition-cartes > .ds-carte--horizontale { grid-column: 1 / -1; }
html:root #contenu .ds-carte--horizontale .ds-carte-photo { grid-column: 1 / 7; }
html:root #contenu .ds-carte--horizontale .ds-carte-contenu { grid-column: 7 / -1; }
html:root #contenu .ds-carte--horizontale .ds-carte-photo { aspect-ratio: var(--ratio-paysage); }
@media (min-width: 1025px) {
  html:root #contenu .r-mobilites .ds-carte--horizontale .ds-carte-photo { grid-column: 5 / -1; grid-row: 1; }
  html:root #contenu .r-mobilites .ds-carte--horizontale .ds-carte-contenu { grid-column: 1 / 5; grid-row: 1; }
}
html:root #contenu .ds-composition-cartes > .ds-carte--bandeau { max-width: min(100%, var(--ds-source-width)); justify-self: center; width: 100%; }
html:root #contenu .ds-composition-cartes > .ds-carte--bandeau .ds-carte-lien { display: flex; color: var(--texte-encre); }
html:root #contenu .ds-carte--bandeau .ds-carte-photo { grid-column: auto; grid-row: auto; height: auto; max-height: none; aspect-ratio: var(--ratio-paysage); }
html:root #contenu .ds-carte--bandeau .ds-carte-contenu { grid-column: auto; grid-row: auto; width: 100%; padding: 0; }
html:root #contenu .ds-carte--bandeau .ds-carte-titre { max-width: var(--mesure-titre); font: var(--graisse-titre) var(--t-bandeau)/var(--lh-titre) var(--f-titre); }
html:root #contenu.focus-home .ds-carte--bandeau :is(.ds-carte-titre, .ds-etiquette, .ds-meta, .chapo-court) { color: var(--texte-encre); }
html:root #contenu.focus-home .ds-carte--bandeau { --focus: var(--encre); }
html:root #contenu.focus-home .ds-carte--bandeau .ds-carte-photo::after { content: none; }
html:root #contenu .ds-composition-cartes > .ds-carte--contenue { grid-column: 1 / -1; }
html:root #contenu .ds-carte--contenue .ds-carte-photo { aspect-ratio: var(--ratio-paysage); max-height: var(--hauteur-photo-moitie); }
html:root #contenu .ds-galerie { grid-column: contenu; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: row; grid-auto-columns: auto; gap: var(--espace-region) var(--grille-gap-x); margin: 0; padding: 0; overflow: visible; }
html:root #contenu .ds-galerie > .ds-carte { grid-column: auto; grid-row: auto; }
html:root #contenu .ds-galerie .ds-carte-photo { aspect-ratio: var(--ratio-paysage); }
html:root #contenu .ds-galerie .ds-carte--une .ds-carte-titre { font: var(--graisse-texte) var(--t-carte)/var(--lh-carte) var(--f-texte); }
html:root #contenu .ds-portraits { background: var(--papier-fonce); padding-block: var(--espace-bloc); }
html:root #contenu .ds-portraits-grille { grid-column: contenu; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: row; gap: var(--espace-bloc); margin: 0; padding: 0; overflow: visible; }
html:root #contenu .ds-portraits-grille > .ds-carte--groupe { grid-column: span 2; }
html:root #contenu .ds-portraits-grille .ds-carte-photo img { object-position: var(--s2-focal, 50% 25%); }
html:root #contenu .ds-portraits-grille .ds-carte--groupe .ds-carte-photo { aspect-ratio: var(--ds-source-ratio); }
html:root #contenu .ds-compactes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--espace-bloc); }
html:root #contenu .ds-compactes .ds-carte-photo { aspect-ratio: var(--ratio-paysage); }
/* Z : les boîtes de texte peuvent rétrécir, sans changer les mots ni leur taille. */
html:root #contenu.focus-home .ds-carte-contenu { min-inline-size: 0; }
html:root #contenu.focus-home .ds-carte-titre { min-inline-size: 0; overflow-wrap: break-word; }
html:root #contenu.focus-home .ds-etiquette { min-inline-size: 0; max-inline-size: 100%; overflow-wrap: break-word; }
@media (min-width: 641px) {
  html:root #contenu.focus-home.ds-page > :is(.ds-composition, .ds-portraits) { margin-top: var(--espace-region); padding-block: var(--espace-groupe); }
}
@media (max-width: 1279px) {
  html:root #contenu .ds-portraits-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html:root #contenu .ds-portraits-grille > .ds-carte--groupe { grid-column: auto; }
}
@media (max-width: 1024px) {
  html:root #contenu .ds-carte--moitie .ds-carte-photo { grid-column: 1 / -1; grid-row: auto; width: 100%; height: auto; aspect-ratio: var(--ratio-paysage); max-height: none; }
  html:root #contenu .ds-carte--moitie .ds-carte-contenu { grid-column: 1 / -1; grid-row: auto; width: 100%; padding: 0; }
  html:root #contenu .ds-carte--horizontale .ds-carte-lien { display: flex; align-items: stretch; }
  html:root #contenu .ds-carte--horizontale .ds-carte-photo { max-height: none; }
  html:root #contenu .ds-suite { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html:root #contenu .ds-suite > .ds-carte { grid-column: auto; }
  html:root #contenu .ds-suite > :last-child { grid-column: 1 / -1; }
  html:root #contenu .ds-suite > :last-child .ds-carte-lien { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: var(--espace-groupe); }
}
@media (min-width: 1025px) {
  html:root #contenu .r-evasion .ds-carte--bandeau .ds-carte-lien { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grille-gap-x); align-items: center; }
  html:root #contenu .r-evasion .ds-carte--bandeau .ds-carte-photo { grid-column: 5 / -1; grid-row: 1; }
  html:root #contenu .r-evasion .ds-carte--bandeau .ds-carte-contenu { grid-column: 1 / 5; grid-row: 1; align-self: center; }
}
@media (min-width: 641px) and (max-width: 1024px) {
  html:root #contenu .ds-composition-cartes > .ds-carte--une .ds-carte-lien { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--grille-gap-x); }
  html:root #contenu .ds-composition-cartes > .ds-carte--une .ds-carte-photo { grid-column: var(--composition-photo-tablette); grid-row: 1; height: auto; max-height: none; aspect-ratio: var(--ratio-paysage); }
  html:root #contenu .ds-composition-cartes > .ds-carte--une .ds-carte-contenu { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 640px) {
  html:root #contenu :is(.ds-composition, .ds-portraits) { padding-block: var(--espace-bloc); }
  html:root #contenu .ds-composition-cartes.ds-rail { grid-column: plein; display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc(100% + var(--marge) - var(--espace-groupe) - var(--rail-amorce)); gap: var(--espace-groupe); padding: var(--espace-serre) var(--marge); overflow-x: auto; }
  html:root #contenu :is(.ds-composition-cartes, .ds-portraits-grille).ds-rail { scroll-padding-inline: var(--marge); }
  html:root #contenu .ds-composition-cartes.ds-rail > .ds-carte { grid-column: auto; grid-row: auto; width: 100%; max-width: none; }
  html:root #contenu .ds-composition-cartes.ds-rail > .ds-suite { display: contents; }
  html:root #contenu .ds-composition-cartes.ds-rail .ds-suite > .ds-carte { grid-column: auto; grid-row: auto; scroll-snap-align: start; }
  html:root #contenu .ds-composition-cartes.ds-rail :is(.ds-carte-lien, .ds-suite > :last-child .ds-carte-lien) { display: flex; gap: var(--espace-courant); }
  html:root #contenu .ds-composition-cartes.ds-rail .ds-carte-photo { height: auto; aspect-ratio: var(--ratio-paysage); grid-column: auto; grid-row: auto; }
  html:root #contenu .ds-composition-cartes.ds-rail .ds-carte-contenu { padding: 0; }
  html:root #contenu .ds-composition-cartes.ds-rail .ds-carte-titre { font: var(--graisse-texte) var(--t-carte-mobile)/var(--lh-carte) var(--f-texte); }
  html:root #contenu .ds-composition-cartes.ds-rail .ds-carte--bandeau .ds-carte-lien { color: var(--texte-encre); }
  html:root #contenu .ds-composition-cartes.ds-rail .ds-carte--bandeau .ds-etiquette { color: var(--encre-rubrique); }
  html:root #contenu .ds-composition-cartes.ds-rail .ds-carte--bandeau :is(.ds-meta, .chapo-court) { color: var(--texte-2); }
  html:root #contenu .ds-portraits-grille.ds-rail { grid-column: plein; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc(100% + var(--marge) - var(--espace-bloc) - var(--rail-amorce)); padding: var(--espace-serre) var(--marge); overflow-x: auto; }
  html:root #contenu .ds-portraits-grille > .ds-carte--groupe { grid-column: auto; }
  html:root #contenu .ds-galerie { grid-column: contenu; gap: var(--espace-bloc) var(--espace-groupe); }
  html:root #contenu .ds-galerie .ds-carte-titre { font-size: var(--t-corps); }
  html:root #contenu .ds-galerie .ds-etiquette { font-size: var(--t-xs); letter-spacing: var(--ls-meta); }
  html:root #contenu .ds-compactes { grid-template-columns: minmax(0, 1fr); gap: var(--espace-bloc); }
  html:root #contenu .ds-compactes .ds-carte-lien { display: flex; flex-direction: row; flex-wrap: wrap; gap: var(--espace-courant); align-items: start; }
  html:root #contenu .ds-compactes .ds-carte-photo { flex: 0 0 calc((100% - var(--espace-courant)) * var(--carte-compacte-photo-part)); }
  html:root #contenu .ds-compactes .ds-carte-contenu { flex: 1 0 min(100%, var(--carte-compacte-texte-min)); }
  html:root #contenu .ds-compactes .ds-carte-titre { font-size: var(--t-corps); }
}

/* Z2 : le titre de galerie reste dans sa colonne, y compris avec texte agrandi. */
html:root #contenu.focus-home .r-vernissage .ds-galerie .ds-carte-titre { max-inline-size: min(100%, var(--mesure-titre)); }

/* Z2 : le texte anonyme des étiquettes historiques peut refluer en Flexbox. */
html:root #contenu.focus-home .ds-dernieres-ouverture .etiq { overflow-wrap: anywhere; }

/* Même étiquette historique dans la suite des dernières histoires. */
html:root #contenu.focus-home .ds-dernieres-suite .etiq { overflow-wrap:anywhere; }

/* Z2 : le point garde sa taille ; le texte anonyme de Vernissage reflue. */
html:root #contenu.focus-home .r-vernissage .ds-galerie .ds-etiquette { overflow-wrap:anywhere; }

/* Z2 : au plus deux colonnes de galerie ; une seule si 7em ne tiennent plus.
   La contrainte grandit avec le texte et conserve les deux colonnes normales. */
html:root #contenu.focus-home .r-vernissage .ds-galerie {
 --z2-galerie-gap:var(--grille-gap-x);
 grid-template-columns:repeat(auto-fit,minmax(min(100%,max(7em,calc((100% - var(--z2-galerie-gap)) / 2))),1fr));
}
@media(max-width:640px) {
 html:root #contenu.focus-home .r-vernissage .ds-galerie { --z2-galerie-gap:var(--espace-groupe); }
}

/* Z2 : même contrainte de largeur pour le texte des seules cartes compactes Résonances. */
html:root #contenu.focus-home .r-resonances .ds-compactes .ds-carte-titre { max-inline-size:min(100%,var(--mesure-titre)); }

/* Source : assets/css/components/ds-etiquette.css */
/* Repère de rubrique, jamais un titre supplémentaire. */
.ds-etiquette { display: inline-flex; align-items: center; gap: var(--espace-serre); color: var(--encre-rubrique, var(--texte-encre)); font: var(--graisse-etiquette) var(--t-xs)/var(--lh-ui) var(--f-ui); letter-spacing: var(--ls-etiquette); text-transform: uppercase; }
.ds-etiquette--point::before { content: ""; flex: 0 0 var(--taille-point); width: var(--taille-point); height: var(--taille-point); border-radius: var(--rayon-pilule); background: var(--fond-rubrique); box-shadow: inset 0 0 0 var(--bordure-fine) var(--filet); }
a.ds-etiquette { min-height: var(--cible); text-decoration: none; }
a.ds-etiquette:focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); }
.ds-etiquette--article { display: block; margin: 0; }

/* Source : assets/css/components/ds-filtre.css */
/* Navigation native entre catégories, l'état courant reste explicite. */
.ds-filtre { display: inline-flex; align-items: center; justify-content: center; min-width: var(--cible); min-height: var(--cible); max-width: 100%; color: var(--texte-2); font: var(--graisse-etiquette) var(--t-xs)/var(--lh-ui) var(--f-ui); letter-spacing: var(--ls-etiquette); text-decoration: none; text-underline-offset: var(--espace-serre); }
.ds-filtre:is([aria-current], .actif) { color: var(--encre-rubrique); text-decoration: underline; }
.ds-filtre:focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); }
@media (hover: hover) and (pointer: fine) { .ds-filtre:hover { color: var(--encre-rubrique); text-decoration: underline; } }
.ds-filtre--archive { line-height: var(--lh-champ); text-transform: uppercase; }
.ds-filtre--archive, .ds-filtre--archive:is([aria-current], .actif) { color: inherit; }

/* Source : assets/css/components/ds-layout.css */
/* Trois voies mesurées sur le parent, barre de défilement exclue. */
.ds-page {
  --_ds-contenu: calc(min(100%, var(--col)) - 2 * var(--marge));
  --_ds-large: min(calc(100% - 2 * var(--marge)), var(--col-large));
  --_ds-aile: calc((var(--_ds-large) - var(--_ds-contenu)) / 2);
  --_ds-pistes: [plein-start] minmax(0, 1fr)
    [large-start] minmax(0, var(--_ds-aile))
    [contenu-start] minmax(0, var(--_ds-contenu))
    [contenu-end] minmax(0, var(--_ds-aile))
    [large-end] minmax(0, 1fr) [plein-end];
  min-width: 0;
}
.ds-page > * { min-width: 0; }
.ds-dans-contenu { width: var(--_ds-contenu); margin-inline: auto; }
.ds-dans-large { width: var(--_ds-large); margin-inline: auto; }
.ds-bandeau { position: relative; width: 100%; max-height: var(--lecture); overflow: clip; }

@supports (display: grid) {
  .ds-page {
    display: grid;
    grid-template-columns: var(--_ds-pistes);
  }
  .ds-page > * { grid-column: contenu; }
  .ds-page > .ds-large { grid-column: large; }
  .ds-page > .ds-plein { grid-column: plein; }
  .ds-page > .ds-saignee-gauche { grid-column: plein-start / contenu-end; }
  .ds-page > .ds-saignee-droite { grid-column: contenu-start / plein-end; }
  .ds-page > :is(.ds-moitie-plein-gauche, .ds-moitie-plein-droite) { grid-column: plein; grid-row: 1; width: 50%; }
  .ds-page > :is(.ds-moitie-contenu-gauche, .ds-moitie-contenu-droite) { grid-column: contenu; grid-row: 1; width: 50%; }
  .ds-page > :is(.ds-moitie-plein-gauche, .ds-moitie-contenu-gauche) { justify-self: start; }
  .ds-page > :is(.ds-moitie-plein-droite, .ds-moitie-contenu-droite) { justify-self: end; }
}

/* Pont du premier passage : conserver la fusion historique des marges.
   Les sections restent pleines, leurs .cont restent strictement inchangés. */
html:root .focus-home.ds-page { --ds-section-gap: var(--espace-section); }
html:root .focus-home.ds-page > section { grid-column: plein; margin-block: 0; }
html:root .focus-home.ds-page > section + section { margin-top: var(--ds-section-gap); }
html:root .focus-home.ds-page > section:last-child { margin-bottom: var(--ds-section-gap); }

/* Les listes gardent leur boîte .cont et la fusion des marges du bouton. */
@supports (display: grid) {
  .focus-archives.ds-page > * { grid-column: plein; }
  .focus-archives.ds-page > .cont > .da-infinite-more { margin-bottom: 0; }
  .focus-archives.ds-page > section[aria-labelledby="toutes-histoires"] { margin-top: calc(var(--espace-groupe) + var(--focus-epaisseur)); }
  .focus-archives.ds-page > section[aria-labelledby="toutes-histoires"] > .rub-filtres { margin-top: 0; }
}

@media (max-width: 1023px) {
  .ds-page > :is(.ds-moitie-plein-gauche, .ds-moitie-plein-droite) { grid-column: plein; grid-row: auto; width: 100%; }
  .ds-page > :is(.ds-moitie-contenu-gauche, .ds-moitie-contenu-droite) { grid-column: contenu; grid-row: auto; width: 100%; }
}
@media (max-width: 819px) {
  html:root .focus-home.ds-page { --ds-section-gap: calc(var(--espace-region) + var(--espace-bloc)); }
}
/* Distribution mobile : conserver la réserve de consentement du pied de page.
   Seul l'espacement des titres de villes repliées diminue. */
@media (max-width: 640px) {
  html:root #contenu.dist .fd-city-section:has(.fd-city-toggle[aria-expanded="false"]) { contain-intrinsic-size: auto var(--hauteur-ville-repliee); }
  html:root #contenu.dist .fd-city-section:has(.fd-city-toggle[aria-expanded="false"]) > h3 { margin-bottom: var(--espace-serre); padding-bottom: 0; }
  html:root #contenu.dist .leaflet-marker-icon.fd-div-icon::before { content: ""; position: absolute; inset: calc((100% - var(--cible)) / 2); width: var(--cible); height: var(--cible); }
  html:root #contenu.dist .leaflet-control-attribution a { position: relative; }
  html:root #contenu.dist .leaflet-control-attribution a::before { content: ""; position: absolute; bottom: 0; left: 0; width: 100%; min-width: var(--cible); height: var(--cible); }
}

/* Variante A : aligner le contenu du pied, sans changer son fond pleine largeur,
   ses colonnes, son logo ni sa typographie. */
@media (width > 1440px) {
  html:root .v3-pied > .cont {
    max-width: max(var(--p-col-pied-xl-min), var(--col));
    margin-inline: auto;
  }
}

/* Recette du 31 octobre 2026 : fonds publics, lecture et reflux. */
html body:not(.wp-admin), html body:not(.wp-admin) #contenu,
html body:not(.wp-admin) .v3-tete, html body:not(.wp-admin) .v3-pied,
html body:not(.wp-admin) #contenu > :is(.rub-hero,.rub-archives,.ann-hero,.ann-chiffres,.ann-section,.focus-search,.focus-404) {
  background-color: #fff !important;
}
html body:not(.wp-admin) .v3-tete { color: #1c1a17 !important; }
html body:not(.wp-admin) .v3-pied > .cont { width: min(1560px, calc(100% - 112px)); max-width: 1560px; }
html .v3-pied .pastille, html .v3-pied .point { display: none; }
html .focus-article-body > :is(p,h2,h3,ul,ol) { max-inline-size: min(var(--focus-reading-measure), calc(100% - 2 * var(--marge))); }
html .focus-article-body p { margin-block-end: var(--focus-paragraph-gap); }
html .focus-article-body h2 { font-family: var(--f-texte); font-weight: var(--focus-text-weight); line-height: 1.2; margin-block: 2em .8em; }
html :is(.focus-card-meta,.ds-meta) { display: flex; flex-wrap: wrap; gap: .35em 1em; font-size: var(--focus-meta-size); }
html :is(.v3-art,.ds-carte,.focus-related-card) :is(h2,h3) { overflow-wrap: anywhere; }
html :is(.v3-art,.ds-carte) :is(.pastille,.point), html .focus-label::before, html .ds-etiquette::before { display:none; }
html :is(.rub-archives,.focus-search,.focus-stories) .focus-card-meta { margin-block-start: 1em; }
html .focus-home-editorial .hero-title h2 { margin:0; }
html #contenu.focus-home-editorial .hero-summary { display:block; }
html #contenu.focus-home-editorial .hero-summary > p { margin-block:0 16px; }
html #contenu.focus-home-editorial .hero-caption { min-height:0; align-items:flex-start; }
html #contenu.focus-home-editorial #rotation { font:400 12px/1.4 var(--sans); min-width:72px; min-height:44px; border:1px solid #b5b2ac; border-radius:0; padding:8px 12px; background:white; color:#1c1a17; cursor:pointer; }
html #contenu.focus-home-editorial #rotation:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
html #contenu.focus-home-editorial :is(.eyebrow,.story-date,.credit,figcaption,.text-link) { font-size:12px; }
html #contenu.focus-home-editorial :is(h2,h3,.eyebrow,.angle,.hero-angle,.story-text) { overflow-wrap:anywhere; min-width:0; }
html #contenu.focus-home-editorial .attitudes { width:min(1560px,calc(100% - 112px)); }
html #contenu.focus-home-editorial .story .angle { text-align:left; margin-inline:0; }
html #contenu.focus-home-editorial :is(.discoveries,.places-notes) .story-link { display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
html #contenu.focus-home-editorial :is(.discoveries,.places-notes) .story-photo { flex:1 1 35%; min-width:0; }
html #contenu.focus-home-editorial :is(.discoveries,.places-notes) .story-text { flex:2 1 10em; min-width:0; }
@media(max-width:760px) {
  html body:not(.wp-admin) .v3-pied > .cont, html #contenu.focus-home-editorial .attitudes { width:calc(100% - 48px); }
  html #contenu.focus-home-editorial .selection-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,9em),1fr)); }
  html #contenu.focus-home-editorial .hero-caption { display:flex; flex-wrap:wrap; gap:16px; }
  html #contenu.focus-home-editorial .hero-summary { flex:1 1 18em; }
  html #contenu.focus-home-editorial #rotation { align-self:flex-end; }
  html .focus-article-body > :is(p,h2,h3,ul,ol) { max-inline-size:calc(100% - 2 * var(--marge)); }
}

/* Reading blocks share spacing without altering verse, interviews or carousel tracks. */
html .focus-article-body :is(.wp-block-paragraph,h2,h3,li){overflow-wrap:break-word}
html .focus-article-body :is(pre,table){max-width:100%;overflow:auto}
html .focus-article-body .wp-block-gallery:not(.p1-carousel):not(.p1-diaporama){gap:var(--focus-grid-gap)}
html .focus-article-body figure img{max-width:100%}

/* Text enlargement: retain full URLs, credits and footer labels without clipping. */
html .focus-article-body p>a{max-inline-size:100%;min-inline-size:0;overflow-wrap:anywhere}
html .mag-prec .mag-credit{min-inline-size:0;overflow-wrap:anywhere}
html footer#navigation .footer-sections a{min-inline-size:0;overflow-wrap:anywhere}

/* Source : assets/css/components/ds-meta.css */
/* Données réellement publiées, sans compteur décoratif. */
.ds-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--espace-serre) var(--espace-courant); margin: 0; color: var(--texte-2); font: var(--graisse-ui) var(--t-xs)/var(--lh-ui) var(--f-ui); }
.ds-meta--article { justify-content: center; gap: var(--espace-serre) calc(var(--espace-groupe) - 2 * var(--bordure-fine)); letter-spacing: var(--ls-credits); }
.ds-meta--inverse { color: var(--texte-inverse); }
.ds-meta :is(a, time, span) { color: inherit; }
.ds-meta a { display: inline-flex; align-items: center; min-height: var(--cible); text-underline-offset: var(--espace-minime); }
.ds-meta a:focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); }

/* Source : assets/css/components/ds-mouvement.css */
/* Un vocabulaire de mouvement, jamais une condition d'accès au contenu. */
html:root .da-reveal {
  opacity: 1;
  transform: none;
  transition: opacity var(--mvt-entree) var(--ease-out), transform var(--mvt-entree) var(--ease-out);
  transition-delay: var(--da-delay, var(--mvt-repos));
}
html:root.is-reveal-ready .da-reveal:not(.da-shown) { opacity: 0; transform: translateY(var(--mvt-decalage)); }
html:root .da-animating { will-change: opacity, transform; }
html:root .ds-reveal-bandeau .ds-carte-photo {
  clip-path: inset(0);
  transition: clip-path var(--mvt-bandeau) var(--ease-out);
  transition-delay: var(--da-delay, var(--mvt-repos));
}
html:root.is-reveal-ready .ds-reveal-bandeau:not(.da-shown) .ds-carte-photo { clip-path: inset(0 0 100% 0); }
html:root .v3-art .ph { overflow: clip; }
html:root .v3-art .ph img { transition: transform var(--mvt-photo) var(--ease-out); }
/* Première carte de liste : visible dès la peinture, même pendant decode().
   Le secours photographique et les clichés natifs s2-* restent inchangés.
   Aucun hero d'article ou d'accueil ne correspond à ce sélecteur. */
html:root .focus-archive-card-link img[fetchpriority="high"] {
  opacity: 1 !important;
}
html:root .v3-art a:active { scale: none; }
html:root :is(.focus-home, .focus-archives) .btn { transition: transform var(--mvt-pression) var(--ease-out); }
html:root :is(.focus-home, .focus-archives) .btn:active:not(:disabled):not([aria-disabled=true]):not(:focus-visible) { transform: scale(var(--mvt-pression-echelle)); }
html:root :is(.focus-home, .focus-archives) .btn:focus-visible { transition: none; }
@media (hover: hover) and (pointer: fine) {
  html:root .v3-art a:hover .ph img { transform: scale(var(--mvt-photo-echelle)); }
}
html:root :is(.focus-article-body p, .v3o-bas, .v3-pied) a::after { transition: transform var(--mvt-survol) var(--ease-out); }
html:root :is(.focus-article-body p, .v3o-bas, .v3-pied) a:focus-visible::after { transform: scaleX(1); transition: none; }
@media (hover: hover) and (pointer: fine) {
  html:root :is(.focus-article-body p, .v3o-bas, .v3-pied) a:hover::after { transform: scaleX(1); }
}
html:root .s1-menu[open] {
  clip-path: circle(150vmax at var(--s1-x) var(--s1-y));
  transition: clip-path var(--mvt-volet) var(--ease-tiroir);
}
html:root .s1-menu[open][data-ds-opening=true] { clip-path: circle(0 at var(--s1-x) var(--s1-y)); }
@starting-style { html:root .s1-menu[open] { clip-path: circle(0 at var(--s1-x) var(--s1-y)); } }
html:root .s1-menu-list a { transition: none; }
html:root .s1-menu.s1-engaged .s1-menu-list a.s1-active { transform: none; }
@media (hover: hover) and (pointer: fine) {
  html:root .s1-menu[data-ds-keyboard=false] .s1-menu-list a { transition: transform var(--mvt-survol) var(--ease-out); }
  html:root .s1-menu[data-ds-keyboard=false].s1-engaged .s1-menu-list a.s1-active { transform: translateX(var(--mvt-menu-decalage)); }
}
html:root .s1-menu[open][data-ds-keyboard=true] { clip-path: none; transition: none; }
html:root :is(.da-reveal, .ds-reveal-bandeau):focus-within,
html:root .ds-reveal-bandeau:focus-within .ds-carte-photo { opacity: 1; transform: none; clip-path: none; transition: none; }
@media (prefers-reduced-motion: reduce) {
  html:root .da-reveal,
  html:root.is-reveal-ready .da-reveal:not(.da-shown),
  html:root .ds-reveal-bandeau .ds-carte-photo,
  html:root.is-reveal-ready .ds-reveal-bandeau:not(.da-shown) .ds-carte-photo,
  html:root .s1-menu[open],
  html:root .s1-menu[open][data-ds-opening=true] { opacity: 1; transform: none; clip-path: none; transition: none; }
  html:root .v3-art .ph img { transition: none; }
  html:root :is(.focus-home, .focus-archives) .btn:active:not(:disabled):not([aria-disabled=true]):not(:focus-visible) { transform: none; transition: none; }
  html:root .s1-menu.s1-engaged .s1-menu-list a.s1-active { transform: none; }
  html:root :is(.focus-article-body p, .v3o-bas, .v3-pied) a::after { transition: none; }
}
@media (prefers-reduced-motion: reduce) and (hover: hover) and (pointer: fine) {
  html:root .v3-art a:hover .ph img { transform: none; }
  html:root .s1-menu[data-ds-keyboard=false].s1-engaged .s1-menu-list a.s1-active { transform: none; transition: none; }
}

/* Source : assets/css/components/ds-pagination.css */
/* La pagination reste utilisable lorsque le défilement continu n'est pas disponible. */
.ds-pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--espace-serre); list-style: none; padding: 0; margin: 0; }
.ds-pagination :is(a.page-numbers, span.page-numbers) { display: inline-flex; align-items: center; justify-content: center; min-width: var(--cible); min-height: var(--cible); padding: var(--espace-serre) var(--espace-lie); color: var(--texte-encre); font: var(--graisse-action) var(--t-xs)/var(--lh-ui) var(--f-ui); text-decoration: none; }
.ds-pagination .page-numbers[aria-current] { color: var(--texte-inverse); background: var(--texte-encre); }
.ds-pagination a:focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); }

/* Source : assets/css/components/ds-rail.css */
/* Piste native, liens et contenu visibles sans JavaScript. */
.ds-rail:focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); }
@media (max-width: 640px) {
  .ds-rail { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 78%; gap: var(--espace-groupe); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--focus-decalage); scrollbar-width: none; padding: var(--espace-serre); }
  .ds-rail::-webkit-scrollbar { display: none; }
  .ds-rail > * { grid-column: auto; grid-row: auto; min-width: 0; scroll-snap-align: start; }
  .ds-rail .ds-carte-lien { scroll-margin-inline: var(--focus-decalage); scroll-snap-align: start; }
}
@media (prefers-reduced-motion: reduce) { .ds-rail { scroll-behavior: auto; } }

/* Source : assets/css/components/ds-tete.css */
/* Le titre précède la collection, la continuation en reste une action distincte. */
.ds-tete { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: var(--espace-lie) var(--espace-groupe); margin-bottom: calc(var(--espace-bloc) + var(--espace-serre)); padding-bottom: calc(var(--espace-groupe) - 2 * var(--bordure-fine)); border-bottom: var(--bordure-fine) solid var(--filet); }
.ds-tete :is(h1, h2, h3) { margin: 0; color: var(--texte-encre); font: var(--graisse-titre) var(--t-section)/var(--lh-titre) var(--f-titre); letter-spacing: var(--ls-titre); text-wrap: balance; }
.ds-tete--sans-filet { border: 0; padding-bottom: 0; }
.ds-tete-lien { display: inline-flex; align-items: center; gap: var(--espace-lie); min-height: var(--cible); max-width: 100%; color: var(--lien); font: var(--graisse-etiquette) var(--t-xs)/var(--lh-ui) var(--f-ui); letter-spacing: var(--ls-ui); text-decoration: none; }
.ds-tete-lien:focus-visible { outline: var(--focus-epaisseur) solid var(--focus); outline-offset: var(--focus-decalage); }
@media (max-width: 640px) { .ds-tete { align-items: flex-start; margin-bottom: var(--espace-groupe); padding-bottom: var(--espace-courant); } }
/* La migration conserve le rythme des listes existantes. */
.ds-tete--archive { align-items: baseline; margin-bottom: calc(var(--espace-bloc) + var(--espace-serre)); padding-bottom: calc(var(--espace-groupe) - 2 * var(--bordure-fine)); }

