/* ──────────────────────────────────────────────────────────
   Académie Chorégraphique de Moulins — Style v4
   Palette froide bleue-grise, photo hero, Danse-Étude, Planning
   ────────────────────────────────────────────────────────── */

/* ── Variables ── */
:root {
  --white:   #FAFCFE;
  --pearl:   #EDF1F7;
  --icy:     #CCD5E2;
  --silver:  #A8B6C8;
  --fog:     #E3E8F0;
  --t900:    #1A2130;
  --t700:    #334155;
  --t500:    #5A6F8A;
  --t300:    #8FA3BE;
  --t100:    #C2D0E0;
  --accent:  #4A7396;
  --accent2: #2E5A80;

  --loc-moulins: #4A7396;
  --loc-bourbon: #7C6A9E;
  --loc-saint:   #5A9687;
  --loc-etude:   #1A2130;

  --ff-serif:  'Cormorant Garamond', Georgia, serif;
  --ff-sans:   'Jost', system-ui, sans-serif;

  --r-s: .4rem;
  --r-m: .8rem;
  --r-l: 1.4rem;

  --shadow-s: 0 1px 4px rgba(26,33,48,.06);
  --shadow-m: 0 4px 20px rgba(26,33,48,.09);
  --shadow-l: 0 12px 48px rgba(26,33,48,.14);
}

/* ── Reset ── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--ff-sans);font-weight:300;color:var(--t700);background:var(--white);overflow-x:hidden;line-height:1.7;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{cursor:pointer;border:none;background:none;font-family:inherit;}
ul,ol{list-style:none;}
address{font-style:normal;}
abbr{text-decoration:none;}

/* ── Container ── */
.container{width:min(1180px,92vw);margin-inline:auto;}

/* ── Typography helpers ── */
.section-label{
  font-family:var(--ff-sans);font-weight:200;letter-spacing:.25em;font-size:.7rem;
  text-transform:uppercase;color:var(--accent);margin-bottom:.7rem;
}
.section-title{
  font-family:var(--ff-serif);font-weight:200;font-size:clamp(2.2rem,4vw,3.4rem);
  line-height:1.1;color:var(--t900);margin-bottom:1.2rem;
}
.section-title em{font-style:italic;color:var(--accent);}
.section-title.light{color:var(--white);}
.section-intro{
  font-size:clamp(.95rem,1.4vw,1.05rem);color:var(--t500);max-width:56ch;
  line-height:1.8;margin-bottom:3rem;
}
.section-intro.light{color:var(--icy);}
.body-text{font-size:clamp(.9rem,1.2vw,1rem);line-height:1.9;color:var(--t700);margin-bottom:1.1rem;}
.body-text strong{color:var(--t900);font-weight:400;}
.italic{font-style:italic;}

/* ════════════════════════════════════════════
   LOADER
════════════════════════════════════════════ */
#loader{
  position:fixed;inset:0;z-index:9999;background:var(--pearl);
  display:flex;align-items:center;justify-content:center;
}
.loader-inner{text-align:center;}
.loader-letters{display:flex;gap:.4rem;justify-content:center;margin-bottom:1.2rem;}
.loader-letters span{
  font-family:var(--ff-serif);font-weight:200;font-size:3.2rem;color:var(--t900);
  opacity:0;transform:translateY(16px);
}
.loader-bar{
  width:120px;height:1px;background:var(--icy);margin-inline:auto;position:relative;
}
.loader-bar-fill{
  position:absolute;inset:0;width:0;background:var(--accent);
  animation:barFill 1.3s .3s ease-in-out forwards;
}
@keyframes barFill{to{width:100%;}}
body.is-loading{overflow:hidden;}

