/* Style TENDRE « Douceur » (maquette page blanche, 29/09/2026) — chargé après socle.css et les p-*.css.
   Pour la pédodontie, les familles et les patients anxieux : chaleureux, doux, rassurant, joyeux sans être enfantin.
   Typo : Fredoka (titres arrondis, 500–600) + Nunito (texte, 17 px). Couleurs : pastels tirés de la couleur du cabinet
   (toujours dans sa teinte), blanc cassé chaud, encre douce (jamais de noir), ombres colorées légères.
   Signatures : ciel pastel et bulles blanches en haut de page, photos en galets organiques bercés par des formes douces,
   vagues entre les sections, sur-titres en pastilles à trois bulles, mots clés surlignés au feutre pastel, soulignements
   en vaguelette, boutons pilule « pressés », étapes en bulles reliées par un chemin pointillé, questions en bulles,
   appel final en ciel bordé de formes rondes, pied de page « nuit douce » ourlé d'une vague.
   30/09/2026 (retours de Bertrand) : plus de nuages (bulles et formes rondes à la place, logo en galet) ; plus de violet :
   les pastels restent dans la teinte du cabinet (dégradés de cette teinte au lieu de la teinte voisine à +50°).
   05/10/2026 : --td-p3 aussi (plus de teinte voisine à −45°, rose avec un marron) : même teinte, plus soutenue que --td-p2.
   Alternance des pastilles : --ds-tint (claire), --td-p2 (moyenne), --td-p3 (soutenue).
   Bulles des étapes aussi (05/10/2026 au soir : la 1re était en --ds-tint-2, presque la teinte de la 2e).
   Mouvement : rebondi mais doux (léger dépassement), apparitions qui éclosent (échelle 0,955 → 1 + montée), décor qui
   flotte ou se berce lentement (transform uniquement), tout coupé si le visiteur réduit les animations. */
@font-face{font-family:'Fredoka';font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/Fredoka.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:200 1000;font-display:swap;src:url(../fonts/Nunito.woff2) format('woff2')}
/* Inter : seulement pour la surcouche DoctoClic des démos (dcx-), téléchargée uniquement si elle s'affiche */
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/Inter.woff2) format('woff2')}

