/* StudioBooking — page de réservation. Sortie de book-app.html le 08/10/2026 (fichier mis en cache). */
    @font-face{font-family:'Inter';src:url('/fonts/inter-var.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
        *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    :root{
      --primary:#3ecf8e;--primary-dark:#24b47e;
      --bg:#1c1c1c;--bg2:rgba(255,255,255,0.04);--bg3:rgba(255,255,255,0.06);--bg4:rgba(255,255,255,0.09);
      --white:#FFFFFF;--dim:rgba(255,255,255,0.6);--dim2:rgba(255,255,255,0.35);
      --border:rgba(255,255,255,0.08);--border2:rgba(255,255,255,0.15);
      --F:'Inter',system-ui,-apple-system,sans-serif;--r:12px;--trans:0.25s cubic-bezier(0.4,0,0.2,1);
      --glow:0 0 80px rgba(0,0,0,0.30);
      --shadow-card:0 20px 60px -20px rgba(0,0,0,0.70),0 1px 0 rgba(255,255,255,0.06) inset;
    }
    [data-theme="light"]{
      --bg:#ECEDF2;--bg2:#F5F5F8;--bg3:#E5E6EB;--bg4:#DDDEE5;
      --white:#0A0A0F;--dim:rgba(10,10,15,0.65);--dim2:rgba(10,10,15,0.86);
      --border:rgba(10,10,15,0.08);--border2:rgba(10,10,15,0.16);
    }
    [data-theme="light"] body{background:#ECEDF2 !important;color:#0A0A0F !important}
    [data-theme="light"] .topbar{background:rgba(255,255,255,0.92) !important;border-bottom-color:rgba(10,10,15,0.08) !important}
    [data-theme="light"] #admin-bar{background:rgba(62,207,142,0.10) !important;border-color:rgba(62,207,142,0.25) !important;color:#0A0A0F !important}
    [data-theme="light"] input,[data-theme="light"] select,[data-theme="light"] textarea{background:#fff !important;color:#0A0A0F !important;border-color:rgba(10,10,15,0.16) !important}
    [data-theme="light"] .booking-card,[data-theme="light"] .sk-topbar{background:#FFFFFF !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important;border:1px solid rgba(10,10,15,0.10) !important;box-shadow:0 4px 32px rgba(0,0,0,0.08),0 1px 0 rgba(255,255,255,0.8) inset !important}
    [data-theme="light"] .studio-img{background:#F4F4F6 !important}
    [data-theme="light"] .step-pill{background:#ECEDF5 !important;color:rgba(10,10,15,0.50) !important;border-color:rgba(10,10,15,0.12) !important;font-weight:500 !important}
    [data-theme="light"] .step-pill.active{background:linear-gradient(135deg,#3ecf8e,#24b47e) !important;color:#fff !important;border-color:transparent !important;box-shadow:0 8px 24px -6px rgba(0,0,0,0.30) !important}
    [data-theme="light"] .step-pill.done{background:rgba(34,197,94,0.12) !important;color:#15803d !important;border-color:rgba(34,197,94,0.22) !important}
    [data-theme="light"] .fc,[data-theme="light"] .dur-opt,[data-theme="light"] .type-opt,[data-theme="light"] .slot,[data-theme="light"] #stripe-card-el{background:#F5F6FA !important;border:1px solid rgba(10,10,15,0.16) !important;color:#0A0A0F !important}
    [data-theme="light"] .dur-opt:hover,[data-theme="light"] .type-opt:hover{background:#ECEDF7 !important;border-color:rgba(62,207,142,0.3) !important}
    [data-theme="light"] .dur-opt.active,[data-theme="light"] .type-opt.active{background:linear-gradient(135deg,#3ecf8e,#24b47e) !important;color:#fff !important;border-color:transparent !important;box-shadow:0 8px 24px -8px rgba(0,0,0,0.30) !important}
    [data-theme="light"] .slot.selected{background:linear-gradient(135deg,var(--primary),var(--primary-dark)) !important;color:#fff !important;border-color:transparent !important;box-shadow:0 8px 20px -6px rgba(0,0,0,0.30) !important}
    [data-theme="light"] .fc::placeholder{color:rgba(10,10,15,0.36) !important}
    [data-theme="light"] .recap{background:#F4F4F6 !important}
    [data-theme="light"] .recap-row{border-color:rgba(10,10,15,0.06) !important}
    [data-theme="light"] .tag{background:#EBEBEF !important;color:rgba(10,10,15,0.78) !important;border-color:rgba(10,10,15,0.1) !important}
    [data-theme="light"] .btn-select,[data-theme="light"] .cal-btn{background:rgba(62,207,142,0.07) !important;border-color:rgba(62,207,142,0.28) !important;color:#3ecf8e !important;font-weight:500 !important}
    [data-theme="light"] .studio-card:hover .btn-select,[data-theme="light"] .studio-card.selected .btn-select{background:#3ecf8e !important;color:#fff !important;border-color:#3ecf8e !important;box-shadow:0 8px 24px -6px rgba(0,0,0,0.30) !important}
    [data-theme="light"] .cal-day:hover:not(.disabled):not(.empty){background:#F4F4F6 !important}
    [data-theme="light"] .btn-back{color:rgba(10,10,15,0.82) !important}
    [data-theme="light"] .btn-back:hover{color:#0A0A0F !important}
    [data-theme="light"] .hero p,[data-theme="light"] .dur-price,[data-theme="light"] .type-label,[data-theme="light"] .rl,[data-theme="light"] .deposit-note,[data-theme="light"] .fl{color:rgba(10,10,15,0.82) !important}
    [data-theme="light"] .hero-meta,[data-theme="light"] .cal-header{color:rgba(10,10,15,0.86) !important}
    [data-theme="light"] .sec-title-sub{color:rgba(10,10,15,0.78) !important}
    [data-theme="light"] #book-banners-wrap{background:transparent !important}
    [data-theme="light"] #theme-toggle{background:#F4F4F6 !important;border-color:rgba(10,10,15,0.16) !important;color:#0A0A0F !important}
    html{scroll-behavior:smooth;overflow-x:hidden}
    body{font-family:var(--F);background:var(--bg);color:var(--white);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%;max-width:100vw;position:relative}
    /* Aurora background — halo violet unique */
    body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 70% 55% at 18% 8%,rgba(62,207,142,0.22),transparent 60%),radial-gradient(ellipse 50% 40% at 84% 6%,rgba(62,207,142,0.13),transparent 55%),radial-gradient(ellipse 65% 50% at 50% 102%,rgba(62,207,142,0.16),transparent 55%);animation:auroraPulse 22s ease-in-out infinite alternate;filter:blur(45px)}
    body > *{position:relative;z-index:1}
    @keyframes auroraPulse{0%{opacity:0.85;transform:scale(1) rotate(0deg)}50%{opacity:1;transform:scale(1.08) rotate(2deg)}100%{opacity:0.9;transform:scale(1.04) rotate(-1deg)}}
    [data-theme="light"] body::before{opacity:0.38 !important}
    body.has-bg-image{background-size:cover !important;background-position:center center !important;background-attachment:scroll !important;background-repeat:no-repeat !important}
    body.has-bg-image::before{opacity:0 !important;animation:none !important}
    /* ─── MULTI-THEMES ─────────────────────────────────────────────────── */
    [data-theme="veri"]{--primary:#3ecf8e;--primary-dark:#C4526B}
    [data-theme="veri"] body{background:#0C0A08 !important}
    [data-theme="veri"] body::before{background:
      radial-gradient(ellipse 100% 80% at 8% 5%,rgba(30,43,74,0.70),transparent 55%),
      radial-gradient(ellipse 80% 65% at 92% 12%,rgba(74,26,46,0.48),transparent 55%),
      radial-gradient(ellipse 70% 60% at 75% 88%,rgba(26,58,40,0.40),transparent 55%),
      radial-gradient(ellipse 60% 55% at 5% 82%,rgba(58,32,16,0.34),transparent 55%),
      radial-gradient(ellipse 90% 70% at 50% 108%,rgba(56,16,69,0.28),transparent 55%) !important}
    [data-theme="midnight"]{--primary:#818CF8;--primary-dark:#6366F1}
    [data-theme="midnight"] body{background:#050508 !important}
    [data-theme="midnight"] body::before{background:
      radial-gradient(ellipse 100% 80% at 10% 0%,rgba(99,102,241,0.44),transparent 55%),
      radial-gradient(ellipse 80% 70% at 92% 10%,rgba(129,140,248,0.26),transparent 55%),
      radial-gradient(ellipse 90% 70% at 50% 110%,rgba(67,56,202,0.28),transparent 55%) !important}
    [data-theme="ocean"]{--primary:#0EA5E9;--primary-dark:#0284C7}
    [data-theme="ocean"] body{background:#02080F !important}
    [data-theme="ocean"] body::before{background:
      radial-gradient(ellipse 100% 80% at 10% 0%,rgba(14,165,233,0.48),transparent 55%),
      radial-gradient(ellipse 80% 70% at 92% 10%,rgba(6,182,212,0.32),transparent 55%),
      radial-gradient(ellipse 90% 70% at 50% 110%,rgba(2,132,199,0.26),transparent 55%) !important}
    [data-theme="forest"]{--primary:#22C55E;--primary-dark:#16A34A}
    [data-theme="forest"] body{background:#030A05 !important}
    [data-theme="forest"] body::before{background:
      radial-gradient(ellipse 100% 80% at 10% 0%,rgba(34,197,94,0.44),transparent 55%),
      radial-gradient(ellipse 80% 70% at 92% 10%,rgba(16,185,129,0.30),transparent 55%),
      radial-gradient(ellipse 90% 70% at 50% 110%,rgba(22,163,74,0.26),transparent 55%) !important}
    [data-theme="sunset"]{--primary:#F97316;--primary-dark:#EA580C}
    [data-theme="sunset"] body{background:#0A0400 !important}
    [data-theme="sunset"] body::before{background:
      radial-gradient(ellipse 100% 80% at 10% 0%,rgba(249,115,22,0.48),transparent 55%),
      radial-gradient(ellipse 80% 70% at 92% 10%,rgba(239,68,68,0.32),transparent 55%),
      radial-gradient(ellipse 90% 70% at 50% 110%,rgba(234,88,12,0.26),transparent 55%) !important}
    [data-theme="galaxy"]{--primary:#A855F7;--primary-dark:#9333EA}
    [data-theme="galaxy"] body{background:#04010A !important}
    [data-theme="galaxy"] body::before{background:
      radial-gradient(ellipse 100% 80% at 10% 0%,rgba(168,85,247,0.48),transparent 55%),
      radial-gradient(ellipse 80% 70% at 92% 10%,rgba(236,72,153,0.32),transparent 55%),
      radial-gradient(ellipse 90% 70% at 50% 110%,rgba(147,51,234,0.28),transparent 55%) !important}
    @keyframes fadeInDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
    /* ── LIGHT MODE — visibilité complète ──────────────────────────────── */
    [data-theme="light"] .hero-badge{background:rgba(62,207,142,0.16) !important;border-color:rgba(62,207,142,0.45) !important;color:#0a7d4f !important}
    [data-theme="light"] .hero-meta-item{background:rgba(10,10,15,0.05) !important;border-color:rgba(10,10,15,0.16) !important;color:rgba(10,10,15,0.82) !important}
    /* Studio cards light mode — glassmorphism coloré transparent */
    [data-theme="light"] .studio-card{color:#0A0A0F !important;background:rgba(255,255,255,0.96) !important;backdrop-filter:blur(28px) saturate(180%) !important;-webkit-backdrop-filter:blur(28px) saturate(180%) !important;border:1px solid rgba(10,10,15,0.08) !important;box-shadow:0 8px 32px rgba(0,0,0,0.08),0 1px 0 rgba(255,255,255,1) inset !important}
    [data-theme="light"] .studio-card::before{opacity:0 !important}
    [data-theme="light"] .studio-card::after{opacity:0 !important}
    [data-theme="light"] .studio-card:hover{background:rgba(255,255,255,0.94) !important;box-shadow:0 12px 40px rgba(0,0,0,0.12),0 1px 0 rgba(255,255,255,1) inset !important}
    [data-theme="light"] .studio-name{color:#0A0A0F !important}
    [data-theme="light"] .studio-desc,[data-theme="light"] .studio-equip{color:rgba(10,10,15,0.60) !important}
    [data-theme="light"] .btn-select{background:rgba(10,10,15,0.06) !important;border-color:rgba(10,10,15,0.15) !important;color:#0A0A0F !important}
    [data-theme="light"] .studio-card:hover .btn-select,[data-theme="light"] .studio-card.selected .btn-select{background:var(--primary) !important;color:#fff !important}
    [data-theme="light"] .step-pill.done{background:rgba(34,197,94,0.14) !important;color:#15803d !important;border-color:rgba(34,197,94,0.2) !important}
    [data-theme="light"] .dur-opt.selected,[data-theme="light"] .type-opt.selected{color:#fff !important}
    [data-theme="light"] .deposit-note{background:rgba(10,10,15,0.04) !important;border:1px solid rgba(10,10,15,0.10) !important;color:rgba(10,10,15,0.65) !important}
    [data-theme="light"] .approval-note{background:rgba(245,158,11,0.07) !important;border-color:rgba(245,158,11,0.22) !important;color:rgba(10,10,15,0.75) !important}
    [data-theme="light"] .approval-note strong{color:#B45309 !important}
    [data-theme="light"] .admin-bar-subtitle{color:rgba(10,10,15,0.78) !important}
    [data-theme="light"] #admin-bar span[style*="a89fff"],[data-theme="light"] #admin-bar a{color:#121212 !important;background:#3ecf8e !important;border-color:#3ecf8e !important}
    [data-theme="light"] .db-badge-ok{background:rgba(34,197,94,0.1) !important;color:#15803d !important}
    [data-theme="light"] .db-badge-wait{background:rgba(245,158,11,0.1) !important;color:#B45309 !important}
    [data-theme="light"] .sk{background:#E2E2E8 !important}
    [data-theme="light"] .sk::after{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.6) 50%,transparent 100%) !important}
    [data-theme="light"] .cal-day.selected{background:var(--primary) !important;color:#fff !important}
    [data-theme="light"] .cal-day.today{border-color:rgba(62,207,142,0.3) !important;color:#3ecf8e !important}
    [data-theme="light"] .recap{color:#0A0A0F !important}
    [data-theme="light"] .stripe-msg{color:rgba(10,10,15,0.74) !important}
    [data-theme="light"] .success-icon{filter:none !important}
    [data-theme="light"] #stripe-card-el{background:#fff !important;border-color:rgba(10,10,15,0.16) !important}
    /* Hero h1 — gradient blanc → gradient sombre en thème clair */
    [data-theme="light"] .hero h1{background:linear-gradient(180deg,#0A0A0F 60%,rgba(10,10,15,0.88)) !important;-webkit-background-clip:text !important;background-clip:text !important;-webkit-text-fill-color:transparent !important}
    /* EV-CARD — base dark (override inline styles JS) */
    .ev-card{position:relative;border:none !important;border-radius:12px !important;color:#fff !important;background:linear-gradient(145deg,#24b47e 0%,#1c1c1c 100%) !important;box-shadow:0 20px 60px -20px rgba(58,82,212,0.50),0 1px 0 rgba(255,255,255,0.08) inset;overflow:hidden}
    #events-grid .ev-card:nth-child(6n+2){background:linear-gradient(145deg,#E87AB8 0%,#C040A0 100%) !important;box-shadow:0 20px 60px -20px rgba(232,122,184,0.50),0 1px 0 rgba(255,255,255,0.08) inset !important}
    #events-grid .ev-card:nth-child(6n+3){background:linear-gradient(145deg,rgba(12,18,28,0.96) 0%,rgba(5,8,14,0.99) 100%) !important;border:1px solid var(--border2) !important;backdrop-filter:blur(20px) !important;-webkit-backdrop-filter:blur(20px) !important}
    #events-grid .ev-card:nth-child(6n+4){background:linear-gradient(145deg,#E06038 0%,#BE2E18 100%) !important;box-shadow:0 20px 60px -20px rgba(224,96,56,0.50),0 1px 0 rgba(255,255,255,0.08) inset !important}
    #events-grid .ev-card:nth-child(6n+5){background:linear-gradient(145deg,#3A8ED4 0%,#1C4E88 100%) !important;box-shadow:0 20px 60px -20px rgba(58,142,212,0.50),0 1px 0 rgba(255,255,255,0.08) inset !important}
    #events-grid .ev-card:nth-child(6n+6){background:linear-gradient(145deg,#2EA870 0%,#145E38 100%) !important;box-shadow:0 20px 60px -20px rgba(46,168,112,0.50),0 1px 0 rgba(255,255,255,0.08) inset !important}
    .ev-card:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 28px 70px -16px rgba(0,0,0,0.45),0 1px 0 rgba(255,255,255,0.12) inset !important}
    /* Veri Health App palette — nth-child couleurs */
    #events-grid .ev-card:nth-child(6n+1){background:linear-gradient(145deg,#1E2B4A 0%,#0D1525 100%) !important;border-color:rgba(90,120,220,0.35) !important;box-shadow:0 20px 60px -20px rgba(30,43,74,0.6)}
    #events-grid .ev-card:nth-child(6n+2){background:linear-gradient(145deg,#4A1A2E 0%,#220A15 100%) !important;border-color:rgba(200,80,118,0.35) !important;box-shadow:0 20px 60px -20px rgba(74,26,46,0.6)}
    #events-grid .ev-card:nth-child(6n+3){background:linear-gradient(145deg,#1A3A28 0%,#0A1E12 100%) !important;border-color:rgba(55,148,95,0.35) !important;box-shadow:0 20px 60px -20px rgba(26,58,40,0.6)}
    #events-grid .ev-card:nth-child(6n+4){background:linear-gradient(145deg,#3A2010 0%,#1C0E06 100%) !important;border-color:rgba(210,118,50,0.35) !important;box-shadow:0 20px 60px -20px rgba(58,32,16,0.6)}
    #events-grid .ev-card:nth-child(6n+5){background:linear-gradient(145deg,#381045 0%,#1A0822 100%) !important;border-color:rgba(160,75,220,0.35) !important;box-shadow:0 20px 60px -20px rgba(56,16,69,0.6)}
    #events-grid .ev-card:nth-child(6n+6){background:linear-gradient(145deg,#402218 0%,#200E0A 100%) !important;border-color:rgba(220,95,50,0.35) !important;box-shadow:0 20px 60px -20px rgba(64,34,24,0.6)}
    .ev-tag{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,0.15) !important;color:rgba(255,255,255,0.85) !important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:5px 10px;border-radius:8px;font-size:12px;font-weight:500}
    .ev-btn{background:rgba(255,255,255,0.92) !important;color:#0A0A0F !important;border:none;padding:11px 22px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;box-shadow:0 6px 20px -4px rgba(0,0,0,0.3);transition:transform 0.2s}
    .ev-btn:hover{transform:scale(1.04);background:#fff !important}
    /* EV-CARD + STUDIO-CARD — light mode glass transparent */
    [data-theme="light"] #events-grid .ev-card{background:rgba(255,255,255,0.96) !important;backdrop-filter:blur(28px) saturate(180%) !important;-webkit-backdrop-filter:blur(28px) saturate(180%) !important;border:1px solid rgba(10,10,15,0.08) !important;box-shadow:0 8px 32px rgba(0,0,0,0.08),0 1px 0 rgba(255,255,255,1) inset !important}
    [data-theme="light"] #events-grid .ev-card:hover{background:rgba(255,255,255,0.94) !important;box-shadow:0 12px 40px rgba(0,0,0,0.12),0 1px 0 rgba(255,255,255,1) inset !important}
    [data-theme="light"] .ev-card{color:#0A0A0F !important}
    [data-theme="light"] *{font-family:'Inter',system-ui,-apple-system,sans-serif !important}
    [data-theme="light"] .stat-num,[data-theme="light"] .studio-price,[data-theme="light"] .ev-title{font-weight:500 !important;letter-spacing:-0.03em !important}
    [data-theme="light"] .ev-card *{color:#0A0A0F !important}
    [data-theme="light"] .ev-tag{background:rgba(10,10,15,0.07) !important;color:rgba(10,10,15,0.65) !important}
    [data-theme="light"] .ev-btn{background:var(--primary) !important;color:#fff !important}
    a{color:inherit;text-decoration:none} button{cursor:pointer;font-family:var(--F)}
    input,select,textarea{font-family:var(--F)}

    /* ADMIN BAR */
    #admin-bar{display:none;position:sticky;top:8px;z-index:200;background:rgba(62,207,142,0.14);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(62,207,142,0.3);border-radius:12px;margin:0 16px;padding:8px 16px;align-items:center;gap:12px;font-size:12px}
    #admin-bar.show{display:flex}

    /* SKELETON LOADER */
    #loader{position:fixed;inset:0;background:var(--bg);z-index:999;overflow-y:auto}
    #loader.hidden{opacity:0;pointer-events:none;transition:opacity 0.4s}
    .sk{background:var(--bg3);border-radius:12px;position:relative;overflow:hidden}
    .sk::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.04) 50%,transparent 100%);animation:skshimmer 1.4s infinite}
    @keyframes skshimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
    .sk-topbar{height:60px;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px}
    .sk-hero{padding:64px 24px 48px;text-align:center;max-width:600px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:16px}
    .sk-studios{padding:0 24px 40px;max-width:1060px;margin:0 auto}
    .sk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:24px}

    /* NAV */
    .topbar{position:sticky;top:0;z-index:100;background:rgba(9,9,11,0.6);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--border);padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between}
    .topbar-logo{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:500;letter-spacing:-0.3px}
    .topbar-logo img{height:28px;width:auto;border-radius:12px}
    .btn-reserve{padding:9px 18px;border-radius:8px;font-size:13px;font-weight:500;border:none;transition:var(--trans);box-shadow:0 6px 20px -6px rgba(0,0,0,0.30)}
    .btn-reserve:hover{transform:translateY(-1px);box-shadow:0 10px 28px -6px rgba(0,0,0,0.30)}

    /* HERO */
    .hero{padding:80px 24px 56px;text-align:center;max-width:800px;margin:0 auto}
    .hero-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:0.8px;margin-bottom:24px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(62,207,142,0.12);border:1px solid rgba(62,207,142,0.3);color:#3ecf8e}
    .hero h1{font-size:clamp(36px,5.5vw,64px);font-weight:500;letter-spacing:-2px;line-height:1.05;margin-bottom:14px;background:linear-gradient(180deg,#fff 60%,rgba(255,255,255,0.7));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
    .hero p{font-size:21px;color:var(--dim);max-width:520px;margin:0 auto 32px;line-height:1.5}
    .hero-meta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;font-size:13px;color:var(--dim)}
    .hero-meta-item{display:flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;background:rgba(255,255,255,0.04);border:1px solid var(--border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}

    /* STUDIOS GRID */
    .studios-section{padding:0 24px 64px;max-width:1060px;margin:0 auto}
    /* 06/10 : Réserver en une phrase */
    /* Réserver en une phrase — 06/10 : cartes aérées (les règles des boutons du formulaire ne touchent plus les cartes) */
    .sbp-phrase{--sbp-ia:linear-gradient(120deg,#A855F7 0%,#6366F1 38%,#3B82F6 68%,#22D3EE 100%);margin:0 0 36px;padding:24px;border-radius:18px;background:var(--bg2);border:1px solid var(--border2)}
    .sbp-phrase h2{font-size:18px;font-weight:600;letter-spacing:-.01em;margin:0 0 6px;display:flex;align-items:center;gap:9px;color:var(--white)}
    .sbp-phrase h2 .etoile{background:var(--sbp-ia);-webkit-background-clip:text;background-clip:text;color:transparent}
    .sbp-phrase p.aide{font-size:13.5px;line-height:1.5;color:var(--dim);margin:0 0 18px}
    .sbp-phrase form{display:flex;gap:10px;align-items:stretch}
    .sbp-phrase input{flex:1;min-width:0;font:inherit;font-size:15px;color:var(--white);background:var(--bg);border:1px solid var(--border2);border-radius:14px;padding:14px 16px}
    .sbp-phrase input:focus{outline:2px solid #8B5CF6;outline-offset:1px}
    .sbp-phrase form button{font:inherit;font-size:14.5px;font-weight:600;border-radius:14px;border:1px solid var(--border2);background:var(--bg3);color:var(--white);padding:0 16px;cursor:pointer;min-height:50px;display:inline-flex;align-items:center;justify-content:center}
    .sbp-phrase form button.go{background:var(--sbp-ia);background-size:180% 100%;background-position:0 0;border:0;color:#fff;padding:0 22px;box-shadow:0 10px 26px -12px rgba(99,102,241,.75);transition:background-position .5s ease,transform .15s}
    @media (hover:hover){.sbp-phrase form button.go:hover{background-position:100% 0}}
    .sbp-phrase form button.go:active,.sbp-prop:active .cta{transform:scale(.97)}
    .sbp-phrase form button:disabled{opacity:.55;cursor:wait}
    .sbp-phrase form button.micro{width:50px;padding:0}
    /* Micro en écoute : dégradé IA + halo qui suit le volume de la voix (--niv de 0 à 1, mis à jour ~20 fois/s) */
    .sbp-phrase form button.micro.on{border-color:transparent;color:#fff;background:var(--sbp-ia);box-shadow:0 0 0 calc(3px + var(--niv,0) * 14px) rgba(139,92,246,.25),0 0 calc(10px + var(--niv,0) * 26px) rgba(99,102,241,.55);transition:box-shadow .08s linear}
    .sbp-phrase form button.micro:disabled{opacity:.6}
    .sbp-phrase .compris{font-size:13px;line-height:1.55;color:var(--dim);background:var(--bg3);border-radius:12px;padding:10px 14px;margin:18px 0 0}
    .sbp-phrase .compris b{font-weight:600;color:var(--white);margin-right:6px}
    .sbp-phrase .vide{font-size:14px;line-height:1.55;color:var(--dim);margin:14px 0 0}
    .sbp-props{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:16px}
    .sbp-prop{display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:18px 20px;border-radius:16px;border:1px solid var(--border2);background:var(--bg3);color:var(--white);cursor:pointer;font:inherit;line-height:1.35;transition:border-color .2s,transform .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent}
    .sbp-prop .haut{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
    .sbp-prop .sbp-type{text-transform:none;font-size:12px;font-weight:600;letter-spacing:.02em;color:#C4B5FD;background:rgba(139,92,246,.14);border:1px solid rgba(139,92,246,.32);border-radius:999px;padding:4px 10px}
    .sbp-prop .q{font-size:13px;color:var(--dim)}
    .sbp-prop .h{font-size:24px;font-weight:600;letter-spacing:-.02em;margin:8px 0 4px;font-variant-numeric:tabular-nums}
    .sbp-prop .s{font-size:14px;color:var(--dim)}
    .sbp-prop .pied{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border2)}
    .sbp-prop .p{font-size:16px;font-weight:600;color:var(--white)}
    .sbp-prop .cta{font-size:13.5px;font-weight:600;color:#fff;background:var(--sbp-ia);background-size:180% 100%;border-radius:999px;padding:8px 16px;white-space:nowrap;box-shadow:0 6px 18px -8px rgba(99,102,241,.7);transition:background-position .5s ease,transform .15s}
    @media (hover:hover){.sbp-prop:hover .cta{background-position:100% 0}}
    /* Cartes « en chargement » pendant la transcription / la recherche */
    .sbp-squelette{height:176px;border-radius:16px;border:1px solid var(--border2);background:linear-gradient(100deg,var(--bg3) 30%,rgba(139,92,246,.16) 50%,var(--bg3) 70%);background-size:220% 100%;animation:sbpBrille 1.3s linear infinite}
    @keyframes sbpBrille{from{background-position:120% 0}to{background-position:-120% 0}}
    @media (prefers-reduced-motion:reduce){.sbp-squelette{animation:none}}
    @media (hover:hover){.sbp-prop:hover{border-color:#8B5CF6;transform:translateY(-2px);box-shadow:0 10px 30px -12px rgba(0,0,0,.45)}}
    .sbp-prop:focus-visible{outline:2px solid #8B5CF6;outline-offset:2px}
    .sbp-prop.choisie{border-color:#8B5CF6;box-shadow:0 0 0 1px #8B5CF6 inset}
    /* Thème clair : la couleur de carte du studio (--bg2, posée en style en ligne) est sombre → surfaces claires explicites */
    [data-theme="light"] .sbp-phrase{background:#FFFFFF !important;border-color:rgba(10,10,15,0.10) !important;box-shadow:0 4px 24px rgba(0,0,0,0.06)}
    [data-theme="light"] .sbp-prop{background:#F7F7FA !important;border-color:rgba(10,10,15,0.10) !important}
    [data-theme="light"] .sbp-phrase .compris{background:#F1F2F5}
    [data-theme="light"] .sbp-prop .sbp-type{color:#6D28D9;background:rgba(139,92,246,0.10);border-color:rgba(109,40,217,0.22)}
    [data-theme="light"] .sbp-squelette{background:linear-gradient(100deg,#EEF0F4 30%,#E6E0FB 50%,#EEF0F4 70%);background-size:220% 100%;border-color:rgba(10,10,15,0.08)}
    @media (max-width:560px){.sbp-phrase{padding:20px 18px}.sbp-phrase form{flex-wrap:wrap}.sbp-phrase input{flex-basis:100%}.sbp-phrase form button.go{flex:1}.sbp-props{grid-template-columns:1fr;gap:12px}.sbp-prop{padding:18px}}
    .studios-title{font-size:24px;font-weight:500;margin-bottom:6px}
    .studios-sub{font-size:16px;color:var(--dim);margin-bottom:24px}
    .studios-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}

    /* Studio cards — Veri Health palette */
    /* VERI HEALTH — studio-cards */
    .studio-card{position:relative;background:linear-gradient(145deg,#24b47e 0%,#1c1c1c 100%);border:none;border-radius:12px;overflow:hidden;cursor:pointer;transition:var(--trans);box-shadow:0 20px 60px -20px rgba(58,82,212,0.55),0 1px 0 rgba(255,255,255,0.08) inset}
    .studios-grid .studio-card:nth-child(2){background:linear-gradient(145deg,#E87AB8 0%,#C040A0 100%);box-shadow:0 20px 60px -20px rgba(232,122,184,0.50),0 1px 0 rgba(255,255,255,0.08) inset}
    .studios-grid .studio-card:nth-child(2)::before{background:radial-gradient(ellipse 55% 55% at 80% 80%,rgba(255,220,240,0.32),transparent 65%)}
    .studios-grid .studio-card:nth-child(3){background:linear-gradient(145deg,#E06038 0%,#BE2E18 100%);box-shadow:0 20px 60px -20px rgba(224,96,56,0.50),0 1px 0 rgba(255,255,255,0.08) inset}
    .studios-grid .studio-card:nth-child(3)::before{background:radial-gradient(ellipse 55% 55% at 68% 68%,rgba(60,100,255,0.38),transparent 62%)}
    .studios-grid .studio-card:nth-child(4){background:linear-gradient(145deg,#2EA870 0%,#145E38 100%);box-shadow:0 20px 60px -20px rgba(46,168,112,0.50),0 1px 0 rgba(255,255,255,0.08) inset}
    .studios-grid .studio-card:nth-child(4)::before{background:radial-gradient(ellipse 55% 55% at 80% 80%,rgba(80,240,160,0.30),transparent 65%)}
    .studio-card::before{content:'';position:absolute;top:-30%;left:-10%;width:120%;height:70%;background:radial-gradient(ellipse 55% 55% at 80% 80%,rgba(120,160,255,0.30),transparent 65%);pointer-events:none;filter:blur(35px);transition:var(--trans)}
    .studio-card::after{display:none}
    .studio-card:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 32px 80px -20px rgba(0,0,0,0.45),0 1px 0 rgba(255,255,255,0.12) inset}
    .studio-card:hover::before{opacity:1.4;transform:scale(1.2)}
    .studio-card.selected{border-color:#3ecf8e;box-shadow:0 0 0 2px #3ecf8e,0 30px 80px -20px rgba(0,0,0,0.30)}
    .studio-card > *{position:relative;z-index:1}
    .studio-card .btn-select{background:#3ecf8e !important;color:#121212 !important;border:none !important;font-weight:500;border-radius:8px;box-shadow:0 8px 20px -6px rgba(0,0,0,0.30)}
    .studio-card .btn-select:hover{transform:scale(1.02);box-shadow:0 12px 28px -6px rgba(0,0,0,0.30)}
    .studio-img{width:100%;height:200px;object-fit:cover;background:rgba(62,207,142,0.06);display:flex;align-items:center;justify-content:center;font-size:48px;border-radius:0}
    .studio-body{padding:24px 22px 22px}
    .studio-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;gap:10px}
    .studio-name{font-size:30px;font-weight:500;letter-spacing:-0.8px;line-height:1.1}
    .studio-price-badge{font-size:13px;font-weight:500;padding:5px 12px;border-radius:8px;background:rgba(62,207,142,0.2);color:var(--primary);border:1px solid rgba(62,207,142,0.3);white-space:nowrap}
    .studio-desc{font-size:15px;color:var(--dim);margin-bottom:14px;line-height:1.5}
    .studio-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
    .tag{font-size:10px;font-weight:500;background:rgba(255,255,255,0.06);border:1px solid var(--border2);color:var(--dim);padding:4px 10px;border-radius:8px;text-transform:uppercase;letter-spacing:0.5px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
    .studio-equip{font-size:12px;color:var(--dim2);line-height:1.7}
    .btn-select{width:100%;margin-top:16px;padding:12px;border-radius:8px;font-size:14px;font-weight:500;border:1px solid var(--border2);background:rgba(255,255,255,0.05);color:var(--white);transition:var(--trans);letter-spacing:-0.2px}
    .studio-card:hover .btn-select,.studio-card.selected .btn-select{color:#fff}

    /* BOOKING FORM */
    .booking-wrap{max-width:680px;margin:0 auto;padding:0 24px 80px}
    .booking-card{background:linear-gradient(180deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02));backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--border2);border-radius:12px;padding:36px;box-shadow:var(--shadow-card)}

    /* Steps — pills avec glow sur active */
    .steps-nav{display:flex;gap:6px;margin-bottom:32px}
    .step-pill{flex:1;padding:10px 6px;border-radius:12px;text-align:center;font-size:12px;font-weight:500;background:rgba(255,255,255,0.05);color:var(--dim2);transition:var(--trans);cursor:default;border:1px solid var(--border)}
    .step-pill.active{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:0 8px 24px -6px rgba(0,0,0,0.30);border-color:transparent}
    .step-pill.done{background:rgba(34,197,94,0.12);color:#22C55E;border-color:rgba(34,197,94,0.25)}
    .step-pill .snum{display:block;font-size:17px;font-weight:500;margin-bottom:2px}

    /* Form controls — plus arrondis avec glassmorphism léger */
    .fg{margin-bottom:18px}
    .fl{display:block;font-size:12px;font-weight:500;color:var(--dim);margin-bottom:7px;text-transform:uppercase;letter-spacing:0.4px}
    .fc{width:100%;padding:13px 16px;background:rgba(255,255,255,0.04);border:1px solid var(--border2);border-radius:12px;color:var(--white);font-size:16px;transition:var(--trans);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
    .fc:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(62,207,142,0.15)}
    .fc::placeholder{color:rgba(255,255,255,0.32)}
    [data-theme="light"] .fc-inline::placeholder{color:rgba(10,10,15,0.36) !important}
    .frow{display:grid;grid-template-columns:1fr 1fr;gap:14px}
    .sb-profil{border:1px solid var(--border2,rgba(255,255,255,.12));border-radius:12px;padding:12px 14px}
    .sb-profil summary{cursor:pointer;font-size:14px;font-weight:500;list-style-position:inside}
    .sb-profil summary span{color:var(--dim);font-weight:400}
    .sb-profil[open] summary{margin-bottom:8px}
    .sb-profil-txt{font-size:12.5px;color:var(--dim);margin:0 0 12px;line-height:1.5}
    .sb-profil-n{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
    .sb-profil-n label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--dim)}

    /* Duration opts — pills */
    .dur-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
    @media (min-width:600px){.dur-grid.heures{grid-template-columns:repeat(4,1fr)}}
    .dur-opt{padding:14px 8px;border-radius:12px;text-align:center;background:rgba(255,255,255,0.04);border:1px solid var(--border2);cursor:pointer;transition:var(--trans)}
    .dur-opt:hover{border-color:var(--primary);transform:translateY(-1px)}
    .dur-opt.active{background:linear-gradient(135deg,rgba(62,207,142,0.18),rgba(62,207,142,0.06));border-color:var(--primary);box-shadow:0 8px 24px -8px rgba(0,0,0,0.30)}
    /* 27/09/2026 : options payantes (cases à cocher en cartes, même DA que les durées) */
    .opt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
    .sb-opt{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:12px;background:rgba(255,255,255,0.04);border:1px solid var(--border2);cursor:pointer;transition:var(--trans);text-align:left}
    .sb-opt:hover{border-color:var(--primary);transform:translateY(-1px)}
    .sb-opt:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
    .sb-opt.active{background:linear-gradient(135deg,rgba(62,207,142,0.18),rgba(62,207,142,0.06));border-color:var(--primary)}
    .sb-opt-case{width:20px;height:20px;border-radius:6px;border:1.5px solid rgba(255,255,255,.35);flex-shrink:0;display:grid;place-items:center;transition:var(--trans)}
    .sb-opt.active .sb-opt-case{background:var(--primary);border-color:var(--primary)}
    .sb-opt.active .sb-opt-case::after{content:'';width:10px;height:6px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
    .sb-opt-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
    .sb-opt-t b{font-weight:500;font-size:14px}
    .sb-opt-t small{font-size:12px;opacity:.7;line-height:1.35}
    .sb-opt-p{font-size:13px;font-weight:600;white-space:nowrap;color:var(--primary)}
    [data-theme="light"] .sb-opt{background:#F5F6FA;border-color:rgba(10,10,15,.16);color:#0A0A0F}
    [data-theme="light"] .sb-opt-case{border-color:rgba(10,10,15,.3)}
    .eng-opt{padding:18px 10px;border-radius:12px;text-align:center;background:rgba(255,255,255,0.04);border:1px solid var(--border2);cursor:pointer;transition:var(--trans);display:flex;flex-direction:column;align-items:center;gap:5px}
    .eng-opt:hover{border-color:var(--primary);transform:translateY(-1px)}
    .eng-opt.active{background:linear-gradient(135deg,rgba(62,207,142,0.18),rgba(62,207,142,0.06));border-color:var(--primary);box-shadow:0 8px 24px -8px rgba(0,0,0,0.30)}
    [data-theme="light"] .eng-opt{background:#fff !important;border-color:rgba(10,10,15,0.16) !important;color:#0A0A0F !important}
    [data-theme="light"] .eng-opt.active{background:linear-gradient(135deg,rgba(62,207,142,0.12),rgba(62,207,142,0.04)) !important;color:#0A0A0F !important}
    .dur-label{display:block;font-size:13px;font-weight:500}
    .dur-price{display:block;font-size:11px;color:var(--dim);margin-top:2px}

    /* Type opts — pills */
    .type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
    .type-opt{padding:14px 8px;border-radius:12px;text-align:center;background:rgba(255,255,255,0.04);border:1px solid var(--border2);cursor:pointer;transition:var(--trans)}
    .type-opt:hover{border-color:var(--primary);transform:translateY(-1px)}
    .type-opt.active{background:linear-gradient(135deg,rgba(62,207,142,0.18),rgba(62,207,142,0.06));border-color:var(--primary);box-shadow:0 8px 24px -8px rgba(0,0,0,0.30)}
    .type-icon{display:flex;align-items:center;justify-content:center;margin-bottom:8px}
    .type-icon svg{width:26px;height:26px;opacity:.85}
    .type-opt.selected .type-icon svg,.type-opt:hover .type-icon svg{opacity:1}
    .type-label{font-size:11px;font-weight:500;color:var(--dim)}

    /* Calendar */
    .cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
    .cal-month{font-size:15px;font-weight:500}
    .cal-btn{background:var(--bg3);border:1px solid var(--border2);color:var(--white);width:30px;height:30px;border-radius:12px;font-size:13px;display:flex;align-items:center;justify-content:center}
    .cal-btn:hover{background:var(--bg4)}
    .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
    .cal-header{text-align:center;font-size:10px;font-weight:500;color:var(--dim2);text-transform:uppercase;padding:4px 0}
    .cal-day{aspect-ratio:1;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;border:1px solid transparent;transition:var(--trans);cursor:pointer;position:relative}
    .cal-day:hover:not(.disabled):not(.empty){background:var(--bg3);border-color:var(--border2)}
    .cal-day.today{border-color:rgba(62,207,142,0.3);color:var(--primary)}
    .cal-day.selected{color:#fff;font-weight:500}
    .cal-day.disabled{opacity:0.2;cursor:not-allowed}
    .cal-day.empty{cursor:default}
    .cal-day.has-booking::after{content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--primary);opacity:0.7}
    .cal-day.fully-booked{opacity:0.35;cursor:not-allowed}
    .cal-day.fully-booked::after{background:#EF4444}

    /* Slots — pills */
    .slots-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}
    .slot{padding:10px 4px;border-radius:12px;text-align:center;background:rgba(255,255,255,0.04);border:1px solid var(--border2);font-size:13px;font-weight:500;cursor:pointer;transition:var(--trans)}
    .slot:hover{border-color:var(--primary);transform:translateY(-1px)}
    .slot.selected{color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border-color:transparent;box-shadow:0 8px 20px -6px rgba(0,0,0,0.30)}
    .slot.taken{opacity:0.2;cursor:not-allowed;text-decoration:line-through}

    /* Recap */
    .recap{background:linear-gradient(180deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02));border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px}
    .recap-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:15px}
    .recap-row:last-child{border:none}
    .recap-row.total{font-weight:500;font-size:16px;padding-top:14px}
    .rl{color:var(--dim)}
    .rv{font-weight:500}

    /* Deposit note */
    .deposit-note{border-radius:12px;padding:10px 14px;font-size:12px;color:var(--dim);margin-bottom:18px}

    /* Stripe card */
    #stripe-card-el{background:var(--bg);border:1px solid var(--border2);border-radius:12px;padding:13px;margin-bottom:6px}
    #card-errs{color:#EF4444;font-size:12px;min-height:18px;margin-bottom:12px}

    /* Btns — pills avec glow */
    .btn-next{width:100%;padding:17px;border-radius:8px;font-size:18px;font-weight:500;border:none;color:#fff;background:linear-gradient(135deg,var(--primary),var(--primary-dark));transition:var(--trans);display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;box-shadow:0 12px 32px -8px rgba(0,0,0,0.30),0 1px 0 rgba(255,255,255,0.2) inset;letter-spacing:-0.2px}
    .btn-next:hover{transform:translateY(-2px);box-shadow:0 18px 42px -10px rgba(0,0,0,0.30),0 1px 0 rgba(255,255,255,0.25) inset}
    .btn-next:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none}
    .btn-back{background:none;border:none;color:var(--dim);font-size:13px;padding:8px 0;display:flex;align-items:center;gap:6px;margin-bottom:20px}
    .btn-back:hover{color:var(--white)}

    /* Success */
    .success-wrap{text-align:center;padding:48px 20px}
    .success-icon{font-size:56px;margin-bottom:20px}
    .success-wrap h2{font-size:26px;font-weight:500;margin-bottom:10px}
    .success-wrap p{font-size:14px;color:var(--dim);line-height:1.65}
    .ref-box{font-size:22px;font-weight:500;letter-spacing:3px;padding:14px 24px;border-radius:12px;display:inline-block;margin:20px 0}

    /* Toast */
    .toast-c{position:fixed;bottom:20px;right:20px;z-index:999;display:flex;flex-direction:column;gap:6px}
    .toast{background:#16171A;color:#F4F5F6;border:1px solid var(--border2);border-radius:12px;padding:11px 15px;font-size:13px;font-weight:500;box-shadow:0 8px 24px rgba(0,0,0,0.4);display:flex;align-items:center;gap:8px;max-width:300px;animation:slideIn 0.3s ease}
    .toast.success{border-left:3px solid #22C55E}
    .toast.error{border-left:3px solid #EF4444}
    @keyframes slideIn{from{transform:translateX(80px);opacity:0}to{transform:translateX(0);opacity:1}}

    /* Responsive */
    @media(max-width:1024px){
      .booking-card{padding:28px 24px}
    }
    @media(max-width:768px){
      body{overflow-x:hidden;padding-bottom:env(safe-area-inset-bottom,0)}
      .hero{padding:40px 16px 32px}
      .hero h1{font-size:clamp(22px,6vw,36px);letter-spacing:-0.5px}
      .hero p{font-size:14px}
      .hero-meta{gap:12px;font-size:12px;flex-wrap:wrap}
      .studios-section{padding:0 16px 48px}
      .studios-grid{grid-template-columns:1fr;gap:14px}
      .booking-wrap{padding:0 16px 60px}
      .booking-card{padding:20px 16px;border-radius:12px}
      .steps-nav{gap:3px;overflow-x:auto;-webkit-overflow-scrolling:touch}
      .step-pill{font-size:9px;padding:6px 4px;flex-shrink:0;min-width:60px}
      .step-pill .snum{font-size:13px}
      .frow{grid-template-columns:1fr;gap:10px}
      .type-grid{grid-template-columns:repeat(2,1fr)}
      .dur-grid{grid-template-columns:repeat(3,1fr)}
      .slots-grid{grid-template-columns:repeat(3,1fr);gap:6px}
      .btn-next{font-size:15px;padding:14px;min-height:48px}
      .sk-hero{padding:48px 16px 32px}
      .sk-studios{padding:0 16px 32px}
      .sk-grid{grid-template-columns:1fr}
      /* Anti-zoom iOS sur inputs */
      input,select,textarea{font-size:16px !important}
      /* Calendrier responsive */
      .cal-grid{gap:2px;font-size:12px}
      .cal-day{padding:6px 0;min-height:40px}
      /* Admin bar minimaliste */
      #admin-bar{padding:8px 12px;flex-wrap:wrap;font-size:11px}
      #admin-bar > span:nth-child(2){display:none}
      #admin-back-link{font-size:11px;padding:5px 10px}
      /* Toast container */
      #toast-container{right:10px !important;left:10px !important}
      .toast{max-width:none;width:100%}
      /* Boutons radio/select tactiles */
      .type-card,.dur-card,.slot-btn{min-height:44px}
    }
    @media(max-width:400px){
      .type-grid{grid-template-columns:repeat(2,1fr)}
      .slots-grid{grid-template-columns:repeat(2,1fr)}
      .dur-grid{grid-template-columns:repeat(2,1fr)}
      .booking-card{padding:16px 12px}
      .hero{padding:32px 14px 24px}
      .hero h1{font-size:22px}
      .step-pill{min-width:48px;font-size:11px}
    }
    @media(max-width:320px){
      .slots-grid{grid-template-columns:1fr}
      .type-grid{grid-template-columns:1fr}
      .dur-grid{grid-template-columns:repeat(2,1fr)}
      .booking-card{padding:14px 10px}
      .step-pill{min-width:40px;font-size:10px;padding:5px 3px}
      .step-pill .snum{font-size:11px}
    }
    /* Grille date+heure — responsive */
    .datetime-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
    @media(max-width:600px){
      .datetime-grid{grid-template-columns:1fr;gap:16px}
    }

    /* ═══════════════════════════════════════════════════════════════════
       RESPONSIVE RENFORCÉ — Tablette & Mobile
       ═══════════════════════════════════════════════════════════════════ */

    /* ── Tablette (600–1024px) ───────────────────────────────────────── */
    @media(min-width:600px) and (max-width:1024px){
      .booking-wrap{max-width:100%;padding:0 32px 80px}
      .booking-card{padding:28px 28px}
      .studios-section{padding:0 32px 56px}
      .hero{padding:60px 32px 44px}
      .slots-grid{grid-template-columns:repeat(4,1fr)}
      .dur-grid{grid-template-columns:repeat(4,1fr)}
      .type-grid{grid-template-columns:repeat(3,1fr)}
      .topbar{padding:0 20px}
      .steps-nav{gap:4px}
      .step-pill{font-size:11px;padding:9px 5px}
    }

    /* ── Mobile large (480–767px) ────────────────────────────────────── */
    @media(max-width:767px){
      /* Topbar */
      .topbar{padding:0 14px;height:56px}
      .topbar-logo{font-size:15px;gap:7px}
      .topbar-logo img{height:24px}
      .btn-reserve{font-size:12px;padding:7px 14px}

      /* Hero */
      .hero{padding:36px 16px 28px}
      .hero p{font-size:15px;margin-bottom:24px}
      .hero-meta{gap:8px}
      .hero-meta-item{font-size:11px;padding:5px 10px}

      /* Booking card */
      .booking-wrap{padding:0 12px 80px}
      .booking-card{border-radius:12px}

      /* Steps — scroll horizontal sans scrollbar visible */
      .steps-nav{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
      .steps-nav::-webkit-scrollbar{display:none}
      .step-pill{scroll-snap-align:start;flex-shrink:0;min-width:56px;font-size:10px;padding:7px 5px}
      .step-pill .snum{font-size:14px}

      /* Touch targets minimum 44px */
      .dur-opt,.type-opt,.slot,.btn-select,.cal-btn{min-height:44px}
      .dur-opt,.type-opt{display:flex;flex-direction:column;align-items:center;justify-content:center}
      .cal-btn{min-width:36px;width:36px;height:36px}

      /* Calendrier — jours plus grands pour le touch */
      .cal-day{min-height:36px;border-radius:8px}
      .cal-header{font-size:9px}

      /* Slots */
      .slots-grid{grid-template-columns:repeat(3,1fr);gap:5px}
      .slot{font-size:12px;padding:10px 2px;border-radius:12px}

      /* Recap */
      .recap-row{font-size:13px}
      .recap-row.total{font-size:15px}

      /* Btn next — hauteur explicite + safe-area */
      .btn-next{font-size:16px;padding:15px;min-height:52px;padding-bottom:calc(15px + env(safe-area-inset-bottom, 0px))}

      /* Btn back */
      .btn-back{font-size:13px;padding:10px 0;min-height:44px}

      /* Success */
      .success-wrap{padding:32px 14px}
      .success-wrap h2{font-size:22px}
      .ref-box{font-size:18px;padding:12px 18px}

      /* Toast full-width */
      .toast-c{right:10px;left:10px;bottom:calc(16px + env(safe-area-inset-bottom, 0px))}
      .toast{max-width:100%;width:100%}

      /* Admin bar */
      #admin-bar{margin:6px 10px;padding:7px 12px;font-size:10px;gap:8px}
      #admin-back-link{font-size:10px;padding:4px 8px}
    }

    /* ── Mobile compact (< 400px) ────────────────────────────────────── */
    @media(max-width:399px){
      .booking-card{padding:14px 11px;border-radius:12px}
      .slots-grid{grid-template-columns:repeat(2,1fr)}
      .dur-grid{grid-template-columns:repeat(2,1fr)}
      .type-grid{grid-template-columns:repeat(2,1fr)}
      .step-pill{min-width:44px}
      .hero h1{font-size:20px;letter-spacing:-0.5px}
      .hero p{font-size:14px}
      .studio-name{font-size:24px}
      .studio-body{padding:18px 16px 16px}
    }

    /* ── Très petit (< 320px) ────────────────────────────────────────── */
    @media(max-width:319px){
      .slots-grid{grid-template-columns:repeat(2,1fr)}
      .type-grid{grid-template-columns:1fr}
      .dur-grid{grid-template-columns:repeat(2,1fr)}
      .step-pill{min-width:36px;font-size:9px;padding:5px 2px}
      .booking-card{padding:12px 8px}
    }

    /* ── Landscape mobile ────────────────────────────────────────────── */
    @media(max-width:767px) and (orientation:landscape){
      .hero{padding:20px 16px 16px}
      .hero h1{font-size:clamp(18px,5vw,28px)}
      .hero p{display:none}
      .hero-meta{display:none}
      .booking-card{border-radius:12px}
      .btn-next{min-height:48px;font-size:15px}
    }

    /* ── Fenêtre billetterie (01/10) : centrée seulement si elle tient à l'écran, sinon elle commence en haut et défile ;
       la croix reste toujours visible (en-tête collant) — avant, avec un plan de salle, le haut et la croix étaient inatteignables. */
    #ticket-modal{align-items:flex-start !important;overscroll-behavior:contain}
    #ticket-modal > div{margin:auto !important;flex-shrink:0}
    #ticket-modal > div > div:first-child{position:sticky;top:-32px;z-index:5;margin:-32px -28px 24px !important;padding:24px 28px 14px;
      background:rgba(11,13,20,0.97);border-radius:12px 12px 0 0;border-bottom:1px solid rgba(255,255,255,.08)}
    @media(max-width:767px){#ticket-modal > div > div:first-child{top:-20px;margin:-20px -16px 18px !important;padding:16px 16px 12px}}
    /* ── Ticket modal — responsive ───────────────────────────────────── */
    @media(max-width:767px){
      #ticket-modal > div{
        width:calc(100% - 24px) !important;
        max-width:100% !important;
        max-height:92dvh !important;
        overflow-y:auto !important;
        -webkit-overflow-scrolling:touch !important;
        border-radius:12px !important;
        padding:20px 16px !important;
        margin:auto !important;
      }
      #ticket-modal-title{font-size:20px !important}
      #ticket-modal .fc-inline{font-size:16px !important}
      #ticket-pay-btn{min-height:52px;font-size:16px}
    }

    /* ── Performance mobile — réduire blur sur écrans < 480px ───────── */
    @media(max-width:480px){
      .booking-card{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
      .studio-card{backdrop-filter:blur(12px) !important;-webkit-backdrop-filter:blur(12px) !important}
      body::before{filter:blur(25px)}
    }

    /* ── No hover on touch devices ───────────────────────────────────── */
    @media(hover:none) and (pointer:coarse){
      .dur-opt:hover,.type-opt:hover,.slot:hover,.btn-select:hover,
      .studio-card:hover,.ev-card:hover,.btn-next:hover,.btn-reserve:hover{
        transform:none !important;
        box-shadow:inherit !important;
      }
      .dur-opt:hover{border-color:var(--border2) !important}
      .type-opt:hover{border-color:var(--border2) !important}
    }
    /* Modal billetterie — inputs */
    .fc-inline{width:100%;box-sizing:border-box;padding:13px 16px;background:rgba(255,255,255,0.04);border:1px solid var(--border2);border-radius:12px;color:var(--white);font-size:16px;font-family:var(--F);transition:var(--trans);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
    .fc-inline:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(62,207,142,0.15)}
    .fc-inline::placeholder{color:var(--dim2)}
    [data-theme="light"] .fc-inline{background:#fff !important;color:#0A0A0F !important;border-color:rgba(10,10,15,0.16) !important}
    /* ── GLASS CARDS dark mode — override Veri solid colors ────────────── */
    .studio-card,
    .studios-grid .studio-card:nth-child(2),
    .studios-grid .studio-card:nth-child(3),
    .studios-grid .studio-card:nth-child(4){
      background:rgba(255,255,255,0.04) !important;
      backdrop-filter:blur(24px) saturate(150%) !important;
      -webkit-backdrop-filter:blur(24px) saturate(150%) !important;
      border:1px solid var(--border2) !important;
      border-radius:12px !important;
      box-shadow:0 20px 60px -20px rgba(0,0,0,0.55),0 1px 0 rgba(255,255,255,0.06) inset !important;
    }
    .studio-card:hover{
      background:rgba(62,207,142,0.08) !important;
      border-color:rgba(62,207,142,0.3) !important;
      box-shadow:0 24px 70px -16px rgba(0,0,0,0.30),0 1px 0 rgba(255,255,255,0.10) inset !important;
    }
    .studio-card::before{
      background:radial-gradient(ellipse 60% 50% at 80% 85%,rgba(62,207,142,0.18),transparent 65%) !important;
      filter:blur(30px);
    }
    .studios-grid .studio-card:nth-child(2)::before,
    .studios-grid .studio-card:nth-child(3)::before,
    .studios-grid .studio-card:nth-child(4)::before{
      background:radial-gradient(ellipse 60% 50% at 80% 85%,rgba(62,207,142,0.18),transparent 65%) !important;
    }
    /* ev-cards glass */
    .ev-card,
    #events-grid .ev-card:nth-child(6n+1),
    #events-grid .ev-card:nth-child(6n+2),
    #events-grid .ev-card:nth-child(6n+3),
    #events-grid .ev-card:nth-child(6n+4),
    #events-grid .ev-card:nth-child(6n+5),
    #events-grid .ev-card:nth-child(6n+6){
      background:rgba(255,255,255,0.04) !important;
      backdrop-filter:blur(24px) saturate(150%) !important;
      -webkit-backdrop-filter:blur(24px) saturate(150%) !important;
      border:1px solid var(--border2) !important;
      border-radius:12px !important;
      box-shadow:0 20px 60px -20px rgba(0,0,0,0.55),0 1px 0 rgba(255,255,255,0.06) inset !important;
    }
    .ev-card:hover{
      background:rgba(62,207,142,0.08) !important;
      border-color:rgba(62,207,142,0.3) !important;
      box-shadow:0 24px 70px -16px rgba(0,0,0,0.30),0 1px 0 rgba(255,255,255,0.10) inset !important;
    }
    /* ── BOUTONS ────────────────────────────────────────────────────────── */
    .btn-select{
      background:rgba(62,207,142,0.10) !important;
      border:1px solid rgba(62,207,142,0.28) !important;
      color:#fff !important;
      backdrop-filter:blur(12px) !important;
      -webkit-backdrop-filter:blur(12px) !important;
    }
    .studio-card .btn-select{
      background:rgba(62,207,142,0.12) !important;
      border:1px solid rgba(62,207,142,0.3) !important;
      box-shadow:none !important;
    }
    .btn-select:hover,
    .studio-card:hover .btn-select,
    .studio-card.selected .btn-select{
      background:var(--primary) !important;
      border-color:var(--primary) !important;
      box-shadow:0 8px 24px -6px rgba(0,0,0,0.30) !important;
    }
    .cal-btn{
      background:rgba(255,255,255,0.05) !important;
      border:1px solid var(--border2) !important;
      backdrop-filter:blur(12px) !important;
      -webkit-backdrop-filter:blur(12px) !important;
    }
    .hero-badge{
      background:rgba(62,207,142,0.14) !important;
      border:1px solid rgba(62,207,142,0.3) !important;
      color:#3ecf8e !important;
    }
    .hero-meta-item{
      background:rgba(62,207,142,0.06) !important;
      border-color:rgba(62,207,142,0.18) !important;
      backdrop-filter:blur(12px) !important;
    }
    .btn-reserve{
      background:rgba(62,207,142,0.14) !important;
      border:1px solid rgba(62,207,142,0.3) !important;
      backdrop-filter:blur(12px) !important;
    }
    .btn-reserve:hover{
      background:var(--primary) !important;
      box-shadow:0 8px 24px -6px rgba(0,0,0,0.30) !important;
    }
    .btn-next{box-shadow:0 12px 36px -8px rgba(0,0,0,0.30),0 1px 0 rgba(255,255,255,0.20) inset !important}
    .btn-next:not(:disabled):hover{box-shadow:0 18px 48px -8px rgba(0,0,0,0.30),0 1px 0 rgba(255,255,255,0.25) inset !important}
    /* Boutons paiement toujours bleu StudioBooking — indépendant de la couleur tenant */
    #pay-btn,#ticket-pay-btn{background:linear-gradient(135deg,#3ecf8e,#24b47e) !important;box-shadow:0 14px 40px -10px rgba(0,0,0,0.30),0 1px 0 rgba(255,255,255,0.22) inset !important}
    #pay-btn:not(:disabled):hover,#ticket-pay-btn:not(:disabled):hover{background:linear-gradient(135deg,#1A6FFF,#3ecf8e) !important;transform:translateY(-2px);box-shadow:0 20px 50px -10px rgba(0,0,0,0.30),0 1px 0 rgba(255,255,255,0.28) inset !important}
    /* Modale billet — fond solide, inputs et labels lisibles */
    #ticket-modal > div{background:rgba(11,13,20,0.97) !important;border:1px solid rgba(255,255,255,0.15) !important;box-shadow:0 40px 100px -20px rgba(0,0,0,0.85),0 1px 0 rgba(255,255,255,0.10) inset !important}
    #ticket-modal .fl{color:rgba(255,255,255,0.82) !important;font-size:11px !important}
    #ticket-modal .fc-inline{background:rgba(255,255,255,0.08) !important;border:1px solid rgba(255,255,255,0.16) !important;color:#fff !important}
    #ticket-modal .fc-inline:focus{border-color:#3ecf8e !important;background:rgba(62,207,142,0.10) !important;box-shadow:0 0 0 4px rgba(62,207,142,0.18) !important}
    #ticket-modal .fc-inline::placeholder{color:rgba(255,255,255,0.30) !important}
    #ticket-total{color:#3ecf8e !important;-webkit-text-fill-color:#3ecf8e !important}
    #ticket-event-info{background:rgba(62,207,142,0.10) !important;border:1px solid rgba(62,207,142,0.25) !important;color:rgba(255,255,255,0.80) !important}
    #ticket-modal-title{font-size:24px !important;letter-spacing:-0.6px !important}
    #ticket-modal button[data-on-click="closeTicketModal()"]{background:rgba(255,255,255,0.08) !important;border:1px solid rgba(255,255,255,0.14) !important}
    #ticket-modal button[data-on-click="closeTicketModal()"]:hover{background:rgba(255,255,255,0.16) !important}
    .ev-btn{
      background:rgba(255,255,255,0.12) !important;
      backdrop-filter:blur(12px) !important;
      -webkit-backdrop-filter:blur(12px) !important;
      border:1px solid rgba(255,255,255,0.22) !important;
      color:#fff !important;
    }
    .ev-btn:hover{background:rgba(255,255,255,0.22) !important;transform:scale(1.04)}
    .ev-tag{background:rgba(62,207,142,0.18) !important;border:1px solid rgba(62,207,142,0.3) !important;color:#8BB4FF !important}
  
/* base typographique uniforme */
html{font-size:15px}
body{font-size:15px}

strong,b{font-weight:500}

    .btn-select,[data-theme="light"] .btn-select,.studio-card .btn-select{background:#3ecf8e !important;color:#121212 !important;border:1px solid #3ecf8e !important;font-weight:500 !important}
    .btn-select:hover,.studio-card .btn-select:hover{background:#35b87d !important}
    /* barre prévisualisation : arrondi + inset cohérents */
    #admin-bar{margin:8px 16px !important;border-radius:12px !important}

    [data-theme="light"] .dur-price{color:#0A0A0F !important;font-weight:500 !important}

    [data-theme="light"] .studio-price-badge{color:#0A0A0F !important;background:rgba(62,207,142,0.20) !important;border-color:rgba(62,207,142,0.4) !important}

/* ===== Motion premium (book) ===== */
@media (prefers-reduced-motion: no-preference){
  @keyframes sbFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .studio-card{animation:sbFadeUp .4s cubic-bezier(.22,1,.36,1) both}
  .studio-card:nth-child(2){animation-delay:.05s}
  .studio-card:nth-child(3){animation-delay:.1s}
  .studio-card:nth-child(4){animation-delay:.15s}
  .studio-card,.btn-select,.type-card,.day-cell{transition:transform .16s cubic-bezier(.22,1,.36,1),box-shadow .2s ease,border-color .2s ease,background .2s ease}
  .studio-card:hover{transform:translateY(-3px)}
  .btn-select:active,.type-card:active,.day-cell:active{transform:scale(.975)}
}
/* Icônes « pastille » (24/09) : trait fin blanc dans un carré sombre arrondi, comme l'admin */
.type-icon .sb-ic{box-sizing:content-box;width:24px !important;height:24px !important;padding:12px;border-radius:14px;color:#fff;opacity:1 !important;
  background:linear-gradient(150deg,#3B3B40 0%,#2A2A2E 48%,#1E1E22 100%);
  box-shadow:0 6px 14px -6px rgba(0,0,0,.55),0 2px 4px -2px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.10),inset 0 -1px 0 rgba(0,0,0,.4)}
    /* Barre de prévisualisation (admin) : même DA que la barre du haut du dashboard (24/09) */
    #admin-bar.show:not(#_){display:flex !important;align-items:center;gap:14px;position:sticky;top:12px;z-index:300;margin:12px 16px !important;padding:8px 8px 8px 16px !important;
      border-radius:18px !important;background:rgba(10,11,13,0.78) !important;border:1px solid rgba(255,255,255,0.075) !important;
      backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:0 18px 40px -24px rgba(0,0,0,0.8);
      font-family:var(--F) !important;font-size:14px !important;color:#F4F4F5 !important}
    #admin-bar .ab-logo{display:inline-flex;align-items:center;gap:10px;color:#F4F4F5;text-decoration:none;font-size:15px;font-weight:500;letter-spacing:-0.01em;white-space:nowrap}
    #admin-bar .ab-logo img{width:26px;height:26px;border-radius:8px;display:block}
    #admin-bar .ab-sep{width:1px;height:22px;background:rgba(255,255,255,0.12)}
    #admin-bar .ab-chip{font-size:11px;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:rgba(244,244,245,0.62);padding:5px 10px;border-radius:8px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.075);white-space:nowrap}
    #admin-bar .admin-bar-subtitle{flex:1;color:rgba(244,244,245,0.62) !important;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    #admin-bar .ab-btn:not(#_){display:inline-flex;align-items:center;height:44px;padding:0 20px;border-radius:999px;background:#FFFFFF !important;color:#08090B !important;
      font:500 14px/1 var(--F);text-decoration:none;white-space:nowrap;border:none !important;box-shadow:none;transition:transform .15s}
    #admin-bar .ab-btn:hover{transform:translateY(-1px)}
    [data-theme="light"] #admin-bar.show:not(#_){background:rgba(255,255,255,0.72) !important;border-color:rgba(10,10,15,0.08) !important;color:#0A0A0F !important;box-shadow:0 18px 40px -26px rgba(0,0,0,0.35)}
    [data-theme="light"] #admin-bar .ab-logo:not(#_){color:#0A0A0F !important;background:none !important;border:none !important}
    [data-theme="light"] #admin-bar .ab-sep{background:rgba(10,10,15,0.12)}
    [data-theme="light"] #admin-bar .ab-chip{color:rgba(10,10,15,0.7);background:#F1F1F3;border-color:rgba(10,10,15,0.08)}
    [data-theme="light"] #admin-bar .admin-bar-subtitle{color:rgba(10,10,15,0.7) !important}
    [data-theme="light"] #admin-bar .ab-btn:not(#_){background:#0A0A0A !important;color:#FFFFFF !important}
    @media (max-width:640px){#admin-bar.show:not(#_){margin:8px 10px !important;gap:10px;padding:6px 6px 6px 12px !important}
      #admin-bar .ab-logo{font-size:0;gap:0}#admin-bar .admin-bar-subtitle{display:none}#admin-bar .ab-btn:not(#_){height:38px;padding:0 14px;font-size:13px;margin-left:auto}}
    /* Cartes des studios : étiquettes, prix et bouton avec la DA du dashboard (pilules Inter) — 24/09 */
    .studio-tags:not(#_){gap:8px;margin-bottom:16px}
    .studio-card .tag:not(#_){display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:999px;
      font:500 13px/1 var(--F);letter-spacing:-0.005em;text-transform:none;white-space:nowrap;
      background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);color:rgba(244,244,245,0.88);backdrop-filter:none;-webkit-backdrop-filter:none}
    .studio-card .tag svg:not(#_){width:16px !important;height:16px !important;margin:0 !important;opacity:.85;vertical-align:0 !important}
    [data-theme="light"] .studio-card .tag:not(#_){background:#F2F2F4 !important;border:1px solid rgba(10,10,15,0.08) !important;color:#0A0A0F !important}
    .studio-card .studio-price-badge:not(#_){display:inline-flex;align-items:center;height:34px;padding:0 14px;border-radius:999px;font:600 13px/1 var(--F)}
    .studio-card .studio-equip:not(#_){font-size:13.5px;line-height:1.6}
    .studio-card .btn-select:not(#_){height:50px;padding:0 22px;margin-top:20px;border-radius:999px;font:500 15px/1 var(--F);letter-spacing:-0.005em}
    /* Barre du haut (logo + Réserver) : flottante, bords arrondis, comme la barre du dashboard — 24/09 */
    header.topbar:not(#_){position:sticky;top:12px;margin:12px 16px 0;border-radius:20px;border:1px solid rgba(255,255,255,0.09);
      box-shadow:0 18px 40px -26px rgba(0,0,0,0.6)}
    [data-theme="light"] header.topbar:not(#_){border:1px solid rgba(10,10,15,0.08) !important;box-shadow:0 18px 40px -28px rgba(0,0,0,0.3)}
    #admin-bar.show ~ header.topbar:not(#_){top:88px}
    /* « clip » masque le débordement horizontal sans casser position:sticky (contrairement à « hidden ») */
    html,body{overflow-x:clip !important;overflow-y:visible !important}
    @media (max-width:640px){header.topbar:not(#_){margin:8px 10px 0;border-radius:18px;top:8px}#admin-bar.show ~ header.topbar:not(#_){top:70px}}
    /* Notifications : toujours lisibles (fond sombre opaque, texte clair), couleur d'état sur l'icône */
    .toast:not(#_){background:#16171A !important;color:#F4F5F6 !important;border:1px solid rgba(255,255,255,0.1) !important;opacity:1}
    .toast.error:not(#_){border-left:3px solid #EF4444 !important}.toast.error .sb-ic{color:#FF6B6B}
    .toast.success:not(#_){border-left:3px solid #3ECF8E !important}.toast.success .sb-ic{color:#3ECF8E}
    /* Champ oublié : signalé en rouge */
    .fc.sb-manque:not(#_){border-color:#EF4444 !important;box-shadow:0 0 0 3px rgba(239,68,68,0.15) !important}

/* Logotype « StudioBooking » : Studio en gras, Booking en normal, collés, même couleur (24/09) */
.sb-wm:not(#_){display:inline-flex;align-items:baseline;letter-spacing:-0.035em !important;white-space:nowrap;color:inherit !important;margin:0 !important}
.sb-wm:not(#_) b{font-weight:800 !important;color:inherit !important;letter-spacing:inherit !important}
.sb-wm:not(#_) i{font-style:normal !important;font-weight:400 !important;color:inherit !important;letter-spacing:inherit !important}
    /* Affiches : affichées en grand et EN ENTIER (jamais recadrées), quel que soit leur format — 24/09 */
    #book-banners-wrap:not(#_){display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 16px 16px !important;background:transparent !important}
    #book-banners-wrap > div:not(#_){width:100% !important;max-width:1180px;margin:0 auto !important;display:flex;justify-content:center;gap:16px;background:transparent !important}
    #book-banners-wrap img:not(#_){width:auto !important;max-width:100% !important;height:auto !important;max-height:88vh !important;object-fit:contain !important;border-radius:22px;display:block;margin:0 auto;box-shadow:0 30px 70px -35px rgba(0,0,0,0.55)}
    #book-banners-wrap > div > div:not(#_){width:auto !important;max-width:100%;flex:0 1 auto;background:transparent !important}
    @media (max-width:680px){#book-banners-wrap:not(#_){padding:6px 10px 12px !important}#book-banners-wrap img:not(#_){max-height:none !important;width:100% !important;border-radius:16px}}
  html{scroll-padding-top:104px}   /* ancres et focus clavier : jamais sous la barre fixe */

/* 08/10/2026 : survol autrefois écrit en onmouseover/onmouseout */
[data-survol="zoom"]:hover{transform:scale(1.08) !important}

/* ══ 15/10/2026 — Page publique (demande du gérant) : les CARTES en BLANC, textes foncés ═════════════════════════
   Vaut pour tous les studios (page personnalisée « sbp » avec photo ou non, thème sombre ou clair). Le fond (photo,
   couleur du studio) et le titre posé dessus ne changent pas ; la couleur principale du studio reste sur les boutons.
   Même jour, 2e demande : les GRANDS panneaux (sections Événements, Studios, Conditions, pied de page) et la barre du
   haut restent en VERRE transparent (style d'origine de sb-page.js) ; seules les cartes posées dessus sont blanches. */
html :is(.booking-card,.sbp-prochain,#m-resume,#sbsem-barre):not(#_):not(#__),
html :is(.studio-card,.ev-card):not(#_):not(#__){
  --sbp-texte:#0A0A0F; --sbp-texte-2:rgba(10,10,15,.68); --sbp-ligne:rgba(10,10,15,.10); --sbp-surface:#F4F5F7;
  --white:#0A0A0F; --dim:rgba(10,10,15,.68); --dim2:rgba(10,10,15,.58);
  --bg:#FFFFFF; --bg2:#FFFFFF; --bg3:#F4F5F7; --bg4:#ECEDF0; --border:rgba(10,10,15,.08); --border2:rgba(10,10,15,.14);
  background:#FFFFFF !important; color:#0A0A0F !important; border:1px solid rgba(10,10,15,.08) !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important; box-shadow:0 18px 44px -26px rgba(10,10,20,.30) !important}
/* Cartes des studios et des événements (posées sur le panneau de verre) : contour net, image sur gris clair */
html :is(.studio-card,.ev-card):not(#_):not(#__){box-shadow:0 1px 2px rgba(16,24,40,.05),0 8px 24px -16px rgba(16,24,40,.22) !important}
html :is(.studio-card,.ev-card):not(#_):not(#__):hover{background:#FFFFFF !important;box-shadow:0 18px 40px -18px rgba(16,24,40,.30) !important}
html :is(.studio-card,.ev-card)::before,html :is(.studio-card,.ev-card)::after{opacity:0 !important}
html .studio-card :is(.studio-img,.studio-card-img):not(#_):not(#__){background:#F2F3F5 !important;color:rgba(10,10,15,.45) !important}
html :is(.studio-card,.ev-card) :is(.studio-name,.ev-title,.ev-name,h3,h4,b,strong):not(#_):not(#__){color:#0A0A0F !important}
html :is(.studio-card,.ev-card) :is(.studio-desc,.studio-equip,.ev-date,.ev-desc,.ev-meta,p,small):not(#_):not(#__){color:rgba(10,10,15,.66) !important}
html :is(.studio-card,.ev-card) :is(.tag,.ev-tag):not(#_):not(#__){background:#F2F3F5 !important;border:1px solid rgba(10,10,15,.10) !important;color:rgba(10,10,15,.78) !important}
html :is(.studio-card,.ev-card) .studio-price-badge:not(#_):not(#__){color:#0A0A0F !important}
/* Fenêtre de réservation : étapes, options, créneaux, jours, récapitulatif sur gris très clair */
html .booking-card :is(.fl,label,.snum,.dur-price,.type-label,.recap-row .rl,.rl,.deposit-note,small,p):not(#_):not(#__){color:rgba(10,10,15,.68) !important}
html .booking-card :is(h2,h3,h4,.dur-label,.rv,.recap-row .rv,.cal-month,.cal-header,strong,b):not(#_):not(#__){color:#0A0A0F !important}
html .booking-card :is(.step-pill,.type-opt,.dur-opt,.eng-opt,.sb-opt,.slot,.cal-day,.cal-btn,.recap,#price-summary > div,.ref-box):not(#_):not(#__){
  background:#F4F5F7 !important;border:1px solid rgba(10,10,15,.10) !important;color:#0A0A0F !important;box-shadow:none !important}
html .booking-card :is(.type-opt,.dur-opt,.eng-opt,.sb-opt,.slot,.cal-day):not(.taken):not(.disabled):not(.empty):not(#_):not(#__):hover{background:#ECEDF0 !important}
html .booking-card :is(.step-pill.active,.type-opt.active,.type-opt.selected,.dur-opt.active,.dur-opt.selected,.eng-opt.active,.sb-opt.active,.slot.selected,.cal-day.selected):not(#_):not(#__){
  background:color-mix(in srgb,var(--primary,#3ECF8E) 18%,#FFFFFF) !important;border-color:var(--primary,#3ECF8E) !important;color:#0A0A0F !important}
html .booking-card .step-pill.done:not(#_):not(#__){background:color-mix(in srgb,var(--primary,#3ECF8E) 10%,#FFFFFF) !important;color:#0A0A0F !important}
html .booking-card .cal-day.empty:not(#_):not(#__){background:transparent !important;border-color:transparent !important}
html .booking-card :is(.slot.taken,.cal-day.disabled,.cal-day.fully-booked):not(#_):not(#__){opacity:.45}
html .booking-card :is(.fc,.fc-inline,input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea):not(#_):not(#__){
  background:#FFFFFF !important;border:1px solid rgba(10,10,15,.16) !important;color:#0A0A0F !important;-webkit-text-fill-color:#0A0A0F !important;color-scheme:light}
html .booking-card :is(input,textarea)::placeholder{color:rgba(10,10,15,.48) !important;-webkit-text-fill-color:rgba(10,10,15,.48) !important}
html .booking-card select option{color:#0A0A0F;background:#FFFFFF}
html .booking-card #stripe-card-el:not(#_):not(#__){background:#FFFFFF !important;border:1px solid rgba(10,10,15,.16) !important}
html .booking-card .btn-back:not(#_):not(#__){color:rgba(10,10,15,.72) !important}
html button[data-on-click="applyPromo()"]:not(#_):not(#__){background:#0A0A0F !important;color:#FFFFFF !important}
/* « Réserver en une phrase » : garde son bloc d'origine (noir sur le thème sombre), demande du gérant du 15/10 */
/* Prochain créneau (en haut) */
html .sbp-prochain :is(.ph):not(#_):not(#__){color:#0A0A0F !important}
html .sbp-prochain :is(.pt,.ps):not(#_):not(#__){color:rgba(10,10,15,.66) !important}
/* Récapitulatif « Votre réservation » (à droite) et barre « Choisissez vos heures » : blancs */
html #m-resume .l:not(#_):not(#__){border-bottom-color:rgba(10,10,15,.08) !important}
html #m-resume :is(h4,.l span:first-child,.a):not(#_):not(#__){color:rgba(10,10,15,.62) !important}
html #sbsem-barre .res span:not(#_):not(#__){color:rgba(10,10,15,.62) !important}
/* Barre du haut en verre : teinte fumée sous un texte blanc (reste lisible quand une carte blanche passe dessous),
   verre clair sous un texte foncé (thème clair du studio) */
html.sbp.sbp-txt-clair .topbar:not(#_):not(#__){background:rgba(16,16,20,.38) !important;border:1px solid rgba(255,255,255,.16) !important;
  -webkit-backdrop-filter:blur(20px) saturate(150%) !important;backdrop-filter:blur(20px) saturate(150%) !important}
html.sbp:not(.sbp-txt-clair) .topbar:not(#_):not(#__){background:rgba(255,255,255,.55) !important;border:1px solid rgba(255,255,255,.6) !important;
  -webkit-backdrop-filter:blur(20px) saturate(150%) !important;backdrop-filter:blur(20px) saturate(150%) !important}