/* ════════════════════════════════════════════
   NAV
════════════════════════════════════════════ */
#nav{
  position:fixed;top:0;left:0;right:0;z-index:900;
  padding:.9rem 0;transition:background .45s,box-shadow .45s,padding .35s;
}
#nav.scrolled{
  background:rgba(250,252,254,.88);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:0 1px 0 rgba(74,115,150,.1);padding:.55rem 0;
}
.nav-inner{
  width:min(1180px,92vw);margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;
}
.nav-logo{display:flex;align-items:center;gap:.8rem;text-decoration:none;}
.logo-abbr{
  font-family:var(--ff-serif);font-weight:200;font-size:1.5rem;color:var(--t900);
  letter-spacing:.08em;
}
.logo-full{
  font-family:var(--ff-sans);font-weight:200;font-size:.65rem;letter-spacing:.12em;
  line-height:1.5;color:var(--t700);text-transform:uppercase;
}
.nav-links{display:flex;gap:2rem;align-items:center;}
.nav-link{
  font-family:var(--ff-sans);font-weight:300;font-size:.8rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--t700);transition:color .25s;position:relative;
}
.nav-link::after{
  content:'';position:absolute;bottom:-3px;left:0;width:0;height:1px;
  background:var(--accent);transition:width .3s;
}
.nav-link:hover{color:var(--accent);}
.nav-link:hover::after{width:100%;}
.nav-cta{
  border:1px solid var(--icy);padding:.42rem 1.1rem;border-radius:40px;
  transition:background .25s,border-color .25s,color .25s;
}
.nav-cta:hover{background:var(--accent);border-color:var(--accent);color:var(--white);}
.nav-burger{
  display:none;flex-direction:column;gap:5px;padding:6px;
}
.nav-burger span{
  display:block;width:22px;height:1px;background:var(--t700);
  transition:transform .3s,opacity .3s;
}

/* ── Mobile menu ── */
.mobile-menu{
  position:fixed;inset:0;z-index:850;background:var(--pearl);
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  gap:1.8rem;transform:translateX(100%);
}
.mobile-menu a{
  font-family:var(--ff-serif);font-weight:200;font-size:2rem;color:var(--t900);
  letter-spacing:.04em;
}
.mobile-close{
  position:absolute;top:1.4rem;right:1.6rem;font-size:1.1rem;color:var(--t500);
}
.mobile-contact{text-align:center;margin-top:.5rem;}
.mobile-contact a{
  display:block;font-size:.8rem;letter-spacing:.12em;color:var(--t500);
  font-family:var(--ff-sans);font-weight:200;text-transform:uppercase;
}

/* ════════════════════════════════════════════
   HERO
════════════════════════════════════════════ */
#hero{
  position:relative;height:100svh;min-height:580px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:var(--pearl);
}
.hero-slides-track{
  position:absolute;inset:-12% 0 -8%;will-change:transform;
  pointer-events:none;
}
.hero-slide{
  position:absolute;inset:0;background-size:cover;background-repeat:no-repeat;
  opacity:0;will-change:transform,opacity;transform-origin:center;
}
#slide-0{opacity:1;}

/* Multi-layer brume blanche froide */
.hero-mist{
  position:absolute;inset:0;pointer-events:none;z-index:2;
  background:
    linear-gradient(180deg,rgba(237,241,247,.62) 0%,rgba(237,241,247,.22) 18%,transparent 40%),
    linear-gradient(0deg,rgba(250,252,254,1.00) 0%,rgba(250,252,254,.88) 14%,rgba(250,252,254,.52) 28%,rgba(250,252,254,.14) 46%,transparent 65%),
    radial-gradient(ellipse 130% 70% at 50% 55%,rgba(204,213,226,.20) 0%,transparent 70%);
}

/* Hero content */
.hero-content{
  position:relative;z-index:3;text-align:center;
  max-width:780px;padding:0 1.5rem;will-change:transform;
}
.hero-eyebrow{
  font-family:var(--ff-sans);font-weight:200;letter-spacing:.22em;font-size:.68rem;
  text-transform:uppercase;color:var(--accent);margin-bottom:1.6rem;opacity:0;
}
.hero-title{
  font-family:var(--ff-serif);font-weight:200;font-size:clamp(3rem,7.5vw,6.2rem);
  line-height:1.08;color:var(--t900);display:block;
}
.hero-title .line{display:block;overflow:hidden;}
.hero-title .line>*,.hero-title .line{display:block;}
.hero-sub{
  font-family:var(--ff-sans);font-weight:200;font-size:clamp(.78rem,1.2vw,.9rem);
  letter-spacing:.16em;text-transform:uppercase;color:var(--t500);
  margin:1.6rem 0 2.2rem;opacity:0;
}
.btn-hero{
  display:inline-block;border:1px solid var(--accent);color:var(--accent);
  font-family:var(--ff-sans);font-weight:300;font-size:.75rem;letter-spacing:.18em;
  text-transform:uppercase;padding:.75rem 2rem;border-radius:40px;
  transition:background .3s,color .3s;opacity:0;
}
.btn-hero:hover{background:var(--accent);color:var(--white);}

