/* Registration page styles */
.reg-page{padding:7rem 1.5rem 4rem;background:var(--tm-offwhite);min-height:100vh}
.reg-page-inner{max-width:860px;margin:0 auto}
.reg-page-header{text-align:center;margin-bottom:2rem}
.reg-page-header h1{
  font-family:Georgia,serif;color:var(--tm-navy);font-size:clamp(1.8rem,4vw,2.4rem);
  margin-bottom:.5rem;
}
.reg-page-header p{color:var(--tm-gray);max-width:560px;margin:0 auto;line-height:1.6}
.reg-early-bird{
  display:inline-block;margin-top:1rem;background:var(--tm-gold);color:var(--tm-burgundy);
  padding:.45rem 1rem;border-radius:4px;font-size:.85rem;font-weight:600;
}
.reg-early-bird strong{color:var(--tm-burgundy-dark)}
.reg-early-bird span{background:var(--tm-burgundy);color:var(--tm-gold);padding:.1rem .5rem;border-radius:3px;margin-left:.3rem}

.reg-card{
  background:var(--tm-white);border:1px solid var(--tm-lightgray);border-radius:8px;
  padding:1.6rem 1.8rem;margin-bottom:1.2rem;
  border-top:4px solid var(--tm-burgundy);
}
.reg-card h2{
  font-family:Georgia,serif;color:var(--tm-navy);font-size:1.15rem;margin-bottom:1rem;
}
.reg-hint{color:var(--tm-gray);font-size:.85rem;line-height:1.6;margin-bottom:1rem}
.reg-hint strong{color:var(--tm-burgundy)}

.reg-cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem}
.reg-cat{
  display:flex;flex-direction:column;gap:.3rem;padding:1rem;cursor:pointer;
  border:2px solid var(--tm-lightgray);border-radius:6px;transition:all .2s;
  background:var(--tm-offwhite);
}
.reg-cat:hover{border-color:var(--tm-gold)}
.reg-cat input{position:absolute;opacity:0;pointer-events:none}
.reg-cat:has(input:checked){border-color:var(--tm-burgundy);background:var(--tm-white);box-shadow:0 4px 16px rgba(119,36,50,.15)}
.reg-cat-title{font-weight:700;color:var(--tm-navy)}
.reg-cat-price{font-size:.85rem;color:var(--tm-burgundy);font-weight:600}

.reg-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1rem}
.reg-grid label,.reg-grid .reg-full{display:flex;flex-direction:column;font-size:.82rem;font-weight:600;color:var(--tm-navy);gap:.35rem}
.reg-grid .reg-full{grid-column:1/-1}
.reg-grid [hidden],.reg-card[hidden]{display:none !important}
.reg-grid input,.reg-grid textarea,.reg-grid select{
  padding:.65rem .8rem;border:1px solid var(--tm-lightgray);border-radius:4px;
  font-size:.95rem;font-family:inherit;background:var(--tm-white);color:var(--tm-charcoal);
  font-weight:400;transition:border-color .2s;
}
.reg-grid input:focus,.reg-grid textarea:focus,.reg-grid select:focus{outline:none;border-color:var(--tm-burgundy);box-shadow:0 0 0 3px rgba(119,36,50,.1)}
@media(max-width:640px){.reg-grid{grid-template-columns:1fr}.reg-grid .reg-full{grid-column:1}}

.reg-member-block{
  background:var(--tm-offwhite);border:1px dashed var(--tm-lightgray);border-radius:6px;
  padding:1rem 1.2rem;margin-bottom:.8rem;
}
.reg-member-block h4{color:var(--tm-navy);margin-bottom:.6rem;font-size:.95rem}
.reg-member-block .reg-grid{gap:.6rem .8rem}
.reg-member-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}
.reg-remove{
  background:transparent;border:1px solid var(--tm-burgundy);color:var(--tm-burgundy);
  padding:.3rem .7rem;border-radius:3px;font-size:.75rem;cursor:pointer;font-weight:600;
}
.reg-remove:hover{background:var(--tm-burgundy);color:var(--tm-white)}
.reg-addbtn{
  background:var(--tm-navy);color:var(--tm-white);border:none;border-radius:4px;
  padding:.6rem 1.2rem;font-weight:600;cursor:pointer;font-size:.85rem;
}
.reg-addbtn:hover{background:var(--tm-navy-dark)}

.reg-summary{border-top-color:var(--tm-navy)}
.reg-fee-row{
  display:flex;justify-content:space-between;padding:.6rem 0;
  border-bottom:1px dashed var(--tm-lightgray);color:var(--tm-charcoal);font-size:.95rem;
}
.reg-fee-row:last-of-type{border-bottom:none}
.reg-fee-total{font-size:1.1rem;color:var(--tm-burgundy);font-weight:700;padding-top:1rem}
.reg-fee-total strong{color:var(--tm-burgundy)}

