/* PASS-HTB Sessions : styles des blocs de l'extension (calendrier, fenêtre de réservation, prochaine session, cartes).
   Ce fichier appartient à l'extension et se modifie ici (il n'est plus fabriqué depuis la maquette V4).
   Tout est isolé sous .passhtb pour ne pas toucher au reste du site.

   Réglage de l'apparence, du plus général au plus précis :
   1. Par défaut, les couleurs et la police suivent les réglages globaux d'Elementor (couleurs Principale, Accent, Texte ;
      police du texte). Sans Elementor, des valeurs neutres s'appliquent.
   2. PASS-HTB › Apparence : couleurs, arrondi, police et CSS personnalisé pour tout le site.
   3. Widgets PASS-HTB dans Elementor, onglet Style : réglages propres à un bloc.

   Variables publiques (à utiliser dans le CSS personnalisé) :
   --passhtb-primary, --passhtb-accent, --passhtb-text, --passhtb-muted, --passhtb-on-primary, --passhtb-surface,
   --passhtb-background, --passhtb-border, --passhtb-success, --passhtb-danger, --passhtb-radius, --passhtb-font.
   Les nuances (--navy-2, --yellow-tint, --mist…) en sont calculées et peuvent aussi être fixées. */
.passhtb{
  --passhtb-primary:var(--e-global-color-primary,#1f2937);
  --passhtb-accent:var(--e-global-color-accent,#d97706);
  --passhtb-text:var(--e-global-color-text,#1f2937);
  --passhtb-muted:color-mix(in srgb,var(--passhtb-text) 68%,#fff);
  --passhtb-on-primary:#fff;
  --passhtb-surface:#fff;
  --passhtb-background:color-mix(in srgb,var(--passhtb-primary) 4%,#fff);
  --passhtb-border:color-mix(in srgb,var(--passhtb-primary) 14%,#fff);
  --passhtb-success:#236247;
  --passhtb-danger:#b63135;
  --passhtb-radius:18px;
  --passhtb-font:var(--e-global-typography-text-font-family),sans-serif;
  /* Nuances calculées à partir des variables publiques. */
  --navy:var(--passhtb-primary);--navy-2:color-mix(in srgb,var(--passhtb-primary) 92%,#fff);
  --navy-3:color-mix(in srgb,var(--passhtb-primary) 80%,#fff);--navy-soft:color-mix(in srgb,var(--passhtb-primary) 70%,#fff);
  --yellow:var(--passhtb-accent);--yellow-2:color-mix(in srgb,var(--passhtb-accent) 82%,#fff);
  --yellow-ink:color-mix(in srgb,var(--passhtb-accent) 45%,#000);--yellow-tint:color-mix(in srgb,var(--passhtb-accent) 16%,#fff);
  --paper:var(--passhtb-background);--white:var(--passhtb-surface);
  --mist:color-mix(in srgb,var(--passhtb-primary) 9%,#fff);--mist-2:color-mix(in srgb,var(--passhtb-primary) 14%,#fff);
  --ink:var(--passhtb-text);--muted:var(--passhtb-muted);--line:var(--passhtb-border);
  --line-strong:color-mix(in srgb,var(--passhtb-primary) 22%,#fff);
  --on-dark:color-mix(in srgb,var(--passhtb-on-primary) 78%,var(--passhtb-primary));
  --line-dark:color-mix(in srgb,var(--passhtb-on-primary) 11%,transparent);
  --red:var(--passhtb-danger);--green:var(--passhtb-success);
  --r-sm:calc(var(--passhtb-radius) * 5 / 9);--r:var(--passhtb-radius);--r-lg:calc(var(--passhtb-radius) * 14 / 9);
  --frame:clamp(8px,1.2vw,18px);
  --shadow:0 1px 2px color-mix(in srgb,var(--passhtb-primary) 4%,transparent),0 18px 40px -18px color-mix(in srgb,var(--passhtb-primary) 20%,transparent);
  --shadow-lg:0 30px 60px -24px color-mix(in srgb,var(--passhtb-primary) 35%,transparent);
  --font:var(--passhtb-font);
  --ease:cubic-bezier(.2,.7,.2,1);
  color:var(--ink);font-family:var(--passhtb-font);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
.passhtb *,.passhtb *::before,.passhtb *::after{box-sizing:border-box}
.passhtb a{color:inherit;text-underline-offset:5px}
.passhtb button,.passhtb input,.passhtb select{font:inherit;letter-spacing:inherit;text-transform:none}
.passhtb label{line-height:inherit;vertical-align:baseline}
.passhtb h3,.passhtb p{margin:0 0 1em}
.passhtb h3{font-size:22px;line-height:1.2;letter-spacing:-.02em;font-weight:600;color:inherit;text-wrap:balance}
.passhtb p{max-width:70ch}
.passhtb svg{width:20px;height:20px;flex-shrink:0;vertical-align:middle}
.passhtb :focus-visible{outline:2px solid var(--navy);outline-offset:4px;border-radius:4px}
.passhtb .bk-table th,.passhtb .bk-table td{border:0;line-height:inherit;font-size:inherit}
.passhtb .bk-table tbody tr td{background:var(--white)}
.passhtb .bk-table{margin:0}
/* Encadré « prochaine session » des pages ville ([passhtb_prochaine_session format="ville"]) */
.passhtb .passhtb-dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 18px}
.passhtb .passhtb-dl dt{font-size:13px;color:var(--muted);padding-top:2px}
.passhtb .passhtb-dl dd{margin:0 0 10px;font-weight:650}
.passhtb .note{font-size:13px;color:var(--muted)}
/* Carte régionale ([passhtb_carte]) : lignes de la liste Elementor reconnues par territoire.js (hors du bloc .passhtb). */
.passhtb-zone{transition:background .2s;border-radius:12px}
.passhtb-zone.is-hover{background:var(--mist)}
.passhtb-zone-num{transition:background .2s}
.passhtb-zone.is-hover .passhtb-zone-num{background:var(--yellow)}
.passhtb .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}
.passhtb .btn{--bg:var(--navy);--fg:var(--passhtb-on-primary);--dot:var(--yellow);--dot-fg:var(--navy);display:inline-flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:6px 6px 6px 24px;border:1px solid var(--bg);border-radius:999px;background:var(--bg);color:var(--fg);font-size:14px;font-weight:650;line-height:1.3;text-decoration:none;transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease),box-shadow .25s var(--ease)}
.passhtb .btn svg{width:40px;height:40px;padding:11px;border-radius:50%;background:var(--dot);color:var(--dot-fg)}
.passhtb .btn{position:relative}
.passhtb .btn:hover{box-shadow:0 10px 24px -10px color-mix(in srgb,var(--navy) 50%,transparent)}
.passhtb .btn:not(:has(svg)){padding:6px 24px;justify-content:center}
.passhtb .btn.yellow{--bg:var(--yellow);--fg:var(--navy);--dot:var(--navy);--dot-fg:var(--yellow)}
.passhtb .btn.yellow:hover{--bg:var(--yellow-2)}
.passhtb .btn.light{--bg:transparent;--fg:var(--navy);--dot:var(--navy);--dot-fg:var(--passhtb-on-primary);border-color:var(--line-strong)}
.passhtb .btn.light:hover{--bg:var(--white);border-color:var(--navy)}
.passhtb .btn.glass{--bg:#ffffff1a;--fg:#fff;--dot:#fff;--dot-fg:var(--navy);border-color:#ffffff4d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.passhtb .btn.glass:hover{--bg:#ffffff2e}
.passhtb .textlink{display:inline-flex;gap:10px;align-items:center;font-weight:650;font-size:14px;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px;color:var(--navy)}
.passhtb .textlink svg{width:16px;height:16px;transition:transform .25s var(--ease)}
.passhtb .textlink:hover svg{transform:translateX(4px)}
.passhtb .ico{overflow:visible}
.passhtb .ico .i-arrow{fill:none;stroke:currentColor;stroke-width:1.7}
.passhtb .ico .i-bolt{fill:currentColor;opacity:0;transform:scale(.4) rotate(-25deg)}
.passhtb .ico .i-ring{fill:none;stroke:var(--dot,currentColor);stroke-width:1.2;opacity:0}
.passhtb .ico path,.passhtb .ico circle{transform-box:fill-box;transform-origin:center;transition:opacity .22s,transform .35s var(--ease)}
.passhtb :is(.btn,.hc-link):is(:hover,:focus-visible) .i-arrow{opacity:0;transform:translateX(7px) scale(.6)}
.passhtb :is(.btn,.hc-link):is(:hover,:focus-visible) .i-bolt{opacity:1;transform:none}
.passhtb :is(.btn,.hc-link):is(:hover,:focus-visible) .i-ring{animation:ico-ring .6s ease-out}
.passhtb .nav-next-go svg{width:15px;height:15px;transition:transform .25s var(--ease)}
.passhtb .nav-next:hover .nav-next-go svg{transform:translateX(4px)}
.passhtb .nav-next{display:flex;flex-direction:column;gap:4px;width:230px;padding:18px;border-radius:calc(var(--r) * 7 / 9);background:var(--navy);color:var(--on-dark);font-size:13px;font-weight:500;line-height:1.45;text-decoration:none}
.passhtb .nav-next-k{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--yellow)}
.passhtb .nav-next strong{margin-top:6px;font-size:19px;font-weight:600;line-height:1.25;letter-spacing:-.02em;color:var(--passhtb-on-primary)}
.passhtb .nav-next-go{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:16px;font-weight:650;color:var(--passhtb-on-primary)}
.passhtb .hero-card{width:290px;background:#ffffffeb;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--ink);border-radius:calc(var(--r) * 11 / 9);padding:20px 22px 18px;box-shadow:var(--shadow-lg);animation:float-in 1s .5s var(--ease) both}
.passhtb .hc-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.passhtb .hc-head em{font-style:normal;letter-spacing:.04em;background:var(--yellow-tint);color:var(--yellow-ink);border-radius:999px;padding:2px 9px;font-size:11px}
.passhtb .hc-head em.live{background:color-mix(in srgb,var(--green) 13%,#fff);color:var(--green)}
/* Date cliquable des cartes « prochaine session » : ouvre la fenêtre de réservation sur cette session (1.8.3) */
.passhtb .hc-book{display:block;margin:2px -12px 0;padding:2px 12px 12px;border-radius:calc(var(--r) * .6);color:inherit;text-decoration:none;transition:background .2s}
.passhtb .hc-book:hover,.passhtb .hc-book:focus-visible{background:var(--mist);color:inherit}
.passhtb .hc-book:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.passhtb .hc-book-cta{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding-bottom:1px;border-bottom:2px solid var(--yellow);font-size:13px;font-weight:700;color:var(--navy)}
.passhtb .hc-book-cta svg{width:14px;height:14px;transition:transform .25s var(--ease)}
.passhtb .hc-book:hover .hc-book-cta svg{transform:translateX(3px)}
.passhtb .passhtb-book-date{color:inherit;font-weight:700;text-decoration:underline;text-decoration-color:var(--yellow);text-decoration-thickness:2px;text-underline-offset:3px}
.passhtb .passhtb-book-date:hover{color:var(--navy)}
.passhtb .hc-date{display:flex;align-items:baseline;gap:10px;margin:14px 0 4px}
.passhtb .hc-date strong{font-size:56px;font-weight:500;letter-spacing:-.05em;line-height:1}
.passhtb .hc-date span{font-size:15px;font-weight:600;color:var(--navy-soft)}
.passhtb .hc-course{font-weight:650;margin:0}
.passhtb .hc-city{margin:0 0 14px;color:var(--muted);font-size:14px}
.passhtb .hc-seats{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}
.passhtb .hc-seats i{display:block;height:6px;border-radius:9px;background:var(--mist);margin-top:8px;position:relative;overflow:hidden}
.passhtb .hc-seats i::after{content:'';position:absolute;inset:0 auto 0 0;width:var(--p);background:var(--yellow);border-radius:9px}
.passhtb .hc-link{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-size:13px;font-weight:650;text-decoration:none;color:var(--navy)}
.passhtb .hc-link svg{--dot:var(--navy);width:30px;height:30px;padding:7px;border-radius:50%;background:var(--navy);color:var(--passhtb-on-primary)}
.passhtb .territory-map{margin:0;position:sticky;top:120px;background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow)}
.passhtb .territory-map figcaption{font-size:11px;color:var(--muted);margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.passhtb .map-svg{display:block;width:100%;height:auto;overflow:hidden}
.passhtb .map-around{fill:none;stroke:var(--navy);stroke-opacity:.07;stroke-width:.8;stroke-linejoin:round}
.passhtb .map-dept{fill:var(--mist);stroke:var(--white);stroke-width:1.6;stroke-linejoin:round;transition:fill .25s}
.passhtb .map-dept:hover,.passhtb .map-dept.is-hover{fill:var(--yellow)}
.passhtb .map-dept-name{font-size:12px;font-weight:650;fill:var(--navy);stroke:var(--white);stroke-width:3px;paint-order:stroke;opacity:0;pointer-events:none;transition:opacity .2s}
.passhtb .map-dept-name.is-hover{opacity:1}
.passhtb .map-num{font-family:var(--font);font-weight:400;font-size:22px;letter-spacing:-.02em;fill:var(--navy);opacity:.14}
.passhtb .map-label{fill:var(--navy);font-family:var(--font);font-weight:600;paint-order:stroke;stroke:var(--white);stroke-width:3px;stroke-linejoin:round}
.passhtb .map-label-hl{font-weight:750}
.passhtb .map-pulse{fill:none;stroke:var(--yellow);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:map-pulse 2.8s ease-out infinite}
.passhtb .pylon-back,.passhtb .pylon-front{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.passhtb .pylon-back{stroke:var(--white);stroke-width:3.2}
.passhtb .pylon-front{stroke:var(--navy);stroke-width:1.1}
.passhtb .is-hl .pylon-front{stroke-width:1.5}
.passhtb .map-net,.passhtb .map-net-flow{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}
.passhtb .map-net{stroke:var(--navy-soft);stroke-opacity:.5;stroke-width:1}
.passhtb .map-net-flow{stroke:var(--yellow);stroke-width:1.8;stroke-dasharray:2 16;animation:map-flow 2.2s linear infinite}
.passhtb .map-city,.passhtb .map-net,.passhtb .map-net-flow{pointer-events:none}
@media(max-width:800px){.passhtb .territory-map{position:static;padding:14px}}
.passhtb .demo-banner{background:var(--yellow-tint);border:1px dashed color-mix(in srgb,var(--yellow) 76%,#000);color:var(--yellow-ink);border-radius:var(--r-sm);padding:12px 18px;font-size:14px;max-width:none;margin-bottom:22px}
.passhtb .finder-status{font-size:14px;color:var(--muted);margin:0 0 16px;max-width:none}
.passhtb .finder-status strong{color:var(--ink)}
.passhtb .finder-bar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;gap:14px;align-items:end;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:0 0 16px}
.passhtb .finder-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.passhtb .finder-field label{font-size:12px;font-weight:650;color:var(--muted)}
.passhtb .finder-field select,.passhtb .finder-field input{width:100%;min-height:48px;border:1px solid var(--line-strong);border-radius:calc(var(--r) * 2 / 3);padding:10px 14px;font:inherit;font-size:15px;background:var(--paper);color:var(--ink)}
.passhtb .finder-field input{letter-spacing:.06em}
.passhtb .finder-field select:focus,.passhtb .finder-field input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--navy) 12%,transparent)}
.passhtb .finder-field select.is-set,.passhtb .finder-field input.is-set{border-color:var(--yellow);background:var(--yellow-tint);color:var(--yellow-ink);font-weight:650}
.passhtb .finder-field select option{background:var(--white);color:var(--ink);font-weight:400}
.passhtb .finder-input{position:relative}
.passhtb .finder-input input{padding-right:136px}
.passhtb .finder-geo{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:1px solid var(--line-strong);background:var(--white);border-radius:999px;padding:6px 12px;font:inherit;font-size:13px;font-weight:650;color:var(--navy);white-space:nowrap;cursor:pointer}
.passhtb .finder-geo:hover{border-color:var(--navy);background:var(--mist)}
.passhtb .finder-bar .btn{transition:background-color .2s,color .2s,box-shadow .2s}
.passhtb .finder-bar .btn:is(:hover,:focus-visible){background:var(--yellow);color:var(--navy);box-shadow:0 8px 20px -10px color-mix(in srgb,var(--yellow) 70%,#000)}
.passhtb .finder-geo:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.passhtb .finder-bar .btn{min-height:48px}
.passhtb .finder-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.passhtb .finder-chips:empty{display:none}
.passhtb .finder-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--navy);background:var(--mist);color:var(--navy);border-radius:999px;padding:6px 6px 6px 14px;font:inherit;font-size:13px;font-weight:650;cursor:pointer}
.passhtb .finder-chip span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--navy);color:var(--passhtb-on-primary);font-size:15px;line-height:1}
.passhtb .finder-chip:hover{background:var(--white)}
.passhtb .finder-chip:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.passhtb .finder-results{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;margin:0 0 14px}
.passhtb .finder-results .finder-status{margin:0}
.passhtb .finder-sort{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);font-weight:650}
.passhtb .finder-sort select{min-height:40px;border:1px solid var(--line-strong);border-radius:999px;padding:6px 14px;font:inherit;font-size:14px;background:var(--white);color:var(--ink)}
.passhtb .finder-sort select:focus{border-color:var(--navy);outline:none}
.passhtb .finder-sort span{white-space:nowrap}
@media(max-width:900px){.passhtb .finder-bar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.passhtb .finder-bar .btn{grid-column:1/-1}}
@media(max-width:600px){.passhtb .finder-bar{grid-template-columns:minmax(0,1fr);padding:14px}}
.passhtb .finder-status .textlink{font-size:13px;margin-left:8px;border:0;background:none;padding:0;cursor:pointer;text-decoration:underline}
.passhtb .session-list{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:10px}
.passhtb .session-item{display:grid;grid-template-columns:84px minmax(0,1.6fr) minmax(0,1fr) 110px auto;gap:20px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;transition:box-shadow .3s,border-color .3s}
.passhtb .session-item:hover{box-shadow:var(--shadow);border-color:transparent}
.passhtb .session-item[hidden]{display:none}
.passhtb .s-date{text-align:center;background:var(--mist);border-radius:calc(var(--r) * 7 / 9);padding:10px 6px}
.passhtb .s-date strong{display:block;font-size:34px;font-weight:500;letter-spacing:-.05em;line-height:1}
.passhtb .s-date span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.passhtb .s-info h3,.passhtb .s-info p.s-title{font-size:18px;margin:0 0 4px}
.passhtb .s-info p.s-title{font-family:inherit;font-weight:600;line-height:1.2;letter-spacing:-.02em;color:var(--navy)}
.passhtb .s-info h3 a,.passhtb .s-info .s-title a{text-decoration:none}
.passhtb .s-info h3 a:hover,.passhtb .s-info .s-title a:hover{text-decoration:underline}
.passhtb .s-info p{margin:0;font-size:14px;color:var(--muted)}
.passhtb .s-info p::first-letter{text-transform:uppercase}
.passhtb .s-badge{display:none;font-size:11px!important;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)!important;background:var(--yellow);border-radius:999px;padding:3px 10px;margin:0 0 6px!important;width:max-content}
.passhtb .session-item.is-nearest{border-color:var(--yellow);box-shadow:0 0 0 4px color-mix(in srgb,var(--yellow) 20%,transparent)}
.passhtb .session-item.is-nearest .s-date{background:var(--yellow)}
.passhtb .session-item.is-nearest .s-badge{display:block}
.passhtb .s-info .s-mixed{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:6px;color:var(--ink)}
.passhtb .s-info .s-mixed::first-letter{text-transform:none}
.passhtb .s-mixed-tag,.passhtb .bk-mixed{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);border:1px solid var(--navy);border-radius:999px;padding:2px 9px;white-space:nowrap}
.passhtb .bk-mixed{display:inline-block;margin-left:4px;padding:1px 7px;font-size:10px}
.passhtb .s-city strong{display:block;font-size:16px;font-weight:650}
.passhtb .s-dist{font-size:13px;color:var(--navy-soft);font-weight:650}
.passhtb .s-seats{font-size:14px;color:var(--muted)}
.passhtb .s-cta .btn{min-height:44px;font-size:13px;padding-left:18px}
.passhtb .s-cta .btn svg{width:32px;height:32px;padding:8px}
.passhtb .finder-more{background:none;border:0;padding:0 0 3px;cursor:pointer;margin-bottom:12px}
.passhtb .finder-empty{background:var(--mist);border-radius:var(--r-sm);padding:16px 18px;max-width:none}
@media(max-width:900px){.passhtb .session-item{grid-template-columns:70px minmax(0,1fr) auto;gap:10px 14px}.passhtb .s-badge{width:auto;max-width:100%}.passhtb .s-city{grid-column:2}.passhtb .s-seats{grid-column:3;grid-row:2;text-align:right}.passhtb .s-cta{grid-column:1/-1}.passhtb .s-cta .btn{width:100%}.passhtb .s-date{grid-row:span 2}.passhtb .finder-course{margin-left:0}}
@media(max-width:600px){.passhtb .s-date strong{font-size:28px}}
@media(max-width:1120px){.passhtb .nav-next{width:auto;margin:4px 0 0 8px}}
@media(max-width:960px){.passhtb .hero-card{display:none}}
@media(prefers-reduced-motion:reduce){.passhtb .map-pulse{opacity:.35}}
@media print{.passhtb .hero-card{display:none!important}}
html.bk-lock{overflow:hidden}
.passhtb .booking{width:min(1480px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:var(--r-lg);background:var(--white);color:var(--ink);box-shadow:var(--shadow-lg);overflow:hidden}
.passhtb .booking[open]{display:flex;flex-direction:column;animation:bkIn .3s var(--ease)}
.passhtb .booking::backdrop{background:color-mix(in srgb,var(--navy,#091f37) 65%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.passhtb .bk-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0;padding:14px 16px 14px 28px;background:var(--navy);color:var(--passhtb-on-primary)}
.passhtb .bk-title{margin:0;font-size:18px;font-weight:600;letter-spacing:-.01em}
.passhtb .bk-close{display:grid;place-items:center;width:42px;height:42px;border:1px solid #ffffff3d;border-radius:50%;background:transparent;color:var(--passhtb-on-primary);cursor:pointer;transition:background .2s}
.passhtb .bk-close:hover{background:#ffffff1a}
.passhtb .bk-close svg{width:18px;height:18px}
.passhtb .bk-close:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.passhtb .bk-body{flex:1;overflow:auto;padding:22px 28px 28px}
.passhtb .bk-intro{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-bottom:20px}
.passhtb .bk-tags{display:flex;flex-wrap:wrap;gap:8px;width:100%;margin:0}
.passhtb .bk-tag,.passhtb .bk-price{padding:5px 12px;border-radius:999px;font-size:12px;font-weight:650}
.passhtb .bk-tag{background:var(--mist);color:var(--navy)}
.passhtb .bk-price{background:var(--yellow);color:var(--navy);font-weight:750}
.passhtb .bk-course{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;border:0}
.passhtb .bk-course label{position:relative;cursor:pointer}
.passhtb .bk-course input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.passhtb .bk-course span{display:flex;flex-direction:column;padding:9px 18px;border:1px solid var(--line-strong);border-radius:calc(var(--r) * 7 / 9);line-height:1.3;transition:background .2s,border-color .2s}
.passhtb .bk-course strong{font-size:15px;font-weight:650}
.passhtb .bk-course small{font-size:12px;color:var(--muted)}
.passhtb .bk-course label:hover span{border-color:var(--navy)}
.passhtb .bk-course input:checked+span{background:var(--navy);border-color:var(--navy);color:var(--passhtb-on-primary)}
.passhtb .bk-course input:checked+span small{color:var(--on-dark)}
.passhtb .bk-course input:focus-visible+span{outline:2px solid var(--navy);outline-offset:3px}
.passhtb .bk-views{display:flex;gap:8px;margin-left:auto}
.passhtb .bk-views button{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 16px;border:1px solid var(--navy);border-radius:999px;background:var(--white);color:var(--navy);font:inherit;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s}
.passhtb .bk-views button:hover{background:var(--mist)}
.passhtb .bk-views svg{width:17px;height:17px}
.passhtb .bk-views [aria-selected=true],.passhtb .bk-views [aria-selected=true]:hover{background:var(--navy);color:var(--passhtb-on-primary);box-shadow:0 10px 20px -12px var(--navy)}
.passhtb .bk-views button:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.passhtb .bk-main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.passhtb .bk-stage{position:relative;min-height:440px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);overflow:hidden}
.passhtb .bk-view[hidden]{display:none}
.passhtb .bk-map{display:block;width:100%;height:auto;max-height:min(58vh,540px);background:color-mix(in srgb,var(--navy) 4%,#fff)}
.passhtb .bk-region{fill:color-mix(in srgb,var(--navy) 8%,#fff);stroke:var(--white);stroke-width:1.4;stroke-linejoin:round;transition:fill .25s}
.passhtb .bk-region.is-served{fill:color-mix(in srgb,var(--navy) 14%,#fff)}
.passhtb .bk-region.is-active{fill:color-mix(in srgb,var(--navy) 22%,#fff)}
.passhtb .bk-pin{cursor:pointer;outline:none;transition:opacity .25s}
.passhtb .bk-pin-shape{fill:var(--navy);stroke:var(--white);stroke-width:1.6;transition:fill .2s}
.passhtb .bk-pin-dot{fill:var(--yellow)}
.passhtb .bk-pin-halo{fill:var(--yellow);opacity:0;transform-box:fill-box;transform-origin:center;transition:opacity .2s}
.passhtb .bk-pin-badge circle{fill:var(--yellow);stroke:var(--white);stroke-width:1.5}
.passhtb .bk-pin-badge text{font-weight:800;font-size:10px;font-family:var(--font);fill:var(--navy)}
.passhtb .bk-pin-label{font-weight:650;font-size:12.5px;font-family:var(--font);fill:var(--navy);paint-order:stroke;stroke:color-mix(in srgb,var(--navy) 4%,#fff);stroke-width:4px;stroke-linejoin:round}
.passhtb .bk-pin:hover .bk-pin-shape,.passhtb .bk-pin:focus-visible .bk-pin-shape{fill:var(--navy-3)}
.passhtb .bk-pin:hover .bk-pin-halo,.passhtb .bk-pin:focus-visible .bk-pin-halo{opacity:.3}
.passhtb .bk-pin:focus-visible .bk-pin-label{text-decoration:underline}
.passhtb .bk-pin.is-selected .bk-pin-shape{fill:var(--yellow);stroke:var(--navy)}
.passhtb .bk-pin.is-selected .bk-pin-dot{fill:var(--navy)}
.passhtb .bk-pin.is-selected .bk-pin-badge circle{fill:var(--navy)}
.passhtb .bk-pin.is-selected .bk-pin-badge text{fill:var(--white)}
.passhtb .bk-pin.is-selected .bk-pin-halo{opacity:.35;animation:bkPulse 1.8s var(--ease) infinite}
.passhtb .bk-pin.is-empty{opacity:.4}
.passhtb .bk-pin.is-empty .bk-pin-badge{display:none}
.passhtb .bk-pin.is-dim{opacity:.3}
.passhtb .bk-hint{max-width:none;margin:0;padding:10px 16px;border-top:1px solid var(--line);background:var(--white);font-size:12.5px;color:var(--muted)}
.passhtb .bk-table-wrap{max-height:min(58vh,520px);overflow:auto}
.passhtb .bk-table{width:100%;border-collapse:collapse;background:var(--white);font-size:14px}
.passhtb .bk-table th{position:sticky;top:0;z-index:1;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--white);text-align:left;font-size:12px;font-weight:650;color:var(--muted)}
.passhtb .bk-table td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.passhtb .bk-table tr:nth-child(even) td{background:color-mix(in srgb,var(--navy) 2%,#fff)}
.passhtb .bk-table tr.is-selected td{background:var(--yellow-tint)}
.passhtb .bk-table tr.is-full td{color:var(--muted)}
.passhtb .bk-table small{color:var(--muted)}
.passhtb .bk-km{display:block;font-size:12px}
.passhtb .bk-pick{display:inline-block;padding:7px 14px;border:1px solid var(--navy);border-radius:999px;background:var(--white);color:var(--navy);font:inherit;font-size:13px;font-weight:650;white-space:nowrap;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}
.passhtb .bk-pick:hover{background:var(--mist)}
.passhtb .bk-pick[aria-pressed=true]{background:var(--navy);color:var(--passhtb-on-primary)}
.passhtb .bk-empty{max-width:none;margin:0;padding:16px 18px}
.passhtb .bk-near-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.passhtb .bk-cp label{display:block;margin-bottom:6px;font-size:12px;font-weight:650;color:var(--muted)}
.passhtb .bk-cp div{display:flex;gap:8px}
.passhtb .bk-cp input{width:140px;min-height:52px;padding:10px 18px;border:1px solid var(--line-strong);border-radius:999px;background:var(--white);font-size:16px;letter-spacing:.08em}
.passhtb .bk-cp input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--navy) 12%,transparent)}
.passhtb .bk-near-status{max-width:none;margin:14px 0;font-size:13.5px;color:var(--muted)}
.passhtb .bk-near-status strong{color:var(--ink)}
.passhtb .bk-near{display:grid;gap:8px;max-height:min(42vh,360px);margin:0;padding:0;overflow:auto;list-style:none}
.passhtb .bk-near li{display:grid;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:calc(var(--r) * 7 / 9);background:var(--white)}
.passhtb .bk-near li.is-selected{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.passhtb .bk-near li.is-empty{background:transparent}
.passhtb .bk-near-km{font-size:15px;font-weight:700;color:var(--navy)}
.passhtb .bk-near strong{display:block}
.passhtb .bk-near li div span{font-size:13px;color:var(--muted)}
.passhtb .bk-panel{display:flex;flex-direction:column;gap:10px}
.passhtb .bk-field label{display:block;margin-bottom:6px;font-size:12px;font-weight:650;letter-spacing:.02em;color:var(--muted)}
.passhtb .bk-field select{width:100%;min-height:46px;padding:10px 40px 10px 14px;border:1px solid var(--line-strong);border-radius:calc(var(--r) * 2 / 3);background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23091f37' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center/15px;color:var(--ink);font:inherit;font-size:15px;appearance:none;-webkit-appearance:none;cursor:pointer}
.passhtb .bk-field select:disabled{opacity:.55;cursor:not-allowed}
.passhtb .bk-field select:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--navy) 12%,transparent)}
.passhtb .bk-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin:2px 0 0;font-size:12.5px;color:var(--muted)}
.passhtb .bk-summary{padding:14px 16px;border-radius:calc(var(--r) * 7 / 9);background:var(--paper);font-size:14px}
.passhtb .bk-summary[hidden]{display:none}
.passhtb .bk-summary p{max-width:none;margin:0}
.passhtb .bk-sum-title{font-weight:700;color:var(--navy)}
.passhtb .bk-sum-price{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px!important;padding-top:10px;border-top:1px solid var(--line)}
.passhtb .bk-sum-price strong{font-size:19px;font-weight:700;letter-spacing:-.02em}
.passhtb .bk-tip{margin-top:10px!important;font-size:13px;color:var(--muted)}
.passhtb .bk-warn{margin-top:10px!important;padding:10px 12px;border-radius:var(--r-sm);background:var(--yellow-tint);color:var(--yellow-ink);font-size:13px}
.passhtb .bk-muted{color:var(--muted)}
.passhtb .bk-error{margin:0;font-size:13.5px;font-weight:600;color:var(--red)}
.passhtb .bk-error:empty{display:none}
.passhtb .bk-actions{display:grid;gap:8px}
.passhtb .bk-actions .btn{min-height:50px}
.passhtb .bk-submit{order:-1}
.passhtb .btn.bk-help{gap:8px;padding:6px 16px;justify-content:center}
.passhtb .btn.bk-help svg{width:20px;height:20px;padding:0;background:none;color:var(--navy)}
.passhtb .bk-hours{max-width:none;margin:0;font-size:12px;color:var(--muted)}
.passhtb .bk-demo{padding:4px 12px;border:1px dashed color-mix(in srgb,var(--yellow) 76%,#000);border-radius:999px;background:var(--yellow-tint);color:var(--yellow-ink);font-size:12px;font-weight:650}
@media(max-width:960px){.passhtb .booking{width:100%;max-height:100dvh;height:100dvh;border-radius:0}.passhtb .bk-head{padding-left:20px}.passhtb .bk-body{padding:18px 16px 24px}.passhtb .bk-main{grid-template-columns:1fr}.passhtb .bk-views{width:100%;margin-left:0}.passhtb .bk-views button{flex:1;justify-content:center;padding:8px 10px}.passhtb .bk-stage{min-height:0}.passhtb .bk-map{max-height:46vh}}
@media(max-width:600px){.passhtb .bk-views button{font-size:11px;letter-spacing:.03em}.passhtb .bk-course{width:100%}.passhtb .bk-course label{flex:1}.passhtb .bk-course span{padding:8px 12px}.passhtb .bk-course strong{font-size:14px}.passhtb .bk-views svg{display:none}.passhtb .bk-table th:nth-child(3),.passhtb .bk-table td:nth-child(3){display:none}.passhtb .bk-table td,.passhtb .bk-table th{padding:10px}.passhtb .bk-near li{grid-template-columns:62px minmax(0,1fr);row-gap:8px}.passhtb .bk-near .bk-pick{grid-column:2;justify-self:start}.passhtb .bk-cp,.passhtb .bk-near-bar .btn{width:100%}.passhtb .bk-cp input{flex:1;width:auto}}
/* Fermeture en fondu (fenêtre et voile), changement d'étape et de vue en douceur ; flex-direction hors [open] pour que la mise en page ne saute pas pendant la fermeture */
.passhtb .booking{flex-direction:column}
@media(prefers-reduced-motion:no-preference){.passhtb .booking{transition:opacity .22s var(--ease),transform .22s var(--ease),overlay .22s allow-discrete,display .22s allow-discrete}.passhtb .booking:not([open]){opacity:0;transform:translateY(10px) scale(.985)}.passhtb .booking::backdrop{transition:opacity .22s ease,overlay .22s allow-discrete,display .22s allow-discrete}.passhtb .booking:not([open])::backdrop{opacity:0}@starting-style{.passhtb .booking[open]::backdrop{opacity:0}}.passhtb .booking :is([data-bk-form],[data-bk-rq],[data-bk-done],.bk-view):not([hidden]){animation:bkStep .3s var(--ease)}}
@keyframes bkStep{from{opacity:0;transform:translateY(8px)}}
@media(prefers-reduced-motion:reduce){.passhtb .booking[open]{animation:none}.passhtb .bk-pin.is-selected .bk-pin-halo{animation:none}}
@media print{.passhtb .booking{display:none!important}}
.passhtb .hero-card.hc-carousel{width:340px;padding:26px 28px 22px}
.passhtb .hc-carousel .hc-date{margin:16px 0 6px}
.passhtb .hc-carousel .hc-date strong{font-size:76px}
.passhtb .hc-carousel .hc-date span{font-size:17px}
.passhtb .hc-carousel .hc-course{font-size:17px}
.passhtb .hc-carousel .hc-city{font-size:15px;margin-bottom:16px}
.passhtb .hc-carousel .hc-link{margin-top:16px;font-size:14px}
.passhtb .hero-card [hidden]{display:none!important}
.passhtb .hc-head{gap:10px;white-space:nowrap}
.passhtb .hc-nav{display:flex;align-items:center;gap:6px}
.passhtb .hc-arrow{width:28px;height:28px;padding:0;border-radius:50%;border:1px solid var(--line-strong);background:var(--white);color:var(--navy);display:grid;place-items:center;transition:background .2s,color .2s,border-color .2s}
.passhtb .hc-arrow svg{width:16px;height:16px}
.passhtb .hc-arrow:hover:not(:disabled){background:var(--navy);border-color:var(--navy);color:var(--passhtb-on-primary)}
.passhtb .hc-arrow:disabled{opacity:.35;cursor:default}
.passhtb .hc-count{min-width:34px;text-align:center;font-size:12px;letter-spacing:.04em;color:var(--muted)}
.passhtb .hc-near{margin-top:14px;font-size:13px}
.passhtb .hc-textbtn{background:none;border:0;padding:0;color:var(--navy);font:inherit;font-weight:650;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.passhtb .hc-cp{display:flex;gap:6px}
.passhtb .hc-cp input{flex:1;min-width:0;min-height:36px;padding:6px 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--white);font-size:14px;color:var(--ink)}
.passhtb .hc-cp input:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px color-mix(in srgb,var(--navy) 12%,transparent)}
.passhtb .hc-cp button{min-height:36px;padding:0 16px;border:0;border-radius:999px;background:var(--navy);color:var(--passhtb-on-primary);font-weight:650;font-size:13px}
.passhtb .hc-status{margin:0;font-size:12px;line-height:1.5;color:var(--muted)}
.passhtb .hc-status:empty{display:none}
.passhtb .hc-cp:not([hidden])+.hc-status{margin-top:6px}
@keyframes ico-ring{from{opacity:.8;transform:scale(.78)}to{opacity:0;transform:scale(1.35)}}
@keyframes float-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes map-pulse{0%{transform:scale(.55);opacity:.9}100%{transform:scale(1.5);opacity:0}}
@keyframes map-flow{to{stroke-dashoffset:-36}}
@keyframes bkIn{from{opacity:0;transform:translateY(14px) scale(.985)}}
@keyframes bkPulse{0%{transform:scale(.7);opacity:.45}100%{transform:scale(1.5);opacity:0}}
/* Module « prochaine session » du héros : survols et champ du code postal (corrige les styles de bouton hérités du thème et des formulaires de la page) */
.passhtb .hero-card .hc-link{transition:color .25s ease}
.passhtb .hero-card .hc-link svg{transition:background .25s ease,color .25s ease}
.passhtb .hero-card .hc-link:is(:hover,:focus-visible){background:none;color:var(--yellow)}
.passhtb .hero-card .hc-link:is(:hover,:focus-visible) svg{--dot:var(--yellow);background:var(--yellow);color:var(--navy)}
.passhtb .hc-textbtn{border-radius:0;box-shadow:none;transition:color .2s ease,text-decoration-color .2s ease}
.passhtb .hc-textbtn:is(:hover,:focus,:focus-visible){background:none;color:var(--navy)}
.passhtb .hc-textbtn:is(:active,:focus-visible),.passhtb .hc-near:has(.hc-cp:not([hidden])) .hc-textbtn{text-decoration-color:var(--yellow);text-decoration-thickness:2px}
.passhtb .hero-card .hc-cp{align-items:center}
.passhtb .hero-card .hc-cp button[type=submit]{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:auto;min-width:48px;height:36px;padding:0 16px;margin:0;line-height:1;box-shadow:none;transition:background .2s ease,color .2s ease}
.passhtb .hero-card .hc-cp button[type=submit]::after{content:none!important;display:none!important}
.passhtb .hero-card .hc-cp button[type=submit]:is(:hover,:focus-visible){background:var(--yellow);color:var(--navy)}

/* Formulaire de réservation (volet latéral) */
html.rq-lock{overflow:hidden}
.reservation{position:fixed;inset:0 0 0 auto;margin:0;width:min(680px,100%);max-width:100%;height:100dvh;max-height:100dvh;padding:0;border:0;border-radius:24px 0 0 24px;background:var(--white);color:var(--ink);box-shadow:-20px 0 70px #091f3730;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:var(--navy-soft) var(--mist);scrollbar-width:thin}
.reservation::backdrop{background:#091f3799}
.rq-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 36px;background:var(--white);border-bottom:1px solid var(--line)}
.rq-head h2{font-size:29px;line-height:1.16;letter-spacing:-.03em;margin:0;font-weight:600}
.rq-close{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:0;border-radius:50%;color:var(--navy);background:var(--mist);transition:background .2s}
.rq-close:hover{background:var(--mist-2)}
.rq-body{padding:18px 36px 28px}
#rq-intro{font-size:14px;color:var(--muted);margin-bottom:20px}
.rq-session{padding:20px 24px;border-radius:14px;background:var(--navy);color:white;margin-bottom:18px}
.rq-session h3{font-size:23px;font-weight:600;margin:0 0 5px;letter-spacing:-.02em}
.rq-session>p{color:var(--on-dark);font-size:13px;margin-bottom:14px}
.rq-session dl{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;margin:0;padding-top:15px;border-top:1px solid #ffffff30}
.rq-session dt{font-size:12px;color:var(--on-dark);margin-bottom:3px}
.rq-session dd{font-size:15px;font-weight:600;margin:0;text-transform:none;overflow-wrap:anywhere}
.rq-grid{display:grid;grid-template-columns:108px 1fr 1fr;gap:15px 18px}
.rq-field{min-width:0}.rq-company{grid-column:span 2}.rq-full{grid-column:1/-1}
.rq-field label{display:block;font-size:13px;font-weight:650;margin-bottom:7px}
.rq-field input,.rq-field select,.rq-field textarea{width:100%;min-height:46px;border:1px solid #8094a7;border-radius:8px;background:white;color:var(--ink);padding:10px 12px;font-size:16px;line-height:1.4;caret-color:var(--navy)}
.rq-field textarea{resize:vertical}.rq-field input::placeholder,.rq-field textarea::placeholder{color:var(--muted);opacity:1}
.rq-field [aria-invalid=true]{border-color:var(--red)}
.rq-field :focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.rq-optional{font-weight:400;color:var(--muted)}
.rq-error{font-size:12px;color:var(--red);margin:5px 0 0}.rq-error:empty{display:none}
.reservation .rq-course{border:0;margin:0;padding:0;min-width:0}.reservation .rq-course[hidden]{display:none}
.reservation .rq-course legend{font-size:13px;font-weight:650;margin-bottom:7px;color:var(--navy)}.reservation .rq-course .req{color:var(--yellow)}
.reservation .rq-choice{display:flex;gap:10px;align-items:flex-start;border:1px solid #8094a7;border-radius:8px;padding:10px 12px;margin-bottom:8px;cursor:pointer;background:white}
.reservation .rq-choice:has(:checked){border-color:var(--navy);box-shadow:0 0 0 1px var(--navy)}
.reservation .rq-choice input{width:17px;height:17px;margin-top:3px;flex-shrink:0}
.reservation .rq-choice strong{display:block;font-size:14px}.reservation .rq-choice small{font-size:13px;color:var(--muted)}
.reservation .checkline{align-items:flex-start;font-size:12px;line-height:1.6;gap:10px}.reservation .checkline input{width:17px;height:17px;flex-shrink:0;margin-top:2px}
.rq-note{font-size:12px;color:var(--muted);line-height:1.6;margin:0 0 14px}.rq-submit{width:100%;margin-bottom:9px;min-height:52px}.rq-submit:disabled{cursor:wait}
.rq-contact{font-size:13px;margin:18px 0 0;color:var(--muted)}.rq-contact a{color:var(--navy);font-weight:650}
.rq-demo{font-size:12px;line-height:1.6;background:var(--yellow-tint);color:var(--yellow-ink);padding:10px 14px;border-radius:8px;margin-top:-8px}
.rq-status:not(:empty){padding:16px 18px;margin-top:18px;border-radius:10px;background:var(--mist);font-size:14px}.rq-status.is-error{color:var(--red)}.rq-status.is-success{background:#e6f2eb;color:#194d36}.rq-status strong{display:block;margin-bottom:5px}
@media(max-width:540px){.reservation{border-radius:0}.rq-head{padding:18px 20px}.rq-head h2{font-size:24px}.rq-body{padding:20px}.rq-session{padding:19px}.rq-session h3{font-size:21px}.rq-session dl{grid-template-columns:1fr;gap:12px}.rq-grid{grid-template-columns:1fr 1fr;gap:17px 14px}.rq-civ{grid-column:1/-1;max-width:120px}.rq-company{grid-column:1/-1}.rq-count{grid-column:1/-1}.rq-contact{padding-bottom:env(safe-area-inset-bottom)}}
@media(prefers-reduced-motion:no-preference){.reservation[open]{animation:rq-enter .26s cubic-bezier(.16,1,.3,1)}@keyframes rq-enter{from{transform:translateX(28px);opacity:.5}to{transform:translateX(0);opacity:1}}}
.reservation .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.reservation .checkline{display:flex}
.reservation .req{color:var(--red)}
.reservation h2,.reservation h3,.reservation p{font-family:inherit}
.reservation .btn{max-width:100%}
.passhtb .reservation .rq-close{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--mist);color:var(--navy);box-shadow:none}
.passhtb .reservation .rq-close:hover{background:var(--mist-2)}
/* Formulaire de réservation : champs comme sur les pages Accueil et Contact, tenant sur un écran d'ordinateur */
.reservation .rq-head{padding:16px 32px}
.reservation .rq-head h2{font-size:26px}
.reservation .rq-close{width:40px;height:40px}
.reservation .rq-body{padding:14px 32px 18px}
.reservation #rq-intro{margin-bottom:12px}
.reservation .rq-session{padding:14px 20px;margin-bottom:14px}
.reservation .rq-session h3{font-size:21px;margin-bottom:3px}
.reservation .rq-session>p{margin-bottom:10px}
.reservation .rq-session dl{padding-top:10px;gap:14px}
.reservation .rq-grid{grid-template-columns:repeat(6,1fr);gap:12px 14px}
.reservation .rq-civ{grid-column:span 2}.reservation .rq-grid>.rq-field:nth-of-type(2),.reservation .rq-grid>.rq-field:nth-of-type(3){grid-column:span 2}
.reservation .rq-company{grid-column:span 4}.reservation .rq-count{grid-column:span 2}
.reservation .rq-half{grid-column:span 3}.reservation .rq-full{grid-column:1/-1}
.reservation .rq-field label{font-size:13px;font-weight:650;margin-bottom:5px;color:var(--navy)}
.reservation .rq-field .req{color:var(--yellow)}
.reservation .rq-field input,.reservation .rq-field select,.reservation .rq-field textarea{min-height:44px;padding:10px 14px;border:1px solid #c5d0da;border-radius:14px;background:#f8f8f4;font-size:15px}
.reservation .rq-field textarea{min-height:0;height:64px;padding:10px 14px}
.reservation .rq-field input:focus,.reservation .rq-field select:focus,.reservation .rq-field textarea:focus{background:#fff;border-color:var(--navy)}
.reservation .rq-error{margin-top:3px}
.reservation .checkline{align-items:flex-start;gap:10px}
.reservation .rq-submit{margin:4px 0 6px;min-height:50px}
.reservation .rq-note{margin:0}
.reservation .rq-contact{margin-top:10px}
@media(max-width:540px){
 .reservation .rq-body{padding:16px 20px 20px}
 .reservation .rq-civ,.reservation .rq-count{grid-column:span 3}
 .reservation .rq-grid>.rq-field:nth-of-type(2),.reservation .rq-grid>.rq-field:nth-of-type(3){grid-column:span 3}
 .reservation .rq-company,.reservation .rq-half{grid-column:1/-1}
}
.reservation .rq-head{padding:12px 32px}
.reservation .rq-body{padding:12px 32px 12px}
.reservation #rq-intro{margin-bottom:8px}
.reservation .rq-session{margin-bottom:10px}
.reservation .rq-grid{gap:9px 14px}
.reservation .rq-field textarea{height:52px}
.reservation .rq-submit{min-height:46px;margin:2px 0 4px}
.reservation .rq-contact{margin-top:6px}
.reservation .rq-field textarea{height:68px}
.reservation .rq-required{margin-top:10px;font-size:12px;color:var(--muted)}
.reservation .rq-required .req{color:var(--yellow);font-weight:700;font-size:14px}
.reservation .rq-submit{margin:10px 0 14px;min-height:50px}
.reservation .rq-contact{margin-top:16px;padding-bottom:6px}
.reservation .rq-body{padding-bottom:20px}
.reservation .rq-session{padding:12px 20px;margin-bottom:8px}
.reservation .rq-grid{gap:8px 14px}
.reservation .rq-head{padding:10px 32px}
.reservation .rq-body{padding-top:8px;padding-bottom:12px}
.reservation .rq-field input,.reservation .rq-field select{min-height:42px;padding-top:8px;padding-bottom:8px}
.reservation .rq-session>p{margin-bottom:8px}
.reservation .rq-session dl{padding-top:8px}
.reservation .rq-submit{margin:8px 0 12px}
.reservation .rq-contact{margin-top:10px;padding-bottom:0}
.reservation .rq-required{margin-top:6px}
/* Case de consentement : même mise en forme que le formulaire de la page Contact et devis */
.reservation .checkline{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.6;color:var(--navy);cursor:pointer}
.reservation .checkline input{-webkit-appearance:none;appearance:none;display:grid;place-content:center;flex:none;width:20px;height:20px;margin:1px 0 0;padding:0;border:1px solid var(--navy);border-radius:6px;background:#fff;box-shadow:none;transition:background-color .2s}
.reservation .checkline input::before{content:"";width:11.7px;height:11.7px;background:var(--yellow);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);transform:scale(0);transition:transform .15s}
.reservation .checkline input:checked{background:var(--navy)}
.reservation .checkline input:checked::before{transform:scale(1)}
.reservation .checkline input:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
/* Zone du bouton : plus d'air */
.reservation .rq-required{margin-top:14px;margin-bottom:0}
.reservation .rq-submit{margin:16px 0 4px}
.reservation .rq-contact{margin-top:22px;padding-bottom:10px}
.reservation .rq-body{padding-bottom:22px}
.reservation .rq-contact{padding-bottom:0}
.reservation .rq-body{padding-bottom:16px}
.reservation .rq-grid{gap:7px 14px}
.reservation #rq-intro{margin-bottom:6px}

/* ---------- Module « Organiser une session intra » ([passhtb_intra], includes/intra.php ; issu de V5/assets/css/intra-booking.css) ----------
   Réutilise les styles de la fenêtre de réservation (.bk-…) ; ceci n'ajoute que le cadre posé dans la page. */
.passhtb .ib-section{scroll-margin-top:150px}
.passhtb .ib-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 48px;align-items:end;margin-bottom:28px}
.passhtb .ib-head h2{margin:0;color:var(--ink);font-size:clamp(28px,3.4vw,44px);line-height:1.1;letter-spacing:-.02em}
.passhtb .ib-head p{max-width:none;margin:0;color:var(--muted);font-size:15px;line-height:1.6}
.passhtb .ib{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--white);color:var(--ink);box-shadow:0 30px 60px -30px color-mix(in srgb,var(--navy) 28%,transparent);overflow:hidden}
.passhtb .ib .bk-head{min-height:62px}
.passhtb .ib .bk-body{overflow:visible}
.passhtb .ib-opt{font-weight:500;letter-spacing:0}
.passhtb .ib .req{margin-left:2px;color:var(--yellow);font-weight:800}
.passhtb .ib .bk-field input:not([type=checkbox]){width:100%;min-height:46px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:calc(var(--r) * 2 / 3);background:var(--paper);color:var(--ink);font:inherit;font-size:15px}
.passhtb .ib .bk-field #ib-cp{letter-spacing:.06em}
.passhtb .ib .bk-field input:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--navy) 12%,transparent)}
.passhtb .ib .bk-field[hidden]{display:none}
.passhtb .ib .bk-intro{margin-bottom:28px}
.passhtb .ib .bk-panel{gap:20px}
.passhtb .ib .bk-field label{margin-bottom:8px}
.passhtb .ib .bk-meta{margin:0;gap:6px 16px}
.passhtb .ib .bk-summary{padding:18px 20px}
.passhtb .ib .bk-actions{gap:12px;margin-top:4px}
.passhtb .ib .bk-actions[hidden]{display:none}
.passhtb .ib-left{display:flex;flex-direction:column;gap:20px;min-width:0}
.passhtb .ib-help{display:grid;gap:16px;padding:20px 22px;border:1px solid var(--line);border-radius:var(--r);background:var(--white)}
.passhtb .ib-help-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px}
.passhtb .ib-help-title{margin:0 0 4px;font-size:15px;font-weight:700;color:var(--navy)}
.passhtb .ib-help-hours{display:flex;flex-direction:column;gap:2px;max-width:none;margin:0;font-size:13.5px;color:var(--muted)}
.passhtb .ib-help-hours a{font-size:16px;font-weight:700;color:var(--navy);text-decoration:none}
.passhtb .ib-help-hours a:hover{text-decoration:underline}
.passhtb .ib-help .btn.bk-help{flex-shrink:0;min-height:48px;gap:8px;padding:6px 16px;justify-content:center}
.passhtb .ib-help .btn.bk-help svg{width:20px;height:20px;padding:0;background:none;color:var(--navy)}
.passhtb .ib-help-list{display:grid;gap:10px;margin:0;padding:16px 0 0;border-top:1px solid var(--line);list-style:none;font-size:13.5px;line-height:1.5;color:var(--muted)}
.passhtb .ib-help-list li{position:relative;margin:0;padding-left:22px}
.passhtb .ib-help-list li::before{content:"";position:absolute;left:2px;top:.45em;width:8px;height:8px;border-radius:50%;background:var(--yellow)}
.passhtb .ib .ib-step{display:flex;flex-direction:column;gap:20px}
.passhtb .ib .ib-step[hidden]{display:none}
.passhtb .ib .bk-note{margin:0;font-size:12.5px;color:var(--muted)}
.passhtb .ib .ib-recap{padding:16px 18px;border-radius:calc(var(--r) * 7 / 9);background:var(--paper);font-size:14px}
.passhtb .ib .ib-recap p{max-width:none;margin:0}
.passhtb .ib .ib-recap p+p{margin-top:4px;color:var(--muted)}
.passhtb .ib .ib-back{align-self:flex-start;padding:0;border:0;background:none;color:var(--navy);font:inherit;font-size:13.5px;font-weight:650;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.passhtb .ib .ib-error{margin:6px 0 0;font-size:12.5px;font-weight:600;color:var(--red)}
.passhtb .ib .ib-error:empty{display:none}
.passhtb .ib .bk-field [aria-invalid=true]{border-color:var(--red)}
.passhtb .ib .checkline{display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.6;color:var(--navy);cursor:pointer}
.passhtb .ib .checkline input{-webkit-appearance:none;appearance:none;display:grid;place-content:center;flex:none;width:20px;height:20px;margin:1px 0 0;padding:0;border:1px solid var(--navy);border-radius:5px;background:var(--white)}
.passhtb .ib .checkline input::before{content:"";width:11.7px;height:11.7px;background:var(--yellow);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);transform:scale(0);transition:transform .15s}
.passhtb .ib .checkline input:checked{background:var(--navy)}
.passhtb .ib .checkline input:checked::before{transform:scale(1)}
.passhtb .ib .checkline input:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.passhtb .ib .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.passhtb .ib .ib-sent{padding:20px;border-radius:calc(var(--r) * 7 / 9);background:var(--yellow-tint);color:var(--ink);font-size:14.5px;line-height:1.6}
.passhtb .ib .ib-sent[hidden]{display:none}
.passhtb .ib .ib-sent p{max-width:none;margin:8px 0 0}
.passhtb .ib-map{max-height:min(64vh,600px)}
.passhtb .ib-region{fill:color-mix(in srgb,var(--navy) 9%,#fff);stroke:#fff;stroke-width:1.4;stroke-linejoin:round;cursor:pointer;outline:none;transition:fill .25s}
.passhtb .ib-region:hover,.passhtb .ib-region:focus-visible{fill:color-mix(in srgb,var(--navy) 18%,#fff)}
.passhtb .ib-region:focus-visible{stroke:var(--navy);stroke-width:2}
.passhtb .ib-region.is-active{fill:color-mix(in srgb,var(--navy) 26%,#fff)}
.passhtb .ib-dep{fill:none;stroke:#ffffff8c;stroke-width:.6;pointer-events:none;transition:fill .25s}
.passhtb .ib-dep.is-active{fill:var(--yellow);fill-opacity:.85;stroke:var(--navy);stroke-width:1.2}
.passhtb .ib .bk-hint strong{color:var(--ink)}
@media(max-width:960px){
  .passhtb .ib-head{grid-template-columns:1fr}
  .passhtb .ib .bk-body{padding:18px 16px 24px}
  .passhtb .ib .bk-head{padding-left:20px}
  .passhtb .ib-map{max-height:52vh}
}
@media(max-width:600px){
  .passhtb .ib-help{padding:18px}
  .passhtb .ib-help .btn.bk-help{width:100%}
  .passhtb .ib .bk-course{flex-direction:column}
  .passhtb .ib .bk-course span{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
}
@media print{.passhtb .ib-section{display:none}}
/* Fenêtre de réservation en deux étapes (1.7.0) : choix de la session, puis coordonnées dans la même fenêtre.
   Reprend la présentation du module intra (encart d'aide, champs, case d'accord) ; la carte montre toute la métropole. */
.passhtb .bk-pin-label{font-size:10px;font-weight:700;stroke-width:3px}
.passhtb .bk-pin-badge text{font-size:10.5px}
.passhtb .bk-region.is-active{fill:color-mix(in srgb,var(--navy) 34%,#fff);stroke:var(--navy);stroke-width:1.2}
.passhtb .bk-hint strong{color:var(--ink)}
.passhtb .bk-step{display:flex;flex-direction:column;gap:10px}
.passhtb .bk-step[hidden],.passhtb .bk-done[hidden],.passhtb .bk-split[hidden],.passhtb .booking .bk-field[hidden]{display:none}
.passhtb .bk-step .bk-submit{order:0;min-height:50px}
.passhtb .booking.is-step2 .bk-main{grid-template-columns:minmax(0,1fr) 390px}
.passhtb .bk-chosen{padding:16px 18px;border-radius:calc(var(--r) * 7 / 9);background:var(--navy);color:var(--passhtb-on-primary)}
.passhtb .bk-chosen-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.passhtb .bk-chosen-head p{margin:0;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--yellow)}
.passhtb .bk-change{padding:4px 12px;border:1px solid color-mix(in srgb,var(--passhtb-on-primary) 30%,transparent);border-radius:999px;background:transparent;color:var(--passhtb-on-primary);font:inherit;font-size:12.5px;font-weight:650;cursor:pointer;transition:background .2s}
.passhtb .bk-change:hover{background:color-mix(in srgb,var(--passhtb-on-primary) 10%,transparent)}
.passhtb .bk-change:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}
.passhtb .bk-chosen-course{max-width:none;margin:0 0 10px;font-size:19px;font-weight:650;letter-spacing:-.02em;color:var(--passhtb-on-primary)}
.passhtb .bk-chosen-mixed{max-width:none;margin:-4px 0 10px;font-size:12.5px;color:var(--yellow)}
.passhtb .bk-chosen-mixed[hidden]{display:none}
.passhtb .bk-chosen dl{display:grid;gap:8px;margin:0;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--passhtb-on-primary) 18%,transparent)}
.passhtb .bk-chosen dl div{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:baseline}
.passhtb .bk-chosen dt{font-size:12px;color:var(--on-dark)}
.passhtb .bk-chosen dd{margin:0;font-size:14px;font-weight:600;color:var(--passhtb-on-primary)}
.passhtb .bk-chosen dd::first-letter{text-transform:uppercase}
.passhtb .bk-split{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.passhtb .bk-qty{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}
.passhtb .bk-qty-total{display:flex;flex-direction:column;align-items:flex-end;max-width:none;margin:0 0 6px;line-height:1.25}
.passhtb .bk-qty-total span{font-size:12px;color:var(--muted)}
.passhtb .bk-qty-total strong{font-size:19px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}
.passhtb .bk-rq .bk-tip,.passhtb .bk-rq .bk-warn{margin:0!important}
.passhtb .bk-rq-title{max-width:none;margin:6px 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:15px;font-weight:700;color:var(--navy);outline:none}
.passhtb .bk-rq-grid{display:grid;grid-template-columns:82px minmax(0,1fr) minmax(0,1fr);gap:10px}
.passhtb .bk-rq-full{grid-column:1/-1}
.passhtb .bk-rq .bk-field{min-width:0}
.passhtb .bk-rq .req{margin-left:2px;color:var(--yellow);font-weight:800}
.passhtb .bk-rq .rq-optional{font-weight:500;color:var(--muted)}
.passhtb .bk-rq .bk-field input:not([type=checkbox]),.passhtb .bk-rq textarea{width:100%;min-height:46px;padding:10px 14px;border:1px solid var(--line-strong);border-radius:calc(var(--r) * 2 / 3);background:var(--paper);color:var(--ink);font:inherit;font-size:15px;box-shadow:none}
.passhtb .bk-rq .bk-field select{padding-right:30px;background-position:right 10px center}
.passhtb .bk-rq textarea{min-height:0;margin-top:8px;resize:vertical}
.passhtb .bk-rq .bk-field input:focus,.passhtb .bk-rq textarea:focus{border-color:var(--navy);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--navy) 12%,transparent)}
.passhtb .bk-rq [aria-invalid=true]{border-color:var(--red)!important}
.passhtb .bk-ferr{max-width:none;margin:5px 0 0;font-size:12px;font-weight:600;color:var(--red)}
.passhtb .bk-ferr:empty{display:none}
.passhtb .bk-rq-more,.passhtb .bk-rq-more:last-child{border:0;margin:0;padding:0}
.passhtb .bk-rq-more summary{display:inline-flex;gap:6px;padding:4px 0;font-size:13.5px;font-weight:650;color:var(--navy);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.passhtb .bk-rq-more summary span{font-weight:500;color:var(--muted);text-decoration:none}
.passhtb .bk-rq .bk-field label.checkline{display:flex;align-items:flex-start;gap:12px;margin:0;font-size:12.5px;font-weight:500;letter-spacing:0;line-height:1.6;color:var(--navy);cursor:pointer}
.passhtb .bk-rq .checkline input{-webkit-appearance:none;appearance:none;display:grid;place-content:center;flex:none;width:20px;height:20px;margin:1px 0 0;padding:0;border:1px solid var(--navy);border-radius:5px;background:var(--white);cursor:pointer}
.passhtb .bk-rq .checkline input::before{content:"";width:11.7px;height:11.7px;background:var(--yellow);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);transform:scale(0);transition:transform .15s}
.passhtb .bk-rq .checkline input:checked{background:var(--navy)}
.passhtb .bk-rq .checkline input:checked::before{transform:scale(1)}
.passhtb .bk-rq .checkline input:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.passhtb .bk-rq .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.passhtb .bk-rq .bk-submit:disabled{cursor:wait;opacity:.75}
.passhtb .bk-done{padding:20px;border-radius:calc(var(--r) * 7 / 9);background:color-mix(in srgb,var(--green) 12%,#fff);color:var(--green);font-size:14.5px;line-height:1.6;outline:none}
.passhtb .bk-done strong{display:block;font-size:17px}
.passhtb .bk-done p{max-width:none;margin:8px 0 0}
.passhtb .bk-done .btn{margin-top:16px}
@media(max-width:960px){
  .passhtb .booking.is-step2 .bk-main{grid-template-columns:1fr}
  .passhtb .booking.is-step2 .bk-views,.passhtb .booking.is-step2 .bk-hint{display:none}
  .passhtb .booking.is-step2 .bk-map{max-height:24vh}
  .passhtb .booking .ib-left{display:contents}
  .passhtb .booking .ib-help{order:3}
}
@media(max-width:600px){
  .passhtb .booking .bk-course{flex-direction:column}
  .passhtb .booking .bk-course span{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
}
/* Croix de fermeture sur fond plus clair ; grand écran : fenêtre élargie, tout tient sans défiler (1.7.2). La carte suit
   la hauteur de l'écran, l'encart d'aide passe en deux colonnes, et les coordonnées se placent à côté de la session. */
.passhtb .bk-close{flex-shrink:0;padding:0;border:0;background:color-mix(in srgb,var(--passhtb-on-primary) 16%,transparent)}
.passhtb .bk-close:hover{background:color-mix(in srgb,var(--passhtb-on-primary) 28%,transparent)}
.passhtb .bk-rq-a,.passhtb .bk-rq-b{display:flex;flex-direction:column;gap:10px;min-width:0}
@media(min-width:1200px){
  .passhtb .booking .bk-intro{gap:10px 20px;margin-bottom:16px}
  .passhtb .booking .bk-stage{min-height:0}
  .passhtb .booking .bk-map{max-height:clamp(260px,calc(100dvh - 510px),540px)}
  .passhtb .booking .ib-left{gap:14px}
  .passhtb .booking .ib-help{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:20px;padding:16px 20px}
  .passhtb .booking .ib-help-list{padding:0 0 0 20px;border-top:0;border-left:1px solid var(--line)}
  .passhtb .booking.booking.is-step2 .bk-main{grid-template-columns:minmax(0,1fr) 760px}
  .passhtb .booking.is-step2 .bk-map{max-height:clamp(240px,calc(100dvh - 330px),560px)}
  .passhtb .booking.is-step2 .bk-panel>.ib-help{margin-top:6px;padding:14px 20px}
  .passhtb .booking.is-step2 .bk-panel>.ib-help .bk-help{display:none} /* le numéro reste cliquable */
  .passhtb .booking .bk-chosen{padding:14px 16px}
  .passhtb .booking .bk-chosen-course{margin-bottom:6px}
  .passhtb .booking .bk-rq-mail{grid-column:1/3}
  .passhtb .booking .bk-rq-tel{grid-column:3}
  .passhtb .booking .bk-rq:not([hidden]){display:grid;grid-template-columns:330px minmax(0,1fr);gap:0 24px;align-items:start}
  .passhtb .booking .bk-rq .bk-rq-title{margin-top:0;padding-top:0;border-top:0}
}
@media(min-width:1200px) and (max-height:820px){
  .passhtb .booking{max-height:calc(100dvh - 16px)}
  .passhtb .booking .bk-head{padding-top:9px;padding-bottom:9px}
  .passhtb .booking .bk-body{padding:14px 24px 16px}
  .passhtb .booking .bk-intro{margin-bottom:10px}
  .passhtb .booking .bk-course span{padding:7px 16px}
}