/* Slide dots */
.slide-dots{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  display:flex;gap:.65rem;z-index:4;
}
.slide-dot{
  width:7px;height:7px;border-radius:50%;border:1px solid rgba(74,115,150,.5);
  background:transparent;transition:background .3s,border-color .3s;padding:0;
}
.slide-dot.active{background:var(--accent);border-color:var(--accent);}

/* Scroll cue */
.scroll-cue{
  position:absolute;bottom:2.2rem;right:2.5rem;
  display:flex;flex-direction:column;align-items:center;gap:.5rem;z-index:4;
}
.scroll-cue span{
  font-family:var(--ff-sans);font-weight:200;font-size:.6rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--t500);writing-mode:vertical-rl;
}
.scroll-cue-line{width:1px;height:44px;background:var(--icy);transform-origin:top;animation:scrollPulse 2s ease-in-out infinite;}
@keyframes scrollPulse{0%,100%{transform:scaleY(1);opacity:.5;}50%{transform:scaleY(.55);opacity:1;}}

/* ════════════════════════════════════════════
   ABOUT
════════════════════════════════════════════ */
#about{padding:clamp(4rem,8vw,8rem) 0;}
.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:5rem;align-items:start;}
.about-visual{position:relative;}
.visual-frame{
  width:100%;padding-bottom:170%;position:relative;overflow:hidden;border-radius:var(--r-m);
  background:#0d1117;border:1px solid var(--icy);
}
.visual-inner{
  position:absolute;inset:0;
  background:
    linear-gradient(135deg,var(--fog) 0%,var(--pearl) 50%,var(--icy) 100%);
  opacity:.6;
}
.visual-photo{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:contain;object-position:center center;
}
.visual-quote{
  position:absolute;bottom:-1.5rem;right:-14rem;left:auto;
  background:var(--white);border:1px solid var(--icy);border-radius:var(--r-m);
  padding:1.2rem 1.5rem;max-width:260px;
  font-family:var(--ff-serif);font-style:italic;font-weight:200;
  font-size:.95rem;line-height:1.5;color:var(--t700);
  box-shadow:var(--shadow-m);
}

.about-stats{display:flex;gap:2.5rem;margin:2.4rem 0 1.6rem;flex-wrap:wrap;}
.stat{display:flex;flex-direction:column;gap:.2rem;}
.stat-row{display:flex;align-items:baseline;gap:.15rem;}
.stat-num{
  font-family:var(--ff-serif);font-weight:200;font-size:clamp(2rem,3vw,2.8rem);
  color:var(--accent);line-height:1;
}
.stat-unit{font-family:var(--ff-serif);font-size:1.2rem;color:var(--accent);}
.stat-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--t500);}

.lieux-tags{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.8rem;}
.lieu-tag{
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.3rem .85rem;border-radius:40px;border:1px solid var(--icy);
  color:var(--t700);transition:all .25s;cursor:default;
}
.lieu-tag.active{background:var(--accent);border-color:var(--accent);color:var(--white);}

/* ════════════════════════════════════════════
   PALMARÈS
════════════════════════════════════════════ */
#palmares{
  background:var(--pearl);padding:clamp(4rem,7vw,7rem) 0;
}
.awards-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;
}
.award-card{
  background:var(--white);border:1px solid var(--fog);border-radius:var(--r-l);
  padding:2.2rem 1.8rem;text-align:center;
  transition:box-shadow .3s,transform .3s;cursor:default;
}
.award-card:hover{box-shadow:var(--shadow-l);transform:translateY(-4px);}
.award-icon{
  width:52px;height:52px;margin:0 auto 1rem;color:var(--accent);
}
.award-num{
  font-family:var(--ff-serif);font-weight:200;font-size:2.4rem;
  color:var(--t900);line-height:1;margin-bottom:.4rem;
}
.award-title{
  font-family:var(--ff-sans);font-weight:300;font-size:.85rem;
  color:var(--t700);letter-spacing:.06em;margin-bottom:.3rem;
}
.award-desc{font-size:.78rem;color:var(--t500);}
.award-counter{font-family:inherit;font-size:inherit;font-weight:inherit;}

