/* ==========================================================================
   Registration-specific components.
   Uses the site's own design tokens (main.css) throughout — no new colors,
   fonts, or spacing scale introduced. This file only adds the handful of
   component types the rest of the site doesn't already have: radio pass
   selection, milonga/workshop checklists, and the price summary panel.
   ========================================================================== */

.reg-field-group{margin-bottom:20px;}
.reg-radio-label{
  display:block;font-family:var(--display);font-size:.76rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--heart);margin-bottom:10px;
}
.reg-radio-row{display:flex;gap:24px;flex-wrap:wrap;}
.reg-radio-row.reg-radio-col{flex-direction:column;gap:14px;}
.reg-radio{display:flex;align-items:center;gap:9px;font-size:.96rem;cursor:pointer;}
.reg-radio input{width:17px;height:17px;accent-color:var(--heart);}
.reg-hint-inline{color:rgba(8,20,34,.5);font-size:.84rem;}
.section--dark .reg-hint-inline,.section--panel .reg-hint-inline{color:var(--mist-dim);}

/* ---- Pass type selection (Full Festival Pass vs Individual) ---- */
.reg-pass-option{
  display:block;border:1px solid var(--hair-dark);padding:22px 26px;margin-bottom:12px;
  cursor:pointer;transition:border-color .2s var(--ease),background .2s var(--ease);background:var(--white);
}
.reg-pass-option:has(input:checked){border-color:var(--heart);background:#fff7f7;}
.reg-pass-option.reg-owned-highlight{border-color:var(--heart);background:#fff7f7;}
.reg-pass-option.reg-suppress-highlight:has(input:checked){border-color:var(--hair-dark);background:var(--white);}
.reg-pass-option-owned-tag{
  display:inline-block;margin-left:10px;font-size:.7rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;color:var(--heart);vertical-align:middle;
}
.reg-pass-option input{position:absolute;opacity:0;pointer-events:none;}
.reg-pass-option-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.reg-pass-option-head strong{font-family:var(--display);font-size:1.05rem;letter-spacing:.01em;text-transform:uppercase;}
.reg-pass-option-price{font-family:var(--display);font-size:1.3rem;color:var(--heart);}
.reg-pass-option-body p{margin:8px 0 0;font-size:.92rem;color:rgba(8,20,34,.62);}
.reg-pass-option-tier{color:var(--heart);font-weight:700;}
.reg-pass-option.is-disabled{opacity:.45;cursor:not-allowed;}

/* ---- Milonga / workshop checklists ---- */
.reg-checklist{margin-top:20px;border-top:1px solid var(--hair-dark);padding-top:20px;}
.reg-check-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--hair-dark);cursor:pointer;}
.reg-check-row:last-of-type{border-bottom:none;}
.reg-check-row input{width:18px;height:18px;flex:none;accent-color:var(--heart);}
.reg-check-label{flex:1;font-size:.95rem;}
.reg-check-time{color:rgba(8,20,34,.5);font-size:.84rem;}
.reg-check-price{font-family:var(--display);font-size:.96rem;white-space:nowrap;}
.reg-hint{font-size:.84rem;color:rgba(8,20,34,.5);margin:14px 0 0;}
.reg-check-row.is-owned{opacity:.7;background:rgba(8,20,34,.02);}
.reg-owned-tag{
  font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  color:var(--heart);white-space:nowrap;
}

.reg-workshop-slot{margin-bottom:22px;}
.reg-workshop-slot:last-child{margin-bottom:0;}
.reg-workshop-slot-time{
  font-family:var(--display);font-size:.78rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.06em;color:var(--heart);margin-bottom:8px;
}

/* ---- Price summary (sits in a section--dark, so text is white by default) ---- */
.reg-summary-row{display:flex;justify-content:space-between;padding:10px 0;font-size:.96rem;color:var(--mist);}
.reg-summary-row[hidden]{display:none;}
.reg-summary-total{
  border-top:1px solid var(--hair-light);margin-top:8px;padding-top:18px;
  font-family:var(--display);font-size:1.4rem;color:var(--white);text-transform:uppercase;letter-spacing:.02em;
}

/* ---- Confirm + submit ---- */
.reg-confirm{border:1px solid var(--hair-dark);padding:18px 20px;background:var(--white);}
.reg-confirm span{font-size:.9rem;color:rgba(8,20,34,.75);}
.reg-confirm input{width:18px;height:18px;flex:none;accent-color:var(--heart);}
.reg-submit:disabled{opacity:.35;cursor:not-allowed;}
.reg-submit:disabled:hover{background:var(--heart);color:var(--white);}

@media(max-width:640px){
  .reg-pass-option-head{flex-direction:column;align-items:flex-start;gap:6px;}
}

/* ---- Ambassador portal table ---- */
.reg-ambassador-table{width:100%;border-collapse:collapse;font-size:.9rem;}
.reg-ambassador-table th{
  text-align:left;padding:11px 14px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;
  color:rgba(8,20,34,.5);border-bottom:1px solid var(--hair-dark);font-weight:600;
}
.reg-ambassador-table td{padding:12px 14px;border-bottom:1px solid var(--hair-dark);vertical-align:middle;}
.reg-status-badge{display:inline-block;padding:3px 10px;border-radius:99px;font-size:.72rem;font-weight:700;}
.reg-status-paid{background:rgba(22,163,74,.12);color:#166534;}
.reg-status-pending{background:rgba(233,157,10,.14);color:#92400e;}
.reg-status-cancelled{background:rgba(107,114,128,.14);color:#4b5563;}
