.elementor-kit-45{--e-global-color-primary:#16324F;--e-global-color-secondary:#4F6B57;--e-global-color-text:#1A1F26;--e-global-color-accent:#8E4E56;--e-global-color-kadence1:#2B6CB0;--e-global-color-kadence2:#215387;--e-global-color-kadence3:#1A202C;--e-global-color-kadence4:#2D3748;--e-global-color-kadence5:#4A5568;--e-global-color-kadence6:#718096;--e-global-color-kadence7:#EDF2F7;--e-global-color-kadence8:#F7FAFC;--e-global-color-kadence9:#ffffff;--e-global-color-pspnav9:#0F2540;--e-global-color-pspnav7:#1E4463;--e-global-color-pspnav6:#2C5A7A;--e-global-color-pspsag5:#6E8A72;--e-global-color-pspsag3:#A8BFA8;--e-global-color-pspsag1:#DDE7DA;--e-global-color-pspsag0:#EEF3EC;--e-global-color-psprot5:#C08A90;--e-global-color-psprot3:#E4BFC1;--e-global-color-psprot1:#F5E4E4;--e-global-color-psprot0:#FBF2F1;--e-global-color-pspmute:#5A6673;--e-global-color-pspcrem:#FBF9F5;--e-global-color-pspblan:#FFFFFF;--e-global-typography-primary-font-family:"Fraunces";--e-global-typography-primary-font-size:52px;--e-global-typography-primary-font-weight:600;--e-global-typography-primary-line-height:1.15em;--e-global-typography-primary-letter-spacing:-0.01em;--e-global-typography-secondary-font-family:"Fraunces";--e-global-typography-secondary-font-size:33px;--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-line-height:1.25em;--e-global-typography-secondary-letter-spacing:-0.01em;--e-global-typography-text-font-family:"Source Sans 3";--e-global-typography-text-font-size:18px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.7em;--e-global-typography-accent-font-family:"Source Sans 3";--e-global-typography-accent-font-size:16px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.5em;--e-global-typography-accent-letter-spacing:0.04em;--e-global-typography-pspsurt-font-family:"Source Sans 3";--e-global-typography-pspsurt-font-size:14px;--e-global-typography-pspsurt-font-weight:600;--e-global-typography-pspsurt-text-transform:uppercase;--e-global-typography-pspsurt-line-height:1.4em;--e-global-typography-pspsurt-letter-spacing:0.1em;--e-global-typography-psppeti-font-family:"Source Sans 3";--e-global-typography-psppeti-font-size:16px;--e-global-typography-psppeti-font-weight:400;--e-global-typography-psppeti-line-height:1.6em;--e-global-typography-pspcita-font-family:"Fraunces";--e-global-typography-pspcita-font-size:30px;--e-global-typography-pspcita-font-weight:400;--e-global-typography-pspcita-font-style:italic;--e-global-typography-pspcita-line-height:1.45em;background-color:#FBF9F5;color:#1A1F26;font-family:"Source Sans 3", Sans-serif;font-size:18px;font-weight:400;line-height:1.7em;}.elementor-kit-45.el-is-editing{--global-palette1:#2B6CB0;--global-palette2:#215387;--global-palette3:#1A202C;--global-palette4:#2D3748;--global-palette5:#4A5568;--global-palette6:#718096;--global-palette7:#EDF2F7;--global-palette8:#F7FAFC;--global-palette9:#ffffff;}.elementor-kit-45 button,.elementor-kit-45 input[type="button"],.elementor-kit-45 input[type="submit"],.elementor-kit-45 .elementor-button{background-color:#16324F;font-family:"Source Sans 3", Sans-serif;font-size:17px;font-weight:600;line-height:1.2em;color:#FFFFFF;border-radius:6px 6px 6px 6px;padding:16px 30px 16px 30px;}.elementor-kit-45 button:hover,.elementor-kit-45 button:focus,.elementor-kit-45 input[type="button"]:hover,.elementor-kit-45 input[type="button"]:focus,.elementor-kit-45 input[type="submit"]:hover,.elementor-kit-45 input[type="submit"]:focus,.elementor-kit-45 .elementor-button:hover,.elementor-kit-45 .elementor-button:focus{background-color:#1E4463;color:#FFFFFF;}.elementor-kit-45 e-page-transition{background-color:#FFBC7D;}.elementor-kit-45 a{color:#1E4463;}.elementor-kit-45 a:hover{color:#0F2540;}.elementor-kit-45 h1{color:#0F2540;font-family:"Fraunces", Sans-serif;font-size:52px;font-weight:600;line-height:1.15em;letter-spacing:-0.01em;}.elementor-kit-45 h2{color:#0F2540;font-family:"Fraunces", Sans-serif;font-size:41px;font-weight:600;line-height:1.2em;letter-spacing:-0.01em;}.elementor-kit-45 h3{color:#0F2540;font-family:"Fraunces", Sans-serif;font-size:33px;font-weight:600;line-height:1.25em;letter-spacing:-0.01em;}.elementor-kit-45 h4{color:#0F2540;font-family:"Fraunces", Sans-serif;font-size:27px;font-weight:600;line-height:1.3em;letter-spacing:-0.01em;}.elementor-kit-45 h5{color:#0F2540;font-family:"Fraunces", Sans-serif;font-size:21px;font-weight:600;line-height:1.35em;letter-spacing:-0.01em;}.elementor-kit-45 h6{color:#16324F;font-family:"Source Sans 3", Sans-serif;font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;--container-default-padding-top:0px;--container-default-padding-right:24px;--container-default-padding-bottom:0px;--container-default-padding-left:24px;}.elementor-widget:not(:last-child){--kit-widget-spacing:24px;}.elementor-element{--widgets-spacing:24px 24px;--widgets-spacing-row:24px;--widgets-spacing-column:24px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-45{--e-global-typography-primary-font-size:44px;--e-global-typography-secondary-font-size:30px;}.elementor-kit-45 h1{font-size:44px;}.elementor-kit-45 h2{font-size:36px;}.elementor-kit-45 h3{font-size:30px;}.elementor-kit-45 h4{font-size:25px;}.elementor-kit-45 h5{font-size:20px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-45{--e-global-typography-primary-font-size:35px;--e-global-typography-secondary-font-size:26px;--e-global-typography-text-font-size:17px;--e-global-typography-pspcita-font-size:23px;font-size:17px;}.elementor-kit-45 h1{font-size:35px;}.elementor-kit-45 h2{font-size:31px;}.elementor-kit-45 h3{font-size:26px;}.elementor-kit-45 h4{font-size:23px;}.elementor-kit-45 h5{font-size:20px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =========================================================================
   Pôle Santé Psy · CSS système
   À coller dans Elementor > Réglages du site > CSS personnalisé
   (ce bloc est déjà inclus dans kit-polesante.json, clé "custom_css")
   Version 1.0, 5 août 2026
   ========================================================================= */

/* ------------------------------------------------------------------ 1. Polices auto-hébergées (CNIL)
   Fichiers à déposer dans /wp-content/uploads/polices/
   Polices variables : un seul fichier couvre toutes les graisses.
   Elementor > Réglages > Avancé > Polices Google doit être sur « Désactivé ». */

@font-face {
  font-family: 'Fraunces';
  src: url('/wp-content/uploads/polices/fraunces-var.woff2') format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Source Sans 3';
  src: url('/wp-content/uploads/polices/source-sans-3-var.woff2') format('woff2');
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}

/* ------------------------------------------------------------------ 2. Jetons */

:root {
  --psp-navy-900: #0F2540;
  --psp-navy-800: #16324F;
  --psp-navy-700: #1E4463;
  --psp-navy-600: #2C5A7A;
  --psp-sage-600: #4F6B57;
  --psp-sage-500: #6E8A72;
  --psp-sage-300: #A8BFA8;
  --psp-sage-100: #DDE7DA;
  --psp-sage-50:  #EEF3EC;
  --psp-rose-700: #8E4E56;
  --psp-rose-500: #C08A90;
  --psp-rose-300: #E4BFC1;
  --psp-rose-100: #F5E4E4;
  --psp-rose-50:  #FBF2F1;
  --psp-ink:      #1A1F26;
  --psp-muted:    #5A6673;
  --psp-cream:    #FBF9F5;

  --psp-ease:     cubic-bezier(.4, 0, .2, 1);
  --psp-ombre:    0 1px 2px rgba(15, 37, 64, .04), 0 8px 24px rgba(15, 37, 64, .08);
  --psp-ombre-fo: 0 2px 4px rgba(15, 37, 64, .06), 0 16px 40px rgba(15, 37, 64, .14);
  --psp-entete-h: 96px;
  --psp-entete-h-defile: 68px;
}

body {
  background-color: var(--psp-cream);
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
}

/* Longueur de ligne : 65 à 75 caractères */
.psp-mesure,
.psp-mesure p {
  max-width: 68ch;
}

.psp-mesure--centre {
  margin-inline: auto;
}

/* ------------------------------------------------------------------ 3. Apparitions au défilement
   Redéfinit l'animation d'entrée native d'Elementor pour tenir le motif unique
   du système : fadeInUp de 24px, 0,6s. Elementor ne la déclenche qu'une fois. */

@keyframes fadeInUp {
  from { opacity: 0; transform: translate3d(0, 24px, 0); }
  to   { opacity: 1; transform: none; }
}

.elementor-element.animated {
  animation-duration: .6s;
  animation-timing-function: var(--psp-ease);
  animation-fill-mode: both;
}

/* ------------------------------------------------------------------ 4. Micro-interactions */

/* Carte */
.psp-carte {
  transition: transform .25s var(--psp-ease), box-shadow .25s var(--psp-ease);
  will-change: transform;
}

.psp-carte:hover,
.psp-carte:focus-within {
  transform: translateY(-4px);
  box-shadow: var(--psp-ombre-fo);
}

/* Bouton : la flèche glisse, le fond fonce */
.elementor-button {
  transition: background-color .2s var(--psp-ease), color .2s var(--psp-ease),
              border-color .2s var(--psp-ease);
}

.elementor-button .elementor-button-icon {
  transition: transform .2s var(--psp-ease);
}

.elementor-button:hover .elementor-button-icon,
.elementor-button:focus-visible .elementor-button-icon {
  transform: translateX(4px);
}

/* Lien courant : soulignement qui se trace de gauche à droite */
.psp-texte a:not(.elementor-button),
.elementor-widget-text-editor a:not(.elementor-button) {
  color: var(--psp-navy-700);
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 100% 1px;
  padding-bottom: 1px;
  transition: background-size .2s var(--psp-ease), color .2s var(--psp-ease);
}

.psp-texte a:not(.elementor-button):hover,
.elementor-widget-text-editor a:not(.elementor-button):hover {
  background-size: 100% 2px;
  color: var(--psp-navy-900);
}

/* Image : zoom dans son cadre */
.psp-zoom,
.psp-zoom .elementor-widget-container,
.psp-zoom figure {
  overflow: hidden;
  border-radius: 8px;
}

.psp-zoom img {
  transition: transform .4s var(--psp-ease);
  will-change: transform;
}

.psp-zoom:hover img {
  transform: scale(1.03);
}

/* ------------------------------------------------------------------ 5. Formes organiques d'ambiance */

.psp-forme {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.psp-forme::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset-inline-end: -12%;
  inset-block-start: -18%;
  inline-size: 46vw;
  block-size: 46vw;
  max-inline-size: 620px;
  max-block-size: 620px;
  background: radial-gradient(closest-side, var(--psp-sage-100), transparent 72%);
  border-radius: 62% 38% 47% 53% / 55% 44% 56% 45%;
  pointer-events: none;
}

.psp-forme--rose::before {
  background: radial-gradient(closest-side, var(--psp-rose-100), transparent 72%);
  border-radius: 41% 59% 63% 37% / 48% 62% 38% 52%;
  inset-inline-end: auto;
  inset-inline-start: -14%;
}

/* ------------------------------------------------------------------ 6. En-tête, deux états */

.psp-entete {
  position: relative;
  --psp-entete-fond: transparent;
  background-color: var(--psp-entete-fond);
  min-height: var(--psp-entete-h);
  transition: background-color .3s var(--psp-ease), box-shadow .3s var(--psp-ease),
              min-height .3s var(--psp-ease);
}

/* Dégradé sombre pour garantir le contraste sur toute image de hero */
.psp-entete::after {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  block-size: 160px;
  background: linear-gradient(to bottom, rgba(15, 37, 64, .55), rgba(15, 37, 64, 0));
  pointer-events: none;
  z-index: -1;
  transition: opacity .3s var(--psp-ease);
}

.psp-entete .psp-logo--navy { display: none; }
.psp-entete .psp-logo--clair { display: block; }

.psp-entete .elementor-nav-menu .elementor-item,
.psp-entete .psp-entete-lien {
  color: #FFFFFF;
}

/* État défilé */
.psp-entete.elementor-sticky--effects {
  --psp-entete-fond: var(--psp-cream);
  min-height: var(--psp-entete-h-defile);
  box-shadow: 0 1px 0 rgba(15, 37, 64, .06), 0 8px 24px rgba(15, 37, 64, .07);
}

.psp-entete.elementor-sticky--effects::after { opacity: 0; }
.psp-entete.elementor-sticky--effects .psp-logo--navy { display: block; }
.psp-entete.elementor-sticky--effects .psp-logo--clair { display: none; }

.psp-entete.elementor-sticky--effects .elementor-nav-menu .elementor-item,
.psp-entete.elementor-sticky--effects .psp-entete-lien {
  color: var(--psp-navy-800);
}

.psp-entete .psp-logo img {
  transition: height .3s var(--psp-ease);
  height: 56px;
  width: auto;
}

.psp-entete.elementor-sticky--effects .psp-logo img { height: 44px; }

/* Navigation */
.psp-entete .elementor-nav-menu .elementor-item {
  font-family: 'Source Sans 3', system-ui, sans-serif;
  font-weight: 600;
  font-size: 1rem;
  padding-block: 12px;
  min-block-size: 44px;
  display: inline-flex;
  align-items: center;
}

/* Superposition mobile */
.psp-entete .elementor-nav-menu--dropdown {
  background-color: var(--psp-navy-900);
}

.psp-entete .elementor-nav-menu--dropdown a {
  color: var(--psp-cream) !important;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 1.5rem;
  min-block-size: 56px;
  display: flex;
  align-items: center;
}

.psp-entete .elementor-menu-toggle {
  min-inline-size: 44px;
  min-block-size: 44px;
  color: #FFFFFF;
}

.psp-entete.elementor-sticky--effects .elementor-menu-toggle {
  color: var(--psp-navy-800);
}

/* Lien d'évitement */
.psp-evitement {
  position: absolute;
  inset-inline-start: 16px;
  inset-block-start: -100px;
  z-index: 9999;
  padding: 12px 20px;
  background: var(--psp-navy-800);
  color: #FFFFFF;
  border-radius: 6px;
  font-weight: 600;
  text-decoration: none;
  transition: inset-block-start .2s var(--psp-ease);
}

.psp-evitement:focus {
  inset-block-start: 16px;
}

/* ------------------------------------------------------------------ 7. Pied de page */

.psp-pied {
  background-color: var(--psp-navy-900);
  color: var(--psp-cream);
}

.psp-pied h2, .psp-pied h3, .psp-pied h4 { color: var(--psp-cream); }

.psp-pied a {
  color: var(--psp-cream);
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat;
  background-position: 0 100%;
  background-size: 0 1px;
  transition: background-size .2s var(--psp-ease);
}

.psp-pied a:hover { background-size: 100% 1px; }

.psp-pied .psp-pied-mentions {
  color: #C3CEDA;
  font-size: .94rem;
}

.psp-pied .elementor-icon-list-icon svg,
.psp-pied .elementor-icon-list-icon i {
  color: var(--psp-sage-300);
}

/* ------------------------------------------------------------------ 8. Accessibilité, non négociable */

:focus-visible {
  outline: 3px solid var(--psp-navy-700);
  outline-offset: 2px;
  border-radius: 2px;
}

.psp-entete :focus-visible,
.psp-pied :focus-visible {
  outline-color: #FFFFFF;
}

/* Cibles tactiles */
.elementor-button,
.elementor-nav-menu a,
.psp-pied a {
  min-block-size: 44px;
}

.psp-pied a { display: inline-flex; align-items: center; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .elementor-invisible { visibility: visible !important; }
  .psp-carte:hover { transform: none; }
  .psp-zoom:hover img { transform: none; }
}


/* ------------------------------------------------------------------ 10. Échelle typographique fluide, 7 août 2026

   DÉFAUT CORRIGÉ : de 1025 px de large à l'infini, TOUTES les tailles de texte
   étaient figées. Mesuré au banc d'essai sur l'URL publique : H1 à 52 px aussi
   bien à 1276 qu'à 2556 px de viewport, corps à 18 px, citation à 30 px. Le
   texte occupait donc 4,1 % de la largeur d'écran sur un portable 13 pouces
   contre 2,0 % sur un 32 pouces : à deux endroits, le même site n'avait pas la
   même densité. Elementor n'offre que trois paliers (>1024, 1024, 767), ce qui
   ne peut pas couvrir la plage 1024 vers 2560.

   PARADE : chaque niveau devient une droite entre deux bornes, calibrée sur
   deux points de référence, 360 px et 1920 px, puis plafonnée. La partie fixe
   est en rem et non en px pour que l'agrandissement de la police par défaut
   du navigateur continue d'agir : un clamp purement en vw casse le
   critère WCAG 1.4.4.

   Calibrage retenu, arbitré par Toufik : le rendu validé à 1512 px reste la
   référence (H1 51 px contre 52 avant, écart invisible). C'est en dessous que
   ça se calme (47 à 1280, 43 à 1024) et au-dessus que ça respire (55 à 1728,
   58 au plafond).

   SPÉCIFICITÉ, la raison pour laquelle ce bloc marche : Elementor pose les
   jetons sur .elementor-kit-45 (0-1-0) et les tailles de balise sur
   .elementor-kit-45 h1 (0-1-1), y compris dans ses media queries tablette et
   mobile. body[class*="elementor-kit-"] vaut 0-1-1 et 0-1-2 : il gagne
   partout, sans dépendre du numéro du kit, et les trois paliers d'Elementor
   sont neutralisés d'un coup POUR LA TYPOGRAPHIE SEULE. Les points de rupture
   de MISE EN PAGE (1024, 767) sont intacts.

   PORTÉE : 132 des 138 règles de police d'une page passent par ces jetons
   (mesuré sur /). Ce bloc régit donc les neuf pages. Ne pas le dupliquer par
   page. Les six règles restées en dur sont reprises en fin de bloc.
   Ce n'est PAS un cas de la règle 2 de PSP-SYSTEME-FORMES.md : on n'écrase pas
   un contrôle de widget, on change la valeur que ce contrôle consomme. */

body[class*="elementor-kit-"] {
  /* jeton                                       min       pente               max        360 vers 1920 */
  --e-global-typography-primary-font-size:   clamp(2rem,      1.625rem + 1.67vw, 3.625rem);  /* 32 → 58 */
  --e-global-typography-secondary-font-size: clamp(1.4375rem, 1.235rem + 0.90vw, 2.3125rem); /* 23 → 37 */
  --e-global-typography-text-font-size:      clamp(1.0625rem, 1.010rem + 0.17vw, 1.1875rem); /* 17 → 19 */
  --e-global-typography-accent-font-size:    clamp(0.9375rem, 0.900rem + 0.12vw, 1.0625rem); /* 15 → 17 */
  --e-global-typography-pspsurt-font-size:   clamp(0.8125rem, 0.800rem + 0.09vw, 0.9375rem); /* 13 → 15 */
  --e-global-typography-psppeti-font-size:   clamp(0.9375rem, 0.920rem + 0.08vw, 1.0625rem); /* 15 → 17 */
  --e-global-typography-pspcita-font-size:   clamp(1.3125rem, 1.125rem + 0.83vw, 2.125rem);  /* 21 → 34 */

  /* Niveaux sans jeton global : le kit les pose sur la balise seule */
  --psp-h2: clamp(1.75rem,   1.490rem + 1.15vw, 2.875rem);  /* 28 → 46 */
  --psp-h4: clamp(1.25rem,   1.105rem + 0.64vw, 1.875rem);  /* 20 → 30 */
  --psp-h5: clamp(1.125rem,  1.050rem + 0.32vw, 1.4375rem); /* 18 → 23 */
  --psp-h6: clamp(1rem,      0.920rem + 0.22vw, 1.1875rem); /* 16 → 19 */
}

body[class*="elementor-kit-"]    { font-size: var(--e-global-typography-text-font-size); }
body[class*="elementor-kit-"] h1 { font-size: var(--e-global-typography-primary-font-size); }
body[class*="elementor-kit-"] h2 { font-size: var(--psp-h2); }
body[class*="elementor-kit-"] h3 { font-size: var(--e-global-typography-secondary-font-size); }
body[class*="elementor-kit-"] h4 { font-size: var(--psp-h4); }
body[class*="elementor-kit-"] h5 { font-size: var(--psp-h5); }
body[class*="elementor-kit-"] h6 { font-size: var(--psp-h6); }

/* Les six tailles restées en dur sur l'Accueil (§26.4bis) passent au même
   régime : un titre de carte à 23 px fixe deviendrait plus gros qu'un H3 fluide
   sous 1200 px. Répétition de classe conservée, ce sont bien des contrôles de
   widget qu'on écrase ici. */
.psp-carte-titre.psp-carte-titre.psp-carte-titre .elementor-heading-title { font-size: clamp(1.25rem, 1.150rem + 0.44vw, 1.625rem); }
.psp-etape-titre.psp-etape-titre.psp-etape-titre .elementor-heading-title { font-size: clamp(1.1875rem, 1.100rem + 0.38vw, 1.5rem); }
.psp-repere-label p { font-size: clamp(0.875rem, 0.845rem + 0.13vw, 1rem) !important; }

/* ---- Bornes de lecture du hero, en em et non en px ----
   DEUXIÈME DÉFAUT, découvert en mesurant le premier : la borne
   .psp-hero-titre { max-inline-size: 760px } du CSS de page ne s'applique
   PAS. .e-con.e-con > .e-con-inner > .elementor-widget { max-width: 100% }
   d'Elementor est plus spécifique et écrite après : le H1 dispose en réalité de
   toute la colonne, 1180 px. Il tenait quand même sur deux lignes à 52 px parce
   que text-wrap: balance les équilibrait — un accident, pas une contrainte.
   Dès que la typo devient fluide, à 47 px le titre bascule sur UNE ligne de
   1124 px, et le hero perd sa composition en colonne.
   Parade posée sur le .elementor-heading-title interne, qu'aucune règle
   Elementor ne dispute, et exprimée en em : le nombre de lignes du titre
   devient alors invariant de 375 à 2560 px. Une borne de lecture en pixels
   ment dès que le corps bouge (§24). */
.psp-hero-titre .elementor-heading-title { max-inline-size: 15em; }
.psp-citation--hero p { max-inline-size: 25em; }

/* ------------------------------------------------------------------ 11. Corps du menu, correctif de spécificité, 7 août 2026

   DÉFAUT TROUVÉ EN MESURANT LE §10 : à 1040 px, « Actualités » recouvre le
   bouton de rendez-vous de 6 px. Écart mesuré sur / : -6 px à 1040, +38 à 1120,
   +88 à 1240. La note de mémoire « il reste 20 px à 1040 » est périmée.

   CAUSE : le clamp posé le 5 août dans le CSS du modèle d'en-tête,
   .psp-entete .elementor-nav-menu--main .elementor-nav-menu .elementor-item
   (0-4-0), est mort le jour où la typographie du menu a été posée sur le widget
   lui-même pour la rendre éditable par la cliente (§16). Le contrôle de widget
   émet .elementor-49 .elementor-element.elementor-element-1b367c65
   .elementor-nav-menu .elementor-item, soit 0-5-0. Il gagne, et le menu est
   resté à 16 px fixe à TOUTES les largeurs. Deux correctifs qui s'annulent :
   la règle était bien dans la feuille, elle ne s'appliquait pas.

   Vérifié : ce recouvrement est ANTÉRIEUR au §10. Mesure faite deux fois sur la
   même page, une fois avec les jetons fluides et une fois avec les valeurs
   figées réinjectées : écart identique aux trois largeurs.

   PARADE : 0-6-0 par répétition de classe, et la valeur passe en rem + vw
   comme le reste de l'échelle. 14 px à 1024, 15 à 1280, 16 à 1512, 17 à 1728.
   Écart après correctif, mesuré : +28 px à 1025, +33 à 1040, +54 à 1100,
   +103 à 1240, +82 à 1512, +67 à 1728. Le pire cas passe de -6 à +28.
   Ne pas remonter cette règle dans le CSS du modèle d'en-tête : elle y serait
   de nouveau battue par le contrôle du widget. */

.psp-entete.psp-entete .elementor-nav-menu--main.elementor-nav-menu--main .elementor-nav-menu .elementor-item {
  font-size: clamp(0.875rem, 0.600rem + 0.43vw, 1.0625rem); /* 14 → 17 */
}/* End custom CSS */