/* =============================================================
   Page d'accueil — feuille reprise de la maquette.
   Deux écarts volontaires avec l'export :
     — les polices (Sora, DM Sans, Dancing Script) sont servies
       depuis ce site, la CSP interdisant les feuilles externes ;
     — un bloc d'adaptation aux petits écrans est ajouté à la fin,
       la maquette étant dessinée en 1440 px.
   ============================================================= */

/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/dmsans-3afd64dc.woff2") 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/dmsans-5e8eabad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/dmsans-3afd64dc.woff2") 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/dmsans-5e8eabad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/dmsans-3afd64dc.woff2") 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/dmsans-5e8eabad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/dmsans-3afd64dc.woff2") 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/dmsans-5e8eabad.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/sora-latin.woff2") 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/dmsans-4276ec1d.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/sora-latin.woff2") 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/dmsans-4276ec1d.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/sora-latin.woff2") 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Sora';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/dmsans-4276ec1d.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dancingscript-3.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dancingscript-2.woff2) 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/dancingscript-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/dancingscript-3.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/dancingscript-2.woff2) 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/dancingscript-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/dancingscript-3.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/dancingscript-2.woff2) 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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/dancingscript-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


body{margin:0;background:#FAF9F7}
html{scroll-padding-top:84px;scroll-behavior:smooth}
a{color:#141A36}a:hover{color:#0E1228}
input[type=number]::-webkit-inner-spin-button{opacity:.4}
details summary{cursor:pointer;list-style:none}
details summary::-webkit-details-marker{display:none}
button{cursor:pointer}
.wm-gain{background:linear-gradient(90deg,#C2A05A,#8E6FAE,#8E6FAE,#8E6FAE,#C2A05A);background-size:200% 100%;animation:wmShimmer 5s linear infinite}
@keyframes wmShimmer{from{background-position:0% 0}to{background-position:200% 0}}
@media (prefers-reduced-motion: reduce){.wm-gain{animation:none}}
.wm-green{background:linear-gradient(90deg,#AEC8B5,#65896E,#65896E,#65896E,#AEC8B5);background-size:200% 100%;animation:wmShimmer 5s linear infinite}
@media (prefers-reduced-motion: reduce){.wm-green{animation:none}}
.wm-gap{background:repeating-linear-gradient(135deg,#8A3F6C 0 6px,#8A3F6C 6px 12px);animation:wmBlink 1.2s ease-in-out infinite;box-shadow:0 0 10px rgba(255,90,78,.55)}
@keyframes wmBlink{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion: reduce){.wm-gap{animation:none}}
.wm-track{animation:wmMarquee 90s linear infinite}
.wm-marquee:hover .wm-track{animation-play-state:paused}
@keyframes wmMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){.wm-track{animation:none;flex-wrap:wrap;width:auto}}
.wm-neon{animation:wmNeon 1.8s ease-in-out infinite}
@keyframes wmNeon{0%,100%{filter:brightness(1)}50%{filter:brightness(1.18) saturate(1.15)}}
@media (prefers-reduced-motion: reduce){.wm-neon{animation:none}}
.qa-chip:focus-visible{outline:3px solid #8E6FAE;outline-offset:2px}
@media (max-width: 720px){
.qa-orbit{aspect-ratio:auto !important;display:flex !important;flex-direction:column;gap:14px}
.qa-orbit>svg{display:none}
.qa-chip{position:static !important;transform:none !important;width:100% !important}
.qa-core{position:relative !important;inset:auto !important;order:-1;border-radius:24px !important;padding:28px 22px !important;min-height:300px}
.qa-core>svg{display:none}
}
.wm-bulb{animation:wmBulb 3.2s ease-in-out infinite}
@keyframes wmBulb{0%,100%{box-shadow:0 0 0 4px #F9F3E5,0 8px 20px rgba(194,160,90,.35)}50%{box-shadow:0 0 0 7px #F9F3E5,0 8px 30px rgba(194,160,90,.6)}}
@media (prefers-reduced-motion: reduce){.wm-bulb{animation:none}}
.wm-range{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:999px;outline:none;margin:12px 0;cursor:pointer}
.wm-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:#FFFFFF;border:3px solid #8E6FAE;box-shadow:0 1px 4px rgba(20,26,54,.2)}
.wm-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#FFFFFF;border:3px solid #8E6FAE;box-shadow:0 1px 4px rgba(20,26,54,.2)}
.wm-range:focus-visible::-webkit-slider-thumb{outline:3px solid #5077C9;outline-offset:2px}
.wm-range:focus-visible::-moz-range-thumb{outline:3px solid #5077C9;outline-offset:2px}


/* =====================================================================
   Adaptation aux petits écrans
   =====================================================================
   La maquette est dessinée en 1440 px. Ses dimensions sont écrites en
   attribut de style : on ne peut les reprendre qu'ici, et avec
   « important ». Rien d'autre n'est modifié.

   1. Les grilles. « minmax(340px, 1fr) » impose une colonne de 340 px
      même quand l'écran n'en offre que 280. Remplacer le minimum par
      min(100%, 340px) laisse la colonne occuper toute la largeur quand
      elle ne tient pas, et ne change rien ailleurs. */
@media (max-width:1024px){
  [data-accueil] [style*="minmax(140px"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))!important}
  [data-accueil] [style*="minmax(150px"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))!important}
  [data-accueil] [style*="minmax(170px"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))!important}
  [data-accueil] [style*="minmax(190px"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))!important}
  [data-accueil] [style*="minmax(230px"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))!important}
  [data-accueil] [style*="minmax(240px"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important}
  [data-accueil] [style*="minmax(280px"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))!important}
  [data-accueil] [style*="minmax(300px"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))!important}
  [data-accueil] [style*="minmax(320px"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))!important}
  [data-accueil] [style*="minmax(340px"]{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))!important}
}
@media (max-width:560px){
  [data-accueil] [style*="repeat(2, minmax(0, 1fr))"],
  [data-accueil] [style*="repeat(3, minmax(0, 1fr))"]{grid-template-columns:1fr!important}
}

