/* =========================================================
   SONIA LIKIBI — PAGE ACCUEIL
   Design éditorial premium — palette Noir profond / Or / Violet profond
   ========================================================= */

:root{
  /* Palette principale */
  --noir-profond:  #0F0D12;
  --noir-soft:      #1B171F;
  --or:             #BE9A52;
  --or-clair:       #D8BC85;
  --violet-profond: #3B2049;
  --violet-soft:    #4E2C60;

  /* Palette secondaire */
  --blanc-casse:    #FAF6F0;
  --ivoire-chaud:   #F3E9D8;
  --gris-pierre:    #8C8580;

  /* Texte */
  --texte-fonce:    #211C24;
  --texte-corps:    #4B454C;
  --texte-clair:    #F3EEE6;
  --texte-clair-doux: rgba(243,238,230,0.78);

  /* Typo */
  --font-serif: 'Cormorant Garamond', 'Iowan Old Style', Georgia, serif;
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Rythme */
  --container-max: 1320px;
  --container-narrow: 860px;
  --section-pad-y: clamp(4rem, 7vw, 7rem);
  --section-pad-y-tight: clamp(3rem, 6vw, 5.5rem);
  --edge-pad-x: clamp(1.5rem, 6vw, 5rem);

  --ease: cubic-bezier(.16,.8,.24,1);
}

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-sans);
  color: var(--texte-fonce);
  background: var(--blanc-casse);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-weight: 400;
  line-height: 1.6;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,p{ margin:0; }
button{ font:inherit; background:none; border:none; cursor:pointer; }

.skip-link{
  position:absolute; left:-9999px; top:0;
  background:var(--or); color:var(--noir-profond); padding:.75rem 1.25rem; z-index:999;
}
.skip-link:focus{ left:1rem; top:1rem; }

h2{
  font-family: var(--font-serif);
  font-weight:500;
  font-size: clamp(1.9rem, 3.4vw, 3rem);
  line-height:1.15;
  color: var(--texte-fonce);
  letter-spacing: 0.01em;
}
h2.light{ color: var(--texte-clair); }

.eyebrow{
  font-family: var(--font-sans);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--or);
  font-weight: 600;
  margin-bottom: 1.1rem;
}
.eyebrow--light{ color: var(--or-clair); }

.section-inner{
  max-width: var(--container-max);
  margin: 0 auto;
  padding: var(--section-pad-y) var(--edge-pad-x);
}
.section-inner.narrow{ max-width: var(--container-narrow); text-align:center; padding-top: var(--section-pad-y-tight); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding: 0.95rem 2.1rem;
  font-size: 0.92rem;
  letter-spacing: 0.04em;
  border-radius: 999px;
  transition: all .35s var(--ease);
  white-space: nowrap;
}
.btn--primary{
  background: var(--or);
  color: var(--noir-profond);
  font-weight:600;
  box-shadow: 0 8px 22px -10px rgba(190,154,82,.55);
}
.btn--primary:hover{
  background: var(--or-clair);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px -10px rgba(190,154,82,.7);
}

.btn--ghost{
  color: var(--texte-clair);
  border: 1px solid rgba(243,238,230,0.4);
}
.btn--ghost:hover{ border-color: var(--or-clair); color: var(--or-clair); }

.btn--outline{
  color: var(--texte-fonce);
  border: 1px solid var(--texte-fonce);
  margin-top: 0.5rem;
}
.btn--outline:hover{ background: var(--texte-fonce); color: var(--blanc-casse); }

.cta-group{ display:flex; flex-wrap:wrap; gap:1.1rem; margin-top:2.4rem; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position: fixed;
  top:0; left:0; right:0;
  z-index: 500;
  transition: background .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
  border-bottom: 1px solid transparent;
}
.header-inner{
  max-width: var(--container-max);
  margin:0 auto;
  padding: 1.5rem var(--edge-pad-x);
  display:flex;
  align-items:center;
  justify-content:space-between;
  transition: padding .4s var(--ease);
}
.logo{
  position:relative;
  display:inline-block;
  font-family: var(--font-serif);
  font-size: 1.5rem;
  font-weight:500;
  letter-spacing: 0.06em;
  color: var(--texte-clair);
  padding-bottom: 3px;
  transition: color .4s var(--ease);
}
.logo::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:1px;
  background: var(--or-clair);
  transform: scaleX(0);
  transform-origin:center;
  transition: transform .45s var(--ease);
}
.logo:hover{ color: var(--or-clair); }
.logo:hover::after{ transform: scaleX(1); }

