
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;
  src:url("assets/fonts/inter-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:400;font-display:swap;
  src:url("assets/fonts/poppins-400-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:500;font-display:swap;
  src:url("assets/fonts/poppins-500-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:600;font-display:swap;
  src:url("assets/fonts/poppins-600-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Poppins";font-style:normal;font-weight:700;font-display:swap;
  src:url("assets/fonts/poppins-700-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  /* Couleurs reprises du kit Elementor du site actuel */
  --navy:#1C244B; --navy-900:#131A38;
  --ink:#1C244B; --ink-2:#324A6D; --ink-3:#5F6E87;
  /* --blue est la teinte d'origine du site : on la garde pour les aplats et
     les icônes, mais le texte blanc se pose sur --blue-btn, assez sombre
     pour tenir le contraste 4,5:1 demandé par le RGAA. */
  --blue:#467FF7; --blue-btn:#3369E0; --blue-700:#2F63D8; --blue-900:#1E479F;
  --blue-tint:#EDF3FE; --blue-pale:#F7FAFF;
  /* Même logique côté pêche : --peach sur fond sombre, --peach-700 sur clair. */
  --peach:#FFBC7D; --peach-700:#9E5A16; --peach-tint:#FFF4E8;
  --paper:#FFFFFF; --paper-2:#F3F5F8; --paper-3:#F9FAFD;
  --line:#E3E8F1; --line-2:#EEF1F7;

  --r-sm:10px; --r-md:14px; --r-lg:20px; --r-xl:28px; --r-pill:999px;
  --sh-1:0 1px 2px rgba(28,36,75,.04), 0 10px 30px -22px rgba(28,36,75,.35);
  --sh-2:0 2px 4px rgba(28,36,75,.04), 0 28px 60px -34px rgba(28,36,75,.45);

  --wrap:1180px;
  --h-header:76px;

  --f-display:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --f-text:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--paper);color:var(--ink-2);
  font-family:var(--f-text);font-size:17px;line-height:1.68;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
/* height:auto est indispensable : les attributs width/height du HTML servent
   à réserver la place au chargement, mais sans cette règle ils figent la
   hauteur et l'image se retrouve étirée. Les blocs qui veulent une hauteur
   imposée (hero, vignettes) la redéclarent plus bas. */
img{max-width:100%;display:block;height:auto}
a{color:var(--blue-700)}
h1,h2,h3,h4{font-family:var(--f-display);color:var(--ink);margin:0;line-height:1.14;letter-spacing:-.02em}
h1{font-size:clamp(38px,5.4vw,62px);font-weight:700}
h2{font-size:clamp(28px,3.4vw,42px);font-weight:600}
h3{font-size:clamp(19px,1.6vw,23px);font-weight:600;line-height:1.28}
h4{font-size:17px;font-weight:600;line-height:1.35}
p{margin:0 0 1.05em}
p:last-child{margin-bottom:0}
ul{margin:0;padding:0}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:24px}
.wrap--narrow{max-width:860px}
.section{padding:clamp(64px,8vw,110px) 0}
.section--tight{padding:clamp(48px,6vw,78px) 0}
.section--paper2{background:var(--paper-2)}
.section--pale{background:var(--blue-pale)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}

/* ---------- Blocs de titre ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--f-display);font-size:12.5px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--peach-700);
  margin:0 0 16px;
}
.eyebrow::before{content:"";width:26px;height:2px;border-radius:2px;background:var(--peach)}
.lead{font-size:clamp(17.5px,1.5vw,20px);line-height:1.62;color:var(--ink-2)}
.head{max-width:660px;margin-bottom:clamp(34px,4vw,54px)}
.head--center{margin-inline:auto;text-align:center}
.head--center .eyebrow{justify-content:center}
.head p{margin-top:16px}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--f-display);font-size:15.5px;font-weight:600;line-height:1;
  padding:15px 26px;border-radius:var(--r-pill);border:1px solid transparent;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:transform .18s cubic-bezier(.2,.8,.3,1),box-shadow .2s,background-color .2s,color .2s,border-color .2s;
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn svg{width:18px;height:18px;flex:0 0 auto}
.btn img.ico-doctolib{width:18px;height:18px;border-radius:5px;flex:0 0 auto}
.btn--primary{background:var(--blue-btn);color:#fff;box-shadow:0 10px 26px -12px rgba(47,99,216,.7)}
.btn--primary:hover{background:var(--blue-900);box-shadow:0 16px 34px -14px rgba(47,99,216,.8)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--ink-3);background:var(--paper-2)}
.btn--light{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.34);backdrop-filter:blur(6px)}
.btn--light:hover{background:rgba(255,255,255,.24)}
.btn--sm{padding:11px 19px;font-size:14.5px}
.btn--wide{padding:17px 34px;font-size:16.5px}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btns--center{justify-content:center}

/* ---------- Header ---------- */
.header{
  position:sticky;top:0;z-index:70;background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s;
}
.header.is-stuck{border-bottom-color:var(--line-2);box-shadow:0 1px 22px -10px rgba(28,36,75,.28)}
/* La barre est plus large que le corps du site : cinq entrées, le numéro et
   le bouton de rendez-vous ne tiennent pas dans 1180 px. */
.header .wrap{max-width:1300px}
.header__in{display:flex;align-items:center;gap:26px;height:var(--h-header)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex:0 0 auto}
.brand img{height:46px;width:46px;object-fit:contain}
.brand__txt{display:grid;line-height:1.15}
.brand__name{font-family:var(--f-display);font-size:16px;font-weight:600;color:var(--ink);letter-spacing:-.01em}
.brand__sub{font-size:11.5px;font-weight:500;letter-spacing:.11em;text-transform:uppercase;color:var(--peach-700)}
.menu{display:flex;align-items:center;margin-left:auto;min-width:0}
.nav{display:flex;gap:2px;flex:0 0 auto}
.nav a{
  text-decoration:none;font-family:var(--f-display);font-size:15px;font-weight:500;
  color:var(--ink-2);white-space:nowrap;padding:9px 13px;border-radius:var(--r-pill);
  transition:background-color .18s,color .18s;
}
.nav a:hover{background:var(--paper-2);color:var(--ink)}
.nav a[aria-current]{background:var(--blue-tint);color:var(--blue-900);font-weight:600}
.header__cta{display:flex;align-items:center;gap:14px;flex:0 0 auto;margin-left:20px}
.header__tel{
  display:inline-flex;align-items:center;gap:7px;text-decoration:none;
  font-family:var(--f-display);font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;
}
.header__tel svg{width:16px;height:16px;color:var(--blue)}
.header__tel:hover{color:var(--blue-700)}
.menu__tel{display:none}
.burger{
  display:none;flex:0 0 auto;margin-right:-10px;width:44px;height:44px;padding:0;
  background:none;border:0;cursor:pointer;align-items:center;justify-content:center;
}
.burger__bars{display:grid;gap:5px;width:22px}
.burger__bars span{display:block;height:2px;border-radius:2px;background:var(--ink);
  transition:transform .25s cubic-bezier(.2,.8,.3,1),opacity .18s}
.header.is-open .burger__bars span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.header.is-open .burger__bars span:nth-child(2){opacity:0}
.header.is-open .burger__bars span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--navy)}
.hero__bg{position:absolute;inset:0;z-index:-2}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 38%}
.hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(104deg,rgba(19,26,56,.93) 0%,rgba(28,36,75,.86) 42%,rgba(28,36,75,.42) 100%);
}
.hero__in{padding:clamp(76px,10vw,132px) 0 clamp(68px,9vw,116px);max-width:720px}
.hero .eyebrow{color:var(--peach)}
.hero h1{color:#fff}
.hero__sub{margin-top:20px;font-size:clamp(17px,1.6vw,20.5px);line-height:1.6;color:rgba(255,255,255,.86);max-width:560px}
.hero .btns{margin-top:34px}
.hero__facts{
  display:flex;flex-wrap:wrap;gap:10px 26px;margin:38px 0 0;list-style:none;
  padding-top:26px;border-top:1px solid rgba(255,255,255,.2);
}
.hero__facts li{
  display:flex;align-items:center;gap:9px;font-size:14.5px;font-weight:500;color:rgba(255,255,255,.9);
}
.hero__facts svg{width:17px;height:17px;color:var(--peach);flex:0 0 auto}

/* Bandeau infos pratiques, à cheval sur le hero */
.infobar{position:relative;z-index:2;margin-top:clamp(-48px,-4vw,-32px)}
.infobar__grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-2);overflow:hidden;
}
.infobar__cell{padding:26px 24px;border-right:1px solid var(--line-2)}
.infobar__cell:last-child{border-right:0}
.infobar__ico{
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  background:var(--blue-tint);color:var(--blue-700);margin-bottom:14px;
}
.infobar__ico svg{width:19px;height:19px}
.infobar h3{font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:7px}
.infobar p{font-size:15.5px;line-height:1.5;color:var(--ink)}
.infobar a{color:var(--ink);text-decoration:none;font-weight:600}
.infobar a:hover{color:var(--blue-700)}
.infobar small{display:block;font-size:13.5px;color:var(--ink-3);margin-top:4px}

