/* Go To Dance - feuille de style principale */
:root{
  --noir:#0F0C0A; --noir2:#17120F; --noir3:#0A0806;
  --or:#C9A24B; --or-clair:#E3C77E; --or-fonce:#8C6B22;
  --ivoire:#F5EFE4; --texte:#F5EFE4; --texte2:#CFC5B4; --muted:#B8AD9C; --discret:#8F8575;
  --encre:#1A1410; --encre2:#4A3F33; --filet:rgba(201,162,75,.3); --filet2:rgba(201,162,75,.2);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Montserrat',system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--noir);color:var(--texte);font-family:var(--sans);font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;line-height:1.02}
p{margin:0}
.saut{position:absolute;left:-999px;top:0;background:var(--or);color:var(--noir);padding:12px 20px;z-index:100}
.saut:focus{left:0}
:focus-visible{outline:2px solid var(--or);outline-offset:3px}
.conteneur{max-width:1280px;margin:0 auto}
section{padding:120px 80px}
.etiquette{font-size:12px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--or)}
.sur-ivoire .etiquette{color:var(--or-fonce)}
h2.titre{font-size:72px;letter-spacing:-.01em;margin-top:22px}
h2.titre em,h1 em{font-style:italic;color:var(--or-clair);font-weight:500}
.sur-ivoire{background:var(--ivoire);color:var(--encre)}
.sur-ivoire h2.titre em{color:inherit}
.flash{padding:16px 80px;font-size:14px;border-bottom:1px solid var(--filet);background:var(--noir2);color:var(--or-clair)}
.flash-erreur{color:#F0A99C}

/* Boutons */
.bt{display:inline-block;padding:18px 36px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;border:1px solid transparent;cursor:pointer;transition:background .25s,color .25s,border-color .25s;text-align:center;line-height:1.3}
.bt-petit{padding:13px 24px;letter-spacing:.14em}
.bt-or{background:var(--or);color:var(--noir)}
.bt-or:hover{background:var(--or-clair)}
.bt-ligne{border-color:rgba(245,239,228,.45);color:var(--texte);background:transparent}
.bt-ligne:hover{border-color:var(--or);color:var(--or-clair)}
.bt-sombre{background:var(--encre);color:var(--ivoire)}
.bt-sombre:hover{background:#2A221C}
.bt-ligne-sombre{border-color:var(--encre);color:var(--encre)}
.bt[disabled]{background:#3A322B;color:var(--discret);cursor:not-allowed}

/* En-tête */
.entete{position:sticky;top:0;z-index:20;padding:16px 80px;border-bottom:1px solid var(--filet2);background:rgba(15,12,10,.94);backdrop-filter:blur(8px)}
.entete-in{max-width:1280px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px}
.logo{display:block;line-height:0}
.logo img{width:56px;height:56px;border-radius:50%;border:1px solid var(--or)}
.nav{display:flex;flex-wrap:wrap;gap:8px 40px;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#E8DFCF}
.nav a{position:relative;padding:6px 0;transition:color .25s}
.nav a:after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--or);transition:width .3s}
.nav a:hover{color:var(--or-clair)}
.nav a:hover:after{width:100%}
.entete-actions{display:flex;flex-wrap:wrap;gap:10px}

/* Accueil : bandeau d'ouverture */
.hero{padding:88px 80px 104px;background:radial-gradient(900px 600px at 82% 40%,rgba(201,162,75,.16),transparent 70%),var(--noir)}
.hero-in{display:flex;flex-wrap:wrap;gap:72px;align-items:center}
.hero-texte{flex:1 1 520px;min-width:0}
.hero .ligne-or{display:flex;align-items:center;gap:18px}
.hero .ligne-or:before{content:"";width:56px;height:1px;background:var(--or)}
.hero h1{margin-top:30px;font-size:112px;line-height:.95;letter-spacing:-.015em}
.hero p.intro{margin-top:38px;font-size:18px;line-height:1.8;color:var(--texte2);max-width:500px}
.hero-boutons{display:flex;flex-wrap:wrap;gap:16px;margin-top:44px}
.chiffres{display:flex;flex-wrap:wrap;margin-top:72px;border-top:1px solid var(--filet);max-width:560px}
.chiffres div{flex:1 1 0;padding:22px 24px 0}
.chiffres div+div{border-left:1px solid var(--filet)}
.chiffres div:first-child{padding-left:0}
.chiffres b{display:block;font-family:var(--serif);font-weight:500;font-size:46px;line-height:1;color:var(--or-clair)}
.chiffres span{display:block;margin-top:8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hero-photo{flex:1 1 440px;min-width:0;max-width:560px;position:relative;padding:0 24px 24px 0}
.hero-photo:before{content:"";position:absolute;top:28px;left:28px;right:0;bottom:0;border:1px solid var(--or)}
.photo{position:relative;overflow:hidden}
.photo img{display:block;width:100%;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.photo:hover img{transform:scale(1.04)}
.hero-photo img{aspect-ratio:4/5;object-fit:cover}

/* Cours */
.cours-titre{max-width:640px}
.cours-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:48px;margin-top:72px}
.cours-grille img{aspect-ratio:1;object-fit:cover}
.cours-grille h3{margin-top:30px;font-size:44px}
.cours-grille p{margin-top:14px;font-size:15px;line-height:1.8;color:var(--encre2)}
.cours-horaires{margin-top:22px;padding-top:18px;border-top:1px solid #C9BBA0;font-size:14px;line-height:1.9}

/* Ambiance */
.ambiance{position:relative;min-height:560px;display:flex;align-items:center;padding:96px 80px;background:var(--noir)}
.ambiance>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.ambiance:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(15,12,10,.92) 0%,rgba(15,12,10,.7) 42%,rgba(15,12,10,.1) 75%)}
.ambiance-in{position:relative;z-index:2;width:100%;max-width:1280px;margin:0 auto}
.ambiance-bloc{max-width:520px}
.ambiance-bloc:before{content:"";display:block;width:56px;height:1px;background:var(--or)}
.ambiance .citation{margin-top:28px;font-family:var(--serif);font-style:italic;font-size:60px;line-height:1.08}
.ambiance .texte{margin-top:26px;font-size:16px;line-height:1.8;color:var(--texte2)}

/* Planning */
.fond-noir2{background:var(--noir2)}
.etroit{max-width:1120px;margin:0 auto}
.entete-section{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-end;justify-content:space-between}
.filtres{display:flex;flex-wrap:wrap;gap:8px}
.filtre{padding:12px 22px;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;background:transparent;color:#E8DFCF;border:1px solid rgba(245,239,228,.35);cursor:pointer;transition:all .25s}
.filtre[aria-pressed="true"]{background:var(--or);color:var(--noir);border-color:var(--or)}
.planning{margin-top:56px;border-top:1px solid rgba(201,162,75,.45)}
.planning-ligne{display:grid;grid-template-columns:1fr 1fr 1.5fr 1.3fr .8fr;gap:16px;align-items:baseline;padding:26px 12px;border-bottom:1px solid var(--filet2);transition:background .25s}
.planning-ligne:hover{background:rgba(201,162,75,.07)}
.planning-ligne[hidden]{display:none}
.planning-ligne .jour{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--or)}
.planning-ligne .nom{font-family:var(--serif);font-size:30px;line-height:1.1}
.planning-ligne .heure{font-size:15px;color:var(--texte2)}
.planning-ligne .niveau{font-size:14px;color:var(--texte2)}
.planning-ligne .prof{font-size:14px;color:var(--muted)}
.note{margin-top:28px;font-size:14px;line-height:1.7;color:var(--muted)}

/* Tarifs */
.tarifs-entete{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-end;justify-content:space-between}
.tarifs-entete .groupe-boutons{display:flex;flex-wrap:wrap;gap:12px}
.tarifs-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:72px;border-top:1px solid var(--encre)}
.tarif{padding:34px 28px;border-bottom:1px solid #C9BBA0}
.tarif:first-child{padding-left:0}
.tarif b{display:block;font-family:var(--serif);font-weight:500;font-size:68px;line-height:1}
.tarif .t{margin-top:14px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--or-fonce)}
.tarif p{margin-top:8px;font-size:14px;line-height:1.7;color:var(--encre2)}
.degressif{margin-top:56px;padding:36px 40px;background:var(--encre);color:var(--ivoire);display:flex;flex-wrap:wrap;gap:32px 56px;align-items:center;justify-content:space-between}
.degressif .gauche{flex:1 1 320px}
.degressif h3{margin-top:12px;font-size:36px;line-height:1.1}
.degressif .gauche p{margin-top:12px;font-size:14px;line-height:1.7;color:var(--muted)}
.degressif .droite{flex:1 1 420px;display:flex;flex-wrap:wrap;border-top:1px solid var(--filet)}
.degressif .droite div{flex:1 1 0;min-width:120px;padding:18px 16px 0}
.degressif .droite div+div{border-left:1px solid var(--filet)}
.degressif .droite b{display:block;font-family:var(--serif);font-weight:500;font-size:40px;line-height:1;color:var(--or-clair)}
.degressif .droite span{display:block;margin-top:8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* Équipe */
.equipe-entete{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-end;justify-content:space-between}
.equipe-entete p{font-size:16px;line-height:1.8;color:var(--texte2);max-width:440px}
.equipe-photo{position:relative;margin-top:72px;padding:0 24px 24px 0}
.equipe-photo:before{content:"";position:absolute;top:24px;left:24px;right:0;bottom:0;border:1px solid var(--or)}
.equipe-photo img{aspect-ratio:1376/768;object-fit:cover}

/* Espace membre et avis */
.bande{padding:96px 80px;background:var(--noir2);border-top:1px solid var(--filet2);border-bottom:1px solid var(--filet2)}
.bande-in{display:flex;flex-wrap:wrap;gap:64px}
.bande-in>div{flex:1 1 440px;min-width:0}
.bande-in>div+div{padding-left:64px;border-left:1px solid var(--filet)}
.bande h2{margin-top:20px;font-size:52px;line-height:1.05}
.bande p{margin-top:22px;font-size:15px;line-height:1.8;color:var(--texte2);max-width:460px}
.bande .note-google{display:flex;align-items:baseline;gap:14px;margin-top:20px}
.bande .note-google b{font-family:var(--serif);font-weight:500;font-size:96px;line-height:1}
.bande .note-google span{font-size:18px;color:var(--muted)}
.bande .bt{margin-top:28px}

/* Contact */
.contact-in{display:flex;flex-wrap:wrap;gap:80px;align-items:flex-start}
.contact-in>div{flex:1 1 440px;min-width:0}
.contact-in>form{flex:1 1 480px;min-width:0}
.liste-contact{margin-top:48px;border-top:1px solid var(--filet)}
.liste-contact div{display:flex;gap:24px;padding:22px 0;border-bottom:1px solid var(--filet2);font-size:16px;line-height:1.7}
.liste-contact .etiquette{flex:0 0 110px;padding-top:4px}
.contact-in .photo{margin-top:44px}
.contact-in .photo img{aspect-ratio:3/2;object-fit:cover}

/* Formulaires */
.carte-form{background:var(--noir2);border:1px solid var(--filet);padding:48px;display:flex;flex-direction:column;gap:26px}
.carte-form h2,.carte-form h3{font-size:40px;line-height:1.1}
.champ{display:flex;flex-direction:column;gap:10px}
.champ label{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--or)}
.champ input,.champ textarea,.champ select{padding:14px 0;border:0;border-bottom:1px solid rgba(245,239,228,.35);background:transparent;color:var(--texte);font-size:16px;font-family:inherit;border-radius:0;width:100%;transition:border-color .25s}
.champ select option{background:var(--noir2);color:var(--texte)}
.champ input:focus,.champ textarea:focus,.champ select:focus{border-color:var(--or);outline:none}
.champ textarea{resize:vertical}
.grille-champs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:30px 40px}
.case{display:flex;gap:14px;align-items:flex-start;font-size:14px;line-height:1.6;color:var(--texte2)}
.case input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--or);flex:none}
.piege{position:absolute;left:-9999px;height:0;overflow:hidden}
.erreur{color:#F0A99C;font-size:14px}

/* Pages intérieures */
.page{padding:72px 80px 112px;background:radial-gradient(900px 500px at 85% 0%,rgba(201,162,75,.12),transparent 70%),var(--noir);min-height:70vh}
.page h1{margin-top:20px;font-size:84px;letter-spacing:-.01em}
.page .etroit-form{max-width:520px;margin:0 auto}
.page-texte{max-width:760px;font-size:16px;line-height:1.9;color:var(--texte2)}
.page-texte h2{font-size:36px;margin:48px 0 14px;color:var(--texte)}
.page-texte a{color:var(--or-clair);text-decoration:underline;text-underline-offset:3px}

/* Inscription */
.etapes{display:flex;flex-wrap:wrap;margin-top:48px;border-top:1px solid var(--filet)}
.etapes li{flex:1 1 200px;list-style:none;padding:18px 20px 0 0;display:flex;align-items:baseline;gap:14px;color:#6F665A}
.etapes li b{font-family:var(--serif);font-weight:500;font-size:36px;line-height:1}
.etapes li span{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.etapes li[aria-current="step"]{color:var(--texte)}
.etapes li.fait{color:var(--or)}
.etapes{padding:0;margin-bottom:0}
.insc-corps{display:flex;flex-wrap:wrap;gap:64px;margin-top:56px;align-items:flex-start}
.insc-main{flex:1 1 640px;min-width:0}
.insc-main h2{font-size:48px;line-height:1.05}
.insc-main .intro{margin-top:14px;font-size:15px;line-height:1.8;color:var(--muted);max-width:560px}
.etape[hidden]{display:none}
.tarif-en-cours{margin-top:32px;padding:20px 24px;border:1px solid var(--or);display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center}
.tarif-en-cours .periode{margin-top:6px;font-family:var(--serif);font-size:30px;line-height:1.1}
.tarif-en-cours .prix{font-size:14px;line-height:1.6;color:var(--texte2)}
.tarif-en-cours strong{color:var(--or-clair);font-weight:600}
.liste-choix{display:flex;flex-direction:column;gap:12px;margin-top:36px}
.choix{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;padding:22px 26px;border:1px solid rgba(245,239,228,.2);background:transparent;color:inherit;text-align:left;font-family:inherit;cursor:pointer;transition:border-color .25s,background .25s}
.choix:hover{border-color:var(--or)}
.choix[aria-pressed="true"]{border-color:var(--or);background:rgba(201,162,75,.1)}
.choix .nom{display:block;font-family:var(--serif);font-size:30px;line-height:1.1}
.choix .qd{display:block;margin-top:6px;font-size:13px;color:var(--muted)}
.choix .nb{display:block;margin-top:6px;font-size:12px;color:var(--or)}
.choix .etat{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.choix[aria-pressed="true"] .etat{color:var(--or-clair)}
.rangee-choix{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.rangee-choix .choix{width:auto;padding:16px 26px;font-size:13px;font-weight:600;letter-spacing:.08em}
.bloc-couple{margin-top:44px;padding-top:32px;border-top:1px solid var(--filet)}
.bloc-couple h3{font-size:32px;line-height:1.1}
.bloc-couple p{margin-top:10px;font-size:14px;line-height:1.7;color:var(--muted)}
.actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:48px}
.recap{flex:0 1 420px;min-width:300px;background:var(--noir2);border:1px solid var(--filet);padding:36px;position:sticky;top:100px}
.recap .ligne{padding:16px 0;border-bottom:1px solid var(--filet2);display:flex;justify-content:space-between;gap:20px;align-items:baseline}
.recap .ligne small{display:block;margin-top:4px;font-size:12px;color:var(--or-clair)}
.recap .ligne .p{font-family:var(--serif);font-size:26px;line-height:1;white-space:nowrap}
.recap .vide{margin-top:22px;font-size:14px;color:var(--muted)}
.recap .eco{display:flex;justify-content:space-between;gap:16px;margin-top:20px;padding:14px 16px;border:1px solid var(--or);font-size:13px;font-weight:600;color:var(--or-clair)}
.recap .total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:26px}
.recap .total b{font-family:var(--serif);font-weight:500;font-size:54px;line-height:1;color:var(--or-clair)}
.recap .total span{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.paypal-zone{margin-top:40px;max-width:440px}
.paypal-zone .info{margin-top:14px;font-size:12px;line-height:1.7;color:var(--discret)}
.alerte{margin-top:24px;padding:14px 18px;border:1px solid #D9806F;color:#F0A99C;font-size:14px}
.alerte[hidden]{display:none}

/* Espace membre */
.espace-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:32px;margin-top:52px}
.panneau{background:var(--noir2);border:1px solid var(--filet);padding:36px}
.panneau h2{font-size:34px;line-height:1.1}
.panneau .rang{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;border-bottom:1px solid var(--filet2)}
.panneau .rang:last-child{border-bottom:0}
.panneau .rang b{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.1}
.panneau .rang small{display:block;margin-top:6px;font-size:13px;color:var(--muted)}
.badge{display:inline-block;padding:7px 16px;border:1px solid var(--or);color:var(--or-clair);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.lien-souligne{text-decoration:underline;text-underline-offset:4px;color:var(--muted);transition:color .25s;background:none;border:0;padding:0;font:inherit;font-size:13px;cursor:pointer}
.lien-souligne:hover{color:var(--or-clair)}

/* Administration */
.admin-menu{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.admin-menu a{padding:10px 20px;border:1px solid rgba(245,239,228,.3);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.admin-menu a[aria-current="page"]{background:var(--or);color:var(--noir);border-color:var(--or)}
.tableau-admin{width:100%;border-collapse:collapse;margin-top:32px;font-size:14px}
.tableau-admin th{text-align:left;padding:12px 10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--or);border-bottom:1px solid var(--filet)}
.tableau-admin td{padding:14px 10px;border-bottom:1px solid var(--filet2);vertical-align:top}
.tableau-admin select{background:var(--noir2);color:var(--texte);border:1px solid var(--filet);padding:8px;font-family:inherit}
.tableau-admin .bt{padding:9px 16px}
.defile{overflow-x:auto}

/* Pied de page */
.pied{padding:64px 80px 40px;background:var(--noir3);border-top:1px solid var(--filet2)}
.pied-haut{display:flex;flex-wrap:wrap;gap:48px;justify-content:space-between;align-items:flex-start}
.pied-logo{display:block;width:84px;height:84px;border-radius:50%;border:1px solid var(--or)}
.pied-texte{margin-top:20px;font-size:14px;line-height:1.8;color:var(--muted);max-width:340px}
.pied-colonnes{display:flex;flex-wrap:wrap;gap:72px;font-size:14px}
.pied-colonnes>div{display:flex;flex-direction:column;gap:14px}
.pied-colonnes a{color:var(--texte2);transition:color .25s}
.pied-colonnes a:hover{color:var(--or-clair)}
.pied-bas{margin-top:48px;padding-top:24px;border-top:1px solid rgba(245,239,228,.12);font-size:13px;color:var(--discret)}

/* Animations discrètes à l'arrivée */
@keyframes monte{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.apparait{animation:monte .9s cubic-bezier(.2,.7,.2,1) both}
.d2{animation-delay:.12s}.d3{animation-delay:.24s}.d4{animation-delay:.36s}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;scroll-behavior:auto}}

/* Tablette et mobile */
@media (max-width:1000px){
  section,.hero,.ambiance,.bande,.pied,.page,.entete,.flash{padding-left:32px;padding-right:32px}
  section{padding-top:88px;padding-bottom:88px}
  .hero h1{font-size:84px}
  h2.titre{font-size:56px}
  .page h1{font-size:64px}
  .bande-in>div+div{padding-left:0;border-left:0;padding-top:48px;border-top:1px solid var(--filet)}
  .recap{position:static}
}
@media (max-width:700px){
  section,.hero,.ambiance,.bande,.pied,.page,.entete,.flash{padding-left:20px;padding-right:20px}
  .entete{position:static}
  .nav{gap:8px 22px;font-size:12px}
  .hero{padding-top:56px;padding-bottom:72px}
  .hero h1{font-size:64px}
  h2.titre{font-size:44px}
  .ambiance .citation{font-size:44px}
  .planning-ligne{grid-template-columns:1fr 1fr;gap:6px 16px;padding:20px 6px}
  .planning-ligne .nom{grid-column:1 / -1;order:-1;font-size:28px}
  .carte-form{padding:28px 22px}
  .bande h2{font-size:42px}
  .tarif b{font-size:52px}
  .page h1{font-size:48px}
  .insc-main h2{font-size:38px}
  .panneau{padding:26px 22px}
  .espace-grille{grid-template-columns:1fr}
  .etapes li span{display:none}
  .liste-contact div{flex-direction:column;gap:6px}
}
