/* Kontakt v36: ruhige Zweiteilung, bewusst unabhängig von älteren Kontakt-Regeln. */
.contact-page-v36{overflow:hidden !important;}
.contact-page-v36 .page-grid{grid-template-rows:auto minmax(0,1fr);min-height:0;}
.contact-main-card{height:100%;min-height:0;display:grid !important;grid-template-columns:minmax(0,46%) minmax(0,54%);padding:0 !important;overflow:hidden !important;}
.contact-details-pane,.contact-form-pane{min-width:0;min-height:0;padding:28px 34px;}
.contact-details-pane{border-right:1px solid var(--line);display:flex;flex-direction:column;}
.contact-form-pane{display:flex;flex-direction:column;overflow-y:auto;scrollbar-gutter:stable;}
.contact-pane-head{flex:0 0 auto;margin-bottom:15px;}
.contact-pane-head h2{margin:0 0 7px;font-family:Georgia,"Times New Roman",serif;font-size:31px;line-height:1.08;font-weight:600;color:var(--ink);}
.contact-pane-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.5;max-width:640px;}
.contact-details-list{display:flex;flex-direction:column;min-height:0;}
.contact-detail-row{display:grid;grid-template-columns:145px minmax(0,1fr);gap:22px;padding:15px 0;border-top:1px solid var(--line);}
.contact-detail-row:first-child{border-top:0;padding-top:7px;}
.contact-detail-row h3{margin:0;color:var(--ink);font-size:15px;line-height:1.35;font-weight:800;}
.contact-detail-content{min-width:0;}
.contact-detail-content p{margin:0 0 4px;color:var(--muted);font-size:13px;line-height:1.42;}
.contact-detail-content strong{color:var(--ink);font-weight:700;}
.contact-detail-content a{color:var(--green);text-decoration:underline;text-decoration-color:rgba(195,136,42,.75);text-underline-offset:2px;overflow-wrap:anywhere;}
.contact-person-gap{margin-top:8px !important;}
.contact-separator{color:#b8ad9d;margin:0 3px;}

.contact-status{flex:0 0 auto;margin:0 0 11px;padding:10px 12px;border-radius:8px;font-size:11px;line-height:1.35;display:flex;gap:6px;align-items:baseline;}
.contact-status--success{color:#285f3d;border:1px solid #b9d9c4;background:#edf7f0;}
.contact-status--error{color:#812c2c;border:1px solid #e4b8b8;background:#fff1f1;}
.contact-status--config{color:#735900;border:1px solid #ead59a;background:#fff8e3;}

.contact-form-v36{display:grid;grid-template-columns:1fr 1fr;gap:11px 13px;align-content:start;}
.form-field{display:grid;gap:5px;min-width:0;align-content:start;}
.form-wide{grid-column:1/-1;}
.form-field label{font-size:11px;font-weight:800;color:var(--ink);}
.form-field label span{font-size:9px;font-weight:400;color:var(--muted);}
.form-field input,.form-field select,.form-field textarea{width:100%;min-width:0;border:1px solid #d5ccbf;border-radius:8px;background:#fbfaf7;color:var(--ink);font:inherit;font-size:13px;outline:none;}
.form-field input,.form-field select{height:42px;padding:8px 10px;}
.form-field textarea{height:118px;min-height:95px;max-height:155px;padding:10px;resize:vertical;line-height:1.45;}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(18,63,56,.09);background:#fff;}
.field-error{color:#9d2f2f;font-size:9px;line-height:1.25;}
.contact-privacy-v36{display:grid;grid-template-columns:17px minmax(0,1fr);gap:8px;align-items:start;color:var(--muted);font-size:10px;line-height:1.4;font-weight:400;}
.contact-privacy-v36 input{width:15px;height:15px;margin:1px 0 0;}
.contact-privacy-v36 a{color:var(--green);text-decoration:underline;text-underline-offset:2px;}
.contact-submit-v36{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:2px;}
.contact-submit-v36 small{color:var(--muted);font-size:9.5px;}
.contact-submit-v36 .send{min-height:42px;flex:0 0 auto;}
.contact-submit-v36 .send:disabled{opacity:.45;cursor:not-allowed;}
.contact-honeypot{position:absolute !important;left:-10000px !important;width:1px !important;height:1px !important;overflow:hidden !important;}

@media (min-width:1181px) and (max-height:820px){
  .contact-details-pane,.contact-form-pane{padding:20px 28px;}
  .contact-pane-head{margin-bottom:10px;}
  .contact-pane-head h2{font-size:28px;}
  .contact-detail-row{padding:10px 0;}
  .contact-detail-content p{font-size:12px;line-height:1.35;}
  .contact-form-v36{gap:8px 12px;}
  .form-field input,.form-field select{height:38px;}
  .form-field textarea{height:86px;min-height:75px;}
}

@media (max-width:1180px){
  .contact-page-v36{overflow:visible !important;}
  .contact-main-card{height:auto;grid-template-columns:1fr;overflow:visible !important;}
  .contact-details-pane{border-right:0;border-bottom:1px solid var(--line);}
  .contact-form-pane{overflow:visible;}
}

@media (max-width:720px){
  .contact-details-pane,.contact-form-pane{padding:20px;}
  .contact-detail-row{grid-template-columns:1fr;gap:5px;padding:14px 0;}
  .contact-form-v36{grid-template-columns:1fr;}
  .form-wide{grid-column:auto;}
  .contact-submit-v36{align-items:stretch;flex-direction:column;}
  .contact-submit-v36 .send{width:100%;}
}


/* v37 – Sicherheitsprüfung */
.contact-captcha-block{padding-top:2px}
.local-captcha-row{display:grid;grid-template-columns:minmax(130px,auto) 110px 42px;gap:8px;align-items:center}
.local-captcha-question{display:flex;align-items:center;justify-content:center;height:44px;padding:0 14px;border:1px solid #d7cfc1;border-radius:8px;background:#f4f0e7;color:#123f38;font-size:17px;font-weight:800;letter-spacing:.04em}
.local-captcha-row input{height:44px!important;text-align:center;font-size:17px!important;font-weight:700}
.captcha-refresh{height:44px;border:1px solid #d7cfc1;border-radius:8px;background:#fff;color:#123f38;font-size:20px;cursor:pointer}
.captcha-refresh:hover{background:#f5f2ea}
.contact-captcha-block small,.contact-captcha-note{display:block;margin-top:5px;color:#66756f;font-size:10px;line-height:1.35}
.g-recaptcha{margin-top:3px}
@media(max-width:650px){.local-captcha-row{grid-template-columns:1fr 92px 42px}.local-captcha-question{font-size:15px}}


/* =========================================================
   v41 – Versandstatus als Overlay
   ========================================================= */

/*
 * Erfolg und Versandfehler dürfen das Formular nicht mehr verschieben.
 * Die Konfigurationsmeldung bleibt bewusst als normaler Inline-Hinweis.
 */
.contact-status--success,
.contact-status--error{
  position:fixed !important;
  top:96px;
  left:50%;
  z-index:5000;
  width:min(720px,calc(100vw - 36px));
  margin:0 !important;
  padding:14px 48px 14px 16px !important;
  transform:translateX(-50%);
  box-shadow:
    0 18px 42px rgba(15,45,39,.18),
    0 2px 8px rgba(15,45,39,.08);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  animation:contactStatusIn .22s ease-out both;
}

.contact-status--success{
  background:rgba(237,247,240,.98) !important;
}

.contact-status--error{
  background:rgba(255,241,241,.98) !important;
}

.contact-status-dismiss{
  position:absolute;
  top:50%;
  right:10px;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  padding:0;
  transform:translateY(-50%);
  border:0;
  border-radius:50%;
  background:transparent;
  color:currentColor;
  font:inherit;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}

.contact-status-dismiss:hover,
.contact-status-dismiss:focus-visible{
  background:rgba(0,0,0,.07);
  outline:none;
}

.contact-status--success.is-closing,
.contact-status--error.is-closing{
  animation:contactStatusOut .18s ease-in both;
  pointer-events:none;
}

@keyframes contactStatusIn{
  from{
    opacity:0;
    transform:translate(-50%,-12px);
  }
  to{
    opacity:1;
    transform:translate(-50%,0);
  }
}

@keyframes contactStatusOut{
  from{
    opacity:1;
    transform:translate(-50%,0);
  }
  to{
    opacity:0;
    transform:translate(-50%,-10px);
  }
}

@media(max-width:720px){
  .contact-status--success,
  .contact-status--error{
    top:74px;
    width:calc(100vw - 20px);
    padding:12px 44px 12px 13px !important;
    font-size:10.5px;
    align-items:flex-start;
    flex-direction:column;
    gap:2px;
  }
}

@media(prefers-reduced-motion:reduce){
  .contact-status--success,
  .contact-status--error,
  .contact-status--success.is-closing,
  .contact-status--error.is-closing{
    animation:none;
  }
}


/* =========================================================
   v42 – Datenschutz-Pflichtfeld und Fehlermeldung
   ========================================================= */

.contact-v35-privacy .required-marker{
  color:#8f1f1f;
  font-weight:800;
}

.contact-v35-privacy .field-error{
  display:block;
  margin-top:4px;
  color:#b42323;
  line-height:1.35;
}
