@import url("/assets/fonts/fonts.css");

:root{
  --nuit:#0b090e; --mur:#16131a; --carte:#141019ee;
  --cyan:#36e6ff; --cyan-clair:#d9fbff;
  --rose:#ff4fd8; --rose-clair:#ffc6f4;
  --ambre:#ffae2b; --ambre-clair:#ffe2a8;
  --violet:#a875ff; --vert:#5dffa4;
  --texte:#efe8f6; --texte-doux:#b8aac8;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--texte);font-family:"Outfit",system-ui,sans-serif;font-size:17px;line-height:1.55;
  background-color:var(--nuit);
  background-image:
    radial-gradient(ellipse 120% 900px at 50% 0%,rgba(168,117,255,.16),transparent 70%),
    radial-gradient(ellipse at 0% 60%,rgba(255,79,216,.10),transparent 50%),
    radial-gradient(ellipse at 100% 80%,rgba(54,230,255,.08),transparent 50%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='48'%3E%3Cg fill='%23191520' stroke='%230b090e' stroke-width='3'%3E%3Crect x='0' y='0' width='48' height='24'/%3E%3Crect x='48' y='0' width='48' height='24'/%3E%3Crect x='-24' y='24' width='48' height='24'/%3E%3Crect x='24' y='24' width='48' height='24'/%3E%3Crect x='72' y='24' width='48' height='24'/%3E%3C/g%3E%3C/svg%3E");
}
img{max-width:100%;display:block}
a{color:var(--cyan)}
.wrap{max-width:1100px;margin:0 auto;padding:0 18px}

/* ---- Barre du haut ---- */
.top{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;max-width:1100px;margin:0 auto}
.top a{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--texte-doux);font-size:15px;font-weight:600}
.top img{width:46px;height:46px}
.top .back:hover{color:#fff}

/* ---- Fil d'Ariane ---- */
.ariane{display:flex;align-items:center;gap:10px;font-size:15px;min-width:0}
.ariane > a{flex:0 0 auto}
.ariane ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;margin:0;padding:0;row-gap:2px}
.ariane li{color:var(--texte-doux)}
.ariane li + li::before{content:"›";margin:0 8px;color:var(--texte-doux)}
.ariane li a{display:inline;color:var(--texte-doux);font-weight:600;text-decoration:none}
.ariane li a:hover{color:#fff;text-decoration:underline}
.ariane [aria-current="page"]{color:#fff;font-weight:700}

/* ---- Néons ---- */
/* Néon cyan adouci de moitié (rayons ÷ 2, halo à 50 %) */
.neon-cyan{color:var(--cyan-clair);text-shadow:0 0 2px rgba(255,255,255,.5),0 0 5px rgba(54,230,255,.5),0 0 11px rgba(54,230,255,.5),0 0 21px rgba(54,230,255,.5)}
.neon-rose{color:var(--rose-clair);text-shadow:0 0 4px #fff3,0 0 10px var(--rose),0 0 24px var(--rose)}
.neon-ambre{color:var(--ambre-clair);text-shadow:0 0 4px #fff3,0 0 10px var(--ambre),0 0 24px var(--ambre)}
@keyframes flicker{0%,18%,22%,25%,53%,57%,100%{opacity:1}20%,24%,55%{opacity:.55}}

/* ---- En-tête de la soirée ---- */
.hero{text-align:center;padding:4px 0 10px}
.title{
  font-family:"Tilt Neon",sans-serif;font-weight:400;margin:0;line-height:1;
  font-size:clamp(64px,15vw,150px);letter-spacing:.06em;
  color:var(--cyan-clair);
  -webkit-text-stroke:2px rgba(255,79,216,.85);
  text-shadow:0 0 6px var(--cyan),0 0 16px var(--cyan),0 0 34px var(--rose),0 0 60px var(--rose);
  animation:flicker 6s infinite;
}
.camel{
  width:min(520px,92%);margin:6px auto 0;aspect-ratio:640/630;object-fit:cover;
  -webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 62%,transparent 100%);
          mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 62%,transparent 100%);
}
.when{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(10px,3vw,26px);max-width:760px;margin:0 auto;font-family:"Oswald",sans-serif;font-weight:700;text-transform:uppercase;font-size:clamp(22px,5vw,46px);line-height:1.1}
.when .l{text-align:right}.when .r{text-align:left}
.daybox{font-family:"Oswald",sans-serif;font-weight:500;font-size:clamp(56px,12vw,110px);line-height:1;padding:4px clamp(14px,3vw,26px) 10px;border:4px solid var(--ambre);border-radius:12px;color:var(--ambre-clair);
  box-shadow:0 0 10px var(--ambre),0 0 26px var(--ambre),inset 0 0 14px rgba(255,174,43,.6);text-shadow:0 0 8px var(--ambre),0 0 20px var(--ambre)}
.soft{display:block;font-family:"Oswald",sans-serif;font-style:italic;font-weight:500;font-size:clamp(14px,2.4vw,20px);letter-spacing:.5px;margin-top:2px}
.hours{font-family:"Oswald",sans-serif;font-weight:700;font-size:clamp(44px,9vw,80px);letter-spacing:.04em;margin:14px 0 4px}
.venue{font-family:"Oswald",sans-serif;font-weight:500;text-transform:uppercase;font-size:clamp(17px,3vw,26px);letter-spacing:.06em;margin:0}

/* ---- Compteur de places ---- */
.counter{max-width:640px;margin:34px auto 0;background:var(--carte);border:1px solid #3a2a4a;border-radius:18px;padding:18px 22px;text-align:center}
.counter .big{font-family:"Oswald",sans-serif;font-weight:700;font-size:clamp(26px,5vw,36px);text-transform:uppercase;letter-spacing:.04em}
.bar{height:14px;border-radius:999px;background:#241c2c;margin:12px 0 6px;overflow:hidden;border:1px solid #3a2a4a}
.bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--rose));box-shadow:0 0 14px var(--rose)}
.counter small{color:var(--texte-doux)}

/* ---- Mise en page principale ---- */
.grid{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;margin:40px auto 0;align-items:start}
@media (max-width:900px){.grid{grid-template-columns:1fr}}
.panel{background:var(--carte);border:1px solid #3a2a4a;border-radius:22px;padding:26px;backdrop-filter:blur(4px)}
.panel h2{font-family:"Oswald",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:28px;margin:0 0 4px}
.panel h3{font-family:"Oswald",sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:20px;margin:22px 0 8px}
.panel p{margin:0 0 10px}
.muted{color:var(--texte-doux)}

/* ---- Formulaire ---- */
.ticket{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-radius:16px;background:#0f0b14;border:1px solid #3a2a4a;margin-top:12px}
.ticket .name{font-weight:700;font-size:18px}
.ticket .det{font-size:14px;color:var(--texte-doux)}
.ticket > div:first-child{flex:1 1 auto}
/* Colonne de prix de largeur fixe, calée à droite : les virgules des tarifs tombent l'une sous l'autre */
.ticket .price{font-family:"Oswald",sans-serif;font-size:24px;font-weight:700;flex:0 0 100px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.step{display:flex;align-items:center;gap:6px}
.step button{width:40px;height:40px;border-radius:50%;border:2px solid var(--rose);background:transparent;color:#fff;font-size:22px;line-height:1;cursor:pointer;box-shadow:0 0 8px rgba(255,79,216,.5)}
.step button:hover{background:rgba(255,79,216,.18)}
.step button:disabled{opacity:.3;cursor:not-allowed}
.step input{width:46px;text-align:center;background:transparent;border:0;color:#fff;font-family:"Oswald",sans-serif;font-size:26px;font-weight:700;-moz-appearance:textfield}
.step input::-webkit-outer-spin-button,.step input::-webkit-inner-spin-button{-webkit-appearance:none}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.fields .full{grid-column:1/-1}
@media (max-width:560px){.fields{grid-template-columns:1fr}}
label{display:block;font-size:14px;font-weight:600;color:var(--texte-doux);margin-bottom:4px}
input[type=text],input[type=email],input[type=tel],textarea{width:100%;padding:13px 14px;border-radius:12px;border:1px solid #4a3a5c;background:#0f0b14;color:#fff;font:inherit}
input:focus,textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(54,230,255,.2)}
textarea{min-height:70px;resize:vertical}
.chansons{display:grid;gap:8px}
.add-song{margin-top:8px;font:inherit;font-size:14px;font-weight:700;cursor:pointer;padding:8px 14px;border-radius:999px;border:1px dashed var(--rose);background:transparent;color:var(--rose-clair)}
.add-song:hover{background:rgba(255,79,216,.12)}
.add-song:disabled{border-color:#4a3a5c;color:#6f6380;cursor:not-allowed;background:transparent}
.add-song[hidden]{display:none}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--texte-doux);margin-top:14px}
.check input{margin-top:4px;width:18px;height:18px;accent-color:var(--rose)}
.total{display:flex;justify-content:space-between;align-items:baseline;margin:20px 0 14px;padding-top:16px;border-top:1px dashed #4a3a5c}
.total .amt{font-family:"Oswald",sans-serif;font-weight:700;font-size:40px}
.pay{width:100%;border:0;cursor:pointer;font-family:"Oswald",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:22px;padding:16px;border-radius:14px;color:#fff;
  background:linear-gradient(90deg,#ff4fd8,#a875ff);box-shadow:0 0 18px rgba(255,79,216,.6),0 8px 24px rgba(0,0,0,.4);transition:transform .15s}
.pay:hover{transform:translateY(-2px)}
.pay:disabled{background:#4a4452;color:#a99bb8;box-shadow:none;cursor:not-allowed;transform:none}
.cgv-hint{text-align:center;font-size:14px;font-weight:600;color:var(--ambre-clair);margin:10px 0 0}
.cgv-hint[hidden]{display:none}
.enfant-hint{margin:12px 0 0;padding:12px 14px;border-radius:12px;border:1px solid var(--ambre);background:rgba(255,174,43,.10);color:var(--ambre-clair);font-size:14px;font-weight:600}
.enfant-hint[hidden]{display:none}
.secure{text-align:center;font-size:13px;color:var(--texte-doux);margin-top:10px}
.alert{border-radius:14px;padding:14px 16px;margin:0 0 16px;font-weight:600}
.alert.err{background:rgba(255,79,90,.12);border:1px solid #ff4f5a;color:#ffc2c6}
.alert.ok{background:rgba(93,255,164,.1);border:1px solid var(--vert);color:#c9ffe0}
.hp{position:absolute;left:-9999px}

/* ---- Fenêtre de vigilance (e-mail déjà utilisé) ---- */
.modal{max-width:440px;width:calc(100% - 32px);border:2px solid var(--ambre);border-radius:18px;background:#16121c;color:var(--texte);padding:24px;box-shadow:0 0 24px rgba(255,174,43,.35)}
.modal::backdrop{background:rgba(5,3,8,.75)}
.modal h3{font-family:"Oswald",sans-serif;font-weight:600;text-transform:uppercase;font-size:21px;margin:0 0 12px}
.modal p{margin:0 0 10px}
.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:18px}
.modal-actions button{font:inherit;font-weight:700;cursor:pointer;padding:11px 22px;border-radius:999px}
.modal-non{background:transparent;border:1px solid var(--texte-doux);color:var(--texte)}
.modal-oui{border:0;color:#fff;background:linear-gradient(90deg,#ff4fd8,#a875ff);box-shadow:0 0 12px rgba(255,79,216,.5)}

/* ---- Infos ---- */
.include{list-style:none;padding:0;margin:8px 0 0}
.include li{padding:8px 0 8px 30px;position:relative;border-bottom:1px solid #2a2033}
.include li:last-child{border:0}
.include li::before{content:"✦";position:absolute;left:4px;color:var(--ambre);text-shadow:0 0 8px var(--ambre)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px}
.chip{border:1px solid #4a3a5c;border-radius:999px;padding:5px 12px;font-size:14px;background:#0f0b14}
.soon{font-size:13px;color:var(--ambre-clair);font-style:italic}
.map{display:inline-flex;gap:8px;align-items:center;text-decoration:none;font-weight:700;margin-top:6px}

.soldout{font-family:"Tilt Neon",sans-serif;font-size:clamp(54px,12vw,96px);text-align:center;color:#ffd0d4;text-shadow:0 0 8px #ff4f5a,0 0 24px #ff4f5a,0 0 50px #ff4f5a;margin:10px 0}

/* ---- Pied ---- */
.foot{margin-top:56px;padding:30px 18px 40px;text-align:center;color:var(--texte-doux);font-size:15px;border-top:1px solid #2a2033}
.foot .gaz{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:12px;text-align:left}
.foot .gaz img{width:72px;height:72px}
.foot a{color:var(--ambre-clair)}
.btn-line{display:inline-block;margin-top:8px;padding:10px 18px;border-radius:999px;border:1px solid var(--ambre);color:var(--ambre-clair);text-decoration:none;font-weight:700;box-shadow:0 0 10px rgba(255,174,43,.35)}

@media (prefers-reduced-motion:reduce){.title{animation:none}}

/* Billets sur téléphone : nom au-dessus, prix et compteur en dessous */
@media (max-width:560px){
  .ticket{flex-wrap:wrap;row-gap:8px}
  .ticket > div:first-child{flex:1 1 100%}
  .ticket .price{font-size:22px;flex-basis:92px}
  .panel{padding:20px}
}