/* ════════════════════════════════════════════
   DANSE-ÉTUDE
════════════════════════════════════════════ */
#danse-etude{
  background:var(--t900);padding:clamp(4rem,8vw,8rem) 0;
}
.etude-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-bottom:2rem;
}
.etude-card{
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-l);padding:2.2rem;display:flex;flex-direction:column;gap:.8rem;
  transition:background .3s,border-color .3s;position:relative;overflow:hidden;
}
.etude-card:hover{background:rgba(255,255,255,.09);border-color:rgba(74,115,150,.5);}
.etude-featured{
  grid-column:1/-1;
  background:linear-gradient(135deg,rgba(74,115,150,.18),rgba(46,90,128,.10));
  border-color:rgba(74,115,150,.45);
}
.etude-level-tag{
  position:absolute;top:1.5rem;right:1.5rem;
  font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;
  background:var(--accent);color:var(--white);padding:.28rem .7rem;border-radius:40px;
}
.etude-label{
  font-family:var(--ff-sans);font-weight:200;font-size:.7rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--silver);
}
.etude-name{
  font-family:var(--ff-serif);font-weight:200;font-size:clamp(1.4rem,2.2vw,1.9rem);
  line-height:1.15;color:var(--white);
}
.etude-detail{
  display:flex;align-items:center;gap:1.2rem;margin:.3rem 0;
}
.etude-hours span,.etude-price span{
  font-family:var(--ff-serif);font-weight:200;font-size:1.5rem;color:var(--white);
}
.etude-hours small,.etude-price small{
  display:block;font-size:.68rem;letter-spacing:.1em;color:var(--silver);text-transform:uppercase;
}
.etude-sep{width:1px;height:36px;background:rgba(255,255,255,.15);}
.etude-desc{font-size:.88rem;line-height:1.7;color:var(--silver);}
.etude-cta{
  align-self:flex-start;margin-top:auto;
  font-family:var(--ff-sans);font-weight:300;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent);
  border:1px solid rgba(74,115,150,.4);border-radius:40px;padding:.38rem .9rem;
  transition:background .25s,color .25s,border-color .25s;
}
.etude-cta:hover{background:var(--accent);color:var(--white);border-color:var(--accent);}
.etude-note{
  text-align:center;font-size:.82rem;color:var(--silver);margin-top:.5rem;
}
.etude-note a{color:var(--t100);text-decoration:underline;text-underline-offset:3px;}

/* ════════════════════════════════════════════
   PLANNING
════════════════════════════════════════════ */
#planning{
  background:var(--white);padding:clamp(4rem,8vw,8rem) 0;
}

/* Légende */
.plan-legend{
  display:flex;flex-wrap:wrap;gap:.8rem 1.8rem;margin-bottom:2.4rem;
}
.legend-item{
  display:flex;align-items:center;gap:.55rem;
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--t500);
}
.legend-item i{
  display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0;
}
.loc-moulins{background:var(--loc-moulins);}
.loc-bourbon{background:var(--loc-bourbon);}
.loc-saint  {background:var(--loc-saint);}
.loc-etude  {background:var(--loc-etude);}

/* Day tabs */
.day-tabs{
  display:flex;gap:.4rem;flex-wrap:wrap;border-bottom:1px solid var(--fog);
  margin-bottom:2.5rem;
}
.day-tab{
  font-family:var(--ff-sans);font-weight:300;font-size:.78rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--t500);padding:.65rem 1.3rem;
  border-bottom:2px solid transparent;margin-bottom:-1px;
  transition:color .2s,border-color .2s;
}
.day-tab:hover{color:var(--accent);}
.day-tab.active{color:var(--accent);border-bottom-color:var(--accent);}

/* Panels */
.plan-panel{display:none;flex-direction:column;gap:.9rem;}
.plan-panel.active{display:flex;}

