:root{
      --bg0:#060816;
      --bg1:#0a1028;
      --card: rgba(255,255,255,.06);
      --stroke: rgba(255,255,255,.10);
      --stroke2: rgba(255,255,255,.16);
      --text:#eef2ff;
      --muted:#a7b1d6;
      --brand:#5eead4;
      --brand2:#60a5fa;
      --brand3:#a78bfa;
      --ring: rgba(96,165,250,.35);
      --max:1120px;
      --radius:22px;
      --shadow: 0 22px 70px rgba(0,0,0,.45);
    }

    /* Light theme */
    [data-theme="light"]{
      --bg0:#f7f8ff;
      --bg1:#eef2ff;
      --card: rgba(255,255,255,.75);
      --stroke: rgba(10,16,40,.10);
      --stroke2: rgba(10,16,40,.18);
      --text:#0b1020;
      --muted:#3d4a75;
      --ring: rgba(96,165,250,.28);
      --shadow: 0 18px 60px rgba(10,16,40,.12);
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
      color:var(--text);
      line-height:1.55;
      background:
        radial-gradient(1200px 700px at 10% 10%, rgba(96,165,250,.25), transparent 58%),
        radial-gradient(900px 600px at 90% 8%, rgba(94,234,212,.22), transparent 55%),
        radial-gradient(800px 540px at 70% 90%, rgba(167,139,250,.18), transparent 58%),
        linear-gradient(180deg, var(--bg0), var(--bg1));
    }

    /* Subtle grain */
    body::after{
      content:"";
      position:fixed; inset:0;
      pointer-events:none;
      opacity:.06;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
      mix-blend-mode: overlay;
    }

    a{color:inherit}
    .container{max-width:var(--max); margin:0 auto; padding:0 18px}
    .glass{
      background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04));
      border:1px solid var(--stroke);
      box-shadow: var(--shadow);
      backdrop-filter: blur(14px);
    }

    header{
      position:sticky; top:0; z-index:50;
      backdrop-filter: blur(16px);
      background: rgba(6,8,22,.55);
      border-bottom:1px solid rgba(255,255,255,.06);
    }
    [data-theme="light"] header{background: rgba(247,248,255,.65)}
    .nav{display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:14px}
    .brand{display:flex; align-items:center; gap:12px; text-decoration:none; font-weight:900; letter-spacing:.2px}
    .brand img{
  height: 132px;        /* +50px desktop */
  width: auto;
  max-width: 620px;
  border-radius: 10px;
  border: none;
  background: transparent;
  object-fit: contain;
}

