/* Registration flow — layered on top of site.css tokens. */

.reg-form .callout.error{border-left-color:var(--red); background:#FDF1F0;}
.reg-form .callout.error h3{color:var(--red);}
.callout.warn{border-left-color:var(--orange); background:#FEF6EC;}
.callout.success{border-left-color:#1E7A34; background:#EAF6EC;}
.callout.success h3{color:#1E7A34;}

.optional{
  font-family:var(--font-body); font-size:13px; font-weight:600; color:var(--steel);
  text-transform:uppercase; letter-spacing:.06em; vertical-align:middle; margin-left:8px;
}

/* fields */
.field-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:var(--sp-3); margin-top:var(--sp-4); max-width:720px;}
.field label{display:block; font-size:14px; font-weight:700; color:var(--navy); margin-bottom:6px;}
.field input{
  width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius-sm);
  font-family:var(--font-body); font-size:16px; background:var(--white); color:var(--ink);
}
.field input:focus{outline:2px solid var(--orange); outline-offset:1px;}
.field .hint,.hint{font-size:13.5px; color:var(--steel); margin-top:6px;}
.field-error{font-size:14px; color:var(--red); font-weight:600; margin-top:6px;}

/* a field shown but not editable — manage.php locks name/email this way */
.static-value{
  padding:12px 14px; border:1px solid var(--line); border-radius:var(--radius-sm);
  font-size:16px; background:var(--paper); color:var(--ink);
}

/* choices */
.choice-row{display:flex; gap:var(--sp-2); flex-wrap:wrap; margin-top:var(--sp-3);}
.choice-list{display:grid; gap:8px; margin-top:var(--sp-2);}
.choice{
  display:flex; gap:12px; align-items:flex-start; cursor:pointer; background:var(--white);
  border:1px solid var(--line); border-radius:var(--radius-sm); padding:14px 16px;
  transition:border-color .12s, background .12s;
}
.choice:hover{border-color:var(--navy);}
.choice input{margin-top:3px; accent-color:var(--orange); width:17px; height:17px; flex-shrink:0;}
.choice:has(input:checked){border-color:var(--navy); background:#FBFAF7; box-shadow:inset 3px 0 0 var(--orange);}
.choice:has(input:focus-visible){outline:2px solid var(--orange); outline-offset:2px;}
.day-choice{min-width:190px;}
.choice-body{display:flex; flex-direction:column; gap:3px; min-width:0;}
.choice-meta{font-size:12.5px; font-weight:700; color:var(--steel); text-transform:uppercase; letter-spacing:.05em;}
.choice-title{font-family:var(--font-heading); font-weight:700; font-size:17px; color:var(--navy); line-height:1.25;}
.choice-sub{font-size:14.5px; color:var(--steel);}
.seat-tag{font-size:13px; font-weight:600; color:var(--steel); margin-top:4px;}
.seat-tag.low{color:var(--orange-deep);}
.seat-tag.full{color:var(--red);}
.seat-tag.clash{color:var(--red);}
.choice.is-full{background:var(--paper);}
.choice.is-unavailable{opacity:.55; cursor:not-allowed;}

.day-group{margin-top:var(--sp-4);}
.day-heading{
  font-size:14px; text-transform:uppercase; letter-spacing:.08em; color:var(--red);
  padding-bottom:8px; border-bottom:1px solid var(--line);
}

/* sessions grouped by time slot, so choices that clash are grouped together */
.slot-group{margin-top:var(--sp-3);}
.slot-time{
  display:flex; align-items:baseline; gap:8px; font-size:13.5px; font-weight:700;
  color:var(--orange-deep); text-transform:uppercase; letter-spacing:.05em; margin-bottom:8px;
}
.slot-count{font-size:12.5px; font-weight:600; color:var(--steel); text-transform:none; letter-spacing:0;}
.slot-sessions{display:grid; grid-template-columns:repeat(auto-fill, minmax(230px,1fr)); gap:8px;}
.session-choice{padding:12px 14px;}
.session-choice .choice-title{font-size:16px;}
.no-days-note{margin-top:var(--sp-3); font-size:15px; color:var(--steel); font-style:italic;}

/* one person's card within a multi-attendee registration */
.person-card{
  border:1px solid var(--line); border-radius:var(--radius-md); background:var(--white);
  padding:var(--sp-3); margin-top:var(--sp-3);
}
.person-card:first-child{margin-top:var(--sp-4);}
.person-card-head{display:flex; align-items:center; justify-content:space-between; gap:var(--sp-2);}
.person-title{font-family:var(--font-heading); font-weight:700; font-size:18px; color:var(--navy);}
.remove-person{
  background:none; border:none; padding:4px 0; font:inherit; font-size:13.5px; font-weight:600;
  color:var(--red); cursor:pointer; border-bottom:1px solid transparent;
}
.remove-person:hover{border-bottom-color:var(--red);}
.person-subhead{
  font-family:var(--font-heading); font-weight:700; font-size:16px; color:var(--navy);
  margin-top:var(--sp-4); margin-bottom:2px;
}
#add-person{margin-top:var(--sp-3);}
#party-limit-note{margin-top:var(--sp-2);}

.consent{display:flex; gap:12px; align-items:flex-start; margin-top:var(--sp-3); max-width:640px; cursor:pointer;}
.consent input{margin-top:3px; accent-color:var(--orange); width:17px; height:17px; flex-shrink:0;}
.consent span{font-size:15.5px; color:var(--ink);}
.consent a{color:var(--navy); border-bottom:1px solid var(--orange);}
.cf-turnstile{margin-top:var(--sp-3);}
.reg-submit{margin-top:var(--sp-3); font-size:17px; padding:17px 36px;}

/* confirmation */
.summary-grid{display:grid; grid-template-columns:1fr 1.2fr; gap:var(--sp-6); align-items:start;}
.booked-list{display:grid; gap:2px; background:var(--line); border:1px solid var(--line); margin-top:var(--sp-3);}
.booked{background:var(--white); padding:var(--sp-2) var(--sp-3);}
.booked-meta{font-size:12.5px; font-weight:700; color:var(--steel); text-transform:uppercase; letter-spacing:.05em;}
.booked-title{font-family:var(--font-heading); font-weight:700; font-size:17px; color:var(--navy); margin-top:4px;}
.booked-sub{font-size:14.5px; color:var(--steel); margin-top:4px;}
.booked-sub a{color:var(--navy); border-bottom:1px solid var(--orange);}

@media (max-width:860px){
  .field-grid,.summary-grid{grid-template-columns:1fr; gap:var(--sp-3);}
  .day-choice{min-width:0; flex:1 1 100%;}
}