.nav-desktop ul{ display:flex; align-items:center; gap:2.6rem; }
.nav-desktop li{ position:relative; }
.nav-desktop > ul > li > a{
  position:relative;
  display:inline-block;
  font-size: 0.76rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--texte-clair-doux);
  padding: 0.5rem 0;
  transition: color .35s var(--ease);
}
.nav-desktop > ul > li > a::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:2px;
  height:1px;
  background: var(--or-clair);
  transform: scaleX(0);
  transform-origin:center;
  transition: transform .35s var(--ease);
}
.nav-desktop > ul > li > a:hover{ color: var(--or-clair); }
.nav-desktop > ul > li > a:hover::after,
.nav-desktop > ul > li > a.is-active::after{ transform: scaleX(1); }
.nav-desktop > ul > li > a.is-active{ color: var(--or-clair); }

.sub-nav{
  position:absolute;
  top: 100%; left: 50%;
  transform: translate(-50%, 6px);
  background: var(--noir-soft);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 0.6rem 0;
  min-width: 200px;
  opacity:0; visibility:hidden;
  transition: opacity .25s var(--ease), transform .25s var(--ease);
  box-shadow: 0 20px 40px rgba(0,0,0,.35);
}
.has-sub:hover .sub-nav,
.has-sub:focus-within .sub-nav{
  opacity:1; visibility:visible; transform: translate(-50%, 0);
}
.sub-nav a{
  display:block;
  padding: 0.6rem 1.25rem;
  font-size: 0.84rem;
  color: var(--texte-clair-doux);
  white-space:nowrap;
}
.sub-nav a:hover{ color: var(--or-clair); }

/* header state once scrolled past hero */
.site-header.is-scrolled{
  background: rgba(250,246,240,0.92);
  backdrop-filter: blur(10px);
  border-bottom-color: rgba(33,28,36,0.08);
}
.site-header.is-scrolled .header-inner{ padding-top:1rem; padding-bottom:1rem; }
.site-header.is-scrolled .logo{ color: var(--texte-fonce); }
.site-header.is-scrolled .logo:hover{ color: var(--violet-profond); }
.site-header.is-scrolled .logo::after{ background: var(--violet-profond); }
.site-header.is-scrolled .nav-desktop > ul > li > a{ color: var(--texte-corps); }
.site-header.is-scrolled .nav-desktop > ul > li > a:hover,
.site-header.is-scrolled .nav-desktop > ul > li > a.is-active{ color: var(--violet-profond); }
.site-header.is-scrolled .nav-desktop > ul > li > a::after{ background: var(--violet-profond); }
.site-header.is-scrolled .nav-toggle span{ background: var(--texte-fonce); }

/* Nav toggle (mobile) */
.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:38px; height:38px;
  z-index: 600;
}
.nav-toggle span{
  display:block; width:24px; height:1.5px;
  background: var(--texte-clair);
  transition: all .35s var(--ease);
}
.site-header.menu-open .nav-toggle span{ background: var(--texte-clair); }
.site-header.menu-open .nav-toggle span:nth-child(1){ transform: translateY(6.5px) rotate(45deg); }
.site-header.menu-open .nav-toggle span:nth-child(2){ opacity:0; }
.site-header.menu-open .nav-toggle span:nth-child(3){ transform: translateY(-6.5px) rotate(-45deg); }

.nav-mobile{
  position: fixed;
  inset: 0;
  background: linear-gradient(160deg, var(--noir-profond), var(--violet-profond));
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden;
  transform: translateY(-8px);
  transition: opacity .4s var(--ease), transform .4s var(--ease), visibility .4s;
  z-index: 550;
}
.site-header.menu-open .nav-mobile{ opacity:1; visibility:visible; transform: translateY(0); }
.nav-mobile ul{ text-align:center; display:flex; flex-direction:column; gap:1.6rem; }
.nav-mobile a{
  font-family: var(--font-serif);
  font-size: 2rem;
  color: var(--texte-clair);
  transition: color .3s var(--ease);
}
.nav-mobile a:hover{ color: var(--or-clair); }
.nav-mobile a.is-active{ color: var(--or-clair); }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  min-height: 100svh;
  background: radial-gradient(120% 100% at 78% 20%, var(--noir-soft) 0%, var(--noir-profond) 62%, #1c1712 100%);
  display:flex;
  align-items:center;
  overflow:hidden;
}
/* Fondu de bas de Hero — amorce la palette chaude de la section suivante, sans délimitation visible */
.hero::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height: clamp(160px, 22vh, 300px);
  background: linear-gradient(to bottom,
    transparent 0%,
    rgba(250,246,240,0.05) 45%,
    rgba(250,246,240,0.22) 68%,
    rgba(250,246,240,0.58) 86%,
    var(--blanc-casse) 100%);
  z-index:2;
  pointer-events:none;
}
.hero-inner{
  position:relative;
  z-index:3;
  max-width: var(--container-max);
  margin: 0 auto;
  width:100%;
  padding: clamp(6.5rem, 12vh, 9rem) var(--edge-pad-x) 3rem;
}
.hero-text{ position:relative; z-index:3; max-width: 30rem; }
.hero-title{
  font-family: var(--font-serif);
  font-weight: 500;
  font-style: normal;
  font-size: clamp(2.7rem, 5.6vw, 4.6rem);
  line-height: 1.06;
  color: var(--texte-clair);
  letter-spacing: 0.005em;
}
.hero-subline{
  margin-top: 1.8rem;
  max-width: 30rem;
  font-size: 1.08rem;
  line-height:1.7;
  color: var(--texte-clair-doux);
  font-weight:300;
}
.hero-promise{
  margin-top: 1.1rem;
  max-width: 30rem;
  font-size: 0.98rem;
  line-height:1.6;
  color: var(--or-clair);
  font-weight:400;
}

