.kontaktHero{background:var(--off-white);padding:180px 20px 60px}.kontaktHeroInner{text-align:center;flex-direction:column;align-items:center;max-width:1200px;margin:0 auto;display:flex}.kontaktLabel{font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;color:var(--dark-green);margin-bottom:24px;font-size:.85rem;font-weight:700}.kontaktHeroInner h1{font-family:var(--font-heading);letter-spacing:-.03em;color:var(--near-black);margin:0 0 24px;font-size:clamp(3.5rem,8vw,6.5rem);font-weight:900;line-height:1.05}.kontaktHeroInner h1 em{color:var(--dark-green);font-style:normal}.kontaktHeroSub{font-family:var(--font-body);color:#091c0099;max-width:500px;font-size:1.15rem;line-height:1.6}.kontaktBody{background:var(--off-white);padding:70px 20px 100px}.kontaktBodyInner{grid-template-columns:1.4fr 1fr;align-items:start;gap:80px;max-width:1200px;margin:0 auto;display:grid}.kontaktForm h2{font-family:var(--font-heading);color:var(--near-black);margin-bottom:12px;font-size:1.4rem;font-weight:800}.kontaktFormSub{color:#091c0080;max-width:90%;margin-bottom:40px;font-size:.95rem;line-height:1.6}.formRow{grid-template-columns:1fr 1fr;gap:32px;margin-bottom:24px;display:grid}.formGroup{margin-bottom:24px}.formGroup.cleanInput label{font-family:var(--font-heading);color:var(--near-black);margin-bottom:12px;font-size:.85rem;font-weight:800;display:block}.formGroup.cleanInput input,.formGroup.cleanInput textarea{border:none;border-bottom:2px solid var(--near-black);width:100%;font-family:var(--font-body);color:var(--near-black);background:0 0;border-radius:0;outline:none;padding:0 0 12px;font-size:1rem;transition:opacity .2s}.formGroup.cleanInput textarea{resize:vertical;min-height:48px}.formGroup.cleanInput input:focus,.formGroup.cleanInput textarea:focus{opacity:.7}.formFooter{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin-top:40px;display:flex}.checkboxGroup{align-items:center;gap:12px;display:flex}.checkboxGroup input[type=checkbox]{width:18px;height:18px;accent-color:var(--near-black);cursor:pointer}.checkboxGroup label{font-family:var(--font-body);color:#091c00b3;cursor:pointer;font-size:.9rem;font-weight:500}.kontaktSubmit{background:var(--near-black);color:var(--off-white);border:1.5px solid var(--near-black);font-family:var(--font-heading);cursor:pointer;border-radius:100px;padding:14px 32px;font-size:.95rem;font-weight:800;transition:background .25s,color .25s,transform .2s}.kontaktSubmit:hover{background:var(--green);color:var(--near-black);transform:translateY(-2px)}.kontaktInfo{border-left:1px solid #091c001a;padding-left:60px}.infoBlock{margin-bottom:48px}.infoBlock h3{font-family:var(--font-heading);color:var(--near-black);margin-bottom:12px;font-size:1.15rem;font-weight:800}.infoBlock p{color:#091c0080;max-width:320px;margin-bottom:16px;font-size:.9rem;line-height:1.6}.infoAction{align-items:center;gap:12px;display:flex}.infoIcon{width:32px;height:32px;color:var(--near-black);background:#2f49010d;border-radius:50%;justify-content:center;align-items:center;display:flex}.infoAction span{font-family:var(--font-heading);color:var(--near-black);font-size:.95rem;font-weight:800}@media (max-width:992px){.kontaktBodyInner{grid-template-columns:1fr;gap:60px}.kontaktInfo{border-top:1px solid #091c001a;border-left:none;padding-top:60px;padding-left:0}}@media (max-width:640px){.formRow{grid-template-columns:1fr;gap:24px}}@keyframes shakeElementRed{0%{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-5px)}to{transform:translate(0)}}@keyframes shakeButtonRed{0%{color:#fff;background:red;border-color:red;transform:translate(0)}25%{color:#fff;background:red;border-color:red;transform:translate(-5px)}50%{color:#fff;background:red;border-color:red;transform:translate(5px)}75%{color:#fff;background:red;border-color:red;transform:translate(-5px)}to{transform:translate(0)}}.show-errors .cleanInput input:invalid,.show-errors .cleanInput textarea:invalid{border-bottom-color:red}:is(.show-errors .cleanInput:has(input:invalid) label,.show-errors .cleanInput:has(textarea:invalid) label,.show-errors .checkboxGroup:has(input:invalid) label){color:red}.show-errors .checkboxGroup input[type=checkbox]:invalid{outline-offset:2px;outline:2px solid red}.form-shaking .cleanInput input:invalid,.form-shaking .cleanInput textarea:invalid,.form-shaking .checkboxGroup input:invalid{animation:.4s ease-in-out shakeElementRed}.form-shaking .cleanInput:has(input:invalid) label{animation:.4s ease-in-out shakeElementRed}.form-shaking .cleanInput:has(textarea:invalid) label{animation:.4s ease-in-out shakeElementRed}.form-shaking .checkboxGroup:has(input:invalid) label{animation:.4s ease-in-out shakeElementRed}.form-shaking .kontaktSubmit{animation:.4s ease-in-out shakeButtonRed}