/* ---------- Cartes ---------- */
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:28px;box-shadow:var(--sh-1);
}
.grid{display:grid;gap:22px}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

/* ---------- Deux colonnes texte + image ---------- */
.split{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(32px,5vw,72px);align-items:center}
.split--rev .split__media{order:-1}
.split__media{position:relative}
.split__media img{width:100%;border-radius:var(--r-xl);box-shadow:var(--sh-2)}
.split__badge{
  position:absolute;right:-14px;bottom:-18px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);padding:18px 22px;box-shadow:var(--sh-2);max-width:230px;
}
.split__badge strong{display:block;font-family:var(--f-display);font-size:26px;color:var(--ink);line-height:1.1}
.split__badge span{font-size:13.5px;color:var(--ink-3)}

/* ---------- Profils (pour qui ?) ---------- */
.profiles{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.profile{
  position:relative;display:block;overflow:hidden;border-radius:var(--r-lg);
  text-decoration:none;background:var(--navy);aspect-ratio:1/1.06;box-shadow:var(--sh-1);
}
.profile img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .55s cubic-bezier(.2,.8,.3,1),opacity .3s;opacity:.82;
}
.profile:hover img{transform:scale(1.06);opacity:.7}
.profile::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(19,26,56,.92) 4%,rgba(19,26,56,.28) 52%,rgba(19,26,56,.06) 100%);
}
.profile__label{
  position:absolute;left:20px;right:20px;bottom:18px;z-index:2;
  font-family:var(--f-display);font-size:17.5px;font-weight:600;color:#fff;letter-spacing:-.01em;
}
.profile__label span{
  display:block;font-family:var(--f-text);font-size:13px;font-weight:500;
  color:var(--peach);margin-top:4px;letter-spacing:0;
}

