/* Pages centrées et aérées sur téléphone (sections alternées blanc chaud / sable, titres centrés,
   photos aux angles doux) ; deux colonnes à partir de 900 px pour l'ordinateur.
   Thème clair unique, comme les sites de référence.
   Espacements : une seule échelle (--s1 à --s7) pour tout le site. */
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-italic.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Mulish";src:url(../fonts/mulish.woff2) format("woff2");font-weight:200 900;font-display:swap}

:root{
  --bg:#fbfaf8; --sand:#f4ede5; --sand-2:#e9dfd3; --surface:#ffffff;
  --ink:#2e3b35; --text:#4b5a53; --muted:#5b6b63; --line:#e7dfd6;
  --sage:#4e7a64; --sage-dark:#3f6753; --sage-soft:#9dbdac; --sage-tint:#e9f0eb;
  --gold:#c9a24a; --footer:#2e3b35; --on-dark:#efe9e1; --on-dark-muted:#b8c4bd; --on-dark-line:rgb(255 255 255 / .14);
  --warn:#7a5413; --warn-bg:#fbf0dc;
  /* encadré « remboursement » : ton ambré, distinct du vert (pas de connotation « validé ») */
  --amber:#8a5a16; --amber-bg:#fdf6ec; --amber-line:#e9cfa6; --amber-tint:#f8e8cf;
  --logo-ink:#fbfaf8;
  --shadow:0 14px 34px -18px rgb(46 59 53 / .35);
  --shadow-sm:0 6px 18px -10px rgb(46 59 53 / .28);
  --f-display:"Cormorant Garamond", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --f-body:"Mulish", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
  --step--1:clamp(.86rem,.84rem + .1vw,.92rem);
  --step-0:clamp(1rem,.97rem + .15vw,1.08rem);
  --step-1:clamp(1.35rem,1.25rem + .45vw,1.6rem);
  --step-2:clamp(1.85rem,1.6rem + 1.1vw,2.5rem);
  --step-3:clamp(2.5rem,2rem + 2.4vw,3.8rem);
  /* échelle d'espacement */
  --s1:.5rem; --s2:.75rem; --s3:1rem; --s4:1.5rem; --s5:2rem; --s6:clamp(2.5rem,6vw,3.5rem); --s7:clamp(3rem,8vw,5rem);
  --card-pad:clamp(1.15rem,3.5vw,1.5rem);
  --r:18px; --r-sm:12px; --gut:clamp(18px,5vw,32px); --bar:68px; --ease:cubic-bezier(.2,.7,.3,1);
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
picture{display:contents} /* <picture> (WebP + JPEG) ne change pas la mise en page */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--bg);color:var(--text);font:400 var(--step-0)/1.7 var(--f-body)}
/* la barre d'action mobile ne masque jamais la fin du pied de page */
@media (max-width:899px){.ft{padding-bottom:calc(var(--bar) + env(safe-area-inset-bottom,0px))}}
img{max-width:100%;height:auto;display:block}
a{color:var(--sage-dark);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{text-decoration-thickness:2px}
a[href^="tel"]{white-space:nowrap}
:focus-visible{outline:3px solid var(--sage);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--f-display);font-weight:500;color:var(--ink);line-height:1.12;text-wrap:balance;margin:0 0 .5em}
h1{font-size:var(--step-3)}
h2{font-size:var(--step-2)}
h3{font-size:var(--step-1);font-weight:600}
p{margin:0 0 var(--s3)}
strong{color:var(--ink);font-weight:700}
.ico{width:1.25em;height:1.25em;flex:none;vertical-align:-.25em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--sage);color:#fff;padding:.6em 1em;z-index:50}
.skip:focus{left:8px;top:8px}
.wrap{width:100%;max-width:1160px;margin-inline:auto;padding-inline:var(--gut)}
.narrow{max-width:780px;margin-inline:auto}
.wrap.narrow{max-width:calc(780px + 2 * var(--gut))}
.center{text-align:center}
.small{font-size:var(--step--1);color:var(--muted)}
.big{font-family:var(--f-display);font-size:1.7rem;color:var(--ink);margin:0 0 var(--s1);line-height:1.2}
.eyebrow{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-dark);font-weight:700;margin-bottom:var(--s2)}
.lead{font-size:1.12rem;line-height:1.65;color:var(--muted);max-width:44ch;margin-inline:auto}
.draft{background:var(--warn-bg);color:var(--warn);font-size:var(--step--1);padding:.45em var(--gut);text-align:center}