/* 2. Les marges intérieures. 32 et 48 px de chaque côté ne laissaient
      que 215 px de contenu sur un écran de 375. */
@media (max-width:760px){
  [data-accueil] [style*="padding: 88px 32px"]{padding:56px 20px!important}
  [data-accueil] [style*="padding: 64px 48px"]{padding:32px 20px!important}
  [data-accueil] [style*="padding: 40px 32px"]{padding:28px 20px!important}
  [data-accueil] [style*="padding: 32px"]{padding-left:20px!important;padding-right:20px!important}

  /* Un enfant de boîte flexible qui refuse de rétrécir pousse la page. */
  [data-accueil] [style*="display: flex"] > *,
  [data-accueil] [style*="display: grid"] > *{min-width:0}

  /* Empilées, les cartes n'ont plus besoin d'une hauteur commune :
     celle-ci ne sert qu'à aligner la grille à trois colonnes. */
  [data-accueil] [style*="min-height: 220px"]{min-height:0!important}
}

/* 3. Confort tactile. 24 px est le plancher de la norme WCAG 2.5.8 ; au
      doigt, le minimum confortable est 44. Les liens et boutons posés au
      milieu d'une phrase en sont dispensés : les agrandir disloquerait
      le texte. On ne touche donc qu'aux cibles autonomes. */
@media (max-width:900px){
  [data-accueil] div[style*="position: sticky"] > nav a,
  [data-accueil] footer a,
  [data-accueil] [style*="display: flex"] > a{min-height:44px!important;display:inline-flex!important;align-items:center}
  [data-accueil] button[style*="min-height: 34px"],
  [data-accueil] button[style*="min-height: 40px"]{min-height:44px!important}
  [data-accueil] [style*="font-size: 11px"]{font-size:12px!important}
}

/* La piste du curseur garde ses 8 px ; c'est la surface attrapable qui
   passe à 44, le dégradé de fond restant confiné à la boîte de contenu. */
@media (max-width:900px){
  .wm-range{height:44px!important;padding-block:18px!important;
            box-sizing:border-box!important;background-clip:content-box!important;margin:2px 0!important}
}

/* La règle de taille de cible ne dépend pas de la largeur de l'écran :
   24 px est un plancher, souris comprise.

   On pose seulement une hauteur minimale, jamais un « display » : un lien
   inline au fil d'une phrase l'ignore (ce qui est le comportement voulu,
   il en est dispensé), et un lien qui enveloppe une carte entière garde
   sa mise en page. */
[data-accueil] a{min-height:24px}
[data-accueil] div[style*="position: sticky"] > nav a,
[data-accueil] footer a{display:inline-flex;align-items:center}

/* Le curseur : piste de 8 px, mais surface attrapable d'au moins 24 px
   partout, 44 au doigt. Le dégradé de fond reste confiné à la boîte de
   contenu, donc la piste ne s'épaissit pas. */
.wm-range{height:24px;padding-block:8px;box-sizing:border-box;background-clip:content-box}

/* 4. Les images ne débordent jamais de leur colonne. */
[data-accueil] img{max-width:100%;height:auto}

/* =====================================================================
   Barre de navigation et menu mobile
   ===================================================================== */

/* Au-delà du téléphone : les liens s'affichent, le hamburger et l'icône
   de rendez-vous disparaissent. */
.nav-liens{display:contents}
.nav-actions{display:contents}
.nav-burger{display:none}
/* La règle « … > nav a » du confort tactile impose un
   display : il faut la même spécificité pour masquer ce lien. */
[data-accueil] div[style*="position: sticky"] > nav a.nav-rdv-mini{display:none}

@media (max-width:860px){
  /* La pilule tient sur une ligne : rendez-vous à gauche, hamburger à
     droite, logo au centre. Le logo est posé en absolu plutôt qu'en
     élément de la rangée : il reste ainsi exactement centré quelle que
     soit la largeur des deux commandes qui l'encadrent. */
  [data-accueil] div[style*="position: sticky"] > nav{position:relative;flex-wrap:nowrap!important;
    justify-content:space-between!important;align-items:center!important;
    gap:8px!important;padding:6px 10px!important;width:100%;max-width:520px;
    /* « box-sizing » explicite : sans lui la hauteur minimale s'ajoute au
       rembourrage et à la bordure, et la pilule grandit assez pour
       contenir le logo — qui ne déborde alors plus de rien. */
    box-sizing:border-box;min-height:58px;height:58px;overflow:visible}
  [data-accueil] div[style*="position: sticky"] > nav a.nav-logo{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    margin:0!important;min-height:0!important;
  }
  /* Le logo déborde volontairement de la pilule, en haut comme en bas. */
  [data-accueil] div[style*="position: sticky"] > nav a.nav-logo svg{width:72px;height:72px}
  [data-accueil] div[style*="position: sticky"] > nav a.nav-rdv-mini{order:1}
  .nav-burger{order:3}
  .nav-liens{display:none}
  /* Spécificité volontairement haute : la règle de confort tactile vise
     « … > nav a » et l'emporterait sinon, « important » ou pas.
     Le bouton long ne vit que dans le panneau déplié. */
  [data-accueil] div[style*="position: sticky"] > nav a.nav-rdv{display:none!important}
  .nav-actions{display:contents}

  .nav-burger{
    display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
    width:44px;height:44px;padding:0 11px;cursor:pointer;
    background:transparent;border:0;border-radius:12px;
  }
  .nav-burger:hover{background:rgba(255,255,255,.08)}
  .nav-burger__trait{
    display:block;height:2px;width:100%;border-radius:2px;background:#FFFFFF;
    transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .2s ease;
  }
  /* Le hamburger se plie en croix : les deux traits extrêmes se rejoignent
     au centre et pivotent, celui du milieu s'efface. */
  .nav-burger[aria-expanded="true"] .nav-burger__trait:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-burger[aria-expanded="true"] .nav-burger__trait:nth-child(2){opacity:0;transform:scaleX(.4)}
  .nav-burger[aria-expanded="true"] .nav-burger__trait:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  /* L'icône de rendez-vous reprend exactement le gabarit du logo : même
     diamètre, même anneau blanc. La zone touchable est portée à 44 px par
     un calque transparent, sans grossir le disque. */
  [data-accueil] div[style*="position: sticky"] > nav a.nav-rdv-mini{
    display:inline-flex!important;align-items:center;justify-content:center;
    width:38px;height:38px;min-height:38px!important;flex-shrink:0;box-sizing:border-box;
    border-radius:50%;background:transparent;color:#FFFFFF;
    border:1.5px solid rgba(255,255,255,.92);text-decoration:none;position:relative;
  }
  [data-accueil] div[style*="position: sticky"] > nav a.nav-rdv-mini::after{
    content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;
    transform:translate(-50%,-50%);
  }
  [data-accueil] div[style*="position: sticky"] > nav a.nav-rdv-mini:hover{background:rgba(255,255,255,.12)}
}


