/* Kontaktseite – Ergänzungen zum Basis-Stil */
.kh h1{font-size:clamp(38px,5vw,64px)}
.ti{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:13px;background:rgba(86,202,245,.1);color:var(--cyan)}.ti svg{width:20px;height:20px}
.routes{display:grid;gap:10px;max-width:540px}
.rt{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:18px;background:var(--card);border:1px solid var(--line2);text-decoration:none;transition:transform .15s,border-color .15s,background .15s}
.rt:hover{transform:translateY(-1px);border-color:rgba(86,202,245,.55);background:rgba(255,255,255,.055)}
.rt b{display:block;font-size:16px}.rt small{display:block;margin-top:2px;color:var(--muted);font-size:13.5px}
.rt>svg{width:18px;height:18px;margin-left:auto;color:var(--ice);flex:0 0 auto}
.rt.main{background:linear-gradient(135deg,rgba(86,202,245,.18),rgba(5,30,224,.2));border-color:rgba(86,202,245,.55);box-shadow:0 18px 50px rgba(5,30,224,.25)}
.rt.main .ti{background:#fff;color:#01050f}
.vis-note{display:flex;align-items:center;gap:10px;margin-top:12px;padding:12px 16px;border-radius:14px;background:var(--card);border:1px solid var(--line);color:var(--muted);font-size:13.5px}
.vis-note span{color:var(--ok);display:grid}.vis-note svg{width:18px;height:18px}

.kg{display:grid;grid-template-columns:1.35fr .9fr;gap:28px;align-items:start}
.kform{padding:40px 44px;border-radius:28px;background:radial-gradient(70% 50% at 100% 0%,rgba(5,30,224,.2),transparent 70%),linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid var(--line2);box-shadow:0 40px 100px rgba(0,0,0,.35)}
.kform .h2{font-size:clamp(28px,3vw,40px)}.kform .sub{margin-bottom:28px}
#mpContactForm{position:relative}
.tps{border:0;margin:0 0 22px;padding:0}
.tps legend,.f label{display:block;margin-bottom:10px;font-size:13px;font-weight:700;color:var(--ice);letter-spacing:.01em}
.tpg{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tp{position:relative;display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid var(--line);cursor:pointer;transition:all .15s}
.tp:hover{border-color:var(--line2);background:rgba(255,255,255,.055)}
.tp input{position:absolute;opacity:0;pointer-events:none}
.tp .ti{width:36px;height:36px;border-radius:11px}.tp .ti svg{width:18px;height:18px}
.tp b{display:block;font-size:14px;line-height:1.25}.tp small{display:block;margin-top:2px;color:var(--muted2);font-size:12px;line-height:1.3}
.tp:has(input:checked){background:linear-gradient(135deg,rgba(86,202,245,.16),rgba(5,30,224,.14));border-color:rgba(86,202,245,.65);box-shadow:0 10px 30px rgba(5,30,224,.2)}
.tp:has(input:checked) .ti{background:var(--cyan);color:#01050f}
.tp:focus-within{outline:2px solid var(--cyan);outline-offset:2px}
.tps.bad .tpg{outline:1px solid rgba(255,120,120,.55);outline-offset:6px;border-radius:18px}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f{position:relative;min-width:0}.f.full{grid-column:1/-1}
.f input,.f textarea{width:100%;min-height:54px;padding:14px 16px;border-radius:14px;background:rgba(2,8,24,.55);border:1px solid var(--line2);color:var(--text);font:inherit;font-size:16px;outline:0;transition:border-color .15s,box-shadow .15s}
.f textarea{min-height:170px;resize:vertical;line-height:1.55;padding-bottom:30px}
.f input:focus,.f textarea:focus{border-color:rgba(86,202,245,.7);box-shadow:0 0 0 4px rgba(86,202,245,.14)}
.f input::placeholder,.f textarea::placeholder{color:var(--muted2)}
.f.bad input,.f.bad textarea{border-color:rgba(255,120,120,.7)}
.cnt{position:absolute;right:14px;bottom:10px;font-size:12px;color:var(--muted2)}.cnt.warn{color:#ff9c9c}
.consent{display:flex;gap:14px;align-items:flex-start;margin:22px 0 14px;cursor:pointer;color:var(--muted);font-size:14.5px;line-height:1.55}
.consent input{position:absolute;opacity:0;pointer-events:none}
.consent .box{flex:0 0 auto;display:grid;place-items:center;width:24px;height:24px;margin-top:1px;border-radius:7px;border:1.5px solid var(--line2);background:rgba(2,8,24,.55);color:transparent;transition:all .15s}
.consent .box svg{width:15px;height:15px}
.consent input:checked+.box{background:var(--cyan);border-color:var(--cyan);color:#01050f}
.consent input:focus-visible+.box{outline:2px solid var(--cyan);outline-offset:2px}
.consent a{color:var(--ice)}
.fnote{display:flex;gap:10px;margin:0 0 22px;padding:12px 14px;border-radius:14px;background:rgba(255,211,107,.06);border:1px solid rgba(255,211,107,.22);color:#f3e3b5;font-size:13.5px;line-height:1.5}
.fnote svg{width:18px;height:18px;flex:0 0 auto;color:#ffd36b;margin-top:1px}
.sub-btn{width:100%;min-height:56px;font-size:16px}
.sub-btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.st{margin-top:14px;padding:13px 16px;border-radius:14px;font-size:14.5px;line-height:1.5}
.st.info{background:rgba(86,202,245,.1);border:1px solid rgba(86,202,245,.3);color:var(--ice)}
.st.error{background:rgba(255,120,120,.08);border:1px solid rgba(255,120,120,.35);color:#ffd0d0}
.legal{display:flex;justify-content:center;gap:10px;margin-top:16px;font-size:13px;color:var(--muted2)}.legal a{color:var(--muted);text-decoration:none}.legal a:hover{color:var(--ice)}
.ok{padding:30px 0 8px;text-align:center}
.okc{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--ok);color:#01170d;margin-bottom:16px}.okc svg{width:30px;height:30px}
.ok h3{margin:0 0 8px;font-family:var(--serif);font-style:italic;font-weight:300;font-size:38px}
.ok p{margin:0 0 22px;color:var(--muted)}.ok .cta{justify-content:center}

.kside{position:sticky;top:calc(var(--mp-header-h,78px) + 20px);display:grid;gap:16px}
.kc{padding:26px;border-radius:24px;background:var(--card);border:1px solid var(--line)}
.kc h3{margin:8px 0 14px;font-size:20px;letter-spacing:-.015em}.kc>p{margin:0 0 18px;color:var(--muted);line-height:1.6;font-size:15px}
.ml{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ml li{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;padding:14px;border-radius:16px;background:rgba(255,255,255,.03);border:1px solid var(--line)}
.ml li div{grid-column:1/-1}.ml b{display:block;font-size:14.5px}.ml span{color:var(--muted2);font-size:12.5px}
.ml a{color:var(--ice);font-weight:700;font-size:15px;text-decoration:none;word-break:break-all}.ml a:hover{text-decoration:underline}
.cp{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid var(--line2);color:var(--muted);cursor:pointer}.cp svg{width:16px;height:16px}
.cp.done{background:var(--ok);border-color:var(--ok);color:#01170d}
.kc.call{background:radial-gradient(80% 80% at 100% 0%,rgba(5,30,224,.4),transparent 70%),linear-gradient(135deg,rgba(86,202,245,.12),rgba(255,255,255,.03));border-color:rgba(86,202,245,.35)}
.kc.call .btn{width:100%}
.kc.em{display:flex;gap:12px;padding:18px 20px;background:rgba(255,120,120,.05);border-color:rgba(255,120,120,.25)}
.kc.em span{color:#ff9c9c;display:grid}.kc.em svg{width:20px;height:20px}.kc.em p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.55}.kc.em b{color:#ffd0d0}

.sfg{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sf{display:flex;align-items:center;gap:14px;padding:18px;border-radius:20px;background:var(--card);border:1px solid var(--line);text-decoration:none;transition:transform .15s,border-color .15s}
.sf:hover{transform:translateY(-2px);border-color:var(--line2)}
.sf b{display:block;font-size:15px}.sf small{display:block;margin-top:2px;color:var(--muted);font-size:13px;line-height:1.4}
.sf>svg{width:16px;height:16px;margin-left:auto;color:var(--ice);flex:0 0 auto}

@media (max-width:1000px){.kg{grid-template-columns:1fr}.kside{position:static}.sfg{grid-template-columns:1fr 1fr}.tpg{grid-template-columns:1fr 1fr}}
@media (max-width:700px){
 .kform{padding:24px 18px;border-radius:22px}
 .tpg{grid-template-columns:1fr 1fr;gap:8px}.tp{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}.tp small{display:none}
 .fg{grid-template-columns:1fr}
 .sfg{grid-template-columns:1fr}
 .rt{padding:14px}
}

