/* Réservation directe du bilan PRP (2026-10-22) : agenda SimplyBook dans
   la section « Faites le point », Lausanne Gare uniquement pour l'instant. */
.vb-clinic-pill{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:#dfddd6;margin-bottom:16px}
.vb-clinic-pill .icon{width:16px;height:16px;color:var(--gold)}
.vb-clinic-pill strong{font-family:'EB Garamond',serif;font-size:22px;font-weight:400;color:var(--cream)}
.vb-sb{background:#fff;border-radius:6px;overflow:hidden;min-height:520px;box-shadow:0 30px 60px -36px rgba(0,0,0,.7)}
.vb-sb iframe{display:block;width:100%!important;min-height:520px;border:0}
.vb-sb-loading{margin:0;padding:40px 24px;text-align:center;font-size:14px;color:#55606b}
.vb-wa{display:inline-flex;align-items:center;gap:10px;margin-top:18px;font-size:14px;color:var(--cream);text-underline-offset:5px}
.vb-wa .icon{width:15px;height:15px;color:var(--gold)}
.booking-actions .phone-link{justify-content:flex-start;margin-top:10px}
.booking-layout{align-items:start}
@media (max-width:800px){.vb-sb{min-height:560px;margin-inline:-4px}.vb-sb iframe{min-height:560px}}

/* Lieux : Lausanne Gare réservable, Genève annoncée mais pas encore ouverte */
.vb-where{margin:0 0 12px;font-size:13px;color:#c5c9cd}
.vb-clinics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.vb-clinic{border:1px solid #55606b;border-radius:3px;padding:16px 14px;text-align:left;font:inherit;color:inherit;background:none;width:100%}
.vb-clinic strong{display:block;font-family:'EB Garamond',serif;font-size:26px;font-weight:400;line-height:1.15}
.vb-clinic small{display:block;font-size:13px;color:#c5c9cd;margin-top:4px}
.vb-clinic-state{display:inline-block;margin-top:10px;font-size:12px;letter-spacing:.02em}
.vb-clinic.is-on{border-color:var(--gold);background:rgba(201,169,110,.08)}
.vb-clinic.is-on .vb-clinic-state{color:var(--gold)}
.vb-clinic.is-off{opacity:.62;border-style:dashed}
.vb-clinic.is-off .vb-clinic-state{color:#dfddd6}

button.vb-clinic{cursor:pointer;transition:background-color .2s ease,border-color .2s ease,transform .16s cubic-bezier(.23,1,.32,1)}
button.vb-clinic:active{transform:scale(.98)}
@media (hover:hover) and (pointer:fine){button.vb-clinic:hover{background:rgba(201,169,110,.14)}}
.vb-clinic.is-on .vb-clinic-state{display:inline-flex;align-items:center;gap:6px;font-weight:500}
.vb-clinic-state svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;transition:transform .25s cubic-bezier(.23,1,.32,1)}
.vb-clinic[aria-expanded="true"] .vb-clinic-state svg{transform:rotate(180deg)}
.vb-clinic[aria-expanded="true"]{background:rgba(201,169,110,.14)}
.vb-clinic.is-off{cursor:default}
.vb-sb-wrap{overflow:hidden;opacity:0;transform:translateY(-8px);transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1)}
.vb-sb-wrap.is-open{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.vb-sb-wrap{transition:none;transform:none;opacity:1}}

/* Premier écran : Genève annoncée à côté de Lausanne Gare */
.hero-location .vb-soon-city em{font-style:normal;color:#c9a96e}

/* Genève : badge « Bientôt disponible » bien visible */
.vb-clinic.is-off{opacity:1;border-style:dashed;border-color:rgba(201,169,110,.45);background:rgba(248,245,239,.03)}
.vb-clinic.is-off strong{color:rgba(248,245,239,.82)}
.vb-clinic.is-off small{color:#a9b0b7}
.vb-soon-badge{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:5px 11px;border-radius:999px;background:var(--gold);color:var(--navy);font-size:12px;font-weight:600;letter-spacing:.01em;line-height:1.2}
.vb-soon-badge svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round}


/* ── Fenêtre de réservation : lieu, puis agenda ─────────────────────── */
.vb-book{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:3svh 3vw}
.vb-book[hidden]{display:none}
.vb-book-scrim{position:absolute;inset:0;background:rgba(7,17,28,.62);opacity:0;transition:opacity .3s ease}
.vb-book-panel{position:relative;width:min(920px,100%);max-height:94svh;display:flex;flex-direction:column;background:var(--cream);color:var(--navy);border-radius:16px;box-shadow:0 40px 80px -40px rgba(0,0,0,.7);opacity:0;transform:translateY(16px) scale(.98);transition:opacity .32s cubic-bezier(.23,1,.32,1),transform .32s cubic-bezier(.23,1,.32,1);overflow:hidden}
.vb-book.is-open .vb-book-scrim{opacity:1}
.vb-book.is-open .vb-book-panel{opacity:1;transform:none}
.vb-book-close{position:absolute;top:12px;right:12px;z-index:2;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:var(--navy);cursor:pointer}
.vb-book-close:hover{background:rgba(13,27,42,.06)}
.vb-book-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5}
.vb-book[data-step="lieu"] .vb-book-agenda,.vb-book[data-step="agenda"] .vb-book-lieu{display:none}

/* Étape 1 : le lieu */
.vb-book-lieu{padding:44px 48px 36px}
.vb-book-lieu .vb-k{color:#8a6a38}
.vb-book-lieu h2{margin:10px 0 0;font-family:'EB Garamond',serif;font-weight:400;font-size:clamp(30px,3.4vw,42px);line-height:1.08;color:var(--navy);max-width:20ch}
.vb-places{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:28px}
.vb-place{display:flex;flex-direction:column;align-items:flex-start;text-align:left;font:inherit;color:var(--navy);padding:24px 22px;border-radius:12px;min-height:150px}
button.vb-place{cursor:pointer;background:var(--navy);color:var(--cream);border:1px solid var(--navy);transition:transform .16s cubic-bezier(.23,1,.32,1),box-shadow .2s ease}
button.vb-place:active{transform:scale(.98)}
@media (hover:hover) and (pointer:fine){button.vb-place:hover{box-shadow:0 18px 36px -22px rgba(13,27,42,.6)}button.vb-place:hover .vb-place-cta svg{transform:translateX(3px)}}
.vb-place-name{font-family:'EB Garamond',serif;font-size:30px;line-height:1.1}
.vb-place-addr{margin-top:6px;font-size:14px;opacity:.75}
.vb-place-cta{margin-top:auto;padding-top:18px;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--gold)}
.vb-place-cta svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;transition:transform .2s ease}
.vb-place.is-off{background:transparent;border:1px dashed rgba(13,27,42,.3)}
.vb-place.is-off .vb-place-name{color:rgba(13,27,42,.7)}
.vb-place.is-off .vb-soon-badge{margin-top:auto}
.vb-book-alt{margin-top:22px;font-size:14px;color:#55606b}
.vb-book-alt a{color:var(--navy);text-underline-offset:4px}

/* Étape 2 : l'agenda, à la hauteur de l'écran */
.vb-book-agenda{display:flex;flex-direction:column;height:min(860px,94svh)}
.vb-book-head{display:flex;align-items:center;gap:18px;padding:14px 64px 12px 20px;border-bottom:1px solid rgba(201,169,110,.5)}
.vb-book-back{display:inline-flex;align-items:center;gap:6px;border:0;background:none;font:inherit;font-size:14px;color:var(--navy);cursor:pointer;padding:8px 6px;border-radius:8px}
.vb-book-back:hover{background:rgba(13,27,42,.06)}
.vb-book-back svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.vb-book-where{margin:0;font-size:14px;color:#55606b}
.vb-book-where strong{font-family:'EB Garamond',serif;font-weight:400;font-size:22px;color:var(--navy)}
.vb-book-body{flex:1;min-height:0;background:#fff;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
/* L'agenda s'affiche en entier, à sa hauteur naturelle (fixée par
   SimplyBook) : rien n'est rogné, le panneau défile si l'écran est court. */
.vb-book-body .vb-sb{min-height:0;border-radius:0;box-shadow:none;overflow:visible}
.vb-book-body .vb-sb iframe{display:block;width:100%!important;min-height:0;margin:0}

html.vb-book-open{overflow:hidden}

/* Ordinateur : après le choix du lieu, l'agenda s'ouvre en panneau
   vertical sur la droite (comme celui du Dr Heer) */
@keyframes vb-side-in{from{transform:translateX(100%)}to{transform:none}}
@media (min-width:1024px){
  .vb-book[data-step="agenda"]{padding:0;place-items:stretch end}
  .vb-book[data-step="agenda"] .vb-book-panel{width:min(560px,92vw);height:100svh;max-height:none;border-radius:18px 0 0 18px;opacity:1;transform:none;animation:vb-side-in .45s cubic-bezier(.32,.72,0,1) both}
  .vb-book[data-step="agenda"] .vb-book-agenda{height:100svh}
}
@media (min-width:1024px) and (prefers-reduced-motion:reduce){.vb-book[data-step="agenda"] .vb-book-panel{animation:none}}


@media (max-width:700px){
  .vb-book{padding:0;place-items:end stretch}
  .vb-book-panel{width:100%;max-height:100svh;height:100svh;border-radius:0;transform:translateY(24px)}
  .vb-book-lieu{padding:64px 22px 28px;overflow-y:auto}
  .vb-places{grid-template-columns:1fr}
  .vb-place{min-height:0}
  .vb-book-agenda{height:100svh}
  .vb-book-where strong{font-size:20px}
  .vb-book-where span{display:none}
  .vb-book-back{white-space:nowrap;font-size:13px}
  .vb-book-head{padding:10px 56px 10px 12px;gap:10px}
}
@media (prefers-reduced-motion:reduce){.vb-book-panel,.vb-book-scrim{transition:none}}

/* Petits téléphones : la ligne de lieux du premier écran reste sur une ligne */
@media (max-width:420px){.hero-location .vb-cv{display:none}}
.hero-location .vb-soon-city .vb-cv{border:0;padding:0;margin:0}
