/* ── 5. Buttons ───────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0 1rem;height:2.25rem;font-size:0.875rem;font-weight:500;border-radius:calc(var(--radius) - 2px);transition:background-color 200ms,color 200ms,transform 200ms;white-space:nowrap;}
.btn-primary{background:var(--accent);color:var(--navy);font-weight:600;padding:0 1.5rem;height:2.75rem;border-radius:9999px;}
.btn-primary:hover{filter:brightness(1.06);}
.btn-gold-pill{background:var(--accent);color:var(--navy);font-weight:700;padding:0.75rem 1.75rem;border-radius:9999px;height:auto;font-size:0.9375rem;display:inline-flex;align-items:center;gap:0.5rem;}
.btn-gold-pill:hover{filter:brightness(1.05);}

/* Shimmer */
.shimmer-wrap{position:relative;display:inline-flex;overflow:hidden;border-radius:9999px;}
.shimmer-overlay{position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,0.25) 50%,transparent 60%);animation:shimmer 6s cubic-bezier(0.25,0.1,0.25,1) infinite;will-change:transform;}
@keyframes shimmer{0%{transform:translateX(-100%);}16%,100%{transform:translateX(200%);}}

/* Ripple */
.ripple-btn{position:relative;overflow:hidden;}
.ripple{position:absolute;border-radius:9999px;background:rgba(255,255,255,0.3);transform:translate(-50%,-50%);pointer-events:none;animation:ripple-anim 500ms ease-out forwards;}
@keyframes ripple-anim{from{width:10px;height:10px;opacity:0.3;}to{width:200px;height:200px;opacity:0;}}