/* boutons */
.btns{display:flex;flex-wrap:wrap;gap:var(--s2);margin:var(--s4) 0 0}
.btns-center{justify-content:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:50px;padding:.75em 1.4em;border-radius:var(--r-sm);font:700 1rem/1.2 var(--f-body);text-decoration:none;border:1.5px solid var(--sage);transition:background-color .2s,box-shadow .2s,color .2s}
.btn .ico{width:1.2em;height:1.2em}
.btn-primary{background:var(--sage);color:#fff;box-shadow:0 8px 20px -10px rgb(78 122 100 / .7)}
.btn-primary:hover{background:var(--sage-dark)}
.btn-ghost{background:var(--surface);color:var(--sage-dark)}
.btn-ghost:hover{background:var(--sage-tint)}
.btn-sm{min-height:44px;padding:.5em 1em;font-size:.94rem}
@media (max-width:519px){.hero .btns,.phead .btns,.ctabox .btns{flex-direction:column}.hero .btn,.phead .btn,.ctabox .btn{width:100%}}
.more{display:inline-block;font-weight:700;color:var(--sage-dark);text-decoration:none;border-bottom:1px solid var(--sage-soft);padding:.5rem 0 2px}
.more::after{content:" →"}
.more:hover{border-bottom-color:var(--sage)}
.more-row{margin:var(--s4) 0 0;text-align:center}

/* en-tête */
.hd{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgb(251 250 248 / .94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.hd-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-height:66px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--ink);min-width:0}
.logo{color:var(--sage);flex:none;width:40px;height:40px}
.brand-name{display:block;font-family:var(--f-display);font-size:1.32rem;font-weight:600;line-height:1.05;color:var(--ink)}
.brand-sub{display:block;font-size:.78rem;color:var(--muted);letter-spacing:.02em}
.menu-btn{display:none;align-items:center;gap:.55rem;min-height:44px;padding:0 1rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:600 .95rem var(--f-body);cursor:pointer}
.menu-ico,.menu-ico::before,.menu-ico::after{display:block;width:16px;height:1.5px;background:currentColor;border-radius:2px;position:relative;transition:transform .25s var(--ease),background-color .2s}
.menu-ico::before,.menu-ico::after{content:"";position:absolute;left:0}
.menu-ico::before{top:-5px}.menu-ico::after{top:5px}
.menu-btn[aria-expanded="true"] .menu-ico{background:transparent}
.menu-btn[aria-expanded="true"] .menu-ico::before{transform:translateY(5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .menu-ico::after{transform:translateY(-5px) rotate(-45deg)}
.nav{display:flex;align-items:center;gap:1.6rem}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.2rem 1.5rem}
.nav ul a{text-decoration:none;font-weight:600;color:var(--ink);display:inline-block;padding:.5rem 0}
.nav ul a:hover{color:var(--sage)}
.nav-cta .btn{min-height:44px;padding:.5em 1.1em}
/* menu repliable jusqu'à 1099 px : au-delà, les 5 entrées et le bouton tiennent sur une ligne */
@media (max-width:1099px){
  .js .menu-btn{display:inline-flex}
  .nav{flex-basis:100%;flex-direction:column;align-items:stretch;gap:var(--s1);padding-bottom:var(--s3)}
  .js .nav{display:none}
  .js .nav.open{display:flex;animation:navIn .25s var(--ease)}
  .nav ul{flex-direction:column;gap:0}
  .nav li+li{border-top:1px solid var(--line)}
  .nav ul a{padding:.8rem 0;display:block;font-family:var(--f-display);font-size:1.3rem;font-weight:500}
  .nav-cta{padding-top:var(--s2)}
  .nav-cta .btn{width:100%}
}
/* sur téléphone, la barre d'action du bas porte déjà le bouton de rendez-vous */
@media (max-width:899px){.nav-cta{display:none}}
@keyframes navIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* fil d'Ariane */
.crumbs ol{list-style:none;margin:0;padding:var(--s3) 0 0;display:flex;flex-wrap:wrap;gap:.3rem;font-size:.84rem;color:var(--muted)}
.crumbs a{color:var(--muted)}
.crumbs li+li::before{content:"›";margin-right:.3rem}

/* sections */
.sec{padding-block:var(--s7)}
.sec-tight{padding-block:var(--s3) var(--s5)}
.sec-end{padding-block:var(--s5) var(--s7)}
.sec-sand{background:var(--sand)}
.sec-head{text-align:center;max-width:46rem;margin:0 auto var(--s5)}
.sec-head h2,.sub-title{margin-bottom:0}
.sec-head h2::after,.sub-title::after{content:"";display:block;width:54px;height:1.5px;margin:var(--s2) auto 0;background:var(--sage-soft);border-radius:2px}
.sec-intro{color:var(--muted);max-width:40rem;margin:var(--s3) auto 0}
.sub-title{text-align:center;font-size:var(--step-2);margin-top:var(--s7)}
.split{display:grid;gap:var(--s5);align-items:center}
.split>*{min-width:0}
@media (min-width:900px){.split{grid-template-columns:1.1fr .9fr;gap:var(--s6)}}
.split-img{margin:0}
.split-img img,.split-img .ph{border-radius:var(--r);aspect-ratio:4/3;object-fit:cover;width:100%;box-shadow:var(--shadow)}

/* accueil */
.hero{background:linear-gradient(180deg,var(--sand) 0%,var(--bg) 100%);padding-block:var(--s5) var(--s6)}
.hero-in{display:grid;gap:var(--s4);align-items:center;text-align:center}
.hero-in>*{min-width:0}
.hero-img{margin:0 auto;width:min(62vw,240px)}
.hero-img img,.hero-img .ph{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:999px 999px var(--r) var(--r);box-shadow:var(--shadow);border:6px solid var(--surface)}
.hero h1{margin-bottom:var(--s2)}
.h1-ey{display:block;font-family:var(--f-body);font-size:.78rem;line-height:1.4;margin-bottom:var(--s2)}
.h1-a{display:block}
.h1-b{display:block;font-style:italic;font-weight:500;font-size:.55em;color:var(--sage-dark);margin-top:.3rem}
.hero-sub{color:var(--muted);font-size:1.08rem;max-width:36ch;margin:0 auto var(--s3)}
.hero .btns{justify-content:center}
.avis{display:inline-flex;align-items:center;gap:.55rem;min-height:44px;padding:.4rem 1rem;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none;font-size:.92rem}
.avis-stars{color:var(--gold);letter-spacing:.08em;font-size:.95rem}
.hero-facts{list-style:none;margin:var(--s4) 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s1) var(--s4);font-size:.95rem;color:var(--muted)}
.hero-facts li{display:inline-flex;align-items:center;gap:.4rem}
.hero-facts .ico{color:var(--sage)}
@media (min-width:900px){
  .hero{padding-block:var(--s6) var(--s7)}
  .hero-in{grid-template-columns:1.15fr .85fr;text-align:left;gap:var(--s6)}
  .hero-img{order:2;width:100%;max-width:400px}
  .hero-sub{margin-inline:0}
  .hero .btns,.hero-facts{justify-content:flex-start}
}

/* étapes */
.steps{list-style:none;counter-reset:s;margin:var(--s5) 0 0;padding:0;display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.steps li{counter-increment:s;background:var(--surface);border-radius:var(--r);padding:var(--card-pad);box-shadow:var(--shadow-sm);text-align:center}
.step-ico{display:grid;place-items:center;width:58px;height:58px;margin:0 auto var(--s2);border-radius:50%;background:var(--sage-tint);color:var(--sage)}
.step-ico .ico{width:28px;height:28px}
.steps h3{margin-bottom:var(--s1)}
.steps h3::before{content:counter(s) ". ";color:var(--sage-soft)}
.steps p{margin:0;font-size:.97rem}

/* profil de l'ostéopathe (accueil et page dédiée) */
.profile{display:grid;gap:var(--s5);align-items:center}
.profile>*{min-width:0}
.profile-img{margin:0 auto;width:min(66vw,280px)}
.profile-img img,.profile-img .ph{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:999px 999px var(--r) var(--r);box-shadow:var(--shadow);border:6px solid var(--surface)}
.profile-intro{font-size:1.08rem;margin-bottom:var(--s4)}
.profile .more-row{text-align:left}
@media (max-width:899px){.profile-intro{text-align:center}.profile .more-row{text-align:center}}
@media (min-width:900px){.profile{grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:var(--s6)}.profile-img{width:100%}}
.creds{list-style:none;margin:0;padding:var(--card-pad);display:grid;gap:var(--s2);background:var(--surface);border-radius:var(--r);box-shadow:var(--shadow-sm)}
.creds li{display:flex;gap:var(--s2);align-items:flex-start;line-height:1.5}
.creds .ico{color:var(--sage);margin-top:.1em}

/* infos pratiques */
.prat{display:grid;gap:var(--s3)}
.prat>*{min-width:0}
.prat-img{margin:0}
.prat-img img,.prat-img .ph{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);box-shadow:var(--shadow)}
@media (min-width:700px){.prat-img img,.prat-img .ph{aspect-ratio:21/9;max-height:420px}}
.prat-cards{display:grid;gap:var(--s3);grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.prat-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* tablette : carte « Le cabinet » sur toute la largeur, texte à gauche et plan à droite (plan jamais rogné) */
@media (min-width:640px) and (max-width:1099px){
  .pcard-cab{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);column-gap:var(--s4);align-items:start}
  .pcard-cab>*:not(.plan){grid-column:1}
  .pcard-cab .plan{grid-column:2;grid-row:1/span 4;margin-top:0}
  .pcard-price{grid-column:1/-1}
}
/* écran large : le cabinet (avec le plan) occupe la colonne de gauche, les trois autres cartes s'empilent à droite.
   Le plan remplit la hauteur ; le léger recadrage (≤ 8 %) se fait à gauche pour garder l'attribution Google entière. */
@media (min-width:1100px){
  .pcard-cab{grid-row:span 3;display:flex;flex-direction:column}
  .pcard-cab .plan{flex:1 1 auto;min-height:220px}
  .pcard-cab .plan img{position:absolute;inset:0;height:100%;aspect-ratio:auto}
}
.pcard{background:var(--surface);border-radius:var(--r);padding:var(--card-pad);box-shadow:var(--shadow-sm);min-width:0}
.pcard h3{display:flex;align-items:center;gap:var(--s1);font-size:1.45rem;margin-bottom:var(--s2)}
.pcard h3 .ico{color:var(--sage);width:1.1em;height:1.1em}
.pcard address{font-style:normal;color:var(--ink);margin-bottom:var(--s1)}
.pcard .ticks{margin:var(--s1) 0 var(--s3)}
.acces-entree{margin:calc(-1 * var(--s1)) 0 var(--s3);font-size:.92rem;color:var(--muted)}
.pcard>p:last-child,.pcard .small:last-child{margin-bottom:0}
.pcard-price{background:var(--sage-tint)}
.price-line{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);border-bottom:1px solid var(--sage-soft);padding-bottom:var(--s2);margin-bottom:var(--s3)}
.price-line span{min-width:0}
.price-line strong{white-space:nowrap;font-family:var(--f-display);font-size:2.3rem;font-weight:600;line-height:1;color:var(--sage-dark);font-variant-numeric:tabular-nums}
.pay-intro{margin-bottom:var(--s1)}
.pay{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--s1)}
.pay li{display:inline-flex;align-items:center;gap:.45rem;background:var(--surface);border-radius:999px;padding:.35rem .9rem;font-weight:700;color:var(--ink);font-size:.95rem}
.pay .ico{color:var(--sage)}
.rembourse{display:flex;gap:var(--s3);align-items:flex-start;background:var(--amber-bg);border:1.5px solid var(--amber-line);border-radius:var(--r);padding:var(--card-pad);margin:var(--s4) 0}
.prat .rembourse{margin:0}
.rembourse-ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:var(--amber-tint);color:var(--amber)}
.rembourse .rembourse-t{list-style:none;margin:0 0 var(--s2);padding:0;display:grid;gap:.15rem}
.rembourse .rembourse-t li{font-weight:800;color:var(--ink);margin:0}
.rembourse p{margin:0 0 .35rem}
.rembourse p:last-child{margin:0}
@media (max-width:420px){.rembourse{flex-direction:column;gap:var(--s2)}}
.hours{margin:0 0 var(--s1);padding:0;display:grid}
.hours div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.1rem var(--s3);padding:.5rem 0;border-bottom:1px dashed var(--line)}
.hours div:last-child{border-bottom:0}
.hours dt{margin:0;color:var(--ink);font-weight:600}
.hours dd{margin:0 0 0 auto;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.ticks{list-style:none;padding:0;margin:var(--s3) 0}
.ticks li{padding-left:1.6rem;position:relative;margin-bottom:.35rem}
.ticks li::before{content:"";position:absolute;left:.15rem;top:.6em;width:.65rem;height:.35rem;border-left:2px solid var(--sage);border-bottom:2px solid var(--sage);transform:rotate(-45deg)}

/* patients : rangées centrées, sans carte orpheline collée à gauche */
.patients{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s3)}
.patient{position:relative;flex:0 1 calc((100% - 2 * var(--s3)) / 3);min-width:200px;background:var(--surface);border-radius:var(--r);padding:var(--card-pad);text-align:center;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}
@media (max-width:640px){.patient{flex-basis:100%}}
@media (min-width:641px){.patients:not(.patients-sm) .patient h3{min-height:2.4em;display:flex;align-items:center;justify-content:center}}
.patient:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.medal{display:grid;place-items:center;width:84px;height:84px;margin:0 auto var(--s2);border-radius:50%;background:var(--sand);color:var(--sage);border:1px solid var(--sand-2)}
.medal .ico{width:44px;height:44px}
.patient h3{font-size:1.5rem;margin-bottom:var(--s1)}
.patient h3 a{color:var(--ink);text-decoration:none}
.patient h3 a::after{content:"";position:absolute;inset:0;border-radius:var(--r)}
.patient p{margin:0;font-size:.94rem;color:var(--muted)}
.patients-sm{gap:var(--s2);margin-bottom:var(--s5)}
.patients-sm .patient{flex:0 1 calc((100% - 5 * var(--s2)) / 6);min-width:140px;padding:var(--s3) var(--s2);background:var(--sand);box-shadow:none}
@media (max-width:899px){.patients-sm .patient{flex-basis:calc((100% - 2 * var(--s2)) / 3)}}
@media (max-width:520px){.patients-sm .patient{flex-basis:calc((100% - var(--s2)) / 2);min-width:0}}
.patients-sm .medal{width:60px;height:60px;background:var(--surface);margin-bottom:var(--s1)}
.patients-sm .medal .ico{width:30px;height:30px}
.patients-sm h3{font-size:1.2rem;margin:0}
.h-sm{font-size:var(--step-1);margin-bottom:var(--s3)}