/* Slot */
.plan-slot{
  display:grid;grid-template-columns:80px 1fr;gap:1.2rem;
  align-items:start;padding:1.1rem 1.4rem;
  border:1px solid var(--fog);border-radius:var(--r-m);
  background:var(--white);transition:box-shadow .25s;
}
.plan-slot:hover{box-shadow:var(--shadow-m);}
.plan-slot.is-etude{
  border-color:rgba(26,33,48,.12);background:var(--pearl);
}
.plan-slot.no-border{border-color:transparent;box-shadow:none;}
.plan-slot.no-border:hover{box-shadow:none;}

.plan-time{
  font-family:var(--ff-serif);font-weight:200;font-size:1.1rem;line-height:1.2;
  color:var(--t900);padding-top:.1rem;
}
.plan-time span{display:block;font-size:.78rem;color:var(--t300);margin-top:.1rem;}
.plan-name{
  font-family:var(--ff-sans);font-weight:300;font-size:.9rem;
  color:var(--t900);margin-bottom:.4rem;
}
.plan-name em{font-style:normal;color:var(--t500);font-size:.8rem;margin-left:.4rem;}
.plan-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.4rem;}
.tag-prof,.tag-loc,.tag-etude{
  font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;
  padding:.2rem .6rem;border-radius:40px;font-weight:400;
}
.tag-prof{background:var(--fog);color:var(--t700);}
.loc-moulins-tag{background:rgba(74,115,150,.12);color:var(--loc-moulins);}
.loc-bourbon-tag{background:rgba(124,106,158,.12);color:var(--loc-bourbon);}
.loc-saint-tag  {background:rgba(90,150,135,.12);color:var(--loc-saint);}
.tag-etude{background:var(--t900);color:var(--white);}
.plan-cond{font-size:.76rem;color:var(--t500);font-style:italic;}

/* Parallel block */
.plan-parallel{
  border:1px solid var(--icy);border-radius:var(--r-m);overflow:hidden;
}
.plan-parallel-label{
  background:var(--fog);padding:.5rem 1.4rem;font-size:.68rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--t500);
}
.plan-parallel .plan-slot{
  border:none;border-top:1px solid var(--fog);border-radius:0;margin:0;
}
.plan-parallel .plan-slot:first-of-type{border-top:none;}

/* ════════════════════════════════════════════
   DOCUMENTS
════════════════════════════════════════════ */
#documents{
  background:var(--pearl);padding:clamp(4rem,8vw,8rem) 0;
}
.docs-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;
}
.doc-card{
  display:flex;flex-direction:column;gap:1rem;
  background:var(--white);border:1px solid var(--fog);border-radius:var(--r-l);
  padding:2rem 1.8rem;text-decoration:none;
  transition:box-shadow .3s,transform .3s,border-color .3s;
}
.doc-card:hover{box-shadow:var(--shadow-l);transform:translateY(-4px);border-color:var(--icy);}
.doc-icon{width:44px;height:44px;color:var(--accent);}
.doc-body{flex:1;}
.doc-title{
  font-family:var(--ff-serif);font-weight:200;font-size:1.25rem;
  color:var(--t900);margin-bottom:.4rem;
}
.doc-desc{font-size:.82rem;color:var(--t500);line-height:1.6;}
.doc-dl{
  font-family:var(--ff-sans);font-weight:300;font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--accent);margin-top:auto;
}

@media(max-width:768px){.docs-grid{grid-template-columns:1fr;}}

/* ════════════════════════════════════════════
   INSCRIPTION
════════════════════════════════════════════ */
#inscription{
  background:var(--pearl);padding:clamp(4rem,8vw,8rem) 0;
}

/* Form grid */
.form{position:relative;max-width:820px;margin-inline:auto;}
.form-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 1.8rem;
}
.form-full{grid-column:1/-1;}
.form-section-label{
  font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);font-weight:400;padding-bottom:.2rem;
  border-bottom:1px solid var(--fog);margin-bottom:-.2rem;
}