/* ══ Jetons ══ */
:root{
  --ds-f-title:'Fredoka','Nunito',system-ui,sans-serif; --ds-f-body:'Nunito',system-ui,-apple-system,'Segoe UI',sans-serif; --ds-f-mono:'Nunito',system-ui,sans-serif;
  --ds-w-title:600; --ds-track:-.005em; --ds-stretch:100%;
  --ds-bg:#FFFBF6;
  /* repli sans « oklch(from …) » : mélanges simples */
  --ds-ink:color-mix(in srgb,var(--ds-accent) 32%,#1B1F2C);
  --ds-body:color-mix(in srgb,var(--ds-accent) 16%,#474C5B);
  --ds-mute:color-mix(in srgb,var(--ds-accent) 14%,#5A606F);
  --ds-surface:color-mix(in srgb,var(--ds-accent) 7%,#FFF7EF);
  --ds-tint:color-mix(in srgb,var(--ds-accent) 12%,#fff);
  --ds-tint-2:color-mix(in srgb,var(--ds-accent) 21%,#fff);
  --td-sky:color-mix(in srgb,var(--ds-accent) 14%,#F5F9FF);
  --td-p2:color-mix(in srgb,var(--ds-accent) 19%,#fff);
  --td-p3:color-mix(in srgb,var(--ds-accent) 30%,#fff);
  --td-nuit:color-mix(in srgb,var(--ds-accent) 60%,#141828);
  --td-press:color-mix(in srgb,var(--ds-accent) 64%,#0A0D18);
  --ds-accent-2:color-mix(in srgb,var(--ds-accent) 80%,#0E1120);
  --ds-rule:color-mix(in srgb,var(--ds-accent) 13%,transparent);
  --ds-rule-2:color-mix(in srgb,var(--ds-accent) 24%,transparent);
  --td-dot:color-mix(in srgb,var(--ds-accent) 55%,transparent);
  --td-bulle:color-mix(in srgb,var(--ds-accent) 45%,#fff);
  --ds-r:24px; --ds-r-s:16px; --ds-r-l:34px;
  --ds-shadow:0 1px 2px color-mix(in srgb,var(--ds-accent) 8%,transparent),0 16px 34px -22px color-mix(in srgb,var(--ds-accent) 42%,transparent);
  --ds-shadow-h:0 2px 5px color-mix(in srgb,var(--ds-accent) 10%,transparent),0 30px 54px -26px color-mix(in srgb,var(--ds-accent) 52%,transparent);
  --ds-ease:cubic-bezier(.34,1.32,.64,1); --td-doux:cubic-bezier(.22,.8,.3,1);
  --ds-rv-y:26px; --ds-rv-d:.8s;
  /* formes : galets pour les photos, taches pour le décor */
  --td-org:30% 18% 34% 22% / 24% 30% 22% 32%;
  --td-org-2:20% 34% 24% 32% / 30% 22% 34% 26%;
  --td-org-hero:40% 60% 46% 54% / 38% 42% 58% 62%;
  --td-blob:58% 42% 38% 62% / 52% 38% 62% 48%;
  --td-blob-2:42% 58% 62% 38% / 44% 60% 40% 56%;
  --td-surligne:var(--td-p2);
  --td-degrade:linear-gradient(150deg,var(--ds-tint-2) 0%,var(--td-sky) 100%);
  /* dessins (data URI) : bulles blanches, vague, vaguelette, coche */
  --td-bulles:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 50'%3E%3Cg fill='%23fff'%3E%3Ccircle cx='30' cy='27' r='22'/%3E%3Ccircle cx='70' cy='35' r='12' fill-opacity='.85'/%3E%3Ccircle cx='89' cy='14' r='6' fill-opacity='.7'/%3E%3C/g%3E%3C/svg%3E");
  --td-vague:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0h1440v26c-120 22-240 30-370 16S840 6 720 10 500 46 360 48 110 30 0 36z'/%3E%3C/svg%3E");
  --td-vaguelette:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 8' preserveAspectRatio='none'%3E%3Cpath d='M0 4Q5 0 10 4T20 4' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
  --td-coche:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
/* pastels « vrais » : même teinte que la couleur du cabinet, chroma dosé (jamais de teinte voisine) */
@supports (color:oklch(from red l c h)){
  :root{
    --ds-ink:oklch(from var(--ds-accent) .285 calc(c * .45 + .012) h);
    --ds-body:oklch(from var(--ds-accent) .445 calc(c * .24 + .008) h);
    --ds-mute:oklch(from var(--ds-accent) .5 calc(c * .2 + .006) h);
    --ds-surface:oklch(from var(--ds-accent) .972 calc(c * .2 + .005) h);
    --ds-tint:oklch(from var(--ds-accent) .942 calc(c * .34 + .008) h);
    --ds-tint-2:oklch(from var(--ds-accent) .895 calc(c * .5 + .01) h);
    --td-sky:oklch(from var(--ds-accent) .938 calc(c * .34 + .01) h);
    --td-p2:oklch(from var(--ds-accent) .905 calc(c * .42 + .012) h);
    --td-bulle:oklch(from var(--ds-accent) .8 calc(c * .6 + .03) h);
    --td-p3:oklch(from var(--ds-accent) .87 calc(c * .58 + .018) h);
    --td-nuit:oklch(from var(--ds-accent) .315 calc(c * .75 + .012) h);
    --td-press:oklch(from var(--ds-accent) calc(l * .7) c h);
  }
}
@media (max-width:767px){:root{--ds-rv-y:18px}}

/* ══ Base ══ */
body{font-size:17px;line-height:1.7}
.ds-sec{isolation:isolate;overflow-x:clip}
:focus-visible{outline:2.5px solid var(--ds-accent);outline-offset:3px}
::selection{background:var(--td-p2)}
.ds-h1{letter-spacing:-.012em;line-height:1.04}
.ds-h2{letter-spacing:-.008em;line-height:1.1}
.ds-h3{letter-spacing:-.005em}
.ds-lead{line-height:1.7}
.ds-small{font-size:14.5px}

/* mots clés surlignés au feutre pastel */
:is(.ds-h2,.ds-phero .ds-h1,.ds-a-grp-h h2) .ds-acc{background:linear-gradient(transparent 60%,var(--td-surligne) 60%,var(--td-surligne) 92%,transparent 92%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .05em;margin:0 -.05em}

/* sur-titres : pastille à trois bulles */
.ds-eb{gap:0;width:max-content;max-width:100%;padding:7px 15px 7px 12px;border-radius:999px;background:var(--ds-tint);color:var(--ds-ink);font:500 14.5px/1.25 var(--ds-f-title);letter-spacing:.01em;text-transform:none}
.ds-eb::before{content:"";flex:none;width:25px;height:9px;transform-origin:0 50%;transition:transform .7s var(--ds-ease) .25s;
  margin-right:10px;background:radial-gradient(circle 4.2px at 4.5px 4.5px,var(--ds-accent) 95%,transparent),radial-gradient(circle 3.5px at 13.5px 4.5px,color-mix(in srgb,var(--ds-accent) 55%,#fff) 95%,transparent),radial-gradient(circle 2.9px at 21.5px 4.5px,color-mix(in srgb,var(--ds-accent) 30%,#fff) 95%,transparent)}
.ds-hero .ds-eb,.ds-phero .ds-eb{background:rgba(255,255,255,.88)}
.ds-eb sup{align-self:flex-start;margin:-.1em 0 0 1px;font-size:.66em}
html.dsa .ds-eb.rv::before{transform:scale(.15)}
html.dsa .ds-eb.rv.vu::before{transform:none}

/* repères et libellés : plus de chasse fixe ni de capitales espacées, du Nunito franc */
.ds-k{font:500 14.5px/1.3 var(--ds-f-title);letter-spacing:.005em;text-transform:none;color:var(--ds-accent-2)}
:is(.ds-fact dt,.ds-sources b,.ds-maj,.ds-a-cles dt,.ds-b-eq h4 small,.ds-b-eq p b,.ds-b-carte dt,.ds-c-acces small,.ds-c-duo h3 small,.ds-d-cit cite,.ds-d-rac small,.ds-d-tpile td::before,.ds-d-coord-top small,.ds-d-coord-l small,.ds-d-delai small){font-family:var(--ds-f-body);font-weight:750;font-size:13px;letter-spacing:.01em;text-transform:none}
:is(.ds-mega-col h4,.ds-toc p,.ds-ftr h4,.ds-d-sommaire > span,.ds-a-grp-k){font-family:var(--ds-f-title);font-weight:500;font-size:14.5px;letter-spacing:.005em;text-transform:none}
.ds-d-tpile td::before{font-family:var(--ds-f-body);font-weight:750;font-size:13px;letter-spacing:.01em;text-transform:none}
.ds-a-schema text tspan.sa-k{font-weight:700;letter-spacing:.02em}

/* ══ Boutons (pilule qui s'enfonce), liens (vaguelette), pastilles ══ */
.ds-btn{--td-y:5px;min-height:52px;padding:14px 26px;border-radius:999px;font:500 16.5px/1.1 var(--ds-f-title);letter-spacing:.01em;transition:background-color .25s,color .25s,transform .22s var(--ds-ease),box-shadow .22s var(--ds-ease)}
.ds-btn:hover{--td-y:3px;transform:translateY(2px)}
.ds-btn:active{--td-y:0px;transform:translateY(5px);transition-duration:.08s}
.ds-btn--p,.ds-btn--p:hover{background:var(--ds-accent);color:#fff;box-shadow:0 var(--td-y) 0 var(--td-press),0 16px 26px -16px color-mix(in srgb,var(--ds-accent) 75%,transparent)}
.ds-btn--s,.ds-btn--s:hover{background:#fff;color:var(--ds-ink);box-shadow:inset 0 0 0 2px var(--ds-tint-2),0 var(--td-y) 0 var(--ds-tint-2)}
.ds-btn--s:hover{color:var(--ds-accent)}
.ds-btn--w,.ds-btn--w:hover{background:#fff;color:var(--ds-accent-2);box-shadow:0 var(--td-y) 0 color-mix(in srgb,#fff 40%,var(--ds-ink))}
.ds-btn--g,.ds-btn--g:hover{background:rgba(255,255,255,.08);color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.5),0 var(--td-y) 0 rgba(255,255,255,.18)}
.ds-btn--g:hover{background:rgba(255,255,255,.16)}
.ds-btn--sm{--td-y:4px;min-height:44px;padding:10px 18px;font-size:15px}
.ds-btns{gap:16px 18px}
.ds-link{font:500 16.5px/1.3 var(--ds-f-title);letter-spacing:.005em;padding:4px 0 8px}
.ds-link::after{bottom:3px;right:26px;height:7px;background:currentColor;opacity:.55;-webkit-mask:var(--td-vaguelette) repeat-x 0 50%/14px 7px;mask:var(--td-vaguelette) repeat-x 0 50%/14px 7px;transform:none;clip-path:inset(0 64% 0 0);transition:clip-path .55s var(--td-doux),opacity .3s}
.ds-link:hover::after,a.ds-card:hover .ds-link::after{transform:none;clip-path:inset(0);opacity:1}
.ds-chip{min-height:32px;padding:6px 14px 6px 12px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--ds-tint-2);font:700 13.5px/1.2 var(--ds-f-body)}
.ds-chip--acc{background:var(--ds-tint);box-shadow:none;color:var(--ds-accent-2)}
:is(.ds-hero,.ds-phero) .ds-chip--acc{background:var(--ds-tint-2)}
.ds-crumb{gap:6px 10px;font:700 13.5px/1.3 var(--ds-f-body);letter-spacing:0;text-transform:none}
.ds-crumb [aria-current]{color:var(--ds-ink)}
.ds-crumb .ds-sep{font-size:0;width:6px;height:6px;border-radius:50%;background:var(--ds-tint-2);opacity:1}

/* ══ En-tête ══ */
.ds-hdr{background:color-mix(in srgb,var(--ds-bg) 93%,transparent);border-bottom:0;box-shadow:0 1px 0 var(--ds-rule)}
html.ds-defile .ds-hdr{background:color-mix(in srgb,var(--ds-bg) 88%,transparent);box-shadow:0 1px 0 var(--ds-rule),0 14px 30px -22px color-mix(in srgb,var(--ds-accent) 45%,transparent)}
.ds-logo{gap:10px;font:600 21px/1.15 var(--ds-f-title);letter-spacing:0}
.ds-logo b{font-weight:600}
.ds-logo span{font-weight:500;color:var(--ds-accent)}
.ds-logo::before{width:26px;height:22px;border-radius:var(--td-blob);background:var(--ds-accent);box-shadow:none;transition:transform .6s var(--ds-ease)}
.ds-logo:hover::before{transform:translateX(3px) rotate(-8deg) scale(1.08)}
.ds-nav-t,.ds-nav-l{padding:0 13px;font:500 16px/1 var(--ds-f-title);letter-spacing:.005em;border-radius:999px}
.ds-nav-t::after,.ds-nav-l::after{left:13px;right:13px;bottom:4px;height:6px;border-radius:0;background:var(--ds-accent);-webkit-mask:var(--td-vaguelette) repeat-x 0 50%/12px 6px;mask:var(--td-vaguelette) repeat-x 0 50%/12px 6px;transform:none;clip-path:inset(0 100% 0 0);transition:clip-path .5s var(--td-doux)}
.ds-nav-t:hover::after,.ds-nav-l:hover::after,.ds-nav-l[aria-current]::after,.ds-nav-t[aria-current]::after,.ds-nav-i.is-open > .ds-nav-t::after{transform:none;clip-path:inset(0)}
.ds-mega{top:calc(100% + 12px);padding:24px 26px 26px;border:2px solid var(--ds-tint);border-radius:28px;box-shadow:0 34px 70px -34px color-mix(in srgb,var(--ds-accent) 55%,transparent);transform:translateY(-8px) scale(.97);transform-origin:50% 0}
.ds-mega-col h4{width:max-content;max-width:100%;margin:0 0 10px 6px;padding:5px 13px 6px;border:0;border-radius:999px;background:var(--ds-tint);color:var(--ds-ink);font-weight:600}
.ds-mega-col + .ds-mega-col::before{background:none;border-left:1.5px dashed var(--ds-rule-2)}
.ds-mega a{padding:9px 12px;border-radius:14px;font:650 15px/1.3 var(--ds-f-body);transition:background-color .2s,color .2s,translate .3s var(--ds-ease)}
.ds-mega a:hover{background:var(--ds-tint);color:var(--ds-ink);translate:4px 0}
.ds-mega .ds-mega-all{color:var(--ds-accent)}
.ds-urg{min-height:44px;padding:0 16px;border-radius:999px;background:var(--ds-tint);box-shadow:none;font:500 15px/1 var(--ds-f-title);letter-spacing:.01em}
.ds-urg:hover{background:var(--ds-tint-2);box-shadow:none;color:var(--ds-ink)}
.ds-hdr .ds-btn{--td-y:4px;min-height:44px;padding:11px 20px;font-size:15.5px}
.ds-burger{border-radius:50%;background:var(--ds-tint)}
.ds-prog{height:3px;bottom:-1px;border-radius:0 3px 3px 0;background:linear-gradient(90deg,var(--ds-accent),color-mix(in srgb,var(--ds-accent) 45%,#fff))}
@media (max-width:1120px){
  .ds-urg{padding:0 13px}
  .ds-mnav{background:var(--ds-bg);padding-top:16px}
  .ds-mnav details,.ds-mnav > a:not(.ds-btn){border-bottom:1.5px dashed var(--ds-rule-2)}
  .ds-mnav summary,.ds-mnav > a:not(.ds-btn){font:600 19px/1.2 var(--ds-f-title);letter-spacing:0}
  .ds-mnav details div{display:grid;gap:2px}
  .ds-mnav details a{border-left:0;border-radius:14px;padding:11px 14px;font-weight:650}
  .ds-mnav details a:hover{background:var(--ds-tint);color:var(--ds-ink)}
  .ds-mnav > a.ds-btn{left:20px;right:20px;bottom:24px;min-height:54px;font-size:17px}
}

/* ══ Ciel, bulles, vagues ══ */
/* vagues entre les sections colorées : le bord de la section ondule */
.ds-sec--alt{--td-sec-bg:var(--ds-surface)}
.ds-sec--alt::before,.ds-sec--alt::after{content:"";position:absolute;left:0;right:0;height:clamp(24px,3.4vw,50px);background:var(--ds-bg);-webkit-mask:var(--td-vague) 0 0/100% 100% no-repeat;mask:var(--td-vague) 0 0/100% 100% no-repeat;pointer-events:none}
.ds-sec--alt::before{top:-1px}
.ds-sec--alt::after{bottom:-1px;transform:scale(-1,-1)}
.ds-sec--alt + .ds-sec--alt::before,.ds-sec--alt:has(+ .ds-sec--alt)::after,.ds-phero + .ds-sec--alt::before{display:none}

/* ══ Héros de l'accueil : ciel pastel, photo en galet bercée, bulle d'infos qui flotte ══ */
.ds-hero{min-height:clamp(600px,calc(100svh - var(--ds-hdr-h)),820px);border-bottom:0;background:linear-gradient(180deg,var(--td-sky) 0%,color-mix(in srgb,var(--td-sky) 50%,var(--ds-bg)) 100%)}
.ds-hero::before{content:"";position:absolute;z-index:-1;inset:0 0 40px;pointer-events:none;background:var(--td-bulles) 3% 5%/150px auto no-repeat,var(--td-bulles) 43% 4%/88px auto no-repeat,var(--td-bulles) 38% 97%/124px auto no-repeat;opacity:.95;translate:calc(var(--td-mx,0) * -10px) 0;transition:translate 1.2s var(--td-doux)}
.ds-hero::after{content:"";position:absolute;z-index:2;left:0;right:0;bottom:-1px;height:clamp(28px,3.6vw,54px);background:var(--ds-bg);-webkit-mask:var(--td-vague) 0 0/100% 100% no-repeat;mask:var(--td-vague) 0 0/100% 100% no-repeat;transform:scaleY(-1);pointer-events:none}
.ds-hero-txt{position:relative;gap:26px}
.ds-hero-txt .ds-h1{font-size:clamp(2.8rem,1.3rem + 3.5vw,4.6rem);line-height:1.02;letter-spacing:-.012em}
.ds-hero .ds-h1 .ds-acc{position:relative;display:inline-block}
.ds-hero .ds-h1 .ds-acc::after{content:"";position:absolute;left:.02em;right:.02em;bottom:-.24em;height:.2em;background:color-mix(in srgb,var(--ds-accent) 70%,var(--td-p2));-webkit-mask:var(--td-vaguelette) repeat-x 0 50%/.6em 100%;mask:var(--td-vaguelette) repeat-x 0 50%/.6em 100%}
.ds-hero-txt::before{content:"";position:absolute;right:-10px;top:13%;width:130px;height:120px;pointer-events:none;
  background:radial-gradient(circle 15px at 22% 30%,var(--ds-tint-2) 96%,transparent),radial-gradient(circle 8px at 68% 16%,var(--td-bulle) 96%,transparent),radial-gradient(circle 5px at 56% 64%,var(--td-p2) 96%,transparent);
  translate:calc(var(--td-mx,0) * 16px) calc(var(--td-my,0) * 12px);transition:translate 1s var(--td-doux)}
.ds-hero-media{isolation:auto}
.ds-hero-media > img{inset:58px 70px 96px 14px;width:calc(100% - 84px);height:calc(100% - 154px);border-radius:var(--td-org-hero);box-shadow:0 40px 70px -42px color-mix(in srgb,var(--ds-accent) 60%,transparent)}
.ds-hero-media::before,.ds-hero-media::after{content:"";position:absolute;z-index:-1;pointer-events:none;transition:translate 1.1s var(--td-doux)}
.ds-hero-media::before{inset:30px 34px 60px -14px;border-radius:var(--td-blob);background:var(--td-degrade);translate:calc(var(--td-mx,0) * -14px) calc(var(--td-my,0) * -10px)}
.ds-hero-media::after{inset:40px 52px 74px -4px;border:3px dashed var(--td-dot);border-radius:var(--td-blob-2);translate:calc(var(--td-mx,0) * 20px) calc(var(--td-my,0) * 14px)}
.ds-fiche{left:-34px;bottom:44px;padding:20px 22px;gap:12px;border:0;border-radius:26px;background:rgba(255,255,255,.96);box-shadow:0 0 0 6px rgba(255,255,255,.55),0 30px 56px -30px color-mix(in srgb,var(--ds-accent) 58%,transparent)}
.ds-fiche::before{content:"";position:absolute;top:-9px;right:56px;width:22px;height:22px;border-radius:5px 0 5px 0;background:inherit;rotate:45deg}
.ds-fiche hr{border-top:1.5px dashed var(--ds-rule-2)}
.ds-fiche-l .ds-svg{color:var(--ds-accent)}
@media (max-width:1200px){.ds-hero-media > img{border-radius:var(--td-org)}}
@media (max-width:900px){
  .ds-hero{min-height:0}
  .ds-hero::before{inset:0;background:var(--td-bulles) 104% 36%/96px auto no-repeat}
  .ds-hero-txt{padding:40px 20px 30px}
  .ds-hero-txt::before{right:8px;top:18px;width:90px;height:80px}
  .ds-hero-media{padding:6px 20px 64px}
  .ds-hero-media > img{inset:auto;width:100%;height:auto;aspect-ratio:4/3.1;border-radius:var(--td-org)}
  .ds-hero-media::before{inset:-6px 6px 70px 30px}
  .ds-hero-media::after{inset:-2px 26px 76px 12px}
  .ds-fiche{left:auto;bottom:auto;margin:-46px 10px 0}
}

/* ══ Hauts de page : ciel, bulles, vague ══ */
.ds-phero{border-bottom:0;padding-bottom:clamp(84px,9vw,128px);background:linear-gradient(180deg,var(--td-sky) 0%,color-mix(in srgb,var(--td-sky) 45%,var(--ds-surface)) 100%)}
.ds-phero::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:var(--td-bulles) -3% 5%/140px auto no-repeat,var(--td-bulles) 50% 5%/80px auto no-repeat,var(--td-bulles) 97% 84%/116px auto no-repeat;translate:calc(var(--td-mx,0) * -10px) 0;transition:translate 1.2s var(--td-doux)}
.ds-phero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:clamp(26px,3.4vw,50px);background:var(--ds-bg);-webkit-mask:var(--td-vague) 0 0/100% 100% no-repeat;mask:var(--td-vague) 0 0/100% 100% no-repeat;transform:scaleY(-1);pointer-events:none}
.ds-phero:has(+ .ds-sec--alt)::after{background:var(--ds-surface)}
.ds-phero .ds-h1{font-size:clamp(2.5rem,1.3rem + 3vw,4.1rem)}
.ds-phero-media{isolation:auto}
.ds-phero-media img{border-radius:var(--td-org);box-shadow:0 34px 60px -38px color-mix(in srgb,var(--ds-accent) 60%,transparent)}
.ds-phero-media::before{content:"";position:absolute;z-index:-1;inset:8% -3.5% -6% 7%;border-radius:var(--td-blob);background:var(--td-degrade);pointer-events:none;translate:calc(var(--td-mx,0) * -12px) calc(var(--td-my,0) * -8px);transition:translate 1.1s var(--td-doux)}
.ds-phero--split .ds-wrap{position:relative}
.ds-phero--split .ds-wrap:has(> .ds-b-carte,> .ds-d-coord)::before{content:"";position:absolute;z-index:-1;top:12%;bottom:-6%;right:-3%;left:calc((100% - 64px) * .545 + 64px + 8%);border-radius:var(--td-blob);background:var(--td-degrade);pointer-events:none;translate:calc(var(--td-mx,0) * -12px) calc(var(--td-my,0) * -8px);transition:translate 1.1s var(--td-doux)}
.ds-phero-media::after{content:"";position:absolute;left:-26px;top:-22px;width:70px;height:60px;pointer-events:none;background:radial-gradient(circle 12px at 30% 40%,var(--ds-tint-2) 96%,transparent),radial-gradient(circle 6px at 78% 22%,var(--td-bulle) 96%,transparent);translate:calc(var(--td-mx,0) * 14px) calc(var(--td-my,0) * 10px);transition:translate 1s var(--td-doux)}
/* bulles de décor à droite des hauts de page sans photo */
.ds-phero:not(.ds-phero--split) .ds-wrap{position:relative}
.ds-phero:not(.ds-phero--split) .ds-wrap::after{content:"";position:absolute;z-index:-1;right:3%;top:-14px;width:250px;height:190px;pointer-events:none;background:var(--td-bulles) 8% 88%/150px auto no-repeat,radial-gradient(circle 58px at 62% 42%,color-mix(in srgb,var(--td-p2) 70%,#fff) 96%,transparent),radial-gradient(circle 76px at 62% 42%,rgba(255,255,255,.35) 96%,transparent),radial-gradient(circle 9px at 12% 16%,var(--ds-tint-2) 96%,transparent),radial-gradient(circle 6px at 94% 90%,var(--td-bulle) 96%,transparent);translate:calc(var(--td-mx,0) * 16px) calc(var(--td-my,0) * 12px);transition:translate 1s var(--td-doux)}
@media (max-width:900px){
  .ds-phero::before{background:var(--td-bulles) 112% 1%/96px auto no-repeat}
  .ds-phero--split .ds-wrap:has(> .ds-b-carte,> .ds-d-coord)::before{left:14%;right:-6%;top:auto;height:44%;bottom:-3%}
  .ds-phero-media::before{inset:6% -2% -5% 8%}
  .ds-phero-media::after{left:-8px;top:-18px}
  .ds-phero:not(.ds-phero--split) .ds-wrap::after{right:-40px;top:-30px;opacity:.8}
}
@media (max-width:640px){.ds-phero:not(.ds-phero--split) .ds-wrap::after{right:-18px;top:-44px;scale:.55;transform-origin:100% 0;opacity:1}}

/* ══ « Vous venez pour… » ══ */
.ds-besoins{gap:16px}
.ds-besoin{grid-template-columns:54px minmax(0,1fr) auto;padding:22px 22px 22px 20px;border:1.5px solid var(--ds-rule);border-radius:26px;box-shadow:var(--ds-shadow)}
.ds-besoin > b{font-size:18.5px;letter-spacing:0}
.ds-besoin .ds-ico,.ds-card .ds-ico{transition:background-color .35s,color .35s,transform .55s var(--ds-ease)}
a.ds-besoin:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--ds-accent) 28%,transparent)}
a.ds-besoin:hover .ds-ico,a.ds-card:hover .ds-ico{transform:rotate(-10deg) scale(1.07)}
.ds-besoin--urg{background:var(--ds-ink);border-color:var(--ds-ink)}
.ds-besoin--urg > span:not(.ds-ico){color:rgba(255,255,255,.8)}
a.ds-besoin--urg:hover .ds-ico{background:#fff;color:var(--ds-ink)}

/* ══ Pastilles d'icônes, cartes ══ */
.ds-ico{width:50px;height:50px;border-radius:50%;background:var(--ds-tint)}
:is(.ds-besoins,.ds-grid,.ds-c-liste,.ds-c-acces,.ds-d-non,.ds-a-signes) > :nth-child(3n+2) .ds-ico{background:var(--td-p2)}
:is(.ds-besoins,.ds-grid,.ds-c-liste,.ds-c-acces,.ds-d-non,.ds-a-signes) > :nth-child(3n) .ds-ico{background:var(--td-p3)}
.ds-besoins > .ds-besoin--urg .ds-ico{background:rgba(255,255,255,.13)}
.ds-card{isolation:isolate;border:1.5px solid var(--ds-rule);border-radius:var(--ds-r);box-shadow:var(--ds-shadow)}
.ds-card h3{font-size:20.5px;letter-spacing:0}
.ds-card p{font-size:15.5px}
.ds-card::before{left:auto;right:-38px;top:-38px;width:110px;height:110px;z-index:-1;border-radius:50%;background:var(--td-p3);opacity:.75;transform:scale(0);transform-origin:50% 50%;transition:transform .6s var(--ds-ease)}
a.ds-card:hover::before{transform:scale(1)}
a.ds-card:hover,.ds-card:has(> a.ds-cover:hover){transform:translateY(-6px);border-color:color-mix(in srgb,var(--ds-accent) 26%,transparent)}
.ds-card--img{padding:10px 10px 24px}
.ds-card-img{border-radius:18px 18px 18px 36px}
.ds-grid > .ds-card:only-child{column-gap:24px}

/* ══ Photos en galets, bercées par une forme douce ══ */
.ds-fig img{border-radius:var(--td-org);box-shadow:0 38px 70px -46px color-mix(in srgb,var(--ds-accent) 60%,transparent)}
.ds-fig--l img{border-radius:var(--td-org-2)}
.ds-split > .ds-fig::before,.ds-split > .ds-fig::after{content:"";position:absolute;pointer-events:none}
.ds-split > .ds-fig::before{z-index:-1;inset:7% -5% calc(1.4em + 4%) 9%;border-radius:var(--td-blob);background:var(--td-degrade)}
.ds-split > .ds-fig:not(:has(figcaption))::before{inset:7% -5% -4% 9%}
.ds-split--rev > .ds-fig::before,.ds-split > .ds-fig:nth-child(2)::before{inset:7% 9% calc(1.4em + 4%) -5%;border-radius:var(--td-blob-2);background:var(--ds-tint-2)}
.ds-split > .ds-fig::after{left:-18px;top:-16px;width:64px;height:56px;background:radial-gradient(circle 13px at 30% 40%,var(--ds-tint-2) 96%,transparent),radial-gradient(circle 6px at 80% 20%,var(--td-bulle) 96%,transparent)}
.ds-fig figcaption{display:flex;align-items:center;gap:8px;margin-top:18px;font:500 14.5px/1.35 var(--ds-f-title);letter-spacing:.005em;text-transform:none;color:var(--ds-body)}
.ds-fig figcaption::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--ds-accent);margin-right:12px;box-shadow:13px 0 0 -1.5px color-mix(in srgb,var(--ds-accent) 40%,#fff)}
.ds-b-galerie .ds-fig:nth-child(2) img{border-radius:var(--td-org-2)}
.ds-b-galerie .ds-fig:nth-child(3) img{border-radius:22% 30% 18% 34% / 28% 22% 32% 24%}
.ds-a-schema svg{background:#fff;border:0;border-radius:32px;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule)}

/* ══ Fiche pratique, horaires ══ */
.ds-facts{border-top:0;gap:8px}
.ds-fact{margin:0;padding:12px 16px 12px 12px;border:0;border-radius:20px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--ds-rule);transition:transform .35s var(--ds-ease),box-shadow .3s}
.ds-fact:hover{background:#fff;transform:translateX(4px);box-shadow:inset 0 0 0 1.5px var(--ds-tint-2)}
.ds-fact .ds-ico{width:40px;height:40px;border-radius:50%}
.ds-fact dt{color:var(--ds-mute)}
@media (max-width:640px){.ds-fact{gap:2px 14px;padding:12px 14px 12px 12px}.ds-fact .ds-ico{grid-row:span 2;align-self:center}}
.ds-horaires th,.ds-horaires td{border-bottom:1.5px dashed var(--ds-rule)}
.ds-horaires tr.is-auj th,.ds-horaires tr.is-auj td{background:var(--ds-tint)}
.ds-horaires tr.is-auj > :first-child{border-radius:14px 0 0 14px}
.ds-horaires tr.is-auj > :last-child{border-radius:0 14px 14px 0}
.ds-horaires tr.is-auj th::after{padding:3px 9px;border-radius:999px;background:var(--ds-accent);color:#fff;font:750 11.5px/1.2 var(--ds-f-body);letter-spacing:.01em;text-transform:none;vertical-align:1px;width:max-content}

/* ══ Étapes : des bulles reliées par un chemin pointillé ══ */
.ds-steps:not(.ds-a-steps){gap:18px;margin-top:34px}
.ds-steps:not(.ds-a-steps) > .ds-step{padding:48px 24px 28px;border:1.5px solid var(--ds-rule);border-radius:26px}
.ds-steps:not(.ds-a-steps) > .ds-step:hover{transform:translateY(-5px)}
.ds-step::before{content:counter(dsstep);display:grid;place-items:center;width:56px;height:56px;margin:0;border-radius:50%;background:var(--ds-tint);color:var(--ds-accent-2);font:600 26px/1 var(--ds-f-title);letter-spacing:0;transition:transform .7s var(--ds-ease),opacity .4s}
.ds-steps:not(.ds-a-steps) > .ds-step::before{position:absolute;left:22px;top:-28px;box-shadow:0 0 0 6px var(--td-sec-bg,var(--ds-bg))}
.ds-steps > .ds-step:nth-child(3n+2)::before{background:var(--td-p2)}
.ds-steps > .ds-step:nth-child(3n)::before{background:var(--td-p3)}
.ds-steps:not(.ds-a-steps) > .ds-step::after{left:86px;right:auto;top:-22px;width:calc(100% + 18px - 72px);height:22px;border:3px dotted var(--td-dot);border-bottom:0;border-radius:50% 50% 0 0 / 100% 100% 0 0;background:none;transition:clip-path .8s var(--td-doux)}
.ds-steps:not(.ds-a-steps) > .ds-step:last-child::after{display:none}
.ds-step h3{margin:14px 0 8px;font-size:19px;letter-spacing:0}
.ds-step p{font-size:15px}
html.dsa .ds-steps .ds-step::before{color:var(--ds-accent-2);transform:scale(.4);opacity:0}
html.dsa .ds-steps.ds-lance .ds-step::before{transform:none;opacity:1}
html.dsa .ds-steps:not(.ds-a-steps) > .ds-step::after{clip-path:inset(0 100% 0 0)}
html.dsa .ds-steps.ds-lance:not(.ds-a-steps) > .ds-step::after{clip-path:inset(0 0 0 0)}
html.dsa .ds-steps.ds-lance .ds-step:nth-child(1)::after{transition-delay:.3s}
html.dsa .ds-steps.ds-lance .ds-step:nth-child(2)::after{transition-delay:.7s}
html.dsa .ds-steps.ds-lance .ds-step:nth-child(3)::after{transition-delay:1.1s}
html.dsa .ds-steps.ds-lance .ds-step:nth-child(4)::after{transition-delay:1.5s}
@media (max-width:1000px){
  .ds-steps:not(.ds-a-steps){row-gap:50px}
  .ds-steps:not(.ds-a-steps) > .ds-step:nth-child(2n)::after{display:none}
}
@media (max-width:640px){
  .ds-steps:not(.ds-a-steps){row-gap:46px;margin-top:30px}
  .ds-steps:not(.ds-a-steps) > .ds-step::after{display:block;left:47px;top:calc(100% + 2px);width:0;height:14px;border:0;border-left:3px dotted var(--td-dot);border-radius:0}
  .ds-steps:not(.ds-a-steps) > .ds-step:nth-child(2n)::after{display:block}
  .ds-steps:not(.ds-a-steps) > .ds-step:last-child::after{display:none}
  html.dsa .ds-steps:not(.ds-a-steps) > .ds-step::after{clip-path:inset(0 0 100% 0)}
}
/* frise verticale dans un texte (page d'un soin) */
.ds-a-steps .ds-step{grid-template-columns:44px minmax(0,1fr);border:1.5px solid var(--ds-rule);border-radius:22px}
.ds-a-steps .ds-step::before{position:static;width:44px;height:44px;font-size:20px;grid-row:1/span 2}
.ds-a-steps .ds-step::after{left:40px;top:70px;bottom:10px;width:0;height:auto;border-left:3px dotted var(--td-dot);background:none;transition:clip-path .8s var(--td-doux)}
.ds-a-steps .ds-step:last-child::after{display:none}
html.dsa .ds-a-steps .ds-step::after{clip-path:inset(0 0 100% 0)}
html.dsa .ds-a-steps.ds-lance .ds-step::after{clip-path:inset(0 0 0 0)}
@media (max-width:520px){.ds-a-steps .ds-step::before{width:34px;height:34px;font-size:17px}.ds-a-steps .ds-step::after{left:33px;top:58px}}

/* ══ Listes ══ */
.ds-check{gap:13px}
.ds-check li{padding-left:36px}
.ds-check li::before{width:25px;height:25px;top:0;background:var(--ds-tint)}
.ds-check li::after{content:"";position:absolute;left:0;top:0;width:25px;height:25px;background:var(--ds-accent);-webkit-mask:var(--td-coche) center/13px no-repeat;mask:var(--td-coche) center/13px no-repeat;transition:transform .55s var(--ds-ease) .25s}
.ds-check > li:nth-child(3n+2)::before{background:var(--td-p2)}
.ds-check > li:nth-child(3n)::before{background:var(--td-p3)}
html.dsa .ds-check li.rv::after{transform:scale(0) rotate(-40deg)}
html.dsa .ds-check li.rv.vu::after{transform:none}
.ds-prose ul li{padding-left:24px}
.ds-prose ul li::before{left:3px;top:.64em;width:9px;height:9px;border-radius:50%;background:color-mix(in srgb,var(--ds-accent) 45%,#fff)}
.ds-prose h2{letter-spacing:-.005em}
.ds-prose strong{font-weight:750}

/* ══ Questions en bulles ══ */
.ds-faq{display:grid;gap:12px;border-top:0}
.ds-q{padding:0 24px;border:0;border-radius:24px;background:#fff;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule);transition:box-shadow .35s}
.ds-q[open]{box-shadow:var(--ds-shadow-h),inset 0 0 0 2px var(--ds-tint-2)}
.ds-q summary{padding:20px 0;font:500 18.5px/1.35 var(--ds-f-title);letter-spacing:0}
.ds-q summary i{width:36px;height:36px;background:var(--ds-tint);transition:background-color .25s,transform .5s var(--ds-ease)}
.ds-q summary i::before,.ds-q summary i::after{left:11px;right:11px;top:17px;height:2.5px;background:var(--ds-accent-2)}
.ds-q summary:hover i{transform:scale(1.1)}
.ds-q[open] summary i{transform:rotate(180deg)}
.ds-q::details-content{transition:block-size .42s var(--td-doux),content-visibility .42s allow-discrete}
.ds-a{padding:0 44px 22px 0}
@media (max-width:640px){.ds-q{padding:0 18px}.ds-q summary{font-size:17px}.ds-a{padding-right:0}}

/* ══ Encadrés ══ */
.ds-note{gap:16px;padding:18px 22px;border-radius:24px;font-size:16px}
.ds-note > .ds-svg{box-sizing:border-box;width:42px;height:42px;padding:10px;margin-top:-5px;border-radius:50%;background:#fff}
.ds-note--urg > .ds-svg{background:rgba(255,255,255,.13)}
:is(.ds-note:not(.ds-note--urg),.ds-c-oui,.ds-a-renvoi,.ds-d-delai:not(.ds-d-delai--fort)) a:not(.ds-btn){color:var(--ds-accent-2)}
.ds-vital{isolation:isolate;border-radius:32px}
.ds-vital::after{content:"";position:absolute;z-index:-1;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.06);box-shadow:0 0 0 26px rgba(255,255,255,.03)}
.ds-num a,.ds-num span{border-radius:20px;font:600 30px/1 var(--ds-f-title);letter-spacing:0}
.ds-num small{font:650 12.5px/1.3 var(--ds-f-body)}

/* ══ Tableaux, sommaire, sources ══ */
.ds-table-w{border:1.5px solid var(--ds-rule);border-radius:24px;box-shadow:var(--ds-shadow)}
.ds-table th,.ds-table td{border-bottom:1.5px dashed var(--ds-rule)}
.ds-table thead th{background:var(--ds-tint);border-bottom:0;font:500 14.5px/1.3 var(--ds-f-title);letter-spacing:.005em;text-transform:none;color:var(--ds-ink)}
.ds-table tbody th{font-weight:750}
.ds-toc{padding:20px 14px 18px;background:#fff;border-radius:26px;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule)}
.ds-toc p{color:var(--ds-accent);margin:0 0 8px 12px}
.ds-toc a{padding:8px 12px 8px 30px;border-left:0;border-radius:14px;font-size:15px;transition:color .2s,background-color .25s}
.ds-toc a::before{content:"";position:absolute;left:13px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--ds-tint-2);transition:transform .45s var(--ds-ease),background-color .3s}
.ds-toc a:hover{background:var(--ds-surface)}
.ds-toc a.is-actif{background:var(--ds-tint);color:var(--ds-accent-2);font-weight:750}
.ds-toc a.is-actif::before{background:var(--ds-accent);transform:scale(1.35)}
.ds-toc-prog{height:6px;margin:14px 12px 0;border-radius:6px;background:var(--ds-tint)}
.ds-toc-prog i{border-radius:6px}
@media (max-width:1000px){
  .ds-toc{padding:0 0 6px;background:none;border-radius:0;box-shadow:none}
  .ds-toc a{padding:8px 16px;border:2px solid var(--ds-tint-2);border-radius:999px}
  .ds-toc a::before{display:none}
  .ds-toc a.is-actif{border-color:transparent}
}
.ds-sources{border-top:1.5px dashed var(--ds-rule-2)}
.ds-sources b{color:var(--ds-ink)}

/* ══ Praticien, plan ══ */
.ds-prat{border:1.5px solid var(--ds-rule);border-radius:26px;box-shadow:var(--ds-shadow)}
.ds-prat-ph{border-radius:var(--td-blob);background:linear-gradient(135deg,var(--td-p2),var(--ds-tint-2));font:600 34px/1 var(--ds-f-title);color:var(--ds-accent-2);letter-spacing:0;transition:rotate .6s var(--ds-ease),scale .6s var(--ds-ease)}
a.ds-prat:hover{transform:translateY(-4px)}
a.ds-prat:hover .ds-prat-ph{rotate:-8deg;scale:1.05}
.ds-map{border:0;border-radius:var(--ds-r-l);box-shadow:var(--ds-shadow)}
.ds-map::before{content:"";position:absolute;z-index:0;left:50%;top:60%;width:60px;height:60px;margin:-30px 0 0 -30px;border-radius:50%;background:color-mix(in srgb,var(--ds-accent) 28%,transparent);opacity:0;pointer-events:none}
.ds-map::after{z-index:1}
.ds-map span{left:18px;bottom:18px;border-radius:16px}

/* ══ Appel final : un ciel doux bordé de formes rondes ══ */
.ds-cta{border-radius:40px;padding-bottom:clamp(92px,9vw,124px);background:linear-gradient(155deg,var(--td-sky) 0%,var(--ds-tint-2) 100%);color:var(--ds-body)}
.ds-cta .ds-eb{background:#fff;color:var(--ds-ink)}
.ds-cta .ds-h2{color:var(--ds-ink);font-size:clamp(2.3rem,1.3rem + 2.7vw,3.8rem);line-height:1.04;letter-spacing:-.012em}
.ds-cta .ds-h2 .ds-acc{color:var(--ds-accent);opacity:1;--td-surligne:rgba(255,255,255,.7)}
.ds-cta-info{font-size:16px}
.ds-cta-info .ds-svg{color:var(--ds-accent)}
.ds-cta-info b{color:var(--ds-ink);font-weight:750}
.ds-cta .ds-btn--w,.ds-cta .ds-btn--w:hover{background:var(--ds-accent);color:#fff;box-shadow:0 var(--td-y) 0 var(--td-press),0 16px 26px -16px color-mix(in srgb,var(--ds-accent) 75%,transparent)}
.ds-cta .ds-btn--g,.ds-cta .ds-btn--g:hover{background:#fff;color:var(--ds-ink);box-shadow:0 var(--td-y) 0 color-mix(in srgb,var(--ds-accent) 26%,#fff)}
.ds-cta .ds-btn--g .ds-svg{color:var(--ds-accent)}
.ds-cta::before{content:"";position:absolute;z-index:-1;right:7%;top:-70px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--ds-bg) 75%,var(--td-p2)) 0 58%,transparent 59%);box-shadow:0 0 0 22px color-mix(in srgb,#fff 22%,transparent);pointer-events:none}
.ds-cta::after{left:0;right:0;top:auto;bottom:0;width:auto;height:110px;background:radial-gradient(circle farthest-side at 50% 100%,rgba(255,255,255,.9) 98%,transparent) 1% 100%/190px 95px no-repeat,radial-gradient(circle farthest-side at 50% 100%,#fff 98%,transparent) 27% 100%/120px 60px no-repeat,radial-gradient(circle farthest-side at 50% 100%,#fff 98%,transparent) 64% 100%/210px 105px no-repeat,radial-gradient(circle farthest-side at 50% 100%,rgba(255,255,255,.8) 98%,transparent) 83% 100%/90px 45px no-repeat,radial-gradient(circle farthest-side at 50% 100%,rgba(255,255,255,.9) 98%,transparent) 101% 100%/150px 75px no-repeat;transform:none;transition:none}
.ds-cta.ds-lance::after{transform:none}
@media (max-width:900px){.ds-cta{border-radius:30px;padding-bottom:104px}.ds-cta::before{right:-60px;top:-80px}.ds-cta::after{height:72px;background-size:120px 60px,76px 38px,140px 70px,56px 28px,96px 48px}}

/* ══ Pied de page : nuit douce ourlée d'une vague ══ */
.ds-ftr{position:relative;isolation:isolate;overflow:hidden;padding:clamp(88px,9vw,118px) 0 32px;background:var(--td-nuit);border-top:0;color:rgba(255,255,255,.78)}
.ds-ftr::before{content:"";position:absolute;left:0;right:0;top:-1px;height:clamp(26px,3.4vw,50px);background:var(--ds-bg);-webkit-mask:var(--td-vague) 0 0/100% 100% no-repeat;mask:var(--td-vague) 0 0/100% 100% no-repeat;pointer-events:none}
.ds-ftr::after{content:"";position:absolute;z-index:-1;inset:36px 0 auto;height:60px;pointer-events:none;opacity:.7;background:radial-gradient(circle 1.6px,#fff 96%,transparent) 8% 40%/6px 6px no-repeat,radial-gradient(circle 1.2px,#fff 96%,transparent) 27% 18%/6px 6px no-repeat,radial-gradient(circle 1.8px,#fff 96%,transparent) 55% 34%/6px 6px no-repeat,radial-gradient(circle 1.2px,#fff 96%,transparent) 71% 12%/6px 6px no-repeat,radial-gradient(circle 1.6px,#fff 96%,transparent) 91% 44%/6px 6px no-repeat,radial-gradient(circle 1.1px,#fff 96%,transparent) 40% 70%/6px 6px no-repeat}
.ds-ftr .ds-logo{color:#fff}
.ds-ftr .ds-logo span{color:color-mix(in srgb,var(--ds-accent) 22%,#fff)}
.ds-ftr .ds-logo::before{background:#fff}
.ds-ftr-brand p,.ds-ftr li{color:rgba(255,255,255,.78)}
.ds-ftr h4{color:#fff;margin:4px 0 14px;font-size:16px}
.ds-ftr a{color:rgba(255,255,255,.8)}
.ds-ftr a:hover{color:#fff}
.ds-ftr-top{border-bottom:1.5px dashed rgba(255,255,255,.16)}
.ds-ftr-bas,.ds-ftr-bas a{color:rgba(255,255,255,.66)}
.ds-ftr .ds-open{color:#fff}
.ds-ftr .ds-open.is-ferme i{background:rgba(255,255,255,.55);box-shadow:0 0 0 4px rgba(255,255,255,.12)}
.ds-ftr .ds-btn--p,.ds-ftr .ds-btn--p:hover{background:#fff;color:var(--ds-ink);box-shadow:0 var(--td-y) 0 color-mix(in srgb,#fff 30%,var(--td-nuit))}
.ds-ftr .ds-btn--p::after{display:none}

/* ══ Groupe A (soins, un soin) ══ */
.ds-a-ancres ul{gap:10px 12px;border-top:0}
.ds-a-ancres li{border-bottom:0}
.ds-a-ancres a{grid-template-columns:34px 22px minmax(0,1fr) 16px;margin:0;padding:10px 16px 10px 10px;border-radius:20px;background:rgba(255,255,255,.9);box-shadow:inset 0 0 0 1.5px var(--ds-rule);font:650 16px/1.3 var(--ds-f-body);transition:background-color .2s,color .2s,transform .4s var(--ds-ease)}
.ds-a-ancres a:hover{background:#fff;transform:translateY(-3px)}
.ds-a-ancres b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ds-tint);font:600 14px/1 var(--ds-f-title);letter-spacing:0;color:var(--ds-accent-2)}
.ds-a-ancres li:nth-child(3n+2) b{background:var(--td-p2)}
.ds-a-ancres li:nth-child(3n) b{background:var(--td-p3)}
.ds-a-grp,.ds-a-grp.ds-a-grp--1{border-top:2px dashed var(--ds-rule-2)}
.ds-a-grp-k{color:var(--ds-mute)}
.ds-a-grp-k b{font-weight:600}
.ds-a-soin > .ds-svg{top:28px}
.ds-a-soin .ds-k{letter-spacing:.005em}
.ds-a-grp-h .ds-note > .ds-svg{width:38px;height:38px;padding:9px}
.ds-a-cles{gap:8px;max-width:600px;border-top:0}
.ds-a-cles > div,.ds-a-cles > div + div{padding:12px 16px;border:0;border-radius:18px;background:rgba(255,255,255,.88)}
.ds-a-cles dd{font:600 16px/1.35 var(--ds-f-title);letter-spacing:0}
.ds-prose .ds-a-signes li{border:0;border-radius:22px;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule)}
.ds-a-renvoi{border:0;border-radius:24px;background:var(--ds-tint);transition:background-color .25s,transform .45s var(--ds-ease)}
a.ds-a-renvoi:hover{background:var(--ds-tint-2);transform:translateY(-3px)}
.ds-a-renvoi .ds-ico{background:#fff}

/* ══ Groupe B (cabinet, praticien) ══ */
.ds-b-ancres a{padding:9px 14px 9px 16px;background:#fff;box-shadow:inset 0 0 0 2px var(--ds-tint-2);font:650 14.5px/1.2 var(--ds-f-body)}
.ds-b-ancres a:hover{background:var(--ds-tint);color:var(--ds-accent-2);box-shadow:inset 0 0 0 2px var(--ds-tint-2)}
.ds-b-fam{border-top:2px dashed var(--ds-rule-2);padding-top:30px}
.ds-b-fam-n{padding:6px 14px;border-radius:999px;background:var(--ds-tint);font:500 14px/1.2 var(--ds-f-title);letter-spacing:.01em;text-transform:none;color:var(--ds-accent-2)}
.ds-b-eq + .ds-b-eq{border-top:1.5px dashed var(--ds-rule)}
.ds-b-eq h4{letter-spacing:0}
.ds-b-eq p b{color:var(--ds-mute)}
.ds-b-eq p.ds-b-pv b{color:var(--ds-accent)}
.ds-b-carte{border:0;border-radius:32px;box-shadow:0 40px 70px -44px color-mix(in srgb,var(--ds-accent) 60%,transparent),inset 0 0 0 1.5px var(--ds-rule)}
.ds-b-carte::before{display:none}
.ds-b-mono{border-radius:var(--td-blob);background:linear-gradient(135deg,var(--td-p2),var(--ds-tint-2));color:var(--ds-accent-2);font-weight:600;letter-spacing:0}
.ds-b-carte-nom{letter-spacing:0}
.ds-b-carte dl{border-top:0}
.ds-b-carte dl > div{border-bottom:1.5px dashed var(--ds-rule)}
.ds-b-carte dl > div:last-child{border-bottom:0}
.ds-b-bloc3 > div{border:0;border-radius:24px;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule)}
.ds-b-bloc3 li::before{left:2px;top:.62em;width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--ds-accent) 45%,#fff)}
.ds-b-mention{border-radius:16px}
.ds-b-parcours li{padding-top:36px}
.ds-b-parcours li::before{top:2px;width:20px;height:20px;box-shadow:inset 0 0 0 3.5px var(--ds-accent)}
.ds-b-parcours li:last-child::before{background:var(--ds-accent);box-shadow:0 0 0 5px var(--ds-tint-2)}
.ds-b-parcours li::after{left:30px;right:-18px;top:10px;height:0;background:none;border-top:3px dotted var(--td-dot)}
.ds-b-parcours time,.ds-b-parcours .ds-b-an{font:500 15.5px/1.3 var(--ds-f-title);letter-spacing:.005em}
.ds-b-parcours b{letter-spacing:0}
@media (max-width:760px){
  .ds-b-parcours li{padding:0 0 26px 36px}
  .ds-b-parcours li::before{top:2px}
  .ds-b-parcours li::after{left:8.5px;right:auto;top:28px;bottom:2px;width:0;height:auto;border-top:0;border-left:3px dotted var(--td-dot)}
}

/* ══ Groupe C (conseils, fiche, première consultation) ══ */
.ds-c-acces a{border:0;border-radius:22px;background:rgba(255,255,255,.9);box-shadow:inset 0 0 0 1.5px var(--ds-rule);transition:transform .4s var(--ds-ease),box-shadow .3s,background-color .3s}
.ds-c-acces a:hover{transform:translateY(-4px);background:#fff;box-shadow:var(--ds-shadow-h),inset 0 0 0 1.5px var(--ds-tint-2)}
.ds-c-acces .ds-ico{border-radius:50%}
.ds-c-acces b{letter-spacing:0}
.ds-c-acces small{color:var(--ds-mute)}
.ds-c-reperes{gap:14px;border-top:0}
.ds-c-repere,.ds-c-repere:first-child{padding:26px 24px 24px;border:0;border-radius:26px;background:#fff;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule)}
.ds-c-repere strong{font:600 clamp(42px,2rem + 1.5vw,56px)/1 var(--ds-f-title);letter-spacing:-.01em;color:var(--ds-accent)}
.ds-c-repere strong small{font:700 15.5px/1.2 var(--ds-f-body)}
@media (max-width:900px){.ds-c-repere:nth-child(odd){padding-left:24px}.ds-c-repere:nth-child(n+3){border-top:0;margin-top:0}}
@media (max-width:420px){.ds-c-repere,.ds-c-repere:first-child,.ds-c-repere:nth-child(odd){padding:20px 16px 18px}}
.ds-c-ligne{border:1.5px solid var(--ds-rule);border-radius:24px;box-shadow:var(--ds-shadow)}
a.ds-c-ligne:hover{transform:translateY(-4px)}
a.ds-c-ligne:hover .ds-ico{transform:rotate(-10deg) scale(1.07)}
.ds-c-ligne .ds-ico{transition:background-color .35s,color .35s,transform .55s var(--ds-ease)}
.ds-c-ligne h3{letter-spacing:0}
.ds-c-une{border:1.5px solid var(--ds-rule);border-radius:34px;box-shadow:var(--ds-shadow)}
.ds-c-une::before{display:none}
.ds-c-une-img{border-radius:0 90px 90px 0 / 0 50% 50% 0}
.ds-c-une-txt h3{letter-spacing:-.005em}
@media (max-width:900px){.ds-c-une-img{border-radius:0 0 50% 50% / 0 0 44px 44px}}
.ds-c-temps > li{border:0;border-radius:22px;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule)}
.ds-c-temps > li::before{left:22px;right:auto;top:-7px;width:14px;height:14px;border-radius:50%;background:var(--ds-accent);box-shadow:0 0 0 5px var(--td-sec-bg,var(--ds-bg))}
.ds-c-oui,.ds-c-non{border-radius:26px}
.ds-c-non{box-shadow:inset 0 0 0 2px var(--ds-tint-2)}
.ds-c-duo h3 small{color:var(--ds-mute)}
.ds-c-ordo > li::before{background:var(--ds-accent);font:600 14px/1 var(--ds-f-title)}

/* ══ Groupe D (honoraires, contact, urgences) ══ */
.ds-d-sommaire{border-top:1.5px dashed var(--ds-rule-2)}
.ds-d-sommaire > span{color:var(--ds-ink)}
.ds-d-ancres a{min-height:40px;padding:8px 15px;background:#fff;box-shadow:inset 0 0 0 2px var(--ds-tint-2);font:650 14.5px/1.2 var(--ds-f-body)}
.ds-d-ancres a:hover{color:var(--ds-accent-2);box-shadow:inset 0 0 0 2px var(--ds-tint-2)}
.ds-d-cit{position:relative;padding:22px 26px 22px 70px;border-left:0;border-radius:26px;background:#fff;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule)}
.ds-d-cit::before{content:"“";position:absolute;left:18px;top:18px;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--ds-tint);color:var(--ds-accent);font:600 34px/1.35 var(--ds-f-title)}
.ds-d-cit cite{color:var(--ds-mute)}
.ds-d-eq-i{border:1.5px solid var(--ds-rule);border-radius:22px}
.ds-d-eq-i b{letter-spacing:0}
.ds-d-eq-i i{height:8px;border-radius:4px}
.ds-d-eq-op{font:600 26px/1 var(--ds-f-title)}
.ds-d-panier{border:1.5px solid var(--ds-rule);border-radius:26px;box-shadow:var(--ds-shadow)}
.ds-d-panier--0{border-color:var(--ds-accent);box-shadow:inset 0 0 0 1px var(--ds-accent),var(--ds-shadow-h)}
.ds-d-rac{border-top:1.5px dashed var(--ds-rule)}
.ds-d-rac b{letter-spacing:0}
.ds-d-jauge{height:16px;border-radius:8px}
.ds-d-oui{font-weight:750}
@media (max-width:700px){.ds-d-tpile tr{border-radius:22px}.ds-d-tpile tr > *{border-bottom-style:dashed!important}}
.ds-d-af{border-radius:22px}
.ds-d-coord{border:0;border-radius:32px;position:relative;box-shadow:var(--ds-shadow-h),inset 0 0 0 1.5px var(--ds-rule)}
.ds-d-coord-top{border-bottom:1.5px dashed var(--ds-rule-2)}
.ds-d-coord-l{border-bottom:1.5px dashed var(--ds-rule)}
.ds-d-coord-l .ds-ico{border-radius:50%}
.ds-d-coord-l--tel b{letter-spacing:0}
.ds-d-hcard{border:0;border-radius:28px;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule)}
.ds-d-hcard .ds-horaires tr > *:first-child{border-radius:14px 0 0 14px}
.ds-d-hcard .ds-horaires tr > *:last-child{border-radius:0 14px 14px 0}
.ds-d-champ label{font:650 15px/1.3 var(--ds-f-body)}
.ds-d-champ input,.ds-d-champ select,.ds-d-champ textarea{border:2px solid var(--ds-tint-2);border-radius:18px;background:#fff}
.ds-d-champ input:focus,.ds-d-champ select:focus,.ds-d-champ textarea:focus{border-color:var(--ds-accent);box-shadow:0 0 0 4px var(--ds-tint)}
.ds-d-appel{font:600 clamp(30px,26px + 1vw,38px)/1 var(--ds-f-title);letter-spacing:0}
.ds-d-appel .ds-svg{border-radius:50%}
.ds-d-niv{border:1.5px solid var(--ds-rule);border-radius:24px}
.ds-d-niv--2,.ds-d-niv--3{border-color:transparent}
.ds-d-niv--4{border-color:var(--ds-ink)}
.ds-d-niv-g{gap:5px}
.ds-d-niv-g i{height:8px;border-radius:4px}
.ds-d-niv li::before{top:.62em;width:7px;height:7px;border-radius:50%;opacity:.55}
.ds-d-niv-num a{border-radius:16px;font:600 21px/1 var(--ds-f-title)}
.ds-d-exp{border:0;border-radius:34px;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule)}
.ds-d-exp-g{background-image:radial-gradient(circle 1.3px,color-mix(in srgb,var(--ds-bg) 20%,transparent) 96%,transparent);background-size:20px 20px}
.ds-d-exp-g h3{letter-spacing:0}
.ds-d-exp-g .ds-d-chrono{font:600 clamp(68px,50px + 3vw,100px)/.9 var(--ds-f-title);letter-spacing:-.02em}
.ds-d-chrono small{font:500 16px/1.3 var(--ds-f-title);letter-spacing:.01em;text-transform:none}
.ds-d-ol li{grid-template-columns:40px minmax(0,1fr);border-bottom:1.5px dashed var(--ds-rule)}
.ds-d-ol li::before{content:counter(dsdol);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ds-tint);font:600 16px/1 var(--ds-f-title);letter-spacing:0;color:var(--ds-accent-2)}
.ds-d-ol li:nth-child(3n+2)::before{background:var(--td-p2)}
.ds-d-ol li:nth-child(3n)::before{background:var(--td-p3)}
.ds-d-puces li::before{left:2px;top:.62em;width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--ds-accent) 45%,#fff)}
.ds-d-delai{border-radius:16px}
.ds-d-non li{border:0;border-radius:22px;box-shadow:var(--ds-shadow),inset 0 0 0 1.5px var(--ds-rule)}
.ds-d-vital{border-radius:32px}

/* ══ Entrées : le héros et les hauts de page éclosent (une fois, au chargement) ══ */
@keyframes td-eclot{from{transform:translate3d(0,26px,0) scale(.94)}to{transform:none}}
@keyframes td-pop{from{opacity:0;scale:.55}to{opacity:1;scale:1}}
@keyframes td-ouvre{from{clip-path:circle(0% at 55% 55%)}to{clip-path:circle(125% at 55% 55%)}}
@keyframes td-trace{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes td-fond{from{opacity:0}to{opacity:1}}
/* décor : se berce, flotte, dérive (transform et opacity seulement) */
@keyframes td-berce{from{rotate:-5deg}to{rotate:5deg}}
@keyframes td-berce2{from{rotate:4deg}to{rotate:-6deg}}
@keyframes td-flotte{from{translate:0 0}to{translate:0 -10px}}
@keyframes td-bulles{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,-14px,0)}}
@keyframes td-derive{from{transform:translate3d(-24px,0,0)}to{transform:translate3d(36px,0,0)}}
@keyframes td-onde{0%{opacity:.7;scale:.5}100%{opacity:0;scale:2.1}}
@keyframes td-coucou{0%,100%{rotate:0deg}30%{rotate:-12deg}60%{rotate:8deg}}

html.dsa .ds-hero-txt > *{animation:td-eclot .95s var(--ds-ease) both}
html.dsa .ds-hero-txt > :nth-child(1){animation-delay:.08s}
html.dsa .ds-hero-txt > :nth-child(2){animation-delay:.2s}
html.dsa .ds-hero-txt > :nth-child(3){animation-delay:.38s}
html.dsa .ds-hero-txt > :nth-child(4){animation-delay:.52s}
html.dsa .ds-hero-txt > :nth-child(5){animation-delay:.66s}
html.dsa .ds-hero-txt::before{animation:td-fond 1s ease-out .9s both,td-bulles 6s ease-in-out 1.9s infinite alternate}
html.dsa .ds-hero .ds-h1 .ds-acc::after{animation:td-trace 1s var(--td-doux) 1s both}
html.dsa .ds-hero::before{animation:td-fond 1.4s ease-out both,td-derive 34s ease-in-out infinite alternate}
html.dsa .ds-hero-media > img{animation:td-ouvre 1.2s cubic-bezier(.5,0,.2,1) .2s both}
html.dsa .ds-hero-media::before{animation:td-pop 1s var(--ds-ease) .45s both,td-berce 9s ease-in-out infinite alternate both}
html.dsa .ds-hero-media::after{animation:td-pop 1s var(--ds-ease) .7s both,td-berce2 12s ease-in-out infinite alternate both}
html.dsa .ds-fiche{animation:td-eclot .95s var(--ds-ease) 1s both,td-flotte 5.5s ease-in-out 2s infinite alternate}
html.dsa .ds-logo::before{animation:td-coucou 1.1s var(--td-doux) .6s 1 both}
html.dsa .ds-phero:not(.ds-phero--split) .ds-wrap > *,html.dsa .ds-phero--split .ds-wrap > div:first-child > *{animation:td-eclot .9s var(--ds-ease) both}
html.dsa .ds-phero:not(.ds-phero--split) .ds-wrap > :nth-child(2),html.dsa .ds-phero--split .ds-wrap > div:first-child > :nth-child(2){animation-delay:.1s}
html.dsa .ds-phero:not(.ds-phero--split) .ds-wrap > :nth-child(3),html.dsa .ds-phero--split .ds-wrap > div:first-child > :nth-child(3){animation-delay:.2s}
html.dsa .ds-phero:not(.ds-phero--split) .ds-wrap > :nth-child(4),html.dsa .ds-phero--split .ds-wrap > div:first-child > :nth-child(4){animation-delay:.3s}
html.dsa .ds-phero:not(.ds-phero--split) .ds-wrap > :nth-child(n+5),html.dsa .ds-phero--split .ds-wrap > div:first-child > :nth-child(n+5){animation-delay:.4s}
html.dsa .ds-phero--split .ds-wrap > :not(:first-child):not(.ds-phero-media){animation:td-eclot 1s var(--ds-ease) .35s both}
html.dsa .ds-phero::before{animation:td-fond 1.4s ease-out both,td-derive 38s ease-in-out infinite alternate}
html.dsa .ds-phero-media img{animation:td-ouvre 1.15s cubic-bezier(.5,0,.2,1) .15s both}
html.dsa .ds-phero-media::before{animation:td-pop 1s var(--ds-ease) .4s both,td-berce 10s ease-in-out infinite alternate both}
html.dsa .ds-phero-media::after,html.dsa .ds-split > .ds-fig::after{animation:td-bulles 5s ease-in-out infinite alternate}
html.dsa .ds-phero:not(.ds-phero--split) .ds-wrap::after{animation:td-fond 1.2s ease-out .5s both,td-bulles 6.5s ease-in-out 1.7s infinite alternate}
html.dsa .ds-phero--split .ds-wrap::before{animation:td-pop 1s var(--ds-ease) .55s both,td-berce2 11s ease-in-out infinite alternate both}
html.dsa .ds-split > .ds-fig::before{animation:td-berce 12s ease-in-out infinite alternate both}
html.dsa .ds-cta::after{animation:td-derive 30s ease-in-out infinite alternate}
html.dsa .ds-cta::before{transform:scale(.6);opacity:0;transition:transform 1.1s var(--ds-ease),opacity .8s}
html.dsa .ds-cta.ds-lance::before{transform:none;opacity:1}
html.dsa .ds-map::before{animation:td-onde 2.8s ease-out 1s infinite}

/* apparitions au défilement : les blocs éclosent */
html.dsa .rv{transform:translate3d(0,var(--ds-rv-y),0) scale(.955);transform-origin:50% 100%}
html.dsa :is(.ds-fig,.ds-card--img,.ds-phero-media).rv img{transition:transform 1.4s var(--td-doux)}

/* décor en pause hors écran (posé par tendre.js) */
.td-pause::before,.td-pause::after,.td-pause *,.td-pause *::before,.td-pause *::after{animation-play-state:paused!important}

/* mouvement réduit : décor immobile, rien ne bouge au survol */
@media (prefers-reduced-motion:reduce){
  .ds-btn:hover,.ds-btn:active,a.ds-card:hover,a.ds-besoin:hover,.ds-fact:hover,a.ds-c-ligne:hover,.ds-c-acces a:hover,.ds-a-ancres a:hover,a.ds-prat:hover,a.ds-a-renvoi:hover{transform:none}
  a.ds-besoin:hover .ds-ico,a.ds-card:hover .ds-ico,a.ds-c-ligne:hover .ds-ico{transform:none}
}

/* ══ Formule Centre (30/09/2026) ══ */
.ds-phero .ds-lead a{color:var(--ds-accent-2)} /* lien du chapô sur le ciel (téléphone, Rendez-vous) : AA en forêt */