/* FAQ (ouverture animée par js/main.js) */
.faq{display:grid;gap:var(--s1);margin:0}
.faq details{background:var(--surface);border-radius:var(--r-sm);box-shadow:var(--shadow-sm)}
.faq summary{cursor:pointer;list-style:none;padding:1rem 3.4rem 1rem 1.2rem;font-weight:700;color:var(--ink);position:relative;line-height:1.45;border-radius:var(--r-sm);min-height:52px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:1.1rem;top:50%;width:26px;height:26px;margin-top:-13px;border-radius:50%;background:var(--sage-tint) no-repeat center/12px 12px;
  background-image:linear-gradient(var(--sage-dark),var(--sage-dark)),linear-gradient(var(--sage-dark),var(--sage-dark));
  background-size:12px 2px,2px 12px;transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(135deg)}
.faq details.closing summary::after{transform:rotate(0)}
.faq summary:hover{color:var(--sage-dark)}
.faq-a{overflow:hidden}
.faq-a p{padding:0 1.2rem 1.1rem;margin:0}

/* communes */
.pills{list-style:none;padding:0;margin:var(--s4) 0;display:flex;flex-wrap:wrap;gap:var(--s1);justify-content:center}
/* même apparence pour toutes les communes, avec ou sans page dédiée */
.pills .pill{display:inline-flex;gap:.5em;align-items:center;min-height:40px;text-decoration:none;padding:.35em 1em;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-weight:600;font-size:.94rem;color:var(--ink)}
.pills a.pill:hover{border-color:var(--sage-soft);color:var(--sage-dark)}
.pills button.pill{cursor:pointer;font-family:inherit;line-height:inherit}
.pills button.pill:hover{border-color:var(--sage-soft);color:var(--sage-dark)}
.pills .km{color:var(--muted);font-weight:400;font-size:.84em;font-variant-numeric:tabular-nums}
.communes-line{font-size:var(--step--1);color:var(--muted);margin:var(--s4) 0 0;line-height:1.9}
.trip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s1);margin:0}
.trip div{background:var(--surface);border-radius:var(--r-sm);padding:var(--s3) var(--s2);box-shadow:var(--shadow-sm);text-align:center}
.trip dt{font-size:.82rem;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:.3rem}
.trip dt .ico{color:var(--sage)}
.trip dd{margin:0;font-family:var(--f-display);font-size:1.5rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
@media (max-width:420px){.trip dd{font-size:1.25rem}}

/* pages intérieures */
.phead{padding-block:var(--s4) var(--s5)}
.phead h1{font-size:clamp(2.1rem,1.7rem + 2vw,3.2rem)}
.phead .lead{margin-bottom:0}
.phead-img{margin:var(--s5) 0 0}
.phead-img img{width:100%;aspect-ratio:3/2;max-height:540px;object-fit:cover;border-radius:var(--r);box-shadow:var(--shadow)}
@media (max-width:599px){.phead-img img{aspect-ratio:4/3}}
.prose{padding-block:0 var(--s2)}
.prose h2{margin:var(--s6) 0 var(--s2);font-size:clamp(1.7rem,1.5rem + 1vw,2.2rem)}
.prose>h2:first-child{margin-top:0}
.prose ul,.prose ol{padding-left:1.3rem;margin:0 0 var(--s3)}
.prose li{margin-bottom:var(--s1)}
.prose li::marker{color:var(--sage)}
.prose>:last-child{margin-bottom:0}
.page-profile{padding-bottom:var(--s6)}
.ctabox{text-align:center;background:var(--sage);color:#fff;border-radius:var(--r);padding:var(--s5) var(--card-pad);margin:0;box-shadow:var(--shadow)}
.ctabox p{margin:0}
.ctabox-t{font-family:var(--f-display);font-size:2rem;font-weight:500;line-height:1.1}
.ctabox-s{font-size:.95rem;margin-top:var(--s1)!important}
.ctabox .btns{margin-top:var(--s4)}
.ctabox .btn-primary{background:#fff;color:var(--sage-dark);border-color:#fff;box-shadow:none}
.ctabox .btn-primary:hover{background:var(--sage-tint)}
.ctabox .btn-ghost{background:transparent;color:#fff;border-color:rgb(255 255 255 / .7)}
.ctabox .btn-ghost:hover{background:rgb(255 255 255 / .12)}
.faq+.ctabox{margin-top:var(--s5)}
.cols{columns:2 240px}
.list-links li{margin-bottom:0}
.list-links a{display:inline-block;padding:.45rem 0}
.nf{padding-block:var(--s7)}

/* emplacement photo (version de travail uniquement) */
.ph{display:grid;place-items:center;width:100%;aspect-ratio:4/3;max-width:100%;border-radius:var(--r);background:var(--sand-2)}
.ph span{font-size:var(--step--1);color:var(--muted);background:var(--surface);padding:.3em .8em;border-radius:999px}

/* pied de page */
.ft{background:var(--footer);color:var(--on-dark-muted);font-size:.95rem;line-height:1.55}
.ft a{color:var(--on-dark);text-decoration:none}
.ft a:hover{text-decoration:underline;text-underline-offset:3px}
.ft-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s4);padding-block:var(--s6) var(--s5);border-bottom:1px solid var(--on-dark-line)}
.ft-brand{display:flex;align-items:center;gap:var(--s2);min-width:0}
.ft-brand .logo{color:var(--on-dark);--logo-ink:var(--footer)}
.ft-name{font-family:var(--f-display);font-size:1.55rem;color:var(--on-dark);line-height:1.1;margin:0}
.ft-sub{margin:.15rem 0 0;font-size:.88rem}
.ft-top .btns{margin:0}
.ft-top .btn-primary{background:var(--on-dark);color:var(--footer);border-color:var(--on-dark);box-shadow:none}
.ft-top .btn-primary:hover{background:#fff}
.ft-top .btn-ghost{background:transparent;color:var(--on-dark);border-color:rgb(239 233 225 / .5)}
.ft-top .btn-ghost:hover{background:rgb(255 255 255 / .08)}
.ft-grid{display:grid;gap:var(--s5) var(--s4);grid-template-columns:repeat(2,minmax(0,1fr));padding-block:var(--s5)}
.ft-grid>*{min-width:0}
.ft-cab{grid-column:1/-1}
.ft-h{font-family:var(--f-display);font-size:1.3rem;color:var(--on-dark);margin:0 0 var(--s2);line-height:1.2}
.ft address{font-style:normal;margin:0 0 var(--s2)}
.ft-cab p{margin:0 0 var(--s1)}
.ft-hours{margin:var(--s3) 0 0;display:grid;gap:.2rem;max-width:22rem}
.ft-hours div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 var(--s3)}
.ft-hours dt,.ft-hours dd{margin:0}
.ft-hours dd{margin-left:auto;white-space:nowrap;color:var(--on-dark)}
.ft-links{list-style:none;padding:0;margin:0}
.ft-links a{display:block;padding:.65rem 0;line-height:1.35}
.ft-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s1) var(--s4);border-top:1px solid var(--on-dark-line);padding-block:var(--s3) var(--s4);font-size:.85rem}
.ft-bottom p{margin:0}
.ft-legal{display:flex;flex-wrap:wrap;gap:0 var(--s3)}
.ft-legal a{display:inline-block;padding:.45rem 0}
@media (max-width:639px){
  .ft-top{flex-direction:column;text-align:center}
  .ft-brand{flex-direction:column}
  .ft-top .btns{flex-direction:column;width:100%}
  .ft-top .btn{width:100%}
  .ft-bottom{flex-direction:column;text-align:center}
}
@media (min-width:900px){
  .ft-grid{grid-template-columns:1.3fr 1fr 1fr}
  .ft-cab{grid-column:auto}
}