@media (max-width: 640px){
  .menu a{font-size:13px; padding:8px 10px;}
  .brand img{
    height: 108px;      /* +50px mobile */
  }
}
    .menu{display:flex; align-items:center; gap:22px; flex-wrap:nowrap; margin-left:60px;}
    .menu a{ text-decoration:none; color:var(--muted); font-weight:750; font-size:14px; padding:10px 14px; border-radius:999px; transition: transform .18s ease, background .18s ease, color .18s ease; }
    .menu a:hover{color:var(--text); background: rgba(255,255,255,.06); transform: translateY(-1px)}

    .cta{display:flex; align-items:center; gap:10px}
    .btn{
      display:inline-flex; align-items:center; justify-content:center; gap:10px;
      padding:10px 14px;
      border-radius:999px;
      text-decoration:none;
      font-weight:850;
      font-size:14px;
      border:1px solid var(--stroke);
      background: rgba(255,255,255,.05);
      transition: transform .16s ease, filter .16s ease, border-color .16s ease;
    }
    .btn:hover{border-color: var(--stroke2); transform: translateY(-1px)}
    .btn:active{transform: translateY(0px) scale(.99)}
    .btn.primary{
      border-color: transparent;
      color:#071022;
      background: linear-gradient(135deg, rgba(94,234,212,.98), rgba(96,165,250,.98));
      box-shadow: 0 18px 40px rgba(94,234,212,.14);
    }
    .btn.primary:hover{filter:saturate(1.05) brightness(1.03)}

    .iconBtn{
      width:40px; height:40px;
      padding:0;
      border-radius:999px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      border:1px solid var(--stroke);
      background: rgba(255,255,255,.05);
      cursor:pointer;
      transition: transform .16s ease, border-color .16s ease;
    }
    .iconBtn:hover{border-color: var(--stroke2); transform: translateY(-1px)}
    .iconBtn:active{transform: translateY(0px) scale(.99)}

    .mobileToggle{display:none}

    /* Hero */
    .hero{padding:56px 0 18px}
    .heroGrid{display:grid; grid-template-columns: 1.25fr .75fr; gap:18px; align-items:stretch}
    .heroCard{border-radius: var(--radius); padding:26px; overflow:hidden; position:relative}
    .heroCard::before{
      content:"";
      position:absolute; inset:-2px;
      background:
        radial-gradient(600px 260px at 15% 15%, rgba(94,234,212,.20), transparent 60%),
        radial-gradient(600px 260px at 85% 18%, rgba(96,165,250,.20), transparent 60%),
        radial-gradient(700px 300px at 70% 88%, rgba(167,139,250,.16), transparent 60%);
      pointer-events:none;
    }
    .heroCard > *{position:relative}

    .tag{
      display:inline-flex; gap:8px; align-items:center;
      color:#061325;
      background: linear-gradient(135deg, rgba(94,234,212,.96), rgba(96,165,250,.96));
      padding:7px 11px;
      border-radius:999px;
      font-weight:950;
      font-size:12px;
    }
    .h1{
      font-size: clamp(34px, 3.8vw, 52px);
      line-height:1.03;
      margin:14px 0 10px;
      letter-spacing:-.9px;
    }
    .lead{color:var(--muted); font-size:16px; margin:0 0 18px; max-width:70ch}
    .heroActions{display:flex; gap:10px; flex-wrap:wrap; margin-top:16px}

    .quickFacts{display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:10px; margin-top:18px}
    .fact{
      padding:12px;
      border-radius:18px;
      border:1px solid var(--stroke);
      background: rgba(255,255,255,.04);
      box-shadow: 0 10px 26px rgba(0,0,0,.20);
    }
    .fact b{display:block; font-size:16px}
    .fact span{display:block; color:var(--muted); font-size:12px; margin-top:2px}

    .profile{display:flex; flex-direction:column; gap:12px}
    .portrait{
      aspect-ratio: 4/3;
      border-radius: var(--radius);
      border:1px solid var(--stroke);
      background: rgba(255,255,255,.04);
      overflow:hidden;
      display:grid;
      place-items:center;
    }
    .portrait img{width:100%; height:100%; object-fit:cover; display:block}
    .miniCard{
      border-radius: var(--radius);
      border:1px solid var(--stroke);
      background: rgba(255,255,255,.04);
      padding:16px;
    }
    .miniCard h3{margin:0 0 6px; font-size:15px}
    .miniCard p{margin:0; color:var(--muted); font-size:14px}

    /* Sections */
    section{padding:34px 0}
    .sectionTitle{display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:14px}
    .sectionTitle h2{margin:0; font-size:28px; letter-spacing:-.3px}
    .sectionTitle p{margin:0; color:var(--muted); max-width:70ch}

    .grid{display:grid; grid-template-columns: repeat(12, minmax(0,1fr)); gap:14px}
    .card{
      border-radius: var(--radius);
      border:1px solid var(--stroke);
      background: rgba(255,255,255,.04);
      padding:18px;
      box-shadow: 0 12px 34px rgba(0,0,0,.22);
      transition: transform .18s ease, border-color .18s ease;
    }
    .card:hover{transform: translateY(-2px); border-color: var(--stroke2)}
    .card h3{margin:0 0 8px; font-size:16px}
    .card p{margin:0; color:var(--muted); font-size:14px}

    .pill{
      display:inline-flex; align-items:center; gap:8px;
      font-size:12px;
      color:var(--muted);
      border:1px solid var(--stroke);
      background: rgba(255,255,255,.04);
      padding:6px 10px;
      border-radius:999px;
    }

    .programCard{grid-column: span 4}
    .programCard ul{margin:10px 0 0; padding-left:18px; color:var(--muted); font-size:14px}
    .programCard li{margin:6px 0}

    .agenda{grid-column: span 7}
    .agendaItem{display:flex; gap:12px; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.08)}
    .agendaItem:last-child{border-bottom:none}
    .dateBox{
      min-width:90px;
      border-radius:18px;
      border:1px solid var(--stroke);
      background: rgba(255,255,255,.04);
      padding:10px;
      text-align:center;
    }
    .dateBox b{display:block; font-size:16px}
    .dateBox span{display:block; color:var(--muted); font-size:12px}
    .agendaItem h4{margin:0; font-size:15px}
    .agendaItem p{margin:2px 0 0; color:var(--muted); font-size:13px}

    .news{grid-column: span 5}
    .newsItem{padding:12px 0; border-bottom:1px solid rgba(255,255,255,.08)}
    .newsItem:last-child{border-bottom:none}
    .newsItem a{text-decoration:none}
    .newsItem a:hover{text-decoration:underline}
    .newsItem small{display:block; color:var(--muted); margin-top:4px}

    .formWrap{grid-column: span 12}
    form{display:grid; gap:10px}
    .row{display:grid; grid-template-columns: 1fr 1fr; gap:10px}
    input, textarea, select{
      width:100%;
      padding:12px 12px;
      border-radius:16px;
      border:1px solid rgba(255,255,255,.12);
      background: rgba(255,255,255,.04);
      color:var(--text);
      outline:none;
    }
    input:focus, textarea:focus{box-shadow: 0 0 0 4px var(--ring)}
    textarea{min-height:120px; resize:vertical}
    label{font-size:12px; color:var(--muted)}
    .hint{font-size:12px; color:var(--muted)}

    .radioRow{display:flex; gap:14px; flex-wrap:wrap; margin-top:6px}
    .radioRow label{display:flex; align-items:center; gap:8px; font-size:14px; color:var(--muted)}
    .radioRow input{width:auto; box-shadow:none}

    footer{padding:26px 0 44px; color:var(--muted)}
    footer a{color:var(--muted)}
    .footerGrid{display:flex; gap:14px; justify-content:space-between; align-items:flex-start; flex-wrap:wrap}

    /* Sticky mobile bar */
    .stickyBar{
      position:fixed;
      left:50%;
      transform: translateX(-50%);
      bottom:12px;
      width:min(var(--max), calc(100% - 24px));
      z-index:60;
      display:none;
    }
    .stickyInner{
      display:flex;
      gap:10px;
      justify-content:space-between;
      padding:10px;
      border-radius:999px;
      border:1px solid var(--stroke);
      background: rgba(6,8,22,.45);
      backdrop-filter: blur(16px);
      box-shadow: 0 16px 50px rgba(0,0,0,.28);
    }
    [data-theme="light"] .stickyInner{background: rgba(247,248,255,.75)}
    .stickyInner .btn{flex:1; padding:10px 12px; justify-content:center}

    /* Responsive */
    @media (max-width: 920px){
      .heroGrid{grid-template-columns: 1fr}
      .programCard{grid-column: span 6}
      .agenda{grid-column: span 12}
      .news{grid-column: span 12}
    }
    @media (max-width: 640px){
      .menu{display:none}
      .mobileToggle{display:inline-flex}
      .programCard{grid-column: span 12}
      .quickFacts{grid-template-columns: 1fr}
      .row{grid-template-columns: 1fr}
      .stickyBar{display:block}
      body{padding-bottom:78px}
    }

    @media (prefers-reduced-motion: reduce){
      html{scroll-behavior:auto}
      .card, .btn, .menu a{transition:none}
      .card:hover, .btn:hover, .menu a:hover{transform:none}
    }
  
/* === Questionnaire: force encadrement noir === */
#questionnaire select,
#questionnaire input,
#questionnaire textarea{
  border: 2px solid #000 !important;
}

#questionnaire select:focus,
#questionnaire input:focus, 
#questionnaire textarea:focus{ 
  background-color: #071022;
  border-color:#000 !important;
  box-shadow:0 0 0 2px rgba(0,0,0,.25) !important;
}
