/*
 * Tierheim Formulare v0.3.4
 * Frontend-Layout bewusst an die ZMS-Formulare angelehnt:
 * kompakte Karten, klare Typografie, feine Linien, einheitliche Buttons,
 * viel Weißraum ohne übergroße Leerflächen.
 */
.thf-app{
  --thf-bg:#f7f6f2;
  --thf-card:#fff;
  --thf-text:#232323;
  --thf-muted:#6c6c6c;
  --thf-line:#dedbd2;
  --thf-accent:#ff9919;
  --thf-accent-dark:#a85f00;
  --thf-accent-soft:#fff2df;
  --thf-on-accent:#fff;
  --thf-danger:#a33131;
  --thf-theme-font-family:inherit;
  --thf-heading-font-family:var(--thf-theme-font-family);
  --thf-theme-font-size:inherit;
  --thf-theme-line-height:1.5;
  max-width:740px;
  margin:24px auto;
  color:var(--thf-text);
  font-family:var(--thf-theme-font-family);
  font-size:var(--thf-theme-font-size);
  line-height:var(--thf-theme-line-height);
}
.thf-card{
  background:var(--thf-card);
  border:1px solid var(--thf-line);
  border-radius:18px;
  padding:clamp(24px,3.2vw,38px);
  box-shadow:0 10px 30px rgba(0,0,0,.05);
}
.thf-brand{display:flex;align-items:center;min-height:54px;margin-bottom:22px}
.thf-brand img{display:block;max-width:150px;max-height:74px;width:auto;height:auto;object-fit:contain;margin:0}
.thf-progress{height:6px;background:color-mix(in srgb,var(--thf-text) 12%,var(--thf-card));border-radius:999px;overflow:hidden;margin:0 4px 6px}
.thf-progress i{display:block;height:100%;width:0;background:var(--thf-accent);transition:width .25s ease}
.thf-progress-label{text-align:right;font-size:.78em;color:var(--thf-muted);margin:0 4px 10px}
.thf-step[hidden],.thf-success[hidden],.thf-app [hidden]{display:none!important}
.thf-step{min-height:190px}
.thf-eyebrow{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.72em;font-weight:700;color:var(--thf-accent-dark);margin:0 0 12px}
.thf-step h2,.thf-success h2{font-family:var(--thf-heading-font-family);font-size:clamp(1.7em,3vw,2.15em);line-height:1.16;margin:0 0 16px;color:var(--thf-text)}
.thf-step>p:not(.thf-hint),.thf-success>p{margin:0 0 14px;line-height:1.5}

/* ZMS-ähnliche Formularfelder: feine Unterlinie statt großer Eingabeboxen. */
.thf-step label:not(.thf-check):not(.thf-choice){display:block;min-width:0;font-size:.9em;font-weight:700;color:var(--thf-muted);margin:0 0 14px}
.thf-step input[type=text],
.thf-step input[type=email],
.thf-step input[type=tel],
.thf-step input[type=date],
.thf-step input[type=number]{
  width:100%;box-sizing:border-box;font:inherit;font-size:1.08em;color:var(--thf-text);
  background:transparent;border:0;border-bottom:2px solid var(--thf-line);border-radius:0;
  padding:10px 4px 9px;margin-top:4px;outline:none;
}
.thf-step input:focus{border-bottom-color:var(--thf-accent)}
.thf-step select{
  width:100%;box-sizing:border-box;min-height:42px;padding:7px 10px;margin-top:5px;
  border:1px solid var(--thf-line);border-radius:10px;background:var(--thf-card);font:inherit;font-size:.98em;color:var(--thf-text);outline:none;
}
.thf-step select:focus{border-color:var(--thf-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--thf-accent) 16%,transparent)}
.thf-step textarea{
  width:100%;box-sizing:border-box;min-height:170px;padding:14px;margin-top:6px;resize:vertical;
  border:1px solid var(--thf-line);border-radius:12px;background:color-mix(in srgb,var(--thf-card) 94%,var(--thf-text) 6%);color:var(--thf-text);font:inherit;font-size:1em;line-height:1.55;outline:none;
}
.thf-step textarea:focus{border-color:var(--thf-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--thf-accent) 14%,transparent)}

.thf-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:4px 0 4px}
.thf-grid2 label{min-width:0}
.thf-hint{font-size:.88em!important;color:var(--thf-muted);margin:8px 0 0!important;line-height:1.45}
.thf-actions{display:flex;justify-content:flex-start;align-items:center;gap:10px;flex-wrap:wrap;margin-top:20px}
.thf-btn{
  appearance:none;border:0;border-radius:999px;min-height:44px;min-width:112px;padding:0 20px;
  font:inherit;font-size:.94em;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;
  transition:transform .12s ease,opacity .12s ease,background .12s ease;
}
.thf-btn:hover{transform:translateY(-1px)}
.thf-btn:disabled{opacity:.5;cursor:wait;transform:none}
.thf-btn.primary{background:var(--thf-accent-dark);color:var(--thf-on-accent)}
.thf-btn.secondary{background:color-mix(in srgb,var(--thf-text) 7%,var(--thf-card));color:var(--thf-text)}
.thf-btn.small{min-height:40px;min-width:0;padding:0 16px;font-size:.86em}

.thf-check{display:flex;gap:12px;align-items:flex-start;margin:14px 0;line-height:1.45;font-size:.92em}
.thf-check input{width:20px;height:20px;margin:2px 0 0;flex:0 0 auto;accent-color:var(--thf-accent-dark)}
.thf-check a{color:var(--thf-accent-dark);font-weight:700}
.thf-error{color:var(--thf-danger);font-weight:700;font-size:.9em;min-height:22px;margin-top:10px}
.thf-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}

