/* CIAPEES — thème institutionnel clair (charte plaquette : violet #805090 / cyan #0090E0 / blanc) */
:root{
  --violet:#805090;
  --violet-d:#6a4179;
  --violet-l:#9c6fae;
  --cyan:#0090E0;
  --cyan-d:#0a6cab;
  --ink:#1d2330;
  --muted:#586074;
  --faint:#8a93a5;
  --line:#e7e9f0;
  --bg:#ffffff;
  --bg-alt:#f5f7fb;
  --bg-violet:#f6f1f9;
}
*{box-sizing:border-box;margin:0;padding:0}
.hidden{display:none}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'Space Grotesk','Inter',sans-serif}
a{text-decoration:none}
::-webkit-scrollbar{width:9px}::-webkit-scrollbar-track{background:#eef0f6}::-webkit-scrollbar-thumb{background:#c7cbd8;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--violet-l)}

/* Barre de contact fine */
.topbar{background:var(--violet);color:#fff;font-size:12.5px}
.topbar a{color:#fff;opacity:.92}
.topbar a:hover{opacity:1;text-decoration:underline}

/* Navbar */
.nav-glass{background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);box-shadow:0 1px 12px rgba(28,35,48,.04)}
.nav-link{color:var(--muted);transition:color .2s}
.nav-link:hover{color:var(--violet)}

/* Barre de rubriques (sous-nav) */
.subnav{background:var(--violet);box-shadow:0 2px 10px rgba(128,80,144,.18)}
.subnav-inner{display:flex;align-items:center;justify-content:center;gap:2px;flex-wrap:wrap}
.subnav-link{display:inline-flex;align-items:center;gap:7px;color:#efe7f3;font-size:13.5px;font-weight:600;letter-spacing:.2px;padding:13px 16px;border-bottom:3px solid transparent;transition:background .2s,border-color .2s,color .2s}
.subnav-link svg{width:15px;height:15px;opacity:.85}
.subnav-link:hover{background:rgba(255,255,255,.12);color:#fff;border-bottom-color:var(--cyan)}
.subnav-cta{margin-left:6px;background:var(--cyan);color:#fff;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:700;transition:filter .2s}
.subnav-cta:hover{filter:brightness(1.08)}

/* Hero : zone photo */
.hero-photo{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:5/4;border:1px solid var(--line);box-shadow:0 24px 60px rgba(28,35,48,.12)}
.hero-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2}
.hero-photo-fallback{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(ellipse 70% 60% at 30% 20%,rgba(255,255,255,.18),transparent 60%),
    linear-gradient(135deg,var(--violet) 0%,var(--cyan-d) 100%);
}
.hero-photo-fallback::before{content:'';position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.10) 1px,transparent 1px);
  background-size:38px 38px;}
.hero-badge-float{position:absolute;left:18px;bottom:18px;z-index:3;display:inline-flex;align-items:center;gap:10px;background:#fff;border-radius:14px;padding:10px 16px;box-shadow:0 10px 30px rgba(28,35,48,.18)}
.hero-chip-float{position:absolute;right:18px;top:18px;z-index:3;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.95);border-radius:999px;padding:8px 14px;font-size:12.5px;font-weight:700;color:var(--violet);box-shadow:0 8px 24px rgba(28,35,48,.15)}

/* Hero */
.hero-bg{
  background:
    radial-gradient(ellipse 60% 50% at 80% 12%,rgba(0,144,224,.10) 0%,transparent 60%),
    radial-gradient(ellipse 55% 45% at 8% 85%,rgba(128,80,144,.09) 0%,transparent 55%),
    var(--bg);
}
.grid-overlay{
  background-image:linear-gradient(rgba(128,80,144,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(128,80,144,.035) 1px,transparent 1px);
  background-size:46px 46px;
}

/* Texte dégradé */
.g-text{background:linear-gradient(90deg,var(--violet),var(--cyan));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.g-cyan{color:var(--cyan)}
.g-violet{color:var(--violet)}

/* Cartes */
.card{background:#fff;border:1px solid var(--line);border-radius:18px;transition:border-color .25s,transform .25s,box-shadow .25s}
.card:hover{border-color:rgba(128,80,144,.35);transform:translateY(-3px);box-shadow:0 14px 38px rgba(28,35,48,.08)}

/* Pastilles de section */
.eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:5px 14px;border-radius:999px}
.eyebrow-v{background:rgba(128,80,144,.09);border:1px solid rgba(128,80,144,.22);color:var(--violet)}
.eyebrow-c{background:rgba(0,144,224,.09);border:1px solid rgba(0,144,224,.22);color:var(--cyan-d)}

/* Icônes rondes */
.ic{display:flex;align-items:center;justify-content:center;border-radius:14px}
.ic-v{background:rgba(128,80,144,.10);color:var(--violet)}
.ic-c{background:rgba(0,144,224,.10);color:var(--cyan-d)}

/* Badges durée */
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.3px}
.badge-eve{background:rgba(128,80,144,.10);border:1px solid rgba(128,80,144,.25);color:var(--violet)}
.badge-day{background:rgba(0,144,224,.10);border:1px solid rgba(0,144,224,.25);color:var(--cyan-d)}

.pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);animation:pulse-anim 2s ease-in-out infinite}
@keyframes pulse-anim{0%,100%{opacity:1}50%{opacity:.3}}

/* Animations d'apparition (fail-safe : visibles si reduced-motion) */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.anim-1{animation:fadeUp .5s .04s ease both}
.anim-2{animation:fadeUp .5s .12s ease both}
.anim-3{animation:fadeUp .5s .20s ease both}
.anim-4{animation:fadeUp .5s .28s ease both}
@media (prefers-reduced-motion:reduce){
  .anim-1,.anim-2,.anim-3,.anim-4,.pulse-dot{animation:none}
}

/* Boutons */
.btn-primary{background:linear-gradient(135deg,var(--violet),var(--violet-d));color:#fff;font-weight:700;border:none;cursor:pointer;transition:filter .2s,transform .1s;box-shadow:0 6px 18px rgba(128,80,144,.25)}
.btn-primary:hover{filter:brightness(1.07)}
.btn-cyan{background:linear-gradient(135deg,var(--cyan),var(--cyan-d));color:#fff;font-weight:700;border:none;cursor:pointer;transition:filter .2s;box-shadow:0 6px 18px rgba(0,144,224,.25)}
.btn-cyan:hover{filter:brightness(1.07)}
.btn-ghost{background:#fff;border:1px solid var(--line);color:var(--violet);font-weight:600;cursor:pointer;transition:all .2s}
.btn-ghost:hover{border-color:var(--violet);background:var(--bg-violet)}

/* Onglets formations */
.feat-tab{padding:10px 20px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;color:var(--muted);border:1px solid var(--line);background:#fff}
.feat-tab.active,.feat-tab:hover{background:var(--violet);color:#fff;border-color:var(--violet)}

/* Formulaire */
.ci-input{width:100%;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 14px;font-size:13.5px;color:var(--ink);font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s}
.ci-input:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(128,80,144,.12)}
.ci-input::placeholder{color:var(--faint)}
.form-card{border:1px solid var(--line);border-radius:20px;padding:26px;background:#fff;box-shadow:0 10px 30px rgba(28,35,48,.05)}

/* Listes à puces violettes */
.dot-list{list-style:none}
.dot-list li{position:relative;padding-left:24px;margin-bottom:10px;color:var(--muted)}
.dot-list li::before{content:'';position:absolute;left:4px;top:9px;width:7px;height:7px;border-radius:50%;background:var(--cyan)}
