.ksq-contact-page,
.ksq-contact-page *{box-sizing:border-box}
.ksq-contact-page{max-width:1140px;margin:0 auto;padding:0 0 104px;color:#312c27}
.ksq-contact-hero{padding:50px 0 30px;text-align:center}
.ksq-contact-hero h1{margin:0 0 10px;font-size:clamp(1.85rem,3vw,2.45rem);line-height:1.15;color:#312c27}
.ksq-contact-hero p{max-width:980px;margin:0 auto;font-size:1rem;line-height:1.6;color:#655d56}
.ksq-contact-team{margin-top:16px}
.ksq-contact-form-section{margin-top:38px}
.ksq-contact-section-head{text-align:center;margin-bottom:21px}
.ksq-contact-section-head h2{margin:0 0 9px;font-size:clamp(1.5rem,3vw,2rem);line-height:1.2;color:#312c27}
.ksq-contact-section-head p{max-width:820px;margin:0 auto;color:#655d56;line-height:1.7}
.ksq-contact-team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}






.ksq-contact-card{background:#F7F5F1;border:1px solid #DEDAD3;border-radius:22px;box-shadow:0 10px 28px rgba(34,26,19,.06);padding:clamp(28px,5vw,58px)!important;display:flex;flex-direction:column;height:100%;overflow:hidden}
.ksq-contact-card-image-wrap{display:flex;justify-content:center;align-items:center;width:182px;height:182px;margin:0 auto 18px;border-radius:50%;overflow:hidden;background:transparent;flex:0 0 auto}
.ksq-contact-card-image{display:block;width:100%;height:100%;object-fit:cover;max-width:none;margin:0}
.ksq-contact-card-image--zoom{width:106%;height:106%;flex:0 0 106%;max-width:none}
.ksq-contact-card-body{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;min-width:0}
.ksq-contact-card h3{margin:0 0 5px;font-size:1.32rem;line-height:1.25;color:#312c27}
.ksq-contact-card-meta{width:100%;min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}
.ksq-contact-card-role{display:flex;align-items:flex-start;justify-content:center;margin:0;font-weight:600;line-height:1.45;color:#5c5550;text-align:center}
.ksq-contact-card-focus-slot{display:flex;align-items:center;justify-content:center;margin-top:8px}
.ksq-contact-card-focus{display:inline-block;padding:5px 10px;border-radius:999px;background:#fdf1f2;color:#c01824;font-weight:700;font-size:.92rem;line-height:1.25}
.ksq-contact-card-text{position:relative;width:100%;min-height:6.2em;display:flex;align-items:flex-end;justify-content:center;margin:0;color:#6d655f;line-height:1.62;font-size:.96rem;text-align:center}
.ksq-contact-card-text>span{display:block}
.ksq-contact-card-phone{position:absolute;top:-2px;left:0;right:0;display:block;margin:0 auto;color:#5c5550!important;text-decoration:none!important;font-size:.9rem;font-weight:700;line-height:1.3;white-space:nowrap}
.ksq-contact-card-phone:hover{color:#c01824!important;text-decoration:none!important}
.ksq-contact-card-email{display:flex;align-items:center;justify-content:center;width:calc(100% + 28px);min-height:42px;margin-top:18px;margin-left:-14px;margin-right:-14px;margin-bottom:-1px;padding:10px 8px;border-radius:12px;background:#c01824;color:#fff!important;text-decoration:none!important;font-weight:700;font-size:.79rem;line-height:1.2;letter-spacing:-.015em;white-space:nowrap;box-shadow:0 7px 16px rgba(192,24,36,.14);transition:background .18s ease,transform .15s ease}
.ksq-contact-card-email:hover{background:#a5121d;color:#fff!important;text-decoration:none!important;transform:translateY(-1px)}
.ksq-contact-general-strip{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;margin:38px 0 0;padding:16px 22px;border:1px solid #eaded6;border-radius:18px;background:#fff;color:#615951;text-align:center;line-height:1.55;box-shadow:0 8px 22px rgba(34,26,19,.045)}
.ksq-contact-general-strip a{color:#c01824;text-decoration:none;font-weight:700;white-space:nowrap}
.ksq-contact-general-strip a:hover{text-decoration:underline;text-underline-offset:2px}
.ksq-contact-form-section{background:#faf7f4;border:1px solid #ede3dc;border-radius:26px;padding:30px}
.ksq-contact-message{margin:0 auto 18px;padding:16px 18px;border-radius:16px;max-width:900px;line-height:1.6}
.ksq-contact-message ul{margin:10px 0 0 20px}
.ksq-contact-message-success{background:#f3faf5;border:1px solid #bfd9c3;color:#23452b}
.ksq-contact-message-error{background:#fff4f4;border:1px solid #edc3c3;color:#7a2222}
.ksq-contact-form{width:100%;max-width:900px;margin:0 auto;padding:0;border:0}
.ksq-contact-grid{display:grid;width:100%;gap:18px;margin:0 0 18px;align-items:start}
.ksq-contact-grid-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.ksq-contact-field{display:flex;flex-direction:column;gap:8px;min-width:0;width:100%;margin:0}
.ksq-contact-message-field{margin-top:0}
.ksq-contact-field label,.ksq-contact-interest-label{font-weight:600;color:#312c27;line-height:1.4}
.ksq-contact-field label span{font-weight:400;color:#7d746d}
.ksq-contact-page .ksq-contact-field input,
.ksq-contact-page .ksq-contact-field textarea{box-sizing:border-box!important;display:block!important;width:100%!important;max-width:none!important;min-width:0!important;margin:0!important;padding:14px 16px!important;border:1px solid #d8ccc4!important;border-radius:14px!important;background:#fff!important;color:#312c27!important;font:inherit!important;line-height:1.35!important;float:none!important;position:static!important;transform:none!important;transition:border-color .2s ease,box-shadow .2s ease}
.ksq-contact-page .ksq-contact-field input{height:auto!important;min-height:50px!important}
.ksq-contact-page .ksq-contact-field textarea{min-height:150px!important;resize:vertical!important}
.ksq-contact-page .ksq-contact-field input:focus,
.ksq-contact-page .ksq-contact-field textarea:focus{outline:none!important;border-color:#c01824!important;box-shadow:0 0 0 3px rgba(192,24,36,.12)!important}
.ksq-contact-interest{width:100%;margin:0 0 18px;padding:0;border:0;background:transparent}
.ksq-contact-interest-label{margin:0 0 8px;text-align:left}
.ksq-contact-choice-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.ksq-contact-choice{position:relative;display:block;min-width:0;margin:0;cursor:pointer}
.ksq-contact-choice input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.ksq-contact-choice span{display:flex;align-items:center;justify-content:center;min-height:48px;padding:10px 14px;border:1px solid #dfd4cd;border-radius:14px;background:#faf7f4;color:#524b45;font-weight:600;text-align:center;line-height:1.3;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,color .18s ease}
.ksq-contact-choice input:checked+span{border-color:#c01824;background:#fff2f3;color:#a8141e;box-shadow:0 0 0 1px #c01824}
.ksq-contact-choice input:focus-visible+span{outline:3px solid rgba(192,24,36,.2);outline-offset:2px}
.ksq-contact-checkbox{display:flex;align-items:flex-start;gap:10px;margin:16px 0;color:#5f5a55;line-height:1.55}
.ksq-contact-checkbox input{flex:0 0 auto;margin:4px 0 0}
.ksq-contact-checkbox a{color:#c01824;text-decoration:underline;text-underline-offset:2px}
.ksq-contact-phone-consent-wrap[hidden]{display:none!important}
.ksq-contact-phone-consent-wrap{margin:16px 0}
.ksq-contact-phone-consent-wrap .ksq-contact-phone-consent{margin:0;padding:0;border-radius:12px;transition:background .18s ease,border-color .18s ease,padding .18s ease}
.ksq-contact-phone-consent-wrap.is-error .ksq-contact-phone-consent{padding:10px 12px;border:1px solid #d9535f;background:#fff4f4;color:#7a2222}
.ksq-contact-phone-consent-wrap.is-error input{accent-color:#c01824}
.ksq-contact-inline-error{margin:7px 0 0 34px;color:#b11420;font-size:.9rem;line-height:1.45;font-weight:600}
.ksq-contact-inline-error[hidden]{display:none!important}
.ksq-contact-required-note{margin:18px 0 0;color:#7d746d;font-size:.88rem;line-height:1.4}
.ksq-contact-submit{margin-top:12px;text-align:left}
.ksq-contact-submit button{appearance:none;border:none;border-radius:999px;background:#c01824;color:#fff;padding:14px 24px;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 10px 24px rgba(192,24,36,.18);transition:transform .15s ease,background .2s ease}
.ksq-contact-submit button:hover{background:#a5121d;transform:translateY(-1px)}
.ksq-contact-hp{position:absolute!important;left:-9999px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media (max-width:980px){
  .ksq-contact-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ksq-contact-choice-row{grid-template-columns:1fr}
}
@media (max-width:760px){
  .ksq-contact-page{padding:0 18px 82px}
  .ksq-contact-hero{padding:36px 0 24px}
  .ksq-contact-team-grid,.ksq-contact-grid-two{grid-template-columns:1fr}
  .ksq-contact-form-section{padding:23px 18px}
  .ksq-contact-card{padding:21px 18px}
  .ksq-contact-card-meta{min-height:0}
  .ksq-contact-card-role{min-height:0}
  .ksq-contact-card-focus-slot{margin-top:9px}
  .ksq-contact-card-text{min-height:0;margin-top:10px;display:block}
  .ksq-contact-card-text--with-phone{padding-top:26px}
  .ksq-contact-card-phone{top:0}
  .ksq-contact-card-email{margin-top:20px;font-size:.82rem}
  .ksq-contact-general-strip{margin-top:28px;padding:15px 16px;gap:4px}
  .ksq-contact-form-section{margin-top:28px}
}


@media (min-width: 761px){.ksq-contact-card-focus{transform:none}}


/* 0.4.1 – Quartier-Referenz exakt in das Plugin übernommen.
   Auf kleinsteinquartier.de kam dieser Look zusätzlich aus dem Theme.
   Hier ist er bewusst plugin-eigen, damit Kartenhöhe, Textbreite und E-Mail-Leisten
   auf Kleinstein Wohnen identisch wirken. */
.ksq-contact-page .ksq-contact-card{
  background:#F7F5F1!important;
  border-color:#DEDAD3!important;
  padding:clamp(28px,5vw,58px)!important;
}

/* 0.4.6 – Feinschliff an der Quartier-Referenz.
   Die Telefonnummer liegt wieder im gemeinsamen Textbereich wie im Original.
   Dadurch werden die Karten kompakter; alle Beschreibungen nutzen dieselbe
   vertikale Zone, mit etwas mehr Luft vor der E-Mail-Leiste. */
@media (min-width:761px){
  .ksq-contact-card h3{font-size:1.42rem;line-height:1.22;font-weight:700}
  .ksq-contact-card-role{font-size:1rem;font-weight:600;line-height:1.4}
  .ksq-contact-card-text{
    min-height:6.8em;
    color:#625b55;
    font-weight:500;
    line-height:1.58;
    font-size:.96rem;
  }
  .ksq-contact-card-text--with-phone{padding-top:24px}
  .ksq-contact-card-phone{top:0}
  .ksq-contact-card-email{margin-top:24px}
}

@media (max-width:760px){
  .ksq-contact-card-text{font-weight:500;color:#625b55}
}

/* 0.4.7 – symmetrischer Feinschliff der Teamkarten.
   Alle Beschreibungstexte enden auf derselben Grundlinie; Patricks Telefonzeile
   liegt separat am oberen Rand dieser gemeinsamen Textzone. Die E-Mail-Leisten
   stehen dadurch exakt auf derselben Höhe. Gleichzeitig werden die Karten durch
   reduzierte vertikale Innenabstände etwas kompakter. */
@media (min-width:761px){
  .ksq-contact-page .ksq-contact-card{
    padding:34px clamp(42px,5vw,58px) 24px!important;
  }
  .ksq-contact-card-image-wrap{
    margin-bottom:16px;
  }
  .ksq-contact-card-meta{
    min-height:64px;
  }
  .ksq-contact-card-text,
  .ksq-contact-card-text--with-phone{
    box-sizing:border-box;
    height:8.1em;
    min-height:8.1em;
    padding-top:0;
    display:flex;
    align-items:flex-end;
    justify-content:center;
  }
  .ksq-contact-card-phone{
    top:0;
  }
  .ksq-contact-card-email{
    flex:0 0 auto;
    margin-top:22px;
  }
}


/* 0.4.8 – letzte optische Angleichung an die Quartier-Karten.
   Patricks Beschreibung ist bewusst kürzer. Martin und Marlies sitzen innerhalb
   der gemeinsamen Textzone etwas höher; die E-Mail-Leisten bleiben bündig.
   Unten erhält die Karte wieder denselben ruhigen Abstand wie oben. */
@media (min-width:761px){
  .ksq-contact-page .ksq-contact-card{
    padding-bottom:34px!important;
  }
  .ksq-contact-card-text{
    font-weight:600;
  }
  .ksq-contact-card:nth-child(2) .ksq-contact-card-text,
  .ksq-contact-card:nth-child(3) .ksq-contact-card-text{
    transform:translateY(-7px);
  }
}

@media (max-width:760px){
  .ksq-contact-card-text{font-weight:600}
}
