/*
Theme Name:   Hello Elementor Child — Hôpital Marie-Clarac
Theme URI:    https://hopitalmarie-clarac.qc.ca
Description:  Thème enfant de Hello Elementor pour le site de l'Hôpital Marie-Clarac. Contient les variables CSS de la charte graphique (guide de normes 2019) et les styles personnalisés du design V2 (éditorial / sidebar verticale). Projet DEV-MACL-2026-001.
Author:       Razine Bouache
Template:     hello-elementor
Version: 5.9.2
Text Domain:  hello-elementor-child
*/

/* ============================================================
   VARIABLES GLOBALES — Charte Hôpital Marie-Clarac
   Source : maquette V2 validée (juillet 2026)
   Palette CMJN/RVB officielle du guide de normes 2019
   ============================================================ */

:root {
  /* === Bleus structurels === */
  --navy-900: #14283A;
  --navy-800: #24475B;        /* gris-bleu officiel — texte / structure */
  --navy-700: #3A5E72;
  --navy-500: #6B8896;

  /* === Verts — réadaptation === */
  --teal-700: #2E7A47;        /* vert foncé — hover/accents */
  --teal-600: #4AB165;        /* vert officiel — réadaptation */
  --teal-500: #6BC282;
  --teal-100: #D9F0DF;
  --teal-50:  #ECF7EF;

  /* === Orange === */
  --peach-700: #C4761F;       /* orange foncé */
  --peach-500: #F2982B;       /* orange officiel */
  --peach-100: #FCE9D2;

  /* === Magenta — soins palliatifs === */
  /* Rose pâle relevé sur les maquettes de la page 494 : teinte 312°, celle du
     magenta de la charte, simplement désaturée (35 % contre 56-71 %).
     Ne figure pas au guide de normes 2019 — à faire valider.

     Un prune #603358 l'accompagnait pour les aplats pleins ; Raz a tranché le
     25 août pour le magenta officiel des soins palliatifs, --magenta-500.
     Le jeton a donc été retiré plutôt que laissé sans emploi. */
  --magenta-50:  #F1E2EE;     /* rose pâle — encadrés */

  --magenta-700: #7A1561;
  --magenta-500: #AD1E87;     /* magenta officiel — soins palliatifs */
  --magenta-200: #E5BFD9;     /* rose poudré — aplats réadaptation */
  --magenta-100: #F4D8EC;

  /* === Lime === */
  --lime-700: #8FA025;
  --lime-500: #C9D627;        /* vert lime officiel */
  --lime-200: #DDE3A3;        /* sage olive — aplats palliatifs */
  --lime-100: #F0F4D4;

  /* === Bleus vifs === */
  --bleu-500: #0D4B99;        /* bleu officiel */
  --bleu-100: #D6E4F4;
  --cyan-500: #00B2EB;        /* cyan officiel */
  --cyan-100: #D2F0F9;

  /* === Fonds et encres === */
  --canvas: #FAF7F2;          /* fond crème global */
  --paper: #FFFFFF;
  --ink: #14283A;
  --ink-soft: #3A5E72;
  --rule: #24475B;

  /* === Typographie — Poppins partout (brief client) ===
     Le nom « --display » a dû être abandonné : Elementor pose une propriété
     personnalisée du même nom sur chacun de ses conteneurs (--display:flex,
     qui pilote la disposition de la boîte) et masquait donc la nôtre à
     l'intérieur de tout l'arbre de la page. font-family recevait la valeur
     « flex », déclaration invalide, et les titres retombaient sur la police
     par défaut du navigateur — du Times New Roman sur les 38 pages bâties
     avec .mcl-page. Un nom préfixé met la variable à l'abri. */
  /* Pictogramme de cœur, employé en `mask` : il prend la couleur qu'on lui
     donne, donc il suit les modes de contraste. */
  --macl-coeur: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1.1-1.1a5.5 5.5 0 0 0-7.8 7.8l1.1 1.1L12 21.2l7.7-7.7 1.1-1.1a5.5 5.5 0 0 0 0-7.8z'/%3E%3C/svg%3E");
  --macl-titre: "Poppins", system-ui, sans-serif;
  --sans: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* === Sidebar verticale (V2) === */
  --side-w: 240px;

  /* === Rayons — formes fluides / organiques === */
  --r-card: 10px;
  --r-pill: 999px;
}

/* ============================================================
   BASE
   ============================================================ */

body {
  background: var(--canvas);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--macl-titre);
  color: var(--ink);
}

html {
  scroll-behavior: smooth;
}

/* Respect des préférences d'accessibilité — réduction de mouvement */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Focus visible — accessibilité clavier (AAA) */
a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible {
  outline: 3px solid var(--bleu-500);
  outline-offset: 2px;
}

/* ============================================================
   SIDEBAR VERTICALE (V2 — Theme Builder Elementor)
   Appliquer la classe .macl-sidebar au template Header
   construit dans Elementor > Theme Builder.
   Le décalage du contenu est géré par le padding sur body.
   ============================================================ */

@media (min-width: 1025px) {

  body {
    padding-left: var(--side-w);
  }

  .macl-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--side-w);
    height: 100vh;
    height: 100dvh;
    z-index: 999;
    background: var(--paper);
    border-right: 2px solid var(--rule);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
  }
}

/* Mobile / tablette : la sidebar redevient un header standard,
   Elementor gère le menu hamburger nativement */
@media (max-width: 1024px) {
  body {
    padding-left: 0;
  }
  .macl-sidebar {
    position: relative;
    width: 100%;
    height: auto;
    border-right: none;
    border-bottom: 2px solid var(--rule);
  }
}

/* ============================================================
   UTILITAIRES — classes réutilisables dans Elementor
   (à appliquer via Avancé > Classes CSS)
   ============================================================ */

/* Badge carré éditorial (style V2) */
.macl-badge {
  display: inline-block;
  padding: 6px 12px;
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--paper);
  background: var(--navy-800);
}

.macl-badge--readap { background: var(--teal-600); }
.macl-badge--palliatif { background: var(--magenta-500); }

/* Carte standard */
.macl-card {
  background: var(--paper);
  border: 2px solid var(--rule);
  border-radius: var(--r-card);
}

/* Bouton pilule */
.macl-pill {
  border-radius: var(--r-pill);
}

/* Séparateur épais éditorial */
.macl-rule {
  border-top: 3px solid var(--rule);
}


/* ==========================================================================
   MACL - PAGES INTERIEURES (refonte 2026)
   TOUT est scope sous .hmc-page pour ne JAMAIS toucher les pages 31/32/33
   qui reutilisent certaines memes classes (.hmc-step, .hmc-sec, .hmc-h2...).
   ========================================================================== */
.hmc-page{margin-left:240px !important;max-width:calc(100% - 240px) !important;width:100% !important;background:var(--canvas,#FAF7F2);display:flex;flex-direction:column;gap:0;padding:0 !important;overflow-x:clip}
.hmc-page > .e-con-inner{max-width:none;padding-left:0;padding-right:0}
html.hmc-avis-on .hmc-page{padding-top:84px !important}
@media (max-width:1024px){.hmc-page{margin-left:0 !important;max-width:100% !important;padding-top:64px !important}
html.hmc-avis-on .hmc-page{padding-top:150px !important}}
.hmc-page > .e-con{--gap:14px}
.hmc-page .e-con .e-con{--gap:0px}
.hmc-page .hmc-wrap{width:100% !important;max-width:1160px !important;margin:0 auto !important;padding:0 40px !important}
.hmc-page .hmc-wrap > .e-con-inner{max-width:none;padding:0}
@media (max-width:600px){.hmc-page .hmc-wrap{padding:0 20px !important}}
.hmc-page .hmc-crumb{padding-top:20px !important}
.hmc-page .hmc-crumb p{font-size:0.78125rem;color:var(--navy-500,#6B8896);margin:0;line-height:1.5}
.hmc-page .hmc-crumb a{color:var(--navy-500,#6B8896);text-decoration:none}
.hmc-page .hmc-crumb a:hover{color:var(--mag,#AD1E87);text-decoration:underline;text-underline-offset:3px}
.hmc-page .hmc-phero{padding-top:26px !important;padding-bottom:14px !important}
.hmc-page .hmc-eyebrow p{font-size:0.6875rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--mag,#AD1E87);margin:0 0 14px;line-height:1.4}
.hmc-page .hmc-phero .hmc-h1 .elementor-heading-title{font-size:var(--macl-titre-page);line-height:1.03;letter-spacing:-.03em;font-weight:700;color:var(--ink,#14283A);margin:0}
.hmc-page .hmc-lede p{font-size:1.1875rem;line-height:1.55;color:var(--navy-700,#3A5E72);max-width:64ch;margin:18px 0 0}
.hmc-page .hmc-sec{padding-top:38px !important}
.hmc-page .hmc-sec.is-first{padding-top:6px !important}
.hmc-page .hmc-page-end{padding-bottom:90px !important}
.hmc-page .hmc-h2 .elementor-heading-title{font-size:clamp(1.4375rem, calc(2.3vw * var(--macl-echelle, 1)), 1.9375rem);line-height:1.15;letter-spacing:-.02em;font-weight:700;color:var(--ink,#14283A);margin:0 0 14px}
.hmc-page .hmc-h3 .elementor-heading-title{font-size:1.15625rem;line-height:1.3;font-weight:600;color:var(--navy-800,#24475B);margin:20px 0 8px}
.hmc-page .hmc-body p{font-size:1.03125rem;line-height:1.72;color:var(--navy-700,#3A5E72);margin:0 0 14px;max-width:78ch}
.hmc-page .hmc-body p:last-child{margin-bottom:0}
.hmc-page .hmc-body a{color:var(--mag,#AD1E87);text-decoration:underline;text-underline-offset:3px}
.hmc-page .hmc-body a:hover{color:var(--mag-700,#7A1561)}
.hmc-page .hmc-body strong{color:var(--ink,#14283A);font-weight:600}
.hmc-page .hmc-body ul{margin:0 0 16px;padding:0;list-style:none;max-width:78ch}
.hmc-page .hmc-body ul li{position:relative;padding-left:22px;margin:0 0 9px;font-size:1.03125rem;line-height:1.65;color:var(--navy-700,#3A5E72)}
.hmc-page .hmc-body ul li::before{content:"";position:absolute;left:3px;top:10px;width:6px;height:6px;border-radius:50%;background:var(--mag,#AD1E87)}
.hmc-page .hmc-body ul li:last-child{margin-bottom:0}
.hmc-page .hmc-body ol{margin:0 0 16px;padding-left:22px;max-width:78ch}
.hmc-page .hmc-body ol li{font-size:1.03125rem;line-height:1.7;color:var(--navy-700,#3A5E72);margin:0 0 9px}
.hmc-page .hmc-body h4{font-size:1.03125rem;font-weight:600;color:var(--ink,#14283A);margin:22px 0 8px}

.hmc-page .hmc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:10px 0 0}
@media (max-width:1024px){.hmc-page .hmc-cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.hmc-page .hmc-cards{grid-template-columns:1fr}}
.hmc-page .hmc-card{display:flex;flex-direction:column;gap:7px;position:relative;background:#fff;border:1px solid #ECE3D5;border-radius:16px;padding:22px 46px 20px 22px;text-decoration:none;box-shadow:0 1px 2px rgba(20,40,58,.04);transition:transform 180ms cubic-bezier(.2,.7,.2,1),box-shadow 180ms,border-color 180ms}
.hmc-page .hmc-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(20,40,58,.09);border-color:#DCCFBB}
.hmc-page .hmc-card .t{font-size:1.0625rem;font-weight:600;color:var(--ink,#14283A);line-height:1.25}
.hmc-page .hmc-card .d{font-size:0.90625rem;line-height:1.5;color:var(--navy-700,#3A5E72)}
.hmc-page .hmc-card .arr{position:absolute;top:21px;right:20px;font-size:0.9375rem;color:var(--mag,#AD1E87);line-height:1}
.hmc-page .hmc-box{background:#fff;border:1px solid #ECE3D5;border-radius:16px;padding:22px 24px;margin:18px 0;box-shadow:0 1px 2px rgba(20,40,58,.04);max-width:820px}
.hmc-page .hmc-box .bh{font-size:0.71875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mag,#AD1E87);margin:0 0 12px;font-weight:700}
.hmc-page .hmc-box p{font-size:1rem;line-height:1.65;color:var(--navy-700,#3A5E72);margin:0 0 9px}
.hmc-page .hmc-box p:last-child{margin-bottom:0}
.hmc-page .hmc-box strong{color:var(--ink,#14283A);font-weight:600}
.hmc-page .hmc-box ul{margin:0;padding:0;list-style:none}
.hmc-page .hmc-box li{position:relative;padding-left:20px;margin:0 0 8px;font-size:1rem;line-height:1.6;color:var(--navy-700,#3A5E72)}
.hmc-page .hmc-box li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--mag,#AD1E87)}
.hmc-page .hmc-box li:last-child{margin-bottom:0}
.hmc-page .hmc-box a{color:var(--mag,#AD1E87);text-decoration:underline;text-underline-offset:3px}
.hmc-page .hmc-steps{display:grid;gap:12px;margin:16px 0;max-width:820px}
.hmc-page .hmc-steps .hmc-step{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid #ECE3D5;border-radius:14px;padding:18px 20px}
.hmc-page .hmc-steps .hmc-step .n{flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:var(--mag,#AD1E87);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.90625rem;line-height:1}
.hmc-page .hmc-steps .hmc-step .c b{display:block;font-size:1rem;color:var(--ink,#14283A);margin-bottom:4px;font-weight:600}
.hmc-page .hmc-steps .hmc-step .c span{display:block;font-size:0.96875rem;line-height:1.6;color:var(--navy-700,#3A5E72)}
.hmc-page .hmc-steps.is-read .hmc-step .n{background:#F4942A}
.hmc-page .hmc-steps.is-pall .hmc-step .n{background:#BA36A1}
.hmc-page .hmc-tablewrap{overflow-x:auto;margin:16px 0;max-width:820px}
.hmc-page .hmc-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid #ECE3D5;border-radius:14px;overflow:hidden;font-size:1rem}
.hmc-page .hmc-table th{text-align:left;background:#F4EFE7;color:var(--ink,#14283A);font-weight:700;font-size:0.75rem;letter-spacing:.08em;text-transform:uppercase;padding:12px 18px}
.hmc-page .hmc-table td{padding:12px 18px;border-top:1px solid #F1E9DD;color:var(--navy-700,#3A5E72)}
.hmc-page .hmc-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink,#14283A);font-weight:500}
.hmc-page .hmc-table.is-left td:last-child{text-align:left;font-weight:400}

.hmc-page .hmc-prog{margin:18px 0 0;max-width:820px}
.hmc-page .hmc-prog .lbl{display:inline-flex;align-items:center;gap:8px;font-size:0.6875rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;padding:5px 13px;border-radius:999px;margin:0 0 10px}
.hmc-page .hmc-prog.is-read .lbl{background:#FDE7D2;color:#B5620E}
.hmc-page .hmc-prog.is-pall .lbl{background:#F4DDEE;color:#8E2379}
.hmc-page .hmc-prog p{font-size:1.03125rem;line-height:1.72;color:var(--navy-700,#3A5E72);margin:0 0 12px}
.hmc-page .hmc-prog p:last-child{margin-bottom:0}
.hmc-page .hmc-prog ul{margin:0 0 12px;padding:0;list-style:none}
.hmc-page .hmc-prog li{position:relative;padding-left:20px;margin:0 0 8px;font-size:1rem;line-height:1.6;color:var(--navy-700,#3A5E72)}
.hmc-page .hmc-prog.is-read li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:#F4942A}
.hmc-page .hmc-prog.is-pall li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:#BA36A1}
.hmc-page .hmc-arrow{display:inline-flex;align-items:center;gap:7px;font-size:0.96875rem;font-weight:600;color:var(--mag,#AD1E87);text-decoration:none;margin:6px 18px 0 0}
.hmc-page .hmc-arrow:hover{text-decoration:underline;text-underline-offset:3px}
.hmc-page .hmc-arrows{margin:14px 0 0}
.hmc-page .hmc-docs{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0;max-width:900px}
@media (max-width:700px){.hmc-page .hmc-docs{grid-template-columns:1fr}}
.hmc-page .hmc-doc{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid #ECE3D5;border-radius:12px;padding:13px 16px;font-size:0.96875rem;line-height:1.4;color:var(--navy-800,#24475B);text-decoration:none}
.hmc-page .hmc-doc:hover{border-color:var(--mag,#AD1E87);color:var(--mag,#AD1E87)}
.hmc-page .hmc-doc::before{content:"\2193";font-size:0.875rem;color:var(--mag,#AD1E87);flex:0 0 auto;font-weight:700}
.hmc-page .hmc-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;max-width:900px}
.hmc-page .hmc-chip{display:inline-flex;align-items:center;background:#fff;border:1px solid #ECE3D5;border-radius:999px;padding:8px 15px;font-size:0.90625rem;color:var(--navy-800,#24475B)}
.hmc-page .hmc-quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin:16px 0 0}
@media (max-width:900px){.hmc-page .hmc-quotes{grid-template-columns:1fr}}
.hmc-page .hmc-quotecard{background:#fff;border:1px solid #ECE3D5;border-radius:16px;padding:24px}
.hmc-page .hmc-quotecard q{display:block;font-size:1.03125rem;line-height:1.65;color:var(--navy-700,#3A5E72);font-style:italic;quotes:none}
.hmc-page .hmc-quotecard q::before,.hmc-page .hmc-quotecard q::after{content:""}
.hmc-page .hmc-quotecard cite{display:block;margin-top:14px;font-style:normal;font-size:0.84375rem;font-weight:600;color:var(--ink,#14283A)}
.hmc-page .hmc-faq{margin:14px 0 0;max-width:860px}
.hmc-page .hmc-faq details{background:#fff;border:1px solid #ECE3D5;border-radius:14px;padding:0;margin:0 0 10px}
.hmc-page .hmc-faq summary{list-style:none;cursor:pointer;padding:17px 46px 17px 20px;position:relative;font-size:1.03125rem;font-weight:600;color:var(--ink,#14283A);line-height:1.4}
.hmc-page .hmc-faq summary::-webkit-details-marker{display:none}
.hmc-page .hmc-faq summary::after{content:"+";position:absolute;right:20px;top:15px;font-size:1.3125rem;color:var(--mag,#AD1E87);font-weight:400}
.hmc-page .hmc-faq details[open] summary::after{content:"\2013"}
.hmc-page .hmc-faq .a{padding:0 20px 18px;font-size:1rem;line-height:1.65;color:var(--navy-700,#3A5E72)}
.hmc-page .hmc-todo{display:none}
.elementor-editor-active .hmc-page .hmc-todo,.elementor-editor-preview .hmc-page .hmc-todo{display:block;background:#FFF8E1;border:1px dashed #E0A800;border-radius:12px;padding:15px 18px;margin:14px 0;max-width:820px}
.elementor-editor-active .hmc-page .hmc-todo p,.elementor-editor-preview .hmc-page .hmc-todo p{font-size:0.90625rem;line-height:1.6;color:#7A5B00;margin:0 0 6px}
.elementor-editor-active .hmc-page .hmc-todo p:last-child,.elementor-editor-preview .hmc-page .hmc-todo p:last-child{margin-bottom:0}
.elementor-editor-active .hmc-page .hmc-todo strong,.elementor-editor-preview .hmc-page .hmc-todo strong{color:#5C4400}

/* Etat actif du menu lateral sur les pages ENFANTS (section en cours).
   WordPress pose current-page-ancestor sur le parent ; le CSS de l'en-tete #17
   ne ciblait que current-menu-item. Meme rendu vert que l'onglet actif. */
.hmc-sidebar .hmc-nav .elementor-nav-menu > li.current-page-ancestor.current-page-ancestor > a.elementor-item,
.hmc-sidebar .hmc-nav .elementor-nav-menu > li.current-page-parent.current-page-parent > a.elementor-item,
.hmc-sidebar .hmc-nav .elementor-nav-menu > li.current-menu-ancestor.current-menu-ancestor > a.elementor-item{
  color:#2E7A47 !important;
  background:rgba(74,177,101,.12) !important;
  border-left:3px solid #4AB165 !important;
  padding-left:14px !important;
  padding-right:8px !important;
  font-weight:600 !important;
}


/* --- Fond beige jusqu'en bas sur les pages courtes ---------------------- */
html, body.page-template-elementor_header_footer{background-color:#FAF7F2}
.hmc-page{min-height:calc(100vh - 120px)}

/* --- Acces rapide : l'icone est un MASQUE CSS sur .elementor-icon-list-icon::before
   (background-color = couleur de l'icone). Ce n'est PAS le <svg>, qui reste
   display:none. Colorer le ::before, jamais le svg. ---------------------- */
html body .hmc-sidebar .elementor-icon-list-items .elementor-icon-list-item .elementor-icon-list-icon::before{
  background-color:#3A5E72 !important;
  transition:background-color 160ms ease !important}
html body .hmc-sidebar .elementor-icon-list-items .elementor-icon-list-item:hover .elementor-icon-list-icon::before,
html body .hmc-sidebar .elementor-icon-list-items .elementor-icon-list-item a:hover .elementor-icon-list-icon::before,
html body .hmc-sidebar .elementor-icon-list-items .elementor-icon-list-item:focus-within .elementor-icon-list-icon::before{
  background-color:#AD1E87 !important}
html body .hmc-sidebar .elementor-icon-list-items .elementor-icon-list-item:hover .elementor-icon-list-text,
html body .hmc-sidebar .elementor-icon-list-items .elementor-icon-list-item a:hover .elementor-icon-list-text{
  color:#AD1E87 !important;transition:color 160ms ease}

/* fin MACL pages interieures */




/* ==========================================================================
   MACL — PAGES MAQUETTE PHASE 2  (ajout automatisé)
   Tout est scopé sous .mcl-page : aucune interaction avec .hmc-main
   (pages 31/32/33 déjà conçues) ni avec .hmc-page (système précédent).
   Source : maquette phase 2 approuvée par le client.
   ========================================================================== */

:root{ --mono:"Poppins",ui-monospace,monospace; }

/* --- Conteneur racine : décalage sidebar + fond crème --- */
.mcl-page{margin-left:240px !important;max-width:calc(100% - 240px) !important;width:100% !important;background:var(--canvas,#FAF7F2);display:flex;flex-direction:column;gap:0;padding:0 !important;overflow-x:clip}
.mcl-page > .e-con-inner{max-width:none;padding-left:0;padding-right:0}
.mcl-page > .e-con{--gap:0px}
.mcl-page .e-con .e-con{--gap:0px}
.mcl-page > .e-con > .e-con-inner{max-width:none}
html.hmc-avis-on .mcl-page{padding-top:84px !important}
@media (max-width:1024px){
  .mcl-page{margin-left:0 !important;max-width:100% !important;padding-top:64px !important}
  html.hmc-avis-on .mcl-page{padding-top:150px !important}
}

/* --- Base héritée de .site dans la maquette --- */
.mcl-page a{color:inherit;text-decoration:none}
.mcl-page a:hover{color:var(--teal-700,#2E7A47)}
.mcl-page img{display:block;max-width:100%}
.mcl-page *{box-sizing:border-box}

/* --- Composants de la maquette (sélecteurs préfixés) --- */
.mcl-page @font-face{font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("ea55d879-a385-45db-9be8-2feb72510b60") format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("164e54ec-02ba-47eb-af0a-f52a81c66403") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("d8df2cb2-47b9-414e-8ba6-8c86537bf4dd") 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;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("afbbb387-32a4-4c43-9704-958b8915c3f0") format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("bd8ea89d-427b-410c-a005-5c4b08d03c8f") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("9dd29df1-bb95-4f39-b2e9-3d9201e60460") 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;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("a9a9ada3-470f-4e95-ab42-088a0e523673") format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("f1c5952c-e480-4e32-aa77-af0cc203e3a0") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("01327238-a082-4bef-9925-74b0d1d6b91f") 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;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("6023036e-ebc4-48ed-879f-f33fb66c05de") format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("6a76fd45-1a08-4bd4-bdcb-9f837d7b0e28") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("69f7729d-499d-4185-a1f6-e8b3636b46f0") 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;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("056142e9-e542-4d53-ada0-4607f3742cdc") format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fbd83a33-800f-4f2d-8b19-852702b6051f") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("f276ec20-9097-4e3b-86df-5336cb4844c4") 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;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("3e53bc2a-7921-49c8-b097-896d52d4396e") format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("37d08e32-2673-4aa8-b0e8-edc5cb180680") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("84fe2451-e9b9-4e2b-89b4-8805c16cf491") 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;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("1bb59ffd-b271-48b2-85af-986df862f5f1") format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("c47b3826-392f-453f-9b57-a2647170f997") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("43dde25f-972a-4bc4-8b42-7d2fa51bb4e6") 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;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("333cb5fb-9019-42a5-a455-914a97633b2c") format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("1d5e697e-8e6e-479a-bca4-1c617d5683a2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
.mcl-page @font-face{font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("f2134958-f453-4009-8a79-74526cb9a350") 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;}
.mcl-page *{box-sizing:border-box}
.mcl-page #admission-page:not([data-prog="pall"]) .sej-tab[data-adm="readap"]{background:var(--teal-600);color:#fff}
.mcl-page #admission-page[data-prog="pall"] .sej-tab[data-adm="pall"]{background:var(--magenta-500);color:#fff}
.mcl-page #admission-page:not([data-prog="pall"]) .sej-tab[data-adm="readap"] .dot,
.mcl-page #admission-page[data-prog="pall"] .sej-tab[data-adm="pall"] .dot{background:#fff}
.mcl-page #admission-page:not([data-prog="pall"]) .sej-panel--readap{display:block}
.mcl-page #admission-page[data-prog="pall"] .sej-panel--pall{display:block}
.mcl-page .plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.mcl-page .plan-col h3{font-family:var(--macl-titre);font-weight:700;font-size:1.1875rem;color:var(--magenta-700);margin:0 0 12px;padding-bottom:10px;border-bottom:2px solid rgba(36,71,91,0.14)}
.mcl-page .plan-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}
.mcl-page .plan-col a{display:block;padding:8px 0;font-size:0.90625rem;color:var(--navy-800);cursor:pointer;border-bottom:1px dashed rgba(36,71,91,0.13)}
.mcl-page .plan-col a:hover{color:var(--magenta-700)}
.mcl-page .plan-col .u{font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.06em;color:var(--navy-500);display:block}
.mcl-page .searchbar{display:flex;gap:10px;align-items:center;max-width:640px}
.mcl-page .searchbar .box{flex:1;border:1.5px solid rgba(36,71,91,0.2);border-radius:100px;padding:14px 20px;font-size:0.9375rem;color:var(--navy-800);background:#fff}
@media (max-width:1000px){
.mcl-page .plan-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
.mcl-page .plan-grid{grid-template-columns:1fr}
}
.mcl-page .sidebar{position:fixed;inset:0 auto 0 0;width:var(--side-w);background:var(--canvas);color:var(--navy-800);display:flex;flex-direction:column;padding:28px 22px 22px;z-index:50;border-right:1.5px solid var(--navy-800);overflow-y:auto}
.mcl-page .main{margin-left:var(--side-w);min-height:100vh}
.mcl-page .crumbs{font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.02em;text-transform:uppercase;color:var(--ink-soft);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.mcl-page .crumbs a{cursor:pointer}
.mcl-page .crumbs a:hover{color:var(--teal-700)}
.mcl-page .crumbs .sep{color:rgba(0,0,0,0.25)}
.mcl-page .kicker{font-family:var(--mono);font-size:0.6875rem;font-weight:500;letter-spacing:0.18em;text-transform:uppercase}
.mcl-page .lede{font-weight:400;font-size:1.1875rem;line-height:1.5;color:var(--ink-soft);max-width:60ch}
.mcl-page .eyebrow-line{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.2em;text-transform:uppercase;font-weight:600}
.mcl-page .eyebrow-line::before{content:"";width:32px;height:2px;background:currentColor}
.mcl-page .cluster{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.mcl-page .stack{display:flex;flex-direction:column}
.mcl-page .gap-md{gap:16px}
.mcl-page .badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;font-family:var(--mono);font-size:0.65625rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;border:1.5px solid currentColor;border-radius:999px}
.mcl-page .badge--filled{color:#fff;border-color:transparent}
.mcl-page .badge--navy{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}
.mcl-page .badge--teal{background:var(--teal-600);color:#fff;border-color:var(--teal-600)}
.mcl-page .badge--magenta{background:var(--magenta-500);color:#fff;border-color:var(--magenta-500)}
.mcl-page .badge--lime{background:var(--lime-500);color:var(--navy-900);border-color:var(--lime-500)}
.mcl-page .btn{display:inline-flex;align-items:center;gap:10px;padding:14px 24px;font-family:var(--macl-titre);font-weight:600;font-size:0.9375rem;border:2px solid var(--navy-800);background:var(--navy-800);color:#fff;border-radius:999px;cursor:pointer;transition:200ms cubic-bezier(0.2,0.7,0.2,1)}
.mcl-page .btn:hover{background:transparent;color:var(--navy-800)}
.mcl-page .btn .arr{transition:transform 200ms}
.mcl-page .btn:hover .arr{transform:translateX(4px)}
.mcl-page .btn--ghost{background:transparent;color:var(--navy-800)}
.mcl-page .btn--ghost:hover{background:var(--navy-800);color:#fff}
.mcl-page .btn--invert{background:#fff;color:var(--navy-800);border-color:#fff}
.mcl-page .duo{position:relative;overflow:hidden;background:var(--canvas)}
.mcl-page .duo img{width:100%;height:100%;object-fit:cover;object-position:center 32%;filter:saturate(0.9) contrast(1.02) sepia(0.06) brightness(1.02)}
.mcl-page .duo.scrim::after{content:"";display:block;position:absolute;inset:0;background:linear-gradient(to top,rgba(20,40,58,0.62) 0%,rgba(20,40,58,0.14) 40%,rgba(20,40,58,0) 62%);pointer-events:none;z-index:1}
.mcl-page .hero{background:var(--canvas);padding:48px 56px 0;position:relative}
.mcl-page .hero-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:auto 280px 200px;gap:12px;margin-bottom:56px;padding-top:16px}
.mcl-page .hero-title{grid-column:1/span 4;grid-row:1;display:flex;flex-direction:column;justify-content:flex-end;padding:32px 0 24px}
.mcl-page .hero-title h1{font-family:var(--macl-titre);font-weight:700;font-size:clamp(3.5rem, calc(7.5vw * var(--macl-echelle, 1)), 7.5rem);line-height:1.18;letter-spacing:-0.02em;color:var(--ink);margin:0}
.mcl-page .hero-title h1 em{font-style:italic;font-weight:500;color:var(--teal-700)}
.mcl-page .hero-sign{margin:22px 0 0;font-size:1.125rem;line-height:1.5;color:var(--ink-soft);max-width:56ch}
.mcl-page .hero-tile{position:relative;overflow:hidden;background:var(--canvas);border-radius:18px;cursor:pointer;transition:240ms cubic-bezier(0.2,0.7,0.2,1)}
.mcl-page .hero-tile:hover{transform:scale(0.985)}
.mcl-page .hero-tile .duo{position:absolute;inset:0}
.mcl-page .hero-tile .tile-cap{position:absolute;left:16px;right:16px;bottom:16px;z-index:2;color:#fff;font-family:var(--macl-titre);font-weight:600;font-size:1.125rem;line-height:1.15;display:flex;flex-direction:column;gap:8px}
.mcl-page .hero-tile .tile-cap .badge{align-self:flex-start;background:rgba(255,255,255,0.15);border-color:rgba(255,255,255,0.4);color:#fff}
.mcl-page .hero-tile.t-1{grid-column:1/span 2;grid-row:2/span 2}
.mcl-page .hero-tile.t-2{grid-column:3/span 1;grid-row:2/span 1}
.mcl-page .hero-tile.t-3{grid-column:4/span 1;grid-row:2/span 1}
.mcl-page .hero-tile.t-4{grid-column:3/span 2;grid-row:3/span 1}
.mcl-page .hero-tile.t-quote{display:flex;flex-direction:column;justify-content:space-between;background:var(--magenta-500);color:#fff;padding:20px 22px;cursor:default}
.mcl-page .hero-tile.t-quote .q{font-family:var(--macl-titre);font-weight:500;font-size:1.1875rem;line-height:1.18;font-style:italic}
.mcl-page .hero-tile.t-quote .q::before{content:"\201C";font-size:3.5rem;line-height:0.4;display:block;opacity:0.4}
.mcl-page .hero-tile.t-quote .qa{font-family:var(--mono);font-size:0.65625rem;letter-spacing:0.15em;text-transform:uppercase;opacity:0.85}
.mcl-page .hero--stats .hero-stat-line{display:grid;grid-template-columns:1.3fr minmax(280px,0.7fr);grid-template-areas:"lede heritage" "values values";align-items:start;column-gap:56px;row-gap:68px;padding:0 0 56px}
.mcl-page .hero-stat-line .lede{grid-area:lede;font-family:var(--macl-titre);font-weight:500;font-size:clamp(1.5625rem, calc(2.7vw * var(--macl-echelle, 1)), 2.125rem);line-height:1.28;letter-spacing:-0.012em;color:var(--navy-800);max-width:24ch}
.mcl-page .hero-stat-line .keep-80{grid-area:heritage;display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;column-gap:12px;margin-top:28px}
.mcl-page .hero-stat-line .keep-80 .big{font-family:var(--macl-titre);font-weight:700;font-size:clamp(5.75rem, calc(10.5vw * var(--macl-echelle, 1)), 8.75rem);line-height:0.82;letter-spacing:-0.05em;color:var(--navy-800)}
.mcl-page .hero-stat-line .keep-80 .ans{font-family:var(--macl-titre);font-weight:700;font-size:clamp(2.5rem, calc(4.6vw * var(--macl-echelle, 1)), 3.75rem);line-height:0.95;letter-spacing:-0.03em;color:var(--navy-800)}
.mcl-page .hero-stat-line .keep-80 .l{flex-basis:100%;margin-top:14px;font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}
.mcl-page .values-block{grid-area:values}
.mcl-page .values-block .vb-head{margin-bottom:30px}
.mcl-page .values-block .vb-head::before{content:"";display:block;width:44px;height:3px;border-radius:2px;background:var(--magenta-500);margin-bottom:16px}
.mcl-page .values-block .vb-head .kicker{color:var(--magenta-700)}
.mcl-page .values-block .vb-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:30px}
.mcl-page .value-item{display:flex;flex-direction:column;gap:7px}
.mcl-page .value-item .ltr{font-family:var(--macl-titre);font-weight:700;font-size:clamp(2.5rem, calc(4vw * var(--macl-echelle, 1)), 3.375rem);line-height:1;letter-spacing:-0.02em;color:var(--magenta-700)}
.mcl-page .value-item .vname{font-family:var(--macl-titre);font-weight:600;font-size:1.0625rem;color:var(--navy-800)}
.mcl-page .value-item .vdesc{font-size:0.8125rem;line-height:1.55;color:var(--ink-soft);text-wrap:pretty}
.mcl-page .pillars-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 56px;margin-bottom:88px}
.mcl-page .pillar-block{padding:48px 44px 52px;position:relative;min-height:420px;border-radius:24px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;overflow:hidden}
.mcl-page .pillar-block.p-readap{background:var(--teal-100);color:var(--teal-700)}
.mcl-page .pillar-block.p-pall{background:var(--magenta-200);color:var(--magenta-700)}
.mcl-page .pillar-block .num{font-family:var(--macl-titre);font-weight:700;font-size:10rem;line-height:0.85;letter-spacing:-0.06em;position:absolute;top:36px;right:40px;opacity:0.16;color:currentColor}
.mcl-page .pillar-block .kicker{color:currentColor;opacity:0.85}
.mcl-page .pillar-block h2{font-family:var(--macl-titre);font-weight:600;font-size:clamp(1.75rem, calc(3vw * var(--macl-echelle, 1)), 2.5rem);line-height:1.14;letter-spacing:-0.025em;margin:0;color:currentColor;max-width:13ch}
.mcl-page .pillar-block .desc{font-size:0.96875rem;line-height:1.5;max-width:36ch;color:var(--navy-800);opacity:0.88}
.mcl-page .pillar-cta{display:flex;align-items:center;gap:12px 26px;flex-wrap:wrap;align-self:flex-start;margin-top:auto}
.mcl-page .pillar-block .arrow{font-family:var(--macl-titre);font-weight:600;font-size:1.125rem;display:inline-flex;align-items:center;gap:12px;padding-bottom:4px;border-bottom:2px solid currentColor;transition:gap 200ms;cursor:pointer;color:currentColor}
.mcl-page .pillar-block .arrow:hover{gap:22px;color:currentColor}
.mcl-page .home-adm{font-family:var(--macl-titre);font-weight:600;font-size:0.9375rem;color:currentColor;opacity:0.7;display:inline-flex;align-items:center;gap:7px;transition:opacity 160ms,gap 200ms;cursor:pointer}
.mcl-page .home-adm:hover{opacity:1;gap:11px;color:currentColor}
.mcl-page .paths-strip{background:var(--peach-100);color:var(--navy-800);padding:88px 56px}
.mcl-page .paths-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px;gap:32px;flex-wrap:wrap}
.mcl-page .paths-head h2{font-family:var(--macl-titre);font-weight:600;font-size:clamp(2.25rem, calc(4vw * var(--macl-echelle, 1)), 3.5rem);line-height:1.14;letter-spacing:-0.025em;margin:0;color:var(--navy-800);max-width:16ch}
.mcl-page .paths-head .kicker{color:var(--magenta-500)}
.mcl-page .paths-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mcl-page .path-tile{padding:28px 26px 26px;background:#fff;border:1.5px solid rgba(30,58,82,0.12);border-radius:20px;display:flex;flex-direction:column;gap:16px;min-height:260px;cursor:pointer;transition:200ms cubic-bezier(0.2,0.7,0.2,1);position:relative}
.mcl-page .path-tile:hover{border-color:var(--magenta-500);transform:translateY(-3px);box-shadow:0 10px 30px rgba(30,58,82,0.10)}
.mcl-page .path-tile:hover .arr-corner{color:var(--magenta-500);transform:translate(4px,-4px)}
.mcl-page .path-tile h3{font-family:var(--macl-titre);font-weight:600;font-size:1.75rem;line-height:1.15;letter-spacing:-0.02em;margin:0;padding-right:34px;min-height:2.3em;color:var(--navy-800)}
.mcl-page .path-tile p{margin:0;font-size:0.90625rem;color:var(--ink-soft);line-height:1.5}
.mcl-page .path-tile .arr-corner{position:absolute;top:28px;right:28px;color:rgba(30,58,82,0.4);transition:200ms}
.mcl-page .quick-access{margin:56px;border-radius:24px;border:1px solid rgba(36,71,91,0.14);border-top:4px solid var(--lime-500);background:var(--paper);padding:34px 40px 38px;display:flex;flex-direction:column;gap:22px}
.mcl-page .quick-access .qa-head{display:flex;flex-direction:column;gap:12px;max-width:64ch}
.mcl-page .quick-access .qa-head .kicker{color:var(--magenta-500)}
.mcl-page .quick-access .qa-head h2{font-family:var(--macl-titre);font-weight:700;font-size:clamp(1.75rem, calc(3vw * var(--macl-echelle, 1)), 2.5rem);line-height:1.14;letter-spacing:-0.025em;margin:0;color:var(--navy-800)}
.mcl-page .quick-access .qa-head p{margin:0;color:var(--ink-soft);font-size:0.96875rem;line-height:1.55;text-wrap:pretty}
.mcl-page .qa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.mcl-page .qa-link{position:relative;display:flex;flex-direction:column;padding:20px 20px 18px;border-radius:14px;background:rgba(36,71,91,0.045);transition:200ms cubic-bezier(0.2,0.7,0.2,1);cursor:pointer}
.mcl-page .qa-link:hover{background:#fff;box-shadow:0 12px 30px rgba(20,40,58,0.11);transform:translateY(-3px)}
.mcl-page .qa-link h4{font-family:var(--macl-titre);font-weight:600;font-size:1.0625rem;line-height:1.15;margin:0;padding-right:30px;color:var(--navy-800);text-wrap:pretty}
.mcl-page .qa-link p{margin:6px 0 0;font-size:0.8125rem;line-height:1.45;color:var(--ink-soft);text-wrap:pretty}
.mcl-page .qa-link .qa-arr{position:absolute;top:18px;right:18px;color:var(--navy-500);transition:200ms}
.mcl-page .qa-link:hover .qa-arr{color:var(--lime-700);transform:translate(3px,-3px)}
.mcl-page .foundation-row{display:grid;grid-template-columns:1.4fr 1fr;min-height:380px;border-radius:24px;overflow:hidden;margin:56px 56px 0}
.mcl-page .soins-hero{background:var(--canvas);padding:var(--macl-haut-page) 56px 64px}
.mcl-page .soins-hero .crumbs{margin-bottom:40px}
.mcl-page .soins-hero .sh-grid{display:grid;grid-template-columns:1fr;gap:56px;align-items:end}
.mcl-page .soins-hero .sh-grid--media{grid-template-columns:1.1fr 0.9fr}
.mcl-page .soins-hero .sh-kicker{color:var(--magenta-500);margin-bottom:20px}
.mcl-page .soins-hero h1{font-family:var(--macl-titre);font-weight:700;font-size:var(--macl-titre-page);line-height:1.18;letter-spacing:-0.035em;color:var(--ink);margin:0}
.mcl-page .soins-hero h1 em{font-style:italic;font-weight:500;color:var(--teal-700)}
.mcl-page .soins-hero .sh-lede{margin-top:28px;max-width:54ch;font-size:1.125rem}
.mcl-page .soins-hero .sh-media{aspect-ratio:4/3;max-height:440px;align-self:end;border-radius:24px;overflow:hidden;position:relative}
.mcl-page .soins-hero .sh-media .duo{position:absolute;inset:0}
.mcl-page .programs-v2{gap:28px;align-items:stretch}
.mcl-page .prog-card{background:var(--paper);border:1px solid rgba(36,71,91,0.10);border-radius:28px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 34px rgba(20,40,58,0.07);transition:220ms cubic-bezier(0.2,0.7,0.2,1)}
.mcl-page .prog-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(20,40,58,0.11)}
.mcl-page .prog-media{position:relative;height:330px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.mcl-page .prog-card--readap .prog-media{background:var(--magenta-100)}
.mcl-page .prog-card--pall .prog-media{background:var(--teal-50)}
.mcl-page .prog-media .blob{position:absolute;z-index:0;filter:blur(1px)}
.mcl-page .blob-a{width:300px;height:300px;border-radius:60% 40% 55% 45%/55% 45% 55% 45%}
.mcl-page .blob-b{width:200px;height:200px;border-radius:42% 58% 45% 55%/50% 50% 50% 50%}
.mcl-page .prog-card--readap .blob-a{background:var(--magenta-200);left:6%;top:10%}
.mcl-page .prog-card--readap .blob-b{background:var(--lime-200);right:5%;bottom:4%;opacity:0.85}
.mcl-page .prog-card--pall .blob-a{background:var(--teal-100);left:6%;top:10%;opacity:0.85}
.mcl-page .prog-card--pall .blob-b{background:var(--lime-200);right:5%;bottom:4%;opacity:0.7}
.mcl-page .prog-photo{position:relative;z-index:1;width:256px;height:256px;border-radius:48% 52% 53% 47%/50% 47% 53% 50%;overflow:hidden}
.mcl-page .prog-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:saturate(0.9) contrast(1.02) sepia(0.06) brightness(1.02)}
.mcl-page .prog-body{padding:32px 34px 34px;display:flex;flex-direction:column;gap:16px;flex:1}
.mcl-page .prog-pill{align-self:flex-start;font-family:var(--macl-titre);font-weight:600;font-size:0.8125rem;padding:7px 16px;border-radius:100px}
.mcl-page .prog-card--readap .prog-pill{background:var(--magenta-100);color:var(--magenta-700)}
.mcl-page .prog-card--pall .prog-pill{background:var(--teal-100);color:var(--teal-700)}
.mcl-page .prog-body h2{font-family:var(--macl-titre);font-weight:600;font-size:clamp(1.6875rem, calc(2.7vw * var(--macl-echelle, 1)), 2.25rem);line-height:1.16;letter-spacing:-0.02em;margin:0;color:var(--navy-800)}
.mcl-page .prog-desc{font-size:0.96875rem;line-height:1.55;color:var(--ink-soft);margin:0;max-width:48ch;text-wrap:pretty}
.mcl-page .prog-tags{display:flex;flex-wrap:wrap;gap:9px}
.mcl-page .prog-tags .chip{font-family:var(--macl-titre);font-weight:500;font-size:0.8125rem;color:var(--navy-800);background:rgba(36,71,91,0.06);padding:8px 15px;border-radius:100px}
.mcl-page .prog-tags .chip--more{color:var(--navy-500);background:rgba(36,71,91,0.04)}
.mcl-page .prog-cta{margin-top:auto;padding-top:8px;display:flex;align-items:center;gap:12px 26px;flex-wrap:wrap}
.mcl-page .btn-solid{font-family:var(--macl-titre);font-weight:600;font-size:0.96875rem;background:var(--teal-600);color:#fff;border:1.5px solid var(--teal-600);padding:13px 26px;border-radius:100px;transition:200ms;cursor:pointer}
.mcl-page .btn-solid:hover{background:var(--teal-700);border-color:var(--teal-700);color:#fff}
.mcl-page .btn-text{font-family:var(--macl-titre);font-weight:600;font-size:0.96875rem;color:var(--teal-700);display:inline-flex;align-items:center;gap:8px;transition:gap 200ms;cursor:pointer}
.mcl-page .btn-text:hover{gap:12px}
.mcl-page .prog-card--readap .btn-solid{background:var(--magenta-500);border-color:var(--magenta-500)}
.mcl-page .prog-card--readap .btn-solid:hover{background:var(--magenta-700);border-color:var(--magenta-700)}
.mcl-page .prog-card--readap .btn-text{color:var(--magenta-700)}
.mcl-page .clin-section{background:var(--paper);padding:96px 56px}
.mcl-page .clin-head{display:flex;flex-direction:column;align-items:stretch;gap:20px;border-bottom:4px solid var(--navy-800);padding-bottom:28px;margin-bottom:48px}
.mcl-page .clin-head-top{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:28px}
.mcl-page .clin-head .kicker{color:var(--magenta-500);margin-bottom:14px}
.mcl-page .clin-head h2{font-family:var(--macl-titre);font-weight:700;font-size:var(--macl-titre-section);line-height:1.14;letter-spacing:-0.03em;margin:0;color:var(--navy-800)}
.mcl-page .clin-head p{max-width:60ch;color:var(--ink-soft);font-size:1rem;margin:0;line-height:1.6;text-wrap:pretty}
.mcl-page .clin-note{max-width:64ch;color:var(--ink-soft);font-size:0.875rem;line-height:1.55;margin:0}
.mcl-page .clin-note strong{color:var(--navy-800);font-weight:600}
.mcl-page .clin-switch{display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.mcl-page .cs-label{font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.16em;text-transform:uppercase;color:rgba(36,71,91,0.5);font-weight:600}
.mcl-page .cs-toggle{display:inline-flex;background:rgba(36,71,91,0.05);border:1px solid rgba(36,71,91,0.12);border-radius:100px;padding:5px;gap:4px}
.mcl-page .cs-opt{display:inline-flex;align-items:center;gap:9px;border:none;background:transparent;font-family:var(--macl-titre);font-weight:600;font-size:0.9375rem;color:var(--navy-700);padding:11px 22px;border-radius:100px;cursor:pointer;transition:220ms cubic-bezier(0.2,0.7,0.2,1)}
.mcl-page .cs-opt .dot{width:9px;height:9px;border-radius:50%;flex:none;transition:200ms}
.mcl-page .cs-opt[data-clin="readap"] .dot{background:var(--magenta-500)}
.mcl-page .cs-opt[data-clin="pall"] .dot{background:var(--teal-600)}
.mcl-page .clin-section:not([data-prog="pall"]) .cs-opt[data-clin="readap"]{background:var(--magenta-500);color:#fff;box-shadow:0 6px 16px rgba(173,30,135,0.28)}
.mcl-page .clin-section[data-prog="pall"] .cs-opt[data-clin="pall"]{background:var(--teal-600);color:#fff;box-shadow:0 6px 16px rgba(46,122,71,0.28)}
.mcl-page .clin-section:not([data-prog="pall"]) .cs-opt[data-clin="readap"] .dot,
.mcl-page .clin-section[data-prog="pall"] .cs-opt[data-clin="pall"] .dot{background:#fff}
.mcl-page .clin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mcl-page .clin-card{background:var(--paper);border:1.5px solid rgba(36,71,91,0.14);border-radius:18px;padding:26px 26px 28px;display:flex;flex-direction:column;gap:14px;min-height:212px;position:relative;transition:220ms cubic-bezier(0.2,0.7,0.2,1)}
.mcl-page .clin-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(20,40,58,0.10)}
.mcl-page .clin-card h3{font-family:var(--macl-titre);font-weight:600;font-size:1.3125rem;line-height:1.16;letter-spacing:-0.015em;margin:6px 0 0;color:var(--navy-800)}
.mcl-page .clin-card p{margin:0;color:var(--ink-soft);font-size:0.84375rem;line-height:1.5;text-wrap:pretty}
.mcl-page .ci-ico{width:48px;height:48px;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;background:rgba(36,71,91,0.06);color:var(--navy-700);transition:220ms}
.mcl-page .ci-ico svg{width:22px;height:22px}
.mcl-page .ci-badge{position:absolute;top:22px;right:22px;font-family:var(--mono);font-size:0.59375rem;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:#fff;padding:6px 12px;border-radius:100px;white-space:nowrap}
.mcl-page .clin-section:not([data-prog="pall"]) .ci-ico{background:var(--magenta-100);color:var(--magenta-700)}
.mcl-page .clin-section:not([data-prog="pall"]) .clin-card--feature{background:var(--magenta-100);border-color:var(--magenta-500)}
.mcl-page .clin-section:not([data-prog="pall"]) .clin-card--feature .ci-ico{background:#fff;color:var(--magenta-700)}
.mcl-page .clin-section:not([data-prog="pall"]) .ci-badge{background:var(--magenta-500)}
.mcl-page .clin-section[data-prog="pall"] .ci-ico{background:var(--teal-50);color:var(--teal-700)}
.mcl-page .clin-section[data-prog="pall"] .clin-card--feature{background:var(--teal-50);border-color:var(--teal-600)}
.mcl-page .clin-section[data-prog="pall"] .clin-card--feature .ci-ico{background:#fff;color:var(--teal-700)}
.mcl-page .clin-section[data-prog="pall"] .ci-badge{background:var(--teal-600)}
.mcl-page .clin-section .v-pall{display:none}
.mcl-page .clin-section[data-prog="pall"] .v-pall{display:inline}
.mcl-page .clin-section[data-prog="pall"] .ci-ico .v-pall{display:inline-flex}
.mcl-page .clin-section[data-prog="pall"] .v-readap{display:none}
.mcl-page .ci-ico .v-readap,
.mcl-page .ci-ico .v-pall{display:inline-flex}
.mcl-page .sej-jump{position:sticky;top:0;z-index:20;background:rgba(255,255,255,0.97);backdrop-filter:blur(10px);border-bottom:1px solid rgba(36,71,91,0.12);padding:14px 56px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.mcl-page .sej-jump a{font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.08em;text-transform:uppercase;font-weight:600;color:var(--navy-700);padding:8px 15px;border-radius:100px;background:rgba(36,71,91,0.05);transition:160ms;cursor:pointer}
.mcl-page .sej-jump a:hover{background:var(--navy-800);color:#fff}
.mcl-page .sej-section{padding:var(--macl-esp-section) 56px;scroll-margin-top:70px}
.mcl-page .sej-section.alt{background:var(--canvas)}
.mcl-page .sej-section.paper{background:var(--paper)}
.mcl-page .sej-head{display:flex;flex-direction:column;align-items:flex-start;gap:16px;border-bottom:4px solid var(--navy-800);padding-bottom:26px;margin-bottom:44px}
.mcl-page .sej-head .sej-num{font-family:var(--mono);font-size:0.75rem;letter-spacing:0.14em;color:var(--magenta-500);font-weight:600}
.mcl-page .sej-head h2{font-family:var(--macl-titre);font-weight:700;font-size:var(--macl-titre-section);line-height:1.14;letter-spacing:-0.03em;margin:0;color:var(--navy-800)}
.mcl-page .sej-head p{max-width:62ch;color:var(--ink-soft);font-size:1rem;line-height:1.6;margin:0;text-wrap:pretty}
.mcl-page .sej-cols{display:grid;grid-template-columns:1.1fr 0.9fr;gap:28px;align-items:start}
.mcl-page .sej-cols--even{grid-template-columns:1fr 1fr}
.mcl-page .sej-steps{display:flex;flex-direction:column;gap:0}
.mcl-page .sej-step{display:grid;grid-template-columns:44px 1fr;gap:20px;padding:20px 0;border-top:1px solid rgba(36,71,91,0.13)}
.mcl-page .sej-step:first-child{border-top:none}
.mcl-page .sej-step .sn{font-family:var(--macl-titre);font-weight:700;font-size:1.875rem;color:var(--teal-600);line-height:1;letter-spacing:-0.03em}
.mcl-page .sej-step h4{font-family:var(--macl-titre);font-weight:600;font-size:1.1875rem;margin:0 0 6px;color:var(--navy-800)}
.mcl-page .sej-step p{margin:0;font-size:0.90625rem;line-height:1.55;color:var(--ink-soft);text-wrap:pretty}
.mcl-page .sej-card{background:var(--paper);border:1px solid rgba(36,71,91,0.14);border-radius:18px;padding:28px 30px}
.mcl-page .sej-section.alt .sej-card{background:#fff}
.mcl-page .sej-card.accent{border-top:4px solid var(--lime-500)}
.mcl-page .sej-card .ck,
.mcl-page .cnf-perso .ck,
.mcl-page .emp-porte .ck{font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--magenta-500);font-weight:600;margin-bottom:16px}
.mcl-page .sej-card h4{font-family:var(--macl-titre);font-weight:600;font-size:1.25rem;margin:0 0 14px;color:var(--navy-800)}
.mcl-page .sej-card p{color:var(--ink-soft);font-size:0.90625rem;line-height:1.6}
.mcl-page .sej-kv{display:flex;flex-direction:column;gap:12px}
.mcl-page .sej-kv .row{display:flex;justify-content:space-between;gap:18px;align-items:baseline;padding-bottom:12px;border-bottom:1px dashed rgba(36,71,91,0.16)}
.mcl-page .sej-kv .row:last-child{border-bottom:none;padding-bottom:0}
.mcl-page .sej-kv .k{font-size:0.90625rem;color:var(--ink-soft)}
.mcl-page .sej-kv .v{font-family:var(--macl-titre);font-weight:600;font-size:0.96875rem;color:var(--navy-800);white-space:nowrap}
.mcl-page .sej-check{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.mcl-page .sej-check li{display:grid;grid-template-columns:22px 1fr;gap:12px;font-size:0.9375rem;line-height:1.5;color:var(--navy-800)}
.mcl-page .sej-check li .tick{color:var(--teal-600);font-weight:700}
.mcl-page .sej-hour-card{border-radius:18px;padding:26px 28px}
.mcl-page .sej-hour-card--readap{background:var(--teal-50);border:1px solid var(--teal-100)}
.mcl-page .sej-hour-card--pall{background:var(--magenta-100);border:1px solid var(--magenta-200)}
.mcl-page .sej-hour-card .tag{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:0.625rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:14px}
.mcl-page .sej-hour-card .tag .dot{width:7px;height:7px;border-radius:50%}
.mcl-page .sej-hour-card--readap .tag{color:var(--teal-700)}
.mcl-page .sej-hour-card--readap .tag .dot{background:var(--teal-600)}
.mcl-page .sej-hour-card--pall .tag{color:var(--magenta-700)}
.mcl-page .sej-hour-card--pall .tag .dot{background:var(--magenta-500)}
.mcl-page .sej-hour-card h4{font-family:var(--macl-titre);font-weight:600;font-size:1.125rem;margin:0 0 10px;color:var(--navy-800)}
.mcl-page .sej-hour-card ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.mcl-page .sej-hour-card li{font-size:0.875rem;line-height:1.5;color:var(--ink-soft);padding-left:16px;position:relative}
.mcl-page .sej-hour-card li::before{content:"\2014";position:absolute;left:0;color:rgba(36,71,91,0.4)}
.mcl-page .visit-banner{display:flex;align-items:center;gap:36px;flex-wrap:wrap;background:var(--paper);border:1px solid rgba(36,71,91,0.14);border-radius:18px;padding:26px 34px;margin-bottom:18px}
.mcl-page .visit-banner .vb-time{display:flex;flex-direction:column;gap:6px;flex:none}
.mcl-page .visit-banner .vb-k{font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--navy-700);font-weight:600}
.mcl-page .visit-banner .vb-hours{font-family:var(--macl-titre);font-weight:700;font-size:clamp(1.875rem, calc(3.2vw * var(--macl-echelle, 1)), 2.625rem);letter-spacing:-0.03em;color:var(--navy-800);line-height:1;white-space:nowrap}
.mcl-page .visit-banner .vb-note{flex:1 1 280px;margin:0;font-size:0.90625rem;line-height:1.6;color:var(--ink-soft);padding-left:36px;border-left:1px solid rgba(36,71,91,0.14)}
.mcl-page .visit-progs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mcl-page .sej-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.mcl-page .sej-tile{background:var(--paper);border:1px solid rgba(36,71,91,0.13);border-radius:16px;padding:22px 24px;display:flex;flex-direction:column;gap:8px}
.mcl-page .sej-section.alt .sej-tile{background:#fff}
.mcl-page .sej-tile h4{font-family:var(--macl-titre);font-weight:600;font-size:1.0625rem;margin:0;color:var(--navy-800)}
.mcl-page .sej-tile p{margin:0;font-size:0.84375rem;line-height:1.5;color:var(--ink-soft);text-wrap:pretty}
.mcl-page .sej-tile .ln{font-family:var(--mono);font-size:0.75rem;letter-spacing:0.1em;color:var(--teal-700);font-weight:600}
.mcl-page .tile-ic{align-self:flex-start;width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--magenta-100);color:var(--magenta-700);margin-bottom:4px}
.mcl-page .tile-ic svg{width:22px;height:22px}
.mcl-page .sej-note{display:grid;grid-template-columns:28px 1fr;gap:14px;background:var(--lime-100);border-radius:14px;padding:18px 22px;align-items:start}
.mcl-page .sej-note .ic{font-size:1.125rem;line-height:1.4}
.mcl-page .sej-note p{margin:0;font-size:0.90625rem;line-height:1.55;color:var(--navy-800)}
.mcl-page .sej-note strong{font-weight:600}
.mcl-page .sej-tabs{display:inline-flex;gap:6px;background:rgba(36,71,91,0.06);padding:6px;border-radius:100px;margin-bottom:36px;flex-wrap:wrap}
.mcl-page .sej-tab{font-family:var(--macl-titre);font-weight:600;font-size:0.9375rem;padding:11px 22px;border-radius:100px;border:none;background:transparent;color:var(--navy-700);cursor:pointer;transition:180ms;display:inline-flex;align-items:center;gap:9px}
.mcl-page .sej-tab .dot{width:9px;height:9px;border-radius:50%;flex:none}
.mcl-page .sej-tab[data-adm="readap"] .dot{background:var(--teal-600)}
.mcl-page .sej-tab[data-adm="pall"] .dot{background:var(--magenta-500)}
.mcl-page #admission:not([data-prog="pall"]) .sej-tab[data-adm="readap"]{background:var(--teal-600);color:#fff}
.mcl-page #admission[data-prog="pall"] .sej-tab[data-adm="pall"]{background:var(--magenta-500);color:#fff}
.mcl-page #admission:not([data-prog="pall"]) .sej-tab[data-adm="readap"] .dot,
.mcl-page #admission[data-prog="pall"] .sej-tab[data-adm="pall"] .dot{background:#fff}
.mcl-page .sej-panel{display:none}
.mcl-page #admission:not([data-prog="pall"]) .sej-panel--readap{display:block}
.mcl-page #admission[data-prog="pall"] .sej-panel--pall{display:block}
.mcl-page .sej-panel--pall .sej-check .tick{color:var(--magenta-500)}
.mcl-page .sej-panel--pall .sej-step .sn{color:var(--magenta-500)}
.mcl-page .hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
.mcl-page .hub-card{background:var(--paper);border:1.5px solid rgba(36,71,91,0.14);border-radius:18px;padding:26px 26px 24px;display:flex;flex-direction:column;gap:12px;min-height:190px;cursor:pointer;transition:200ms cubic-bezier(0.2,0.7,0.2,1)}
.mcl-page .hub-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(20,40,58,0.12);border-color:var(--magenta-500)}
.mcl-page .hub-card .hn{font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.14em;color:rgba(36,71,91,0.45);font-weight:600}
.mcl-page .hub-card h3{font-family:var(--macl-titre);font-weight:600;font-size:1.375rem;line-height:1.16;letter-spacing:-0.015em;margin:0;color:var(--navy-800)}
.mcl-page .hub-card p{margin:0;font-size:0.875rem;line-height:1.5;color:var(--ink-soft);text-wrap:pretty}
.mcl-page .hub-card .more{margin-top:auto;padding-top:10px;font-family:var(--mono);font-size:0.65625rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:700;color:var(--magenta-700);display:inline-flex;gap:7px;align-items:center}
.mcl-page .tl{display:flex;flex-direction:column;border-left:2px solid rgba(36,71,91,0.16);margin-left:8px}
.mcl-page .tl-item{display:grid;grid-template-columns:132px 1fr;gap:24px;padding:18px 0 18px 26px;position:relative}
.mcl-page .tl-item::before{content:"";position:absolute;left:-7px;top:26px;width:12px;height:12px;border-radius:50%;background:var(--lime-500);border:2px solid var(--canvas)}
.mcl-page .tl-item .yr{font-family:var(--macl-titre);font-weight:700;font-size:1.1875rem;color:var(--magenta-700);letter-spacing:-0.01em}
.mcl-page .tl-item p{margin:0;font-size:0.90625rem;line-height:1.6;color:var(--ink-soft);text-wrap:pretty}
.mcl-page .doc-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.mcl-page .doc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.mcl-page .doc-list li{border-bottom:1px dashed rgba(36,71,91,0.16)}
.mcl-page .doc-list li:last-child{border-bottom:none}
.mcl-page .doc-list a{display:flex;gap:12px;align-items:center;font-size:0.90625rem;color:var(--navy-800);padding:11px 0;cursor:pointer}
.mcl-page .doc-list a::before{content:"PDF";font-family:var(--mono);font-size:0.5625rem;font-weight:700;letter-spacing:0.1em;color:#8A4A00;background:var(--peach-100);padding:4px 7px;border-radius:5px;flex:none}
.mcl-page .doc-list a:hover{color:var(--magenta-700)}
.mcl-page .chip-list{display:flex;flex-wrap:wrap;gap:9px}
.mcl-page .chip-list span{font-family:var(--macl-titre);font-weight:500;font-size:0.84375rem;color:var(--navy-800);background:rgba(36,71,91,0.06);padding:8px 15px;border-radius:100px}
.mcl-page .people{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.mcl-page .people li{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:13px 0;border-bottom:1px dashed rgba(36,71,91,0.16);font-size:0.9375rem}
.mcl-page .people li .nm{font-family:var(--macl-titre);font-weight:600;color:var(--navy-800)}
.mcl-page .people li .rl{font-family:var(--mono);font-size:0.65625rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}
.mcl-page .testi-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.mcl-page .testi{background:var(--paper);border:1px solid rgba(36,71,91,0.14);border-left:4px solid var(--lime-500);border-radius:18px;padding:30px 32px;display:flex;flex-direction:column;gap:18px}
.mcl-page .testi blockquote{margin:0;font-size:1rem;line-height:1.65;color:var(--navy-800);text-wrap:pretty}
.mcl-page .testi .who{font-family:var(--mono);font-size:0.65625rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--magenta-700);font-weight:600}
.mcl-page .job-list{display:flex;flex-direction:column;gap:12px}
.mcl-page .job-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:var(--paper);border:1px solid rgba(36,71,91,0.14);border-radius:16px;padding:20px 26px;transition:200ms}
.mcl-page .job-row:hover{border-color:var(--teal-600);box-shadow:0 10px 26px rgba(20,40,58,0.08)}
.mcl-page .job-row .jt{font-family:var(--macl-titre);font-weight:600;font-size:1.1875rem;color:var(--navy-800);flex:1 1 260px}
.mcl-page .job-row .jm{font-family:var(--mono);font-size:0.65625rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft)}
.mcl-page .job-row .btn-solid{padding:10px 20px;font-size:0.875rem}
.mcl-page .faq-group{margin-bottom:34px}
.mcl-page .faq-group>h3{font-family:var(--macl-titre);font-weight:700;font-size:1.375rem;color:var(--magenta-700);margin:0 0 14px}
.mcl-page .faq-item{background:var(--paper);border:1px solid rgba(36,71,91,0.14);border-radius:14px;margin-bottom:10px;overflow:hidden}
.mcl-page .faq-item summary{cursor:pointer;list-style:none;padding:18px 24px;font-family:var(--macl-titre);font-weight:600;font-size:1.03125rem;color:var(--navy-800);display:flex;justify-content:space-between;gap:16px;align-items:center}
.mcl-page .faq-item summary::-webkit-details-marker{display:none}
.mcl-page .faq-item summary::after{content:"+";font-size:1.375rem;font-weight:500;color:var(--magenta-500);line-height:1}
.mcl-page .faq-item[open] summary::after{content:"\2013"}
.mcl-page .faq-item p{margin:0;padding:0 24px 20px;font-size:0.9375rem;line-height:1.62;color:var(--ink-soft);max-width:78ch}
.mcl-page .big-contact{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.mcl-page .dir-table{width:100%;border-collapse:collapse;font-size:0.9375rem}
.mcl-page .dir-table td{padding:12px 0;border-bottom:1px dashed rgba(36,71,91,0.16);color:var(--ink-soft)}
.mcl-page .dir-table td:last-child{text-align:right;font-family:var(--macl-titre);font-weight:600;color:var(--navy-800);white-space:nowrap}
.mcl-page .rich{max-width:74ch}
.mcl-page .rich h3{font-family:var(--macl-titre);font-weight:600;font-size:1.4375rem;color:var(--navy-800);margin:34px 0 12px;letter-spacing:-0.015em}
.mcl-page .rich h3:first-child{margin-top:0}
.mcl-page .rich p{margin:0 0 14px;font-size:0.96875rem;line-height:1.68;color:var(--ink-soft);text-wrap:pretty}
.mcl-page .rich ul{margin:0 0 16px;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.mcl-page .rich li{font-size:0.9375rem;line-height:1.6;color:var(--ink-soft)}
.mcl-page .rich strong{color:var(--navy-800);font-weight:600}
.mcl-page .soins-hero,
.mcl-page .hero,
.mcl-page .hero--stats,
.mcl-page .paths-strip,
.mcl-page .pillars-row,
.mcl-page .programs-v2,
.mcl-page .quick-access,
.mcl-page .clin-section,
.mcl-page .sej-jump,
.mcl-page .hist-bande,
.mcl-page .sej-section{padding-inline:max(56px,calc((100% - 1480px)/2))}

/* --------------------------------------------------------------------------
   LE PLAFOND DE 1480 px S'APPLIQUE AUSSI AUX TROIS PREMIÈRES PAGES
   1er septembre 2026 — Accueil (31), Soins et services (32), Préparer son
   séjour (33).

   Ces trois pages sont les plus anciennes du projet. Elles portent un
   rembourrage de 56 px FIXE, écrit dans leur CSS de page (post-31/32/33), et
   n'ont jamais reçu le plafond ajouté plus tard aux 36 autres. Résultat : au
   delà de 1832 px de fenêtre, leur colonne continuait de s'étirer — 1648 px à
   2000 px de large — quand celle des autres pages s'arrêtait à 1480.

   ⚠ POURQUOI UNE REQUÊTE DE MÉDIA ET NON LA MÊME RÈGLE QUE LES AUTRES.
   Ces pages ont leurs propres rembourrages en dessous du bureau : 22 px et
   24 px sur téléphone, mesurés. Poser `max(56px, …)` sans condition les
   écraserait tous les trois et rendrait 56 px de marge sur un écran de 500 px.
   La règle n'existe donc qu'au-dessus du seuil, là où elle a quelque chose à
   faire ; en dessous, chaque page garde ce qu'elle avait.

   1833 px : le point exact où (largeur utile − 1480) / 2 dépasse 56 px, donc
   où les 36 autres pages basculent elles aussi. Les deux familles changent au
   même pixel.

   ⚠ POURQUOI `!important` ICI. Le CSS de ces pages empile des correctifs en
   `!important` — `.hmc-services{padding:48px 56px 56px !important}` sur la
   page 32, par exemple. Sans le même poids, deux sections sur trois se
   plafonnaient et la troisième restait à 56 px : un décalage à l'intérieur
   d'une même page, pire que le défaut qu'on corrige. La règle est volontairement
   étroite — un seul niveau de conteneurs, au-dessus d'un seul seuil — pour que
   ce poids ne déborde nulle part ailleurs. */
@media (min-width:1833px){
  .hmc-main > .e-con:not(.hmc-venue):not(.hmc-don-sec){
    padding-inline:max(56px, calc((100% - 1480px)/2)) !important;
  }

  /* Sur l'accueil, deux blocs ne sont pas des sections mais des CARTES : elles
     portent une marge de 56 px et aucun rembourrage. Leur appliquer le plafond
     en rembourrage indentait leur contenu DEUX FOIS — il commençait à 436 px
     quand celui des sections voisines commençait à 380. C'est leur marge qu'il
     faut plafonner.

     On plafonne leur marge et on ne touche PAS à leur rembourrage : la carte
     « Venue » porte 40 px d'encart intérieur qui lui sont propres, et le lui
     retirer au-delà de 1833 px l'aurait fait changer d'aspect selon la taille
     de l'écran.

     Les huit sections de « Préparer son séjour » et les trois de « Soins et
     services » n'ont, elles, aucune marge : vérifié, la règle générale leur
     suffit. */
  .hmc-main > .hmc-venue,
  .hmc-main > .hmc-don-sec{
    margin-inline:max(56px, calc((100% - 1480px)/2)) !important;
  }
}
@media (max-width:1100px){
.mcl-page .hero-grid{grid-template-rows:auto 240px 200px 200px}
.mcl-page .hero-title{grid-column:1/-1;grid-row:1}
.mcl-page .hero-tile.t-1{grid-column:1/-1;grid-row:2;height:280px}
.mcl-page .hero-tile.t-2{grid-column:1/span 2;grid-row:3}
.mcl-page .hero-tile.t-3{grid-column:3/span 2;grid-row:3}
.mcl-page .hero-tile.t-4{grid-column:1/-1;grid-row:4}
.mcl-page .pillars-row,
.mcl-page .foundation-row{grid-template-columns:1fr}
.mcl-page .clin-grid{grid-template-columns:1fr 1fr}
.mcl-page .hub-grid{grid-template-columns:1fr 1fr}
.mcl-page .soins-hero .sh-grid--media{grid-template-columns:1fr}
}
@media (max-width:1000px){
.mcl-page .sej-cols,
.mcl-page .sej-cols--even,
.mcl-page .big-contact,
.mcl-page .testi-grid,
.mcl-page .doc-cols,
.mcl-page .people{grid-template-columns:1fr}
.mcl-page .sej-grid3{grid-template-columns:1fr 1fr}
}
@media (max-width:980px){
.mcl-page .sidebar{position:relative;width:100%;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 20px;padding:16px 24px;overflow:visible}
.mcl-page .main{margin-left:0}
.mcl-page .soins-hero,
.mcl-page .hero,
.mcl-page .hero--stats,
.mcl-page .paths-strip,
.mcl-page .pillars-row,
.mcl-page .programs-v2,
.mcl-page .quick-access,
.mcl-page .clin-section,
.mcl-page .sej-jump,
.mcl-page .hist-bande,
.mcl-page .sej-section{padding-inline:24px}
.mcl-page .hero--stats .hero-stat-line{grid-template-columns:1fr;grid-template-areas:"lede" "heritage" "values";row-gap:36px}
.mcl-page .hero-stat-line .keep-80{margin-top:0}
.mcl-page .values-block .vb-grid{grid-template-columns:repeat(2,1fr);gap:26px 30px}
}
@media (max-width:820px){
.mcl-page .clin-grid{grid-template-columns:1fr 1fr}
.mcl-page .clin-head-top{flex-direction:column;align-items:flex-start}
.mcl-page .clin-switch{align-items:flex-start}
}
@media (max-width:720px){
.mcl-page .hero{padding:24px 24px 0}
.mcl-page .paths-grid,
.mcl-page .qa-grid,
.mcl-page .sej-grid3,
.mcl-page .visit-progs,
.mcl-page .hub-grid,
.mcl-page .clin-grid{grid-template-columns:1fr}
.mcl-page .prog-media{height:260px}
.mcl-page .prog-photo{width:200px;height:200px}
.mcl-page .visit-banner .vb-note{padding-left:0;border-left:none}
.mcl-page .tl-item{grid-template-columns:1fr;gap:6px}
}
/* --- Corrections d'integration Elementor -------------------------------
   Les conteneurs Elementor imposent flex-direction:column par defaut.
   Seules les rangees horizontales de la maquette doivent etre retablies. */
.mcl-page .sej-jump{flex-direction:row !important;flex-wrap:wrap !important;align-items:center !important}
.mcl-page .chip-list,
.mcl-page .hmc-chips,
.mcl-page .sej-tabs,
.mcl-page .crumbs{flex-direction:row !important;flex-wrap:wrap !important;align-items:center !important}
/* Les grilles de la maquette doivent primer sur le flex des conteneurs Elementor. */
.mcl-page .sh-grid,
.mcl-page .sej-cols,
.mcl-page .sej-grid3,
.mcl-page .clin-grid,
.mcl-page .hub-grid,
.mcl-page .plan-grid,
.mcl-page .paths-grid,
.mcl-page .people,
.mcl-page .footer-grid{display:grid !important}
/* Les conteneurs Elementor ne doivent pas ajouter leur propre largeur max. */
.mcl-page .e-con > .e-con-inner{max-width:none;padding:0}

/* fin MACL pages maquette phase 2 */


/* ==========================================================================
   MACL — CORRESPONDANCE AVEC LE DOM D'ELEMENTOR
   Les composants de la maquette sont désormais faits de widgets natifs.
   Elementor enveloppe chaque widget ; ce bloc remet la mise en forme
   d'origine sur la structure qu'il produit réellement.
   ========================================================================== */

/* 1. Les enveloppes de widget deviennent transparentes pour la mise en page. */
.mcl-page .elementor-widget-button .elementor-widget-container,
.mcl-page .elementor-button-wrapper,
.mcl-page .elementor-button-content-wrapper{display:contents}
.mcl-page .elementor-widget-text-editor > .elementor-widget-container,
.mcl-page .elementor-widget-heading > .elementor-widget-container,
.mcl-page .elementor-widget-icon-list > .elementor-widget-container{display:contents}

/* 2. On neutralise l'habillage par défaut des boutons Elementor : la maquette
      reprend la main juste après. */
.mcl-page .elementor-button{
  background:transparent;color:inherit;padding:0;border:0;border-radius:0;
  font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;
  letter-spacing:inherit;text-transform:none;text-align:inherit;box-shadow:none;
  fill:currentColor;text-decoration:none;transition:160ms}
.mcl-page .elementor-button:hover,
.mcl-page .elementor-button:focus{background:transparent;color:inherit}
.mcl-page .elementor-button-text{display:inline;font:inherit;color:inherit}

/* 3. Idem pour les listes d'icônes, qui remplacent les <ul> de la maquette. */
.mcl-page .elementor-icon-list-items{list-style:none;margin:0;padding:0}
.mcl-page .elementor-icon-list-item{margin:0;padding:0}
.mcl-page .elementor-icon-list-item > a,
.mcl-page .elementor-icon-list-item > .elementor-icon-list-text{padding:0;color:inherit}
.mcl-page .elementor-icon-list-icon{display:none}
.mcl-page .elementor-icon-list-text{color:inherit;font:inherit}

/* 4. Widgets Titre. Les vrais titres (h1..h6) gardent la typographie de la
      maquette ; seuls les petits libellés, posés en <div> ou <span>, héritent
      de la mise en forme de leur conteneur. */
.mcl-page .elementor-heading-title{margin:0;padding:0}
.mcl-page .elementor-widget-heading div.elementor-heading-title,
.mcl-page .elementor-widget-heading span.elementor-heading-title{
  font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit}

/* 5. Widget Image : on efface ses enveloppes pour que l'image redevienne
      l'enfant direct de son cadre, comme dans la maquette (cadres en
      aspect-ratio avec object-fit). */
.mcl-page .elementor-widget-image,
.mcl-page .elementor-widget-image > .elementor-widget-container,
.mcl-page .elementor-widget-image figure{display:contents}

/* 6. Widget Icône : mêmes effacements, pour que le SVG redevienne l'enfant
      direct de sa pastille et garde la taille prévue par la maquette. */
.mcl-page .elementor-widget-icon > .elementor-widget-container,
.mcl-page .elementor-widget-icon .elementor-icon-wrapper,
.mcl-page .elementor-widget-icon .elementor-icon{display:contents}
.mcl-page .elementor-widget-icon svg{fill:none !important;stroke:currentColor !important}

/* 7. Les enfants d'un conteneur doivent pouvoir rétrécir : Elementor leur
      laisse min-width:auto, ce qui empêche le texte long de se replier. */
.mcl-page .e-con > .elementor-element{min-width:0}

/* 8b. Les chaînes insécables (courriels, numéros) doivent pouvoir se couper
       plutôt que déborder de leur carte sur petit écran. */
.mcl-page .elementor-widget{overflow-wrap:anywhere}

/* 8. Ajustement assumé : dans la maquette, la valeur d'une ligne clé-valeur
      ne se coupe jamais (white-space:nowrap). Sur une colonne étroite, une
      adresse courriel débordait ; on l'autorise à se replier. */
.mcl-page .sej-kv .v{white-space:normal;overflow-wrap:anywhere;text-align:right}
/* Même chose pour la ligne d'appel des bandeaux, sur téléphone seulement. */
@media (max-width:600px){.mcl-page .visit-banner .vb-hours{white-space:normal}}

/* 9. La coche des listes reste détachée du texte qui la suit. */
.mcl-page .elementor-icon-list-item .tick,
.mcl-page .elementor-icon-list-item .ic{margin-right:9px}

/* 10. Navigation par ancre. La bannière d'avis reste fixée en haut de fenêtre :
       sans cette marge, le titre visé arriverait derrière elle. C'est la
       méthode native du navigateur, elle vaut aussi pour l'arrivée sur la page
       avec une ancre dans l'adresse. */
.mcl-page [id],
.hmc-main [id]{scroll-margin-top:132px}
@media (max-width:1024px){
  .mcl-page [id],
  .hmc-main [id]{scroll-margin-top:180px}
}

/* --- Report des styles de la maquette sur la structure d'Elementor --- */

.mcl-page .plan-col .elementor-icon-list-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}
.mcl-page .plan-col .elementor-button{display:block;padding:8px 0;font-size:0.90625rem;color:var(--navy-800);cursor:pointer;border-bottom:1px dashed rgba(36,71,91,0.13)}
.mcl-page .plan-col .elementor-button:hover{color:var(--magenta-700)}
.mcl-page .crumbs .elementor-button{cursor:pointer}
.mcl-page .crumbs .elementor-button:hover{color:var(--teal-700)}
.mcl-page .sej-jump .elementor-button{font-family:var(--mono);font-size:0.6875rem;letter-spacing:0.08em;text-transform:uppercase;font-weight:600;color:var(--navy-700);padding:8px 15px;border-radius:100px;background:rgba(36,71,91,0.05);transition:160ms;cursor:pointer}
.mcl-page .sej-jump .elementor-button:hover{background:var(--navy-800);color:#fff}
.mcl-page .sej-check .elementor-icon-list-item{display:block;font-size:0.9375rem;line-height:1.5;color:var(--navy-800)}
.mcl-page .sej-check .elementor-icon-list-item .tick{color:var(--teal-600);font-weight:700}
.mcl-page .sej-hour-card .elementor-icon-list-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.mcl-page .sej-hour-card .elementor-icon-list-item{font-size:0.875rem;line-height:1.5;color:var(--ink-soft);padding-left:16px;position:relative}
.mcl-page .sej-hour-card .elementor-icon-list-item::before{content:"\2014";position:absolute;left:0;color:rgba(36,71,91,0.4)}
.mcl-page .doc-list .elementor-icon-list-item{border-bottom:1px dashed rgba(36,71,91,0.16)}
.mcl-page .doc-list .elementor-icon-list-item:last-child{border-bottom:none}
.mcl-page .doc-list .elementor-button{display:flex;gap:12px;align-items:center;font-size:0.90625rem;color:var(--navy-800);padding:11px 0;cursor:pointer}
.mcl-page .doc-list .elementor-button::before{content:"PDF";font-family:var(--mono);font-size:0.5625rem;font-weight:700;letter-spacing:0.1em;color:#8A4A00;background:var(--peach-100);padding:4px 7px;border-radius:5px;flex:none}
.mcl-page .doc-list .elementor-button:hover{color:var(--magenta-700)}
.mcl-page .people .elementor-icon-list-item{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:13px 0;border-bottom:1px dashed rgba(36,71,91,0.16);font-size:0.9375rem}
.mcl-page .people .elementor-icon-list-item .nm{font-family:var(--macl-titre);font-weight:600;color:var(--navy-800)}
.mcl-page .people .elementor-icon-list-item .rl{font-family:var(--mono);font-size:0.65625rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}
.mcl-page .rich .elementor-icon-list-items{margin:0 0 16px;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.mcl-page .rich .elementor-icon-list-item{font-size:0.9375rem;line-height:1.6;color:var(--ink-soft)}

/* --- Composants disposés en ligne dans la maquette --- */
.mcl-page .chip-list,
.mcl-page .ci-ico,
.mcl-page .clin-head-top,
.mcl-page .cluster,
.mcl-page .crumbs,
.mcl-page .doc-list a,
.mcl-page .eyebrow-line,
.mcl-page .faq-item summary,
.mcl-page .job-row,
.mcl-page .paths-head,
.mcl-page .people li,
.mcl-page .pillar-cta,
.mcl-page .prog-cta,
.mcl-page .prog-media,
.mcl-page .prog-tags,
.mcl-page .searchbar,
.mcl-page .sej-jump,
.mcl-page .sej-kv .row,
.mcl-page .tile-ic,
.mcl-page .visit-banner{flex-direction:row}
/* inline-flex : le conteneur doit épouser son contenu */
.mcl-page .badge,
.mcl-page .btn,
.mcl-page .btn-text,
.mcl-page .ci-ico .v-pall,
.mcl-page .ci-ico .v-readap,
.mcl-page .clin-section[data-prog="pall"] .ci-ico .v-pall,
.mcl-page .cs-opt,
.mcl-page .cs-toggle,
.mcl-page .home-adm,
.mcl-page .hub-card .more,
.mcl-page .pillar-block .arrow,
.mcl-page .sej-hour-card .tag,
.mcl-page .sej-tab,
.mcl-page .sej-tabs{flex-direction:row;width:fit-content;max-width:100%}

/* --- Éléments positionnés en absolu --- */
.mcl-page .ci-badge,
.mcl-page .path-tile .arr-corner,
.mcl-page .pillar-block .num,
.mcl-page .prog-media .blob,
.mcl-page .qa-link .qa-arr,
.mcl-page .sej-hour-card li::before{width:fit-content;max-width:100%}

/* fin correspondance DOM Elementor */


/* ==========================================================================
   MACL — AJUSTEMENTS DEMANDÉS
   Ce bloc est écrit à la main et appliqué en dernier : il prime sur les
   règles issues de la maquette, qui sont générées automatiquement.
   ========================================================================== */

/* 14 août 2026 — direction de l'hôpital.
   Le liseré lime de 4 px en haut des cartes d'accent, et sur le côté des
   encadrés de témoignage, évoquait un papillon adhésif. On rend le contour
   uniforme : même épaisseur et même teinte que les trois autres côtés. */
.mcl-page .sej-card.accent{
  border-top-width:1px;
  border-top-color:rgba(36,71,91,0.14);
}
.mcl-page .testi{
  border-left-width:1px;
  border-left-color:rgba(36,71,91,0.14);
}
/* Même traitement pour le bloc d'accès rapide, non utilisé aujourd'hui mais
   porteur du même liseré : évite qu'il ne réapparaisse à la prochaine page. */
.mcl-page .quick-access{
  border-top-width:1px;
  border-top-color:rgba(36,71,91,0.14);
}

/* --------------------------------------------------------------------------
   14 août 2026 — RÉGLAGE DE LA TAILLE DU TEXTE
   Les boutons A− et A+ de la barre latérale posent un attribut sur <html>.
   Toutes les tailles de police du site étant exprimées en rem, elles suivent
   cette racine ; les marges, les images et la grille ne bougent pas.
   Le palier normal vaut 100 % : il respecte donc aussi le réglage de police
   par défaut du navigateur de l'usager.
   -------------------------------------------------------------------------- */
/* ==========================================================================
   L'ESPACEMENT VERTICAL DES SECTIONS
   --------------------------------------------------------------------------
   Un seul endroit pour régler la respiration entre deux sections. La maquette
   posait `84px` en dur, haut et bas, à TOUTES les largeurs : deux sections
   voisines étaient donc séparées de 168 px, sur un 14 pouces comme sur un
   téléphone de 390 px. Signalé par Raz sur « Qui sommes-nous », où des
   sections courtes — 55 mots pour 515 px de haut — se noyaient dans le vide.

   Ce qu'on obtient maintenant, écart total entre deux sections :

     1512 px → 128    (84 px de moins qu'avant)
     1280 px → 113
     1024 px →  96
      768 px →  96
      390 px →  96    (168 px avant : c'était le pire cas)

   La valeur ne suit PAS `--macl-echelle` : agrandir le texte doit agrandir le
   texte, pas creuser la page. C'est aussi le comportement d'avant.

   `.sej-section` reste à DEUX classes : un réglage de rembourrage fait dans
   l'éditeur Elementor s'écrit à trois et passe donc devant, page par page.
   ========================================================================== */
/* ==========================================================================
   L'ÉCHELLE DES TITRES — UNE SEULE DÉFINITION PAR NIVEAU
   --------------------------------------------------------------------------
   Le site portait DEUX systèmes parallèles, et personne ne pouvait le voir :

     titre de page      92 px sur 3 pages (CSS de page d'Elementor)
                     90,72 px sur 22 pages (ce thème)
     titre de section   52 px sur 26 pages · 56, 54 et 44 px sur les 3 autres

   1,3 px d'écart sur le titre de page : invisible, mais c'était le signe que
   deux définitions coexistaient. Le jour où l'une bouge, l'autre ne suit pas.
   Demandé par Raz le 27 août : « je veux qu'ils soient tous homogènes ».

   Les trois valeurs vivent désormais ICI, et ICI SEULEMENT. Le CSS de page des
   pages 31, 32 et 33 les consomme par `var()` — il garde donc la déclaration,
   donc l'éditeur garde la main, mais la valeur est commune.

   LES SIX GRANDES ARTÈRES PORTENT EXACTEMENT LA MÊME TAILLE.
   Accueil, L'hôpital, Soins et services, Préparer son séjour, Carrières et
   bénévolat, Droits — demandé par Raz le 27 août. Quatre ont un titre pleine
   largeur ; les deux autres ont un chapeau photo et reçoivent donc la classe
   `sh-artere` (voir `_to_delete/macl-artere-hero.php`), qui les ramène sur
   `--macl-titre-page`.

   `5.5vw` et non `6vw` : mesuré sur les six, à dix largeurs, le plafond avant
   débordement est fixé par CARRIÈRES — 68 px à 1180, 77 px à 1280, 97 px à
   1512. `6vw` passait au-dessus à 1180 px. `5.5vw` laisse 3 px de marge au
   point le plus serré. Vérifié : 102 combinaisons, 0 défaut.

   LES AUTRES PAGES À DEUX COLONNES NE PEUVENT PAS SUIVRE, et c'est mesuré, pas
   supposé : la même valeur y produit 5 défauts — `/carrieres/stages/` déborde
   à 1220, 1180 et 1150 px, `/faq/` vole de la largeur à son chapô à 1150 et
   1100 px. Leur titre se dimensionne donc sur SA PROPRE COLONNE, en `cqi`, et
   non sur la fenêtre. C'est le correctif de fond : `vw` mesure la fenêtre, or
   ces titres vivent dans une colonne — c'est précisément ce qui avait fait
   déborder « enseignement » (624 px réclamés pour 612) le 26 août. Le plafond
   de 5 rem les garde sous les artères.
   ========================================================================== */
:root{
  --macl-titre-page:         clamp(2.875rem, calc(5.5vw * var(--macl-echelle, 1)), 5.75rem); /*  83 px à 1512 */
  --macl-titre-page-colonne: clamp(2.25rem,  13cqi,                                  5rem);   /*  ~79 px  */
  --macl-titre-section:      clamp(2.125rem, calc(3.8vw * var(--macl-echelle, 1)), 3.25rem); /*  52 px */
}

/* ==========================================================================
   LA LIGNE DE DÉPART DES PAGES
   --------------------------------------------------------------------------
   Signalé par Raz : « on dirait que chaque page ne commence pas au même
   niveau ». Mesuré sur les 40 pages, position du fil d'Ariane :

     72 px  →  35 pages   ← la norme
     66 px  →  /soins/ et /sejour/        (couche `.hmc-main`, 34 px de haut)
     48 px  →  innovation, gouvernance, agrements  (`.sh-hero--duo`, 16 px)

   Une seule valeur désormais, et un seul endroit pour la changer. Le fil
   d'Ariane, le surtitre et le titre partent donc de la même ligne d'une page
   à l'autre.
   ========================================================================== */
/* `--macl-fil-reserve` : la distance entre le HAUT du fil d'Ariane et le HAUT
   du surtitre. Mesuré sur les 35 pages de la norme : 117 px. Sur la couche
   `.hmc-main` il n'y en avait que 44, parce que le widget du fil d'Ariane y
   fait 12 px de haut contre 37 ailleurs — d'où des pages qui commençaient
   visiblement plus haut. On réserve la hauteur plutôt que de compenser par une
   marge inventée page par page. */
:root{ --macl-haut-page:40px; --macl-fil-reserve:117px; --macl-surtitre-reserve:57px; }

/* 26 px de gouttière du chapeau + 6 px de marge du surtitre : la réserve porte
   sur le reste. Deux classes — un réglage de l'éditeur passe devant. */
.hmc-hero .macl-fil{min-height:calc(var(--macl-fil-reserve) - 26px - 6px)}

/* Même principe pour le surtitre : 57 px entre son HAUT et le HAUT du titre sur
   les pages de la norme, contre 37 sur la couche `.hmc-main` — son surtitre y
   fait 11 px de haut contre 17. Moins 26 px de gouttière. */
.hmc-hero .hmc-kicker{min-height:calc(var(--macl-surtitre-reserve) - 26px)}

/* PRÉPARER SON SÉJOUR — le bloc de texte ne se centre plus sur la photo.
   Le chapeau de cette page est une grille à `align-items:center` : le texte se
   plaçait au MILIEU d'une photo de 360 px, et le surtitre tombait à 247 au lieu
   de 189. Même cause que sur `.sh-hero--duo`, corrigée le même jour — la ligne
   de départ d'une page ne doit pas dépendre de la hauteur de son image.
   Les deux lignes suivantes remettent le bloc au même rythme que les 35 autres
   pages : le rembourrage de 10 px et la gouttière de 20 px du sous-conteneur
   étaient les 6 px et les 10 px qui manquaient. */
.hmc-hero .hmc-hero-txt{padding-top:0; row-gap:26px}
.hmc-main .hmc-hero:has(.hmc-hero-photo),
.hmc-main .hmc-hero:has(.hmc-hero-photo) > .e-con-inner{align-items:start !important}

:root{ --macl-esp-section:clamp(48px, 4.4vw, 64px); }

html{font-size:100%; --macl-echelle:1}
html[data-macl-texte="grand"]{font-size:112.5%; --macl-echelle:1.125}      /* 18 px si la base est 16 */
html[data-macl-texte="tres-grand"]{font-size:125%; --macl-echelle:1.25}    /* 20 px */

/* --macl-echelle agit sur les titres fluides, dont la taille dépend de la
   largeur de fenêtre et non de la racine. À 1, le rendu est celui d'origine. */

/* La barre latérale garde sa largeur fixe : son texte ne doit pas grossir au
   point de déborder. Elle conserve donc la taille de base. */
html[data-macl-texte] .hmc-sidebar,
html[data-macl-texte] .macl-sidebar{font-size:16px}

/* A− et A+ sont des incréments, pas des états : ils ne s'allument donc pas.
   Arrivés à la borne, ils s'estompent — c'est aria-disabled qui le dit aux
   lecteurs d'écran, et l'opacité qui le montre. */
.hmc-aaa-b .elementor-button[aria-disabled="true"]{opacity:.45;cursor:default}

/* Sur téléphone, les très grands titres d'affichage sont déjà proches de la
   largeur d'écran : les agrandir encore les ferait déborder. On plafonne donc
   leur échelle, sans toucher au texte courant, qui lui continue de grandir. */
@media (max-width:600px){
  html[data-macl-texte]{--macl-echelle:1}
  /* Et on adoucit les paliers eux-mêmes : sur 390 px de large, +25 % de texte
     ne tient pas dans une mise en page déjà dense. */
  html[data-macl-texte="grand"]{font-size:106.25%}      /* 17 px */
  html[data-macl-texte="tres-grand"]{font-size:112.5%}  /* 18 px */
}

/* ==========================================================================
   MODE CONTRASTE RENFORCÉ (bouton AAA de la barre latérale)
   Objectif : 7:1 pour le texte courant, 4,5:1 pour le grand texte.
   Le mode est facultatif et n'altère jamais l'affichage par défaut : la charte
   de l'établissement reste intacte tant que l'usager n'active pas le bouton.
   ========================================================================== */

/* 1. La charte est presque entièrement bâtie sur des variables : les redéfinir
      suffit à propager le renforcement partout. */
html[data-macl-contraste="aaa"]{
  --canvas:#FFFFFF;
  --paper:#FFFFFF;
  --ink:#000000;
  --ink-soft:#1F1F1F;
  --rule:#0B1620;
  --navy-900:#0B1620;
  --navy-800:#12232E;
  --navy-700:#1B3140;
  --navy-500:#2C4757;
  --magenta-500:#6E0F57;
  --magenta-700:#4F0A3E;
  --magenta-50:#F6E9F2;
  --magenta-200:#E8CADF;
  --magenta-100:#F6E4EF;
  --teal-700:#0F4A26;
  --teal-600:#155F30;
  --teal-500:#155F30;
  --teal-100:#DFF2E5;
  --teal-50:#EFF8F2;
  --peach-700:#5E3100;
  --peach-500:#7A4100;
  --peach-100:#FBEBDA;
  --lime-700:#3F4700;
  --lime-500:#4A5400;
  --lime-200:#E4E9C0;
  --lime-100:#F3F6E0;
  --bleu-500:#083A78;
  --bleu-100:#DCE8F7;
  --cyan-500:#0A4D63;
  --cyan-100:#DDF0F6;
}

/* 2. Les valeurs écrites en dur dans la maquette, que les variables
      n'atteignent pas. Elles concernent les pastilles de programme. */
html[data-macl-contraste="aaa"] .hmc-steps.is-read .hmc-step .n,
html[data-macl-contraste="aaa"] .sej-steps.is-read .sn,
html[data-macl-contraste="aaa"] .is-read .sn{background:#7A4100}
html[data-macl-contraste="aaa"] .hmc-steps.is-pall .hmc-step .n,
html[data-macl-contraste="aaa"] .sej-steps.is-pall .sn,
html[data-macl-contraste="aaa"] .is-pall .sn{background:#6E0F57}
html[data-macl-contraste="aaa"] .hmc-prog.is-read .lbl,
html[data-macl-contraste="aaa"] .prog-lbl--readap{background:#FBEBDA;color:#5E3100}
html[data-macl-contraste="aaa"] .hmc-prog.is-pall .lbl,
html[data-macl-contraste="aaa"] .prog-lbl--pall{background:#F6E4EF;color:#4F0A3E}

/* 3. Les liens ne se distinguent plus par la seule couleur. */
html[data-macl-contraste="aaa"] .mcl-page a,
html[data-macl-contraste="aaa"] .hmc-main a{text-decoration:underline;text-underline-offset:3px}

/* 3 bis. …mais pas ce qui se reconnaît déjà comme cliquable par sa forme.
   Signalé par Raz le 5 octobre 2026 : en AAA, les trois cartes « Je cherche des
   soins / Je veux travailler ici / Je veux donner de mon temps » avaient TOUT
   leur texte souligné, titre et paragraphe, d'un trait magenta.
   Deux causes. La carte entière est un seul lien (un conteneur Elementor rendu
   en <a class="e-con">) : la règle ci-dessus soulignait donc tout ce qu'elle
   contient. Et un soulignement hérité garde la couleur du lien qui le porte —
   le magenta — même sous un texte bleu marine.
   Le critère 1.4.1 vise les liens noyés dans un texte, qu'on ne distinguerait
   que par la couleur. Une carte encadrée et fléchée, un bouton en pastille, une
   puce, une entrée de rail de navigation se distinguent par leur forme : les
   souligner n'apporte rien et gêne la lecture. Relevé fait sur les 34 pages
   avant d'écrire la liste ci-dessous ; les liens dans le texte, le fil
   d'Ariane et les liens « → » restent soulignés. */
html[data-macl-contraste="aaa"] .mcl-page a.e-con,
html[data-macl-contraste="aaa"] .hmc-main a.e-con,
html[data-macl-contraste="aaa"] .mcl-page a.elementor-button,
html[data-macl-contraste="aaa"] .hmc-main a.elementor-button,
html[data-macl-contraste="aaa"] .mcl-page a.macl-doc-carte,
html[data-macl-contraste="aaa"] .mcl-page a.btn-text,
html[data-macl-contraste="aaa"] .mcl-page a.btn-solid,
html[data-macl-contraste="aaa"] .mcl-page a.elementor-icon,
html[data-macl-contraste="aaa"] .mcl-page .macl-docs-rail a,
html[data-macl-contraste="aaa"] .mcl-page .rch-liens a{text-decoration:none}

/* 4. Focus nettement visible, conformément au critère 2.4.13. */
html[data-macl-contraste="aaa"] a:focus-visible,
html[data-macl-contraste="aaa"] button:focus-visible,
html[data-macl-contraste="aaa"] [role="button"]:focus-visible{
  outline:4px solid #000;
  outline-offset:2px;
}

/* 5. État actif du bouton AAA, même remarque sur le !important. */
.hmc-aaa-b .elementor-button[data-macl-actif="oui"]{
  background:#000 !important;color:#fff !important;border-color:#000 !important;
}
.hmc-aaa-b .elementor-button[data-macl-actif="oui"] .elementor-button-text{color:#fff !important}

/* 6. Les puces de navigation par ancre reposaient sur un fond très clair :
      on l'assombrit et on fixe la couleur du libellé, que le widget Bouton
      hérite de son conteneur. Les boutons pleins (btn, btn-solid) ne sont pas
      touchés : leur libellé est blanc sur un fond déjà foncé. */
html[data-macl-contraste="aaa"] .mcl-page .sej-jump .elementor-button,
html[data-macl-contraste="aaa"] .mcl-page .sej-jump .elementor-button-text{color:#12232E}
html[data-macl-contraste="aaa"] .mcl-page .sej-jump .elementor-button{background:#E7ECEF}
html[data-macl-contraste="aaa"] .mcl-page .sej-jump .elementor-button:hover{background:#12232E;color:#fff}
html[data-macl-contraste="aaa"] .mcl-page .hub-card .more,
html[data-macl-contraste="aaa"] .mcl-page .sej-num,
html[data-macl-contraste="aaa"] .mcl-page .ck,
html[data-macl-contraste="aaa"] .mcl-page .kicker{color:#4F0A3E}

/* 7. Le fond crème est fixé en dur dans le thème pour les pages courtes :
      il faut le neutraliser explicitement dans ce mode. */
html[data-macl-contraste="aaa"],
html[data-macl-contraste="aaa"] body,
html[data-macl-contraste="aaa"] body.page-template-elementor_header_footer{background-color:#FFFFFF}

/* 8. Séparateurs du fil d'Ariane : posés à 25 % de noir, ils tombaient à 1,83:1.
      Purement décoratifs, mais autant les rendre lisibles. */
html[data-macl-contraste="aaa"] .mcl-page .crumbs .sep,
html[data-macl-contraste="aaa"] .macl-fil .sep{color:#1F1F1F}

/* 9. Petits libellés posés en transparence (40 à 50 % de noir bleuté) :
      entre 2,33:1 et 2,61:1. On les rend opaques. */
html[data-macl-contraste="aaa"] .mcl-page .hub-card .hn,
html[data-macl-contraste="aaa"] .mcl-page .cs-label{color:#1F1F1F}
html[data-macl-contraste="aaa"] .mcl-page .sej-hour-card li::before{color:#1F1F1F}

/* ==========================================================================
   10. PAGES ACCUEIL, SOINS ET SERVICES, PRÉPARER SON SÉJOUR
   Ces trois pages précèdent la présente intégration : leurs couleurs sont
   écrites en dur dans leur propre CSS, hors du système de variables. Le mode
   renforcé doit donc les reprendre une à une. La charte par défaut n'est pas
   modifiée : ces règles ne s'appliquent que si l'usager active le bouton.
   ========================================================================== */

/* Le sélecteur est répété à dessein : le CSS propre à ces trois pages
   emploie des sélecteurs à trois classes assortis de !important. Répéter
   l'attribut relève la spécificité juste ce qu'il faut pour passer devant,
   sans recourir à une surcharge plus large qui déborderait du mode AAA. */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-footer .hmc-foot-h{color:#5E3100 !important}          /* 3,02 -> 9,40 */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-step-n{color:#7A4100 !important}                       /* 2,30 -> 8,13 */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-prog-textlink{color:#5E3100 !important}                /* 4,45 -> 10,96 */

html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-svc-pill.is-on{background:#7A4100 !important;border-color:#7A4100 !important;color:#fff !important}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-svc-pill.pill-pall.is-on{background:#6E0F57 !important;border-color:#6E0F57 !important}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-svc-cardtag{color:#000 !important}                     /* 6,54 -> 9,12 */

                    /* 1,94 et 2,38 -> 7,74 et 6,34 */


html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-tile.hmc-quote,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-quote-txt{background:#6E0F57 !important}               /* 6,34 -> 11,24 */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-qa{color:#fff !important}


/* Les vignettes de l'accueil posent un texte blanc sur une photographie. La
   maquette prévoit déjà un voile dégradé (.hmc-tile::after, navy à 82 % en
   bas) : dans le pire des cas — une photo entièrement blanche — le composite
   vaut #3E4F5D, soit 8,46:1 pour du blanc. Le seuil AAA est donc atteint sans
   rien ajouter. L'absence de règle ici est volontaire : voir le journal.
   Seule exception : la pastille de rubrique (SOINS, HÔPITAL, CARRIÈRES) pose
   du blanc sur un fond blanc à 15 %, qui éclaircit le voile — 6,25:1, sous le
   seuil pour du petit texte. On la rend opaque, avec un texte foncé : la
   lisibilité ne dépend plus ni de la photo ni du voile. */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-badge .elementor-heading-title{
  background:#FFFFFF !important;
  color:#0B1620 !important;                 /* 6,25 -> 18,26 */
}

/* Sur ces trois pages, la couleur du texte est portée par le titre ou le
   libellé à l'intérieur du widget, pas par le conteneur qui porte la classe
   de la maquette. Il faut donc viser aussi les enfants. */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-footer .hmc-foot-h .elementor-heading-title{color:#5E3100 !important}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-step-n .elementor-heading-title{color:#7A4100 !important}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-prog-textlink .elementor-button-text,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-prog-textlink .elementor-heading-title{color:#5E3100 !important}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-prog-solid .elementor-button-text,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-btn-invert .elementor-button-text,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-svc-pill.is-on .elementor-button-text,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-svc-pill.is-on .elementor-heading-title,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-badge-filled .elementor-heading-title{color:#fff !important}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-svc-cardtag .elementor-heading-title{color:#000 !important}

/* Intertitres et étiquettes des encadrés latéraux, teintés par programme. */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-side-h,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-pc-lbl{color:#5E3100 !important}            /* 3,72 -> 9,16 */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .prog-pall .hmc-side-h,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-sidecard.prog-pall .hmc-side-h,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .prog-pall .hmc-pc-lbl,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-pc.prog-pall .hmc-pc-lbl{color:#4F0A3E !important}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-side-h .elementor-heading-title,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-pc-lbl .elementor-heading-title{color:#5E3100 !important}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .prog-pall .hmc-side-h .elementor-heading-title,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .prog-pall .hmc-pc-lbl .elementor-heading-title{color:#4F0A3E !important}

/* Certains habillages sont posés sur un enfant du composant plutôt que sur
   le composant lui-même. On neutralise ces enfants : ils héritent alors
   du couple couleur/fond corrigé ci-dessus. */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-prog-solid *,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-svc-pill.is-on *,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-badge-filled *,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-btn-invert *,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-step-n *,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-svc-cardtag *{background-color:transparent !important;color:inherit !important}

/* ==========================================================================
   11. ÉLÉMENTS COMMUNS À TOUTES LES PAGES
   La barre latérale et le lien d'évitement sont posés par le thème, hors des
   pages elles-mêmes. Leur apparence par défaut n'est pas modifiée : ces
   règles ne s'appliquent que dans le mode renforcé.
   ========================================================================== */
html[data-macl-contraste="aaa"] .skip-link{color:#12232E !important}            /* 4,96 -> 16,08 */
/* L'onglet actif du menu latéral est vert moyen sur vert très pâle (4,72:1),
   et son liseré de gauche n'atteint pas non plus les 3:1 exigés pour les
   éléments non textuels. Le sélecteur reprend celui du thème, sinon il perd :
   celui-ci compte six classes et emploie !important. */
html[data-macl-contraste="aaa"] .hmc-sidebar .hmc-nav .elementor-nav-menu > li.current-page-ancestor.current-page-ancestor > a.elementor-item,
html[data-macl-contraste="aaa"] .hmc-sidebar .hmc-nav .elementor-nav-menu > li.current-page-parent.current-page-parent > a.elementor-item,
html[data-macl-contraste="aaa"] .hmc-sidebar .hmc-nav .elementor-nav-menu > li.current-menu-ancestor.current-menu-ancestor > a.elementor-item,
html[data-macl-contraste="aaa"] .hmc-sidebar .hmc-nav .elementor-nav-menu > li.current-menu-item.current-menu-item > a.elementor-item,
html[data-macl-contraste="aaa"] .elementor-nav-menu li.current-menu-item.current-menu-item > a.elementor-item,
html[data-macl-contraste="aaa"] .elementor-nav-menu li.current-page-ancestor.current-page-ancestor > a.elementor-item{
  color:#0F4A26 !important;                 /* 4,72 -> 9,31 */
  border-left-color:#0F4A26 !important;     /* liseré : 2,4 -> 9,31 */
}


/* --------------------------------------------------------------------------
   14 août 2026 — PUCES DE SUGGESTION (page Recherche)
   Dans la maquette, .chip-list est une boîte flexible dont chaque puce est un
   élément. Elementor a regroupé les puces dans un seul widget Titre, où elles
   redeviennent des éléments en ligne : une puce qui passe sur deux lignes voit
   alors sa boîte, gonflée par le rembourrage, empiéter sur la ligne suivante —
   visible à 390 px dès le premier palier d'agrandissement.
   On rend sa disposition d'origine au conteneur réel.
   -------------------------------------------------------------------------- */
.mcl-page .chip-list .elementor-heading-title,
.mcl-page .prog-tags .elementor-heading-title{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  align-items:flex-start;
}

/* --------------------------------------------------------------------------
   14 août 2026 — BANDEAU D'AVIS, PLAGE DES TABLETTES
   Entre 741 et 900 px de large, le bouton « En savoir plus » était comprimé
   par la boîte flexible du bandeau, mais son libellé, lui, ne rétrécit pas :
   il débordait de sa boîte et passait sous la croix de fermeture, placée en
   absolu à 40 px du bord. Un clic sur la flèche fermait le bandeau au lieu de
   suivre le lien. On empêche la compression du bouton.
   -------------------------------------------------------------------------- */
.hmc-avisbar .hmc-avisbar-btn{flex:0 0 auto}

/* --------------------------------------------------------------------------
   14 août 2026 — BOUTONS PLEINS : PEINDRE LA PASTILLE, PAS SON ENVELOPPE
   Signalé par Raz : en contraste renforcé, certains boutons devenaient carrés.
   La classe de la maquette est posée sur l'enveloppe du widget Elementor, qui
   n'a aucun arrondi ; l'arrondi est sur le lien qu'elle contient. Peindre
   l'enveloppe dessinait donc un carré derrière la pastille — pastille que la
   remise à zéro des enfants avait par ailleurs vidée de son fond.
   On laisse l'enveloppe transparente et on peint le bouton lui-même.
   -------------------------------------------------------------------------- */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-btn-invert,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-prog-solid,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-don{background:transparent !important}

html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-btn-invert .elementor-button,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-don .elementor-button{
  background:#6E0F57 !important;border-color:#6E0F57 !important;color:#fff !important}   /* 11,24:1 */

html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-prog-solid .elementor-button{
  background:#7A4100 !important;border-color:#7A4100 !important;color:#fff !important}   /* 8,13:1 */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .prog-pall .hmc-prog-solid .elementor-button,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-prog--pall .hmc-prog-solid .elementor-button{
  background:#6E0F57 !important;border-color:#6E0F57 !important}

/* Même correction pour les pastilles de rubrique : l'arrondi y est porté par
   le titre interne (un h6), pas par l'enveloppe. */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-badge-filled{background:transparent !important}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-badge-filled .elementor-heading-title{background:#12232E !important;color:#fff !important}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-badge-filled.b-lime .elementor-heading-title{background:#3F4700 !important}     /* 9,94:1 */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-badge-filled.b-magenta .elementor-heading-title{background:#6E0F57 !important}  /* 11,24:1 */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-badge-filled.b-teal .elementor-heading-title{background:#155F30 !important}     /* 7,74:1 */

/* Surlignes d'accroche (.hmc-eyebrow) : le magenta y est écrit sous la forme
   var(--mag, #AD1E87) — mais --mag n'est défini nulle part, c'est donc la
   valeur de repli qui s'applique, à 6,34:1. On définit la variable, ce qui
   couvre d'un coup tous les emplois de cette famille, et on vise aussi la
   règle nommément, sa spécificité étant de trois classes. */
html[data-macl-contraste="aaa"]{--mag:#4F0A3E;--mag-700:#4F0A3E;--mag-500:#6E0F57}
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-eyebrow,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-eyebrow p,
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .hmc-eyebrow .elementor-heading-title{
  color:#4F0A3E !important;   /* 6,34 -> 14,53 */
}

/* --------------------------------------------------------------------------
   14 août 2026 — IMAGES : REMPLIR LE CADRE ARRONDI
   Signalé par Raz : dans plusieurs sections, les photographies avaient des
   coins carrés alors que la maquette les arrondit.
   La cause n'était pas le rayon, qui était bien là — .sh-media l'applique à
   24 px — mais un rembourrage de 10 px que le conteneur Elementor ajoute par
   défaut à .duo. L'image se retrouvait en retrait de 10 px à l'intérieur du
   cadre arrondi : ses propres coins, carrés, restaient donc visibles.
   La maquette ne prévoit aucun rembourrage ici. On le retire, et .duo hérite
   du rayon de son cadre pour que le rognage suive quel que soit le contexte
   (.sh-media à 24 px, .hero-tile à 18 px).
   -------------------------------------------------------------------------- */
.mcl-page .duo{
  padding:0;
  border-radius:inherit;
}

/* --------------------------------------------------------------------------
   14 août 2026 — RECHERCHE : HABILLER LES BLOCS NATIFS
   Le champ et la liste de résultats sont des widgets d'Elementor Pro, qui
   arrivent avec leur habillage par défaut. On leur applique celui de la
   maquette : le champ reprend l'aspect de .searchbar .box, le bouton celui
   de .btn, et les résultats celui des cartes .sej-card.

   Les sélecteurs visent le widget « Search » actuel (classes e-search-*).
   L'ancien widget « Search Form », déprécié par Elementor, employait des
   classes elementor-search-form__* ; il n'est plus utilisé sur le site.
   -------------------------------------------------------------------------- */
.mcl-page .searchbar .e-search-form{
  display:flex; gap:10px; align-items:stretch; max-width:640px;
}
.mcl-page .searchbar .e-search-input-wrapper{flex:1; min-width:0}
.mcl-page .searchbar input.e-search-input{
  width:100%;
  font-family:var(--macl-titre); font-size:1rem; color:var(--ink);
  background:var(--paper);
  border:1.5px solid rgba(36,71,91,0.22);
  border-radius:100px; padding:14px 22px;
}
.mcl-page .searchbar input.e-search-input::placeholder{color:var(--navy-500)}
.mcl-page .searchbar input.e-search-input:focus{
  outline:2px solid var(--navy-800); outline-offset:2px; border-color:var(--navy-800);
}
.mcl-page .searchbar button.e-search-submit{
  flex:0 0 auto;
  font-family:var(--macl-titre); font-weight:600; font-size:0.9375rem;
  background:var(--navy-800); color:#fff;
  border:2px solid var(--navy-800); border-radius:100px;
  padding:14px 26px; cursor:pointer; transition:200ms cubic-bezier(0.2,0.7,0.2,1);
}
.mcl-page .searchbar button.e-search-submit:hover{
  background:transparent; color:var(--navy-800);
}

/* Liste des résultats : une carte par page trouvée. */
.mcl-page .res-liste .elementor-posts{gap:18px}
.mcl-page .res-liste article.elementor-post{
  background:var(--paper);
  border:1px solid rgba(36,71,91,0.13);
  border-radius:16px;
  padding:22px 24px;
}
.mcl-page .res-liste .elementor-post__title{
  font-family:var(--macl-titre); font-size:1.125rem; line-height:1.25; margin:0 0 8px;
}
.mcl-page .res-liste .elementor-post__title a{color:var(--navy-800)}
.mcl-page .res-liste .elementor-post__excerpt p{
  font-size:0.9375rem; line-height:1.55; color:var(--ink-soft); margin:0;
}
.mcl-page .res-liste .elementor-posts-nothing-found{
  background:var(--paper);
  border:1px solid rgba(36,71,91,0.13);
  border-radius:16px;
  padding:22px 24px;
  font-size:0.9375rem; line-height:1.55; color:var(--ink-soft);
}

/* --------------------------------------------------------------------------
   16 août 2026 — SUGGESTIONS PENDANT LA FRAPPE
   Le panneau déroulant du widget Search affiche un modèle de boucle. On lui
   donne l'aspect des cartes du site, et une cible de clic pleine largeur.
   -------------------------------------------------------------------------- */
.mcl-page .searchbar .e-search-results-container{
  background:var(--paper);
  border:1px solid rgba(36,71,91,0.16);
  border-radius:16px;
  box-shadow:0 14px 34px rgba(20,40,58,0.14);
  overflow:hidden;
  margin-top:8px;
}
.mcl-page .searchbar .e-search-results{display:block}

.mcl-page .sugg-item{
  display:block;
  padding:14px 18px;
  border-bottom:1px solid rgba(36,71,91,0.10);
  text-decoration:none;
  transition:background 140ms;
}
.mcl-page .sugg-item:last-child{border-bottom:0}
.mcl-page .sugg-item:hover,
.mcl-page .sugg-item:focus-visible{background:var(--teal-50)}

/* Le titre de la suggestion est posé en <div> et non en <h6> : ce n'est pas
   un titre de section mais le libellé d'un lien, et cinq <h1> surgissant à
   chaque frappe désorganisaient la structure de la page pour un lecteur
   d'écran. Conséquence : la règle du point 4 de mcl-natif.css, qui fait
   hériter les libellés en <div> de la mise en forme de leur conteneur, prend
   le dessus. On la devance en nommant la balise, ce qui suffit à passer
   devant en spécificité.

   La police reste écrite var(--macl-titre), comme pour tous les titres du site :
   la suggestion doit suivre la même typographie que la page, quelle que soit
   la valeur retenue pour cette variable. */
.mcl-page .sugg-titre div.elementor-heading-title,
.mcl-page .sugg-titre .elementor-heading-title{
  font-family:var(--macl-titre);
  font-weight:600; font-size:1rem; line-height:1.25;
  letter-spacing:normal; text-transform:none;
  color:var(--navy-800); margin:0 0 3px;
}
.mcl-page .sugg-extrait{
  font-size:0.84375rem; line-height:1.45; color:var(--ink-soft);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* Message et indicateur du panneau */
.mcl-page .searchbar .e-search-results-container .e-search-nothing-found,
.mcl-page .searchbar .e-search-results-container [class*="nothing-found"]{
  padding:16px 18px; font-size:0.9375rem; color:var(--ink-soft);
  text-align:left;
}

/* Le panneau reprend la largeur de la barre entière (champ + bouton) plutôt
   que celle du seul champ : sans cela les titres se coupaient en deux mots.
   Il reste dans la fenêtre sur les petits écrans. */
.mcl-page .searchbar .e-search-results-container{
  width:min(640px, calc(100vw - 2rem));
  right:auto;
}
/* L'étiquette du champ, réservée aux lecteurs d'écran, est un enfant du
   conteneur en ligne : vide, elle occupait tout de même son écart de 10 px et
   décalait le panneau vers la gauche par rapport au champ. On la sort du flux
   sans la masquer — elle doit rester lisible par les lecteurs d'écran. */
.mcl-page .searchbar .e-search-label{position:absolute}

/* Au repos le panneau est vide mais garde son encadrement : il restait un
   filet gris de 2 px sous le champ, visible sur la page de résultats. On
   efface l'encadrement tant que la liste ne contient rien, sans retirer
   l'élément — il porte la zone de mise à jour annoncée aux lecteurs d'écran. */
.mcl-page .searchbar .e-search-results-container:has(.e-search-results:empty){
  border:0; background:transparent; box-shadow:none; margin-top:0;
}

/* --------------------------------------------------------------------------
   16 août 2026 — LIGNES CLÉ-VALEUR, VALEUR ÉCRASÉE
   Repéré par le balayage responsive après le retour à Poppins, plus large que
   la police de repli qui s'affichait jusque-là : sur /droits/maltraitance/ à
   1024 et 1280 px avec le texte agrandi, le numéro « 1 888 489-2287 » se
   retrouvait dans une colonne de 44 px, empilé sur trois lignes.

   La cause n'est pas la police mais la rangée : deux éléments côte à côte,
   sans repli, la valeur rétrécissant jusqu'à la largeur d'un mot. Plutôt que
   d'interdire à nouveau la coupure — ce qui ferait déborder les adresses
   courriel, motif du point 8 de mcl-natif.css — on autorise la rangée à
   passer à la ligne : quand les deux ne tiennent pas ensemble, la valeur
   descend d'une ligne, toujours alignée à droite, et garde sa largeur.
   -------------------------------------------------------------------------- */
.mcl-page .sej-kv .row{flex-wrap:wrap}
.mcl-page .sej-kv .row > .k{flex:1 1 auto}
.mcl-page .sej-kv .row > .v{flex:0 0 auto; margin-left:auto; max-width:100%}

/* --------------------------------------------------------------------------
   16 août 2026 — CITATION ROGNÉE SUR LA MOSAÏQUE D'ACCUEIL
   Défaut préexistant, sans rapport avec la police : la mosaïque du héros pose
   des rangées de hauteur fixe (230 px, 210 px sous 1024, 180 px sous 560) et
   les vignettes rognent ce qui dépasse. La vignette de citation contient du
   texte : à 1280 px elle perdait déjà 9 px de son attribution, et jusqu'à
   58 px au palier de texte le plus grand — soit deux lignes.

   La hauteur devient un plancher et non un plafond. Les vignettes-images, qui
   n'ont pas de contenu, restent à la hauteur prévue ; seule celle qui déborde
   grandit, et la mosaïque suit.
   -------------------------------------------------------------------------- */
/* Le sélecteur compte trois classes : la règle d'origine en emploie deux avec
   !important dans la plage tablette, et l'ordre de chargement des deux
   feuilles n'est pas garanti. `.elementor` enveloppe toute page Elementor. */
.elementor .hmc-main .hmc-hero-grid{grid-auto-rows:minmax(230px,auto) !important}
@media (max-width:1024px){
  .elementor .hmc-main .hmc-hero-grid{grid-auto-rows:minmax(210px,auto) !important}
}
@media (max-width:560px){
  .elementor .hmc-main .hmc-hero-grid{grid-auto-rows:minmax(180px,auto) !important}
}

/* --------------------------------------------------------------------------
   16 août 2026 — MOTS COUPÉS EN DEUX LIGNES
   Signalé par Raz sur le titre de Carrières : « engagem / ent ».

   Origine : le point 8b de mcl-natif.css posait `overflow-wrap:anywhere` sur
   tous les widgets, pour qu'une adresse courriel puisse se replier au lieu de
   déborder d'une carte étroite. Mais « anywhere » ne se contente pas
   d'autoriser la coupure : il abaisse aussi la largeur minimale intrinsèque de
   l'élément à un seul caractère. Une colonne de grille ou de boîte flexible
   peut alors se rétrécir bien en deçà du mot le plus long, et le navigateur
   coupe au milieu des mots — y compris dans un titre de 86 px.

   `break-word` ne suffit pas : il coupe lui aussi tout mot qui ne tient pas sur
   sa ligne, et le mot ne tenait justement plus. Seul `normal` rétablit la
   largeur minimale et rend aux colonnes la place qu'il faut.

   Mesuré sur les 41 pages, aux cinq largeurs et aux trois paliers de texte :
   132 mots coupés avant, et aucun débordement n'apparaît après.

   La coupure reste permise là où elle sert : adresses courriel, numéros de
   téléphone, et valeurs des lignes clé-valeur — des chaînes sans espace qui
   déborderaient sur un écran de téléphone.
   -------------------------------------------------------------------------- */
.mcl-page .elementor-widget{overflow-wrap:normal}

.mcl-page a[href^="mailto:"],
.mcl-page a[href^="tel:"],
.mcl-page .sej-kv .v,
.mcl-page .sej-kv .v *{overflow-wrap:anywhere}

/* Sur un écran de téléphone, au palier de texte le plus grand, certains mots
   longs — « confidentialité » — restent plus larges que la colonne, même une
   fois la largeur minimale rétablie. Interdire toute coupure les ferait
   déborder de quelques pixels. On autorise alors la césure typographique :
   le site étant déclaré en fr-CA, le navigateur coupe aux endroits permis par
   la langue et dessine un trait d'union — « confiden-tialité » et non
   « confidentiali té ». Réservé aux titres, seuls assez gros pour déborder. */
@media (max-width:600px){
  .mcl-page h1, .mcl-page h2,
  .mcl-page h1 *, .mcl-page h2 *{hyphens:auto; -webkit-hyphens:auto}
}

/* --------------------------------------------------------------------------
   17 août 2026 — SÉLECTEUR DE PROGRAMME « JE CONSULTE POUR »
   Le même bloc de la maquette existe sur deux pages, produit par deux couches
   différentes, et chacune avait son défaut.

   1. « Nos services cliniques » (.mcl-page). La maquette pose le titre à
      gauche et le sélecteur à droite, sur une seule rangée :
      `.clin-head-top{display:flex; justify-content:space-between}`. La règle
      était bien présente, mais sans effet : un conteneur Elementor vaut
      `width:100%` par défaut, si bien que les deux enfants occupaient chacun
      toute la rangée et passaient à la ligne. On leur rend une largeur fondée
      sur leur contenu — le texte prend la place restante, le sélecteur la
      sienne. Sous 820 px la maquette repasse en colonne : on restitue alors
      la pleine largeur.
   -------------------------------------------------------------------------- */
.mcl-page .clin-head-top > .e-con{width:auto}
.mcl-page .clin-head-top > .htext{flex:1 1 auto; min-width:0}
.mcl-page .clin-head-top > .clin-switch{flex:0 0 auto}
@media (max-width:820px){
  .mcl-page .clin-head-top > .e-con{width:100%}
}

/* 2. « Soins et services » (.hmc-main). La disposition y était déjà juste,
      mais le sélecteur avait été construit à une échelle plus petite que la
      maquette : pastilles de 29 px dans une capsule de 40, contre 40 dans 52.
      D'où l'impression, signalée par Raz, que la pastille active touche le
      bord du fond blanc — sur une forme arrondie, un jeu égal paraît toujours
      plus serré aux extrémités qu'en haut et en bas.

      On reprend les valeurs de la maquette : capsule à 5 px de marge
      intérieure, écart de 4 px, libellés à 11 px sur 22 px. La police est
      exprimée en rem pour continuer de suivre les boutons A− et A+.

      Le CSS de la page 32 écrit ces valeurs avec !important : il faut donc
      répondre de la même façon, sans quoi la règle passe inaperçue. */
.elementor .hmc-main .hmc-svc-seg{padding:5px !important; gap:4px}
.elementor .hmc-main .hmc-svc-pill .elementor-button{
  padding:11px 22px !important;
  font-size:0.9375rem !important;
  font-weight:600;
}

/* Le surtitre « Je consulte pour » s'aligne à DROITE, sur le bord du sélecteur
   qu'il surmonte — demande de Raz. Il ne doit ni dépasser la capsule blanche ni
   s'arrêter avant elle : la règle porte donc sur l'enveloppe du widget, dont la
   largeur est exactement celle de la capsule. */
.elementor .hmc-main .hmc-svc-toggle-l,
.elementor .hmc-main .hmc-svc-toggle-l .elementor-heading-title{
  text-align:right !important;
}

/* --------------------------------------------------------------------------
   24 août 2026 — « NOS SERVICES CLINIQUES » (page 32, couche .hmc-main)
   Trois écarts avec la maquette, relevés par Raz sur une comparaison
   côte à côte. Le code couleur du site — réadaptation orange, soins
   palliatifs rose — est celui qui fait foi : aucune couleur n'est touchée
   ici, seules la taille et la largeur des blocs sont reprises.
   -------------------------------------------------------------------------- */

/* 1. Le titre de section.
      La maquette pose « Nos services cliniques » à la même échelle que les
      autres titres de section — clamp(2,25rem → 3,5rem), soit 56 px sur un
      écran de 1440 px. Le CSS de la page 32 l'avait construit un cran plus
      bas (clamp 1,875 → 2,75rem, 44 px rendus). On reprend l'échelle de la
      maquette, déjà employée par `.hmc-chemins .hmc-h2` sur la même page.
      La part en vw reste multipliée par --macl-echelle : le titre continue
      de suivre les boutons A− / A+. */
.elementor .hmc-main .hmc-svc-title .elementor-heading-title{
  font-size:var(--macl-titre-section) !important;
  line-height:1.14 !important;
  letter-spacing:-0.03em !important;
}

/* 2. Le texte d'introduction.
      La maquette le tient dans une colonne étroite, calée à gauche sous le
      titre — 60 ch pour l'intro, 64 ch pour la mention. Le CSS de la page
      posait bien `.hmc-svc-desc{max-width:640px}`, mais sans effet : le
      widget Elementor porte son propre `max-width:100%` avec une
      spécificité supérieure, et le texte traversait donc toute la largeur
      de la page. On vise le widget lui-même, et en ch plutôt qu'en px pour
      que la colonne suive la taille du texte aux paliers A− / A+. */
.elementor .hmc-main .hmc-svc-desc{max-width:60ch !important; margin-right:auto}
.elementor .hmc-main .hmc-svc-desc p{max-width:60ch}
.elementor .hmc-main .hmc-svc-desc p + p{max-width:64ch}

/* 3. Les pastilles du sélecteur de programme.
      Le rembourrage (11 px / 22 px) et le corps (0,9375rem) avaient déjà été
      repris de la maquette le 17 août, mais la hauteur restait courte : le
      bouton Elementor est rendu à `line-height:1`, si bien que la pastille
      mesurait 37 px au lieu des 45 px de la maquette, et la capsule 50 px au
      lieu de 57. C'est l'interligne qui manquait, pas le rembourrage.
      La puce ronde et son écart au libellé passent eux aussi aux valeurs de
      la maquette — 9 px et 9 px, contre 8 et 7. */
.elementor .hmc-main .hmc-svc-pill .elementor-button{
  line-height:1.55 !important;
  gap:9px;
}
.elementor .hmc-main .hmc-svc-pill .elementor-button:before{
  width:9px;
  height:9px;
}

/* 3 bis. Le sélecteur « Je consulte pour » : à droite, en bas du titre.
      Le CSS de la page le posait en absolu (`top:0; right:0`) dans une
      colonne. Deux conséquences : il ne repoussait rien — à 56 px, le titre
      venait le toucher entre 1 100 et 1 300 px — et il se calait en haut,
      alors que la maquette l'aligne sur le bas du titre
      (`.clin-head-top{display:flex; align-items:flex-end}`).

      On reprend la disposition de la maquette avec une grille : le texte
      dans la première colonne, le sélecteur dans la seconde, calé en bas et
      à droite. Plus de positionnement absolu, donc plus de chevauchement
      possible : la grille réserve la place d'elle-même, à tous les paliers
      de texte. Sous 1 025 px le CSS de la page remet le sélecteur dans le
      flux, sous le titre : la grille est levée. */
@media (min-width:1025px){
  .elementor .hmc-main .hmc-svc-head > .e-con-inner{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    column-gap:28px;
    row-gap:10px;
  }
  .elementor .hmc-main .hmc-svc-head > .e-con-inner > .hmc-kicker{grid-column:1; grid-row:1}
  .elementor .hmc-main .hmc-svc-title{grid-column:1; grid-row:2; max-width:none !important}
  .elementor .hmc-main .hmc-svc-toggle{
    grid-column:2; grid-row:1 / span 2;
    position:static !important;
    align-self:end;
    justify-self:end;
    margin:0 !important;
  }
  .elementor .hmc-main .hmc-svc-desc{grid-column:1; grid-row:3}
}

/* --------------------------------------------------------------------------
   4. L'écart entre le bloc et le menu — signalé par Raz.
   `.hmc-services` est le seul conteneur *boxed* de la page 32 : son contenu
   est plafonné à 1 140 px et centré dans la place disponible. Le héro, les
   piliers et le pied de page, eux, sont pleine largeur à 56 px du menu.
   Résultat : le bloc des services décroche dès que l'écran dépasse
   1 468 px — 120 px d'écart à 1 600, 184 px à 1 728, 280 px à 1 920 —
   alors que le reste de la page reste calé à 56 px. La maquette ne plafonne
   pas non plus : elle garde 56 px et ne recentre qu'au-delà de 1 480 px de
   contenu.
   On lève le plafond : le bloc retrouve la marge des autres sections, à
   toutes les largeurs. Les mesures de lecture ne bougent pas — l'intro
   reste tenue à 60 ch et la grille reste à trois colonnes.
   -------------------------------------------------------------------------- */
.elementor .hmc-main .hmc-services > .e-con-inner,
.elementor .hmc-main .hmc-services .hmc-svc-head > .e-con-inner{
  max-width:100% !important;
}

/* --------------------------------------------------------------------------
   24 août 2026 — FIL D'ARIANE RENDU PAR LE THÈME
   Le fil n'est plus un assemblage de widgets écrits page par page : il est
   reconstruit à l'affichage depuis la hiérarchie des pages (voir
   macl-fil-ariane.php) et inséré en tête de la première section, exactement
   dans le créneau qu'occupaient les widgets retirés.

   Une seule allure pour les 41 pages, celle des 38 pages en `.crumbs` : petites
   majuscules, chevron `›`. Les pages 32 et 33 employaient un point médian et un
   corps légèrement plus grand — l'écart n'avait pas de raison d'être.

   `--ink-soft` est redéfini par le mode de contraste renforcé : le fil suit
   donc le bouton AAA sans règle supplémentaire. Seul le chevron, posé en
   transparence, demande sa propre correction (voir le point 8 plus haut).
   -------------------------------------------------------------------------- */
.macl-fil{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  font-family:var(--macl-titre);
  font-size:0.6875rem;
  letter-spacing:0.02em;
  text-transform:uppercase;
  line-height:1.5;
  color:var(--ink-soft);
}
.macl-fil a{color:inherit; text-decoration:none}
.macl-fil a:hover,
.macl-fil a:focus-visible{color:var(--teal-700); text-decoration:underline; text-underline-offset:3px}
.macl-fil .sep{color:rgba(0,0,0,0.25)}
.macl-fil-courant{color:var(--navy-800); font-weight:600}

/* Reprise exacte de la place qu'occupait le widget retiré, mesurée page par
   page avant et après le retrait — sans quoi tout le contenu situé dessous
   remonterait.

   Sur les 38 pages en `.mcl-page`, ce widget faisait 37 px de haut (ses
   libellés étaient des widgets Bouton, avec leur rembourrage) et portait
   40 px de marge basse. */
.mcl-page .macl-fil{padding:10px 0; margin-bottom:40px}

/* Sur les pages 31/32/33, le libellé était à 0,75 rem sur un interligne de 1,
   soit 12 px. Le fil unifié est à 0,6875 rem : l'interligne le ramène à la
   même hauteur, au pixel près. */
.hmc-main .macl-fil{line-height:1.1}

/* Le héro de « Préparer son séjour » est une grille à deux colonnes. Sans
   consigne, le fil se fait ranger dans la première cellule et se retrouve
   centré à mi-hauteur du héro, à 300 px de sa place. Il doit occuper la
   rangée entière, comme le widget qu'il remplace. La déclaration est sans
   effet dans les héros en boîte flexible, où elle est simplement ignorée. */
.hmc-main .macl-fil{grid-column:1 / -1; align-self:start}

/* --------------------------------------------------------------------------
   24 août 2026 — POINT D'ARRÊT DES SOUS-MENUS COLLANTS
   Signalé par Raz sur « Qui sommes-nous » : le sous-menu (Notre approche,
   Mission et vision, …) se glissait sous le bandeau d'avis en défilant.

   Le bandeau est une fenêtre Elementor en **position fixe** ; les deux
   sous-menus collants du site s'arrêtaient eux à une valeur écrite en dur —
   0 px sur « Qui sommes-nous », 32 px sur « Préparer son séjour » pour la
   seule barre d'administration. Aucun des deux ne tenait compte du bandeau,
   et aucun ne pouvait tenir compte de sa fermeture.

   `macl-collant.js` mesure ce qui surplombe réellement la page et le publie
   en `--macl-collant`. Le bandeau refermé, la variable retombe à la hauteur
   de la seule barre d'administration — nulle pour un visiteur — et le
   sous-menu remonte de lui-même.

   Le CSS des pages 33 et 476 écrit ces valeurs avec !important, y compris
   dans des requêtes de média : il faut donc répondre avec une spécificité
   supérieure, sans quoi la variable passerait inaperçue sous 1 025 px.
   -------------------------------------------------------------------------- */
.elementor .hmc-main > .hmc-hero-nav,
.elementor .mcl-page .sej-jump{
  top:var(--macl-collant, 0px) !important;
}

/* Les ancres visées par ces sous-menus doivent dégager la même hauteur, plus
   celle du sous-menu lui-même — sans quoi le titre atteint se retrouve caché
   derrière lui. Les valeurs étaient jusqu'ici figées (70 px et 132 px),
   c'est-à-dire justes dans un seul des deux états du bandeau. */
.mcl-page .sej-section,
.mcl-page .sej-jump ~ * [id],
.hmc-main [id]{
  scroll-margin-top:calc(var(--macl-collant, 0px) + var(--macl-collant-h, 0px) + 16px);
}

/* --------------------------------------------------------------------------
   24 août 2026 — UNE SEULE ALLURE POUR LES PASTILLES DE SOUS-MENU
   Le même composant était traité de deux façons : « Qui sommes-nous » en
   0,6875 rem, majuscules et interlettrage 0,08 em ; « Préparer son séjour »
   en 0,8125 rem, casse normale. Raz a tranché pour le second — on l'applique
   aux deux. La couleur, le fond et le rembourrage suivent, sinon une pastille
   dessinée pour de petites majuscules paraît trop serrée autour d'un libellé
   en casse normale.

   Sans `!important` : les règles du mode de contraste renforcé, qui visent ces
   mêmes pastilles, doivent continuer de passer devant.
   -------------------------------------------------------------------------- */
.elementor .mcl-page .sej-jump a,
.elementor .mcl-page .sej-jump .elementor-button{
  font-size:0.8125rem;
  letter-spacing:normal;
  text-transform:none;
  font-weight:600;
  color:var(--navy-800);
  background:#EDEEF0;
  padding:9px 16px;
  border-radius:999px;
  line-height:1;
}
.elementor .mcl-page .sej-jump a:hover,
.elementor .mcl-page .sej-jump .elementor-button:hover{
  background:rgba(74,177,101,0.16);
  color:var(--teal-700);
}

/* --------------------------------------------------------------------------
   24 août 2026 — LE BANDEAU COLLANT DEVIENT TRANSLUCIDE
   Demandé par Raz : le blanc du sous-menu flottant paraissait massif.
   « Qui sommes-nous » était à 97 % d'opacité — assez proche de l'opaque pour
   qu'on ne voie pas la différence — et « Préparer son séjour » complètement
   opaque. Les deux passent à 82 %, avec un flou d'arrière-plan qui garde la
   barre lisible quand du texte défile dessous.

   La lisibilité n'est pas en jeu : les libellés sont posés sur des pastilles
   au fond plein (#EDEEF0), qui ne deviennent pas transparentes. Seul le fond
   de la barre l'est.

   Deux garde-fous :
   — un navigateur sans backdrop-filter n'aurait que la transparence, sans le
     flou qui la rend lisible : on lui rend un blanc presque plein ;
   — en mode de contraste renforcé, la barre redevient opaque et sans flou.
   -------------------------------------------------------------------------- */
.elementor .mcl-page .sej-jump,
.elementor .hmc-main > .hmc-hero-nav{
  background:rgba(255,255,255,0.82) !important;
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  backdrop-filter:blur(14px) saturate(140%);
}

@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .elementor .mcl-page .sej-jump,
  .elementor .hmc-main > .hmc-hero-nav{
    background:rgba(255,255,255,0.95) !important;
  }
}

html[data-macl-contraste="aaa"] .elementor .mcl-page .sej-jump,
html[data-macl-contraste="aaa"] .elementor .hmc-main > .hmc-hero-nav{
  background:#FFFFFF !important;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}

/* --------------------------------------------------------------------------
   24 août 2026 — « QUI SOMMES-NOUS » : LE CHAPEAU N'EST PLUS DÉTACHÉ
   Demandé par Raz : le filet horizontal coupait chaque section en deux, alors
   que le chapeau et le corps disent la même chose et devraient se lire d'un
   trait.

   Le filet est un motif de la maquette, présent sur 16 sections réparties sur
   10 pages. Portée retenue avec Raz : **la page 478 seulement**, ses 5
   sections — d'où le préfixe `.elementor-478`, qui laisse les autres pages
   intactes.

   L'espacement suit : sans le filet, les 26 px de rembourrage bas et les 44 px
   de marge (90 px au total avec l'écart de la section) laissaient un trou qui
   séparait tout autant que le trait. On tombe à 28 px, la respiration d'un
   changement de paragraphe.
   -------------------------------------------------------------------------- */
.elementor-478 .mcl-page .sej-head{
  border-bottom:none;
  padding-bottom:0;
  margin-bottom:8px;
}

/* --------------------------------------------------------------------------
   24 août 2026 — « NOTRE HISTOIRE » : NOUVELLE DISPOSITION
   Le récit s'arrêtait à 978 px, la frise continuait jusqu'à 1 677 px : plus de
   1 000 px de vide sous le récit. Mesuré : la frise n'était pas aérée — 10 px
   d'air par entrée — elle était **écrasée**. Sa colonne de texte ne faisait que
   195 px de large, la date en prenant 132 dans une carte de 461 : chaque phrase
   de deux lignes en occupait six.

   Disposition retenue avec Raz, sur sa maquette :

     rangée 1 : numéro + titre        | emplacement de la photo d'archives
     rangée 2 : le récit — fondatrice | 1949 · 1965 · Aujourd'hui
     rangée 3 : la frise, pleine largeur, dates à gauche
     rangée 4 : 228 · 500+ · donnée à ajouter

   L'arbre Elementor est réorganisé par _to_delete/macl-histoire2.php ; il ne
   reste ici que la mise en forme. Aucune valeur typographique n'est inventée :
   les tailles, les couleurs et les familles sont celles des composants déjà
   employés ailleurs sur le site.
   -------------------------------------------------------------------------- */

/* Rangée 1 et rangée 2 — deux colonnes égales. `.sej-cols` reste en place pour
   la grille ; on ne redéfinit que la répartition et l'écart. */
.mcl-page .hist-top,
.mcl-page .hist-recit{grid-template-columns:1fr 1fr; gap:44px; align-items:start}
.mcl-page .hist-top .sej-head{margin-bottom:0}

/* L'emplacement de la photo d'archives. Tant que l'image n'est pas fournie, le
   cadre est explicitement en attente : un trait discontinu dit « à remplir »,
   là où un aplat gris se lirait comme un défaut d'affichage. */
.mcl-page .hist-photo{
  min-height:320px;
  border:2px dashed rgba(36,71,91,0.22);
  border-radius:18px;
  background:rgba(36,71,91,0.03);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:28px;
}
.mcl-page .hist-photo-legende .elementor-heading-title{
  font-family:var(--macl-titre);
  font-size:0.8125rem;
  line-height:1.5;
  color:var(--ink-soft);
  max-width:34ch;
}

/* Rangée 4 — les chiffres. La troisième colonne est plus large : elle porte une
   phrase, les deux autres un nombre. */
.mcl-page .hist-chiffres{display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:36px; align-items:start}
.mcl-page .hist-stat .hs-n .elementor-heading-title{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:2.75rem;
  line-height:1;
  letter-spacing:-0.02em;
  color:var(--navy-900);
}
.mcl-page .hist-stat .hs-l .elementor-heading-title{
  font-size:0.90625rem;
  line-height:1.5;
  color:var(--ink-soft);
  margin-top:10px;
  max-width:30ch;
}

/* La bande de chiffres — 1er septembre 2026.

   Elle est sortie de la section pour devenir un conteneur de PREMIER NIVEAU.
   C'est ce qui lui permet de porter un aplat d'un bord à l'autre pendant que
   son texte reste aligné sur les autres sections : un fond posé à l'intérieur
   d'une section n'aurait jamais dépassé son rembourrage, et l'en faire sortir
   par une marge négative aurait demandé de connaître ce rembourrage — qui
   change à deux paliers et dépend de la largeur de la fenêtre.

   Elle reprend donc le rembourrage horizontal des sections (règles groupées
   plus haut) et n'a rien d'autre à savoir. */
/* La grille à trois colonnes de la maquette laissait les deux chiffres calés à
   gauche d'une bande qui fait toute la largeur. Ils sont maintenant centrés,
   comme un groupe, avec une gouttière qui respire — demande de Raz du
   1er septembre. Le texte reste aligné à gauche dans chaque chiffre : c'est le
   groupe qu'on centre, pas les mots.

   L'aplat est le vert de l'aile centrale de l'oiseau du logo, désigné par Raz.
   Relevé au pixel dans `hmc-logo-lockup.png` : **#CCD83C**, soit le jeton
   `--lime-500` (#C9D627) de la charte à un cheveu près.

   Mais un lime à pleine saturation sur une bande qui traverse la page criait
   plus fort que le titre juste en dessous. La bande porte donc `--lime-200`
   (#DDE3A3) : **même teinte, même famille, un cran de saturation en moins**.
   L'oiseau reste reconnaissable, la page reste lisible.

   Le texte est marine. Le libellé passe de `--ink-soft` à `--ink` : sur un vert
   aussi lumineux, le gris-bleu tombait à 5,16:1 — au-dessus d'AA mais sous le
   seuil AAA que le site vise. */
.mcl-page .hist-bande{
  display:flex; flex-direction:row; justify-content:center; align-items:flex-start;
  gap:clamp(56px, 10vw, 180px);
  background:var(--lime-200);
  padding-block:38px;
}
/* Un conteneur Elementor occupe toute la largeur disponible : les deux
   chiffres se retrouvaient à 630 px l'un de l'autre. `flex:0 0 auto` les
   ramène à la largeur de leur texte, et c'est la gouttière qui les écarte. */
.mcl-page .hist-bande .hist-stat{
  display:flex; flex-direction:column; row-gap:6px; padding:0;
  flex:0 0 auto; width:auto;
}
.mcl-page .hist-bande .hs-n .elementor-heading-title{color:var(--navy-900)}   /* 11,94:1 */
.mcl-page .hist-bande .hs-l .elementor-heading-title{
  color:var(--ink); margin-top:0; max-width:none; white-space:nowrap;        /* 11,18:1 */
}

/* Rien à épingler pour le mode AAA : `--lime-200` y devient #E4E9C0, un cran
   plus clair encore, et les contrastes montent au lieu de tomber.
   ⚠ Ce n'aurait PAS été vrai avec `--lime-500`, qui passe à #4A5400 en AAA —
   un olive très sombre, prévu pour du TEXTE lime sur fond clair. Posé en aplat
   il retournerait la bande : fond sombre, texte marine dessus, illisible. */

@media (max-width:700px){
  .mcl-page .hist-bande{flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:24px}
  .mcl-page .hist-bande .hs-l .elementor-heading-title{white-space:normal}
}

/* La frise passe pleine largeur. Sans garde-fou, sa colonne de texte
   atteindrait 900 px — le défaut inverse de celui qu'on vient de corriger.
   On la borne à une longueur de ligne lisible.

   La colonne de dates n'affiche plus que l'année (décision de Raz) : 200 px
   n'avaient plus lieu d'être, le plus large des libellés mesure 45 px. Elle est
   exprimée en `em` plutôt qu'en pixels, pour suivre les boutons A− et A+. */
.mcl-page .tl--large .tl-item{grid-template-columns:6em minmax(0, 68ch)}

@media (max-width:1000px){
  .mcl-page .hist-top,
  .mcl-page .hist-recit,
  .mcl-page .hist-chiffres{grid-template-columns:1fr}
}
@media (max-width:900px){
  .mcl-page .tl--large .tl-item{grid-template-columns:1fr; gap:6px}
}

/* La frise n'est plus dans une carte : la maquette de Raz la pose directement
   sur le fond crème de la section. Le cadre blanc se justifiait quand elle
   occupait une colonne étroite à côté du récit ; pleine largeur, il ne fait
   plus que dessiner une boîte autour de toute la rangée.

   Reste un filet, demandé par Raz : un trait d'un pixel qui sépare le récit —
   la fondatrice, 1949, 1965, aujourd'hui — de la chronologie qui suit. Il est
   posé sur la frise elle-même plutôt qu'en élément distinct : il n'y a donc
   rien à déplacer si l'ordre des rangées change, et rien à retirer si la frise
   disparaît. */
.elementor-478 #qsn-histoire > .sej-card{
  background:transparent;
  border:0;
  border-top:1px solid rgba(36,71,91,0.14);
  border-radius:0;
  padding:44px 0 0;
}

/* --------------------------------------------------------------------------
   24 août 2026 — « 01 · NOTRE APPROCHE » : L'ENCADRÉ REMONTE
   Demandé par Raz : l'encadré « Hôpital privé conventionné » commençait sous le
   paragraphe d'introduction ; il doit partir de sa première ligne.

   Le paragraphe quitte le chapeau et rejoint la rangée à deux colonnes
   (_to_delete/macl-approche.php). La grille fait le reste : l'intro et
   l'encadré occupent la même rangée, le récit se glisse dessous dans la
   première colonne. Les blocs sont placés par leur classe et non par leur rang,
   pour que l'ajout d'un paragraphe ne déplace rien.
   -------------------------------------------------------------------------- */
.mcl-page .appr-cols{align-items:start; row-gap:22px}
.mcl-page .appr-cols > .appr-intro{grid-column:1; grid-row:1}
.mcl-page .appr-cols > .rich{grid-column:1; grid-row:2}
.mcl-page .appr-cols > .sej-card{grid-column:2; grid-row:1 / span 2; align-self:start}

@media (max-width:1000px){
  .mcl-page .appr-cols > .appr-intro,
  .mcl-page .appr-cols > .rich,
  .mcl-page .appr-cols > .sej-card{grid-column:1; grid-row:auto}
}

/* --------------------------------------------------------------------------
   24 août 2026 — BLOC « PERSONNE »
   Demandé par Raz pour la direction générale : portrait à gauche, nom et
   fonction à droite. Nommé génériquement — le conseil d'administration et la
   liste des directions pourront s'en servir.

   Le portrait est un **emplacement** tant que la photographie n'est pas
   fournie : cercle en trait discontinu, comme le cadre d'archives de « Notre
   histoire ». Le jour où l'image existe, le conteneur est remplacé par un
   widget Image et cette règle n'a plus qu'à donner l'arrondi.

   Un conteneur Elementor vaut `width:100%` par défaut : le portrait doit donc
   se voir rendre sa largeur, sinon il occupe toute la rangée et le cercle
   devient un ovale. C'est le même piège que celui noté au journal principal.
   -------------------------------------------------------------------------- */
.mcl-page .personne{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:20px;
  margin:2px 0 16px;
}
.mcl-page .personne > .personne-portrait{
  flex:0 0 auto;
  width:96px;
  height:96px;
  border-radius:50%;
  border:2px dashed rgba(36,71,91,0.22);
  background:rgba(36,71,91,0.03);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}
.mcl-page .personne-portrait-l .elementor-heading-title{
  font-family:var(--mono);
  font-size:0.625rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ink-soft);
}
.mcl-page .personne > .personne-txt{
  width:auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:0;
}
.mcl-page .personne-txt h4{margin:0}
.mcl-page .personne-txt p{margin:0; color:var(--ink-soft)}

/* Une fois la photographie posée, le cercle en attente cède la place à
   l'image : plus de trait discontinu, plus de fond. La classe est ajoutée par
   le script qui pose la photo, pour que l'état soit lisible dans la page et non
   deviné par le CSS. */
.mcl-page .personne > .personne-portrait--photo{
  border:0;
  background:transparent;
  overflow:hidden;
}
.mcl-page .personne-portrait img{
  display:block;
  width:100%;
  height:100%;
  border-radius:50%;
  object-fit:cover;
  object-position:center 42%;
}
.mcl-page .personne-portrait .elementor-widget-image,
.mcl-page .personne-portrait .elementor-widget-image .elementor-widget-container,
.mcl-page .personne-portrait .elementor-image{
  width:100%;
  height:100%;
  line-height:0;
}

/* --------------------------------------------------------------------------
   24 août 2026 — L'ORGANIGRAMME DESSINÉ, EN BLOCS (page Gouvernance)
   Le schéma d'origine était une image : invisible aux moteurs, muette au
   lecteur d'écran, illisible sur un téléphone. Il est refait en conteneurs et
   widgets Elementor natifs — **les boîtes colorées sont le texte**. Il n'y a
   donc pas une version « image » et une version « texte » à tenir synchronisées.

   CONTRASTE — le point qui a demandé une décision.
   Les couleurs du schéma d'origine, avec du texte blanc, échouent au niveau AA :
   le vert clair (#6ECB3E) donne 1,8:1, le bleu clair (#29A9E0) 2,6:1, l'orange
   (#E8792A) 2,7:1. Trois échecs francs sur un site qui vise AA partout et offre
   un mode AAA. L'identité colorée de chaque direction est conservée — c'est une
   information, pas une décoration — mais le texte passe en encre foncée sur les
   trois teintes claires, et les trois teintes foncées gardent le blanc. Les
   valeurs sont vérifiées au chargement, pas estimées.

   Sous 1 000 px, la grille se déplie en une colonne : un diagramme à six
   colonnes n'a pas de sens sur un téléphone, et l'ordre du document donne alors
   une lecture correcte — direction, puis ses services.
   -------------------------------------------------------------------------- */

/* --- La boîte, brique de base -------------------------------------------- */
.mcl-page .org-boite{
  display:flex;
  flex-direction:column;
  gap:2px;
  justify-content:center;
  padding:10px 14px;
  border-radius:8px;
  text-align:center;
}
.mcl-page .org-boite .ob-t .elementor-heading-title{
  font-family:var(--macl-titre);
  font-size:0.8125rem;
  font-weight:600;
  line-height:1.3;
  color:inherit;
  text-wrap:pretty;
}
.mcl-page .org-boite .ob-n .elementor-heading-title{
  font-size:0.75rem;
  font-weight:400;
  line-height:1.35;
  color:inherit;
  opacity:0.9;
}

/* Boîtes neutres — les comités, en filet comme sur le schéma d'origine. */
.mcl-page .org-b-neutre{background:#fff; border:1px solid rgba(36,71,91,0.25); color:var(--navy-800)}
.mcl-page .org-b-cmdp{border-color:var(--navy-800); border-width:1.5px}

/* L'axe : corporation, conseil, direction générale. */
.mcl-page .org-b-corpo{background:#5B9BD5; color:#0B2239}
.mcl-page .org-b-ca{background:#2A6BA8; color:#fff}   /* 3,85:1 en #3E86C8 — assombri pour passer AA */
.mcl-page .org-b-dg{background:#8FB9E0; color:#0B2239}

/* --- Le sommet ------------------------------------------------------------ */
.mcl-page .org-sommet{
  display:grid;
  grid-template-columns:1fr 1.25fr 1fr;
  gap:24px;
  align-items:start;
  margin-top:8px;
  padding:0;
}
.mcl-page .org-col-comites{display:grid; grid-template-columns:1fr 1fr; gap:8px; align-content:start; padding:0}
.mcl-page .org-col-comites > .org-boite{min-height:52px}
.mcl-page .org-axe{display:flex; flex-direction:column; gap:10px; align-items:stretch; padding:0}

/* Le trait qui descend du conseil vers la direction générale, puis vers les
   directions : dessiné en pseudo-élément, donc rien à replacer si un bloc
   change de taille. */
.mcl-page .org-axe > .org-b-ca,
.mcl-page .org-axe > .org-b-dg{position:relative}
.mcl-page .org-axe > .org-b-ca::before,
.mcl-page .org-axe > .org-b-dg::before{
  content:"";
  position:absolute;
  left:50%;
  top:-10px;
  width:2px;
  height:10px;
  background:rgba(36,71,91,0.35);
}
.mcl-page .org-annexes{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:6px; padding:0}

/* --- Les deux programmes transversaux ------------------------------------- */
.mcl-page .org-programmes{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  max-width:520px;
  margin:26px 0 0 auto;
  padding:0;
}
.mcl-page .org-b-prog{border:1px solid transparent}
.mcl-page .org-b-prog--sp{background:#EBD7EC; border-color:#C9A6CB; color:#4A1140}
.mcl-page .org-b-prog--rea{background:#FBD9B4; border-color:#E0AE72; color:#5A2E00}

/* --- Les six directions --------------------------------------------------- */
/* Les six directions sont les volets d'un accordéon, disposés en grille :
   chaque carte colorée est le <summary> qui déplie ses services. Le contenu
   replié reste dans la page — indexé, atteignable au lecteur d'écran — et le
   clavier vient de la balise <details>, sans script. */
.mcl-page .org-directions{margin-top:30px}
.mcl-page .org-directions .e-n-accordion{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:34px 28px;
}
.mcl-page .org-directions .e-n-accordion-item{
  position:relative;
  align-self:start;
  background:transparent;
  border:0;
  border-radius:0;
  scroll-margin-top:150px;
}

/* Le <summary> EST la carte de direction. */
.mcl-page .org-directions .e-n-accordion-item-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:74px;
  padding:12px 16px;
  border-radius:8px;
  cursor:pointer;
  list-style:none;
  text-align:center;
}
.mcl-page .org-directions .e-n-accordion-item-title::-webkit-details-marker{display:none}
.mcl-page .org-directions .e-n-accordion-item-title-header{flex:1 1 auto; min-width:0}
.mcl-page .org-directions .e-n-accordion-item-title-text{
  font-family:var(--macl-titre);
  font-size:0.875rem !important;
  font-weight:600;
  line-height:1.3;
  color:inherit;
  margin:0;
  text-wrap:pretty;
}
.mcl-page .org-directions .ob-sous{
  display:block;
  margin-top:2px;
  font-size:0.75rem;
  font-weight:400;
  opacity:0.9;
}

/* Le chevron, dans la couleur du texte de la carte. */
.mcl-page .org-directions .e-n-accordion-item-title::after{
  content:"";
  flex:0 0 auto;
  width:9px;
  height:9px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:rotate(45deg);
  transform-origin:60% 60%;
  opacity:0.8;
  transition:transform 180ms cubic-bezier(0.2,0.7,0.2,1);
}
.mcl-page .org-directions .e-n-accordion-item[open] > .e-n-accordion-item-title::after{
  transform:rotate(-135deg);
}
.mcl-page .org-directions .e-n-accordion-item-title:focus-visible{
  outline:3px solid var(--navy-800);
  outline-offset:3px;
}

.mcl-page .org-services{display:flex; flex-direction:column; gap:4px; padding:10px 0 0}

.mcl-page .org-services{display:flex; flex-direction:column; gap:4px; padding:0}
.mcl-page .org-ligne{display:grid; gap:4px; padding:0}
.mcl-page .org-ligne--1{grid-template-columns:1fr}
.mcl-page .org-ligne--2{grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr)}
.mcl-page .org-ligne--3{grid-template-columns:minmax(0,0.9fr) minmax(0,0.55fr) minmax(0,0.55fr)}
.mcl-page .org-cel .elementor-heading-title{
  display:block;
  padding:8px 12px;
  border-radius:5px;
  font-size:0.78125rem;
  line-height:1.35;
  font-weight:500;
  text-wrap:pretty;
}
/* Ligne qui prolonge la précédente : son service se range dans la colonne des
   services, laissant la colonne des rôles libre. */
.mcl-page .org-ligne--decale > .org-cel{grid-column:2}

/* --- L'identité colorée de chaque direction -------------------------------
   Trois teintes foncées gardent le texte blanc ; trois teintes claires passent
   à l'encre foncée. Les nuances de service sont légèrement éclaircies pour
   distinguer la direction de ce qui en relève, sans perdre le contraste. */
.mcl-page #direction-rh > .e-n-accordion-item-title, .mcl-page .org-c1 .org-cel .elementor-heading-title{background:#1F2E6B; color:#fff}
.mcl-page .org-c1 .org-cel--svc .elementor-heading-title{background:#2C3F84}

.mcl-page #direction-professionnels > .e-n-accordion-item-title, .mcl-page .org-c2 .org-cel .elementor-heading-title{background:#A81E85; color:#fff}
.mcl-page .org-c2 .org-cel--svc .elementor-heading-title{background:#BC2F98}

.mcl-page #direction-finances > .e-n-accordion-item-title, .mcl-page .org-c3 .org-cel .elementor-heading-title{background:#12773A; color:#fff}
.mcl-page .org-c3 .org-cel--svc .elementor-heading-title{background:#1A8C47}

.mcl-page #direction-soins-infirmiers > .e-n-accordion-item-title, .mcl-page .org-c4 .org-cel .elementor-heading-title{background:#8DD35F; color:#12290A}
.mcl-page .org-c4 .org-cel--svc .elementor-heading-title{background:#A6DE80}

.mcl-page #direction-technique > .e-n-accordion-item-title, .mcl-page .org-c5 .org-cel .elementor-heading-title{background:#6EC9EE; color:#04283A}
.mcl-page .org-c5 .org-cel--svc .elementor-heading-title{background:#93D8F2}

.mcl-page #direction-multidisciplinaires > .e-n-accordion-item-title, .mcl-page .org-c6 .org-cel .elementor-heading-title{background:#F0A05A; color:#3A1B00}
.mcl-page .org-c6 .org-cel--svc .elementor-heading-title{background:#F5B87F}

/* --- Repli ---------------------------------------------------------------- */
@media (max-width:1000px){
  .mcl-page .org-sommet{grid-template-columns:1fr}
  .mcl-page .org-directions .e-n-accordion{grid-template-columns:1fr}
  .mcl-page .org-programmes{max-width:none; margin-left:0}
}
@media (max-width:640px){
  .mcl-page .org-col-comites,
  .mcl-page .org-annexes,
  .mcl-page .org-programmes{grid-template-columns:1fr}
  .mcl-page .org-ligne--2,
  .mcl-page .org-ligne--3{grid-template-columns:1fr}
}

/* --------------------------------------------------------------------------
   24 août 2026 — LE TRONC ET LES TIGES DU SCHÉMA
   Raz ne voyait pas la ligne verticale : seuls deux courts raccords existaient,
   entre le conseil et la direction générale. Le trait est maintenant continu,
   de la direction générale jusqu'à la dernière direction, avec une tige
   horizontale vers chaque bloc.

   Il est dessiné en pseudo-éléments, jamais en blocs : un trait n'est pas du
   contenu, il n'a rien à faire dans l'arbre Elementor ni dans la lecture d'un
   lecteur d'écran.

   Les trois colonnes du sommet sont de hauteurs très différentes — dix comités
   à gauche, quatre boîtes au centre. Plutôt que de deviner la distance à
   parcourir, le segment du centre est **un élément de la boîte flexible** :
   `flex:1` lui fait occuper exactement la place qui reste, quelle que soit la
   hauteur de la colonne voisine ou le palier de texte choisi.
   -------------------------------------------------------------------------- */
.mcl-page .org-axe{align-self:stretch}
.mcl-page .org-axe::after{
  content:"";
  flex:1 1 auto;
  align-self:center;
  width:2px;
  min-height:18px;
  background:rgba(36,71,91,0.3);
}

/* Le raccord qui traverse la rangée des programmes : posé sur ce bloc, il
   couvre exactement l'écart au-dessus et au-dessous, sans valeur devinée.
   Le bloc passe en pleine largeur — ses cartes restant calées à droite — pour
   que son milieu coïncide avec celui de la section. */
.mcl-page .org-programmes{
  position:relative;
  max-width:none;
  margin:26px 0 0;
  grid-template-columns:minmax(0,250px) minmax(0,250px);
  justify-content:end;
}
.mcl-page .org-programmes::before{
  content:"";
  position:absolute;
  left:calc(50% - 1px);
  top:-26px;
  bottom:-30px;
  width:2px;
  background:rgba(36,71,91,0.3);
}

/* Le tronc entre les deux colonnes de directions. Il est porté par les cartes
   de gauche : chacune occupe toute la hauteur de sa rangée, les segments se
   touchent donc bout à bout. La dernière rangée s'arrête à hauteur de titre —
   le trait n'a pas à descendre sous la dernière direction. */
/* Elementor emploie déjà `::before` sur ses conteneurs, pour le voile de fond,
   avec `inset:0`. Un pseudo-élément posé sur un conteneur hérite donc de
   `left:0` — et le trait, censé longer le bord droit, se dessinait tout à
   gauche sur toute la hauteur. Il faut remettre `left:auto` explicitement.
   C'est une variante du piège central du projet : la propriété était bonne,
   c'est l'héritage qui ne l'était pas. */
.mcl-page .org-directions .e-n-accordion > *:nth-child(odd)::before{
  content:"";
  position:absolute;
  top:0;
  bottom:-34px;              /* l'écart entre rangées, pour joindre la suivante */
  left:auto;
  right:-15px;               /* moitié de l'écart de 28 px, moins la moitié du trait */
  width:2px;
  background:rgba(36,71,91,0.3);
}
.mcl-page .org-directions .e-n-accordion > *:nth-last-child(2)::before{bottom:auto; height:37px}

/* Les tiges vers chaque direction, à hauteur de son titre. */
.mcl-page .org-directions .e-n-accordion-item::after{
  content:"";
  position:absolute;
  top:37px;
  bottom:auto;
  left:auto;
  right:auto;
  width:15px;
  height:2px;
  background:rgba(36,71,91,0.3);
}
.mcl-page .org-directions .e-n-accordion > *:nth-child(odd)::after{right:-15px}
.mcl-page .org-directions .e-n-accordion > *:nth-child(even)::after{left:-15px}

/* Repliée en une colonne, la grille n'a plus de tronc à porter. */
@media (max-width:1000px){
  .mcl-page .org-axe::after,
  .mcl-page .org-programmes::before,
  .mcl-page .org-directions .e-n-accordion > *::before,
  .mcl-page .org-directions .e-n-accordion-item::after{display:none}
  .mcl-page .org-programmes{grid-template-columns:1fr 1fr; justify-content:stretch}
}

/* ---------------------------------------------------------------------------
   ORGANIGRAMME EN IMAGE — page Gouvernance (480), 24 août 2026
   ---------------------------------------------------------------------------
   Le schéma est posé en image, avec le widget Image d'Elementor. Trois choses
   à tenir :

   1. La pleine largeur de la colonne, sans étirement : un organigramme agrandi
      au-delà de sa résolution devient illisible, d'où le max-width sur la
      largeur naturelle du fichier.
   2. Le clic ouvre la visionneuse d'Elementor — c'est la seule façon de lire
      les libellés sur un écran étroit, où l'image entière tient en 380 px.
   3. Le curseur doit annoncer que l'image s'agrandit ; sans cela le clic n'est
      pas découvert.
   -------------------------------------------------------------------------- */
.mcl-page .org-image{margin-top:26px}
.mcl-page .org-image img{
  width:100%;
  height:auto;
  border:1px solid rgba(36,71,91,0.15);
  border-radius:10px;
  background:#fff;
}
.mcl-page .org-image a{display:block; cursor:zoom-in}

@media (max-width:600px){
  .mcl-page .org-image img{border-radius:6px}
}

/* ---------------------------------------------------------------------------
   LE CONSEIL D'ADMINISTRATION, EN TUILES — page Gouvernance (480), 24 août 2026
   ---------------------------------------------------------------------------
   La liste à deux colonnes devient une grille de cartes : portrait rond, nom,
   fonction en pastille. Le cercle réutilise `personne-portrait`, monté pour la
   direction générale — un seul composant de portrait dans tout le site, donc
   un seul endroit à corriger.

   Les pastilles portent une couleur par fonction. C'est une information (qui
   préside, qui administre), pas une décoration : les quatre couples ont donc
   été mesurés, et le plus faible est à 7,05:1 — bien au-delà du seuil AA.
   -------------------------------------------------------------------------- */
.mcl-page .ca-grille{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:22px;
  padding:0;
  margin-top:8px;
}

/* La carte est le composant `personne` retourné à la verticale. */
.mcl-page .personne--carte{
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:14px;
  margin:0;
  padding:26px 20px 24px;
  background:#fff;
  border:1px solid rgba(36,71,91,0.14);
  border-radius:16px;
}
.mcl-page .personne--carte > .personne-txt{
  width:100%;
  align-items:center;
  gap:10px;
}
.mcl-page .ca-nom .elementor-heading-title{
  font-family:var(--macl-titre);
  font-size:1.0625rem;
  font-weight:600;
  line-height:1.3;
  color:var(--navy-800);
  text-wrap:balance;
}

/* La pastille : une étiquette, donc un bloc en ligne qui épouse son texte.

   La couleur et la typographie sont posées sur l'ENVELOPPE du widget, pas sur
   le titre : la règle de normalisation du thème
   (`.mcl-page .elementor-widget-heading div.elementor-heading-title{font:inherit;
   color:inherit}`) porte un sélecteur d'élément de plus, donc elle l'emporte
   sur toute règle de même nombre de classes. Le titre ne reçoit ici que la
   forme de la pastille — fond, chair, arrondi — que `inherit` ne touche pas. */
.mcl-page .ca-role{
  font-family:var(--macl-titre);
  font-size:0.8125rem;
  font-weight:500;
  line-height:1.4;
}
.mcl-page .ca-role .elementor-heading-title{
  display:inline-block;
  padding:6px 15px;
  border-radius:999px;
}
.mcl-page .ca-role--presidence{color:#8C1550}
.mcl-page .ca-role--vice{color:#1F4E79}
.mcl-page .ca-role--secretariat{color:#7A1A63}
.mcl-page .ca-role--administration{color:#2E4E60}
.mcl-page .ca-role--presidence .elementor-heading-title{background:#FADCE9}
.mcl-page .ca-role--vice .elementor-heading-title{background:#E2ECF6}
.mcl-page .ca-role--secretariat .elementor-heading-title{background:#F3DDEE}
.mcl-page .ca-role--administration .elementor-heading-title{background:#E8EEF1}

/* En contraste renforcé, la pastille passe en trait plein sur fond blanc :
   les fonds pâles n'ont plus lieu d'être quand tout le reste s'assombrit. */
:root[data-macl-contraste="aaa"] .mcl-page .ca-role{color:var(--navy-800)}
:root[data-macl-contraste="aaa"] .mcl-page .ca-role .elementor-heading-title{
  background:#fff;
  border:1.5px solid currentColor;
}

@media (max-width:1000px){
  .mcl-page .ca-grille{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width:600px){
  .mcl-page .ca-grille{grid-template-columns:1fr; gap:16px}
  .mcl-page .personne--carte{padding:22px 18px 20px}
}

/* ---------------------------------------------------------------------------
   GOUVERNANCE — plan et texte du 24 août 2026 (page 480)
   ---------------------------------------------------------------------------
   L'étiquette de section ne porte plus que son numéro : elle portait le titre
   lui-même, que le H2 répète juste en dessous.
   -------------------------------------------------------------------------- */

/* --- 02 · La direction générale ------------------------------------------- */
.mcl-page .dg-personne{margin:0 0 24px}
.mcl-page .dg-personne .personne-txt h3{
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:1.25rem;
  margin:0;
  color:var(--navy-800);
}
.mcl-page .dg-personne .personne-txt p{margin:2px 0 0; font-size:0.9375rem; color:var(--ink-soft)}
.mcl-page .dg-mot{max-width:74ch}

/* --- 02 · Les directions, en cartes ---------------------------------------
   Chaque direction reprend sa couleur de l'organigramme : la liste et le schéma
   se répondent, sans légende à écrire. La teinte porte donc une information —
   les six couples texte/fond sont mesurés, le plus faible à 5,64:1.

   La couleur est posée sur la CARTE, pas sur le titre : la normalisation du
   thème (`div.elementor-heading-title{color:inherit}`) la fait descendre, et
   c'est elle qui l'emporterait sur une règle écrite au niveau du titre.
   -------------------------------------------------------------------------- */
.mcl-page .dir-grille{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:16px;
  padding:0;
}
.mcl-page .dir-carte{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:88px;
  padding:16px 20px;
  border-radius:12px;
  text-align:center;
}
.mcl-page .dir-nom{
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:0.9375rem;
  line-height:1.35;
  color:inherit;
  text-wrap:pretty;
}

.mcl-page .dir-c1{background:#1F2E6B; color:#fff}   /* ressources humaines        12,64:1 */
.mcl-page .dir-c2{background:#A81E85; color:#fff}   /* services professionnels     6,58:1 */
.mcl-page .dir-c3{background:#12773A; color:#fff}   /* ressources financières      5,64:1 */
.mcl-page .dir-c4{background:#8DD35F; color:#12290A} /* soins infirmiers           8,62:1 */
.mcl-page .dir-c5{background:#6EC9EE; color:#04283A} /* services techniques        8,21:1 */
.mcl-page .dir-c6{background:#F0A05A; color:#3A1B00} /* multidisciplinaires        7,39:1 */

/* En contraste renforcé, le seuil passe à 7:1 : seules les deux teintes à texte
   blanc y manquaient. Elles sont assombries juste ce qu'il faut — l'identité
   colorée reste lisible, c'est elle qui fait le lien avec le schéma. */
/* Deux formes ont été essayées sans effet — `:root[…]`, puis la sélection
   triple `html[…][…][…]` — alors même que le sélecteur correspondait bien à
   l'élément. Toute la section de contraste renforcé de cette feuille est
   écrite en `!important` ; c'est la convention du fichier, et c'est ce qui
   fonctionne ici. Constaté à l'écran, pas supposé. */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .mcl-page .dir-c2{background:#A01C7E !important}  /* 7,09:1 */
html[data-macl-contraste="aaa"][data-macl-contraste][data-macl-contraste] .mcl-page .dir-c3{background:#0F6632 !important}  /* 7,08:1 */

@media (max-width:1100px){
  .mcl-page .dir-grille{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width:640px){
  .mcl-page .dir-grille{grid-template-columns:1fr; gap:12px}
  .mcl-page .dir-carte{min-height:0; padding:14px 18px}
}

/* ---------------------------------------------------------------------------
   GOUVERNANCE — l'en-tête sur deux colonnes, 24 août 2026
   ---------------------------------------------------------------------------
   Le gabarit portait déjà tout : `.sh-grid--media` pour les deux colonnes,
   `.sh-media` pour le cadre arrondi, et `.soins-hero h1 em` pour le second mot
   du titre en italique vert. Il ne manquait que l'état « photographie en
   attente ».

   Le trait discontinu est celui du portrait de la direction générale : dans
   tout le site, un cadre en pointillé veut dire « image à fournir ». Une seule
   convention, donc rien à deviner pour l'équipe éditoriale.

   Le libellé porte sa typographie sur l'ENVELOPPE du widget : la règle de
   normalisation `.mcl-page .elementor-widget-heading div.elementor-heading-title
   {font:inherit}` compte un sélecteur d'élément de plus et l'emporterait
   autrement. (Piège déjà payé sur les pastilles du conseil.)
   -------------------------------------------------------------------------- */
.mcl-page .soins-hero .sh-media--attente,
.mcl-page .cadre-attente{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:28px;
  text-align:center;
  border:2px dashed rgba(36,71,91,0.22);
  border-radius:14px;
  background:var(--paper);
}
.mcl-page .soins-hero .sh-media--attente{align-self:center; border-radius:24px}
/* Elementor pose `position:absolute; inset:0` sur le ::before de tout
   conteneur — c'est son voile de fond. Sans remise à zéro explicite, l'icône
   se colle dans le coin haut-gauche du cadre au lieu de suivre le flux.
   Troisième fois que ce piège se paie sur ce projet. */
.mcl-page .soins-hero .sh-media--attente::before,
.mcl-page .cadre-attente::before{
  content:"";
  position:relative;
  inset:auto;
  flex:none;
  width:30px;
  height:30px;
  opacity:0.4;
  background:no-repeat center/contain
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2324475B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='8.5' cy='9.5' r='1.6'/%3E%3Cpath d='m21 15-5-5L5 20'/%3E%3C/svg%3E");
}
.mcl-page .sh-media-l,
.mcl-page .ca-l{
  font-family:var(--mono);
  font-size:0.75rem;
  line-height:1.55;
  letter-spacing:0.04em;
  color:var(--ink-soft);
  max-width:32ch;
}

/* Sous 900 px la grille repasse en une colonne (règle du gabarit) : le cadre
   n'a plus de raison de garder le format 4/3 d'une photographie absente. */
@media (max-width:900px){
  .mcl-page .soins-hero .sh-media--attente{aspect-ratio:auto; min-height:180px}
}

/* Le titre sur deux colonnes : le gabarit monte à 5,75 rem sur un en-tête
   pleine largeur ; dans une colonne de 1,1fr, « Notre gouvernance » y passerait
   sur deux lignes. La taille est donc réduite pour CET en-tête seulement —
   `.sh-grid--media` sert aussi aux pages de soins, dont les titres sont courts.
   `text-wrap:balance` rattrape les paliers de texte agrandis, où la coupure
   redevient inévitable. */
.mcl-page .soins-hero.sh-hero--duo h1{
  font-size:clamp(2.25rem, calc(4vw * var(--macl-echelle, 1)), 3.75rem);
  line-height:1.06;
  text-wrap:balance;
}

/* Le bloc de texte doit se tenir : sur la maquette, surtitre, titre et
   introduction forment un ensemble serré, et non trois étages espacés. Les
   écarts du gabarit — pensés pour un en-tête pleine largeur — sont donc
   réduits, et la colonne remonte. */
/* Le `padding-top:16px` qui vivait ici est RETIRÉ : il remontait le fil
   d'Ariane à 48 px alors que 35 pages le posent à 72, et c'est ce décalage que
   Raz voyait. Le resserrement du bloc de texte, lui, est conservé — il vient
   des trois règles ci-dessous, pas du rembourrage du chapeau. */
/* `start` et NON `center` : centré, le bloc de texte se plaçait au milieu
   d'une photo plus haute que lui, et le surtitre tombait 51 px plus bas que
   sur les 28 pages de la norme — mesuré sur `/lhopital/agrements/`, surtitre à
   240 au lieu de 189. La ligne de départ d'une page ne doit pas dépendre de la
   hauteur de sa photo. */
.mcl-page .soins-hero.sh-hero--duo .sh-grid{align-items:start; gap:48px}
/* `margin-bottom` aligné sur la norme : 14 px posaient le titre à 240 au lieu
   de 246. */
.mcl-page .soins-hero.sh-hero--duo .sh-kicker{margin-bottom:20px}
.mcl-page .soins-hero.sh-hero--duo .sh-lede{margin-top:18px; max-width:46ch}
/* Le cadre trop haut repoussait le texte vers le bas de la colonne : sa
   hauteur est ramenée près de celle du bloc de texte. */
.mcl-page .soins-hero.sh-hero--duo .sh-media--attente{max-height:330px}

/* ---------------------------------------------------------------------------
   AGRÉMENTS, MENTIONS ET PRIX — page 482, 24 août 2026
   ---------------------------------------------------------------------------
   Composants repris tels quels : `.sej-card`, `.sej-cols`, `.doc-list`,
   `.tl-item` (la chronologie de « Notre histoire »), `.cadre-attente` (le
   cadre en pointillé de l'en-tête Gouvernance, factorisé ci-dessus).
   Ce bloc n'ajoute que ce qui manquait vraiment.

   Rappel de spécificité : sur un widget Titre, la couleur et la typographie se
   posent sur l'ENVELOPPE — la normalisation du thème
   (`div.elementor-heading-title{font:inherit; color:inherit}`) porte un
   sélecteur d'élément de plus et l'emporterait sinon.
   -------------------------------------------------------------------------- */

/* --- La vignette du statut, dans l'en-tête -------------------------------- */
.mcl-page .agr-statut{align-self:center; display:flex; flex-direction:column; gap:16px}
/* PIÈGE. Un conteneur Elementor est en `flex-direction:column` par défaut :
   `justify-content:center` y centre VERTICALEMENT. C'est `align-items` qui
   centre en largeur. Le sceau se retrouvait collé à gauche de sa carte. */
.mcl-page .agr-sceau{display:flex; flex-direction:column; align-items:center; justify-content:center; padding:6px 0 2px}
.mcl-page .agr-sceau-img img{width:190px; height:auto; display:block}
/* Ces trois titres sont de VRAIS titres (h2, h3). La normalisation du thème ne
   vise que `div.elementor-heading-title` et `span.…` : sur un h2 ou un h3, la
   taille reste celle du navigateur — 32 px et 28 px — et une règle posée sur
   l'enveloppe n'y peut rien, l'élément ayant sa propre taille.
   Règle générale du projet, à retenir dans les deux sens :
     · titre rendu en div ou span → typographie sur l'ENVELOPPE ;
     · titre rendu en h1…h6       → typographie sur le TITRE lui-même. */
.mcl-page .agr-statut-t .elementor-heading-title{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:1.375rem;
  line-height:1.2;
  color:var(--navy-800);
  text-align:center;
  margin:0;
}
/* La pastille nomme l'organisme et l'année : c'est la source du statut, pas un
   ornement. Elle se centre sous le titre et épouse son texte. */
.mcl-page .agr-pastille{text-align:center; color:#8C1550}              /* 7,05:1 sur #FADCE9 */
.mcl-page .inn-pastille{color:#8C1550}
.mcl-page .agr-pastille .elementor-heading-title,
.mcl-page .inn-pastille .elementor-heading-title{
  display:inline-block;
  padding:8px 18px;
  border-radius:999px;
  background:#FADCE9;
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:0.875rem;
}

/* --- La note d'attente : ce qu'il reste à fournir -------------------------- */
.mcl-page .note-attente{
  border:1px dashed rgba(36,71,91,0.28);
  border-radius:12px;
  padding:16px 20px;
  display:flex;
  flex-direction:column;
  gap:6px;
  background:transparent;
}
.mcl-page .note-attente .na-k{
  font-family:var(--mono);
  font-size:0.6875rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  font-weight:600;
  color:#8C1550;                                                        /* 8,24:1 */
}
.mcl-page .note-attente p{margin:0; font-size:0.875rem; line-height:1.6; color:var(--ink-soft)}

/* --- Les cinq engagements -------------------------------------------------- */
.mcl-page .agr-grille{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:18px;
  padding:0;
}
.mcl-page .agr-eng{
  display:flex;
  flex-direction:column;
  gap:18px;
  min-height:170px;
  padding:22px 24px 26px;
  background:#fff;
  border:1px solid rgba(36,71,91,0.13);
  border-radius:16px;
}
/* Le numéro est une pastille ronde : il ordonne la lecture sans peser autant
   qu'un gros chiffre. */
.mcl-page .agr-num{color:#8C1550}
.mcl-page .agr-num .elementor-heading-title{
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:#FADCE9;
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:0.9375rem;
}
.mcl-page .agr-eng-t .elementor-heading-title{
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:1.0625rem;
  line-height:1.35;
  color:var(--navy-800);
  text-wrap:pretty;
  margin:0;
}
/* La sixième case dit à quoi tout cela sert : teintée, sans numéro, pour
   qu'elle ne se compte pas dans les cinq. */
.mcl-page .agr-eng--mot{
  background:#E6F0EA;
  border-color:rgba(36,71,91,0.10);
  justify-content:center;
}
.mcl-page .agr-eng--mot p{
  margin:0;
  font-family:var(--macl-titre);
  font-weight:500;
  font-size:1.0625rem;
  line-height:1.45;
  color:var(--navy-800);                                                /* 8,47:1 */
  text-wrap:pretty;
}

/* --- La chronologie des mentions ------------------------------------------ */
/* `.tl-item` vient de « Notre histoire » ; il lui manquait seulement un titre
   au-dessus du texte, la maquette en demandant un. */
.mcl-page .tl{padding:0}
.mcl-page .tl-corps{padding:0; display:flex; flex-direction:column; gap:4px}
.mcl-page .tl-t .elementor-heading-title{
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:1.0625rem;
  line-height:1.3;
  color:var(--navy-800);
  margin:0;
}
.mcl-page .tl--large .tl-item .yr{font-size:1.375rem; color:var(--navy-800)}

/* --- Le pied de section : rapports et note -------------------------------- */
.mcl-page .agr-pied{margin-top:34px; align-items:stretch}
.mcl-page .agr-rapports{display:flex; align-items:center; padding:18px 26px}
.mcl-page .agr-rapports .doc-list{width:100%}
.mcl-page .agr-rapports .doc-list li{border-bottom:none}

@media (max-width:1100px){
  .mcl-page .agr-grille{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width:700px){
  .mcl-page .agr-grille{grid-template-columns:1fr}
  .mcl-page .agr-eng{min-height:0}
}

/* Une mesure de lecture, pas une ligne pleine largeur : à 1 100 px, ces
   paragraphes faisaient 110 caractères par ligne — l'œil perd le début de la
   ligne suivante bien avant.

   La contrainte est posée sur le PARAGRAPHE, pas sur le widget : l'enveloppe
   d'un widget Texte reçoit de la feuille d'Elementor un `max-width:100%` que
   `.mcl-page .rich{max-width:74ch}` ne franchit pas — cette règle-là est donc
   sans effet sur tout le site, et pas seulement ici. À reprendre un jour pour
   l'ensemble des blocs `.rich`. */
.mcl-page .agr-texte p{max-width:64ch}

/* Les points de la chronologie reprennent le magenta de la maquette. Portés
   par une variante, pour ne pas déplacer ceux de « Notre histoire ». */
.mcl-page .tl--mentions .tl-item::before{background:var(--magenta-500)}

/* ---------------------------------------------------------------------------
   LE PIED DE PAGE — sorti du contenu des pages, 24 août 2026
   ---------------------------------------------------------------------------
   Le pied n'existait que sur trois pages (Accueil, Soins et services, Préparer
   son séjour), où il avait été importé comme des BLOCS DE CONTENU. Les 38
   autres pages n'en avaient aucun : elles retombaient sur le pied du thème,
   vide, donc haut de 0 px. Signalé par Raz sur la page L'hôpital.

   Il devient un gabarit Elementor affiché sur tout le site. Ces 41 règles
   viennent du CSS propre à la page 31, où Elementor les préfixait par
   `.elementor-31` : elles n'y valaient que pour cette page-là et n'auraient
   pas suivi le gabarit.

   Reprises DANS L'ORDRE et telles quelles, y compris leurs répétitions : le
   fichier d'origine empile plusieurs couches de correctifs sur les mêmes
   sélecteurs, toutes en `!important`. Réordonner ou dédoublonner changerait le
   résultat. Seuls ont été retirés les sélecteurs étrangers au pied qui
   partageaient une règle avec lui (.hmc-paths-grid, .hmc-hero, etc.).

   Les quatre variables employées — --peach-100, --ink-soft, --mag-700,
   --navy-800 — sont bien définies dans cette feuille : vérifié avant report.
   -------------------------------------------------------------------------- */
.hmc-footer{background:var(--peach-100);margin-top:0;padding:48px 56px 26px!important;gap:26px}
.hmc-footer-grid{gap:40px;flex-wrap:wrap;justify-content:space-between}
.hmc-foot-brand{flex:1 1 280px;gap:12px}
.hmc-foot-logo img{max-width:170px}
/* Elementor centre les widgets Image par défaut. Dans le pied, le logo doit
   s'aligner sur l'adresse qu'il surmonte, pas flotter au milieu de sa colonne. */
.hmc-foot-logo,
.hmc-foot-logo .elementor-widget-container{text-align:left!important}
.hmc-foot-addr p{color:var(--ink-soft);font-size:0.84375rem;line-height:1.6}
.hmc-foot-col{flex:0 1 180px;gap:10px}
.hmc-foot-h .elementor-heading-title{font-size:0.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mag-700);font-weight:800}
.hmc-foot-list .elementor-icon-list-icon{display:none!important}
.hmc-foot-list .elementor-icon-list-item{padding:5px 0!important;margin:0!important}
.hmc-foot-list .elementor-icon-list-text{color:var(--navy-800);font-size:0.875rem}
.hmc-foot-social{flex:0 1 160px;gap:10px}
.hmc-foot-bot{border-top:1px solid #e6d6c2;padding-top:16px}
.hmc-foot-bot p{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--ink-soft);font-size:0.78125rem}
/* Avis légal et Confidentialité sont des liens depuis le 1er septembre :
   ils gardent le ton de la ligne et ne se signalent qu'au survol. */
.hmc-foot-bot p a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(36,71,91,0.28)}
.hmc-foot-bot p a:hover,
.hmc-foot-bot p a:focus-visible{color:var(--magenta-500);border-bottom-color:currentColor}
.hmc-footer-grid{display:flex!important;flex-direction:row!important;flex-wrap:wrap}
.hmc-footer-grid>*{min-width:0}
.hmc-footer{background:var(--peach-100)!important}
.hmc-foot-brand{flex:1 1 260px!important;width:auto!important}
.hmc-foot-col{flex:0 1 170px!important;width:auto!important}
.hmc-foot-social{flex:0 1 160px!important;width:auto!important}
@media(max-width:1024px){
  .hmc-footer{padding-left:22px!important;padding-right:22px!important}
  .hmc-footer-grid{flex-direction:column!important}
  .hmc-foot-brand,.hmc-foot-col,.hmc-foot-social{flex:1 1 auto!important;width:100%!important}
}
@media(max-width:560px){
  .hmc-foot-bot p{flex-direction:column;gap:6px}
}
.hmc-footer{padding:58px 56px 28px!important;gap:30px}
.hmc-footer-grid{flex-wrap:wrap!important;row-gap:34px}
.hmc-foot-h .elementor-heading-title{color:#C4761F!important}
.hmc-foot-social{flex:0 0 100%!important;width:100%!important;align-items:center!important;text-align:center;gap:12px;margin-top:6px;order:9}
.hmc-foot-social .hmc-foot-h .elementor-heading-title{text-align:center}
.hmc-footer{padding:66px 56px 32px!important;gap:38px}
.hmc-footer-grid{justify-content:flex-start!important;gap:72px!important;column-gap:72px!important;align-items:flex-start}
.hmc-foot-brand{flex:0 1 300px!important;width:auto!important}
.hmc-foot-col{flex:0 0 auto!important;width:auto!important;min-width:150px}
.hmc-foot-addr p{line-height:1.7}
.hmc-footer-grid{display:grid!important;grid-template-columns:2fr 1fr 1fr!important;gap:48px!important;column-gap:48px!important;row-gap:34px!important;align-items:start!important;justify-content:stretch!important}
.hmc-foot-brand{flex:none!important;width:auto!important;grid-column:1!important}
.hmc-foot-col{flex:none!important;width:auto!important;min-width:0!important}
.hmc-foot-social{grid-column:1 / -1!important}
@media(max-width:1024px){
  .hmc-footer-grid{display:grid!important;grid-template-columns:1fr!important}
  .hmc-foot-brand,.hmc-foot-col{grid-column:1!important}
}
.hmc-foot-bot{width:100%!important;flex-basis:100%!important}
.hmc-foot-bot p{width:100%!important}

/* Hors des pages 31/32/33, le pied n'a plus `.hmc-page` au-dessus de lui : la
   famille typographique lui venait de là. On la lui redonne explicitement,
   sans quoi il change de police d'une page à l'autre. */
.hmc-footer{font-family:var(--macl-titre)}

/* La barre latérale est en `position:fixed` sur 240 px ; c'est `.mcl-page` /
   `.hmc-page` qui portait le décalage par une marge à gauche. Le pied, devenu
   gabarit, sort de ce conteneur : sans la même marge il glisse SOUS la barre
   et son logo se retrouve tronqué. Les valeurs et le point de repli sont
   exactement ceux des conteneurs de page — à changer ensemble. */
body > .elementor-location-footer{
  margin-left:240px;
  max-width:calc(100% - 240px);
}
@media (max-width:1024px){
  body > .elementor-location-footer{margin-left:0; max-width:100%}
}

/* Les icônes sociales du pied portent `.hmc-social`, pas `.hmc-foot*` : ma
   première extraction, filtrée sur « hmc-foot », les avait manquées. Hors de la
   page 31, elles retombaient sur les couleurs officielles d'Elementor — des
   carrés bleu Facebook, rouge YouTube — au lieu des cercles au trait de la
   maquette. Vérifié en listant les classes réellement présentes dans le pied,
   plutôt qu'en supposant leur préfixe. */
.hmc-social{justify-content:center!important}
.hmc-social .elementor-social-icon{
  background:transparent!important;
  border:1.5px solid var(--navy-800)!important;
  border-radius:50%!important;
  width:40px!important;
  height:40px!important;
}
.hmc-social .elementor-social-icon svg,
.hmc-social .elementor-social-icon i{fill:var(--navy-800)!important;color:var(--navy-800)!important}
.hmc-social .elementor-social-icon:hover{background:var(--navy-800)!important}
.hmc-social .elementor-social-icon:hover svg,
.hmc-social .elementor-social-icon:hover i{fill:#fff!important;color:#fff!important}

/* --- Les visuels des mentions --------------------------------------------- */
/* Le certificat 2018 se range en regard de son jalon. Une troisième colonne
   suffit : la chronologie garde sa gouttière et son filet. */
/* `.tl` porte une marge gauche de 8 px, destinée à faire tomber la pastille
   de chaque jalon (`::before{left:-7px}`) juste à l'intérieur de la colonne de
   contenu. Sur « Notre histoire » le texte est plafonné à 68ch et n'atteint
   jamais le bord droit ; ici le certificat s'y appuie et dépassait donc de
   8 px. On rend la marge de l'autre côté. */
.mcl-page .tl--mentions{width:calc(100% - 8px)}   /* une marge, pas un décalage */
.mcl-page .tl--large .tl-item--illustre{
  grid-template-columns:6em minmax(0,1fr) 210px;
  align-items:start;
}
.mcl-page .tl-visuel{padding:0}
.mcl-page .tl-visuel img{
  display:block;
  width:100%;
  height:auto;
  border-radius:10px;
  border:1px solid rgba(36,71,91,0.14);
}
.mcl-page .tl-visuel a{display:block; cursor:zoom-in}

/* La photographie d'équipe ferme la section : pleine largeur, légende dessous.
   Elle est décorative pour la lecture, mais son texte de remplacement décrit
   la scène — c'est lui qui porte l'information pour qui ne la voit pas. */
.mcl-page .agr-photo{margin-top:38px; padding:0}
/* La photographie est un cliché de reportage, pas un visuel de studio : son
   grain se voit dès qu'on l'étire. Le fichier servi fait 2 048 px ; à 1 000 px
   d'affichage on est donc à 2,05× — le rapport qui garantit la netteté sur un
   écran à 2×, et la limite au-delà de laquelle elle redeviendrait molle.

   Elle est centrée dans la colonne, et la légende suit la même largeur pour
   que leurs bords gauches s'alignent. */
.mcl-page .agr-photo-img img{
  display:block;
  width:100%;
  max-width:1000px;
  margin-inline:auto;
  height:auto;
  border-radius:14px;
}
.mcl-page .agr-legende p{
  margin:14px auto 0;
  max-width:1000px;
  font-size:0.875rem;
  line-height:1.6;
  color:var(--ink-soft);
  text-wrap:normal;
}

@media (max-width:900px){
  /* Sous cette largeur la chronologie passe déjà en une colonne : le
     certificat suit le texte au lieu de le serrer. */
  .mcl-page .tl--large .tl-item--illustre{grid-template-columns:1fr}
  .mcl-page .tl-visuel{max-width:260px; margin-top:12px}
}

/* ---------------------------------------------------------------------------
   INNOVATION ET PROJETS — page 484, 24 août 2026
   ---------------------------------------------------------------------------
   Repris tels quels : `.sej-section`, `.sej-cols`, `.sej-card`, `.cadre-attente`,
   `.note-attente`, `.agr-num` (la puce numérotée) et `.agr-pastille`, désormais
   groupée avec `.inn-pastille` plutôt que dupliquée.

   Nouveau ici : un en-tête de section SANS filet, une carte qui contient toute
   une section, une liste d'atouts à filets, et la fiche de projet à deux
   colonnes.
   -------------------------------------------------------------------------- */

/* --- En-tête de section sans filet ---------------------------------------- */
/* Le gabarit `sej-` souligne ses titres d'un trait de 4 px. Les maquettes de
   cette page n'en montrent pas : l'en-tête garde son rythme, perd son trait. */
.mcl-page .sej-head--nu{
  border-bottom:0;
  padding-bottom:0;
  margin-bottom:34px;
  gap:14px;
}
.mcl-page .inn-lede p{margin:0; max-width:56ch; font-size:1rem; line-height:1.65; color:var(--ink-soft)}

/* Un filet fin sépare l'en-tête de page de la première section, comme sur la
   maquette — il remplace le trait épais qu'on vient de retirer. */
.mcl-page .inn-section + .inn-section,
.mcl-page .soins-hero + .inn-section{border-top:1px solid rgba(36,71,91,0.12)}

/* --- La carte des trois atouts -------------------------------------------- */
.mcl-page .inn-atouts{display:flex; flex-direction:column; gap:0; align-self:start; padding:26px 30px 8px}
.mcl-page .inn-pastille .elementor-heading-title{margin-bottom:20px}
.mcl-page .inn-atout{padding:18px 0; border-top:1px solid rgba(36,71,91,0.13)}
.mcl-page .inn-atout:first-of-type{border-top:0; padding-top:0}
.mcl-page .inn-atout-t .elementor-heading-title{
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:1.0625rem;
  line-height:1.3;
  color:var(--navy-800);
  margin:0 0 4px;
}
.mcl-page .inn-atout p{margin:0; font-size:0.875rem; line-height:1.55; color:var(--ink-soft)}

/* --- La carte de l'évaluation vestibulaire -------------------------------- */
/* Une section entière dans une carte : c'est un service offert, pas un
   chantier, et la maquette le détache ainsi du reste de la page. */
.mcl-page .inn-carte{
  background:#fff;
  border:1px solid rgba(36,71,91,0.13);
  border-radius:20px;
  padding:40px 44px 44px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:20px;
}
.mcl-page .inn-carte .ck{
  font-family:var(--mono);
  font-size:0.6875rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--magenta-700);
}
.mcl-page .inn-carte h2{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:clamp(1.75rem, calc(2.6vw * var(--macl-echelle, 1)), 2.375rem);
  line-height:1.15;
  letter-spacing:-0.02em;
  margin:0;
  color:var(--navy-800);
}
.mcl-page .inn-texte p{max-width:64ch}
.mcl-page .inn-cadre{align-self:stretch; min-height:280px; margin-top:8px}
.mcl-page .inn-cadre-hero{min-height:300px}

/* --- Les fiches de projet -------------------------------------------------- */
.mcl-page .inn-projets{display:flex; flex-direction:column; gap:22px; padding:0}
.mcl-page .proj-carte{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,0.95fr);
  gap:34px;
  align-items:start;
  background:#fff;
  border:1px solid rgba(36,71,91,0.13);
  border-radius:20px;
  padding:32px 36px;
}
.mcl-page .proj-corps{display:flex; flex-direction:column; gap:16px; padding:0}
.mcl-page .proj-tete{display:flex; flex-direction:row; align-items:center; gap:14px; padding:0}
.mcl-page .proj-cat{
  font-family:var(--mono);
  font-size:0.6875rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--magenta-700);
}
/* Le titre est un texte d'attente : il est volontairement en retrait, mais
   reste lisible — il s'affiche en clair pour les visiteurs tant qu'il n'est pas
   remplacé. `#687680` donne 4,68:1 sur blanc, au-dessus du seuil AA. */
.mcl-page .proj-titre .elementor-heading-title{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:1.5rem;
  line-height:1.2;
  letter-spacing:-0.015em;
  color:#687680;
  margin:0;
}
.mcl-page .proj-cadre{min-height:250px; align-self:stretch}

@media (max-width:900px){
  .mcl-page .proj-carte{grid-template-columns:1fr; gap:22px; padding:26px 24px}
  .mcl-page .proj-cadre{min-height:180px}
  .mcl-page .inn-carte{padding:30px 26px 32px}
  .mcl-page .inn-cadre{min-height:200px}
  .mcl-page .inn-cadre-hero{min-height:220px}
}

/* Le surtitre en capitales, comme sur les maquettes de la page Innovations.
   Resserrée sur `.inn-section` le 25 août : posée sur `sej-head--nu` seul,
   elle mettait aussi en capitales le surtitre de la page 494, dont la
   maquette le montre en casse normale. Le modificateur dit « en-tête sans
   filet » — il ne doit rien dire de la casse. */
.mcl-page .inn-section .sej-head--nu .sej-num{text-transform:uppercase}

/* Le lien vers la clinique : une pilule bordée, et non le lien nu que produit
   le gabarit. C'est le seul appel à l'action de la page. */
.mcl-page .inn-lien .elementor-button{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:13px 24px;
  border:1.5px solid rgba(36,71,91,0.25);
  border-radius:999px;
  background:#fff;
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:1rem;
  line-height:1.2;
  color:var(--navy-800);
  cursor:pointer;
  transition:background 160ms, border-color 160ms, color 160ms;
}
.mcl-page .inn-lien .elementor-button:hover,
.mcl-page .inn-lien .elementor-button:focus{
  background:var(--navy-800);
  border-color:var(--navy-800);
  color:#fff;
}

/* ==========================================================================
   DOCUMENTATION INSTITUTIONNELLE
   --------------------------------------------------------------------------
   La liste n'est plus faite de blocs : elle est rendue par le court-code
   [macl_documents], à partir du type de contenu « Documents ». Le compteur de
   chaque catégorie est donc toujours à jour — voir macl-documents.php.

   Deux colonnes : un rail de navigation qui reste à vue pendant le
   défilement, et le corps, une section par catégorie.
   ========================================================================== */

.mcl-page .macl-docs{
  display:grid;
  grid-template-columns:264px minmax(0,1fr);
  gap:56px;
  align-items:start;
}

/* --- le rail ------------------------------------------------------------ */

.mcl-page .macl-docs-rail{
  position:sticky;
  /* 70px : la hauteur du sous-menu collant, comme `.sej-section`. */
  top:96px;
}

.mcl-page .macl-docs-chercher{display:block;margin:0 0 22px}

.mcl-page .macl-docs input[type="search"]{
  width:100%;
  font-family:var(--sans);
  font-size:0.875rem;
  color:var(--ink);
  background:#fff;
  border:1px solid rgba(36,71,91,0.22);
  border-radius:var(--r-pill);
  padding:11px 18px;
  -webkit-appearance:none;
  appearance:none;
}
.mcl-page .macl-docs input[type="search"]::placeholder{color:var(--ink-soft)}   /* 6,94:1 */
.mcl-page .macl-docs input[type="search"]:focus{
  outline:2px solid var(--magenta-500);
  outline-offset:2px;
  border-color:transparent;
}

.mcl-page .macl-docs-cats{list-style:none;margin:0;padding:0;border-top:1px solid rgba(36,71,91,0.13)}
.mcl-page .macl-docs-cats li{border-bottom:1px solid rgba(36,71,91,0.13)}

.mcl-page .macl-docs-cats a{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  padding:13px 2px;
  font-size:0.9375rem;
  line-height:1.35;
  color:var(--navy-800);
  text-decoration:none;
}
.mcl-page .macl-docs-cats a:hover .dc-nom{color:var(--magenta-700);text-decoration:underline}

/* Le nombre : c'est lui qui se recalcule à chaque ajout ou retrait. */
.mcl-page .macl-docs-cats .dc-n{
  flex:none;
  font-family:var(--mono);
  font-size:0.6875rem;
  font-weight:700;
  letter-spacing:0.04em;
  color:var(--magenta-700);
  background:var(--magenta-100);
  border-radius:var(--r-pill);
  padding:3px 9px;
  min-width:26px;
  text-align:center;
}

.mcl-page .macl-docs-etat{
  margin:18px 0 0;
  font-size:0.8125rem;
  line-height:1.5;
  color:var(--ink-soft);
}
.mcl-page .macl-docs-etat:empty{margin:0}

/* --- le corps ----------------------------------------------------------- */

.mcl-page .macl-docs-groupe{scroll-margin-top:96px}
.mcl-page .macl-docs-groupe + .macl-docs-groupe{margin-top:52px}

.mcl-page .macl-docs-h{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:1.375rem;
  line-height:1.25;
  letter-spacing:-0.01em;
  color:var(--navy-800);
  margin:0 0 4px;
  padding-bottom:14px;
  border-bottom:2px solid var(--navy-800);
}

.mcl-page .macl-docs-liste{list-style:none;margin:0;padding:0}

.mcl-page .macl-doc{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:14px 0;
  border-bottom:1px dashed rgba(36,71,91,0.16);
}
.mcl-page .macl-doc:last-child{border-bottom:none}

/* `display:flex` l'emporte sur le `display:none` que le navigateur associe à
   l'attribut `hidden` : sans cette règle, le filtre masquerait les lignes… qui
   resteraient visibles. Même précaution pour les sections et le rail. */
.mcl-page .macl-doc[hidden],
.mcl-page .macl-docs-groupe[hidden],
.mcl-page .macl-docs-cats li[hidden],
.mcl-page .macl-docs-rien[hidden]{display:none}

.mcl-page .macl-doc .md-t{
  font-size:0.9375rem;
  line-height:1.45;
  color:var(--navy-800);
  text-decoration:none;
}
.mcl-page .macl-doc a.md-t:hover,
.mcl-page .macl-doc a.md-t:focus-visible{color:var(--magenta-700);text-decoration:underline}
.mcl-page .macl-doc span.md-t{color:var(--ink-soft)}   /* 6,50:1 — c'est du texte, pas un lien */

/* L'étiquette n'est pas saisie : elle vient du fichier joint. */
.mcl-page .macl-doc .md-e{
  flex:none;
  font-family:var(--mono);
  font-size:0.5625rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  /* Pas `--peach-700` : à 9 px sur `--peach-100`, il ne donne que 2,97:1.
     Ce brun-orangé tient 5,79:1 pour le même effet. */
  color:#8A4A00;
  background:var(--peach-100);
  border-radius:5px;
  padding:4px 7px;
}
.mcl-page .macl-doc .md-e--lien{color:var(--bleu-500);background:var(--bleu-100)}       /* 6,55:1 */
.mcl-page .macl-doc .md-e--vide{color:var(--ink-soft);background:rgba(36,71,91,0.08)}   /* 5,71:1 */

/* En contraste renforcé, la variable du mode reprend la main : sa spécificité
   (0,4,0) dépasse celle de la règle ci-dessus (0,3,0), sans `!important`. */
html[data-macl-contraste="aaa"] .mcl-page .macl-doc .md-e{color:var(--peach-700)}
/* Même correction pour l'ancienne étiquette `.doc-list`, encore employée sur
   Agréments : `--peach-700` sur `--peach-100` ne donnait que 2,97:1. */
html[data-macl-contraste="aaa"] .mcl-page .doc-list a::before,
html[data-macl-contraste="aaa"] .mcl-page .doc-list .elementor-button::before{color:var(--peach-700)}

.mcl-page .macl-docs-rien{
  margin:0;
  padding:26px 0;
  font-size:0.9375rem;
  color:var(--ink-soft);
}

/* Aux paliers de texte agrandi, le rail s'élargit avec lui : sans cela, le
   texte d'invite du champ se fait couper juste pour ceux qui l'ont agrandi. */
html[data-macl-texte="grand"] .mcl-page .macl-docs{grid-template-columns:292px minmax(0,1fr)}
html[data-macl-texte="tres-grand"] .mcl-page .macl-docs{grid-template-columns:320px minmax(0,1fr)}

@media (max-width:900px){
  .mcl-page .macl-docs{grid-template-columns:1fr;gap:34px}
  .mcl-page .macl-docs-rail{position:static;top:auto}
  html[data-macl-texte="grand"] .mcl-page .macl-docs,
  html[data-macl-texte="tres-grand"] .mcl-page .macl-docs{grid-template-columns:1fr}
}

/* ==========================================================================
   PARTENAIRES
   --------------------------------------------------------------------------
   Trois familles de partenaires, en fiches de même gabarit : le logo, le nom,
   une ligne qui dit ce que fait l'organisme.

   POURQUOI LE LOGO EST SUR SA PROPRE LIGNE. La maquette le montrait à gauche du
   nom, dans une pastille carrée — ce qui marche pour une icône carrée, comme
   celles (des favicons) qu'elle employait. Les vrais logos institutionnels sont
   des blocs HORIZONTAUX : signature graphique plus texte, souvent dans un
   rapport de 4:1. Écrasés dans 40 px de large, ils devenaient illisibles.
   Le logo occupe donc toute la largeur utile, hauteur bornée à 40 px.

   Le monogramme de deux ou trois lettres reste le comportement de repli tant
   qu'un logo n'a pas été fourni ; il tient la même hauteur, si bien que les
   fiches restent alignées entre elles.
   ========================================================================== */

.mcl-page .part-fam + .part-fam{margin-top:64px}

/* Le `margin:0 0 28px` qui vivait ici a été RETIRÉ, pas déplacé : il ne
   s'appliquait pas. Elementor pose `.e-con .elementor-widget.elementor-widget
   {margin-block-end:0}` à TROIS classes, qui bat les deux de ce sélecteur —
   mesuré, la marge calculée valait 0. L'espacement réel sous ce titre est le
   `gap:20px` du conteneur, réglable dans l'éditeur. Le remonter à trois
   classes le rendrait effectif mais verrouillerait l'éditeur : on ne le fait
   pas pour une marge. Voir la note sous « ANNUAIRE » pour la descente au `h2`. */
.mcl-page .part-fam-t h2,
.mcl-page h2.part-fam-t{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:clamp(1.75rem, calc(2.6vw * var(--macl-echelle, 1)), 2.25rem);
  line-height:1.15;
  letter-spacing:-0.02em;
  color:var(--navy-800);
  margin:0;
}

.mcl-page .part-grille{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:20px;
}

.mcl-page .part-carte{
  background:#fff;
  border:1px solid rgba(36,71,91,0.12);
  border-radius:14px;
  padding:22px 22px 24px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
}

/* La rangée du logo : hauteur fixe pour que toutes les fiches s'alignent,
   largeur libre pour que chaque logo garde son rapport. */
.mcl-page .part-pastille{
  height:40px;
  max-width:100%;
  display:flex;
  /* `flex-direction` EXPLICITE. Un conteneur Elementor est en colonne par
     défaut : sans cette ligne, `justify-content` réglerait la position
     verticale et le logo resterait centré en largeur. Même piège que le sceau
     d'Agréments — voir le journal. */
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  flex:none;
  /* Elementor ajoute 10 px de rembourrage à tout conteneur : le logo se
     retrouvait décalé de 10 px vers la droite par rapport au nom qu'il
     surmonte. Mesuré, identique sur les neuf. */
  padding:0;
}

/* Même piège que le logo du pied de page : Elementor centre ses widgets Image
   par défaut. Le logo doit s'aligner sur le texte qu'il surmonte. */
.mcl-page .part-pastille .elementor-widget-image,
.mcl-page .part-pastille .elementor-widget-container{text-align:left!important}

.mcl-page .part-pastille img{
  display:block;
  /* Elementor pose `margin:0 auto` sur l'image : `text-align` ne suffit donc
     pas à la ramener à gauche, il faut annuler la marge automatique. */
  margin-inline:0!important;
  height:auto;
  width:auto;
  max-height:40px;
  max-width:200px;
  object-fit:contain;
}

/* Le repli : deux ou trois lettres sur fond neutre, dans un carré de 40 px. */
.mcl-page .part-mono{
  width:40px;
  border-radius:9px;
  justify-content:center;
  background:rgba(36,71,91,0.07);
  font-family:var(--mono);
  font-size:0.6875rem;
  font-weight:700;
  letter-spacing:0.04em;
  color:var(--ink-soft);            /* 5,71:1 sur le fond composé */
  text-transform:uppercase;
}
.mcl-page .part-mono .elementor-heading-title{font:inherit; color:inherit}

/* Une fiche liée est cliquable sur toute sa surface, mais le lien reste porté
   par le seul nom : c'est lui que le lecteur d'écran annonce. La nappe est
   posée par un `::after` sur le lien, dans la fiche rendue `position:relative`.
   ATTENTION : un `::before` de conteneur Elementor hérite de `inset:0` (voile
   de fond) — d'où le choix de `::after`, et le `inset:0` écrit ici sciemment. */
.mcl-page .part-carte--lien{position:relative; transition:border-color .18s, box-shadow .18s}
.mcl-page .part-carte--lien:hover{
  border-color:rgba(36,71,91,0.28);
  box-shadow:0 2px 14px rgba(36,71,91,0.08);
}

/* PIÈGE. Elementor donne `position:relative` à l'enveloppe de chaque widget.
   La nappe se dimensionnait donc sur les 108 px du nom au lieu de la fiche
   entière — mesuré. Il faut rendre cette enveloppe `static` pour que le bloc
   contenant redevienne la fiche. */
.mcl-page .part-carte--lien .part-nom{position:static}

.mcl-page .part-nom a{color:inherit; text-decoration:none}
.mcl-page .part-carte--lien:hover .part-nom a{color:var(--magenta-700); text-decoration:underline}
.mcl-page .part-nom a::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:14px;
}
/* Le contour de focus doit épouser la fiche entière, sinon il n'entoure que
   deux mots au milieu d'une carte cliquable. */
.mcl-page .part-nom a:focus-visible{outline:none}
.mcl-page .part-nom a:focus-visible::after{
  outline:3px solid var(--magenta-500);
  outline-offset:3px;
}

.mcl-page .part-nom{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:0.9375rem;
  line-height:1.3;
  color:var(--navy-800);
  margin-top:-2px;
}
.mcl-page .part-nom .elementor-heading-title{font:inherit; color:inherit}

.mcl-page .part-desc{margin-top:-6px}
.mcl-page .part-desc p{
  margin:0;
  font-size:0.84375rem;
  line-height:1.55;
  color:var(--ink-soft);            /* 6,50:1 sur crème */
}

@media (max-width:1100px){
  .mcl-page .part-grille{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width:680px){
  .mcl-page .part-grille{grid-template-columns:1fr}
  .mcl-page .part-fam + .part-fam{margin-top:44px}
}

/* ==========================================================================
   RFI ET SOINS POST-AIGUS — page 492, section « Deux programmes »
   --------------------------------------------------------------------------
   Le sigle devient un grand code coloré, sur fiche blanche.

   POURQUOI PAS LE MAGENTA DE LA MAQUETTE. Elle proposait #9D1B56 pour SPA :
   c'est la famille que le site emploie partout pour les SOINS PALLIATIFS, et
   le sélecteur de programme, quelques sections plus haut, affiche une pastille
   magenta « Soins palliatifs ». Comme le sigle « SPA » ressemble déjà à
   « soins palliatifs », la couleur aurait renforcé la confusion au lieu de la
   lever. Vert et bleu de la charte, donc — décision de Raz.
   ========================================================================== */

.mcl-page .prog-carte{
  background:#fff;
  border:1px solid rgba(36,71,91,0.12);
}

/* Le sigle est rendu en `div` : la normalisation du thème (0,3,1) l'emporterait
   sur une règle posée sur le titre. Typographie et couleur vont donc sur
   l'ENVELOPPE, et `inherit` les fait descendre — voir le journal. */
.mcl-page .prog-code{
  font-family:var(--macl-titre);
  font-weight:800;
  font-size:clamp(1.75rem, calc(2.4vw * var(--macl-echelle, 1)), 2.125rem);
  line-height:1.05;
  letter-spacing:-0.02em;
  margin-bottom:6px;
}
.mcl-page .prog-code .elementor-heading-title{font:inherit; color:inherit}

.mcl-page .prog-code--rfi{color:#2E7A47}   /* 5,26:1 sur blanc */
.mcl-page .prog-code--spa{color:#0D4B99}   /* 8,46:1 sur blanc */

/* En contraste renforcé, on descend les deux d'un cran : la spécificité (0,4,0)
   suffit à passer devant, sans `!important`. */
html[data-macl-contraste="aaa"] .mcl-page .prog-code--rfi{color:#14512A}
html[data-macl-contraste="aaa"] .mcl-page .prog-code--spa{color:#083A78}

/* Noms des programmes (24 oct.) : « Programme de réadaptation … » passe sur deux
   lignes ; l'interligne 1 hérité de Elementor collait les lignes. */
.mcl-page .prog-carte h4.elementor-heading-title{line-height:1.3}
/* Les deux fiches à la même hauteur : la grille `.sej-cols` aligne en haut
   (align-items:start) ; ici seulement, chaque fiche s'étire sur la rangée. */
.mcl-page .sej-cols > .prog-carte{align-self:stretch}
/* Sigle, nom et paragraphe alignés d'une fiche à l'autre, même quand un nom
   passe sur deux lignes et l'autre sur une : chaque fiche occupe trois rangées
   de la grille parente et les partage (subgrid). Empilées, rien ne change. */
@supports (grid-template-rows: subgrid){
  .mcl-page .sej-cols > .prog-carte{
    --display:grid;
    display:grid;
    grid-row:span 3;
    grid-template-rows:subgrid;
    row-gap:20px;
    align-content:start;
  }
}

/* ==========================================================================
   « LES MOTIFS LES PLUS FRÉQUENTS » — page 492, section #rd-qui
   --------------------------------------------------------------------------
   Deux colonnes : un cadre photo à gauche, la liste des motifs à droite, un
   motif par ligne avec un filet de séparation.

   La rangée de puces `.chip-list` qui occupait cette place a été retirée : les
   motifs y étaient serrés dans un seul widget Titre, où ils redevenaient des
   éléments en ligne (piège n° 3 du journal). Ici chaque motif est un bloc à
   part entière, donc lisible par un lecteur d'écran comme un titre distinct.
   ========================================================================== */

.mcl-page .motifs-cols{
  display:grid;
  grid-template-columns:minmax(0, 0.95fr) minmax(0, 1fr);
  gap:56px;
  /* `stretch` : la photo prend EXACTEMENT la hauteur de la liste voisine —
     demande de Raz. C'est la liste qui commande, donc le calage reste juste si
     un motif s'ajoute ou disparaît. */
  align-items:stretch;
}

/* Le cadre en attente, lui, a besoin d'une proportion : vide, il n'a pas de
   contenu pour se donner une hauteur. Il ne sert plus sur cette page — la photo
   est posée — mais la règle reste pour les autres emplacements en attente. */
.mcl-page .motifs-cadre{
  aspect-ratio:1 / 1;
  padding:24px;
  width:100%;
}

.mcl-page .motifs-photo{padding:0; height:100%}
.mcl-page .motifs-photo-img,
.mcl-page .motifs-photo-img .elementor-widget-container{height:100%}
.mcl-page .motifs-photo-img img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  /* Le sujet est à gauche du cadre : on cale le recadrage dessus plutôt que sur
     le centre, sinon la marchette sort du champ. */
  object-position:32% center;
  border-radius:14px;
}

.mcl-page .motifs-liste{
  display:flex;
  /* Explicite : un conteneur Elementor est en colonne par défaut, mais on ne
     s'en remet plus à la valeur implicite — voir le journal Partenaires. */
  flex-direction:column;
  gap:0;
  padding:0;
}

/* Typographie relevée sur la maquette de Raz. Elle est rendue à 88 % de
   l'échelle de la page (colonne de 471 px contre 533) : ce sont donc les
   PROPORTIONS qui ont été mesurées, pas les pixels.
     · hauteur de capitale 14 px sur une colonne de 471 → corps ≈ 20 px,
       soit 22 px ramenés à la largeur réelle de la colonne ;
     · épaisseur des fûts 2 px pour 14 px de capitale : graisse 500.
       Le calcul par la largeur donnait 600 ; l'œil de Raz a tranché plus
       juste que la mesure, les fûts étant trop fins pour être mesurés à
       un demi-pixel près ;
     · filets tous les 65 px → rangées de 73 px à l'échelle de la page. */
.mcl-page .motif{
  font-family:var(--macl-titre);
  font-weight:500;
  font-size:1.375rem;
  line-height:1.35;
  color:var(--navy-800);            /* 9,24:1 sur crème */
  padding:22px 0;
  border-bottom:1px solid rgba(36,71,91,0.16);
}
.mcl-page .motif .elementor-heading-title{font:inherit; color:inherit}
.mcl-page .motifs-liste > .motif:first-child{padding-top:2px}
.mcl-page .motifs-liste > .motif:last-child{border-bottom:none}

@media (max-width:900px){
  .mcl-page .motifs-cols{grid-template-columns:1fr; gap:32px}
  .mcl-page .motifs-cadre{aspect-ratio:4 / 3}
}

/* ==========================================================================
   « DE L'ARRIVÉE AU CONGÉ » — page 492, section #rd-parcours
   --------------------------------------------------------------------------
   Trois colonnes : pastille numérotée et titre sur une ligne, texte dessous.

   COMPOSANTS PARTAGÉS — NE PAS ÉLARGIR CES RÈGLES. `.sej-steps` sert aussi sur
   Processus d'admission (page 500) en liste verticale, et `.sej-note` sur DIX-
   SEPT pages. Tout ce qui suit est donc conditionné aux modificateurs
   `--cols` et `--duree`, qui n'existent que sur cette section.

   Les couleurs sont celles du site, comme demandé : famille verte pour les
   étapes, bandeau lime pour la note.
   ========================================================================== */

.mcl-page .parcours-bloc{display:flex; flex-direction:column; gap:34px; padding:0}

.mcl-page .sej-steps--cols{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:44px;
}

.mcl-page .sej-steps--cols .sej-step{
  /* La pastille et le titre partagent la première rangée ; le texte occupe la
     seconde sur toute la largeur. Les trois éléments sont frères — c'est ce qui
     permet cette grille. */
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  column-gap:14px;
  row-gap:16px;
  align-content:start;
  padding:0;
  border-top:none;          /* le filet de la liste verticale n'a plus lieu d'être */
}

/* La pastille. Le chiffre était en `--teal-600` sur crème : 2,53:1, sous le
   seuil même pour du grand texte. Sur `--teal-100`, le `--teal-700` donne
   4,38:1 — et la pastille est ce que montre la maquette. */
.mcl-page .sej-steps--cols .sn{
  grid-column:1; grid-row:1;
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px; height:44px;
  border-radius:50%;
  background:var(--teal-100);
  color:var(--teal-700);
  font-size:1.375rem;
  line-height:1;
}
.mcl-page .sej-steps--cols .sn .elementor-heading-title{font:inherit; color:inherit}

.mcl-page .sej-steps--cols .sej-step-t{grid-column:2; grid-row:1; align-self:center}
.mcl-page .sej-steps--cols .sej-step-t .elementor-heading-title{
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:1.1875rem;
  line-height:1.25;
  margin:0;
  color:var(--navy-800);
}

.mcl-page .sej-steps--cols .sej-step-p{grid-column:1 / -1; grid-row:2}
.mcl-page .sej-steps--cols .sej-step-p p{
  margin:0;
  font-size:0.90625rem;
  line-height:1.6;
  color:var(--ink-soft);
  text-wrap:pretty;
}

/* Le bandeau : étiquette à gauche, texte à droite. Le fond reste `--lime-100`,
   la couleur que la note porte partout ailleurs sur le site. */
.mcl-page .sej-note--duree{
  grid-template-columns:170px minmax(0,1fr);
  gap:24px;
  padding:26px 30px;
  align-items:start;
}
.mcl-page .sej-note--duree .sej-note-l{
  font-family:var(--mono);
  font-size:0.6875rem;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  line-height:1.5;
  color:var(--teal-700);            /* 4,66:1 sur --lime-100 */
  padding-top:2px;
}
.mcl-page .sej-note--duree .sej-note-l .elementor-heading-title{font:inherit; color:inherit}
.mcl-page .sej-note--duree p{font-size:0.9375rem; line-height:1.6}

@media (max-width:1000px){
  .mcl-page .sej-steps--cols{grid-template-columns:1fr; gap:30px}
  .mcl-page .sej-note--duree{grid-template-columns:1fr; gap:10px}
}

/* ==========================================================================
   « L'ÉQUIPE AUTOUR DE VOUS » — page 492, section #rd-equipe
   --------------------------------------------------------------------------
   Les deux fiches côte à côte laissent place à un bouton contour, puis à un
   grand encadré blanc portant l'appel à l'admission.

   Le bouton contour réemploie `.inn-lien`, déjà posé sur Innovation : même
   pilule bordée, mêmes contrastes, rien de nouveau à vérifier.
   ========================================================================== */

/* Le filet épais sous le chapeau est retiré ICI SEULEMENT — demande de Raz, et
   c'est ce que montre la maquette. `.sej-head` sert sur toutes les sections du
   site : la règle est donc scopée à `#rd-equipe`. Le rembourrage bas suit, sans
   quoi il resterait 26 px de vide sous un filet devenu invisible. */
.mcl-page #rd-equipe .sej-head{
  border-bottom:none;
  padding-bottom:0;
  margin-bottom:0;
}

.mcl-page .equipe-liens{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  gap:14px;
  padding:0;
  margin-top:30px;
}

.mcl-page .admission-carte{
  background:#fff;
  border:1px solid rgba(36,71,91,0.13);
  border-radius:22px;
  padding:44px 48px 48px;
  /* L'écart de la maquette entre le bouton et l'encadré : ~95 px. L'encadré
     reste DANS la section 04 plutôt que d'en ouvrir une cinquième — deux
     sections consécutives donneraient 168 px de blanc. */
  margin-top:62px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0;
}

/* `.sej-num` n'est stylé que DANS un `.sej-head` : hors de lui, il retombe au
   texte courant. L'encadré n'étant pas un en-tête de section, le surtitre est
   redéfini ici — mêmes valeurs, pour que les deux se ressemblent. */
.mcl-page .admission-carte .sej-num{
  font-family:var(--mono);
  font-size:0.75rem;
  font-weight:600;
  letter-spacing:0.14em;
  color:var(--magenta-500);        /* 6,34:1 sur blanc */
  margin-bottom:14px;
}
.mcl-page .admission-carte .sej-num .elementor-heading-title{font:inherit; color:inherit}

.mcl-page .admission-carte h2{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:clamp(1.75rem, calc(2.6vw * var(--macl-echelle, 1)), 2.25rem);
  line-height:1.15;
  letter-spacing:-0.02em;
  color:var(--navy-800);
  margin:0 0 18px;
}

.mcl-page .admission-texte{max-width:none}
.mcl-page .admission-texte p{
  margin:0 0 30px;
  font-size:1rem;
  line-height:1.65;
  color:var(--ink-soft);          /* 6,50:1 */
  max-width:74ch;
}

/* Blanc sur `--teal-600` ne donne que 2,70:1 — l'un des douze échecs de
   contraste déjà relevés. `--teal-700` monte à 5,26:1. La correction est
   VOLONTAIREMENT limitée à ce bouton : `.btn-solid` sert ailleurs sur le site,
   et le corriger partout est une décision d'ensemble qui appartient à Raz.

   ATTENTION : `.btn-solid` peint L'ENVELOPPE du widget, pas le lien qu'elle
   contient — c'est elle, la pilule. Viser `.elementor-button` ne fait
   qu'ajouter un rectangle foncé à l'intérieur. Mesuré, puis corrigé. */
.mcl-page .admission-cta{
  background:var(--teal-700);
  border-color:var(--teal-700);
}
.mcl-page .admission-cta:hover,
.mcl-page .admission-cta:focus-within{
  background:var(--navy-800);
  border-color:var(--navy-800);
}

@media (max-width:700px){
  .mcl-page .admission-carte{padding:32px 26px 34px; margin-top:44px}
}
/* ==========================================================================
   « NOTRE PHILOSOPHIE DE SOINS » — page 494, section #sp-philo
   --------------------------------------------------------------------------
   Deux colonnes : filet magenta et titre à gauche, texte à droite.
   Remplace l'en-tête classique (surtitre numéroté + grand titre + paragraphe).

   Proportions relevées sur la maquette : colonne gauche 32 % de la largeur,
   colonne droite 61 %, gouttière 7 %. Le titre y fait 1,55 fois le corps du
   texte — on retient ce RAPPORT, en le calant sur l'échelle typographique du
   site plutôt que sur des pixels de maquette.
   ========================================================================== */

.mcl-page .philo-duo{
  display:grid;
  grid-template-columns:minmax(0,0.52fr) minmax(0,1fr);
  gap:76px;
  align-items:start;
  padding:0;
}

.mcl-page .philo-titre{padding:0; display:flex; flex-direction:column; gap:0}

/* Le filet seul, sans texte : `.eyebrow-line` dessine le sien en `::before`
   d'un libellé, ce qui suppose un libellé. Ici il n'y en a pas. */
.mcl-page .philo-filet{
  width:40px;
  height:3px;
  min-height:3px;
  background:var(--magenta-500);
  border-radius:2px;
  padding:0;
  margin-bottom:22px;
  flex:none;
}

.mcl-page .philo-titre h2{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:clamp(1.75rem, calc(2.8vw * var(--macl-echelle, 1)), 2.375rem);
  line-height:1.14;
  letter-spacing:-0.025em;
  color:var(--navy-800);            /* 9,24:1 sur crème */
  margin:0;
}

.mcl-page .philo-texte p{
  margin:0;
  font-size:1.0625rem;
  line-height:1.7;
  color:var(--ink-soft);            /* 6,50:1 */
  max-width:64ch;
  text-wrap:pretty;
}

@media (max-width:900px){
  .mcl-page .philo-duo{grid-template-columns:1fr; gap:24px}
}

/* ==========================================================================
   « L’ÉQUIPE AUTOUR DE LA PERSONNE » — page 494, section #sp-equipe
   --------------------------------------------------------------------------
   Une carte bleu nuit posée sur le crème. Filet magenta et titre à gauche,
   lien « Voir nos services cliniques » aligné à droite sur la même ligne ;
   puis le libellé « Au quotidien », les sept disciplines en pastilles, et le
   paragraphe qui les complète.

   LE MAGENTA SUR NUIT. #AD1E87 sur #14283A ne donne que 2,39:1 : sur fond
   sombre il s’éteint. On l'éclaircit d'un mélange avec du blanc, ce qui le
   garde dans la famille des soins palliatifs et le fait suivre le mode AAA,
   où --magenta-500 change de valeur. Mesuré : 5,53:1 pour le libellé.

   PIÈGE CONNU, ÉVITÉ ICI. Un conteneur Elementor est en `flex-direction:
   column` : les pastilles se rangeraient l’une SOUS l’autre. La direction est
   donc écrite explicitement. Et la pastille, c'est L’ENVELOPPE du widget --
   pas le `span` qu’elle contient.
   ========================================================================== */

.mcl-page .eq-carte{
  background:var(--navy-900);
  border-radius:24px;
  padding:54px 56px 56px;
  display:flex;
  flex-direction:column;
  gap:0;
}

.mcl-page .eq-tete{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:flex-end;
  gap:20px 48px;
  padding:0;
}

.mcl-page .eq-titre{padding:0; display:flex; flex-direction:column; gap:0; flex:1 1 22ch}

.mcl-page .eq-filet{
  width:40px;
  height:3px;
  min-height:3px;
  background:#D283BD;
  background:color-mix(in srgb, var(--magenta-500) 55%, #fff);
  border-radius:2px;
  padding:0;
  margin-bottom:22px;
  flex:none;
}

.mcl-page .eq-titre h2{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:clamp(1.625rem, calc(2.6vw * var(--macl-echelle, 1)), 2.125rem);
  line-height:1.16;
  letter-spacing:-0.025em;
  color:#fff;                        /* 15,04:1 sur nuit */
  margin:0;
}

/* Lien discret : ni pilule, ni bouton — un mot souligné, comme la maquette. */
.mcl-page .eq-lien{flex:0 0 auto; padding:0}
.mcl-page .eq-lien .elementor-button{
  background:none;
  border:0;
  padding:0 0 3px;
  border-radius:0;
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:0.9375rem;
  color:#fff;
  text-decoration:underline;
  text-underline-offset:5px;
  text-decoration-thickness:1.5px;
  transition:opacity 160ms;
}
.mcl-page .eq-lien .elementor-button:hover,
.mcl-page .eq-lien .elementor-button:focus{opacity:0.72; color:#fff}

.mcl-page .eq-label{
  font-family:var(--mono);
  font-size:0.6875rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  font-weight:600;
  color:#D283BD;
  color:color-mix(in srgb, var(--magenta-500) 55%, #fff);   /* 5,53:1 */
  margin-top:42px;
  padding:0;
}

.mcl-page .eq-pills{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  gap:10px;
  padding:0;
  margin-top:18px;
}

.mcl-page .eq-pills .eq-pill{
  width:auto;
  flex:0 0 auto;
  border:1.5px solid rgba(255,255,255,0.34);
  border-radius:999px;
  padding:9px 18px;
  font-family:var(--macl-titre);
  font-weight:500;
  font-size:0.9375rem;
  line-height:1.2;
  color:#fff;
  background:transparent;
}

.mcl-page .eq-texte{padding:0; margin-top:36px}
.mcl-page .eq-texte p{
  margin:0;
  font-size:1rem;
  line-height:1.7;
  color:#E8ECEF;                     /* 12,9:1 sur nuit */
  max-width:72ch;
  text-wrap:pretty;
}

@media (max-width:760px){
  .mcl-page .eq-carte{padding:34px 26px 36px; border-radius:18px}
  .mcl-page .eq-tete{align-items:flex-start}
  .mcl-page .eq-label{margin-top:32px}
}

/* Mode AAA : le libellé doit atteindre 7:1. Le magenta éclairci plafonne à
   5,38:1 sur la nuit assombrie du mode — on le passe en blanc, comme la
   règle générale le fait ailleurs pour les libellés sur fond foncé. */
html[data-macl-contraste="aaa"] .mcl-page .eq-label{color:#FFFFFF}
html[data-macl-contraste="aaa"] .mcl-page .eq-pills .eq-pill{border-color:rgba(255,255,255,0.55)}
html[data-macl-contraste="aaa"] .mcl-page .eq-texte p{color:#FFFFFF}

/* ==========================================================================
   « LE SOUTIEN AUX PROCHES » — page 494, section #sp-proches
   --------------------------------------------------------------------------
   L'en-tête ne bouge pas : la maquette conserve le surtitre numéroté, le
   grand titre et le filet marine. Seul le corps change.

   Deux colonnes égales au lieu de 55/45, gouttière élargie. À gauche le
   paragraphe puis un encadré rose portant la phrase sur les visites et le
   bouton ; à droite une photo.

   RELEVÉ SUR LA MAQUETTE (largeur utile 1005 px, page 1116 px → ×1,11) :
     · colonnes 468 et 470 px, gouttière 66 px  → 1fr 1fr, écart 72 px ;
     · encadré rose #F1E2EE — devenu --magenta-50 — rayon 17 px,
       marges internes 31 px ;
     · bouton blanc 294 × 51 px, en pilule ;
     · cadre photo 470 × 419 px → rapport 470/419.
   Le rose de la maquette est devenu le jeton --magenta-50 : il apparaît dans
   plusieurs maquettes, et sa teinte (312°) est celle du magenta de la charte,
   simplement désaturée.

   LE CORPS DE TEXTE. La maquette le pose nettement plus grand que les
   15,5 px du site — autour de 20 px. On monte à 17 px, la valeur déjà
   employée par la section « Notre philosophie de soins » sur cette même
   page : la colonne rétrécit, le texte doit suivre, mais introduire une
   troisième taille sur la page serait un recul. À trancher pour l'ensemble.
   ========================================================================== */

.mcl-page .proches-cols{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:72px;
  align-items:start;
  padding:0;
}

.mcl-page .proches-texte{padding:0}
.mcl-page .proches-texte p{
  margin:0;
  font-size:1.0625rem;
  line-height:1.7;
  color:var(--ink-soft);           /* 6,50:1 */
  text-wrap:pretty;
}

.mcl-page .proches-visites{
  background:var(--magenta-50);
  border-radius:18px;
  padding:32px 32px 30px;
  margin-top:34px;
  display:flex;
  flex-direction:column;
  gap:0;
  align-items:flex-start;
}
.mcl-page .proches-visites .proches-phrase{padding:0; margin-bottom:26px}
.mcl-page .proches-visites .proches-phrase p{
  margin:0;
  font-size:1.0625rem;
  line-height:1.55;
  color:var(--navy-800);           /* 7,92:1 sur le rose */
  max-width:32ch;
  text-wrap:pretty;
}

/* La pilule, c'est L'ENVELOPPE du widget. Le lien qu'elle contient porte les
   marges internes, pour que toute la pilule soit cliquable. */
.mcl-page .proches-btn{
  align-self:flex-start;
  width:auto;
  background:#FFFFFF;
  border-radius:999px;
  padding:0;
  transition:background 160ms, color 160ms;
}
.mcl-page .proches-btn .elementor-button{
  display:block;
  background:none;
  border:0;
  border-radius:999px;
  padding:18px 34px;
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:1.0625rem;
  line-height:1.2;
  color:var(--magenta-500);        /* 6,34:1 sur blanc */
}
.mcl-page .proches-btn:hover,
.mcl-page .proches-btn:focus-within{background:var(--magenta-700)}
.mcl-page .proches-btn:hover .elementor-button,
.mcl-page .proches-btn:focus-within .elementor-button{color:#FFFFFF}

.mcl-page .proches-photo{
  aspect-ratio:470/419;
  border-radius:18px;
  overflow:hidden;
  background:#EFE8DF;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.mcl-page .proches-photo img{width:100%; height:100%; object-fit:cover; display:block}

/* Cadre en attente de la photo. Volontairement visible : une image manquante
   doit se voir, pas se deviner. */
.mcl-page .proches-photo .proches-legende{
  padding:0 32px;
  text-align:center;
  font-family:var(--macl-titre);
  font-weight:500;
  font-size:0.9375rem;
  line-height:1.5;
  color:var(--navy-700);           /* 5,71:1 sur le cadre */
}

@media (max-width:900px){
  .mcl-page .proches-cols{grid-template-columns:1fr; gap:32px}
  .mcl-page .proches-photo{aspect-ratio:16/10}
}
@media (max-width:600px){
  .mcl-page .proches-visites{padding:24px 22px 22px; margin-top:26px}
  .mcl-page .proches-btn .elementor-button{padding:14px 22px; font-size:0.9375rem}
}

/* ==========================================================================
   « VISITER L’UNITÉ AVANT DE FAIRE UNE DEMANDE » — page 494, #sp-visiter
   --------------------------------------------------------------------------
   Une carte pleine largeur, en rose pâle : à gauche le texte, à droite le
   numéro de téléphone posé au corps du titre.

   LA COULEUR : --magenta-200, l'aplat pâle que le site emploie déjà pour les
   blocs Soins palliatifs (.pillar-block.p-pall). Quatre essais avant
   celui-là — --magenta-700, le prune #603358 de la maquette, puis le magenta
   officiel --magenta-500. Raz a tranché le 25 août pour la version pâle.

   POURQUOI PAS « UN PEU PLUS PÂLE » QUE LE MAGENTA OFFICIEL. Sur #AD1E87 le
   blanc ne tenait qu'à 6,34:1 : l'éclaircir de 10 % faisait tomber la mention
   « poste » à 4,10:1, sous le seuil, et de 20 % le blanc lui-même arrivait à
   4,50:1 pile. Aucune marge. L'aplat pâle inverse le problème — fond clair,
   texte foncé — et le site en a déjà un.

   Sur ce fond : numéro et mention « poste » en --magenta-700, 6,07:1 ;
   paragraphe en --navy-800, 6,01:1. --navy-700 aurait été plus discret pour
   la mention, mais il tombait à 4,23:1.

   La carte n'est pas un composant d'interface : aucun seuil de contour ne
   s'applique à elle. Le bouton de #sp-admission, lui, en a un.

   PAS DE FILET SOUS LE TITRE. La maquette du 02 en montre un, celle-ci non.
   Les deux sont suivies telles quelles — à uniformiser si besoin.

   RELEVÉ SUR LA MAQUETTE (largeur utile 1004 px, page 1116 px → ×1,11) :
     · carte pleine largeur, rayon ~32 px, marges internes 48 px ;
     · deux colonnes de 401 et 424 px, gouttière 83 px, centrées
       verticalement l’une par rapport à l’autre ;
     · hauteur de capitale du numéro = celle du titre → même corps ;
     · interligne du paragraphe 1,6.
   ========================================================================== */

/* L'en-tête sans filet réutilise `sej-head--nu`, déjà défini plus haut pour
   la page Innovations — même intention, une seule règle. */

.mcl-page .visiter-carte{
  background:var(--magenta-200);
  border-radius:32px;
  padding:52px;
}

.mcl-page .visiter-duo{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:88px;
  align-items:center;
  padding:0;
}

.mcl-page .visiter-texte{padding:0}
.mcl-page .visiter-texte p{
  margin:0;
  font-size:1.0625rem;
  line-height:1.6;
  color:var(--navy-800);           /* 6,01:1 */
  text-wrap:pretty;
}

.mcl-page .visiter-contact{padding:0; display:flex; flex-direction:column; gap:0}

/* Le numéro est posé au corps du titre de section : c’est ce que montre la
   maquette, hauteur de capitale identique. */
.mcl-page .visiter-tel{
  font-family:var(--macl-titre);
  font-weight:700;
  font-size:clamp(2.125rem, calc(3.8vw * var(--macl-echelle, 1)), 3.25rem);
  line-height:1.14;
  letter-spacing:-0.02em;
  color:var(--magenta-700);        /* 6,07:1 */
  padding:0;
  margin-bottom:14px;
}

.mcl-page .visiter-poste{
  font-family:var(--macl-titre);
  font-weight:400;
  font-size:1.0625rem;
  line-height:1.4;
  color:var(--magenta-700);        /* 6,07:1 */
  padding:0;
}

@media (max-width:860px){
  .mcl-page .visiter-carte{padding:36px 28px 34px; border-radius:22px}
  .mcl-page .visiter-duo{grid-template-columns:1fr; gap:30px; align-items:start}
}

/* Le corps de #sp-visiter n'a plus qu'une carte : la grille à deux colonnes
   la laisserait à mi-largeur. */
.mcl-page .sej-cols--une{grid-template-columns:minmax(0,1fr); margin-top:24px}

/* ==========================================================================
   « COMMENT ÊTRE ADMIS » — page 494, section #sp-admission
   --------------------------------------------------------------------------
   L'ancienne carte de #sp-visiter devient une SECTION à part entière, la
   cinquième : surtitre numéroté, grand titre, filet marine, puis deux
   colonnes — le texte à gauche, un seul appel à l'action à droite.

   Le bouton occupe TOUTE sa colonne, texte centré : c'est ce que montre la
   maquette, où il mesure 496 px pour une colonne de 496 px. Il n'est donc pas
   dimensionné par son libellé.

   RELEVÉ SUR LA MAQUETTE (largeur utile 1005 px, page 1116 px → ×1,11) :
     · colonnes 405 et 496 px, gouttière 103 px, centrées verticalement ;
     · bouton 496 × 63 px, en pilule pleine ;
     · interligne du paragraphe 1,7.

   Le bouton reprend --magenta-200, comme la carte de #sp-visiter.

   MAIS UN BOUTON N'EST PAS UNE CARTE. Le critère 1.4.11 demande 3:1 entre un
   composant d'interface et ce qui l'entoure : le rose pâle sur le crème de la
   page ne donne que 1,54:1 — le bouton perdrait son bord, on ne verrait plus
   où il commence. Il reçoit donc un contour --magenta-700, à 9,32:1 du fond
   de page. Libellé sur le rose : 6,07:1.
   ========================================================================== */

.mcl-page .admis-cols{
  display:grid;
  grid-template-columns:minmax(0,0.82fr) minmax(0,1fr);
  gap:112px;
  align-items:center;
  padding:0;
}

/* Les DEUX conteneurs sont remis à zéro : un conteneur Elementor porte
   10 px de marge par défaut, qui rognaient le bouton de 20 px sur la largeur
   de sa colonne. Mesuré : 532 px au lieu de 551. */
.mcl-page .admis-texte,
.mcl-page .admis-action{padding:0}
.mcl-page .admis-texte p{
  margin:0;
  font-size:1.0625rem;
  line-height:1.7;
  color:var(--ink-soft);           /* 6,50:1 */
  text-wrap:pretty;
}

/* La pilule, c'est L'ENVELOPPE du widget ; le lien porte les marges internes
   pour que toute la pilule soit cliquable. */
.mcl-page .admis-cta{
  width:100%;
  background:var(--magenta-200);
  border:2px solid var(--magenta-700);   /* 9,32:1 sur le crème — critère 1.4.11 */
  border-radius:999px;
  padding:0;
  transition:background 160ms, border-color 160ms;
}
.mcl-page .admis-cta .elementor-button{
  display:block;
  width:100%;
  text-align:center;
  background:none;
  border:0;
  border-radius:999px;
  padding:23px 32px;
  font-family:var(--macl-titre);
  font-weight:600;
  font-size:1.0625rem;
  line-height:1.2;
  color:var(--magenta-700);        /* 6,07:1 */
}
.mcl-page .admis-cta:hover,
.mcl-page .admis-cta:focus-within{background:var(--magenta-700); border-color:var(--magenta-700)}
.mcl-page .admis-cta:hover .elementor-button,
.mcl-page .admis-cta:focus-within .elementor-button{color:#FFFFFF}   /* 9,96:1 */
.mcl-page .admis-cta .arr{display:inline-block; transition:transform 200ms}
.mcl-page .admis-cta:hover .arr{transform:translateX(4px)}

@media (max-width:900px){
  .mcl-page .admis-cols{grid-template-columns:1fr; gap:32px; align-items:start}
}

/* ===========================================================================
   25 août 2026 · Sélecteur de programme de la page « Processus d'admission »
   aligné sur celui de « Soins et services »

   Les deux sélecteurs font la même chose et portaient deux habillages
   différents : capsule grise translucide ici, capsule blanche bordée là-bas;
   libellé en 600 ici, en 700 là-bas. Les valeurs ci-dessous sont relevées
   sur `.hmc-svc-seg` / `.hmc-svc-pill` (CSS de la page 32), qui fait foi.

   NON TOUCHÉ : les couleurs de programme. Ici la réadaptation est verte
   (`--teal-600`) et elle l'est aussi pour les numéros d'étape et l'encadré
   de la même page; sur « Soins et services » elle est orange `#F4942A`.
   Uniformiser suppose de trancher la page entière — décision de Raz.
   ======================================================================== */

/* Le libellé « Je consulte pour », comme sur Soins et services.

   La typographie est posée sur L'ENVELOPPE, pas sur le titre : la
   normalisation du thème (`.mcl-page .elementor-widget-heading
   div.elementor-heading-title{font:inherit}`) ajoute un sélecteur d'élément
   et l'emporte sur une règle écrite au niveau du titre — qui repartirait
   alors à 16 px / 400. Écrite ici, elle descend par héritage. */
.mcl-page .sej-tabs-l{
  margin:0 0 8px;
  align-self:flex-start;
  font-size:0.6875rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--ink-soft, #3A5E72);
}
.mcl-page .sej-tabs-l .elementor-heading-title{margin:0}

/* La capsule : blanche et bordée, comme `.hmc-svc-seg`. */
.mcl-page .sej-tabs{
  background:#fff;
  border:1.5px solid #EEE7DC;
  border-radius:999px;
  padding:5px;
  gap:4px;
  box-shadow:0 1px 3px rgba(0,0,0,.05);
  /* Calée à gauche du contenu, à toutes les largeurs. */
  align-self:flex-start;
  margin-left:0;
  margin-right:auto;
}

/* Les pastilles : même graisse que sur Soins et services. */
.mcl-page .sej-tab{font-weight:700}

/* ===========================================================================
   25 août 2026 · Le plafond de 1 140 px des conteneurs « boxed »

   Un conteneur Elementor laissé en « boxed » plafonne son contenu à
   `min(100%, 1140px)` ET LE CENTRE. Tant que la place disponible reste sous
   1 140 px, rien ne se voit; au-delà, le bloc glisse vers le centre pendant
   que ses voisins pleine largeur restent calés à gauche. La page perd son
   bord gauche unique, et le décalage grandit avec l'écran :

     1 468 px de fenêtre → 0      2 560 px → jusqu'à 200 px

   La parade existait déjà pour les pages `.mcl-page` (règle plus haut dans ce
   fichier), mais pas pour la famille `.hmc-main` — Accueil, Soins et services,
   Préparer son séjour — qui porte à elle seule les 58 conteneurs « boxed » du
   site. C'est la même règle, étendue.

   VOLONTAIREMENT LIMITÉ AU PLAFOND : la règle `.mcl-page` remet aussi le
   rembourrage à zéro. On ne le fait pas ici, pour ne déplacer aucun espacement
   existant. Seule la cause du décalage est retirée.
   ======================================================================== */
.hmc-main .e-con > .e-con-inner{max-width:none}

/* ===========================================================================
   25 août 2026 · Le retrait de 10 px des conteneurs Elementor

   Elementor donne à tout conteneur neuf un rembourrage de 10 px. Le système
   de la maquette ne s'en sert jamais — il travaille en 24, 22, 48, 56 — mais
   ces 10 px restent sur les conteneurs de STRUCTURE, ceux qui n'existent que
   pour porter une grille ou une colonne. Et ils s'ADDITIONNENT à chaque
   niveau d'imbrication :

     .hmc-adm-grid (10) › .hmc-adm-left (10) › .hmc-steps (10) = 30 px

   D'où, sur écran étroit, des numéros d'étape à 30 px du bord pendant que le
   titre de section est à 0, et l'encadré vert à 20 px entre les deux. Trois
   bords gauches pour un seul bloc.

   La règle ne remet à zéro que la VALEUR PAR DÉFAUT : elle porte sur la
   variable, avec deux classes. Tout conteneur dont le rembourrage a été
   réglé dans l'éditeur reçoit d'Elementor une règle à trois classes, qui
   l'emporte et garde sa valeur. Les 22, 24, 48 et 56 px du système sont donc
   intacts — seuls tombent les 10 px que personne n'a choisis.

   Horizontal seulement : le rembourrage vertical par défaut ne décale rien.
   ======================================================================== */
.hmc-main .e-con{--padding-inline-start:0px; --padding-inline-end:0px}

/* ===========================================================================
   26 août 2026 · Les numéros d'étape passent en débord

   Demande de Raz : le TEXTE des étapes doit rejoindre le bord gauche commun
   — celui du titre de section, de la capsule, de l'encadré vert et de la
   carte — et le numéro sortir à sa gauche, dans la marge de la section.

   Avant : numéro à 56, texte à 91. Le texte était le seul élément de la page
   à ne pas être sur le bord commun.

   Le numéro reçoit une largeur FIXE de 20 px et un retrait négatif de 36 px
   (20 + les 16 px d'écart du conteneur). Le corps de l'étape retombe alors
   exactement sur le bord, à tous les paliers de texte : si le chiffre
   s'élargit en A+, il déborde de sa boîte sans rien pousser.

   SOUS 768 px, le rembourrage de section tombe de 56 à 24 px : un débord
   de 36 px sortirait de l'écran. Le numéro reste alors sur la ligne du titre
   mais dans le flux, et le texte est en retrait de la gouttière. Il n'y a pas
   de troisième voie : à 24 px de marge, on ne peut pas à la fois garder le
   numéro à l'écran, le texte sur le bord commun et un écart lisible entre
   les deux.
   ======================================================================== */
/* 13 oct. : bornes décalées d'un pixel. Le rembourrage de section passe à 24 px
   jusqu'à 768 px INCLUS (règle de page en max-width:768px) : à 768 tout juste —
   l'iPad en portrait — le débord de 36 px sortait les numéros de l'écran.
   Relevé par le banc de test responsive. */
@media (min-width:769px){
  .hmc-main .hmc-step-n{flex:0 0 20px; margin-left:-36px}
}
@media (max-width:768px){
  /* Le numéro reste SUR LA MÊME LIGNE que le titre, mais dans le flux : la
     marge de section n'est plus que de 24 px et un débord de 36 px sortirait
     de l'écran. Le texte est donc en retrait de la gouttière — un retrait de
     liste numérotée, lisible comme tel, et non un défaut d'alignement.
     La gouttière est resserrée à 32 px (20 + 12) pour économiser la largeur. */
  .hmc-main .hmc-steps .hmc-step{gap:12px !important}
  .hmc-main .hmc-step-n{flex:0 0 20px; margin-left:0}
}

/* Le numéro et le titre partagent la LIGNE DE BASE.
   Ils n'ont ni le même corps (22 px contre 17) ni le même interligne (26,4
   contre 17) : calés par le haut de leur boîte, le chiffre remontait de
   quelques pixels au-dessus du titre — visible à l'œil, signalé par Raz.
   `align-items:baseline` laisse le navigateur faire le calcul, et ça tient
   quel que soit le palier de texte A− / A+. */
.hmc-main .hmc-steps .hmc-step{align-items:baseline !important}

/* ============================================================
   02 · Heures et règles de visite (page 33, « Préparer son séjour »)
   Refonte d'après la maquette du 26 août. La carte blanche passe en deux
   colonnes (horaire à gauche, « À votre arrivée » à droite), les deux cartes
   de programme perdent leur titre intermédiaire, et un bloc « Joindre un
   usager par téléphone » ferme la section.
   ============================================================ */

/* --- Carte blanche : deux colonnes, calées par le haut --- */
.hmc-main .hmc-visit .hmc-hours{
  padding:34px 38px !important;
  border-radius:20px !important;
  align-items:flex-start !important;
}
.hmc-main .hmc-visit .hmc-hours > .e-con-inner{
  align-items:flex-start !important;
  gap:56px !important;
}
.hmc-main .hmc-visit .hmc-hours-l{flex:1 1 320px !important; min-width:0 !important}
.hmc-main .hmc-visit .hmc-hours-l > .e-con-inner{gap:10px !important}
.hmc-main .hmc-visit .hmc-hours-r{flex:1 1 380px !important; min-width:0 !important}
.hmc-main .hmc-visit .hmc-hours-r{
  display:flex !important; flex-direction:column !important; gap:12px !important;
  align-self:stretch;
}

/* Le libellé devient une pastille cerclée. `align-self` l'empêche de
   s'étirer sur toute la largeur de la colonne. */
.hmc-main .hmc-visit .hmc-hours-lbl{align-self:flex-start}
.hmc-main .hmc-visit .hmc-hours-lbl .elementor-heading-title{
  display:inline-block;
  border:1.5px solid #D6A7C8;
  border-radius:9px;
  padding:7px 13px;
  font-size:0.6875rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.06em;
  color:var(--magenta-700, #7A1561) !important;
}
.hmc-main .hmc-visit .hmc-hours-big .elementor-heading-title{
  font-size:2.25rem !important; font-weight:800; line-height:1.1;
  margin-top:4px;
}
/* La note repasse dans le flux de la colonne : plus de flex, plus de filet. */
.hmc-main .hmc-visit .hmc-hours-note{
  flex:0 0 auto !important; min-width:0 !important; width:auto !important;
  border-left:0 !important; padding-left:0 !important;
}
.hmc-main .hmc-visit .hmc-hours-note p{font-size:0.9375rem !important; line-height:1.55}

/* --- Colonne « À votre arrivée » --- */
.hmc-main .hmc-visit .hmc-hours-rlbl .elementor-heading-title{
  font-size:0.6875rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.06em;
  color:var(--magenta-700, #7A1561) !important;
}
.hmc-main .hmc-visit .hmc-arr-list ul{margin:0; padding:0; list-style:none}
.hmc-main .hmc-visit .hmc-arr-list li{
  position:relative; padding-left:26px; margin:0 0 11px;
  font-size:0.9375rem; line-height:1.5;
}
.hmc-main .hmc-visit .hmc-arr-list li:last-child{margin-bottom:0}
.hmc-main .hmc-visit .hmc-arr-list li::before{
  content:"\2713"; position:absolute; left:0; top:0;
  color:var(--magenta-700, #7A1561); font-weight:800;
}

/* --- Cartes de programme : le titre intermédiaire a disparu --- */
.hmc-main .hmc-services .hmc-visit .hmc-progcards,
.hmc-main .hmc-visit .hmc-progcards{margin-top:24px !important; gap:24px !important}
.hmc-main .hmc-visit .hmc-progcard{padding:26px 28px !important; border-radius:18px !important}
.hmc-main .hmc-visit .hmc-progcard > .e-con-inner{gap:14px !important}
.hmc-main .hmc-visit .hmc-pc-list ul{margin:0; padding:0; list-style:none}
.hmc-main .hmc-visit .hmc-pc-list li{
  position:relative; padding-left:20px; margin:0 0 12px;
  font-size:0.9375rem; line-height:1.5;
}
.hmc-main .hmc-visit .hmc-pc-list li:last-child{margin-bottom:0}
/* La puce reprend la couleur du programme. Les variables sont celles que la
   page redéfinit sur `.hmc-progcards` — orange en réadaptation, magenta en
   soins palliatifs — donc la puce suit toute bascule de palette. */
.hmc-main .hmc-visit .hmc-pc-list li::before{
  content:"\2022"; position:absolute; left:2px; top:-2px;
  font-size:1.15em; line-height:inherit;
}
.hmc-main .hmc-visit .hmc-progcard.is-read .hmc-pc-list li::before{color:var(--mag-700, #B5620E)}
.hmc-main .hmc-visit .hmc-progcard.is-pall .hmc-pc-list li::before{color:var(--teal-600, #BA36A1)}

/* --- Bloc « Joindre un usager par téléphone » ---
   La maquette le montrait en bleu nuit. Raz a demandé le vert déjà employé
   deux fois sur la page (`--lime-100`), pour que les blocs pratiques de la
   page se lisent comme une même famille. Le texte repasse donc en foncé : du
   blanc sur ce vert serait illisible. */
.hmc-main .hmc-visit .hmc-tel{
  margin-top:24px !important;
  background:var(--lime-100, #F0F4D4) !important;
  border-radius:20px !important;
  padding:28px 34px !important;
  display:flex !important; flex-direction:row !important;
}
.hmc-main .hmc-visit .hmc-tel{
  flex-flow:row wrap !important;
  align-items:center !important; justify-content:space-between !important;
  gap:24px !important;
}
.hmc-main .hmc-visit .hmc-tel-l{flex:1 1 380px !important; min-width:0 !important}
.hmc-main .hmc-visit .hmc-tel-l{
  display:flex !important; flex-direction:column !important; gap:8px !important;
}
/* Olive foncé : 8,4:1 sur le vert. Le `--lime-700` de la charte n'y arrive
   qu'à 2,6:1 — inutilisable en texte sur ce fond. */
.hmc-main .hmc-visit .hmc-tel-lbl .elementor-heading-title{
  font-size:0.6875rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.06em;
  color:#4A5410;
}
.hmc-main .hmc-visit .hmc-tel-txt p{
  font-size:1rem; line-height:1.55; margin:0;
  color:var(--navy-900, #14283A);
}
.hmc-main .hmc-visit .hmc-tel-viz{flex:0 0 auto !important; width:auto !important}
.hmc-main .hmc-visit .hmc-tel-viz{
  display:flex !important; flex-direction:row !important;
  align-items:center !important; gap:14px !important;
}
.hmc-main .hmc-visit .hmc-tel-key .elementor-heading-title{
  display:inline-block; background:#fff;
  border:1.5px solid var(--lime-200, #DDE3A3);
  border-radius:12px; padding:12px 16px; min-width:48px; text-align:center;
  font-size:1.125rem; font-weight:800; color:var(--navy-900, #14283A);
}
.hmc-main .hmc-visit .hmc-tel-key--w .elementor-heading-title{
  font-size:0.9375rem; font-weight:700; padding:14px 18px;
}
.hmc-main .hmc-visit .hmc-tel-arrow .elementor-heading-title{
  font-size:1.125rem; color:#4A5410;
}

/* Sous 768 px, les deux colonnes de la carte blanche et le bloc téléphone
   se replient d'eux-mêmes (les bases flex sont plus larges que l'écran) ;
   seuls les écarts sont resserrés. */
@media (max-width:767px){
  .hmc-main .hmc-visit .hmc-hours{padding:24px 22px !important}
  .hmc-main .hmc-visit .hmc-hours > .e-con-inner{gap:26px !important}
  .hmc-main .hmc-visit .hmc-tel{padding:22px !important}
  .hmc-main .hmc-visit .hmc-tel{justify-content:flex-start !important}
}

/* ============================================================
   03 · Accès et stationnement (page 33)
   Refonte d'après la maquette du 26 août. La carte unique de gauche se
   scinde en deux — transport puis adresse — le stationnement occupe toute
   la hauteur à droite, et un bloc « Zones réservées » ferme la section.
   ============================================================ */

/* Placement explicite. Sans lui, le placement automatique de la grille
   mettrait l'adresse en haut à droite : trois cartes dans une grille à deux
   colonnes se rangent rangée par rangée. */
.hmc-main .hmc-access .hmc-access-grid{gap:24px !important; align-items:stretch !important}
.hmc-main .hmc-access .hmc-transport{grid-column:1; grid-row:1}
.hmc-main .hmc-access .hmc-adresse{grid-column:1; grid-row:2}
.hmc-main .hmc-access .hmc-parking{grid-column:2; grid-row:1 / span 2}
@media (max-width:900px){
  .hmc-main .hmc-access .hmc-access-grid{grid-template-columns:1fr !important}
  .hmc-main .hmc-access .hmc-transport,
  .hmc-main .hmc-access .hmc-adresse,
  .hmc-main .hmc-access .hmc-parking{grid-column:1 !important; grid-row:auto !important}
}
.hmc-main .hmc-access .hmc-infocard{
  background:#fff !important; padding:26px 28px !important; border-radius:18px !important;
}
.hmc-main .hmc-access .hmc-infocard > .e-con-inner{gap:10px !important}
/* Les cartes créées par script sont en pleine largeur : pas de .e-con-inner. */
.hmc-main .hmc-access .hmc-transport{
  display:flex !important; flex-direction:column !important; gap:10px !important;
}

/* --- Rangée icône + texte --- */
.hmc-main .hmc-access .hmc-ic-row{
  display:flex !important; flex-direction:row !important;
  align-items:flex-start !important; gap:14px !important;
  padding:0 !important;
}
.hmc-main .hmc-access .hmc-transport .hmc-ic-row + .hmc-ic-row{
  border-top:1px solid #EEE7DC; margin-top:14px; padding-top:16px !important;
}
.hmc-main .hmc-access .hmc-ic-ico{flex:0 0 auto !important; width:auto !important}
.hmc-main .hmc-access .hmc-ic-ico .elementor-icon{
  display:flex; align-items:center; justify-content:center;
  width:34px; height:34px; border-radius:10px;
  background:var(--magenta-100, #F4DDEE);
}
.hmc-main .hmc-access .hmc-ic-ico .elementor-icon svg{
  width:16px; height:16px; fill:var(--magenta-700, #7A1561);
}
.hmc-main .hmc-access .hmc-ic-row .hmc-ic-txt{
  flex:1 1 auto !important; min-width:0 !important; width:auto !important;
}
.hmc-main .hmc-access .hmc-ic-txt p{font-size:0.9375rem !important; line-height:1.55}

/* Notes du stationnement : icône nue, sans pastille, alignée au texte. */
.hmc-main .hmc-access .hmc-ic-note{align-items:center !important; gap:10px !important; margin-top:4px}
.hmc-main .hmc-access .hmc-ic-note .elementor-icon{
  background:transparent; width:20px; height:20px; border-radius:0;
}
.hmc-main .hmc-access .hmc-ic-note .elementor-icon svg{width:15px; height:15px}

/* --- Carte adresse --- */
.hmc-main .hmc-access .hmc-ic-big .elementor-heading-title{font-size:1.375rem !important}
.hmc-main .hmc-access .hmc-ic-tel{
  border-top:1px solid #EEE7DC; margin-top:14px; padding-top:14px;
}
.hmc-main .hmc-access .hmc-ic-tel p{font-size:0.9375rem}
.hmc-main .hmc-access .hmc-ic-tel a,
.hmc-main .hmc-access .hmc-sec-desc a{
  color:var(--magenta-700, #7A1561); font-weight:700; text-decoration:none;
}
.hmc-main .hmc-access .hmc-ic-tel a:hover,
.hmc-main .hmc-access .hmc-sec-desc a:hover{text-decoration:underline}
.hmc-main .hmc-access .hmc-parking .hmc-price-row:first-of-type{margin-top:8px}

/* --- Zones réservées ---
   La maquette les montrait en orange. Raz a demandé le vert de la page
   (`--lime-100`), comme pour le bloc téléphone de la section 02. */
.hmc-main .hmc-access .hmc-zones{
  margin-top:24px !important;
  background:var(--lime-100, #F0F4D4) !important;
  border-radius:20px !important;
  padding:26px 30px !important;
  display:flex !important; flex-direction:column !important; gap:16px !important;
}
.hmc-main .hmc-access .hmc-zones-lbl .elementor-heading-title{
  font-size:0.6875rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.06em; color:#4A5410;
}
.hmc-main .hmc-access .hmc-zones-grid{
  display:grid !important; grid-template-columns:1fr 1fr !important;
  gap:22px 40px !important; width:100% !important;
}
@media (max-width:767px){
  .hmc-main .hmc-access .hmc-zones-grid{grid-template-columns:1fr !important}
}
.hmc-main .hmc-access .hmc-zone{
  display:flex !important; flex-direction:column !important; gap:4px !important;
  padding:0 0 0 20px !important; position:relative;
}
.hmc-main .hmc-access .hmc-zone::before{
  content:"\2022"; position:absolute; left:0; top:0;
  color:#4A5410; font-size:1.15em; line-height:1.5;
}
.hmc-main .hmc-access .hmc-zone-t .elementor-heading-title{
  font-size:1rem; font-weight:700; color:var(--navy-900, #14283A);
}
.hmc-main .hmc-access .hmc-zone-d p{
  font-size:0.9375rem; line-height:1.5; color:var(--navy-800, #24475B);
}

.hmc-main .hmc-access .hmc-access-note{margin-top:18px}
.hmc-main .hmc-access .hmc-access-note p{
  font-size:0.875rem; line-height:1.55; color:var(--ink-soft, #3A5E72);
}

/* Les libellés de carte : `--mag-700` n'est redéfini que sur les blocs à
   sélecteur de programme, ailleurs il n'existe pas et la couleur retombait
   sur le bleu nuit hérité. Le magenta est posé explicitement. */
.hmc-main .hmc-access .hmc-ic-lbl .elementor-heading-title{
  color:var(--magenta-700, #7A1561) !important;
}
/* La puce était calée sur la boîte de ligne, quelques pixels sous le titre. */
.hmc-main .hmc-access .hmc-zone::before{top:-4px}

/* Un conteneur Elementor est en `flex-wrap:wrap` par défaut. Sous 900 px, la
   base du texte dépassait la largeur disponible et la rangée se cassait :
   l'icône passait au-dessus du texte au lieu d'être à sa gauche. */
.hmc-main .hmc-access .hmc-ic-row{flex-wrap:nowrap !important}

/* ============================================================
   04 · Services aux usagers et aux familles (page 33)
   Refonte d'après la maquette du 26 août. La grille de six vignettes
   égales devient : deux grandes cartes (cafétéria, pastorale), une carte
   « Autres services » à trois colonnes, puis un bloc transport.
   Classes propres au bloc (`hmc-on-*`) : `.hmc-svc-card` et `.hmc-svc-grid`
   servent aussi la page « Soins et services », il ne fallait pas y toucher.
   ============================================================ */

.hmc-main .hmc-onsite .hmc-on-top{
  display:grid !important; grid-template-columns:1fr 1fr !important;
  gap:24px !important; margin-top:28px !important; align-items:start !important;
}
@media (max-width:900px){
  .hmc-main .hmc-onsite .hmc-on-top{grid-template-columns:1fr !important}
}
.hmc-main .hmc-onsite .hmc-on-card{
  background:#fff !important; border-radius:20px !important;
  padding:26px 28px !important;
  display:flex !important; flex-direction:column !important; gap:14px !important;
}

/* En-tête de carte : icône + titre sur une ligne. */
.hmc-main .hmc-onsite .hmc-on-head{
  display:flex !important; flex-direction:row !important;
  align-items:center !important; gap:14px !important;
  flex-wrap:nowrap !important; padding:0 !important;
}
.hmc-main .hmc-onsite .hmc-on-ico{flex:0 0 auto !important; width:auto !important}
.hmc-main .hmc-onsite .hmc-on-ico .elementor-icon{
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:11px;
  background:var(--peach-100, #FDE7D2);
}
.hmc-main .hmc-onsite .hmc-on-ico .elementor-icon svg{
  width:17px; height:17px; fill:#B5620E;
}
.hmc-main .hmc-onsite .hmc-on-ico--past .elementor-icon{background:var(--magenta-100, #F4DDEE)}
.hmc-main .hmc-onsite .hmc-on-ico--past .elementor-icon svg{fill:var(--magenta-700, #7A1561)}
.hmc-main .hmc-onsite .hmc-on-ct .elementor-heading-title{
  font-size:1.25rem; font-weight:700; color:var(--navy-900, #14283A);
}

/* Rangées d'horaire : libellé à gauche, heures à droite. */
.hmc-main .hmc-onsite .hmc-on-hrow{
  display:flex !important; flex-direction:row !important;
  justify-content:space-between !important; align-items:baseline !important;
  gap:20px !important; flex-wrap:nowrap !important;
  border-top:1px solid #EEE7DC; padding:14px 0 0 !important; margin:0 !important;
}
.hmc-main .hmc-onsite .hmc-on-hrow:first-of-type{margin-top:2px !important}
.hmc-main .hmc-onsite .hmc-on-hl{flex:1 1 auto !important; min-width:0 !important; width:auto !important}
.hmc-main .hmc-onsite .hmc-on-hl p{font-size:0.9375rem; line-height:1.4; color:var(--navy-800, #24475B)}
.hmc-main .hmc-onsite .hmc-on-hv{flex:0 0 auto !important; width:auto !important}
.hmc-main .hmc-onsite .hmc-on-hv p{
  font-size:0.9375rem; line-height:1.4; text-align:right;
  color:var(--navy-900, #14283A);
}
.hmc-main .hmc-onsite .hmc-on-hx{
  font-size:0.8125rem; font-weight:400; color:var(--ink-soft, #3A5E72);
}
/* Le lien du menu n'a pas encore de destination : posé en texte, pas en
   lien, pour ne pas offrir un clic qui ne mène nulle part. */
.hmc-main .hmc-onsite .hmc-on-link p{
  font-size:0.9375rem; font-weight:700; color:var(--magenta-700, #7A1561);
  margin-top:4px;
}

/* Carte pastorale. */
.hmc-main .hmc-onsite .hmc-on-p p{font-size:0.9375rem; line-height:1.6}
.hmc-main .hmc-onsite .hmc-on-note{
  background:var(--magenta-100, #F4DDEE); border-radius:14px;
  padding:16px 18px; margin-top:4px;
}
.hmc-main .hmc-onsite .hmc-on-note p{
  font-size:0.9375rem; line-height:1.55; color:var(--navy-900, #14283A); margin:0;
}

/* --- Carte « Autres services » --- */
.hmc-main .hmc-onsite .hmc-on-others{
  background:#fff !important; border-radius:20px !important;
  padding:26px 28px !important; margin-top:24px !important;
  display:flex !important; flex-direction:column !important; gap:18px !important;
}
.hmc-main .hmc-onsite .hmc-on-olbl .elementor-heading-title{
  font-size:0.6875rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.06em;
  color:var(--magenta-700, #7A1561);
}
.hmc-main .hmc-onsite .hmc-on-ogrid{
  display:grid !important; grid-template-columns:repeat(3, 1fr) !important;
  gap:22px 32px !important; width:100% !important;
}
@media (max-width:900px){
  .hmc-main .hmc-onsite .hmc-on-ogrid{grid-template-columns:1fr 1fr !important}
}
@media (max-width:600px){
  .hmc-main .hmc-onsite .hmc-on-ogrid{grid-template-columns:1fr !important}
}
.hmc-main .hmc-onsite .hmc-on-item{
  display:flex !important; flex-direction:row !important;
  align-items:flex-start !important; gap:12px !important;
  flex-wrap:nowrap !important; padding:0 !important;
}
.hmc-main .hmc-onsite .hmc-on-ico--sm .elementor-icon{width:32px; height:32px; border-radius:9px}
.hmc-main .hmc-onsite .hmc-on-ico--sm .elementor-icon svg{width:14px; height:14px}
.hmc-main .hmc-onsite .hmc-on-itxt{
  flex:1 1 auto !important; min-width:0 !important; width:auto !important;
  display:flex !important; flex-direction:column !important; gap:2px !important;
}
.hmc-main .hmc-onsite .hmc-on-it .elementor-heading-title{
  font-size:1rem; font-weight:700; color:var(--navy-900, #14283A);
}
.hmc-main .hmc-onsite .hmc-on-id p{
  font-size:0.9375rem; line-height:1.5; color:var(--navy-800, #24475B);
}
/* Note « à compléter » : bord tireté, comme la maquette — c'est un repère de
   production, pas un contenu destiné au public. À retirer avant la mise en
   ligne (voir le journal). */
.hmc-main .hmc-onsite .hmc-on-todo{
  display:flex !important; flex-direction:row !important;
  align-items:flex-start !important; gap:10px !important;
  flex-wrap:nowrap !important;
  background:#FDF3DF; border:1.5px dashed #D9A83B; border-radius:12px;
  padding:14px 16px !important;
}
.hmc-main .hmc-onsite .hmc-on-todo-ico{flex:0 0 auto !important; width:auto !important}
.hmc-main .hmc-onsite .hmc-on-todo-ico .elementor-icon svg{width:15px; height:15px; fill:#7A5410}
.hmc-main .hmc-onsite .hmc-on-todo-t{flex:1 1 auto !important; min-width:0 !important; width:auto !important}
.hmc-main .hmc-onsite .hmc-on-todo-t p{font-size:0.875rem; line-height:1.5; color:#5E4210}

/* --- Bloc transport ---
   La maquette le montrait en bleu nuit. Raz a demandé le vert de la page
   (`--lime-100`), comme les blocs pratiques des sections 01, 02 et 03. */
.hmc-main .hmc-onsite .hmc-on-transport{
  margin-top:24px !important;
  background:var(--lime-100, #F0F4D4) !important;
  border-radius:20px !important;
  padding:28px 34px !important;
  display:flex !important; flex-direction:column !important; gap:10px !important;
}
.hmc-main .hmc-onsite .hmc-on-tlbl .elementor-heading-title{
  font-size:0.6875rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.06em; color:#4A5410;
}
.hmc-main .hmc-onsite .hmc-on-ttxt p{
  font-size:1rem; line-height:1.6; color:var(--navy-900, #14283A); margin:0;
}

@media (max-width:767px){
  .hmc-main .hmc-onsite .hmc-on-card{padding:22px !important}
  .hmc-main .hmc-onsite .hmc-on-others{padding:22px !important}
  .hmc-main .hmc-onsite .hmc-on-transport{padding:22px !important}
}

/* ============================================================
   05 · Coûts et soutien aux finances (page 33)
   Les deux blocs étaient dissemblables : colonnes 1,2fr / 0,8fr, grille
   calée en haut (`align-items:start`), et 20 px de marge supérieure sur la
   note qui la faisait démarrer plus bas que la carte. Ils forment
   maintenant une paire — même largeur, même hauteur, mêmes marges internes.
   La règle est limitée à cette grille : `.hmc-note` sert aussi les encadrés
   verts des sections 01, qui doivent garder leur marge. Le sélecteur est en
   descendance et non en enfant direct : la grille est un conteneur « boxed »,
   la note est donc un petit-enfant, derrière `.e-con-inner`.
   ============================================================ */
.hmc-main .hmc-costs .hmc-costs-grid{
  grid-template-columns:1fr 1fr !important;
  align-items:stretch !important;
  gap:24px !important;
}
.hmc-main .hmc-costs .hmc-costs-grid .hmc-note{
  margin-top:0 !important;
  padding:22px !important;
  border-radius:16px !important;
  display:flex !important; flex-direction:column !important;
  justify-content:flex-start !important;
}
@media (max-width:767px){
  .hmc-main .hmc-costs .hmc-costs-grid{grid-template-columns:1fr !important}
}

/* ==========================================================================
   CARRIÈRES · « CE QUE NOUS OFFRONS » — page 512, gabarit du 26 août 2026
   --------------------------------------------------------------------------
   Le gabarit remplace les mots-repères des trois tuiles (« Conditions »,
   « Échelle humaine », « Emplacement ») par un NUMÉRO suivi d'un filet, et
   met la carte « Postuler » en deux colonnes, pastille à droite.

   Rien de tout cela ne demande de bloc HTML : les blocs Elementor sont
   inchangés, seuls trois libellés et trois classes ont bougé (voir
   `_to_delete/macl-offrons.php`). Le filet est un pseudo-élément.

   Portée : les classes `--num` et `sej-cta` sont des variantes. `.sej-grid3`,
   `.sej-tile`, `.sej-card` et `.btn-solid` servent sur une trentaine de pages
   et ne sont PAS touchés.
   ========================================================================== */

/* Les tuiles épousent leur contenu au lieu de s'aligner sur la plus haute :
   c'est ce que montre le gabarit — les trois bas de carte sont décalés. */
.mcl-page .sej-grid3--num{align-items:start; gap:20px}

.mcl-page .sej-grid3--num .sej-tile{
  border-color:#EEE2D4;            /* filet chaud, accordé au fond crème */
  padding:24px 26px 26px;
  gap:9px;
}

/* Le numéro et son filet.
   La typographie et la couleur restent sur L'ENVELOPPE du widget Titre :
   la règle de normalisation `.mcl-page .elementor-widget-heading
   span.elementor-heading-title{font:inherit;color:inherit}` vaut (0,3,1) et
   passe devant tout sélecteur à trois classes posé sur le titre lui-même.
   `inherit` fait descendre ce qui est posé ici. */
.mcl-page .sej-tile .ln-num{
  display:flex;
  align-items:center;
  gap:14px;
  width:100%;
  letter-spacing:0.14em;
  margin-bottom:7px;
}
/* `inset:auto` explicitement : Elementor pose `inset:0` sur les
   pseudo-éléments de ses conteneurs, et l'habitude se paie cher. */
.mcl-page .sej-tile .ln-num::after{
  content:"";
  position:relative; inset:auto;
  flex:1 1 auto;
  height:1px;
  background:#E3D7C5;
}

.mcl-page .sej-grid3--num .sej-tile h4{line-height:1.3; margin-bottom:2px}
.mcl-page .sej-grid3--num .sej-tile .btn-text{margin-top:5px}

/* --- La carte « Postuler » ------------------------------------------------
   Deux colonnes : le surtitre et le texte à gauche, la pastille à droite,
   centrée sur la hauteur du bloc de texte. La grille est en `!important`
   parce que les conteneurs Elementor imposent `display:flex` en colonne. */
.mcl-page .sej-cta{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"ck  btn"
                      "txt btn";
  align-items:center;
  column-gap:44px;
  padding:28px 32px;
  border-color:#EEE2D4;
}
.mcl-page .sej-cta > .ck{grid-area:ck; margin-bottom:12px; align-self:end}
.mcl-page .sej-cta > .elementor-widget-text-editor{grid-area:txt; align-self:start}
.mcl-page .sej-cta > .btn-solid{grid-area:btn; align-self:center; justify-self:end}
.mcl-page .sej-cta p{margin:0; max-width:76ch}

/* Blanc sur `--teal-600` ne donne que 2,70:1 — l'un des douze échecs déjà
   relevés. Le gabarit montre un vert nettement plus foncé ; `--teal-700`
   monte à 5,26:1. Correction VOLONTAIREMENT limitée à cette carte, comme
   pour `.admission-cta` : `.btn-solid` sert ailleurs, et le corriger partout
   reste une décision d'ensemble qui appartient à Raz.
   `.btn-solid` peint L'ENVELOPPE du widget — c'est elle, la pastille. */
.mcl-page .sej-cta .btn-solid{
  background:var(--teal-700);
  border-color:var(--teal-700);
}
.mcl-page .sej-cta .btn-solid:hover,
.mcl-page .sej-cta .btn-solid:focus-within{
  background:var(--navy-800);
  border-color:var(--navy-800);
}

@media (max-width:820px){
  .mcl-page .sej-cta{
    grid-template-columns:1fr;
    grid-template-areas:"ck" "txt" "btn";
    row-gap:20px;
  }
  .mcl-page .sej-cta > .btn-solid{justify-self:start}
  .mcl-page .sej-cta p{max-width:none}
}

/* ==========================================================================
   POSTES À COMBLER — liste, page d'offre, formulaire de candidature
   --------------------------------------------------------------------------
   26 août 2026. La liste vient du court-code [macl_postes] : le balisage
   ci-dessous est donc le nôtre, pas celui d'Elementor, et la règle d'or (viser
   l'élément peint, pas l'enveloppe) ne s'applique qu'au formulaire.

   `.job-row`, `.jt` et `.jm` existaient déjà dans la maquette ; on les
   complète plutôt que de les remplacer.
   ========================================================================== */

.mcl-page .job-board [hidden]{display:none !important}

/* --- La barre de filtres et le compteur ---------------------------------- */
.mcl-page .job-bar{
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap;
  padding-bottom:22px; margin-bottom:26px;
  border-bottom:4px solid var(--navy-800);
}
.mcl-page .job-filters{display:flex; gap:10px; flex-wrap:wrap}
.mcl-page .job-chip{
  font-family:var(--macl-titre); font-weight:600; font-size:0.90625rem;
  color:var(--navy-800); background:var(--paper);
  border:1px solid rgba(36,71,91,0.18); border-radius:100px;
  padding:9px 20px; cursor:pointer; transition:150ms;
}
.mcl-page .job-chip:hover{border-color:var(--navy-800)}
.mcl-page .job-chip.is-on{background:var(--navy-800); border-color:var(--navy-800); color:#fff}
.mcl-page .job-count{
  font-family:var(--mono); font-size:0.8125rem; color:var(--ink-soft); margin:0;
}
.mcl-page .job-aucune{
  margin:28px 0 0; font-size:0.96875rem; color:var(--ink-soft);
}

/* --- Une ligne d'offre ---------------------------------------------------- */
.mcl-page .job-main{display:flex; flex-direction:column; gap:9px; flex:1 1 340px}
.mcl-page .job-meta{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:0}
.mcl-page .job-row .jt{flex:none; font-size:1.1875rem; margin:0}
.mcl-page .job-row .jt a{color:inherit; text-decoration:none}
.mcl-page .job-row .jt a:hover,
.mcl-page .job-row .jt a:focus-visible{color:var(--teal-700); text-decoration:underline; text-underline-offset:3px}
.mcl-page .job-row .job-plus{flex:0 0 auto}
.mcl-page .job-row .btn-solid{
  flex:0 0 auto;
  background:var(--teal-700); border-color:var(--teal-700);   /* 5,26:1 — voir la note de .admission-cta */
}
.mcl-page .job-row .btn-solid:hover,
.mcl-page .job-row .btn-solid:focus-within{background:var(--navy-800); border-color:var(--navy-800)}

/* --- La pastille de type de poste ---------------------------------------- */
.mcl-page .job-tag{
  font-family:var(--mono); font-weight:600; font-size:0.625rem;
  letter-spacing:0.1em; text-transform:uppercase;
  padding:5px 11px; border-radius:100px; white-space:nowrap;
}
.mcl-page .job-tag--vert{background:var(--teal-50); color:#1E5B32}      /* 7,63:1 */
.mcl-page .job-tag--orange{background:var(--peach-100); color:#7A4100}  /* 7,29:1 */
.mcl-page .job-tag--magenta{background:var(--magenta-100); color:#7A1561}
.mcl-page .job-tag--lime{background:var(--lime-100); color:#4A5400}

/* ==========================================================================
   La page d'une offre
   Rendue par macl-offre-modele.php, hors d'Elementor : elle n'hérite donc
   d'aucun réglage de conteneur, tout est ici.
   ========================================================================== */

.mcl-page .offre-hero h1{font-size:clamp(2.125rem, calc(4vw * var(--macl-echelle, 1)), 3.5rem)}
.mcl-page .offre-hero .sh-kicker{margin-bottom:16px}
.mcl-page .offre-meta{margin-top:24px}
.mcl-page .offre-close{
  margin:24px 0 0; padding:14px 18px; border-radius:12px;
  background:var(--peach-100); color:#5E3100;
  font-size:0.96875rem; max-width:62ch;
}

.mcl-page .offre-corps{padding-top:0}
.mcl-page .offre-cols{display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,0.85fr); gap:48px; align-items:start}
.mcl-page .offre-texte{max-width:70ch}
.mcl-page .offre-texte p{color:var(--ink-soft); font-size:1rem; line-height:1.65; margin:0 0 20px}
.mcl-page .offre-texte h2{font-family:var(--macl-titre); font-weight:700; font-size:1.375rem; color:var(--navy-800); margin:38px 0 14px}
.mcl-page .offre-texte h3{font-family:var(--macl-titre); font-weight:600; font-size:1.125rem; color:var(--navy-800); margin:30px 0 12px}
.mcl-page .offre-texte ul{margin:0 0 22px; padding-left:22px; list-style:disc}
.mcl-page .offre-texte li{color:var(--ink-soft); font-size:1rem; line-height:1.6; margin-bottom:8px}
.mcl-page .offre-texte strong{color:var(--navy-800)}

.mcl-page .offre-fiche{position:sticky; top:24px}
.mcl-page .offre-fiche .ck{margin-bottom:18px}
.mcl-page .offre-cta{
  display:inline-block; margin-top:22px; text-decoration:none;
  background:var(--teal-700); border-color:var(--teal-700);   /* blanc sur --teal-600 ne donne que 2,70:1 */
}
.mcl-page .offre-cta:hover,
.mcl-page .offre-cta:focus-visible{background:var(--navy-800); border-color:var(--navy-800)}

.mcl-page .offre-retour{padding-top:0}
.mcl-page .offre-retour .btn-text{text-decoration:none}

@media (max-width:1000px){
  .mcl-page .offre-cols{grid-template-columns:1fr; gap:34px}
  .mcl-page .offre-fiche{position:static}
}
@media (max-width:720px){
  .mcl-page .job-row{align-items:flex-start}
  .mcl-page .job-bar{align-items:flex-start}
}

/* --- La carte « Santé Montréal », en aplat vert pâle ---------------------
   Elle porte le seul appel à l'action de bas de page. L'aplat était en navy ;
   Raz l'a voulue dans le vert pâle des encadrés du reste du site — le même
   `--lime-100` que `.sej-note` (Processus d'admission, Facturation) et que
   `.hmc-note` (Préparer son séjour). Une teinte de plus n'aurait rien apporté.

   Le bouton clair sur fond foncé n'a plus lieu d'être : on reprend `.btn-solid`,
   corrigé en `--teal-700` comme les deux autres appels à l'action de la
   section. `.btn-clair`, qui ne servait qu'ici, a été retiré de la feuille. */
.mcl-page .sej-card--vert{
  background:var(--lime-100) !important;
  border-color:var(--lime-200);
  display:flex; flex-direction:column; justify-content:space-between; gap:26px;
}
.mcl-page .sej-card--vert p{color:var(--navy-800); font-size:1rem; line-height:1.6; margin:0}
.mcl-page .sej-card--vert .btn-solid{
  background:var(--teal-700); border-color:var(--teal-700);
  width:fit-content; max-width:100%;
}
.mcl-page .sej-card--vert .btn-solid:hover,
.mcl-page .sej-card--vert .btn-solid:focus-within{
  background:var(--navy-800); border-color:var(--navy-800);
}

/* Seconde pastille, plus discrète : « Permanent » ou « Temporaire ». La
   distinction compte pour un candidat, et toutes les offres actuelles sont à
   temps complet — sans elle, les six pastilles seraient identiques. */
.mcl-page .job-tag--nu{
  background:transparent; color:var(--ink-soft);
  border:1px solid rgba(36,71,91,0.22);
}
/* `.jm` est en capitales dans la maquette pour les mentions courtes ; une date
   entière en capitales se lit mal. */
.mcl-page .job-meta .jm{text-transform:none; font-size:0.78125rem; letter-spacing:0.01em}

/* La fiche « En bref » est étroite : la paire libellé / valeur sur une seule
   ligne y renvoie la valeur à la ligne suivante, alignée à droite, et le
   couple se lit mal. On empile. */
.mcl-page .offre-fiche .sej-kv .row{display:block !important}
.mcl-page .offre-fiche .sej-kv .k,
.mcl-page .offre-fiche .sej-kv .v{display:block; white-space:normal; text-align:left}
.mcl-page .offre-fiche .sej-kv .v{margin-top:3px}

/* ==========================================================================
   Le formulaire de candidature
   Modèle Elementor rendu dans la page de l'offre. Ici s'applique bien la règle
   d'or : on vise l'élément peint — `.elementor-field`, `.elementor-button` —
   et non l'enveloppe du widget.
   ========================================================================== */

.mcl-page .macl-candidature-bloc{
  max-width:760px; padding:0 !important;
  margin-left:0 !important; margin-right:auto !important;   /* Elementor centre un conteneur borné : ici il doit s'aligner sur le texte */
}

.mcl-page .macl-candidature .elementor-field-group > label{
  font-family:var(--macl-titre); font-weight:600; font-size:0.90625rem;
  color:var(--navy-800); margin-bottom:7px;
}
/* `:not(...)` volontaire : Elementor pose la classe `.elementor-field` sur TOUS
   les champs, cases à cocher comprises. Sans l'exclusion, `width:100%`
   s'appliquait à la case de consentement, qui s'étirait sur 363 px et repoussait
   son libellé dans une colonne de quelques mots à droite. Signalé par Raz. */
.mcl-page .macl-candidature .elementor-field-group .elementor-field:not([type="checkbox"]):not([type="radio"]):not([type="file"]){
  font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:var(--paper);
  border:1px solid rgba(36,71,91,0.22); border-radius:12px;
  padding:12px 15px; width:100%;
}
.mcl-page .macl-candidature .elementor-field-group .elementor-field:not([type="checkbox"]):not([type="radio"]):not([type="file"]):focus{
  outline:none; border-color:var(--teal-700);
  box-shadow:0 0 0 3px rgba(46,122,71,0.18);
}
.mcl-page .macl-candidature textarea.elementor-field{min-height:130px; resize:vertical}

/* La case de consentement : le libellé doit rester lisible et cliquable. */
.mcl-page .macl-candidature .elementor-field-type-acceptance .elementor-field-option{
  display:flex; align-items:flex-start; gap:11px;
}
.mcl-page .macl-candidature .elementor-field-type-acceptance label{
  font-family:var(--sans); font-weight:400; font-size:0.9375rem;
  line-height:1.5; color:var(--ink-soft); margin:0; cursor:pointer;
}
.mcl-page .macl-candidature .elementor-field-type-acceptance input[type="checkbox"]{
  width:18px !important; height:18px; flex:0 0 18px;
  margin-top:3px; accent-color:var(--teal-700);
}
.mcl-page .macl-candidature .elementor-field-type-acceptance label{flex:1 1 auto}

/* Le bouton d'envoi doit épouser son libellé : le groupe de champs est une
   boîte flexible pleine largeur, et le bouton s'y étirait d'un bord à l'autre. */
.mcl-page .macl-candidature .elementor-field-type-submit{justify-content:flex-start}
.mcl-page .macl-candidature .elementor-button[type="submit"]{flex:0 0 auto; width:fit-content}

/* L'astérisque des champs obligatoires et les messages d'erreur. */
.mcl-page .macl-candidature .elementor-mark-required .elementor-field-label:after{color:#B32D2E}
.mcl-page .macl-candidature .elementor-message{font-size:0.9375rem; margin-top:14px}
.mcl-page .macl-candidature .elementor-message-danger{color:#8C1B1B}

.mcl-page .macl-candidature .elementor-button[type="submit"]{
  font-family:var(--macl-titre); font-weight:600; font-size:0.96875rem;
  background:var(--teal-700); color:#fff;
  border:1.5px solid var(--teal-700); border-radius:100px;
  padding:14px 30px; cursor:pointer; transition:200ms;
}
.mcl-page .macl-candidature .elementor-button[type="submit"]:hover,
.mcl-page .macl-candidature .elementor-button[type="submit"]:focus-visible{
  background:var(--navy-800); border-color:var(--navy-800);
}

/* Le piège à robots. `display:none` plutôt qu'un décalage hors écran : ainsi
   le champ est aussi retiré aux lecteurs d'écran, qui n'ont pas à entendre une
   consigne qui ne les concerne pas. */
.mcl-page .macl-candidature .elementor-field-group-macl_site{display:none !important}

/* --- Le pied et le contenu décalés de 240 px de trop sur une page d'offre ---
   Signalé par Raz : sur `/carrieres/postes/<offre>/`, le pied de page partait
   à 480 px du bord au lieu de 240.

   Le décalage qui dégage la barre latérale est posé DEUX fois sur le site :
   une fois par `body{padding-left:var(--side-w)}` (bloc « SIDEBAR VERTICALE »,
   la mécanique d'origine), une fois par `.mcl-page{margin-left:240px}` et par
   `body > .elementor-location-footer{margin-left:240px}`. Les deux ne se
   cumulent pas sur les 41 pages parce que le CSS du gabarit d'en-tête contient
   `body.elementor-template-full-width{padding-left:0 !important}` — et cette
   classe, Elementor ne la pose que sur les pages qu'il rend lui-même.

   Une page d'offre est rendue par un gabarit PHP du thème : elle n'a pas cette
   classe, donc le padding du body survivait et s'ajoutait aux marges. On pose
   la même remise à zéro pour elle. */
body.single-macl_offre{padding-left:0 !important; padding-right:0 !important}

/* --- Les deux cartes du bas de « Postes à combler » forment une paire ------
   Signalé par Raz. Elles étaient côte à côte mais dissemblables : colonnes
   1,1fr / 0,9fr et grille calée en haut (`align-items:start`), donc 572 px
   contre 468 px et 214 px de haut contre 195. Deux blocs de même nature, l'un
   un peu plus grand que l'autre : l'œil y lit une hiérarchie qui n'existe pas.

   Même traitement que la paire « Coûts et soutien aux finances » de la page 33,
   le 25 août. La règle est limitée à `--paire` : `.sej-cols` sert ailleurs sur
   le site avec ses proportions asymétriques, qui y sont voulues. */
.mcl-page .sej-cols--paire{
  grid-template-columns:1fr 1fr !important;
  align-items:stretch !important;
}

/* Le surtitre portait 16 px de marge basse EN PLUS des 20 px d'espacement du
   conteneur Elementor : 36 px de blanc entre « ACTIVITÉS DE RECRUTEMENT » et
   son texte, contre 0 dans la carte voisine, qui n'a pas de surtitre. */
.mcl-page .sej-cols--paire .sej-card .ck{margin-bottom:0}

/* Le `!important` ci-dessus passait AUSSI devant la règle de repli
   `@media (max-width:1000px){ .mcl-page .sej-cols{grid-template-columns:1fr} }` :
   les deux cartes restaient côte à côte jusqu'à 147 px de large sur téléphone.
   Un `!important` posé pour gagner contre une règle de bureau gagne aussi
   contre les règles de repli — il faut donc reposer le repli. Mesuré à 390 px
   avant correction. */
@media (max-width:1000px){
  .mcl-page .sej-cols--paire{grid-template-columns:1fr !important}
}

/* --- Champs de fichier en français ---------------------------------------
   « Choose File » et « no file selected » sont dessinés par le NAVIGATEUR, à
   partir de sa propre langue d'interface — pas de celle de la page. Aucun
   attribut, aucune traduction WordPress et aucune règle CSS ne les change :
   le texte n'existe pas dans le document. Un visiteur francophone dont le
   navigateur est en anglais — cas courant — lisait donc de l'anglais sur un
   site d'hôpital québécois.

   Le seul remède fiable : rendre le champ natif transparent, le laisser
   couvrir toute la boîte pour qu'il reste cliquable et focalisable, et
   dessiner par-dessus notre propre bouton et notre propre libellé.
   `macl-offres.js` fait l'enveloppe et tient le nom du fichier à jour.
   L'`<input>` reste dans le flux, dans l'ordre de tabulation, associé à son
   `<label>` par `for`/`id` : rien n'est retiré aux lecteurs d'écran. */
.mcl-page .macl-candidature .macl-fichier{
  position:relative;
  display:flex; align-items:center; gap:12px;
  width:100%;                      /* le champ natif portait `width:100%` ;
                                      l'enveloppe doit reprendre le relais,
                                      sinon la boîte se réduit à son contenu
                                      et ne remplit plus sa colonne. */
  background:var(--canvas);
  border:1px solid rgba(36,71,91,0.22); border-radius:12px;
  padding:9px 12px;
}
.mcl-page .macl-candidature .macl-fichier input[type="file"]{
  position:absolute; inset:0;
  width:100%; height:100%;
  margin:0; padding:0; border:0;
  opacity:0; cursor:pointer;
}
.mcl-page .macl-candidature .macl-fichier-btn{
  flex:0 0 auto;
  font-family:var(--macl-titre); font-weight:600; font-size:0.875rem;
  color:var(--teal-700);
  background:var(--paper);
  border:1px solid rgba(46,122,71,0.35); border-radius:8px;
  padding:7px 14px;
}
.mcl-page .macl-candidature .macl-fichier-nom{
  font-family:var(--sans); font-size:0.9375rem; color:var(--ink-soft);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
/* Le champ étant transparent, c'est la boîte qui doit montrer le focus —
   sans quoi la tabulation ne se voit plus du tout sur ces deux champs. */
.mcl-page .macl-candidature .macl-fichier:focus-within{
  border-color:var(--teal-700);
  box-shadow:0 0 0 3px rgba(46,122,71,0.18);
}
.mcl-page .macl-candidature .macl-fichier:focus-within .macl-fichier-btn{
  background:var(--teal-700); color:#fff; border-color:var(--teal-700);
}
.mcl-page .macl-candidature .macl-fichier--rempli .macl-fichier-nom{
  color:var(--navy-800); font-weight:500;
}
/* « Retirer » (25 oct.) : visible seulement quand un fichier est choisi,
   au-dessus du champ transparent pour ne pas rouvrir la fenêtre de choix. */
.mcl-page .macl-candidature .macl-fichier-retirer{
  display:none;
  position:relative; z-index:2;
  margin-left:auto; flex:0 0 auto;
  font-family:var(--sans); font-size:0.875rem; font-weight:600;
  color:var(--navy-800); background:transparent;
  border:0; border-radius:6px; padding:6px 8px;
  text-decoration:underline; text-underline-offset:3px; cursor:pointer;
}
.mcl-page .macl-candidature .macl-fichier--rempli .macl-fichier-retirer{display:inline-block}
.mcl-page .macl-candidature .macl-fichier-retirer:hover{color:var(--magenta-500)}
.mcl-page .macl-candidature .macl-fichier-retirer:focus-visible{outline:3px solid var(--teal-700); outline-offset:2px}
.mcl-page .macl-candidature .macl-fichier + .elementor-message{display:block; margin-top:6px}
@media (max-width:520px){
  .mcl-page .macl-candidature .macl-fichier{align-items:flex-start; flex-direction:column; gap:8px}
  .mcl-page .macl-candidature .macl-fichier-nom{max-width:100%}
  .mcl-page .macl-candidature .macl-fichier-retirer{margin-left:0; padding-left:0}
}

/* ==========================================================================
   STAGES ET ENSEIGNEMENT — page 516, colonne de droite du chapeau
   --------------------------------------------------------------------------
   Deux cartes en vis-à-vis du grand titre : les partenaires universitaires,
   puis le guide des stagiaires. La colonne est volontairement DÉCALÉE vers le
   bas — le titre est haut et court, l'aligner en haut créerait deux départs
   concurrents à la même hauteur.
   ========================================================================== */
.mcl-page .soins-hero.stg-hero .sh-grid{align-items:start; gap:48px}
/* 326 px et non 72 : la carte Document est passée en tête, et Raz voulait
   qu'elle reste EXACTEMENT à la hauteur qu'elle occupait sous les partenaires.
   306 px = la place que prenait la carte des partenaires plus sa gouttière,
   moins les 20 px de rembourrage vertical que posent encore la grille et la
   colonne (Elementor en met 10 en haut de chaque conteneur ; nous n'avons
   neutralisé que l'horizontal, le vertical étant souvent voulu). Mesuré sur la
   page, pas estimé : la carte retombe au pixel près là où elle était.
   La carte des partenaires descend sous elle, au niveau des paragraphes. */
.mcl-page .stg-aside{display:flex; flex-direction:column; gap:18px; margin-top:306px}

/* Les paragraphes du corps ont été remontés dans la colonne du chapeau : sans
   ce retrait ils collaient au chapô, qui porte déjà `margin-top:28px`. Le
   chapô est plus large que le corps dans la maquette — on garde la mesure de
   `.sh-lede` (54ch) pour lui, et une mesure de lecture normale pour le reste. */
/* DEUX classes et non trois, volontairement. `style.css` est chargée APRÈS le
   CSS de page d'Elementor : à spécificité égale (0,3,0), le thème gagne, et un
   réglage de marge fait dans l'éditeur serait ignoré en silence. Mesuré. En
   descendant à (0,2,0), la valeur ci-dessous n'est plus qu'un DÉFAUT : le jour
   où quelqu'un règle la marge de ce bloc dans Elementor, son réglage passe
   devant tout seul. Même principe que la neutralisation des 10 px. */
.stg-hero .rich{margin-top:34px}
.mcl-page .stg-hero .rich p{max-width:58ch}
.mcl-page .stg-hero .rich p + p{margin-top:16px}

/* --- Les partenaires --- */
.mcl-page .stg-part{
  background:var(--paper);
  border:1px solid rgba(36,71,91,0.14);
  border-radius:16px;
  padding:22px 24px 8px;
  display:flex; flex-direction:column; gap:0;
}
.mcl-page .stg-part .ck{
  font-family:var(--mono); font-size:0.6875rem; letter-spacing:0.12em;
  text-transform:uppercase; color:var(--magenta-500); font-weight:600;
  margin-bottom:6px;
}
.mcl-page .stg-part-l{
  display:flex; flex-direction:row; align-items:center; gap:14px;
  padding:13px 0;
  border-top:1px solid rgba(36,71,91,0.10);
}
.mcl-page .stg-part-l:nth-of-type(2){border-top:none}

/* Les deux logos sont des marques de tiers : on ne les retouche pas. Celui de
   l'UdeM est un PNG à fond BLANC OPAQUE (vérifié : les quatre coins sont à
   255,255,255,255) — posé tel quel sur une carte crème, il afficherait un
   rectangle blanc. Celui de Sherbrooke est un SVG transparent dont le « UdS »
   est blanc DANS un bloc vert, donc lisible partout.
   La tuile blanche règle les deux cas d'un coup, et c'est aussi ce que
   demandent la plupart des chartes universitaires : le logo sur fond neutre,
   avec sa zone de dégagement. */
.mcl-page .stg-part-logo{
  flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  width:96px; height:54px;
  background:#fff;
  border:1px solid rgba(36,71,91,0.10);
  border-radius:8px;
  padding:6px 8px;
}
.mcl-page .stg-part-logo img{
  max-height:100%; max-width:100%; width:auto; height:auto;
  object-fit:contain; display:block;
}
.mcl-page .stg-part-n{
  font-family:var(--macl-titre); font-weight:600; font-size:1rem;
  color:var(--navy-800); line-height:1.3;
}
.mcl-page .stg-part-n .elementor-heading-title{font:inherit; color:inherit}

/* --- La carte d'un document (court-code `[macl_document]`) ---------------
   Orange plutôt que navy : c'est déjà la couleur que porte l'étiquette du
   format dans les listes de documents. La teinte dit « document » au lieu
   d'être décorative.

   Le surtitre est en #8A4A00 et non en `--peach-700` : sur `--peach-100`,
   celui-ci ne donne que 2,97:1 — le même écueil que l'étiquette des listes,
   corrigé le 25 août. Ce brun tient 5,79:1. En contraste renforcé, la
   variable du mode reprend la main. */
.mcl-page .macl-doc-carte{
  display:flex; flex-direction:row; align-items:center; gap:16px;
  background:var(--peach-100);
  border:1px solid #F0D4B0;
  border-radius:16px;
  padding:18px 20px;
  text-decoration:none;
  transition:background 200ms, border-color 200ms;
}
.mcl-page .macl-doc-carte-ic{
  flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  width:42px; height:42px;
  border-radius:10px;
  background:#fff;
  color:#8A4A00;
}
.mcl-page .macl-doc-carte-txt{display:flex; flex-direction:column; gap:3px; min-width:0}
.mcl-page .macl-doc-carte-ck{
  font-family:var(--mono); font-size:0.6875rem; letter-spacing:0.12em;
  text-transform:uppercase; font-weight:700; color:#8A4A00;
}
.mcl-page .macl-doc-carte-t{
  font-family:var(--macl-titre); font-weight:600; font-size:1.0625rem;
  line-height:1.35; color:var(--navy-800);
}
.mcl-page .macl-doc-carte-fl{
  flex:0 0 auto; margin-left:auto;
  font-size:1.125rem; color:#8A4A00;
  transition:transform 200ms;
}
.mcl-page a.macl-doc-carte:hover,
.mcl-page a.macl-doc-carte:focus-visible{
  background:#FADFC0; border-color:#E0B888;
}
.mcl-page a.macl-doc-carte:hover .macl-doc-carte-fl{transform:translateX(4px)}
.mcl-page .macl-doc-carte--vide{opacity:0.75}
.mcl-page .macl-doc-carte--vide .macl-doc-carte-fl{
  font-family:var(--mono); font-size:0.6875rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--ink-soft);
}
.mcl-page .macl-doc-absent{
  margin:0; padding:14px 16px; border-radius:12px;
  background:var(--magenta-50); color:var(--magenta-700);
  font-size:0.9375rem;
}
html[data-macl-contraste="aaa"] .mcl-page .macl-doc-carte-ck,
html[data-macl-contraste="aaa"] .mcl-page .macl-doc-carte-ic,
html[data-macl-contraste="aaa"] .mcl-page .macl-doc-carte-fl{color:var(--peach-700)}

/* 1100 px et non 1000 : c'est LÀ que `.sh-grid--media` repasse en une colonne
   (relevé ligne 880). Ma première version visait 1000, ce qui laissait la
   colonne de droite avec son décalage complet sur une mise en page déjà
   empilée — invisible à 72 px, béant à 326. Mesuré : deux colonnes jusqu'à
   1120 px, empilé à partir de 1100. */
@media (max-width:1100px){
  .mcl-page .stg-aside{margin-top:8px}
}
@media (max-width:520px){
  .mcl-page .macl-doc-carte{align-items:flex-start}
  .mcl-page .macl-doc-carte-fl{margin-left:0}
}

/* ==========================================================================
   LE RETRAIT DE 10 PX — DEUXIÈME FAMILLE DE GABARITS
   --------------------------------------------------------------------------
   Signalé par Raz sur « Stages et enseignement » : le titre et le chapô à
   76 px du bord, le corps du texte à 66, le fil d'Ariane à 56. Trois départs
   différents sur une même page.

   C'est le défaut n° 2 du 25 août — Elementor donne 10 px de rembourrage
   horizontal à tout conteneur neuf, et les niveaux imbriqués s'additionnent :

       .sh-grid (10) › colonne de gauche (10) = 20 px de plus que le fil

   Il avait été corrigé pour `.hmc-main` (Accueil, Soins, Préparer son séjour)
   et JAMAIS pour `.mcl-page`, l'autre famille — celle qui porte 36 pages.
   Relevé avant correction : **352 conteneurs sur 745 portaient ces 10 px.**

   La règle ne touche que la VALEUR PAR DÉFAUT : elle vise la variable avec
   deux classes, si bien que tout conteneur dont le rembourrage a été réglé
   dans l'éditeur — 22, 24, 26, 30, 56 px… — reçoit d'Elementor une règle à
   trois classes qui passe devant. Horizontal seulement : le vertical est
   souvent voulu.
   ========================================================================== */
.mcl-page .e-con{--padding-inline-start:0px; --padding-inline-end:0px}

/* ==========================================================================
   DEVENIR BÉNÉVOLE — page 518, même mise en page que Stages
   --------------------------------------------------------------------------
   Le titre ne tient qu'une ligne ici, contre deux sur Stages : le décalage de
   la colonne de droite ne peut donc pas être le même. Il est mesuré sur cette
   page-ci, pour que la carte Document parte à la hauteur du chapô.
   ========================================================================== */
.mcl-page .soins-hero.bnv-hero .sh-grid{align-items:start; gap:48px}
.mcl-page .bnv-aside{display:flex; flex-direction:column; gap:18px; margin-top:308px}
/* --- La carte « Du bénévolat à la carrière » -----------------------------
   Raz la veut mise en avant : plus grande, plus présente, et distincte de la
   carte du document. Aplat vert et pictogramme de cœur, comme sa maquette.

   La teinte est `--teal-100`, relevé #D8E8D8 sur sa maquette — le jeton de la
   charte en est à deux points près. Aucune couleur nouvelle.

   Le vert du surtitre et du cœur est **#1E5B32 et non `--teal-700`** : sur
   `--teal-100`, celui-ci ne donne que 4,38:1 — sous le seuil pour du petit
   texte, relevé le 25 août sur les pastilles d'étape. Ce vert-ci passe
   largement. Même famille, deux points plus foncé.

   Le cœur est posé en `mask` et non en image de fond : il prend ainsi la
   couleur du texte, donc il suit AUSSI le mode contraste renforcé. Une image
   de fond serait restée claire en AAA. */
.mcl-page .bnv-carte{
  background:var(--teal-100);
  border-color:transparent;
  border-radius:18px;
  padding:28px 30px 30px;
}
.mcl-page .bnv-carte::before{
  content:"";
  display:block;
  width:30px; height:30px;
  margin:0;                     /* le conteneur Elementor pose déjà 20 px
                                   d'espacement : une marge en plus donnerait
                                   le double blanc corrigé le 26 août sur la
                                   carte « Postuler ». */
  background-color:#1E5B32;
  -webkit-mask:var(--macl-coeur) no-repeat center / contain;
          mask:var(--macl-coeur) no-repeat center / contain;
}
.mcl-page .bnv-carte .ck{
  color:#1E5B32;
  margin-bottom:0;
}
.mcl-page .bnv-carte p{
  margin:0;
  font-size:1.0625rem;
  line-height:1.6;
  color:var(--navy-800);
}
html[data-macl-contraste="aaa"] .mcl-page .bnv-carte::before{background-color:var(--teal-700)}
html[data-macl-contraste="aaa"] .mcl-page .bnv-carte .ck{color:var(--teal-700)}

/* La note éditoriale suit le chapô dans la colonne de gauche. Deux classes
   seulement : la valeur reste un défaut réglable dans l'éditeur. */
.bnv-hero .sej-note{margin-top:34px}

/* 1100 px : c'est là que `.sh-grid--media` repasse en une colonne. */
@media (max-width:1100px){
  .mcl-page .bnv-aside{margin-top:8px}
}

/* Le chapô de « Devenir bénévole » monte de 18 à 20 px ------------------------
   Demandé par Raz : le texte doit prendre plus de place. Agrandir est ici le
   bon levier plutôt qu'élargir — le bloc occupe DÉJÀ toute la colonne (572 px,
   `max-width` calculé à 100 %, la limite de 54ch de `.sh-lede` étant neutralisée
   plus haut dans la feuille). Il n'y a donc pas de largeur à gagner.

   Mesuré : 18 px donnent 4 lignes de ~63 caractères ; 20 px en donnent 5 de
   ~57 — plus présent ET une justification plus confortable, la fourchette de
   lecture étant de 45 à 75 caractères. Au-delà de 22 px le nombre de lignes ne
   bouge plus : on gagnerait du gras sans gagner de présence.

   TROIS classes ici, contrairement à mon habitude du jour : la règle d'origine
   `.mcl-page .soins-hero .sh-lede` vaut déjà (0,3,0). Une règle à deux classes
   perdait contre elle — vérifié, le paragraphe restait à 18 px. On reprend donc
   la même forme, posée plus bas dans la feuille. Conséquence assumée : la
   taille de ce chapô est une valeur du thème, pas un réglage de l'éditeur.

   Limité à cette page — `.sh-lede` sert une trentaine de chapeaux. */
.mcl-page .bnv-hero .sh-lede{font-size:1.25rem; line-height:1.55}

/* ==========================================================================
   DROITS (page 520) — un pictogramme à la place du numéro
   --------------------------------------------------------------------------
   Les cartes portaient 01…06. Raz a préféré des pictogrammes, un par recours.

   POSÉS EN `mask`, PAS EN IMAGE. Trois raisons : ils prennent la couleur du
   texte, donc ils suivent le mode contraste renforcé ; ils n'ajoutent aucun
   fichier ni bibliothèque d'icônes (ni Font Awesome, ni SVG en médiathèque) ;
   et le bloc reste un widget Titre natif, vidé de son texte — la règle du
   projet, aucun bloc HTML, tient toujours.

   Ils sont DÉCORATIFS : chaque carte porte déjà son titre en toutes lettres.
   Un lecteur d'écran ne lit rien de plus, et ne perd rien.
   ========================================================================== */
:root{
  --ic-ethique:      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E");
  --ic-commissaire:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.7a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.4 8.4 0 0 1 3.8-.9h.5a8.5 8.5 0 0 1 8 8v.5z'/%3E%3C/svg%3E");
  --ic-maltraitance: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
  --ic-comites:      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
  --ic-archives:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='M16 13H8'/%3E%3Cpath d='M16 17H8'/%3E%3C/svg%3E");
  --ic-media:        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H2v6h4l5 4V5z'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7'/%3E%3Cpath d='M19 5a9 9 0 0 1 0 14'/%3E%3C/svg%3E");
}

.mcl-page .hub-card .hub-ic{
  width:40px; height:40px;
  border-radius:11px;
  background:var(--magenta-100);
  display:flex;
  margin-bottom:4px;
}
/* L'espace insécable qui fait exister le widget occupe un vrai <span> de 4 px
   DANS la pastille. La pastille étant en flex, ce span poussait le glyphe hors
   du centre — visible à l'œil, signalé par Raz. On masque le span : le glyphe
   redevient le seul élément, et `margin:auto` le centre exactement.
   Le texte reste dans la source, donc le widget continue d'être rendu. */
.mcl-page .hub-card .hub-ic .elementor-heading-title{display:none}

.mcl-page .hub-card .hub-ic::after{
  content:"";
  position:relative; inset:auto;      /* Elementor pose `inset:0` sur ses pseudo-éléments */
  flex:none;                          /* la pastille est en flex : sans cela le
                                         glyphe se laissait comprimer à 15,8 px */
  width:20px; height:20px;
  margin:auto;
  background-color:var(--magenta-500);
  -webkit-mask:var(--ic) no-repeat center / contain;
          mask:var(--ic) no-repeat center / contain;
}
.mcl-page .hub-card .hub-ic--ethique::after     {--ic:var(--ic-ethique)}
.mcl-page .hub-card .hub-ic--commissaire::after {--ic:var(--ic-commissaire)}
.mcl-page .hub-card .hub-ic--maltraitance::after{--ic:var(--ic-maltraitance)}
.mcl-page .hub-card .hub-ic--comites::after     {--ic:var(--ic-comites)}
.mcl-page .hub-card .hub-ic--archives::after    {--ic:var(--ic-archives)}
.mcl-page .hub-card .hub-ic--media::after       {--ic:var(--ic-media)}

/* La carte survolée passe son filet en magenta : la pastille suit. */
.mcl-page .hub-card:hover .hub-ic{background:var(--magenta-500)}
.mcl-page .hub-card:hover .hub-ic::after{background-color:#fff}

/* Les bandes des cartes de rubrique ne se suivaient pas ----------------------
   Signalé par Raz sur Droits. Le pictogramme et le titre partent bien à la
   même hauteur, et « Consulter » est collé au bas par `margin-top:auto` — mais
   le TEXTE, lui, démarre là où le titre s'arrête. Un titre sur deux lignes
   décale donc sa description d'une ligne par rapport à ses voisines.

   Relevé avant correction : 4 hauteurs de départ différentes sur Droits (6
   cartes), 5 sur L'hôpital (7 cartes).

   On réserve deux lignes au titre. Les descriptions repartent alors toutes du
   même trait, et une carte dont le titre est court garde simplement un peu
   d'air — mieux qu'un décrochage. Un titre de trois lignes déborderait de la
   réserve sans rien casser : l'alignement se perdrait pour cette grille-là,
   comme avant. */
.mcl-page .hub-card h3{min-height:2.32em}   /* 2 × la hauteur de ligne (1,16) */

/* ==========================================================================
   COMMISSAIRE AUX PLAINTES (page 524) — maquette du 26 août
   --------------------------------------------------------------------------
   Chapeau en deux colonnes, puis quatre cartes en deux colonnes.

   UNE DIFFÉRENCE VOULUE AVEC LA MAQUETTE : la carte des coordonnées y est en
   bleu foncé ; Raz l'a demandée dans le vert pâle employé depuis la page
   Bénévolat. Le fond change, donc TOUT ce qui était posé pour un aplat foncé
   change avec lui — surtitre, texte, valeurs et filets des lignes. C'est le
   piège récurrent : une couleur de fond ne se change jamais seule.
   ========================================================================== */

/* --- Le chapeau à deux colonnes --- */
.mcl-page .cmm-chapo{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:44px;
  margin-top:30px;
  padding-bottom:30px;
  border-bottom:2px solid var(--navy-800);
}
.mcl-page .cmm-chapo-a p{
  margin:0;
  font-size:1.125rem; line-height:1.55; color:var(--navy-800);
}
.mcl-page .cmm-chapo-b p{
  margin:0;
  font-size:1rem; line-height:1.6; color:var(--ink-soft);
}

/* --- Le corps --- */
/* L'écart entre le filet et la première carte valait 118 px : le rembourrage
   bas du chapeau (64), celui du haut de la section (34), et les 10 px que pose
   Elementor sur la grille. Raz l'a trouvé trop grand ; sa maquette en montre
   une vingtaine. On le ramène à 24 en agissant sur les deux premiers.
   Ce sont des valeurs du thème : elles se changent ici, pas dans l'éditeur. */
.mcl-page .cmm-hero{padding-bottom:14px}
.mcl-page .cmm-section{padding-top:0}
.mcl-page .cmm-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:20px;
  align-items:start;
}
.mcl-page .cmm-col{display:flex; flex-direction:column; gap:20px}

.mcl-page .cmm-carte,
.mcl-page .cmm-coord,
.mcl-page .cmm-aide{border-radius:18px; padding:26px 28px 28px}

.mcl-page .cmm-grid h2{
  font-family:var(--macl-titre); font-weight:600;
  font-size:1.125rem; line-height:1.3;
  margin:0 0 4px; color:var(--navy-800);
}
.mcl-page .cmm-grid p{margin:0; font-size:0.96875rem; line-height:1.62; color:var(--ink-soft)}
.mcl-page .cmm-grid p + p{margin-top:14px}

/* --- Les coordonnées, en vert pâle --- */
.mcl-page .cmm-coord{
  background:var(--teal-100);
  border-color:transparent;
}
/* Le surtitre était magenta sur bleu foncé. Sur `--teal-100`, `--teal-700` ne
   donnerait que 4,38:1 — sous le seuil pour du petit texte, relevé le 25 août.
   Ce vert-ci tient largement. Même correctif que la carte de Bénévolat. */
.mcl-page .cmm-coord .ck{color:#1E5B32}
.mcl-page .cmm-coord h4{
  font-family:var(--macl-titre); font-weight:600;
  font-size:1.0625rem; line-height:1.35; margin:0 0 10px; color:var(--navy-800);
}
.mcl-page .cmm-coord p{margin:0 0 18px; color:var(--navy-700); font-size:0.9375rem; line-height:1.6}
/* Les filets des lignes étaient clairs pour un fond foncé : ils disparaîtraient
   sur le vert. On les repose en vert soutenu, à peine visible mais présent. */
.mcl-page .cmm-coord .sej-kv .row{border-bottom-color:rgba(30,91,50,0.28)}
.mcl-page .cmm-coord .sej-kv .k{color:var(--navy-700)}
.mcl-page .cmm-coord .sej-kv .v{color:var(--navy-800)}

/* --- L'encadré d'accompagnement --- */
.mcl-page .cmm-aide{
  background:var(--magenta-100);
  border-color:transparent;
}
.mcl-page .cmm-lien{margin-top:14px; color:var(--magenta-700)}
.mcl-page .cmm-lien:hover{color:var(--magenta-500)}

@media (max-width:1000px){
  .mcl-page .cmm-chapo{grid-template-columns:1fr; gap:18px}
  .mcl-page .cmm-grid{grid-template-columns:1fr}
}

/* ==========================================================================
   LUTTE CONTRE LA MALTRAITANCE (page 526) — maquette du 26 août
   ========================================================================== */
/* Le titre occupe la première rangée, à gauche seulement ; le chapô et la
   carte de signalement partagent la seconde. La carte démarre donc PILE à la
   hauteur du paragraphe — demandé par Raz — et le fait toute seule, quelle que
   soit la hauteur du titre. Pas de décalage en pixels à recalculer à chaque
   largeur, contrairement aux colonnes de Stages et de Bénévolat. */
.mcl-page .mlt-hero .sh-grid{
  grid-template-areas:"titre ." "chapo signal";
  align-items:start;
  row-gap:26px;
}
.mcl-page .mlt-hero .sh-grid > :first-child{grid-area:titre}
.mcl-page .mlt-chapo{grid-area:chapo}
.mcl-page .mlt-signal{grid-area:signal; align-self:start}
.mcl-page .mlt-chapo p{margin:0; font-size:1.0625rem; line-height:1.6; color:var(--navy-700)}
.mcl-page .mlt-chapo p + p{margin-top:16px; color:var(--ink-soft); font-size:1rem}
.mcl-page .mlt-chapo strong{color:var(--navy-800); font-weight:600}

/* La carte de signalement reste en aplat foncé, comme la maquette. Le vert
   demandé par Raz visait la carte des coordonnées du COMMISSAIRE ; ici le bloc
   porte un numéro d'urgence et l'aplat foncé lui donne son poids. */
.mcl-page .mlt-signal{
  background:var(--navy-900);
  border-radius:18px;
  padding:26px 28px 28px;
  display:flex; flex-direction:column; gap:0;
}
.mcl-page .mlt-signal .ck{
  font-family:var(--mono); font-size:0.6875rem; letter-spacing:0.12em;
  text-transform:uppercase; font-weight:600; color:var(--magenta-200);
  margin-bottom:14px;
}
.mcl-page .mlt-tel{
  font-family:var(--macl-titre); font-weight:700;
  font-size:clamp(1.75rem, calc(2.8vw * var(--macl-echelle, 1)), 2.25rem);
  letter-spacing:-0.02em; line-height:1; color:#fff;
}
.mcl-page .mlt-poste p{margin:6px 0 0; color:#C8D6DE; font-size:0.9375rem}
.mcl-page .mlt-k{
  font-family:var(--sans); font-size:0.9375rem; color:#C8D6DE;
  margin-top:20px; padding-top:18px; border-top:1px solid rgba(255,255,255,0.22);
}
.mcl-page .mlt-courriel p{
  margin:4px 0 0; color:#fff; font-weight:600;
  font-size:0.9375rem; overflow-wrap:anywhere;
}

/* --- Le corps : trois cartes pleine largeur --- */
.mcl-page .mlt-section{display:flex; flex-direction:column; gap:20px}
.mcl-page .mlt-carte,
.mcl-page .mlt-aide{border-radius:18px; padding:26px 28px 28px}
.mcl-page .mlt-section h2{
  font-family:var(--macl-titre); font-weight:600; font-size:1.125rem;
  line-height:1.3; margin:0 0 4px; color:var(--navy-800);
}
.mcl-page .mlt-section p{margin:0; font-size:0.96875rem; line-height:1.62; color:var(--ink-soft)}
.mcl-page .mlt-section p + p{margin-top:14px}
/* Les puces reprennent le rose de la carte « Obtenir de l'aide » plus bas, pour
   qu'elles ressortent du blanc de leur carte — demandé par Raz. Portée limitée
   à `.mlt-types` : `.chip-list` sert ailleurs sur le site, en gris neutre. */
.mcl-page .mlt-types{margin-top:4px}
.mcl-page .mlt-types span{background:var(--magenta-100)}
/* La couleur se pose sur l'ENVELOPPE et non sur la puce : la règle de
   normalisation `.chip-list .elementor-heading-title{color:inherit}` vaut
   (0,3,1) et reprenait la main sur la puce elle-même. Le texte hérite. */
.mcl-page .mlt-types > .elementor-widget{color:var(--magenta-700)}

/* Les deux PDF de la politique : la carte du court-code, resserrée en pastille.
   On garde le court-code — donc la fiche Document reste la source unique — et
   on n'en change que l'habillage. */
.mcl-page .mlt-docs{display:flex !important; flex-direction:row; flex-wrap:wrap; gap:12px; margin-top:6px}
.mcl-page .mlt-docs > .elementor-widget{width:auto; flex:0 0 auto}
.mcl-page .mlt-docs .macl-doc-carte{
  background:var(--paper);
  border-color:rgba(36,71,91,0.18);
  border-radius:100px;
  padding:10px 20px 10px 14px;
  gap:10px;
}
.mcl-page .mlt-docs .macl-doc-carte-ic{width:26px; height:26px; border-radius:7px; background:transparent}
.mcl-page .mlt-docs .macl-doc-carte-ic svg{width:17px; height:17px}
.mcl-page .mlt-docs .macl-doc-carte-ck{display:none}   /* surtitre vide sur cette page */
.mcl-page .mlt-docs .macl-doc-carte-t{font-size:0.9375rem; line-height:1.3}
.mcl-page .mlt-docs .macl-doc-carte-fl{display:none}
.mcl-page .mlt-docs a.macl-doc-carte:hover{background:var(--peach-100); border-color:#E0B888}

/* --- Les ressources --- */
.mcl-page .mlt-aide{background:var(--magenta-100); border-color:transparent}
.mcl-page .mlt-ress-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr);
  gap:14px; margin-top:18px; align-items:stretch;
}
.mcl-page .mlt-ress{
  background:var(--paper);
  border-radius:14px;
  padding:18px 18px 20px;
  display:flex; flex-direction:column; gap:0;
  justify-content:space-between;
}
.mcl-page .mlt-ress-n{
  font-family:var(--sans); font-size:0.9375rem; line-height:1.45;
  color:var(--navy-800); margin-bottom:12px;
}
.mcl-page .mlt-ress-t{
  font-family:var(--macl-titre); font-weight:700; font-size:1rem;
  color:var(--magenta-700); white-space:nowrap;
}

@media (max-width:1100px){
  /* Une seule colonne : les zones nommées n'ont plus lieu d'être. */
  .mcl-page .mlt-hero .sh-grid{grid-template-areas:none}
  .mcl-page .mlt-hero .sh-grid > :first-child,
  .mcl-page .mlt-chapo,
  .mcl-page .mlt-signal{grid-area:auto}
}
@media (max-width:900px){
  .mcl-page .mlt-ress-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .mcl-page .mlt-ress-grid{grid-template-columns:1fr}
  .mcl-page .mlt-docs > .elementor-widget{width:100%}
}

/* Maltraitance — le filet et l'écart avec les cartes -------------------------
   Le filet est posé sur la GRILLE du chapeau, pas sur la section : la section
   porte 56 px de rembourrage horizontal, un filet posé sur elle dépasserait le
   texte des deux côtés. Sur la grille, il s'arrête pile au bord commun. */
.mcl-page .mlt-hero .sh-grid{padding-bottom:26px; border-bottom:2px solid var(--navy-800)}
.mcl-page .mlt-hero{padding-bottom:14px}
.mcl-page .mlt-section{padding-top:22px}

/* En mode contraste renforcé, une règle générale repeint TOUS les surtitres
   `.ck` en prune foncé — elle suppose un fond clair. Sur la carte de
   signalement, qui reste en aplat foncé, le surtitre tombait à **1,26:1** :
   pratiquement invisible, et sur le bloc qui porte le numéro à composer.
   Relevé par le balayage automatique, pas à l'œil.

   À RETENIR : les règles du mode AAA supposent des fonds clairs. Tout bloc en
   aplat foncé doit reposer ses propres couleurs pour ce mode. */
html[data-macl-contraste="aaa"] .mcl-page .mlt-signal .ck{color:var(--magenta-200)}
html[data-macl-contraste="aaa"] .mcl-page .mlt-signal .mlt-tel,
html[data-macl-contraste="aaa"] .mcl-page .mlt-signal .mlt-courriel p{color:#fff}

/* ==========================================================================
   COMITÉ DES USAGERS (page 528) — maquette du 26 août
   --------------------------------------------------------------------------
   Troisième page de la section Droits construite sur le même patron que
   Commissaire et Maltraitance : filet marine sous le chapô, puis des cartes
   pleine largeur empilées. Les trois pages doivent se lire comme une famille.
   ========================================================================== */

.mcl-page .cmt-hero .sh-grid{padding-bottom:26px; border-bottom:2px solid var(--navy-800)}
.mcl-page .cmt-hero{padding-bottom:14px}
.mcl-page .cmt-section{padding-top:22px; display:flex; flex-direction:column; gap:20px}

.mcl-page .cmt-carte,
.mcl-page .cmt-actif,
.mcl-page .cmt-joindre{border-radius:18px; padding:26px 28px 28px}
.mcl-page .cmt-section h2{
  font-family:var(--macl-titre); font-weight:600; font-size:1.125rem;
  line-height:1.3; margin:0 0 4px; color:var(--navy-800);
}
.mcl-page .cmt-section p{margin:0; font-size:0.96875rem; line-height:1.62; color:var(--ink-soft)}

/* --- Les six responsabilités, numérotées sur trois colonnes ---------------
   `.sej-steps--cols` vient de « De l'arrivée au congé » (page 492) : on la
   réemploie telle quelle. Ici chaque case n'a PAS de titre — la phrase du
   document de référence est indivisible — le paragraphe monte donc sur la
   rangée du numéro plutôt que de flotter sous une rangée vide. */
.mcl-page .cmt-resp{margin-top:0; gap:30px 44px}
.mcl-page .cmt-resp .sej-step{row-gap:0; align-items:start}
.mcl-page .cmt-resp .sej-step-p{grid-column:2; grid-row:1}
.mcl-page .cmt-resp .sej-step-p p{font-size:0.96875rem; line-height:1.55; padding-top:3px}

/* La pastille de la page 492 pose `--teal-700` sur `--teal-100` : 4,38:1.
   Le chiffre fait 22 px gras, donc du « grand texte » : il passe AA (3:1) mais
   rate AAA (4,5:1) de peu. Le vert foncé du site — celui des cartes vertes de
   Bénévolat et de Commissaire — le porte à 6,73:1, mesuré. Portée limitée à
   `.cmt-resp` : la page 492 est livrée et vérifiée telle quelle. */
.mcl-page .cmt-resp .sn{color:#1E5B32}

/* --- « Un partenaire actif » : la carte rose de la maquette --------------- */
.mcl-page .cmt-actif{background:var(--magenta-100); border-color:transparent}
/* La carte est un conteneur flex de gouttière 20 px : la marge propre de
   l'étiquette s'y ajoutait et creusait 36 px sous le surtitre. */
.mcl-page .cmt-actif .ck{color:var(--magenta-700); margin-bottom:0}
.mcl-page .cmt-actif p{color:var(--navy-800); font-size:1.0625rem; line-height:1.6}

/* --- « Joindre le comité » : le contenu reste à fournir -------------------
   L'encadré pointillé `.note-attente` est la convention déjà employée sur le
   site pour un contenu en attente : il se voit sans se faire passer pour de
   l'information. */
.mcl-page .cmt-joindre .note-attente{margin-top:0}

/* Entre 1000 et 1280 px, trois colonnes ne laissent que 149 à 169 px de texte
   — une vingtaine de caractères par ligne, illisible pour des phrases de cette
   longueur. On passe à deux colonnes avant d'empiler.
   La borne basse est explicite : la règle à une colonne de `.sej-steps--cols`
   vit dans une media query ÉCRITE PLUS HAUT dans ce fichier, à égale
   spécificité. Sans `min-width`, celle-ci l'emporterait sous 1000 px. */
@media (min-width:1001px) and (max-width:1279px){
  .mcl-page .cmt-resp{grid-template-columns:repeat(2, minmax(0,1fr)); gap:28px 40px}
}

@media (max-width:1000px){
  .mcl-page .cmt-resp{gap:26px}
}

/* ==========================================================================
   DEMANDER VOS ARCHIVES MÉDICALES (page 530) — maquette du 26 août
   --------------------------------------------------------------------------
   Cinquième et dernière page de la section Droits. Chapeau à deux colonnes
   fermé d'un filet, trois cas de figure à pictogramme, puis les formulaires.

   LES TROIS FORMULAIRES PASSENT DÉSORMAIS PAR LES FICHES DOCUMENTS : la page
   ne connaît plus aucune adresse de PDF. Trois liens morts de moins.
   ========================================================================== */

:root{
  /* Mêmes tracés que les pictogrammes du hub Droits : jeu Feather, 24 × 24,
     contour de 1,7. Le noir du tracé n'est jamais vu — le masque CSS ne garde
     que la forme et la recolore. */
  --ic-signature: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E");
  --ic-mandat:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='8.5' cy='7' r='4'/%3E%3Cpolyline points='17 11 19 13 23 9'/%3E%3C/svg%3E");
  --ic-deces:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='21 8 21 21 3 21 3 8'/%3E%3Crect x='1' y='3' width='22' height='5' rx='1'/%3E%3Cline x1='10' y1='12' x2='14' y2='12'/%3E%3C/svg%3E");
}

/* --- Le chapeau ---------------------------------------------------------- */
.mcl-page .arc-chapo{
  display:grid !important;          /* le conteneur Elementor est en flex */
  grid-template-columns:1fr 1fr;
  gap:44px;
  margin-top:30px;
  padding-bottom:30px;
  border-bottom:2px solid var(--navy-800);
}
.mcl-page .arc-chapo-a p{margin:0; font-size:1.125rem; line-height:1.6; color:var(--navy-700)}
.mcl-page .arc-chapo-a strong{color:var(--navy-800); font-weight:600}
.mcl-page .arc-chapo-b p{margin:0; font-size:1rem; line-height:1.62; color:var(--ink-soft)}
.mcl-page .arc-hero{padding-bottom:14px}
.mcl-page .arc-section{padding-top:22px; display:flex; flex-direction:column; gap:20px}

/* --- Les trois cas de figure --------------------------------------------
   Le pictogramme reprend exactement la pastille des cartes du hub Droits :
   même carré de 40 px, même rose, même masque. L'étiquette passe au magenta
   pour que la tuile ne mêle pas deux familles de couleur. */
.mcl-page .arc-tile{gap:10px; padding:24px 26px 26px}
.mcl-page .arc-tile .arc-ic{
  width:40px; height:40px;
  border-radius:11px;
  background:var(--magenta-100);
  display:flex;
  margin-bottom:2px;
}
/* Même piège que sur le hub : l'espace insécable occupe un vrai <span> de 4 px
   dans une pastille en flex et décentre le glyphe. On masque le <span> — le
   widget continue d'exister, `margin:auto` centre exactement. */
.mcl-page .arc-tile .arc-ic .elementor-heading-title{display:none}
.mcl-page .arc-tile .arc-ic::after{
  content:"";
  position:relative; inset:auto;   /* Elementor pose `inset:0` sur ses pseudo-éléments */
  flex:none;                       /* sans quoi le glyphe se laisse comprimer */
  width:20px; height:20px;
  margin:auto;
  background-color:var(--magenta-500);
  -webkit-mask:var(--ic) no-repeat center / contain;
          mask:var(--ic) no-repeat center / contain;
}
.mcl-page .arc-tile .arc-ic--signature::after{--ic:var(--ic-signature)}
.mcl-page .arc-tile .arc-ic--mandat::after   {--ic:var(--ic-mandat)}
.mcl-page .arc-tile .arc-ic--deces::after    {--ic:var(--ic-deces)}
.mcl-page .arc-tile .ln{color:var(--magenta-700)}
/* Sans rien, les trois paragraphes démarrent à trois hauteurs différentes :
   les titres ne font pas le même nombre de lignes. Un plancher en `em` marche,
   mais il faut alors deviner à quelle largeur chaque titre passe à la ligne —
   et se tromper d'un pixel se voit. La sous-grille aligne les quatre rangées
   des trois tuiles d'elle-même, à TOUTE largeur, sans nombre magique.
   Le plancher reste en repli pour les navigateurs sans `subgrid`. */
.mcl-page .arc-tile h4{min-height:2.5em}
@supports (grid-template-rows:subgrid){
  .mcl-page .arc-tiles{grid-template-rows:repeat(4, auto)}
  .mcl-page .arc-tile{
    display:grid;
    grid-template-rows:subgrid;
    grid-row:span 4;
    row-gap:10px;
    align-content:start;
  }
  .mcl-page .arc-tile h4{min-height:0}
}
.mcl-page .arc-tile p{font-size:0.90625rem; line-height:1.55}

/* --- Les formulaires ----------------------------------------------------- */
.mcl-page .arc-form{border-radius:18px; padding:26px 28px 28px}
.mcl-page .arc-section h2{
  font-family:var(--macl-titre); font-weight:600; font-size:1.125rem;
  line-height:1.3; margin:0; color:var(--navy-800);
}
/* 13 oct. 2026 : le nombre de pastilles suit le nombre de formulaires (2 depuis le
   retrait du doublon « Demande d'accès au dossier »). auto-fit replie les colonnes
   vides ; le plancher de 220 px empêche un long mot de déborder sur la voisine. */
.mcl-page .arc-docs{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:14px}
/* Les trois pastilles doivent faire la même hauteur, or la case de grille est
   le WIDGET Elementor, pas la carte : la carte s'arrêtait à son texte et les
   trois libellés, de longueurs très inégales, donnaient trois hauteurs. On
   rend la chaîne widget → court-code → carte étirable. */
.mcl-page .arc-docs > .elementor-widget{display:flex}
.mcl-page .arc-docs .elementor-shortcode{display:flex; flex:1 1 auto}
.mcl-page .arc-docs .macl-doc-carte{flex:1 1 auto}

@media (max-width:1100px){
  .mcl-page .arc-chapo{grid-template-columns:1fr; gap:18px}
  .mcl-page .arc-docs{grid-template-columns:1fr}
}
/* Le plancher des titres suit le nombre de colonnes des tuiles, pas une largeur
   choisie au jugé : tant qu'elles sont côte à côte, leurs paragraphes doivent
   partir à la même hauteur. `.sej-grid3` passe à deux colonnes sous 1000 px —
   les titres montent alors à trois lignes — et à une seule sous 720 px, où le
   plancher n'a plus d'objet. */
@media (min-width:721px) and (max-width:1100px){
  .mcl-page .arc-tile h4{min-height:3.75em}
}
@media (max-width:720px){
  .mcl-page .arc-tile h4{min-height:0}
}
/* Les deux règles ci-dessus ne servent qu'au repli : là où `subgrid` existe,
   c'est lui qui aligne, et le plancher doit rester nul à toute largeur. */
@supports (grid-template-rows:subgrid){
  .mcl-page .arc-tile h4{min-height:0}
}

/* ==========================================================================
   CODE D'ÉTHIQUE (page 522) — maquette du 26 août
   --------------------------------------------------------------------------
   Cinquième et dernière page de la section Droits, même patron que les autres.
   Deux aplats la structurent : le marine pour ce que l'établissement PROMET
   (l'engagement, le document complet), le rose pour ce qu'il DEMANDE (vos
   responsabilités). Les six droits restent sur fond blanc, au centre.
   ========================================================================== */

/* La gouttière par défaut de `.sh-grid` est de 56 px : entre le chapô et la
   carte d'engagement, cela creusait 108 px mesurés. On la resserre ici, et les
   deux blocs ne posent plus de marge propre qui viendrait s'y ajouter. */
.mcl-page .eth-hero .sh-grid{row-gap:38px}
.mcl-page .eth-chapo{
  display:grid !important;          /* le conteneur Elementor est en flex */
  grid-template-columns:1fr 1fr;
  gap:44px;
  margin-top:0;
}
.mcl-page .eth-chapo-a p{margin:0; font-size:1.0625rem; line-height:1.6; color:var(--navy-700)}
.mcl-page .eth-chapo-b p{margin:0; font-size:1rem; line-height:1.62; color:var(--ink-soft)}

/* --- « Notre engagement » : la promesse, en aplat marine ------------------ */
.mcl-page .eth-engage{
  background:var(--navy-900);
  border-radius:18px;
  padding:26px 30px 30px;
  margin:0 0 38px;
  border-bottom:none;
}
/* `.ck` n'est habillé QUE dans un `.sej-card` (ligne 763) : hors de lui,
   l'étiquette retombe au style de titre courant — ni mono, ni capitales. Les
   deux cartes de cette page sont des conteneurs nus, elles reposent donc
   l'habillage, comme le fait déjà la carte de signalement de Maltraitance. */
.mcl-page .eth-engage .ck,
.mcl-page .eth-applic .ck{
  font-family:var(--mono); font-size:0.6875rem; letter-spacing:0.12em;
  text-transform:uppercase; font-weight:600; margin-bottom:0;
}
.mcl-page .eth-engage .ck{color:var(--magenta-200)}
.mcl-page .eth-applic .ck{color:var(--magenta-500)}
.mcl-page .eth-engage p{
  margin:0; color:#fff; max-width:44ch;
  font-family:var(--macl-titre); font-weight:600;
  font-size:clamp(1.125rem, calc(1.8vw * var(--macl-echelle, 1)), 1.4375rem);
  line-height:1.35;
}
/* Le filet ferme le chapeau après l'engagement, comme sur les quatre autres
   pages de la section. */
.mcl-page .eth-hero .sh-grid{padding-bottom:0; border-bottom:2px solid var(--navy-800)}
.mcl-page .eth-hero{padding-bottom:14px}
.mcl-page .eth-section{padding-top:26px; display:flex; flex-direction:column; gap:22px}

/* --- Les six droits ------------------------------------------------------ */
.mcl-page .eth-droits{padding:0; gap:0}
.mcl-page .eth-droits h2{
  font-family:var(--macl-titre); font-weight:700;
  font-size:clamp(1.5rem, calc(2.4vw * var(--macl-echelle, 1)), 2rem);
  letter-spacing:-0.02em; line-height:1.2; margin:0; color:var(--ink);
}
.mcl-page .eth-sous p{margin:6px 0 0; font-size:0.96875rem; line-height:1.55; color:var(--ink-soft); max-width:52ch}
.mcl-page .eth-grid{
  display:grid !important;
  grid-template-columns:repeat(3, minmax(0,1fr));
  /* Pas de `grid-auto-rows:1fr` : cela alignait les DEUX rangées sur la plus
     haute et creusait 40 px de vide sous les trois premières cartes. Chaque
     rangée se dimensionne sur son propre contenu ; à l'intérieur d'une rangée,
     les cartes s'étirent d'elles-mêmes. C'est ce que montre la maquette. */
  gap:18px;
  margin-top:26px;
}
.mcl-page .eth-droit{
  background:#fff;
  border:1px solid rgba(36,71,91,0.13);
  border-radius:16px;
  padding:22px 24px 24px;
  gap:10px;
  height:100%;
  align-content:start;
}
.mcl-page .eth-n{
  font-family:var(--mono); font-size:0.75rem; letter-spacing:0.1em;
  font-weight:600; color:var(--magenta-500);
}
.mcl-page .eth-droit h3{
  font-family:var(--macl-titre); font-weight:600; font-size:1.0625rem;
  line-height:1.32; margin:0; color:var(--navy-800); text-wrap:pretty;
}
.mcl-page .eth-precision p{margin:0; font-size:0.875rem; line-height:1.5; color:var(--ink-soft)}
.mcl-page .eth-lien p{margin:0; font-size:0.90625rem; font-weight:600}
.mcl-page .eth-lien a{color:var(--magenta-700); text-decoration:none}
.mcl-page .eth-lien a:hover{color:var(--magenta-500); text-decoration:underline}

/* --- « Et vous avez des responsabilités » : la demande, en rose ----------- */
.mcl-page .eth-respo{
  background:var(--magenta-100);
  border-radius:18px;
  padding:28px 30px 30px;
  gap:12px;
}
.mcl-page .eth-respo h2{
  font-family:var(--macl-titre); font-weight:700;
  font-size:clamp(1.3125rem, calc(2vw * var(--macl-echelle, 1)), 1.6875rem);
  letter-spacing:-0.02em; line-height:1.2; margin:0; color:var(--ink);
}
.mcl-page .eth-respo > .elementor-widget-text-editor p{
  margin:0; font-size:1rem; line-height:1.6; color:var(--navy-800); max-width:72ch;
}
/* Les puces passent en blanc plein sur le rose : c'est ce que montre la
   maquette, et le blanc les détache du fond sans ajouter une teinte de plus.
   La couleur du texte se pose sur l'ENVELOPPE — `.chip-list
   .elementor-heading-title{color:inherit}` vaut (0,3,1) et reprendrait la main
   sur la puce elle-même. Même piège que sur Maltraitance. */
.mcl-page .eth-chips{margin-top:6px}
.mcl-page .eth-chips span{background:#fff; border-color:transparent}
.mcl-page .eth-chips > .elementor-widget{color:var(--magenta-700)}

/* --- Le bas de page : qui l'applique, et le document complet -------------- */
.mcl-page .eth-bas{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:stretch;
}
.mcl-page .eth-applic,
.mcl-page .eth-doc{border-radius:18px; padding:26px 28px 28px; height:100%}
.mcl-page .eth-applic{background:#fff; border:1px solid rgba(36,71,91,0.13); gap:14px}
.mcl-page .eth-applic p{margin:0; font-size:0.96875rem; line-height:1.6; color:var(--ink-soft)}
.mcl-page .eth-applic p + p{margin-top:14px}

/* La carte du document reprend l'aplat marine de l'engagement : les deux
   disent ce que l'établissement fournit. Le court-code reste la source — on
   n'en change que l'habillage, de la pastille horizontale à un bloc empilé. */
.mcl-page .eth-doc{background:var(--navy-900); gap:14px}
.mcl-page .eth-doc .macl-doc-carte{
  background:transparent; border:none; padding:0;
  flex-direction:column; align-items:flex-start; gap:16px;
}
.mcl-page .eth-doc .macl-doc-carte-ic{
  width:42px; height:42px; border-radius:12px; flex:none;
  background:rgba(255,255,255,0.12); color:#fff;
  display:flex; align-items:center; justify-content:center;
}
.mcl-page .eth-doc .macl-doc-carte-ck{color:var(--magenta-200)}
.mcl-page .eth-doc .macl-doc-carte-t{
  font-family:var(--macl-titre); font-weight:600; font-size:1.125rem;
  line-height:1.3; color:#fff;
}
.mcl-page .eth-doc .macl-doc-carte-fl{display:none}   /* la maquette ne montre pas de flèche */

/* --- Le survol : c'est la CARTE qui réagit, pas la zone du lien -----------
   Deux problèmes se cumulaient. D'abord la règle partagée
   `.mcl-page a.macl-doc-carte:hover{background:#FADFC0}` vaut (0,3,1) : elle
   reprenait la main sur le fond transparent posé plus haut, et le pêche des
   listes de documents s'allumait en plein milieu de l'aplat marine. Ensuite le
   lien ne couvre que le pictogramme et le titre — la description et la date
   sont ses SŒURS, pas ses enfants — donc seule cette bande réagissait. */
.mcl-page .eth-doc a.macl-doc-carte:hover,
.mcl-page .eth-doc a.macl-doc-carte:focus-visible{background:transparent; border-color:transparent}

/* Le lien s'étire sur toute la carte par un pseudo-élément sans style visible :
   il n'agrandit que la cible. La carte devient cliquable d'un bord à l'autre,
   et `a:hover` devient vrai partout dessus. */
.mcl-page .eth-doc{position:relative; transition:background-color 180ms ease}
/* Elementor pose `position:relative` sur CHAQUE widget. Le pseudo-élément
   s'arrêtait donc au widget du court-code (515 × 101) au lieu de couvrir la
   carte (571 × 253) : mesuré. On rend ce widget-ci statique pour que le plus
   proche ancêtre positionné redevienne la carte. */
.mcl-page .eth-doc > .elementor-widget{position:static}
.mcl-page .eth-doc a.macl-doc-carte::after{content:""; position:absolute; inset:0; border-radius:18px}
.mcl-page .eth-doc .macl-doc-carte:hover .macl-doc-carte-t{text-decoration:underline}

/* Le fond appartient au PARENT du lien : seul `:has()` permet de le teinter
   depuis l'état du lien. Repli sans `:has()` : le soulignement du titre suffit
   à signaler le survol, et la carte reste entièrement cliquable. */
/* Le fond ne peut pas s'éclaircir davantage : à #22405A, « Révision décembre
   2024 » tomberait à 4,40:1, sous le seuil. #1C374C garde les quatre textes
   au-dessus de 5:1. Deux signaux gratuits en contraste s'y ajoutent — un filet
   intérieur rosé et la pastille du pictogramme qui s'éclaircit — pour que le
   survol se voie sans toucher à la lisibilité. */
.mcl-page .eth-doc:has(a.macl-doc-carte:hover){
  background:#1C374C;
  box-shadow:inset 0 0 0 1px rgba(229,191,217,0.45);
}
.mcl-page .eth-doc:has(a.macl-doc-carte:hover) .macl-doc-carte-ic{background:rgba(255,255,255,0.22)}
.mcl-page .eth-doc:has(a.macl-doc-carte:focus-visible){
  outline:3px solid var(--magenta-200); outline-offset:3px;
}
.mcl-page .eth-doc-d p{margin:0; font-size:0.9375rem; line-height:1.6; color:#C8D6DE}
/* `--navy-500` sur l'aplat marine ne donne que 4,01:1 — sous le seuil, relevé
   par le balayage. #93A9B5 le porte à 6,16:1 en restant nettement plus discret
   que la description au-dessus (10,13:1). */
.mcl-page .eth-doc-rev p{margin:0; font-size:0.875rem; color:#93A9B5}

/* En mode AAA, la règle globale `.mcl-page .ck{color:#4F0A3E}` suppose un fond
   clair : sur l'aplat marine elle rendrait l'étiquette illisible. Même piège
   que sur la carte de signalement de Maltraitance. */
html[data-macl-contraste="aaa"] .mcl-page .eth-engage .ck,
html[data-macl-contraste="aaa"] .mcl-page .eth-doc .macl-doc-carte-ck{color:var(--magenta-200)}
html[data-macl-contraste="aaa"] .mcl-page .eth-doc .macl-doc-carte-t,
html[data-macl-contraste="aaa"] .mcl-page .eth-engage p{color:#fff}
html[data-macl-contraste="aaa"] .mcl-page .eth-doc-d p{color:#E6EDF1}
html[data-macl-contraste="aaa"] .mcl-page .eth-doc-rev p{color:#C8D6DE}

@media (max-width:1180px){
  .mcl-page .eth-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width:1100px){
  .mcl-page .eth-chapo{grid-template-columns:1fr; gap:18px}
  .mcl-page .eth-bas{grid-template-columns:1fr}
}
@media (max-width:720px){
  .mcl-page .eth-grid{grid-template-columns:1fr}
}

/* ==========================================================================
   QUESTIONS FRÉQUENTES (page 534) — maquette du 26 août
   --------------------------------------------------------------------------
   La page ne contient qu'un court-code : tout ce qui suit habille la sortie de
   `[macl_faq]`. Les accordéons sont des <details> natifs — clavier, recherche
   dans la page et repli sans JavaScript viennent avec.

   ANCIENNES CLASSES. La page portait `.faq-group`, `.faq-item` et `.faq-q` en
   blocs Elementor. Elles ne servent plus ici, mais restent employées ailleurs
   sur le site : ne pas les supprimer de la feuille.
   ========================================================================== */

/* --- Le chapeau : titre à gauche, chapô à droite -------------------------- */
/* LE CHAPEAU EST EN FLEX, PAS EN GRILLE — ET C'EST DÉLIBÉRÉ.
   En grille, la poignée de redimensionnement d'Elementor ne peut PAS élargir
   le chapô : elle écrit un pourcentage, et ce pourcentage se calcule sur la
   PISTE de grille, pas sur le chapeau. À 100 % le conteneur fait donc
   exactement la largeur de sa piste — soit ce qu'il faisait déjà. Mesuré :
   60 % → 367 px, 100 % → 612 px, la piste. La poignée ne pouvait que
   rétrécir, jamais élargir, et revenait « à la taille standard ».

   En flex, le pourcentage se calcule sur le chapeau entier : la poignée
   reprend son sens et Raz règle la largeur à la main.

   AUCUNE LARGEUR N'EST ÉCRITE ICI — voir la note sous la règle. Les deux
   proportions sont des réglages de la page, posés par la poignée. */
.mcl-page .faq-hero .sh-grid{
  display:flex !important;          /* bat le `display:grid !important` partagé */
  /* Elementor impose `flex-direction:column` à TOUS ses conteneurs. Sans cette
     ligne, passer en flex empilait les deux colonnes l'une sous l'autre — c'est
     exactement ce qui s'est produit, et c'est déjà noté plus haut dans cette
     feuille pour les autres rangées horizontales du site. */
  flex-direction:row !important;
  /* `nowrap` et non `wrap` : avec le retour à la ligne, le navigateur décide de
     casser la rangée AVANT d'avoir rétréci les colonnes, et le chapô passait
     dessous entre 1060 et 1120 px — mesuré. Sans retour à la ligne, les deux
     colonnes se contentent de rétrécir ; le plancher `min-content` empêche le
     titre d'être écrasé et le chapô ne descend jamais sous 94 px. En dessous de
     1000 px, la pile est reprise explicitement par la requête média plus bas. */
  flex-wrap:nowrap;
  /* `flex-end` ET NON `flex-start` : les deux colonnes se posent sur la MÊME
     ligne de base, comme le fait la maquette approuvée (`.soins-hero .sh-grid
     { align-items:end }`). Aligné en haut, le chapô — plus court que le titre
     — laissait un vide sous lui : 164 px avant la correction du corps du
     titre, 91 px après. Signalé deux fois par Raz. Le vide n'était pas dû à
     la taille du titre seule : les deux colonnes n'auront JAMAIS la même
     hauteur, donc seul l'alignement par le bas le fait disparaître.
     Sans effet sous 1000 px : la requête média plus bas empile les colonnes
     et leur pose `width:100%`. */
  align-items:flex-end;
  gap:48px;
}
/* `min-width` doit passer à TROIS classes : Elementor pose `min-width:0` sur
   ses conteneurs et l'emportait à deux — mesuré, la valeur calculée restait
   0 px et le mot « fréquentes » débordait de sa colonne entre 1100 et 1300 px.
   Ce plancher-ci n'enlève rien à l'éditeur : il ne touche pas `width`. */
.mcl-page .faq-hero .sh-grid > *{flex:0 1 auto; min-width:min-content}
/* AUCUNE LARGEUR N'EST POSÉE ICI — et c'est le point qui débloque la poignée.
   Elementor n'écrit pas `width` quand on redimensionne un conteneur : il écrit
   `.elementor-element-XXX{--width:52%}`, appliqué par sa règle `.e-con{width:
   var(--width)}` qui ne vaut QU'UNE classe. Toute largeur écrite ici, même à
   deux classes, l'emporterait et la poignée resterait sans effet.
   Les deux proportions par défaut (40 % et 50 %) sont donc des RÉGLAGES DE LA
   PAGE, posés par `macl-faq-colonnes.php`. L'éditeur les possède ; le thème ne
   fait plus que la direction, la gouttière et le plancher.
   NE PAS RAJOUTER DE `width` NI DE `flex-basis` SUR CES DEUX COLONNES. */
/* Pas de `max-width` sur le chapô : Elementor pose `max-width:100%` sur ses
   widgets à (0,4,0), ce qui l'emporterait. Une règle qui ne s'applique pas est
   un piège pour la relecture. */
.mcl-page .faq-lede .sh-lede{margin-top:12px}
/* Le mot en italique passe au magenta sur cette page — c'est ce que montre la
   maquette. Portée limitée : ailleurs sur le site il reste vert. */
.mcl-page .faq-hero h1 em{color:var(--magenta-500)}
.mcl-page .faq-hero{padding-bottom:18px}
.mcl-page .faq-section{padding-top:0}

/* --- La barre : puces de rubrique et dépliage global ---------------------- */
.mcl-page .faq-bloc{display:flex; flex-direction:column; gap:0}
.mcl-page .faq-barre{
  display:flex; flex-wrap:wrap; align-items:center; gap:12px;
  padding-bottom:22px;
  border-bottom:2px solid var(--navy-800);
}
.mcl-page .faq-puces{display:flex; flex-wrap:wrap; gap:10px; flex:1 1 auto}
.mcl-page .faq-puce,
.mcl-page .faq-tout{
  font-family:var(--sans); font-size:0.9375rem; font-weight:500;
  line-height:1.2; cursor:pointer;
  padding:11px 20px; border-radius:999px;
  background:#fff; color:var(--navy-800);
  border:1px solid rgba(36,71,91,0.18);
  transition:background-color 150ms ease, color 150ms ease, border-color 150ms ease;
}
.mcl-page .faq-puce:hover,
.mcl-page .faq-tout:hover{border-color:var(--navy-800)}
.mcl-page .faq-puce.is-on{background:var(--navy-900); color:#fff; border-color:var(--navy-900)}
.mcl-page .faq-tout{margin-left:auto; font-weight:600}
.mcl-page .faq-puce:focus-visible,
.mcl-page .faq-tout:focus-visible{outline:3px solid var(--magenta-500); outline-offset:2px}

/* --- Les groupes --------------------------------------------------------- */
.mcl-page .faq-groupes{display:flex; flex-direction:column; gap:0}
.mcl-page .faq-groupe{display:flex; flex-direction:column; gap:12px; padding-top:34px}
.mcl-page .faq-groupe[hidden]{display:none}
.mcl-page .faq-groupe-t{
  font-family:var(--macl-titre); font-weight:700;
  font-size:clamp(1.3125rem, calc(2vw * var(--macl-echelle, 1)), 1.6875rem);
  letter-spacing:-0.02em; line-height:1.2; margin:0 0 2px; color:var(--ink);
}

/* --- Une question -------------------------------------------------------- */
.mcl-page .faq-q{
  background:#fff;
  border:1px solid rgba(36,71,91,0.13);
  border-radius:14px;
  overflow:hidden;
}
.mcl-page .faq-s{
  display:flex; align-items:center; gap:20px;
  padding:20px 24px;
  cursor:pointer;
  list-style:none;                 /* Firefox */
}
.mcl-page .faq-s::-webkit-details-marker{display:none}   /* Safari, Chrome */
.mcl-page .faq-s-t{
  flex:1 1 auto;
  font-family:var(--macl-titre); font-weight:600; font-size:1rem;
  line-height:1.4; color:var(--navy-800); text-wrap:pretty;
}
.mcl-page .faq-s:hover .faq-s-t{color:var(--ink)}
.mcl-page .faq-q:focus-within{border-color:var(--navy-500)}
.mcl-page .faq-s:focus-visible{outline:3px solid var(--magenta-500); outline-offset:-3px; border-radius:14px}

/* La pastille « + » : deux barres, dont l'une pivote à l'ouverture. Pas
   d'icône à charger, et elle suit la couleur du texte en mode contraste. */
.mcl-page .faq-pm{
  flex:none; position:relative;
  width:26px; height:26px; border-radius:50%;
  border:1px solid var(--magenta-500);
  color:var(--magenta-500);
}
.mcl-page .faq-pm::before,
.mcl-page .faq-pm::after{
  content:""; position:absolute; top:50%; left:50%;
  width:11px; height:1.5px; border-radius:2px;
  background:currentColor;
  transform:translate(-50%, -50%);
  transition:transform 180ms ease, opacity 180ms ease;
}
.mcl-page .faq-pm::after{transform:translate(-50%, -50%) rotate(90deg)}
.mcl-page .faq-q[open] .faq-pm::after{transform:translate(-50%, -50%) rotate(0deg)}
.mcl-page .faq-q[open]{border-color:rgba(36,71,91,0.22)}

.mcl-page .faq-r{padding:0 24px 22px; max-width:78ch}
.mcl-page .faq-r p{margin:0; font-size:0.96875rem; line-height:1.62; color:var(--ink-soft)}
.mcl-page .faq-r p + p{margin-top:12px}
.mcl-page .faq-r a{color:var(--magenta-700)}

/* Le contenu ne doit pas surgir : une petite ouverture suffit à signaler que
   c'est le même bloc qui grandit. Respecte le réglage système. */
@media (prefers-reduced-motion:no-preference){
  .mcl-page .faq-q[open] .faq-r{animation:faq-ouvre 200ms ease}
}
@keyframes faq-ouvre{from{opacity:0; transform:translateY(-4px)} to{opacity:1; transform:none}}

@media (max-width:1000px){
  /* On rend la main à la direction naturelle des conteneurs Elementor : en
     pile, `nowrap` n'a plus lieu d'être et la colonne est le bon axe. */
  .mcl-page .faq-hero .sh-grid{flex-direction:column !important; gap:20px}
  /* En pile, les deux colonnes reprennent toute la largeur. `!important` est
     nécessaire ici : la largeur posée depuis Elementor vaut quatre classes et
     s'appliquerait aussi au téléphone, où elle n'a plus de sens. */
  .mcl-page .faq-hero .sh-grid > *{width:100% !important}
  .mcl-page .faq-lede .sh-lede{margin-top:0}
  .mcl-page .faq-tout{margin-left:0}
}
@media (max-width:600px){
  .mcl-page .faq-s{padding:16px 18px; gap:14px}
  .mcl-page .faq-r{padding:0 18px 18px}
}

/* ==========================================================================
   RECHERCHE (page 551) — maquette du 26 août
   --------------------------------------------------------------------------
   Page d'ENTRÉE de la recherche : /recherche/?s=… n'affiche pas de résultats,
   le formulaire poste vers la racine et c'est le gabarit « Résultats de
   recherche » du Theme Builder qui les rend. Cette page n'a donc qu'un état.
   ========================================================================== */

:root{
  --ic-loupe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.2' y2='16.2'/%3E%3C/svg%3E");
}

.mcl-page .rch-hero{padding-bottom:14px}
.mcl-page .rch-hero .sh-grid{gap:30px; padding-bottom:30px; border-bottom:2px solid var(--navy-800)}
.mcl-page .rch-section{padding-top:26px}

/* --- Le champ ------------------------------------------------------------
   Le widget Search d'Elementor Pro imbrique
   `search.e-search > form > label > .e-search-input-wrapper > input`.
   Le champ ne faisait que 210 px : on étire toute la chaîne et on pose la
   loupe dans le champ, que le widget n'affiche pas de lui-même. */
/* La chaîne complète doit s'étirer, sinon c'est le maillon le plus étroit qui
   décide. Le widget `.sb-form` est un bloc dans un conteneur flex : sans
   `flex:1`, il se dimensionnait sur son contenu et plafonnait le champ à
   128 px — mesuré maillon par maillon. Le bloc historique de `.searchbar`
   plafonne aussi le formulaire à 640 px ; on lève le plafond ici et on le
   repose sur l'ensemble, à la largeur de la maquette. */
.mcl-page .rch-hero .searchbar{width:100%; max-width:none; justify-content:flex-start}
.mcl-page .rch-hero .sb-form{flex:1 1 auto; width:100%}
.mcl-page .rch-hero .e-search{display:block; width:100%}
.mcl-page .rch-hero .e-search-form{
  display:flex; align-items:center; justify-content:flex-start;
  gap:16px; width:100%; max-width:none;
}
/* LE LABEL RESTE HORS FLUX. Le widget rend TROIS frères dans le formulaire —
   `label` (masqué, il ne contient que le texte pour lecteurs d'écran),
   `.e-search-input-wrapper` et le bouton. Rendu au flux, ce label invisible
   occupait 476 px dans la rangée et poussait le champ et le bouton vers la
   droite — mesuré : label 296→772, champ 788→1265. Le bloc historique de
   `.searchbar` le sortait déjà du flux ; on garde ce comportement.
   C'est donc l'ENVELOPPE du champ qui grandit, pas le label. */
.mcl-page .rch-hero .e-search-label{position:absolute}
.mcl-page .rch-hero .e-search-input-wrapper{position:relative; flex:1 1 auto; min-width:0; max-width:690px}
.mcl-page .rch-hero .e-search-input-wrapper::before{
  content:""; position:absolute; left:24px; top:50%; transform:translateY(-50%);
  width:19px; height:19px; pointer-events:none;
  background-color:var(--navy-500);
  -webkit-mask:var(--ic-loupe) no-repeat center / contain;
          mask:var(--ic-loupe) no-repeat center / contain;
}
.mcl-page .rch-hero input.e-search-input{
  width:100%; box-sizing:border-box;
  padding:20px 24px 20px 56px;
  border:1px solid rgba(36,71,91,0.18); border-radius:999px;
  background:#fff; color:var(--navy-800);
  font-family:var(--sans); font-size:1.0625rem; line-height:1.3;
}
/* Le libellé du champ est masqué : le texte d'invite est donc la SEULE
   indication visible, et il doit passer le seuil comme n'importe quel texte.
   `--navy-500` ne donnait que 3,76:1 sur blanc — mesuré. #557383 le porte à
   5,04:1 en restant plus pâle que la saisie. */
.mcl-page .rch-hero input.e-search-input::placeholder{color:#557383; opacity:1}
.mcl-page .rch-hero input.e-search-input:focus-visible{outline:3px solid var(--magenta-500); outline-offset:2px}
.mcl-page .rch-hero button.e-search-submit{
  flex:none;
  padding:20px 34px; border:none; border-radius:999px;
  background:var(--navy-900); color:#fff; cursor:pointer;
  font-family:var(--sans); font-weight:600; font-size:1.0625rem; line-height:1.3;
  transition:background-color 160ms ease;
}
.mcl-page .rch-hero button.e-search-submit:hover{background:var(--navy-800)}
.mcl-page .rch-hero button.e-search-submit:focus-visible{outline:3px solid var(--magenta-500); outline-offset:2px}

/* --- La carte ------------------------------------------------------------ */
.mcl-page .rch-carte{border-radius:18px; padding:28px 30px 30px; gap:0}
.mcl-page .rch-tete{
  display:flex !important; flex-direction:row !important;
  align-items:flex-start; gap:20px;
  padding-bottom:26px;
}
.mcl-page .rch-ic{
  flex:none; width:44px; height:44px; border-radius:50%;
  background:var(--magenta-100); display:flex;
}
/* L'espace insécable qui fait exister le widget occupe un vrai <span> : il
   décentrerait le glyphe dans une pastille en flex. Même piège que sur le hub
   Droits et les tuiles des archives. */
.mcl-page .rch-ic .elementor-heading-title{display:none}
.mcl-page .rch-ic::after{
  content:""; position:relative; inset:auto; flex:none;
  width:20px; height:20px; margin:auto;
  background-color:var(--magenta-500);
  -webkit-mask:var(--ic-loupe) no-repeat center / contain;
          mask:var(--ic-loupe) no-repeat center / contain;
}
.mcl-page .rch-tete-txt{gap:6px; padding:0}
.mcl-page .rch-tete-txt h2{
  font-family:var(--macl-titre); font-weight:600; font-size:1.125rem;
  line-height:1.3; margin:0; color:var(--navy-800);
}
.mcl-page .rch-tete-txt p{margin:0; font-size:0.96875rem; line-height:1.6; color:var(--ink-soft); max-width:56ch}

/* --- Les raccourcis ------------------------------------------------------ */
.mcl-page .rch-freq{gap:14px; padding-top:26px; border-top:1px solid rgba(36,71,91,0.13)}
.mcl-page .rch-liens ul.rch-liste{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:14px;
}
.mcl-page .rch-liens li{margin:0}
.mcl-page .rch-liens a{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  height:100%; box-sizing:border-box;
  padding:16px 18px;
  background:var(--peach-100); border:1px solid transparent; border-radius:12px;
  color:var(--navy-800); text-decoration:none;
  font-family:var(--macl-titre); font-weight:600; font-size:0.9375rem; line-height:1.3;
  transition:background-color 160ms ease, border-color 160ms ease;
}
/* La flèche est posée en CSS : la liste reste six liens nus dans l'éditeur,
   sans caractère décoratif à recopier à chaque ajout. */
.mcl-page .rch-liens a::after{
  content:"→"; flex:none; color:var(--magenta-500);
  font-size:1.0625rem; line-height:1;
  transition:transform 160ms ease;
}
.mcl-page .rch-liens a:hover{background:#FADFC0; border-color:#E0B888}
.mcl-page .rch-liens a:hover::after{transform:translateX(3px)}
.mcl-page .rch-liens a:focus-visible{outline:3px solid var(--magenta-500); outline-offset:2px}

@media (max-width:1200px){
  .mcl-page .rch-liens ul.rch-liste{grid-template-columns:repeat(3, minmax(0,1fr))}
}
@media (max-width:900px){
  .mcl-page .rch-liens ul.rch-liste{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width:620px){
  .mcl-page .rch-hero .e-search-form{flex-wrap:wrap}
  .mcl-page .rch-hero .e-search-input-wrapper{max-width:none; flex-basis:100%}
  .mcl-page .rch-hero button.e-search-submit{width:100%}
  .mcl-page .rch-liens ul.rch-liste{grid-template-columns:1fr}
}

/* ==========================================================================
   NOUS JOINDRE (page 538) — maquette du 26 août
   --------------------------------------------------------------------------
   Deux cartes en tête — où l'on est, et comment joindre une chambre — puis la
   liste des postes. L'annuaire des directions a quitté cette page : il vit sur
   /annuaire/, et deux listes de postes à tenir à jour, c'est une de trop.
   ========================================================================== */

/* Le mot en italique passe au magenta, comme la maquette — et comme la FAQ.
   Portée limitée à cette page ; ailleurs il reste vert. */
.mcl-page .nsj-hero h1 em{color:var(--magenta-500)}
.mcl-page .nsj-hero{padding-bottom:14px}
.mcl-page .nsj-hero .sh-grid{gap:32px; padding-bottom:30px; border-bottom:2px solid var(--navy-800)}
.mcl-page .nsj-section{padding-top:26px; display:flex; flex-direction:column; gap:18px}

/* --- Les deux cartes du chapeau ------------------------------------------ */
.mcl-page .nsj-cartes{
  display:grid !important;          /* le conteneur Elementor est en flex */
  grid-template-columns:1fr 1fr;
  gap:30px;
  align-items:start;                /* la carte foncée s'arrête à son texte */
}
.mcl-page .nsj-adresse,
.mcl-page .nsj-usager{border-radius:18px; padding:26px 30px 28px}
.mcl-page .nsj-adresse{background:#fff; border:1px solid rgba(36,71,91,0.13); gap:2px}

/* `.ck` n'est habillé que dans un `.sej-card` : ces deux cartes sont des
   conteneurs nus et reposent l'habillage. Même situation que sur Code
   d'éthique. */
.mcl-page .nsj-adresse .ck,
.mcl-page .nsj-usager .ck{
  font-family:var(--mono); font-size:0.6875rem; letter-spacing:0.12em;
  text-transform:uppercase; font-weight:600; margin-bottom:12px;
}
.mcl-page .nsj-adresse .ck{color:var(--magenta-700)}
.mcl-page .nsj-usager .ck{color:var(--magenta-200)}

.mcl-page .nsj-rue{
  font-family:var(--macl-titre); font-weight:600; font-size:1.1875rem;
  line-height:1.3; color:var(--navy-800);
}
.mcl-page .nsj-ville p{margin:0; font-size:1rem; line-height:1.5; color:var(--ink-soft)}

.mcl-page .nsj-standard{
  gap:2px; padding:20px 0 0; margin-top:20px;
  border-top:1px solid rgba(36,71,91,0.13);
}
.mcl-page .nsj-std-l p{margin:0; font-size:0.875rem; color:var(--ink-soft)}
.mcl-page .nsj-std-n{
  font-family:var(--macl-titre); font-weight:700;
  font-size:clamp(1.5rem, calc(2.4vw * var(--macl-echelle, 1)), 1.9375rem);
  line-height:1.1; letter-spacing:-0.02em;
}
.mcl-page .nsj-std-n a{color:var(--magenta-700); text-decoration:none}
.mcl-page .nsj-std-n a:hover{color:var(--magenta-500); text-decoration:underline}

.mcl-page .nsj-liens{margin-top:18px}
.mcl-page .nsj-liens p{margin:0; display:flex; flex-wrap:wrap; gap:10px 26px}
.mcl-page .nsj-liens a{
  color:var(--magenta-700); text-decoration:none;
  font-family:var(--macl-titre); font-weight:600; font-size:0.9375rem;
}
/* La flèche est posée en CSS : les deux liens restent nus dans l'éditeur. */
.mcl-page .nsj-liens a::after{content:" →"; white-space:nowrap}
.mcl-page .nsj-liens a:hover{color:var(--magenta-500); text-decoration:underline}

.mcl-page .nsj-usager{background:var(--navy-900)}
.mcl-page .nsj-usager p{
  margin:0; color:#fff; max-width:36ch;
  font-family:var(--macl-titre); font-weight:500;
  font-size:clamp(1.0625rem, calc(1.7vw * var(--macl-echelle, 1)), 1.375rem);
  line-height:1.4;
}
.mcl-page .nsj-usager a{color:#fff; font-weight:700; text-underline-offset:4px}

/* --- Les coordonnées utiles ----------------------------------------------
   `nsj-kv` et non `sej-kv` : ce dernier sert sur une dizaine de pages avec un
   filet pointillé et un corps plus petit. On ne l'élargit pas pour une page. */
/* Descend jusqu'au `h2` — voir la note sous « ANNUAIRE ». */
.mcl-page .nsj-h2 h2,
.mcl-page h2.nsj-h2{
  font-family:var(--macl-titre); font-weight:700;
  font-size:clamp(1.375rem, calc(2.2vw * var(--macl-echelle, 1)), 1.75rem);
  letter-spacing:-0.02em; line-height:1.2; margin:0; color:var(--ink);
}
.mcl-page .nsj-liste{border-radius:18px; padding:8px 30px}
.mcl-page .nsj-kv{display:flex; flex-direction:column; gap:0}
.mcl-page .nsj-row{
  display:flex !important; flex-direction:row !important;
  justify-content:space-between; align-items:baseline;
  gap:24px; padding:22px 0;
  border-bottom:1px solid rgba(36,71,91,0.13);
}
.mcl-page .nsj-kv > .elementor-element:last-child .nsj-row,
.mcl-page .nsj-row:last-child{border-bottom:none}
.mcl-page .nsj-k-bloc{gap:2px; padding:0; flex:1 1 auto; min-width:0}
.mcl-page .nsj-k{
  font-family:var(--macl-titre); font-weight:600; font-size:1rem;
  line-height:1.35; color:var(--navy-800); text-wrap:pretty;
}
.mcl-page .nsj-k-sous p{margin:0; font-size:0.90625rem; line-height:1.5; color:var(--ink-soft)}
.mcl-page .nsj-v{
  flex:0 0 auto; text-align:right;
  font-family:var(--macl-titre); font-weight:700; font-size:1rem;
  line-height:1.35; color:var(--navy-800);
  overflow-wrap:anywhere;
}
/* La couleur se pose sur l'ENVELOPPE, pas sur le lien : une règle du site
   normalise les liens dans les titres et reprenait la main sur `a` — mesuré,
   le courriel restait en marine. Le lien hérite. Même piège que sur les puces
   de Maltraitance. */
.mcl-page .nsj-v--lien{font-weight:600; color:var(--magenta-700)}
.mcl-page .nsj-v--lien:hover{color:var(--magenta-500)}
.mcl-page .nsj-v a{color:inherit; text-decoration:none}
.mcl-page .nsj-v a:hover{text-decoration:underline}

/* En mode AAA, la règle globale `.ck{color:#4F0A3E}` suppose un fond clair :
   l'aplat marine repose la sienne. */
html[data-macl-contraste="aaa"] .mcl-page .nsj-usager .ck{color:var(--magenta-200)}
html[data-macl-contraste="aaa"] .mcl-page .nsj-usager p,
html[data-macl-contraste="aaa"] .mcl-page .nsj-usager a{color:#fff}

@media (max-width:1000px){
  .mcl-page .nsj-cartes{grid-template-columns:1fr; gap:18px}
}
@media (max-width:620px){
  .mcl-page .nsj-row{flex-direction:column !important; align-items:flex-start; gap:6px}
  .mcl-page .nsj-v{text-align:left}
  .mcl-page .nsj-liste{padding:8px 22px}
}

/* ==========================================================================
   ANNUAIRE (page 540) — maquette du 26 août
   --------------------------------------------------------------------------
   Même composant que « Nous joindre » : deux cartes en tête, puis des listes
   « libellé à gauche, poste à droite ». Les déclarations communes sont
   regroupées avec celles de `nsj-*` ci-dessus plutôt que recopiées : les deux
   pages doivent bouger ensemble.
   ========================================================================== */

.mcl-page .ann-hero{padding-bottom:14px}
.mcl-page .ann-hero .sh-grid{gap:32px; padding-bottom:30px; border-bottom:2px solid var(--navy-800)}
.mcl-page .ann-section{padding-top:26px; display:flex; flex-direction:column; gap:16px}

/* --- Les deux cartes ------------------------------------------------------
   Le standard n'a qu'un numéro à porter : sa carte est plus étroite que celle
   de « Nous joindre », qui portait aussi l'adresse. */
.mcl-page .ann-cartes{
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:30px;
  align-items:start;
}
.mcl-page .ann-standard,
.mcl-page .ann-usager{border-radius:18px; padding:24px 30px 26px}
.mcl-page .ann-standard{background:#fff; border:1px solid rgba(36,71,91,0.13); gap:4px}
.mcl-page .ann-usager{background:var(--navy-900); gap:4px}

/* `.ck` n'est habillé que dans un `.sej-card` : ces cartes sont des conteneurs
   nus et reposent l'habillage. */
.mcl-page .ann-standard .ck,
.mcl-page .ann-usager .ck{
  font-family:var(--mono); font-size:0.6875rem; letter-spacing:0.12em;
  text-transform:uppercase; font-weight:600; margin-bottom:8px;
}
.mcl-page .ann-standard .ck{color:var(--magenta-700)}
.mcl-page .ann-usager .ck{color:var(--magenta-200)}

.mcl-page .ann-std-n{
  font-family:var(--macl-titre); font-weight:700;
  font-size:clamp(1.5rem, calc(2.4vw * var(--macl-echelle, 1)), 1.9375rem);
  line-height:1.1; letter-spacing:-0.02em;
}
.mcl-page .ann-std-n a{color:var(--navy-800); text-decoration:none}
.mcl-page .ann-std-n a:hover{color:var(--magenta-700); text-decoration:underline}
.mcl-page .ann-usager p{
  margin:0; color:#fff;
  font-size:1.0625rem; line-height:1.5;
}

/* --- Les deux listes ----------------------------------------------------- */
/* ==========================================================================
   POURQUOI CES SÉLECTEURS DESCENDENT JUSQU'AU `h2`
   --------------------------------------------------------------------------
   Une classe saisie dans le champ « Classes CSS » d'Elementor atterrit sur le
   `<div>` DU WIDGET, jamais sur le `<h2>` qu'il contient. Un `font-size` posé
   sur cette classe n'est donc qu'HÉRITÉ par le titre — et toute valeur
   explicite bat l'héritage, à commencer par le `h2{font-size:2rem}` de
   `reset.css`. Les trois règles ci-dessous avaient l'air d'agir et n'agissaient
   pas : mesuré, les titres sortaient à 32 px, la taille par défaut du
   navigateur.

     · Annuaire et Nous joindre    32 px au lieu de 28
     · Partenaires                 32 px au lieu de 36

   Les deux formes sont couvertes : `.classe h2` pour un widget Elementor,
   `h2.classe` pour un titre produit par un court-code, où la classe est posée
   sur l'élément lui-même. `.sej-head h2`, qui descendait déjà, n'a jamais eu
   le problème.
   ========================================================================== */
.mcl-page .ann-h2 h2,
.mcl-page h2.ann-h2{
  font-family:var(--macl-titre); font-weight:700;
  font-size:clamp(1.375rem, calc(2.2vw * var(--macl-echelle, 1)), 1.75rem);
  letter-spacing:-0.02em; line-height:1.2; margin:0; color:var(--ink);
}
.mcl-page .ann-h2--suite{margin-top:16px}
.mcl-page .ann-liste{border-radius:18px; padding:6px 30px}
.mcl-page .ann-kv{display:flex; flex-direction:column; gap:0}
.mcl-page .ann-row{
  display:flex !important; flex-direction:row !important;
  justify-content:space-between; align-items:baseline;
  gap:24px; padding:20px 0;
  border-bottom:1px solid rgba(36,71,91,0.13);
}
.mcl-page .ann-kv > .elementor-element:last-child .ann-row,
.mcl-page .ann-row:last-child{border-bottom:none}
.mcl-page .ann-k{
  flex:1 1 auto; min-width:0;
  font-family:var(--macl-titre); font-weight:600; font-size:1rem;
  line-height:1.35; color:var(--navy-800); text-wrap:pretty;
}
.mcl-page .ann-v{
  flex:0 0 auto; text-align:right; white-space:nowrap;
  font-family:var(--macl-titre); font-weight:700; font-size:1rem;
  line-height:1.35; color:var(--navy-800);
}

/* L'aplat marine repose ses couleurs pour le mode AAA, dont les règles
   globales supposent des fonds clairs. */
html[data-macl-contraste="aaa"] .mcl-page .ann-usager .ck{color:var(--magenta-200)}
html[data-macl-contraste="aaa"] .mcl-page .ann-usager p{color:#fff}

@media (max-width:1000px){
  .mcl-page .ann-cartes{grid-template-columns:1fr; gap:18px}
}
@media (max-width:620px){
  .mcl-page .ann-row{flex-direction:column !important; align-items:flex-start; gap:4px}
  .mcl-page .ann-v{text-align:left}
  .mcl-page .ann-liste{padding:6px 22px}
}


/* ==========================================================================
   LES TITRES DES CHAPEAUX À DEUX COLONNES
   --------------------------------------------------------------------------
   `.soins-hero h1` monte à `6vw`, plafonné à 5,75 rem. C'est juste quand le
   titre occupe TOUTE la largeur — la majorité des pages. Mais sur un chapeau à
   deux colonnes, le titre vit dans une colonne de 40 à 53 % alors que sa taille
   continue d'être calculée sur la FENÊTRE. Deux conséquences, toutes deux
   mesurées sur un écran de 1512 px :

     · Questions fréquentes — titre à 91 px, 214 px de haut contre 81 px pour le
       chapô : 164 px de vide sous celui-ci. Signalé par Raz sur son 14 pouces.
     · Stages et enseignement — le mot « enseignement » réclamait 624 px pour
       une colonne de 612 : il DÉBORDAIT, à 1512, 1280 et 1120 px.

   La règle vaut donc pour toutes les pages concernées, présentes et à venir,
   plutôt que page par page. Le titre reste imposant : 60 px au plafond.
   ========================================================================== */
/* `cqi` exige un conteneur déclaré : c'est la COLONNE du titre, donc le
   premier enfant de la rangée. Sans cette ligne, `13cqi` retomberait sur le
   bloc conteneur le plus proche — ou sur rien. */
.mcl-page .soins-hero .sh-grid--media > *:first-child,
.mcl-page .faq-hero .sh-grid > *:first-child{container-type:inline-size}

.mcl-page .soins-hero .sh-grid--media h1,
.mcl-page .faq-hero h1{
  font-size:var(--macl-titre-page-colonne);
}
/* Les deux artères à chapeau photo reprennent la taille des artères pleine
   largeur. Quatre classes : la règle ci-dessus en vaut trois. */
.mcl-page .soins-hero.sh-artere .sh-grid--media h1{font-size:var(--macl-titre-page)}

/* ==========================================================================
   AVIS LÉGAL — page 548, 27 août 2026
   --------------------------------------------------------------------------
   Bâtie d'après la maquette de Raz. Trois blocs seulement : un énoncé sur
   aplat navy, deux cartes à pastille, un bandeau de référence avec bouton.

   Aucun composant nouveau n'est inventé là où il en existe un : les pastilles
   reprennent exactement la technique de `.hub-card .hub-ic` (page Droits) —
   un widget Titre vidé de son texte, un glyphe posé en masque CSS, donc ni
   fichier ni bibliothèque d'icônes. Deux glyphes s'ajoutent au jeu.
   ========================================================================== */
:root{
  --ic-lien: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.5.5l3-3a5 5 0 0 0-7-7l-1.7 1.7'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.5-.5l-3 3a5 5 0 0 0 7 7l1.7-1.7'/%3E%3C/svg%3E");
  --ic-maj:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-2.6-6.4'/%3E%3Cpath d='M21 3v6h-6'/%3E%3C/svg%3E");
}

/* L'énoncé, sur aplat navy. Le texte y est blanc : la règle de couleur des
   paragraphes du site vise `.mcl-page p`, donc deux classes suffisent ici. */
.mcl-page .avl-enonce{
  background:var(--ink); border-radius:22px; padding:34px 44px;
}
.mcl-page .avl-enonce p{
  color:#fff; font-size:1.1875rem; line-height:1.55; margin:0; max-width:70ch;
  text-wrap:pretty;
}

.mcl-page .avl-cartes{display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start}
.mcl-page .avl-carte,
.mcl-page .cnf-carte,
.mcl-page .cnf-perso{
  background:var(--paper); border:1px solid rgba(36,71,91,0.14);
  border-radius:18px; padding:28px 30px;
  row-gap:14px;                 /* l'écart Elementor par défaut (20px) est trop
                                   large sous le titre : la carte le fixe. */
}
/* La pastille : même dimension, même rayon et même famille de teintes que
   celles de la page Droits. */
.mcl-page .avl-ic{
  width:34px; height:34px; border-radius:10px;
  background:var(--magenta-100); display:flex;
}
.mcl-page .avl-ic .elementor-heading-title{display:none}   /* l'espace insécable */
.mcl-page .avl-ic::after{
  content:""; position:relative; inset:auto; flex:none;
  width:18px; height:18px; margin:auto;
  background-color:var(--magenta-500);
  -webkit-mask:var(--ic) no-repeat center / contain;
          mask:var(--ic) no-repeat center / contain;
}
.mcl-page .avl-ic--lien::after{--ic:var(--ic-lien)}
.mcl-page .avl-ic--maj::after {--ic:var(--ic-maj)}
/* Le titre se pose À CÔTÉ de la pastille, pas dessous : la rangée est un
   conteneur Elementor à deux enfants, l'alignement se règle donc ici. */
.mcl-page .avl-tete,
.mcl-page .cnf-tete-c{display:flex; flex-direction:row; align-items:center; gap:14px}
.mcl-page .avl-carte h3,
.mcl-page .cnf-carte h3{
  font-family:var(--macl-titre); font-weight:600; font-size:1.1875rem;
  letter-spacing:-0.01em; color:var(--navy-800); margin:0;
}
.mcl-page .avl-carte p,
.mcl-page .cnf-carte p{margin:0; font-size:0.9375rem; line-height:1.6; color:var(--ink-soft)}

/* Le bandeau de référence : aplat crème plus soutenu que le fond de page —
   `--peach-100` éclairci, la seule teinte de la charte qui donne ce ton sans
   en inventer une. */
.mcl-page .avl-ref,
.mcl-page .cnf-droits{
  background:#F3EDE3; border-radius:22px; padding:30px 40px;
  display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:40px;
}
.mcl-page .avl-ref > .elementor-widget-button,
.mcl-page .cnf-droits > .elementor-widget-button{flex:0 0 auto}
.mcl-page .avl-ref .elementor-button,
.mcl-page .cnf-droits .elementor-button{white-space:nowrap}
.mcl-page .avl-ref-txt{row-gap:8px}
.mcl-page .cnf-droits-txt{row-gap:12px}
.mcl-page .avl-ref p,
.mcl-page .cnf-droits p{margin:0; font-size:1.0625rem; line-height:1.5; color:var(--ink); max-width:52ch}
.mcl-page .avl-ref .elementor-button,
.mcl-page .cnf-droits .elementor-button{
  background:var(--ink); border:2px solid var(--ink); color:#fff;
  border-radius:999px; padding:15px 26px;
  font-family:var(--macl-titre); font-weight:600; font-size:0.9375rem;
  transition:200ms cubic-bezier(0.2,0.7,0.2,1);
}
.mcl-page .avl-ref .elementor-button:hover,
.mcl-page .avl-ref .elementor-button:focus,
.mcl-page .cnf-droits .elementor-button:hover,
.mcl-page .cnf-droits .elementor-button:focus{background:transparent; color:var(--ink)}

/* ==========================================================================
   POLITIQUE DE CONFIDENTIALITÉ — page 544, d'après la maquette du 1er sept.

   Rien de neuf n'est dessiné ici : la carte encadrée, la rangée pastille +
   titre et le bandeau crème à bouton sont les règles de l'Avis légal, dont les
   sélecteurs ont simplement été élargis plus haut. Ne restent ci-dessous que
   les trois choses que cette page est seule à porter : la carte marine du
   principe, la grille à trois cartes numérotées, et la pastille chiffrée.
   ========================================================================== */

/* Le chapeau : le principe sur aplat marine à gauche, le personnel à droite.
   Les deux cartes n'ont pas la même hauteur — `start` évite d'étirer la
   seconde sur la hauteur de la première. */
.mcl-page .cnf-tete{
  display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:start;
}
.mcl-page .cnf-principe{
  background:var(--ink); border-radius:22px; padding:34px 40px; row-gap:18px;
}
.mcl-page .cnf-principe p{
  margin:0; color:#fff; font-size:1.0625rem; line-height:1.55; text-wrap:pretty;
}
/* Le rappel des ordres professionnels est un second plan : même carte, texte
   plus petit et voilé — 8,85:1 sur le marine, largement au-dessus d'AAA. */
.mcl-page .cnf-principe .cnf-p2 p{font-size:0.9375rem; color:rgba(255,255,255,0.74)}
.mcl-page .cnf-principe a{color:#fff; text-decoration:underline; text-underline-offset:3px}
.mcl-page .cnf-principe a:hover,
.mcl-page .cnf-principe a:focus{text-decoration-thickness:2px}

.mcl-page .cnf-perso p{font-size:1rem; line-height:1.6; color:var(--ink-soft); margin:0}

/* Le filet ferme le chapeau et ouvre l'avis, comme sur les cinq pages Droits.
   Il est posé en bordure HAUTE de la section : c'est la section qui commence,
   pas le chapeau qui finit. */
.mcl-page .cnf-avis{border-top:2px solid var(--navy-800); padding-top:36px; row-gap:14px}
.mcl-page .cnf-avis h2{
  font-family:var(--macl-titre); font-weight:700; font-size:var(--macl-titre-section);
  line-height:1.14; letter-spacing:-0.03em; margin:0; color:var(--navy-800);
}
.mcl-page .cnf-avis .cnf-lede p{
  margin:0; font-size:1.0625rem; line-height:1.55; color:var(--ink);
  max-width:78ch; text-wrap:pretty;
}

.mcl-page .cnf-cartes{
  /* `auto-fit` et non `repeat(3, 1fr)` : à 1040 px de fenêtre, trois colonnes
     fixes tombaient à 213 px et le premier titre passait à six lignes. La
     grille rend donc trois cartes au large, deux à l'étroit, une sur
     téléphone — sans palier codé en dur. */
  display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 268px), 1fr));
  gap:24px; align-items:start;
}
/* La pastille chiffrée. Carré arrondi de 28 px et non cercle de 44 : les trois
   titres montent jusqu'à trois lignes, un cercle de 44 px les écraserait.
   `--magenta-700` sur `--magenta-100` donne 7,54:1 — le `--magenta-500` de la
   pastille des soins n'aurait donné que 4,3:1 pour un chiffre de 13 px. */
.mcl-page .cnf-num{
  flex:none; width:28px; height:28px; border-radius:9px;
  background:var(--magenta-100); color:var(--magenta-700);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--macl-titre); font-weight:700; font-size:0.8125rem; line-height:1;
}
.mcl-page .cnf-num .elementor-heading-title{font:inherit; color:inherit}
/* Le titre peut passer à la ligne ; la pastille reste alignée sur sa première
   ligne plutôt que centrée sur le bloc entier. */
.mcl-page .cnf-tete-c{align-items:flex-start}
.mcl-page .cnf-tete-c .cnf-num{margin-top:2px}

.mcl-page .cnf-droits h3{
  font-family:var(--macl-titre); font-weight:700; font-size:1.625rem;
  letter-spacing:-0.02em; margin:0; color:var(--navy-800);
}
/* La flèche est décorative : elle double le libellé, elle ne le remplace pas.
   Posée en pseudo-élément, elle reste hors du texte que copie l'usager. */
.mcl-page .cnf-droits .elementor-button-text::after{content:" \2192"}
.mcl-page .emp-btn .elementor-button-text::after{content:" \2192"}
.mcl-page .emp-envoi::after{content:" \2192"}   /* le bouton réel n’a pas la couche .elementor-button-text */

/* ==========================================================================
   ESPACE EMPLOYÉ — page 536, d'après la maquette du 1er septembre.

   ⚠ Les « champs » ne sont PAS des champs. Ce sont des widgets Titre habillés
   en champs : la page ne contient aucun `<input>`, aucun `<form>`, et rien
   n'est envoyé nulle part. C'est délibéré et c'est à conserver tant que
   l'authentification réelle n'est pas montée — une boîte qui ressemble à un
   formulaire de connexion sans en être un ne doit surtout pas pouvoir recevoir
   un mot de passe.
   ========================================================================== */

:root{
  --ic-tel: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.3 1.8.7 2.7a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.4-1.2a2 2 0 0 1 2.1-.5c.9.4 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
}

/* La carte de connexion est plus large que celle d'aide, comme sur la
   maquette (697 / 516). `start` : la carte d'aide ne s'étire pas. */
.mcl-page .emp-grille{
  display:grid; grid-template-columns:minmax(0,1.32fr) minmax(0,1fr);
  gap:24px; align-items:start;
}

.mcl-page .emp-porte{
  background:var(--paper); border:1px solid rgba(36,71,91,0.14);
  border-radius:18px; padding:38px 40px; row-gap:22px;
}
.mcl-page .emp-porte .ck{margin-bottom:0}
.mcl-page .emp-porte h2{
  font-family:var(--macl-titre); font-weight:700; font-size:1.375rem;
  line-height:1.3; letter-spacing:-0.01em; margin:0; color:var(--navy-800);
  max-width:26ch;
}

.mcl-page .emp-champ{row-gap:9px}
.mcl-page .emp-lbl{
  font-family:var(--macl-titre); font-weight:600; font-size:0.9375rem;
  color:var(--navy-800); line-height:1.3;
}
.mcl-page .emp-lbl .elementor-heading-title{font:inherit; color:inherit}

/* La boîte reprend la forme du champ de recherche, en rectangle plutôt qu'en
   pilule : c'est ce que montre la maquette, et un champ de saisie long se lit
   mieux à angles droits. Le fond crème la distingue de la carte blanche. */
.mcl-page .emp-boite{
  display:flex; flex-direction:row; align-items:center; justify-content:space-between;
  gap:14px; min-height:52px; padding:0 20px;
  background:#FDF7F0; border:1px solid rgba(36,71,91,0.18); border-radius:10px;
}
.mcl-page .emp-boite .elementor-heading-title{font:inherit; color:inherit}
/* Le texte fantôme : gris, comme le serait un `placeholder`. AA n'exige rien
   d'un texte fantôme, mais le gris de la maquette tombait à 4,05:1 — assez
   pâle pour qu'un exemple de numéro d'employé devienne difficile à lire.
   #62727E donne 4,67:1 sans cesser de se lire comme un texte d'exemple. */
.mcl-page .emp-fantome{
  font-family:var(--macl-titre); font-size:1rem; color:#62727E; line-height:1;
}
.mcl-page .emp-voir{
  font-family:var(--macl-titre); font-weight:600; font-size:0.9375rem;
  color:var(--magenta-500); line-height:1; flex:none;
}

.mcl-page .emp-btn .elementor-button,
.mcl-page .emp-envoi{
  background:var(--navy-800); border:2px solid var(--navy-800); color:#fff;
  border-radius:999px; padding:16px 30px;
  font-family:var(--macl-titre); font-weight:600; font-size:1rem;
  transition:200ms cubic-bezier(0.2,0.7,0.2,1);
}
.mcl-page .emp-btn .elementor-button:hover,
.mcl-page .emp-btn .elementor-button:focus,
.mcl-page .emp-envoi:hover,
.mcl-page .emp-envoi:focus{background:transparent; color:var(--navy-800)}
.mcl-page .emp-btn{margin-top:6px}

/* La carte d'aide : aplat marine, pictogramme en masque comme partout ailleurs
   sur le site — ni fichier d'icône, ni bibliothèque. */
.mcl-page .emp-aide{
  background:var(--ink); border-radius:18px; padding:28px 32px;
  display:flex; flex-direction:row; align-items:flex-start; gap:18px;
}
.mcl-page .emp-aide .emp-ic{flex:none; width:18px; height:18px; margin-top:5px}
.mcl-page .emp-aide .emp-ic .elementor-heading-title{display:none}
.mcl-page .emp-aide .emp-ic::after{
  content:""; display:block; width:18px; height:18px;
  background-color:rgba(255,255,255,0.82);
  -webkit-mask:var(--ic-tel) no-repeat center / contain;
          mask:var(--ic-tel) no-repeat center / contain;
}
.mcl-page .emp-aide p{
  margin:0; color:#fff; font-size:1.0625rem; line-height:1.5; text-wrap:pretty;
}
.mcl-page .emp-aide a{color:#fff; text-decoration:underline; text-underline-offset:3px}

/* Mode AAA : le texte fantôme est écrit en dur, le renforcement global — qui
   passe par les variables — ne pouvait donc pas l'atteindre. Il restait à
   4,67:1 quand tout le reste de la page montait au-dessus de 7. Reposé ici,
   comme le fait la carte sombre de la page Maltraitance.
   Le fond crème de la boîte, lui, est repris par une règle globale du mode :
   inutile de le redéclarer, la mesure donne 7,83:1 tel quel. */
html[data-macl-contraste="aaa"] .mcl-page .emp-fantome{color:#41505A}  /* 7,83:1 */

/* --------------------------------------------------------------------------
   LE FORMULAIRE RÉEL — 1er septembre 2026.

   Les faux champs de la maquette sont remplacés par de vrais champs, rendus
   par le court-code [macl_extranet_connexion]. Les classes ne changent pas :
   tout l'habillage ci-dessus continue de s'appliquer. Ne restent ici que les
   quelques propriétés qu'un `<input>` réclame et qu'un widget Titre n'avait
   pas besoin de recevoir.
   -------------------------------------------------------------------------- */
.mcl-page .emp-form{display:flex; flex-direction:column; row-gap:22px}
.mcl-page .emp-form .ck{margin:0}
.mcl-page .emp-champ{display:flex; flex-direction:column; row-gap:9px; margin:0}
.mcl-page .emp-btn{margin:0}

.mcl-page .emp-saisie{
  flex:1; min-width:0; border:0; background:transparent; padding:0; margin:0;
  font-family:var(--macl-titre); font-size:1rem; color:var(--navy-800); line-height:1.2;
}
.mcl-page .emp-saisie::placeholder{color:#62727E; opacity:1}   /* 4,67:1 sur le crème */
.mcl-page .emp-saisie:focus{outline:none}
/* Le contour de focus se pose sur la BOÎTE et non sur le champ : c'est la
   boîte que l'usager voit, le champ n'en occupe que l'intérieur. */
.mcl-page .emp-boite:focus-within{
  border-color:var(--navy-800);
  outline:2px solid var(--navy-800); outline-offset:2px;
}
.mcl-page .emp-voir{background:none; border:0; padding:0; cursor:pointer}
.mcl-page .emp-voir:hover,
.mcl-page .emp-voir:focus-visible{text-decoration:underline; text-underline-offset:3px}

.mcl-page .emp-envoi{cursor:pointer; align-self:flex-start}

/* Les messages : erreur en rose sur crème, confirmation en vert. Jamais de
   rouge vif — la charte n'en a pas, et un mot de passe mal tapé n'est pas une
   alarme. */
.mcl-page .emp-avis{
  margin:0; padding:13px 16px; border-radius:12px;
  font-size:0.9375rem; line-height:1.5;
  background:var(--magenta-100); color:var(--magenta-700);
  border-left:3px solid var(--magenta-500);
}
.mcl-page .emp-avis--ok{
  background:var(--teal-100); color:#1E5B32; border-left-color:#1E5B32;
}
.mcl-page .emp-avis--admin{
  background:var(--lime-100); color:var(--navy-800); border-left-color:var(--lime-700);
}
.mcl-page .emp-avis-note{display:block; margin-top:4px; font-size:0.8125rem; opacity:0.75}

@media (max-width:1000px){
  .mcl-page .emp-grille{grid-template-columns:1fr}
  .mcl-page .emp-porte{padding:30px 24px}
}

/* ==========================================================================
   EXTRANET — l'écran une fois connecté. Maquette du 1er septembre 2026.

   ⚠ CONTENU DE DÉMONSTRATION, ET PAGE OUVERTE À TOUS tant que la porte n'est
   pas montée. Voir `espace-employe-options.md`.

   L'extranet a son propre habillage : pas de barre latérale, une barre de
   session en haut. Il ne se lit pas comme une page du site public, et c'est
   voulu — l'employé doit voir d'un coup d'œil qu'il a franchi une porte.
   ========================================================================== */

:root{
  --ic-cadenas: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
  --ic-horloge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpolyline points='12 7 12 12 15.5 14'/%3E%3C/svg%3E");
  --ic-fichier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E");
  --ic-tele: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v12'/%3E%3Cpolyline points='7 12 12 17 17 12'/%3E%3C/svg%3E");
  --ic-sortant: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E");
  --ext-vert: #1E5B32;   /* déjà employé par .job-tag--vert : blanc dessus 7,6:1 */
}

/* La barre latérale du site public disparaît, et le pied reprend toute la
   largeur. Le corps de page perd le décalage de 240 px — la marge ET la
   largeur maximale, qui sont deux règles distinctes. */
body.macl-extranet .elementor-location-header{display:none}
body.macl-extranet > .elementor-location-footer{margin-left:0; max-width:none; width:100%}
body.macl-extranet .ext-page{margin-left:0; max-width:none; width:100%}

/* Elementor pose 10 px de rembourrage sur TOUT conteneur. Sur une page bâtie
   de conteneurs imbriqués, ces 10 px s'additionnent et décalent tout de
   quelques pixels sans qu'on voie pourquoi. On les remet à zéro une fois pour
   toutes ; chaque règle ci-dessous redéclare le sien. */
.ext-page,
.ext-page .e-con{padding:0}

/* Le filet du surtitre : `.eyebrow-line` est défini pour `.mcl-page` seul.
   L'extranet n'est pas sur cette couche — il redessine donc le sien. */
.ext-page .eyebrow-line{display:flex; align-items:center; color:var(--magenta-500)}
.ext-page .eyebrow-line::before{content:""; width:32px; height:2px; background:currentColor}

/* --- La barre de session ------------------------------------------------- */
.ext-page .ext-bar{
  background:var(--ink); padding:0 42px; min-height:56px;
  display:flex; flex-direction:row; align-items:center; justify-content:space-between;
  gap:24px; width:100%;
}
.ext-page .ext-bar-g,
.ext-page .ext-bar-d{display:flex; flex-direction:row; align-items:center; gap:14px}
.ext-page .ext-bar .elementor-heading-title{font:inherit; color:inherit}
.ext-page .ext-cadenas{flex:none; width:17px; height:17px}
.ext-page .ext-cadenas .elementor-heading-title{display:none}
.ext-page .ext-cadenas::after{
  content:""; display:block; width:17px; height:17px;
  background-color:var(--magenta-200);
  -webkit-mask:var(--ic-cadenas) no-repeat center / contain;
          mask:var(--ic-cadenas) no-repeat center / contain;
}
.ext-page .ext-titre-bar{
  font-family:var(--mono); font-size:0.75rem; font-weight:700;
  letter-spacing:0.14em; text-transform:uppercase; color:#fff; line-height:1;
}
.ext-page .ext-qui{font-family:var(--macl-titre); font-size:0.9375rem; color:rgba(255,255,255,0.76); line-height:1}
.ext-page .ext-qui--apercu{color:var(--peach-500); font-size:0.875rem}
.ext-page .ext-sortir .elementor-button{
  background:transparent; border:0; padding:0; color:#fff;
  font-family:var(--macl-titre); font-weight:600; font-size:0.9375rem;
  text-decoration:underline; text-underline-offset:4px;
}
.ext-page .ext-sortir .elementor-button:hover,
.ext-page .ext-sortir .elementor-button:focus{color:var(--magenta-200)}

/* --- Le corps ------------------------------------------------------------ */
.ext-page .ext-corps{padding:40px 42px 72px; row-gap:0; background:var(--canvas)}
.ext-page .ext-chapeau{row-gap:22px; padding-bottom:34px}
.ext-page .ext-corps h1{
  font-family:var(--macl-titre); font-weight:700;
  font-size:var(--macl-titre-section); line-height:1.1; letter-spacing:-0.03em;
  margin:0; color:var(--navy-800);
}
.ext-page .ext-corps h1 em{font-style:italic; color:var(--teal-700)}

/* --- Le renvoi vers Logibec ---------------------------------------------- */
.ext-page .ext-paie{
  background:var(--ext-vert); border-radius:18px; padding:30px 34px;
  display:flex; flex-direction:row; align-items:center; justify-content:space-between;
  gap:34px;
}
.ext-page .ext-paie-txt{row-gap:8px}
.ext-page .ext-paie .ck{
  font-family:var(--mono); font-size:0.6875rem; font-weight:600;
  letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.80);
  margin-bottom:0;
}
.ext-page .ext-paie .ck .elementor-heading-title{font:inherit; color:inherit}
.ext-page .ext-paie h2{
  font-family:var(--macl-titre); font-weight:700; font-size:1.5rem;
  letter-spacing:-0.02em; margin:0; color:#fff;
}
.ext-page .ext-paie p{margin:0; font-size:0.9375rem; color:rgba(255,255,255,0.80)}
.ext-page .ext-paie > .elementor-widget-button{flex:0 0 auto}
.ext-page .ext-paie .elementor-button{
  background:#fff; color:var(--ext-vert); border:2px solid #fff;
  border-radius:999px; padding:15px 26px;
  font-family:var(--macl-titre); font-weight:600; font-size:0.9375rem;
  white-space:nowrap; transition:200ms cubic-bezier(0.2,0.7,0.2,1);
}
.ext-page .ext-paie .elementor-button:hover,
.ext-page .ext-paie .elementor-button:focus{background:transparent; color:#fff}
/* Le pictogramme « lien sortant » double l'avertissement écrit sous le titre :
   la plateforme est externe. Décoratif, donc en pseudo-élément. */
.ext-page .ext-paie .elementor-button-text::after{
  content:""; display:inline-block; width:14px; height:14px; margin-left:9px;
  vertical-align:-2px;
  background-color:currentColor;
  -webkit-mask:var(--ic-sortant) no-repeat center / contain;
          mask:var(--ic-sortant) no-repeat center / contain;
}

/* --- Communiqués ---------------------------------------------------------- */
.ext-page .ext-sec{padding:44px 0 0; row-gap:20px}
.ext-page .ext-sec-tete{
  display:flex; flex-direction:row; align-items:baseline; justify-content:space-between;
  gap:20px; padding:0;
}
.ext-page .ext-sec-tete h2{
  font-family:var(--macl-titre); font-weight:700; font-size:1.75rem;
  letter-spacing:-0.02em; margin:0; color:var(--navy-800);
}
.ext-page .ext-compte{font-size:0.875rem; color:var(--ink-soft); line-height:1}
.ext-page .ext-compte .elementor-heading-title{font:inherit; color:inherit}

.ext-page .ext-avis{row-gap:18px}
.ext-page .ext-com{
  background:var(--paper); border:1px solid rgba(36,71,91,0.14);
  border-radius:18px; padding:26px 30px; row-gap:12px;
}
.ext-page .ext-com-tete{display:flex; flex-direction:row; align-items:center; gap:16px}
.ext-page .ext-etiq{
  font-family:var(--mono); font-size:0.6875rem; font-weight:700;
  letter-spacing:0.10em; text-transform:uppercase;
  background:var(--magenta-100); color:var(--magenta-700);
  border-radius:999px; padding:6px 13px; line-height:1; flex:none;
}
.ext-page .ext-etiq .elementor-heading-title{font:inherit; color:inherit}
.ext-page .ext-date{font-size:0.875rem; color:var(--ink-soft); line-height:1}
.ext-page .ext-date .elementor-heading-title{font:inherit; color:inherit}
.ext-page .ext-com h3{
  font-family:var(--macl-titre); font-weight:700; font-size:1.1875rem;
  letter-spacing:-0.01em; margin:0; color:var(--navy-800);
}
.ext-page .ext-com p{margin:0; font-size:0.9375rem; line-height:1.6; color:var(--ink-soft)}
/* Le pied de carte : jusqu'à quand l'avis reste affiché. C'est la garantie
   qu'aucun communiqué ne moisit sur la page — même exigence que la bannière
   d'accueil, qui impose déjà une date d'expiration à la saisie. */
.ext-page .ext-retrait{
  display:flex; flex-direction:row; align-items:center; gap:9px;
  font-size:0.8125rem; color:var(--ink-soft); padding:0; margin-top:2px;
}
.ext-page .ext-retrait .elementor-heading-title{font:inherit; color:inherit}
.ext-page .ext-horloge{flex:none; width:14px; height:14px}
.ext-page .ext-horloge .elementor-heading-title{display:none}
.ext-page .ext-horloge::after{
  content:""; display:block; width:14px; height:14px;
  background-color:currentColor;
  -webkit-mask:var(--ic-horloge) no-repeat center / contain;
          mask:var(--ic-horloge) no-repeat center / contain;
}

/* La carte marquée « important » passe en aplat marine. Une seule à la fois :
   au-delà, plus rien ne ressort. */
.ext-page .ext-com--fort{background:var(--ink); border-color:var(--ink)}
.ext-page .ext-com--fort h3{color:#fff}
.ext-page .ext-com--fort p{color:rgba(255,255,255,0.82)}
.ext-page .ext-com--fort .ext-date{color:rgba(255,255,255,0.66)}
.ext-page .ext-com--fort .ext-retrait{color:rgba(255,255,255,0.66)}
.ext-page .ext-com--fort .ext-etiq{background:var(--magenta-500); color:#fff}

/* --- Documents ------------------------------------------------------------ */
.ext-page .ext-docs-sec{border-top:2px solid var(--navy-800); margin-top:46px; padding-top:34px}
.ext-page .ext-docs{
  display:grid; grid-template-columns:minmax(0,0.42fr) minmax(0,1fr);
  gap:26px; align-items:start;
}
.ext-page .ext-rail{
  background:var(--paper); border:1px solid rgba(36,71,91,0.14);
  border-radius:18px; padding:14px; row-gap:2px;
}
.ext-page .ext-rail-l{
  display:flex; flex-direction:row; align-items:center; justify-content:space-between;
  gap:14px; padding:13px 16px; border-radius:12px;
}
.ext-page .ext-rail-l .ext-rail-n{
  font-family:var(--macl-titre); font-weight:500; font-size:0.9375rem;
  line-height:1.35; color:var(--navy-800);
}
.ext-page .ext-rail-l .ext-rail-c{
  font-family:var(--mono); font-size:0.8125rem; color:var(--ink-soft);
  line-height:1; flex:none;
}
.ext-page .ext-rail-l .elementor-heading-title{font:inherit; color:inherit}
.ext-page .ext-rail-l--actif{background:var(--ink)}
.ext-page .ext-rail-l--actif .ext-rail-n{color:#fff; font-weight:600}
.ext-page .ext-rail-l--actif .ext-rail-c{color:rgba(255,255,255,0.72)}

.ext-page .ext-panneau{
  background:var(--paper); border:1px solid rgba(36,71,91,0.14);
  border-radius:18px; padding:26px 28px; row-gap:16px;
}
.ext-page .ext-panneau-tete{
  display:flex; flex-direction:row; align-items:baseline; justify-content:space-between;
  gap:20px; padding:0 0 14px; border-bottom:2px solid var(--navy-800);
}
.ext-page .ext-panneau-tete h3{
  font-family:var(--macl-titre); font-weight:700; font-size:1.375rem;
  letter-spacing:-0.02em; margin:0; color:var(--navy-800);
}
.ext-page .ext-doc{
  display:flex; flex-direction:row; align-items:center; gap:16px;
  background:var(--canvas); border-radius:12px; padding:14px 18px;
}
.ext-page .ext-doc-ic{flex:none; width:34px; height:34px; border-radius:10px; background:var(--magenta-100); display:flex}
.ext-page .ext-doc-ic .elementor-heading-title{display:none}
.ext-page .ext-doc-ic::after{
  content:""; position:relative; flex:none; width:17px; height:17px; margin:auto;
  background-color:var(--magenta-500);
  -webkit-mask:var(--ic-fichier) no-repeat center / contain;
          mask:var(--ic-fichier) no-repeat center / contain;
}
.ext-page .ext-doc-txt{row-gap:3px; flex:1}
.ext-page .ext-doc-t{
  font-family:var(--macl-titre); font-weight:600; font-size:1rem;
  color:var(--navy-800); line-height:1.3;
}
.ext-page .ext-doc-m{font-family:var(--mono); font-size:0.8125rem; color:var(--ink-soft); line-height:1.3}
.ext-page .ext-doc-t .elementor-heading-title,
.ext-page .ext-doc-m .elementor-heading-title{font:inherit; color:inherit}
.ext-page .ext-doc-fl{flex:none; width:17px; height:17px}
.ext-page .ext-doc-fl .elementor-heading-title{display:none}
.ext-page .ext-doc-fl::after{
  content:""; display:block; width:17px; height:17px;
  background-color:var(--magenta-500);
  -webkit-mask:var(--ic-tele) no-repeat center / contain;
          mask:var(--ic-tele) no-repeat center / contain;
}

/* --------------------------------------------------------------------------
   COMMUNIQUÉS — rendus par [macl_extranet_communiques] depuis le 1er sept.

   Ce ne sont plus des conteneurs Elementor mais des <article> ordinaires : les
   propriétés qu'Elementor donnait gratuitement (display:flex, direction) sont
   déclarées ici. Tout le reste de l'habillage, plus haut, ne bouge pas.
   -------------------------------------------------------------------------- */
.ext-page .ext-avis{display:flex; flex-direction:column}
.ext-page .ext-com{display:flex; flex-direction:column}
.ext-page .ext-com h3{margin:0}
.ext-page .ext-com p{margin:0}
.ext-page .ext-etiq{display:inline-block}
.ext-page .ext-retrait{margin:2px 0 0}

/* --------------------------------------------------------------------------
   DOCUMENTS DE L'EXTRANET — le rail devient un vrai groupe d'onglets.

   Le bloc est maintenant rendu par [macl_extranet_documents] à partir du type
   de contenu « Documents » : ce ne sont plus des conteneurs Elementor mais du
   balisage ordinaire. Les quelques propriétés qu'un conteneur recevait
   d'Elementor (display:flex, direction) doivent donc être déclarées ici.
   -------------------------------------------------------------------------- */
.ext-page .ext-rail{display:flex; flex-direction:column}
.ext-page .ext-rail-l{
  width:100%; background:none; border:0; cursor:pointer; font:inherit; text-align:left;
  /* Le navigateur met `white-space:pre` sur un <button> : sans cette remise à
     zéro, « Direction des soins infirmiers et d'assistance… » sort de la carte
     sur une seule ligne au lieu de passer à la ligne. */
  white-space:normal;
}
.ext-page .ext-rail-l:hover{background:rgba(36,71,91,0.05)}
/* ⚠ L'aplat de l'onglet actif est déclaré PLUS HAUT, à poids égal. La remise à
   zéro `background:none` ci-dessus, écrite après, le faisait disparaître : le
   texte restait blanc sur la carte blanche, et l'onglet choisi semblait
   s'effacer de la liste. Il est donc redéclaré ici, après. */
.ext-page .ext-rail-l--actif,
.ext-page .ext-rail-l--actif:hover{background:var(--ink)}
/* Le nom doit pouvoir passer à la ligne : « Direction des soins infirmiers et
   d'assistance, gestion des risques et qualité » fait trois lignes. Sans
   `min-width:0`, un enfant de boîte flexible refuse de descendre sous la
   largeur de son texte et déborde de la carte. */
.ext-page .ext-rail-n{flex:1; min-width:0; white-space:normal; overflow-wrap:break-word}
.ext-page .ext-rail-l:focus-visible{outline:2px solid var(--navy-800); outline-offset:2px}

.ext-page .ext-panneaux{display:flex; flex-direction:column; row-gap:26px}
/* Tant que le script n'a pas pris la main, tous les panneaux sont visibles :
   sans JavaScript la page reste lisible, seulement plus longue. */
.ext-page .ext-docs--onglets .ext-panneaux{row-gap:0}
.ext-page .ext-panneau{display:flex; flex-direction:column}
.ext-page .ext-panneau[hidden]{display:none}
.ext-page .ext-panneau:focus-visible{outline:2px solid var(--navy-800); outline-offset:2px}

.ext-page .ext-doc{text-decoration:none; color:inherit; transition:background 160ms}
.ext-page a.ext-doc:hover{background:#F2EAE0}
.ext-page a.ext-doc:hover .ext-doc-t{color:var(--magenta-700)}
.ext-page a.ext-doc:focus-visible{outline:2px solid var(--navy-800); outline-offset:2px}
.ext-page .ext-doc-txt{display:flex; flex-direction:column}
/* Un document annoncé mais pas encore déposé : la ligne existe, elle ne fait
   rien, et elle le dit. Mieux qu'un lien mort. */
.ext-page .ext-doc--vide{opacity:0.72}
.ext-page .ext-doc-rien,
.ext-page .ext-vide{margin:0; font-size:0.9375rem; color:var(--ink-soft)}

@media (max-width:1000px){
  .ext-page .ext-bar{padding:12px 22px; flex-wrap:wrap; row-gap:8px}
  .ext-page .ext-corps{padding:28px 22px 56px}
  .ext-page .ext-paie{flex-direction:column; align-items:flex-start; gap:22px}
  .ext-page .ext-docs{grid-template-columns:1fr}
}

@media (max-width:1000px){
  .mcl-page .avl-cartes{grid-template-columns:1fr}
  .mcl-page .avl-ref,
  .mcl-page .cnf-droits{flex-direction:column; align-items:flex-start; gap:22px}
  .mcl-page .cnf-tete{grid-template-columns:1fr}
  .mcl-page .avl-enonce{padding:28px 30px}
}

/* ==========================================================================
   5 octobre 2026 — PHOTOS DE GAB PELLAND : DEUX NOUVEAUX CADRES
   --------------------------------------------------------------------------
   Les autres pages reçoivent leur photo dans un emplacement qui existait déjà
   (`.sh-media > .duo`, `.proches-photo`, tuiles de l'accueil). Deux pages n'en
   avaient pas : on y reprend le même montage — un cadre arrondi, un `.duo`
   posé en `inset:0`, l'image en `object-fit:cover` — sous un nom propre à la
   page, parce que `.sh-media` porte un `align-self:end` pensé pour la colonne
   de droite d'un chapeau à deux colonnes, qui ne vaut ni dans la colonne de
   Bénévole ni sous les cartes de Nous joindre.
   ========================================================================== */

/* Devenir bénévole — la photo occupe le haut de la colonne de droite, là où
   un décalage de 308 px attendait que le chapô commence. */
.mcl-page .bnv-photo{
  position:relative; width:100%; aspect-ratio:4/3;
  border-radius:24px; overflow:hidden; padding:0; flex:none;
}
.mcl-page .bnv-photo .duo{position:absolute; inset:0}
/* Portrait en pied : le cadrage par défaut des `.duo` (32 %) coupait le haut de la tête. */
.mcl-page .bnv-photo .duo img{object-position:center 18%}
.mcl-page .bnv-aside:has(.bnv-photo){margin-top:0}

/* Nous joindre — un bandeau large sous les deux cartes : une façade se lit
   mieux en largeur qu'en vignette. */
.mcl-page .nsj-photo{
  position:relative; width:100%; aspect-ratio:16/5;
  border-radius:18px; overflow:hidden; padding:0;
}
.mcl-page .nsj-photo .duo{position:absolute; inset:0}
.mcl-page .nsj-photo .duo img{object-position:center 55%}
@media (max-width:900px){
  .mcl-page .nsj-photo{aspect-ratio:16/9}
}

/* Accueil — cadrage des deux tuiles photo permutées (voir journal-photos-gab-pelland).
   La grande tuile garde la physiothérapeute et la jambe levée ; la tuile
   « Faites carrière » remonte un peu pour garder les deux visages. */
.hmc-main .elementor-element-006e561 img{object-position:28% 50%}
.hmc-main .elementor-element-77db612 img{object-position:50% 38%}

/* Soins palliatifs — « Le soutien aux proches » : l'aîné est au bord droit de
   DSC_4204 ; le cadrage centré lui coupait le visage. */
.mcl-page .proches-photo img{object-position:85% center}

/* Logo de la barre latérale — version officielle verticale (2026), 196 px.
   La ligne « Des Sœurs de Charité de Sainte-Marie » devient lisible, mais le
   logo gagne ~31 px de hauteur. Sur les écrans peu hauts (portables), on reprend
   ces pixels dans les espacements pour que le bouton Fondation reste visible
   sans faire défiler la barre. Rien ne change au-delà de 880 px de hauteur. */
@media (max-height:880px){
  html body .hmc-sidebar{padding-top:16px !important}
  html body .hmc-sidebar .hmc-sb-logo{margin-bottom:2px !important}
  html body .hmc-sidebar .hmc-nav .elementor-nav-menu{padding-top:6px !important}
  html body .hmc-sidebar .hmc-nav .elementor-nav-menu>li.menu-item>a.elementor-item{padding-top:5px !important;padding-bottom:5px !important}
}

/* Menu ☰ sur téléphone : le tiroir mesurait 100vh. Sur iPhone et Android,
   100vh vaut la hauteur SANS les barres du navigateur : le bas du tiroir
   (A−, A+, AAA et le bouton Fondation, poussés en bas) passait sous la barre
   d'outils de Safari/Chrome, et comme le contenu « tenait » dans 100vh, on ne
   pouvait pas défiler pour les atteindre. 100dvh = la hauteur réellement
   visible. Les navigateurs qui ne le connaissent pas gardent 100vh. */
@media (max-width:1024px){
  html body .hmc-sidebar{height:100vh !important;height:100dvh !important}
}
@media (max-width:782px){
  html body.admin-bar .hmc-sidebar{height:calc(100vh - 46px) !important;height:calc(100dvh - 46px) !important}
}

/* Barre du haut (≤ 1024 px) — option C validée par Raz le 13 oct. 2026 :
   le symbole officiel (fichier de l'hôpital) suivi du nom et de la ligne des
   Sœurs écrits en texte, pour qu'ils soient lisibles sur téléphone. L'ancien
   logo-image (::after du bouton ☰, 118 × 34 px) est masqué. La marque est un
   vrai lien vers l'accueil, posé par-dessus la barre fixe du bouton ☰. */
.hmc-mbar-brand{display:none}
@media (max-width:1024px){
  html body .hmc-burger::after{display:none !important}
  .hmc-mbar-brand{display:flex;align-items:center;gap:9px;position:fixed;top:0;left:62px;right:12px;height:56px;z-index:141;text-decoration:none !important;color:#1D1D1B}
  body.admin-bar .hmc-mbar-brand{top:46px}
  body.hmc-nav-open .hmc-mbar-brand{display:none}
  .hmc-mbar-brand img{width:45px;height:40px;flex:0 0 auto;display:block}
  .hmc-mbar-txt{display:flex;flex-direction:column;justify-content:center;min-width:0;line-height:1.15}
  .hmc-mbar-nom{font-family:Poppins,system-ui,sans-serif;font-weight:500;font-size:17px;color:#1D1D1B;white-space:nowrap}
  .hmc-mbar-soeurs{font-family:Poppins,system-ui,sans-serif;font-weight:500;font-size:9.5px;letter-spacing:.045em;text-transform:uppercase;color:#3C3C3B;white-space:nowrap;margin-top:3px}
}
@media (max-width:374px){
  .hmc-mbar-brand{gap:7px}
  .hmc-mbar-brand img{width:39px;height:35px}
  .hmc-mbar-nom{font-size:15px}
  .hmc-mbar-soeurs{font-size:8.5px;letter-spacing:.03em}
}

/* ==========================================================================
   EXTRANET — ACCÈS RAPIDES (13 oct. 2026) · court-code [macl_extranet_acces]
   Remplace la bande verte Logibec. Trois cartes : paie (aplat vert, l'accès
   principal), congé, disponibilités. Liens alimentés par les fiches Documents.
   ========================================================================== */
.ext-page .ext-acces{margin:0}
.ext-page .ext-acces .ext-acces-titre{
  font-family:var(--mono); font-size:0.6875rem; font-weight:600;
  letter-spacing:0.12em; text-transform:uppercase; color:var(--ink-soft);
  margin:0 0 12px;
}
.ext-page .ext-acces .ext-acces-grille{
  display:grid; grid-template-columns:repeat(var(--c3,3),minmax(0,1fr)); gap:18px; align-items:stretch;
}
/* Nombre de colonnes calculé par le court-code (--c3/--c4/--c5) : rangées
   équilibrées, et une carte n'est jamais plus étroite que son bouton. */
@media (min-width:1280px){ .ext-page .ext-acces .ext-acces-grille{grid-template-columns:repeat(var(--c4,3),minmax(0,1fr))} }
@media (min-width:1600px){ .ext-page .ext-acces .ext-acces-grille{grid-template-columns:repeat(var(--c5,3),minmax(0,1fr))} }
.ext-page .ext-acces .ext-acces-carte{
  display:flex; flex-direction:column; gap:6px;
  background:var(--paper); border:1px solid rgba(36,71,91,0.14);
  border-radius:18px; padding:26px 28px;
}
.ext-page .ext-acces .ext-acces-carte--vert{background:var(--ext-vert); border-color:var(--ext-vert); color:#fff}
.ext-page .ext-acces .ext-acces-ck{
  font-family:var(--mono); font-size:0.6875rem; font-weight:600;
  letter-spacing:0.12em; text-transform:uppercase; margin:0; color:var(--ink-soft);
}
.ext-page .ext-acces .ext-acces-carte--vert .ext-acces-ck{color:rgba(255,255,255,0.80)}
.ext-page .ext-acces .ext-acces-carte h3{
  font-family:var(--macl-titre); font-weight:700; font-size:1.3125rem; line-height:1.25;
  letter-spacing:-0.02em; margin:0; color:var(--navy-800);
}
.ext-page .ext-acces .ext-acces-carte--vert h3{color:#fff}
.ext-page .ext-acces .ext-acces-desc{margin:0; flex:1; font-size:0.9375rem; line-height:1.5; color:var(--ink-soft)}
.ext-page .ext-acces .ext-acces-carte--vert .ext-acces-desc{color:rgba(255,255,255,0.80)}
.ext-page .ext-acces .ext-acces-actions{
  display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; gap:10px 18px; margin-top:16px;
}
/* Bouton plein */
.ext-page .ext-acces .ext-acces-btn{
  display:inline-flex; align-items:center; border-radius:999px; padding:13px 22px;
  font-family:var(--macl-titre); font-weight:600; font-size:0.9375rem; line-height:1.2;
  background:var(--ext-vert); color:#fff; border:2px solid var(--ext-vert);
  text-decoration:none; white-space:nowrap; transition:200ms cubic-bezier(0.2,0.7,0.2,1);
}
.ext-page .ext-acces a.ext-acces-btn:hover,
.ext-page .ext-acces a.ext-acces-btn:focus-visible{background:transparent; color:var(--ext-vert)}
.ext-page .ext-acces .ext-acces-carte--vert .ext-acces-btn{background:#fff; color:var(--ext-vert); border-color:#fff}
.ext-page .ext-acces .ext-acces-carte--vert a.ext-acces-btn:hover,
.ext-page .ext-acces .ext-acces-carte--vert a.ext-acces-btn:focus-visible{background:transparent; color:#fff}
/* Lien secondaire */
.ext-page .ext-acces .ext-acces-lien{
  font-family:var(--macl-titre); font-weight:600; font-size:0.9375rem;
  color:var(--ext-vert); text-decoration:underline; text-underline-offset:3px;
}
/* À venir */
.ext-page .ext-acces .ext-acces-btn.is-avenir{background:transparent; color:var(--ink-soft); border:2px dashed rgba(36,71,91,0.30); cursor:default}
.ext-page .ext-acces .ext-acces-lien.is-avenir{color:var(--ink-soft); text-decoration:none}
/* Pictogrammes : sortant (lien externe), fichier à télécharger */
.ext-page .ext-acces .is-sortant::after,
.ext-page .ext-acces .ext-acces-btn.is-fichier::after{
  content:""; display:inline-block; width:14px; height:14px; margin-left:9px; flex:0 0 auto;
  background-color:currentColor;
  -webkit-mask:var(--ic-sortant) no-repeat center / contain; mask:var(--ic-sortant) no-repeat center / contain;
}
.ext-page .ext-acces .ext-acces-btn.is-fichier::after{
  -webkit-mask-image:var(--ic-fichier); mask-image:var(--ic-fichier);
}
.ext-page .ext-acces .ext-acces-lien.is-sortant::after{width:12px; height:12px; margin-left:6px; vertical-align:-1px}
html[data-macl-contraste="aaa"] .ext-page .ext-acces a.ext-acces-btn{text-decoration:none}
@media (max-width:1100px){
  .ext-page .ext-acces .ext-acces-grille{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ext-page .ext-acces .ext-acces-grille--impair > .ext-acces-carte--vert:first-child{grid-column:1 / -1}
}
@media (max-width:640px){
  .ext-page .ext-acces .ext-acces-grille{grid-template-columns:1fr}
  .ext-page .ext-acces .ext-acces-carte{padding:22px 22px}
}

/* ==========================================================================
   TÉMOIGNAGES (13 oct. 2026) · court-code [macl_temoignages]
   Cartes .testi existantes (même style que l'ancienne section de Carrières),
   posées sur une piste à défilement horizontal. 2 par vue sur ordinateur,
   1 sur téléphone. Le défilement automatique et ses commandes ne
   s'activent (macl-temoignages.js) que s'il y a plus de cartes que de place.
   ========================================================================== */
.mcl-page .temo-carrousel{--temo-par-vue:2; position:relative}
@media (max-width:800px){ .mcl-page .temo-carrousel{--temo-par-vue:1} }
.mcl-page .temo-carrousel .temo-piste{
  display:grid; grid-auto-flow:column; gap:18px;
  grid-auto-columns:calc((100% - (var(--temo-par-vue) - 1) * 18px) / var(--temo-par-vue));
  overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain;
  scrollbar-width:none; padding:2px; margin:-2px;
}
.mcl-page .temo-carrousel .temo-piste::-webkit-scrollbar{display:none}
.mcl-page .temo-carrousel .temo-piste:focus-visible{outline:3px solid var(--navy-800); outline-offset:4px; border-radius:20px}
.mcl-page .temo-carrousel .temo-carte{scroll-snap-align:start; margin:0; min-width:0}
.mcl-page .temo-carrousel .temo-carte blockquote p{margin:0 0 0.9em}
.mcl-page .temo-carrousel .temo-carte blockquote p:last-child{margin-bottom:0}
.mcl-page .temo-carrousel .temo-carte blockquote p:first-child::before{content:"« "}
.mcl-page .temo-carrousel .temo-carte blockquote p:last-child::after{content:" »"}
.mcl-page .temo-carrousel .temo-qui{font-style:normal; display:grid; grid-template-columns:auto 1fr; column-gap:14px; row-gap:4px; align-items:center; margin-top:auto}
.mcl-page .temo-carrousel .temo-photo{grid-row:span 2; width:48px; height:48px; border-radius:50%; object-fit:cover}
.mcl-page .temo-carrousel .temo-qui > :not(.temo-photo){grid-column:2}
.mcl-page .temo-carrousel .temo-qui:not(:has(.temo-photo)){grid-template-columns:1fr}
.mcl-page .temo-carrousel .temo-qui:not(:has(.temo-photo)) > *{grid-column:1}
.mcl-page .temo-carrousel .temo-nom{font-family:var(--macl-titre); font-weight:600; font-size:1rem; color:var(--navy-800)}
/* Commandes */
.mcl-page .temo-carrousel .temo-commandes{display:flex; flex-direction:row; align-items:center; gap:14px; margin-top:22px}
.mcl-page .temo-carrousel .temo-commandes[hidden]{display:none}
.mcl-page .temo-carrousel .temo-points{display:flex; flex-direction:row; gap:8px; margin-right:auto}
.mcl-page .temo-carrousel .temo-point{width:12px; height:12px; padding:0; border-radius:50%; border:2px solid var(--navy-800); background:transparent; cursor:pointer}
.mcl-page .temo-carrousel .temo-point[aria-current="true"]{background:var(--navy-800)}
.mcl-page .temo-carrousel .temo-btn{
  font-family:var(--macl-titre); font-weight:600; font-size:0.875rem; color:var(--navy-800);
  background:transparent; border:1.5px solid var(--navy-800); border-radius:999px; padding:9px 16px; cursor:pointer; line-height:1;
}
.mcl-page .temo-carrousel .temo-prec,
.mcl-page .temo-carrousel .temo-suiv{width:42px; height:42px; padding:0; font-size:1.1rem}
.mcl-page .temo-carrousel .temo-btn:hover{background:var(--navy-800); color:#fff}
.mcl-page .temo-carrousel .temo-btn:focus-visible,
.mcl-page .temo-carrousel .temo-point:focus-visible{outline:3px solid var(--magenta-500); outline-offset:3px}
@media (max-width:640px){
  .mcl-page .temo-carrousel .temo-commandes{flex-wrap:wrap}
  .mcl-page .temo-carrousel .temo-points{order:-1; width:100%; justify-content:center; margin:0 0 6px}
  .mcl-page .temo-carrousel .temo-pause{margin-right:auto}
}
@media (prefers-reduced-motion:reduce){ .mcl-page .temo-carrousel .temo-piste{scroll-behavior:auto} }

/* ==========================================================================
   ADMISSION — annotations du 13 oct. 2026 (page Préparer son séjour)
   Sous-liste des partenaires sous un critère, et liens vers les fiches
   Formulaires posés par [macl_document forme="lien"].
   ========================================================================== */
.hmc-check .hmc-partenaires{margin:4px 0 0;padding:0 0 0 1.35em;list-style:disc;font-size:0.84375rem;line-height:1.5;color:var(--navy-800)}
.hmc-check .hmc-partenaires li{margin:0 0 2px;padding:0}
.hmc-adm-grid .prog-read .hmc-partenaires li::marker{color:rgb(244,148,42)}
.hmc-check .macl-doc-lien{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.hmc-check .macl-doc-lien:hover{text-decoration-thickness:2px}

/* ==========================================================================
   ARCHIVES MÉDICALES (530) — coordonnées pour transmettre la demande
   13 oct. 2026. Remplace l'encadré « À ajouter ». Même famille que la carte
   de coordonnées du Commissaire (`.cmm-coord`) : vert pâle, surtitre vert
   soutenu, lignes clé/valeur `.sej-kv`. En haut les moyens à distance, en
   dessous les deux adresses côte à côte, en pied le délai légal.
   ========================================================================== */
.mcl-page .arc-coord{background:var(--teal-100); border-color:transparent; border-radius:18px; padding:26px 28px 28px; display:flex; flex-direction:column; gap:16px}
.mcl-page .arc-coord .ck{color:#1E5B32; margin-bottom:0}
.mcl-page .arc-coord-grid{display:flex; flex-direction:column; gap:22px}
.mcl-page .arc-coord .sej-kv .row{border-bottom-color:rgba(30,91,50,0.28)}
.mcl-page .arc-coord .sej-kv .k{color:var(--navy-700)}
.mcl-page .arc-coord .sej-kv .v{color:var(--navy-800)}
.mcl-page .arc-coord .sej-kv .v a{color:inherit; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px}
.mcl-page .arc-coord-adr{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px}
.mcl-page .arc-coord-adr p{margin:0; font-size:0.9375rem; line-height:1.6; color:var(--navy-700)}
.mcl-page .arc-coord-adr strong{font-weight:600; color:var(--navy-800)}
.mcl-page .arc-coord .arc-delai{padding-top:14px; border-top:1px solid rgba(30,91,50,0.28)}
.mcl-page .arc-coord .arc-delai p{margin:0; font-size:0.9375rem; line-height:1.6; color:var(--navy-800)}
@media (max-width:560px){
  .mcl-page .arc-coord{padding:22px 20px 24px}
  .mcl-page .arc-coord-adr{grid-template-columns:1fr}
}

/* ADMISSION — la phrase « poste 2149 » ferme la carte Soins palliatifs (13 oct.),
   séparée des moyens de transmission par un filet. */
.hmc-sidecard .adm-crit-contact{margin-top:14px; padding-top:14px; border-top:1px solid rgba(36,71,91,0.14)}


/* ==========================================================================
   BANC DE TEST RESPONSIVE — corrections du 13 oct. 2026
   Toutes les pages balayées de 320 à 1920 px (pas de 10 px + largeurs
   d'appareils). Chaque règle ci-dessous répond à un défaut MESURÉ ; le
   rapport et la méthode sont dans le journal du projet (journal-responsive).
   ========================================================================== */

/* 1. Titres de page sur petit téléphone. Le plancher de 46 px (2,875 rem)
      était trop large pour « Accompagner. » (accueil) et « accompagner la
      personne. » (Soins et services) : jusqu'à 62 px de débord à 320 px.
      Sous 430 px, le titre suit la largeur d'écran — 11,5vw, soit 37 px à
      320 et 43 px à 375 — sans jamais dépasser sa taille normale. */
@media (max-width:430px){
  :root{ --macl-titre-page: min(calc(2.875rem * var(--macl-echelle, 1)), 11.5vw); }
}

/* 2. Filet de sécurité : un mot plus long que sa boîte passe à la ligne au
      lieu de déborder. `break-word` n'agit QUE si le mot ne tient pas seul
      sur la ligne : la mise en page normale ne change pas. */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-text-editor{overflow-wrap:break-word}
.hmc-sidecard .hmc-side-meta a,
.mcl-page .sej-kv .v a{overflow-wrap:anywhere}

/* 3. Sélecteur Réadaptation / Soins palliatifs (Préparer son séjour) : la
      capsule faisait 58 px de plus que l'écran à 320-375 px — le bouton
      « Soins palliatifs » sortait à droite. Pastilles resserrées sous 440 px,
      et retour à la ligne permis en dernier recours. */
@media (max-width:440px){
  .elementor .hmc-main .hmc-svc-seg{flex-wrap:wrap !important; max-width:100%; row-gap:4px}
  .elementor .hmc-main .hmc-svc-pill .elementor-button{padding:9px 13px !important; font-size:0.84375rem !important; gap:6px}
  .elementor .hmc-main .hmc-svc-pill .elementor-button:before{width:7px; height:7px}
}

/* 4. Horaires (cafétéria, etc.) : sous 440 px, le libellé « Samedi, dimanche
      et jours fériés » et les heures se chevauchaient. Les heures passent
      sous le libellé. */
@media (max-width:440px){
  .hmc-main .hmc-onsite .hmc-on-hrow{flex-wrap:wrap !important; row-gap:2px !important}
  .hmc-main .hmc-onsite .hmc-on-hl{flex:1 1 100% !important}
  .hmc-main .hmc-onsite .hmc-on-hv{flex:1 1 100% !important}
  .hmc-main .hmc-onsite .hmc-on-hv p{text-align:left}
}

/* 5. Accueil — le lien « Comment être admis → » (nowrap) sortait de la carte
      programme jusqu'à 430 px. Les deux actions passent sur deux lignes. */
.hmc-main .hmc-prog-cta{flex-wrap:wrap !important; row-gap:12px !important}

/* 6. Accueil — « Préparer votre arrivée » : avec la barre latérale (1025 px
      et plus), les quatre cartes ne faisaient que 136 à 190 px ;
      « stationnement » débordait. Deux par rangée jusqu'à 1259 px. */
@media (min-width:1025px) and (max-width:1259px){
  .hmc-main .hmc-qa-grid > .hmc-qa-link{flex:0 0 calc(50% - 8px) !important; width:calc(50% - 8px) !important; max-width:calc(50% - 8px) !important}
}

/* 7. Maltraitance — ressources : à 1025-1070 px, le numéro « 1 888 489-2287 »
      dépassait sa carte. Deux colonnes jusqu'à 1199 px. */
@media (min-width:1025px) and (max-width:1199px){
  .mcl-page .mlt-ress-grid{grid-template-columns:1fr 1fr}
}

/* 8. Archives — formulaires : à 320-340 px, la pastille débordait de la carte
      (la colonne ne descendait pas sous la largeur de « renseignements »). */
.mcl-page .arc-docs{grid-template-columns:repeat(auto-fit, minmax(min(220px, 100%), 1fr))}
@media (max-width:1100px){
  .mcl-page .arc-docs{grid-template-columns:minmax(0, 1fr)}
}
.mcl-page .arc-docs .macl-doc-carte{min-width:0}
.mcl-page .arc-docs .macl-doc-carte-txt{min-width:0}

/* 9. Espace employé — « Communiqués » + « 1 communiqué en cours » : la tête
      de section ne passait pas à la ligne et poussait la page de 26 px à
      320 px. */
.ext-page .ext-sec-tete{flex-wrap:wrap; row-gap:6px}

/* 10. Cibles tactiles (WCAG 2.2, critère 2.5.8 : 24 px minimum).
       Points du carrousel de témoignages : 12 px → zone de 24 px, le point
       visible reste de 12 px. Bouton « Voir » du mot de passe : 15 px → 24. */
.mcl-page .temo-carrousel .temo-points{gap:0}
.mcl-page .temo-carrousel .temo-point{width:24px; height:24px; border:0; background:transparent; position:relative}
.mcl-page .temo-carrousel .temo-point::before{content:""; position:absolute; inset:6px; border-radius:50%; border:2px solid var(--navy-800); background:transparent; box-sizing:border-box}
.mcl-page .temo-carrousel .temo-point[aria-current="true"]{background:transparent}
.mcl-page .temo-carrousel .temo-point[aria-current="true"]::before{background:var(--navy-800)}
.mcl-page .emp-voir{min-height:24px; min-width:24px; padding:4px 2px}

/* 11. Deuxième passe du banc (même jour).
       a) Accueil : les deux actions de la carte programme ont un `flex:1 1 0`
          réglé dans Elementor — moitié chacune, jamais de retour à la ligne.
          Sous 600 px, chacune prend sa largeur naturelle et passe à la ligne.
       b) Archives : à 320-340 px, « renseignements » imposait 274 px à une
          colonne de 224. Rembourrage resserré, coupure de mot permise.
       c) Espace employé : la colonne d'onglets (303 px) ne descendait pas
          sous sa largeur naturelle dans une grille de 276 px. */
@media (max-width:600px){
  .hmc-main .hmc-prog-cta > .elementor-widget{flex:0 0 auto !important; max-width:100%}
}
@media (max-width:380px){
  .mcl-page .arc-docs .macl-doc-carte{padding-left:14px !important; padding-right:14px !important; gap:10px}
}
.mcl-page .arc-docs .macl-doc-carte-t{-webkit-hyphens:auto; hyphens:auto; overflow-wrap:anywhere}
.mcl-page .arc-docs .elementor-shortcode{min-width:0}
.ext-page .ext-docs > *{min-width:0}
/*     d) Espace employé : à 320 px, les titres de documents (« Politique —
          Pour un environnement sans fumée… ») débordaient de 4 à 9 px. */
.ext-page .ext-doc-txt{min-width:0}
.ext-page .ext-doc-t,
.ext-page .ext-doc-m{overflow-wrap:anywhere}

/* =========================================================================
   BANDEAU DE CONSENTEMENT AUX TÉMOINS — Loi 25 (14 oct. 2026)
   Voir macl-temoins.php. N'existe dans la page que si un identifiant GA4 est
   saisi (ou en aperçu administrateur). Deux boutons IDENTIQUES : refuser
   doit être aussi simple qu'accepter.
   ========================================================================= */
.macl-temoins{position:fixed;left:16px;right:16px;bottom:16px;z-index:9990;
  background:var(--paper,#fff);color:var(--ink,#14283A);border:1px solid var(--rule,#24475B);
  border-radius:14px;box-shadow:0 12px 36px rgba(20,40,58,.22);
  max-height:calc(100dvh - 32px);overflow:auto;font-family:var(--macl-titre)}
.macl-temoins[hidden]{display:none!important}
.macl-temoins:focus{outline:3px solid var(--rule,#24475B);outline-offset:3px}
.macl-temoins-int{display:flex;align-items:center;gap:20px 32px;padding:20px 24px;max-width:1080px;margin:0 auto}
.macl-temoins-texte{flex:1 1 auto;min-width:0}
.macl-temoins .macl-temoins-titre{margin:0 0 6px;font-size:1.0625rem;line-height:1.3;font-weight:700;color:var(--ink,#14283A)}
.macl-temoins p{margin:0;font-size:0.9375rem;line-height:1.55;color:var(--ink,#14283A);overflow-wrap:break-word}
.macl-temoins p a{color:var(--rule,#24475B);text-decoration:underline;text-underline-offset:2px}
.macl-temoins-actions{display:flex;gap:12px;flex:0 0 auto}
.macl-temoins .macl-temoins-btn{min-width:120px;min-height:44px;padding:10px 22px;border-radius:999px;cursor:pointer;
  font:600 0.9375rem/1.2 var(--macl-titre);background:var(--rule,#24475B);color:#fff;border:2px solid var(--rule,#24475B)}
.macl-temoins .macl-temoins-btn:hover{background:#14283A;border-color:#14283A}
.macl-temoins .macl-temoins-btn:focus-visible{outline:3px solid var(--rule,#24475B);outline-offset:3px}
/* À côté de la barre latérale fixe (240 px), comme les conteneurs de page. */
@media (min-width:1025px){
  body:not(.macl-extranet) .macl-temoins{left:256px}
}
@media (max-width:760px){
  .macl-temoins-int{flex-direction:column;align-items:stretch;padding:16px 18px}
  .macl-temoins-actions .macl-temoins-btn{flex:1 1 0;min-width:0}
  .macl-temoins{left:10px;right:10px;bottom:10px;max-height:calc(100dvh - 20px)}
}
/* Lien « Gérer les témoins » : même allure que les mentions du pied. */
.macl-temoins-gerer{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;
  border-bottom:1px solid rgba(36,71,91,.28);line-height:inherit}
.macl-temoins-gerer:hover,.macl-temoins-gerer:focus-visible{color:var(--magenta-500);border-bottom-color:currentColor}
.hmc-foot-bot .macl-temoins-gerer{font-size:inherit}
@media print{.macl-temoins{display:none!important}}

/* =========================================================================
   CARTES RÉADAPTATION / SOINS PALLIATIFS (accueil 31, Soins 32) — 14 oct. 2026
   Côte à côte, chaque carte calait ses étiquettes et son « En savoir plus »
   sur la longueur de SON texte : les deux cartes ne s'alignaient pas.
   Grille partagée (subgrid) : photo, titre, texte, étiquettes et boutons
   occupent les MÊMES rangées dans les deux cartes ; chaque rangée prend la
   hauteur du plus long des deux. Empilées (≤ 1024 px), rien ne change.
   ========================================================================= */
@media (min-width:1025px){
  .hmc-main .hmc-pillars{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:repeat(5,auto);column-gap:22px;row-gap:0;align-items:stretch}
  .hmc-main .hmc-pillars > .hmc-pillar{display:grid!important;grid-row:span 5;grid-template-rows:subgrid;
    row-gap:10px;flex:none!important;width:auto!important}
  .hmc-main .hmc-pillar > .hmc-prog-media{grid-row:1}
  .hmc-main .hmc-pillar > .hmc-prog-body{display:grid!important;grid-row:2 / span 4;grid-template-rows:subgrid;
    row-gap:16px;align-content:start}
  .hmc-main .hmc-prog-body > .hmc-prog-cta{align-self:start}
}

/* =========================================================================
   AGRÉMENT — lien « Agrément Canada » dans le texte (14 oct. 2026)
   Il avait la couleur et la graisse du texte, sans soulignement : rien ne
   le signalait comme lien (WCAG 1.4.1). Souligné, un peu plus foncé, et une
   petite flèche ↗ : il s'ouvre sur un autre site, dans un nouvel onglet
   (déjà annoncé par son aria-label).
   ========================================================================= */
.mcl-page .agr-texte p a{color:var(--rule,#24475B);font-weight:500;text-decoration:underline;
  text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:rgba(36,71,91,.45)}
.mcl-page .agr-texte p a:hover,
.mcl-page .agr-texte p a:focus-visible{color:var(--magenta-500);text-decoration-color:currentColor}
.mcl-page .agr-texte p a[target="_blank"]::after{content:"\2197";display:inline-block;margin-left:.2em;
  font-size:.85em;line-height:1;text-decoration:none}

/* =========================================================================
   SECTIONS RAPPROCHÉES (15 oct. 2026) — Gouvernance, « Organisation » puis
   « Équipes », à la demande de Raz. Deux classes à poser dans Elementor sur
   les sections voisines : moitié de l'écart habituel de chaque côté.
   ========================================================================= */
.mcl-page .sej-section.sej-serre-bas{padding-bottom:calc(var(--macl-esp-section) * .5)}
.mcl-page .sej-section.sej-serre-haut{padding-top:calc(var(--macl-esp-section) * .5)}

/* =========================================================================
   QUI SOMMES-NOUS — photo de la fondatrice (15 oct. 2026)
   Raz a placé la photo dans « 04 · Notre histoire ». Elle commence à la
   hauteur du grand titre : le surtitre rose reste seul au-dessus.
   Côte à côte seulement ; empilé (≤ 1000 px), la photo suit le titre.
   ========================================================================= */
@media (min-width:1001px){
  /* Le widget Image d'Elementor 4 est en display:contents : c'est l'image
     elle-même qui est l'élément de la grille, donc c'est elle qu'on décale. */
  .mcl-page .hist-top > .elementor-widget-image img,
  .mcl-page .hist-top > .elementor-widget-image .elementor-widget-container{margin-top:var(--macl-hist-photo-decalage, 2.8125rem)}
}

/* =========================================================================
   GOUVERNANCE — photo du comité de direction dans l'en-tête (16 oct. 2026)
   Le widget Image d'Elementor 4 est en display:contents : l'image est
   l'enfant direct du cadre. Elle le remplit (4/3, coins arrondis du cadre).
   ========================================================================= */
.mcl-page .soins-hero .sh-media:has(> .elementor-widget-image){padding:0; align-self:center}
.mcl-page .soins-hero .sh-media > .elementor-widget-image img{
  display:block; width:100%; height:100%; object-fit:cover; object-position:center 15%; /* garde les têtes du rang arrière quand le cadre s’élargit (768–1100 px) */
}

/* =========================================================================
   ACTUALITÉS (22 oct. 2026) — macl-actualites.php, macl-actualite-modele.php
   Cartes : le gabarit .hub-card de la page (titre en h2 : la page n'a pas
   d'autre niveau entre son h1 et les cartes). Article : la colonne de lecture
   des offres d'emploi.
   ========================================================================= */
.mcl-page a.act-carte{text-decoration:none;color:inherit}
.mcl-page .act-carte .act-carte-titre{font-family:var(--macl-titre);font-weight:600;font-size:1.375rem;line-height:1.2;letter-spacing:-0.015em;margin:0;color:var(--navy-800)}
.mcl-page .act-carte:focus-visible{outline:3px solid var(--rule,#24475B);outline-offset:3px}
.mcl-page .act-vignette{display:block;margin:-26px -26px 4px;aspect-ratio:16/9;overflow:hidden;border-radius:16px 16px 0 0}
.mcl-page .act-vignette img{width:100%;height:100%;object-fit:cover;display:block}
.mcl-page .act-vide{color:var(--ink-soft)}
.mcl-page .act-hero .act-titre{font-family:var(--macl-titre);font-weight:800;color:var(--navy-800);
  font-size:clamp(2rem, calc(3.4vw * var(--macl-echelle, 1)), 3.25rem);line-height:1.08;letter-spacing:-0.02em;margin:0;max-width:24ch;overflow-wrap:break-word}
.mcl-page .act-meta{margin:18px 0 0;font-family:var(--mono);font-size:0.75rem;letter-spacing:0.08em;color:var(--ink-soft)}
.mcl-page .act-corps{padding-top:0}
.mcl-page .act-image{margin:0 0 32px;max-width:900px;border-radius:24px;overflow:hidden}
.mcl-page .act-image img{display:block;width:100%;height:auto}
.mcl-page .act-texte{max-width:70ch}
.mcl-page .act-texte p{color:var(--ink-soft);font-size:1rem;line-height:1.7;margin:0 0 20px}
.mcl-page .act-texte h2{font-family:var(--macl-titre);font-weight:700;font-size:1.375rem;line-height:1.25;color:var(--navy-800);margin:40px 0 14px}
.mcl-page .act-texte h3{font-family:var(--macl-titre);font-weight:600;font-size:1.125rem;color:var(--navy-800);margin:30px 0 12px}
.mcl-page .act-texte ul{margin:0 0 22px;padding-left:22px;list-style:disc}
.mcl-page .act-texte li{color:var(--ink-soft);font-size:1rem;line-height:1.6;margin-bottom:8px}
.mcl-page .act-texte strong{color:var(--navy-800)}
.mcl-page .act-texte a{color:var(--rule,#24475B);text-decoration:underline;text-underline-offset:3px}
.mcl-page .act-retour{padding-top:0}

/* Chapeau de carte : quatre lignes au plus, l'article complet est à un clic. */
.mcl-page .act-carte p{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
/* Article d'actualité : rendu par un gabarit PHP, comme les offres d'emploi.
   Même remise à zéro du décalage du body (voir body.single-macl_offre). */
body.single-post{padding-left:0 !important; padding-right:0 !important}

/* CONFIDENTIALITÉ — cartes à deux paragraphes (témoins, journal de l’espace employé), 22 oct. 2026 */
.mcl-page .cnf-carte p + p{margin-top:.75em}

/* PLAN DU SITE — [macl_plan_du_site], 22 oct. 2026.
   Grille auto-fit comme les cartes de Confidentialité : trois ou quatre colonnes
   au large, une sur téléphone, sans palier codé en dur. */
.mcl-page .plan-site{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap:40px 32px; align-items:start;
}
.mcl-page .plan-site-g--accueil{grid-column:1 / -1}
.mcl-page .plan-site-h{
  margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--rule);
  font-family:var(--macl-titre); font-size:1.125rem; font-weight:600; line-height:1.3; color:var(--ink);
}
.mcl-page .plan-site-h a{color:inherit; text-decoration:none}
.mcl-page .plan-site-h a:hover, .mcl-page .plan-site-h a:focus-visible{text-decoration:underline; text-underline-offset:3px}
.mcl-page .plan-site-l{list-style:none; margin:0; padding:0; display:grid; gap:8px}
.mcl-page .plan-site-l a{color:var(--ink-soft); font-size:0.9375rem; line-height:1.45; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:3px}
.mcl-page .plan-site-l a:hover, .mcl-page .plan-site-l a:focus-visible{color:var(--ink); text-decoration-color:currentColor}

/* MENU LATÉRAL — PANNEAUX DES RUBRIQUES (macl-menu-panneaux.php / .js), 23 oct. 2026.
   Ordinateur : panneau fixe à droite de la barre (position:fixed échappe au
   défilement de la barre), le menu ne bouge pas. Téléphone et tablette : liste
   dépliée sous la rubrique par la flèche. N'existe que si le script a monté les
   panneaux (classe html.mmp-actif). */
html.mmp-actif .hmc-sidebar .hmc-nav .elementor-nav-menu > li.mmp-a{position:relative}
.hmc-sidebar .mmp-fl{
  position:absolute; right:2px; top:50%; transform:translateY(-50%);
  width:28px; height:28px; padding:0; margin:0; border:0; border-radius:6px;
  background:transparent; color:var(--navy-700); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.hmc-sidebar .mmp-fl::before{
  content:""; width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(-45deg); transition:transform .15s ease;
}
.hmc-sidebar .mmp-fl:hover, .hmc-sidebar .mmp-fl:focus-visible{background:var(--teal-50); color:var(--ink)}
.hmc-sidebar .mmp-fl:focus-visible{outline:2px solid var(--ink); outline-offset:1px}
.hmc-sidebar li.mmp-ouvert > .mmp-fl{color:var(--teal-700)}

.hmc-sidebar .mmp-panneau{
  position:fixed; z-index:95; width:300px; max-height:calc(100vh - 24px); overflow:auto;
  background:var(--paper); border:1px solid #E6DED0; border-radius:var(--r-card);
  box-shadow:0 18px 40px rgba(20,40,58,.16), 0 2px 6px rgba(20,40,58,.08);
  padding:16px 8px 10px; text-align:left;
}
.hmc-sidebar .mmp-panneau[hidden]{display:none}
.hmc-sidebar .mmp-panneau::before{ /* pont invisible entre la barre et le panneau : la souris ne « tombe » pas dans le vide */
  content:""; position:absolute; left:-14px; top:0; bottom:0; width:14px;
}
.hmc-sidebar .mmp-vue{
  display:block; margin:0 8px 8px; padding:0 0 10px; border-bottom:1px solid #E6DED0;
  font-family:var(--macl-titre); font-size:0.9375rem; font-weight:600; line-height:1.35; color:var(--ink); text-decoration:none;
}
.hmc-sidebar .mmp-vue::after{content:" →"; color:var(--teal-700)}
.hmc-sidebar .mmp-vue:hover, .hmc-sidebar .mmp-vue:focus-visible{color:var(--teal-700); text-decoration:underline; text-underline-offset:3px}
.hmc-sidebar .hmc-nav .elementor-nav-menu .mmp-panneau .mmp-liste{ /* Elementor masque toute liste imbriquée dans un menu : on la rétablit */
  display:block !important; position:static !important; width:auto !important; min-width:0 !important;
  list-style:none; margin:0 !important; padding:0 !important; background:none !important; box-shadow:none !important; border:0 !important;
}
.hmc-sidebar .mmp-liste a{
  display:block; padding:7px 8px; border-radius:6px;
  font-size:0.875rem; line-height:1.35; color:var(--ink-soft); text-decoration:none;
}
.hmc-sidebar .mmp-liste a:hover, .hmc-sidebar .mmp-liste a:focus-visible{background:var(--teal-50); color:var(--ink)}
.hmc-sidebar .mmp-liste a[aria-current="page"]{color:var(--teal-700); font-weight:600}
.hmc-sidebar .mmp-panneau a:focus-visible{outline:2px solid var(--ink); outline-offset:1px}

@media (min-width:1025px){
  .hmc-sidebar li.mmp-a.mmp-ouvert > a.elementor-item{background:var(--teal-50)}
  /* Sur ordinateur, le panneau s'ouvre au survol : la flèche ne sert qu'au clavier.
     Invisible tant qu'elle n'a pas le focus, elle ne prend aucune place et ne fait
     passer aucun libellé sur deux lignes. */
  .hmc-sidebar .mmp-fl{opacity:0; width:24px; height:24px; right:4px}
  .hmc-sidebar .mmp-fl:focus-visible{opacity:1; background:var(--paper)}
}
@media (max-width:1024px){
  html.mmp-actif .hmc-sidebar .hmc-nav .elementor-nav-menu > li.mmp-a > a.elementor-item{padding-right:34px !important}
  .hmc-sidebar .mmp-fl::before{transform:rotate(45deg); margin-top:-3px}
  .hmc-sidebar li.mmp-ouvert > .mmp-fl::before{transform:rotate(-135deg); margin-top:3px}
  .hmc-sidebar .mmp-fl{top:2px; right:0; transform:none; width:32px; height:32px}
  .hmc-sidebar .mmp-panneau{
    position:static; width:auto; max-height:none; overflow:visible;
    box-shadow:none; border:0; border-left:2px solid var(--teal-500); border-radius:0;
    margin:2px 0 8px 14px; padding:4px 0 4px 6px; background:transparent;
  }
  .hmc-sidebar .mmp-panneau::before{display:none}
  .hmc-sidebar .mmp-vue{border-bottom:0; margin:0 0 2px; padding:7px 8px; font-size:0.875rem}
}
html[data-macl-contraste="aaa"] .hmc-sidebar .mmp-panneau{border-color:#000; box-shadow:none}
html[data-macl-contraste="aaa"] .hmc-sidebar .mmp-liste a, html[data-macl-contraste="aaa"] .hmc-sidebar .mmp-vue{color:#000}

/* SURTITRES DES CHAPEAUX — Soins et services (32) et Préparer son séjour (33), 23 oct. 2026.
   Ces deux pages, montées plus tôt, portaient l'ancien surtitre (.hmc-kicker.hmc-eyebrow :
   gras 700, lettres à 1,3 px, magenta foncé, trait de 28 px). Alignés sur celui des autres
   pages (.sh-kicker / .eyebrow-line) : semi-gras 600, 0,2 em, --magenta-500, trait de 32 px.
   Le mode contraste renforcé garde ses propres couleurs (:not). */
html:not([data-macl-contraste="aaa"]) body.page-id-32 .hmc-hero .hmc-kicker.hmc-eyebrow .elementor-heading-title,
html:not([data-macl-contraste="aaa"]) body.page-id-33 .hmc-hero .hmc-kicker.hmc-eyebrow .elementor-heading-title{
  font-weight:600 !important; letter-spacing:0.2em !important; color:var(--magenta-500) !important;
}
body.page-id-32 .hmc-hero .hmc-kicker.hmc-eyebrow .elementor-heading-title::before,
body.page-id-33 .hmc-hero .hmc-kicker.hmc-eyebrow .elementor-heading-title::before{width:32px !important}

/* BANNIÈRE AVIS — TÉLÉPHONE ET TABLETTE (popup #199), 23 oct. 2026.
   Le CSS du modèle décalait la bannière de 72 px à gauche et la collait à 14 px du
   haut : sur téléphone, elle passait par-dessus la barre mobile (logo, bouton menu).
   Elle se pose maintenant SOUS la barre (56 px), sur toute la largeur, avec 12 px
   de marge. Ordinateur inchangé. */
@media (max-width:1024px){
  html body .elementor-popup-modal.elementor-popup-modal .dialog-message{
    padding:66px 12px 0 12px !important;
  }
  html body .elementor-popup-modal.elementor-popup-modal .hmc-avisbar{
    padding:12px 48px 12px 16px !important;
  }
  html body .elementor-popup-modal.elementor-popup-modal .dialog-close-button{
    right:26px !important; top:80px !important; transform:none !important; /* la flèche se place par rapport au calque (qui commence en haut de l’écran) : 66 px de marge + 14 px */
  }
}

/* =========================================================================
   CORRECTIFS DU TEST DE RESPONSIVE (23 oct. 2026) — voir journal-test-responsive-1023
   ========================================================================= */
/* 1. Espace employé › Documents, 320 px : les cartes d'accès rapide débordaient
      (bouton en nowrap + colonne `1fr` qui refuse de descendre sous son contenu). */
@media (max-width:640px){
  .ext-page .ext-acces .ext-acces-grille{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:400px){
  .ext-page .ext-acces .ext-acces-carte{padding:20px 18px}
  .ext-page .ext-acces .ext-acces-btn{white-space:normal; padding:12px 18px}
}
/* 2. Même page, A++ : l'en-tête du panneau (« Direction des services
      multidisciplinaires · 0 documents ») débordait de 2 px : il passe à la ligne. */
.ext-page .ext-panneau-tete{flex-wrap:wrap; row-gap:6px}
.ext-page .ext-panneau-tete > *{min-width:0}

/* 3. Pages de l'espace employé : sur téléphone, la bannière d'avis recouvrait le
      titre. Même principe que les autres pages (html.hmc-avis-on) : on laisse sa place. */
@media (max-width:1024px){
  /* L'espace employé n'a pas la barre mobile de 56 px : la bannière se pose tout en
     haut, et la page (barre « Espace employé » comprise) commence sous elle. */
  html body.macl-extranet .elementor-popup-modal.elementor-popup-modal .dialog-message{padding-top:10px !important}
  html body.macl-extranet .elementor-popup-modal.elementor-popup-modal .dialog-close-button{top:20px !important}
  html.hmc-avis-on .ext-page{padding-top:126px !important}
}

/* 4. Première visite sur téléphone : bannière d'avis et bandeau des témoins plus
      compacts (ils couvraient jusqu'à 80 % de l'écran, et se chevauchaient à 320 px). */
@media (max-width:1024px){
  html body .elementor-popup-modal.elementor-popup-modal .hmc-avisbar{padding:10px 44px 10px 14px !important; flex-wrap:wrap !important; row-gap:2px !important}
  html body .elementor-popup-modal .hmc-avisbar-txt p,
  html body .elementor-popup-modal .hmc-avisbar-txt .elementor-widget-container{font-size:13.5px !important; line-height:1.45 !important}
  html body .elementor-popup-modal .hmc-avisbar-btn .elementor-button{font-size:13.5px !important}
  html body .elementor-popup-modal .hmc-avis-tag{font-size:10px !important; padding:3px 8px !important; margin-right:6px !important}
  html body .elementor-popup-modal.elementor-popup-modal .dialog-close-button{top:76px !important; right:22px !important}
}
@media (max-width:760px){
  .macl-temoins{left:8px; right:8px; bottom:8px}
  .macl-temoins .macl-temoins-int{gap:10px; padding:12px 14px}
  .macl-temoins .macl-temoins-titre{font-size:0.9375rem; margin:0 0 3px}
  .macl-temoins p{font-size:0.8125rem; line-height:1.45}
  .macl-temoins .macl-temoins-btn{min-height:40px; padding:8px 14px}
}

/* 6. Sur téléphone et tablette, une ancre ne doit pas atterrir sous la barre du
      haut (56 px) : marge de défilement globale. */
@media (max-width:1024px){
  html{scroll-padding-top:64px}
}
.macl-cible-contenu{display:block;height:0;outline:0}

/* Test de responsive (v8) : « Gérer les témoins » atteint la cible tactile de 24 px sur écrans tactiles */
@media (max-width:1024px){.macl-temoins-gerer{min-height:24px;padding:2px 0;vertical-align:middle}}

/* ============================================================
   PAGE MÉDIAS (#1584) — « Directives relatives aux relations avec les médias »
   Texte fourni par l'hôpital le 3 sept. 2026. Même gabarit que Lutte contre la
   maltraitance : cartes `.sej-card` pleine largeur, puis une grille de deux
   colonnes pour les cinq rubriques (la cinquième prend toute la largeur).
   ============================================================ */
.mcl-page .med-section{display:flex; flex-direction:column; gap:20px}
.mcl-page .med-carte{border-radius:18px; padding:26px 28px 28px}
.mcl-page .med-section h2{
  font-family:var(--macl-titre); font-weight:600; font-size:1.375rem;
  line-height:1.25; margin:0 0 6px; color:var(--navy-800);
}
.mcl-page .med-section h3{
  font-family:var(--macl-titre); font-weight:600; font-size:1.125rem;
  line-height:1.3; margin:0 0 6px; color:var(--navy-800);
}
.mcl-page .med-section p{margin:0; font-size:0.96875rem; line-height:1.62; color:var(--ink-soft); max-width:78ch}
.mcl-page .med-section p + p{margin-top:14px}
.mcl-page .med-section ul{list-style:none; padding:0; margin:6px 0 0; display:flex; flex-direction:column; gap:10px}
.mcl-page .med-section li{
  position:relative; padding-left:18px;
  font-size:0.9375rem; line-height:1.55; color:var(--ink-soft);
}
.mcl-page .med-section li::before{content:"\2014"; position:absolute; left:0; color:var(--magenta-500)}
.mcl-page .med-grid{display:grid !important; grid-template-columns:1fr 1fr; gap:20px; align-items:stretch}
.mcl-page .med-grid > :last-child:nth-child(odd){grid-column:1 / -1}
.mcl-page .med-contact{background:var(--magenta-100); border-color:transparent}
.mcl-page .med-contact .med-contact-n{font-family:var(--macl-titre); font-weight:600; color:var(--navy-800)}
@media (max-width:900px){
  .mcl-page .med-grid{grid-template-columns:1fr}
}
@media (max-width:400px){
  .mcl-page .med-carte{padding:20px 18px 22px}
}
/* Médias : sans phrase d'introduction sous le titre (retirée à la demande de
   Raz, 24 oct.), les cartes remontent tout près du H1. */
.mcl-page .soins-hero:has(+ .med-section){padding-bottom:24px}
.mcl-page .sej-section.med-section{padding-top:0}
/* Devenir bénévole : le numéro du ou de la responsable des bénévoles (lien tel:)
   doit se distinguer du texte du chapô, pas seulement par la couleur. */
.mcl-page .bnv-hero .sh-lede a{font-weight:600; color:var(--navy-800); text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px}
.mcl-page .bnv-hero .sh-lede a:hover{color:var(--magenta-500)}

/* ==========================================================================
   CANDIDATURE REÇUE (#546) — 25 oct. 2026
   Les deux liens de « Poursuivre » mènent à des pages, pas à des PDF : on retire
   l'étiquette « PDF » que la liste de documents pose sur chaque lien.
   ========================================================================== */
.elementor-546 .doc-list .elementor-button::before{content:none; display:none}
/* PAGE 404 (25 oct.) : son contenu Elementor porte déjà le décalage de la barre
   latérale (.mcl-page) ; le body ne doit pas l'ajouter une seconde fois
   (même remise à zéro que body.single-macl_offre). */
body.error404{padding-left:0 !important; padding-right:0 !important}

/* 25 oct. : titre de page en deux lignes dans un seul H1 (2e ligne = span.hmc-l2) */
.hmc-h1 .elementor-heading-title .hmc-l2{display:block;margin-top:4px;color:var(--teal-700,#2E7A47);font-style:italic;font-weight:600}

/* 25 oct. : lien « Lire le document complet » sous le résumé d'un communiqué */
.ext-page .ext-com p.ext-com-lien{margin-top:2px}
.ext-page .ext-com-lien a{font-weight:700; color:var(--teal-700,#2E7A47); text-decoration:underline; text-underline-offset:3px}
.ext-page .ext-com-lien a:hover,.ext-page .ext-com-lien a:focus-visible{color:var(--navy-800,#14283A)}
.ext-page .ext-com--fort .ext-com-lien a{color:#fff}
