/* Page d'inscription */
.ins-count { font-size: 15px; color: var(--muted); }
.ins-bar { height: 4px; background: var(--line-soft); }
.ins-bar div { height: 4px; width: 25%; background: var(--gold); transition: width .25s; }
.ins { max-width: 640px; padding-top: 40px; padding-bottom: 64px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.step h1 { font-size: clamp(32px, 5vw, 42px); margin-bottom: 24px; }
.q-group { border: 0; margin: 0; padding: 0; min-width: 0; }
.q { display: block; padding: 0; font-weight: 600; font-size: 16px; margin: 26px 0 12px; }
.hint { font-size: 14px; color: var(--muted); margin-top: 10px; }
.opt-label { font-weight: 400; color: var(--muted); }

/* Choix (boutons radio et cases) */
.opts { display: grid; gap: 10px; }
.opts-col { grid-template-columns: 1fr; }
.opts-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.opts-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.opts-days { grid-template-columns: repeat(7, minmax(0, 1fr)); }

.opt { position: relative; display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 8px 18px; border: 1.5px solid var(--line); border-radius: 16px; background: var(--white); cursor: pointer; font-size: 16px; text-align: center; transition: border-color .15s, background .15s; }
.opt input { position: absolute; opacity: 0; pointer-events: none; }
.opt:hover { border-color: #CDBE97; }
.opt.is-checked { border-color: var(--gold-dark); background: var(--ivory); box-shadow: inset 0 0 0 1px var(--gold-dark); }
.opt:focus-within { outline: 3px solid var(--gold); outline-offset: 2px; }
.opts-col .opt { justify-content: flex-start; text-align: left; font-size: 17px; }
.opts-days .opt { padding: 8px 4px; border-radius: 999px; font-size: 15px; }

/* Choix avec précision (cours, format) : titre puis détail */
.opts-col .opt-detail { flex-direction: column; align-items: flex-start; gap: 2px; padding: 14px 18px; }
.opt-detail span { font-weight: 600; }
.opt-detail small { font-size: 14px; color: var(--bronze); }

/* Champs */
select, .field input, .field textarea { width: 100%; min-height: 52px; border: 1.5px solid var(--line); border-radius: 14px; background: var(--white); padding: 12px 14px; font: inherit; font-size: 16px; color: var(--ink); }
select:focus, .field input:focus, .field textarea:focus { outline: none; border-color: var(--gold-dark); box-shadow: 0 0 0 3px rgba(176, 141, 46, .2); }
.field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.field label { font-weight: 500; font-size: 15px; }
.field textarea { resize: vertical; min-height: 90px; }
.field input[aria-invalid="true"] { border-color: #A3322A; }
.tel { display: flex; gap: 8px; }
.tel select { width: 128px; flex-shrink: 0; padding: 12px 8px; }
.tel input { flex: 1; min-width: 0; }

.consent { display: flex; gap: 12px; align-items: flex-start; margin: 8px 0 4px; cursor: pointer; font-size: 16px; color: var(--text); }
.consent input { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--gold-dark); flex-shrink: 0; }
.cf-turnstile { margin-top: 20px; min-height: 65px; }

.err { margin-top: 20px; padding: 12px 16px; border-radius: 12px; background: #FBEDEB; color: #8E2A2A; font-size: 15px; }
.ins-nav { display: flex; gap: 12px; margin-top: 32px; }
.ins-nav #next { flex: 1; }
.ins-nav button[disabled] { opacity: .6; cursor: wait; }

.done { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 40px 0; }
.done h1 { font-size: clamp(34px, 5vw, 46px); }
.done p { color: var(--text); max-width: 460px; }
.done:focus { outline: none; }

@media (max-width: 560px) {
  .ins { padding-top: 28px; }
  .opts-days { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .opts-3 .opt { padding: 8px 6px; font-size: 15px; }
  .ins-nav { position: sticky; bottom: 0; background: var(--paper); padding: 12px 0 16px; margin-top: 24px; border-top: 1px solid var(--line-soft); }
}
