:root {
  --bleu-marine: #251A7A;
  --bleu: #798AF4;
  --rouge: #FF4E46;
  --jaune: #FFD31E;
  --violet: #7B61FF;
  --noir: #191010;
  --blanc-casse: #FFFAF4;
  --gradient: linear-gradient(135deg, #798AF4 0%, #251A7A 100%);
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Montserrat',sans-serif; background:var(--blanc-casse); color:var(--noir); overflow-x:hidden; }

/* ===== NAV ===== */
nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:0.9rem 2.5rem;
  display:flex; align-items:center; justify-content:space-between;
  transition: background 0.4s, box-shadow 0.4s;
}
nav.scrolled {
  background:rgba(37,26,122,0.95);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  box-shadow:0 2px 20px rgba(0,0,0,0.3);
}
.nav-logo {
  font-size:1.5rem; font-weight:900; color:white;
  letter-spacing:-0.02em; text-decoration:none;
}
.nav-logo span { color:white; }
.nav-links { display:flex; gap:2rem; list-style:none; }
.nav-links a {
  color:rgba(255,255,255,0.85); text-decoration:none;
  font-size:0.75rem; font-weight:600;
  letter-spacing:0.1em; text-transform:uppercase;
  transition:color 0.2s;
}
.nav-links a:hover { color:var(--jaune); }
.nav-cta {
  background:var(--rouge) !important; color:white !important;
  padding:0.45rem 1.2rem; border-radius:2rem;
  transition:transform 0.2s, background 0.2s !important;
}
.nav-cta:hover { background:#ff6b64 !important; transform:scale(1.05); }
.hamburger {
  display:none; flex-direction:column; gap:5px;
  cursor:pointer; background:none; border:none; padding:4px;
}
.hamburger span { display:block; width:24px; height:2px; background:white; border-radius:2px; transition:all 0.3s; }

/* ===== HERO ===== */
#hero {
  width:100%;
  background:var(--bleu-marine);
  position:relative;
}
.hero-visual {
  width:100%;
  display:block;
  height:auto;
  object-fit:unset;
}
.hero-cta-bar {
  background:var(--bleu-marine);
  padding:2rem 2.5rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  flex-wrap:wrap;
}
.hero-cta-bar .earlybird {
  display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
}
.earlybird-badge {
  background:var(--jaune);
  color:var(--bleu-marine);
  font-size:0.65rem;
  font-weight:800;
  letter-spacing:0.12em;
  text-transform:uppercase;
  padding:0.35rem 0.9rem;
  border-radius:2rem;
  white-space:nowrap;
  text-decoration:none;
  cursor:pointer;
  transition:opacity 0.2s;
}
.earlybird-badge:hover { opacity:0.85; }
.earlybird-text {
  color:rgba(255,255,255,0.75);
  font-size:0.82rem;
  font-weight:500;
}
.earlybird-text strong { color:white; }
.btn-primary {
  background:var(--rouge); color:white;
  padding:0.9rem 2.2rem; border-radius:3rem;
  font-family:'Montserrat',sans-serif; font-size:0.82rem;
  font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  text-decoration:none; white-space:nowrap;
  transition:transform 0.2s, box-shadow 0.2s;
  box-shadow:0 4px 20px rgba(255,78,70,0.4);
  display:inline-block;
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 8px 30px rgba(255,78,70,0.5); }
.btn-secondary {
  background:rgba(255,255,255,0.12); color:white;
  padding:0.9rem 2.2rem; border-radius:3rem;
  font-family:'Montserrat',sans-serif; font-size:0.82rem;
  font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  text-decoration:none; white-space:nowrap;
  border:1px solid rgba(255,255,255,0.3);
  transition:all 0.2s; display:inline-block;
}
.btn-secondary:hover { background:rgba(255,255,255,0.2); transform:translateY(-2px); }
.hero-cta-bar .btns { display:flex; gap:0.8rem; flex-wrap:wrap; }

/* ===== SECTIONS COMMUNES ===== */
.section-inner { max-width:1100px; margin:0 auto; }
.section-tag {
  font-size:0.68rem; font-weight:700; letter-spacing:0.22em;
  text-transform:uppercase; color:var(--bleu); margin-bottom:0.6rem;
}
.section-title {
  font-size:clamp(1.8rem,4vw,3rem); font-weight:800;
  color:var(--bleu-marine); line-height:1.1;
  letter-spacing:-0.02em; margin-bottom:1.2rem;
}
.section-lead {
  font-size:1rem; font-weight:400; line-height:1.9;
  color:#555; max-width:680px; margin-bottom:2.5rem;
  white-space: pre-line;
}

/* ===== POUR QUI ===== */
#pour-qui { padding:6rem 2rem; background:var(--blanc-casse); }
.audience-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1.2rem; margin-top:1.5rem;
}
.audience-card {
  background:white; border-radius:16px; padding:1.5rem;
  border-left:4px solid; box-shadow:0 2px 14px rgba(37,26,122,0.07);
  transition:transform 0.2s, box-shadow 0.2s; opacity:0; transform:translateY(20px);
}
.audience-card.visible { opacity:1; transform:translateY(0); transition:opacity 0.5s ease, transform 0.5s ease; }
.audience-card:hover { transform:translateY(-3px) !important; box-shadow:0 8px 24px rgba(37,26,122,0.12); }
.audience-card:nth-child(1) { border-color:var(--bleu); }
.audience-card:nth-child(2) { border-color:var(--rouge); }
.audience-card:nth-child(3) { border-color:var(--jaune); }
.audience-card:nth-child(4) { border-color:var(--violet); }
.audience-card:nth-child(5) { border-color:var(--bleu-marine); }
.audience-card h3 { font-size:0.88rem; font-weight:700; color:var(--bleu-marine); line-height:1.35; }
.audience-card small { font-weight:400; opacity:0.65; }