/* ---------- Étapes ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:s}
.step{position:relative;padding:30px 26px 28px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--sh-1)}
.step__n{
  display:inline-grid;place-items:center;width:42px;height:42px;border-radius:12px;
  background:var(--navy);color:#fff;font-family:var(--f-display);font-weight:600;font-size:17px;margin-bottom:16px;
}
.step__time{
  display:inline-block;font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--peach-700);background:var(--peach-tint);padding:5px 11px;border-radius:var(--r-pill);margin-bottom:12px;
}
.step h3{margin-bottom:9px}
.step p{font-size:15.5px;color:var(--ink-2)}

/* ---------- Équipe ---------- */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.tcard{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-1);
  transition:transform .22s cubic-bezier(.2,.8,.3,1),box-shadow .22s;
}
.tcard:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
.tcard__ph{aspect-ratio:4/4.4;position:relative;background:var(--paper-2);overflow:hidden}
.tcard__ph img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.tcard__body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1}
.tcard__body h3{margin-bottom:3px}
.tcard__role{font-size:13px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--peach-700);margin-bottom:14px}
.tcard__body p{font-size:15.5px;color:var(--ink-2)}
.tcard__link{
  margin-top:auto;padding-top:18px;display:inline-flex;align-items:center;gap:7px;
  font-family:var(--f-display);font-size:14.5px;font-weight:600;color:var(--blue-700);text-decoration:none;
}
.tcard__link:hover{gap:11px}
.tcard__link svg{width:15px;height:15px;transition:transform .2s}

