/* =========================================================
   Einheitliches Kontaktformular – OMS v28
   Wird auf Startseite und /kontakt/ identisch verwendet.
   ========================================================= */
.oms-contact-form{
  --cf-surface:#ffffff;
  --cf-input:#ffffff;
  --cf-text:#2b384f;
  --cf-heading:#031944;
  --cf-muted:#667089;
  --cf-line:#dce5f1;
  --cf-placeholder:#8793a8;
  position:relative;
  display:grid;
  gap:18px;
  color:var(--cf-text);
}
.oms-contact-form *{box-sizing:border-box}
.oms-contact-form .oms-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.oms-contact-form .oms-field{display:grid;gap:7px;min-width:0}
.oms-contact-form .oms-field label,
.oms-contact-form .oms-checkbox-label{font-size:.92rem;font-weight:800;color:var(--cf-heading)}
.oms-contact-form .oms-optional{font-weight:600;color:var(--cf-muted)}
.oms-contact-form input,
.oms-contact-form select,
.oms-contact-form textarea{
  width:100%;min-width:0;border:1px solid var(--cf-line);border-radius:7px;
  background:var(--cf-input);color:var(--cf-text);font:inherit;line-height:1.45;
  padding:13px 14px;outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.oms-contact-form input::placeholder,
.oms-contact-form textarea::placeholder{color:var(--cf-placeholder);opacity:1}
.oms-contact-form select{
  appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231462e8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:18px;
}
.oms-contact-form textarea{min-height:150px;resize:vertical}
.oms-contact-form input:focus,
.oms-contact-form select:focus,
.oms-contact-form textarea:focus{border-color:#1462e8;box-shadow:0 0 0 4px rgba(20,98,232,.13)}
.oms-contact-form input:user-invalid,
.oms-contact-form select:user-invalid,
.oms-contact-form textarea:user-invalid{border-color:#c2410c}
.oms-contact-form .oms-checkbox{display:flex;align-items:flex-start;gap:11px;margin-top:1px}
.oms-contact-form .oms-checkbox input{width:19px;height:19px;min-width:19px;margin-top:3px;padding:0;accent-color:#1462e8}
.oms-contact-form .oms-checkbox-label{font-weight:600;line-height:1.55;color:var(--cf-muted)}
.oms-contact-form .oms-checkbox-label a{color:#1462e8;text-decoration:underline;text-underline-offset:3px;font-weight:800}
.oms-contact-form .oms-form-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.oms-contact-form .oms-form-note{font-size:.84rem;color:var(--cf-muted);font-weight:600;max-width:46ch;margin:0}
.oms-contact-form .oms-submit{min-width:180px;justify-content:center}
.oms-contact-form .oms-submit[disabled]{opacity:.65;cursor:wait;transform:none}
.oms-contact-form .oms-form-status{padding:14px 16px;border:1px solid transparent;border-radius:7px;font-weight:800;line-height:1.5}
.oms-contact-form .oms-form-status[hidden]{display:none!important}
.oms-contact-form .oms-form-success{background:#ecfdf3;border-color:#a7f3d0;color:#166534}
.oms-contact-form .oms-form-error{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.oms-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}

/* Startseite: Formular sitzt im ausklappbaren dunklen Kontaktbereich. */
.contact .form-panel-inner{background:var(--cf-surface,#fff)}
.contact .oms-contact-form{padding:26px 30px 32px;border-top:1px solid rgba(140,180,255,.16)}

/* Eigene Kontaktseite: Karte und Formular ohne doppelte Innenrahmen. */
.contact-form-card .oms-contact-form{padding-top:4px}

html[data-theme="dark"] .oms-contact-form{
  --cf-surface:#0b1832;--cf-input:#0c1730;--cf-text:#dbe7fb;--cf-heading:#ffffff;
  --cf-muted:#a8bad9;--cf-line:#253759;--cf-placeholder:#8195b8;
}
html[data-theme="dark"] .oms-contact-form select option{color:#031944;background:#fff}
html[data-theme="dark"] .oms-contact-form .oms-form-success{background:#0b2b22;border-color:#1f6f55;color:#c6f6df}
html[data-theme="dark"] .oms-contact-form .oms-form-error{background:#352013;border-color:#8b4a1f;color:#fed7aa}

@media(max-width:680px){
  .oms-contact-form .oms-form-row{grid-template-columns:1fr}
  .oms-contact-form .oms-form-footer{align-items:stretch;flex-direction:column}
  .oms-contact-form .oms-submit{width:100%}
  .contact .oms-contact-form{padding:22px 20px 26px}
}

/* Kontaktseiten-Layout ebenfalls zentralisiert, damit die Seite nicht von
   älteren gecachten Formularregeln in premium.css abhängig ist. */
.contact-page-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:28px;align-items:start}
.contact-info-card,.contact-form-card{min-width:0;background:#fff;border:1px solid var(--line);box-shadow:var(--sh-sm);padding:30px}
.contact-info-card{position:sticky;top:94px}
.contact-info-card h2,.contact-form-card h2{font-size:clamp(1.55rem,3vw,2.15rem);margin:10px 0 14px}
.contact-points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:14px}
.contact-points li{display:flex;gap:12px;align-items:flex-start;font-weight:700;color:var(--text)}
.contact-points .ic{color:var(--blue);margin-top:.25em}
html[data-theme="dark"] .contact-info-card,
html[data-theme="dark"] .contact-form-card{background:var(--card);border-color:var(--line)}
@media(max-width:860px){.contact-page-grid{grid-template-columns:1fr}.contact-info-card{position:static}}
@media(max-width:560px){.contact-info-card,.contact-form-card{padding:22px}}
html[data-theme="dark"] .contact .form-panel-inner{background:#0b1832}
