.fluentform,
.frm-fluent-form {
  font-family: var(--ff-body);
}

.frm-fluent-form {
  background: var(--c-surface);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  padding: clamp(1.5rem, 3vw, 2.5rem);
}

.form-shell .frm-fluent-form,
.form-shell .form-fallback {
  background: transparent;
  border: 0;
  border-radius: 0;
  padding: 0;
}

.form-shell .fluentform {
  margin: 0;
}

.course-program-section {
  padding-block-end: var(--space-lg);
}

.course-registration-section {
  padding-block: var(--space-xl);
}

.course-registration-section .section-head {
  margin-block-end: var(--space-lg);
}

.course-followup-section {
  padding-block-start: var(--space-lg);
}

.frm-fluent-form .ff-el-group {
  margin-block-end: var(--space-md);
}

.frm-fluent-form .ff-el-input--label label {
  color: var(--c-ink);
  font-size: var(--fs-sm);
  font-weight: 600;
}

.frm-fluent-form input:not([type="checkbox"]):not([type="radio"]),
.frm-fluent-form select,
.frm-fluent-form textarea {
  background: var(--c-bg);
  border: 1.5px solid var(--c-line-strong);
  border-radius: var(--r-md);
  color: var(--c-ink);
  font: inherit;
  inline-size: 100%;
  min-block-size: 48px;
  padding: 0.8rem 0.95rem;
}

.form-shell .frm-fluent-form select.ff-el-form-control {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%237b6a5e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6.5 8 10.5 12 6.5'/%3E%3C/svg%3E");
  background-position: right 0.9rem center;
  background-repeat: no-repeat;
  background-size: 1rem 1rem;
  border-radius: var(--r-md);
  padding-inline-end: 2.4rem;
}

.frm-fluent-form textarea {
  min-block-size: 8rem;
  resize: vertical;
}

.frm-fluent-form input::placeholder,
.frm-fluent-form textarea::placeholder {
  color: var(--c-ink-muted);
}

.frm-fluent-form .ff-t-container {
  display: flex;
  gap: var(--space-md);
  margin: 0;
}

.frm-fluent-form .ff-t-container > .ff-t-cell {
  flex: 1 1 0;
  min-inline-size: 0;
  padding: 0;
}

.frm-fluent-form .pa-address-row > .ff-t-cell:first-child {
  flex: 1 1 0 !important;
}

.frm-fluent-form .pa-address-row > .ff-t-cell:last-child {
  flex: 2 1 0 !important;
}

.frm-fluent-form .pa-form-section {
  margin-block-end: 0;
}

.frm-fluent-form .ff-el-group:has(.pa-form-section) {
  margin-block-end: 0.75rem;
}

.frm-fluent-form .pa-form-section strong {
  color: var(--c-ink);
  display: block;
  font-size: var(--fs-base);
  font-weight: 600;
  line-height: 1.4;
}

.frm-fluent-form .pa-form-section .pa-optional {
  color: var(--c-ink-muted);
  font-weight: 400;
}

.frm-fluent-form .pa-form-section .pa-required {
  color: var(--c-accent);
}

.frm-fluent-form .pa-form-section p {
  color: var(--c-ink-muted);
  font-size: var(--fs-xs);
  margin: 0.35rem 0 0;
}

.frm-fluent-form .pa-vorkenntnisse > .ff-el-input--label {
  block-size: 1px;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  inline-size: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}

.frm-fluent-form .pa-vorkenntnisse .ff-el-form-check {
  margin: 0 0 0.5rem;
}

.frm-fluent-form .pa-vorkenntnisse .ff-el-form-check-label {
  align-items: center;
  background: var(--c-bg);
  border: 1.5px solid var(--c-line);
  border-radius: var(--r-md);
  color: var(--c-ink-soft);
  cursor: pointer;
  display: flex;
  font-size: var(--fs-sm);
  gap: 0.7rem;
  padding: 0.7rem 0.9rem;
  transition: border-color var(--dur-fast) var(--ease-out-quart), background-color var(--dur-fast) var(--ease-out-quart);
}

.frm-fluent-form .pa-vorkenntnisse .ff-el-form-check-label:hover {
  border-color: var(--c-line-strong);
  color: var(--c-ink-soft);
}

.frm-fluent-form .pa-vorkenntnisse .ff-el-form-check-label:has(input:checked) {
  background: var(--c-accent-soft);
  border-color: var(--c-accent);
  color: var(--c-ink);
}

.frm-fluent-form .pa-vorkenntnisse input[type="checkbox"] {
  accent-color: var(--c-accent);
  block-size: 1.05rem;
  flex: 0 0 auto;
  inline-size: 1.05rem;
  margin: 0;
}

.form-shell .frm-fluent-form .ff-el-form-control:focus {
  background-color: var(--c-bg);
  border-color: var(--c-accent);
  box-shadow: 0 0 0 3px var(--c-accent-soft);
  outline: 0;
}

.frm-fluent-form .ff-el-group:has([name="superkraft"]) .ff-el-input--label label {
  font-size: var(--fs-base);
  line-height: 1.4;
}

.form-shell .frm-fluent-form .ff-btn-submit {
  background: var(--c-accent) !important;
  border: 0 !important;
  border-radius: var(--r-pill) !important;
  color: var(--c-accent-ink) !important;
  cursor: pointer;
  font: 600 var(--fs-sm)/1 var(--ff-body);
  min-block-size: 50px !important;
  padding: 0.95rem 1.8rem !important;
}

.form-shell .frm-fluent-form .ff-btn-submit:hover,
.form-shell .frm-fluent-form .ff-btn-submit:focus,
.form-shell .frm-fluent-form .ff-btn-submit:focus-visible {
  background: var(--c-accent-hover) !important;
  border-color: transparent !important;
  box-shadow: var(--glow-accent);
  color: var(--c-accent-ink) !important;
  outline: 0;
}

.form-fallback-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-block-start: var(--space-md);
}

@media (max-width: 559px) {
  .frm-fluent-form .ff-t-container {
    display: block;
  }
}
