:root{
    --royal:#1F4D79;
    --royal-deep:#173A5B;
    --gold:#C9A227;
    --gold-light:#E3C368;
    --white:#FFFFFF;
    --champagne:#EAD9B5;
    --champagne-light:#F8F1DE;
    --ink:#1A1A1A;
    --text-soft: rgba(26,26,26,0.62);
    --white-soft: rgba(255,255,255,0.78);
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Manrope',sans-serif;
    color:var(--ink);
    background:var(--white);
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{font-family:'Fraunces',serif;font-weight:480;letter-spacing:-0.015em;color:inherit;}
  a{text-decoration:none;color:inherit;}
  .wrap{max-width:1160px;margin:0 auto;padding:0 40px;}
  section{padding:140px 0;position:relative;}
  @media(max-width:820px){section{padding:88px 0;}.wrap{padding:0 24px;}}

  .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);}
  .reveal.in{opacity:1;transform:translateY(0);}

  .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;font-weight:700;margin-bottom:22px;}
  .eyebrow .ln{width:26px;height:1px;background:currentColor;opacity:0.5;}

  /* NAV — bleu roi */
  nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:12px 0;background:var(--royal);transition:padding .35s ease, box-shadow .35s ease, background .35s ease;}
  nav.solid{padding:8px 0;box-shadow:0 4px 24px -8px rgba(18,44,116,0.5);}
  /* nav pleine largeur en haut, conteneur centré au scroll */
  nav .wrap{max-width:none;padding:0 48px;transition:padding .35s ease;}
  nav.solid .wrap{padding:0 max(28px, calc((100% - 1160px) / 2));}
  @media(max-width:820px){nav .wrap{padding:0 24px;}nav.solid .wrap{padding:0 24px;}}
  nav .wrap{display:flex;align-items:center;justify-content:space-between;}
  .brand{display:inline-flex;align-items:center;flex-shrink:0;}
  .logo{display:inline-flex;align-items:center;gap:20px;flex-shrink:0;font-family:'Fraunces',serif;font-size:1.1rem;color:var(--white);letter-spacing:0.01em;}
    .logo img{height:84px;width:auto;display:block;}
  .logo-txt{display:flex;align-items:center;}
  .logo-names{display:inline-flex;flex-direction:column;line-height:1.32;}
  .logo-name{display:flex;justify-content:space-between;align-items:baseline;gap:14px;font-size:0.92rem;color:var(--white);letter-spacing:0.01em;white-space:nowrap;}
  .logo-name .amp{color:var(--gold-light);font-style:italic;font-family:'Fraunces',serif;}
  .logo-cabinet{position:relative;display:inline-block;margin-left:14px;padding-left:14px;border-left:1px solid rgba(201,162,39,0.45);font-family:'Fraunces',serif;font-style:italic;font-size:1.05rem;letter-spacing:0.02em;line-height:1.1;text-decoration:none;}
  .logo-cabinet .lc-top,.logo-cabinet .lc-solid{display:inline-block;white-space:nowrap;transition:opacity .4s ease;}
  .logo-cabinet .lc-top{position:absolute;left:14px;top:0;color:var(--gold-light);opacity:1;}
  .logo-cabinet .lc-solid{color:var(--gold);opacity:0;}
  nav.solid .logo-cabinet .lc-top{opacity:0;}
  nav.solid .logo-cabinet .lc-solid{opacity:1;}
  /* Au compactage, "Le cabinet" migre du menu vers la marque */
  @media(min-width:901px){nav.solid .nav-cabinet{display:none;}}
  .logo span{white-space:nowrap;}
    .logo img{transition:height .3s;}
  nav.solid .logo img{height:64px;}
  .logo em{font-style:italic;color:var(--gold-light);}
  .nav-menu{display:flex;align-items:center;gap:36px;margin-left:auto;}
  nav ul{display:flex;gap:36px;list-style:none;font-size:0.98rem;letter-spacing:0.03em;color:var(--white-soft);white-space:nowrap;}
  .burger{display:none;}
  .nav-menu-brand{display:none;}
  nav ul a{transition:color .2s;}
  nav ul a:hover{color:var(--gold-light);}
  .nav-cta{background:var(--gold);color:var(--ink);padding:12px 26px;border-radius:2px;font-size:0.9rem;font-weight:700;letter-spacing:0.04em;transition:all .3s;white-space:nowrap;flex-shrink:0;}
  .nav-cta:hover{background:var(--gold-light);}
  /* ===== Navigation mobile (burger) ===== */
  .burger{background:none;border:none;cursor:pointer;padding:8px;flex-direction:column;justify-content:center;gap:5px;z-index:120;}
  .burger span{display:block;width:26px;height:2px;background:var(--white);border-radius:2px;transition:transform .3s ease, opacity .3s ease;}
  #nav.open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  #nav.open .burger span:nth-child(2){opacity:0;}
  #nav.open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  @media(max-width:900px){
    .burger{display:flex;}
    .nav-menu{position:fixed;top:0;right:0;width:min(82vw,340px);height:100vh;background:var(--royal-deep);
      flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:26px;
      padding:30px 32px 40px;margin-left:0;transform:translateX(100%);transition:transform .35s ease;
      box-shadow:-16px 0 40px -18px rgba(0,0,0,.6);overflow-y:auto;}
    #nav.open .nav-menu{transform:translateX(0);}
    .nav-menu ul{flex-direction:column;gap:22px;font-size:1.1rem;}
    .nav-cta{font-size:1rem;padding:14px 30px;}
    .nav-backdrop{position:fixed;inset:0;background:rgba(8,14,32,.5);opacity:0;visibility:hidden;transition:opacity .3s;z-index:95;}
    #nav.open ~ .nav-backdrop{opacity:1;visibility:visible;}
  }

  /* HERO — carrousel d'images */
  .hero{
    position:relative;color:var(--white);min-height:100vh;display:flex;align-items:center;
    padding-top:120px;overflow:hidden;background:var(--royal-deep);
  }
  .hero-carousel{position:absolute;inset:0;z-index:0;}
  .hero-carousel .slide{
    position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease;
    display:flex;align-items:center;justify-content:center;
  }
  .hero-carousel .slide.active{opacity:1;}
  .hero-carousel .slide img{
    width:100%;height:100%;object-fit:cover;object-position:center;display:block;
    filter:saturate(0.9);
  }
  .hero-overlay{
    position:absolute;inset:0;z-index:1;
    background:linear-gradient(180deg, rgba(8,14,32,0.58) 0%, rgba(8,14,32,0.78) 78%, rgba(8,14,32,0.9) 100%);
  }
  .hero-dots{position:absolute;bottom:118px;left:50%;transform:translateX(-50%);z-index:3;display:flex;gap:10px;}
  .hero-dots button{
    width:8px;height:8px;border-radius:50%;border:1px solid rgba(255,255,255,0.5);background:transparent;
    padding:0;cursor:pointer;transition:all .3s;
  }
  .hero-dots button.on{background:var(--gold);border-color:var(--gold);width:22px;border-radius:5px;}
  .hero .wrap{position:relative;text-align:center;z-index:2;}
  .hero .eyebrow{justify-content:center;color:var(--gold-light);}
  .hero h1{font-size:clamp(2.6rem,6vw,5.2rem);line-height:1.02;font-weight:340;margin:0 auto 30px;max-width:900px;}
  .hero h1 em{font-style:italic;color:var(--gold-light);font-weight:340;}
  .hero p.lead{font-size:1.08rem;color:var(--white-soft);max-width:480px;margin:0 auto 44px;font-weight:400;}
  .btn-row{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 32px;font-weight:700;font-size:0.85rem;letter-spacing:0.04em;border-radius:2px;transition:all .3s ease;text-transform:uppercase;border:none;background:transparent;color:inherit;cursor:pointer;font-family:inherit;-webkit-appearance:none;appearance:none;}
  .btn-gold{background:var(--gold);color:var(--ink);}
  .btn-gold:hover{background:var(--gold-light);}
  .btn-outline-light{border:1.5px solid var(--gold);color:var(--white);}
  .btn-outline-light:hover{background:rgba(201,162,39,0.15);}
  .btn-outline-dark{border:1.5px solid var(--gold);color:var(--ink);}
  .btn-outline-dark:hover{background:var(--champagne-light);}
  .scroll-cue{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);z-index:2;font-size:0.68rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--white-soft);display:flex;flex-direction:column;align-items:center;gap:10px;}
  .scroll-cue .bar{width:1px;height:36px;background:linear-gradient(var(--gold-light),transparent);}

  /* STATS — dégradé blanc -> champagne */
  .stats{background:linear-gradient(180deg, var(--white) 0%, var(--champagne-light) 100%);padding:64px 0;}
  .stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
  .stats .item{text-align:center;border-left:1px solid rgba(201,162,39,0.3);}
  .stats .item:first-child{border-left:none;}
  .stats .num{font-family:'Fraunces',serif;font-size:2rem;color:var(--royal);font-weight:400;}
  .stats .label{font-size:0.74rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--text-soft);margin-top:6px;}
  @media(max-width:820px){.stats .wrap{grid-template-columns:1fr 1fr;}.stats .item:nth-child(3){border-left:none;}}

  /* ABOUT — blanc */
  .about{background:var(--white);}
  .about .wrap{display:grid;grid-template-columns:0.85fr 1.15fr;gap:80px;align-items:center;}
  .portrait{position:relative;aspect-ratio:3/4;}
  .portrait .frame{position:absolute;inset:0;border:1.5px solid var(--gold);transform:translate(14px,14px);z-index:0;}
  .portrait .fill{position:relative;z-index:1;height:100%;background:linear-gradient(155deg,var(--champagne-light) 0%, var(--champagne) 100%);display:flex;align-items:center;justify-content:center;border:1px solid rgba(201,162,39,0.3);}
  .portrait .fill span{font-family:'Fraunces',serif;font-style:italic;color:var(--royal);font-size:0.92rem;}
  .about .eyebrow{color:var(--gold);}
  .about h2{font-size:clamp(1.9rem,3vw,2.6rem);margin-bottom:26px;font-weight:400;color:var(--ink);}
  .about p{margin-bottom:18px;max-width:500px;font-size:1rem;color:var(--text-soft);}
  blockquote{font-family:'Fraunces',serif;font-style:italic;font-size:1.3rem;font-weight:340;color:var(--ink);margin-top:32px;padding-top:28px;border-top:1.5px solid var(--gold);}

  /* SOINS — dégradé champagne */
  .soins{background:linear-gradient(180deg, var(--champagne-light) 0%, var(--champagne) 100%);}
  .soins-head{text-align:center;max-width:640px;margin:0 auto 80px;}
  .soins-head .eyebrow{justify-content:center;color:var(--gold);}
  .soins-head h2{font-size:clamp(2rem,3.4vw,2.8rem);font-weight:380;color:var(--ink);}
  .soins-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
  .soins-col{background:var(--white);padding:44px;border:1.5px solid var(--gold);}
  .soins-col .tag{font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;font-weight:700;margin-bottom:20px;display:block;}
  .soins-col.dentaire .tag{color:var(--royal);}
  .soins-col.esthetique .tag{color:var(--gold);}
  .soins-col h3{font-size:1.7rem;margin-bottom:28px;font-weight:400;color:var(--ink);}
  .soins-col ul{list-style:none;}
  .soins-col li{padding:18px 0;border-top:1px solid rgba(201,162,39,0.25);display:flex;justify-content:space-between;align-items:center;font-size:0.98rem;color:var(--text-soft);}
  .soins-col li:first-of-type{border-top:none;}
  .soins-col li::after{content:"→";opacity:0;transition:opacity .25s;}
  .soins-col.dentaire li::after{color:var(--royal);}
  .soins-col.esthetique li::after{color:var(--gold);}
  .soins-col li:hover::after{opacity:1;}
  .soins-col li:hover{color:var(--ink);}
  @media(max-width:820px){.soins-grid{grid-template-columns:1fr;}}

  /* POURQUOI — blanc */
  .why{background:var(--white);}
  .why-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:64px;}
  .why-head h2{font-size:clamp(1.9rem,3vw,2.4rem);font-weight:400;color:var(--ink);}
  .why-head p{max-width:380px;color:var(--text-soft);}
  .why-list{border-top:1px solid rgba(201,162,39,0.3);}
  .why-row{display:grid;grid-template-columns:60px 1fr 1.4fr;gap:32px;align-items:center;padding:30px 0;border-bottom:1px solid rgba(201,162,39,0.3);}
  .why-row .mk{font-family:'Fraunces',serif;font-style:italic;color:var(--gold);font-size:1.05rem;}
  .why-row h3{font-family:'Manrope';font-weight:700;font-size:1.02rem;color:var(--ink);}
  .why-row p{font-size:0.92rem;color:var(--text-soft);}
  @media(max-width:820px){.why-head{grid-template-columns:1fr;}.why-row{grid-template-columns:40px 1fr;}.why-row p{grid-column:2;}}

  /* AVIS — champagne */
  .avis{background:var(--champagne-light);}
  .avis .wrap{max-width:820px;text-align:center;}
  .avis .quote-mark{font-family:'Fraunces',serif;font-size:4rem;color:var(--gold);line-height:1;margin-bottom:8px;}
  .avis blockquote{border:none;padding:0;font-size:1.5rem;line-height:1.5;margin:0 0 28px;color:var(--ink);}
  .avis .who{font-size:0.82rem;letter-spacing:0.05em;text-transform:uppercase;color:var(--text-soft);}
  .avis-nav{display:flex;justify-content:center;gap:10px;margin-top:44px;}
  .avis-nav span{width:6px;height:6px;border-radius:50%;background:var(--champagne);}
  .avis-nav span.on{background:var(--gold);}

  /* RDV — bleu roi */
  .rdv{background:linear-gradient(165deg, var(--royal) 0%, var(--royal-deep) 100%);color:var(--white);text-align:center;}
  .rdv .eyebrow{color:var(--gold-light);justify-content:center;}
  .rdv h2{font-size:clamp(2.1rem,4vw,3.1rem);max-width:620px;margin:0 auto 20px;font-weight:380;}
  .rdv p{max-width:460px;margin:0 auto 40px;color:var(--white-soft);}

  /* FOOTER — bleu roi */
  footer{background:var(--royal-deep);color:var(--white-soft);border-top:2px solid var(--gold);}
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:100px 0 56px;}
  .contact-grid h2{color:var(--white);font-size:2rem;margin-bottom:18px;font-weight:400;}
  .contact-grid p{margin-bottom:32px;font-size:1.05rem;}
  .field{margin-bottom:16px;}
  .field label{display:block;font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:8px;color:var(--gold-light);}
  .field input,.field textarea{width:100%;padding:13px 0;border:none;border-bottom:1px solid rgba(255,255,255,0.25);background:transparent;color:var(--white);font-family:'Manrope';font-size:0.95rem;}
  .field input:focus,.field textarea:focus{outline:none;border-color:var(--gold);}
  .field ::placeholder{color:rgba(255,255,255,0.35);}
  .infos li{list-style:none;padding:20px 0;border-top:1px solid rgba(255,255,255,0.15);font-size:1.05rem;}
  .infos li:first-child{border-top:none;}
  .infos .k{font-size:0.8rem;text-transform:uppercase;letter-spacing:0.08em;display:block;margin-bottom:6px;color:var(--gold-light);}
  .foot-bottom{width:100%;}
  .fb-inner{max-width:none;border-top:1px solid rgba(255,255,255,0.15);
    padding:24px max(40px, calc((100% - 1160px) / 2));
    display:flex;justify-content:space-between;align-items:center;
    font-size:0.9rem;opacity:0.75;flex-wrap:wrap;gap:10px;transition:padding .4s ease;}
  body.at-bottom .fb-inner{padding:24px 48px;}
  @media(max-width:820px){.fb-inner{padding:24px 24px;}}
  /* ===== Ajouts intégration (formulaire, avis, pot de miel) ===== */
  /* Pot de miel anti-spam : masqué aux visiteurs, visible pour les bots. */
  .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}

  /* Alertes du formulaire de contact */
  .form-alert{padding:12px 16px;border-radius:2px;margin-bottom:18px;font-size:0.9rem;}
  .form-alert--ok{background:rgba(201,162,39,0.18);border:1px solid var(--gold);color:var(--white);}
  .form-alert--ko{background:rgba(220,80,80,0.15);border:1px solid #e0a0a0;color:var(--white);}
  footer form .btn{margin-top:12px;}

  /* Avis — plusieurs témoignages en fondu */
  .avis-track{position:relative;}
  .avis-slide{display:none;}
  .avis-slide.active{display:block;animation:avisFade .6s ease;}
  @keyframes avisFade{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
  .avis-nav span{cursor:pointer;}

  /* ===== Page mentions légales ===== */
  .legal{padding:160px 0 100px;background:var(--white);}
  .legal .eyebrow{color:var(--gold);}
  .legal h1{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:36px;color:var(--ink);font-weight:400;}
  .legal h2{font-size:1.15rem;margin:34px 0 10px;color:var(--royal);font-weight:600;font-family:'Manrope',sans-serif;}
  .legal p{color:var(--text-soft);max-width:760px;margin-bottom:12px;}
  .legal a{color:var(--royal);text-decoration:underline;}
  .legal .legal-back{margin-top:44px;}

  /* ===== Pages d'erreur (404 / 500) ===== */
  .errpage{padding:180px 0 120px;background:var(--white);text-align:center;}
  .errpage .eyebrow{color:var(--gold);justify-content:center;}
  .errpage .err-code{font-family:'Fraunces',serif;font-size:clamp(4.5rem,14vw,9rem);line-height:.95;color:var(--royal);font-weight:300;margin:14px 0 4px;}
  .errpage h1{font-size:clamp(1.5rem,3.4vw,2.3rem);color:var(--ink);font-weight:400;margin-bottom:16px;}
  .errpage p{color:var(--text-soft);max-width:560px;margin:0 auto 34px;}
  .errpage .btn-row{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;}

  /* ===== Module Doctolib intégré (section RDV) ===== */
  .rdv .doctolib-embed{max-width:840px;margin:34px auto 0;background:var(--white);border:1px solid rgba(201,162,39,0.45);border-radius:4px;overflow:hidden;box-shadow:0 20px 50px -24px rgba(8,14,32,0.6);}
  .rdv .doctolib-embed iframe{width:100%;height:720px;border:0;display:block;}
  .rdv-fallback,.rdv-empty{margin:18px auto 0;max-width:560px;font-size:0.9rem;color:var(--white-soft);}
  .rdv-fallback a,.rdv-empty a{color:var(--gold-light);text-decoration:underline;}
  @media(max-width:820px){.rdv .doctolib-embed iframe{height:640px;}}

  /* ===== Étoiles des avis ===== */
  .avis-stars{display:flex;justify-content:center;gap:4px;margin-bottom:18px;font-size:1.1rem;color:rgba(26,26,26,0.18);}
  .avis-stars .on{color:var(--gold);}

  /* ===== Page Médecine esthétique ===== */
  .page-hero{position:relative;background:linear-gradient(165deg, var(--royal) 0%, var(--royal-deep) 100%);color:var(--white);padding:200px 0 120px;text-align:center;}
  .page-hero .eyebrow{justify-content:center;color:var(--gold-light);}
  .page-hero h1{font-size:clamp(2.3rem,5vw,4rem);line-height:1.05;font-weight:340;max-width:840px;margin:0 auto 26px;}
  .page-hero h1 em{font-style:italic;color:var(--gold-light);font-weight:340;}
  .page-hero .lead{max-width:560px;margin:0 auto 40px;color:var(--white-soft);font-size:1.06rem;}
  .page-hero .btn-row{justify-content:center;}

  .est-intro{background:var(--white);}
  .est-intro .wrap{display:grid;grid-template-columns:0.85fr 1.15fr;gap:80px;align-items:center;}
  .est-intro .eyebrow{color:var(--gold);}
  .est-intro h2{font-size:clamp(1.9rem,3vw,2.6rem);margin-bottom:26px;font-weight:400;color:var(--ink);}
  .est-intro p{margin-bottom:18px;max-width:520px;color:var(--text-soft);}
  @media(max-width:820px){.est-intro .wrap{grid-template-columns:1fr;gap:48px;}}

  .acts{background:linear-gradient(180deg, var(--champagne-light) 0%, var(--champagne) 100%);}
  .acts .soins-head{max-width:720px;}
  .acts-sub{margin-top:18px;color:var(--text-soft);}
  .acts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .act-card{background:var(--white);padding:38px 32px;border:1px solid rgba(201,162,39,0.4);position:relative;transition:transform .3s ease,box-shadow .3s ease;}
  .act-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px -30px rgba(18,44,116,0.5);}
  .act-card .act-mk{font-family:'Fraunces',serif;font-style:italic;color:var(--gold);font-size:1.1rem;}
  .act-card h3{font-size:1.25rem;margin:14px 0 12px;font-weight:400;color:var(--ink);}
  .act-card p{font-size:0.95rem;color:var(--text-soft);}
  @media(max-width:900px){.acts-grid{grid-template-columns:1fr 1fr;}}
  @media(max-width:620px){.acts-grid{grid-template-columns:1fr;}}

  .steps{background:var(--white);}

  .cadre{background:var(--champagne-light);}
  .cadre .eyebrow{color:var(--gold);}
  .cadre h2{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:400;color:var(--ink);margin-bottom:28px;}
  .cadre-list{list-style:none;max-width:820px;}
  .cadre-list li{position:relative;padding:16px 0 16px 30px;border-top:1px solid rgba(201,162,39,0.3);color:var(--text-soft);font-size:0.98rem;}
  .cadre-list li:first-child{border-top:none;}
  .cadre-list li::before{content:"—";position:absolute;left:0;color:var(--gold);}
  .cadre-list strong{color:var(--ink);font-weight:600;}
  .cadre-rgpd{margin-top:40px;background:var(--white);border:1px solid rgba(201,162,39,0.4);border-left:3px solid var(--gold);padding:32px;max-width:820px;}
  .cadre-rgpd h3{font-family:'Manrope',sans-serif;font-weight:700;font-size:1.05rem;color:var(--royal);margin-bottom:14px;}
  .cadre-rgpd p{color:var(--text-soft);font-size:0.95rem;margin-bottom:12px;}
  .cadre-rgpd a{color:var(--royal);text-decoration:underline;}

  /* Photo réelle dans le cadre "portrait" (page esthétique) */
  .portrait .fill--photo{padding:0;overflow:hidden;}
  .portrait .fill--photo img{width:100%;height:100%;object-fit:cover;display:block;}

  /* Cadre "Notre approche" : fondu automatique entre plusieurs portraits */
  .fill--photo{position:relative;padding:0;overflow:hidden;}
  .fill--photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1s ease;}
  .fill--photo img.active{opacity:1;}


  /* Bouton retour en haut */
  .to-top{position:fixed;right:26px;bottom:26px;z-index:90;width:48px;height:48px;border-radius:50%;
    background:var(--gold);color:var(--ink);display:flex;align-items:center;justify-content:center;
    border:none;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);
    transition:opacity .3s ease, transform .3s ease, background .3s ease, visibility .3s, bottom .4s ease;
    box-shadow:0 10px 26px -8px rgba(8,14,32,0.6);}
  .to-top.show{opacity:1;visibility:visible;transform:translateY(0);}
  .to-top:hover{background:var(--gold-light);}
  @media(max-width:820px){.to-top{right:16px;bottom:16px;width:44px;height:44px;}}


  /* ===== Responsive mobile complémentaire ===== */
  @media(max-width:900px){
    .logo img{height:48px;}
    nav.solid .logo img{height:44px;}
    .logo{gap:10px;font-size:1rem;}
    .logo-name{font-size:0.78rem;gap:8px;}
    /* On garde les noms des praticiens ; on masque seulement le "Cabinet"
       décoratif pour laisser la place au burger. */
    .logo-cabinet{display:none;}
  }
  @media(max-width:400px){
    .logo img{height:42px;}
    .logo-name{font-size:0.7rem;}
  }
  @media(max-width:820px){
    .scroll-cue{display:none;}
    .hero-dots{bottom:22px;}
    .about .wrap{grid-template-columns:1fr;gap:44px;}
    .about .portrait{max-width:360px;}
    .est-intro .portrait{max-width:360px;}
    .contact-grid{grid-template-columns:1fr;gap:44px;padding:72px 0 44px;}
    .hero h1{font-size:clamp(2.1rem,9vw,3rem);}
  }
  @media(max-width:420px){
    .logo span{font-size:0.9rem;}
  }

  /* ===== Marque + animation d'ouverture du panneau mobile ===== */
  @media(max-width:900px){
    /* animation panneau mobile */
    .nav-menu-brand{display:flex;align-items:center;gap:14px;width:100%;color:var(--white);
      font-family:'Fraunces',serif;font-size:1.05rem;padding-bottom:22px;margin-bottom:6px;
      border-bottom:1px solid rgba(255,255,255,0.15);}
    .nav-menu-brand em{font-style:italic;color:var(--gold-light);}

    .nav-menu-brand,
    .nav-menu ul li,
    .nav-menu .nav-cta{opacity:0;transform:translateX(22px);transition:opacity .7s ease, transform .7s ease;}
    #nav.open .nav-menu-brand{opacity:1;transform:none;transition-delay:.12s;}
    #nav.open .nav-menu ul li{opacity:1;transform:none;}
    #nav.open .nav-menu ul li:nth-child(1){transition-delay:.30s;}
    #nav.open .nav-menu ul li:nth-child(2){transition-delay:.48s;}
    #nav.open .nav-menu ul li:nth-child(3){transition-delay:.66s;}
    #nav.open .nav-menu ul li:nth-child(4){transition-delay:.84s;}
    #nav.open .nav-menu ul li:nth-child(5){transition-delay:1.00s;}
    #nav.open .nav-menu ul li:nth-child(6){transition-delay:1.16s;}
    #nav.open .nav-menu .nav-cta{opacity:1;transform:none;transition-delay:1.32s;}
  }

  /* Bouton retour en haut : remonte quand le bandeau s'élargit en bas de page */
  body.at-bottom .to-top{bottom:92px;}
  @media(max-width:820px){body.at-bottom .to-top{bottom:78px;}}
  /* ===== Page Charte éthique ===== */
  .charte{padding:160px 0 100px;background:var(--white);}
  .charte .eyebrow{color:var(--gold);}
  .charte h1{font-size:clamp(2rem,4vw,2.8rem);margin-bottom:22px;color:var(--ink);font-weight:400;}
  .charte-intro{max-width:820px;color:var(--text-soft);font-size:1.05rem;margin-bottom:28px;}
  .charte-tools{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:36px;}
  .charte-badge{display:inline-block;background:var(--champagne-light);border:1px solid var(--gold);color:var(--royal);font-size:0.8rem;letter-spacing:0.04em;padding:8px 16px;border-radius:2px;}
  .charte-summary{max-width:820px;background:var(--champagne-light);border-left:3px solid var(--gold);padding:24px 28px;margin-bottom:44px;}
  .charte-summary .k{display:block;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.12em;color:var(--gold);margin-bottom:10px;}
  .charte-summary ol{margin:0;padding-left:20px;color:var(--text-soft);}
  .charte-summary li{padding:3px 0;}

  .charte-group{max-width:860px;margin:0 0 40px;padding:0;}
  .charte-group h2{font-size:1.35rem;color:var(--royal);font-weight:600;font-family:'Manrope',sans-serif;margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--gold);}
  .charte-content details{border-bottom:1px solid rgba(201,162,39,0.3);}
  .charte-content summary{cursor:pointer;list-style:none;padding:18px 34px 18px 0;position:relative;font-weight:600;color:var(--ink);font-size:1.02rem;transition:color .2s;}
  .charte-content summary::-webkit-details-marker{display:none;}
  .charte-content summary:hover{color:var(--royal);}
  .charte-content summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:1.4rem;line-height:1;transition:transform .25s;}
  .charte-content details[open] summary::after{content:"–";}
  .charte-content .ch-body{padding:0 0 22px;}
  .charte-content .ch-body p{color:var(--text-soft);margin-bottom:12px;max-width:820px;}
  .charte-content .ch-body em{color:var(--ink);font-style:italic;}
  .charte-note{max-width:860px;margin-top:40px;padding-top:22px;border-top:1px solid rgba(201,162,39,0.3);font-size:0.9rem;color:var(--text-soft);}
  .charte-note a{color:var(--royal);text-decoration:underline;}

  .charte-doc{width:100%;border-collapse:collapse;}
  .charte-doc, .charte-doc tbody, .charte-doc tr, .charte-doc td{display:block;width:auto;}
  .charte-doc tfoot, .charte-doc thead{display:none;}
  .print-footer, .print-header{display:none;}

  /* Impression : uniquement la charte, tous les articles dépliés */
  @media print{
    nav, footer, .to-top, .charte-tools, .charte-summary{display:none !important;}
    .charte{padding:0;}
    .charte-content details{border:none;}
    .charte-content summary::after{display:none;}
    .charte-content .ch-body{display:block !important;}
    body{background:#fff;}
    /* Tableau : le tfoot se répète en bas de chaque page et réserve sa place (pas de chevauchement) */
    .charte-doc{display:table;width:100%;}
    .charte-doc tbody{display:table-row-group;}
    .charte-doc thead{display:table-header-group;}
    .charte-doc tfoot{display:table-footer-group;}
    .charte-doc tr{display:table-row;}
    .charte-doc td{display:table-cell;}
    .print-footer{display:flex;align-items:center;justify-content:center;gap:8px;padding-top:6mm;color:var(--royal);font-size:9.5px;}
    .print-header{display:flex;align-items:center;justify-content:center;gap:8px;padding-bottom:5mm;margin-bottom:4mm;border-bottom:1px solid rgba(201,162,39,0.4);color:var(--royal);font-size:9.5px;}
    .print-footer img,.print-header img{height:20px;width:auto;}
  }
  @page{margin:14mm 12mm;}

  /* ===== Choix du praticien (RDV accueil) ===== */
  .prat-choice{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:720px;margin:34px auto 0;}
  .prat-card{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;
    background:var(--white);border:1px solid rgba(201,162,39,0.45);border-radius:4px;padding:32px 24px;
    cursor:pointer;transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;font-family:inherit;}
  .prat-card:hover{transform:translateY(-4px);box-shadow:0 22px 46px -26px rgba(8,14,32,0.6);}
  .prat-card.active{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold) inset;}
  .prat-photo{width:96px;height:96px;border-radius:50%;overflow:hidden;background:linear-gradient(155deg,var(--champagne-light),var(--champagne));
    display:flex;align-items:center;justify-content:center;border:1px solid rgba(201,162,39,0.4);}
  .prat-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .prat-initial{font-family:'Fraunces',serif;font-size:2rem;color:var(--royal);}
  .prat-name{font-family:'Fraunces',serif;font-size:1.2rem;color:var(--ink);}
  .prat-role{font-size:0.85rem;color:var(--text-soft);}
  .prat-cta{margin-top:8px;font-size:0.78rem;letter-spacing:0.04em;text-transform:uppercase;font-weight:700;color:var(--ink);background:var(--gold);padding:10px 20px;border-radius:2px;}
  .prat-card:hover .prat-cta{background:var(--gold-light);}
  @media(max-width:620px){.prat-choice{grid-template-columns:1fr;max-width:360px;}}

  /* ===== Section « Le cabinet » : rotation David / Margaux ===== */
  .about-frame{position:relative;}
  .about-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .8s ease;}
  .about-face.active{opacity:1;}
  .about-face img{width:100%;height:100%;object-fit:cover;display:block;}
  .about-face-ph{font-family:'Fraunces',serif;font-style:italic;color:var(--royal);font-size:0.95rem;text-align:center;padding:0 22px;}
  .about-persons{display:grid;}
  .about-person{grid-area:1 / 1;opacity:0;transition:opacity .8s ease;pointer-events:none;}
  .about-person.active{opacity:1;pointer-events:auto;}
  .about-person h2{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:8px;font-weight:400;color:var(--ink);}
  .about-role{font-size:0.8rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold);margin-bottom:22px;}
  .about-person p{color:var(--text-soft);max-width:520px;}

  /* ===== Section Équipe ===== */
  .team{background:var(--white);}
  .team-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:40px 32px;}
  .team-card{text-align:center;flex:0 0 210px;max-width:210px;}
  .team-photo{width:100%;aspect-ratio:1/1;border-radius:50%;overflow:hidden;margin:0 auto 16px;max-width:200px;
    background:linear-gradient(155deg,var(--champagne-light),var(--champagne));display:flex;align-items:center;justify-content:center;border:1px solid rgba(201,162,39,0.4);}
  .team-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .team-initial{font-family:'Fraunces',serif;font-size:2.6rem;color:var(--royal);}
  .team-name{font-family:'Fraunces',serif;font-size:1.2rem;color:var(--ink);}
  .team-role{font-size:0.85rem;letter-spacing:0.04em;color:var(--gold);margin-top:4px;}
  @media(max-width:520px){.team-card{flex-basis:160px;max-width:160px;}.team-photo{max-width:160px;}}

  /* Puces et sources dans le corps des articles de charte */
  .ch-li{position:relative;padding-left:20px;margin:0 0 8px;color:var(--text-soft);}
  .ch-li::before{content:"•";position:absolute;left:4px;color:var(--gold);}
  .ch-src{font-size:0.85rem;font-style:italic;color:var(--text-soft);opacity:0.85;margin-top:8px;}

  /* En-tête de la section avis : logo Google */
  .avis-brand{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:22px;}
  .avis-brand svg{display:block;}
  .avis-brand-label{font-size:0.74rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-soft);font-weight:700;}

  /* Encadré renvoyant à la charte (page esthétique) */
  .charte-cta-wrap{background:var(--white);}
  .charte-cta{max-width:820px;margin:0 auto;background:var(--champagne-light);border-left:3px solid var(--gold);
    padding:28px 32px;text-align:center;}
  .charte-cta p{color:var(--text-soft);margin-bottom:18px;}
  /* Renvoi discret sous les soins (accueil) */
  .soins-charte{text-align:center;max-width:760px;margin:36px auto 0;font-size:0.9rem;color:var(--text-soft);}
  .soins-charte a{color:var(--royal);text-decoration:underline;}
