/* =========================================================================
   KMP – Kontakt-Modal (zentriertes Pop-up, mobil Vollbild-Sheet)
   ========================================================================= */
.kmp-km{ position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; padding:20px; }
.kmp-km.is-open{ display:flex; }
.kmp-km__backdrop{ position:absolute; inset:0; background:rgba(13,11,46,.55); }

.kmp-km__dialog{ position:relative; background:#fff; border-radius:20px; width:460px; max-width:100%; max-height:calc(100vh - 40px); overflow-y:auto; box-shadow:0 30px 80px rgba(0,0,0,.4); animation:kmpkmIn .25s ease; }
@keyframes kmpkmIn{ from{ opacity:0; transform:translateY(12px) scale(.98); } to{ opacity:1; transform:none; } }

.kmp-km__head{ padding:26px 28px 0; display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.kmp-km__eyebrow{ margin:0 0 4px; font-size:11px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#7F77DD; }
.kmp-km__title{ margin:0 0 6px; font-size:21px; font-weight:800; color:#0D0B2E; letter-spacing:-.01em; line-height:1.2; }
.kmp-km__sub{ margin:0; font-size:12.5px; color:#888; line-height:1.5; }
.kmp-km__x{ flex-shrink:0; width:34px; height:34px; border:none; background:#F0EFFE; color:#534AB7; border-radius:9px; cursor:pointer; font-size:20px; line-height:1; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.kmp-km__x:hover{ background:#e3e0f7; }

.kmp-km__chip{ margin:0 0 13px; display:flex; align-items:center; gap:9px; background:#F0EFFE; border:1px solid #DAD7F5; border-radius:10px; padding:9px 13px; font-size:12.5px; color:#3C3489; line-height:1.4; }
.kmp-km__chip[hidden]{ display:none; }
.kmp-km__chip svg{ flex-shrink:0; color:#7F77DD; }
.kmp-km__chip-x{ margin-left:auto; flex-shrink:0; width:24px; height:24px; border:none; background:transparent; color:#7F77DD; cursor:pointer; font-size:18px; line-height:1; border-radius:6px; display:flex; align-items:center; justify-content:center; transition:background .2s; }
.kmp-km__chip-x:hover{ background:#e0ddf5; }

.kmp-km__body{ padding:18px 28px 24px; }
.kmp-km__row2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:13px; }
/* Hinweis: Print-Anfragen gehoeren zu kmp.com */
.kmp-km__note{ margin:0 0 16px; background:#FBFAFC; border:1px solid #E6E5F0; border-left:3px solid #D85A30; border-radius:10px; padding:11px 14px; font-size:12.5px; line-height:1.5; color:#5a5a6e; }
.kmp-km__note strong{ display:block; color:#0D0B2E; font-weight:700; margin-bottom:2px; }
.kmp-km__note a{ color:#D85A30; font-weight:600; }

.kmp-km__field{ margin-bottom:13px; }
.kmp-km__field > label{ display:block; font-size:12.5px; font-weight:600; color:#0D0B2E; margin:0 0 5px; }
.kmp-km__opt{ font-size:12px; color:#9a99ad; font-weight:400; }

.kmp-km input, .kmp-km select, .kmp-km textarea{ width:100%; padding:11px 13px; border:1px solid #E1E0F0; border-radius:10px; font-size:14px; font-family:inherit; color:#0D0B2E; background:#fff; box-sizing:border-box; }
.kmp-km input:focus, .kmp-km select:focus, .kmp-km textarea:focus{ outline:none; border-color:#7F77DD; box-shadow:0 0 0 3px rgba(127,119,221,.15); }
.kmp-km select{
	appearance:none; -webkit-appearance:none; -moz-appearance:none;
	padding-right:40px;
	background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237F77DD' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat:no-repeat;
	background-position:right 14px center;
}
.kmp-km select::-ms-expand{ display:none; }
.kmp-km textarea{ resize:vertical; min-height:54px; }

.kmp-km__seg{ display:flex; gap:10px; }
.kmp-km__segbtn{ flex:1; padding:10px; border:1px solid #E1E0F0; background:#fff; border-radius:10px; font-size:13.5px; font-family:inherit; color:#666; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:7px; transition:border-color .2s, background .2s, color .2s; }
.kmp-km__segbtn.is-on{ border-color:#7F77DD; background:#F0EFFE; color:#3C3489; font-weight:600; }

.kmp-km__consent{ display:flex; align-items:flex-start; gap:9px; margin:2px 0 0; cursor:pointer; }
.kmp-km__consent input{ width:15px; height:15px; margin-top:3px; flex-shrink:0; accent-color:#7F77DD; padding:0; }
.kmp-km__consent span{ font-size:12px; color:#666; line-height:1.5; }
.kmp-km__consent a{ color:#7F77DD; }

.kmp-km__hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.kmp-km__error{ margin:14px 0 0; background:#FCEBEB; color:#A32D2D; border:1px solid #F7C1C1; border-radius:9px; padding:10px 13px; font-size:13px; line-height:1.5; }

.kmp-km__submit{ width:100%; margin-top:18px; background:#0D0B2E; color:#fff; border:none; border-radius:12px; padding:15px; font-size:15px; font-weight:700; font-family:inherit; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; transition:background .2s, transform .15s; }
.kmp-km__submit:hover{ background:#1a1648; }
.kmp-km__submit:active{ transform:translateY(1px); }
.kmp-km__submit:disabled{ opacity:.6; cursor:default; }
.kmp-km__trust{ margin:14px 0 0; text-align:center; font-size:12px; color:#9a99ad; }

.kmp-km__done{ padding:48px 32px; text-align:center; }
.kmp-km__done-ic{ width:64px; height:64px; border-radius:50%; background:#E1F5EE; color:#1D9E75; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; font-size:30px; font-weight:700; }
.kmp-km__done-t{ margin:0 0 8px; font-size:20px; font-weight:800; color:#0D0B2E; }
.kmp-km__done-s{ margin:0 auto 24px; font-size:14px; color:#666; line-height:1.6; max-width:300px; }
.kmp-km__done-btn{ background:#F0EFFE; color:#534AB7; border:none; border-radius:10px; padding:11px 22px; font-size:14px; font-weight:600; font-family:inherit; cursor:pointer; transition:background .2s; }
.kmp-km__done-btn:hover{ background:#e3e0f7; }

body.kmp-noscroll{ overflow:hidden; }

@media (max-width:520px){
	.kmp-km{ padding:0; }
	.kmp-km__dialog{ border-radius:0; width:100%; max-width:100%; height:100%; max-height:100%; }
	.kmp-km__row2{ grid-template-columns:1fr; }
	.kmp-km__head{ padding-top:22px; }
}
@media (prefers-reduced-motion:reduce){ .kmp-km__dialog{ animation:none; } }