/* Photo intégrée en fond de composition, ancrée en bas à droite, fondue dans le noir */
.hero-image{
  position:absolute;
  right:0;
  bottom:0;
  top:8%;
  z-index:1;
  width: clamp(320px, 43vw, 580px);
  display:flex;
  align-items:flex-end;
  justify-content:flex-end;
  pointer-events:none;
}
.hero-image img{
  width:100%;
  height:auto;
  max-height:100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
  object-position: top center;
  display:block;
  -webkit-mask-image: linear-gradient(128deg, transparent 0%, rgba(0,0,0,.4) 16%, #000 34%);
  mask-image: linear-gradient(128deg, transparent 0%, rgba(0,0,0,.4) 16%, #000 34%);
}
.scroll-cue{
  position:absolute;
  bottom: 4.5rem; left:50%;
  transform: translateX(-50%);
  z-index:3;
}
.scroll-cue span{
  display:block; width:1px; height:52px;
  background: linear-gradient(var(--or-clair), transparent);
  animation: scrollcue 2.2s infinite var(--ease);
}
@keyframes scrollcue{
  0%{ transform: scaleY(0); transform-origin: top; opacity:0; }
  40%{ transform: scaleY(1); transform-origin: top; opacity:1; }
  60%{ transform: scaleY(1); transform-origin: bottom; opacity:1; }
  100%{ transform: scaleY(0); transform-origin: bottom; opacity:0; }
}

/* =========================================================
   IDÉE CENTRALE
   ========================================================= */
.idee-centrale{ background: var(--blanc-casse); }
.idee-centrale .section-inner{
  max-width: 60.5rem; /* +~12,5% par rapport au conteneur "narrow" partagé, sans l'affecter ailleurs */
  padding-bottom: clamp(2.25rem, 4.5vw, 4.5rem); /* espace vers la citation réduit d'environ moitié */
}
.idee-centrale h2{
  font-size: clamp(2.15rem, 4.3vw, 3.5rem);
  line-height: 1.16;
  margin-bottom: 3.6rem;
}
.idee-body{
  display:flex; flex-direction:column; gap:1.7rem;
  font-size: 1.05rem; line-height:1.85;
  color: var(--texte-corps);
  text-align:left;
  max-width: 45rem;
  margin: 0 auto;
}
.idee-body p:first-child{
  font-size: 1.22rem;
  line-height: 1.7;
  color: var(--texte-fonce);
}

/* =========================================================
   CITATION — respiration entre l'idée centrale et la suite
   ========================================================= */
.quote-interlude{
  background: linear-gradient(to bottom, var(--blanc-casse), var(--ivoire-chaud));
  padding-top: clamp(2.25rem, 4.5vw, 4.5rem);
  padding-bottom: clamp(3.5rem, 7vw, 6rem);
  padding-left: var(--edge-pad-x);
  padding-right: var(--edge-pad-x);
  display:flex;
  justify-content:center;
}
.pull-quote{
  font-family: var(--font-serif);
  font-style: italic;
  font-weight:500;
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  line-height:1.5;
  color: var(--violet-profond);
  text-align:center;
  max-width: 46rem;
  margin:0;
  position:relative;
  padding-top: 2.4rem;
}
.pull-quote::before{
  content:"";
  position:absolute; top:0; left:50%;
  transform:translateX(-50%);
  width:56px; height:1px;
  background: var(--or);
}

/* =========================================================
   SPLIT SECTIONS (Conférences / ANCRAGE / Institut S.L. / Livre / À propos)
   ========================================================= */
.split-inner{
  max-width: var(--container-max);
  margin:0 auto;
  padding: var(--section-pad-y) var(--edge-pad-x);
  display:grid;
  grid-template-columns: 0.85fr 1.15fr;
  align-items:center;
  gap: clamp(2.5rem, 6vw, 5.5rem);
}
.split-inner--reverse{ grid-template-columns: 1.15fr 0.85fr; }
.split-inner--reverse .split-image{ order:2; }
.split-inner--reverse .split-text{ order:1; }

.split-image{
  aspect-ratio: 2/3;
  overflow:hidden;
  width:100%;
  max-width: 440px;
}
.split-inner--reverse .split-image{ margin-left:auto; }
.split-image img{ width:100%; height:100%; object-fit:cover; object-position: top center; }

.split-text h2{ margin-bottom: 1.4rem; }
.split-text p{ font-size:1.03rem; line-height:1.8; color: var(--texte-corps); max-width: 34rem; }
.split-subtitle{
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 1.3rem;
  color: var(--violet-profond);
  margin-bottom: 1.1rem;
}
.split-body{ display:flex; flex-direction:column; gap:1.1rem; }
/* Phrase d'accroche : rythme de lecture plus posé, retour à la ligne plus net */
.conferences .split-body p:first-child{
  font-size: 1.14rem;
  line-height: 1.65;
  max-width: 29rem;
  color: var(--texte-fonce);
}

.conferences{ background: var(--ivoire-chaud); }
/* Espace réduit au-dessus de la section, propre à Conférences */
.conferences .split-inner{
  padding-top: clamp(3.25rem, 6.5vw, 6rem);
  padding-bottom: var(--section-pad-y);
}
/* Libellé de section discret */
.conferences .eyebrow{
  font-size: 0.68rem;
  letter-spacing: 0.17em;
  opacity: 0.82;
}
/* Espace un peu plus généreux entre le texte et le bouton, propre à cette section */
.conferences .split-text .btn--outline{ margin-top: 1.75rem; }
/* Fondu très progressif des bords de la photo dans la couleur de fond ivoire — transition quasi imperceptible */
.conferences .split-image img{
  mask-image: radial-gradient(ellipse at 50% 42%, #000 30%, rgba(0,0,0,.75) 50%, rgba(0,0,0,.35) 72%, transparent 96%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 42%, #000 30%, rgba(0,0,0,.75) 50%, rgba(0,0,0,.35) 72%, transparent 96%);
}

.travailler{ background: var(--blanc-casse); }
/* "Deux façons d'aller plus loin." sert de respiration seule, sans libellé au-dessus */
.travailler-intro{ padding-bottom: clamp(1.5rem, 3vw, 3rem); }
.travailler .split-inner:nth-of-type(1){ padding-top: clamp(1.5rem, 3vw, 3rem); }

/* ANCRAGE — calme, profondeur, stabilité */
#ancrage{ padding-bottom: var(--section-pad-y-tight); }
#ancrage .split-text .btn--outline{ margin-top: 1.75rem; }
#ancrage .split-body p:first-child{
  font-size: 1.14rem;
  line-height: 1.7;
  color: var(--texte-fonce);
}
/* Fondu très léger — la photo garde son décor, seuls les angles se dissolvent dans le blanc cassé */
#ancrage .split-image img{
  mask-image: radial-gradient(ellipse at 50% 42%, #000 78%, rgba(0,0,0,.45) 92%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 42%, #000 78%, rgba(0,0,0,.45) 92%, transparent 100%);
}

/* Institut S.L. — transmission, crédibilité, pérennité */
#institut{ background: var(--ivoire-chaud); padding-top: var(--section-pad-y-tight); }
#institut .split-text .btn--outline{ margin-top: 1.75rem; }
#institut .split-body p:first-child{
  font-size: 1.14rem;
  line-height: 1.7;
  color: var(--texte-fonce);
}
/* Fondu progressif — le mur en béton se dissout dans l'ivoire sans perdre son caractère */
#institut .split-image img{
  mask-image: radial-gradient(ellipse at 50% 40%, #000 40%, rgba(0,0,0,.8) 58%, rgba(0,0,0,.4) 78%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 40%, rgba(0,0,0,.8) 58%, rgba(0,0,0,.4) 78%, transparent 100%);
}

.livre{ background: var(--noir-profond); }
.livre .split-inner{ padding-top: var(--section-pad-y-tight); }
.livre .split-text h2{ margin-bottom:1.4rem; }
.light-body{ color: var(--texte-clair-doux) !important; font-weight:300; }
.light-body cite{ font-style: italic; color: var(--texte-clair); }
.livre .split-text .btn--ghost{ margin-top: 1.75rem; }

/* Le portrait redevient l'élément principal — même gabarit que les autres photos du parcours */
.author-portrait{ position: relative; }
.author-portrait img{
  mask-image: radial-gradient(ellipse at 50% 36%, #000 38%, rgba(0,0,0,.8) 56%, rgba(0,0,0,.4) 76%, transparent 98%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 36%, #000 38%, rgba(0,0,0,.8) 56%, rgba(0,0,0,.4) 76%, transparent 98%);
}

/* La couverture devient un simple élément de soutien, en incrustation discrète */
.book-inset{
  position: absolute;
  right: -1.2rem;
  bottom: -1.4rem;
  width: clamp(80px, 9vw, 120px);
  z-index: 2;
}
.book-inset img{
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid rgba(243,238,230,0.14);
  box-shadow:
    0 18px 34px -12px rgba(0,0,0,.75),
    0 0 24px rgba(190,154,82,.16);
}

/* "Derrière cette réflexion" — section plus intime : gabarit resserré, davantage de respiration autour */
.a-propos{ background: var(--blanc-casse); }
.a-propos .split-inner.intime{
  max-width: 980px;
  grid-template-columns: 0.8fr 1fr;
  gap: clamp(2.5rem, 6vw, 4.5rem);
  padding-top: var(--section-pad-y-tight);
}
.a-propos .split-image{ max-width: 340px; }
.a-propos .split-text .btn--outline{ margin-top: 1.75rem; }

/* =========================================================
   CONTACT — section la plus épurée de la page, aucun effet spectaculaire
   ========================================================= */
.invitation-finale{ background: var(--ivoire-chaud); }
/* Clôture de la page : respiration légèrement plus généreuse que le rythme courant, sans excès */
.invitation-finale .split-inner{
  padding-top: clamp(4.5rem, 8vw, 7.5rem);
  padding-bottom: clamp(4.5rem, 8vw, 7.5rem);
}
.invitation-finale .split-image img{
  mask-image: radial-gradient(ellipse at 50% 38%, #000 80%, rgba(0,0,0,.5) 92%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 38%, #000 80%, rgba(0,0,0,.5) 92%, transparent 100%);
}
.cta-group--contact .btn{ margin-top: 0; }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background: var(--noir-profond); padding: 4rem var(--edge-pad-x) 2.2rem; }
.footer-inner{
  max-width: var(--container-max);
  margin:0 auto;
  text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:1.8rem;
}
.logo--footer{ font-size:1.3rem; }
.footer-inner nav ul{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.8rem; }
.footer-inner nav a{ font-size:0.85rem; color: var(--texte-clair-doux); }
.footer-inner nav a:hover{ color: var(--or-clair); }

.footer-social{ display:flex; gap:1.4rem; }
.footer-social a{ color: var(--texte-clair-doux); transition: color .3s var(--ease); }
.footer-social a:hover{ color: var(--or-clair); }

.footer-email a{ font-size:0.85rem; color: var(--texte-clair-doux); transition: color .3s var(--ease); }
.footer-email a:hover{ color: var(--or-clair); }

.footer-legal ul{ display:flex; flex-wrap:wrap; justify-content:center; gap:1.4rem; }
.footer-legal a{ font-size:0.74rem; letter-spacing:0.02em; color: rgba(243,238,230,0.45); }
.footer-legal a:hover{ color: var(--or-clair); }
.footer-note{
  font-family: var(--font-serif);
  font-style: italic;
  color: var(--or-clair);
  font-size: 1.05rem;
}
.footer-copy{ font-size:0.76rem; color: rgba(243,238,230,0.4); }

/* =========================================================
   REVEAL ANIMATION (sobre / discrète)
   ========================================================= */
.reveal{
  opacity:0;
  transform: translateY(22px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.is-visible{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  .scroll-cue span{ animation:none; }
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 980px){
  .nav-desktop{ display:none; }
  .nav-toggle{ display:flex; }

  .hero{ display:block; }
  .hero-inner{ text-align:left; padding-top: 0; }
  .hero-image{
    position:relative;
    inset:auto;
    width:100%;
    max-width:none;
    overflow:hidden;
    display:block;
  }
  .hero-image img{
    -webkit-mask-image:none;
    mask-image:none;
    object-position: top center;
  }
  .hero-text{ padding-top: 2.6rem; }
  .cta-group{ justify-content:flex-start; }

  .split-inner, .split-inner--reverse{
    grid-template-columns: 1fr;
    text-align:left;
    gap: 2.4rem;
  }
  .a-propos .split-inner.intime{ grid-template-columns: 1fr; max-width:none; gap: 2.4rem; }
  .split-inner--reverse .split-image,
  .split-inner .split-image{ order:-1; margin:0 auto; width:min(72%, 340px); }
  .split-inner--reverse .split-text,
  .split-inner .split-text{ order:0; }
  .split-text p{ max-width:none; }

  .book-inset{ right:-0.7rem; bottom:-0.9rem; width: clamp(64px, 16vw, 90px); }
}

@media (max-width: 560px){
  :root{ --section-pad-y: clamp(3rem, 12vw, 4.25rem); --section-pad-y-tight: clamp(2.25rem, 9vw, 3.25rem); }
  .hero-title{ font-size: clamp(2.3rem, 9vw, 3rem); }
  .cta-group{ flex-direction:column; align-items:stretch; }
  .btn{ justify-content:center; text-align:center; }
}

/* =========================================================
   PAGE CONFÉRENCES — header toujours clair (pas de hero sombre à fondre)
   ========================================================= */
.site-header.header-light{
  background: rgba(250,246,240,0.92);
  backdrop-filter: blur(10px);
  border-bottom-color: rgba(33,28,36,0.08);
}
.site-header.header-light .header-inner{ padding-top:1rem; padding-bottom:1rem; }
.site-header.header-light .logo{ color: var(--texte-fonce); }
.site-header.header-light .logo:hover{ color: var(--violet-profond); }
.site-header.header-light .logo::after{ background: var(--violet-profond); }
.site-header.header-light .nav-desktop > ul > li > a{ color: var(--texte-corps); }
.site-header.header-light .nav-desktop > ul > li > a:hover,
.site-header.header-light .nav-desktop > ul > li > a.is-active{ color: var(--violet-profond); }
.site-header.header-light .nav-desktop > ul > li > a::after{ background: var(--violet-profond); }
.site-header.header-light .nav-toggle span{ background: var(--texte-fonce); }

/* Hero éditorial — titre de page, pas de photo, grand espace blanc */
.page-hero{ background: var(--blanc-casse); }
.page-hero .section-inner{ padding-top: clamp(8rem, 16vh, 11.5rem); }
.page-hero-title{
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(3rem, 7vw, 5.2rem);
  line-height: 1.05;
  color: var(--texte-fonce);
}
.page-hero-subtitle{
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.25rem, 2.3vw, 1.6rem);
  line-height: 1.5;
  color: var(--violet-profond);
  margin-top: 1.6rem;
  margin-bottom: 2.6rem;
}
.cta-group--center{ justify-content: center; }

.conf-signature{ background: var(--ivoire-chaud); }
.conf-signature .split-inner{ padding-top: var(--section-pad-y-tight); }
.conf-signature .split-image img{
  mask-image: radial-gradient(ellipse at 50% 42%, #000 30%, rgba(0,0,0,.75) 50%, rgba(0,0,0,.35) 72%, transparent 96%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 42%, #000 30%, rgba(0,0,0,.75) 50%, rgba(0,0,0,.35) 72%, transparent 96%);
}

/* Nommer l'invisible / Traverser sans s'éteindre — spread éditorial à deux colonnes */
.conf-duo-section{ background: var(--blanc-casse); }
.conf-duo{
  max-width: var(--container-max);
  margin: 0 auto;
  padding: var(--section-pad-y-tight) var(--edge-pad-x);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 8vw, 7rem);
}
.conf-duo-item h2{ font-size: clamp(1.6rem, 2.8vw, 2.1rem); margin-bottom: 1.3rem; }
.conf-duo-item .idee-body{ margin-bottom: 1.6rem; max-width: none; }
.conf-duo-item .btn--outline{ margin-top: 0; }

.conf-formats{ background: var(--ivoire-chaud); }
.conf-formats h2{ margin-bottom: 2.4rem; }
.conf-conclusion{ background: var(--blanc-casse); }
.conf-conclusion h2{ margin-bottom: 2.4rem; }

@media (max-width: 980px){
  .conf-duo{ grid-template-columns: 1fr; gap: 3.4rem; }
}

/* =========================================================
   PAGE ANCRAGE
   ========================================================= */
.anc-hero{ background: var(--blanc-casse); }
.anc-hero .split-inner{ padding-top: clamp(7rem, 13vh, 9.5rem); }
.anc-hero .split-image img{
  mask-image: radial-gradient(ellipse at 50% 42%, #000 78%, rgba(0,0,0,.45) 92%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 42%, #000 78%, rgba(0,0,0,.45) 92%, transparent 100%);
}
.anc-hero-title{
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(2.8rem, 5.6vw, 4.6rem);
  line-height: 1.05;
  color: var(--texte-fonce);
  letter-spacing: 0.01em;
  margin-bottom: 1.2rem;
}
.anc-hero .split-subtitle{ margin-bottom: 1.6rem; }
.anc-hero .btn--primary{ margin-top: 1.75rem; }

.anc-transitions{ background: var(--ivoire-chaud); }
.anc-transitions h2{ margin-bottom: 2.4rem; }

.anc-aspirations{ background: var(--blanc-casse); }
.anc-aspirations h2{ margin-bottom: 3rem; }
.anc-aspirations-list{
  display: flex;
  flex-direction: column;
  gap: 2rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.anc-aspirations-list li{
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.35rem, 2.6vw, 1.9rem);
  line-height: 1.5;
  color: var(--violet-profond);
}

.anc-pourquoi{ background: var(--ivoire-chaud); }
.anc-pourquoi h2{ margin-bottom: 2.4rem; }

.anc-parcours{ background: var(--blanc-casse); }
.anc-parcours .section-inner{ text-align: center; padding-top: var(--section-pad-y-tight); }
.anc-parcours-title{ margin-bottom: 3.5rem; }
.anc-parcours-facts{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
}
.anc-parcours-facts li{
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--texte-corps);
  padding: 0 clamp(1.5rem, 3.5vw, 3rem);
  border-left: 1px solid rgba(33,28,36,0.18);
}
.anc-parcours-facts li:first-child{ border-left: none; }

.anc-candidature{ background: var(--ivoire-chaud); }
.anc-candidature h2{ margin-bottom: 2rem; }

@media (max-width: 980px){
  .anc-parcours-facts{ flex-direction: column; align-items: center; gap: 1.3rem; }
  .anc-parcours-facts li{
    border-left: none;
    padding: 1.3rem 0 0;
    border-top: 1px solid rgba(33,28,36,0.18);
  }
  .anc-parcours-facts li:first-child{ border-top: none; padding-top: 0; }
}

/* =========================================================
   PAGE INSTITUT S.L.
   ========================================================= */
.inst-hero{ background: var(--blanc-casse); }
.inst-hero .split-inner{ padding-top: clamp(7rem, 13vh, 9.5rem); }
.inst-hero .split-image img{
  mask-image: radial-gradient(ellipse at 50% 40%, #000 40%, rgba(0,0,0,.8) 58%, rgba(0,0,0,.4) 78%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 40%, rgba(0,0,0,.8) 58%, rgba(0,0,0,.4) 78%, transparent 100%);
}
.inst-hero-title{
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(2.8rem, 5.6vw, 4.6rem);
  line-height: 1.05;
  color: var(--texte-fonce);
  letter-spacing: 0.01em;
  margin-bottom: 1.2rem;
}
.inst-hero .split-subtitle{ margin-bottom: 1.6rem; }
.inst-hero .btn--primary{ margin-top: 1.75rem; }

.inst-pourquoi{ background: var(--ivoire-chaud); }
.inst-pourquoi h2{ margin-bottom: 2.4rem; }

.inst-contenu{ background: var(--blanc-casse); }
.inst-contenu h2{ margin-bottom: 2.4rem; }

.inst-approche{ background: var(--ivoire-chaud); }
.inst-approche h2{ margin-bottom: 2.4rem; }

.inst-public{ background: var(--blanc-casse); }
.inst-public h2{ margin-bottom: 2.4rem; }

.inst-conclusion{ background: var(--ivoire-chaud); }
.inst-conclusion .cta-group{ margin-top: 2.4rem; }

/* =========================================================
   PAGE PARCOURS
   ========================================================= */
.par-hero{ background: var(--blanc-casse); }
.par-hero .split-inner{ padding-top: clamp(7rem, 13vh, 9.5rem); }
.par-hero-title{
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(2.8rem, 5.6vw, 4.6rem);
  line-height: 1.05;
  color: var(--texte-fonce);
  letter-spacing: 0.01em;
  margin-bottom: 1.2rem;
}
.par-hero .split-subtitle{ margin-bottom: 1.6rem; }

.par-mission{ background: var(--ivoire-chaud); }
.par-mission h2{ margin-bottom: 2.4rem; }

.par-valeurs{ background: var(--blanc-casse); }
.par-valeurs .section-inner{ text-align: center; padding-top: var(--section-pad-y-tight); }
.par-valeurs-title{ max-width: 46rem; margin: 0 auto 4rem; }
.par-valeurs-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2.5rem, 6vw, 4rem);
  max-width: var(--container-max);
  margin: 0 auto;
}
.par-valeur h3{
  font-family: var(--font-serif);
  font-weight: 500;
  font-style: italic;
  font-size: clamp(1.4rem, 2.2vw, 1.7rem);
  color: var(--violet-profond);
  margin-bottom: 1.1rem;
}
.par-valeur p{
  font-size: 1rem;
  line-height: 1.8;
  color: var(--texte-corps);
}

.par-au-dela{ background: var(--ivoire-chaud); }
.par-au-dela h2{ margin-bottom: 2.4rem; }

.par-ensemble{ background: var(--blanc-casse); }
.par-ensemble h2{ margin-bottom: 2.4rem; }

.par-aujourdhui{ background: var(--ivoire-chaud); }
.par-aujourdhui h2{ margin-bottom: 2.4rem; }
.par-aujourdhui .cta-group{ margin-top: 2.4rem; }

@media (max-width: 980px){
  .par-valeurs-grid{ grid-template-columns: 1fr; gap: 2.8rem; }
}

/* =========================================================
   PAGE CONTACT — la plus épurée du site
   ========================================================= */
.cta-hero{ background: var(--blanc-casse); }
.cta-hero .split-inner{ padding-top: clamp(7rem, 13vh, 9.5rem); }
.cta-hero-title{
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(2.8rem, 5.6vw, 4.6rem);
  line-height: 1.05;
  color: var(--texte-fonce);
  letter-spacing: 0.01em;
  margin-bottom: 1.2rem;
}
.cta-hero .split-subtitle{ margin-bottom: 1.6rem; }

.cta-form-section{ background: var(--ivoire-chaud); }
.contact-form{
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  max-width: 34rem;
  margin: 0 auto;
  text-align: left;
}
.form-row{ display: flex; flex-direction: column; gap: .5rem; }
.form-row label{
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--texte-corps);
}
.form-optional{ color: var(--gris-pierre); font-style: italic; letter-spacing: normal; }
.form-row input,
.form-row textarea,
.form-row select{
  font-family: var(--font-sans);
  font-size: 0.98rem;
  color: var(--texte-fonce);
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(33,28,36,0.22);
  padding: 0.55rem 0.1rem;
  border-radius: 0;
  resize: none;
  transition: border-color .3s var(--ease);
}
.form-row select{
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%234B454C' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.2rem center;
  background-size: 11px 7px;
  cursor: pointer;
}
.form-row input:focus,
.form-row textarea:focus,
.form-row select:focus{
  outline: none;
  border-bottom-color: var(--violet-profond);
}
.contact-form .btn{ align-self: flex-start; margin-top: 0.6rem; }
.form-error{
  display:none;
  margin-bottom: 1.4rem;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--or);
  color: var(--texte-corps);
  font-size: 0.95rem;
  background: var(--blanc-casse);
}
.form-error.is-visible{ display:block; }

