/*
Theme Name: Cours TMI
Theme URI: https://blog.f-lasne.com
Author: Fabrice Lasne
Description: Thème bloc du site Cours TMI — formation Technicien de Maintenance Industrielle, lycée Diderot. Tout le contenu se modifie dans l'éditeur de pages.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cours-tmi
*/

/* =========================================================
   Jetons — relevés sur la référence, validés en maquette
   ========================================================= */

:root {
  --fond-haut: #E3E7EA;
  --fond-bas: #D5D9DF;
  --blanc: #FFFFFF;
  --gris-carte: #F1F5F9;
  --gris-domaine: #FAFCFE;
  --puce: #F6F8FA;
  --filet: #ECEEF1;
  --filet-champ: #E3E6EA;

  --marine: #0F172B;
  --marine-filet: rgba(255, 255, 255, .13);
  --marine-groupe: #7D879B;
  --marine-texte: #EDF1F6;
  --marine-ico: #8A93A4;

  --encre: #0B0E14;
  --encre-2: #515761;
  --encre-3: #78828E;

  --bleu: #2394FB;
  --bleu-haut: #4AB0FF;
  --bleu-texte: #3B7ED3;
  --bleu-pale: #F2F7FF;
  --vert: #1F7A36;
  --rouge: #DD3048;
  --bouton-repos: #BDC5CE;

  --creme: #FDF2E3;
  --creme-filet: #F5E5CB;

  --r-cadre: 28px;
  --r-carte: 16px;
  --r-champ: 10px;
  --ombre-douce: 0 1px 2px rgba(15, 23, 43, .04), 0 6px 18px -10px rgba(15, 23, 43, .14);

  --marge-cadre: clamp(12px, 5vw, 80px);
  --l-barre: 250px;
  --l-filtres: 290px;

  --police: "Inter", "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", system-ui, -apple-system, "Segoe UI", sans-serif;

  --i-grille: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='7' height='7' x='3' y='3' rx='1.5'/%3E%3Crect width='7' height='7' x='14' y='3' rx='1.5'/%3E%3Crect width='7' height='7' x='14' y='14' rx='1.5'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1.5'/%3E%3C/svg%3E");
  --if-grille: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='7' height='7' x='3' y='3' rx='1.5'/%3E%3Crect width='7' height='7' x='14' y='3' rx='1.5'/%3E%3Crect width='7' height='7' x='14' y='14' rx='1.5'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1.5'/%3E%3C/svg%3E");
  --i-livre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E");
  --if-livre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E");
  --i-cle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E");
  --if-cle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E");
  --i-presse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='8' height='4' x='8' y='2' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M12 11h4M12 16h4M8 11h.01M8 16h.01'/%3E%3C/svg%3E");
  --if-presse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='8' height='4' x='8' y='2' rx='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='M12 11h4M12 16h4M8 11h.01M8 16h.01'/%3E%3C/svg%3E");
  --i-dossier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z'/%3E%3Cpath d='M8 10v4M12 10v2M16 10v6'/%3E%3C/svg%3E");
  --if-dossier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z'/%3E%3Cpath d='M8 10v4M12 10v2M16 10v6'/%3E%3C/svg%3E");
  --i-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E");
  --if-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E");
  --i-bulle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.9 20A9 9 0 1 0 4 16.1L2 22Z'/%3E%3C/svg%3E");
  --if-bulle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.9 20A9 9 0 1 0 4 16.1L2 22Z'/%3E%3C/svg%3E");
  --i-courrier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
  --if-courrier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E");
  --i-fichier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4M10 9H8M16 13H8M16 17H8'/%3E%3C/svg%3E");
  --if-fichier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z'/%3E%3Cpath d='M14 2v4a2 2 0 0 0 2 2h4M10 9H8M16 13H8M16 17H8'/%3E%3C/svg%3E");
  --i-entree: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4'/%3E%3Cpath d='m10 17 5-5-5-5M15 12H3'/%3E%3C/svg%3E");
  --if-entree: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4'/%3E%3Cpath d='m10 17 5-5-5-5M15 12H3'/%3E%3C/svg%3E");
  --i-panneau: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='3' rx='3'/%3E%3Cpath d='M9 3v18'/%3E%3Cpath d='m16 15-3-3 3-3'/%3E%3C/svg%3E");
  --if-panneau: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='18' height='18' x='3' y='3' rx='3'/%3E%3Cpath d='M9 3v18'/%3E%3Cpath d='m16 15-3-3 3-3'/%3E%3C/svg%3E");
  --i-loupe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7.5'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
  --if-loupe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7.5'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
  --i-cloche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9'/%3E%3Cpath d='M10.3 21a1.94 1.94 0 0 0 3.4 0'/%3E%3C/svg%3E");
  --if-cloche: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9'/%3E%3Cpath d='M10.3 21a1.94 1.94 0 0 0 3.4 0'/%3E%3C/svg%3E");
  --i-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --if-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  --i-retour: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8'/%3E%3Cpath d='M3 3v5h5'/%3E%3C/svg%3E");
  --if-retour: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8'/%3E%3Cpath d='M3 3v5h5'/%3E%3C/svg%3E");
  --i-toque: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.42 10.92a1 1 0 0 0-.02-1.84L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.83l8.57 3.91a2 2 0 0 0 1.66 0z'/%3E%3Cpath d='M22 10v6'/%3E%3Cpath d='M6 12.5V16a6 3 0 0 0 12 0v-3.5'/%3E%3C/svg%3E");
  --if-toque: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.42 10.92a1 1 0 0 0-.02-1.84L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.83l8.57 3.91a2 2 0 0 0 1.66 0z'/%3E%3Cpath d='M22 10v6'/%3E%3Cpath d='M6 12.5V16a6 3 0 0 0 12 0v-3.5'/%3E%3C/svg%3E");
  --i-engrenage: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z'/%3E%3Cpath d='M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z'/%3E%3Cpath d='M12 2v2M12 22v-2M17 20.66l-1-1.73M11 10.27 7 3.34M20.66 17l-1.73-1M3.34 7l1.73 1M14 12h8M2 12h2M20.66 7l-1.73 1M3.34 17l1.73-1M17 3.34l-1 1.73M11 13.73l-4 6.93'/%3E%3C/svg%3E");
  --if-engrenage: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z'/%3E%3Cpath d='M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z'/%3E%3Cpath d='M12 2v2M12 22v-2M17 20.66l-1-1.73M11 10.27 7 3.34M20.66 17l-1.73-1M3.34 7l1.73 1M14 12h8M2 12h2M20.66 7l-1.73 1M3.34 17l1.73-1M17 3.34l-1 1.73M11 13.73l-4 6.93'/%3E%3C/svg%3E");
  --i-eclair: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z'/%3E%3C/svg%3E");
  --if-eclair: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z'/%3E%3C/svg%3E");
  --i-puce: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='16' height='16' x='4' y='4' rx='2'/%3E%3Crect width='6' height='6' x='9' y='9' rx='1'/%3E%3Cpath d='M15 2v2M15 20v2M2 15h2M2 9h2M20 15h2M20 9h2M9 2v2M9 20v2'/%3E%3C/svg%3E");
  --if-puce: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='16' height='16' x='4' y='4' rx='2'/%3E%3Crect width='6' height='6' x='9' y='9' rx='1'/%3E%3Cpath d='M15 2v2M15 20v2M2 15h2M2 9h2M20 15h2M20 9h2M9 2v2M9 20v2'/%3E%3C/svg%3E");
  --i-manometre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 14 4-4'/%3E%3Cpath d='M3.34 19a10 10 0 1 1 17.32 0'/%3E%3C/svg%3E");
  --if-manometre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 14 4-4'/%3E%3Cpath d='M3.34 19a10 10 0 1 1 17.32 0'/%3E%3C/svg%3E");
  --i-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E");
  --if-menu: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E");
  --i-filtre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M7 12h10M10 18h4'/%3E%3C/svg%3E");
  --if-filtre: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M7 12h10M10 18h4'/%3E%3C/svg%3E");
  --i-logo: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='black' stroke-width='3' stroke-linejoin='round'%3E%3Cpath d='M16 3.2 27 9.6v12.8L16 28.8 5 22.4V9.6Z'/%3E%3Ccircle cx='16' cy='16' r='4.6'/%3E%3C/svg%3E");
  --i-hexa: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23398BFB' d='M12 2.5 20.5 7.4v9.2L12 21.5l-8.5-4.9V7.4Z'/%3E%3Cpath d='M15.2 9.6a4 4 0 1 0 0 4.8' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
  --i-degrade: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23EC46B5'/%3E%3Cstop offset='1' stop-color='%237C5CFA'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath fill='url(%23g)' d='M13.6 2.3c.4-.4 1.1 0 .9.6l-1.8 6.1h6.6c.7 0 1 .8.6 1.3l-9.5 11.4c-.4.5-1.2.1-1-.5l1.9-6.2H4.6c-.7 0-1-.8-.6-1.3Z'/%3E%3C/svg%3E");
  --i-rayures: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F35B5' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 13.5 13.5 6M6 18l12-12M10.5 18 18 10.5'/%3E%3C/svg%3E");
}

