
        :root {
      --paper: #f7fbff;
      --soft: #edf6fc;
      --line: #d9e9f4;
      --ink: #345d79;
      --muted: #6b8ca2;
      --olive: #8db8d5;
      --rose: #d4e7f3;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      background:
        radial-gradient(circle at 0% 50%, rgba(255,255,255,0.98) 0%, rgba(255,255,255,0.96) 22%, rgba(238,247,253,0.93) 46%, rgba(207,231,245,0.88) 100%);
      color: var(--ink);
      min-height: 100vh;
    }

    h1, h2, .serif {
      font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      letter-spacing: -0.02em;
    }

    .glass {
      backdrop-filter: saturate(140%) blur(10px);
      background: rgba(255, 255, 255, 0.72);
    }

    .cover-photo {
      aspect-ratio: 4 / 3;
      object-fit: cover;
      object-position: center;
    }

    .portrait-photo {
      aspect-ratio: 4 / 5;
      object-fit: cover;
      object-position: center 20%;
    }

    .section-title {
      font-size: clamp(1.8rem, 3vw, 2.55rem);
      line-height: 1.12;
      font-weight: 600;
    }

    .hero-title {
      font-size: clamp(1.8rem, 3vw, 2.45rem);
      line-height: 1.14;
      font-weight: 600;
    }

    .section-kicker {
      font-size: 0.75rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
    }

    details summary {
      cursor: pointer;
      list-style: none;
    }

    details summary::-webkit-details-marker {
      display: none;
    }

    details[open] summary .plus {
      transform: rotate(45deg);
    }

    .form-field {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: 1rem;
      padding: 0.85rem 1rem;
      font-size: 0.9rem;
      background: #ffffff;
      outline: none;
    }

    .form-field:focus {
      border-color: var(--olive);
    }

    .mobile-menu {
      display: none;
    }

    .mobile-menu.open {
      display: block;
    }

    @media (min-width: 1024px) {
      .mobile-menu {
        display: none !important;
      }
    }


    .brand-wordmark {
      display: block;
      width: auto;
      height: 2.3rem;
      max-width: min(52vw, 13rem);
      object-fit: contain;
      border-radius: .35rem;
    }

    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    .accent-gradient {
      background: linear-gradient(135deg, rgba(255,255,255,0.86) 0%, rgba(235,246,252,0.92) 35%, rgba(210,231,244,0.95) 100%);
    }

    .soft-blue-text {
      color: var(--muted);
    }


    .payment-card {
      background:
        linear-gradient(135deg, rgba(255,255,255,0.94) 0%, rgba(232,246,253,0.94) 48%, rgba(202,228,243,0.92) 100%);
      border: 1px solid var(--line);
      box-shadow: 0 18px 60px rgba(52, 93, 121, 0.10);
    }

    .payment-steps {
      counter-reset: payment-step;
    }

    .payment-step {
      counter-increment: payment-step;
      position: relative;
      padding-left: 2.4rem;
    }

    .payment-step::before {
      content: counter(payment-step);
      position: absolute;
      left: 0;
      top: 0.05rem;
      width: 1.6rem;
      height: 1.6rem;
      border-radius: 999px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      background: var(--ink);
      color: white;
      font-size: 0.78rem;
      font-weight: 700;
    }

  

    /* Navigation harmonisée */
    section[id] { scroll-margin-top: 5.5rem; }

    .mobile-menu { display: none !important; }

    .menu-overlay {
      position: fixed;
      inset: 0;
      background: rgba(37, 62, 79, 0.26);
      backdrop-filter: blur(2px);
      -webkit-backdrop-filter: blur(2px);
      opacity: 0;
      visibility: hidden;
      transition: opacity .25s ease, visibility .25s ease;
      z-index: 70;
    }

    .menu-overlay.open {
      opacity: 1;
      visibility: visible;
    }

    .mobile-drawer {
      position: fixed;
      top: 0;
      right: 0;
      width: min(84vw, 340px);
      height: 100dvh;
      background: rgba(250, 253, 255, 0.98);
      border-left: 1px solid var(--line);
      box-shadow: -18px 0 55px rgba(52, 93, 121, 0.14);
      transform: translateX(105%);
      transition: transform .28s ease;
      z-index: 80;
      display: flex;
      flex-direction: column;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
    }

    .mobile-drawer.open { transform: translateX(0); }

    .drawer-link {
      display: flex;
      align-items: center;
      min-height: 48px;
      padding: .75rem 0;
      border-bottom: 1px solid rgba(217, 233, 244, .8);
      font-size: .95rem;
      color: var(--ink);
    }

    .drawer-link:last-child { border-bottom: 0; }

    body.menu-open { overflow: hidden; }

    @media (min-width: 1024px) {
      .menu-overlay, .mobile-drawer { display: none !important; }
    }

  

    /* 2026-08 typography + navigation polish */
    .hero-title {
      font-size: clamp(1.55rem, 2.25vw, 1.95rem) !important;
      line-height: 1.2 !important;
      font-weight: 600 !important;
      letter-spacing: -0.025em !important;
    }

    .section-title {
      font-size: clamp(1.24rem, 1.65vw, 1.55rem) !important;
      line-height: 1.24 !important;
      font-weight: 600 !important;
      letter-spacing: -0.018em !important;
    }

    main h2:not(.section-title) {
      font-size: 1.10rem !important;
      line-height: 1.35 !important;
      letter-spacing: -0.012em !important;
    }

    #therapeute h2 {
      font-size: clamp(1.24rem, 1.65vw, 1.55rem) !important;
      line-height: 1.24 !important;
      font-weight: 600 !important;
    }

    main h3 {
      font-size: 1.07rem !important;
      line-height: 1.38 !important;
      letter-spacing: -0.008em !important;
    }

    .section-kicker {
      font-size: .70rem !important;
      letter-spacing: .17em !important;
      font-weight: 500;
    }

    .brand-wordmark {
      display: block;
      width: auto !important;
      height: 2.1rem !important;
      max-width: min(58vw, 12.8rem);
      object-fit: contain;
      border-radius: .25rem;
    }

    .site-header-row {
      min-height: 4.75rem;
      padding-top: .8rem !important;
      padding-bottom: .8rem !important;
    }

    .site-header-row nav {
      gap: 1.45rem !important;
      font-size: 1.04rem !important;
      line-height: 1.25;
      font-weight: 600;
      letter-spacing: -0.01em;
    }

    .site-header-row nav a {
      padding: .5rem 0;
      position: relative;
    }

    .site-header-row nav a::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: .1rem;
      height: 1px;
      background: linear-gradient(90deg, transparent, #8fb9d1 22%, #6fa6c5 78%, transparent);
      transform: scaleX(0);
      transform-origin: center;
      transition: transform .18s ease;
    }

    .site-header-row nav a:hover::after,
    .site-header-row nav a:focus-visible::after {
      transform: scaleX(1);
    }

    .site-header-row #menu-button {
      font-size: 1.04rem !important;
      font-weight: 600;
      padding: .72rem 1.05rem !important;
      background: #edf7fc;
      border-color: rgba(143,185,209,.55) !important;
    }

    .mobile-drawer {
      background: linear-gradient(155deg, #f9fcfe 0%, #edf7fc 30%, #d9edf8 62%, #b9dced 100%) !important;
      border-left: 1px solid rgba(143,185,209,.34) !important;
      box-shadow: -18px 0 48px rgba(52,93,121,.16) !important;
    }

    .mobile-drawer > div:first-child {
      background: rgba(255,255,255,.18);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border-bottom-color: rgba(255,255,255,.62) !important;
    }

    .mobile-drawer .brand-wordmark {
      height: 2.35rem !important;
      max-width: 11.5rem;
    }

    .drawer-link {
      min-height: 54px !important;
      padding: .9rem .15rem !important;
      border-bottom-color: rgba(255,255,255,.55) !important;
      font-size: 1.04rem !important;
      font-weight: 500;
      color: #355f79 !important;
      transition: padding-left .18s ease, background .18s ease;
    }

    .drawer-link:hover,
    .drawer-link:focus-visible {
      padding-left: .55rem !important;
      background: rgba(255,255,255,.18);
      outline: none;
    }

    @media (min-width: 1024px) {
      .brand-wordmark {
        height: 2.3rem !important;
        max-width: 13.2rem;
      }
      .site-header-row {
        min-height: 4.95rem;
      }
      .site-header-row nav {
        font-size: 1.07rem !important;
      }
      section[id] { scroll-margin-top: 6rem; }
    }

    /* Header logo image */
    .brand-wordmark {
      display: block;
      width: auto !important;
      height: 2.3rem !important;
      max-width: min(52vw, 13rem);
      object-fit: contain;
      border-radius: .35rem;
    }

    @media (min-width: 1024px) {
      .brand-wordmark {
        height: 2.3rem !important;
        max-width: 13.2rem;
      }
    }

    @media (max-width: 480px) {
      .brand-wordmark {
        height: 1.95rem !important;
        max-width: 10.6rem;
      }
    }

  
    .nav-booking-cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: .78rem 1.18rem !important;
      border-radius: 999px;
      background: #6f9fc0 !important;
      color: #ffffff !important;
      box-shadow: 0 8px 20px rgba(111,159,192,.18);
      text-decoration: none;
    }

    .nav-booking-cta:hover,
    .nav-booking-cta:focus-visible {
      background: #628fad !important;
      color: #ffffff !important;
      outline: none;
    }

    .site-header-row nav a.nav-booking-cta::after,
    .drawer-link.nav-booking-cta::after {
      display: none !important;
      content: none !important;
    }

    .drawer-link.nav-booking-cta {
      margin-top: .5rem;
      min-height: 52px !important;
      padding: .9rem 1rem !important;
      border-radius: 1rem;
      border-bottom: 0 !important;
      color: #ffffff !important;
      background: #6f9fc0 !important;
      justify-content: center;
    }



    