.cta-coordonnees{ background: var(--blanc-casse); }
.cta-coordonnees h2{ margin-bottom: 3rem; }
.cta-coordonnees-grid{
  display: flex;
  justify-content: center;
  gap: clamp(3rem, 8vw, 6rem);
  flex-wrap: wrap;
}
.cta-coord-item{ text-align: center; }
.cta-coord-label{
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gris-pierre);
  margin-bottom: 0.8rem;
}
.cta-coord-value{
  font-family: var(--font-serif);
  font-size: 1.2rem;
  color: var(--texte-fonce);
  overflow-wrap: anywhere;
}
a.cta-coord-value{ transition: color .3s var(--ease); }
a.cta-coord-value:hover{ color: var(--violet-profond); }
.cta-social-link{
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--font-serif);
  font-size: 1.2rem;
  color: var(--texte-fonce);
  transition: color .3s var(--ease);
}
.cta-social-link:hover{ color: var(--violet-profond); }

/* Bloc distinct — demandes d'interventions et de conférences uniquement */
.cta-conf-requests{ background: var(--ivoire-chaud); }
.cta-conf-requests h2{ margin-bottom: 3rem; font-size: clamp(1.6rem, 2.8vw, 2.1rem); }

.cta-conclusion{ background: var(--blanc-casse); }

