/* =========================================================
   Articles : bandeau framboise, contenu, sommaire, colonne « Dans cette rubrique »,
   accordéons Elementor, liens et téléchargements
   ========================================================= */

/* Bandeau clair : page d'un centre */
.bandeau.clair { background: linear-gradient(180deg, var(--framboise-pale), var(--fond)); color: var(--texte); padding-top: clamp(36px, 4.5vw, 64px); padding-bottom: clamp(52px, 6vw, 84px); }
.bandeau.clair h1 { color: var(--encre) !important; max-width: 22ch; }
.bandeau.clair .fil { color: var(--gris); }
.bandeau.clair .fil a { color: var(--framboise-fonce); }
.etiquette { display: inline-block; font-size: .8125rem; font-weight: 600; letter-spacing: .02em; color: var(--framboise); background: #fff; border: 1px solid var(--rose); padding: 5px 12px; border-radius: 999px; margin-bottom: 18px; text-decoration: none; }
a.etiquette:hover { background: var(--framboise-pale); color: var(--framboise-fonce); }

.mise-en-page {
  display: grid; gap: clamp(28px, 4vw, 56px);
  grid-template-columns: minmax(0, 1fr) 280px;
  align-items: start;
  margin-top: calc(-1 * clamp(28px, 4vw, 56px));
  padding-bottom: 80px;
}
.contenu { background: var(--blanc); border-radius: var(--rayon); border: var(--bord); padding: clamp(24px, 4.5vw, 56px); min-width: 0; position: relative; }

/* Elementor dans l'article : pas de marges en plus, une largeur de lecture confortable */
.contenu .elementor-section.elementor-section-boxed > .elementor-container { max-width: none; }
.contenu .elementor-section, .contenu .elementor-column-wrap, .contenu .elementor-widget-wrap { padding: 0 !important; }
.contenu .elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 0; }
.contenu .elementor-widget:not(:last-child) { margin-bottom: 18px; }
.contenu .elementor-widget-text-editor, .contenu .elementor-widget-heading { max-width: 72ch; }
.contenu, .contenu .elementor-widget-text-editor { font-size: 1rem; line-height: 1.72; color: var(--texte); }
.contenu .elementor-widget-text-editor p { margin: 0 0 1em; }
.contenu .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.contenu .elementor-widget-text-editor ul { margin: 0 0 1em; padding-left: 1.2em; }
.contenu .elementor-widget-text-editor li { margin-bottom: .4em; }
.contenu .elementor-widget-text-editor li::marker { color: var(--framboise); }
.contenu .elementor-widget-text-editor strong { color: var(--encre); font-weight: 600; }

/* Titres de partie (ils alimentent le sommaire) */
.contenu .elementor-widget-heading h2.elementor-heading-title { font-size: clamp(1.3rem, 1.05rem + .8vw, 1.65rem); line-height: 1.18; margin: 1.6em 0 .2em; }
.contenu .elementor-widget-heading h2.elementor-heading-title::before { content: ""; display: block; width: 36px; height: 4px; border-radius: 4px; background: var(--vert); margin-bottom: 14px; }
.contenu .elementor-widget-heading:first-child h2.elementor-heading-title, .contenu .elementor-section:first-child .elementor-widget-heading:first-child h2.elementor-heading-title { margin-top: 0; }
.contenu .elementor-widget-heading h3.elementor-heading-title { font-size: 1.2rem; line-height: 1.3; margin: 1.2em 0 0; color: var(--vert-fonce); }

/* Le premier paragraphe d'un article est un peu plus grand */
.contenu .chapo-article p { font-size: 1.1rem; line-height: 1.62; color: var(--encre); }

