:root{
  --radius: 0.5rem;
  --cream: oklch(0.975 0.012 85);
  --sage: oklch(0.72 0.035 150);
  --sage-deep: oklch(0.42 0.04 155);
  --clay: oklch(0.55 0.06 40);
  --background: oklch(0.985 0.008 85);
  --foreground: oklch(0.22 0.02 155);
  --card: oklch(1 0 0);
  --primary: oklch(0.42 0.04 155);
  --primary-foreground: oklch(0.98 0.008 85);
  --secondary: oklch(0.94 0.015 90);
  --secondary-foreground: oklch(0.28 0.03 155);
  --muted-foreground: oklch(0.48 0.02 150);
  --accent: oklch(0.88 0.035 145);
  --border: oklch(0.9 0.015 90);
  --shadow-soft: 0 1px 2px oklch(0.22 0.02 155 / 0.04), 0 8px 24px oklch(0.22 0.02 155 / 0.06);
  --font-serif: "Fraunces", ui-serif, Georgia, serif;
  --font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
  --doctolib: #107aca;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}

/* Apparitions au chargement et au scroll (activées uniquement si JS + pas de reduced-motion) */
html.js-anim .reveal{opacity:0; transform:translateY(18px); transition:opacity 0.7s ease, transform 0.7s cubic-bezier(0.22,0.61,0.36,1);}
html.js-anim .reveal.is-visible{opacity:1; transform:none;}
@media (prefers-reduced-motion: reduce){ html.js-anim .reveal{opacity:1; transform:none; transition:none;} }
body{
  background-color:var(--background);
  color:var(--foreground);
  font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
h1,h2,h3,h4{
  font-family:var(--font-serif);
  font-weight:400;
  letter-spacing:-0.015em;
  color:var(--primary);
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.container{max-width:72rem; margin:0 auto; padding:0 1.5rem;}
.container-narrow{max-width:56rem; margin:0 auto; padding:0 1.5rem;}

/* Header */
header{
  position:fixed; inset-inline:0; top:0; z-index:50; padding: 0 10px;
  background:color-mix(in oklch, var(--background) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid color-mix(in oklch, var(--border) 70%, transparent);
}
header .row{display:flex; align-items:center; justify-content:space-between; padding:0.5rem 0;}
.brand{display:flex; align-items:center; gap:0.75rem;}
.brand img{height:64px; width:64px; object-fit:contain;}
.brand .name{font-family:var(--font-serif); font-size:1.125rem; color:var(--primary); line-height:1.1;}
.brand .sub{font-size:10px; text-transform:uppercase; letter-spacing:0.18em; color:var(--muted-foreground);}
nav{display:flex; gap:2rem;}
nav a{font-size:0.875rem; color:color-mix(in oklch, var(--foreground) 80%, transparent);}
nav a:hover{color:var(--primary);}
@media(min-width:768px){ /*nav{display:flex;}*/ }

/* Hero */
#top{position:relative; overflow:hidden; padding:9rem 0 6rem;}
.hero-grid{display:grid; grid-template-columns:minmax(0,1fr); gap:3.5rem; align-items:center;}
@media(min-width:768px){ .hero-grid{grid-template-columns:repeat(12,1fr);} }
.hero-text{grid-column: 1 / -1;}
@media(min-width:768px){ .hero-text{grid-column: span 6;} }
.hero-img-wrap{grid-column: 1 / -1; position:relative;}
@media(min-width:768px){ .hero-img-wrap{grid-column: span 6;} }
.hero-img-bg{position:absolute; inset:-0.75rem; border-radius:2rem; background:color-mix(in oklch, var(--accent) 40%, transparent);}
h1.headline{margin-top:1.5rem; font-size:2.75rem; line-height:1.05;}
@media(min-width:768px){ h1.headline{font-size:3.5rem;} }
.lead-address{margin-top:1rem; max-width:36rem; color:var(--muted-foreground);}
.lead{margin-top:1.5rem; max-width:36rem; font-size:1.125rem; line-height:1.6; color:var(--muted-foreground);}
.btn-outline{
  display:inline-flex; align-items:center; gap:0.5rem; margin-top:2rem;
  border-radius:999px; border:1px solid var(--border); background:var(--card);
  padding:0.75rem 1.5rem; font-size:0.875rem; font-weight:500;
}
.btn-outline:hover{background:var(--accent);}

/* Sections */
section{padding:6rem 0;}
.eyebrow{font-size:11px; text-transform:uppercase; letter-spacing:0.22em; color:var(--sage-deep);}
.section-title{margin-top:0.75rem; font-size:2.25rem; line-height:1.15;}
@media(min-width:768px){ .section-title{font-size:2.75rem;} }

#about{border-top:1px solid color-mix(in oklch, var(--border) 70%, transparent); border-bottom:1px solid color-mix(in oklch, var(--border) 70%, transparent); background:color-mix(in oklch, var(--secondary) 40%, transparent);}
.about-grid{display:grid; grid-template-columns:minmax(0,1fr); gap:3rem;}
@media(min-width:768px){ .about-grid{grid-template-columns:repeat(12,1fr); align-items:end;} }
.about-lead{grid-column: 1 / -1;}
@media(min-width:768px){ .about-lead{grid-column: span 5;} }
.about-body{grid-column: 1 / -1; color:var(--muted-foreground);}
@media(min-width:768px){ .about-body{grid-column: span 7;} }
.about-items{margin-top:3.5rem; display:grid; grid-template-columns:minmax(0,1fr); gap:2rem;}
@media(min-width:768px){ .about-items{grid-template-columns:repeat(3,1fr);} }
.about-item{border-top:1px solid var(--border); padding-top:1.5rem;}
.about-item .num{font-family:var(--font-serif); font-size:1.875rem; color:var(--sage-deep);}
.about-item h3{margin-top:0.75rem; font-size:1.25rem;}
.about-item p{margin-top:0.5rem; font-size:0.9rem; color:var(--muted-foreground);}

/* Practitioners */
.pros{margin-top:4rem; display:flex; flex-direction:column; gap:4rem;}
.pro-card{
  display:grid; grid-template-columns:minmax(0,1fr); gap:2.5rem; border-radius:1.75rem; border:1px solid var(--border);
  background:var(--card); padding:1.5rem; box-shadow:var(--shadow-soft);
}
@media(min-width:768px){ .pro-card{grid-template-columns:repeat(12,1fr); gap:3.5rem; padding:2.5rem;} }
.pro-img{grid-column: 1 / -1;}
@media(min-width:768px){ .pro-img{grid-column: span 5;} }
.pro-card.reverse .pro-img{order:2;}
.pro-img img{aspect-ratio:4/5; width:100%; border-radius:1.25rem; object-fit:cover;}
.pro-info{grid-column: 1 / -1; display:flex; flex-direction:column;}
@media(min-width:768px){ .pro-info{grid-column: span 7;} }
.pro-card.reverse .pro-info{order:1;}
.pro-head{display:flex; align-items:center; gap:1rem;}
.pro-avatar{flex:0 0 auto; width:64px; height:64px; border-radius:999px; object-fit:cover; border:2px solid var(--card); box-shadow:var(--shadow-soft);}
.pro-head h3{margin-top:0.25rem;}
.pro-info h3{margin-top:0.5rem; font-size:1.75rem;}
@media(min-width:768px){ .pro-info h3{font-size:2rem;} }
.pro-info .bio{margin-top:1rem; max-width:32rem; color:var(--muted-foreground); line-height:1.6;}
.tags{margin-top:1.25rem; display:flex; flex-wrap:wrap; gap:0.5rem; list-style:none;}
.tag{border-radius:999px; border:1px solid var(--border); background:color-mix(in oklch, var(--secondary) 70%, transparent); padding:0.25rem 0.75rem; font-size:0.75rem; color:var(--secondary-foreground);}
.contact-grid{margin-top:2rem; display:grid; grid-template-columns:minmax(0,1fr); gap:1rem; border-top:1px solid var(--border); padding-top:1.5rem;}
@media(min-width:640px){ .contact-grid{grid-template-columns:repeat(2,1fr);} }
.contact-line{display:flex; align-items:flex-start; gap:0.75rem; border-radius:0.5rem; padding:0.25rem;}
.contact-line:hover{background:color-mix(in oklch, var(--secondary) 50%, transparent);}
.contact-line .ico{margin-top:0.125rem; color:var(--sage-deep); font-size:1rem;}
.contact-line dt{font-size:11px; text-transform:uppercase; letter-spacing:0.18em; color:var(--muted-foreground);}
.contact-line dd{margin-top:0.125rem; font-size:0.875rem;}
.btn-primary{
  display:inline-flex; align-items:center; gap:0.5rem; margin-top:2rem;
  border-radius:999px; background:var(--primary); color:var(--primary-foreground);
  padding:0.75rem 1.5rem; font-size:0.875rem; font-weight:500;
}
.btn-primary:hover{opacity:0.9;}
.btn-doctolib{
  display:inline-flex; align-items:center; justify-content: center; gap:0.6rem; margin-top:2rem; max-width: 350px;
  border-radius:999px; background:var(--doctolib); color:#fff;
  padding:0.8rem 1.5rem 0.7rem; font-size:0.75rem; font-weight:600;
  text-transform:uppercase; letter-spacing:0.04em;
  transition:opacity 0.2s;
}
.btn-doctolib:hover{opacity:0.9;}
.btn-doctolib .doctolib-logo{height:1.2rem; width:auto; display:block; position:relative; top:-2px;}

/* Slider */
.slider{position:relative; border-radius:1.75rem; overflow:hidden; box-shadow:var(--shadow-soft);}
.slider-track{position:relative; aspect-ratio:4/3;}
.slide{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 0.8s ease;}
.slide.is-active{opacity:1;}
.slider-dots{position:absolute; left:0; right:0; bottom:0.9rem; display:flex; justify-content:center; gap:0.45rem; z-index:2;}
.slider-dot{width:0.5rem; height:0.5rem; padding:0; border:none; border-radius:999px; cursor:pointer; background:color-mix(in oklch, white 55%, transparent); transition:transform 0.2s, background 0.2s;}
.slider-dot:hover{background:color-mix(in oklch, white 80%, transparent);}
.slider-dot.is-active{background:#fff; transform:scale(1.3);}

/* FAQ */
#faq{border-top:1px solid color-mix(in oklch, var(--border) 70%, transparent); background:color-mix(in oklch, var(--secondary) 40%, transparent);}
.faq-list{margin-top:3rem; border-top:1px solid var(--border); border-bottom:1px solid var(--border);}
.faq-list details{border-bottom:1px solid var(--border); padding:1.25rem 0;}
.faq-list details:last-child{border-bottom:none;}
.faq-list summary{cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; font-family:var(--font-serif); font-size:1.125rem; color:var(--primary);}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary .chev{transition:transform 0.2s; color:var(--sage-deep); flex-shrink:0;}
.faq-list details[open] summary .chev{transform:rotate(180deg);}
.faq-list p{margin-top:0.75rem; max-width:44rem; color:var(--muted-foreground); line-height:1.6;}

/* Footer */
footer{background:var(--primary); color:var(--primary-foreground); padding: 0 20px;}
.footer-grid{display:grid; grid-template-columns:minmax(0,1fr); gap:2.5rem; padding:4rem 0;}
@media(min-width:768px){ .footer-grid{grid-template-columns:repeat(3,1fr);} }
.footer-brand{display:flex; align-items:center; gap:0.75rem;}
.footer-brand img{height:36px; width:36px; filter:brightness(0) invert(1); opacity:0.9;}
footer h3{color:var(--primary-foreground); font-size:1.125rem;}
footer p, footer li{font-size:0.875rem; opacity:0.8;}
footer .desc{margin-top:1rem; max-width:20rem; line-height:1.6;}
footer ul{margin-top:0.75rem; list-style:none; display:flex; flex-direction:column; gap:0.5rem;}
footer a:hover{opacity:1; text-decoration:underline;}
.footer-bottom{border-top:1px solid color-mix(in oklch, var(--primary-foreground) 15%, transparent);}
.footer-bottom .row{display:flex; flex-direction:column; align-items:center; justify-content:space-between; gap:0.5rem; padding:1.5rem 0; font-size:0.75rem; opacity:0.7;}
@media(min-width:768px){ .footer-bottom .row{flex-direction:row;} }
.footer-legal a{margin-left:1.25rem;}
.footer-legal a:first-child{margin-left:0;}

/* Pages légales */
.page-hero{padding:9rem 0 3rem; border-bottom:1px solid color-mix(in oklch, var(--border) 70%, transparent); background:color-mix(in oklch, var(--secondary) 40%, transparent);}
.legal{padding:3.5rem 0 5rem;}
.legal h2{font-size:1.5rem; margin-top:2.5rem; margin-bottom:0.75rem;}
.legal h2:first-of-type{margin-top:0;}
.legal p, .legal li{color:var(--muted-foreground); line-height:1.7; font-size:0.95rem;}
.legal p{margin-bottom:1rem;}
.legal ul{margin:0 0 1rem 1.25rem;}
.legal a{color:var(--sage-deep); text-decoration:underline;}
.legal .updated{font-size:0.8rem; color:var(--muted-foreground); margin-bottom:2rem;}
.legal .todo{display:block; background:color-mix(in oklch, var(--clay) 12%, transparent); border-left:3px solid var(--clay); padding:0.5rem 0.75rem; border-radius:0.35rem; font-size:0.85rem; color:var(--secondary-foreground);}

/* Bandeau cookies */
.cookie-banner{position:fixed; left:1rem; bottom:1rem; z-index:100; max-width:26rem;}
.cookie-banner[hidden]{display:none;}
.cookie-card{background:var(--card); border:1px solid var(--border); border-radius:1rem; padding:1.5rem; box-shadow:0 10px 40px oklch(0.22 0.02 155 / 0.15);}
.cookie-title{font-size:1.125rem; margin-bottom:0.5rem;}
.cookie-text{font-size:0.85rem; color:var(--muted-foreground); line-height:1.55;}
.cookie-text a{color:var(--sage-deep); text-decoration:underline;}
.cookie-actions{margin-top:1.25rem; display:flex; gap:0.75rem; flex-wrap:wrap;}
.btn-cookie{border-radius:999px; padding:0.6rem 1.1rem; font-size:0.8rem; font-weight:500; cursor:pointer; font-family:var(--font-sans); border:1px solid var(--border);}
.btn-cookie-ghost{background:var(--card); color:var(--foreground);}
.btn-cookie-ghost:hover{background:var(--secondary);}
.btn-cookie-solid{background:var(--primary); color:var(--primary-foreground); border-color:var(--primary);}
.btn-cookie-solid:hover{opacity:0.9;}
@media(max-width:480px){ .cookie-banner{left:0.75rem; right:0.75rem; bottom:0.75rem; max-width:none;} .nomobile{display:none;} nav{gap:1rem;} #top {padding:5rem 0;}}