/* ===== VISION ===== */
#vision {
  padding:6rem 2rem; background:var(--bleu-marine); position:relative; overflow:hidden;
}
#vision::before {
  content:''; position:absolute; top:-40%; right:-15%;
  width:70%; height:140%;
  background:radial-gradient(ellipse, rgba(121,138,244,0.18) 0%, transparent 70%);
  pointer-events:none;
}
.vision-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.vision-text .section-tag { color:var(--jaune); }
.vision-text .section-title { color:white; }
.vision-text .section-lead { color:rgba(255,255,255,0.65); }
.vision-quote {
  font-size:clamp(1.3rem,2.8vw,2rem); font-weight:800; color:white;
  line-height:1.3; letter-spacing:-0.01em;
  margin-bottom:2rem; padding-left:1.5rem;
  border-left:4px solid var(--rouge);
}
.vision-words { display:flex; flex-direction:column; gap:0.8rem; }
.vision-word-item {
  display:flex; align-items:center; gap:1rem;
  padding:1rem 1.4rem; background:rgba(255,255,255,0.06);
  border-radius:12px; border:1px solid rgba(255,255,255,0.1);
  transition:background 0.2s;
}
.vision-word-item:hover { background:rgba(255,255,255,0.1); }
.vision-word-item .num { font-size:0.6rem; font-weight:700; color:rgba(255,255,255,0.28); letter-spacing:0.1em; min-width:20px; }
.vision-word-item .word { font-size:0.88rem; font-weight:700; color:white; letter-spacing:0.05em; text-transform:uppercase; }
.vision-word-item .desc { font-size:0.78rem; color:rgba(255,255,255,0.45); font-weight:400; margin-left:auto; text-align:right; }

/* ===== VALEURS ===== */
#valeurs { padding:6rem 2rem; background:var(--blanc-casse); }
.valeurs-image {
  width:100%; max-width:900px; margin:2.5rem auto 0;
  display:block; border-radius:20px;
  box-shadow:0 12px 48px rgba(37,26,122,0.12);
}

/* ===== PROGRAMME ===== */
#programme { padding:6rem 2rem; background:var(--blanc-casse); }
.programme-image {
  width:100%; max-width:900px; margin:2.5rem auto 0;
  display:block; border-radius:20px;
  box-shadow:0 12px 48px rgba(37,26,122,0.12);
}

