:root {
--fsma-accent: #a6b833;
--fsma-accent-dark: #8a9a2a;
--fsma-limited: #e0a100;
--fsma-closed: #b0b0b0;
--fsma-text: #333;
--fsma-muted: #777;
--fsma-border: #ddd;
--fsma-radius: 6px;
} .fsma-places { display: inline-flex; align-items: center; gap: .4em; font-size: .9em; white-space: nowrap; }
.fsma-places__dot { width: .7em; height: .7em; border-radius: 50%; background: var(--fsma-accent); flex: none; }
.fsma-places--limited .fsma-places__dot { background: var(--fsma-limited); }
.fsma-places--closed .fsma-places__dot { background: var(--fsma-closed); }
.fsma-badge { display: inline-block; padding: .1em .5em; border-radius: 999px; background: var(--fsma-accent); color: #fff; font-size: .75em; text-transform: uppercase; letter-spacing: .04em; vertical-align: middle; } .fsma-termin { display: block; margin: 0 0 .4em; }
.fsma-termin__datum { margin-right: .5em; }
.fsma-termin--leer { color: var(--fsma-muted); } .fsma-termine__list { list-style: none; margin: 1em 0; padding: 0; }
.fsma-termine__item { display: flex; flex-wrap: wrap; align-items: center; gap: .6em 1em; padding: .6em 0; border-bottom: 1px solid var(--fsma-border); }
.fsma-termine__item.is-full { color: var(--fsma-muted); }
.fsma-termine__label { font-weight: 600; min-width: 6em; }
.fsma-termine__none, .fsma-termine__any { color: var(--fsma-muted); font-style: italic; }
.fsma-info__cta { margin: .8em 0 0; }
.fsma-button--klein { padding: .4em .9em; font-size: .85em; border-radius: 0; text-decoration: none; }
a.fsma-button, a.fsma-button:hover { color: #fff; text-decoration: none; } .fsma-info { display: grid; grid-template-columns: max-content 1fr; gap: .3em 1.5em; margin: 1.5em 0; }
.fsma-info__row { display: contents; }
.fsma-info dt { font-weight: 600; }
.fsma-info dd { margin: 0; } .fsma-liste--karten { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; margin: 1.5rem 0; }
.fsma-card { display: flex; flex-direction: column; border: 1px solid var(--fsma-border); border-radius: var(--fsma-radius); overflow: hidden; text-decoration: none; color: var(--fsma-text); background: #fff; transition: box-shadow .2s; }
.fsma-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.08); }
.fsma-card__image { display: block; aspect-ratio: 16 / 10; background-size: cover; background-position: center; }
.fsma-card__body { display: flex; flex-direction: column; gap: .5em; padding: 1.2em; flex: 1; }
.fsma-card__typ { font-size: .8em; text-transform: uppercase; letter-spacing: .06em; color: var(--fsma-muted); }
.fsma-card__title { font-size: 1.2em; font-weight: 700; line-height: 1.3; }
.fsma-card__termin { display: flex; flex-wrap: wrap; align-items: center; gap: .3em .8em; font-size: .95em; }
.fsma-card__label { font-weight: 600; }
.fsma-card__preis { color: var(--fsma-muted); }
.fsma-card__cta { margin-top: auto; padding-top: .8em; color: var(--fsma-accent-dark); font-weight: 600; }
.fsma-liste--liste, .fsma-liste--kompakt { list-style: none; margin: 1.5rem 0; padding: 0; }
.fsma-liste--liste .fsma-liste__item { padding: 1em 0; border-bottom: 1px solid var(--fsma-border); }
.fsma-liste--liste .fsma-liste__title { display: block; font-weight: 700; font-size: 1.1em; margin-bottom: .3em; }
.fsma-liste--liste .fsma-liste__termin { display: flex; flex-wrap: wrap; gap: .3em 1em; align-items: center; }
.fsma-liste--kompakt .fsma-liste__item { display: grid; grid-template-columns: minmax(10em, max-content) 1fr auto auto; gap: .5em 1.2em; align-items: center; padding: .6em 0; border-bottom: 1px solid var(--fsma-border); }
.fsma-liste--kompakt .fsma-liste__date { font-weight: 600; white-space: nowrap; }
.fsma-liste__leer { color: var(--fsma-muted); font-style: italic; }
@media (max-width: 600px) {
.fsma-liste--kompakt .fsma-liste__item { grid-template-columns: 1fr; gap: .2em; }
} .fsma-form-wrap { margin: 1.5rem 0; } .fsma-form-wrap [hidden] { display: none !important; }
.fsma-form__summary { margin: 0 0 1.4em; padding: 1em 1.2em; border-radius: 0; background: #f6f6f6; border-left: 4px solid var(--fsma-accent); }
.fsma-info--form { margin: 0; gap: .25em 1.2em; }
.fsma-info--form .fsma-places { margin-left: .4em; }
.fsma-form__hinweis { margin-bottom: 1em; }
.fsma-form__message { display: block; padding: .9em 1.1em; border-radius: var(--fsma-radius); margin-bottom: 1em; }
.fsma-form__message.is-success { background: #eef4d3; color: #3d4a0a; }
.fsma-form__message.is-error { background: #fbe4e4; color: #7a1c1c; }
.fsma-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.fsma-form__row { display: grid; gap: 0 1.2em; }
.fsma-form__row--2 { grid-template-columns: repeat(2, 1fr); }
.fsma-form__row--3 { grid-template-columns: 1fr 2fr 1.5fr; }
@media (max-width: 640px) { .fsma-form__row--2, .fsma-form__row--3 { grid-template-columns: 1fr; } }
.fsma-field { margin: 0 0 1em; }
.fsma-field label, .fsma-field__label { display: block; font-weight: 600; margin-bottom: .3em; }
.fsma-field--static .fsma-field__value { display: block; padding: .65em .8em; border: 1px solid var(--fsma-border); border-radius: var(--fsma-radius); background: #f6f6f6; }
.fsma-field__hint { display: block; margin-top: .4em; font-size: .9em; color: var(--fsma-muted); }
.fsma-field__hint:empty { display: none; }
.fsma-frist-hint { padding: .6em .8em; border-radius: var(--fsma-radius); background: #fdefc9; color: #5a4400; }
.fsma-form input[type="text"], .fsma-form input[type="email"], .fsma-form input[type="tel"], .fsma-form select, .fsma-form textarea { width: 100%; box-sizing: border-box; padding: .65em .8em; border: 1px solid var(--fsma-border); border-radius: var(--fsma-radius); font: inherit; background: #fff; }
.fsma-form input:focus, .fsma-form select:focus, .fsma-form textarea:focus { outline: 2px solid var(--fsma-accent); outline-offset: 1px; border-color: var(--fsma-accent); }
.fsma-form__termine { border: 1px solid var(--fsma-border); border-radius: var(--fsma-radius); padding: .8em 1em; margin: 0 0 1.2em; }
.fsma-form__termine legend { font-weight: 600; padding: 0 .4em; }
.fsma-form__termin { display: flex; flex-wrap: wrap; align-items: center; gap: .5em .8em; padding: .4em 0; cursor: pointer; }
.fsma-form__termin.is-full .fsma-form__termin-text { color: var(--fsma-muted); }
.fsma-form__termin-single { display: flex; flex-wrap: wrap; align-items: center; gap: .5em 1em; margin: 0 0 1.2em; }
.fsma-check { margin: 0 0 .8em; text-align: left; }
.fsma-check label { display: flex; gap: .6em; align-items: flex-start; cursor: pointer; font-weight: normal; text-align: left; }
.fsma-check input { margin: .3em 0 0; flex: none; }
.fsma-check__text { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.fsma-form, .fsma-form-wrap { max-width: 100%; text-align: left; }
.fsma-form .cf-turnstile { max-width: 100%; }
.fsma-form .cf-turnstile { margin: .5em 0 1em; }
.fsma-form .cf-turnstile--interaction-only { margin: 0; }
.fsma-form .cf-turnstile--interaction-only:has(iframe[style*="display: none"]) { display: none; }
.fsma-button { display: inline-block; padding: .9em 2em; border: 0; border-radius: var(--fsma-radius); background: var(--fsma-accent); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.fsma-button:hover { background: var(--fsma-accent-dark); }
.fsma-button:disabled { opacity: .6; cursor: wait; }
.fsma-form__required { font-size: .85em; color: var(--fsma-muted); margin: .5em 0 0; } .fsma-newsletter { margin: 1rem 0; }
.fsma-newsletter .fsma-form__message { margin-bottom: .8em; }
.fsma-newsletter__row { display: flex; flex-wrap: wrap; gap: .6em; align-items: flex-end; }
.fsma-newsletter__row .fsma-field { margin: 0; flex: 1 1 200px; }
.fsma-newsletter--inline .fsma-newsletter__email { flex: 1 1 220px; }
.fsma-newsletter--inline .fsma-newsletter__submit { margin: 0; flex: 0 0 auto; }
.fsma-newsletter--stack .fsma-newsletter__row { flex-direction: column; align-items: stretch; }
.fsma-newsletter--stack .fsma-newsletter__row .fsma-field { flex: none; }
.fsma-newsletter .cf-turnstile { margin: .8em 0 .6em; }
.fsma-newsletter__consent { margin-top: .6em; }
.fsma-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } .fsma-widerruf-button { display: inline-block; padding: .6em 1.2em; border: 2px solid var(--fsma-accent); border-radius: var(--fsma-radius); color: inherit; text-decoration: none; font-weight: 600; line-height: 1.2; }
.fsma-widerruf-button:hover, .fsma-widerruf-button:focus { background: var(--fsma-accent); color: #fff; }
.fsma-widerruf-button--klein { padding: .3em .8em; font-size: .85em; font-weight: 500; }
.fsma-form.is-sending { opacity: .7; }