/* Sicherheitsfrage analog zu ZMS, aber kompakter. */
.thf-human{display:grid;grid-template-columns:auto auto minmax(90px,145px);align-items:center;gap:12px;padding:14px 16px;margin:16px 0;background:color-mix(in srgb,var(--thf-text) 5%,var(--thf-card));border-radius:14px}
.thf-human span{color:var(--thf-muted);font-size:.88em}
.thf-human strong{font-size:1.15em;white-space:nowrap}
.thf-human input{margin:0!important;background:var(--thf-card)!important;border:1px solid var(--thf-line)!important;border-radius:9px!important;padding:9px 10px!important}

/* Auswahlkarten / Patenschaften. */
.thf-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 18px}
.thf-choice{padding:16px;border:1px solid var(--thf-line);border-radius:13px;background:var(--thf-card);display:flex;gap:10px;align-items:center;cursor:pointer;font:inherit;font-size:1em;font-weight:700;color:var(--thf-text)}
.thf-choice:has(input:checked){border-color:var(--thf-accent);background:var(--thf-accent-soft)}
.thf-choice input{margin:0;accent-color:var(--thf-accent-dark)}
.thf-amounts{display:flex;gap:9px;flex-wrap:wrap;margin:8px 0 16px}
.thf-amount{appearance:none;border:1px solid var(--thf-line);background:var(--thf-card);border-radius:999px;min-height:42px;padding:0 16px;font:inherit;font-weight:700;cursor:pointer;color:var(--thf-text)}
.thf-amount.active{border-color:var(--thf-accent);background:var(--thf-accent-soft)}

/* Automatisch ermittelte Bankdaten - bewusst präsent wie beim ZMS-Plugin. */
.thf-bank{margin:16px 0 14px;padding:22px;border:1px solid var(--thf-line);border-radius:14px;background:color-mix(in srgb,var(--thf-text) 4%,var(--thf-card));display:grid;gap:7px}
.thf-bank>strong{display:block;font-size:1.44em;line-height:1.25;color:var(--thf-text);font-weight:800}
.thf-bank>span{display:block;font-size:.94em;line-height:1.35;color:var(--thf-muted)}
.thf-bank dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0 0}
.thf-bank dl>div{background:var(--thf-card);border:1px solid var(--thf-line);border-radius:10px;padding:14px 15px}
.thf-bank dt{font-size:.69em;text-transform:uppercase;letter-spacing:.07em;color:var(--thf-muted);font-weight:700;margin-bottom:6px}
.thf-bank dd{margin:0;font-size:1em;line-height:1.35;font-weight:800;color:var(--thf-text);overflow-wrap:anywhere}

/* Bilder / Vermisstenmeldung */
.thf-upload{border:2px dashed var(--thf-accent);background:var(--thf-accent-soft);border-radius:15px;padding:22px;text-align:center;display:grid;place-items:center;gap:8px;cursor:pointer;margin-top:10px}
.thf-upload strong{font-size:1.08em}.thf-upload span{color:var(--thf-muted)}.thf-upload small{color:var(--thf-muted);line-height:1.45}
.thf-image-global{margin:13px 0;padding:13px 15px;background:var(--thf-accent-soft);border-radius:11px}.thf-image-global strong,.thf-image-global span{display:block}.thf-image-global span{font-size:.83em;color:var(--thf-muted);margin-top:3px}
.thf-image-list{display:grid;gap:9px;margin-top:12px}.thf-image-item{display:grid;grid-template-columns:54px 1fr auto;gap:10px;align-items:center;border:1px solid var(--thf-line);border-radius:12px;padding:9px}.thf-image-thumb{width:54px;height:54px;border-radius:9px;object-fit:cover;background:#eee}.thf-image-info strong{display:block;font-size:.88em;overflow-wrap:anywhere}.thf-image-meta{font-size:.78em;color:var(--thf-muted);margin-top:2px}.thf-image-progress{height:5px;background:var(--thf-line);border-radius:99px;overflow:hidden;margin-top:6px}.thf-image-progress i{display:block;width:15%;height:100%;background:var(--thf-accent);transition:width .25s}.thf-image-remove{border:0;background:color-mix(in srgb,var(--thf-text) 8%,var(--thf-card));width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1.125em;color:var(--thf-text)}

/* Erfolg */
.thf-success{text-align:left}.thf-success-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#e9f7ec;color:#197a32;font-size:1.75em;font-weight:900;margin-bottom:14px}
.thf-countdown{display:flex;align-items:center;gap:14px;padding:14px 16px;margin:18px 0;background:color-mix(in srgb,var(--thf-text) 5%,var(--thf-card));border-radius:14px}.thf-countdown b{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--thf-accent-dark);color:var(--thf-on-accent);font-size:1.2em;flex:0 0 auto}.thf-countdown span{color:var(--thf-muted)}

.thf-unavailable{padding:24px;border:1px solid var(--thf-line);border-radius:14px}