/* Spin */
.spin-icon{animation:spin 1s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ── 6. Theme toggle ──────────────────────────────────────── */
.theme-toggle{position:relative;display:inline-flex;align-items:center;gap:0.5rem;height:36px;padding:0 14px 0 10px;border-radius:9999px;border:1px solid #e5e7eb;background:#fff;color:#534B63;font-size:13px;font-weight:500;transition:all 200ms;}
.theme-toggle:hover{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 3px rgba(122,93,182,0.1);}
.dark .theme-toggle{background:rgba(219,186,97,0.1);border-color:rgba(219,186,97,0.3);color:var(--accent);}
.dark .theme-toggle:hover{background:rgba(219,186,97,0.2);box-shadow:0 0 0 3px rgba(219,186,97,0.15);color:var(--accent);}
.theme-toggle-icon{width:16px;height:18px;display:flex;align-items:flex-end;justify-content:center;flex-shrink:0;}
.candle-off-icon{display:block;}
.dark .candle-off-icon{display:none;}
.mini-flame-wrap{display:none;overflow:hidden;width:16px;height:18px;align-items:flex-end;justify-content:center;}
.dark .mini-flame-wrap{display:flex;}
.mini-flame{display:block;width:16px;height:20px;background:#FF9800;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;animation:dance-fire 3s infinite linear;transform:scale(0.6);transform-origin:bottom center;filter:drop-shadow(0 0 4px rgba(255,152,0,0.7));}
@keyframes dance-fire{59%,89%{left:40%;width:0;height:0;}90%,0%,7%,15%,23%,31%,39%,47%,55%{width:16px;height:20px;background:#FFC107;}94%,3%,11%,19%,27%,35%,43%,51%,58%{width:16px;height:20px;background:#FF9800;}}
.theme-label::before{content:"Mode sombre";}
.dark .theme-label::before{content:"Mode clair";}
.theme-overlay{position:fixed;inset:0;z-index:9998;pointer-events:none;background:#1A1033;clip-path:circle(0 at 50% 50%);transition:clip-path 950ms cubic-bezier(0.76,0,0.24,1);}
.theme-overlay.expand{clip-path:circle(250vmax at var(--ox) var(--oy));}
.theme-overlay.retract{clip-path:circle(0 at var(--ox) var(--oy));transition-duration:750ms;transition-delay:60ms;}
.theme-overlay.color-light{background:#FFFFFF;}

/* ── 7. Animations ────────────────────────────────────────── */
@keyframes fade-up{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
@keyframes fade-left{from{opacity:0;transform:translateX(-30px);}to{opacity:1;transform:translateX(0);}}
@keyframes fade-right{from{opacity:0;transform:translateX(30px);}to{opacity:1;transform:translateX(0);}}
@keyframes draw{to{stroke-dashoffset:0;}}
@keyframes stat-in{from{opacity:0;transform:translateX(20px);}to{opacity:1;transform:translateX(0);}}
@keyframes scale-spring{0%{transform:scale(0);}60%{transform:scale(1.2);}100%{transform:scale(1);}}

.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity 0.6s cubic-bezier(0.16,1,0.3,1),transform 0.6s cubic-bezier(0.16,1,0.3,1);}
.reveal-right{opacity:0;transform:translateX(32px);transition:opacity 0.6s cubic-bezier(0.16,1,0.3,1),transform 0.6s cubic-bezier(0.16,1,0.3,1);}
.reveal-up{opacity:0;transform:translateY(32px) scale(0.97);transition:opacity 0.6s cubic-bezier(0.16,1,0.3,1),transform 0.6s cubic-bezier(0.16,1,0.3,1);}
.in-view{opacity:1 !important;transform:none !important;}

@media(prefers-reduced-motion:reduce){
  .reveal-left,.reveal-right,.reveal-up,.contact-stat-card,.cta-card{opacity:1;transform:none;animation:none;transition:none;}
  .shimmer-overlay{animation:none;}
}

/* ── 8. HERO CONTACT ──────────────────────────────────────── */
.contact-hero{
  position:relative;overflow:hidden;
  min-height:380px;
  display:flex;align-items:center;
}
.contact-hero-bg{position:absolute;inset:0;z-index:0;}
.contact-hero-img{width:100%;height:100%;object-fit:cover;object-position:center;}
.contact-hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to right,rgba(26,16,51,0.84),rgba(83,75,99,0.52));
}
.dark .contact-hero-overlay{
  background:linear-gradient(to right,rgba(26,16,51,0.92),rgba(83,75,99,0.75),rgba(26,16,51,0.25));
}
.contact-hero-inner{
  position:relative;z-index:2;width:100%;
  max-width:80rem;margin:0 auto;padding:3.25rem 1rem 3rem;
  display:flex;flex-direction:column;gap:2.5rem;
  align-items:flex-start;
}
@media(min-width:640px){.contact-hero-inner{padding:3.25rem 1.5rem 3rem;}}
@media(min-width:1024px){
  .contact-hero-inner{flex-direction:row;align-items:center;justify-content:space-between;}
}

/* Hero text */
.contact-hero-text{max-width:600px;}
.contact-hero-badge{
  display:inline-flex;align-items:center;gap:0.5rem;
  background:rgba(255,255,255,0.1);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,0.2);
  color:#fff;padding:0.5rem 1rem;border-radius:9999px;font-size:0.875rem;font-weight:500;
  margin-bottom:1.25rem;
  animation:fade-up 0.6s 0.25s both cubic-bezier(0.4,0,0.2,1);
}
.contact-hero-title{
  font-size:clamp(2.25rem,5vw,56px);font-weight:800;color:#fff;
  line-height:1.1;margin-bottom:1.25rem;
}
.contact-hero-title .part-1{display:inline-block;animation:fade-left 0.6s 0.37s both cubic-bezier(0.4,0,0.2,1);}
.contact-hero-title .part-2{position:relative;display:inline-block;color:var(--accent);animation:fade-right 0.7s 0.57s both cubic-bezier(0.4,0,0.2,1);}
.hero-underline{position:absolute;bottom:-0.5rem;left:0;width:100%;}
.hero-underline path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.2s 1.5s forwards cubic-bezier(0.4,0,0.2,1);}
.contact-hero-subtitle{
  font-size:1.0625rem;color:rgba(255,255,255,0.82);line-height:1.7;
  animation:fade-up 0.8s 0.6s both cubic-bezier(0.4,0,0.2,1);
}

/* Hero stats */
.contact-hero-stats{
  display:flex;flex-direction:row;flex-wrap:wrap;gap:0.75rem;
}
@media(min-width:1024px){
  .contact-hero-stats{flex-direction:column;flex-wrap:nowrap;gap:0.875rem;min-width:200px;}
}
.contact-stat-card{
  background:rgba(255,255,255,0.12);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.2);border-radius:1rem;
  padding:1rem 1.25rem;
  opacity:0;
  animation:stat-in 0.5s var(--delay,0.9s) both ease-out;
}
.contact-stat-num{
  font-size:1.375rem;font-weight:700;color:var(--accent);line-height:1.2;
  letter-spacing:-0.3px;font-variant-numeric:tabular-nums;
  margin-bottom:0.25rem;
}
.contact-stat-label{
  font-size:0.6875rem;text-transform:uppercase;letter-spacing:0.1em;
  color:rgba(255,255,255,0.7);font-weight:500;
}

/* Wave */
.hero-wave{position:absolute;bottom:-1px;left:0;right:0;z-index:2;}
.hero-wave svg{width:100%;height:auto;display:block;}
.hero-wave path{fill:#fff;transition:fill 500ms;}
.dark .hero-wave path{fill:var(--background);}

/* ── 9. SPLIT SECTION ─────────────────────────────────────── */
.contact-split{
  background:#fff;padding:3rem 0;
  transition:background 500ms;
}
.dark .contact-split{background:var(--navy);}

.contact-split-grid{
  display:grid;grid-template-columns:1fr;gap:3rem;
}
@media(min-width:1024px){
  .contact-split-grid{grid-template-columns:2fr 3fr;gap:4rem;align-items:start;}
}

/* Info blocks */
.contact-info-eyebrow{
  font-size:0.6875rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--accent);margin-bottom:0.875rem;
}
.contact-info-title{
  font-size:clamp(1.75rem,3vw,2.25rem);font-weight:700;color:var(--navy);
  line-height:1.2;margin-bottom:0.875rem;
}
.dark .contact-info-title{color:#fff;}
.contact-info-desc{
  font-size:0.9375rem;color:#6b7280;line-height:1.7;margin-bottom:2rem;
}
.dark .contact-info-desc{color:rgba(255,255,255,0.55);}

.contact-info-blocks{display:flex;flex-direction:column;gap:1.25rem;}
.contact-info-block{display:flex;align-items:flex-start;gap:1rem;}
.contact-info-icon{
  width:48px;height:48px;border-radius:9999px;flex-shrink:0;
  background:rgba(var(--primary-rgb),0.08);
  border:1px solid rgba(var(--primary-rgb),0.18);
  display:flex;align-items:center;justify-content:center;
  color:var(--primary);
}
.dark .contact-info-icon{
  background:rgba(219,186,97,0.12);
  border-color:rgba(219,186,97,0.25);
  color:var(--accent);
}
.contact-info-detail{display:flex;flex-direction:column;gap:0.25rem;padding-top:0.25rem;}
.contact-info-label{
  font-size:0.6875rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;
  color:#9ca3af;
}
.dark .contact-info-label{color:rgba(255,255,255,0.4);}
.contact-info-value{font-size:0.9375rem;font-weight:600;color:var(--navy);transition:color 150ms;}
.dark .contact-info-value{color:#fff;}
a.contact-info-value:hover{color:var(--primary);}
.dark a.contact-info-value:hover{color:var(--accent);}

/* Mini-map intégrée sous l'adresse */
.contact-info-map{
  position:relative;margin-top:1.5rem;
  border-radius:14px;overflow:hidden;
  border:1px solid #e5e7eb;height:240px;
  box-shadow:0 6px 18px -10px rgba(0,0,0,0.15);
  transition:border-color 300ms,box-shadow 300ms;
  isolation:isolate;
}
.dark .contact-info-map{border-color:rgba(255,255,255,0.1);}
.contact-info-map:hover{box-shadow:0 10px 28px -10px rgba(0,0,0,0.22);}
.contact-info-map-iframe{
  width:100%;height:100%;display:block;border:0;filter:none;
  position:relative;z-index:1;pointer-events:auto;
}
.dark .contact-info-map-iframe{filter:invert(0.88) hue-rotate(180deg);}
.contact-info-map-btn{
  position:absolute;right:0.625rem;bottom:0.625rem;z-index:2;
  display:inline-flex;align-items:center;gap:0.4rem;
  padding:0.45rem 0.8rem;font-size:0.75rem;font-weight:600;
  background:#fff;color:var(--navy);border-radius:9999px;
  text-decoration:none;
  box-shadow:0 4px 12px rgba(0,0,0,0.15);
  border:1px solid rgba(0,0,0,0.05);
  transition:all 200ms;
}
.contact-info-map-btn:hover{background:var(--accent);color:var(--navy);transform:translateY(-1px);}
.dark .contact-info-map-btn{background:#241845;color:#fff;border-color:rgba(255,255,255,0.1);}
.dark .contact-info-map-btn:hover{background:var(--accent);color:var(--navy);}

.contact-info-sep{border:none;border-top:1px solid #f0f0f0;margin:1.75rem 0;opacity:0.5;}
.dark .contact-info-sep{border-top-color:rgba(255,255,255,0.1);}
.contact-info-social-title{font-size:0.875rem;font-weight:600;color:var(--navy);margin-bottom:0.875rem;}
.dark .contact-info-social-title{color:#fff;}

.contact-socials{display:flex;gap:0.75rem;}
.social-btn{
  width:40px;height:40px;border-radius:9999px;
  background:#f5f5f5;display:flex;align-items:center;justify-content:center;
  color:var(--navy-light);transition:background 200ms,color 200ms,transform 150ms;
}
.social-btn:hover{background:var(--primary);color:#fff;transform:translateY(-2px) scale(1.05);}
.dark .social-btn{background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.6);}
.dark .social-btn:hover{background:var(--primary);color:#fff;transform:translateY(-2px) scale(1.05);}

/* Form card */
.contact-form-wrap{}
.contact-form-card{
  background:#fff;border:1px solid #e5e7eb;border-radius:1.5rem;
  padding:2.5rem 2rem;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.8),0 20px 60px rgba(var(--primary-rgb),0.09),0 4px 16px rgba(0,0,0,0.04);
  transition:background 500ms,border-color 500ms,box-shadow 500ms;
}
@media(min-width:640px){.contact-form-card{padding:2.5rem;}}
.dark .contact-form-card{
  background:rgba(83,75,99,0.15);
  border-color:rgba(255,255,255,0.1);
  box-shadow:0 20px 60px rgba(0,0,0,0.3),0 4px 16px rgba(0,0,0,0.04);
}

.form-eyebrow{font-size:0.6875rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent);margin-bottom:0.625rem;}
.form-title{font-size:1.75rem;font-weight:700;color:var(--navy);margin-bottom:0.5rem;}
.dark .form-title{color:#fff;}
.form-desc{font-size:0.875rem;color:#6b7280;margin-bottom:2rem;}
.dark .form-desc{color:rgba(255,255,255,0.5);}

/* Form grid */
.form-grid{display:grid;grid-template-columns:1fr;gap:1rem;}
@media(min-width:540px){.form-grid{grid-template-columns:1fr 1fr;}}
.field-full{grid-column:1/-1;}

/* Floating label fields */
.field-wrap{position:relative;}
.field-input{
  display:block;width:100%;height:52px;
  background:#fff;border:1.5px solid #e5e7eb;border-radius:0.75rem;
  padding:1.25rem 1rem 0.375rem;
  font-size:0.875rem;color:var(--navy);
  transition:border-color 200ms,box-shadow 200ms,background 200ms;
  outline:none;appearance:none;-webkit-appearance:none;
}
.dark .field-input{background:rgba(26,16,51,0.5);border-color:rgba(255,255,255,0.12);color:#fff;}
.field-input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(var(--primary-rgb),0.12);
}
.dark .field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(219,186,97,0.15);}
.field-input.error{border-color:var(--destructive);}

.field-label{
  position:absolute;left:1rem;top:26px;transform:translateY(-50%);
  font-size:0.875rem;color:#9ca3af;pointer-events:none;
  transition:top 200ms,font-size 200ms,color 200ms,transform 200ms;
  background:transparent;padding:0 0.25rem;
}

/* Float up when focused or has value */
.field-input:focus ~ .field-label,
.field-input:not(:placeholder-shown) ~ .field-label {
  top:0.5rem;transform:none;
  font-size:0.6875rem;text-transform:uppercase;letter-spacing:0.07em;
  color:var(--primary);background:white;
}
.dark .field-input:focus ~ .field-label,
.dark .field-input:not(:placeholder-shown) ~ .field-label{
  color:var(--accent);background:rgba(26,16,51,0.8);
}

/* Autofill: float label + remove yellow bg */
.field-input:-webkit-autofill ~ .field-label{
  top:0.5rem;transform:none;
  font-size:0.6875rem;text-transform:uppercase;letter-spacing:0.07em;
  color:var(--primary);background:white;
}
.dark .field-input:-webkit-autofill ~ .field-label{
  color:var(--accent);background:rgba(26,16,51,0.8);
}
.field-input:-webkit-autofill,
.field-input:-webkit-autofill:hover,
.field-input:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 1000px #fff inset;
  -webkit-text-fill-color:var(--navy);
  transition:background-color 9999s;
}
.dark .field-input:-webkit-autofill,
.dark .field-input:-webkit-autofill:hover,
.dark .field-input:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 1000px rgba(26,16,51,0.7) inset;
  -webkit-text-fill-color:#fff;
}

/* Select specific */
.field-select-wrap .field-input{height:52px;padding:1.25rem 2.5rem 0.375rem 1rem;}
.field-select{cursor:pointer;}
.select-arrow{position:absolute;right:1rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#9ca3af;}
.field-select:focus ~ .select-arrow{color:var(--primary);}
.dark .field-select:focus ~ .select-arrow{color:var(--accent);}

/* Select label (always floated when has value) */
.field-label-select{top:0.5rem;transform:none;font-size:0.6875rem;text-transform:uppercase;letter-spacing:0.07em;color:#9ca3af;background:white;}
.dark .field-label-select{background:rgba(26,16,51,0.8);}
.field-select:focus ~ .field-label-select,.field-select.has-value ~ .field-label-select{color:var(--primary);}
.dark .field-select:focus ~ .field-label-select,.dark .field-select.has-value ~ .field-label-select{color:var(--accent);}

/* Textarea */
.field-textarea-wrap .field-input{height:auto;padding:1.5rem 1rem 2rem;}
.field-textarea{resize:vertical;min-height:130px;}
.field-label-textarea{top:1rem;transform:none;}
.field-textarea:focus ~ .field-label-textarea,
.field-textarea:not(:placeholder-shown) ~ .field-label-textarea{
  top:0.4rem;font-size:0.6875rem;text-transform:uppercase;letter-spacing:0.07em;
  color:var(--primary);background:white;
}
.dark .field-textarea:focus ~ .field-label-textarea,
.dark .field-textarea:not(:placeholder-shown) ~ .field-label-textarea{
  color:var(--accent);background:rgba(26,16,51,0.8);
}
.msg-counter{
  position:absolute;bottom:0.5rem;right:0.875rem;
  font-size:0.75rem;color:#9ca3af;pointer-events:none;
}

/* Field error */
.field-error{display:block;font-size:0.75rem;color:var(--destructive);margin-top:0.375rem;min-height:1rem;}

/* RGPD */
.rgpd-wrap{margin-top:0.25rem;}
.rgpd-label{display:flex;align-items:flex-start;gap:0.75rem;cursor:pointer;}
.rgpd-checkbox{position:absolute;opacity:0;width:0;height:0;}
.rgpd-custom{
  flex-shrink:0;width:20px;height:20px;border-radius:6px;margin-top:1px;
  border:2px solid #d1d5db;background:#fff;
  display:flex;align-items:center;justify-content:center;
  transition:background 200ms,border-color 200ms;
}
.dark .rgpd-custom{background:rgba(26,16,51,0.5);border-color:rgba(255,255,255,0.2);}
.rgpd-checkbox:checked ~ .rgpd-custom{background:var(--primary);border-color:var(--primary);}
.rgpd-checkbox:checked ~ .rgpd-custom::after{
  content:'';display:block;width:5px;height:9px;
  border:2px solid #fff;border-top:none;border-left:none;
  transform:rotate(45deg) translate(-1px,-1px);
}
.rgpd-checkbox:focus-visible ~ .rgpd-custom{outline:2px solid var(--primary);outline-offset:2px;}
.rgpd-text{font-size:0.8125rem;color:#6b7280;line-height:1.6;}
.dark .rgpd-text{color:rgba(255,255,255,0.55);}
.rgpd-link{color:var(--primary);text-decoration:underline;}
.dark .rgpd-link{color:var(--accent);}

/* Submit button */
.form-submit-row{margin-top:1.5rem;}
.btn-submit{
  position:relative;overflow:hidden;
  background:var(--accent);color:var(--navy);font-weight:700;letter-spacing:0.3px;
  padding:1rem 2rem;border-radius:9999px;font-size:1rem;
  display:inline-flex;align-items:center;gap:0.5rem;
  transition:filter 200ms,transform 200ms;
  cursor:pointer;border:none;
}
.btn-submit:hover:not(:disabled){filter:brightness(1.07);transform:translateY(-1px);}
.btn-submit:disabled{opacity:0.7;cursor:not-allowed;}

/* Success state */
.form-success{
  display:flex;flex-direction:column;align-items:center;
  text-align:center;padding:3rem 1rem;gap:1rem;
  animation:fade-up 0.5s both ease-out;
}
.success-checkmark svg{width:64px;height:64px;}
.success-circle{stroke-dasharray:151;stroke-dashoffset:151;animation:circle-draw 0.5s 0.1s ease-out forwards;}
.success-check{stroke-dasharray:50;stroke-dashoffset:50;animation:check-draw 0.4s 0.5s ease-out forwards;}
@keyframes circle-draw{to{stroke-dashoffset:0;}}
@keyframes check-draw{to{stroke-dashoffset:0;}}
.success-title{font-size:1.5rem;font-weight:700;color:var(--navy);}
.dark .success-title{color:#fff;}
.success-desc{font-size:0.9375rem;color:#6b7280;}
.dark .success-desc{color:rgba(255,255,255,0.6);}
.btn-reset{
  margin-top:0.5rem;padding:0.625rem 1.5rem;border-radius:9999px;
  border:1.5px solid var(--primary);color:var(--primary);
  font-size:0.875rem;font-weight:500;background:transparent;
  transition:all 200ms;cursor:pointer;
}
.btn-reset:hover{background:var(--primary);color:#fff;}
.dark .btn-reset{border-color:var(--accent);color:var(--accent);}
.dark .btn-reset:hover{background:var(--accent);color:var(--navy);}

/* ── 10. CTA SECTION (réutilisé de formations) ─────────────── */
.cta-section{padding:2.5rem 0;background:#fff;transition:background 500ms;}
.dark .cta-section{background:var(--navy);}
.cta-inner{max-width:780px;margin:0 auto;padding:0 1rem;}
@media(min-width:640px){.cta-inner{padding:0 1.5rem;}}

.cta-card{
  position:relative;background:#fff;border:1px solid #e5e7eb;
  border-radius:1rem;border-top-left-radius:0;border-bottom-left-radius:0;
  overflow:hidden;box-shadow:0 4px 24px rgba(var(--primary-rgb),0.08),inset 0 1px 0 rgba(219,186,97,0.18);
  opacity:0;transform:translateY(30px);
  transition:opacity 0.5s,transform 0.5s cubic-bezier(0.16,1,0.3,1);
}
.dark .cta-card{background:linear-gradient(135deg,#1A1033 0%,#2D1F4E 100%);border-color:rgba(255,255,255,0.1);box-shadow:0 4px 24px rgba(0,0,0,0.3),inset 0 1px 0 rgba(219,186,97,0.18);}
.cta-card.in-view{opacity:1;transform:translateY(0);}
.cta-left-border{
  position:absolute;left:0;top:0;width:4px;height:100%;
  background:var(--primary);transform-origin:top;transform:scaleY(0);
  transition:transform 0.5s 0.2s cubic-bezier(0.16,1,0.3,1);
}
.cta-card.in-view .cta-left-border{transform:scaleY(1);}
.cta-body{padding:2rem 1.5rem;margin-left:0.25rem;}
@media(min-width:640px){.cta-body{padding:2rem 2.5rem;}}
.cta-badge{display:inline-flex;align-items:center;gap:0.375rem;background:rgba(var(--primary-rgb),0.1);color:var(--primary);border-radius:9999px;padding:0.375rem 0.75rem;font-size:0.75rem;font-weight:500;margin-bottom:1rem;}
.dark .cta-badge{background:rgba(122,93,182,0.2);color:#c4b5fd;}
.cta-title{font-size:1.875rem;font-weight:800;letter-spacing:-0.025em;color:var(--navy);margin-bottom:0.5rem;}
.dark .cta-title{color:#fff;}
.cta-subtitle{font-size:0.9375rem;color:#6b7280;margin-bottom:1.25rem;}
.dark .cta-subtitle{color:rgba(255,255,255,0.6);}
.cta-pills{display:flex;flex-wrap:wrap;gap:0.75rem;margin-bottom:1.5rem;}
.cta-pill{
  display:inline-flex;align-items:center;gap:0.375rem;
  background:rgba(122,93,182,0.08);border:1px solid rgba(122,93,182,0.18);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-radius:9999px;padding:5px 14px;font-size:0.8125rem;color:#534B63;
  opacity:0;transform:translateY(10px);
  animation:pill-in 0.4s both ease-out;
}
.dark .cta-pill{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;}
.cta-card.in-view .cta-pill:nth-child(1){animation-delay:0.45s;}
.cta-card.in-view .cta-pill:nth-child(2){animation-delay:0.55s;}
.cta-card.in-view .cta-pill:nth-child(3){animation-delay:0.65s;}
@keyframes pill-in{to{opacity:1;transform:translateY(0);}}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;}
.cta-note{font-size:0.8125rem;color:#9ca3af;}
.dark .cta-note{color:rgba(255,255,255,0.4);}

/* ── 12. Footer ───────────────────────────────────────────── */
.site-footer{background:var(--navy);color:rgba(255,255,255,0.8);padding:2.5rem 0;}
.footer-grid{display:grid;gap:2rem;grid-template-columns:1fr;}
@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr;}.footer-brand{grid-column:1;}}
.footer-brand-logo{font-size:1.25rem;font-weight:700;color:#fff;display:inline-block;margin-bottom:1rem;}
.footer-accent{color:var(--accent);}
.footer-brand p{font-size:0.875rem;color:rgba(255,255,255,0.5);max-width:20rem;}
.footer-col h4{font-weight:600;color:#fff;margin-bottom:1rem;font-size:0.875rem;}
.footer-col ul{display:flex;flex-direction:column;gap:0.5rem;font-size:0.875rem;}
.footer-col a{transition:color 200ms;}
.footer-col a:hover{color:var(--accent);}
.footer-bottom{margin-top:2rem;padding-top:1.5rem;text-align:center;font-size:0.875rem;color:rgba(255,255,255,0.4);}

/* ── 13. Select dark option fix ────────────────────────────── */
.dark option{background:#241845;color:#f0ecf5;}

/* ── 14. Bannière formation pré-sélectionnée ─────────────── */
.formation-prefill-notice{
  display:flex;align-items:center;gap:0.5rem;
  background:rgba(91,33,214,0.08);
  border:1px solid rgba(91,33,214,0.25);
  border-radius:12px;
  padding:0.75rem 1.1rem;
  font-size:0.875rem;
  color:#5B21D6;
  margin-bottom:1.25rem;
}
.dark .formation-prefill-notice{
  background:rgba(167,139,250,0.10);
  border-color:rgba(167,139,250,0.30);
  color:#a78bfa;
}
.formation-prefill-notice svg{flex-shrink:0;stroke:#5B21D6;}
.dark .formation-prefill-notice svg{stroke:#a78bfa;}
.formation-prefill-notice strong{font-weight:600;}
