  :root {
    /* ── CHARTE HUB & CO ── */
    --navy:        #1E2B4A;
    --copper:      #C4714A;
    --sage:        #6B8C7D;
    --amber:       #D4A054;
    --mist:        #8FA8B8;
    --clay:        #B85C42;
    --forest:      #3D5C4E;
    --blush:       #E8D4C8;
    --sand:        #E2C9A8;
    --cream:       #F5EFE6;

    /* ── ALIASES FONCTIONNELS ── */
    --gold:        var(--amber);
    --gold-light:  #E8C890;
    --gold-pale:   #FAF3E6;
    --gold-mid:    #E8C890;
    --dark:        var(--navy);
    --text:        #1E2B4A;
    --text-soft:   #5A6B82;
    --muted:       #8FA8B8;
    --bg:          var(--cream);
    --bg2:         #EDE7DB;
    --bg3:         #FFFFFF;
    --border:      rgba(30,43,74,0.18);
    --border-light:rgba(30,43,74,0.10);
    --shadow:      rgba(30,43,74,0.08);
    --shadow-md:   rgba(30,43,74,0.14);
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  body {
    background: var(--bg);
    color: var(--text);
    font-family: 'Montserrat', sans-serif;
    min-height: 100vh;
    overflow-x: hidden;
  }

  /* ── HEADER ── */
  header {
    background: linear-gradient(135deg, #1E2B4A 0%, #2A3A5C 60%, #1E2B4A 100%);
    padding: 44px 60px 38px;
    position: relative;
    overflow: hidden;
  }
  header::before {
    content:'';
    position:absolute; top:-100px; right:-100px;
    width:500px; height:500px;
    background: radial-gradient(circle, rgba(196,113,74,0.18) 0%, transparent 65%);
    pointer-events:none;
  }
  header::after {
    content:'';
    position:absolute; bottom:-60px; left:20%;
    width:300px; height:300px;
    background: radial-gradient(circle, rgba(143,168,184,0.12) 0%, transparent 70%);
    pointer-events:none;
  }
  .header-inner { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:16px; }
  .header-top-row { display:flex; width:100%; align-items:center; justify-content:space-between; }
  .header-top-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
  .header-center-logo { display:flex; justify-content:center; width:100%; }
  .header-bottom { display:flex; flex-direction:column; align-items:flex-start; width:100%; }
  .header-left { flex:1; min-width:260px; }
  .badge {
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(143,168,184,0.15);
    border:1px solid rgba(143,168,184,0.4);
    color:#8FA8B8;
    font-size:11px; font-weight:600; letter-spacing:2px; text-transform:uppercase;
    padding:6px 16px; border-radius:2px; margin-bottom:18px;
  }
  .badge::before { content:'◆'; font-size:7px; }
  header h1 {
    font-family:'Cormorant Garamond', serif;
    font-size: clamp(28px,4vw,56px);
    font-weight:600; line-height:1.05;
    color:#F5EFE6;
  }
  header h1 span { color:var(--mist); font-style:italic; }
  header p {
    margin-top:14px; color:rgba(245,239,230,0.55);
    font-size:14px; max-width:480px; line-height:1.7;
    font-family:'Montserrat',sans-serif; font-weight:300;
  }
  .stats {
    display:flex; gap:36px; margin-top:30px;
    padding-top:26px; border-top:1px solid rgba(143,168,184,0.2);
  }
  .stat span {
    display:block; font-size:26px; font-weight:700;
    color:var(--mist); font-family:'Montserrat', sans-serif;
  }
  .stat small { font-size:11px; color:rgba(245,239,230,0.4); letter-spacing:.5px; text-transform:uppercase; }
  .header-nav-links {
    display:flex; gap:6px; align-items:center;
  }
  .header-nav-links button {
    background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18);
    color:rgba(245,239,230,.75); font-family:'Montserrat',sans-serif;
    font-size:11px; font-weight:600; padding:6px 13px; border-radius:20px;
    cursor:pointer; transition:all .2s; white-space:nowrap; letter-spacing:.02em;
  }
  .header-nav-links button:hover {
    background:rgba(255,255,255,.16); color:#F5EFE6; border-color:rgba(255,255,255,.35);
  }
  .logo-hubco {
    display:flex; align-items:center; gap:28px;
    font-family:'Montserrat', sans-serif;
  }
  .logo-hubco-icon { flex-shrink:0; }
  .logo-hubco-icon svg { width:140px; height:140px; }
  .logo-hubco-text { display:flex; flex-direction:column; }
  .logo-hubco-name {
    font-size:56px; font-weight:800; letter-spacing:10px;
    color:#F5EFE6; line-height:1;
  }
  .logo-hubco-name .amp { color:var(--mist); }
  .logo-hubco-sep {
    height:1px; background:rgba(143,168,184,0.3);
    margin:8px 0;
  }
  .logo-hubco-sub {
    font-size:18px; font-weight:500; letter-spacing:14px;
    color:var(--mist); opacity:0.8;
  }

  /* ── CATALOGUE TOPBAR ── */
  .catalogue-topbar {
    background: var(--cream);
    border-bottom: 2px solid var(--border-light);
    padding: 0 60px;
    position: sticky; top: 0; z-index: 200;
    box-shadow:0 3px 20px var(--shadow);
  }
  .catalogue-topbar-inner {
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 0; gap:12px;
  }
  .catalogue-topbar-left { display:flex; align-items:center; gap:10px; }
  .btn-open-filters {
    display:inline-flex; align-items:center; gap:8px;
    background:#1E2B4A; color:#F5EFE6; border:none;
    padding:9px 18px; border-radius:6px;
    font-family:'Montserrat',sans-serif; font-size:12px; font-weight:700;
    cursor:pointer; transition:all .2s; position:relative;
  }
  .btn-open-filters:hover { background:#2A3A5C; }
  .filter-count-badge {
    background:#C4714A; color:#fff; font-size:10px; font-weight:800;
    width:18px; height:18px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    line-height:1;
  }
  .filter-count-badge.hidden { display:none; }
  @media(max-width:700px) { .catalogue-topbar { padding:0 16px; } }

  /* ── FILTER DRAWER ── */
  .drawer-overlay {
    position:fixed; inset:0; background:rgba(30,43,74,.45);
    backdrop-filter:blur(3px); z-index:600;
    opacity:0; pointer-events:none; transition:opacity .3s;
  }
  .drawer-overlay.open { opacity:1; pointer-events:all; }
  .filter-drawer {
    position:fixed; top:0; left:0; bottom:0;
    width:340px; max-width:85vw; background:#fff;
    z-index:601; display:flex; flex-direction:column;
    transform:translateX(-100%);
    transition:transform .35s cubic-bezier(.4,0,.2,1);
    box-shadow:8px 0 40px rgba(30,43,74,.18);
    border-radius:0 12px 12px 0;
  }
  .drawer-overlay.open .filter-drawer { transform:translateX(0); }
  .drawer-head {
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 18px 16px; border-bottom:1px solid var(--border-light); flex-shrink:0;
  }
  .drawer-head-title { font-family:'Montserrat',sans-serif; font-size:16px; font-weight:700; color:var(--navy); }
  .drawer-head-actions { display:flex; align-items:center; gap:10px; }
  .btn-drawer-clear {
    background:none; border:none; color:var(--muted); font-family:'Montserrat',sans-serif;
    font-size:11px; font-weight:600; cursor:pointer; transition:color .2s; text-decoration:underline;
  }
  .btn-drawer-clear:hover { color:#E74C3C; }
  .btn-drawer-close {
    background:var(--bg); border:none; color:var(--text-soft);
    width:30px; height:30px; border-radius:6px; cursor:pointer;
    font-size:16px; display:flex; align-items:center; justify-content:center; transition:all .2s;
  }
  .btn-drawer-close:hover { background:var(--bg2); color:var(--navy); }
  .drawer-body { flex:1; overflow-y:auto; padding:18px; }
  .drawer-group { margin-bottom:22px; }
  .drawer-group-title {
    font-size:10px; font-weight:800; color:var(--muted);
    text-transform:uppercase; letter-spacing:1.2px; margin-bottom:10px;
  }
  .drawer-chips { display:flex; flex-wrap:wrap; gap:7px; }
  .drawer-chip {
    background:transparent; border:1.5px solid var(--border);
    color:var(--text-soft); padding:6px 14px; border-radius:30px;
    font-size:11px; font-family:'Montserrat',sans-serif;
    cursor:pointer; transition:all .2s; font-weight:500; white-space:nowrap;
  }
  .drawer-chip:hover { border-color:var(--navy); color:var(--navy); background:rgba(30,43,74,0.04); }
  .drawer-chip.active {
    background:var(--navy); border-color:var(--navy); color:#fff; font-weight:600;
  }
  .drawer-toggle {
    display:flex; align-items:center; justify-content:space-between;
    padding:10px 14px; background:var(--bg); border-radius:8px;
    cursor:pointer; transition:background .2s;
  }
  .drawer-toggle:hover { background:var(--bg2); }
  .drawer-toggle-label { font-size:12px; font-weight:600; color:var(--text); }
  .drawer-toggle-switch {
    width:38px; height:20px; border-radius:10px; background:var(--border);
    position:relative; transition:background .2s; flex-shrink:0;
  }
  .drawer-toggle-switch::after {
    content:''; position:absolute; top:2px; left:2px;
    width:16px; height:16px; border-radius:50%; background:#fff;
    transition:transform .2s; box-shadow:0 1px 3px rgba(0,0,0,.15);
  }
  .drawer-toggle.active .drawer-toggle-switch { background:#1E2B4A; }
  .drawer-toggle.active .drawer-toggle-switch::after { transform:translateX(18px); }
  .drawer-foot {
    padding:14px 18px; border-top:1px solid var(--border-light);
    flex-shrink:0; display:flex; flex-direction:column; gap:8px;
  }
  .drawer-result-count { font-size:12px; color:var(--muted); text-align:center; font-weight:600; }
  .btn-apply-filters {
    width:100%; background:#1E2B4A; color:#F5EFE6; border:none;
    padding:12px; border-radius:8px; font-family:'Montserrat',sans-serif;
    font-size:13px; font-weight:700; cursor:pointer; transition:all .2s;
  }
  .btn-apply-filters:hover { background:#2A3A5C; }

  /* ── CART PANEL (drawer droite) ── */
  .cart-panel {
    position:fixed; top:0; right:0; bottom:0;
    width:380px; max-width:92vw; background:#fff;
    z-index:450; display:flex; flex-direction:column;
    transform:translateX(100%);
    transition:transform .35s cubic-bezier(.4,0,.2,1);
    box-shadow:-8px 0 40px rgba(30,43,74,.18);
  }
  .cart-panel.open { transform:translateX(0); }
  .cart-panel-overlay {
    position:fixed; inset:0; background:rgba(30,43,74,.45);
    z-index:449; opacity:0; pointer-events:none; transition:opacity .3s;
  }
  .cart-panel-overlay.open { opacity:1; pointer-events:all; }
  .cart-panel-head {
    background:linear-gradient(135deg,#1E2B4A 0%,#2A3A5C 100%);
    padding:20px 24px; flex-shrink:0;
    display:flex; align-items:center; justify-content:space-between;
  }
  .cart-panel-head-title { font-family:'Montserrat',sans-serif; font-size:16px; font-weight:700; color:#F5EFE6; display:flex; align-items:center; gap:8px; }
  .cart-panel-head-actions { display:flex; align-items:center; gap:10px; }
  .btn-cart-clear {
    background:none; border:none; color:rgba(245,239,230,.5); font-family:'Montserrat',sans-serif;
    font-size:11px; font-weight:600; cursor:pointer; transition:color .2s; text-decoration:underline;
  }
  .btn-cart-clear:hover { color:#E74C3C; }
  .btn-cart-close {
    background:rgba(245,239,230,.1); border:none; color:rgba(245,239,230,.7);
    width:30px; height:30px; border-radius:6px; cursor:pointer;
    font-size:16px; display:flex; align-items:center; justify-content:center; transition:all .2s;
  }
  .btn-cart-close:hover { background:rgba(143,168,184,.3); color:#fff; }
  .cart-panel-body { flex:1; overflow-y:auto; padding:16px 20px; }
  .cart-item {
    display:flex; align-items:flex-start; gap:12px;
    padding:14px; background:var(--bg); border:1px solid var(--border-light);
    border-radius:10px; margin-bottom:10px;
  }
  .cart-item-info { flex:1; min-width:0; }
  .cart-item-title { font-size:13px; font-weight:600; color:var(--text); line-height:1.4; margin-bottom:4px; }
  .cart-item-meta { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
  .cart-item-family {
    font-size:9px; font-weight:700; padding:2px 7px; border-radius:3px;
    text-transform:uppercase; letter-spacing:.5px;
    background:rgba(30,43,74,.08); color:var(--navy);
  }
  .btn-cart-remove {
    background:none; border:none; color:var(--muted); cursor:pointer;
    font-size:15px; flex-shrink:0; padding:2px; transition:color .2s;
  }
  .btn-cart-remove:hover { color:#E74C3C; }
  .cart-empty { text-align:center; padding:50px 20px; color:var(--muted); }
  .cart-empty span { font-size:40px; display:block; margin-bottom:12px; }
  .cart-panel-foot {
    padding:16px 20px; border-top:1px solid var(--border-light); flex-shrink:0;
  }
  .cart-foot-count { font-size:12px; color:var(--muted); text-align:center; margin-bottom:10px; font-weight:600; }
  .btn-validate-cart {
    width:100%; background:#1E2B4A; color:#F5EFE6; border:none;
    padding:13px; border-radius:8px; font-family:'Montserrat',sans-serif;
    font-size:14px; font-weight:700; cursor:pointer; transition:all .2s;
    display:flex; align-items:center; justify-content:center; gap:8px;
  }
  .btn-validate-cart:hover { background:#2A3A5C; }
  .btn-validate-cart:disabled { background:#c5cedc; cursor:not-allowed; }

  /* Header cart button */
  .btn-header-cart {
    display:inline-flex; align-items:center; gap:6px; position:relative;
    background:rgba(143,168,184,.12); border:1px solid rgba(143,168,184,.3);
    color:#8FA8B8; font-family:'Montserrat',sans-serif; font-size:13px; font-weight:600;
    padding:7px 14px; border-radius:30px; cursor:pointer; transition:all .2s;
  }
  .btn-header-cart:hover { background:rgba(196,113,74,.15); border-color:rgba(196,113,74,.4); color:#C4714A; }
  .header-cart-badge {
    background:#C4714A; color:#fff; font-size:10px; font-weight:800;
    width:18px; height:18px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center; line-height:1;
  }
  .header-cart-badge.hidden { display:none; }

  /* Card add-to-cart button */
  .btn-add-cart {
    display:inline-flex; align-items:center; gap:5px;
    margin-top:10px; padding:6px 14px; border-radius:6px;
    font-size:11px; font-weight:600; cursor:pointer; transition:all .2s;
    border:1.5px solid var(--navy); background:transparent; color:var(--navy);
    font-family:'Montserrat',sans-serif;
  }
  .btn-add-cart:hover { background:var(--navy); color:#fff; }
  .btn-add-cart.in-cart {
    background:var(--sage); border-color:var(--sage); color:#fff;
    cursor:default; pointer-events:none;
  }

  /* Validation modal */
  .validation-choices { display:flex; flex-direction:column; gap:14px; margin-top:16px; }
  .validation-choice {
    display:flex; align-items:center; gap:16px;
    padding:20px; border:2px solid var(--border-light); border-radius:12px;
    cursor:pointer; transition:all .2s; background:#fff;
  }
  .validation-choice:hover { border-color:var(--navy); background:rgba(30,43,74,.03); }
  .validation-choice-icon { font-size:28px; flex-shrink:0; }
  .validation-choice-title { font-size:15px; font-weight:700; color:var(--text); }
  .validation-choice-sub { font-size:12px; color:var(--muted); margin-top:2px; }

  /* Auth gate modal */
  .auth-gate-overlay {
    position:fixed; inset:0; background:rgba(30,43,74,.55); backdrop-filter:blur(5px);
    z-index:8600; display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; transition:opacity .3s; padding:20px;
  }
  .auth-gate-overlay.open { opacity:1; pointer-events:all; }
  .auth-gate-modal {
    background:#fff; border-radius:16px; width:100%; max-width:420px;
    padding:32px; text-align:center;
    box-shadow:0 30px 90px rgba(0,0,0,.25);
  }
  .auth-gate-title { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:700; color:var(--navy); margin-bottom:8px; }
  .auth-gate-sub { font-size:13px; color:var(--muted); margin-bottom:24px; line-height:1.6; }
  .auth-gate-btns { display:flex; flex-direction:column; gap:10px; }
  .auth-gate-btn {
    width:100%; padding:13px; border-radius:8px; font-family:'Montserrat',sans-serif;
    font-size:14px; font-weight:700; cursor:pointer; transition:all .2s;
  }
  .auth-gate-btn.primary { background:#1E2B4A; border:none; color:#F5EFE6; }
  .auth-gate-btn.primary:hover { background:#2A3A5C; }
  .auth-gate-btn.secondary { background:transparent; border:1.5px solid #1E2B4A; color:#1E2B4A; }
  .auth-gate-btn.secondary:hover { background:rgba(30,43,74,.05); }
  .btn-action {
    display:inline-flex; align-items:center; gap:7px;
    padding:8px 18px; border-radius:6px;
    font-size:12px; font-family:'Montserrat', sans-serif;
    font-weight:600; cursor:pointer; transition:all .2s;
    border:1.5px solid transparent; white-space:nowrap;
    letter-spacing:0.3px;
  }
  .btn-agenda { background:rgba(107,140,125,0.1); border-color:var(--sage); color:var(--sage); }
  .btn-agenda:hover { background:var(--sage); color:#fff; box-shadow:0 3px 12px rgba(107,140,125,.3); }
  .btn-cart { background:var(--copper); color:#fff; border-color:var(--copper); }
  .btn-cart:hover { background:#b06040; transform:translateY(-1px); box-shadow:0 4px 14px rgba(196,113,74,.4); }
  .cart-badge {
    background:#fff; color:var(--copper);
    border-radius:50%; width:19px; height:19px;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:11px; font-weight:800; line-height:1;
  }

  /* ── MAIN ── */
  main { padding:48px 60px 120px; max-width:1400px; margin:0 auto; }
  .family-section { margin-bottom:64px; border-top:3px solid var(--border-light); padding-top:32px; }
  .family-section.hidden { display:none !important; }
  .family-header {
    display:flex; align-items:center; gap:16px;
    margin-bottom:22px; padding-bottom:16px;
    border-bottom:2px solid var(--border-light);
  }
  .family-icon {
    width:18px; height:18px; border-radius:50%;
    flex-shrink:0;
    background:rgba(30,43,74,0.15); border:none;
    display:block; font-size:0;
  }
  .family-title { font-family:'Cormorant Garamond', serif; font-size:22px; font-weight:700; color:var(--text); }
  .family-subtitle { font-size:12px; color:var(--muted); margin-top:2px; font-family:'Montserrat',sans-serif; }
  .family-count {
    margin-left:auto; font-size:11px; color:var(--navy);
    background:rgba(30,43,74,0.07); border:1px solid var(--border-light);
    padding:4px 14px; border-radius:20px; font-weight:700; flex-shrink:0;
    letter-spacing:0.5px;
  }
  .cards-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(285px,1fr));
    gap:15px;
  }

  /* ── CARD ── */
  .card {
    background:#fff; border:1.5px solid var(--border-light);
    border-radius:12px; padding:22px 24px;
    cursor:pointer; transition:all .25s cubic-bezier(.4,0,.2,1);
    position:relative; overflow:hidden;
  }
  .card::before {
    content:''; position:absolute; top:0; left:0; right:0;
    height:3px; background:transparent; transition:background .25s;
    border-radius:12px 12px 0 0;
  }
  .card::after {
    content:''; position:absolute; bottom:0; left:0; right:0; height:2px;
    background:#C4714A; transform:scaleX(0); transform-origin:left;
    transition:transform .3s ease;
  }
  .card:hover { border-color:rgba(196,113,74,.3); transform:translateY(-5px); box-shadow:0 16px 40px rgba(30,43,74,.12); }
  .card:hover::after { transform:scaleX(1); }
  .card.selected {
    border-color:var(--navy);
    background:linear-gradient(135deg,#fff 0%,rgba(30,43,74,0.04) 100%);
    box-shadow:0 6px 24px rgba(30,43,74,.12);
  }
  .card.selected::before { background:var(--navy) !important; }
  .card-cb {
    position:absolute; top:14px; right:14px;
    width:22px; height:22px; border:2px solid #c5cedc;
    border-radius:6px; background:var(--bg);
    display:flex; align-items:center; justify-content:center;
    font-size:12px; font-weight:700; transition:all .2s; color:transparent;
  }
  .card.selected .card-cb { background:var(--navy); border-color:var(--navy); color:#fff; }
  .card-number { font-size:11px; color:var(--muted); letter-spacing:1.5px; margin-bottom:10px; font-weight:600; text-transform:uppercase; }
  .card-title { font-size:14px; font-weight:600; line-height:1.5; color:var(--text); margin-bottom:8px; padding-right:28px; font-family:'Montserrat',sans-serif; }
  .card-desc { font-size:12px; color:var(--text-soft); line-height:1.6; margin-bottom:14px; }
  .card-tags { display:flex; gap:6px; flex-wrap:wrap; }
  .card-legal-mention { font-style:italic; color:#6B7280; font-size:10px; margin-top:8px; font-family:Arial,sans-serif; }
  .elearn-legal-mention { font-style:italic; color:#6B7280; font-size:10px; margin-top:8px; font-family:Arial,sans-serif; }
  .mc-legal-mention { font-style:italic; color:rgba(245,239,230,.5); font-size:10px; margin-top:8px; font-family:Arial,sans-serif; }
  .tag { font-size:11px; padding:3px 10px; border-radius:4px; font-weight:500; }

  [data-family="commercial"] .card:hover::before, [data-family="commercial"] .card.selected::before { background:var(--mist) !important; }
  [data-family="commercial"] .tag { background:rgba(143,168,184,.12); color:#4A6E80; }
  [data-family="methodologie"] .card:hover::before, [data-family="methodologie"] .card.selected::before { background:var(--sage) !important; }
  [data-family="methodologie"] .tag { background:rgba(107,140,125,.12); color:var(--forest); }
  [data-family="mindset"] .card:hover::before, [data-family="mindset"] .card.selected::before { background:var(--copper) !important; }
  [data-family="mindset"] .tag { background:rgba(196,113,74,.1); color:var(--clay); }
  [data-family="digital"] .card:hover::before, [data-family="digital"] .card.selected::before { background:var(--amber) !important; }
  [data-family="digital"] .tag { background:rgba(212,160,84,.12); color:#8B6820; }
  [data-family="juridique"] .card:hover::before, [data-family="juridique"] .card.selected::before { background:var(--navy) !important; }
  [data-family="juridique"] .tag { background:rgba(30,43,74,.08); color:var(--navy); }
  [data-family="leadership"] .card:hover::before, [data-family="leadership"] .card.selected::before { background:var(--clay) !important; }
  [data-family="leadership"] .tag { background:rgba(184,92,66,.1); color:var(--clay); }
  [data-family="management"] .card:hover::before, [data-family="management"] .card.selected::before { background:var(--forest) !important; }
  [data-family="management"] .tag { background:rgba(61,92,78,.1); color:var(--forest); }

  /* ── PANIER BAR ── */
  .panier-bar {
    position:fixed; bottom:0; left:0; right:0;
    background:linear-gradient(135deg, #1E2B4A 0%, #2A3A5C 100%);
    border-top:2px solid var(--mist);
    padding:14px 60px;
    display:flex; align-items:center; gap:16px;
    z-index:300;
    transform:translateY(100%);
    transition:transform .4s cubic-bezier(.34,1.56,.64,1);
    box-shadow:0 -8px 40px rgba(0,0,0,.25);
  }
  .panier-bar.visible { transform:translateY(0); }
  .panier-bar-title { font-family:'Montserrat', sans-serif; font-size:15px; color:#F5EFE6; font-weight:700; flex-shrink:0; white-space:nowrap; }
  .panier-chips { display:flex; gap:7px; flex-wrap:wrap; flex:1; overflow:hidden; max-height:58px; }
  .p-chip {
    background:rgba(143,168,184,.18); border:1px solid rgba(143,168,184,.4);
    color:#8FA8B8; font-size:11px; padding:4px 10px;
    border-radius:4px; display:flex; align-items:center; gap:5px; max-width:200px;
  }
  .p-chip span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .p-chip button { background:none; border:none; color:#8FA8B8; cursor:pointer; font-size:13px; padding:0; opacity:.7; flex-shrink:0; }
  .p-chip button:hover { opacity:1; color:#FF6B6B; }
  .panier-actions { display:flex; gap:8px; flex-shrink:0; }
  .btn-clear {
    background:transparent; border:1px solid rgba(143,168,184,.35);
    color:rgba(245,239,230,.55); padding:8px 14px;
    border-radius:6px; font-family:'Montserrat', sans-serif;
    font-size:12px; cursor:pointer; transition:all .2s;
  }
  .btn-clear:hover { border-color:#E74C3C; color:#E74C3C; }
  .btn-inscrire {
    background:var(--copper); border:none; color:#fff;
    padding:9px 20px; border-radius:6px;
    font-family:'Montserrat', sans-serif; font-size:13px;
    font-weight:700; cursor:pointer; transition:all .2s;
    display:flex; align-items:center; gap:7px;
  }
  .btn-inscrire:hover { background:#b06040; transform:translateY(-1px); box-shadow:0 4px 16px rgba(196,113,74,.4); }

  /* ── MODALS ── */
  .overlay {
    position:fixed; inset:0;
    background:rgba(30,43,74,.55); backdrop-filter:blur(5px);
    z-index:500; display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; transition:opacity .3s; padding:20px;
  }
  .overlay.open { opacity:1; pointer-events:all; }
  .modal {
    background:#fff; border-radius:16px;
    width:100%; max-width:960px; max-height:90vh; overflow-y:auto;
    box-shadow:0 30px 90px rgba(0,0,0,.25);
    transform:scale(.94) translateY(24px);
    transition:transform .35s cubic-bezier(.34,1.56,.64,1);
  }
  .overlay.open .modal { transform:scale(1) translateY(0); }
  .modal-sm { max-width:540px; }
  .modal-head {
    background:linear-gradient(135deg, #1E2B4A 0%, #2A3A5C 100%);
    padding:26px 34px; border-radius:16px 16px 0 0;
    display:flex; align-items:center; justify-content:space-between;
    position:sticky; top:0; z-index:10;
  }
  .modal-head h2 { font-family:'Cormorant Garamond', serif; font-size:24px; color:#F5EFE6; }
  .modal-head h2 em { color:var(--mist); font-style:italic; }
  .btn-close {
    background:rgba(245,239,230,.1); border:none; color:rgba(245,239,230,.7);
    width:34px; height:34px; border-radius:8px; cursor:pointer;
    font-size:18px; display:flex; align-items:center; justify-content:center; transition:all .2s;
  }
  .btn-close:hover { background:rgba(143,168,184,.3); color:var(--mist); }
  .modal-body { padding:30px 34px 34px; }

  /* Agenda layout */
  .agenda-layout { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
  @media(max-width:680px){ .agenda-layout { grid-template-columns:1fr; } }
  .ag-section-title {
    font-family:'Montserrat', sans-serif; font-size:17px; color:var(--text);
    margin-bottom:18px; padding-bottom:10px;
    border-bottom:1px solid var(--border-light);
    display:flex; align-items:center; gap:8px;
  }
  .ag-section-title::before { content:''; display:inline-block; width:4px; height:18px; background:var(--copper); border-radius:2px; }
  .form-row { margin-bottom:14px; }
  .form-row label { display:block; font-size:11px; font-weight:700; color:var(--navy); text-transform:uppercase; letter-spacing:.8px; margin-bottom:5px; }
  .form-row select, .form-row input, .form-row textarea {
    width:100%; background:#fff; border:1.5px solid var(--border-light);
    border-radius:8px; padding:9px 13px;
    font-family:'Montserrat', sans-serif; font-size:14px; color:var(--text);
    outline:none; transition:border-color .2s;
  }
  .form-row select:focus, .form-row input:focus, .form-row textarea:focus { border-color:var(--navy); box-shadow:0 0 0 3px rgba(30,43,74,.08); }
  .form-row textarea { resize:vertical; min-height:72px; }
  .btn-add-session {
    width:100%; background:var(--copper); border:none; color:#fff;
    padding:11px; border-radius:10px; font-family:'Montserrat', sans-serif;
    font-size:14px; font-weight:700; cursor:pointer; transition:all .2s;
    display:flex; align-items:center; justify-content:center; gap:7px; margin-top:6px;
  }
  .btn-add-session:hover { background:#b3623e; transform:translateY(-1px); box-shadow:0 4px 14px rgba(196,113,74,.35); }

  /* Sessions */
  .sessions-wrap { display:flex; flex-direction:column; gap:10px; }
  .session-card {
    background:var(--bg); border:1.5px solid var(--border-light);
    border-radius:12px; padding:14px 16px;
    display:flex; gap:12px; align-items:flex-start; transition:all .2s;
  }
  .session-card:hover { border-color:var(--gold); box-shadow:0 4px 14px rgba(201,151,58,.12); }
  .sess-date { background:var(--gold); color:#fff; border-radius:8px; padding:6px 10px; text-align:center; flex-shrink:0; min-width:52px; }
  .sess-date .sd { font-size:20px; font-weight:800; font-family:'Montserrat', sans-serif; line-height:1; }
  .sess-date .sm { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }
  .sess-info { flex:1; min-width:0; }
  .sess-name { font-size:13px; font-weight:600; color:var(--text); line-height:1.4; }
  .sess-meta { display:flex; gap:10px; margin-top:6px; font-size:11px; color:var(--muted); flex-wrap:wrap; }
  .sess-meta span { display:flex; align-items:center; gap:3px; }
  .btn-del-sess { background:none; border:none; color:#d4c4a8; cursor:pointer; font-size:16px; padding:2px; transition:color .2s; flex-shrink:0; }
  .btn-del-sess:hover { color:#E74C3C; }
  .empty-sess { text-align:center; padding:40px 20px; color:var(--muted); font-size:14px; }
  .empty-sess span { font-size:38px; display:block; margin-bottom:10px; }

  /* Mini calendrier */
  .cal-wrap { margin-top:26px; }
  .cal-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
  .cal-nav-title { font-size:15px; font-weight:700; color:var(--text); }
  .cal-nav-btns { display:flex; gap:6px; }
  .cnb {
    background:var(--bg); border:1px solid var(--border); color:var(--gold);
    width:28px; height:28px; border-radius:6px; cursor:pointer;
    font-size:13px; display:flex; align-items:center; justify-content:center; transition:all .2s;
  }
  .cnb:hover { background:var(--gold); color:#fff; }
  .cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
  .cal-dh { text-align:center; font-size:10px; font-weight:700; color:var(--muted); text-transform:uppercase; padding:5px 0; }
  .cal-d {
    aspect-ratio:1; display:flex; align-items:center; justify-content:center;
    border-radius:7px; font-size:12px; font-weight:500; color:var(--text-soft);
    cursor:default; transition:all .15s; position:relative;
  }
  .cal-d.empty { opacity:0; pointer-events:none; }
  .cal-d.today { background:var(--gold-pale); color:var(--gold); font-weight:800; border:1.5px solid var(--gold); }
  .cal-d.has-sess { background:var(--gold); color:#fff; font-weight:700; cursor:pointer; }
  .cal-d.has-sess:hover { background:#b8852a; transform:scale(1.1); }

  /* Inscription */
  .inscr-list { display:flex; flex-direction:column; gap:8px; margin-bottom:20px; }
  .inscr-item {
    background:var(--bg); border:1px solid var(--border-light);
    border-radius:8px; padding:10px 14px;
    display:flex; align-items:center; gap:10px;
  }
  .inscr-num { font-size:11px; color:var(--muted); font-weight:700; flex-shrink:0; }
  .inscr-title { font-size:13px; color:var(--text); flex:1; line-height:1.4; }
  .inscr-remove { background:none; border:none; color:#d4c4a8; cursor:pointer; font-size:15px; flex-shrink:0; transition:color .2s; }
  .inscr-remove:hover { color:#E74C3C; }
  .form-submit {
    width:100%; background:var(--copper); border:none; color:#fff;
    padding:13px; border-radius:10px; font-family:'Montserrat', sans-serif;
    font-size:15px; font-weight:700; cursor:pointer; transition:all .2s; margin-top:4px;
  }
  .form-submit:hover { background:#b06040; transform:translateY(-1px); box-shadow:0 4px 16px rgba(196,113,74,.4); }
  .form-submit:disabled { background:#c9a898; cursor:not-allowed; transform:none; box-shadow:none; }
  .form-submit.sending { background:#b06040; }
  .form-error { background:#FFF0F0; border:1px solid #E74C3C; color:#C0392B; padding:10px 14px; border-radius:8px; font-size:13px; margin-top:10px; display:none; }
  .form-error.visible { display:block; }
  .empty-cart { text-align:center; padding:40px 20px; color:var(--muted); }
  .empty-cart span { font-size:40px; display:block; margin-bottom:12px; }

  /* ── TOAST ── */
  .toast {
    position:fixed; top:80px; right:24px;
    background:var(--navy); color:#F5EFE6;
    padding:12px 20px; border-radius:10px;
    font-size:13px; font-weight:500; z-index:999;
    opacity:0; transform:translateX(12px);
    transition:all .3s; pointer-events:none;
    border-left:3px solid var(--gold);
    max-width:320px; box-shadow:0 8px 24px var(--shadow-md);
  }
  .toast.show { opacity:1; transform:translateX(0); }

  /* ── FOOTER ── */
  footer {
    background:#1E2B4A; color:#F5EFE6; text-align:center;
    font-family:Arial,sans-serif; font-size:11px; line-height:1.5;
    padding:0; letter-spacing:.3px;
  }
  .footer-main {
    padding:12px 24px 6px; font-size:12px; letter-spacing:.5px;
    color:rgba(245,239,230,.4); font-family:'Montserrat',sans-serif;
  }
  .footer-main strong { color:var(--gold); }
  .footer-legal {
    border-top:1px solid #C4714A; margin-top:0;
    padding:28px 24px 22px; max-width:900px; margin-left:auto; margin-right:auto;
  }
  .footer-legal p { margin:4px 0; color:#F5EFE6; opacity:.85; }
  .footer-legal .footer-nda { font-weight:600; margin-bottom:8px; font-size:11.5px; }
  .footer-legal .footer-info { font-size:10.5px; opacity:.6; }
  .footer-legal .footer-disclaimer { font-style:italic; opacity:.55; margin-top:8px; font-size:10px; }
  .footer-links { margin-top:12px; }
  .footer-links a {
    color:#C4714A; text-decoration:none; margin:0 10px;
    font-size:11px; font-weight:600; letter-spacing:.5px;
  }
  .footer-links a:hover { text-decoration:underline; }
  /* Legal pages */
  #mentionsLegalesPage, #cgvPage {
    position:fixed; inset:0; z-index:7000; background:var(--bg);
    overflow-y:auto; transform:translateX(100%);
    transition:transform .4s cubic-bezier(.4,0,.2,1);
  }
  #mentionsLegalesPage.open, #cgvPage.open { transform:translateX(0); }
  .legal-page-header {
    background:linear-gradient(135deg,#1E2B4A 0%,#2A3A5C 60%,#1E2B4A 100%);
    padding:44px 60px 38px; position:relative;
  }
  .legal-page-header-inner { position:relative; z-index:1; max-width:800px; margin:0 auto; }
  .legal-page-header h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(24px,3.5vw,42px); font-weight:600; color:#F5EFE6; }
  .legal-page-header h2 em { color:var(--mist); font-style:italic; }
  .legal-page-body { max-width:800px; margin:0 auto; padding:40px 40px 80px; }
  .legal-page-body h3 { font-family:Georgia,serif; font-size:18px; color:var(--navy); margin:28px 0 10px; }
  .legal-page-body h3:first-child { margin-top:0; }
  .legal-page-body p, .legal-page-body li { font-family:Arial,sans-serif; font-size:14px; color:var(--text); line-height:1.7; margin:6px 0; }
  .legal-page-body ul { margin:8px 0 16px 20px; padding:0; }
  .legal-page-body ul li { margin:4px 0; }
  .legal-page-body .legal-highlight {
    background:#F5EFE6; border-left:3px solid #C4714A; padding:14px 18px;
    margin:18px 0; border-radius:0 6px 6px 0; font-size:13px; line-height:1.7;
  }
  @media(max-width:700px) {
    .legal-page-header { padding:28px 20px 24px; }
    .legal-page-body { padding:24px 20px 60px; }
    .footer-legal { padding:20px 16px 18px; }
  }

  /* ── HEADER PILLS ── */
  .header-pills { display:flex; gap:6px; margin-top:16px; }
  .header-pill {
    display:inline-flex; align-items:center; gap:6px;
    padding:7px 18px; border-radius:24px;
    font-family:'Montserrat',sans-serif; font-size:12px; font-weight:600;
    cursor:pointer; transition:all .25s; border:1px solid rgba(245,239,230,0.2);
    background:transparent; color:rgba(245,239,230,0.6);
  }
  .header-pill:hover { background:rgba(245,239,230,0.08); color:rgba(245,239,230,0.85); }
  .header-pill.active {
    background:#F5EFE6; color:#1E2B4A; border-color:#F5EFE6; font-weight:700;
    box-shadow:0 2px 8px rgba(0,0,0,.15);
  }
  .header-pill.active-copper {
    background:#C4714A; color:#fff; border-color:#C4714A; font-weight:700;
  }
  .header-pill.active-amber {
    background:#D4A054; color:#fff; border-color:#D4A054; font-weight:700;
  }
  @media(max-width:600px) {
    .header-pills { width:100%; }
    .header-pill { flex:1; justify-content:center; font-size:11px; padding:8px 12px; }
  }

  /* ── VIEW CONTAINERS ── */
  #viewPresentiel, #viewElearning { transition:opacity .3s ease; }
  #viewElearning { display:none; }
  .elearning-inline-filters {
    display:flex; gap:8px; flex-wrap:wrap; padding:0 60px;
    margin-bottom:24px;
  }
  .el-filter-chip {
    background:transparent; border:1.5px solid var(--border);
    color:var(--text-soft); padding:6px 14px; border-radius:30px;
    font-size:11px; font-family:'Montserrat',sans-serif;
    cursor:pointer; transition:all .2s; font-weight:500;
  }
  .el-filter-chip:hover { border-color:var(--copper); color:var(--copper); }
  .el-filter-chip.active {
    background:var(--copper); border-color:var(--copper); color:#fff; font-weight:600;
  }
  @media(max-width:700px) {
    .elearning-inline-filters { padding:0 16px; }
    #viewElearning > div:first-child { padding-left:16px !important; padding-right:16px !important; }
  }

  /* ── UPLOAD PROGRESS ── */
  .upload-progress-wrap { margin-top:8px; }
  .upload-progress-label {
    display:flex; justify-content:space-between; align-items:center;
    font-size:11px; font-weight:600; margin-bottom:4px;
  }
  .upload-progress-label span:first-child { color:var(--text-soft); }
  .upload-progress-label span:last-child { color:var(--navy); font-weight:800; font-size:12px; }
  .upload-progress-bar {
    height:8px; background:var(--bg2); border-radius:4px; overflow:hidden;
  }
  .upload-progress-fill {
    height:100%; background:linear-gradient(90deg,#1E2B4A,#C4714A);
    border-radius:4px; transition:width .2s ease;
  }
  .upload-progress-wrap.done .upload-progress-fill { background:linear-gradient(90deg,#22A064,#6B8C7D); }
  .upload-progress-wrap.error .upload-progress-fill { background:#E74C3C; }
  .upload-progress-sm .upload-progress-bar { height:5px; }
  .upload-progress-sm .upload-progress-label { font-size:10px; }

  /* ── BADGE FORMAT ── */
  .badge-format {
    display:inline-block; font-size:9px; font-weight:700; letter-spacing:.5px;
    text-transform:uppercase; padding:2px 8px; border-radius:3px; margin-bottom:6px;
  }
  .badge-format-presentiel { background:rgba(30,43,74,.1); color:#1E2B4A; }
  .badge-format-elearning { background:rgba(196,113,74,.12); color:#C4714A; }
  .badge-format-mixte { background:rgba(107,140,125,.12); color:#6B8C7D; }

  /* ── BADGE NOUVEAU ── */
  .badge-new {
    display:inline-block; background:#22A064; color:#fff;
    font-size:9px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
    padding:2px 7px; border-radius:3px; margin-left:8px; vertical-align:middle;
  }

  /* ── CARD COMPLÉTÉE ── */
  .card.done { border-color:rgba(34,160,100,.35); background:linear-gradient(135deg,#fff 0%,#f0faf5 100%); }
  .card.done::before { background:#22A064 !important; }
  .card.done .card-cb { background:#22A064; border-color:#22A064; color:#fff; }
  .btn-done {
    display:inline-flex; align-items:center; gap:5px;
    margin-top:12px; padding:5px 12px; border-radius:20px;
    font-size:11px; font-weight:600; cursor:pointer; transition:all .2s;
    border:1.5px solid #d4c4a8; background:transparent; color:var(--muted);
    font-family:'Montserrat', sans-serif;
  }
  .btn-done:hover { border-color:#22A064; color:#22A064; background:rgba(34,160,100,.06); }
  .card.done .btn-done { border-color:#22A064; color:#22A064; background:rgba(34,160,100,.08); }

  /* ── BOUTON PROFIL TOOLBAR ── */
  .btn-profile {
    display:inline-flex; align-items:center; gap:8px;
    padding:7px 16px; border-radius:30px;
    font-size:13px; font-family:'Montserrat', sans-serif; font-weight:600;
    cursor:pointer; transition:all .2s;
    border:1.5px solid rgba(143,168,184,.45);
    background:rgba(143,168,184,.12); color:#8FA8B8; white-space:nowrap;
  }
  .btn-profile:hover { background:rgba(143,168,184,.25); border-color:#8FA8B8; color:#fff; }
  .btn-profile.logged { background:rgba(143,168,184,.2); border-color:#8FA8B8; color:#8FA8B8; }
  .avatar {
    width:22px; height:22px; border-radius:50%; background:var(--gold);
    color:#fff; display:inline-flex; align-items:center; justify-content:center;
    font-size:10px; font-weight:800; flex-shrink:0;
  }

  /* ── MODAL AUTH ── */
  .auth-tabs { display:flex; border-bottom:2px solid var(--border-light); margin-bottom:24px; }
  .auth-tab {
    flex:1; padding:12px; text-align:center; cursor:pointer;
    font-size:14px; font-weight:600; color:var(--muted);
    border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .2s;
  }
  .auth-tab.active { color:var(--navy); border-bottom-color:var(--navy); }
  .auth-panel { display:none; }
  .auth-panel.active { display:block; }
  .auth-error {
    background:#FFF0F0; border:1px solid #E74C3C; color:#C0392B;
    padding:9px 13px; border-radius:8px; font-size:12px; margin-bottom:12px; display:none;
  }
  .auth-error.show { display:block; }
  .auth-sep { text-align:center; font-size:12px; color:var(--muted); margin:10px 0; }

  /* ── PANNEAU PROFIL ── */
  .profile-panel {
    position:fixed; top:0; right:0; bottom:0; width:400px; max-width:95vw;
    background:#fff; z-index:400; box-shadow:-8px 0 40px rgba(44,36,22,.18);
    display:flex; flex-direction:column;
    transform:translateX(100%); transition:transform .35s cubic-bezier(.4,0,.2,1);
  }
  .profile-panel.open { transform:translateX(0); }
  .profile-panel-head {
    background:linear-gradient(135deg, #1E2B4A 0%, #2A3A5C 100%);
    padding:24px 28px; flex-shrink:0;
  }
  .profile-avatar-big {
    width:56px; height:56px; border-radius:50%; background:var(--mist);
    color:#fff; display:flex; align-items:center; justify-content:center;
    font-size:22px; font-weight:800; margin-bottom:14px;
  }
  .profile-name { font-size:20px; font-weight:700; color:#F5EFE6; font-family:'Cormorant Garamond',serif; }
  .profile-email { font-size:12px; color:rgba(245,239,230,.5); margin-top:4px; }
  .profile-panel-body { flex:1; overflow-y:auto; padding:24px 28px; }
  .progress-block { margin-bottom:28px; }
  .progress-label { display:flex; justify-content:space-between; font-size:13px; margin-bottom:8px; }
  .progress-label span:first-child { font-weight:700; color:var(--text); }
  .progress-label span:last-child { color:var(--navy); font-weight:700; }
  .progress-bar-wrap { height:8px; background:var(--bg2); border-radius:4px; overflow:hidden; }
  .progress-bar-fill { height:100%; background:var(--navy); border-radius:4px; transition:width .5s ease; }
  .section-title-panel {
    font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase;
    letter-spacing:1.5px; margin-bottom:14px;
    padding-bottom:8px; border-bottom:1px solid var(--border-light);
  }
  .done-item {
    display:flex; align-items:flex-start; gap:10px;
    padding:10px 0; border-bottom:1px solid var(--border-light);
  }
  .done-item:last-child { border-bottom:none; }
  .done-check {
    width:20px; height:20px; border-radius:50%; background:var(--sage);
    color:#fff; display:flex; align-items:center; justify-content:center;
    font-size:10px; flex-shrink:0; margin-top:2px;
  }
  .done-item-id { font-size:11px; color:var(--muted); font-weight:700; }
  .done-item-title { font-size:13px; color:var(--text); line-height:1.4; }
  .new-item {
    display:flex; align-items:flex-start; gap:10px;
    padding:10px 14px; margin-bottom:8px;
    background:rgba(143,168,184,.08); border:1px solid rgba(143,168,184,.2);
    border-radius:10px;
  }
  .new-dot { width:8px; height:8px; border-radius:50%; background:var(--sage); flex-shrink:0; margin-top:5px; }
  .empty-done { text-align:center; padding:30px 0; color:var(--muted); font-size:13px; }
  .empty-done span { font-size:32px; display:block; margin-bottom:10px; }
  .btn-logout {
    display:flex; align-items:center; justify-content:center; gap:7px;
    width:calc(100% - 56px); margin:0 28px 28px;
    padding:11px; border-radius:8px; background:transparent;
    border:1.5px solid rgba(231,76,60,.4); color:#E74C3C;
    font-family:'Montserrat', sans-serif; font-size:13px; font-weight:600;
    cursor:pointer; transition:all .2s; flex-shrink:0;
  }
  .btn-logout:hover { background:rgba(231,76,60,.07); border-color:#E74C3C; }
  .panel-overlay {
    position:fixed; inset:0; background:rgba(30,43,74,.45);
    z-index:399; opacity:0; pointer-events:none; transition:opacity .3s;
  }
  .panel-overlay.open { opacity:1; pointer-events:all; }

  /* ── BADGE ADMIN ── */
  .badge-admin {
    display:inline-flex; align-items:center; gap:5px;
    background:linear-gradient(135deg, #1E2B4A, #2A3A5C);
    color:var(--mist); font-size:10px; font-weight:700; letter-spacing:1px;
    text-transform:uppercase; padding:3px 10px; border-radius:3px;
    border:1px solid rgba(143,168,184,.4);
  }

  /* ── TABLEAU DE BORD ADMIN ── */
  .admin-overlay {
    position:fixed; inset:0; background:rgba(30,43,74,.72);
    backdrop-filter:blur(4px); z-index:500;
    display:flex; align-items:stretch; justify-content:flex-end;
    opacity:0; pointer-events:none; transition:opacity .3s;
  }
  .admin-overlay.open { opacity:1; pointer-events:all; }
  .admin-panel {
    width:100vw; max-width:100vw; background:var(--bg);
    display:flex; flex-direction:column; height:100%;
    transform:translateX(100%);
    transition:transform .38s cubic-bezier(.34,1.2,.64,1);
    overflow:hidden;
  }
  .admin-overlay.open .admin-panel { transform:translateX(0); }
  .admin-head {
    background:linear-gradient(135deg, #1E2B4A 0%, #2A3A5C 100%);
    padding:20px 28px; display:flex; align-items:center;
    justify-content:space-between; flex-shrink:0;
    border-bottom:2px solid var(--mist);
  }
  .admin-head-left { display:flex; align-items:center; gap:14px; }
  .admin-head-icon {
    width:42px; height:42px; border-radius:10px;
    background:rgba(143,168,184,.2); border:1px solid rgba(143,168,184,.4);
    display:flex; align-items:center; justify-content:center; font-size:20px;
  }
  .admin-head h2 { font-size:20px; font-weight:700; color:#F5EFE6; font-family:'Cormorant Garamond',serif; }
  .admin-head h2 em { color:var(--mist); font-style:italic; }
  .admin-head p { font-size:12px; color:rgba(245,239,230,.45); margin-top:2px; }
  /* Layout sidebar vertical */
  .admin-content-wrap { display:flex; flex:1; overflow:hidden; }
  .admin-tabs {
    display:flex; flex-direction:column;
    background:linear-gradient(180deg, #1E2B4A 0%, #253355 100%);
    flex-shrink:0; width:220px; padding:12px 0; gap:1px; overflow-y:auto;
  }
  .admin-tab {
    padding:13px 18px; font-size:12px; font-weight:600; color:rgba(143,168,184,.85);
    cursor:pointer; border-left:3px solid transparent;
    transition:all .2s; display:flex; align-items:center; gap:9px;
  }
  .admin-tab:hover { color:#F5EFE6; background:rgba(255,255,255,.07); }
  .admin-tab.active { color:#F5EFE6; background:rgba(255,255,255,.11); border-left-color:var(--amber); }
  .admin-body { flex:1; overflow-y:auto; padding:28px 40px; }
  .admin-tab-panel { display:none; }
  .admin-tab-panel.active { display:block; }

  /* ── SUB-TABS Formations Présentielles ── */
  .frm-subtabs {
    display:flex; gap:16px; margin-bottom:28px;
  }
  .frm-subtab {
    padding:14px 32px; font-size:1rem; font-weight:700;
    font-family:'Montserrat',sans-serif; border-radius:10px;
    cursor:pointer; transition:all .2s ease;
    background:#fff; color:#1E2B4A; border:2px solid #1E2B4A;
    opacity:.7;
  }
  .frm-subtab:hover {
    opacity:1; background:#f5f0e8;
  }
  .frm-subtab.active {
    background:#1E2B4A; color:#fff; border-color:#1E2B4A;
    opacity:1; box-shadow:0 2px 8px rgba(0,0,0,.15);
  }

  /* ── Stripe redirect spinner ── */
  .stripe-spinner {
    width:48px; height:48px; border:4px solid rgba(245,239,230,.15);
    border-top-color:#C4714A; border-radius:50%;
    animation:stripeSpin 1s linear infinite;
  }
  @keyframes stripeSpin { to { transform:rotate(360deg); } }

  /* ── Founder photo upload ── */
  .founder-upload-card {
    display:flex; flex-direction:column; align-items:center;
    background:#fff; border:1.5px solid var(--border-light); border-radius:10px;
    padding:16px 12px;
  }
  .founder-preview {
    width:80px; height:80px; border-radius:50%; overflow:hidden;
    background:var(--bg2); display:flex; align-items:center; justify-content:center;
    margin-bottom:10px; border:2px solid var(--border-light);
    font-size:22px; font-weight:700; color:var(--muted);
  }
  .founder-preview img {
    width:100%; height:100%; object-fit:cover;
  }
  .btn-founder-upload {
    background:#C4714A; color:#fff; border:none; border-radius:8px;
    padding:8px 16px; font-family:'Montserrat',sans-serif; font-size:12px;
    font-weight:600; cursor:pointer; transition:all .2s;
  }
  .btn-founder-upload:hover { background:#b06040; }

  /* Stats cards */
  .stat-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; margin-bottom:28px; }
  .stat-card {
    background:#fff; border:1.5px solid var(--border-light); border-radius:12px;
    padding:16px 18px; text-align:center;
    box-shadow:0 2px 8px var(--shadow);
  }
  .stat-card .sc-num { font-size:32px; font-weight:800; color:var(--navy); font-family:'Montserrat',sans-serif; line-height:1; }
  .stat-card .sc-label { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.8px; margin-top:6px; font-weight:600; }

  /* Table candidats */
  .admin-section-title {
    font-size:13px; font-weight:700; color:var(--text); text-transform:uppercase;
    letter-spacing:1px; margin-bottom:14px; padding-bottom:10px;
    border-bottom:2px solid var(--border-light);
    display:flex; align-items:center; gap:8px;
  }
  .admin-section-title::before { content:''; display:inline-block; width:4px; height:16px; background:var(--copper); border-radius:2px; }
  .candidat-table { width:100%; border-collapse:collapse; }
  .candidat-table th {
    text-align:left; font-size:11px; font-weight:700; color:var(--muted);
    text-transform:uppercase; letter-spacing:.8px; padding:8px 12px;
    background:var(--bg2); border-bottom:1px solid var(--border-light);
  }
  .candidat-table td { padding:11px 12px; font-size:13px; border-bottom:1px solid var(--border-light); color:var(--text); vertical-align:middle; }
  .candidat-table tr:last-child td { border-bottom:none; }
  .candidat-table tr:hover td { background:rgba(30,43,74,0.04); }
  .progress-pill {
    display:inline-flex; align-items:center; gap:6px;
    background:var(--bg2); border-radius:20px; padding:3px 10px;
    font-size:11px; font-weight:700;
  }
  .progress-pill-bar { width:50px; height:5px; background:#e0d5c5; border-radius:3px; overflow:hidden; }
  .progress-pill-fill { height:100%; background:var(--gold); border-radius:3px; }
  .btn-see-detail {
    background:transparent; border:1.5px solid var(--border);
    color:var(--muted); padding:4px 10px; border-radius:6px;
    font-size:11px; font-weight:600; cursor:pointer;
    font-family:'Montserrat',sans-serif; transition:all .2s;
  }
  .btn-see-detail:hover { border-color:var(--gold); color:var(--gold); }

  /* Top formations */
  .top-formation-row {
    display:flex; align-items:center; gap:12px;
    padding:10px 0; border-bottom:1px solid var(--border-light);
  }
  .top-formation-row:last-child { border-bottom:none; }
  .top-rank { width:28px; height:28px; border-radius:50%; background:var(--gold-pale); color:var(--gold); display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; flex-shrink:0; }
  .top-rank.gold { background:var(--gold); color:#fff; }
  .top-bar-wrap { flex:1; }
  .top-bar-label { font-size:12px; font-weight:600; color:var(--text); margin-bottom:4px; }
  .top-bar-id { font-size:10px; color:var(--muted); }
  .top-bar-bg { height:6px; background:var(--bg2); border-radius:3px; overflow:hidden; }
  .top-bar-fill { height:100%; background:var(--gold); border-radius:3px; transition:width .5s ease; }
  .top-count { font-size:12px; font-weight:700; color:var(--gold); min-width:30px; text-align:right; }

  /* Détail candidat */
  .candidat-detail-wrap { background:#fff; border-radius:12px; border:1.5px solid var(--border-light); padding:20px; margin-top:14px; display:none; }
  .candidat-detail-wrap.open { display:block; }
  .detail-head { display:flex; align-items:center; gap:12px; margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid var(--border-light); }
  .detail-avatar { width:44px; height:44px; border-radius:50%; background:var(--gold); color:#fff; display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:800; flex-shrink:0; }
  .detail-name { font-size:16px; font-weight:700; color:var(--text); }
  .detail-email { font-size:12px; color:var(--muted); }
  .detail-done-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px; }
  .detail-done-item { display:flex; align-items:center; gap:8px; padding:7px 10px; background:var(--bg); border-radius:8px; border:1px solid var(--border-light); }
  .detail-check { width:18px; height:18px; border-radius:50%; background:#22A064; color:#fff; display:flex; align-items:center; justify-content:center; font-size:9px; flex-shrink:0; }
  .detail-id { font-size:10px; color:var(--muted); font-weight:700; }
  .detail-title { font-size:11px; color:var(--text); line-height:1.3; }

  /* Sessions admin */
  .session-admin-card {
    background:#fff; border:1.5px solid var(--border-light); border-radius:12px;
    padding:14px 18px; margin-bottom:10px; display:flex; align-items:center; gap:14px;
  }
  .session-admin-card:hover { border-color:rgba(201,151,58,.3); }
  .session-date-badge { background:var(--navy); color:#fff; border-radius:8px; padding:6px 10px; text-align:center; flex-shrink:0; min-width:52px; }
  .sdb-day { font-size:20px; font-weight:800; line-height:1; }
  .sdb-mon { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; }
  .session-admin-info { flex:1; }
  .session-admin-name { font-size:13px; font-weight:700; color:var(--text); margin-bottom:4px; }
  .session-admin-meta { display:flex; gap:12px; font-size:11px; color:var(--muted); flex-wrap:wrap; }
  .empty-admin { text-align:center; padding:40px 0; color:var(--muted); font-size:13px; }
  .empty-admin span { font-size:36px; display:block; margin-bottom:10px; }
  .admin-loading { text-align:center; padding:30px; color:var(--muted); font-size:13px; }

  /* ── INSCRIPTION SESSION (candidat) ── */
  .sess-registrations {
    display:inline-flex; align-items:center; gap:5px;
    background:rgba(34,160,100,.1); color:#0F6E56;
    font-size:11px; font-weight:700; padding:3px 10px;
    border-radius:20px; border:1px solid rgba(34,160,100,.25); margin-top:6px;
  }
  .btn-register-session {
    display:inline-flex; align-items:center; gap:5px;
    margin-top:8px; padding:6px 14px; border-radius:20px;
    font-size:12px; font-weight:600; cursor:pointer; transition:all .2s;
    border:1.5px solid rgba(34,160,100,.5); background:rgba(34,160,100,.08);
    color:#0F6E56; font-family:'Montserrat',sans-serif;
  }
  .btn-register-session:hover { background:rgba(34,160,100,.18); border-color:#0F6E56; }
  .btn-register-session.registered { background:#22A064; border-color:#22A064; color:#fff; }
  .sess-registrants-list { margin-top:10px; border-top:1px solid var(--border-light); padding-top:10px; }
  .sess-reg-item { display:flex; justify-content:space-between; font-size:12px; padding:5px 0; border-bottom:1px dashed var(--border-light); color:var(--text); }
  .sess-reg-item:last-child { border-bottom:none; }

  /* ── PIPELINE FINANCEMENT ── */
  .financement-overlay {
    position:fixed; inset:0; background:rgba(26,18,8,.65); backdrop-filter:blur(4px);
    z-index:600; display:flex; align-items:center; justify-content:center;
    padding:20px; opacity:0; pointer-events:none; transition:opacity .3s;
  }
  .financement-overlay.open { opacity:1; pointer-events:all; }
  .financement-modal {
    background:var(--bg); border-radius:20px; width:100%; max-width:680px;
    max-height:90vh; overflow-y:auto;
    box-shadow:0 30px 90px rgba(0,0,0,.3);
    transform:scale(.94) translateY(24px);
    transition:transform .35s cubic-bezier(.34,1.56,.64,1);
  }
  .financement-overlay.open .financement-modal { transform:scale(1) translateY(0); }
  .financement-modal-head {
    background:var(--navy);
    padding:22px 28px; border-radius:20px 20px 0 0;
    display:flex; align-items:center; justify-content:space-between;
    position:sticky; top:0; z-index:10;
  }
  .financement-modal-head h2 { font-size:18px; color:#F5EFE6; }
  .financement-modal-head h2 em { color:var(--copper); font-style:normal; }
  .financement-modal-body { padding:24px 28px; }

  /* Pipeline steps */
  .pipeline-type-row { display:flex; gap:10px; margin-bottom:20px; }
  .pipeline-type-btn {
    flex:1; padding:12px; border-radius:10px; text-align:center; cursor:pointer;
    border:2px solid var(--border-light); background:#fff; transition:all .2s;
    font-family:'Montserrat',sans-serif; font-size:13px; font-weight:600;
  }
  .pipeline-type-btn:hover { border-color:var(--copper); }
  .pipeline-type-btn.active { border-color:var(--copper); background:rgba(212,160,84,.08); color:var(--text); }
  .pipeline-type-btn .ptb-icon { font-size:24px; margin-bottom:6px; display:block; }
  .pipeline-type-btn .ptb-label { display:block; color:var(--text); }
  .pipeline-type-btn .ptb-sub { display:block; font-size:11px; color:var(--muted); font-weight:400; margin-top:2px; }

  .pipeline-steps { position:relative; margin:20px 0; }
  .pipeline-step {
    display:flex; gap:14px; margin-bottom:6px; align-items:flex-start; cursor:pointer;
  }
  .pipeline-step-left { display:flex; flex-direction:column; align-items:center; }
  .pipeline-step-dot {
    width:32px; height:32px; border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-size:14px; border:2px solid var(--border); background:var(--bg);
    transition:all .2s; z-index:1;
  }
  .pipeline-step-dot.done { background:#22A064; border-color:#22A064; color:#fff; }
  .pipeline-step-dot.current { background:var(--gold); border-color:var(--gold); color:#fff; }
  .pipeline-step-dot.pending { background:var(--bg2); border-color:var(--border); color:var(--muted); }
  .pipeline-step-line { width:2px; height:20px; background:var(--border); margin:2px 0; }
  .pipeline-step-line.done { background:#22A064; }
  .pipeline-step-content { flex:1; padding-bottom:8px; }
  .pipeline-step-title { font-size:13px; font-weight:600; color:var(--text); }
  .pipeline-step-sub { font-size:11.5px; color:var(--muted); margin-top:2px; }
  .pipeline-step-badge {
    display:inline-block; font-size:10px; font-weight:700; padding:2px 8px;
    border-radius:3px; text-transform:uppercase; letter-spacing:.5px; margin-top:4px;
  }
  .psb-done { background:#EAF3DE; color:#27500A; }
  .psb-current { background:rgba(196,113,74,.12); color:var(--copper); }
  .psb-pending { background:rgba(30,43,74,.08); color:var(--navy); }

  /* Payment method selector */
  .payment-method-row { display:flex; gap:8px; margin-top:10px; }
  .pm-btn {
    flex:1; padding:8px 6px; border-radius:8px; text-align:center;
    border:1.5px solid var(--border); cursor:pointer;
    font-family:'Montserrat',sans-serif; font-size:12px; font-weight:600;
    background:transparent; transition:all .2s; color:var(--muted);
  }
  .pm-btn:hover { border-color:var(--gold); color:var(--text); }
  .pm-btn.active { border-color:var(--gold); background:var(--gold-pale); color:var(--text); }

  /* Admin financement table */
  .fin-status-badge {
    display:inline-flex; align-items:center; gap:5px;
    padding:3px 10px; border-radius:4px; font-size:11px; font-weight:700;
    white-space:nowrap;
  }
  .fin-auto { background:#E6F1FB; color:#0C447C; }
  .fin-devis { background:#FAEEDA; color:#633806; }
  .fin-convention { background:#FAEEDA; color:#854F0B; }
  .fin-validation { background:#E6F1FB; color:#185FA5; }
  .fin-paiement-cand { background:#EEEDFE; color:#3C3489; }
  .fin-paiement-org { background:#EAF3DE; color:#27500A; }
  .fin-termine { background:#EAF3DE; color:#085041; }
  .fin-none { background:var(--bg2); color:var(--muted); }

  /* ── AGENDA ADMIN FORM ── */
  .admin-form-wrap {
    background:var(--bg); border:1px solid var(--border-light);
    border-radius:14px; padding:20px 22px; margin-bottom:4px;
  }
  .admin-form-wrap .ag-section-title { color:var(--navy); }
  .admin-form-wrap .ag-section-title::before { background:var(--copper); }
  .admin-form-wrap .form-row label { color:var(--navy); }
  .admin-form-wrap select,
  .admin-form-wrap input,
  .admin-form-wrap textarea {
    background:#fff !important;
    border-color:var(--border-light) !important;
    border-radius:8px !important;
    color:var(--navy) !important;
  }
  .admin-form-wrap select:focus,
  .admin-form-wrap input:focus,
  .admin-form-wrap textarea:focus {
    border-color:var(--copper) !important;
    box-shadow:0 0 0 3px rgba(196,113,74,.12) !important;
  }
  .admin-form-wrap select option { background:#fff; color:var(--navy); }

  /* ── SESSION CARD READ-ONLY ── */
  .sess-places {
    display:inline-flex; align-items:center; gap:5px;
    background:var(--gold-pale); color:var(--gold);
    font-size:11px; font-weight:700; padding:3px 10px;
    border-radius:20px; border:1px solid var(--border); margin-top:6px;
  }
  .sess-notes {
    font-size:11.5px; color:var(--muted); line-height:1.5;
    margin-top:6px; font-style:italic;
  }
  .agenda-read-notice {
    display:flex; align-items:center; gap:10px;
    background:var(--gold-pale); border:1px solid var(--border);
    border-radius:10px; padding:10px 14px; margin-bottom:18px;
    font-size:12px; color:var(--text-soft);
  }

  @media(max-width:768px){
    header, main { padding-left:20px; padding-right:20px; }
    .catalogue-topbar { padding-left:16px; padding-right:16px; }
    .panier-bar { padding:12px 16px; flex-wrap:wrap; }
    main { padding-bottom:160px; }
    .stats { gap:20px; }
  }

  /* ── NOTATION ÉTOILES ── */
  .card-rating { display:flex; align-items:center; gap:6px; margin-top:8px; }
  .stars-input { display:flex; gap:2px; }
  .stars-input .star { font-size:16px; color:#d4c4a8; line-height:1; transition:color .15s; }
  .stars-input.unlocked { cursor:pointer; }
  .stars-input.unlocked .star { cursor:pointer; }
  .stars-input.unlocked .star.active { color:var(--amber); }
  .stars-input.unlocked:hover .star { color:var(--amber); }
  .stars-input.unlocked .star:hover ~ .star { color:#d4c4a8 !important; }
  .stars-input.locked { cursor:default; opacity:.4; }
  .rating-count { font-size:11px; color:var(--muted); font-weight:500; }
  .rating-locked-msg { font-size:10px; color:var(--muted); font-style:italic; }
  .card.done .rating-locked-msg { display:none; }

  /* ── MESSAGERIE FLOTTANTE ── */
  .btn-msg-float {
    position:fixed; bottom:30px; right:24px; z-index:299;
    width:60px; height:60px; border-radius:50%;
    background:#34C759; border:none; color:#fff;
    cursor:pointer; box-shadow:0 4px 20px rgba(52,199,89,.45);
    transition:all .25s; display:none; align-items:center; justify-content:center;
    padding:0;
  }
  .btn-msg-float.show { display:flex; }
  .btn-msg-float:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(52,199,89,.55); }
  .msg-unread-badge {
    position:absolute; top:-6px; right:-6px;
    background:#FF3B30; color:#fff; border-radius:50%;
    min-width:18px; height:18px; font-size:11px; font-weight:700;
    display:none; align-items:center; justify-content:center;
    border:2px solid #fff; padding:0 4px; box-sizing:border-box;
    line-height:14px; text-align:center;
  }
  .msg-unread-badge.show { display:flex; }
  /* Ancien dot conservé pour compat */
  .msg-unread-dot { display:none; }
  .msg-unread-dot.show { display:none; }
  /* ── E-LEARNING ── */
  .elearning-section { padding:48px 24px; background:var(--bg); border-top:3px solid var(--copper); }
  .elearning-title { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:700; color:var(--navy); text-align:center; }
  .elearning-badge { display:inline-block; background:var(--copper); color:#fff; font-family:'Montserrat',sans-serif; font-size:10px; font-weight:800; padding:3px 10px; border-radius:4px; letter-spacing:1.5px; text-transform:uppercase; vertical-align:middle; margin-left:10px; }
  .elearning-sub { text-align:center; font-size:13px; color:var(--muted); margin:8px 0 24px; font-family:'Montserrat',sans-serif; }
  .elearning-filters { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-bottom:28px; }
  .elearning-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; max-width:1200px; margin:0 auto; }
  .elearn-card { background:#fff; border-radius:14px; overflow:hidden; border:1.5px solid var(--border-light); transition:all .25s; cursor:pointer; }
  .elearn-card:hover { transform:translateY(-3px); box-shadow:0 8px 28px rgba(30,43,74,.1); }
  .elearn-thumb { position:relative; width:100%; aspect-ratio:16/9; background:var(--navy); display:flex; align-items:center; justify-content:center; overflow:hidden; }
  .elearn-thumb img { width:100%; height:100%; object-fit:cover; }
  .elearn-play { position:absolute; width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.9); display:flex; align-items:center; justify-content:center; font-size:22px; color:var(--navy); box-shadow:0 4px 16px rgba(0,0,0,.2); }
  .elearn-fam-badge { position:absolute; top:10px; left:10px; font-size:10px; font-weight:700; padding:3px 8px; border-radius:4px; color:#fff; font-family:'Montserrat',sans-serif; }
  .elearn-new-badge { position:absolute; top:10px; right:10px; background:#FF3B30; color:#fff; font-size:9px; font-weight:800; padding:3px 8px; border-radius:4px; letter-spacing:.5px; }
  .elearn-body { padding:14px 16px; }
  .elearn-card-title { font-size:14px; font-weight:700; color:var(--navy); line-height:1.3; margin-bottom:6px; }
  .elearn-meta { display:flex; align-items:center; gap:12px; font-size:12px; color:var(--muted); margin-bottom:10px; }
  .elearn-price { font-size:18px; font-weight:800; color:var(--copper); font-family:'Montserrat',sans-serif; }
  .elearn-actions { display:flex; gap:8px; margin-top:10px; }
  .elearn-btn-buy { flex:1; background:var(--copper); color:#fff; border:none; padding:9px; border-radius:8px; font-family:'Montserrat',sans-serif; font-size:12px; font-weight:700; cursor:pointer; transition:all .2s; }
  .elearn-btn-buy:hover { background:#b06040; }
  .elearn-btn-preview { flex:0; background:rgba(30,43,74,.06); color:var(--navy); border:1.5px solid var(--border-light); padding:9px 14px; border-radius:8px; font-family:'Montserrat',sans-serif; font-size:12px; font-weight:600; cursor:pointer; transition:all .2s; }
  .elearn-btn-preview:hover { border-color:var(--navy); }
  .elearn-promo-badge { position:absolute; bottom:10px; left:10px; background:#E74C3C; color:#fff; font-size:10px; font-weight:800; padding:3px 8px; border-radius:4px; letter-spacing:.5px; }
  .elearn-price-old { font-size:13px; color:var(--muted); text-decoration:line-through; font-weight:500; margin-right:6px; }
  .elearn-price-promo { font-size:18px; font-weight:800; color:var(--copper); font-family:'Montserrat',sans-serif; }
  .video-player-overlay { position:fixed; inset:0; background:rgba(0,0,0,.92); z-index:9999; display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .3s; }
  .video-player-overlay.open { opacity:1; pointer-events:all; }
  .video-player-wrap { width:90vw; max-width:1100px; position:relative; }
  .video-player-wrap video { width:100%; border-radius:8px; background:#000; }
  .video-player-title { position:absolute; top:-36px; left:0; color:#fff; font-size:15px; font-weight:700; font-family:'Montserrat',sans-serif; }
  .video-player-close { position:absolute; top:-40px; right:0; background:none; border:none; color:#fff; font-size:24px; cursor:pointer; opacity:.7; transition:opacity .2s; }
  .video-player-close:hover { opacity:1; }

  /* ── MSG OVERLAY ── */
  .msg-overlay {
    position:fixed; inset:0; background:rgba(30,43,74,.55); backdrop-filter:blur(4px);
    z-index:600; display:flex; align-items:flex-end; justify-content:flex-end;
    padding:80px 24px 24px; opacity:0; pointer-events:none; transition:opacity .3s;
  }
  .msg-overlay.open { opacity:1; pointer-events:all; }
  .msg-panel {
    width:380px; max-width:96vw; height:520px; max-height:80vh; background:#F5EFE6;
    border-radius:16px; box-shadow:0 20px 60px rgba(30,43,74,.2);
    display:flex; flex-direction:column; overflow:hidden;
    transform:translateY(30px) scale(.96); transition:transform .35s cubic-bezier(.34,1.56,.64,1);
  }
  .msg-overlay.open .msg-panel { transform:translateY(0) scale(1); }
  .msg-head { background:#075E54; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
  .msg-head h3 { font-size:15px; font-weight:700; color:#fff; }
  .msg-head p { font-size:11px; color:rgba(255,255,255,.55); margin-top:2px; }
  .msg-messages { flex:1; overflow-y:auto; padding:12px 0; display:flex; flex-direction:column; gap:2px; background:#F5EFE6; font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif; }
  .msg-row { display:flex; margin-bottom:4px; padding:0 12px; }
  .msg-row.msg-sent { justify-content:flex-end; }
  .msg-row.msg-received { justify-content:flex-start; }
  .msg-bubble { max-width:75%; padding:10px 14px; font-size:13.5px; line-height:1.45; position:relative; box-shadow:0 1px 2px rgba(0,0,0,.08); word-break:break-word; }
  .msg-sent .msg-bubble { background:#1E2B4A; color:#fff; border-radius:16px 4px 16px 16px; }
  .msg-received .msg-bubble { background:#F0F2F5; color:#1E2B4A; border-radius:4px 16px 16px 16px; }
  .msg-bubble .msg-time { font-size:10px; margin-top:4px; opacity:.55; text-align:right; }
  .msg-empty { text-align:center; color:var(--muted); font-size:13px; padding:20px 0; }
  .pwd-wrap { position:relative; }
  .pwd-wrap input { width:100%; padding-right:42px; }
  .pwd-eye {
    position:absolute; right:12px; top:50%; transform:translateY(-50%);
    background:none; border:none; cursor:pointer; color:var(--muted);
    font-size:16px; padding:4px; line-height:1; transition:color .2s;
  }
  .pwd-eye:hover { color:var(--navy); }
  .msg-footer { padding:8px 10px; background:#F0EBE3; display:flex; gap:8px; flex-shrink:0; align-items:flex-end; }
  .msg-input {
    flex:1; padding:10px 16px; border:none; border-radius:20px;
    font-size:13px; font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;
    outline:none; background:#fff; box-shadow:inset 0 1px 3px rgba(0,0,0,.06);
    resize:none; min-height:40px; max-height:120px; overflow-y:auto;
    line-height:1.4; display:block;
  }
  .msg-send { width:38px; height:38px; border-radius:50%; background:#075E54; border:none; color:#fff; font-size:16px; cursor:pointer; flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:background .2s; }
  .msg-send:hover { background:#064E46; }

  /* ── RATING GATE ── */
  .rating-gate-overlay {
    position:fixed; inset:0; background:rgba(30,43,74,.85); backdrop-filter:blur(8px);
    z-index:900; display:flex; align-items:center; justify-content:center;
    padding:20px; opacity:0; pointer-events:none; transition:opacity .3s;
  }
  .rating-gate-overlay.open { opacity:1; pointer-events:all; }
  .rating-gate-modal { background:#fff; border-radius:20px; width:100%; max-width:500px; box-shadow:0 30px 80px rgba(0,0,0,.35); transform:scale(.92) translateY(20px); transition:transform .4s cubic-bezier(.34,1.56,.64,1); overflow:hidden; }
  .rating-gate-overlay.open .rating-gate-modal { transform:scale(1) translateY(0); }
  .rating-gate-head { background:linear-gradient(135deg,#1E2B4A,#2A3A5C); padding:28px 32px 24px; text-align:center; }
  .rating-gate-emoji { font-size:44px; display:block; margin-bottom:12px; }
  .rating-gate-title { font-family:'Cormorant Garamond',serif; font-size:24px; font-weight:600; color:#F5EFE6; margin-bottom:6px; }
  .rating-gate-sub { font-size:13px; color:rgba(245,239,230,.5); line-height:1.5; }
  .rating-gate-body { padding:28px 32px; }
  .rating-gate-formation { font-size:14px; font-weight:700; color:var(--navy); margin-bottom:4px; }
  .rating-gate-id { font-size:11px; color:var(--muted); margin-bottom:20px; }
  .rating-gate-stars { display:flex; justify-content:center; gap:8px; margin-bottom:8px; }
  .rating-gate-stars .gstar { font-size:36px; color:#d4c4a8; cursor:pointer; transition:all .15s; line-height:1; }
  .rating-gate-stars .gstar.active { color:var(--amber); transform:scale(1.1); }
  .rating-gate-stars:hover .gstar { color:var(--amber); }
  .rating-gate-stars .gstar:hover ~ .gstar { color:#d4c4a8 !important; transform:scale(1) !important; }
  .rating-gate-label { text-align:center; font-size:13px; color:var(--muted); margin-bottom:16px; min-height:20px; }
  .rating-gate-comment-label { font-size:11px; color:var(--copper); font-weight:700; margin-bottom:6px; display:block; }
  .rating-gate-comment { width:100%; padding:10px 14px; border:1.5px solid var(--border-light); border-radius:8px; font-family:'Montserrat',sans-serif; font-size:13px; resize:none; min-height:80px; outline:none; transition:border-color .2s; }
  .rating-gate-comment:focus { border-color:var(--navy); }
  .rating-gate-warning { font-size:12px; color:var(--copper); margin-bottom:8px; }
  .btn-rating-submit { width:100%; padding:14px; background:var(--navy); border:none; color:#fff; font-family:'Montserrat',sans-serif; font-size:14px; font-weight:700; border-radius:8px; cursor:pointer; transition:all .2s; margin-top:8px; opacity:.4; pointer-events:none; }
  .btn-rating-submit.ready { opacity:1; pointer-events:all; }
  .btn-rating-submit.ready:hover { background:var(--copper); }
  .rating-progress { text-align:center; font-size:12px; color:var(--muted); margin-top:12px; }
  .rating-skip { display:block; text-align:center; font-size:11px; color:var(--muted); margin-top:10px; cursor:pointer; text-decoration:underline; opacity:.6; }

  /* ── CERTIFICAT ── */
  .cert-overlay { position:fixed; inset:0; background:rgba(30,43,74,.7); backdrop-filter:blur(6px); z-index:700; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; pointer-events:none; transition:opacity .3s; }
  .cert-overlay.open { opacity:1; pointer-events:all; }
  .cert-modal { background:#fff; border-radius:16px; width:100%; max-width:640px; box-shadow:0 30px 90px rgba(0,0,0,.3); transform:scale(.94); transition:transform .35s cubic-bezier(.34,1.56,.64,1); overflow:hidden; }
  .cert-overlay.open .cert-modal { transform:scale(1); }
  .cert-preview { background:linear-gradient(135deg,#1E2B4A 0%,#2A3A5C 100%); padding:52px 48px; text-align:center; position:relative; overflow:hidden; }
  .cert-preview::before { content:''; position:absolute; inset:0; border:20px solid rgba(201,151,58,.08); pointer-events:none; }
  .cert-icon { font-size:48px; margin-bottom:16px; display:block; }
  .cert-title { font-size:11px; font-weight:700; letter-spacing:4px; text-transform:uppercase; color:rgba(212,160,84,.7); margin-bottom:20px; }
  .cert-name { font-family:'Cormorant Garamond',serif; font-size:36px; font-weight:700; font-style:italic; color:#F5EFE6; margin-bottom:24px; line-height:1.1; }
  .cert-for { font-size:13px; color:rgba(245,239,230,.5); margin-bottom:8px; }
  .cert-family { font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:600; color:var(--amber); margin-bottom:24px; }
  .cert-date { font-size:12px; color:rgba(245,239,230,.4); }
  .cert-footer { padding:20px 28px; display:flex; gap:10px; justify-content:flex-end; }
  .btn-cert-dl { background:var(--navy); color:#fff; border:none; padding:10px 24px; border-radius:6px; font-size:13px; font-weight:700; cursor:pointer; font-family:'Montserrat',sans-serif; transition:all .2s; display:flex; align-items:center; gap:7px; }
  .btn-cert-dl:hover { background:var(--copper); }
  .btn-cert-close { background:transparent; color:var(--muted); border:1.5px solid var(--border-light); padding:10px 18px; border-radius:6px; font-size:13px; font-weight:600; cursor:pointer; font-family:'Montserrat',sans-serif; transition:all .2s; }
  .btn-cert-close:hover { border-color:var(--navy); color:var(--navy); }
  .cert-badge { display:inline-flex; align-items:center; gap:5px; background:rgba(212,160,84,.15); border:1px solid rgba(212,160,84,.3); color:var(--amber); font-size:11px; font-weight:700; padding:4px 12px; border-radius:20px; cursor:pointer; transition:all .2s; margin-top:8px; }

  /* ── TARIFS ── */
  .tarifs-section { background:var(--bg2); padding:60px; border-top:2px solid var(--border-light); }
  .tarifs-title { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:600; color:var(--text); margin-bottom:8px; }
  .tarifs-sub { font-size:13px; color:var(--muted); margin-bottom:32px; }
  .tarifs-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:16px; }
  .tarif-card { background:#fff; border:1.5px solid var(--border-light); border-radius:12px; padding:24px 20px; text-align:center; transition:all .25s; }
  .tarif-card:hover { border-color:var(--navy); transform:translateY(-3px); box-shadow:0 8px 24px var(--shadow); }
  .tarif-icon { font-size:28px; margin-bottom:12px; }
  .tarif-name { font-size:14px; font-weight:700; color:var(--text); margin-bottom:6px; }
  .tarif-desc { font-size:12px; color:var(--muted); line-height:1.6; margin-bottom:16px; }
  /* ── Financement pages overlay ── */
  .finpage-overlay { position:fixed; inset:0; z-index:7000; background:#F5EFE6; overflow-y:auto; transform:translateX(100%); transition:transform .4s cubic-bezier(.4,0,.2,1); }
  .finpage-overlay.open { transform:translateX(0); }
  .finpage-header { background:linear-gradient(135deg,#1E2B4A,#2A3A5C); padding:40px 40px 32px; position:relative; }
  .finpage-icon { font-size:36px; margin-bottom:10px; }
  .finpage-title { font-family:'Cormorant Garamond',serif; font-size:28px; color:#F5EFE6; font-weight:600; }
  .finpage-body { max-width:780px; margin:0 auto; padding:36px 24px 60px; }
  .finpage-section { margin-bottom:28px; }
  .finpage-section h3 { font-family:'Cormorant Garamond',serif; font-size:20px; color:var(--navy); margin:0 0 10px; }
  .finpage-section p { font-size:14px; color:var(--text); line-height:1.8; margin:0 0 8px; }
  .finpage-steps { counter-reset:fpstep; list-style:none; padding:0; margin:12px 0; }
  .finpage-steps li { counter-increment:fpstep; display:flex; align-items:flex-start; gap:12px; padding:10px 0; border-bottom:1px solid var(--border-light); font-size:14px; color:var(--text); line-height:1.6; }
  .finpage-steps li::before { content:counter(fpstep); background:#C4714A; color:#fff; width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; flex-shrink:0; }
  .finpage-link { display:inline-flex; align-items:center; gap:6px; color:#3B82F6; font-weight:600; font-size:13px; text-decoration:none; margin:4px 0; }
  .finpage-link:hover { text-decoration:underline; }
  .finpage-cta { display:inline-block; background:#C4714A; color:#fff; padding:12px 28px; border-radius:10px; font-family:'Montserrat',sans-serif; font-size:14px; font-weight:700; text-decoration:none; cursor:pointer; border:none; transition:all .2s; margin-right:10px; margin-top:8px; }
  .finpage-cta:hover { background:#b06040; transform:translateY(-1px); }
  .finpage-cta.outline { background:transparent; color:var(--navy); border:2px solid var(--navy); }
  .finpage-cta.outline:hover { background:rgba(30,43,74,.05); }

  .fin-card-btn {
    display:inline-block; background:#C4714A; color:#fff; text-decoration:none;
    padding:10px 20px; border-radius:8px; font-family:'Montserrat',sans-serif;
    font-size:12px; font-weight:700; transition:all .2s; cursor:pointer;
  }
  .fin-card-btn:hover { background:#b06040; transform:translateY(-1px); }
  .tarif-price { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:700; color:var(--navy); line-height:1; }
  .tarif-price span { font-size:14px; font-weight:400; color:var(--muted); font-family:'Montserrat',sans-serif; }
  .tarif-badge { display:inline-block; font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase; padding:3px 10px; border-radius:3px; margin-top:10px; background:rgba(196,113,74,.1); color:var(--copper); }

  /* ── TEMOIGNAGES ── */
  .temoignages-section { background:var(--cream); padding:60px; border-top:2px solid var(--border-light); }
  .temo-title { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:600; color:var(--text); margin-bottom:32px; }
  .temo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
  .temo-card { background:#fff; border:1.5px solid var(--border-light); border-radius:12px; padding:24px; transition:all .25s; display:flex; flex-direction:column; }
  .temo-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px var(--shadow); }
  .temo-stars-row { color:var(--amber); font-size:14px; margin-bottom:12px; }
  .temo-quote { font-size:13px; font-style:italic; color:var(--text); line-height:1.7; margin-bottom:16px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; white-space:normal; word-wrap:break-word; overflow-wrap:break-word; }
  .temo-author-row { display:flex; align-items:center; gap:10px; margin-top:auto; }
  .temo-avatar { width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; color:#fff; flex-shrink:0; }
  .temo-author-name { font-size:13px; font-weight:700; color:var(--text); }
  .temo-author-role { font-size:11px; color:var(--muted); }

  /* ── CONTACT ── */
  .contact-section { background:var(--navy); padding:60px; }
  .contact-inner { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
  .contact-info-title { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:300; font-style:italic; color:#F5EFE6; margin-bottom:16px; }
  .contact-info-desc { font-size:14px; color:rgba(245,239,230,.5); line-height:1.8; margin-bottom:28px; font-weight:300; }
  .contact-info-item { display:flex; gap:12px; align-items:flex-start; margin-bottom:14px; }
  .contact-info-icon { font-size:16px; flex-shrink:0; }
  .contact-info-text { font-size:13px; color:rgba(245,239,230,.65); line-height:1.5; }
  .contact-form-wrap { background:rgba(245,239,230,.05); border:1px solid rgba(143,168,184,.15); border-radius:12px; padding:28px; }
  .contact-form-title { font-size:16px; font-weight:700; color:#F5EFE6; margin-bottom:20px; }
  .contact-field { margin-bottom:14px; }
  .contact-field label { display:block; font-size:11px; font-weight:600; color:rgba(245,239,230,.45); text-transform:uppercase; letter-spacing:.8px; margin-bottom:6px; }
  .contact-field input, .contact-field textarea, .contact-field select { width:100%; padding:10px 14px; border:1px solid rgba(143,168,184,.2); border-radius:6px; background:rgba(245,239,230,.06); color:#F5EFE6; font-family:'Montserrat',sans-serif; font-size:13px; outline:none; transition:border-color .2s; }
  .contact-field input::placeholder, .contact-field textarea::placeholder { color:rgba(245,239,230,.25); }
  .contact-field input:focus, .contact-field textarea:focus { border-color:rgba(143,168,184,.5); }
  .contact-field textarea { min-height:100px; resize:vertical; }
  .btn-contact-send { width:100%; padding:12px; background:var(--copper); border:none; color:#fff; font-family:'Montserrat',sans-serif; font-size:13px; font-weight:700; border-radius:6px; cursor:pointer; transition:all .2s; }
  .btn-contact-send:hover { background:var(--clay); transform:translateY(-1px); }

  /* ── PROFIL TABS ── */
  .profile-tabs { display:flex; border-bottom:2px solid var(--border-light); margin-bottom:16px; }
  .profile-tab { padding:8px 14px; font-size:12px; font-weight:600; color:var(--muted); cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .2s; }
  .profile-tab.active { color:var(--navy); border-bottom-color:var(--navy); }
  .profile-tab-panel { display:none; }
  .profile-tab-panel.active { display:block; }

  /* ── PIPELINE STATUT ── */
  .formation-pipeline-wrap { background:var(--bg2); border-radius:12px; padding:16px 18px; margin-bottom:14px; border:1.5px solid var(--border-light); }
  .pipeline-formation-name { font-size:13px; font-weight:700; color:var(--text); margin-bottom:4px; }
  .pipeline-formation-id { font-size:10px; color:var(--muted); margin-bottom:14px; }
  .pipeline-steps { display:flex; flex-wrap:wrap; gap:8px; }
  .pipeline-step { display:flex; flex-direction:column; align-items:center; width:calc(25% - 6px); position:relative; }
  .pipeline-step-dot { width:32px; height:32px; border-radius:50%; border:2px solid var(--border-light); background:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; z-index:1; transition:all .3s; flex-shrink:0; }
  .pipeline-step.ps-done .pipeline-step-dot { background:#22A064; border-color:#22A064; color:#fff; box-shadow:0 2px 8px rgba(34,160,100,.3); }
  .pipeline-step.ps-current .pipeline-step-dot { background:var(--navy); border-color:var(--navy); color:#fff; box-shadow:0 2px 10px rgba(30,43,74,.3); animation:pulseDot 2s infinite; }
  .pipeline-step.ps-locked .pipeline-step-dot { opacity:.35; }
  @keyframes pulseDot { 0%,100%{box-shadow:0 2px 10px rgba(30,43,74,.3)}50%{box-shadow:0 2px 18px rgba(30,43,74,.5)} }
  .pipeline-step-label { font-size:9.5px; font-weight:600; text-align:center; margin-top:7px; color:var(--text); line-height:1.3; }
  .pipeline-step.ps-locked .pipeline-step-label { opacity:.35; }
  .pipeline-step.ps-done .pipeline-step-label { color:#22A064; }
  .pipeline-step.ps-current .pipeline-step-label { color:var(--navy); font-weight:800; }
  .pipeline-step-date { font-size:9px; color:var(--muted); text-align:center; margin-top:2px; }

  /* ── ADMIN STATUTS ── */
  .admin-step-row { display:flex; align-items:center; justify-content:space-between; padding:10px 14px; border-radius:8px; margin-bottom:6px; background:var(--bg2); border:1px solid var(--border-light); transition:all .2s; }
  .admin-step-row.asr-done { background:rgba(34,160,100,.06); border-color:rgba(34,160,100,.2); }
  .asr-left { display:flex; align-items:center; gap:10px; }
  .asr-icon { font-size:18px; flex-shrink:0; }
  .asr-name { font-size:13px; font-weight:600; color:var(--text); }
  .asr-sub { font-size:11px; color:var(--muted); margin-top:1px; }
  .btn-asr-toggle { padding:5px 14px; border-radius:20px; font-size:11px; font-weight:700; cursor:pointer; border:1.5px solid; transition:all .2s; font-family:'Montserrat',sans-serif; }
  .btn-asr-check { border-color:var(--border); color:var(--muted); background:transparent; }
  .btn-asr-check:hover { border-color:#22A064; color:#22A064; }
  .btn-asr-uncheck { border-color:#22A064; color:#22A064; background:rgba(34,160,100,.08); }
  .asr-auto-badge { font-size:10px; font-weight:600; padding:3px 8px; border-radius:3px; background:rgba(143,168,184,.15); color:var(--mist); }
  .statuts-candidat-card { background:#fff; border:1.5px solid var(--border-light); border-radius:12px; padding:16px 18px; margin-bottom:10px; }
  .statuts-candidat-name { font-size:14px; font-weight:700; color:var(--text); }
  .statuts-candidat-email { font-size:11px; color:var(--muted); }
  .emarg-section { margin-top:12px; padding-top:12px; border-top:1px solid var(--border-light); }
  .emarg-title { font-size:11px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.8px; margin-bottom:8px; }
  .emarg-row { display:flex; align-items:center; justify-content:space-between; padding:6px 0; border-bottom:1px dashed var(--border-light); font-size:12px; }
  .emarg-name { font-weight:600; color:var(--text); }
  .emarg-email { color:var(--muted); font-size:11px; }
  .btn-emarg { display:inline-flex; align-items:center; gap:5px; padding:4px 12px; border-radius:20px; font-size:11px; font-weight:700; cursor:pointer; border:1.5px solid; transition:all .2s; font-family:'Montserrat',sans-serif; }
  .btn-emarg.pending { border-color:var(--border); color:var(--muted); background:transparent; }
  .btn-emarg.pending:hover { border-color:var(--sage); color:var(--sage); }
  .emarg-badge-signed { font-size:10px; font-weight:700; color:var(--sage); background:rgba(107,140,125,.1); padding:2px 8px; border-radius:3px; }


  /* ── DURÉE + PRIX SUR LES CARTES ── */
  .card-footer-info {
    display:flex; align-items:center; justify-content:space-between;
    margin-top:12px; padding-top:10px;
    border-top:1px solid var(--border-light);
    gap:8px;
  }
  .card-duree {
    display:inline-flex; align-items:center; gap:4px;
    font-size:11px; font-weight:700; padding:3px 9px; border-radius:4px;
    border:1px solid;
  }
  .duree-1j { background:rgba(107,140,125,.08); border-color:rgba(107,140,125,.25); color:#3D5C4E; }
  .duree-2j { background:rgba(143,168,184,.10); border-color:rgba(143,168,184,.3);  color:#1E2B4A; }
  .duree-3j { background:rgba(212,160,84,.08);  border-color:rgba(212,160,84,.3);   color:#7A5020; }
  .duree-4j { background:rgba(196,113,74,.08);  border-color:rgba(196,113,74,.3);   color:#7A3010; }
  .duree-5j { background:rgba(184,92,66,.08);   border-color:rgba(184,92,66,.3);    color:#5A1A08; }
  .card-price {
    font-family:'Cormorant Garamond',serif;
    font-size:18px; font-weight:700; color:var(--navy);
    white-space:nowrap;
  }
  .card-price small {
    font-size:11px; font-weight:400; font-family:'Montserrat',sans-serif;
    color:var(--muted); margin-left:3px;
  }
  .btn-more-info {
    display:block; width:100%; margin-top:10px; padding:8px 0;
    background:transparent; border:1.5px solid var(--copper); color:var(--copper);
    border-radius:6px; font-family:'Montserrat',sans-serif;
    font-size:11px; font-weight:700; cursor:pointer;
    transition:all .2s; text-align:center; letter-spacing:.3px;
  }
  .btn-more-info:hover {
    background:var(--copper); color:#fff;
    box-shadow:0 3px 12px rgba(196,113,74,.3);
  }
  .coming-soon .btn-more-info { display:none; }

  /* ── BADGE "À VENIR" sur cartes ── */
  .badge-coming {
    display:inline-flex; align-items:center; gap:4px;
    background:rgba(30,43,74,.08); color:var(--muted);
    font-size:9px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
    padding:3px 9px; border-radius:3px; margin-bottom:8px;
  }
  .card.coming-soon { opacity:.7; cursor:default !important; }
  .card.coming-soon:hover { transform:none !important; box-shadow:none !important; border-color:var(--border-light) !important; }

  /* ── FAMILLES IA & HYGIENE ── */
  [data-family="ia"] .card:hover::before,
  [data-family="ia"] .card.selected::before { background:#6B8C7D !important; }
  [data-family="ia"] .tag { background:rgba(107,140,125,.1); color:#3D5C4E; }
  [data-family="hygiene"] .card:hover::before,
  [data-family="hygiene"] .card.selected::before { background:#C4714A !important; }
  [data-family="hygiene"] .tag { background:rgba(196,113,74,.1); color:#7A3010; }

  /* ── AVIS ADMIN ── */
  .avis-admin-row {
    background:#fff; border:1.5px solid var(--border-light); border-radius:10px;
    padding:14px 16px; margin-bottom:8px; display:grid;
    grid-template-columns:36px 1fr auto auto; gap:12px; align-items:start;
    transition:box-shadow .2s;
  }
  .avis-admin-row:hover { box-shadow:0 2px 10px var(--shadow-md); }
  .avis-admin-row.visible-on { border-left:3px solid var(--sage); }
  .avis-stars { color:var(--amber); font-size:13px; letter-spacing:1px; }
  .avis-date { font-size:10px; color:var(--muted); margin-top:2px; }
  .avis-comment { font-size:12px; color:var(--text); line-height:1.5; margin:4px 0; font-style:italic; }
  .avis-author { font-size:11px; font-weight:700; color:var(--navy); }
  .avis-formation { font-size:10px; color:var(--muted); margin-top:1px; }
  /* ── RESPONSIVE TABLE ADMIN ── */
  @media (max-width: 700px) {
    .candidat-table thead { display:none; }
    .candidat-table tr { display:block; margin-bottom:12px; border:1.5px solid var(--border-light); border-radius:8px; padding:8px; }
    .candidat-table td { display:flex; justify-content:space-between; align-items:center; padding:6px 8px; border:none; font-size:12px; }
    .candidat-table td::before { content:attr(data-label); font-weight:700; color:var(--muted); font-size:11px; margin-right:8px; }
    .admin-tabs { width:100% !important; flex-direction:row !important; overflow-x:auto; }
    .admin-tab { padding:10px 12px !important; font-size:11px !important; border-left:none !important; border-bottom:3px solid transparent; }
    .admin-tab.active { border-left:none !important; border-bottom-color:var(--amber) !important; }
    .admin-content-wrap { flex-direction:column !important; }
    .admin-panel { width:100vw !important; }
    .famille-admin-row { grid-template-columns:1fr 1fr !important; gap:8px !important; }
  }
  /* ── MODAL ÉDITION ── */
  .edit-overlay {
    position:fixed; inset:0; background:rgba(30,43,74,.55);
    z-index:9999; display:none; align-items:center; justify-content:center; padding:20px;
  }
  .edit-overlay.open { display:flex; }
  .edit-modal {
    background:var(--bg); border-radius:14px; padding:28px;
    width:100%; max-width:640px; max-height:90vh; overflow-y:auto;
    box-shadow:0 20px 60px rgba(0,0,0,.2);
    animation: slideUp .25s ease;
  }
  @keyframes slideUp { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
  .edit-modal-title {
    font-size:16px; font-weight:800; color:var(--navy);
    margin-bottom:20px; display:flex; justify-content:space-between; align-items:center;
  }
  /* ── MODAL DÉTAIL FINANCEMENT ── */
  .fin-detail-modal {
    background:var(--bg); border-radius:14px; padding:28px;
    width:100%; max-width:640px; max-height:90vh; overflow-y:auto;
    box-shadow:0 20px 60px rgba(0,0,0,.2);
    animation: slideUp .25s ease;
  }
  .fin-detail-section {
    background:var(--bg2); border-radius:10px; padding:16px; margin-bottom:14px;
  }
  .fin-detail-section-title {
    font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
    color:var(--muted); margin-bottom:10px;
  }
  .fin-detail-info-row {
    display:flex; justify-content:space-between; align-items:center;
    font-size:12px; padding:4px 0;
  }
  .fin-detail-info-row span:first-child { color:var(--muted); }
  .fin-detail-info-row span:last-child { font-weight:600; color:var(--text); }
  .fin-detail-actions {
    display:flex; gap:8px; justify-content:center; margin-top:14px;
  }
  .fin-detail-msg-wrap {
    display:flex; gap:8px; margin-top:8px;
  }
  .fin-detail-msg-wrap input {
    flex:1; padding:10px 14px; border:1.5px solid var(--border-light);
    border-radius:8px; font-family:'Montserrat',sans-serif; font-size:12px;
    background:var(--bg); color:var(--text);
  }
  /* ── DRAG REORDER ── */
  .drag-handle {
    cursor:grab; color:var(--muted); font-size:16px; padding:0 8px;
    user-select:none;
  }
  .drag-handle:active { cursor:grabbing; }
  .famille-admin-row.drag-over { border-color:var(--amber); background:rgba(212,160,84,.06); }
  /* ── PREVIEW CARTE ── */
  .preview-card-wrap {
    background:var(--bg2); border-radius:10px; padding:16px;
    margin-top:14px; border:1.5px dashed var(--border-light);
  }
  .preview-label { font-size:10px; font-weight:800; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:10px; }
  /* ── FORMULAIRES CRÉATION ADMIN ── */
  .create-form-box {
    background:#fff; border:1.5px solid var(--border-light);
    border-radius:12px; padding:20px; margin-bottom:24px;
  }
  .create-form-box h3 {
    font-size:13px; font-weight:800; color:var(--navy);
    text-transform:uppercase; letter-spacing:.06em; margin-bottom:16px;
    display:flex; align-items:center; gap:8px;
  }
  .create-form-row { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
  .create-form-field { display:flex; flex-direction:column; gap:4px; flex:1; min-width:160px; }
  .create-form-field label { font-size:11px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
  .create-form-field input, .create-form-field select, .create-form-field textarea {
    padding:8px 10px; border:1.5px solid var(--border-light); border-radius:7px;
    font-family:'Montserrat',sans-serif; font-size:12px; color:var(--text);
    background:#fff; transition:border-color .2s;
  }
  .create-form-field input:focus, .create-form-field select:focus, .create-form-field textarea:focus {
    outline:none; border-color:var(--navy);
  }
  .create-form-field textarea { resize:vertical; min-height:70px; }
  .btn-create-submit {
    background:var(--navy); color:#fff; border:none;
    padding:10px 22px; border-radius:8px; font-family:'Montserrat',sans-serif;
    font-size:12px; font-weight:700; cursor:pointer; transition:all .2s;
    margin-top:6px;
  }
  .btn-create-submit:hover { background:#2A3A5C; transform:translateY(-1px); }
  .custom-badge {
    font-size:9px; font-weight:800; padding:2px 7px; border-radius:3px;
    background:rgba(196,113,74,.12); color:var(--copper);
    text-transform:uppercase; letter-spacing:.05em;
  }
  .btn-delete-custom {
    background:transparent; border:1.5px solid rgba(231,76,60,.35);
    color:rgba(231,76,60,.7); padding:4px 10px; border-radius:6px;
    font-size:10px; font-weight:700; cursor:pointer; font-family:'Montserrat',sans-serif;
    transition:all .2s; white-space:nowrap;
  }
  .btn-delete-custom:hover { background:rgba(231,76,60,.08); border-color:#E74C3C; color:#E74C3C; }
  /* ── DOT COULEUR FAMILLE ── */
  .fdot {
    display:inline-block; width:10px; height:10px;
    border-radius:50%; margin-right:6px; flex-shrink:0;
    border:1.5px solid rgba(0,0,0,.08);
  }
  /* ── PANEL FAMILLES ADMIN ── */
  .famille-admin-row {
    display:grid; grid-template-columns:1fr auto auto;
    align-items:center; gap:14px;
    padding:14px 16px; background:#fff;
    border:1.5px solid var(--border-light); border-radius:10px;
    margin-bottom:10px; transition:box-shadow .2s;
  }
  .famille-admin-row:hover { box-shadow:0 2px 10px var(--shadow-md); }
  .famille-admin-name { font-size:13px; font-weight:700; color:var(--text); }
  .famille-admin-sub { font-size:11px; color:var(--muted); margin-top:2px; }
  .pastel-swatches { display:flex; flex-wrap:wrap; gap:5px; }
  .pastel-swatch {
    width:22px; height:22px; border-radius:50%; cursor:pointer;
    border:2px solid transparent; transition:all .15s;
  }
  .pastel-swatch:hover, .pastel-swatch.selected { border-color:var(--navy); transform:scale(1.2); }
  .emoji-picker-grid {
    display:grid; grid-template-columns:repeat(7,1fr); gap:4px;
    background:#fff; border:1.5px solid var(--border-light);
    border-radius:10px; padding:10px;
    box-shadow:0 4px 20px var(--shadow-md);
    position:absolute; z-index:999; width:240px;
  }
  .emoji-picker-item {
    font-size:18px; text-align:center; cursor:pointer;
    padding:4px; border-radius:6px; transition:background .15s;
  }
  .emoji-picker-item:hover { background:var(--bg2); }
  .famille-emoji-btn {
    font-size:20px; background:var(--bg2); border:1.5px solid var(--border-light);
    border-radius:8px; padding:4px 8px; cursor:pointer;
    transition:all .2s; min-width:42px; text-align:center;
  }
  .famille-emoji-btn:hover { border-color:var(--navy); }
  /* ── FORMATION INACTIVE (masquée du catalogue) ── */
  .card.formation-inactive {
    display: none !important;
  }
  /* Toggle bouton dans l'admin */
  .toggle-actif {
    display:inline-flex; align-items:center; gap:5px;
    padding:5px 10px; border-radius:20px; border:none;
    font-family:'Montserrat',sans-serif; font-size:11px; font-weight:700;
    cursor:pointer; transition:all .2s; white-space:nowrap;
  }
  .toggle-actif.is-active {
    background:rgba(107,140,125,.15); color:#3D5C4E; border:1.5px solid rgba(107,140,125,.4);
  }
  .toggle-actif.is-active:hover { background:rgba(107,140,125,.25); }
  .toggle-actif.is-inactive {
    background:rgba(231,76,60,.08); color:#C0392B; border:1.5px solid rgba(231,76,60,.3);
  }
  .toggle-actif.is-inactive:hover { background:rgba(231,76,60,.15); }


  /* ── ATTESTATIONS ── */
  .attestation-item {
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 16px; border-radius:10px; margin-bottom:8px;
    background:#fff; border:1.5px solid var(--border-light);
    transition:all .2s;
  }
  .attestation-item:hover { border-color:rgba(30,43,74,.2); }
  .attestation-left { display:flex; align-items:center; gap:12px; flex:1; min-width:0; }
  .attestation-icon { width:38px; height:38px; border-radius:8px; background:linear-gradient(135deg,#1E2B4A,#2A3A5C); display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
  .attestation-title { font-size:13px; font-weight:700; color:var(--text); margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .attestation-meta  { font-size:11px; color:var(--muted); }
  .btn-dl-attestation {
    display:inline-flex; align-items:center; gap:6px;
    padding:7px 14px; border-radius:6px; font-size:11px; font-weight:700;
    background:var(--navy); color:#fff; border:none; cursor:pointer;
    font-family:'Montserrat',sans-serif; transition:all .2s; flex-shrink:0;
    white-space:nowrap;
  }
  .btn-dl-attestation:hover { background:var(--copper); transform:translateY(-1px); }
  .attestations-empty { font-size:12px; color:var(--muted); padding:10px 0; text-align:center; line-height:1.6; }

  /* ═══════════ SECTION BANNERS ═══════════ */
  .section-banner {
    width:100%; padding:16px 48px; display:flex; align-items:center;
    justify-content:space-between; font-family:'Montserrat',sans-serif;
    border-top:1px solid rgba(255,255,255,.1); border-bottom:1px solid rgba(255,255,255,.1);
  }
  .section-banner-left { display:flex; align-items:center; gap:14px; flex:1; }
  .section-banner-icon { font-size:24px; flex-shrink:0; }
  .section-banner-title { color:#F5EFE6; font-weight:700; font-size:14px; }
  .section-banner-sub { color:rgba(255,255,255,.65); font-size:12px; margin-top:2px; }
  .section-banner-btn {
    background:#fff; border:none; padding:10px 22px; border-radius:6px;
    font-weight:700; font-size:13px; cursor:pointer; font-family:'Montserrat',sans-serif;
    flex-shrink:0; white-space:nowrap; transition:opacity .2s;
  }
  .section-banner-btn:hover { opacity:.85; }
  .section-banner-back {
    background:transparent; border:1px solid rgba(255,255,255,.4); color:#fff;
    padding:6px 14px; border-radius:6px; font-family:'Montserrat',sans-serif;
    font-size:11px; font-weight:600; cursor:pointer; white-space:nowrap; flex-shrink:0;
    margin-right:4px; transition:all .2s;
  }
  .section-banner-back:hover { background:rgba(255,255,255,.12); }
  @media(max-width:700px) { .section-banner { padding:14px 16px; } }

  /* ═══════════ MASTERCLASSES ═══════════ */
  #masterclassPage {
    position:fixed; inset:0; z-index:7000; background:var(--bg);
    overflow-y:auto; transform:translateX(100%);
    transition:transform .4s cubic-bezier(.4,0,.2,1);
  }
  #masterclassPage.open { transform:translateX(0); }
  .mc-header {
    background:linear-gradient(135deg,#D4A054 0%,#C4903E 60%,#D4A054 100%);
    padding:44px 60px 38px; position:relative; overflow:hidden;
  }
  .mc-header::before {
    content:''; position:absolute; top:-80px; right:-80px; width:400px; height:400px;
    background:radial-gradient(circle,rgba(212,160,84,.2) 0%,transparent 65%); pointer-events:none;
  }
  .mc-header-inner { position:relative; z-index:1; max-width:900px; margin:0 auto; }
  .mc-header h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(28px,4vw,48px); font-weight:600; color:#F5EFE6; }
  .mc-header h1 em { color:var(--amber); font-style:italic; }
  .mc-header p { margin-top:10px; color:rgba(245,239,230,.5); font-size:14px; max-width:500px; line-height:1.7; font-weight:300; }
  .mc-body { max-width:1000px; margin:0 auto; padding:40px 40px 80px; }
  .mc-section-title { font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:600; color:var(--navy); margin-bottom:6px; }
  .mc-section-title span { color:var(--amber); font-style:italic; }
  .mc-divider { width:48px; height:3px; background:var(--amber); margin:10px 0 28px; border-radius:2px; }
  .mc-video-wrap { width:100%; aspect-ratio:16/9; background:#000; border-radius:14px; overflow:hidden; margin-bottom:32px; }
  .mc-video-wrap iframe { width:100%; height:100%; border:none; }
  .mc-video-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.3); font-size:48px; }
  .mc-accroche { font-size:15px; color:var(--text-soft); line-height:1.8; max-width:700px; margin-bottom:40px; }
  .mc-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(420px,1fr)); gap:24px; }
  .mc-card {
    background:#fff; border:1.5px solid var(--border-light); border-radius:16px;
    overflow:hidden; transition:all .25s cubic-bezier(.4,0,.2,1);
    display:flex; flex-direction:column;
  }
  .mc-card:hover { transform:translateY(-4px); box-shadow:0 12px 36px rgba(30,43,74,.12); border-color:rgba(212,160,84,.3); }
  .mc-card-img {
    width:100%; height:200px; object-fit:cover; display:block;
  }
  .mc-card-img-placeholder {
    width:100%; height:200px; background:linear-gradient(135deg,#1E2B4A,#2A3A5C);
    display:flex; align-items:center; justify-content:center;
    font-family:'Montserrat',sans-serif; font-size:14px; font-weight:800;
    letter-spacing:4px; color:rgba(245,239,230,.12); text-transform:uppercase;
  }
  .mc-card-top {
    background:linear-gradient(135deg,#1E2B4A,#2A3A5C); padding:16px 20px; position:relative;
  }
  .mc-card-top .mc-badge-complet { position:absolute; top:12px; right:12px; background:#E74C3C; color:#fff; font-size:10px; font-weight:800; padding:3px 10px; border-radius:4px; letter-spacing:.5px; z-index:2; }
  .mc-card-title { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:600; color:#F5EFE6; line-height:1.3; }
  .mc-card-desc { font-size:12px; color:rgba(245,239,230,.55); margin-top:6px; line-height:1.5; }
  .mc-card-body { padding:18px 20px; flex:1; display:flex; flex-direction:column; }
  .mc-card-meta { display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
  .mc-card-meta-row { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-soft); }
  .mc-card-meta-row span:first-child { width:20px; text-align:center; flex-shrink:0; }
  .mc-card-price { font-size:24px; font-weight:800; color:var(--amber); font-family:'Montserrat',sans-serif; margin-bottom:14px; }
  .mc-card-actions { display:flex; gap:8px; margin-top:auto; }
  .mc-btn-reserve {
    flex:1; background:var(--amber); color:#fff; border:none; padding:11px;
    border-radius:8px; font-family:'Montserrat',sans-serif; font-size:13px;
    font-weight:700; cursor:pointer; transition:all .2s;
    display:flex; align-items:center; justify-content:center; gap:6px;
  }
  .mc-btn-reserve:hover { background:#c08a30; }
  .mc-btn-reserve:disabled { background:#d4c4a8; cursor:not-allowed; }
  .mc-btn-finance {
    background:transparent; border:1.5px solid var(--border); color:var(--text-soft);
    padding:11px 14px; border-radius:8px; font-family:'Montserrat',sans-serif;
    font-size:12px; font-weight:600; cursor:pointer; transition:all .2s;
  }
  .mc-btn-finance:hover { border-color:var(--amber); color:var(--amber); }
  /* MC Agenda Modal */
  .mc-agenda-overlay {
    position:fixed; inset:0; background:rgba(30,43,74,.55); backdrop-filter:blur(4px);
    z-index:600; display:flex; align-items:center; justify-content:center;
    opacity:0; pointer-events:none; transition:opacity .3s; padding:20px;
  }
  .mc-agenda-overlay.open { opacity:1; pointer-events:all; }
  .mc-agenda-modal {
    background:var(--bg); border-radius:18px; width:100%; max-width:700px;
    max-height:88vh; overflow-y:auto; box-shadow:0 30px 90px rgba(0,0,0,.25);
  }
  .mc-agenda-head {
    background:#D4A054; padding:22px 28px; border-radius:18px 18px 0 0;
    display:flex; align-items:center; justify-content:space-between;
    position:sticky; top:0; z-index:2;
  }
  .mc-agenda-head h2 { font-family:'Cormorant Garamond',serif; font-size:22px; color:#fff; }
  .mc-agenda-body { padding:24px 28px; }
  .mc-agenda-item {
    background:#fff; border:1.5px solid var(--border-light); border-radius:12px;
    padding:18px 20px; margin-bottom:14px; transition:all .2s;
  }
  .mc-agenda-item:hover { border-color:rgba(212,160,84,.35); box-shadow:0 4px 16px rgba(212,160,84,.1); }
  .mc-agenda-date-badge {
    display:inline-flex; align-items:center; gap:6px;
    background:#D4A054; color:#fff; font-size:11px; font-weight:700;
    padding:4px 10px; border-radius:4px; margin-bottom:10px;
  }
  .mc-agenda-title { font-size:16px; font-weight:700; color:var(--navy); margin-bottom:4px; }
  .mc-agenda-meta { display:flex; flex-wrap:wrap; gap:12px; font-size:12px; color:var(--muted); margin-bottom:12px; }
  .mc-agenda-meta span { display:flex; align-items:center; gap:4px; }
  .mc-agenda-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
  .mc-agenda-price { font-size:20px; font-weight:800; color:#D4A054; font-family:'Montserrat',sans-serif; }
  .mc-agenda-places { font-size:12px; color:var(--muted); }
  .mc-agenda-btn {
    background:#D4A054; color:#fff; border:none; padding:10px 22px;
    border-radius:8px; font-family:'Montserrat',sans-serif; font-size:13px;
    font-weight:700; cursor:pointer; transition:all .2s;
  }
  .mc-agenda-btn:hover { background:#c08a30; }
  .mc-agenda-btn:disabled { background:#d4c4a8; cursor:not-allowed; }
  .mc-agenda-empty { text-align:center; padding:40px 20px; color:var(--muted); font-size:14px; }

  @media(max-width:700px) {
    .mc-header { padding:32px 20px; }
    .mc-body { padding:28px 20px 60px; }
    .mc-grid { grid-template-columns:1fr; gap:16px; }
  }

  /* ═══════════ ANIMATIONS ═══════════ */
  @keyframes fadeUp {
    from { opacity:0; transform:translateY(20px); }
    to   { opacity:1; transform:translateY(0); }
  }
  @keyframes cartBounce {
    0%   { transform:scale(1); }
    30%  { transform:scale(1.5); }
    60%  { transform:scale(0.9); }
    80%  { transform:scale(1.15); }
    100% { transform:scale(1); }
  }
  .stagger-animate .hero-nav           { animation:fadeUp .4s ease both; animation-delay:0s; }
  .stagger-animate .hero-content       { animation:fadeUp .6s ease both; animation-delay:.15s; }
  .stagger-animate .hero-cta-row       { animation:fadeUp .4s ease both; animation-delay:.3s; }
  .stagger-animate .hero-stats         { animation:fadeUp .4s ease both; animation-delay:.45s; }
  .stagger-animate .nda-badge          { animation:fadeUp .3s ease both; animation-delay:.6s; }
  .cart-badge-bounce { animation:cartBounce .5s ease; }
  @keyframes msgPulse {
    0%,100% { transform:scale(1); box-shadow:0 0 0 0 rgba(255,59,48,.4); }
    50% { transform:scale(1.1); box-shadow:0 0 0 6px rgba(255,59,48,0); }
  }
  .msg-badge-pulse { animation:msgPulse .6s ease 3; }

  /* ═══════════ LANDING PAGE ═══════════ */
  #landingPage {
    position:fixed; inset:0; z-index:8000;
    background:#F5EFE6;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    padding:0; overflow:hidden; transition:opacity .4s ease;
  }
  #landingPage.hidden { opacity:0; pointer-events:none; }

  .hero-content {
    display:flex; flex-direction:column; align-items:center;
    text-align:center; padding:0 32px; max-width:720px; width:100%;
  }
  .hero-eyebrow {
    font-family:'Montserrat',sans-serif; font-size:12px; font-weight:700;
    letter-spacing:3.5px; color:#C4714A; margin-bottom:28px;
  }
  .hero-title {
    font-family:Georgia,'Cormorant Garamond',serif;
    font-size:clamp(32px,5vw,54px); font-weight:700; line-height:1.15;
    color:#1E2B4A; margin:0 0 24px;
  }
  .hero-subtitle {
    font-family:'Montserrat',sans-serif; font-size:16px; font-weight:400;
    line-height:1.7; color:#5A6B82; max-width:540px; margin:0 0 40px;
  }
  .hero-cta-row {
    display:flex; gap:16px; flex-wrap:wrap; justify-content:center; margin-bottom:24px;
  }
  .hero-cta-primary {
    font-family:'Montserrat',sans-serif; font-size:14px; font-weight:700;
    padding:15px 36px; border-radius:6px; border:none; cursor:pointer;
    background:#1E2B4A; color:#F5EFE6; transition:all .25s;
  }
  .hero-cta-primary:hover { background:#2A3A5C; transform:translateY(-2px); box-shadow:0 8px 24px rgba(30,43,74,.2); }

  .hero-stats {
    display:flex; align-items:center; gap:40px; margin-bottom:32px;
  }
  .hero-stat { display:flex; flex-direction:column; align-items:center; gap:4px; }
  .hero-stat-num {
    font-family:Georgia,'Cormorant Garamond',serif;
    font-size:36px; font-weight:700; color:#1E2B4A; line-height:1;
  }
  .hero-stat-label {
    font-family:'Montserrat',sans-serif; font-size:12px; font-weight:500;
    color:#8FA8B8; letter-spacing:.5px;
  }
  .hero-stat-sep {
    width:1px; height:40px; background:rgba(30,43,74,.15);
  }
  .nda-badge {
    display:block; margin:0 auto; width:fit-content;
    border:1px solid rgba(196,113,74,.35); background:rgba(196,113,74,.06); color:#1E2B4A;
    font-family:'Montserrat',sans-serif; font-size:10px; letter-spacing:.8px;
    padding:8px 18px; border-radius:20px; text-align:center;
  }

  /* ── HERO NAV ── */
  .hero-nav {
    position:absolute; top:0; left:0; right:0; z-index:1;
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 40px;
  }
  .hero-nav-logo {
    display:flex; align-items:center; gap:14px; flex-shrink:0;
  }
  .hero-nav-logo-text {
    display:flex; flex-direction:column;
  }
  .hero-nav-logo-name {
    font-family:Georgia,serif; font-size:26px; font-weight:700;
    color:#1E2B4A; letter-spacing:3px; line-height:1;
  }
  .hero-nav-amp { color:#C4714A; font-weight:400; }
  .hero-nav-logo-baseline {
    font-family:'Montserrat',sans-serif; font-size:9px; font-weight:600;
    color:#8FA8B8; letter-spacing:3.5px; margin-top:5px;
  }
  .hero-nav-links {
    display:flex; align-items:center; gap:36px;
  }
  .hero-nav-link {
    background:none; border:none; cursor:pointer;
    font-family:'Montserrat',sans-serif; font-size:16px; font-weight:600;
    color:#1E2B4A; transition:color .2s; padding:0; letter-spacing:.3px;
  }
  .hero-nav-link:hover { color:#C4714A; }
  .hero-nav-auth {
    display:flex; align-items:center; gap:10px; flex-shrink:0;
  }
  .landing-topbar-btn {
    font-family:'Montserrat',sans-serif; font-size:13px; font-weight:700;
    padding:9px 22px; border-radius:6px; cursor:pointer; transition:all .2s;
  }
  .landing-topbar-btn.outline {
    background:transparent; border:1.5px solid #1E2B4A; color:#1E2B4A;
  }
  .landing-topbar-btn.outline:hover { background:rgba(30,43,74,0.06); }
  .landing-topbar-btn.filled {
    background:#1E2B4A; border:1.5px solid #1E2B4A; color:#F5EFE6;
  }
  .landing-topbar-btn.filled:hover { background:#2A3A5C; }
  #overlayAuth { z-index:8500; }

  /* ── Admin toggle slider ── */
  .admin-slider {
    position:absolute; cursor:pointer; inset:0;
    background:#c5cedc; border-radius:24px; transition:background .2s;
  }
  .admin-slider::after {
    content:''; position:absolute; top:2px; left:2px;
    width:20px; height:20px; border-radius:50%; background:#fff;
    box-shadow:0 1px 3px rgba(0,0,0,.15); transition:transform .2s;
  }
  input:checked + .admin-slider { background:var(--sage); }
  input:checked + .admin-slider::after { transform:translateX(20px); }

  @media(max-width:900px) {
    .hero-nav { flex-wrap:wrap; gap:12px; padding:16px 20px; justify-content:center; }
    .hero-nav-links { gap:20px; }
    .hero-nav-link { font-size:13px; }
    .hero-nav-logo-name { font-size:22px; }
  }
  @media(max-width:600px) {
    .hero-nav-links { display:none; }
    .hero-nav { justify-content:space-between; }
    .hero-title { font-size:28px; }
    .hero-subtitle { font-size:14px; }
    .hero-cta-row { width:100%; }
    .hero-cta-primary { width:100%; }
    .hero-stats { gap:24px; }
    .hero-stat-num { font-size:28px; }
  }

  /* ═══════════ LA MAISON HUB & CO ═══════════ */
  #maisonOverlay { position:fixed; inset:0; z-index:7000; background:#F5EFE6; overflow-y:auto; transform:translateX(100%); transition:transform .4s cubic-bezier(.4,0,.2,1); }
  #maisonOverlay.open { transform:translateX(0); }
  .maison-header { background:linear-gradient(135deg,#6B8C7D 0%,#5A7B6D 60%,#6B8C7D 100%); padding:44px 60px 38px; position:relative; overflow:hidden; }
  .maison-header::before { content:''; position:absolute; top:-80px; right:-80px; width:400px; height:400px; background:radial-gradient(circle,rgba(196,113,74,.18) 0%,transparent 65%); pointer-events:none; }
  .maison-header-inner { position:relative; z-index:1; max-width:900px; margin:0 auto; }
  .maison-back-btn { display:inline-flex; align-items:center; gap:6px; color:#1E2B4A; font-size:13px; font-weight:600; font-family:'Montserrat',sans-serif; letter-spacing:.02em; background:#fff; border:none; border-radius:8px; cursor:pointer; margin-bottom:24px; transition:all .2s; padding:10px 20px; box-shadow:0 2px 8px rgba(0,0,0,.12); }
  .maison-back-btn:hover { background:#f5f0e8; box-shadow:0 3px 12px rgba(0,0,0,.18); }
  .maison-header h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(28px,4vw,52px); font-weight:600; color:#F5EFE6; line-height:1.05; }
  .maison-header h1 em { color:#8FA8B8; font-style:italic; }
  .maison-header p { margin-top:12px; color:rgba(245,239,230,.5); font-size:14px; max-width:480px; line-height:1.7; font-weight:300; }
  .maison-body { max-width:900px; margin:0 auto; padding:52px 40px 80px; }
  .maison-section-title { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:600; color:#1E2B4A; margin-bottom:6px; }
  .maison-section-title span { color:#C4714A; font-style:italic; }
  .maison-divider { width:48px; height:3px; background:#C4714A; margin:10px 0 28px; border-radius:2px; }
  .maison-story { background:#fff; border-radius:12px; border:1.5px solid rgba(30,43,74,.1); padding:32px 36px; margin-bottom:40px; position:relative; }
  .maison-story p { font-size:14px; line-height:1.85; color:#1E2B4A; }
  .maison-story p + p { margin-top:14px; }
  .maison-founders { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:40px; }
  .founder-card { background:#fff; border:1.5px solid rgba(30,43,74,.1); border-radius:12px; padding:24px 20px; text-align:center; transition:box-shadow .2s; }
  .founder-card:hover { box-shadow:0 6px 20px rgba(30,43,74,.14); }
  .founder-avatar { display:none; }
  .founder-video-wrap { position:relative; width:100%; aspect-ratio:16/9; border-radius:10px; overflow:hidden; margin:0 auto 14px; background:#6B8C7D; cursor:pointer; }
  .founder-video-wrap img, .founder-video-wrap video { width:100%; height:100%; object-fit:cover; display:block; }
  .founder-video-wrap .play-btn { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,.25); transition:background .2s; }
  .founder-video-wrap:hover .play-btn { background:rgba(0,0,0,.35); }
  .founder-video-wrap .play-btn svg { width:48px; height:48px; filter:drop-shadow(0 2px 6px rgba(0,0,0,.3)); }
  .founder-video-wrap.coming-soon .play-btn { cursor:default; }
  .founder-video-wrap.coming-soon::after { content:'Bientôt disponible'; position:absolute; bottom:8px; left:0; right:0; text-align:center; font-size:11px; color:#F5EFE6; font-weight:600; letter-spacing:.04em; font-family:'Montserrat',sans-serif; }
  /* Lightbox vidéo fondateurs */
  #founderVideoLightbox { position:fixed; inset:0; z-index:9999; background:rgba(0,0,0,.7); display:none; align-items:center; justify-content:center; }
  #founderVideoLightbox.open { display:flex; }
  #founderVideoLightbox .lightbox-inner { position:relative; width:90%; max-width:720px; background:#000; border-radius:12px; overflow:hidden; }
  #founderVideoLightbox video { width:100%; display:block; border-radius:12px; }
  #founderVideoLightbox .lightbox-close { position:absolute; top:10px; right:10px; width:36px; height:36px; background:rgba(0,0,0,.6); border:none; border-radius:50%; color:#fff; font-size:20px; cursor:pointer; display:flex; align-items:center; justify-content:center; z-index:2; transition:background .2s; }
  #founderVideoLightbox .lightbox-close:hover { background:rgba(0,0,0,.85); }
  .founder-name { font-size:16px; font-weight:700; color:#1E2B4A; margin-bottom:4px; }
  .founder-role { font-size:11px; color:#C4714A; letter-spacing:.08em; text-transform:uppercase; font-weight:600; margin-bottom:10px; }
  .founder-desc { font-size:12px; color:#5A6B82; line-height:1.6; }
  .maison-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:40px; }
  .maison-stat { background:#fff; border:1.5px solid rgba(30,43,74,.1); border-radius:12px; padding:20px 16px; text-align:center; }
  .maison-stat-num { font-family:'Cormorant Garamond',serif; font-size:36px; font-weight:700; color:#1E2B4A; line-height:1; margin-bottom:4px; }
  .maison-stat-num span { color:#C4714A; }
  .maison-stat-label { font-size:11px; color:#8FA8B8; line-height:1.4; font-weight:500; }
  .maison-valeurs { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
  .valeur-card { background:#fff; border:1.5px solid rgba(30,43,74,.1); border-radius:10px; padding:20px; display:flex; gap:14px; align-items:flex-start; }
  .valeur-icon { font-size:22px; flex-shrink:0; margin-top:2px; }
  .valeur-title { font-size:13px; font-weight:700; color:#1E2B4A; margin-bottom:4px; }
  .valeur-desc { font-size:12px; color:#8FA8B8; line-height:1.5; }
  @media(max-width:700px){
    .maison-founders { grid-template-columns:1fr; }
    .maison-stats { grid-template-columns:repeat(2,1fr); }
    .maison-body { padding:32px 20px 60px; }
    .maison-header { padding:32px 20px; }
    .maison-valeurs { grid-template-columns:1fr; }
  }

  /* ── FORMATION DETAIL PAGE ── */
  #formationDetailPage {
    display:none; position:fixed; inset:0; z-index:500;
    background:var(--cream); overflow-y:auto;
  }
  #formationDetailPage.open { display:block; }
  .fdetail-header {
    background:linear-gradient(135deg,#1E2B4A 0%,#2A3A5C 60%,#1E2B4A 100%);
    padding:32px 60px 28px; position:relative; overflow:hidden;
  }
  .fdetail-header::before {
    content:''; position:absolute; top:-80px; right:-80px;
    width:400px; height:400px;
    background:radial-gradient(circle,rgba(196,113,74,.15) 0%,transparent 65%);
    pointer-events:none;
  }
  .fdetail-back {
    display:inline-flex; align-items:center; gap:6px;
    color:rgba(245,239,230,.7); font-size:13px; font-weight:600;
    font-family:'Montserrat',sans-serif; cursor:pointer;
    background:none; border:none; margin-bottom:18px; transition:color .2s;
  }
  .fdetail-back:hover { color:#F5EFE6; }
  .fdetail-title {
    font-family:'Cormorant Garamond',serif; font-size:clamp(26px,3.5vw,42px);
    font-weight:700; color:#F5EFE6; line-height:1.15; margin-bottom:10px;
  }
  .fdetail-subtitle { color:rgba(245,239,230,.6); font-size:14px; font-weight:400; margin-bottom:16px; }
  .fdetail-badges { display:flex; flex-wrap:wrap; gap:10px; }
  .fdetail-badge {
    display:inline-flex; align-items:center; gap:5px;
    background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2);
    color:#F5EFE6; font-size:12px; font-weight:600; padding:6px 14px;
    border-radius:20px; font-family:'Montserrat',sans-serif;
  }
  .fdetail-badge .badge-icon { font-size:14px; }
  .fdetail-body {
    max-width:900px; margin:0 auto; padding:36px 60px 80px;
  }
  .fdetail-section {
    background:#fff; border:1.5px solid var(--border-light);
    border-radius:12px; padding:24px 28px; margin-bottom:18px;
  }
  .fdetail-section-title {
    font-family:'Montserrat',sans-serif; font-size:13px; font-weight:800;
    color:var(--copper); text-transform:uppercase; letter-spacing:1px;
    margin-bottom:12px; display:flex; align-items:center; gap:8px;
  }
  .fdetail-section-title .sec-icon { font-size:16px; }
  .fdetail-section p, .fdetail-section ul {
    font-size:14px; line-height:1.8; color:var(--text);
  }
  .fdetail-section ul { padding-left:20px; }
  .fdetail-section ul li { margin-bottom:6px; }
  .fdetail-section.highlight {
    background:linear-gradient(135deg,rgba(30,43,74,.04) 0%,rgba(196,113,74,.04) 100%);
    border-color:rgba(196,113,74,.2);
  }
  .fdetail-section.psh-block {
    background:linear-gradient(135deg,rgba(107,140,125,.08) 0%,rgba(107,140,125,.03) 100%);
    border-color:rgba(107,140,125,.25);
  }
  .fdetail-cta {
    display:flex; justify-content:center; gap:14px; margin-top:28px; flex-wrap:wrap;
  }
  .fdetail-cta-btn {
    display:inline-flex; align-items:center; gap:8px;
    padding:14px 32px; border-radius:8px;
    font-family:'Montserrat',sans-serif; font-size:14px; font-weight:700;
    cursor:pointer; transition:all .2s; border:none;
  }
  .fdetail-cta-btn.primary { background:#1E2B4A; color:#F5EFE6; }
  .fdetail-cta-btn.primary:hover { background:#2A3A5C; transform:translateY(-2px); box-shadow:0 6px 20px rgba(30,43,74,.2); }
  .fdetail-cta-btn.secondary { background:transparent; border:1.5px solid var(--copper); color:var(--copper); }
  .fdetail-cta-btn.secondary:hover { background:var(--copper); color:#fff; }
  .fdetail-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
  @media(max-width:700px) {
    .fdetail-header { padding:24px 20px 20px; }
    .fdetail-body { padding:24px 16px 60px; }
    .fdetail-grid-2 { grid-template-columns:1fr; }
    .fdetail-section { padding:18px 16px; }
  }

  /* ── ADMIN QUALIOPI SETTINGS ── */
  .qualiopi-settings-wrap {
    background:#fff; border:1.5px solid var(--border-light);
    border-radius:12px; padding:20px 24px; margin-bottom:20px;
  }
  .qualiopi-settings-title {
    font-size:14px; font-weight:800; color:var(--navy);
    margin-bottom:14px; display:flex; align-items:center; gap:8px;
  }
  .qualiopi-field { margin-bottom:14px; }
  .qualiopi-field label {
    display:block; font-size:11px; font-weight:700; color:var(--navy);
    text-transform:uppercase; letter-spacing:.5px; margin-bottom:5px;
  }
  .qualiopi-field textarea, .qualiopi-field input[type="text"] {
    width:100%; padding:10px 14px; border:1.5px solid var(--border-light);
    border-radius:8px; font-family:'Montserrat',sans-serif; font-size:13px;
    color:var(--text); resize:vertical; min-height:60px;
  }
  .qualiopi-field input[type="text"] { min-height:auto; }
  .qualiopi-save-btn {
    background:var(--navy); color:#F5EFE6; border:none;
    padding:10px 24px; border-radius:8px; font-family:'Montserrat',sans-serif;
    font-size:13px; font-weight:700; cursor:pointer; transition:all .2s;
  }
  .qualiopi-save-btn:hover { background:#2A3A5C; }
  .override-toggle {
    display:flex; align-items:center; gap:6px;
    font-size:11px; color:var(--muted); margin-bottom:6px; cursor:pointer;
  }
  .override-toggle input { accent-color:var(--copper); }