/* Teintes des domaines et des pastilles (icône + fond de pastille) */
.teinte-orange, .d-mecanique        { --teinte: #D1832D; --teinte-fond: #FBF3E6; --teinte-filet: #F6E3C8; --teinte-ombre: rgba(209, 131, 45, .35); }
.teinte-violet, .d-electrotechnique { --teinte: #8224D1; --teinte-fond: #F6EDFD; --teinte-filet: #EBDDF8; --teinte-ombre: rgba(130, 36, 209, .3); }
.teinte-indigo, .d-automatismes     { --teinte: #6A55E0; --teinte-fond: #ECEEFC; --teinte-filet: #DEE1F8; --teinte-ombre: rgba(106, 85, 224, .3); }
.teinte-bleu, .d-pneumatique        { --teinte: #2957C8; --teinte-fond: #E9F1FF; --teinte-filet: #D9E6FB; --teinte-ombre: rgba(41, 87, 200, .3); }
.d-mecanique        { --ico: var(--if-engrenage); }
.d-electrotechnique { --ico: var(--if-eclair); }
.d-automatismes     { --ico: var(--if-puce); }
.d-pneumatique      { --ico: var(--if-manometre); }

/* =========================================================
   Base — remises à zéro à spécificité nulle
   ========================================================= */

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

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

body {
  margin: 0;
  min-height: 100vh;
  background: linear-gradient(180deg, var(--fond-haut), var(--fond-bas)) fixed;
  color: var(--encre);
  font-family: var(--police);
  font-size: 15px;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; text-decoration: none; }
:where(h1, h2, h3, h4, p, figure, ul) { margin: 0; }
:where(h1, h2, h3, h4) { font-size: inherit; font-weight: 500; line-height: 1.45; }
:where(.wp-block-group) > :where(*) { margin-block: 0; }
img { display: block; max-width: 100%; height: auto; }
figure.wp-block-image { margin: 0; }

.screen-reader-text {
  border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden;
  padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}

/* =========================================================
   Cadre d'application
   ========================================================= */

.app {
  max-width: 1440px;
  margin: var(--marge-cadre) auto;
  display: grid;
  grid-template-columns: var(--l-barre) minmax(0, 1fr);
  background: var(--blanc);
  border-radius: var(--r-cadre);
  overflow: clip;
  box-shadow: 0 40px 80px -40px rgba(15, 23, 43, .28);
}
@media (min-width: 1500px) { .app { width: calc(100% - 2 * var(--marge-cadre)); } }
@media (max-width: 1499px) { .app { margin-inline: var(--marge-cadre); } }

/* =========================================================
   Barre latérale
   ========================================================= */

.barre { background: var(--marine); color: var(--marine-texte); }

.barre-fixe {
  position: sticky; top: 0;
  height: calc(100vh - var(--marge-cadre));
  min-height: 640px;
  display: flex; flex-direction: column;
}
.admin-bar .barre-fixe { top: 32px; height: calc(100vh - var(--marge-cadre) - 32px); }

.barre-tete {
  display: flex; align-items: center; justify-content: space-between;
  height: 64px; padding: 0 20px;
  border-bottom: 1px solid var(--marine-filet);
  flex: none;
}

.barre .logo { margin: 0; font-size: 24px; font-weight: 600; letter-spacing: -.03em; line-height: 1.2; }
.barre .logo a { display: flex; align-items: center; gap: 8px; color: #fff; white-space: nowrap; }
.barre .logo a::before {
  content: ""; flex: none; width: 28px; height: 28px;
  background: #fff;
  -webkit-mask: var(--i-logo) center / contain no-repeat; mask: var(--i-logo) center / contain no-repeat;
}

.barre-replier {
  display: grid; place-items: center; flex: none;
  width: 28px; height: 28px; border-radius: 6px;
  color: #C9CFD9; cursor: pointer;
  font-size: 0; overflow: hidden;
}
.barre-replier::before {
  content: ""; width: 20px; height: 20px; background: currentColor;
  -webkit-mask: var(--if-panneau) center / contain no-repeat; mask: var(--if-panneau) center / contain no-repeat;
}
.barre-replier:hover { color: #fff; }

.nav {
  flex: 1;
  display: flex; flex-direction: column;
  padding: 8px 20px 24px;
  overflow-y: auto;
}

.nav-groupe {
  margin: 20px 0 8px;
  color: var(--marine-groupe);
  font-size: 14.5px;
  white-space: nowrap;
}

/* menus natifs (core/navigation) : un par groupe */
.barre .nav-liste.wp-block-navigation,
.barre .nav-liste .wp-block-navigation__container {
  display: flex; flex-direction: column; align-items: stretch; gap: 0;
  font-size: 15px;
}
.barre .nav-liste .wp-block-navigation-item.nav-lien { display: block; }
.barre .nav-liste .nav-lien > .wp-block-navigation-item__content {
  display: flex; align-items: center; gap: 10px;
  height: 38px; padding: 0 12px;
  border-radius: 999px;
  color: var(--marine-texte);
  white-space: nowrap;
  transition: background-color .15s;
}
.barre .nav-liste .nav-lien > .wp-block-navigation-item__content::before {
  content: ""; flex: none; width: 16px; height: 16px;
  background: var(--marine-ico);
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
.barre .nav-liste .nav-lien > .wp-block-navigation-item__content:hover { background: rgba(255, 255, 255, .06); }

.barre .nav-liste .nav-lien.current-menu-item > .wp-block-navigation-item__content {
  color: #fff;
  background: linear-gradient(180deg, var(--bleu-haut) 0%, var(--bleu) 70%, #1C86F2 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .28),
    inset 0 1px 0 rgba(255, 255, 255, .55),
    0 0 0 1px rgba(35, 148, 251, .55),
    0 8px 26px -2px rgba(35, 148, 251, .55);
}
.barre .nav-liste .nav-lien.current-menu-item > .wp-block-navigation-item__content::before { background: #fff; }

.nav-bas { margin-top: auto; padding-top: 24px; }

/* barre repliée (bureau) */
.app.est-replie { grid-template-columns: 76px minmax(0, 1fr); }
.app.est-replie .barre .wp-block-navigation-item__label { display: none; }
.app.est-replie .barre-tete { padding: 0 12px; justify-content: center; }
.app.est-replie .barre .logo { display: none; }
.app.est-replie .barre-replier { transform: scaleX(-1); }
.app.est-replie .nav { padding-inline: 14px; }
.app.est-replie .nav-groupe { font-size: 0; height: 1px; margin: 16px 6px; background: var(--marine-filet); }
.app.est-replie .barre .nav-liste .nav-lien > .wp-block-navigation-item__content { justify-content: center; padding: 0; }

/* =========================================================
   En-tête du panneau
   ========================================================= */

.panneau { min-width: 0; }

.entete {
  display: flex; align-items: center; gap: 16px;
  height: 80px; padding: 0 24px;
  border-bottom: 1px solid var(--filet);
}
.entete .entete-titre { margin: 0; font-size: 21px; font-weight: 500; letter-spacing: -.01em; line-height: 1.45; }
.entete-menu { display: none; }

.entete-actions { margin-left: auto; display: flex; align-items: center; gap: 30px; }
.entete-ico a {
  position: relative;
  display: grid; place-items: center;
  width: 24px; height: 24px;
  color: #3A4048;
  font-size: 0;
}
.entete-ico a::before {
  content: ""; width: 21px; height: 21px; background: currentColor;
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
.entete-ico a:hover { color: var(--bleu); }
.entete-cloche a::after {
  content: ""; position: absolute; top: 1px; right: 2px;
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--rouge); box-shadow: 0 0 0 2px #fff;
}

.avatar {
  display: grid; place-items: center; flex: none;
  width: 40px; height: 40px; border-radius: 50%;
  background: #FEB8CB; color: #6E2238;
  font-size: 14px; font-weight: 600; letter-spacing: .02em;
  box-shadow: 0 0 0 2px #fff, 0 2px 8px rgba(15, 23, 43, .18);
}
.avatar a { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; }

/* =========================================================
   Corps : colonne de gauche | contenu
   ========================================================= */

.corps {
  display: grid;
  grid-template-columns: var(--l-filtres) minmax(0, 1fr);
}

/* ---------- Filtres ---------- */

.filtres {
  padding: 24px;
  border-right: 1px solid var(--filet);
  display: flex; flex-direction: column; gap: 22px;
}

.filtres-carte {
  background: var(--gris-carte);
  border-radius: 18px;
  padding: 0 4px 4px;
  box-shadow: var(--ombre-douce);
}

.filtres-titre {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px 12px;
  font-size: 15px; font-weight: 500;
}

.filtres-contenu {
  background: var(--blanc);
  border-radius: 14px;
  padding: 4px 16px 12px;
  box-shadow: 0 -1px 0 rgba(255, 255, 255, .8), 0 1px 3px rgba(15, 23, 43, .05);
}

.filtre { padding: 14px 0 12px; border-bottom: 1px solid var(--filet); }
.filtre:last-child { border-bottom: 0; }

.filtre-label {
  display: block;
  margin-bottom: 8px;
  color: var(--encre-2);
  font-size: 13px;
}

/* choix exclusifs : paragraphes éditables, le script pose role="radio" */
.choix {
  display: flex; align-items: center; gap: 10px;
  height: 30px;
  font-size: 15px;
  cursor: pointer;
  user-select: none;
}
.choix::before {
  content: ""; flex: none;
  width: 14px; height: 14px;
  border: 1.5px solid #DFE2E5; border-radius: 50%;
  background: #fff;
  transition: border-color .15s, border-width .15s;
}
.choix.est-coche::before { border: 4.5px solid var(--bleu); }
.choix:focus-visible { outline: 2px solid var(--bleu); outline-offset: 2px; border-radius: 6px; }

/* liste déroulante : un paragraphe + ses options */
.liste { position: relative; }
.liste-valeur {
  position: relative;
  display: flex; align-items: center;
  height: 34px; padding: 0 34px 0 12px;
  border: 1px solid var(--filet-champ); border-radius: var(--r-champ);
  background: #fff;
  font-size: 15px; color: var(--encre-2);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  cursor: pointer;
}
.liste-valeur::after {
  content: ""; position: absolute; right: 12px; top: 50%;
  width: 15px; height: 15px; margin-top: -7.5px;
  background: var(--encre);
  -webkit-mask: var(--i-chevron) center / contain no-repeat; mask: var(--i-chevron) center / contain no-repeat;
}
.liste-valeur.est-rempli { color: var(--encre); }
.liste-valeur:focus-visible { outline: 2px solid var(--bleu); outline-offset: 2px; }
.liste-options {
  display: none;
  position: absolute; z-index: 5; left: 0; right: 0; top: calc(100% + 4px);
  padding: 4px;
  border-radius: var(--r-champ);
  background: #fff;
  box-shadow: 0 0 0 1px var(--filet-champ), 0 12px 28px -12px rgba(15, 23, 43, .25);
}
.liste.est-ouvert .liste-options { display: block; }
.liste-options .choix { height: 34px; padding: 0 10px; border-radius: 8px; }
.liste-options .choix::before { display: none; }
.liste-options .choix:hover { background: var(--puce); }
.liste-options .choix.est-coche { color: var(--bleu-texte); font-weight: 500; }

/* double curseur de durée : piste et poignées en pseudo-éléments */
.filtre-duree { --min: 1; --max: 8; }
.filtre-duree.curseur-2-4 { --min: 2; --max: 4; }
.bornes {
  position: relative;
  display: flex; gap: 27px;
  margin-top: 34px;
  touch-action: none;
}
.bornes::before, .bornes::after {
  content: ""; position: absolute; top: -23px; height: 4px; border-radius: 2px;
}
.bornes::before { left: 0; right: 0; background: #EFF1F3; }
.bornes::after {
  left: calc((var(--min) - 1) / 7 * 100%);
  right: calc((8 - var(--max)) / 7 * 100%);
  background: var(--bleu);
}
.borne {
  flex: 1;
  display: flex; flex-direction: column;
  padding: 7px 12px;
  border: 1px solid var(--filet-champ); border-radius: var(--r-champ);
}
.borne-min::before, .borne-max::before {
  content: ""; position: absolute; z-index: 1; top: -29px;
  width: 16px; height: 16px; border-radius: 50%;
  background: #EAF5FF; border: 3px solid #A9D4F7;
  box-shadow: 0 0 0 1px #5DA5DA, 0 2px 6px rgba(35, 148, 251, .3);
  cursor: grab;
}
.borne-min::before { left: calc((var(--min) - 1) / 7 * (100% - 16px)); }
.borne-max::before { left: calc((var(--max) - 1) / 7 * (100% - 16px)); }
.borne-min::after {
  content: "–"; position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  color: var(--encre-2);
}
.borne:focus-visible { outline: 2px solid var(--bleu); outline-offset: 2px; }
.borne-label { color: var(--encre-2); font-size: 12.5px; }
.borne-valeur { font-size: 14.5px; }

/* bouton à contour : paragraphe-bouton ou core/button */
.bouton-contour:not(.wp-block-button),
.wp-block-button.bouton-contour .wp-block-button__link {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; height: 34px; padding: 0 14px;
  border: 1px solid var(--filet-champ); border-radius: var(--r-champ);
  background: #fff; color: var(--encre);
  font-size: 15px; font-weight: 400; line-height: 1.45;
  text-decoration: none;
  cursor: pointer;
  transition: border-color .15s, background-color .15s;
}
.bouton-contour:not(.wp-block-button):hover,
.wp-block-button.bouton-contour .wp-block-button__link:hover { border-color: #C9D0D8; background: #FAFBFC; }
.bouton-contour[class*="ico-"]:not(.wp-block-button)::before,
.wp-block-button.bouton-contour[class*="ico-"] .wp-block-button__link::before {
  content: ""; flex: none; width: 15px; height: 15px; background: currentColor;
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
.wp-block-buttons > .wp-block-button.bouton-contour { display: block; width: 100%; margin: 0; }
.bouton-contour:focus-visible { outline: 2px solid var(--bleu); outline-offset: 2px; }

/* ---------- Contenu ---------- */

.contenu { min-width: 0; padding: 24px 24px 20px; }

/* recherche : bloc natif core/search */
.wp-block-search.recherche { margin: 0; }
.wp-block-search.recherche .wp-block-search__inside-wrapper {
  display: flex; align-items: center; gap: 12px;
  height: 68px; padding: 0 12px 0 16px;
  border: 1px solid var(--filet); border-radius: 18px;
  background: #fff;
  box-shadow: 0 2px 8px -2px rgba(15, 23, 43, .07);
}
.wp-block-search.recherche .wp-block-search__inside-wrapper::before {
  content: ""; flex: none; width: 20px; height: 20px; background: #434950;
  -webkit-mask: var(--i-loupe) center / contain no-repeat; mask: var(--i-loupe) center / contain no-repeat;
}
.wp-block-search.recherche .wp-block-search__inside-wrapper .wp-block-search__input {
  flex: 1; min-width: 0; height: 100%; margin: 0; padding: 0;
  border: 0; border-radius: 0; outline: 0; background: none;
  font-family: inherit; font-size: 16.5px; color: var(--encre);
}
.wp-block-search.recherche .wp-block-search__input::placeholder { color: var(--encre-3); opacity: 1; }
.wp-block-search.recherche .wp-block-search__input::-webkit-search-cancel-button { display: none; }
.wp-block-search.recherche .wp-block-search__inside-wrapper .wp-block-search__button {
  flex: none;
  height: 44px; margin: 0; padding: 0 20px;
  border: 0; border-radius: 12px;
  background: var(--bouton-repos); color: #fff;
  font-family: inherit; font-size: 16.5px; font-weight: 500; line-height: 1;
  box-shadow: none;
  cursor: pointer;
  transition: background-color .2s, box-shadow .2s;
}
.wp-block-search.recherche.est-rempli .wp-block-search__inside-wrapper .wp-block-search__button {
  background: linear-gradient(180deg, var(--bleu-haut), var(--bleu));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), 0 6px 18px -6px rgba(35, 148, 251, .6);
}

/* puces de sujets */
.populaire {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  margin-top: 12px;
}
.populaire-label { color: #5A5F65; font-size: 13px; margin-right: 2px; }
.puce-sujet {
  position: relative;
  display: inline-flex; align-items: center;
  height: 28px; padding: 0 10px;
  border-radius: 999px;
  background: var(--puce);
  box-shadow: inset 0 0 0 1px #EEF1F4;
  font-size: 15px;
  white-space: nowrap;
  transition: background-color .15s;
}
.puce-sujet a { display: inline-flex; align-items: center; gap: 6px; }
.puce-sujet a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.puce-sujet[class*="ico-"] a::before {
  content: ""; flex: none; width: 14px; height: 14px; background: #5A5F65;
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
}
.puce-sujet:hover { background: #EEF2F6; }

/* « À la une » */
.une {
  margin-top: 26px;
  padding: 0 4px 4px;
  border-radius: 18px;
  background: var(--creme);
  box-shadow: inset 0 0 0 1px var(--creme-filet), 0 6px 20px -12px rgba(190, 140, 60, .35);
  scroll-margin-top: 24px;
}
.une .une-titre {
  padding: 12px 12px 10px;
  font-size: 19px; font-weight: 500; letter-spacing: -.01em;
}
.une-liste {
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 0 0 1px #F8EEDD;
  padding: 0 16px;
}

/* lignes de séance : pastille et icône en pseudo-éléments */
.seance {
  position: relative;
  display: flex; align-items: center; gap: 12px;
  padding: 16px 0;
  border-bottom: 1px solid var(--filet);
}
.seance:last-child { border-bottom: 0; }
.seance::before {
  content: ""; flex: none;
  width: 48px; height: 48px; border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 1px #EEF0F2, 0 3px 8px rgba(15, 23, 43, .09);
}
.seance::after {
  content: ""; position: absolute; left: 14px; top: 50%;
  width: 20px; height: 20px; margin-top: -10px;
  background: var(--teinte, var(--encre-2));
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
  pointer-events: none;
}
.seance.ico-hexa::after,
.seance.ico-degrade::after,
.seance.ico-rayures::after {
  left: 12px; width: 24px; height: 24px; margin-top: -12px;
  -webkit-mask: none; mask: none;
  background: var(--ico) center / contain no-repeat;
}
.seance:hover .seance-nom { color: var(--bleu-texte); }

.seance-texte { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.seance-tete { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.seance .seance-nom { font-size: 15.5px; font-weight: 500; line-height: 1.45; transition: color .15s; }
.une .seance-nom a::after { content: ""; position: absolute; inset: 0; }
.seance-num {
  padding: 2px 6px;
  border-radius: 6px;
  background: var(--bleu-pale);
  color: var(--encre-2);
  font-size: 12.5px;
}
.seance-num strong { font-weight: 500; color: var(--bleu-texte); }

.seance-meta {
  display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; row-gap: 2px;
  color: var(--encre-2);
  font-size: 15px;
}
.seance-meta > p + p::before {
  content: ""; display: inline-block; vertical-align: middle;
  width: 4px; height: 4px; margin-right: 12px; border-radius: 50%;
  background: #B8BEC6;
}
.seance-meta strong { font-weight: 600; color: var(--encre); }
.seance-meta .dispo { color: var(--vert); }
.seance-meta .dispo.est-a-venir { color: var(--encre-3); }
.seance-meta a, .prose a { color: var(--bleu-texte); }
.seance-meta a:hover, .prose a:hover { text-decoration: underline; }

/* Titres de section */
.section-titre {
  margin: 30px 0 16px;
  font-size: 17px; font-weight: 500; letter-spacing: -.01em;
}
.contenu .section-titre { margin: 30px 0 16px; }

/* Domaines */
.domaines-grille {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px;
}
.domaine {
  position: relative;
  display: flex; flex-direction: column;
  min-height: 130px; padding: 16px;
  border-radius: var(--r-carte);
  background: var(--gris-domaine);
  box-shadow: inset 0 0 0 1px #EEF1F4, 0 2px 6px -3px rgba(15, 23, 43, .08);
  transition: box-shadow .2s;
}
.domaine:has(a):hover { box-shadow: inset 0 0 0 1px #DCE3EA, 0 10px 24px -14px rgba(15, 23, 43, .3); }
.domaine::before {
  content: ""; flex: none;
  width: 40px; height: 40px; border-radius: 50%;
  margin-bottom: auto;
  background: var(--teinte-fond);
  box-shadow: inset 0 0 0 1px var(--teinte-filet), 0 2px 6px -2px var(--teinte-ombre);
}
.domaine::after {
  content: ""; position: absolute; left: 26px; top: 26px;
  width: 20px; height: 20px;
  background: var(--teinte);
  -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat;
  pointer-events: none;
}
.domaine-nom { margin-top: 24px; font-size: 15px; font-weight: 500; }
.domaine-nom a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.domaine-nb { color: var(--encre-2); font-size: 15px; }

/* Projets (accueil) */
.projets-grille {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;
}
.projet {
  display: flex; flex-direction: column;
  padding: 14px;
  border-radius: var(--r-carte);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--filet), 0 2px 8px -4px rgba(15, 23, 43, .08);
}
.projet .projet-photo { margin: 0; }
.projet .projet-photo img {
  width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover;
  border-radius: 8px;
  background: var(--gris-carte);
}
.projet .projet-nom {
  margin-top: 14px;
  font-size: 15px; font-weight: 500;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.projet-info { color: var(--encre-2); font-size: 15px; margin-top: 2px; }
.projet .projet-action { margin-top: 16px; }

/* Pied (motif synchronisé) */
.pied {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px;
  margin-top: 36px; padding-top: 18px;
  border-top: 1px solid var(--filet);
  color: var(--encre-3);
  font-size: 13px;
}
.contenu .pied { margin-top: 36px; }
.pied a:hover { color: var(--bleu-texte); }

/* =========================================================
   Pages internes
   ========================================================= */

.corps-plein { grid-template-columns: minmax(0, 1fr); }

.colonne {
  padding: 24px;
  border-right: 1px solid var(--filet);
  display: flex; flex-direction: column; gap: 22px;
}
.profil-tete { display: flex; align-items: center; gap: 12px; padding: 16px 0 14px; border-bottom: 1px solid var(--filet); }
.avatar.avatar-grand { width: 52px; height: 52px; font-size: 17px; }
.profil-nom { font-size: 15.5px; font-weight: 500; }
.profil-role { color: var(--encre-2); font-size: 13px; }
.profil-valeur { font-size: 14.5px; overflow-wrap: anywhere; }
.profil-valeur a:hover { color: var(--bleu-texte); }

.contenu .section-titre-haut { margin-top: 2px; }
.chapeau { max-width: 70ch; margin: -6px 0 18px; color: var(--encre-2); }
.contenu .chapeau { margin: -6px 0 18px; }

.carte {
  padding: 20px 22px;
  border-radius: var(--r-carte);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--filet), 0 2px 8px -4px rgba(15, 23, 43, .08);
}
.carte .carte-titre { margin-bottom: 8px; font-size: 17px; font-weight: 500; letter-spacing: -.01em; }
.carte p { max-width: 75ch; color: var(--encre-2); line-height: 1.6; }
.carte p + p { margin-top: 10px; }
.prose { max-width: 860px; }
.prose .carte-titre:not(:first-child) { margin-top: 24px; }

.domaines-grille-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* listes de ressources */
.liste-carte {
  padding: 0 16px;
  border-radius: var(--r-carte);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--filet), 0 2px 8px -4px rgba(15, 23, 43, .08);
}
.liste-carte .seance-texte { flex: 1; }
.seance-action { flex: none; }
.seance-action .wp-block-button.bouton-contour { width: auto; }
.wp-block-button.bouton-contour.seance-pdf .wp-block-button__link { width: auto; font-size: 14.5px; }
.ressource { scroll-margin-top: 24px; }
.seance:target .seance-nom { color: var(--bleu-texte); }
.seance:target::before { box-shadow: 0 0 0 2px var(--bleu), 0 3px 8px rgba(35, 148, 251, .3); }

.est-masque { display: none !important; }
.vide { display: none; }
.resultats.est-vide .vide {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  margin-top: 30px; padding: 24px;
  border-radius: var(--r-carte);
  background: var(--gris-domaine);
  box-shadow: inset 0 0 0 1px #EEF1F4;
}
.vide-titre { font-weight: 500; }
.vide-texte { color: var(--encre-2); }
.vide .bouton-contour:not(.wp-block-button) { width: auto; margin-top: 12px; }

/* projets en fiches larges */
.projets-liste { display: flex; flex-direction: column; gap: 20px; }
.projet.projet-large {
  display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 20px;
  align-items: start;
  scroll-margin-top: 24px;
}
.projet.projet-large .projet-photo img { aspect-ratio: 4 / 3; }
.projet.projet-large .projet-nom { margin-top: 2px; font-size: 17px; white-space: normal; }
.projet-texte { margin-top: 10px; max-width: 70ch; color: var(--encre-2); line-height: 1.6; }
.projet-puces { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.projet:target { box-shadow: inset 0 0 0 1px var(--bleu), 0 8px 24px -12px rgba(35, 148, 251, .45); }

/* formulaire de contact (Contact Form 7, gabarit aux classes de la maquette) */
.formulaire .wpcf7 form > p:empty { display: none; }
.formulaire-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.champ { display: flex; flex-direction: column; }
.champ .filtre-label { margin-bottom: 6px; }
.champ-large { grid-column: 1 / -1; }
.champ .wpcf7-form-control-wrap { display: block; }
.champ input, .champ textarea, .champ select {
  display: block;
  width: 100%; height: 40px; padding: 0 12px;
  border: 1px solid var(--filet-champ); border-radius: var(--r-champ);
  background: #fff;
  font: inherit; font-size: 15px; color: var(--encre);
  outline: 0;
  transition: border-color .15s, box-shadow .15s;
}
.champ select { appearance: none; -webkit-appearance: none; padding-right: 34px; cursor: pointer; }
.champ .liste { display: block; }
.champ .liste::after {
  content: ""; position: absolute; right: 12px; top: 50%;
  width: 15px; height: 15px; margin-top: -7.5px;
  background: var(--encre); pointer-events: none;
  -webkit-mask: var(--i-chevron) center / contain no-repeat; mask: var(--i-chevron) center / contain no-repeat;
}
.champ textarea { height: auto; min-height: 140px; padding: 10px 12px; resize: vertical; line-height: 1.5; }
.champ input:focus, .champ textarea:focus, .champ select:focus {
  border-color: var(--bleu);
  box-shadow: 0 0 0 3px rgba(35, 148, 251, .15);
}
.formulaire-pied {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px;
  margin-top: 18px;
}
.formulaire-note { color: var(--encre-3); font-size: 13px; }
.bouton-plein {
  height: 44px; padding: 0 24px;
  border: 0; border-radius: 12px;
  background: linear-gradient(180deg, var(--bleu-haut), var(--bleu));
  color: #fff;
  font: inherit; font-size: 16px; font-weight: 500;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), 0 6px 18px -6px rgba(35, 148, 251, .6);
  cursor: pointer;
}
.bouton-plein:hover { filter: brightness(1.05); }
.formulaire .wpcf7-spinner { display: none; }
.formulaire .wpcf7-not-valid-tip { margin-top: 4px; color: #B42338; font-size: 13px; }
.formulaire .champ .wpcf7-not-valid { border-color: #E7A0AC; }
.formulaire .wpcf7 form .wpcf7-response-output {
  margin: 16px 0 0; padding: 10px 14px;
  border: 1px solid var(--filet-champ); border-radius: var(--r-champ);
  font-size: 14px;
}
.formulaire .wpcf7 form.sent .wpcf7-response-output { border-color: #BFE3C8; background: #F1FAF3; color: var(--vert); }
.formulaire .wpcf7 form.invalid .wpcf7-response-output,
.formulaire .wpcf7 form.unaccepted .wpcf7-response-output,
.formulaire .wpcf7 form.failed .wpcf7-response-output,
.formulaire .wpcf7 form.spam .wpcf7-response-output { border-color: #F3C3CB; background: #FEF3F5; color: #B42338; }

/* listes d'articles et résultats de recherche */
.liste-articles .wp-block-post-template { margin: 0; padding: 0 16px; list-style: none; }
.liste-articles .wp-block-post { border-bottom: 1px solid var(--filet); }
.liste-articles .wp-block-post:last-child { border-bottom: 0; }
.liste-articles .wp-block-post .seance { border-bottom: 0; }
.liste-articles .seance-nom a:hover { color: var(--bleu-texte); }
.liste-articles .wp-block-post-excerpt__excerpt { margin: 0; color: var(--encre-2); }
.liste-articles .wp-block-post-excerpt__more-text { display: none; }

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 1279px) {
  :root { --l-barre: 220px; --l-filtres: 260px; }
  .domaines-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .projets-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}

@media (max-width: 1023px) {
  :root { --r-cadre: 20px; }
  .app, .app.est-replie { grid-template-columns: minmax(0, 1fr); }

  .barre {
    position: fixed; inset: 0 auto 0 0; z-index: 30;
    width: 270px;
    transform: translateX(-100%);
    transition: transform .25s ease;
  }
  .admin-bar .barre { top: 32px; }
  .barre-fixe, .admin-bar .barre-fixe { position: static; height: 100%; min-height: 0; }
  .barre-replier { display: none; }
  .app.est-ouvert .barre { transform: none; box-shadow: 20px 0 60px rgba(15, 23, 43, .35); }

  /* voile : couche décorative en pseudo-élément */
  .app::after {
    content: ""; position: fixed; inset: 0; z-index: 20;
    background: rgba(15, 23, 43, .35);
    opacity: 0; pointer-events: none;
    transition: opacity .25s;
  }
  .app.est-ouvert::after { opacity: 1; pointer-events: auto; }

  .entete { height: 64px; padding: 0 16px; gap: 12px; }
  .entete-menu {
    display: grid; place-items: center; flex: none;
    width: 36px; height: 36px;
    border: 1px solid var(--filet-champ); border-radius: var(--r-champ);
    background: #fff; cursor: pointer;
    font-size: 0; overflow: hidden;
  }
  .entete-menu::before {
    content: ""; width: 18px; height: 18px; background: var(--encre);
    -webkit-mask: var(--i-menu) center / contain no-repeat; mask: var(--i-menu) center / contain no-repeat;
  }
  .entete .entete-titre { font-size: 19px; }
  .entete-actions { gap: 20px; }

  .corps { grid-template-columns: minmax(0, 1fr); }
  .filtres, .colonne { border-right: 0; padding: 16px 16px 0; gap: 12px; }
  .filtres .filtres-titre { cursor: pointer; }
  .filtres .filtres-titre::after {
    content: ""; flex: none; width: 18px; height: 18px; background: currentColor;
    -webkit-mask: var(--i-chevron) center / contain no-repeat; mask: var(--i-chevron) center / contain no-repeat;
    transition: transform .2s;
  }
  .filtres .filtres-carte { padding-bottom: 0; }
  .filtres .filtres-contenu, .filtres .filtres-reset { display: none; }
  .filtres.est-ouvert .filtres-carte { padding-bottom: 4px; }
  .filtres.est-ouvert .filtres-contenu { display: block; }
  .filtres.est-ouvert .filtres-reset { display: flex; }
  .filtres.est-ouvert .filtres-titre::after { transform: rotate(180deg); }
  .contenu { padding: 16px; }
}
@media (max-width: 782px) {
  .admin-bar .barre { top: 46px; }
}

@media (max-width: 640px) {
  .entete-actions .entete-ico:nth-child(2) { display: none; }
  .wp-block-search.recherche .wp-block-search__inside-wrapper { height: auto; flex-wrap: wrap; padding: 10px 10px 10px 14px; row-gap: 6px; }
  .wp-block-search.recherche .wp-block-search__inside-wrapper .wp-block-search__input { height: 40px; font-size: 15.5px; }
  .wp-block-search.recherche .wp-block-search__inside-wrapper .wp-block-search__button { width: 100%; height: 42px; }
  .une-liste { padding: 0 12px; }
  .seance { align-items: flex-start; }
  .seance::before { width: 40px; height: 40px; }
  .seance::after,
  .seance.ico-hexa::after, .seance.ico-degrade::after, .seance.ico-rayures::after {
    left: 10px; top: 26px; margin-top: 0; width: 20px; height: 20px;
  }
  .seance-tete { gap: 4px 10px; }
  .seance-meta { font-size: 14px; column-gap: 8px; }
  .seance-meta > p + p::before { margin-right: 8px; }
  .domaines-grille { gap: 12px; }
  .domaine { min-height: 120px; padding: 14px; }
  .domaine::after { left: 24px; top: 24px; }
  .projets-grille { grid-template-columns: minmax(0, 1fr); }
  .liste-carte { padding: 0 12px; }
  .liste-carte .seance { flex-wrap: wrap; row-gap: 10px; }
  .liste-carte .seance-texte { flex: 1 1 calc(100% - 52px); }
  .seance-action { margin-left: 52px; }
  .projet.projet-large { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .projet.projet-large .projet-nom { margin-top: 12px; }
  .formulaire-grille { grid-template-columns: minmax(0, 1fr); }
  .carte { padding: 18px 16px; }
  .bouton-plein { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .barre, .app::after { transition: none; }
}

/* Icônes : chaque classe ico-* choisit son masque */
.ico-grille { --ico: var(--if-grille); }
.ico-livre { --ico: var(--if-livre); }
.ico-cle { --ico: var(--if-cle); }
.ico-presse { --ico: var(--if-presse); }
.ico-dossier { --ico: var(--if-dossier); }
.ico-info { --ico: var(--if-info); }
.ico-bulle { --ico: var(--if-bulle); }
.ico-courrier { --ico: var(--if-courrier); }
.ico-fichier { --ico: var(--if-fichier); }
.ico-entree { --ico: var(--if-entree); }
.ico-panneau { --ico: var(--if-panneau); }
.ico-loupe { --ico: var(--if-loupe); }
.ico-cloche { --ico: var(--if-cloche); }
.ico-chevron { --ico: var(--if-chevron); }
.ico-retour { --ico: var(--if-retour); }
.ico-toque { --ico: var(--if-toque); }
.ico-engrenage { --ico: var(--if-engrenage); }
.ico-eclair { --ico: var(--if-eclair); }
.ico-puce { --ico: var(--if-puce); }
.ico-manometre { --ico: var(--if-manometre); }
.ico-menu { --ico: var(--if-menu); }
.ico-filtre { --ico: var(--if-filtre); }
.ico-hexa { --ico: var(--i-hexa); }
.ico-degrade { --ico: var(--i-degrade); }
.ico-rayures { --ico: var(--i-rayures); }