/* Float label */
.form-group{position:relative;display:flex;flex-direction:column;}
.form-group input,.form-group textarea,.form-group select{
  font-family:var(--ff-sans);font-weight:300;font-size:.92rem;
  color:var(--t900);background:var(--white);
  border:1px solid var(--icy);border-radius:var(--r-m);
  padding:1.3rem 1rem .5rem;outline:none;
  transition:border-color .25s,box-shadow .25s;appearance:none;width:100%;
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{
  border-color:var(--accent);box-shadow:0 0 0 3px rgba(74,115,150,.12);
}
.form-group input.error,.form-group textarea.error,.form-group select.error{
  border-color:#C0392B;
}
.form-group label{
  position:absolute;top:50%;left:1rem;transform:translateY(-50%);
  font-size:.88rem;color:var(--t300);pointer-events:none;
  transition:top .2s,font-size .2s,color .2s,transform .2s;
}
.form-group textarea~label{top:1.2rem;transform:none;}
.form-group input:focus~label,
.form-group input:not(:placeholder-shown)~label,
.form-group textarea:focus~label,
.form-group textarea:not(:placeholder-shown)~label,
.form-group select:focus~label,
.label-up{
  top:.45rem;transform:none;font-size:.68rem;color:var(--accent);letter-spacing:.06em;
}
.form-group textarea{min-height:120px;resize:vertical;line-height:1.6;padding-top:1.4rem;}
.form-select-wrap::after{
  content:'↓';position:absolute;right:1rem;top:50%;transform:translateY(-50%);
  color:var(--t300);pointer-events:none;font-size:.85rem;
}
.form-select-wrap select{cursor:pointer;padding-right:2.4rem;}

/* Date input label always up */
input[type="date"]~label{
  top:.45rem;transform:none;font-size:.68rem;color:var(--accent);letter-spacing:.06em;
}

.form-error{font-size:.73rem;color:#C0392B;margin-top:.25rem;min-height:1rem;display:block;}

/* Checkbox */
.form-check{display:flex;flex-direction:column;gap:.4rem;}
.checkbox-label{
  display:flex;align-items:flex-start;gap:.75rem;cursor:pointer;
  font-size:.85rem;color:var(--t700);
}
.cgv-notice{
  font-size:.82rem;color:var(--t500);font-style:italic;
  border-left:2px solid var(--accent);padding-left:.8rem;
  margin-top:.5rem;
}
.cgv-notice a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;}

/* Submit */
.form-footer{margin-top:2rem;text-align:center;}
.btn-submit{
  position:relative;display:inline-flex;align-items:center;gap:.7rem;
  background:var(--accent);color:var(--white);
  font-family:var(--ff-sans);font-weight:300;font-size:.82rem;letter-spacing:.15em;
  text-transform:uppercase;padding:.85rem 2.4rem;border-radius:40px;
  transition:background .3s,transform .2s;overflow:hidden;
}
.btn-submit:hover{background:var(--accent2);transform:translateY(-2px);}
.btn-submit.loading .btn-label,.btn-submit.loading .btn-arrow{opacity:0;}
.btn-arrow{transition:opacity .2s;}
.btn-loader{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .2s;
}
.btn-submit.loading .btn-loader{opacity:1;}
.btn-loader::before{
  content:'';width:16px;height:16px;border:2px solid rgba(255,255,255,.3);
  border-top-color:var(--white);border-radius:50%;animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}
.form-notice{font-size:.72rem;color:var(--t300);margin-top:.9rem;}

/* Success */
.form-success{
  text-align:center;padding:3rem 2rem;
}
.success-ring{
  width:64px;height:64px;border:1px solid var(--accent);border-radius:50%;
  margin:0 auto 1rem;
}
.success-check{
  font-size:1.8rem;color:var(--accent);margin-top:-50px;margin-bottom:1.4rem;
}
.form-success h3{
  font-family:var(--ff-serif);font-weight:200;font-size:1.8rem;
  color:var(--t900);margin-bottom:.7rem;
}
.form-success p{font-size:.9rem;color:var(--t500);}

/* ════════════════════════════════════════════
   CGV
════════════════════════════════════════════ */
#cgv{
  background:var(--white);padding:clamp(4rem,8vw,8rem) 0;
}
.cgv-accordion{display:flex;flex-direction:column;gap:.5rem;}
.cgv-item{border:1px solid var(--fog);border-radius:var(--r-m);overflow:hidden;}
.cgv-trigger{
  width:100%;display:flex;align-items:center;gap:1.2rem;
  padding:1.2rem 1.5rem;background:var(--white);text-align:left;
  transition:background .2s;
}
.cgv-trigger:hover{background:var(--pearl);}
.cgv-trigger[aria-expanded="true"]{background:var(--pearl);}
.cgv-num{
  font-family:var(--ff-serif);font-weight:200;font-size:1rem;color:var(--accent);
  flex-shrink:0;min-width:1.8rem;
}
.cgv-text{
  font-family:var(--ff-sans);font-weight:300;font-size:.88rem;color:var(--t900);
  letter-spacing:.04em;flex:1;
}
.cgv-icon{
  color:var(--t300);font-size:1.1rem;flex-shrink:0;
  transition:transform .3s;
}
.cgv-trigger[aria-expanded="true"] .cgv-icon{transform:rotate(45deg);}
.cgv-body{overflow:hidden;}
.cgv-body-inner{
  padding:0 1.5rem 1.5rem 4.2rem;
  font-size:.87rem;line-height:1.85;color:var(--t700);
}
.cgv-body-inner p+p{margin-top:.8rem;}
.cgv-body-inner ul{margin:.6rem 0 .8rem 1.2rem;list-style:disc;}
.cgv-body-inner li{margin-bottom:.4rem;}
.cgv-body-inner a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;}
.cgv-highlight{
  background:var(--pearl);border-left:3px solid var(--accent);
  padding:.9rem 1.1rem;border-radius:0 var(--r-s) var(--r-s) 0;
  margin-bottom:1rem;font-size:.84rem;line-height:1.8;
}