/* Liens dans le texte : le picto se met tout seul (externe) */
.contenu .elementor-widget-text-editor a { color: var(--framboise-fonce); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.contenu .elementor-widget-text-editor a:hover { text-decoration-thickness: 2px; }
.lien-externe::after {
  content: ""; display: inline-block; width: .8em; height: .8em; margin-left: .3em; vertical-align: -.05em; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Une liste à puces qui ne contient que des liens devient une liste de cartes de liens */
.contenu ul.liens-utiles { list-style: none; padding: 0; margin: 1.2em 0; display: grid; gap: 10px; max-width: 72ch; }
.contenu ul.liens-utiles li { margin: 0; }
.contenu ul.liens-utiles a {
  display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: var(--rayon-s);
  text-decoration: none; color: var(--encre); font-weight: 500; line-height: 1.4;
  background: var(--fond); border: 1px solid var(--ligne);
  transition: transform .35s var(--ressort), background .2s, border-color .2s;
}
.contenu ul.liens-utiles a::after { display: none; }
.contenu ul.liens-utiles a:hover { background: #fff; border-color: rgba(0,0,0,.14); }
.contenu ul.liens-utiles a:active { transform: scale(.985); transition-duration: .1s; }
.contenu ul.liens-utiles .picto { flex-shrink: 0; width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; }
.contenu ul.liens-utiles .picto svg { width: 20px; height: 20px; }
.contenu ul.liens-utiles small { display: block; font-weight: 400; color: var(--gris); font-size: .8125rem; margin-top: 2px; }
.contenu ul.liens-utiles a.pdf .picto { background: var(--framboise-pale); color: var(--framboise); }
.contenu ul.liens-utiles a.externe .picto { background: var(--vert-pale); color: var(--vert-fonce); }
.contenu ul.liens-utiles a.interne .picto { background: #f2f2f5; color: var(--encre); }
.contenu ul.liens-utiles a.video .picto { background: #fff4e5; color: #a55b00; }
.contenu ul.liens-utiles a.courriel .picto { background: var(--vert-pale); color: var(--vert-fonce); }

/* =========================================================
   ACCORDÉONS Elementor (pathologies, centres, études, publications)
   ========================================================= */
.contenu :is(.elementor-accordion,.elementor-toggle) { display: grid; gap: 10px; max-width: 72ch; }
.contenu :is(.elementor-accordion,.elementor-toggle) :is(.elementor-accordion-item,.elementor-toggle-item) { border: 1px solid var(--ligne) !important; border-radius: var(--rayon-s); background: var(--blanc); overflow: hidden; transition: border-color .3s var(--ressort); }
.contenu :is(.elementor-accordion,.elementor-toggle) :is(.elementor-accordion-item,.elementor-toggle-item) + :is(.elementor-accordion-item,.elementor-toggle-item) { border-top: 1px solid var(--ligne) !important; }
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-title {
  display: flex; align-items: center; gap: 14px; padding: 16px 18px !important; border: 0 !important;
  font-family: var(--police); font-size: 1rem !important; font-weight: 600; line-height: 1.4; color: var(--encre);
  cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background .15s var(--ressort);
}
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-title:hover { background: var(--fond); }
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-title:active { background: var(--framboise-pale); }
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-title :is(.elementor-accordion-title,.elementor-toggle-title) { color: inherit !important; text-decoration: none; flex: 1; }
.contenu :is(.elementor-accordion,.elementor-toggle) :is(.elementor-accordion-icon,.elementor-toggle-icon) { display: none !important; }
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-title::after {
  content: ""; flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%;
  background: var(--framboise-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c82c49' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 14px no-repeat;
  transition: transform .45s var(--ressort), background-color .2s;
}
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-title.elementor-active::after,
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-title[aria-expanded="true"]::after {
  transform: rotate(45deg);
  background: var(--framboise) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 14px no-repeat;
}
.contenu :is(.elementor-accordion,.elementor-toggle) :is(.elementor-accordion-item,.elementor-toggle-item):has(.elementor-active) { border-color: color-mix(in srgb, var(--framboise) 35%, transparent) !important; }
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-content { border: 0 !important; padding: 0 18px 18px !important; color: var(--texte); font-size: 1rem; line-height: 1.65; }
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-content p { margin: 0 0 .9em; }
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-content p:last-child { margin-bottom: 0; }
.contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-content a { color: var(--framboise-fonce); }

/* Pli qui ne contient qu'un lien : le titre ouvre directement le lien (flèche verte) */
.contenu :is(.elementor-accordion,.elementor-toggle) .pli-lien .elementor-tab-title::after {
  background: var(--vert-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f7a6d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4'/%3E%3C/svg%3E") center / 13px no-repeat !important;
  transform: none !important;
}
.contenu :is(.elementor-accordion,.elementor-toggle) .pli-lien .elementor-tab-title:hover::after { transform: translate(2px, -2px) !important; }
.contenu :is(.elementor-accordion,.elementor-toggle) .pli-lien .elementor-tab-content { display: none !important; }
.contenu :is(.elementor-accordion,.elementor-toggle) .pli-lien:hover { border-color: color-mix(in srgb, var(--vert) 45%, transparent) !important; }

/* Légende des deux sortes de plis */
.legende-plis { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .875rem; color: var(--gris); margin: 6px 0 0; }
.elementor-widget-wrap > .legende-plis { margin: 0; width: 100%; }
.legende-plis span { display: inline-flex; align-items: center; gap: 6px; }
.legende-plis i { width: 22px; height: 22px; border-radius: 50%; display: inline-block; }
.legende-plis .l-externe { background: var(--vert-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f7a6d' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4h6v6M20 4l-9 9M18 14v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4'/%3E%3C/svg%3E") center / 11px no-repeat; }
.legende-plis .l-interne { background: var(--framboise-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c82c49' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 11px no-repeat; }
.legende-plis .l-ici { background: var(--framboise-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c82c49' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 11px no-repeat; }

/* Vidéo intégrée */
.contenu .elementor-widget-video { max-width: 72ch; border-radius: var(--rayon-s); overflow: hidden; }

/* Article suivant */
.article-suivant {
  display: flex; align-items: center; gap: 14px; margin-top: 48px; padding: 18px 20px; border-radius: var(--rayon-s);
  background: var(--fond); border: 1px solid var(--ligne); text-decoration: none !important; color: var(--encre);
  transition: transform .35s var(--ressort), background .2s;
}
.article-suivant small { display: block; color: var(--gris); font-size: .8125rem; font-weight: 500; }
.article-suivant span { font-weight: 600; flex: 1; }
.article-suivant svg { width: 20px; height: 20px; color: var(--framboise); transition: transform .35s var(--ressort); flex-shrink: 0; }
.article-suivant:hover { background: #fff; }
.article-suivant:hover svg { transform: translateX(4px); }
.article-suivant:active { transform: scale(.99); }
.article-suivant > div { flex: 1; }

/* =========================================================
   COLONNE : sommaire et « Dans cette rubrique »
   ========================================================= */
.colonne { position: sticky; top: calc(var(--haut-menu) + 20px); display: grid; gap: 16px; }
.encadre { background: rgba(255,255,255,.8); border: 1px solid var(--ligne); border-radius: var(--rayon-s); padding: 18px; }
.encadre[hidden] { display: none; }
.encadre h2 { font-family: var(--police) !important; font-size: .75rem !important; font-weight: 700; letter-spacing: .08em !important; text-transform: uppercase; color: var(--gris) !important; margin: 0 0 10px; }
.encadre ol, .encadre ul { list-style: none; margin: 0; padding: 0; }
.encadre a { display: block; position: relative; padding: 7px 10px 7px 14px; border-radius: 8px; text-decoration: none; font-size: .9rem; line-height: 1.4; color: var(--texte); transition: background .15s var(--ressort), color .15s; }
.encadre a::before { content: ""; position: absolute; left: 0; top: 9px; bottom: 9px; width: 3px; border-radius: 3px; background: transparent; transition: background .25s var(--ressort); }
.encadre a:hover { background: var(--fond); color: var(--encre); }
.encadre a.en-cours { color: var(--framboise-fonce); font-weight: 600; }
.encadre a.en-cours::before { background: var(--framboise); }
.encadre a[aria-current="page"] { color: var(--framboise); font-weight: 600; }

.sommaire-mobile { display: none; }

@media (max-width: 1023px) {
  .mise-en-page { grid-template-columns: minmax(0, 1fr); }
  .colonne { position: static; }
  .colonne .sommaire { display: none; }
  .sommaire-mobile:not(:empty) { display: block; position: sticky; top: 74px; z-index: 50; margin: 0 0 18px; }
  .sommaire-mobile > button {
    width: 100%; display: flex; align-items: center; gap: 10px; text-align: left; white-space: nowrap; /* « Sommaire » ne se coupe jamais */
    font: 600 .95rem/1.3 var(--police); color: var(--encre);
    padding: 13px 16px; border: 1px solid rgba(255,255,255,.7); border-radius: 999px; cursor: pointer;
    background: rgba(255,255,255,.85); -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
  }
  .sommaire-mobile > button span { color: var(--gris); font-weight: 400; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
  .sommaire-mobile > button svg { margin-left: auto; flex-shrink: 0; width: 16px; height: 16px; transition: transform .4s var(--ressort); }
  .sommaire-mobile.ouvert > button svg { transform: rotate(180deg); }
  .sommaire-mobile .panneau {
    position: absolute; left: 0; right: 0; top: calc(100% + 8px);
    background: rgba(255,255,255,.94); -webkit-backdrop-filter: saturate(180%) blur(24px); backdrop-filter: saturate(180%) blur(24px);
    border: 1px solid rgba(255,255,255,.7); border-radius: var(--rayon-s); box-shadow: var(--ombre-flottante); padding: 10px;
    transform-origin: top center; transform: translateY(-6px) scale(.97); opacity: 0; visibility: hidden;
    transition: transform .35s var(--ressort), opacity .2s, visibility 0s .35s;
  }
  .sommaire-mobile.ouvert .panneau { transform: none; opacity: 1; visibility: visible; transition: transform .35s var(--ressort), opacity .2s, visibility 0s; }
  .sommaire-mobile ol { list-style: none; margin: 0; padding: 0; }
  .sommaire-mobile a { display: block; padding: 10px 12px; border-radius: 10px; text-decoration: none; color: var(--encre); font-size: .95rem; }
  .sommaire-mobile a.en-cours { color: var(--framboise); font-weight: 600; background: var(--framboise-pale); }
}
@media (max-width: 640px) {
  .contenu { border-radius: 18px; }
  .contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-title { padding: 14px !important; }
  .contenu :is(.elementor-accordion,.elementor-toggle) .elementor-tab-content { padding: 0 14px 16px !important; }
}
@media (prefers-reduced-transparency: reduce) {
  .sommaire-mobile > button, .sommaire-mobile .panneau, .encadre { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* Pages simples (Nous contacter, Annuaire) : une seule colonne */
.mise-en-page.pleine { grid-template-columns: minmax(0, 1fr); }
.chapo-page { font-size: clamp(1.05rem, .95rem + .4vw, 1.2rem); line-height: 1.55; max-width: 60ch; margin: 16px 0 0; color: rgba(255,255,255,.92); }

/* =========================================================
   Couleurs de la charte (validé sur « Le CRMR » le 27/10/2026). Le noir reste pour le texte : aucune décoration en noir.
   ========================================================= */

 /* menthe assez soutenu pour un titre sur fond blanc */

/* Bandeau : framboise aux vagues des plaquettes, un liseré menthe au-dessus de la vague (même tracé, décalé vers le haut) */
.bandeau-article::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: 10px; z-index: -1; height: clamp(50px, 8vw, 110px);
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath fill='%2338d3b7' d='M0 60C300 0 520 90 800 50S1250 0 1440 30V100H0Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.bandeau-article h1 { max-width: 24ch; }
.bandeau-article .etiquette { background: var(--vert); border-color: transparent; color: #fff; transition: background .45s var(--ressort); }

/* Les blocs commencent sous la vague, pour laisser le liseré menthe entier */
.mise-en-page { margin-top: clamp(8px, 1.5vw, 20px); }
.bandeau-article a.etiquette:hover { background: #5ddcc5; color: #fff; }

/* Premier paragraphe : liseré menthe */
.contenu .chapo-article { padding-left: 20px; border-left: 4px solid var(--vert); }

/* Puces : petits points menthe */
.contenu .elementor-widget-text-editor ul { padding-left: 0; list-style: none; }
.contenu .elementor-widget-text-editor ul:not(.liens-utiles):not(.chiffres-cles) > li { margin-bottom: .5em; padding-left: 1.4em; position: relative; }
.contenu .elementor-widget-text-editor ul:not(.liens-utiles):not(.chiffres-cles) > li::before { content: ""; position: absolute; left: .2em; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--vert); }

/* Titres de partie : un sur deux en menthe, un sur deux en framboise, le trait de la même couleur */
.contenu h2.titre-vert { color: var(--vert-titre) !important; }
.contenu h2.titre-vert::before { background: var(--vert) !important; }
.contenu h2.titre-rose { color: var(--framboise) !important; }
.contenu h2.titre-rose::before { background: var(--framboise) !important; }

/* Cartes de liens : rose, menthe au survol */
/* Liens : framboise = on reste sur le site (page, PDF, e-mail), menthe = on part sur un autre site (flèche qui sort du cadre) */
.contenu ul.liens-utiles a { background: var(--framboise-pale); border-color: color-mix(in srgb, var(--framboise) 30%, transparent); transition: transform .35s var(--ressort), background .3s var(--ressort), border-color .3s var(--ressort); }
.contenu ul.liens-utiles a:hover { background: color-mix(in srgb, var(--framboise) 12%, white); border-color: color-mix(in srgb, var(--framboise) 55%, transparent); }
.contenu ul.liens-utiles a .picto { background: var(--framboise) !important; color: #fff !important; }
.contenu ul.liens-utiles a:is(.externe,.video) { background: var(--vert-pale); border-color: color-mix(in srgb, var(--vert) 45%, transparent); }
.contenu ul.liens-utiles a:is(.externe,.video):hover { background: color-mix(in srgb, var(--vert) 20%, white); border-color: var(--vert); }
.contenu ul.liens-utiles a:is(.externe,.video) .picto { background: var(--vert) !important; }
.contenu ul.liens-utiles a .picto svg { transition: transform .35s var(--ressort); }
.contenu ul.liens-utiles a.interne:hover .picto svg { transform: translateX(3px); }
.contenu ul.liens-utiles a.externe:hover .picto svg { transform: translate(2px, -2px); }

/* Pli qui ouvre une page du site : flèche framboise (celui qui ouvre un autre site garde la flèche menthe qui sort du cadre) */
.contenu :is(.elementor-accordion,.elementor-toggle) .pli-interne .elementor-tab-title::after { background: var(--framboise-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c82c49' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 13px no-repeat !important; }
.contenu :is(.elementor-accordion,.elementor-toggle) .pli-interne .elementor-tab-title:hover::after { transform: translateX(3px) !important; }
.contenu :is(.elementor-accordion,.elementor-toggle) .pli-interne:hover { border-color: color-mix(in srgb, var(--framboise) 40%, transparent) !important; }

/* Article suivant : carte framboise pleine, flèche blanche dans un rond menthe */
.article-suivant { background: linear-gradient(135deg, #d03652, var(--framboise) 55%, #bd2643); border: 0; color: #fff; transition: transform .35s var(--ressort), filter .2s; }
.article-suivant small { color: rgba(255,255,255,.85); }
.article-suivant span { font-family: var(--police-titre); font-weight: 500; font-size: 1.1rem; }
.article-suivant svg { width: 40px; height: 40px; padding: 10px; border-radius: 50%; background: var(--vert); color: #fff; box-sizing: border-box; }
.article-suivant:hover { background: linear-gradient(135deg, #d03652, var(--framboise) 55%, #bd2643); color: #fff; filter: brightness(1.05); }
/* Précédent (discret, rose pâle) et suivant côte à côte ; un seul : pleine largeur */
.articles-voisins { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-top: 48px; }
.articles-voisins .article-suivant { margin-top: 0; }
.article-precedent, .article-precedent:hover { background: var(--framboise-pale); color: var(--encre); border: 1px solid color-mix(in srgb, var(--framboise) 25%, transparent); }
.article-precedent:hover { filter: none; border-color: color-mix(in srgb, var(--framboise) 45%, transparent); }
.article-precedent small { color: var(--framboise); }
.article-precedent svg { background: var(--framboise); }
.article-precedent:hover svg { transform: translateX(-4px); }

/* Colonne : un rail gris, la partie en cours en framboise */
.encadre { background: var(--blanc); border: var(--bord); }
.encadre h2 { display: flex; align-items: center; gap: 8px; color: var(--framboise) !important; margin-bottom: 12px; }
.encadre h2::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--vert); }
.encadre ol, .encadre ul { border-left: 2px solid var(--ligne); }
.encadre a { border-radius: 0 8px 8px 0; }
.encadre a::before { left: -2px; top: 4px; bottom: 4px; width: 2px; }
.encadre a:hover { background: var(--vert-pale); }
.encadre a:hover::before { background: var(--vert); }
.encadre a.en-cours, .encadre a[aria-current="page"] { color: var(--framboise-fonce); background: var(--framboise-pale); }
.encadre a[aria-current="page"]::before { background: var(--framboise); }

/* Liste de chiffres (« Plus de 17 000 patients… ») : des tuiles centrées, le nombre en grand */
.contenu ul.chiffres-cles { list-style: none; padding: 0; margin: 1.2em 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
.contenu ul.chiffres-cles li { margin: 0; padding: 22px 18px 20px; border-radius: var(--rayon-s); background: var(--framboise-pale); line-height: 1.45; font-size: .92rem; color: var(--texte); text-align: center; -webkit-hyphens: none; hyphens: none; }
.contenu ul.chiffres-cles li:nth-child(even) { background: var(--vert-pale); }
.chiffres-cles .avant { display: block; font-size: .8125rem; font-weight: 600; color: var(--gris); }
.chiffres-cles .nombre { display: block; font-family: var(--police-titre); font-weight: 500; font-size: clamp(1.9rem, 1.5rem + 1.2vw, 2.5rem); line-height: 1.05; letter-spacing: -0.025em; color: var(--framboise); margin: 2px 0 8px; font-variant-numeric: tabular-nums; }
.chiffres-cles li:nth-child(even) .nombre { color: var(--vert-titre); }

/* Icône au-dessus de chaque chiffre, de la couleur de la tuile */
.picto-chiffre { display: grid; place-items: center; width: 44px; height: 44px; margin: 0 auto 12px; border-radius: 50%; background: var(--framboise); color: #fff; }
.chiffres-cles li:nth-child(even) .picto-chiffre { background: var(--vert); }
.picto-chiffre svg { width: 22px; height: 22px; }

/* Publications (Résultats d'études publiées) : auteurs et revue en petit, comme une référence bibliographique */
.contenu .elementor-tab-content p.publi-auteurs { font-size: .84rem; line-height: 1.5; color: var(--gris); margin-bottom: .4em; }
.contenu .elementor-tab-content p.publi-revue { font-size: .84rem; line-height: 1.5; color: var(--texte); margin-bottom: .6em; overflow-wrap: anywhere; }
.contenu .elementor-tab-content p.publi-revue em { font-style: italic; font-weight: 600; color: var(--encre); }
.contenu .elementor-tab-content p.publi-note { font-size: .84rem; font-style: italic; color: var(--texte); }
.contenu .elementor-tab-content ul.liens-utiles { margin: 14px 0 0; }
.contenu .elementor-tab-content ul.liens-utiles a { color: var(--encre); }

/* Nous contacter : deux cartes à gauche (coordonnées, rendez-vous), formulaire à droite (l'un sous l'autre sur téléphone) */
.contenu:has(.contact-grille) { background: none; border: 0; padding: 0; }
.contenu:has(.contact-grille) .sommaire-mobile { display: none; }
.contact-grille > .elementor-container { gap: clamp(14px, 2vw, 24px); align-items: flex-start; }
.contact-grille .elementor-column > .elementor-widget-wrap { padding: 0 !important; }
.contact-grille .contact-infos > .elementor-widget-wrap { display: grid; gap: clamp(14px, 2vw, 24px); }
.contact-grille .elementor-inner-section, .contact-grille .elementor-inner-section .elementor-widget-wrap { padding: 0 !important; margin: 0 !important; }
.contact-carte > .elementor-container, .contact-grille .contact-ecrire > .elementor-widget-wrap { display: block; background: var(--blanc); border: var(--bord); border-radius: var(--rayon); padding: clamp(22px, 3vw, 36px) !important; }
.contenu .contact-grille h2.elementor-heading-title { color: var(--encre) !important; font-size: 1.35rem; margin: 0 0 18px !important; }
.contenu .contact-grille h2.elementor-heading-title::before { display: none; }
.contenu .contact-carte .elementor-widget-text-editor p { margin: 0 0 20px; hyphens: manual; text-align: left !important; }
/* Coordonnées : un pictogramme dans un carré framboise pâle par ligne */
.coordonnees .elementor-icon-list-items { display: grid; gap: 14px; margin: 0; padding: 0; }
.coordonnees .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; align-items: center !important; }
.coordonnees .elementor-icon-list-item::before { display: none !important; }
.coordonnees .elementor-icon-list-item > a { display: flex; align-items: center; color: var(--encre); font-weight: 600; text-decoration: none; }
.coordonnees .elementor-icon-list-item > a:hover { color: var(--framboise); }
.coordonnees .elementor-icon-list-icon { flex: none; width: 40px; height: 40px; display: grid !important; place-items: center; border-radius: 12px; background: var(--framboise-pale); margin-right: 12px; padding: 0 !important; }
.coordonnees .elementor-icon-list-icon i { color: var(--framboise) !important; font-size: 16px !important; }
.coordonnees .elementor-icon-list-icon svg { fill: var(--framboise) !important; width: 16px !important; height: 16px !important; }
.coordonnees .elementor-icon-list-text { line-height: 1.5; color: inherit; padding: 0 !important; }
/* Boutons centrés, sans flèche */
.contact-grille .elementor-button { display: flex; justify-content: center; width: 100%; min-height: 48px; align-items: center; border-radius: 999px !important; background: var(--framboise) !important; color: #fff !important; font: 600 1rem var(--police) !important; padding: 0 24px !important; text-align: center; }
.contact-grille .elementor-button:hover { background: var(--framboise-fonce) !important; }
.contact-grille .elementor-button-icon { display: none; }
.formulaire-contact > p:last-child { text-align: center; }
.contact-grille .elementor-button:active { transform: scale(.97); }
.formulaire-contact p { margin: 0 0 16px; }
.formulaire-contact .deux { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0 16px; }
.formulaire-contact label { display: block; font-size: .875rem; font-weight: 600; color: var(--encre); margin-bottom: 6px; }
.formulaire-contact :is(input[type=text], input[type=email], select, textarea) {
  width: 100%; box-sizing: border-box; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--ligne); background: #fff;
  font: 400 1rem/1.4 var(--police); color: var(--encre); transition: border-color .3s var(--ressort), box-shadow .3s var(--ressort);
}
.formulaire-contact select { appearance: none; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c82c49' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center / 16px no-repeat; padding-right: 40px; }
.formulaire-contact textarea { resize: vertical; min-height: 140px; }
.formulaire-contact :is(input, select, textarea):focus { outline: none; border-color: var(--framboise); box-shadow: 0 0 0 3px color-mix(in srgb, var(--framboise) 15%, transparent); }
.formulaire-contact .accord label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; color: var(--texte); line-height: 1.45; }
.formulaire-contact .accord input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--framboise); flex-shrink: 0; }
.formulaire-contact .avertissement { font-size: .84rem; color: var(--gris); line-height: 1.45; }
.formulaire-contact .piege { position: absolute; left: -9999px; }
.formulaire-contact .bouton-envoyer { height: 48px; padding: 0 26px; border: 0; border-radius: 999px; background: var(--framboise); color: #fff; font: 600 1rem var(--police); cursor: pointer; transition: background .3s var(--ressort), transform .1s ease-out; }
.formulaire-contact .bouton-envoyer:hover { background: var(--framboise-fonce); }
.formulaire-contact .bouton-envoyer:active { transform: scale(.97); }
.formulaire-contact .erreur { padding: 12px 14px; border-radius: 12px; background: var(--framboise-pale); color: var(--framboise-fonce); }
.formulaire-contact.envoye { padding: 18px; border-radius: 12px; background: var(--vert-pale); color: var(--vert-fonce); }

/* Bouton dans un article (bloc « Bouton » d'Elementor) : framboise, centré, sans flèche */
.contenu .elementor-widget-button { margin: 8px 0 24px; }
.contenu .elementor-widget-button .elementor-button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 0 26px !important; border-radius: 999px !important; background: var(--framboise) !important; color: #fff !important; font: 600 1rem var(--police) !important; transition: background .2s, transform .1s ease-out; }
.contenu .elementor-widget-button .elementor-button:hover { background: var(--framboise-fonce) !important; }
.contenu .elementor-widget-button .elementor-button:active { transform: scale(.97); }
.contenu .elementor-widget-button .elementor-button-icon { display: none; }
