html.zo-contact-open,html.zo-contact-open body{overflow:hidden}
.zo-contact-modal[hidden]{display:none!important}.zo-contact-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:22px}.zo-contact-modal__backdrop{position:absolute;inset:0;background:rgba(6,8,7,.76);backdrop-filter:blur(5px);opacity:1;transition:opacity .72s cubic-bezier(.22,.61,.36,1),backdrop-filter .72s cubic-bezier(.22,.61,.36,1)}
.zo-contact-modal__dialog{
  /* Das Kontaktmodal ist absichtlich hell – unabhängig vom globalen Dark-Mode. */
  --color-surface:#fff;
  --color-text:#111;
  --color-border:#cfd3cc;
  color-scheme:light;
  position:relative;
  width:min(760px,100%);
  max-height:min(90vh,900px);
  overflow:auto;
  border-radius:18px;
  background:#f7f4ec;
  color:#111;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 28px 80px rgba(0,0,0,.36);
  opacity:1;
  transform:translateY(0) scale(1);
  transition:opacity .64s cubic-bezier(.22,.61,.36,1),transform .72s cubic-bezier(.22,.61,.36,1)
}
.zo-contact-modal.is-closing{pointer-events:none}.zo-contact-modal.is-closing .zo-contact-modal__backdrop{opacity:0;backdrop-filter:blur(0)}.zo-contact-modal.is-closing .zo-contact-modal__dialog{opacity:0;transform:translateY(14px) scale(.99)}
.zo-contact-modal__head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 28px 22px;background:#090b0a;color:#fff;border-bottom:3px solid var(--color-primary,#aede27)}
.zo-contact-modal__kicker{display:block;margin-bottom:5px;color:var(--color-primary,#aede27);font-size:12px;font-weight:850;letter-spacing:.11em}.zo-contact-modal__head h2{margin:0;font-size:clamp(28px,4vw,40px);line-height:1.05;letter-spacing:-.035em}.zo-contact-modal__head p{margin:9px 0 0;color:#d2d5d1;font-size:15px;line-height:1.5}
.zo-contact-modal__close{flex:0 0 auto;width:50px;height:50px;border:1px solid #5d645f;border-radius:13px;background:#111512;color:#fff;font-size:32px;line-height:1;cursor:pointer}.zo-contact-modal__close:hover,.zo-contact-modal__close:focus-visible{border-color:var(--color-primary,#aede27);outline:3px solid rgba(174,222,39,.3);outline-offset:2px}
.zo-contact-modal__form{padding:26px 28px 28px}
.zo-contact-modal__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.zo-field{display:grid;gap:7px}
.zo-field>span{font-weight:800;font-size:15px;color:#333a35}
.zo-contact-modal .zo-field input,
.zo-contact-modal .zo-field textarea{
  width:100%;
  box-sizing:border-box;
  border:1px solid #cfd3cc!important;
  border-radius:11px;
  background:#fff!important;
  color:#111!important;
  -webkit-text-fill-color:#111;
  caret-color:#111;
  font:inherit;
  font-size:17px;
  line-height:1.4;
  padding:13px 14px;
  transition:border-color .15s,box-shadow .15s
}
.zo-contact-modal .zo-field textarea{resize:vertical;min-height:150px}
.zo-contact-modal .zo-field input:focus,
.zo-contact-modal .zo-field textarea:focus{
  border-color:#79bd32!important;
  box-shadow:0 0 0 3px rgba(121,189,50,.18);
  outline:none
}
.zo-contact-modal .zo-field [aria-invalid="true"]{
  border-color:#b32d2e!important;
  box-shadow:0 0 0 3px rgba(179,45,46,.12)
}
.zo-contact-modal .zo-field input:-webkit-autofill,
.zo-contact-modal .zo-field input:-webkit-autofill:hover,
.zo-contact-modal .zo-field input:-webkit-autofill:focus{
  -webkit-text-fill-color:#111!important;
  caret-color:#111;
  box-shadow:0 0 0 1000px #fff inset!important;
  -webkit-box-shadow:0 0 0 1000px #fff inset!important
}
.zo-field--message{margin-top:18px}
.zo-contact-modal__privacy{display:flex;align-items:flex-start;gap:10px;margin-top:18px;padding:14px 15px;border:1px solid #d8dccf;border-radius:12px;background:#fff;font-size:13px;line-height:1.5;color:#4f5651}
.zo-contact-modal__privacy input{
  width:18px;
  height:18px;
  margin-top:2px;
  accent-color:#79bd32;
  background-color:#fff!important;
  color-scheme:light
}
.zo-contact-modal__privacy a{color:#345f16;font-weight:750}
.zo-contact-modal__trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.zo-contact-modal__status{margin-top:17px;padding:13px 15px;border-radius:11px;font-weight:750;line-height:1.45}.zo-contact-modal__status[data-state="success"]{background:#eaf6d8;color:#315e14}.zo-contact-modal__status[data-state="error"]{background:#fde9e7;color:#982b24}.zo-contact-modal__status[data-state="sending"]{background:#f1f2ee;color:#4b514d}
.zo-contact-modal__actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px;padding-top:20px;border-top:1px solid #d9d8d1}.zo-contact-modal__hint{max-width:340px;color:#626762;font-size:13px;line-height:1.45}.zo-contact-modal__buttons{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
/* Dialog-Buttons bewusst mit festen Kontrastfarben: Der Dialog bleibt hell,
   auch wenn die Website im Dark-Mode läuft. So kann color-scheme keine
   native Button-Schrift auf weiß/transparent umschalten. */
.zo-contact-modal__buttons .btn{
  min-height:48px;
  justify-content:center;
  -webkit-appearance:none;
  appearance:none;
  opacity:1;
}
.zo-contact-modal__buttons .btn-outline{
  border-color:#343a36;
  background:#fff;
  color:#171a18;
}
.zo-contact-modal__buttons .btn-outline:hover,
.zo-contact-modal__buttons .btn-outline:focus-visible{
  border-color:#171a18;
  background:#f0eee7;
  color:#0a0b0a;
}
.zo-contact-modal__buttons .btn-primary{
  border-color:var(--color-primary,#aede27);
  background:var(--color-primary,#aede27);
  color:#182006;
}
.zo-contact-modal__buttons .btn-primary:hover,
.zo-contact-modal__buttons .btn-primary:focus-visible{
  background:var(--color-primary-hover,#9bca20);
  color:#111706;
}
.zo-contact-modal__buttons .btn-primary:disabled{
  opacity:.62;
  cursor:wait;
}
@media(max-width:700px){.zo-contact-modal{padding:0;place-items:stretch}.zo-contact-modal__dialog{width:100%;height:100dvh;max-height:none;border-radius:0}.zo-contact-modal__head{padding:19px 18px 17px}.zo-contact-modal__head p{font-size:14px}.zo-contact-modal__close{width:46px;height:46px}.zo-contact-modal__form{padding:20px 18px 26px}.zo-contact-modal__grid{grid-template-columns:1fr;gap:14px}.zo-contact-modal__actions{align-items:stretch;flex-direction:column}.zo-contact-modal__hint{max-width:none}.zo-contact-modal__buttons{display:grid;grid-template-columns:1fr 1fr;width:100%}.zo-contact-modal__buttons .btn{width:100%}}
@media(max-width:420px){.zo-contact-modal__buttons{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.zo-contact-modal__backdrop{backdrop-filter:none;transition:none}.zo-contact-modal__dialog{transition:none}}
