:root {
  --rlz-bg: #f6f3ee;
  --rlz-card: #ffffff;
  --rlz-text: #393034;
  --rlz-muted: #6b6263;
  --rlz-primary: #4f6f46;
  --rlz-primary-strong: #3e5937;
  --rlz-border: #d7d0c7;
  --rlz-accent: #e8efe2;
  --rlz-warning: #8c5f1a;
  --rlz-error: #9f2f27;
  --rlz-radius: 18px;
  --rlz-shadow: 0 18px 50px rgba(57, 48, 52, .12);
}
[data-theme="heide"] { --rlz-primary:#7b5d86; --rlz-primary-strong:#62476c; --rlz-accent:#f0e8f4; --rlz-bg:#faf7fb; }
[data-theme="sand"] { --rlz-primary:#96733f; --rlz-primary-strong:#72572f; --rlz-accent:#f5eddc; --rlz-bg:#fbf8f0; }
[data-theme="sage"] { --rlz-primary:#52746f; --rlz-primary-strong:#3e5b57; --rlz-accent:#e5efed; --rlz-bg:#f5faf9; }
[data-theme="classic"] { --rlz-primary:#4d5666; --rlz-primary-strong:#39414f; --rlz-accent:#e9edf3; --rlz-bg:#f7f8fb; }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body.rlz-body { margin:0; background: var(--rlz-bg); color: var(--rlz-text); font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height:1.5; }
.rlz-shell { max-width: 920px; margin: 0 auto; padding: clamp(14px, 4vw, 34px); }
.rlz-card { background: var(--rlz-card); border: 1px solid var(--rlz-border); border-radius: var(--rlz-radius); box-shadow: var(--rlz-shadow); overflow:hidden; }
.rlz-hero { padding: clamp(22px, 5vw, 44px); background: linear-gradient(135deg, var(--rlz-accent), #fff); border-bottom: 1px solid var(--rlz-border); }
.rlz-kicker { text-transform: uppercase; letter-spacing: .08em; color: var(--rlz-primary-strong); font-weight: 750; font-size: .78rem; margin:0 0 8px; }
.rlz-title { font-size: clamp(1.7rem, 5vw, 2.65rem); line-height:1.05; margin: 0 0 12px; }
.rlz-lead { margin:0; max-width: 68ch; color: var(--rlz-muted); font-size: 1.02rem; }
.rlz-progress { height: 8px; background: #eee8df; }
.rlz-progress > span { display:block; height:100%; background: var(--rlz-primary); width:0%; transition: width .25s ease; }
.rlz-content { padding: clamp(18px, 4vw, 36px); }
.rlz-step-title { margin: 0 0 8px; font-size: clamp(1.25rem, 3.6vw, 1.8rem); }
.rlz-note { color: var(--rlz-muted); margin-top:0; }
.rlz-grid { display:grid; gap:14px; }
.rlz-grid.two { grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (max-width: 720px) { .rlz-grid.two { grid-template-columns:1fr; } }
.rlz-field { display:block; margin: 0 0 14px; }
.rlz-label { display:block; font-weight:700; margin: 0 0 6px; }
.rlz-input, .rlz-select, .rlz-textarea { width:100%; border:1px solid var(--rlz-border); border-radius: 12px; padding: 12px 14px; font: inherit; background:#fff; color:var(--rlz-text); min-height: 48px; }
.rlz-input:focus, .rlz-select:focus, .rlz-textarea:focus { outline: 3px solid color-mix(in srgb, var(--rlz-primary) 20%, transparent); border-color: var(--rlz-primary); }
.rlz-choice-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-top: 14px; }
@media (max-width: 720px) { .rlz-choice-grid { grid-template-columns:1fr; } }
.rlz-choice { border:1px solid var(--rlz-border); border-radius: 15px; padding: 14px; background:#fff; cursor:pointer; transition: .15s ease; display:flex; gap:10px; align-items:flex-start; }
.rlz-choice:hover { border-color: var(--rlz-primary); transform: translateY(-1px); }
.rlz-choice input { margin-top:4px; accent-color: var(--rlz-primary); }
.rlz-choice.is-selected { border-color: var(--rlz-primary); background: var(--rlz-accent); }
.rlz-choice strong { display:block; }
.rlz-badges { display:flex; gap:8px; flex-wrap:wrap; margin-top:6px; }
.rlz-badge { display:inline-flex; align-items:center; border-radius: 999px; padding: 2px 9px; background: var(--rlz-accent); color: var(--rlz-primary-strong); font-size:.82rem; font-weight:700; }
.rlz-badge.waitlist { background: #fff1dc; color: var(--rlz-warning); }
.rlz-badge.availability { background:#eef6e8; color:#3f5d36; }
.rlz-alert { border: 1px solid var(--rlz-border); background: #fff; border-radius: 14px; padding: 14px 16px; margin: 16px 0; }
.rlz-alert.warning { border-color:#e1c797; background:#fff8ec; }
.rlz-alert.error { border-color:#e0a5a1; background:#fff2f1; color: var(--rlz-error); }
.rlz-actions { display:flex; justify-content:space-between; gap:12px; margin-top: 24px; flex-wrap: wrap; }
.rlz-button { border:0; border-radius: 999px; padding: 13px 20px; font: inherit; font-weight: 800; cursor:pointer; min-height: 48px; }
.rlz-button.primary { background: var(--rlz-primary); color:#fff; }
.rlz-button.primary:hover { background: var(--rlz-primary-strong); }
.rlz-button.secondary { background: #eee8df; color: var(--rlz-text); }
.rlz-button:disabled { opacity:.55; cursor:not-allowed; }
.rlz-summary { width:100%; border-collapse: collapse; margin: 18px 0; }
.rlz-summary td { padding: 7px 10px 7px 0; border-bottom: 1px solid #eee8df; vertical-align: top; }
.rlz-summary td:first-child { width: 38%; color: var(--rlz-muted); }
.rlz-summary td:last-child { font-weight: 750; word-break: break-word; }
@media (max-width: 580px) { .rlz-summary tr, .rlz-summary td { display:block; width:100%!important; } .rlz-summary td:first-child { border-bottom:0; padding-bottom:0; } .rlz-summary td:last-child { padding-top:2px; } }
.rlz-error-list { margin: 10px 0 0; padding-left: 20px; color: var(--rlz-error); }
.rlz-footer { font-size:.9rem; color: var(--rlz-muted); margin-top: 16px; }
.rlz-hp { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }
.rlz-success { text-align:center; padding: clamp(24px, 6vw, 46px); }
.rlz-success h2 { margin: 0 0 10px; }

/* v0.8 Formular-Optimierungen */
.rlz-steps{display:flex;gap:.35rem;list-style:none;padding:0;margin:0 0 1rem 0;overflow-x:auto;white-space:nowrap;color:var(--rlz-muted);font-size:.9rem}.rlz-steps li{border:1px solid var(--rlz-border);border-radius:999px;padding:.28rem .65rem;background:#fff}.rlz-steps li.active{background:var(--rlz-primary);border-color:var(--rlz-primary);color:#fff}.rlz-steps li.done{background:var(--rlz-accent);color:var(--rlz-primary-strong)}.rlz-alert.compact{padding:12px 14px;margin:8px 0 14px}.rlz-info-box p{margin:.15rem 0 .75rem}.rlz-info-box p:last-child{margin-bottom:0}.rlz-callout-green{background:var(--rlz-primary);border:1px solid var(--rlz-primary-strong);padding:1.2rem;border-radius:14px;margin:1.5rem 0;color:#fff}.rlz-callout-green p{margin:0 0 .8rem;line-height:1.6}.rlz-callout-green p:last-child{margin-bottom:0}.rlz-callout-green a{color:#fff;font-weight:800;text-decoration:underline}.rlz-choice a{color:var(--rlz-primary-strong);font-weight:800}.season-grid{margin-bottom:.25rem}.rlz-input.no-paste{caret-color:var(--rlz-primary)}

/* RLZ v0.9: Telefonfelder */
.rlz-phone-grid{display:grid;grid-template-columns:minmax(160px,220px) 1fr;gap:.65rem;align-items:center}
.rlz-help-text{display:block;margin-top:.35rem;color:#667;font-size:.9em;line-height:1.35}
@media (max-width:620px){.rlz-phone-grid{grid-template-columns:1fr}}

/* RLZ v0.14: massiv optimierter responsiver iFrame-/Embed-Betrieb */
html, body { width:100%; min-width:0; overflow-x:hidden; }
body.rlz-embedded { background: transparent; }
body.rlz-embedded .rlz-shell { max-width: 960px; padding: clamp(8px, 2.4vw, 22px); }
body.rlz-embedded .rlz-card { box-shadow: 0 10px 32px rgba(57,48,52,.10); }
body.rlz-embedded .rlz-footer { text-align:center; margin: 10px 0 0; padding: 0 .5rem 8px; }
.rlz-card, .rlz-content, .rlz-hero, .rlz-actions, .rlz-grid, .rlz-summary { min-width:0; }
.rlz-choice { min-width:0; overflow-wrap:anywhere; }
.rlz-choice span { min-width:0; }
.rlz-actions { align-items:center; }
.rlz-actions > span:empty { min-width: 1px; }
.rlz-button { margin: 0; line-height:1.2; white-space:normal; }
.rlz-button + .rlz-button { margin-left: 0; }
.rlz-error-list li + li { margin-top:.25rem; }
.rlz-steps { scrollbar-width: thin; padding-bottom: .2rem; }
.rlz-steps::-webkit-scrollbar { height: 7px; }
.rlz-steps::-webkit-scrollbar-thumb { background: #d7d0c7; border-radius:999px; }

@media (max-width: 680px) {
  .rlz-shell { padding: 10px; }
  .rlz-hero { padding: 20px; }
  .rlz-content { padding: 18px; }
  .rlz-choice-grid { gap: 10px; }
  .rlz-choice { padding: 12px; }
  .rlz-actions { display:grid; grid-template-columns: 1fr; gap: 10px; margin-top: 18px; }
  .rlz-actions > span:empty { display:none; }
  .rlz-button { width:100%; min-height: 50px; }
  .rlz-summary { font-size:.98rem; }
}

@media (max-width: 390px) {
  .rlz-hero { padding: 16px; }
  .rlz-content { padding: 15px; }
  .rlz-title { font-size: clamp(1.45rem, 9vw, 1.8rem); }
  .rlz-step-title { font-size: 1.25rem; }
  .rlz-input, .rlz-select, .rlz-textarea { padding: 11px 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .rlz-progress > span, .rlz-choice, .rlz-button { transition:none!important; }
  .rlz-choice:hover { transform:none; }
}

/* RLZ v0.15: Footer konsequent mittig */
.rlz-footer { text-align:center; }

/* RLZ v0.16: weitere Themes, zentrierter Footer und Accessibility-Leiste */
[data-theme="wanderreiten"]{--rlz-primary:#d47e4a;--rlz-primary-strong:#b96737;--rlz-accent:#fbeadf;--rlz-bg:#fbf4f0;--rlz-warning:#9a5b23;}
[data-theme="moor"]{--rlz-primary:#3f5d57;--rlz-primary-strong:#2e4641;--rlz-accent:#e3eee8;--rlz-bg:#f3f8f5;}
[data-theme="nordsee"]{--rlz-primary:#386f8f;--rlz-primary-strong:#28546d;--rlz-accent:#e2f0f7;--rlz-bg:#f3f9fc;}
[data-theme="rose"]{--rlz-primary:#9a596b;--rlz-primary-strong:#774253;--rlz-accent:#f3e2e7;--rlz-bg:#fbf6f8;}
[data-theme="nacht"]{--rlz-primary:#2f3446;--rlz-primary-strong:#202431;--rlz-accent:#e5e8f1;--rlz-bg:#f5f6fa;}
.rlz-shell>.rlz-footer, body.rlz-embedded .rlz-footer, .rlz-footer{text-align:center!important;display:block;width:100%;margin-left:auto!important;margin-right:auto!important;}
.rlz-start-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:1rem 0 1.2rem;}
.rlz-start-filter .rlz-choice{align-items:center;}
.rlz-section-separator{margin:1.4rem 0 .8rem;border:0;border-top:1px solid var(--rlz-border);}
.rlz-empty-hint{padding:1rem;border:1px dashed var(--rlz-border);border-radius:14px;background:rgba(255,255,255,.72);color:var(--rlz-muted);}
.rlz-accessibility-bar{display:flex;align-items:center;justify-content:center;gap:.45rem;flex-wrap:wrap;margin:14px auto 10px;padding:.45rem .75rem;}
.rlz-accessibility-bar button,.rlz-accessibility-bar a{border:1px solid var(--rlz-border);background:#fff;border-radius:999px;min-width:42px;min-height:38px;padding:.35rem .65rem;font:inherit;font-weight:800;color:var(--rlz-text);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;}
.rlz-accessibility-bar button:hover,.rlz-accessibility-bar button:focus,.rlz-accessibility-bar a:hover,.rlz-accessibility-bar a:focus{border-color:var(--rlz-primary);outline:3px solid color-mix(in srgb,var(--rlz-primary) 18%,transparent)}
body.rlz-font-large .rlz-card{font-size:1.08rem;} body.rlz-font-xlarge .rlz-card{font-size:1.16rem;} body.rlz-font-small .rlz-card{font-size:.94rem;}
body.rlz-contrast-bw{--rlz-bg:#fff!important;--rlz-card:#fff!important;--rlz-text:#000!important;--rlz-muted:#000!important;--rlz-primary:#000!important;--rlz-primary-strong:#000!important;--rlz-border:#000!important;--rlz-accent:#fff!important;--rlz-shadow:none!important;background:#fff!important;color:#000!important;}
body.rlz-contrast-bw .rlz-card,body.rlz-contrast-bw .rlz-choice,body.rlz-contrast-bw .rlz-alert,body.rlz-contrast-bw .rlz-input,body.rlz-contrast-bw .rlz-select,body.rlz-contrast-bw .rlz-textarea{border-color:#000!important;background:#fff!important;color:#000!important;}
body.rlz-contrast-bw .rlz-button.primary,body.rlz-contrast-bw .rlz-progress>span,body.rlz-contrast-bw .rlz-steps li.active{background:#000!important;color:#fff!important;}
@media(max-width:640px){.rlz-start-filter{grid-template-columns:1fr}.rlz-accessibility-bar{gap:.35rem}.rlz-accessibility-bar button,.rlz-accessibility-bar a{min-width:38px;min-height:36px;padding:.3rem .55rem}}


/* RLZ v0.19: mobile Schrittanzeige als kompakte Zahlenkreise */
.rlz-steps li{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:32px;}
.rlz-step-label{display:inline-block;}
@media (max-width: 520px){
  .rlz-steps{
    justify-content:center;
    gap:.45rem;
    overflow-x:visible;
    white-space:normal;
    padding:.2rem 0 .65rem;
    margin-bottom:.85rem;
    scrollbar-width:none;
  }
  .rlz-steps::-webkit-scrollbar{display:none;}
  .rlz-steps li{
    width:38px;
    height:38px;
    min-width:38px;
    min-height:38px;
    padding:0;
    border-radius:50%;
    font-size:0;
    line-height:1;
    box-shadow:0 2px 9px rgba(57,48,52,.06);
  }
  .rlz-steps li::before{
    content:attr(data-step);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:.98rem;
    font-weight:850;
    line-height:1;
  }
  .rlz-steps li.active{
    transform:translateY(-1px);
    box-shadow:0 7px 18px rgba(57,48,52,.16);
  }
  .rlz-steps li.done::before{opacity:.95;}
  .rlz-step-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
}
@media (max-width: 360px){
  .rlz-steps{gap:.32rem;}
  .rlz-steps li{width:34px;height:34px;min-width:34px;min-height:34px;}
  .rlz-steps li::before{font-size:.9rem;}
}


/* RLZ v0.20: optionale Weiterleitung nach erfolgreichem Absenden */
.rlz-redirect-notice{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.65rem;
  margin:1.1rem auto 0;
  padding:.72rem 1rem;
  border:1px solid var(--rlz-border);
  border-radius:999px;
  background:#fff;
  color:var(--rlz-text);
  font-weight:750;
  line-height:1.35;
  max-width:100%;
}
.rlz-redirect-spinner{
  width:20px;
  height:20px;
  border-radius:50%;
  border:3px solid color-mix(in srgb,var(--rlz-primary) 20%,transparent);
  border-top-color:var(--rlz-primary);
  animation:rlzRedirectSpin .8s linear infinite;
  flex:0 0 auto;
}
@keyframes rlzRedirectSpin{to{transform:rotate(360deg)}}
@media(max-width:520px){.rlz-redirect-notice{width:100%;border-radius:16px;padding:.85rem .9rem;}}
@media(prefers-reduced-motion:reduce){.rlz-redirect-spinner{animation:none;}}

/* RLZ v0.29: Formular-Kopf nutzt die verfügbare Breite besser */
.rlz-lead{max-width:min(100%,86ch);}
body.rlz-embedded .rlz-lead{max-width:min(100%,90ch);}

.rlz-name-group { border:1px solid rgba(58,67,53,.14); border-radius:12px; padding:14px; background:#fff; }
.rlz-name-group-title { font-weight:700; margin-bottom:10px; color:#2c3b2b; }
.rlz-name-group .rlz-field { margin-bottom:0; }

/* v66: Wartungs-/Nichtverfügbarkeits-Hinweis bei deaktiviertem Formular */
.rlz-maintenance-shell{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:2rem 1rem}.rlz-maintenance-card{width:min(760px,100%);padding:clamp(1.4rem,3vw,2.2rem);text-align:left}.rlz-maintenance-card h1{margin:.25rem 0 1rem}.rlz-richtext p{margin:.75rem 0}.rlz-richtext a{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* v74: moderner Hinweis bei überschrittener Eingabelänge */
.rlz-form-modal-backdrop{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(25,22,24,.38);backdrop-filter:blur(3px)}
.rlz-form-modal{width:min(440px,100%);position:relative;border:1px solid var(--rlz-border,#d8cec5);border-radius:20px;background:#fff;color:var(--rlz-text,#393034);box-shadow:0 20px 60px rgba(25,22,24,.22);padding:1.35rem 1.25rem 1.2rem;line-height:1.45}.rlz-form-modal h3{margin:.1rem 2rem .6rem 0}.rlz-form-modal p{margin:.55rem 0}.rlz-form-modal-close{position:absolute;top:.65rem;right:.72rem;width:34px;height:34px;border:1px solid var(--rlz-border,#d8cec5);border-radius:999px;background:#fff;color:inherit;font-size:1.25rem;font-weight:800;cursor:pointer}
@media(max-width:520px){.rlz-form-modal-backdrop{align-items:flex-end}.rlz-form-modal{border-radius:18px 18px 12px 12px}}

/* v79: Admin-Login-Footer Abstand. Login-Seite lädt vor der Admin-Session nur form.css. */
.rlz-admin-body.is-login .rlz-login-box + .rlz-admin-program-info,
.login-wrap .rlz-login-box + .rlz-admin-program-info{
  margin-top:2.25rem!important;
  padding-top:.35rem!important;
}
.rlz-admin-body.is-login .rlz-login-box form,
.login-wrap .rlz-login-box form{
  margin-bottom:0!important;
}
.rlz-admin-body.is-login .rlz-login-box .rlz-button,
.login-wrap .rlz-login-box .rlz-button{
  margin-bottom:0!important;
}

/* RLZ v0.85: Sticky-Schrittleiste im öffentlichen Formular */
.rlz-card{overflow:visible;}
.rlz-hero{border-radius:calc(var(--rlz-radius) - 1px) calc(var(--rlz-radius) - 1px) 0 0;overflow:hidden;}
.rlz-sticky-steps{
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--rlz-border);
  box-shadow:0 10px 22px rgba(57,48,52,.055);
  backdrop-filter:saturate(180%) blur(8px);
}
.rlz-sticky-steps .rlz-progress{height:7px;}
.rlz-sticky-steps .rlz-steps{
  margin:0;
  padding:.6rem clamp(18px,4vw,36px) .7rem;
  max-width:100%;
}
.rlz-content,.rlz-field,.rlz-step-title,.rlz-alert{scroll-margin-top:5.25rem;}
@media(max-width:680px){
  .rlz-sticky-steps .rlz-steps{padding:.55rem 18px .65rem;}
  .rlz-content,.rlz-field,.rlz-step-title,.rlz-alert{scroll-margin-top:4.75rem;}
}
@media(max-width:520px){
  .rlz-sticky-steps .rlz-steps{justify-content:center;margin:0;padding:.5rem 12px .62rem;}
}
body.rlz-contrast-bw .rlz-sticky-steps{background:#fff!important;border-color:#000!important;box-shadow:none!important;}


/* RLZ v0.86: Parent-Scroll-Assist für sticky Schritte bei vollhöhenangepasstem iFrame-Embed */
body.rlz-embedded .rlz-sticky-steps{will-change:transform;}
.rlz-sticky-steps.is-parent-stuck{box-shadow:0 12px 26px rgba(57,48,52,.075);}
@media (prefers-reduced-motion:reduce){body.rlz-embedded .rlz-sticky-steps{will-change:auto;}}


/* RLZ v0.88/v0.89: Robuster Sticky-Fallback fuer Direktbetrieb auf der public-Subdomain; v89 stabilisiert den Umschaltpunkt. */
.rlz-sticky-sentinel{height:0;line-height:0;font-size:0;}
.rlz-sticky-placeholder{height:0;}
.rlz-sticky-steps.is-standalone-fixed{
  position:fixed!important;
  top:0;
  left:var(--rlz-standalone-left,0);
  width:var(--rlz-standalone-width,100%);
  z-index:1000;
  border-left:1px solid var(--rlz-border);
  border-right:1px solid var(--rlz-border);
  border-radius:0 0 16px 16px;
  box-shadow:0 12px 28px rgba(57,48,52,.12);
}
body.rlz-contrast-bw .rlz-sticky-steps.is-standalone-fixed{border-color:#000!important;box-shadow:none!important;}
@media(max-width:680px){.rlz-sticky-steps.is-standalone-fixed{border-radius:0 0 14px 14px;}}
/* v89: keine Placeholder-Transition; stabile Hoehe verhindert Sticky-Grenzflackern. */