/* Portrait de remplacement, en attendant les photos */
.mono{
  position:absolute;inset:0;display:grid;place-items:center;gap:0;
  background:linear-gradient(150deg,#EAF0FB 0%,#F5EFE7 100%);
}
.mono__ini{
  font-family:var(--f-display);font-size:64px;font-weight:600;color:var(--navy);
  opacity:.26;letter-spacing:.02em;line-height:1;
}
.mono__tag{
  position:absolute;left:0;right:0;bottom:16px;text-align:center;
  font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
}

/* Fiche détaillée d'un praticien */
.bio{
  display:grid;grid-template-columns:300px 1fr;gap:clamp(28px,4vw,56px);
  align-items:start;padding-top:clamp(44px,5vw,64px);
}
.bio + .bio{margin-top:clamp(48px,6vw,76px);border-top:1px solid var(--line);}
.bio__aside{position:sticky;top:104px}
.bio__ph{position:relative;aspect-ratio:4/4.6;border-radius:var(--r-xl);overflow:hidden;
  background:var(--paper-2);box-shadow:var(--sh-1)}
.bio__ph img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.bio__meta{margin-top:20px;display:grid;gap:9px}
.bio__meta div{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--ink-2)}
.bio__meta svg{width:16px;height:16px;color:var(--blue);flex:0 0 auto;margin-top:4px}
.bio__role{font-size:13px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--peach-700);margin-bottom:6px}
.bio h2{margin-bottom:16px}
.bio__body > p{margin-bottom:1.05em}

/* Frise de parcours */
.timeline{list-style:none;margin:26px 0 0;padding:0 0 0 26px;border-left:2px solid var(--line)}
.timeline li{position:relative;padding:0 0 22px 22px}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{
  content:"";position:absolute;left:-33px;top:7px;width:12px;height:12px;border-radius:50%;
  background:#fff;border:2.5px solid var(--blue);
}
.timeline .y{
  display:block;font-family:var(--f-display);font-size:13px;font-weight:600;
  letter-spacing:.08em;color:var(--peach-700);margin-bottom:3px;
}
.timeline strong{display:block;font-family:var(--f-display);font-size:16.5px;font-weight:600;color:var(--ink);margin-bottom:4px}
.timeline p{font-size:15px;color:var(--ink-2);margin:0}

/* ---------- Listes à puce cochée ---------- */
.checks{list-style:none;display:grid;gap:11px;margin:0}
.checks li{position:relative;padding-left:30px;font-size:16px;color:var(--ink-2)}
.checks li::before{
  content:"";position:absolute;left:0;top:.42em;width:18px;height:18px;border-radius:50%;
  background:var(--blue-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F63D8' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/11px no-repeat;
}

/* ---------- Motifs de consultation ---------- */
.motifs{display:grid;gap:clamp(26px,3.4vw,44px)}
.motif{
  display:grid;grid-template-columns:340px 1fr;gap:clamp(24px,3.4vw,46px);align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-1);
}
.motif:nth-child(even){grid-template-columns:1fr 340px}
.motif:nth-child(even) .motif__ph{order:2}
.motif__ph{align-self:stretch;min-height:230px}
.motif__ph img{width:100%;height:100%;object-fit:cover}
.motif__body{padding:clamp(24px,2.6vw,34px) clamp(24px,2.6vw,38px)}
.motif__body h3{margin-bottom:12px}
.motif__tags{display:flex;flex-wrap:wrap;gap:8px;margin:0;list-style:none}
.motif__tags li{
  font-size:14px;line-height:1.35;color:var(--ink-2);background:var(--paper-2);
  border:1px solid var(--line-2);border-radius:var(--r-pill);padding:6px 13px;
}

