/* ============ Registration page — same dark navy/teal/coral theme as the site ============ */

.reg-active{color:var(--buoy) !important;font-weight:600;}

.reg-page{
  max-width:640px;margin:0 auto;padding:174px 24px 80px;
}
.reg-page .section-label{margin-bottom:14px;}
.reg-page h2{
  font-size:1.6rem;margin-bottom:28px;
}
.formation-intro{color:var(--line-silver);margin-top:-16px;margin-bottom:28px;font-size:0.95rem;line-height:1.5;}

.reg-field{margin-bottom:34px;}
.reg-label{font-weight:600;color:var(--foam);margin-bottom:18px;font-size:1.02rem;}
.req{color:var(--buoy);}

.category-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:22px 18px;
}
.cat-btn{
  background:none;border:none;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:14px 8px;border-radius:10px;
  transition:background .15s;
}
.cat-btn:hover{background:rgba(242,246,245,0.05);}
.cat-btn.selected{background:rgba(62,205,180,0.08);box-shadow:0 0 0 2px var(--sand) inset;}
.cat-icon{
  width:78px;height:78px;border-radius:50%;
  border:1.5px solid var(--line-silver);
  display:flex;align-items:center;justify-content:center;
}
.cat-btn.selected .cat-icon{border-color:var(--sand);border-width:2px;box-shadow:0 0 14px rgba(62,205,180,0.35);}
.cat-icon svg{
  width:44px;height:44px;
  fill:none;stroke:var(--foam);stroke-width:3;
  stroke-linecap:round;stroke-linejoin:round;
}
.cat-icon svg circle{fill:var(--foam);stroke:none;}
.cat-btn[data-cat="veteran"] .cat-icon svg path{fill:var(--foam);stroke:none;}
.cat-btn.selected .cat-icon svg{stroke:var(--sand);}
.cat-btn.selected .cat-icon svg circle{fill:var(--sand);}
.cat-btn.selected[data-cat="veteran"] .cat-icon svg path{fill:var(--sand);}
.cat-label{font-weight:600;font-size:0.95rem;color:var(--foam);text-align:center;}

.cat-hint{font-size:0.85rem;color:var(--line-silver);margin-top:16px;}
.cat-hint.ok{color:var(--sand);}

.athlete-block{
  border-top:1px solid rgba(159,180,192,0.2);
  padding-top:24px;margin-bottom:8px;
  transition:opacity .25s, max-height .25s;
}
.athlete-block h3{
  font-size:1.05rem;margin-bottom:18px;
}
.athlete-block.hidden{
  display:none;
}
.hidden{display:none !important;}

.name-row{display:flex;gap:16px;margin-bottom:18px;}
.field{flex:1;position:relative;}
.field.full{margin-bottom:24px;}
.field input, .field select{
  width:100%;padding:12px 4px 8px;
  border:none;border-bottom:1.5px solid rgba(159,180,192,0.35);
  font-size:1rem;color:var(--foam);background:transparent;font-family:var(--body);
}
.field input:focus, .field select:focus{outline:none;border-bottom-color:var(--sand);}
.field select{appearance:none;-webkit-appearance:none;cursor:pointer;}
.field select option{background:var(--navy-panel);color:var(--foam);}
.field.select-wrap{position:relative;}
.field.select-wrap::after{
  content:"▾";position:absolute;inset-inline-end:6px;bottom:10px;
  color:var(--line-silver);font-size:0.8rem;pointer-events:none;
}
.field label{
  display:block;font-size:0.82rem;color:var(--line-silver);margin-top:6px;
}
.field.full label{margin-top:0;margin-bottom:8px;font-weight:600;color:var(--foam);}