/* barre d'action mobile */
.actionbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:1fr 1.25fr;gap:var(--s1);padding:.55rem var(--gut) calc(.55rem + env(safe-area-inset-bottom,0px));background:rgb(255 255 255 / .97);border-top:1px solid var(--line);box-shadow:0 -8px 24px -12px rgb(46 59 53 / .25)}
.actionbar a{display:flex;align-items:center;justify-content:center;gap:.45em;min-height:50px;border-radius:var(--r-sm);font-weight:800;text-decoration:none;border:1.5px solid var(--sage)}
.ab-call{color:var(--sage-dark);background:var(--surface)}
.ab-rdv{background:var(--sage);color:#fff}
.actionbar{transition:transform .3s var(--ease),visibility .3s}
.actionbar.is-off{transform:translateY(110%);visibility:hidden}
@media (min-width:900px){.actionbar{display:none}}

/* consentement */
.consent{position:fixed;left:var(--gut);right:var(--gut);bottom:calc(var(--bar) + 12px + env(safe-area-inset-bottom,0px));z-index:40;max-width:520px;margin-inline:auto;background:var(--surface);border-radius:var(--r);padding:var(--s3) var(--card-pad);box-shadow:var(--shadow);font-size:var(--step--1)}
@media (min-width:900px){.consent{bottom:20px}}
.consent-btns{display:flex;gap:var(--s1);justify-content:flex-end;flex-wrap:wrap}
.consent .btn{min-height:44px}

/* ajustements de rythme */
.sp{height:var(--s5)}
.commune-patients{margin-block:var(--s4) var(--s6)}
.commune-patients .patients-sm{margin-bottom:0}
.phead+.page-profile{padding-top:0}
.page-profile+.prose{padding-top:0}
@media (max-width:899px){.ft-top .btns{display:none}.ft-top{padding-block:var(--s5) var(--s4)}}

/* lien « Itinéraire » du pied de page : souligné, pas seulement coloré */
.ft a.ft-u{text-decoration:underline;text-underline-offset:3px}

/* plan d'accès (capture Google Maps) */
.plan{position:relative;display:block;margin-top:var(--s3);border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line);text-decoration:none}
.plan img{width:100%;aspect-ratio:560/460;object-fit:cover;object-position:100% 100%}
.plan-wide{max-width:560px}
.plan-cta{position:absolute;right:.6rem;top:.6rem;display:inline-flex;align-items:center;gap:.4em;padding:.45rem .85rem;border-radius:999px;background:var(--surface);color:var(--sage-dark);font-weight:700;font-size:.9rem;box-shadow:var(--shadow-sm)}
.plan:hover .plan-cta{background:var(--sage-tint)}
.prose .plan{margin-bottom:var(--s3)}