/* ---------- Sommaire en bulles cliquables (page Ostéopathie) ---------- */
.sommaire{display:flex;flex-wrap:wrap;gap:8px;margin:0;list-style:none}
.sommaire a{
  display:inline-flex;align-items:center;
  font-family:var(--f-display);font-size:14px;font-weight:600;line-height:1.2;
  color:var(--blue-700);background:var(--blue-tint);
  border:1px solid var(--line-2);border-radius:var(--r-pill);padding:8px 16px;
  text-decoration:none;
  transition:background-color .18s,color .18s,border-color .18s,transform .18s;
}
.sommaire a:hover{background:var(--blue-btn);color:#fff;border-color:var(--blue-btn);transform:translateY(-1px)}
@media (prefers-reduced-motion:reduce){.sommaire a{transition:none}.sommaire a:hover{transform:none}}
.motif__note{
  margin-top:18px;padding:16px 18px;border-radius:var(--r-md);
  background:var(--peach-tint);border:1px solid #F6DFC4;font-size:15px;color:#7A5326;
}
.motif__note strong{color:#5E3F19}

/* ---------- Encadrés ---------- */
.notice{
  display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;
  padding:22px 24px;border-radius:var(--r-lg);background:var(--blue-tint);border:1px solid #D6E4FD;
}
.notice svg{width:22px;height:22px;color:var(--blue-700);margin-top:2px}
.notice p{font-size:15.5px;color:#2A3F63}

/* ---------- Tarifs ---------- */
.pricing{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:start}
.price{
  background:var(--navy);color:#fff;border-radius:var(--r-xl);padding:clamp(30px,3.4vw,42px);
  box-shadow:var(--sh-2);position:relative;overflow:hidden;
}
.price::before{
  content:"";position:absolute;right:-70px;top:-70px;width:230px;height:230px;border-radius:50%;
  background:radial-gradient(circle,rgba(70,127,247,.5),transparent 68%);
}
.price h3{color:#fff;position:relative}
.price__rows{list-style:none;margin:22px 0 0;padding:0;position:relative;display:grid;gap:2px}
.price__rows li{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  padding:16px 0;border-bottom:1px solid rgba(255,255,255,.16);
}
.price__rows li:last-child{border-bottom:0}
.price__rows span{font-size:16px;color:rgba(255,255,255,.84)}
.price__rows b{font-family:var(--f-display);font-size:26px;font-weight:600;color:#fff;white-space:nowrap}
.price__note{margin-top:20px;font-size:14.5px;color:rgba(255,255,255,.66);position:relative}

/* ---------- Avis ---------- */
.stars{display:inline-flex;gap:3px;color:#F5A623;margin-bottom:14px}
.stars svg{width:18px;height:18px}
.quote p{font-size:16px;color:var(--ink-2);font-style:italic}
.quote footer{margin-top:16px;font-size:14px;font-weight:600;color:var(--ink);font-style:normal}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:12px;max-width:840px;margin-inline:auto}
.faq details{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  transition:border-color .2s,box-shadow .2s;
}
.faq details[open]{border-color:#CFDCF6;box-shadow:var(--sh-1)}
.faq summary{
  list-style:none;cursor:pointer;padding:21px 56px 21px 24px;position:relative;
  font-family:var(--f-display);font-size:17px;font-weight:600;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"";position:absolute;right:22px;top:50%;width:11px;height:11px;margin-top:-7px;
  border-right:2.2px solid var(--blue);border-bottom:2.2px solid var(--blue);
  transform:rotate(45deg);transition:transform .25s;
}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-3px}
.faq .a{padding:0 24px 22px;font-size:16px;color:var(--ink-2)}

/* ---------- Bandeau d'appel ---------- */
.cta{position:relative;overflow:hidden;background:var(--navy);color:#fff;
  border-radius:var(--r-xl);padding:clamp(38px,5vw,64px) clamp(26px,4vw,58px);text-align:center}
.cta::before{
  content:"";position:absolute;left:50%;top:-140px;width:520px;height:520px;margin-left:-260px;border-radius:50%;
  background:radial-gradient(circle,rgba(70,127,247,.42),transparent 66%);
}
.cta > *{position:relative}
.cta h2{color:#fff}
.cta p{margin:16px auto 0;max-width:560px;color:rgba(255,255,255,.8);font-size:17.5px}
.cta .btns{margin-top:30px}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:start}
.field{display:grid;gap:7px;margin-bottom:18px}
.field label{font-family:var(--f-display);font-size:14.5px;font-weight:600;color:var(--ink)}
.field input,.field textarea,.field select{
  font-family:var(--f-text);font-size:16px;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;width:100%;
  transition:border-color .18s,box-shadow .18s;
}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(70,127,247,.16);
}
.field textarea{min-height:140px;resize:vertical}
.form__note{font-size:13.5px;color:var(--ink-3);margin-top:14px}
.map{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh-1);background:var(--paper-2)}
.map a{display:block;line-height:0}
.map img{width:100%;transition:transform .5s cubic-bezier(.2,.8,.3,1)}
.map a:hover img{transform:scale(1.02)}
.access{list-style:none;display:grid;gap:16px;margin:0}
.access li{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start}
.access__ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  background:var(--paper-2);color:var(--blue-700);flex:0 0 auto}
.access__ico svg{width:19px;height:19px}
.access strong{display:block;font-family:var(--f-display);font-size:16px;color:var(--ink);margin-bottom:2px}
.access p{font-size:15.5px;margin:0}

/* ---------- Partenaires ---------- */
.partners{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.partner{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-1)}
.partner__ph{aspect-ratio:4/3.1;overflow:hidden;background:var(--paper-2)}
.partner__ph img{width:100%;height:100%;object-fit:cover;object-position:center 26%}
.partner__body{padding:22px 24px 26px}
.partner__body h3{font-size:18px;margin-bottom:2px}
.partner__role{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--peach-700);margin-bottom:12px}
.partner__body p{font-size:15px;color:var(--ink-2)}

/* ---------- Pied de page ---------- */
.footer{background:var(--navy-900);color:rgba(255,255,255,.7);padding:clamp(52px,6vw,80px) 0 34px;margin-top:0}
.footer__in{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:clamp(28px,4vw,52px)}
.footer h3{font-size:13.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#fff;margin-bottom:16px}
.footer ul{list-style:none;display:grid;gap:10px}
.footer a{color:rgba(255,255,255,.7);text-decoration:none;font-size:15.5px}
.footer a:hover{color:#fff}
.footer p{font-size:15px;line-height:1.6}
.footer__brand{margin-bottom:20px}
/* Le logo est un trait noir : sur fond marine, on l'inverse plutôt que de
   poser une pastille blanche, qui ferait tache dans le pied de page. */
.footer__brand img{height:auto;width:172px;filter:brightness(0) invert(1)}
.footer__bottom{
  display:flex;flex-wrap:wrap;gap:10px 22px;justify-content:space-between;
  margin-top:clamp(38px,4vw,54px);padding-top:24px;border-top:1px solid rgba(255,255,255,.12);
  font-size:14px;
}

/* ---------- Fil d'Ariane ---------- */
.crumbs{padding:22px 0 0;font-size:14px;color:var(--ink-3)}
.crumbs a{color:var(--ink-3);text-decoration:none}
.crumbs a:hover{color:var(--blue-700)}
.crumbs span{margin:0 7px;opacity:.5}

/* ---------- En-tête de page intérieure ---------- */
.phead{background:var(--blue-pale);border-bottom:1px solid var(--line-2);
  padding:clamp(34px,4vw,52px) 0 clamp(46px,5vw,68px)}
.phead .lead{margin-top:18px;max-width:680px}

/* ---------- Barre d'action mobile ---------- */
.dock{display:none}

/* ---------- Bouton flottant de prise de rendez-vous (tablette / bureau) ---------- */
.fab-rdv{
  position:fixed;right:24px;bottom:24px;z-index:80;
  display:flex;align-items:center;gap:9px;
  padding:15px 22px;border-radius:var(--r-pill);
  background:var(--blue-btn);color:#fff;font-family:var(--f-display);font-weight:600;font-size:15px;
  text-decoration:none;
  box-shadow:0 14px 32px -12px rgba(47,99,216,.55);
  transition:transform .18s ease,box-shadow .18s ease;
}
.fab-rdv svg{width:19px;height:19px;flex:none}
.fab-rdv img.ico-doctolib{width:19px;height:19px;border-radius:5px;flex:none}
.fab-rdv:hover{transform:translateY(-2px);box-shadow:0 18px 36px -12px rgba(47,99,216,.65)}
@media (prefers-reduced-motion:reduce){.fab-rdv{transition:none}.fab-rdv:hover{transform:none}}

/* ---------- Listes « libellé / valeur » (mentions légales) ---------- */
.deflist{list-style:none;margin-top:14px}
.deflist li{
  display:grid;grid-template-columns:200px 1fr;gap:6px 16px;
  padding:12px 0;border-bottom:1px solid var(--line-2);
}
.deflist li:last-child{border-bottom:0}
.deflist dt,.deflist strong{font-family:var(--f-display);color:var(--ink);font-weight:600}
.deflist span{overflow-wrap:anywhere}
@media (max-width:620px){
  .deflist li{grid-template-columns:1fr;gap:2px}
}

/* ---------- Trous à combler ----------
   Visibles au premier coup d'œil dans la maquette, et faciles à retrouver :
   il suffit de chercher « todo » dans les fichiers générés. */
.todo{
  display:inline-block;font-family:var(--f-display);font-size:11.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:#8A5A12;background:#FFF0D6;
  border:1px dashed #E7B96A;border-radius:var(--r-pill);padding:2px 10px;
  vertical-align:2px;white-space:nowrap;
}

/* ---------- Apparition progressive ---------- */
.reveal{opacity:0;transform:translateY(16px)}
.reveal.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.3,1)}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .btn:hover,.tcard:hover{transform:none}
  .profile img,.profile:hover img{transition:none;transform:none}
}