/* Shortcode-Buttons: vollständig eigenständig, kein Divi/Page-Builder nötig. */
.thf-button-fallback{
  display:inline-block!important;margin:6px 8px 6px 0!important;padding:0!important;
  border:0!important;background:transparent!important;line-height:1!important;
}
.thf-shortcode-button{
  -webkit-appearance:none!important;appearance:none!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-height:46px!important;min-width:190px!important;box-sizing:border-box!important;
  padding:12px 28px!important;margin:0!important;
  border:0!important;border-radius:12px!important;
  background:#262626!important;color:#fff!important;
  font-family:inherit!important;font-size:.94em!important;font-weight:800!important;
  line-height:1.1!important;letter-spacing:.01em!important;text-decoration:none!important;
  text-align:center!important;cursor:pointer!important;
  box-shadow:0 8px 18px rgba(0,0,0,.13)!important;
  transition:background .16s ease,transform .16s ease,box-shadow .16s ease!important;
}
.thf-shortcode-button:hover,
.thf-shortcode-button:focus-visible{
  background:#111!important;color:#fff!important;text-decoration:none!important;
  transform:translateY(-1px)!important;box-shadow:0 10px 22px rgba(0,0,0,.18)!important;
}
.thf-shortcode-button:focus-visible{
  outline:3px solid color-mix(in srgb,var(--thf-accent,#ff9919) 45%,transparent)!important;
  outline-offset:3px!important;
}
.thf-button-unavailable{display:inline-block;padding:11px 18px;border-radius:10px;background:#eee;color:#777;font-weight:700}


/* Lightbox / Popup – kompakt, klar und im Stil der Online-Formulare. */
.thf-modal[hidden]{display:none!important}
.thf-modal{
  position:fixed;inset:0;z-index:999999;display:grid;place-items:center;
  padding:24px;
}
.thf-modal-backdrop{
  position:absolute;inset:0;background:rgba(18,18,18,.70);
  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
}
.thf-modal-panel{
  position:relative;z-index:1;width:min(900px,calc(100vw - 48px));
  max-height:calc(100vh - 48px);overflow:auto;
  background:#fff;border:1px solid #dedbd2;border-radius:20px;
  box-shadow:0 28px 80px rgba(0,0,0,.32);
  overscroll-behavior:contain;
}
.thf-modal-panel .thf-app{margin:0 auto;max-width:820px;padding:18px 22px 24px}
.thf-modal-panel .thf-card{box-shadow:none;border:0;padding-top:22px}
.thf-modal-close{
  position:sticky;top:12px;z-index:5;float:right;margin:12px 12px 0 0;
  width:42px;height:42px;display:inline-grid;place-items:center;
  border-radius:50%;border:1px solid #dedbd2;background:#fff;color:#232323;
  font-family:Arial,sans-serif;font-size:28px;font-weight:400;line-height:1;cursor:pointer;
  box-shadow:0 5px 16px rgba(0,0,0,.12);
}
.thf-modal-close:hover,.thf-modal-close:focus-visible{background:#f4f2ed;outline:none}
body.thf-modal-open{overflow:hidden}
@media(max-width:620px){
  .thf-app{margin:12px auto}.thf-card{padding:22px 18px;border-radius:15px}.thf-brand{margin-bottom:18px}.thf-brand img{max-width:132px;max-height:66px}.thf-step{min-height:0}.thf-grid2,.thf-choice-grid,.thf-bank dl{grid-template-columns:1fr;gap:10px}.thf-step h2,.thf-success h2{font-size:1.72em}.thf-actions{margin-top:18px}.thf-btn{min-height:44px;min-width:104px;padding:0 18px}.thf-human{grid-template-columns:1fr;gap:8px}.thf-bank{padding:18px}.thf-bank>strong{font-size:1.31em}.thf-button-fallback{display:block!important;width:100%!important;margin:6px 0!important}.thf-shortcode-button{width:100%!important;min-width:0!important}.thf-modal{padding:0}.thf-modal-panel{width:100%;max-width:none;max-height:100vh;border-radius:0;border-left:0;border-right:0}.thf-modal-panel .thf-app{padding:10px}.thf-modal-panel .thf-card{padding:22px 18px}.thf-modal-close{top:8px;margin:8px 8px 0 0}.thf-image-item{grid-template-columns:48px 1fr auto}.thf-image-thumb{width:48px;height:48px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.thf-btn,.thf-progress i,.thf-image-progress i{transition:none!important}}

/* v0.2.1 – Theme-Vererbung
 * Die Basiswerte werden bei aktivierter Vererbung in forms.js aus dem umgebenden
 * WordPress-/Divi-Theme ermittelt und als CSS-Variablen auf .thf-app gesetzt.
 * Alle Schriftgrößen sind deshalb relativ zur Theme-Grundschriftgröße definiert.
 */

/* v0.3.6 – einheitlicher Wizard, fest eingebettete Logos, robuste Theme-Normalisierung */
.thf-app{
  max-width:820px!important;
  margin:18px auto!important;
}
.thf-card{
  padding:clamp(24px,3vw,34px)!important;
  border-radius:18px!important;
}
.thf-brand{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  min-height:72px!important;
  margin:0 0 22px!important;
  padding:0 2px 16px!important;
  border-bottom:1px solid color-mix(in srgb,var(--thf-line) 72%,transparent)!important;
}
.thf-brand-main{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:230px!important;
  max-height:92px!important;
  object-fit:contain!important;
  margin:0!important;
}
.thf-brand-badge{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:78px!important;
  max-height:78px!important;
  object-fit:contain!important;
  margin:0!important;
  flex:0 0 auto!important;
}
.thf-progress{margin:0 0 5px!important;height:5px!important}
.thf-progress-label{margin:0 0 18px!important;font-size:.78em!important}
.thf-step{min-height:0!important;padding:2px 0 0!important}
.thf-eyebrow{margin:0 0 8px!important;font-size:.7em!important}
.thf-step h2,.thf-success h2{
  font-size:clamp(1.65em,2.6vw,2.05em)!important;
  line-height:1.18!important;
  margin:0 0 14px!important;
  letter-spacing:-.015em!important;
}
.thf-step>p:not(.thf-hint),.thf-success>p{
  margin:0 0 18px!important;
  max-width:68ch!important;
  line-height:1.52!important;
}
.thf-grid2{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:20px 24px!important;
  margin:4px 0 8px!important;
  width:100%!important;
}
.thf-grid2>label{min-width:0!important;width:100%!important;max-width:none!important}
.thf-step label:not(.thf-check):not(.thf-choice){
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
  margin:0 0 16px!important;
  font-size:.9em!important;
  font-weight:700!important;
}
.thf-step input[type=text],
.thf-step input[type=email],
.thf-step input[type=tel],
.thf-step input[type=date],
.thf-step input[type=number],
.thf-step select,
.thf-step textarea{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
  font-family:inherit!important;
  color:var(--thf-text)!important;
}
.thf-step input[type=text],
.thf-step input[type=email],
.thf-step input[type=tel],
.thf-step input[type=date],
.thf-step input[type=number]{
  display:block!important;
  min-height:46px!important;
  font-size:1.03em!important;
  padding:10px 4px 8px!important;
  margin:4px 0 0!important;
  background:transparent!important;
  border:0!important;
  border-bottom:2px solid var(--thf-line)!important;
  border-radius:0!important;
  box-shadow:none!important;
  outline:none!important;
}
.thf-step input:focus{border-bottom-color:var(--thf-accent)!important;box-shadow:none!important}
.thf-step select{
  display:block!important;
  min-height:46px!important;
  padding:8px 12px!important;
  margin:5px 0 0!important;
  border:1px solid var(--thf-line)!important;
  border-radius:10px!important;
  background:var(--thf-card)!important;
  font-size:.98em!important;
}
.thf-step textarea{
  display:block!important;
  min-height:150px!important;
  padding:13px 14px!important;
  margin:6px 0 0!important;
  border:1px solid var(--thf-line)!important;
  border-radius:12px!important;
  background:color-mix(in srgb,var(--thf-card) 96%,var(--thf-text) 4%)!important;
  font-size:1em!important;
  line-height:1.5!important;
}
.thf-actions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:12px!important;
  flex-wrap:wrap!important;
  width:100%!important;
  margin:26px 0 0!important;
}
.thf-actions .thf-btn.secondary{margin-right:auto!important}
.thf-btn{
  min-height:46px!important;
  min-width:124px!important;
  padding:0 22px!important;
  border-radius:999px!important;
  font-size:.92em!important;
  font-weight:750!important;
}
.thf-btn.primary{background:var(--thf-accent-dark)!important;color:var(--thf-on-accent)!important}
.thf-btn.secondary{background:color-mix(in srgb,var(--thf-text) 7%,var(--thf-card))!important;color:var(--thf-text)!important}
.thf-human{margin:18px 0 8px!important;padding:16px 18px!important}
.thf-bank{margin:18px 0 10px!important;padding:20px!important}
.thf-choice-grid{gap:12px!important;margin:10px 0 16px!important}
.thf-choice{padding:14px 15px!important}
.thf-success{padding:2px 0 0!important}
.thf-countdown{margin:18px 0!important}

.thf-modal-panel{
  width:min(920px,calc(100vw - 42px))!important;
  max-height:calc(100vh - 42px)!important;
}
.thf-modal-panel .thf-app{
  max-width:840px!important;
  padding:16px 20px 22px!important;
}
.thf-modal-panel .thf-card{padding:26px 30px 30px!important}

@media(max-width:700px){
  .thf-grid2,.thf-choice-grid,.thf-bank dl{grid-template-columns:1fr!important;gap:8px!important}
  .thf-brand{min-height:58px!important;margin-bottom:18px!important;padding-bottom:13px!important}
  .thf-brand-main{max-width:180px!important;max-height:74px!important}
  .thf-brand-badge{max-width:60px!important;max-height:60px!important}
  .thf-card{padding:22px 18px!important}
  .thf-actions{margin-top:20px!important}
  .thf-btn{min-width:108px!important;padding:0 18px!important}
  .thf-modal-panel .thf-card{padding:22px 18px!important}
}
@media(max-width:430px){
  .thf-brand-main{max-width:150px!important}
  .thf-brand-badge{max-width:52px!important;max-height:52px!important}
  .thf-actions{gap:8px!important}
  .thf-btn{min-width:0!important}
}

/* v0.3.7 – einladender Wizard: größere Felder, Labels oben, weiche Animationen,
 * runde Eingaben und Primärbuttons im Orange des Vereinslogos. */
.thf-app{
  --thf-logo-orange:#ff9919;
  --thf-logo-orange-hover:#e78600;
  --thf-field-bg:#ffffff;
  --thf-field-border:#d9d4cc;
  --thf-field-border-hover:#c6beb4;
  --thf-field-shadow:0 1px 2px rgba(32,28,22,.03);
}

.thf-step{
  position:relative!important;
}
.thf-step.is-active,
.thf-success:not([hidden]){
  animation:thf-step-in .28s cubic-bezier(.22,.75,.28,1) both;
}
@keyframes thf-step-in{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}

.thf-step h2,.thf-success h2{
  margin-bottom:10px!important;
}
.thf-step>p:not(.thf-hint),.thf-success>p{
  color:var(--thf-muted)!important;
  margin-bottom:22px!important;
}

/* Feldbeschriftung immer deutlich oberhalb des Feldes. */
.thf-step label:not(.thf-check):not(.thf-choice){
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:8px!important;
  margin:0 0 18px!important;
  color:var(--thf-text)!important;
  font-size:.91em!important;
  font-weight:750!important;
  line-height:1.25!important;
}
.thf-grid2{
  gap:18px 24px!important;
  margin:8px 0 2px!important;
}

/* Große, freundliche Eingabefelder. */
.thf-step input[type=text],
.thf-step input[type=email],
.thf-step input[type=tel],
.thf-step input[type=date],
.thf-step input[type=number],
.thf-step select,
.thf-step textarea{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
  background:var(--thf-field-bg)!important;
  border:1.5px solid var(--thf-field-border)!important;
  border-radius:13px!important;
  color:var(--thf-text)!important;
  font-family:inherit!important;
  box-shadow:var(--thf-field-shadow)!important;
  outline:none!important;
  transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease!important;
}
.thf-step input[type=text],
.thf-step input[type=email],
.thf-step input[type=tel],
.thf-step input[type=date],
.thf-step input[type=number],
.thf-step select{
  min-height:52px!important;
  padding:12px 15px!important;
  margin:0!important;
  font-size:1.04em!important;
  line-height:1.25!important;
}
.thf-step select{
  padding-right:40px!important;
}
.thf-step textarea{
  min-height:160px!important;
  padding:14px 15px!important;
  margin:0!important;
  font-size:1em!important;
  line-height:1.5!important;
  resize:vertical!important;
}
.thf-step input:hover,
.thf-step select:hover,
.thf-step textarea:hover{
  border-color:var(--thf-field-border-hover)!important;
}
.thf-step input:focus,
.thf-step select:focus,
.thf-step textarea:focus{
  border-color:var(--thf-logo-orange)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--thf-logo-orange) 18%,transparent)!important;
  background:#fff!important;
}
.thf-step input[aria-invalid="true"]{
  border-color:var(--thf-danger)!important;
}
.thf-step input::placeholder,
.thf-step textarea::placeholder{
  color:color-mix(in srgb,var(--thf-text) 42%,transparent)!important;
  opacity:1!important;
}

/* PLZ-/Ort-Auswahl bewusst kompakt, aber im gleichen Feldstil. */
.thf-step [data-city-select]{
  min-height:50px!important;
}

/* Primäre Aktionen klar in der Markenfarbe. */
.thf-actions{
  margin-top:24px!important;
  padding-top:2px!important;
}
.thf-btn{
  min-height:48px!important;
  min-width:126px!important;
  padding:0 24px!important;
  border-radius:14px!important;
  font-size:.94em!important;
  font-weight:800!important;
  letter-spacing:.005em!important;
  box-shadow:none!important;
  transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease,opacity .15s ease!important;
}
.thf-btn.primary{
  background:var(--thf-logo-orange)!important;
  color:#1f1b16!important;
  box-shadow:0 5px 14px rgba(255,153,25,.20)!important;
}
.thf-btn.primary:hover,
.thf-btn.primary:focus-visible{
  background:var(--thf-logo-orange-hover)!important;
  transform:translateY(-1px)!important;
  box-shadow:0 8px 18px rgba(255,153,25,.26)!important;
  outline:none!important;
}
.thf-btn.secondary{
  background:#efede9!important;
  color:var(--thf-text)!important;
  border:1px solid transparent!important;
}
.thf-btn.secondary:hover,
.thf-btn.secondary:focus-visible{
  background:#e5e1dc!important;
  transform:translateY(-1px)!important;
  outline:none!important;
}
.thf-btn:active{transform:translateY(0)!important}
.thf-btn.small{min-height:42px!important;border-radius:12px!important;padding:0 16px!important}

/* Markenorange auch bei Fortschritt und interaktiven Auswahlzuständen. */
.thf-progress i,
.thf-image-progress i{background:var(--thf-logo-orange)!important}
.thf-check input,
.thf-choice input{accent-color:var(--thf-logo-orange)!important}
.thf-check a{color:#b96500!important}
.thf-choice:has(input:checked){border-color:var(--thf-logo-orange)!important;background:#fff6ea!important}
.thf-amount.active{border-color:var(--thf-logo-orange)!important;background:#fff6ea!important}

/* Sicherheitsfrage ebenfalls wie ein normales modernes Eingabefeld. */
.thf-human{
  grid-template-columns:auto auto minmax(110px,150px)!important;
  gap:14px!important;
  padding:16px 18px!important;
  border:1px solid var(--thf-line)!important;
  background:#faf9f7!important;
  border-radius:14px!important;
}
.thf-human input{
  min-height:48px!important;
  margin:0!important;
  padding:10px 13px!important;
  border:1.5px solid var(--thf-field-border)!important;
  border-radius:11px!important;
  background:#fff!important;
}
.thf-human input:focus{
  border-color:var(--thf-logo-orange)!important;
  box-shadow:0 0 0 3px rgba(255,153,25,.16)!important;
}

/* Bank- und Upload-Karten in das gleiche weiche Raster integrieren. */
.thf-bank,
.thf-upload,
.thf-image-global,
.thf-countdown{
  border-radius:16px!important;
}
.thf-upload{
  border-color:var(--thf-logo-orange)!important;
  background:#fff8ef!important;
}

/* Lightbox: etwas kompakter und mehr Raum für die Felder. */
.thf-modal-panel .thf-app{max-width:860px!important}
.thf-modal-panel .thf-card{padding:28px 32px 32px!important}

@media(max-width:700px){
  .thf-grid2{grid-template-columns:1fr!important;gap:0!important}
  .thf-step label:not(.thf-check):not(.thf-choice){margin-bottom:16px!important}
  .thf-step input[type=text],
  .thf-step input[type=email],
  .thf-step input[type=tel],
  .thf-step input[type=date],
  .thf-step input[type=number],
  .thf-step select{min-height:50px!important}
  .thf-actions{gap:10px!important;margin-top:20px!important}
  .thf-btn{min-width:108px!important;min-height:46px!important;padding:0 19px!important;border-radius:13px!important}
  .thf-human{grid-template-columns:1fr!important}
}

@media(prefers-reduced-motion:reduce){
  .thf-step.is-active,.thf-success:not([hidden]){animation:none!important}
}


/* v0.3.8 – finales Tierheim-UI: soft, smooth, professionell und freundlich.
 * Gilt durchgängig für Kontakt, Mitgliedschaft, Patenschaft, Vermisstenmeldung,
 * Lightboxen und alle Button-Shortcodes. */
.thf-app{
  --thf-logo-orange:#ff9919;
  --thf-logo-orange-hover:#e78600;
  --thf-logo-orange-soft:#fff5e8;
  --thf-logo-orange-softer:#fffaf3;
  --thf-warm-bg:#faf8f4;
  --thf-warm-card:#fffdfa;
  --thf-warm-line:#eadfce;
  --thf-warm-line-strong:#ddc9ae;
  --thf-soft-text:#29241f;
  --thf-soft-muted:#746b62;
  --thf-field-bg:#fffdfa;
  --thf-field-border:#e4d7c6;
  --thf-field-border-hover:#d8c3a7;
  --thf-text:var(--thf-soft-text);
  --thf-muted:var(--thf-soft-muted);
  --thf-line:var(--thf-warm-line);
}

.thf-card{
  background:linear-gradient(180deg,#fff 0%,var(--thf-warm-card) 100%)!important;
  border-color:var(--thf-warm-line)!important;
  box-shadow:0 18px 46px rgba(70,53,31,.075)!important;
}

.thf-brand{
  border-bottom-color:var(--thf-warm-line)!important;
}
.thf-brand-main{
  filter:none!important;
}
.thf-brand-badge{
  opacity:.95!important;
}

.thf-progress{
  height:6px!important;
  background:#eee9e2!important;
  box-shadow:inset 0 1px 2px rgba(60,44,24,.05)!important;
}
.thf-progress i{
  background:linear-gradient(90deg,#ffad42 0%,var(--thf-logo-orange) 100%)!important;
  transition:width .4s cubic-bezier(.22,.75,.28,1)!important;
}
.thf-progress-label{
  color:#91877d!important;
  font-size:.78em!important;
}

.thf-step h2,.thf-success h2{
  color:var(--thf-soft-text)!important;
  font-weight:650!important;
  letter-spacing:-.025em!important;
}
.thf-step>p:not(.thf-hint),.thf-success>p{
  color:var(--thf-soft-muted)!important;
}
.thf-eyebrow{
  color:#b76800!important;
}

/* Labels klar oberhalb; Pflichtstern weich orange statt hart rot. */
.thf-step label:not(.thf-check):not(.thf-choice){
  gap:9px!important;
  margin-bottom:19px!important;
  color:#3a342e!important;
  font-size:.92em!important;
  font-weight:720!important;
}

/* Einheitliche große, weiche Felder. */
.thf-step input[type=text],
.thf-step input[type=email],
.thf-step input[type=tel],
.thf-step input[type=date],
.thf-step input[type=number],
.thf-step select,
.thf-step textarea{
  background:var(--thf-field-bg)!important;
  border:1.5px solid var(--thf-field-border)!important;
  border-radius:15px!important;
  box-shadow:0 2px 8px rgba(74,55,30,.035)!important;
  color:var(--thf-soft-text)!important;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease,transform .18s ease!important;
}
.thf-step input[type=text],
.thf-step input[type=email],
.thf-step input[type=tel],
.thf-step input[type=date],
.thf-step input[type=number],
.thf-step select{
  min-height:56px!important;
  padding:13px 16px!important;
  font-size:1.04em!important;
}
.thf-step textarea{
  min-height:170px!important;
  padding:15px 16px!important;
  line-height:1.55!important;
}
.thf-step input:hover,
.thf-step select:hover,
.thf-step textarea:hover{
  border-color:var(--thf-field-border-hover)!important;
  background:#fff!important;
}
.thf-step input:focus,
.thf-step select:focus,
.thf-step textarea:focus{
  border-color:var(--thf-logo-orange)!important;
  box-shadow:0 0 0 4px rgba(255,153,25,.13),0 7px 18px rgba(74,55,30,.06)!important;
  background:#fff!important;
  transform:translateY(-1px)!important;
}
.thf-step input[aria-invalid="true"],
.thf-step select[aria-invalid="true"],
.thf-step textarea[aria-invalid="true"]{
  border-color:#c55f54!important;
  box-shadow:0 0 0 3px rgba(197,95,84,.10)!important;
}

/* Mehr Luft zwischen logisch zusammengehörigen Feldgruppen. */
.thf-grid2{
  gap:20px 24px!important;
  margin:8px 0 3px!important;
}
.thf-hint{
  color:#8d8276!important;
  margin-top:-5px!important;
  margin-bottom:13px!important;
}

/* Checkboxen und Links freundlich in CI. */
.thf-check{
  padding:11px 13px!important;
  border-radius:12px!important;
  background:var(--thf-logo-orange-softer)!important;
  color:#4c443c!important;
}
.thf-check input{
  accent-color:var(--thf-logo-orange)!important;
}
.thf-check a{
  color:#a95d00!important;
  text-decoration-thickness:1px!important;
  text-underline-offset:2px!important;
}

/* Auswahlkarten: weich statt technisch. */
.thf-choice-grid{
  gap:13px!important;
}
.thf-choice{
  min-height:58px!important;
  border-color:var(--thf-warm-line)!important;
  border-radius:15px!important;
  background:#fff!important;
  box-shadow:0 2px 8px rgba(74,55,30,.03)!important;
  transition:border-color .18s ease,background-color .18s ease,transform .18s ease,box-shadow .18s ease!important;
}
.thf-choice:hover{
  border-color:var(--thf-warm-line-strong)!important;
  transform:translateY(-1px)!important;
}
.thf-choice:has(input:checked){
  border-color:var(--thf-logo-orange)!important;
  background:var(--thf-logo-orange-soft)!important;
  box-shadow:0 0 0 3px rgba(255,153,25,.08)!important;
}
.thf-amount{
  min-height:46px!important;
  border-radius:12px!important;
  border-color:var(--thf-warm-line)!important;
}
.thf-amount.active{
  border-color:var(--thf-logo-orange)!important;
  background:var(--thf-logo-orange-soft)!important;
}

/* Bankdaten, Sicherheitsfrage, Upload, Countdown: gleiche weiche Formensprache. */
.thf-bank,
.thf-human,
.thf-upload,
.thf-image-global,
.thf-countdown{
  border:1px solid var(--thf-warm-line)!important;
  border-radius:17px!important;
  background:var(--thf-warm-bg)!important;
  box-shadow:0 4px 14px rgba(74,55,30,.035)!important;
}
.thf-bank{
  padding:22px!important;
}
.thf-bank dl>div{
  border-color:var(--thf-warm-line)!important;
  border-radius:13px!important;
  background:#fff!important;
}
.thf-human{
  padding:17px 18px!important;
}
.thf-human input{
  min-height:52px!important;
  border-radius:13px!important;
}
.thf-upload{
  padding:26px!important;
  border:2px dashed #efad57!important;
  background:linear-gradient(180deg,#fffaf4 0%,#fff5e7 100%)!important;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease!important;
}
.thf-upload:hover,
.thf-upload:focus-within{
  border-color:var(--thf-logo-orange)!important;
  box-shadow:0 0 0 4px rgba(255,153,25,.09)!important;
  transform:translateY(-1px)!important;
}
.thf-image-item{
  border-color:var(--thf-warm-line)!important;
  border-radius:14px!important;
  background:#fff!important;
}

/* Primärbutton überall Logo-Orange; sekundär warm-neutral. */
.thf-btn{
  min-height:50px!important;
  min-width:128px!important;
  padding:0 24px!important;
  border-radius:14px!important;
  font-weight:800!important;
}
.thf-btn.primary{
  background:linear-gradient(180deg,#ffa32a 0%,var(--thf-logo-orange) 100%)!important;
  color:#2a1b08!important;
  box-shadow:0 7px 16px rgba(255,153,25,.22)!important;
}
.thf-btn.primary:hover,
.thf-btn.primary:focus-visible{
  background:linear-gradient(180deg,#f69a1d 0%,var(--thf-logo-orange-hover) 100%)!important;
  box-shadow:0 10px 22px rgba(232,134,0,.27)!important;
  transform:translateY(-2px)!important;
}
.thf-btn.secondary{
  background:#f1eee9!important;
  color:#37312b!important;
  border:1px solid #ebe5dc!important;
}
.thf-btn.secondary:hover,
.thf-btn.secondary:focus-visible{
  background:#e9e4dd!important;
  border-color:#ded5ca!important;
  transform:translateY(-1px)!important;
}

/* Shortcode-Buttons ausdrücklich in den Farben des Vereinslogos. */
.thf-shortcode-button{
  min-height:50px!important;
  min-width:196px!important;
  padding:13px 26px!important;
  border-radius:14px!important;
  background:linear-gradient(180deg,#ffa32a 0%,var(--thf-logo-orange,#ff9919) 100%)!important;
  color:#2a1b08!important;
  box-shadow:0 7px 18px rgba(255,153,25,.24)!important;
  font-weight:800!important;
}
.thf-shortcode-button:hover,
.thf-shortcode-button:focus-visible{
  background:linear-gradient(180deg,#f69a1d 0%,#e78600 100%)!important;
  color:#211507!important;
  box-shadow:0 10px 24px rgba(232,134,0,.28)!important;
  transform:translateY(-2px)!important;
}
.thf-shortcode-button:focus-visible{
  outline:3px solid rgba(255,153,25,.25)!important;
  outline-offset:3px!important;
}

/* Lightbox selbst warm, weich und professionell. */
.thf-modal-backdrop{
  background:rgba(36,30,24,.68)!important;
  -webkit-backdrop-filter:blur(6px)!important;
  backdrop-filter:blur(6px)!important;
}
.thf-modal-panel{
  background:var(--thf-warm-card,#fffdfa)!important;
  border-color:#eadfce!important;
  border-radius:22px!important;
  box-shadow:0 32px 90px rgba(29,23,17,.34)!important;
}
.thf-modal-close{
  width:42px!important;
  height:42px!important;
  border-color:#e6ddd2!important;
  background:#fffdfa!important;
  color:#3d352d!important;
  box-shadow:0 6px 18px rgba(43,33,22,.10)!important;
  transition:background .16s ease,transform .16s ease,box-shadow .16s ease!important;
}
.thf-modal-close:hover,.thf-modal-close:focus-visible{
  background:#fff4e6!important;
  color:#9d5700!important;
  transform:rotate(3deg) scale(1.03)!important;
  box-shadow:0 8px 20px rgba(43,33,22,.13)!important;
}

/* Erfolg ebenfalls im gleichen Design. */
.thf-success-icon{
  background:#fff1dc!important;
  color:#a85f00!important;
  box-shadow:0 0 0 5px rgba(255,153,25,.09)!important;
}
.thf-countdown b{
  background:var(--thf-logo-orange)!important;
  color:#2a1b08!important;
}

/* Sanfte Bewegung bei Schrittwechseln; respektiert Reduced Motion. */
.thf-step.is-active,
.thf-success:not([hidden]){
  animation:thf-soft-step-in .34s cubic-bezier(.22,.78,.25,1) both!important;
}
@keyframes thf-soft-step-in{
  from{opacity:0;transform:translateY(10px) scale(.995)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

@media(max-width:700px){
  .thf-card{border-radius:17px!important}
  .thf-step input[type=text],
  .thf-step input[type=email],
  .thf-step input[type=tel],
  .thf-step input[type=date],
  .thf-step input[type=number],
  .thf-step select{min-height:54px!important}
  .thf-step textarea{min-height:150px!important}
  .thf-btn{min-height:48px!important;border-radius:13px!important}
  .thf-shortcode-button{width:100%!important;min-width:0!important}
}
@media(prefers-reduced-motion:reduce){
  .thf-step.is-active,.thf-success:not([hidden]){animation:none!important}
  .thf-step input,.thf-step select,.thf-step textarea,.thf-btn,.thf-choice,.thf-upload,.thf-shortcode-button{transition:none!important}
}


/* v0.3.9 – konsequente Feld-Normalisierung für ALLE Formulare.
 * Wichtig: input ohne explizites type-Attribut ist im Browser zwar text,
 * wird von CSS-Selektoren input[type=text] aber nicht erfasst. Deshalb
 * werden sowohl implizite als auch explizite Textfelder hier gemeinsam behandelt. */
.thf-app .thf-step input:not([type]),
.thf-app .thf-step input[type="text"],
.thf-app .thf-step input[type="email"],
.thf-app .thf-step input[type="tel"],
.thf-app .thf-step input[type="date"],
.thf-app .thf-step input[type="number"],
.thf-app .thf-step select,
.thf-app .thf-step textarea{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
  background:#fffdfa!important;
  border:1.5px solid #e4d7c6!important;
  border-radius:15px!important;
  color:#29241f!important;
  font:inherit!important;
  box-shadow:0 2px 8px rgba(74,55,30,.035)!important;
  outline:none!important;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease,transform .18s ease!important;
}
.thf-app .thf-step input:not([type]),
.thf-app .thf-step input[type="text"],
.thf-app .thf-step input[type="email"],
.thf-app .thf-step input[type="tel"],
.thf-app .thf-step input[type="date"],
.thf-app .thf-step input[type="number"],
.thf-app .thf-step select{
  min-height:56px!important;
  padding:13px 16px!important;
  margin:0!important;
  font-size:1.04em!important;
  line-height:1.25!important;
}
.thf-app .thf-step textarea{
  min-height:170px!important;
  padding:15px 16px!important;
  margin:0!important;
  line-height:1.55!important;
  resize:vertical!important;
}
.thf-app .thf-step input:not([type]):hover,
.thf-app .thf-step input[type="text"]:hover,
.thf-app .thf-step input[type="email"]:hover,
.thf-app .thf-step input[type="tel"]:hover,
.thf-app .thf-step input[type="date"]:hover,
.thf-app .thf-step input[type="number"]:hover,
.thf-app .thf-step select:hover,
.thf-app .thf-step textarea:hover{border-color:#d8c3a7!important;background:#fff!important}
.thf-app .thf-step input:not([type]):focus,
.thf-app .thf-step input[type="text"]:focus,
.thf-app .thf-step input[type="email"]:focus,
.thf-app .thf-step input[type="tel"]:focus,
.thf-app .thf-step input[type="date"]:focus,
.thf-app .thf-step input[type="number"]:focus,
.thf-app .thf-step select:focus,
.thf-app .thf-step textarea:focus{
  border-color:#ff9919!important;
  box-shadow:0 0 0 4px rgba(255,153,25,.13),0 7px 18px rgba(74,55,30,.06)!important;
  background:#fff!important;
  transform:translateY(-1px)!important;
}
.thf-app .thf-step label:not(.thf-check):not(.thf-choice){
  display:flex!important;flex-direction:column!important;gap:9px!important;
  width:100%!important;max-width:none!important;min-width:0!important;
  margin:0 0 19px!important;color:#3a342e!important;font-weight:720!important;line-height:1.25!important;
}
.thf-app .thf-grid2{align-items:start!important}
.thf-app .thf-human input[type="number"]{min-height:52px!important;border-radius:13px!important;background:#fff!important}
.thf-app .thf-btn.primary,
.thf-app .thf-shortcode-button{
  background:linear-gradient(180deg,#ffa32a 0%,#ff9919 100%)!important;
  color:#2a1b08!important;
  border:1px solid rgba(203,112,0,.12)!important;
}
.thf-app .thf-btn.primary:hover,
.thf-app .thf-btn.primary:focus-visible,
.thf-shortcode-button:hover,
.thf-shortcode-button:focus-visible{
  background:linear-gradient(180deg,#f69a1d 0%,#e78600 100%)!important;
}


/* Frontend-Debug (nur mit serverseitig geprüftem Administrator-Testtoken) */
.thf-debug-box{display:block;margin:14px 0 0;padding:14px 16px;max-width:100%;overflow:auto;white-space:pre-wrap;word-break:break-word;border:1px solid #d8c7b0;border-radius:12px;background:#fff9f1;color:#3a3128;font:500 12px/1.55 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;text-align:left;}

/* v0.5.0 – verständliche Feldvalidierung */
.thf-app .thf-invalid,.thf-app [aria-invalid="true"]{border-color:#c64b3c!important;background:#fff8f6!important;box-shadow:0 0 0 3px rgba(198,75,60,.10)!important}
.thf-app .thf-field-error{display:block;margin-top:6px;color:#a83d31;font-size:.82em;font-weight:650;line-height:1.35}
.thf-app .thf-has-error>span:not(.thf-field-error){color:inherit}.thf-app .thf-error:not(:empty){margin:10px 0;padding:10px 12px;border-radius:10px;background:#fff5f2;color:#99382e;border:1px solid rgba(198,75,60,.2);font-weight:600}