/* ===== CO~ ===== */
#co { padding:6rem 2rem; background:white; }
.co-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start; }
.co-words { display:grid; grid-template-columns:1fr 1fr 1fr; gap:1rem; }
.co-word-card {
  color:white; border-radius:16px; padding:1.5rem;
  position:relative; overflow:hidden; transition:transform 0.2s;
}
.co-word-card:hover { transform:scale(1.03); }
.co-word-card:nth-child(1) { background:linear-gradient(135deg, var(--bleu), var(--bleu-marine)); }
.co-word-card:nth-child(2) { background:linear-gradient(135deg, var(--rouge), #b33);}
.co-word-card:nth-child(3) { background:linear-gradient(135deg, var(--violet), #4a32bb);}
.co-word-card:nth-child(4) { background:linear-gradient(135deg, #f5a623, var(--rouge));}
.co-word-card:nth-child(5) { background:linear-gradient(135deg, var(--bleu-marine), #1a1260);}
.co-word-card:nth-child(6) { background:linear-gradient(135deg, #3d8b5e, #251A7A);}
.co-word-card .prefix { font-size:2.5rem; font-weight:900; opacity:0.15; position:absolute; top:0.2rem; right:0.7rem; line-height:1; }
.co-word-card .word { font-size:0.68rem; font-weight:700; letter-spacing:0.03em; position:relative; z-index:1; word-break:break-word; }
.co-word-card .meaning { font-size:0.75rem; opacity:0.65; margin-top:0.25rem; position:relative; z-index:1; }

/* ===== INFOS ===== */
#infos { padding:6rem 2rem; background:var(--gradient); color:white; }
#infos .section-tag { color:var(--jaune); }
#infos .section-title { color:white; }
.infos-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.5rem; margin-top:2.5rem;
}
.info-card {
  background:rgba(255,255,255,0.09); border:1px solid rgba(255,255,255,0.18);
  border-radius:20px; padding:1.8rem; backdrop-filter:blur(10px);
  transition:background 0.2s, transform 0.2s; opacity:0; transform:translateY(20px);
}
.info-card.visible { opacity:1; transform:translateY(0); transition:opacity 0.5s ease, transform 0.5s ease; }
.info-card:hover { background:rgba(255,255,255,0.15); transform:translateY(-3px) !important; }
.info-card .ic { font-size:1.8rem; margin-bottom:0.8rem; }
.info-card h3 { font-size:0.62rem; font-weight:700; letter-spacing:0.2em; text-transform:uppercase; opacity:0.55; margin-bottom:0.4rem; }
.info-card .big { font-size:1.15rem; font-weight:800; line-height:1.25; margin-bottom:0.35rem; }
.info-card .small { font-size:0.8rem; opacity:0.65; line-height:1.7; white-space: pre-line; }

/* ===== HEBERGEMENT ===== */
#hebergement { padding:5rem 2rem; background:var(--blanc-casse); }
.lodging-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1rem; margin-top:2rem; }
.lodging-item {
  background:white; border-radius:12px; padding:1.3rem 1rem;
  text-align:center; box-shadow:0 2px 12px rgba(37,26,122,0.07);
  transition:transform 0.2s, box-shadow 0.2s; text-decoration:none; color:var(--bleu-marine);
}
.lodging-item:hover { transform:translateY(-3px); box-shadow:0 8px 20px rgba(37,26,122,0.12); }
.lodging-item .lodging-icon { font-size:1.5rem; margin-bottom:0.4rem; }
.lodging-item .name { font-size:0.83rem; font-weight:700; }
.lodging-special {
  background:var(--bleu-marine); color:white; border-radius:16px;
  padding:1.5rem; margin-top:1.5rem;
  display:flex; align-items:center; gap:1.5rem; flex-wrap:wrap;
}
.lodging-special .icon { font-size:2rem; }
.lodging-special .label { font-size:0.62rem; font-weight:700; letter-spacing:0.15em; text-transform:uppercase; color:var(--jaune); margin-bottom:0.25rem; }
.lodging-special .name { font-size:0.95rem; font-weight:700; color:white; }
.lodging-special .contact { font-size:0.8rem; color:rgba(255,255,255,0.6); margin-top:0.2rem; }
.lodging-special a { color:var(--jaune); text-decoration:none; }

/* ===== FAQ ===== */
#faq { padding:6rem 2rem; background:white; }
.faq-list { margin-top:2.5rem; max-width:800px; }
.faq-item { border-bottom:1px solid rgba(37,26,122,0.1); }
.faq-question {
  display:flex; justify-content:space-between; align-items:center;
  padding:1.3rem 0; cursor:pointer; font-weight:700; font-size:0.88rem;
  color:var(--bleu-marine); gap:1rem; user-select:none; transition:color 0.2s;
}
.faq-question:hover { color:var(--bleu); }
.faq-question .arrow {
  flex-shrink:0; width:28px; height:28px;
  background:var(--gradient); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:white; font-size:0.65rem; transition:transform 0.3s;
}
.faq-item.open .faq-question .arrow { transform:rotate(180deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height 0.4s ease, padding 0.3s; }
.faq-item.open .faq-answer { max-height:600px; padding-bottom:1.2rem; }
.faq-answer p, .faq-answer ul { font-size:0.86rem; color:#555; line-height:1.75; }
.faq-answer ul { padding-left:1.2rem; }
.faq-answer li { margin-bottom:0.3rem; }
.faq-answer a { color:var(--bleu); text-decoration:none; font-weight:600; }
.faq-answer a:hover { text-decoration:underline; }
.faq-answer table { border-collapse:collapse; width:100%; margin-top:0.8rem; }
.faq-answer td, .faq-answer th { border:1px solid #e0e0e0; padding:0.5rem 0.8rem; font-size:0.82rem; }
.faq-answer th { background:var(--bleu-marine); color:white; font-weight:700; }
.faq-answer th small { font-weight:400; opacity:0.8; }

/* ===== CTA FINAL ===== */
#inscription {
  padding:6rem 2rem; background:var(--bleu-marine);
  text-align:center; position:relative; overflow:hidden;
}
#inscription::before {
  content:''; position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%); width:600px; height:600px;
  background:radial-gradient(circle, rgba(121,138,244,0.22) 0%, transparent 70%);
  pointer-events:none;
}
.cta-title { font-size:clamp(2rem,5vw,3.2rem); font-weight:900; color:white; letter-spacing:-0.02em; margin-bottom:0.8rem; position:relative; z-index:1; }
.cta-sub { font-size:0.95rem; color:rgba(255,255,255,0.6); margin-bottom:2.5rem; position:relative; z-index:1; }
.cta-btn-big {
  background:var(--rouge); color:white;
  padding:1.1rem 3rem; border-radius:3rem;
  font-family:'Montserrat',sans-serif; font-size:0.95rem;
  font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  text-decoration:none; transition:transform 0.2s, box-shadow 0.2s;
  box-shadow:0 6px 30px rgba(255,78,70,0.4); display:inline-block; position:relative; z-index:1;
}
.cta-btn-big:hover { transform:translateY(-3px); box-shadow:0 12px 40px rgba(255,78,70,0.5); }
.cta-note { font-size:0.72rem; color:rgba(255,255,255,0.35); margin-top:1.5rem; position:relative; z-index:1; }
.cta-note a { color:rgba(255,255,255,0.5); }

/* ===== FOOTER ===== */
footer { background:var(--noir); padding:2.5rem 2rem; color:rgba(255,255,255,0.45); }
.footer-inner {
  max-width:1100px; margin:0 auto;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1.5rem;
}
.footer-logos {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  flex-wrap: wrap;
}
.footer-logos a { text-decoration: none; display:flex; align-items:center; }
.footer-logo { font-size:1.1rem; font-weight:900; color:white; letter-spacing:-0.02em; line-height:1; }
.footer-logo span { color:white; }
.footer-logo-sep { color: rgba(255,255,255,0.25); font-size: 0.9rem; }
.footer-logo-img { opacity: 0.85; transition: opacity 0.2s; display:block; }
.footer-logo-img:hover { opacity: 1; }
.footer-logo-add { height: 18px; width: auto; }
.footer-logo-moov { height: 20px; width: auto; }
.footer-links { display:flex; gap:1.5rem; list-style:none; flex-wrap:wrap; }
.footer-links a { color:rgba(255,255,255,0.4); text-decoration:none; font-size:0.76rem; transition:color 0.2s; }
.footer-links a:hover { color:white; }
.footer-copyright { font-size:0.72rem; text-align:center; width:100%; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,0.08); margin-top:0.5rem; }

/* ===== UTILITAIRES ===== */
.mt-xs { margin-top:0.5rem; }
.mt-sm { margin-top:0.6rem; }
.mt-md { margin-top:0.7rem; }
.co-lead-tight { margin-top:-1rem; }

/* ===== RESPONSIVE ===== */
@media (max-width:768px) {
  nav { padding:0.8rem 1.5rem; }
  .nav-links { display:none; flex-direction:column; position:absolute; top:56px; left:0; right:0; background:rgba(37,26,122,0.97); padding:1.5rem 2rem; gap:1.2rem; }
  .nav-links.open { display:flex; }
  .nav-links a { font-size:0.92rem; }
  .hamburger { display:flex; }
  .hero-cta-bar { padding:1.5rem; flex-direction:column; align-items:flex-start; gap:1rem; }
  .vision-grid { grid-template-columns:1fr; gap:2rem; }
  .co-grid { grid-template-columns:1fr; gap:2rem; }
  .co-words { grid-template-columns:1fr 1fr; }
  .footer-inner { flex-direction:column; align-items:flex-start; }
}
@media (max-width:480px) {
  .co-words { grid-template-columns:1fr; }
  .audience-grid { grid-template-columns:1fr; }
}