/* ============================ Adaptatif ============================ */
/* En dessous de 1360 px, le numéro ne tient plus à côté des cinq entrées :
   il reste dans le pied de page, dans le menu déroulant et sur la page
   Contact — le bouton de rendez-vous suffit dans la barre. */
@media (max-width:1360px){
  .header__cta .header__tel{display:none}
}
/* Bande étroite avant le passage au menu déroulant : on resserre les entrées
   et on retire le nom du cabinet, qui reste lisible dans le pied de page. */
@media (min-width:961px) and (max-width:1160px){
  .header__in{gap:14px}
  .nav a{padding:9px 8px;font-size:14px}
  .brand__txt{display:none}
}

@media (max-width:1080px){
  .infobar__grid{grid-template-columns:repeat(2,1fr)}
  .infobar__cell:nth-child(2){border-right:0}
  .infobar__cell:nth-child(1),.infobar__cell:nth-child(2){border-bottom:1px solid var(--line-2)}
  .profiles{grid-template-columns:repeat(3,1fr)}
  .bio{grid-template-columns:250px 1fr}
}

@media (max-width:960px){
  .header__in{gap:14px}
  .burger{display:inline-flex}
  .header__cta{margin-left:auto}
  .header__cta .header__tel{display:none}
  .menu{
    position:absolute;left:0;right:0;top:100%;display:block;margin:0;
    padding:12px 24px calc(18px + env(safe-area-inset-bottom));
    background:#fff;border-bottom:1px solid var(--line);
    box-shadow:0 24px 40px -24px rgba(28,36,75,.3);
    max-height:calc(100vh - var(--h-header));overflow-y:auto;
  }
  .header:not(.is-open) .menu{display:none}
  .nav{display:grid;gap:2px}
  .nav a{padding:13px 14px;font-size:16.5px;border-radius:var(--r-md)}
  .menu__tel{
    display:flex;align-items:center;justify-content:center;gap:9px;
    margin-top:10px;padding:14px;border-top:1px solid var(--line-2);
    font-family:var(--f-display);font-size:16px;font-weight:600;color:var(--ink);text-decoration:none;
  }
  .menu__tel svg{width:17px;height:17px;color:var(--blue)}

  .split,.contact-grid,.pricing{grid-template-columns:1fr;gap:32px}
  .split--rev .split__media{order:0}
  .split__badge{position:static;margin-top:16px;max-width:none;box-shadow:var(--sh-1)}
  .team,.partners,.steps,.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}
  .bio{grid-template-columns:1fr;gap:26px}
  .bio__aside{position:static;max-width:280px}
  .motif,.motif:nth-child(even){grid-template-columns:1fr}
  .motif__ph{max-height:260px;order:0 !important}
  .footer__in{grid-template-columns:1fr 1fr;gap:34px}
}