/* avis Google */
.avis-sec .sec-intro{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem}
.quotes{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-items:start}
.quote{position:relative;background:var(--surface);border-radius:var(--r);padding:var(--card-pad);padding-top:calc(var(--card-pad) + .4rem);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--s2)}
.quote::before{content:"“";position:absolute;right:1.1rem;top:-.35rem;font:600 4.5rem/1 var(--f-display);color:var(--sage-soft)}
.quote-stars{color:var(--gold);letter-spacing:.1em}
.quote blockquote{margin:0}
.quote blockquote p{margin:0;font-family:var(--f-display);font-size:1.22rem;line-height:1.45;color:var(--ink)}
.quote-src{margin:auto 0 0;font-size:.85rem;color:var(--muted)}
.quote-src mark{background:var(--amber-bg);color:var(--amber);padding:0 .3em;border-radius:4px}
.avis-info{max-width:62ch;margin:var(--s4) auto 0;text-align:center;font-size:.88rem;color:var(--muted)}

/* menu sur une ligne à partir de 1100 px : 5 entrées + bouton, version resserrée */
@media (min-width:1100px){
  .nav{gap:1rem}
  .nav ul{gap:.2rem 1.1rem}
  .nav ul a{font-size:.95rem}
  .nav-cta .btn{padding:.5em .9em;font-size:.92rem}
}
@media (min-width:1100px) and (max-width:1199px){.brand-sub{display:none}}

