*,*::before,*::after{box-sizing:border-box}
  body{margin:0;font-family:var(--font-body);color:var(--color-ink);background:var(--color-paper);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased}
  body.is-locked{overflow:hidden}
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:400;letter-spacing:var(--tracking-tight);margin:0;line-height:var(--leading-tight)}
  p{margin:0}
  strong{font-weight:600}
  /* Section anchors offset for sticky nav */
  section[id]{scroll-margin-top:var(--space-7)}
  .container{max-width:var(--container);margin:0 auto;padding-inline:var(--gutter)}
  .container--wide{max-width:var(--container-wide);margin:0 auto;padding-inline:var(--gutter)}
  .it{font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1;color:var(--color-green-deep);font-weight:400}

  /* ============ TOP BAR ============ */
  .topbar{background:var(--color-ink);color:var(--color-paper);padding-block:var(--space-2);font-size:var(--text-xs)}
  .topbar__inner{display:flex;justify-content:space-between;align-items:center;gap:var(--space-5);flex-wrap:wrap}
  .topbar__left{display:flex;gap:var(--space-5);align-items:center;flex-wrap:wrap}
  .topbar__item{display:inline-flex;align-items:center;gap:var(--space-2);color:rgba(251,248,241,0.85)}
  .topbar__item strong{color:var(--color-paper);font-weight:500}
  .topbar__item a{color:inherit}
  .topbar__item a{color:var(--color-contact-light)}
  .topbar__item a:hover{color:var(--color-paper)}
  .topbar__pill{background:var(--color-green-mid);color:var(--color-ink);padding:0.3rem 0.75rem;border-radius:var(--radius-pill);font-size:0.625rem;letter-spacing:var(--tracking-widest);text-transform:uppercase;font-weight:600}

  /* ============ NAV — Mega menu (Karbonalpha-style) ============ */
  .nav{background:rgba(251,248,241,0.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--color-line);position:sticky;top:0;z-index:50}
  .nav__inner{display:flex;justify-content:space-between;align-items:center;padding-block:var(--space-3);gap:var(--space-4)}
  .nav__brand{font-family:var(--font-display);font-size:var(--text-md);font-weight:400;display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}
  /* Pictogramme : 3 cercles imbriqués, repris du logo historique du cabinet.
     Les teintes sont pilotées par des variables pour pouvoir décliner la charte. */
  .nav__brand-mark{width:38px;height:37px;flex-shrink:0;display:block;overflow:visible}
  .logo__c1{fill:var(--logo-c1,#A8C9B5);mix-blend-mode:multiply}
  .logo__c2{fill:var(--logo-c2,#93C4BC);mix-blend-mode:multiply}
  .logo__c3{fill:var(--logo-c3,#C3D6B8);mix-blend-mode:multiply}
  .nav__brand-text{display:flex;flex-direction:column;line-height:1.1}
  .nav__brand-text small{font-family:var(--font-body);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink-mute);margin-top:2px}

  /* Liste menu principale */
  .menu{display:none;list-style:none;padding:0;margin:0;flex:1;justify-content:center;align-items:center;gap:var(--space-1)}
  @media(min-width:1180px){.menu{display:flex}}
  .menu__item{position:relative;display:flex;align-items:center}
  /* Base commune trigger (button) + link (a) — alignement parfaitement identique */
  .menu__trigger,.menu__link{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2);
    height:40px;
    padding:0 var(--space-4);
    background:transparent;
    border:0;
    margin:0;
    cursor:pointer;
    font:inherit;
    font-family:var(--font-body);
    font-size:var(--text-sm);
    font-weight:500;
    color:var(--color-ink);
    line-height:1;
    text-decoration:none;
    white-space:nowrap;
    border-radius:var(--radius-sm);
    transition:color var(--duration-base),background var(--duration-base)
  }
  .menu__trigger::after{content:"";display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--color-ink-mute);margin-top:1px;transition:transform var(--duration-base) var(--ease-out),border-top-color var(--duration-base)}
  .menu__trigger:hover,.menu__link:hover,
  .menu__item:hover .menu__trigger,.menu__item:focus-within .menu__trigger{color:var(--color-green-deep);background:var(--color-cream)}
  .menu__item:hover .menu__trigger::after,.menu__item:focus-within .menu__trigger::after{transform:rotate(180deg) translateY(1px);border-top-color:var(--color-green-deep)}
  .menu__trigger:focus,.menu__link:focus{outline:none}
  .menu__trigger:focus-visible,.menu__link:focus-visible{outline:2px solid var(--color-green-deep);outline-offset:2px}

  /* Mega panel */
  .megamenu{position:absolute;top:calc(100% + var(--space-2));left:50%;transform:translateX(-50%) translateY(-8px);min-width:580px;max-width:calc(100vw - 64px);background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-6);opacity:0;visibility:hidden;transition:all var(--duration-base) var(--ease-out);z-index:100}
  .megamenu--wide{min-width:720px}
  .menu__item:hover .megamenu,.menu__item:focus-within .megamenu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
  /* Bridge invisible pour éviter la fermeture quand on glisse vers le panel */
  .megamenu::before{content:"";position:absolute;top:-12px;left:0;right:0;height:12px}

  .megamenu__grid{display:grid;gap:var(--space-6);grid-template-columns:repeat(3,1fr)}
  .megamenu__grid--2{grid-template-columns:1fr 1fr}
  .megamenu__col-title{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-green-deep);font-family:var(--font-body);font-weight:600;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-line)}
  .megamenu__list{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-1)}
  .megamenu__list a{display:block;padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-ink-soft);transition:all var(--duration-fast);font-weight:400}
  .megamenu__list a:hover{background:var(--color-cream);color:var(--color-ink);padding-left:var(--space-3)}
  .megamenu__list a strong{display:block;color:var(--color-ink);font-weight:500;margin-bottom:2px}
  .megamenu__list a small{display:block;font-size:var(--text-2xs);color:var(--color-ink-mute);margin-top:2px;letter-spacing:0;text-transform:none}

  /* Featured card dans le mega menu */
  .megamenu__feature{background:var(--color-cream);border-radius:var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);min-height:180px;justify-content:flex-end;background-size:cover;background-position:center;position:relative;overflow:hidden;color:var(--color-paper)}
  .megamenu__feature::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(42,47,44,0.85))}
  .megamenu__feature>*{position:relative;z-index:1}
  .megamenu__feature-eyebrow{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;font-family:var(--font-body);font-weight:600;opacity:0.9}
  .megamenu__feature-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:400;line-height:1.2}
  .megamenu__feature-cta{font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;font-family:var(--font-body);font-weight:600;display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-paper)}
  .megamenu__feature-cta::after{content:"→";transition:transform var(--duration-fast)}
  .megamenu__feature:hover .megamenu__feature-cta::after{transform:translateX(4px)}

  /* Bottom strip dans mega menu */
  .megamenu__bottom{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-line);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;font-size:var(--text-xs);color:var(--color-ink-soft)}
  .megamenu__bottom strong{color:var(--color-ink)}
  .megamenu__bottom a{color:var(--color-contact);font-weight:500;text-decoration:underline;text-underline-offset:3px}

  /* Right side : phone + CTA */
  .nav__right{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}
  .nav__phone{display:none;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-family:var(--font-mono);color:var(--color-contact);font-weight:500}
  @media(min-width:900px){.nav__phone{display:inline-flex}}
  .nav__phone:hover{color:var(--color-ink)}
  .nav__phone::before{content:"📞";font-family:var(--font-body)}
  .nav__cta{padding:0.7rem 1.4rem;border-radius:var(--radius-md);background:var(--color-green-deep);color:var(--color-paper);font-size:var(--text-sm);font-weight:500;display:inline-flex;align-items:center;gap:var(--space-2);transition:all var(--duration-base);white-space:nowrap}
  .nav__cta:hover{background:var(--color-ink);transform:translateY(-1px)}
  .nav__cta-short{display:none}

  /* Burger mobile */
  .nav__burger{display:flex;flex-direction:column;gap:5px;background:transparent;border:0;cursor:pointer;padding:var(--space-2);margin-right:calc(var(--space-2) * -1)}
  @media(min-width:1180px){.nav__burger{display:none}}
  .nav__burger span{width:22px;height:2px;background:var(--color-ink);border-radius:1px;transition:transform var(--duration-base)}

  /* Mobile drawer */
  .mobile-menu{position:fixed;top:0;right:0;bottom:0;width:min(380px,90%);background:var(--color-paper);box-shadow:var(--shadow-lg);transform:translateX(100%);transition:transform var(--duration-base) var(--ease-out);z-index:200;padding:var(--space-7) var(--space-5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4)}
  .mobile-menu[data-open="true"]{transform:translateX(0)}
  .mobile-menu__close{position:absolute;top:var(--space-4);right:var(--space-4);background:transparent;border:0;cursor:pointer;font-size:1.5rem;color:var(--color-ink);line-height:1}
  .mobile-menu details{border-bottom:1px solid var(--color-line)}
  .mobile-menu summary{padding:var(--space-4) 0;font-family:var(--font-display);font-size:var(--text-md);font-weight:400;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;color:var(--color-ink)}
  .mobile-menu summary::-webkit-details-marker{display:none}
  .mobile-menu summary::after{content:"+";font-size:var(--text-lg);color:var(--color-green-deep);transition:transform var(--duration-base)}
  .mobile-menu details[open] summary::after{transform:rotate(45deg)}
  .mobile-menu details ul{list-style:none;padding:0 0 var(--space-4);margin:0;display:grid;gap:var(--space-2)}
  .mobile-menu details a{font-size:var(--text-sm);color:var(--color-ink-soft);padding:var(--space-2) 0;display:block}
  .mobile-menu__cta{margin-top:var(--space-5);padding:1rem;background:var(--color-green-deep);color:var(--color-paper);text-align:center;border-radius:var(--radius-md);font-weight:500;font-size:var(--text-sm)}
  .mobile-menu__phone{padding:1rem;border:1px solid var(--color-contact);text-align:center;border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--color-contact);font-weight:500;font-size:var(--text-sm)}

  .mobile-overlay{position:fixed;inset:0;background:rgba(42,47,44,0.5);opacity:0;visibility:hidden;transition:all var(--duration-base);z-index:150}
  .mobile-overlay[data-open="true"]{opacity:1;visibility:visible}

  /* ============ HERO — « Immersion » : photo du cabinet sous voile vert ============ */
  .hero{padding-block:var(--space-9) var(--space-8);position:relative;overflow:hidden;background:var(--color-green-deep)}
  .hero__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  /* Voile : les trois arrêts sont calés sur le contraste, pas sur l'esthétique seule.
     Au pire cas — un pixel blanc de la photo sous la partie la plus transparente —
     le texte paper reste à 4.55:1, soit le seuil AA. Assombrir les teintes plutôt
     que monter l'opacité laisse la photo davantage visible à contraste égal. */
  .hero__scrim{position:absolute;inset:0;background:linear-gradient(150deg,rgba(40,74,62,.95) 0%,rgba(50,88,75,.90) 45%,rgba(59,99,85,.86) 100%)}
  .hero__inner{position:relative;z-index:1;max-width:980px;margin:0 auto;text-align:center}
  .hero__eyebrow{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:rgba(251,248,241,0.78);margin-bottom:var(--space-6);font-family:var(--font-body);justify-content:center}
  .hero__eyebrow::before,.hero__eyebrow::after{content:"";display:block;width:32px;height:1px;background:rgba(251,248,241,0.5)}
  .hero__title{font-size:clamp(2.5rem,5.5vw + 1rem,5rem);line-height:1.02;margin-bottom:var(--space-5);font-weight:300;letter-spacing:-0.02em;max-width:24ch;margin-inline:auto;color:var(--color-paper)}
  .hero__title strong{font-weight:400}
  .hero__title .it{color:#CDE3D3}
  .hero__lead{font-size:var(--text-md);color:rgba(251,248,241,0.86);max-width:62ch;line-height:var(--leading-relaxed);margin:0 auto var(--space-6)}
  .hero__lead strong{color:var(--color-paper)}
  .hero__ctas{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center;margin-bottom:var(--space-6);justify-content:center}
  .hero__trust{display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:var(--text-xs);color:rgba(251,248,241,0.82);justify-content:center}
  .hero__trust span{display:inline-flex;align-items:center;gap:var(--space-2)}
  .hero__trust span::before{content:"✓";color:#AFD4BE;font-weight:700}
  /* boutons : inversés dans le hero (fond sombre), verts partout ailleurs */
  .btn-primary{padding:0.95rem 1.75rem;background:var(--color-green-deep);color:var(--color-paper);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;display:inline-flex;align-items:center;gap:var(--space-2);transition:all var(--duration-base);border:none;cursor:pointer}
  .btn-primary:hover{background:var(--color-ink);transform:translateY(-1px)}
  .btn-secondary{padding:0.95rem 1.75rem;background:var(--color-paper);border:1px solid var(--color-line-strong);color:var(--color-ink);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;display:inline-flex;align-items:center;gap:var(--space-2);transition:all var(--duration-base)}
  .btn-secondary:hover{border-color:var(--color-ink);background:var(--color-cream)}
  .hero .btn-primary{background:var(--color-paper);color:var(--color-green-deep)}
  .hero .btn-primary:hover{background:#CDE3D3;color:var(--color-ink)}
  .hero .btn-secondary{background:transparent;border-color:rgba(251,248,241,0.45);color:var(--color-paper)}
  .hero .btn-secondary:hover{background:rgba(251,248,241,0.12);border-color:var(--color-paper)}

  /* ============ BOOKING BLOCKS — un bloc par praticien ============ */
  .booking-blocks{padding-block:var(--space-7) var(--space-8);background:var(--color-paper);position:relative}
  .booking-blocks__head{text-align:center;max-width:680px;margin:0 auto var(--space-6)}
  .booking-blocks__eyebrow{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink-mute);margin-bottom:var(--space-3);font-family:var(--font-body)}
  .booking-blocks__title{font-size:clamp(1.75rem,3.5vw,2.75rem);font-weight:300;letter-spacing:-0.01em;line-height:1.1}
  .booking-blocks__title em{color:var(--color-green-deep);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1;font-weight:400}
  .booking-blocks__sub{font-size:var(--text-sm);color:var(--color-ink-soft);margin-top:var(--space-3);line-height:var(--leading-relaxed)}
  .booking-blocks__grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
  @media(min-width:800px){.booking-blocks__grid{grid-template-columns:1fr 1fr;gap:var(--space-5)}}
  .booking-card{background:var(--color-cream);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);transition:all var(--duration-base) var(--ease-out)}
  .booking-card:hover{transform:translateY(-3px);border-color:var(--color-green-deep);box-shadow:var(--shadow-md)}
  .booking-card__head{display:flex;align-items:center;gap:var(--space-4)}
  .booking-card__photo{width:80px;height:80px;border-radius:50%;background:var(--color-sand);overflow:hidden;flex-shrink:0;border:3px solid var(--color-paper);box-shadow:var(--shadow-sm)}
  .booking-card__photo img{width:100%;height:100%;object-fit:cover}
  .booking-card__id{flex:1;min-width:0}
  .booking-card__name{font-family:var(--font-display);font-size:var(--text-xl);font-weight:400;line-height:1.1;margin-bottom:var(--space-1);letter-spacing:-0.01em}
  .booking-card__role{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-green-deep);font-family:var(--font-body);font-weight:600}
  .booking-card__motifs{display:flex;flex-wrap:wrap;gap:var(--space-2)}
  .booking-card__chip{font-size:0.6875rem;letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:0.3rem 0.7rem;background:var(--color-paper);border-radius:var(--radius-pill);color:var(--color-ink-soft);font-family:var(--font-body);font-weight:500;border:1px solid var(--color-line)}
  .booking-card__bio{font-size:var(--text-sm);color:var(--color-ink-soft);line-height:var(--leading-relaxed)}
  .booking-card__cta{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:0.95rem 1.5rem;background:var(--color-green-deep);color:var(--color-paper);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;transition:all var(--duration-base);text-decoration:none;align-self:stretch;text-align:center;margin-top:auto}
  .booking-card__cta:hover{background:var(--color-ink)}
  .booking-card__cta::after{content:"→";transition:transform var(--duration-fast)}
  .booking-card:hover .booking-card__cta::after{transform:translateX(4px)}
  .booking-card__cta-doctolib{font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:rgba(251,248,241,0.85);font-family:var(--font-body)}
  .booking-card__phone-fallback{display:block;text-align:center;font-size:var(--text-xs);color:var(--color-ink-mute);margin-top:var(--space-2);font-family:var(--font-mono)}
  .booking-card__phone-fallback a{color:var(--color-contact);font-weight:500}

  /* ============ TICKER ============ */
  .ticker{background:var(--color-ink);color:var(--color-paper);padding-block:var(--space-3);overflow:hidden;border-block:1px solid rgba(251,248,241,0.1)}
  .ticker__inner{display:flex;gap:var(--space-6);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;white-space:nowrap;animation:scroll 50s linear infinite}
  .ticker__inner span{flex-shrink:0;display:inline-flex;align-items:center;gap:var(--space-3)}
  .ticker__inner span::before{content:"◆";color:var(--color-green-mid)}
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

  /* ============ QUICK INFO ============ */
  .quickinfo{padding-block:var(--space-5);background:var(--color-paper);border-bottom:1px solid var(--color-line)}
  .quickinfo__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}
  @media(min-width:900px){.quickinfo__grid{grid-template-columns:repeat(4,1fr);gap:var(--space-4)}}
  .qi{padding:var(--space-4);background:var(--color-cream);border-radius:var(--radius-md);display:flex;gap:var(--space-3);align-items:flex-start}
  .qi__icon{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--color-green-deep);color:var(--color-paper);display:grid;place-items:center;font-family:var(--font-display);font-size:var(--text-base);flex-shrink:0;font-weight:500}
  .qi__label{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink-mute);margin-bottom:2px;font-family:var(--font-body)}
  .qi__value{font-size:var(--text-sm);font-weight:500;color:var(--color-ink);line-height:1.3}
  .qi__value small{display:block;font-weight:400;color:var(--color-ink-soft);font-size:var(--text-xs);margin-top:2px}

  /* ============ SERVICES — éditorial avec tarifs ============ */
  .services{padding-block:var(--space-9)}
  .services__head{display:grid;grid-template-columns:1fr;gap:var(--space-5);margin-bottom:var(--space-7);align-items:end}
  @media(min-width:900px){.services__head{grid-template-columns:1.2fr 1fr}}
  .services__title{font-size:clamp(2.25rem,4vw,3.5rem);line-height:1.05;font-weight:300;letter-spacing:-0.02em}
  .services__title em{color:var(--color-green-deep);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}
  .services__intro{font-size:var(--text-md);color:var(--color-ink-soft);line-height:var(--leading-relaxed);max-width:46ch}
  .services__grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}
  @media(min-width:800px){.services__grid{grid-template-columns:repeat(3,1fr)}}
  .svc{position:relative;padding:var(--space-6);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-3);min-height:380px;transition:transform var(--duration-base) var(--ease-out)}
  .svc:hover{transform:translateY(-4px)}
  .svc--cream{background:#E3EDE4}
  .svc--sand{background:#DCEAE6}
  .svc--sage{background:#E8EFDF}
  .svc__num{font-family:var(--font-display);font-size:4rem;line-height:1;color:var(--color-green-deep);font-weight:300;font-style:italic;font-variation-settings:"SOFT" 100}
  .svc__title{font-size:var(--text-xl);font-weight:400}
  .svc__price{margin:var(--space-1) 0;display:inline-flex;align-items:baseline;gap:var(--space-2)}
  .svc__price-amount{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-ink);font-weight:300;line-height:1}
  .svc__price-unit{font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-ink-mute);font-family:var(--font-body)}
  .svc__list{list-style:none;padding:0;margin:0;font-size:var(--text-sm);color:var(--color-ink-soft);display:grid;gap:var(--space-2);flex-grow:1}
  .svc__list li{padding-left:var(--space-4);position:relative;line-height:1.45}
  .svc__list li::before{content:"›";position:absolute;left:0;color:var(--color-green-deep);font-weight:600}
  .svc__cta{margin-top:var(--space-4);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink);display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600;font-family:var(--font-body);align-self:flex-start;padding-bottom:2px;border-bottom:1px solid var(--color-green-deep)}
  .svc__cta::after{content:"→";transition:transform var(--duration-fast)}
  .svc:hover .svc__cta::after{transform:translateX(4px)}

  /* ============ POURQUOI CONSULTER — SEO content ============ */
  .why{padding-block:var(--space-9);background:var(--color-sage-300)}
  .why__grid{display:grid;grid-template-columns:1fr;gap:var(--space-7);align-items:start}
  @media(min-width:900px){.why__grid{grid-template-columns:1fr 1fr;gap:var(--space-8)}}
  .why__title{font-size:clamp(2rem,4vw,3.25rem);line-height:1.05;font-weight:300;margin-bottom:var(--space-5);letter-spacing:-0.01em}
  .why__title em{color:var(--color-green-deep);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}
  .why__body{font-size:var(--text-base);color:var(--color-ink-soft);line-height:var(--leading-relaxed)}
  .why__body p+p{margin-top:var(--space-4)}
  .why__body strong{color:var(--color-ink);font-weight:500}
  .why__cta{margin-top:var(--space-5);display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--color-green-deep);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-green-deep)}
  .why__list{display:grid;gap:var(--space-3);background:var(--color-paper);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--color-line)}
  .why__list-title{font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:var(--space-3);font-weight:400}
  .why__item{display:grid;grid-template-columns:auto 1fr;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px dashed var(--color-line)}
  .why__item:last-child{border-bottom:0}
  .why__item-icon{font-family:var(--font-display);font-style:italic;color:var(--color-green-deep);font-size:var(--text-md);font-weight:500;width:30px}
  .why__item-name{font-size:var(--text-sm);color:var(--color-ink);font-weight:500;margin-bottom:2px}
  .why__item-desc{font-size:var(--text-xs);color:var(--color-ink-mute)}

  /* ============ GALLERY ============ */
  .gallery{padding-block:var(--space-9);background:var(--color-paper)}
  .gallery__head{display:grid;grid-template-columns:1fr;gap:var(--space-5);margin-bottom:var(--space-7);align-items:end}
  @media(min-width:900px){.gallery__head{grid-template-columns:1.2fr 1fr}}
  .gallery__title{font-size:clamp(2rem,4vw,3.25rem);line-height:1.05;font-weight:300;letter-spacing:-0.02em}
  .gallery__title em{color:var(--color-green-deep);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}
  .gallery__intro{font-size:var(--text-md);color:var(--color-ink-soft);line-height:var(--leading-relaxed);max-width:46ch}
  .gallery__intro a{color:var(--color-green-deep);font-weight:500;border-bottom:1px solid var(--color-green-deep)}
  /* Bento grid : 1 grand format paysage + 2 portraits */
  .gallery__grid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}
  @media(min-width:700px){.gallery__grid{grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:520px}}
  .gallery__cell{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-cream);min-height:320px}
  .gallery__cell img{width:100%;height:100%;object-fit:cover;transition:transform var(--duration-slow) var(--ease-out)}
  .gallery__cell:hover img{transform:scale(1.04)}
  .gallery__cell--big img{object-position:center 65%}
  .gallery__caption{position:absolute;left:var(--space-3);bottom:var(--space-3);background:rgba(251,248,241,0.92);backdrop-filter:blur(8px);padding:0.4rem 0.8rem;border-radius:var(--radius-pill);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);color:var(--color-ink);font-weight:500;font-family:var(--font-body)}

  /* ============ PHOTO BANNER ============ */
  .photo-banner{position:relative;min-height:clamp(360px,50vh,560px);padding-block:var(--space-8);overflow:hidden;display:grid;place-items:center}
  .photo-banner__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .photo-banner::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(42,47,44,0.7) 30%,rgba(127,184,166,0.4));z-index:1}
  .photo-banner__inner{position:relative;z-index:2;text-align:center;color:var(--color-paper);padding-inline:var(--gutter);max-width:880px}
  .photo-banner__eyebrow{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:rgba(251,248,241,0.85);margin-bottom:var(--space-4);font-family:var(--font-body)}
  .photo-banner__title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.75rem);line-height:1.05;font-weight:300;letter-spacing:-0.02em;margin-bottom:var(--space-5)}
  .photo-banner__title em{font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1;color:var(--color-paper)}
  .photo-banner__sub{font-size:var(--text-md);color:rgba(251,248,241,0.85);max-width:48ch;margin:0 auto var(--space-6);line-height:var(--leading-relaxed)}
  .photo-banner__cta{display:inline-flex;align-items:center;gap:var(--space-3);padding:1rem 2rem;background:var(--color-paper);color:var(--color-ink);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;transition:all var(--duration-base)}
  .photo-banner__cta:hover{background:var(--color-green-deep);color:var(--color-paper)}
  .photo-banner__cta::after{content:"→"}

  /* ============ PRACTITIONERS humanisé ============ */
  .duo{padding-block:var(--space-9)}
  .duo__head{text-align:center;margin-bottom:var(--space-8);max-width:680px;margin-inline:auto}
  .duo__eyebrow{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink-mute);margin-bottom:var(--space-3);font-family:var(--font-body)}
  .duo__title{font-size:clamp(2.25rem,4vw,3.25rem);font-weight:300;letter-spacing:-0.01em;margin-bottom:var(--space-3)}
  .duo__title em{color:var(--color-green-deep);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}
  .duo__intro{font-size:var(--text-md);color:var(--color-ink-soft);line-height:var(--leading-relaxed)}
  .duo__grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}
  @media(min-width:800px){.duo__grid{grid-template-columns:1fr 1fr}}
  .practitioner{display:grid;grid-template-columns:1fr;gap:var(--space-5);background:var(--color-cream);padding:var(--space-6);border-radius:var(--radius-lg)}
  @media(min-width:550px){.practitioner{grid-template-columns:140px 1fr;align-items:start}}
  .practitioner__photo{aspect-ratio:1;border-radius:var(--radius-lg);background:var(--color-sand);overflow:hidden;max-width:140px}
  .practitioner__photo img{width:100%;height:100%;object-fit:cover}
  .practitioner__name{font-size:var(--text-xl);margin-bottom:var(--space-2);font-weight:400}
  .practitioner__role{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-green-deep);margin-bottom:var(--space-4);font-family:var(--font-body);font-weight:600}
  .practitioner__bio{font-size:var(--text-sm);color:var(--color-ink-soft);line-height:var(--leading-relaxed);margin-bottom:var(--space-4)}
  .practitioner__creds{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}
  .cred{font-size:0.625rem;letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:0.25rem 0.6rem;background:var(--color-paper);border-radius:var(--radius-pill);color:var(--color-ink-soft);font-family:var(--font-body);font-weight:500}
  .practitioner__cta{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink);display:inline-flex;align-items:center;gap:var(--space-2);font-weight:600;font-family:var(--font-body);padding-bottom:2px;border-bottom:1px solid var(--color-green-deep)}
  .practitioner__cta::after{content:"→";transition:transform var(--duration-fast)}
  .practitioner__cta:hover::after{transform:translateX(4px)}

  /* ============ AVIS / TÉMOIGNAGES bento ============ */
  .reviews{padding-block:var(--space-9);background:var(--color-sage-300)}
  .reviews__head{text-align:center;margin-bottom:var(--space-7);max-width:680px;margin-inline:auto}
  .reviews__eyebrow{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink-mute);margin-bottom:var(--space-3);font-family:var(--font-body)}
  .reviews__eyebrow strong{color:var(--color-green-deep)}
  .reviews__title{font-size:clamp(2rem,4vw,3rem);font-weight:300;letter-spacing:-0.01em}
  .reviews__title em{color:var(--color-green-deep);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}
  .reviews__grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}
  @media(min-width:800px){.reviews__grid{grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto}.reviews__main{grid-column:span 2;grid-row:span 2}}
  .review{background:var(--color-paper);padding:var(--space-5);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-3)}
  .review__stars{color:var(--color-green-deep);font-size:var(--text-sm);letter-spacing:0.1em}
  .review__text{font-family:var(--font-display);font-size:var(--text-base);line-height:1.45;font-weight:400;color:var(--color-ink);flex-grow:1}
  .reviews__main .review__text{font-size:clamp(1.25rem,2vw,1.625rem);line-height:1.4;font-weight:300}
  .review__author{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-xs);margin-top:auto;padding-top:var(--space-3);border-top:1px dashed var(--color-line)}
  .review__avatar{width:36px;height:36px;border-radius:50%;background:var(--color-sand);display:grid;place-items:center;font-weight:500;font-family:var(--font-body);color:var(--color-ink)}
  .review__name{font-weight:500;color:var(--color-ink)}
  .review__meta{color:var(--color-ink-mute);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide)}

  /* ============ FAQ — SEO ============ */
  .faq{padding-block:var(--space-9)}
  .faq__head{text-align:center;margin-bottom:var(--space-7);max-width:680px;margin-inline:auto}
  .faq__eyebrow{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink-mute);margin-bottom:var(--space-3);font-family:var(--font-body)}
  .faq__title{font-size:clamp(2rem,4vw,3rem);font-weight:300;letter-spacing:-0.01em}
  .faq__title em{color:var(--color-green-deep);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}
  .faq__list{max-width:820px;margin:0 auto}
  .faq__item{border-bottom:1px solid var(--color-line);transition:background var(--duration-base)}
  .faq__item[open]{background:var(--color-cream);border-radius:var(--radius-md)}
  .faq__q{padding:var(--space-5) var(--space-4);cursor:pointer;font-family:var(--font-display);font-size:var(--text-md);font-weight:400;color:var(--color-ink);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);list-style:none;transition:color var(--duration-base)}
  .faq__q:hover{color:var(--color-green-deep)}
  .faq__q::-webkit-details-marker{display:none}
  .faq__q::after{content:"+";font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-green-deep);font-weight:300;transition:transform var(--duration-base);flex-shrink:0;line-height:1}
  .faq__item[open] .faq__q::after{transform:rotate(45deg)}
  .faq__a{padding:0 var(--space-4) var(--space-5);font-size:var(--text-sm);color:var(--color-ink-soft);line-height:var(--leading-relaxed);max-width:62ch}
  .faq__a a{color:var(--color-green-deep);text-decoration:underline;text-underline-offset:3px}

  /* ============ MEGA CTA ============ */
  .megacta{padding-block:var(--space-9);background:var(--color-ink);color:var(--color-paper);position:relative;overflow:hidden}
  .megacta::before{content:"";position:absolute;top:50%;right:-200px;width:600px;height:600px;background:radial-gradient(circle,rgba(127,184,166,0.20),transparent 60%);pointer-events:none}
  .megacta__grid{display:grid;grid-template-columns:1fr;gap:var(--space-7);align-items:center;position:relative}
  @media(min-width:900px){.megacta__grid{grid-template-columns:1.3fr 1fr}}
  .megacta__title{font-size:clamp(2.25rem,5vw,4rem);line-height:1.05;font-weight:300;letter-spacing:-0.02em;margin-bottom:var(--space-5)}
  .megacta__title em{color:var(--color-green-mid);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1}
  .megacta__sub{font-size:var(--text-md);color:rgba(251,248,241,0.7);max-width:50ch;margin-bottom:var(--space-6);line-height:var(--leading-relaxed)}
  .megacta__row{display:flex;flex-wrap:wrap;gap:var(--space-3)}
  .megacta__primary{padding:1.1rem 2rem;background:var(--color-green-mid);color:var(--color-ink);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;display:inline-flex;align-items:center;gap:var(--space-3)}
  .megacta__primary:hover{background:var(--color-paper);color:var(--color-ink)}
  .megacta__phone{padding:1.1rem 2rem;background:transparent;border:1px solid rgba(251,248,241,0.3);color:var(--color-paper);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:var(--font-mono)}
  .megacta__phone{color:var(--color-contact-light);border-color:var(--color-contact-light)}
  .megacta__phone:hover{border-color:var(--color-paper);color:var(--color-paper)}
  .megacta__access{background:rgba(251,248,241,0.06);padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid rgba(251,248,241,0.15)}
  .megacta__access h3{font-size:var(--text-md);margin-bottom:var(--space-4);font-weight:400}
  .megacta__access dl{display:grid;gap:var(--space-3);margin:0}
  .megacta__access dt{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:rgba(251,248,241,0.5);margin-bottom:2px;font-family:var(--font-body)}
  .megacta__access dd{margin:0;font-size:var(--text-sm);color:var(--color-paper);line-height:1.4}
  .megacta__vcard{margin-top:var(--space-5);padding:var(--space-4);background:var(--color-paper);border-radius:var(--radius-md);display:flex;gap:var(--space-4);align-items:center}
  .megacta__vcard img{width:96px;height:96px;display:block;flex-shrink:0;border-radius:var(--radius-sm)}
  .megacta__vcard-text{font-size:var(--text-xs);color:var(--color-ink-soft);line-height:var(--leading-snug);font-family:var(--font-body)}
  .megacta__vcard-text strong{display:block;font-family:var(--font-display);font-size:var(--text-sm);font-weight:500;color:var(--color-ink);margin-bottom:var(--space-2)}
  .megacta__vcard-text a{color:var(--color-green-mid);font-weight:500;border-bottom:1px solid var(--color-green-mid)}

  /* ============ FOOTER ============ */
  .footer{padding-block:var(--space-7) var(--space-5);background:var(--color-ink);color:rgba(251,248,241,0.7);border-top:1px solid rgba(251,248,241,0.1)}
  .footer__grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}
  @media(min-width:800px){.footer__grid{grid-template-columns:2fr 1fr 1fr 1fr}}
  .footer h4{color:var(--color-paper);font-size:var(--text-sm);margin-bottom:var(--space-3);font-family:var(--font-display);font-weight:400;letter-spacing:0}
  .footer p,.footer a{font-size:var(--text-sm);color:rgba(251,248,241,0.7);line-height:var(--leading-relaxed)}
  .footer ul{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}
  .footer a:hover{color:var(--color-green-mid)}
  .footer__rating{display:inline-flex;align-items:center;gap:var(--space-2);background:rgba(127,184,166,0.16);padding:0.4rem 0.75rem;border-radius:var(--radius-pill);font-size:var(--text-2xs);color:var(--color-green-mid);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin-top:var(--space-3);font-family:var(--font-body);font-weight:600}
  .footer__copy{margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid rgba(251,248,241,0.15);font-size:var(--text-2xs);color:rgba(251,248,241,0.5);letter-spacing:var(--tracking-wide);text-transform:uppercase;display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3)}

  .variant-badge{position:fixed;top:var(--space-3);right:var(--space-3);background:var(--color-green-deep);color:var(--color-paper);padding:0.4rem 0.75rem;border-radius:var(--radius-pill);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;z-index:200;font-family:var(--font-body);box-shadow:var(--shadow-md)}
  .variant-badge a{color:inherit;display:inline-block;margin-left:var(--space-2);text-decoration:underline}

  /* ============ RESPONSIVE PASS ============ */
  /* Filet anti-overflow horizontal (décors radiaux + ticker) */
  body{overflow-x:clip}
  /* Offset d'ancre = hauteur du nav sticky (~65px) + buffer */
  section[id]{scroll-margin-top:84px}

  /* Megamenu : ne jamais déborder du viewport */
  .megamenu{max-width:min(calc(100vw - 32px),920px)}

  /* ----- ≤ 640px : topbar compacte ----- */
  @media(max-width:640px){
    .topbar{font-size:0.6875rem}
    .topbar__pill{display:none}
    .topbar__inner,.topbar__left{gap:var(--space-3)}
    .footer__copy{justify-content:flex-start;text-align:left}
  }

  /* ----- ≤ 560px : nav compacte — sans quoi brand + CTA + burger débordent ----- */
  @media(max-width:560px){
    .nav__inner{gap:var(--space-2)}
    .nav__brand{min-width:0;gap:var(--space-2)}
    .nav__brand-mark{width:30px;height:30px}
    .nav__brand-text{font-size:var(--text-sm)}
    .nav__brand-text small{font-size:0.5625rem;letter-spacing:0.12em}
    .nav__right{gap:var(--space-2)}
    .nav__cta{padding:0.6rem 0.9rem;font-size:var(--text-xs)}
  }

  /* ----- ≤ 400px : le CTA passe au libellé court ----- */
  @media(max-width:400px){
    .nav__brand-text{font-size:var(--text-xs)}
    .nav__brand-text small{display:none}
    .nav__cta-long{display:none}
    .nav__cta-short{display:inline}
  }

  /* ----- ≤ 700px : compression verticale + cartes plus aérées ----- */
  @media(max-width:700px){
    .hero{padding-block:var(--space-7) var(--space-5)}
    .booking-blocks,.services,.why,.gallery,.duo,.reviews,.faq,.megacta{padding-block:var(--space-7)}
    .services__head{margin-bottom:var(--space-6)}
    .gallery__head,.duo__head,.reviews__head,.faq__head{margin-bottom:var(--space-5)}
    .svc{min-height:auto;padding:var(--space-5);gap:var(--space-3)}
    .svc__num{font-size:3rem}
    .gallery__cell{min-height:240px}
    .reviews__main .review__text{font-size:var(--text-md)}
  }

  /* ----- ≤ 600px : FAQ + photo banner plus contenus ----- */
  @media(max-width:600px){
    .faq__q{padding:var(--space-4) var(--space-3);font-size:var(--text-base);gap:var(--space-3)}
    .faq__a{padding:0 var(--space-3) var(--space-4)}
  }

  /* ----- ≤ 550px : carte praticien resserrée ----- */
  @media(max-width:550px){
    .practitioner{padding:var(--space-5);gap:var(--space-4)}
    .practitioner__photo{max-width:100px}
  }

  /* ----- ≤ 480px : très petits téléphones (iPhone SE, etc.) ----- */
  @media(max-width:480px){
    .hero__title{font-size:clamp(2rem,9vw,2.75rem);max-width:18ch}
    .hero__lead{font-size:var(--text-sm)}
    .hero__ctas .btn-primary,.hero__ctas .btn-secondary{flex:1 1 100%;justify-content:center}
    .booking-card{padding:var(--space-5)}
    .booking-card__photo{width:64px;height:64px}
    .booking-card__name{font-size:var(--text-lg)}
    .qi{padding:var(--space-3);gap:var(--space-2)}
    .qi__icon{width:32px;height:32px}
    .qi__value{font-size:var(--text-xs)}
    .megacta__vcard{flex-direction:column;align-items:flex-start;gap:var(--space-3)}
    .megacta__vcard img{width:120px;height:120px}
    .photo-banner{min-height:clamp(280px,60vh,420px);padding-block:var(--space-7)}
    .megacta__row{flex-direction:column;align-items:stretch}
    .megacta__row>a{justify-content:center}
  }

  /* ============================================================
     PAGES INTÉRIEURES
     ============================================================ */

  /* ----- Bandeau de titre ----- */
  .pagehero{background:var(--color-cream);border-bottom:1px solid var(--color-line);padding-block:var(--space-7) var(--space-7)}
  .pagehero__inner{max-width:52rem}
  .pagehero__eyebrow{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-green-deep);font-weight:600;display:block;margin-bottom:var(--space-3)}
  .pagehero__title{font-size:var(--text-2xl);line-height:var(--leading-tight);margin-bottom:var(--space-4)}
  .pagehero__title em{font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1;color:var(--color-green-deep)}
  .pagehero__lead{font-size:var(--text-md);color:var(--color-ink-soft);line-height:var(--leading-relaxed);max-width:44rem}
  .pagehero__meta{display:flex;gap:var(--space-5);flex-wrap:wrap;margin-top:var(--space-5);font-size:var(--text-sm);color:var(--color-ink-mute)}
  .pagehero__meta strong{color:var(--color-ink);font-weight:500}

  /* ----- Fil d'Ariane ----- */
  .breadcrumb{font-size:var(--text-xs);color:var(--color-ink-mute);margin-bottom:var(--space-4);display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}
  .breadcrumb a{color:var(--color-ink-soft)}
  .breadcrumb a:hover{color:var(--color-green-deep)}
  .breadcrumb span[aria-current]{color:var(--color-ink)}
  .breadcrumb li{list-style:none}
  .breadcrumb ol{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center;padding:0;margin:0;list-style:none}
  .breadcrumb li+li::before{content:"›";margin-right:var(--space-2);color:var(--color-line-strong)}

  /* ----- Layout contenu + sommaire ----- */
  .page{padding-block:var(--space-7)}
  .page__grid{display:grid;gap:var(--space-7)}
  @media(min-width:1000px){.page__grid{grid-template-columns:1fr 15rem;gap:var(--space-8,4rem)}}
  .page__main{min-width:0}
  .page__aside{display:none}
  @media(min-width:1000px){.page__aside{display:block}}
  .toc{position:sticky;top:6rem;border-left:2px solid var(--color-line);padding-left:var(--space-4)}
  .toc__title{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-green-deep);font-weight:600;font-family:var(--font-body);margin-bottom:var(--space-3)}
  .toc ul{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}
  .toc a{font-size:var(--text-sm);color:var(--color-ink-soft);line-height:var(--leading-snug);display:block}
  .toc a:hover{color:var(--color-green-deep)}

  /* ----- Colonne de lecture ----- */
  .prose{max-width:44rem}
  .prose>*+*{margin-top:var(--space-4)}
  .prose h2{font-size:var(--text-xl);margin-top:var(--space-7);scroll-margin-top:6rem}
  .prose h2:first-child{margin-top:0}
  .prose h2 em{font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1;color:var(--color-green-deep)}
  .prose h3{font-size:var(--text-lg);margin-top:var(--space-6);color:var(--color-sage-900)}
  .prose p{color:var(--color-ink-soft);line-height:var(--leading-relaxed)}
  .prose p.lead{font-size:var(--text-md);color:var(--color-ink);font-family:var(--font-display);line-height:var(--leading-snug)}
  .prose strong{color:var(--color-ink)}
  .prose a:not([class]){color:var(--color-green-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
  .prose ul,.prose ol{padding-left:var(--space-5);margin-top:var(--space-4);display:grid;gap:var(--space-3);color:var(--color-ink-soft);line-height:var(--leading-relaxed)}
  .prose li::marker{color:var(--color-green-deep)}
  .prose figure{margin:var(--space-6) 0}
  .prose figure img{border-radius:var(--radius-md);width:100%;height:auto}
  .prose figcaption{font-size:var(--text-xs);color:var(--color-ink-mute);margin-top:var(--space-2);font-style:italic}
  .prose hr{border:0;border-top:1px solid var(--color-line);margin-block:var(--space-7)}

  /* ----- Encadré ----- */
  .callout{background:var(--color-cream);border-radius:var(--radius-md);padding:var(--space-5);border-left:3px solid var(--color-sage-300);margin-block:var(--space-5)}
  .callout--warn{border-left-color:var(--color-green-deep);background:var(--color-sand)}
  .callout__title{font-family:var(--font-display);font-size:var(--text-md);margin-bottom:var(--space-2)}
  .callout p{font-size:var(--text-sm);color:var(--color-ink-soft);line-height:var(--leading-relaxed)}
  .callout ul{margin-top:var(--space-3);font-size:var(--text-sm)}

  /* ----- Étapes numérotées ----- */
  .steps{list-style:none;padding:0;margin:var(--space-5) 0 0;display:grid;gap:var(--space-4);counter-reset:step}
  .steps li{display:grid;grid-template-columns:2.25rem 1fr;gap:var(--space-4);align-items:start;counter-increment:step}
  /* le ::before occupe la colonne 1 ; tout le contenu reste en colonne 2,
     sinon le <p> repasse à la ligne dans la colonne étroite du numéro */
  .steps li>*{grid-column:2}
  .steps li::before{grid-column:1;grid-row:1;content:counter(step);width:2.25rem;height:2.25rem;border-radius:50%;background:var(--color-sage-300);color:var(--color-ink);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500}
  .steps strong{display:block;font-family:var(--font-display);font-size:var(--text-md);font-weight:400;margin-bottom:var(--space-1,0.25rem);color:var(--color-ink)}
  .steps p{font-size:var(--text-sm);color:var(--color-ink-soft);line-height:var(--leading-relaxed)}

  /* ----- Grille de faits ----- */
  .factgrid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));margin-block:var(--space-5)}
  .factgrid--pairs{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr))}
  .fact{background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius-md);padding:var(--space-4)}
  .fact--cream{background:var(--color-cream);border-color:transparent}
  .fact--sage{background:var(--color-sage-300);border-color:transparent}
  .fact__label{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink-mute);font-weight:600;display:block;margin-bottom:var(--space-2)}
  .fact__value{font-family:var(--font-display);font-size:var(--text-lg);line-height:1.1;display:block;color:var(--color-ink)}
  .fact__note{font-size:var(--text-xs);color:var(--color-ink-soft);margin-top:var(--space-2);display:block;line-height:var(--leading-normal)}

  /* ----- Page praticien ----- */
  .bio{display:grid;gap:var(--space-6)}
  @media(min-width:820px){.bio{grid-template-columns:20rem 1fr;gap:var(--space-7);align-items:start}}
  .bio__photo{border-radius:var(--radius-md);width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center top;background:var(--color-cream)}
  .bio__card{background:var(--color-cream);border-radius:var(--radius-md);padding:var(--space-5);margin-top:var(--space-4)}
  .bio__card dl{display:grid;gap:var(--space-3);margin:0}
  .bio__card dt{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink-mute);font-weight:600}
  .bio__card dd{margin:2px 0 0;font-size:var(--text-sm);color:var(--color-ink)}
  .creds{list-style:none;padding:0;margin:var(--space-4) 0 0;display:grid;gap:var(--space-2)}
  .creds li{font-size:var(--text-sm);color:var(--color-ink-soft);padding-left:var(--space-5);position:relative;line-height:var(--leading-relaxed)}
  .creds li::before{content:"✓";position:absolute;left:0;color:var(--color-green-deep);font-weight:600}

  /* ----- Horaires ----- */
  .prose table{display:block;overflow-x:auto;max-width:100%}
  .hours{width:100%;border-collapse:collapse;margin-block:var(--space-5);font-size:var(--text-sm)}
  .hours th{text-align:left;font-family:var(--font-body);font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-ink-mute);font-weight:600;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-line)}
  .hours td{padding-block:var(--space-3);border-bottom:1px solid var(--color-line);color:var(--color-ink-soft)}
  .hours td:first-child{color:var(--color-ink);font-weight:500}
  .hours td:last-child{font-family:var(--font-mono);text-align:right;white-space:nowrap}

  /* ----- Galerie de page ----- */
  .photogrid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));margin-block:var(--space-5)}
  .photogrid img{border-radius:var(--radius-md);width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center}
  .photogrid figure{margin:0}
  .photogrid figcaption{font-size:var(--text-xs);color:var(--color-ink-mute);margin-top:var(--space-2)}

  /* ----- Liens entre pages ----- */
  .crosslinks{border-top:1px solid var(--color-line);margin-top:var(--space-7);padding-top:var(--space-6)}
  .crosslinks__title{font-size:var(--text-2xs);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-green-deep);font-weight:600;font-family:var(--font-body);margin-bottom:var(--space-4)}
  .crosslinks__grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
  .crosslink{background:var(--color-cream);border-radius:var(--radius-md);padding:var(--space-4);display:block;transition:background var(--duration-base),transform var(--duration-base)}
  .crosslink:hover{background:var(--color-sand);transform:translateY(-2px)}
  .crosslink strong{display:block;font-family:var(--font-display);font-size:var(--text-md);font-weight:400;margin-bottom:var(--space-2)}
  .crosslink span{font-size:var(--text-sm);color:var(--color-ink-soft);line-height:var(--leading-normal)}

  /* ----- Contact ----- */
  .contactgrid{display:grid;gap:var(--space-6)}
  @media(min-width:820px){.contactgrid{grid-template-columns:1.2fr 1fr;gap:var(--space-7)}}
  .contactcard{background:var(--color-cream);border-radius:var(--radius-md);padding:var(--space-5)}
  .contactcard+.contactcard{margin-top:var(--space-4)}
  .contactcard h3{font-size:var(--text-md);margin-bottom:var(--space-3)}
  .contactcard p{font-size:var(--text-sm);color:var(--color-ink-soft);line-height:var(--leading-relaxed)}
  .contactcard a{color:var(--color-green-deep)}

  /* ----- Responsive pages intérieures ----- */
  @media(max-width:640px){
    .pagehero{padding-block:var(--space-6)}
    .pagehero__title{font-size:var(--text-xl)}
    .pagehero__lead{font-size:var(--text-base)}
    .page{padding-block:var(--space-6)}
    .prose h2{font-size:var(--text-lg);margin-top:var(--space-6)}
    .prose h3{font-size:var(--text-md)}
    .steps li{grid-template-columns:1.75rem 1fr;gap:var(--space-3)}
    .steps li::before{width:1.75rem;height:1.75rem;font-size:var(--text-xs)}
  }

  /* ----- Citation éditoriale ----- */
  .quote{margin-block:var(--space-6);padding-left:var(--space-5);border-left:2px solid var(--color-sage-300)}
  .quote p{font-family:var(--font-display);font-size:var(--text-md);line-height:var(--leading-snug);color:var(--color-ink);font-weight:300}
  .quote cite{display:block;margin-top:var(--space-3);font-style:normal;font-size:var(--text-xs);color:var(--color-ink-mute);letter-spacing:var(--tracking-wide)}
  .quotes{display:grid;gap:var(--space-5);margin-block:var(--space-6)}
  @media(min-width:760px){.quotes{grid-template-columns:1fr 1fr}}
  .quotes .quote{margin-block:0}

  /* ----- Vidéo intégrée (ratio 16/9, sans script) ----- */
  .videoblock{margin-block:var(--space-6)}
  .videoblock__frame{position:relative;padding-top:56.25%;border-radius:var(--radius-md);overflow:hidden;background:var(--color-sage-300)}
  .videoblock__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
  .videoblock figcaption{font-size:var(--text-xs);color:var(--color-ink-mute);margin-top:var(--space-3);font-style:italic}

  /* ----- Points de contact : téléphone et prise de RDV en terracotta ----- */
  a[href^="tel:"]{color:var(--color-contact)}
  .footer a[href^="tel:"],.megacta a[href^="tel:"]{color:var(--color-contact-light)}
  .hero a[href^="tel:"]{color:inherit}
  .prose a[href^="tel:"]{color:var(--color-contact);text-decoration:underline;text-underline-offset:3px}
  a[href*="doctolib"]:not([class]){color:var(--color-contact);text-decoration:underline;text-underline-offset:3px}

  /* ============================================================
     PASSE RESPONSIVE & ACCESSIBILITÉ
     ============================================================ */

  /* ----- Cibles tactiles : minimum 44px sur tout ce qui se clique -----
     L'audit relevait des contrôles à 20–32px : bouton de fermeture du drawer,
     burger, liens d'action de section. La hauteur visuelle ne change pas —
     c'est la zone tactile qui s'étend, via padding ou pseudo-élément. */
  .nav__burger{min-width:44px;min-height:44px;align-items:center;justify-content:center}
  .mobile-menu__close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;top:var(--space-3);right:var(--space-3)}
  .nav__cta{min-height:44px}
  .nav__brand{min-height:44px}
  .menu__trigger,.menu__link{min-height:44px;height:auto}
  .megamenu__list a{min-height:40px;display:flex;flex-direction:column;justify-content:center}
  .mobile-menu details a{min-height:44px;display:flex;align-items:center}
  .mobile-menu summary{min-height:52px}
  .svc__cta,.practitioner__cta,.why__cta,.gallery__intro a,.photo-banner__cta{min-height:44px;display:inline-flex;align-items:center}
  .footer ul a{min-height:40px;display:inline-flex;align-items:center}
  .topbar__item a{min-height:32px;display:inline-flex;align-items:center}
  .faq__q{min-height:52px}
  .crosslink{min-height:44px}
  /* supprime le délai de 300ms au tap sur mobile */
  a,button,summary,.faq__q{touch-action:manipulation}

  /* ----- Micro-typographie : plus rien sous 11px -----
     .cred et .topbar__pill étaient à 10px, sous le seuil de lisibilité. */
  .cred{font-size:var(--text-2xs);padding:0.3rem 0.7rem}
  .topbar__pill{font-size:var(--text-2xs)}

  /* ----- Focus visible : un anneau homogène sur tout le site -----
     Seuls .menu__trigger et .menu__link en avaient un. */
  a:focus-visible,button:focus-visible,summary:focus-visible,
  [tabindex]:focus-visible,input:focus-visible{
    outline:2px solid var(--color-green-deep);
    outline-offset:3px;
    border-radius:var(--radius-sm)
  }
  .hero a:focus-visible,.megacta a:focus-visible,.footer a:focus-visible,
  .topbar a:focus-visible,.photo-banner a:focus-visible{outline-color:var(--color-paper)}

  /* ----- Mouvement réduit -----
     Le bandeau de motifs défile en boucle : il doit s'arrêter si le système
     le demande, sans quoi il reste en mouvement permanent à l'écran. */
  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{
      animation-duration:0.01ms !important;
      animation-iteration-count:1 !important;
      transition-duration:0.01ms !important;
      scroll-behavior:auto !important
    }
    .ticker__inner{animation:none;white-space:normal;flex-wrap:wrap;justify-content:center}
  }

  /* ----- Paysage sur mobile -----
     Le hero réserve 6rem de padding vertical : en paysage sur téléphone,
     le titre et le bouton passent sous la ligne de flottaison. */
  @media (max-height:520px) and (orientation:landscape){
    .hero{padding-block:var(--space-6) var(--space-5)}
    .hero__title{font-size:clamp(1.75rem,4.5vw,2.5rem);margin-bottom:var(--space-3)}
    .hero__lead{font-size:var(--text-sm);margin-bottom:var(--space-4)}
    .hero__eyebrow{margin-bottom:var(--space-3)}
    .pagehero{padding-block:var(--space-5)}
    .mobile-menu{padding-block:var(--space-5)}
  }

  /* ----- Hauteur de fenêtre : dvh plutôt que vh -----
     Sur mobile, 100vh ignore les barres du navigateur et déborde. */
  @supports (height:100dvh){
    @media(max-width:700px){.photo-banner{min-height:clamp(280px,60dvh,420px)}}
  }

  /* ----- Adresse cliquable vers Google Maps ----- */
  .maplink{text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;text-decoration-color:var(--color-line-strong);transition:color var(--duration-fast)}
  .maplink:hover{color:var(--color-contact);text-decoration-color:currentColor}
  .topbar .maplink,.footer .maplink,.megacta .maplink{text-decoration-color:rgba(251,248,241,0.35)}
  .topbar .maplink:hover,.footer .maplink:hover,.megacta .maplink:hover{color:var(--color-contact-light)}
  .maplink::after{content:"↗";font-size:0.75em;margin-left:0.25em;opacity:.6;text-decoration:none;display:inline-block}

  /* ----- Lien vers le mot personnel du praticien ----- */
  .booking-card__more{display:flex;width:fit-content;align-items:center;min-height:44px;margin-top:var(--space-2);color:var(--color-green-deep);font-weight:500;font-size:var(--text-sm);text-decoration:underline;text-underline-offset:3px}
  .booking-card__more:hover{color:var(--color-ink)}
  /* Le lien d'adresse est inline dans un paragraphe : on élargit sa zone tactile
     sans casser le rythme typographique (padding vertical plutôt que min-height). */
  .footer .maplink,.megacta .maplink,.contactcard .maplink{display:inline-block;padding-block:0.4rem}
  .pagehero__meta .maplink{display:inline-flex;align-items:center;min-height:40px}
  /* Dans le hero, le bouton téléphone reste clair : le terracotta de contact
     serait illisible sur le voile vert foncé. */
  .hero .btn-secondary[href^="tel:"]{color:var(--color-paper)}
  .hero .btn-secondary[href^="tel:"]:hover{color:var(--color-paper)}

  /* ----- Réservation Doctolib : terracotta -----
     Vert = navigation interne vers la prise de RDV ; terracotta = contact réel
     (téléphone, réservation Doctolib). La distinction rend le chemin lisible. */
  .booking-card__cta{background:var(--color-contact-strong);color:var(--color-paper)}
  .booking-card__cta:hover{background:var(--color-ink)}
  .booking-card:hover{border-color:var(--color-contact-strong)}
  a[href*="doctolib"].btn-primary,a[href*="doctolib"].megacta__primary{background:var(--color-contact-strong);color:var(--color-paper)}
  .booking-card__cta-doctolib{color:var(--color-contact)}

  /* ----- Sélecteur de langue -----
     Beaucoup de patients anglophones du quartier arrivent sans lire le français :
     le drapeau doit être visible d'emblée, avant même la navigation. */
  .topbar__right{display:flex;align-items:center;gap:var(--space-4)}
  .langswitch{display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px;
    padding:0.25rem 0.7rem;border:1px solid rgba(251,248,241,0.35);border-radius:var(--radius-pill);
    color:var(--color-paper);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);
    text-transform:uppercase;font-weight:600;transition:all var(--duration-base);white-space:nowrap}
  .langswitch:hover{background:rgba(251,248,241,0.14);border-color:var(--color-paper)}
  .langswitch__flag{font-size:0.95rem;line-height:1}
  @media(max-width:640px){
    .topbar__right{gap:var(--space-3)}
    .langswitch{padding:0.2rem 0.5rem}
    .langswitch span:not(.langswitch__flag){display:none}
  }

  /* ----- Citation sous l'accroche du hero -----
     Elle appuie le titre sans lui voler la vedette : plus petite que le chapô,
     centrée, séparée par un filet court. */
  .hero__quote{margin:0 auto var(--space-5);max-width:44ch;padding-top:var(--space-4);position:relative}
  .hero__quote::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:48px;height:1px;background:rgba(251,248,241,0.45)}
  .hero__quote p{font-family:var(--font-display);font-size:var(--text-md);font-style:italic;font-variation-settings:"SOFT" 100,"WONK" 1;color:#CDE3D3;line-height:var(--leading-snug);font-weight:300}
  .hero__quote cite{display:block;margin-top:var(--space-2);font-style:normal;font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:rgba(251,248,241,0.7);font-family:var(--font-body)}
  @media(max-width:640px){
    .hero__quote p{font-size:var(--text-base)}
    .hero__quote{max-width:34ch}
  }