.reg-error,.reg-success{
  padding:1rem 1.2rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem;font-weight:500;
}
.reg-error{background:#fde7ea;color:#7a1120;border-left:4px solid var(--tm-burgundy)}
.reg-success{background:#e8f5e9;color:#1b5e20;border-left:4px solid #2e7d32}

.reg-actions{text-align:center;padding:1rem 0 2rem}
.reg-submit-btn{min-width:260px;justify-content:center}
.reg-submit-btn[disabled]{opacity:.6;cursor:not-allowed}

/* ───── Confirmation panel (post-submit) ───── */
.reg-confirm{
  background:var(--tm-white);border:1px solid var(--tm-lightgray);border-top:4px solid #2e7d32;
  border-radius:8px;padding:2rem 1.75rem;text-align:center;margin:1rem 0 2rem;
}
.reg-confirm[hidden]{display:none !important}
.reg-confirm-icon{color:#2e7d32;margin-bottom:.5rem}
.reg-confirm h2{color:var(--tm-navy);font-size:1.6rem;margin:0 0 .75rem}
.reg-confirm-lead{color:var(--tm-charcoal);font-size:.95rem;max-width:560px;margin:0 auto 1.25rem;line-height:1.55}
.reg-confirm-ref{display:inline-block;background:var(--tm-offwhite);padding:.6rem 1rem;border-radius:4px;font-size:.9rem;color:var(--tm-navy);margin-bottom:1.5rem}
.reg-confirm-ref code{font-family:'Courier New',monospace;color:var(--tm-burgundy);font-weight:700;font-size:1rem}
.reg-confirm-summary,.reg-confirm-names{
  text-align:left;background:var(--tm-offwhite);border:1px solid var(--tm-lightgray);
  border-radius:6px;padding:1rem 1.2rem;margin:1rem auto;max-width:560px;
}
.reg-confirm-summary h3,.reg-confirm-names h3{
  margin:0 0 .75rem;font-size:1rem;color:var(--tm-navy);text-transform:uppercase;letter-spacing:.05em;
}
.reg-confirm-names ol{margin:0;padding-left:1.4rem;color:var(--tm-charcoal);font-size:.95rem;line-height:1.8}
.reg-confirm-names li strong{color:var(--tm-navy)}
.reg-confirm-close{min-width:200px}

/* ───── Modal wrapper (when embedded on index.html) ───── */
.reg-modal{
  position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:2000;
  display:flex;align-items:flex-start;justify-content:center;
  padding:2rem 1rem;overflow-y:auto;
}
.reg-modal[hidden]{display:none}
.reg-modal-card{
  background:var(--tm-offwhite);border-radius:10px;max-width:900px;width:100%;
  box-shadow:0 20px 60px rgba(0,0,0,.4);position:relative;
  border-top:5px solid var(--tm-burgundy);animation:regModalIn .25s ease-out;
}
@keyframes regModalIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}
.reg-modal-close{
  position:sticky;top:0;margin-left:auto;display:block;
  background:var(--tm-burgundy);color:#fff;border:none;width:42px;height:42px;
  border-radius:50%;font-size:1.4rem;cursor:pointer;line-height:1;
  box-shadow:0 4px 12px rgba(0,0,0,.2);margin:.8rem .8rem -20px auto;z-index:1;
}
.reg-modal-close:hover{background:var(--tm-burgundy-dark)}
.reg-modal .reg-page{padding:0;background:transparent;min-height:0}
.reg-modal .reg-page-inner{padding:1rem 2rem 2rem}
body.reg-modal-open{overflow:hidden}

/* -- OTP email verification -- */
.reg-otp-group{display:flex;gap:.5rem;align-items:stretch;margin-top:.25rem}
.reg-otp-group input{flex:1 1 auto;min-width:0}
.reg-otp-btn{
  flex:0 0 auto;padding:.55rem 1rem;background:var(--tm-navy,#004165);color:#fff;
  border:none;border-radius:6px;font-weight:600;cursor:pointer;font-size:.92rem;
  transition:background .15s,opacity .15s;white-space:nowrap;
}
.reg-otp-btn:hover:not(:disabled){background:#002e48}
.reg-otp-btn:disabled{opacity:.55;cursor:not-allowed}
.reg-otp-btn.reg-otp-resent{background:#772432}
.reg-otp-status{display:block;margin-top:.4rem;font-size:.88rem;min-height:1.2em}
.reg-otp-status.ok{color:#2f7d32;font-weight:600}
.reg-otp-status.err{color:#b3261e;font-weight:600}
.reg-otp-status.info{color:#666}
#reg-email.reg-email-verified{background:#eaf6ea;border-color:#2f7d32}
#reg-email.reg-email-verified+ .reg-otp-btn{display:none}

#reg-email.reg-email-duplicate{background:#fdecea;border-color:#b3261e;color:#b3261e}

/* -- Club search picker -- */
.reg-club-picker{position:relative;margin-top:.25rem}
.reg-club-picker input{width:100%}
.reg-club-list{
  position:absolute;top:100%;left:0;right:0;z-index:20;
  background:#fff;border:1px solid #ccc;border-radius:6px;
  margin-top:4px;max-height:260px;overflow-y:auto;
  box-shadow:0 6px 18px rgba(0,0,0,.12);font-size:.92rem;
}
.reg-club-item{padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid #f1f1f1}
.reg-club-item:last-child{border-bottom:none}
.reg-club-item:hover,.reg-club-item.active{background:#eaf2f8;color:#004165}
.reg-club-item .meta{display:block;font-size:.78rem;color:#666;margin-top:2px}
.reg-club-item mark{background:#fff3a3;padding:0 1px;border-radius:2px}
.reg-club-empty{padding:.6rem .75rem;color:#888;font-style:italic}