/* =====================================================================
   Transition vers la FAQ
   =====================================================================
   Le bloc des questions n'est pas une section à part : il vit à la fin
   de « Comment ça marche ». Rien ne séparait donc les deux. On lui donne
   un filet, de l'air, et une teinte de fond légèrement distincte pour
   qu'on sente le changement de sujet. */
[data-accueil] #questions{
  margin-top:72px;
  padding:64px 24px 8px;
  border-top:1px solid #E1E3EC;
  position:relative;
}
/* Une pastille posée sur le filet marque la couture. */
[data-accueil] #questions::before{
  content:"";position:absolute;top:-5px;left:50%;transform:translateX(-50%);
  width:56px;height:9px;border-radius:99px;
  background:linear-gradient(90deg,#8DAED9,#BA9AC3 45%,#DBC18F);
}
@media (max-width:760px){
  [data-accueil] #questions{margin-top:48px;padding:44px 0 4px}
}

/* =====================================================================
   L'encart de contact sur grand écran
   =====================================================================
   La grille de l'export est « repeat(auto-fit, minmax(300px, 1fr)) » :
   elle fabrique autant de colonnes que d'enfants. Depuis le retrait de
   l'ancienne carte « Prendre rendez-vous », il ne reste que le texte
   d'introduction comme enfant de largeur normale — les deux suivants
   (module de rendez-vous, bandeau des villes) s'étendent déjà sur toute
   la largeur. Une seule colonne, donc, sinon le texte se retrouve
   comprimé à gauche d'un vide. */
@media (min-width:900px){
  [data-accueil] #contact > div{
    grid-template-columns:minmax(0,1fr)!important;
    align-items:start!important;
    gap:30px!important;
  }
  /* Le chapeau ne doit pas courir sur toute la largeur de l'encart :
     une ligne de texte de 1 100 px est pénible à lire. */
  [data-accueil] #contact > div > div:first-child{max-width:68ch}
}

/* ---------------------------------------------------------------------
   Le panneau mobile
   ---------------------------------------------------------------------
   Plein écran, ouvert par un cercle qui se déploie depuis le hamburger.
   Les entrées sont numérotées et portent une ligne d'explication : on
   lit un sommaire, pas une liste de liens. */
.menu-mobile{
  display:none;
  position:fixed;inset:0;z-index:60;
  padding:88px 22px 28px;
  color:#FFFFFF;
  /* Le cercle part du hamburger, en haut à droite. */
  clip-path:circle(0% at calc(100% - 92px) 46px);
  transition:clip-path .62s cubic-bezier(.76,0,.24,1);
  pointer-events:none;
  overflow-y:auto;
}
.menu-mobile.est-ouvert{clip-path:circle(142% at calc(100% - 92px) 46px);pointer-events:auto}
@media (max-width:860px){ .menu-mobile{display:flex;flex-direction:column;gap:26px} }

/* Le fond : le bleu nuit de la charte, réchauffé par les mêmes halos que
   la page, pour que le menu appartienne au même monde. */
.mm-fond{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(760px 420px at 100% 0%, rgba(141,174,217,.22), transparent 62%),
    radial-gradient(620px 460px at 0% 100%, rgba(186,154,195,.20), transparent 60%),
    #11162E;
}

/* ------------------------------- Entrées ----------------------------- */
.mm-liens{display:flex;flex-direction:column;align-items:stretch}
/* Le conteneur des entrées est lui-même un <nav> : la règle de confort
   tactile « … > nav a » leur imposait « inline-flex », chaque
   entrée se dimensionnait alors à son contenu et rien ne s'alignait.
   On rétablit une rangée pleine largeur, calée à gauche. */
[data-accueil] .mm-liens a{display:flex!important;width:100%;justify-content:flex-start;text-align:left}
.mm-liens a{
  display:flex;align-items:center;gap:16px;
  padding:19px 4px;text-decoration:none;color:#FFFFFF;
  border-bottom:1px solid rgba(255,255,255,.10);
  opacity:0;transform:translateX(-16px);
  transition:opacity .42s ease,transform .52s cubic-bezier(.22,1,.36,1);
}
.menu-mobile.est-ouvert .mm-liens a{opacity:1;transform:none}
.menu-mobile.est-ouvert .mm-liens a:nth-child(1){transition-delay:.16s}
.menu-mobile.est-ouvert .mm-liens a:nth-child(2){transition-delay:.23s}
.menu-mobile.est-ouvert .mm-liens a:nth-child(3){transition-delay:.30s}
.menu-mobile.est-ouvert .mm-liens a:nth-child(4){transition-delay:.37s}