/* Tariff table */
.tarif-table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.82rem;}
.tarif-table th,.tarif-table td{
  padding:.55rem .9rem;text-align:left;border-bottom:1px solid var(--fog);
}
.tarif-table th{color:var(--accent);font-weight:400;letter-spacing:.06em;}
.tarif-table td:last-child{font-weight:400;color:var(--t900);}

/* ════════════════════════════════════════════
   FOOTER
════════════════════════════════════════════ */
#footer{
  background:var(--t900);color:var(--silver);
  padding:clamp(3rem,6vw,5rem) 0 2rem;
}
.footer-grid{
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:3rem;
  padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.08);
  margin-bottom:1.6rem;
}
.footer-logo{
  font-family:var(--ff-serif);font-weight:200;font-size:2rem;
  color:var(--white);letter-spacing:.1em;margin-bottom:.3rem;
}
.footer-name{
  font-family:var(--ff-sans);font-weight:200;font-size:.72rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--t100);line-height:1.6;
}
.footer-since{font-size:.73rem;color:var(--t300);margin-top:.6rem;}
.footer-col h4{
  font-family:var(--ff-sans);font-weight:300;font-size:.68rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--white);margin-bottom:.8rem;
}
.footer-col a,.footer-col p,.footer-col li{
  font-size:.82rem;color:var(--silver);line-height:2;
  transition:color .2s;
}
.footer-col a:hover{color:var(--white);}
.footer-bottom{
  display:flex;flex-wrap:wrap;gap:.6rem;justify-content:space-between;
  font-size:.72rem;color:var(--t300);
}

