/* STYRZ Seminare – Seminaranmeldung (Academy, dunkles CI) */
.styrz-anm { display: grid; grid-template-columns: minmax(260px, 340px) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.styrz-anm__karte { position: sticky; top: 110px; border: 1px solid rgba(0,188,154,.55); border-radius: 12px; background: #0b0b0b; overflow: hidden;
  box-shadow: 0 24px 50px -28px rgba(93,252,223,.4); color: #fff; }
.styrz-anm__bild img { display: block; width: 100%; height: 150px; object-fit: cover; }
.styrz-anm__inhalt { padding: 1.4rem 1.5rem 1.5rem; font-size: 15px; line-height: 1.5; }
.styrz-anm p.styrz-anm__kicker { margin: 0 0 .35rem !important; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #95c11f; }
.styrz-anm p.styrz-anm__titel { margin: 0 0 1rem !important; font-family: var(--global-heading-font-family, inherit); font-size: 1.2rem; line-height: 1.3; text-transform: uppercase; color: #00bc9a; }
.styrz-anm__daten { margin: 0 0 1rem; }
.styrz-anm__daten > div { display: grid; grid-template-columns: 4.5rem 1fr; gap: .5rem; padding: .55rem 0; border-top: 1px solid rgba(183,200,169,.25); }
.styrz-anm__daten dt { color: #b7c8a9; font-weight: 400; }
.styrz-anm__daten dd { margin: 0; color: #fff; }
.styrz-anm__karte:not(.ist-gewaehlt) [data-styrz="termin"] { color: #b7c8a9; font-style: italic; }
.styrz-anm a.styrz-anm__link { display: inline-block; margin: .25rem 0 1rem; color: #fff; text-decoration: underline; }
.styrz-anm p.styrz-anm__hilfe { margin: 0 !important; padding-top: .9rem; border-top: 1px solid rgba(183,200,169,.25); font-size: 13px; color: #b7c8a9; }
.styrz-anm .styrz-anm__hilfe a { color: #b7c8a9; }

/* Formular kompakter als der 20-px-Fließtext des Themes */
.styrz-anm__formular .fluentform { font-size: 16px; line-height: 1.5; }
.styrz-anm__formular .ff-el-input--label label { font-size: 15px !important; font-weight: 400; }
.styrz-anm__formular .ff-el-form-control { font-size: 16px !important; padding: 10px 12px !important; height: auto; }
.styrz-anm__formular .ff-el-group { margin-bottom: 14px; }
.styrz-anm__formular .ff_t_c, .styrz-anm__formular .ff_t_c p, .styrz-anm__formular .ff-el-form-check-label { font-size: 14px !important; line-height: 1.5 !important; }
.styrz-anm__formular .styrz-hinweis, .styrz-anm__formular .styrz-hinweis p { font-size: 12.5px !important; line-height: 1.5; color: #b7c8a9; }

/* Schrittanzeige */
.styrz-anm__formular .ff-step-titles { display: flex; gap: .5rem; margin: 0 0 1.75rem; padding: 0; list-style: none; counter-reset: schritt; }
.styrz-anm__formular .ff-step-titles li { flex: 1; position: relative; margin: 0; padding: .65rem 0 0; border-top: 3px solid rgba(183,200,169,.3);
  font-size: 13px; color: #b7c8a9; counter-increment: schritt; list-style: none; }
.styrz-anm__formular .ff-step-titles li { text-align: left !important; }
/* Fluent-Forms-eigene Nummern-Kästchen und Verbindungslinie ausblenden – die Balken oben genügen */
.styrz-anm__formular .ff-step-titles li::before { content: counter(schritt) ". " !important; position: static !important; display: inline !important;
  width: auto !important; height: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
  background: none !important; color: inherit !important; font-size: inherit !important; line-height: inherit !important; box-shadow: none !important; }
.styrz-anm__formular .ff-step-titles li::after { display: none !important; }
.styrz-anm__formular .ff-step-titles li.ff_active, .styrz-anm__formular .ff-step-titles li.ff_completed { border-top-color: #00bc9a; color: #fff; }
.styrz-anm__formular .ff-step-titles li span { display: inline; }
.styrz-anm__formular .step-nav { display: flex; gap: 1rem; justify-content: space-between; margin-top: 1.25rem; }
.styrz-anm__formular .step-nav button, .styrz-anm__formular .ff-btn-next, .styrz-anm__formular .ff-btn-prev {
  padding: 13px 26px !important; border-radius: 15px !important; font-family: var(--global-primary-nav-font-family, inherit); font-size: 13px !important;
  letter-spacing: .5px; text-transform: uppercase; cursor: pointer; }
.styrz-anm__formular .ff-btn-next { background: #00bc9a !important; color: #000 !important; border: 0 !important; box-shadow: 0 12px 20px -11px #5dfcdf; margin-left: auto; }
.styrz-anm__formular .ff-btn-next:hover { background: #95c11f !important; }
.styrz-anm__formular .ff-btn-prev { background: transparent !important; color: #fff !important; border: 1px solid rgba(183,200,169,.6) !important; }

/* Termin-Kacheln */
.styrz-termin-kacheln .ff-el-input--content { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .9rem; }
.styrz-termin-kacheln .ff-el-form-check { margin: 0 !important; }
.styrz-termin-kacheln .ff-el-form-check-label { display: block !important; height: 100%; margin: 0; padding: 1rem 1.1rem; border: 2px solid #a9bd97;
  border-radius: 14px; cursor: pointer; transition: border-color .15s, box-shadow .15s, transform .15s; }
.styrz-termin-kacheln .ff-el-form-check-label:hover { border-color: #00bc9a; transform: translateY(-2px); }
.styrz-termin-kacheln input[type=radio] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.styrz-termin-kacheln .ff-el-form-check.ff_item_selected .ff-el-form-check-label,
.styrz-termin-kacheln .ff-el-form-check-label:has(input:checked) { border-color: #00bc9a; box-shadow: 0 0 0 1px #00bc9a, 0 14px 26px -16px rgba(93,252,223,.6); }
.styrz-termin-kacheln input[type=radio]:focus-visible + span { outline: 2px solid #00bc9a; outline-offset: 6px; }
.styrz-kachel__titel { display: block; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #b7c8a9; }
.styrz-kachel__datum { display: block; margin: .3rem 0 .4rem; font-size: 1.1rem; font-weight: 700; color: #fff; }
.styrz-kachel__tage { display: block; font-size: 13px; color: #b7c8a9; }

/* Zusammenfassung im letzten Schritt */
.styrz-zusammenfassung { margin-bottom: 1rem; padding: 1.1rem 1.25rem; border: 1px solid rgba(0,188,154,.45); border-radius: 12px; font-size: 14px; }
.styrz-zusammenfassung p.styrz-zf__kopf { margin: 0 0 .75rem !important; color: #b7c8a9; }
.styrz-zusammenfassung section + section { margin-top: .9rem; }
.styrz-zusammenfassung p.styrz-zf__titel { margin: 0 0 .3rem !important; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: #95c11f; }
.styrz-zusammenfassung dl { margin: 0; }
.styrz-zusammenfassung dl > div { display: grid; grid-template-columns: minmax(8rem, 38%) 1fr; gap: .75rem; padding: .3rem 0; }
.styrz-zusammenfassung dt { color: #b7c8a9; font-weight: 400; }
.styrz-zusammenfassung dd { margin: 0; color: #fff; word-break: break-word; }

/* Absenden */
.styrz-anm__formular .ff-btn-submit { width: 100%; padding: 15px 28px !important; font-size: 14px !important; }

@media (max-width: 900px) {
  .styrz-anm { grid-template-columns: 1fr; }
  .styrz-anm__karte { position: static; }
  .styrz-anm__bild { display: none; }
}
@media (max-width: 520px) {
  .styrz-anm__formular .ff-step-titles li span { display: none; }
}

/* Theme-/Styler-Schriftgrößen (20 px, mit ID-Selektoren und !important) zurücknehmen.
   :not(#_) erhöht die Spezifität auf ID-Niveau, damit diese Regeln sicher gewinnen. */
html body .styrz-anm:not(#_):not(#__) .ff-el-form-check, html body .styrz-anm:not(#_):not(#__) .ff-el-form-check label, html body .styrz-anm:not(#_):not(#__) .ff-el-form-check span, html body .styrz-anm:not(#_):not(#__) .ff-el-form-check div,
html body .styrz-anm:not(#_):not(#__) .ff-el-tc, html body .styrz-anm:not(#_):not(#__) .ff-el-tc label, html body .styrz-anm:not(#_):not(#__) .ff_t_c, html body .styrz-anm:not(#_):not(#__) .ff_t_c p, html body .styrz-anm:not(#_):not(#__) .ff_t_c span {
  font-size: 15px !important; line-height: 1.55 !important; font-family: inherit !important; }
html body .styrz-anm:not(#_):not(#__) .ff-el-form-check-label { display: flex !important; gap: .6rem; align-items: flex-start; }
html body .styrz-anm:not(#_):not(#__) .ff-el-form-check-label input[type=checkbox] { flex: none; margin: 3px 0 0 !important; width: 18px; height: 18px; accent-color: #00bc9a; }
html body .styrz-anm:not(#_):not(#__) input[type=checkbox]:focus, html body .styrz-anm:not(#_):not(#__) input[type=checkbox]:focus-visible { outline: 2px solid #00bc9a !important; outline-offset: 2px; box-shadow: none !important; }
html body .styrz-anm:not(#_):not(#__) .ff-el-input--label label { font-size: 15px !important; }
html body .styrz-anm:not(#_):not(#__) .styrz-termin-kacheln .ff-el-form-check-label { display: block !important; }
html body .styrz-anm:not(#_):not(#__) .styrz-termin-kacheln .ff-el-form-check span { font-size: 13px !important; }
html body .styrz-anm:not(#_):not(#__) .styrz-termin-kacheln .styrz-kachel__datum { font-size: 1.1rem !important; }

/* Buttons: gleiche Höhe, gleiche Form, sauber auf einer Linie */
html body .styrz-anm:not(#_):not(#__) .step-nav, html body .styrz-anm:not(#_):not(#__) .ff_submit_btn_wrapper { display: flex !important; align-items: stretch !important; gap: 1rem; }
html body .styrz-anm:not(#_):not(#__) .ff-btn-submit, html body .styrz-anm:not(#_):not(#__) .ff-btn-next, html body .styrz-anm:not(#_):not(#__) .ff-btn-prev {
  margin: 0 !important; min-height: 52px; padding: 0 28px !important; border-radius: 15px !important;
  font-family: var(--global-primary-nav-font-family, inherit) !important; font-size: 14px !important; line-height: 1.2 !important;
  letter-spacing: .5px !important; text-transform: uppercase; }
html body .styrz-anm:not(#_):not(#__) .ff-btn-submit { flex: 1; background: #00bc9a !important; color: #000 !important; border: 0 !important;
  box-shadow: 0 12px 20px -11px #5dfcdf !important; }
html body .styrz-anm:not(#_):not(#__) .ff-btn-submit:hover { background: #95c11f !important; }
html body .styrz-anm:not(#_):not(#__) .ff-btn-prev { flex: none; }

/* Zwischenüberschrift „Abweichende Rechnungsanschrift“ in der Zusammenfassung */
.styrz-zusammenfassung p.styrz-zf__unter { margin: .6rem 0 .2rem !important; padding-top: .6rem; border-top: 1px solid rgba(183,200,169,.25);
  font-size: 13px; font-weight: 700; color: #fff; }

/* Letzter Schritt: „Zurück“ und Absenden in einer Zeile, gleiche Höhe */
html body .styrz-anm:not(#_):not(#__) .step-nav.styrz-nav-senden { display: flex !important; align-items: center !important; gap: 1rem; margin-top: 1.25rem !important; }
html body .styrz-anm:not(#_):not(#__) .styrz-nav-senden .ff_submit_btn_wrapper { flex: 1; margin: 0 !important; padding: 0 !important; }
html body .styrz-anm:not(#_):not(#__) .styrz-nav-senden .ff-btn-submit { width: 100% !important; }
html body .styrz-anm:not(#_):not(#__) .styrz-nav-senden .ff-btn-prev, html body .styrz-anm:not(#_):not(#__) .styrz-nav-senden .ff-btn-submit { height: 52px !important; min-height: 52px; }

/* Preis in der Karte */
.styrz-anm [data-styrz="preis"] s { color: #b7c8a9; margin-right: .3rem; }
.styrz-anm [data-styrz="preis"] strong { color: #fff; }
.styrz-anm [data-styrz="preis"] small { display: block; font-size: 12.5px; color: #b7c8a9; }

/* Frühbucher-Hinweis in der Termin-Kachel */
html body .styrz-anm:not(#_):not(#__) .styrz-termin-kacheln .styrz-kachel__rabatt { display: inline-block; margin-top: .55rem; padding: 2px 9px;
  border-radius: 10px; background: rgba(149,193,31,.16); color: #95c11f; font-size: 12px !important; letter-spacing: .02em; }

/* Rabattcode: Feld + „Einlösen“ */
html body .styrz-anm:not(#_):not(#__) .styrz-code { display: flex; gap: .6rem; align-items: stretch; max-width: 460px; }
html body .styrz-anm:not(#_):not(#__) .styrz-code input { flex: 1; text-transform: uppercase; letter-spacing: .06em; }
html body .styrz-anm:not(#_):not(#__) .styrz-code__knopf { flex: none; padding: 0 20px !important; border: 1px solid #00bc9a !important; border-radius: 12px !important;
  background: transparent !important; color: #00bc9a !important; font-size: 13px !important; letter-spacing: .5px; text-transform: uppercase; cursor: pointer; }
html body .styrz-anm:not(#_):not(#__) .styrz-code__knopf:hover { background: #00bc9a !important; color: #000 !important; }
.styrz-anm p.styrz-code__status { margin: .45rem 0 0 !important; font-size: 13.5px; }
.styrz-anm p.styrz-code__status:empty { display: none; }
.styrz-anm p.styrz-code__status.ist-ok { color: #00bc9a; }
.styrz-anm p.styrz-code__status.ist-info { color: #95c11f; }
.styrz-anm p.styrz-code__status.ist-fehler { color: #ff8a7a; }

/* Summe in der Zusammenfassung */
.styrz-zusammenfassung .styrz-zf__summe { margin-top: .3rem; padding-top: .55rem !important; border-top: 1px solid rgba(183,200,169,.3); }
.styrz-zusammenfassung .styrz-zf__summe dt, .styrz-zusammenfassung .styrz-zf__summe dd { color: #fff; font-weight: 700; }
.styrz-zusammenfassung .styrz-zf__summe small { font-weight: 400; color: #b7c8a9; }