/* fiche « Venir depuis … » (communes sans page dédiée) : feuille en bas d'écran sur téléphone, fenêtre centrée ailleurs */
html.dlg-open{overflow:hidden}
.venir{border:0;padding:0;width:100%;max-width:100%;max-height:92dvh;margin:auto 0 0;border-radius:var(--r) var(--r) 0 0;background:var(--bg);color:var(--text);box-shadow:var(--shadow);overflow:auto;overscroll-behavior:contain}
.venir::backdrop{background:rgb(32 42 38 / .5)}
.venir[open]{animation:venirIn .3s var(--ease)}
@keyframes venirIn{from{transform:translateY(40px);opacity:0}to{transform:none;opacity:1}}
.venir-in{position:relative;padding:var(--s5) var(--gut) calc(var(--s4) + env(safe-area-inset-bottom,0px));text-align:center}
.venir .eyebrow{margin-bottom:var(--s1)}
.venir h2{margin:0 auto var(--s2);max-width:20ch}
.venir p{margin:0 0 var(--s3)}
.venir .venir-acces{font-size:.92rem;color:var(--muted);margin-top:calc(-1 * var(--s2))}
.venir .trip{margin-bottom:var(--s3)}
.venir .btns{justify-content:center;margin:0 0 var(--s2)}
.venir-more{font-size:.92rem;margin:0}
.venir-x{position:absolute;top:.7rem;right:.7rem;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:grid;place-items:center;cursor:pointer}
.venir-x .ico{width:20px;height:20px}
.venir-x:hover{border-color:var(--sage-soft)}
@media (max-width:519px){.venir .btns{flex-direction:column}.venir .btn{width:100%}}
@media (min-width:640px){.venir{margin:auto;max-width:560px;border-radius:var(--r)}.venir-in{padding-inline:var(--s5)}}
@media (prefers-reduced-motion:reduce){.venir[open]{animation:none}}
