.reg-page-title {
  font-family: var(--font-display); font-size: var(--text-3xl); font-weight: 800;
  color: var(--color-charcoal); text-transform: uppercase; letter-spacing: var(--tracking-tight);
  margin: var(--space-6) 0 var(--space-4);
}
.reg-layout { max-width: 800px; margin: 0 0 var(--space-10); }
.reg-card {
  background: var(--color-white); border: 1px solid var(--color-fog);
  border-radius: var(--radius-xl); padding: var(--space-8);
  box-shadow: var(--shadow-sm); margin-bottom: var(--space-6);
}
.reg-section-title {
  font-family: var(--font-display); font-size: var(--text-xl); font-weight: 800;
  color: var(--color-charcoal); text-transform: uppercase; letter-spacing: var(--tracking-tight);
  padding-bottom: var(--space-4); margin: 0 0 var(--space-5);
  border-bottom: 2px solid var(--color-forest);
}
.reg-section-subtitle {
  font-size: var(--text-sm); font-weight: 400; text-transform: none;
  letter-spacing: 0; color: var(--color-muted);
}
.reg-grid { display: grid; grid-template-columns: 1fr; gap: var(--space-4); }
@media (min-width: 600px) { .reg-grid { grid-template-columns: 1fr 1fr; } }
.reg-field { display: flex; flex-direction: column; gap: var(--space-2); }
.reg-field--full { grid-column: 1 / -1; }
.reg-field label { font-size: var(--text-xs); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tracking-wide); color: var(--color-slate); }
.req { color: var(--color-danger); margin-left: 2px; }
.reg-input {
  height: 44px; border: 1.5px solid var(--color-fog); border-radius: var(--radius-md);
  padding: 0 var(--space-4); font-size: var(--text-base); font-family: var(--font-body);
  color: var(--color-ink); background: var(--color-white); transition: border-color var(--transition-fast);
}
.reg-input:focus { outline: none; border-color: var(--color-forest); }
.reg-input[disabled] { background: var(--color-mist); color: var(--color-muted); }
select.reg-input { cursor: pointer; appearance: auto; }
.reg-input--narrow { max-width: 240px; }
.reg-input--medium { max-width: 320px; }
.reg-pw-wrap { position: relative; }
.reg-pw-wrap .reg-input { width: 100%; padding-right: 44px; }
.reg-pw-toggle {
  position: absolute; right: 0; top: 0; width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  background: none; border: none; cursor: pointer; color: var(--color-muted);
  transition: color var(--transition-fast);
}
.reg-pw-toggle:hover { color: var(--color-forest); }
.reg-radio-group { display: flex; gap: var(--space-5); margin-top: var(--space-1); }
.reg-radio-label { display: flex; align-items: center; gap: var(--space-2); font-size: var(--text-sm); color: var(--color-ink); cursor: pointer; }
.reg-radio-label input { accent-color: var(--color-forest); width: 16px; height: 16px; }
.reg-check-label { display: flex; align-items: flex-start; gap: var(--space-3); font-size: var(--text-sm); color: var(--color-slate); cursor: pointer; line-height: var(--leading-relaxed); }
.reg-check-label input { accent-color: var(--color-forest); width: 16px; height: 16px; flex-shrink: 0; margin-top: 3px; }
.reg-check-label a { color: var(--color-forest); font-weight: 600; }
.reg-gdpr { background: var(--color-mist); border-radius: var(--radius-lg); padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-4); margin-bottom: var(--space-6); }
.reg-submit-row { display: flex; justify-content: flex-end; margin-top: var(--space-2); }
.reg-submit-btn { min-width: 200px; }
.grecaptcha-badge { bottom: 100px !important; }

/* Inline validace formuláře */
.reg-input--error,
.reg-input--error:focus { border-color: var(--color-danger); }
.reg-field--error label { color: var(--color-danger); }
.reg-field__error {
  font-size: var(--text-xs); font-weight: 600; color: var(--color-danger);
  margin-top: var(--space-1);
}
.reg-gdpr.reg-field--error { box-shadow: inset 0 0 0 1.5px var(--color-danger); }