/* ---- Dropzone (photo upload) ---- */
.dropzone{
  display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;
  border:1.5px dashed rgba(159,180,192,0.4);border-radius:10px;
  padding:24px 16px;cursor:pointer;background:rgba(242,246,245,0.03);
  transition:border-color .2s, background .2s;
}
.dropzone:hover{border-color:var(--sand);background:rgba(62,205,180,0.06);}
.dropzone.has-file{border-style:solid;border-color:var(--sand);background:rgba(62,205,180,0.1);}
.dz-icon{width:30px;height:30px;fill:none;stroke:var(--line-silver);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.dropzone:hover .dz-icon, .dropzone.has-file .dz-icon{stroke:var(--sand);}
.dz-text{font-size:0.85rem;color:var(--line-silver);line-height:1.4;}
.dz-text small{font-size:0.76rem;opacity:0.85;}
.dz-filename{font-size:0.85rem;font-weight:600;color:var(--foam);word-break:break-all;}

/* ---- Section dividers (Coordonnées / Lunch-Box / Hébergement) ---- */
.reg-section{
  border-top:1px solid rgba(159,180,192,0.2);
  padding-top:26px;margin-bottom:8px;
}
.reg-section h3{
  font-size:1.05rem;margin-bottom:18px;
}
/* ---- Yes/No toggle (hotel, diabetes, allergies) ---- */
.yn-toggle{display:flex;gap:10px;}
.yn-chip{
  flex:1;background:rgba(242,246,245,0.03);border:1.5px solid rgba(159,180,192,0.35);border-radius:8px;
  padding:14px;cursor:pointer;font-family:var(--display);letter-spacing:0.03em;
  font-size:0.92rem;color:var(--foam);transition:border-color .15s, background .15s;
}
.yn-chip:hover{border-color:var(--sand);}
.yn-chip.selected{border-color:var(--sand);background:rgba(62,205,180,0.1);color:var(--foam);box-shadow:0 0 0 1px var(--sand) inset;}

/* ---- Medical safety section ---- */
.med-section{
  margin-top:26px;padding:18px 16px;border-radius:8px;
  background:rgba(255,95,62,0.05);border:1px solid rgba(255,95,62,0.25);
}
.med-title{
  display:flex;align-items:center;gap:8px;font-size:0.95rem;margin-bottom:10px;
}
.med-disclaimer{
  font-size:0.82rem;color:var(--line-silver);margin-bottom:18px;line-height:1.5;
}
.med-note{
  font-size:0.78rem;color:var(--line-silver);font-style:italic;line-height:1.5;margin-top:10px;
}
.sponsor-banner{
  display:block;background:#C41E3A;border-radius:10px;
  padding:16px;text-align:center;margin-top:14px;
  transition:transform .15s, box-shadow .15s;
}
.sponsor-banner:hover{transform:scale(1.02);box-shadow:0 6px 18px rgba(196,30,58,0.35);}
.sponsor-banner img{max-width:140px;width:100%;height:auto;margin:0 auto;display:block;}

.hotel-banner{
  display:block;background:#F2F6F5;border-radius:10px;
  padding:14px;text-align:center;margin-top:14px;
  transition:transform .15s, box-shadow .15s;
}
.hotel-banner:hover{transform:scale(1.02);box-shadow:0 6px 18px rgba(242,246,245,0.2);}
.hotel-banner img{max-width:150px;width:100%;height:auto;margin:0 auto;display:block;}

/* ---- Sponsored by ---- */
.sponsor-strip{
  margin-top:48px;padding-top:30px;border-top:1px solid rgba(159,180,192,0.2);
  text-align:center;
}
.sponsor-label{
  display:block;font-family:var(--mono);font-size:0.72rem;
  letter-spacing:0.12em;text-transform:uppercase;color:var(--line-silver);margin-bottom:14px;
}
.sponsor-names{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 28px;}
.sponsor-names span{
  font-family:var(--mono);font-size:0.78rem;color:var(--line-silver);
  text-transform:uppercase;letter-spacing:0.04em;
}
.sponsor-text{
  max-width:480px;margin:0 auto;color:var(--line-silver);
  font-size:0.85rem;line-height:1.6;
}

/* ---- Devenir partenaire (sponsors.html) ---- */
.partner-section{
  margin-top:56px;padding-top:36px;border-top:1px solid rgba(159,180,192,0.2);
}
.partner-h2{font-size:1.5rem;margin-bottom:18px;}
.partner-intro{color:var(--line-silver);line-height:1.65;margin:0 0 16px;font-size:0.95rem;}
.partner-intro:last-of-type{margin-bottom:32px;}
.partner-check-group{display:flex;flex-direction:column;gap:10px;margin-top:10px;}
.partner-check{
  display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:8px;
  background:rgba(242,246,245,0.03);border:1px solid rgba(159,180,192,0.25);
  cursor:pointer;font-size:0.9rem;color:var(--foam);line-height:1.5;
  transition:border-color .15s, background .15s;
}
.partner-check:hover{border-color:var(--sand);}
.partner-check input{accent-color:var(--sand);width:18px;height:18px;flex-shrink:0;margin-top:2px;cursor:pointer;}
.partner-check-desc{color:var(--line-silver);font-weight:400;font-size:0.85rem;}
.partner-optional{color:var(--line-silver);font-weight:400;font-size:0.82rem;}

.consent-check{
  display:flex;align-items:flex-start;gap:10px;margin-top:28px;
  padding:16px;border-radius:8px;background:rgba(242,246,245,0.03);
  border:1px solid rgba(159,180,192,0.25);
  font-size:0.85rem;color:var(--line-silver);line-height:1.5;cursor:pointer;
}
.consent-check input{
  accent-color:var(--sand);width:18px;height:18px;flex-shrink:0;margin-top:2px;cursor:pointer;
}

/* ---- Price recap ---- */
.price-recap{
  margin-top:28px;padding:20px 18px;border-radius:8px;text-align:center;
  background:rgba(255,95,62,0.06);border:1px solid rgba(255,95,62,0.3);
}
.price-recap-title{
  display:block;font-family:var(--mono);font-size:0.7rem;letter-spacing:0.1em;
  text-transform:uppercase;color:var(--line-silver);margin-bottom:12px;
}
.price-recap-label{
  display:block;font-family:var(--display);font-size:0.95rem;font-weight:600;
  color:var(--foam);margin-bottom:6px;
}
.price-recap-total{
  display:block;font-family:var(--display);font-size:1.7rem;font-weight:700;
  color:var(--sand);margin-bottom:8px;direction:ltr;unicode-bidi:isolate;
}
.price-recap-discount{
  display:block;font-family:var(--display);font-size:0.85rem;font-weight:600;
  color:#2ECC71;margin-bottom:12px;
}
.price-recap-note{
  font-size:0.78rem;color:var(--line-silver);font-style:italic;line-height:1.5;
}

.reg-submit{
  width:100%;margin-top:16px;padding:16px;
  background:var(--buoy);color:var(--navy-deep);border:none;border-radius:2px;
  font-family:var(--display);text-transform:uppercase;letter-spacing:0.08em;
  font-size:0.95rem;cursor:pointer;transition:background .2s, transform .2s;
}
.reg-submit:hover{background:#ff7a5c;transform:translateY(-2px);}
.reg-msg{margin-top:14px;font-size:0.9rem;color:var(--sand);text-align:center;min-height:1.2em;}
.reg-msg.error{color:var(--buoy);}

@media (min-width:640px){
  .category-grid{grid-template-columns:repeat(3,1fr);}
}

/* ---- Post-submit confirmation modal ---- */
.success-modal{
  position:fixed;inset:0;z-index:300;
  display:flex;align-items:center;justify-content:center;
  background:rgba(8,22,32,0.82);backdrop-filter:blur(6px);
  padding:20px;
}
.success-modal.hidden{display:none;}
.success-modal-card{
  background:var(--navy-panel);border:1px solid rgba(159,180,192,0.2);border-radius:14px;
  padding:44px 32px;max-width:420px;width:100%;text-align:center;
  box-shadow:0 24px 60px rgba(0,0,0,0.45);
}
.success-modal-icon{
  width:56px;height:56px;margin:0 auto 18px;border-radius:50%;
  background:rgba(62,205,180,0.15);border:2px solid var(--sand);color:var(--sand);
  display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700;
}
.success-modal-card h2{
  font-size:1.3rem;margin:0 0 12px;color:var(--foam);
}
.success-modal-card p{
  font-size:0.95rem;line-height:1.6;color:var(--line-silver);margin:0 0 26px;
}
.success-modal-btn{
  width:100%;padding:14px;background:var(--buoy);color:var(--navy-deep);border:none;border-radius:2px;
  font-family:var(--display);text-transform:uppercase;letter-spacing:0.08em;
  font-size:0.95rem;cursor:pointer;transition:background .2s, transform .2s;
}
.success-modal-btn:hover{background:#ff7a5c;transform:translateY(-2px);}
