/* ============================================================
   Styles partagés : bannière cookies + bandeau « projet concept ».
   Chaque site personnalise l'apparence via ces variables :
   --cc-bg, --cc-fg, --cc-muted, --cc-line, --cc-accent, --cc-accent-fg,
   --cc-radius, --cc-font
   ============================================================ */
.cc{position:fixed;inset:auto 0 0 0;z-index:2000;pointer-events:none;font-family:var(--cc-font,inherit)}
.cc[hidden]{display:none}
.cc-banner{pointer-events:auto;position:fixed;left:clamp(12px,2vw,24px);bottom:clamp(12px,2vw,24px);width:min(440px,calc(100vw - 24px));
  background:var(--cc-bg,#fff);color:var(--cc-fg,#111);border:1px solid var(--cc-line,rgba(0,0,0,.12));border-radius:var(--cc-radius,10px);
  padding:20px 22px;box-shadow:0 24px 60px -24px rgba(0,0,0,.35);opacity:0;transform:translateY(16px);transition:opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1)}
.cc--in .cc-banner{opacity:1;transform:none}
.cc-banner[hidden],.cc-dialog[hidden]{display:none}
.cc-title{font-weight:600;font-size:1rem;margin:0 0 6px;letter-spacing:-.01em}
.cc-text{font-size:.86rem;line-height:1.55;color:var(--cc-muted,#555);margin:0}
.cc-text a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.cc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.cc-btn{flex:1 1 auto;font:inherit;font-size:.84rem;font-weight:600;padding:11px 14px;border-radius:calc(var(--cc-radius,10px) * .7);
  border:1px solid var(--cc-line,rgba(0,0,0,.18));background:transparent;color:inherit;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.cc-btn:hover{border-color:currentColor}
.cc-btn--main{background:var(--cc-accent,#111);border-color:var(--cc-accent,#111);color:var(--cc-accent-fg,#fff)}
.cc-btn--main:hover{filter:brightness(1.12);border-color:var(--cc-accent,#111)}
.cc-btn:focus-visible,.cc-switch:focus-visible,.cc-open:focus-visible{outline:2px solid var(--cc-accent,#111);outline-offset:3px}
.cc-dialog{pointer-events:auto;position:fixed;inset:0;background:rgba(0,0,0,.45);display:grid;place-items:center;padding:16px;opacity:0;transition:opacity .25s}
.cc--in .cc-dialog{opacity:1}
.cc-panel{background:var(--cc-bg,#fff);color:var(--cc-fg,#111);border-radius:var(--cc-radius,10px);width:min(520px,100%);padding:26px;max-height:90vh;overflow:auto}
.cc-row{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:16px 0;border-top:1px solid var(--cc-line,rgba(0,0,0,.12))}
.cc-row__t{font-weight:600;font-size:.92rem;margin:0 0 4px}
.cc-row__d{font-size:.82rem;line-height:1.5;color:var(--cc-muted,#555);margin:0}
.cc-pill{flex:none;font-size:.72rem;font-weight:600;padding:5px 10px;border-radius:99px;background:var(--cc-line,rgba(0,0,0,.08));white-space:nowrap}
.cc-switch{flex:none;width:46px;height:26px;border-radius:99px;border:0;background:var(--cc-line,rgba(0,0,0,.2));position:relative;cursor:pointer;transition:background .2s}
.cc-switch span{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .25s cubic-bezier(.16,1,.3,1)}
.cc-switch[aria-checked="true"]{background:var(--cc-accent,#111)}
.cc-switch[aria-checked="true"] span{transform:translateX(20px)}
.cc-open{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:none;opacity:inherit}
.cc-open:hover{text-decoration:underline;text-underline-offset:3px}
@media (max-width:520px){.cc-banner{left:8px;right:8px;bottom:8px;width:auto;padding:18px}.cc-actions .cc-btn{flex:1 1 40%}.cc-actions .cc-btn--main{flex-basis:100%;order:-1}}

/* ---------- Bandeau « Projet concept par CAPITALE » ---------- */
.concept-bar{position:relative;z-index:60;display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;
  padding:7px clamp(14px,3vw,32px);background:#11151C;color:rgba(251,250,247,.72);
  font:500 12px/1.4 "Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:.01em}
.concept-bar p{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.concept-bar a{color:#FBFAF7;text-decoration:none;font-weight:600}
.concept-bar a:hover{text-decoration-thickness:2px}
.concept-bar p:first-child a{text-decoration:underline;text-underline-offset:3px}
.concept-bar a:focus-visible{outline:2px solid #6B85FF;outline-offset:2px}
.concept-bar__mark{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:3px;background:#2742F5;color:#fff;font-weight:800;font-size:10px;margin-right:4px}
.concept-bar__links{gap:18px!important}
.concept-bar__back{opacity:.85}
@media (max-width:720px){.concept-bar__note{display:none}.concept-bar{font-size:11.5px}}

/* ---------- Utilitaires d'accessibilité ---------- */
/* L'attribut hidden doit toujours gagner, même face à un display:grid/flex d'un composant */
[hidden]{display:none!important}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:10px;left:10px;z-index:3000;padding:10px 16px;background:#111;color:#fff;border-radius:6px;font-weight:600;transform:translateY(-200%);transition:transform .2s}
.skip-link:focus{transform:none}
@media (prefers-reduced-motion:reduce){.cc-banner,.cc-dialog,.cc-switch span{transition:none}}

/* ============================================================
   KIT — styles de base des composants partagés des sites démo.
   Chaque site les colore avec ses variables :
   --k-bg --k-surface --k-fg --k-muted --k-line --k-accent --k-accent-fg --k-radius --k-font
   ============================================================ */
.k-cal{font-family:var(--k-font,inherit);color:var(--k-fg);user-select:none}
.k-cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.k-cal__title{font-weight:600;text-transform:capitalize;margin:0}
.k-cal__nav{width:40px;height:40px;border-radius:var(--k-radius,8px);border:1px solid var(--k-line);background:transparent;color:inherit;font-size:1.3rem;line-height:1;cursor:pointer;transition:background .2s,border-color .2s}
.k-cal__nav:hover:not(:disabled){border-color:var(--k-fg)}
.k-cal__nav:disabled{opacity:.3;cursor:default}
.k-cal__grid{display:flex;flex-direction:column;gap:4px}
.k-cal__row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.k-cal__wd{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--k-muted);text-align:center;padding:6px 0}
.k-cal__row>span{display:block}
.k-cal__day{width:100%;aspect-ratio:1;max-height:48px;border-radius:var(--k-radius,8px);border:1px solid transparent;background:var(--k-surface,transparent);color:inherit;font:inherit;font-size:.92rem;cursor:pointer;transition:background .2s,color .2s,border-color .2s;position:relative}
.k-cal__day:hover:not(:disabled){border-color:var(--k-accent)}
.k-cal__day:disabled{background:transparent;color:var(--k-muted);opacity:.45;cursor:not-allowed;text-decoration:line-through;text-decoration-thickness:1px}
.k-cal__day.is-today::after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--k-accent);transform:translateX(-50%)}
.k-cal__day[aria-pressed="true"]{background:var(--k-accent);color:var(--k-accent-fg,#fff);border-color:var(--k-accent)}
.k-cal__day[aria-pressed="true"]::after{background:var(--k-accent-fg,#fff)}
.k-cal__day:focus-visible,.k-cal__nav:focus-visible,.k-slot:focus-visible{outline:2px solid var(--k-accent);outline-offset:2px}
.k-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}
.k-slot{padding:12px 8px;border-radius:var(--k-radius,8px);border:1px solid var(--k-line);background:transparent;color:inherit;font:inherit;font-size:.9rem;font-variant-numeric:tabular-nums;cursor:pointer;transition:all .2s}
.k-slot:hover:not(:disabled){border-color:var(--k-accent)}
.k-slot:disabled{opacity:.35;text-decoration:line-through;cursor:not-allowed}
.k-slot[aria-pressed="true"]{background:var(--k-accent);color:var(--k-accent-fg,#fff);border-color:var(--k-accent)}
.k-slots__none{grid-column:1/-1;color:var(--k-muted);font-size:.9rem;margin:0}
.k-toast{position:fixed;left:50%;bottom:24px;z-index:3000;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--k-fg,#111);color:var(--k-bg,#fff);padding:13px 20px;border-radius:var(--k-radius,8px);font:500 .9rem/1.4 var(--k-font,inherit);box-shadow:0 20px 40px -20px rgba(0,0,0,.4);transition:opacity .25s,transform .35s cubic-bezier(.16,1,.3,1);max-width:calc(100vw - 32px)}
.k-toast.is-in{opacity:1;transform:translate(-50%,0)}
.k-reveal-on [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.16,1,.3,1) var(--d,0ms),transform .9s cubic-bezier(.16,1,.3,1) var(--d,0ms)}
.k-reveal-on [data-reveal].is-in{opacity:1;transform:none}
dialog.k-dialog{border:0;padding:0;border-radius:var(--k-radius,8px);background:var(--k-bg);color:var(--k-fg);max-width:min(720px,calc(100vw - 24px));width:100%;max-height:calc(100vh - 32px);box-shadow:0 40px 100px -30px rgba(0,0,0,.5)}
dialog.k-dialog::backdrop{background:rgba(10,10,10,.55);backdrop-filter:blur(3px)}
dialog.k-dialog[open]{animation:k-pop .35s cubic-bezier(.16,1,.3,1)}
@keyframes k-pop{from{opacity:0;transform:translateY(16px) scale(.98)}}
html:not(.is-auth) [data-auth-guard]{visibility:hidden}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (prefers-reduced-motion:reduce){.k-reveal-on [data-reveal]{opacity:1;transform:none;transition:none}dialog.k-dialog[open]{animation:none}}

/* ============================================================
   CLINIQUE AURORE — identité visuelle
   Porcelaine · Prune (texte) · Argile (accent) · Sauge · Blush
   Bodoni Moda (titres) · Jost (texte) · formes douces, arche
   ============================================================ */
:root{
  --porcelain:#FAF6F1; --white:#FFFDFB; --blush:#F2E6DD; --blush-2:#EAD8CB; --plum:#3A2B33; --plum-2:#4A3742;
  --clay:#B5694F; --clay-d:#99533C; --sage:#7F8F77; --muted:#6B5E66;
  --line:rgba(58,43,51,.14); --line-l:rgba(250,246,241,.2);
  --wrap:1260px; --pad:clamp(18px,4vw,48px); --r:22px; --r-s:14px;
  --serif:"Bodoni Moda",Didot,"Times New Roman",serif; --sans:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --k-bg:var(--white);--k-surface:var(--porcelain);--k-fg:var(--plum);--k-muted:var(--muted);--k-line:var(--line);--k-accent:var(--plum);--k-accent-fg:var(--porcelain);--k-radius:12px;--k-font:var(--sans);
  --cc-bg:var(--white);--cc-fg:var(--plum);--cc-muted:var(--muted);--cc-line:var(--line);--cc-accent:var(--plum);--cc-accent-fg:var(--porcelain);--cc-radius:18px;--cc-font:var(--sans);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{background:var(--porcelain);color:var(--plum);font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip;font-variation-settings:"opsz" 34}
/* Bodoni : axe optique bridé à 34 — les déliés restent visibles sur tous les écrans
   (trait d’union, empattements). Jost n’a pas cet axe et l’ignore. */
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--clay-d);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--pad)}
.eyebrow{font:500 .76rem/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--clay-d);margin-bottom:14px}
.eyebrow--light{color:#E9B9A5}
.muted{color:var(--muted)}
.note{font-size:.84rem;color:var(--muted);margin-top:10px}
.opt-l{font-weight:400;color:var(--muted)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 28px;border-radius:999px;background:var(--plum);color:var(--porcelain);border:1px solid var(--plum);font-weight:500;font-size:.96rem;text-decoration:none;cursor:pointer;transition:background .3s,color .3s,border-color .3s,transform .3s var(--ease)}
.btn svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover{background:var(--clay-d);border-color:var(--clay-d)}
.btn:hover svg{transform:translateX(3px)}
.btn:disabled{opacity:.45;cursor:not-allowed;background:var(--plum)}
.btn--soft{background:var(--blush);color:var(--plum);border-color:var(--blush)}
.btn--soft:hover{background:var(--blush-2);border-color:var(--blush-2);color:var(--plum)}
.btn--sm{min-height:42px;padding:9px 18px;font-size:.88rem}
.btn--full{width:100%}
.link{display:inline-flex;align-items:center;gap:8px;font-weight:500;text-decoration:underline;text-decoration-color:var(--clay);text-underline-offset:6px;background:none;border:0;cursor:pointer;padding:4px 0}
.link svg{width:16px;height:16px}
.link:hover{color:var(--clay-d)}

/* ---------- En-tête ---------- */
.hd{position:sticky;top:0;z-index:50;background:rgba(250,246,241,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:box-shadow .3s,transform .4s var(--ease)}
.hd.is-scrolled{box-shadow:0 1px 0 var(--line)}
.hd.is-hidden{transform:translateY(-100%)}
.hd__in{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);height:76px;display:flex;align-items:center;gap:28px}
.logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none;margin-right:auto;color:var(--clay)}
.logo__sun{width:44px;height:26px}
.logo b{display:block;font:500 1.55rem/1 var(--serif);color:var(--plum);letter-spacing:.02em}
.logo small{display:block;font-size:.64rem;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin-top:3px}
.hd__nav ul{display:flex;gap:6px}
.hd__nav a{display:block;text-decoration:none;font-size:.95rem;padding:9px 16px;border-radius:999px;color:var(--muted);transition:background .2s,color .2s}
.hd__nav a:hover{color:var(--plum);background:var(--blush)}
.hd__nav a[aria-current]{color:var(--plum);background:var(--blush)}
.hd__mobile{display:none}
.hd__tools{display:flex;align-items:center;gap:12px}
.lang{display:flex;background:var(--blush);border-radius:999px;padding:3px;font-size:.78rem;font-weight:500}
.lang a,.lang span{padding:6px 10px;border-radius:999px;text-decoration:none}
.lang span{background:var(--white);box-shadow:0 1px 3px rgba(58,43,51,.12)}
.lang a{color:var(--muted)}
.hd__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--blush)}
.hd__icon svg{width:20px;height:20px}
.hd__icon:hover{background:var(--blush-2)}
.hd__burger{display:none;width:44px;height:44px;border:0;background:var(--blush);border-radius:50%;position:relative;cursor:pointer}
.hd__burger i{position:absolute;left:13px;right:13px;height:1.5px;background:currentColor;transition:transform .3s var(--ease),top .3s var(--ease)}
.hd__burger i:first-of-type{top:18px}.hd__burger i:last-of-type{top:25px}
.hd__burger[aria-expanded="true"] i:first-of-type{top:21.5px;transform:rotate(45deg)}
.hd__burger[aria-expanded="true"] i:last-of-type{top:21.5px;transform:rotate(-45deg)}
@media(max-width:960px){
  .hd__burger{display:block}.hd__cta{display:none}
  .hd__nav{position:fixed;inset:76px 12px auto;background:var(--white);border-radius:var(--r);padding:16px;box-shadow:0 30px 60px -30px rgba(58,43,51,.4);opacity:0;visibility:hidden;transform:translateY(-8px) scale(.98);transform-origin:top;transition:opacity .25s,transform .35s var(--ease),visibility 0s .35s;max-height:calc(100vh - 100px);overflow:auto}
  .hd__nav.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .35s var(--ease)}
  .hd__nav ul{flex-direction:column}
  .hd__nav a{font-size:1.15rem;padding:14px 16px}
  .hd__mobile{display:flex;flex-direction:column;gap:10px;padding:14px 4px 4px;font-size:.92rem;color:var(--muted)}
}
@media(max-width:420px){.hd__icon{display:none}}

/* ---------- Héros ---------- */
.hero{padding-block:clamp(36px,6vw,80px) clamp(64px,8vw,110px);overflow:hidden}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,6vw,90px);align-items:center}
.hero__t{font:400 clamp(2.8rem,6.4vw,5.6rem)/1.02 var(--serif);letter-spacing:-.02em;text-wrap:balance}
.hero__t em{color:var(--clay-d)}
.hero__lead{max-width:44ch;margin-top:24px;font-size:1.12rem;color:var(--muted)}
.hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:32px}
.hero__trust{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px}
.hero__trust li{font-size:.84rem;padding:7px 14px;border-radius:999px;background:var(--white);border:1px solid var(--line);display:flex;align-items:center;gap:8px}
.hero__trust li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--sage)}
.hero__media{position:relative}
.hero__arch{border-radius:999px 999px var(--r) var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--blush)}
.hero__arch img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;animation:rise 1.6s var(--ease) both}
@keyframes rise{from{transform:scale(1.08);opacity:.4}}
.hero__card{position:absolute;left:-28px;bottom:36px;display:flex;align-items:center;gap:12px;background:var(--white);border-radius:var(--r-s);padding:14px 18px;box-shadow:0 24px 50px -24px rgba(58,43,51,.4);font-size:.9rem}
.hero__card b{display:block;font-weight:500}
.hero__card span{color:var(--muted)}
.hero__card-dot{width:10px;height:10px;border-radius:50%;background:#5E9B6B;box-shadow:0 0 0 5px rgba(94,155,107,.18);animation:pulse 2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 9px rgba(94,155,107,.06)}}
@media(max-width:860px){.hero__grid{grid-template-columns:1fr}.hero__media{max-width:420px;margin:0 auto;width:100%}.hero__card{left:12px}}

/* ---------- Sections ---------- */
.sec{padding-block:clamp(72px,9vw,124px)}
.sec--blush{background:var(--blush)}
.sec--plum{background:var(--plum);color:var(--porcelain)}
.sec__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px 28px;margin-bottom:clamp(36px,4vw,56px)}
.sec__head .eyebrow{flex-basis:100%;margin-bottom:-6px}
.sec__t{font:400 clamp(2rem,4.2vw,3.4rem)/1.06 var(--serif);letter-spacing:-.015em;max-width:22ch;text-wrap:balance}
.sec__t em{color:var(--clay-d)}
.sec--plum .sec__t em{color:#E9B9A5}
.sec__lead{max-width:44ch;color:var(--muted)}

/* ---------- Visage interactif ---------- */
.face{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,72px);align-items:center;background:var(--white);border-radius:var(--r);padding:clamp(20px,4vw,56px)}
.face__svg{width:100%;max-width:380px;margin:0 auto;height:auto;overflow:visible}
.face__line{fill:none;stroke:var(--plum);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.7}
.face__line--soft{opacity:.35}
.fz{cursor:pointer;outline:none}
.fz__area{fill:var(--clay);fill-opacity:0;stroke:var(--clay);stroke-opacity:0;stroke-width:1.2;stroke-dasharray:4 4;transition:fill-opacity .3s,stroke-opacity .3s}
.fz__dot{fill:var(--clay);transition:r .3s var(--ease)}
.fz:hover .fz__area,.fz:focus-visible .fz__area{fill-opacity:.1;stroke-opacity:.7}
.fz:focus-visible .fz__dot{stroke:var(--plum);stroke-width:2}
.fz[aria-pressed="true"] .fz__area{fill-opacity:.22;stroke-opacity:1;stroke-dasharray:none}
.fz[aria-pressed="true"] .fz__dot{r:7;fill:var(--plum)}
@media(prefers-reduced-motion:no-preference){.fz__dot{animation:dot 2.6s var(--ease) infinite}.fz:nth-of-type(2n) .fz__dot{animation-delay:.6s}}
@keyframes dot{50%{opacity:.45}}
.face__hint{color:var(--muted);margin-bottom:14px}
.face__zones{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.face__title{font:400 1.8rem/1.2 var(--serif);margin-bottom:12px}
.face__list{display:flex;flex-direction:column;gap:8px}
.face__list li button{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;border-radius:var(--r-s);border:1px solid var(--line);background:var(--porcelain);cursor:pointer;transition:border-color .2s,transform .3s var(--ease)}
.face__list li button:hover{border-color:var(--clay);transform:translateX(4px)}
.face__list b{font-weight:500}
.face__list small{color:var(--muted);font-size:.84rem;white-space:nowrap}
@media(max-width:860px){.face{grid-template-columns:1fr}.face__svg{max-width:260px}}
.pill{display:inline-flex;align-items:center;min-height:40px;padding:7px 16px;border-radius:999px;border:1px solid var(--line);background:var(--white);font-size:.88rem;cursor:pointer;transition:all .2s}
.pill:hover{border-color:var(--plum)}
.pill[aria-pressed="true"]{background:var(--plum);color:var(--porcelain);border-color:var(--plum)}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills--static .pill{cursor:default;background:var(--blush);border-color:transparent}

/* ---------- Approche ---------- */
.approach{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
.approach__imgs{position:relative;padding-bottom:12%}
.approach__imgs .a1{width:82%;border-radius:999px 999px var(--r) var(--r);aspect-ratio:3/4;object-fit:cover}
.approach__imgs .a2{position:absolute;right:0;bottom:0;width:46%;aspect-ratio:1;object-fit:cover;border-radius:50%;border:8px solid var(--blush)}
.pillars{margin-top:28px;display:flex;flex-direction:column;gap:4px;counter-reset:p}
.pillars li{display:grid;grid-template-columns:44px 1fr;gap:4px 14px;padding:16px 0;border-top:1px solid var(--line);counter-increment:p}
.pillars li::before{content:counter(p);grid-row:span 2;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--white);font:500 1rem var(--serif);color:var(--clay-d)}
.pillars b{font:500 1.3rem/1.2 var(--serif)}
.pillars p{color:var(--muted);font-size:.96rem}
@media(max-width:860px){.approach{grid-template-columns:1fr}}

/* ---------- Médecins ---------- */
.docs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,32px)}
.docs a{display:flex;flex-direction:column;gap:4px;text-decoration:none}
.docs__img{display:block;border-radius:999px 999px var(--r) var(--r);overflow:hidden;aspect-ratio:4/5;margin-bottom:12px;background:var(--blush)}
.docs__img img{width:100%;height:100%;object-fit:cover;object-position:50% 25%;transition:transform 1s var(--ease)}
.docs a:hover img{transform:scale(1.04)}
.docs b{font:500 1.35rem/1.2 var(--serif)}
.docs span:last-child{color:var(--muted);font-size:.92rem}
@media(max-width:760px){.docs{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.docs{grid-template-columns:1fr}}
.urgent{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center}
.urgent__nums{display:flex;flex-direction:column;gap:12px}
.urgent__nums a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;border-radius:var(--r-s);background:var(--plum-2);text-decoration:none;transition:background .2s}
.urgent__nums a:hover{background:#5A4250}
.urgent__nums span{color:rgba(250,246,241,.75);font-size:.92rem}
.urgent__nums b{font:500 1.6rem/1 var(--serif);color:#F5D5C6}
@media(max-width:860px){.urgent{grid-template-columns:1fr}}

/* ---------- En-tête de page ---------- */
.ph{padding-block:clamp(40px,6vw,88px) clamp(32px,4vw,56px)}
.crumb{display:flex;gap:8px;font-size:.84rem;color:var(--muted);margin-bottom:22px}
.crumb a{color:var(--muted)}
.ph__t{font:400 clamp(2.6rem,6vw,5rem)/1.02 var(--serif);letter-spacing:-.02em;max-width:18ch;text-wrap:balance}
.ph__t em{color:var(--clay-d)}
.ph__lead{max-width:58ch;color:var(--muted);font-size:1.08rem;margin-top:20px}

/* ---------- Soins ---------- */
.care{padding-bottom:clamp(72px,9vw,120px)}
.care__filters{display:grid;grid-template-columns:260px 1fr;gap:24px;align-items:start;background:var(--white);border-radius:var(--r);padding:20px 24px;margin-bottom:16px}
.care__count{font-size:.9rem;color:var(--muted);margin:8px 4px 20px}
.care__empty{padding:24px;color:var(--muted)}
@media(max-width:760px){.care__filters{grid-template-columns:1fr}}
.tcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tcard[hidden]{display:none}
.tcard__btn{display:flex;flex-direction:column;gap:10px;height:100%;width:100%;text-align:left;padding:24px;border-radius:var(--r);background:var(--white);border:1px solid transparent;cursor:pointer;transition:border-color .25s,transform .4s var(--ease),box-shadow .4s}
.tcard__btn:hover{border-color:var(--blush-2);transform:translateY(-4px);box-shadow:0 24px 40px -30px rgba(58,43,51,.45)}
.tcard__tags{display:flex;flex-wrap:wrap;gap:6px}
.tcard__tags span{font-size:.72rem;padding:3px 10px;border-radius:999px;background:var(--blush);color:var(--plum)}
.tcard__tags .is-med{background:#E3EADF;color:#3B4A35}
.tcard__t{font:500 1.45rem/1.15 var(--serif)}
.tcard__d{color:var(--muted);font-size:.94rem;flex:1}
.tcard__meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.82rem;color:var(--muted);padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:960px){.tcards{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.tcards{grid-template-columns:1fr}}
.notice{margin-top:40px;padding:22px 26px;border-radius:var(--r);background:var(--blush);display:grid;gap:6px}
.notice b{font:500 1.2rem var(--serif)}
.notice p{color:var(--muted);font-size:.95rem;max-width:80ch}
.tdlg__in{position:relative;padding:clamp(24px,4vw,44px);display:flex;flex-direction:column;gap:14px}
.tdlg__in h2{font:400 2.2rem/1.1 var(--serif);margin-top:-6px;padding-right:40px}
.tdlg__in>p{color:var(--muted)}
.tdlg__x{position:absolute;top:16px;right:16px;width:40px;height:40px;border-radius:50%;border:0;background:var(--blush);font-size:1.4rem;cursor:pointer}
.tdlg__note{font-size:.84rem;background:var(--porcelain);padding:12px 14px;border-radius:12px}
.tdlg__in .btn{align-self:flex-start}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.kv div{padding:10px 0;border-bottom:1px solid var(--line)}
.kv dt{font-size:.78rem;color:var(--muted)}
.kv dd{font-weight:500}
.kv--light div{border-color:var(--line-l)}
.kv--light dt{color:rgba(250,246,241,.7)}
.kv--light a{color:#F5D5C6}
@media(max-width:560px){.kv{grid-template-columns:1fr}}

/* ---------- Praticiens ---------- */
.drs{display:flex;flex-direction:column;gap:clamp(40px,6vw,80px);padding-bottom:clamp(72px,9vw,120px)}
.dr{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,5vw,72px);align-items:center}
.dr:nth-child(even) .dr__img{order:2}
.dr__img img{border-radius:999px 999px var(--r) var(--r);aspect-ratio:4/5;object-fit:cover;object-position:50% 25%;width:100%}
.dr__txt{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.dr h2{font:400 clamp(2rem,3.6vw,3rem)/1.05 var(--serif);margin-top:-6px}
.dr__txt>p{color:var(--muted);max-width:56ch}
.dr .kv{width:100%}
@media(max-width:760px){.dr{grid-template-columns:1fr}.dr:nth-child(even) .dr__img{order:0}.dr__img img{aspect-ratio:1}}

/* ---------- Rendez-vous ---------- */
.rdv{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(24px,4vw,48px);padding-bottom:clamp(72px,9vw,120px);align-items:start}
.rdv__main{display:flex;flex-direction:column;gap:20px}
.rdv__block{background:var(--white);border-radius:var(--r);padding:clamp(20px,3vw,32px);border:0}
.rdv__h{display:flex;align-items:center;gap:12px;font:400 1.5rem/1.2 var(--serif);margin-bottom:18px}
.rdv__h span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--blush);font:500 .95rem var(--sans);color:var(--clay-d)}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt>span{display:flex;flex-direction:column;gap:2px;padding:16px 18px;border-radius:var(--r-s);border:1px solid var(--line);cursor:pointer;height:100%;transition:all .2s;position:relative}
.opt b{font-weight:500}
.opt small{color:var(--muted);font-size:.84rem}
.opt em{font-style:normal;font-size:.82rem;color:var(--clay-d);margin-top:4px}
.opt>span:hover{border-color:var(--plum)}
.opt input:checked+span{border-color:var(--plum);background:var(--porcelain);box-shadow:inset 0 0 0 1px var(--plum)}
.opt input:focus-visible+span{outline:2px solid var(--clay-d);outline-offset:2px}
.opt--doc>span{padding-left:74px;min-height:72px;justify-content:center}
.opt__face{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;object-fit:cover}
@media(max-width:600px){.opts{grid-template-columns:1fr}}
.rdv__when{display:grid;grid-template-columns:1.1fr 1fr;gap:24px}
.rdv__day{font:400 1.2rem/1.3 var(--serif);margin-bottom:12px}.rdv__day::first-letter,.pa__next h2::first-letter{text-transform:uppercase}
@media(max-width:700px){.rdv__when{grid-template-columns:1fr}}
.rdv__sum{position:sticky;top:100px;background:var(--plum);color:var(--porcelain);border-radius:var(--r);padding:26px}
.rdv__sum .eyebrow{color:#E9B9A5}
.rdv__sum dl div{padding:10px 0;border-bottom:1px solid var(--line-l)}
.rdv__sum dt{font-size:.76rem;color:rgba(250,246,241,.65)}
.rdv__sum dd{font-weight:500}
.rdv__addr{font-size:.86rem;color:rgba(250,246,241,.7);margin-top:14px}
.rdv__ok{background:var(--white);border-radius:var(--r);padding:clamp(24px,4vw,44px);border:2px solid var(--sage)}
.rdv__ok h2{font:400 2.2rem/1.1 var(--serif);margin-bottom:10px}
.rdv__ok p{color:var(--muted);margin-bottom:8px}
.rdv__ok ul{margin:12px 0 18px;display:flex;flex-direction:column;gap:6px}
.rdv__ok li{padding-left:22px;position:relative}
.rdv__ok li::before{content:"";position:absolute;left:4px;top:.65em;width:7px;height:7px;border-radius:50%;background:var(--sage)}
.rdv__ok .btn{margin-right:8px;margin-top:6px}
@media(max-width:960px){.rdv{grid-template-columns:1fr}.rdv__sum{position:static;order:-1}}

/* ---------- Champs ---------- */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;border:0}
.field label,.field legend{font-size:.9rem;font-weight:500;margin-bottom:4px}
.field input,.field select,.field textarea{width:100%;min-height:50px;padding:12px 16px;border-radius:12px;border:1px solid var(--line);background:var(--porcelain);transition:border-color .2s,box-shadow .2s}
.field select{appearance:none;background:var(--porcelain) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%233A2B33' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 16px center/11px;padding-right:40px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--plum);box-shadow:0 0 0 4px rgba(181,105,79,.16)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:560px){.row2{grid-template-columns:1fr}}
.radio-pill input{position:absolute;opacity:0;width:1px;height:1px}
.radio-pill span{display:inline-flex;min-height:42px;align-items:center;padding:8px 20px;border-radius:999px;border:1px solid var(--line);cursor:pointer;background:var(--porcelain)}
.radio-pill input:checked+span{background:var(--plum);color:var(--porcelain);border-color:var(--plum)}
.radio-pill input:focus-visible+span{outline:2px solid var(--clay-d);outline-offset:2px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--muted);margin:6px 0 16px;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--plum);margin-top:3px;flex:none}
.search{display:flex;align-items:center;gap:10px;background:var(--white);border-radius:999px;padding:4px 18px;border:1px solid var(--line);min-width:min(340px,100%)}
.search svg{width:18px;height:18px;flex:none;color:var(--muted)}
.search input{border:0;background:transparent;padding:10px 0;width:100%;outline:none}
.search:focus-within{border-color:var(--plum)}

/* ---------- Infos ---------- */
.info{padding-bottom:clamp(72px,9vw,120px)}
.info__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card{background:var(--white);border-radius:var(--r);padding:clamp(20px,3vw,32px)}
.card h2,.card__t{font:400 1.6rem/1.2 var(--serif);margin-bottom:14px}
.card--plum{background:var(--plum);color:var(--porcelain)}
.hours{width:100%;border-collapse:collapse}
.hours th,.hours td{padding:9px 0;border-bottom:1px solid var(--line);text-align:left;font-weight:400}
.hours td{text-align:right;font-variant-numeric:tabular-nums}
.hours tr.is-today th,.hours tr.is-today td{font-weight:600;color:var(--clay-d)}
.open-now{margin-top:14px;font-size:.92rem;display:flex;align-items:center;gap:8px}
.open-now::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--muted)}
.open-now.is-open::before{background:#5E9B6B}
.access li{padding:9px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.access b{display:inline-block;min-width:92px;font-weight:500}
.fees li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.fees b{font-weight:500}
.info__photo{margin-top:16px}
.info__photo img{width:100%;aspect-ratio:21/8;object-fit:cover;border-radius:var(--r)}
@media(max-width:860px){.info__grid{grid-template-columns:1fr}.info__photo img{aspect-ratio:16/9}}

/* ---------- FAQ ---------- */
.faqp{padding-bottom:clamp(72px,9vw,120px);max-width:960px}
.faqp__tools{display:flex;flex-direction:column;gap:14px;margin-bottom:24px}
.acc-list{display:flex;flex-direction:column;gap:8px}
.acc-item{background:var(--white);border-radius:var(--r-s)}
.acc-item[hidden]{display:none}
.acc-item h2 button{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;text-align:left;padding:20px 22px;background:none;border:0;font:400 1.2rem/1.35 var(--serif);cursor:pointer}
.acc-item h2 button span{position:relative;width:28px;height:28px;flex:none;border-radius:50%;background:var(--blush)}
.acc-item h2 button span::before,.acc-item h2 button span::after{content:"";position:absolute;left:8px;right:8px;top:13.5px;height:1.5px;background:var(--plum);transition:transform .3s var(--ease)}
.acc-item h2 button span::after{transform:rotate(90deg)}
.acc-item h2 button[aria-expanded="true"] span::after{transform:none}
.acc-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease)}
.acc-a>div{overflow:hidden}
.acc-item h2:has(button[aria-expanded="true"])+.acc-a{grid-template-rows:1fr}
.acc-a p{padding:0 22px 20px;color:var(--muted);max-width:72ch}

/* ---------- Connexion & espace patient ---------- */
.auth{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,72px);padding-block:clamp(32px,5vw,72px) clamp(64px,8vw,110px);align-items:center}
.auth__card{background:var(--white);border-radius:var(--r);padding:clamp(24px,4vw,48px)}
.auth__card h1{font:400 clamp(2.2rem,4vw,3.2rem)/1.05 var(--serif);margin-bottom:10px}
.auth__card>p{color:var(--muted);margin-bottom:24px}
.auth__card form{display:flex;flex-direction:column;gap:8px}
.auth__itsme{text-align:center;font-size:.84rem;color:var(--muted);margin-top:6px}
.auth__img img{border-radius:999px 999px var(--r) var(--r);aspect-ratio:4/5;object-fit:cover;width:100%}
@media(max-width:860px){.auth{grid-template-columns:1fr}.auth__img{display:none}}
.pa{padding-block:clamp(32px,5vw,64px) clamp(72px,9vw,120px)}
.pa__head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.pa__head h1{font:400 clamp(2.4rem,4.6vw,3.6rem)/1 var(--serif)}
.pa__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pa__next{grid-column:span 2;background:var(--plum);color:var(--porcelain)}
.pa__next .eyebrow{color:#E9B9A5}
.pa__next h2{font:400 clamp(1.8rem,3vw,2.4rem)/1.1 var(--serif)}
.pa__next p{color:rgba(250,246,241,.8)}
.pa__next .link{color:var(--porcelain)}
.pa__actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}
.pa__care{grid-column:span 2}
.todo li label{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}
.todo input{width:18px;height:18px;accent-color:var(--sage);margin-top:4px;flex:none}
.todo input:checked+span{text-decoration:line-through;color:var(--muted)}
.progress{height:8px;border-radius:9px;background:var(--blush);overflow:hidden;margin:16px 0 6px}
.progress i{display:block;height:100%;background:var(--clay);border-radius:9px}
.card .btn{margin-top:10px}
.files li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.files button{background:none;border:0;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.tag{font-size:.72rem;padding:3px 9px;border-radius:999px;background:var(--blush)}
.steps-list{counter-reset:s;display:flex;flex-direction:column;gap:8px;margin:14px 0}
.steps-list li{counter-increment:s;display:grid;grid-template-columns:28px 1fr;gap:10px}
.steps-list li::before{content:counter(s);width:24px;height:24px;border-radius:50%;background:var(--blush);display:grid;place-items:center;font-size:.8rem;color:var(--clay-d)}
@media(max-width:960px){.pa__grid{grid-template-columns:1fr 1fr}.pa__next,.pa__care{grid-column:1/-1}}
@media(max-width:600px){.pa__grid{grid-template-columns:1fr}}

/* ---------- Légal, 404, pied ---------- */
.legal{max-width:860px;padding-bottom:clamp(72px,9vw,120px)}
.legal h2{font:400 1.7rem/1.2 var(--serif);margin:36px 0 12px}
.legal h2:first-child{margin-top:0}
.legal p{margin-bottom:12px;color:#4D3F47}
.legal a{color:var(--clay-d)}
.legal__table{overflow-x:auto;background:var(--white);border-radius:var(--r-s);padding:8px 16px}
.legal table{width:100%;border-collapse:collapse;font-size:.88rem}
.legal th,.legal td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--line);vertical-align:top}
.legal th{font-weight:500}
.legal__btn{background:var(--plum);color:var(--porcelain);border:0;border-radius:999px;padding:12px 22px;cursor:pointer}
.legal__updated{margin-top:32px;font-size:.84rem;color:var(--muted)!important}
.nf{min-height:60vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:14px;padding-block:80px}
.nf__n{font:400 clamp(7rem,20vw,15rem)/.85 var(--serif);color:var(--blush-2)}
.nf h1{font:400 clamp(2rem,4vw,3rem)/1.1 var(--serif)}
.nf p{color:var(--muted)}
.nf__links{display:flex;flex-wrap:wrap;gap:10px}
.ft{background:var(--white);padding-top:clamp(56px,7vw,96px);font-size:.92rem;color:var(--muted)}
.ft__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px;padding-bottom:40px}
.ft a{color:var(--plum)}
.ft address{font-style:normal}
.ft__h{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--clay-d);margin-bottom:12px}
.ft__law{font-size:.78rem;margin-top:14px;max-width:46ch}
.ft__hours li{display:flex;justify-content:space-between;gap:12px;padding:2px 0}
.logo--ft{margin-bottom:12px}
.ft__bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px 24px;padding-block:20px 28px;border-top:1px solid var(--line);font-size:.82rem}
.ft__bottom nav{display:flex;flex-wrap:wrap;gap:6px 18px}
.ft__bottom a{text-decoration:none}
.ft p+p{margin-top:10px}
@media(max-width:900px){.ft__grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ft__grid{grid-template-columns:1fr}}
dialog.k-dialog{border-radius:var(--r)}
@media (prefers-reduced-motion:reduce){.hero__arch img{animation:none}}

.ft__bottom p a{text-decoration:underline;text-underline-offset:3px}