@media (max-width:720px){
  :root{--h-header:66px}
  body{font-size:16.5px}
  .brand img{height:38px;width:38px}
  .brand__sub{font-size:10.5px}
  .hero__in{max-width:none}
  .infobar{margin-top:-28px}
  .infobar__grid{grid-template-columns:1fr}
  .infobar__cell{border-right:0;border-bottom:1px solid var(--line-2)}
  .infobar__cell:last-child{border-bottom:0}
  .profiles{grid-template-columns:repeat(2,1fr);gap:14px}
  .team,.partners,.steps,.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}
  .footer__in{grid-template-columns:1fr;gap:30px}
  .btns .btn{width:100%}
  .hero .btns .btn{width:100%}
  .footer__bottom{flex-direction:column}

  /* Barre d'appel/RDV collée en bas, sur téléphone uniquement */
  .dock{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:80;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-top:1px solid var(--line);
  }
  .dock .btn{width:100%;padding:13px 12px;font-size:15px}
  body{padding-bottom:76px}
  /* La barre fixe ci-dessus remplit déjà ce rôle sur téléphone */
  .fab-rdv{display:none}
}

/* Sous 600 px, la barre d'action fixe en bas de l'écran porte déjà « Appeler »
   et « Rendez-vous » : le bouton de l'en-tête ferait doublon et volerait la
   place du bouton de menu. */
@media (max-width:600px){
  .header__cta{display:none}
  .burger{margin-left:auto}
}

@media (max-width:420px){
  .profiles{grid-template-columns:1fr}
  .brand__txt{display:none}
}

/* ============================ Impression ============================ */
@media print{
  .header,.dock,.fab-rdv,.cta,.btns,.map{display:none !important}
  body{padding:0;font-size:12pt;color:#000}
  .hero::after{display:none}
  .hero__bg{display:none}
  .hero{background:#fff}
  .hero h1,.hero__sub{color:#000}
  .section{padding:18pt 0}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
}
