/*
Theme Name: Fondation SEEA
Theme URI: https://maximepotier.fr/themes/fondation-seea
Author: Maxime Potier
Author URI: https://maximepotier.fr
Description: Thème sur mesure de la Fondation SEEA — Saudi Europe Excellence Alliance. Site institutionnel trilingue français, anglais, arabe, avec direction d'écriture droite à gauche native. Blocs d'édition ACF, compatible Polylang, sans dépendance à un service tiers.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: seea
Tags: custom-theme, rtl-language-support, translation-ready, accessibility-ready, block-styles
*/

/* ============================================================
   Fondation SEEA — feuille de style du thème
   Préfixe des classes utilitaires : mpseea-
   Les classes structurelles reprennent la maquette validée.
   Polices auto-hébergées : aucun appel à un service tiers.
   ============================================================ */

/* ---------------- Polices ---------------- */
@font-face{
  font-family:'Noto Serif'; font-style:normal; font-weight:400; font-display:swap;
  src:url('assets/fonts/noto-serif-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Noto Serif'; font-style:normal; font-weight:500; font-display:swap;
  src:url('assets/fonts/noto-serif-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Noto Sans'; font-style:normal; font-weight:300; font-display:swap;
  src:url('assets/fonts/noto-sans-latin-300-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Noto Sans'; font-style:normal; font-weight:400; font-display:swap;
  src:url('assets/fonts/noto-sans-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Noto Sans'; font-style:normal; font-weight:500; font-display:swap;
  src:url('assets/fonts/noto-sans-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Noto Sans Arabic'; font-style:normal; font-weight:300; font-display:swap;
  src:url('assets/fonts/noto-sans-arabic-arabic-300-normal.woff2') format('woff2');
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;
}
@font-face{
  font-family:'Noto Sans Arabic'; font-style:normal; font-weight:400; font-display:swap;
  src:url('assets/fonts/noto-sans-arabic-arabic-400-normal.woff2') format('woff2');
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;
}
@font-face{
  font-family:'Noto Sans Arabic'; font-style:normal; font-weight:500; font-display:swap;
  src:url('assets/fonts/noto-sans-arabic-arabic-500-normal.woff2') format('woff2');
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;
}
@font-face{
  font-family:'Noto Naskh Arabic'; font-style:normal; font-weight:400; font-display:swap;
  src:url('assets/fonts/noto-naskh-arabic-arabic-400-normal.woff2') format('woff2');
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;
}
@font-face{
  font-family:'Noto Naskh Arabic'; font-style:normal; font-weight:500; font-display:swap;
  src:url('assets/fonts/noto-naskh-arabic-arabic-500-normal.woff2') format('woff2');
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;
}

/* ---------------- Système de design ---------------- */
/* ============================================================
   FONDATION SEEA — maquette interactive du site complet
   Piste B « Le Seuil ». Cinq pages, trois langues, RTL natif.
   Cadre du brief V5 : ni parallaxe, ni défilement capturé,
   ni diaporama automatique, ni vidéo d'ouverture.
   ============================================================ */
:root{
  --nuit:#06201A; --nuit-2:#0A2C23; --nuit-3:#113A2E;
  --or:#C9A227; --or-clair:#E6C878; --or-fonce:#9D7C24;
  /* Or lisible sur fond clair : 5,4:1 sur l'ivoire, 4,6:1 sur l'ivoire soutenu.
     --or-fonce reste réservé aux aplats et aux dégradés, où le contraste
     du texte ne se pose pas. */
  --or-texte:#7B611C;
  --ivoire:#F7F5F0; --ivoire-doux:#EAE4D7; --blanc:#FFFFFF;
  --encre:#102019; --encre-doux:#4A5A53;

  --serif:"Noto Serif", Georgia, "Times New Roman", serif;
  --sans:"Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --serif-ar:"Noto Naskh Arabic", "Noto Serif", serif;
  --sans-ar:"Noto Sans Arabic", "Noto Sans", sans-serif;

  --contenu:1280px;
  --marge:clamp(20px, 6vw, 96px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --suite:"→";
  color-scheme: light;
}
html[dir="rtl"]{ --suite:"←"; }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-block-start:110px; }
body{
  margin:0; font-family:var(--sans); font-weight:400;
  font-size:17px; line-height:1.74;
  color:var(--encre); background:var(--ivoire);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }
:focus-visible{ outline:3px solid var(--or); outline-offset:3px; }

[dir="rtl"] body{ font-family:var(--sans-ar); }
[dir="rtl"] h1, [dir="rtl"] h2, [dir="rtl"] h3, [dir="rtl"] .serif{ font-family:var(--serif-ar); }

.contenu{ width:min(100% - 2*var(--marge), var(--contenu)); margin-inline:auto; }
.serif{ font-family:var(--serif); }
.visuellement-cache{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.evitement{
  position:fixed; inset-block-start:-100px; inset-inline-start:var(--marge); z-index:300;
  background:var(--or); color:var(--nuit); padding:12px 22px; font-size:15px;
  transition:inset-block-start .25s var(--ease);
}
.evitement:focus{ inset-block-start:12px; }

.ligne{ display:block; }
.anim .ligne{ overflow:hidden; padding-block-end:.06em; }
.anim .ligne > span{ display:block; will-change:transform; }

.sur-titre{
  font-size:12px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--or-clair); font-weight:500; line-height:1.9;
}
[dir="rtl"] .sur-titre{ letter-spacing:0; }

/* ---------------- Ouverture « Le Seuil » ---------------- */
/* Le rideau n'existe pas par défaut : l'amorce de l'en-tête l'arme avant le
   premier rendu, en posant « seuil-arme » sur la racine du document. */
.seuil{
  position:fixed; inset:0; z-index:200; background:var(--nuit);
  display:none; place-items:center; overflow:hidden; cursor:pointer;
}
.seuil::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.55;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23g)' opacity='.05'/></svg>");
}
.seuil::after{
  content:""; position:absolute; inset-inline:0; inset-block-end:0; height:1px;
  background:linear-gradient(90deg, transparent, var(--or) 18%, var(--or-clair) 50%, var(--or) 82%, transparent);
  opacity:0; transition:opacity .35s var(--ease);
}
.seuil.leve::after{ opacity:1; }
.seuil-halo{
  position:absolute; inset-block-start:50%; inset-inline-start:50%;
  width:min(140vw, 1500px); aspect-ratio:1; transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(201,162,39,.22) 0%, rgba(201,162,39,.07) 32%, transparent 60%);
  pointer-events:none;
}
.seuil-noyau{ position:relative; z-index:2; text-align:center; padding-inline:var(--marge); max-width:900px; }
.seuil-marque{ margin-inline:auto; width:clamp(160px, 20vw, 258px); }
.seuil-marque svg{ width:100%; height:auto; overflow:visible; }
.seuil-nom{
  margin-block-start:26px; font-family:var(--serif); font-size:clamp(15px,1.5vw,19px);
  letter-spacing:.42em; text-indent:.42em; color:var(--ivoire); font-weight:400;
}
.seuil-nom em{ font-style:normal; color:var(--or-clair); }
.seuil-filet{
  width:min(330px, 56vw); height:1px; margin:30px auto 0;
  background:linear-gradient(90deg, transparent, var(--or) 50%, transparent); transform:scaleX(0);
}
.seuil-phrases{ margin-block-start:34px; display:grid; gap:4px; }
.seuil-phrases p{
  margin:0; font-family:var(--serif); color:var(--ivoire);
  font-size:clamp(20px, 2.7vw, 34px); line-height:1.5; font-weight:400;
}
.seuil-phrases p:nth-child(2){ color:rgba(247,245,240,.78); }
.seuil-phrases p:nth-child(3){
  font-family:var(--serif-ar); direction:rtl; color:rgba(247,245,240,.78);
  font-size:clamp(21px, 2.9vw, 36px); line-height:1.75;
}
.seuil-passer{
  position:absolute; z-index:3; inset-block-end:34px; inset-inline-end:var(--marge);
  background:none; border:0; cursor:pointer; padding:10px 2px;
  font-size:12px; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(247,245,240,.48); transition:color .3s;
}
.seuil-passer:hover{ color:var(--or-clair); }
[dir="rtl"] .seuil-passer{ letter-spacing:0; }
.seuil-compte{
  position:absolute; z-index:3; inset-block-end:0; inset-inline-start:0; height:2px; width:100%;
  background:var(--or); transform-origin:left center; transform:scaleX(0);
}

/* ---------------- En-tête ---------------- */
.entete{
  position:fixed; inset-block-start:0; inset-inline:0; z-index:90;
  padding-block:20px; padding-block-start:calc(20px + env(safe-area-inset-top, 0px));
  transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease);
}
.entete.opaque, .entete.condense{
  background:rgba(6,32,26,.95); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(201,162,39,.22);
}
.entete.condense{ padding-block:11px; padding-block-start:calc(11px + env(safe-area-inset-top, 0px)); }
.entete .contenu{ display:flex; align-items:center; gap:clamp(14px,3vw,48px); }
.marque{ display:flex; align-items:center; gap:13px; flex:none; position:relative; z-index:96; }
.marque svg{ width:46px; height:auto; flex:none; transition:width .4s var(--ease); }
.entete.condense .marque svg{ width:36px; }
.nom-marque{ font-family:var(--serif); color:var(--ivoire); line-height:1.25; font-size:15px; letter-spacing:.2em; }
.nom-marque em{ font-style:normal; color:var(--or-clair); }
.nom-marque small{
  display:block; font-family:var(--sans); font-size:8.5px;
  letter-spacing:.2em; color:rgba(230,200,120,.68); margin-block-start:3px;
}
[dir="rtl"] .nom-marque, [dir="rtl"] .nom-marque small{ letter-spacing:0; }
.navigation{ margin-inline-start:auto; display:flex; align-items:center; gap:clamp(12px,2.2vw,34px); }
.navigation a{ font-size:14.5px; color:rgba(247,245,240,.85); padding-block:6px; position:relative; }
.navigation a::after{
  content:""; position:absolute; inset-inline:0; inset-block-end:0; height:1px;
  background:var(--or); transform:scaleX(0); transform-origin:inline-start;
  transition:transform .35s var(--ease);
}
.navigation a:hover{ color:var(--blanc); }
.navigation a:hover::after, .navigation a.actif::after{ transform:scaleX(1); }
.navigation a.actif{ color:var(--or-clair); }
.contact-entete{
  border:1px solid rgba(201,162,39,.6); color:var(--or-clair);
  padding:9px 20px; font-size:14px; transition:background .3s, color .3s, border-color .3s;
}
.contact-entete:hover{ background:var(--or); border-color:var(--or); color:var(--nuit); }
.contact-entete::after{ display:none; }
.navigation .contact-entete.actif{ background:var(--or); border-color:var(--or); color:var(--nuit); }
.langues{ display:flex; align-items:center; gap:3px; padding-inline-start:clamp(8px,1.6vw,22px); position:relative; }
.langues::before{ content:""; position:absolute; inset-inline-start:0; inset-block:6px; width:1px; background:rgba(247,245,240,.2); }
.langues button{
  background:none; border:0; cursor:pointer; padding:7px 9px;
  font-size:12.5px; letter-spacing:.09em; color:rgba(247,245,240,.6); transition:color .25s;
}
.langues button:hover{ color:var(--ivoire); }
.langues button[aria-pressed="true"]{ color:var(--or); }
.bouton-menu{
  display:none; background:none; border:0; cursor:pointer; padding:8px;
  color:var(--ivoire); flex:none; position:relative; z-index:96;
}
.bouton-menu svg{ width:26px; height:26px; }

/* ---------------- Ouverture de l'accueil ---------------- */
.ouverture{
  position:relative; min-height:100svh; min-height:100vh;
  display:flex; align-items:flex-end; padding-block:140px 72px;
  background:var(--nuit); overflow:hidden; isolation:isolate;
}
.ouverture .fond{ position:absolute; inset:0; z-index:-2; }
.ouverture .fond img{ width:100%; height:100%; object-fit:cover; object-position:center 42%; }
.ouverture .voile{
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(to top, rgba(6,32,26,.95) 0%, rgba(6,32,26,.62) 34%, rgba(6,32,26,.38) 62%, rgba(6,32,26,.72) 100%),
    linear-gradient(to right, rgba(6,32,26,.95) 0%, rgba(6,32,26,.84) 34%, rgba(6,32,26,.42) 70%, rgba(6,32,26,.26) 100%);
}
[dir="rtl"] .ouverture .voile{
  background:
    linear-gradient(to top, rgba(6,32,26,.95) 0%, rgba(6,32,26,.62) 34%, rgba(6,32,26,.38) 62%, rgba(6,32,26,.72) 100%),
    linear-gradient(to left, rgba(6,32,26,.95) 0%, rgba(6,32,26,.84) 34%, rgba(6,32,26,.42) 70%, rgba(6,32,26,.26) 100%);
}
.ouverture .contenu{ position:relative; }
.enseigne{ display:flex; align-items:center; gap:16px; }
.enseigne .filet{ width:58px; height:1px; background:var(--or); transform-origin:inline-start; flex:none; }
.ouverture h1{
  margin:24px 0 0; max-width:24ch;
  font-family:var(--serif); font-weight:400; color:var(--blanc);
  font-size:clamp(36px, 4.6vw, 70px); line-height:1.14; letter-spacing:-.014em;
  text-shadow:0 2px 28px rgba(6,32,26,.4);
}
[dir="rtl"] .ouverture h1{ letter-spacing:0; line-height:1.42; max-width:22ch; }
.ouverture .presentation{
  margin:28px 0 0; max-width:58ch; font-size:clamp(16px,1.25vw,18.5px);
  color:rgba(247,245,240,.82); line-height:1.82;
}
.actions{ margin-block-start:40px; display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.bouton{
  display:inline-flex; align-items:center; gap:11px; cursor:pointer;
  padding:16px 32px; font-size:15px; letter-spacing:.015em; border:0;
  background:var(--or); color:var(--nuit); font-weight:500;
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.bouton:hover{ background:var(--or-clair); transform:translateY(-2px); }
.bouton::after{ content:var(--suite); font-size:15px; transition:transform .3s var(--ease); }
.bouton:hover::after{ transform:translateX(4px); }
[dir="rtl"] .bouton:hover::after{ transform:translateX(-4px); }
.bouton.creux{ background:transparent; color:var(--ivoire); border:1px solid rgba(247,245,240,.34); }
.bouton.creux:hover{ background:rgba(247,245,240,.07); border-color:var(--or-clair); color:var(--blanc); }
.bouton.sombre{ background:var(--nuit); color:var(--ivoire); }
.bouton.sombre:hover{ background:var(--nuit-3); }
.defiler{
  position:absolute; inset-block-end:38px; inset-inline-end:var(--marge); z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.defiler span{ writing-mode:vertical-rl; font-size:10.5px; letter-spacing:.22em; text-transform:uppercase; color:rgba(247,245,240,.55); }
[dir="rtl"] .defiler span{ letter-spacing:0; writing-mode:horizontal-tb; }
.defiler i{ display:block; width:1px; height:56px; background:rgba(247,245,240,.28); position:relative; overflow:hidden; }
.defiler i::after{
  content:""; position:absolute; inset-inline:0; inset-block-start:0; height:22px;
  background:var(--or); animation:glisse 2.6s var(--ease) infinite;
}
@keyframes glisse{ 0%{ transform:translateY(-100%);} 60%,100%{ transform:translateY(260%);} }

/* ---------------- Chapô des pages intérieures ---------------- */
.chapo{
  background:var(--nuit); color:var(--ivoire);
  padding-block:clamp(130px,14vw,190px) clamp(60px,7vw,96px);
  position:relative; overflow:hidden;
}
.chapo .halo{
  position:absolute; inset-block-start:-30%; inset-inline-end:-10%;
  width:min(70vw, 760px); aspect-ratio:1; pointer-events:none;
  background:radial-gradient(circle, rgba(201,162,39,.14) 0%, transparent 62%);
}
.chapo .contenu{ position:relative; }
.chapo h1{
  margin:22px 0 0; max-width:20ch;
  font-family:var(--serif); font-weight:400; color:var(--blanc);
  font-size:clamp(34px, 4.4vw, 66px); line-height:1.14; letter-spacing:-.014em;
}
[dir="rtl"] .chapo h1{ letter-spacing:0; line-height:1.44; max-width:19ch; }
.chapo .lead{ margin:28px 0 0; max-width:62ch; font-size:clamp(16px,1.2vw,18.5px); color:rgba(247,245,240,.82); }

/* ---------------- Sections de texte ---------------- */
.bloc{ padding-block:clamp(64px,7vw,104px); }
.bloc.clair{ background:var(--ivoire); color:var(--encre); }
.bloc.doux{ background:var(--ivoire-doux); color:var(--encre); }
.bloc.sombre{ background:var(--nuit); color:var(--ivoire); }
.bloc.sombre-2{ background:var(--nuit-2); color:var(--ivoire); }
.bloc h2{
  margin:0; font-family:var(--serif); font-weight:400;
  font-size:clamp(27px,3.2vw,46px); line-height:1.2; letter-spacing:-.012em;
}
[dir="rtl"] .bloc h2{ letter-spacing:0; line-height:1.5; }
.bloc.sombre h2, .bloc.sombre-2 h2{ color:var(--blanc); }
.bloc p{ font-size:clamp(15.5px,1.15vw,17.5px); }
.bloc.clair p, .bloc.doux p{ color:var(--encre-doux); }
.bloc.sombre p, .bloc.sombre-2 p{ color:rgba(247,245,240,.72); }

.duo{ display:grid; gap:clamp(28px,5vw,80px); grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); align-items:start; }
.duo .corps{ padding-inline-start:clamp(18px,2.2vw,34px); border-inline-start:1px solid rgba(201,162,39,.42); }
.bloc.sombre .duo .corps, .bloc.sombre-2 .duo .corps{ border-inline-start-color:rgba(201,162,39,.5); }
.duo .corps p{ margin:0 0 18px; }
.duo .corps p:last-child{ margin-block-end:0; }
.marqueur{ margin-block-end:20px; color:var(--or-texte); }
.bloc.sombre .marqueur, .bloc.sombre-2 .marqueur{ color:var(--or-clair); }

.lien-or{
  display:inline-flex; align-items:center; gap:10px; cursor:pointer;
  background:none; border:0; padding:4px 0; color:var(--or-texte);
  font-size:14.5px; position:relative;
}
.bloc.sombre .lien-or, .bloc.sombre-2 .lien-or{ color:var(--or-clair); }
.lien-or::after{ content:var(--suite); transition:transform .3s var(--ease); }
.lien-or:hover::after{ transform:translateX(5px); }
[dir="rtl"] .lien-or:hover::after{ transform:translateX(-5px); }
.lien-or::before{
  content:""; position:absolute; inset-inline:0; inset-block-end:0; height:1px;
  background:currentColor; opacity:.45; transform:scaleX(0); transform-origin:inline-start;
  transition:transform .35s var(--ease);
}
.lien-or:hover::before{ transform:scaleX(1); }

/* ---------------- Liste éditoriale numérotée ---------------- */
.tete-bloc{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:20px; margin-block-end:clamp(30px,4vw,54px); }
.liste-rangs{ list-style:none; margin:0; padding:0; }
.rang{
  position:relative; display:grid; align-items:baseline; scroll-margin-block-start:120px;
  grid-template-columns:clamp(58px,6.5vw,96px) minmax(0,1fr) minmax(0,1.3fr);
  gap:clamp(12px,2.4vw,40px);
  padding-block:clamp(22px,2.6vw,34px); padding-inline:clamp(8px,1.4vw,22px);
  border-block-start:1px solid rgba(247,245,240,.14);
  transition:background .45s var(--ease);
}
.bloc.clair .rang, .bloc.doux .rang{ border-block-start-color:rgba(16,32,25,.14); }
.liste-rangs .rang:last-child{ border-block-end:1px solid rgba(247,245,240,.14); }
.bloc.clair .liste-rangs .rang:last-child, .bloc.doux .liste-rangs .rang:last-child{ border-block-end-color:rgba(16,32,25,.14); }
.rang:hover{ background:rgba(247,245,240,.045); }
.bloc.clair .rang:hover, .bloc.doux .rang:hover{ background:rgba(16,32,25,.035); }
.rang .numero{ font-family:var(--serif); font-size:clamp(18px,1.9vw,27px); color:var(--or); font-weight:400; transition:color .35s; }
.rang h3{ margin:0; font-family:var(--serif); font-weight:400; font-size:clamp(18px,2vw,27px); line-height:1.3; }
.bloc.sombre .rang h3, .bloc.sombre-2 .rang h3{ color:var(--blanc); }
.rang p{ margin:0; font-size:15.5px; line-height:1.78; }
.rang:hover .numero{ color:var(--or-clair); }

/* ---------------- Trois temps et valeurs ---------------- */
.temps{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(20px,3vw,46px); margin-block-start:clamp(28px,3.4vw,48px); }
.temps .item{ padding-block-start:22px; border-block-start:2px solid var(--or); }
.temps .item h3{ margin:0 0 10px; font-family:var(--serif); font-weight:400; font-size:clamp(19px,1.9vw,25px); }
.bloc.sombre .temps .item h3, .bloc.sombre-2 .temps .item h3{ color:var(--blanc); }
.temps .item p{ margin:0; font-size:15.5px; }

.valeurs{ display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:clamp(18px,2.4vw,34px); margin-block-start:clamp(26px,3.2vw,44px); }
.valeurs .item{ padding:26px 22px; background:rgba(247,245,240,.05); border-block-start:2px solid var(--or); }
.bloc.clair .valeurs .item, .bloc.doux .valeurs .item{ background:rgba(16,32,25,.035); }
.valeurs .item h3{ margin:0 0 8px; font-family:var(--serif); font-weight:400; font-size:clamp(17px,1.6vw,21px); }
.bloc.sombre .valeurs .item h3, .bloc.sombre-2 .valeurs .item h3{ color:var(--blanc); }
.valeurs .item p{ margin:0; font-size:14.5px; line-height:1.72; }

/* ---------------- Profils de coopération ---------------- */
.profils{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(22px,3vw,48px); margin-block-start:clamp(26px,3.2vw,44px); }
.profil{ padding-block-start:24px; border-block-start:1px solid rgba(201,162,39,.45); scroll-margin-block-start:120px; }
.profil h3{ margin:0 0 12px; font-family:var(--serif); font-weight:400; font-size:clamp(19px,2vw,26px); line-height:1.3; }
.bloc.sombre .profil h3, .bloc.sombre-2 .profil h3{ color:var(--blanc); }
.profil p{ margin:0 0 16px; font-size:15.5px; }

/* ---------------- Villes ---------------- */
.villes{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:clamp(12px,1.5vw,24px); margin-block-start:clamp(28px,3.6vw,52px); }
.ville{ position:relative; overflow:hidden; background:var(--nuit-2); }
.ville .cadre{ aspect-ratio:3/2; overflow:hidden; }
.ville img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease); }
.ville:hover img{ transform:scale(1.055); }
.ville .legende{
  position:absolute; inset-inline:0; inset-block-end:0; z-index:2; padding:clamp(16px,1.6vw,24px);
  background:linear-gradient(to top, rgba(6,32,26,.92) 0%, rgba(6,32,26,.6) 34%, transparent 78%);
}
.ville .nom{ font-family:var(--serif); color:var(--blanc); font-size:clamp(18px,1.7vw,23px); line-height:1.3; text-shadow:0 1px 14px rgba(6,32,26,.75); }
.ville .pays{ margin-block-start:7px; font-size:10.5px; letter-spacing:.2em; color:var(--or-clair); }
[dir="rtl"] .ville .pays{ letter-spacing:0; }
.ville .trait{ position:absolute; inset-inline:0; inset-block-start:0; height:2px; background:var(--or); transform:scaleX(0); transform-origin:inline-start; transition:transform .55s var(--ease); z-index:3; }
.ville:hover .trait{ transform:scaleX(1); }

/* ---------------- Bandeau d'appel ---------------- */
.bandeau{ text-align:center; position:relative; overflow:hidden; isolation:isolate; }
.bandeau .embleme{
  position:absolute; inset-block-start:50%; inset-inline-start:50%;
  transform:translate(-50%,-50%); width:min(900px, 128%); z-index:-1; opacity:.075;
}
.bandeau h2{ margin:0 auto; max-width:25ch; }
.bandeau p{ margin:24px auto 0; max-width:62ch; }
.bandeau .actions{ justify-content:center; }

/* ---------------- Contact ---------------- */
.contact-duo{ display:grid; gap:clamp(30px,5vw,72px); grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:start; }
.coordonnees{ font-style:normal; font-size:16.5px; line-height:2; }
.coordonnees .nom-fondation{ font-family:var(--serif); font-size:clamp(19px,1.8vw,23px); color:var(--encre); }
.coordonnees a{ color:var(--or-texte); border-block-end:1px solid rgba(123,97,28,.45); }
.coordonnees .note{ margin-block-start:22px; font-size:14.5px; color:var(--encre-doux); line-height:1.7; }

.formulaire{ display:grid; gap:20px; }
.champ{ display:grid; gap:8px; }
.champ label{ font-size:14px; font-weight:500; color:var(--encre); }
.champ input, .champ select, .champ textarea{
  width:100%; font:inherit; font-size:16px; color:var(--encre);
  padding:14px 16px; background:var(--blanc);
  border:1px solid rgba(16,32,25,.22); border-radius:0; transition:border-color .25s, box-shadow .25s;
}
.champ textarea{ min-height:160px; resize:vertical; line-height:1.7; }
.champ input:focus, .champ select:focus, .champ textarea:focus{ outline:none; border-color:var(--or); box-shadow:0 0 0 3px rgba(201,162,39,.2); }
.champ.erreur input, .champ.erreur select, .champ.erreur textarea{ border-color:#A4342A; box-shadow:0 0 0 3px rgba(164,52,42,.14); }
.champ .message-erreur{ font-size:13.5px; color:#A4342A; }
.compteur{ font-size:13px; color:var(--encre-doux); text-align:end; }
.mention-champs{ font-size:13.5px; color:var(--encre-doux); }
.avertissement{
  padding:16px 18px; background:rgba(201,162,39,.12);
  border-inline-start:3px solid var(--or); font-size:14.5px; line-height:1.7; color:var(--encre);
}
.resume-erreurs{ padding:16px 18px; background:rgba(164,52,42,.1); border-inline-start:3px solid #A4342A; font-size:14.5px; color:#7A2820; }
.succes{ padding:22px 24px; background:rgba(11,59,46,.07); border-inline-start:3px solid var(--nuit); }
.succes strong{ display:block; font-family:var(--serif); font-size:20px; font-weight:400; color:var(--encre); margin-block-end:8px; }
.succes p{ margin:0; font-size:15px; }
.note-maquette{ margin-block-start:14px; font-size:13px; color:var(--encre-doux); font-style:italic; }

/* ---------------- Page introuvable ---------------- */
.introuvable{ min-height:62vh; display:grid; place-items:center; text-align:center; padding-block:clamp(130px,14vw,190px) clamp(60px,7vw,96px); background:var(--nuit); color:var(--ivoire); }
.introuvable h1{ margin:18px 0 0; font-family:var(--serif); font-weight:400; color:var(--blanc); font-size:clamp(30px,3.6vw,52px); }
.introuvable p{ margin:20px auto 0; max-width:48ch; color:rgba(247,245,240,.78); }

/* ---------------- Pied de page ---------------- */
.pied{ background:var(--nuit); color:rgba(247,245,240,.72); padding-block:clamp(56px,7vw,92px) 32px; }
.pied .haut{ display:grid; gap:clamp(30px,5vw,74px); grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }
.pied .identite svg{ width:62px; height:auto; }
.pied .nom-pied{ margin-block-start:16px; font-family:var(--serif); color:var(--ivoire); font-size:15px; letter-spacing:.2em; }
[dir="rtl"] .pied .nom-pied{ letter-spacing:0; }
.pied .nom-pied em{ font-style:normal; color:var(--or-clair); }
.pied .signature-pied{ margin-block-start:10px; font-size:13.5px; color:var(--or-clair); opacity:.85; }
.pied .vocation{ margin-block-start:14px; max-width:46ch; font-size:14.5px; line-height:1.8; }
.pied address{ margin-block-start:18px; font-style:normal; font-size:14.5px; line-height:1.9; }
.pied address a{ color:inherit; border-block-end:1px solid rgba(247,245,240,.25); }
.pied .colonnes{ display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:clamp(20px,3vw,44px); }
.pied .titre-colonne{ font-size:10.5px; letter-spacing:.2em; color:var(--or); margin-block-end:16px; }
[dir="rtl"] .pied .titre-colonne{ letter-spacing:0; }
.pied ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.pied ul a, .pied ul button{
  font-size:14.5px; transition:color .25s; background:none; border:0; padding:0;
  cursor:pointer; text-align:start; color:inherit; font-family:inherit;
}
.pied ul a:hover, .pied ul button:hover{ color:var(--or-clair); }
.pied hr{ border:0; border-block-start:1px solid rgba(247,245,240,.14); margin-block:clamp(34px,4.6vw,58px) 22px; }
.pied .mentions{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:12.5px; color:rgba(247,245,240,.53); }
.rejouer{ background:none; border:0; cursor:pointer; padding:0; font-size:12.5px; color:rgba(247,245,240,.53); transition:color .25s; font-family:inherit; }
.rejouer:hover{ color:var(--or-clair); }

/* ---------------- Adaptations ---------------- */
@media (max-width: 1080px){
  .navigation .lien-nav{ display:none; }
  .bouton-menu{ display:inline-flex; }
  .navigation.ouvert{
    position:fixed; inset-block-start:0; inset-inline:0; z-index:95;
    flex-direction:column; align-items:stretch; gap:0;
    padding:calc(90px + env(safe-area-inset-top,0px)) var(--marge) 40px;
    background:var(--nuit); min-height:100svh; min-height:100vh;
  }
  .navigation.ouvert .lien-nav{ display:block; font-size:24px; font-family:var(--serif); padding-block:18px; border-block-end:1px solid rgba(247,245,240,.12); }
  .navigation.ouvert .contact-entete{ margin-block-start:26px; align-self:flex-start; }
  .navigation.ouvert .langues{ margin-block-start:30px; padding-inline-start:0; align-self:flex-start; }
  .navigation.ouvert .langues::before{ display:none; }
  .navigation.ouvert .langues button{ font-size:15px; padding:10px 14px 10px 0; }
}
@media (max-width: 900px){
  .duo, .contact-duo{ grid-template-columns:minmax(0,1fr); }
  .duo .corps{ border-inline-start:0; padding-inline-start:0; }
  .temps, .profils{ grid-template-columns:minmax(0,1fr); }
  .valeurs{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .rang{ grid-template-columns:clamp(44px,9vw,60px) minmax(0,1fr); }
  .rang p{ grid-column:2; margin-block-start:10px; }
  .villes{ grid-template-columns:minmax(0,1fr); }
  .pied .haut{ grid-template-columns:minmax(0,1fr); }
  .defiler{ display:none; }
}
@media (max-width: 760px){
  .nom-marque small{ display:none; }
  .nom-marque{ font-size:13px; letter-spacing:.14em; }
  .marque svg{ width:36px; }
  .entete.condense .marque svg{ width:30px; }
  .navigation:not(.ouvert) .contact-entete{ display:none; }
  .navigation:not(.ouvert) .langues{ padding-inline-start:0; }
  .navigation:not(.ouvert) .langues::before{ display:none; }
  .langues button{ padding:6px 7px; font-size:11.5px; }
  .ouverture{ padding-block:120px 60px; }
  .seuil-phrases p{ font-size:clamp(18px, 5.4vw, 26px); }
  .valeurs{ grid-template-columns:minmax(0,1fr); }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .defiler i::after{ animation:none; }
  .ville img{ transition:none; }
}

@media print{
  .entete, .seuil, .defiler, .evitement, .bandeau .actions, .formulaire,
  .actions, .pied .colonnes, .rejouer, .bouton-menu, .langues{ display:none !important; }
  body{ background:#fff; color:#000; font-size:11pt; }
  .bloc, .chapo, .ouverture, .pied{ background:#fff !important; color:#000 !important; padding-block:18pt !important; min-height:0 !important; }
  .chapo h1, .ouverture h1, .bloc h2, .rang h3, .profil h3{ color:#000 !important; }
  .bloc p, .chapo .lead, .ouverture .presentation, .pied{ color:#222 !important; }
  .ouverture .fond, .ouverture .voile, .chapo .halo, .bandeau .embleme{ display:none !important; }
  .rang, .profil, .temps .item, .valeurs .item{ break-inside:avoid; }
  a[href]::after{ content:""; }
}

/* ============================================================
   Ajouts propres à l'intégration WordPress
   ============================================================ */

/* La barre d'administration ne doit pas masquer l'en-tête collant. */
.admin-bar .entete{ inset-block-start:32px; }
.admin-bar .navigation.ouvert{ inset-block-start:32px; min-height:calc(100svh - 32px); }
.admin-bar .seuil{ inset-block-start:32px; }
@media screen and (max-width:782px){
  .admin-bar .entete{ inset-block-start:46px; }
  .admin-bar .navigation.ouvert{ inset-block-start:46px; min-height:calc(100svh - 46px); }
  .admin-bar .seuil{ inset-block-start:46px; }
}

/* Les actions de la maquette sont des liens réels dans le site. */
a.bouton, a.lien-or{ text-decoration:none; }
.lien-or{ font-family:inherit; }

/* Sélecteur de langue : liens et non plus boutons. */
.langues a{
  display:inline-block; padding:7px 9px; font-size:12.5px; letter-spacing:.09em;
  color:rgba(247,245,240,.6); transition:color .25s;
}
.langues a:hover{ color:var(--ivoire); }
.langues a[aria-current="true"]{ color:var(--or); }
[dir="rtl"] .langues a{ letter-spacing:0; }
@media (max-width:1080px){
  .navigation.ouvert .langues a{ font-size:15px; padding:10px 14px 10px 0; }
}

/* Ouverture « Le Seuil » : armée par l'amorce de l'en-tête, elle couvre donc
   l'écran dès le premier rendu, sans attendre les scripts différés — qui
   laissaient apparaître un instant l'ouverture de la page. Sans JavaScript,
   en mouvement réduit ou une fois le rideau levé, elle n'existe pas. */
html.seuil-arme{ overflow:hidden; }
html.seuil-arme .seuil{ display:grid; }
.seuil[hidden]{ display:none !important; }

/* Le dedans du rideau attend d'être placé par la ligne de temps ; le fond,
   lui, couvre l'écran tout de suite. */
.seuil:not(.pret) > *{ visibility:hidden; }

/* Champ-piège du formulaire, invisible pour les personnes, visible pour les robots. */
.mpseea-piege{
  position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; border:0; padding:0; margin:-1px;
}

/* Contenu libre des pages administratives et de l'éditeur. */
.mpseea-prose{ max-width:72ch; }
.mpseea-prose h2{ margin-block:1.6em .5em; font-family:var(--serif); font-weight:400; font-size:clamp(22px,2.4vw,32px); line-height:1.3; }
.mpseea-prose h3{ margin-block:1.4em .4em; font-family:var(--serif); font-weight:400; font-size:clamp(18px,1.8vw,23px); }
.mpseea-prose p{ margin-block:0 1.1em; }
.mpseea-prose ul, .mpseea-prose ol{ margin-block:0 1.2em; padding-inline-start:1.4em; }
.mpseea-prose li{ margin-block-end:.5em; }
.mpseea-prose a{ color:var(--or-texte); border-block-end:1px solid rgba(123,97,28,.45); }
.mpseea-prose strong{ font-weight:500; color:var(--encre); }

/* Message de retour du formulaire après envoi réel. */
.mpseea-retour{ margin-block-end:22px; }
.mpseea-retour.echec{ padding:16px 18px; background:rgba(164,52,42,.1); border-inline-start:3px solid #A4342A; color:#7A2820; font-size:14.5px; }

/* Pagination et états vides éventuels. */
.mpseea-vide{ padding-block:clamp(90px,12vw,150px); text-align:center; }

/* Éditeur : empêcher la prévisualisation des blocs de déborder. */
.editor-styles-wrapper .ouverture{ min-height:60vh; }
.editor-styles-wrapper .entete{ display:none; }

/* Introduction d'un bloc de liste numérotée. */
.intro-rangs{ max-width:70ch; margin-block:-16px 34px; }

/* Entrée de liste cliquable : le lien porte le clic, pas la ligne entière. */
.rang h3 a{ color:inherit; }
.rang h3 a:hover{ color:var(--or-clair); }
.bloc.clair .rang h3 a:hover, .bloc.doux .rang h3 a:hover{ color:var(--or-texte); }

/* Page introuvable et repli d'archive. */
.introuvable .contenu{ display:grid; justify-items:center; gap:4px; }
.introuvable .seuil-marque{ width:clamp(120px,16vw,190px); }
.introuvable svg{ width:100%; height:auto; }

/* La légende d'une vignette de ville est une figcaption. */
figure.ville{ margin:0; }