/* =========================================================
   PAGES LÉGALES — Mentions légales / Confidentialité / Conditions
   ========================================================= */
.legal-hero{ background: var(--blanc-casse); }
.legal-hero .section-inner{ padding-top: clamp(8rem, 15vh, 10.5rem); padding-bottom: var(--section-pad-y-tight); }
.legal-hero-title{
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(2.4rem, 4.6vw, 3.6rem);
  line-height: 1.1;
  color: var(--texte-fonce);
}
.legal-updated{
  font-size: 0.85rem;
  font-style: italic;
  color: var(--gris-pierre);
  margin-top: 1.2rem;
}
.legal-content{ background: var(--blanc-casse); }
.legal-content .section-inner{ text-align: left; padding-top: 0; }
.legal-content h2{
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  margin-top: 3rem;
  margin-bottom: 1.1rem;
}
.legal-content .section-inner > h2:first-child{ margin-top: 0; }
.legal-content p{
  font-size: 1rem;
  line-height: 1.85;
  color: var(--texte-corps);
  margin-bottom: 1.1rem;
  max-width: 42rem;
}
.legal-content ul{
  padding-left: 1.3rem;
  list-style: disc;
  color: var(--texte-corps);
  max-width: 42rem;
  margin-bottom: 1.1rem;
}
.legal-content li{ font-size: 1rem; line-height: 1.85; margin-bottom: 0.4rem; }
.legal-content strong{ color: var(--texte-fonce); font-weight: 600; }
.legal-content a{ color: var(--violet-profond); text-decoration: underline; text-underline-offset: 2px; }
.legal-content a:hover{ color: var(--or); }