.mm-num{
  flex:0 0 auto;width:30px;
  font-family:'Sora','Segoe UI',sans-serif;font-size:12px;font-weight:700;letter-spacing:.08em;
  /* Le dégradé de la charte, appliqué au seul numéro. */
  background:linear-gradient(135deg,#8DAED9,#BA9AC3 45%,#DBC18F);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  padding-top:5px;align-self:flex-start;
}
.mm-txt{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}
.mm-titre{font-family:'Sora','Segoe UI',sans-serif;font-size:25px;font-weight:600;line-height:1.15;letter-spacing:-.01em}
.mm-sous{font-size:13.5px;color:#9AA3C4;line-height:1.35}
.mm-fleche{flex:0 0 auto;margin-left:auto;color:rgba(255,255,255,.34);transition:transform .25s ease,color .25s ease}
.mm-liens a:hover .mm-fleche,
.mm-liens a:focus-visible .mm-fleche{transform:translateX(5px);color:#DBC18F}

/* -------------------------------- Pied ------------------------------- */
.mm-pied{
  margin-top:auto;display:flex;flex-direction:column;gap:12px;
  opacity:0;transform:translateY(12px);
  transition:opacity .4s ease .44s,transform .5s cubic-bezier(.22,1,.36,1) .44s;
}
.menu-mobile.est-ouvert .mm-pied{opacity:1;transform:none}
/* Spécificité relevée : la règle générique « [data-accueil] a » fixe un
   minimum de 24 px et l'emporterait sur une simple classe. */
[data-accueil] .mm-pied a.mm-rdv{
  display:flex;align-items:center;justify-content:center;gap:10px;
  min-height:56px!important;border-radius:16px;text-decoration:none;
  font-family:'Sora','Segoe UI',sans-serif;font-size:16px;font-weight:700;
  color:#1B1033;
  background:linear-gradient(100deg,#9CBCE4,#C7A8D0 42%,#E3CB9B);
  box-shadow:0 14px 34px rgba(141,174,217,.26);
}
[data-accueil] .mm-pied a.mm-rdv:active{transform:translateY(1px)}
.mm-note{margin:0;text-align:center;font-size:12.5px;color:#8891B4;line-height:1.45}

/* Le voile n'a plus lieu d'être : le panneau couvre tout l'écran. */
.menu-voile{display:none}

@media (prefers-reduced-motion:reduce){
  .menu-mobile{transition:none!important;clip-path:none!important;opacity:0}
  .menu-mobile.est-ouvert{opacity:1}
  .mm-liens a,.mm-pied,.mm-fleche,.nav-burger__trait{transition:none!important}
}


/* La pilule reste au-dessus du panneau : le hamburger, devenu croix, est
   le seul geste de fermeture visible. Sans cela, le menu plein écran
   recouvrirait son propre bouton. */
@media (max-width:860px){
  [data-accueil] [style*="z-index: 40"]{z-index:70!important}
}

/* Menu ouvert : la pilule se détache du panneau, sans quoi son bleu nuit
   se confondrait avec le fond et la croix de fermeture disparaîtrait. */
@media (max-width:860px){
  body.menu-ouvert [data-accueil] div[style*="position: sticky"] > nav{
    background:rgba(255,255,255,.10)!important;
    border-color:rgba(255,255,255,.26)!important;
    box-shadow:0 10px 30px rgba(0,0,0,.35)!important;
  }
  body.menu-ouvert [data-accueil] div[style*="position: sticky"] > nav a.nav-rdv-mini{
    border-color:rgba(255,255,255,.55);
  }
}

/* =====================================================================
   Rien ne doit passer sous la barre fixe
   =====================================================================
   1. Les fenêtres de simulateur sont en z-index 50, la pilule collante à
      70 sur mobile : la barre recouvrait le haut des fenêtres. On les
      remonte au-dessus de tout. L'ordre voulu, du fond vers l'avant :
      page, panneau du menu (60), pilule (70), fenêtres (90). */
[data-accueil] [style*="z-index: 50"]{z-index:90!important}

/* 2. Une ancre atteinte par le menu s'arrêtait sous la pilule. On réserve
      sa hauteur au-dessus de chaque cible. */
[data-accueil] [id]{scroll-margin-top:84px}
@media (max-width:860px){
  [data-accueil] [id]{scroll-margin-top:96px}
}

/* ==================================================================== *
 *  MODULE RDV — parcours guidé (markup inséré à la main, assets/js/rdv.js)
 *  Posé sur le fond sombre #141A36 de la section contact.
 * ==================================================================== */

[data-accueil] .rdv-bloc{
  grid-column:1 / -1;
  margin:0;
  padding:26px 26px 24px;
  border-radius:24px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.14);
  box-sizing:border-box;
}
[data-accueil] .rdv-chapeau{
  margin:0 0 14px;
  font-size:14px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:#D5D8E6;
}
[data-accueil] .rdv-titre{
  margin:0 0 8px;
  font-family:'Sora','Segoe UI',sans-serif;
  font-size:clamp(22px,2.4vw,28px);line-height:1.2;letter-spacing:-.015em;
  color:#FFFFFF;
}
[data-accueil] .rdv-titre:focus-visible{outline:2px solid #BA9AC3;outline-offset:4px;border-radius:6px}
[data-accueil] .rdv-sous{margin:0 0 18px;font-size:16.5px;line-height:1.55;color:#C9CDDE;max-width:62ch}

/* --- fil des étapes --- */
[data-accueil] .rdv-pas{display:flex;align-items:center;gap:7px;margin:0 0 16px}
[data-accueil] .rdv-pastille{
  width:9px;height:9px;border-radius:50%;
  background:rgba(255,255,255,.22);transition:background .25s,transform .25s;
}
[data-accueil] .rdv-pastille.est-faite{background:#AEC8B5}
[data-accueil] .rdv-pastille.est-active{background:#DBC18F;transform:scale(1.35)}
[data-accueil] .rdv-pas-txt{margin-left:6px;font-size:12.5px;color:#9AA0BC;letter-spacing:.02em}

/* --- champs --- */
[data-accueil] .rdv-label{
  display:block;margin:0 0 7px;
  font-size:14.5px;font-weight:600;color:#E6E8F2;
}
[data-accueil] .rdv-champ{
  width:100%;box-sizing:border-box;
  min-height:52px;padding:13px 16px;
  font:inherit;font-size:16.5px;                 /* 16px mini : évite le zoom iOS */
  color:#141A36;background:#FFFFFF;
  border:1.5px solid transparent;border-radius:14px;
}
[data-accueil] .rdv-champ::placeholder{color:#8A90AC}
[data-accueil] .rdv-champ:focus-visible{outline:none;border-color:#DBC18F;box-shadow:0 0 0 4px rgba(219,193,143,.3)}
[data-accueil] .rdv-aide{margin:9px 0 0;font-size:13.5px;line-height:1.5;color:#9AA0BC}
[data-accueil] .rdv-aide a{color:#DBC18F}
[data-accueil] .rdv-erreur{
  margin:12px 0 0;padding:10px 13px;
  font-size:14.5px;font-weight:600;color:#2A1414;
  background:#F0C9C9;border-radius:12px;
}
[data-accueil] .rdv-duo{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* --- cartes de choix --- */
[data-accueil] .rdv-choix{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}
[data-accueil] .rdv-carte{
  display:flex;flex-direction:column;gap:6px;
  text-align:left;font:inherit;cursor:pointer;
  min-height:96px;padding:17px 18px;
  color:#FFFFFF;background:rgba(255,255,255,.07);
  border:1.5px solid rgba(255,255,255,.2);border-radius:18px;
  transition:background .2s,border-color .2s,transform .2s;
}
[data-accueil] .rdv-carte:hover{background:rgba(255,255,255,.12);border-color:#DBC18F;transform:translateY(-2px)}
[data-accueil] .rdv-carte-t{font-family:'Sora','Segoe UI',sans-serif;font-size:18px;font-weight:700}
[data-accueil] .rdv-carte-d{font-size:14.5px;line-height:1.45;color:#C2C7DA}

/* --- semaines --- */
[data-accueil] .rdv-semaines{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,218px),1fr));gap:12px;margin-bottom:22px}
[data-accueil] .rdv-semaine{
  display:flex;flex-direction:column;gap:3px;
  text-align:left;font:inherit;cursor:pointer;
  min-height:76px;padding:14px 16px;
  color:#FFFFFF;background:rgba(255,255,255,.06);
  border:1.5px solid rgba(255,255,255,.18);border-radius:16px;
  transition:background .2s,border-color .2s;
}
[data-accueil] .rdv-semaine:hover{background:rgba(255,255,255,.11);border-color:rgba(219,193,143,.6)}
[data-accueil] .rdv-semaine.est-choisie{background:rgba(219,193,143,.16);border-color:#DBC18F}
[data-accueil] .rdv-semaine-q{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#DBC18F}
[data-accueil] .rdv-semaine-d{font-size:15.5px;font-weight:600}
[data-accueil] .rdv-semaine-z{font-size:13px;color:#A9B0C9}

/* --- moments --- */
[data-accueil] .rdv-moments{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:4px}
[data-accueil] .rdv-moment{
  font:inherit;font-size:15px;cursor:pointer;
  min-height:44px;padding:10px 17px;
  color:#E6E8F2;background:rgba(255,255,255,.06);
  border:1.5px solid rgba(255,255,255,.18);border-radius:999px;
  transition:background .2s,border-color .2s,color .2s;
}
[data-accueil] .rdv-moment:hover{background:rgba(255,255,255,.12)}
[data-accueil] .rdv-moment.est-choisie{background:#DBC18F;border-color:#DBC18F;color:#141A36;font-weight:700}

/* --- récapitulatif --- */
[data-accueil] .rdv-recap{
  margin:20px 0 0;padding:15px 18px;
  background:rgba(174,200,181,.12);
  border:1px solid rgba(174,200,181,.4);border-radius:16px;
}
[data-accueil] .rdv-recap-t{margin:0 0 7px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#AEC8B5}
[data-accueil] .rdv-recap-l{margin:0;padding-left:19px;font-size:15.5px;line-height:1.6;color:#E6E8F2}

/* --- actions --- */
[data-accueil] .rdv-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:22px}
[data-accueil] .rdv-bloc .rdv-bouton{
  display:inline-flex;align-items:center;justify-content:center;
  font:inherit;font-size:16.5px;font-weight:700;cursor:pointer;text-decoration:none;
  min-height:54px;padding:15px 26px;border-radius:999px;border:1.5px solid transparent;
  transition:transform .2s,box-shadow .2s,background .2s;
}
[data-accueil] .rdv-bloc .rdv-primaire{background:#FFFFFF;color:#141A36}
[data-accueil] .rdv-bloc .rdv-primaire:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.28)}
[data-accueil] .rdv-bloc .rdv-second{background:transparent;color:#FFFFFF;border-color:rgba(255,255,255,.45)}
[data-accueil] .rdv-bloc .rdv-second:hover{background:rgba(255,255,255,.1)}
[data-accueil] .rdv-retour{
  font:inherit;font-size:15px;cursor:pointer;text-decoration:underline;
  min-height:44px;padding:10px 4px;
  color:#B6BCD2;background:none;border:0;
}
[data-accueil] .rdv-retour:hover{color:#FFFFFF}

/* --- aperçu du message --- */
[data-accueil] .rdv-canaux{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}
[data-accueil] .rdv-apercu{
  margin:0;padding:15px 17px;
  font-family:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  font-size:13.5px;line-height:1.6;color:#D5D8E6;
  white-space:pre-wrap;word-break:break-word;
  background:rgba(0,0,0,.26);border-radius:14px;
  max-height:220px;overflow:auto;
}
[data-accueil] .rdv-etat{margin:12px 0 0;font-size:14.5px;font-weight:600;color:#AEC8B5;min-height:1.2em}

/* --- téléphone --- */
@media (max-width:620px){
  [data-accueil] .rdv-bloc{padding:20px 17px 20px;border-radius:20px}
  [data-accueil] .rdv-duo{grid-template-columns:1fr}
  [data-accueil] .rdv-actions{flex-direction:row-reverse;justify-content:flex-end}
  [data-accueil] .rdv-bloc .rdv-bouton{width:100%}
  [data-accueil] .rdv-actions .rdv-retour{width:100%;text-align:center}
  [data-accueil] .rdv-canaux .rdv-bouton{width:100%}
}

@media (prefers-reduced-motion:reduce){
  [data-accueil] .rdv-carte,[data-accueil] .rdv-semaine,
  [data-accueil] .rdv-moment,[data-accueil] .rdv-bloc .rdv-bouton,
  [data-accueil] .rdv-pastille{transition:none}
  [data-accueil] .rdv-carte:hover,[data-accueil] .rdv-bloc .rdv-primaire:hover{transform:none}
}

/* --- RDV : secteurs d'intervention (texte en dur dans la source) --- */
[data-accueil] .rdv-zones{
  margin-top:26px;padding-top:22px;
  border-top:1px solid rgba(255,255,255,.14);
}
[data-accueil] .rdv-zones-t{
  margin:0 0 6px;
  font-family:'Sora','Segoe UI',sans-serif;font-size:17px;font-weight:700;color:#FFFFFF;
}
[data-accueil] .rdv-zones-s{margin:0 0 16px;font-size:14.5px;line-height:1.5;color:#9AA0BC}
[data-accueil] .rdv-zones-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:18px}
[data-accueil] .rdv-zone-c{
  padding:15px 17px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.1);border-radius:16px;
}
[data-accueil] .rdv-zone-n{
  margin:0 0 7px;
  font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#DBC18F;
}
[data-accueil] .rdv-zone-n span{color:#9AA0BC;font-weight:600}
[data-accueil] .rdv-zone-v{margin:0;font-size:14px;line-height:1.6;color:#B6BCD2}
[data-accueil] .rdv-zone-v b{color:#E6E8F2;font-weight:700}

/* ==================================================================== *
 *  PAGES LOCALES (gestion-de-patrimoine-toulouse.html / -agde.html)
 *  Elles réutilisent cette feuille, donc les polices déjà en cache, et
 *  le module de rendez-vous ci-dessus.
 * ==================================================================== */

[data-accueil] .loc-page{
  max-width:860px;margin:0 auto;padding:40px 24px 72px;
  font-family:'DM Sans','Segoe UI',system-ui,sans-serif;
  color:#2C3353;background:#FFFFFF;
  box-sizing:border-box;
}
[data-accueil] .loc-tete{margin-bottom:12px}
[data-accueil] .loc-fil{margin:0 0 20px;font-size:14px;color:#6B7193}
[data-accueil] .loc-fil a{color:#6B4C8C;text-decoration:none;border-bottom:1px solid rgba(107,76,140,.3)}
[data-accueil] .loc-fil a:hover{border-bottom-color:#6B4C8C}

[data-accueil] .loc-page h1{
  margin:0 0 18px;
  font-family:'Sora','Segoe UI',sans-serif;font-weight:700;
  font-size:clamp(30px,4.6vw,46px);line-height:1.12;letter-spacing:-.025em;
  color:#141A36;
}
[data-accueil] .loc-chapeau{margin:0 0 26px;font-size:19px;line-height:1.6;color:#454C70}

[data-accueil] .loc-cta{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 10px}
[data-accueil] .loc-page .loc-b1,[data-accueil] .loc-page .loc-b2{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:54px;padding:15px 26px;border-radius:999px;
  font-size:16.5px;font-weight:700;text-decoration:none;
  border:1.5px solid transparent;transition:transform .2s,box-shadow .2s,background .2s;
}
[data-accueil] .loc-page .loc-b1{background:#141A36;color:#FFFFFF}
[data-accueil] .loc-page .loc-b1:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(20,26,54,.25)}
[data-accueil] .loc-page .loc-b2{background:transparent;color:#141A36;border-color:#C9CDDE}
[data-accueil] .loc-page .loc-b2:hover{background:#F4F5F9}

[data-accueil] .loc-sec{margin-top:48px}
[data-accueil] .loc-sec h2{
  margin:0 0 14px;
  font-family:'Sora','Segoe UI',sans-serif;font-weight:700;
  font-size:clamp(23px,2.9vw,31px);line-height:1.2;letter-spacing:-.018em;
  color:#141A36;
}
[data-accueil] .loc-sec p{margin:0 0 14px;font-size:17.5px;line-height:1.68;color:#454C70}
[data-accueil] .loc-sec p:last-child{margin-bottom:0}
[data-accueil] .loc-sec a{color:#6B4C8C;font-weight:600}

[data-accueil] .loc-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px}
[data-accueil] .loc-carte{
  padding:21px 22px;
  background:#F8F8FB;border:1px solid #E4E6EF;border-radius:20px;
}
[data-accueil] .loc-carte h3{
  margin:0 0 8px;
  font-family:'Sora','Segoe UI',sans-serif;font-size:19px;font-weight:700;color:#141A36;
}
[data-accueil] .loc-carte p{margin:0;font-size:16px;line-height:1.6;color:#4B5276}
[data-accueil] .loc-carte .loc-lien{margin:12px 0 0;font-size:15.5px}

[data-accueil] .loc-communes{
  padding:17px 19px;
  font-size:16.5px;line-height:1.7;color:#454C70;
  background:#F1EAF7;border-radius:16px;
}

[data-accueil] .loc-faq{margin:0}
[data-accueil] .loc-faq dt{
  margin:22px 0 7px;
  font-family:'Sora','Segoe UI',sans-serif;font-size:18px;font-weight:700;color:#141A36;
}
[data-accueil] .loc-faq dt:first-child{margin-top:0}
[data-accueil] .loc-faq dd{margin:0;font-size:17px;line-height:1.65;color:#454C70}

/* Fond sombre pour accueillir le module de rendez-vous, qui est conçu
   pour être posé sur #141A36. */
[data-accueil] .loc-sombre{
  padding:30px 26px;
  background:#141A36;color:#FFFFFF;border-radius:26px;
}
[data-accueil] .loc-sombre .rdv-bloc{
  background:transparent;border:0;padding:0;
}

[data-accueil] .loc-pied{
  margin-top:56px;padding-top:26px;
  border-top:1px solid #E4E6EF;
  font-size:14.5px;line-height:1.65;color:#6B7193;
}
[data-accueil] .loc-pied p{margin:0 0 9px}
[data-accueil] .loc-pied a{color:#6B4C8C}
[data-accueil] .loc-avert{margin-top:16px;font-size:13px;line-height:1.6;color:#878DAB}

@media (max-width:620px){
  [data-accueil] .loc-page{padding:28px 17px 56px}
  [data-accueil] .loc-sombre{padding:22px 17px;border-radius:20px}
  [data-accueil] .loc-cta .loc-b1,[data-accueil] .loc-cta .loc-b2{width:100%}
  [data-accueil] .loc-sec{margin-top:38px}
}

@media (prefers-reduced-motion:reduce){
  [data-accueil] .loc-page .loc-b1,[data-accueil] .loc-page .loc-b2{transition:none}
  [data-accueil] .loc-page .loc-b1:hover{transform:none}
}

/* Plancher de 24 px sur les liens autonomes des pages locales (WCAG 2.5.8).
   Le fil d'Ariane est un lien dans une phrase, donc exempté, mais on le
   relève aussi : cela ne coûte rien et c'est plus confortable au doigt. */
[data-accueil] .loc-carte .loc-lien a,
[data-accueil] .loc-fil a{
  display:inline-flex;align-items:center;
  min-height:24px;
}

/* --- Pages des simulateurs : note sous l'appel à l'action et listes --- */
[data-accueil] .loc-note{margin:4px 0 0;font-size:14.5px;line-height:1.55;color:#6B7193}
[data-accueil] .loc-liste{margin:0 0 14px;padding-left:20px}
[data-accueil] .loc-liste li{margin-bottom:9px;font-size:17px;line-height:1.55}
[data-accueil] .loc-liste a{color:#6B4C8C;font-weight:600;display:inline-flex;align-items:center;min-height:24px}
[data-accueil] .loc-fil a + a{margin-left:0}

/* --- Pages d'articles : le corps est repris du panneau de l'accueil,
       dont les styles sont en ligne. On ne fait que le cadrer. --- */
[data-accueil] .art-corps{margin:0 0 8px}
[data-accueil] .art-corps article{max-width:none}
[data-accueil] .art-corps img{max-width:100%;height:auto}
[data-accueil] .art-ponts{
  padding:22px 24px;
  background:#F1EAF7;
  border:1px solid #DCC6E6;border-radius:20px;
}
[data-accueil] .art-ponts h2{font-size:clamp(21px,2.5vw,26px)}
[data-accueil] .art-ponts .loc-note{margin-top:4px}
@media (max-width:620px){
  [data-accueil] .art-ponts{padding:18px 17px;border-radius:16px}
}

/* --- Plan du site en pied de page (liens explorables vers les 18 pages) --- */
[data-accueil] .pied-plan{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));
  gap:26px;
  margin:0 0 26px;padding-bottom:24px;
  border-bottom:1px solid #E1E3EC;
}
[data-accueil] .pied-t{
  margin:0 0 10px;
  font-family:'Sora','Segoe UI',sans-serif;
  font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#141A36;
}
[data-accueil] .pied-l{margin:0;padding:0;list-style:none}
[data-accueil] .pied-l li{margin:0}
[data-accueil] .pied-plan .pied-l a{
  display:inline-flex;align-items:center;min-height:28px;
  font-size:14.5px;line-height:1.4;color:#545B7C;text-decoration:none;
}
[data-accueil] .pied-plan .pied-l a:hover{color:#6B4C8C;text-decoration:underline}

/* --- Coordonnées derrière un clic (assets/js/coordonnees.js) --- */
[data-accueil] .pied-co{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}
[data-accueil] .pied-co .co-voir,
[data-accueil] .pied-co .co-valeur{
  display:inline-flex;align-items:center;gap:7px;
  min-height:40px;padding:9px 16px;
  font:inherit;font-size:14.5px;font-weight:600;
  border-radius:999px;border:1.5px solid #D8DBE6;
  background:#FFFFFF;color:#141A36;text-decoration:none;cursor:pointer;
  transition:border-color .2s,background .2s;
}
[data-accueil] .pied-co .co-voir:hover{border-color:#8E6FAE;background:#F7F4FA}
[data-accueil] .pied-co .co-valeur{border-color:#8E6FAE;background:#F1EAF7;color:#4A2F63;cursor:text}
[data-accueil] .pied-co .co-valeur:hover{text-decoration:underline}

/* Sur fond sombre : fin du parcours de rendez-vous. */
[data-accueil] .rdv-aide .co-voir,
[data-accueil] .rdv-aide .co-valeur{
  display:inline-flex;align-items:center;
  min-height:24px;padding:0;
  font:inherit;font-size:inherit;font-weight:700;
  background:none;border:0;cursor:pointer;
  color:#DBC18F;text-decoration:underline;text-underline-offset:3px;
}
[data-accueil] .rdv-aide .co-voir:hover,
[data-accueil] .rdv-aide .co-valeur:hover{color:#FFFFFF}

/* Le bouton « Voir le numéro » des pages locales garde l'allure du
   bouton secondaire qu'il remplace. */
[data-accueil] .loc-page button.loc-b2{font:inherit;font-size:16.5px;font-weight:700;cursor:pointer}

/* =====================================================================
   FAQ en mobile : la réponse s'ouvre SOUS la question
   =====================================================================
   L'export place la carte de réponse avant les puces (« order: -1 » en
   ligne). Sur un téléphone, la liste est empilée : on descend jusqu'aux
   questions, on en touche une, et la réponse s'affiche au-dessus — hors
   écran. Il faut remonter pour la lire.

   On renumérote donc l'ordre d'affichage : chaque puce reçoit un rang
   pair, et la carte se glisse juste après celle qui est active, repérée
   par « aria-pressed ». Tout se joue en CSS, donc rien à réappliquer
   après un rendu de dc-mini.

   Sans « :has() », le navigateur garde la disposition d'origine : la
   réponse reste lisible, simplement au-dessus. */
@media (max-width:860px){
  [data-accueil] #questions > div > button:nth-of-type(1){order:2}
  [data-accueil] #questions > div > button:nth-of-type(2){order:4}
  [data-accueil] #questions > div > button:nth-of-type(3){order:6}
  [data-accueil] #questions > div > button:nth-of-type(4){order:8}
  [data-accueil] #questions > div > button:nth-of-type(5){order:10}
  [data-accueil] #questions > div > button:nth-of-type(6){order:12}
  [data-accueil] #questions > div > button:nth-of-type(7){order:14}
  [data-accueil] #questions > div > button:nth-of-type(8){order:16}

  [data-accueil] #questions > div:has(> button:nth-of-type(1)[aria-pressed="true"]) > div{order:3!important}
  [data-accueil] #questions > div:has(> button:nth-of-type(2)[aria-pressed="true"]) > div{order:5!important}
  [data-accueil] #questions > div:has(> button:nth-of-type(3)[aria-pressed="true"]) > div{order:7!important}
  [data-accueil] #questions > div:has(> button:nth-of-type(4)[aria-pressed="true"]) > div{order:9!important}
  [data-accueil] #questions > div:has(> button:nth-of-type(5)[aria-pressed="true"]) > div{order:11!important}
  [data-accueil] #questions > div:has(> button:nth-of-type(6)[aria-pressed="true"]) > div{order:13!important}
  [data-accueil] #questions > div:has(> button:nth-of-type(7)[aria-pressed="true"]) > div{order:15!important}
  [data-accueil] #questions > div:has(> button:nth-of-type(8)[aria-pressed="true"]) > div{order:17!important}

  /* Un peu d'air entre la question touchée et sa réponse. */
  [data-accueil] #questions > div > div{scroll-margin-top:96px}
}

/* --- Couvertures d'articles (tools/generer-couvertures-articles.py) --- */
[data-accueil] .art-couv{
  display:block;width:100%;height:auto;
  aspect-ratio:1200 / 630;object-fit:cover;
  margin:0 0 26px;border-radius:22px;
}
/* Dans la vignette de l'accueil, la couverture remplace le dégradé
   décoratif : même hauteur, recadrage au centre. */
[data-accueil] .art-vignette{
  display:block;width:100%;height:110px;
  object-fit:cover;flex:none;
}
@media (max-width:620px){
  [data-accueil] .art-couv{border-radius:16px;margin-bottom:20px}
}

/* --- Pages légales refondues sur le gabarit de la V2
       (tools/refondre-pages-legales.py) --- */
[data-accueil] .doc-legal h2{margin-top:40px}
[data-accueil] .doc-legal h3{
  margin:26px 0 8px;
  font-family:'Sora','Segoe UI',sans-serif;font-size:19px;font-weight:700;color:#141A36;
}
[data-accueil] .doc-legal ul,[data-accueil] .doc-legal ol{
  margin:0 0 16px;padding-left:22px;
  font-size:17px;line-height:1.7;color:#454C70;
}
[data-accueil] .doc-legal li{margin-bottom:8px}
[data-accueil] .doc-legal dl{margin:0 0 18px}
[data-accueil] .doc-legal dt{
  margin-top:14px;font-weight:700;color:#141A36;font-size:16.5px;
}
[data-accueil] .doc-legal dd{margin:3px 0 0;font-size:17px;line-height:1.65;color:#454C70}
[data-accueil] .doc-legal time{color:#6B7193}
[data-accueil] .doc-legal strong{color:#141A36}
/* Le sommaire du document. */
[data-accueil] .doc-legal nav{
  margin:0 0 34px;padding:20px 22px;
  background:#F8F8FB;border:1px solid #E4E6EF;border-radius:18px;
}
[data-accueil] .doc-legal nav ol,[data-accueil] .doc-legal nav ul{margin:0}
[data-accueil] .doc-legal nav a{
  display:inline-flex;align-items:center;min-height:26px;
  color:#6B4C8C;font-weight:600;
}