/* ════════════════════════════════════════════
   COURS MULTI-CHECKBOX
════════════════════════════════════════════ */
.form-courses{
  border:1px solid var(--icy);border-radius:var(--r-m);
  padding:1.4rem 1.4rem 1.2rem;background:var(--white);
}
.form-courses-legend{
  font-size:.88rem;color:var(--t300);padding:0 .4rem;
}
.cours-groups{
  display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 2.4rem;margin-top:1.1rem;
}
.cours-group-label{
  font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--accent);margin-bottom:.5rem;font-weight:400;
}
.cours-item{
  display:flex;align-items:center;gap:.65rem;cursor:pointer;
  padding:.28rem 0;font-size:.84rem;color:var(--t700);
  transition:color .2s;line-height:1.3;
}
.cours-item:hover{color:var(--accent);}
.cours-item input[type="checkbox"]{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.cours-check{
  width:17px;height:17px;border:1px solid var(--icy);border-radius:4px;
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  transition:background .2s,border-color .2s;
}
.cours-item input:checked~.cours-check{background:var(--accent);border-color:var(--accent);}
.cours-item input:checked~.cours-check::after{content:'✓';color:var(--white);font-size:.7rem;}
.cours-item input:checked~span:last-child{color:var(--accent);}

/* ── Price display ── */
.price-display{
  border:1px solid var(--icy);border-radius:var(--r-m);
  padding:1.4rem;background:var(--pearl);
  opacity:0;transform:translateY(6px);
  transition:opacity .35s,transform .35s;pointer-events:none;
}
.price-display.active{opacity:1;transform:none;pointer-events:auto;}
.price-header{
  font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--accent);margin-bottom:.85rem;font-weight:400;
}
.price-lines{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.85rem;}
.price-line{
  display:flex;justify-content:space-between;
  font-size:.82rem;color:var(--t700);
}
.price-line span:last-child{font-weight:400;color:var(--t900);}
.price-line.dimmed{color:var(--t300);font-style:italic;}
.price-line.dimmed span:last-child{color:var(--t300);font-weight:300;}
.price-total-row{
  display:flex;justify-content:space-between;align-items:baseline;
  border-top:1px solid var(--icy);padding-top:.85rem;
}
.price-total-row>span{
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--t700);
}
.price-total-row strong{
  font-family:var(--ff-serif);font-weight:200;font-size:1.9rem;color:var(--t900);
}
.price-note{font-size:.72rem;color:var(--t300);margin-top:.65rem;font-style:italic;}

/* ── File inputs ── */
.form-file-group{position:relative;}
.form-file-group input[type="file"]{
  position:absolute;opacity:0;width:0;height:0;
}
.form-file-label{
  display:flex;align-items:center;gap:1rem;
  border:1px dashed var(--icy);border-radius:var(--r-m);
  padding:1rem 1.3rem;cursor:pointer;background:var(--white);
  transition:border-color .25s,background .25s;
}
.form-file-label:hover{border-color:var(--accent);background:var(--pearl);}
.form-file-group.has-file .form-file-label{
  border-style:solid;border-color:var(--accent);
  background:rgba(74,115,150,.04);
}
.form-file-icon{
  width:34px;height:34px;border:1px solid var(--icy);border-radius:50%;
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;color:var(--accent);
  transition:background .25s,border-color .25s,color .25s;
}
.form-file-group.has-file .form-file-icon{
  background:var(--accent);border-color:var(--accent);color:var(--white);font-size:.9rem;
}
.form-file-text{
  font-size:.84rem;color:var(--t700);line-height:1.4;
}
.form-file-text abbr{color:var(--accent);}
.file-optional{font-size:.78rem;color:var(--t300);font-style:italic;}
.form-file-group .form-error{margin-top:.3rem;display:block;}

/* select valid label stays up */
.form-group select:valid~label{
  top:.45rem;transform:none;font-size:.68rem;color:var(--accent);letter-spacing:.06em;
}

/* ════════════════════════════════════════════
   RESPONSIVE
════════════════════════════════════════════ */
@media(max-width:1200px){
  .footer-grid{grid-template-columns:1fr 1fr;}
}

@media(max-width:1024px){
  .about-grid{grid-template-columns:1fr;gap:3rem;}
  .about-visual{display:none;}
  .awards-grid{grid-template-columns:repeat(2,1fr);}
  .etude-grid{grid-template-columns:1fr;}
  .etude-featured{grid-column:auto;}
}

@media(max-width:768px){
  .nav-links{display:none;}
  .nav-burger{display:flex;}
  .logo-full{display:none;}

  .about-grid{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .cours-groups{grid-template-columns:1fr;}

  .awards-grid{grid-template-columns:1fr 1fr;}
  .day-tabs{gap:.2rem;}
  .day-tab{font-size:.7rem;padding:.55rem .85rem;}
  .plan-slot{grid-template-columns:70px 1fr;}

  .footer-grid{grid-template-columns:1fr 1fr;gap:2rem;}
}

@media(max-width:560px){
  .awards-grid{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .etude-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}

  .hero-title{font-size:clamp(2.4rem,11vw,3.4rem);}
  .plan-slot{grid-template-columns:65px 1fr;padding:.9rem 1rem;}
  .day-tab{font-size:.65rem;padding:.5rem .65rem;letter-spacing:.06em;}
  .hero-eyebrow{font-size:.6rem;letter-spacing:.14em;}
}
