/* Knopka / Character 03: approved tokens, native dialog and form controls. */
.knopka-contact-dialog{box-sizing:border-box;width:min(520px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:1px solid #d9dcd5;border-radius:24px;background:#fff;color:#161515;font-family:Manrope,Arial,sans-serif;color-scheme:light;overflow:auto;overscroll-behavior:contain;box-shadow:0 24px 80px #16151529}
.knopka-contact-dialog[open]{animation:kn-contact-in .32s cubic-bezier(.22,1,.36,1)}
.knopka-contact-dialog::backdrop{background:#1615158c;backdrop-filter:blur(8px);animation:kn-backdrop-in .24s ease}
.knopka-contact-dialog *, .knopka-contact-dialog *::before,.knopka-contact-dialog *::after{box-sizing:border-box}
.knopka-contact-dialog [hidden]{display:none!important}
.kn-contact-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 0 32px;position:sticky;top:0;z-index:2;background:#fff}
.kn-contact-brand{display:flex;gap:4px;font-size:14px;letter-spacing:.12em;font-weight:800}.kn-contact-brand>span{font-size:12px;letter-spacing:0}
.kn-contact-close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:8px;background:transparent;color:#161515;font:32px/1 Arial;cursor:pointer;transition:background .18s,transform .18s}
.kn-contact-close:hover{background:#f0f0ee;transform:rotate(6deg)}
.kn-contact-body{padding:16px 32px 28px}.kn-contact-heading{position:relative;margin-bottom:24px;padding-right:54px}
.kn-contact-kicker{font-size:12px;line-height:16px;letter-spacing:.08em;font-weight:700;color:#656960}
.kn-contact-heading h2{margin:12px 0;font-size:40px;line-height:44px;font-weight:700;letter-spacing:-.04em;text-transform:none}
.kn-contact-heading p{margin:0;font-size:14px;line-height:20px;color:#656960;max-width:340px}
.kn-contact-mark{position:absolute;right:4px;top:25px;font-size:88px;line-height:1;font-weight:800;color:#72e63a;transform:rotate(10deg);pointer-events:none;animation:kn-mark-in .5s cubic-bezier(.22,1,.36,1)}
.kn-contact-form{display:grid;gap:16px}.kn-field{display:grid;gap:8px;min-width:0;font-size:14px;line-height:20px;font-weight:600}.kn-optional{color:#656960;font-size:12px;font-weight:400;margin-left:4px}
.kn-field input,.kn-field textarea{width:100%;min-width:0;margin:0;padding:12px 16px;border:1px solid #b8bdb3;border-radius:8px;background:#fff;color:#161515;font:400 16px/24px Manrope,Arial,sans-serif;transition:border-color .18s,background .18s;box-shadow:none;outline:none}
.kn-field input{height:48px}.kn-field textarea{resize:vertical;min-height:96px;max-height:240px}.kn-field input::placeholder,.kn-field textarea::placeholder{color:#787d72;opacity:1}
.kn-field input:hover,.kn-field textarea:hover{border-color:#656960}.kn-field input:focus,.kn-field textarea:focus{border-color:#254eaa}
.kn-field input:user-invalid,.kn-field textarea:user-invalid{border-color:#af3228}.kn-field input:disabled,.kn-field textarea:disabled{background:#f0f0ee;color:#656960}
.kn-contact-agreement{display:flex;align-items:flex-start;gap:12px;font-size:12px;line-height:18px;font-weight:400;color:#656960;cursor:pointer;min-height:44px}
.kn-contact-agreement input,.kn-marketplaces input{appearance:none;flex:none;width:20px;height:20px;border:1px solid #b8bdb3;border-radius:4px;margin:0;display:grid;place-items:center;background:#fff;cursor:pointer}
.kn-contact-agreement input:checked,.kn-marketplaces input:checked{background:#246b37;border-color:#246b37}
.kn-contact-agreement input:checked::after,.kn-marketplaces input:checked::after{content:'';width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-1px) rotate(-45deg)}
.kn-contact-agreement a{color:#161515;text-decoration:underline;text-underline-offset:3px}
.kn-contact-submit,.kn-contact-done{position:relative;overflow:hidden;width:100%;min-height:48px;padding:12px 16px;border:0;border-radius:8px;background:#246b37;color:#fff;font:700 16px/24px Manrope,Arial,sans-serif;cursor:pointer;transition:background .2s,transform .2s}
.kn-contact-submit:hover,.kn-contact-done:hover{background:#2d7d42}.kn-contact-submit:active,.kn-contact-done:active{background:#1d5a2d;transform:scale(.99)}
.kn-contact-submit:disabled{background:#e9ece8;color:#656960;cursor:default}.kn-contact-submit.is-loading{background:repeating-linear-gradient(110deg,#72e63a 0,#72e63a 24px,#8aec5c 24px,#8aec5c 48px);background-size:106px 100%;color:#161515;animation:kn-contact-loading 1.1s linear infinite}
.kn-contact-note{margin:0;text-align:center;font-size:12px;line-height:18px;color:#656960}
.kn-contact-status{padding:12px 16px;border-radius:12px;background:#f0f0ee;color:#494c46;font-size:14px;line-height:20px;border-left:3px solid #246b37}
.kn-contact-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.kn-marketplaces{border:0;padding:0;margin:0;display:flex;gap:12px}.kn-marketplaces legend{padding:0;margin-bottom:8px;font-size:14px;line-height:20px;font-weight:600}.kn-marketplaces label{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid #b8bdb3;border-radius:8px;font-size:14px;cursor:pointer}.kn-marketplaces label:has(:checked){border-color:#246b37;background:#ecf6e8}
.kn-contact-result{text-align:center;padding:24px 0 8px;outline:none}.kn-contact-success-mark{display:inline-grid;place-items:center;width:80px;height:80px;background:#eaf6e5;color:#246b37;border-radius:24px;font-size:48px;transform:rotate(-7deg);animation:kn-mark-in .5s ease}.kn-contact-result h3{font-size:28px;line-height:36px;letter-spacing:-.03em;margin:24px 0 8px}.kn-contact-result p{font-size:16px;line-height:24px;margin:0 0 32px;color:#656960}
.knopka-contact-dialog :is(button,a,input[type=checkbox]):focus-visible{outline:2px solid #254eaa;outline-offset:3px}
@keyframes kn-contact-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
@keyframes kn-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes kn-mark-in{from{opacity:0;transform:translateY(8px) rotate(-12deg) scale(.85)}to{opacity:1}}
@keyframes kn-contact-loading{to{background-position:106px 0}}
@media(max-width:550px){.knopka-contact-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.kn-contact-bar{padding-left:24px}.kn-contact-body{padding:12px 24px 24px}.kn-contact-heading h2{font-size:32px;line-height:36px}.kn-contact-heading{padding-right:36px;margin-bottom:24px}.kn-contact-mark{font-size:64px;right:0;top:30px}.kn-contact-row{gap:12px}.kn-contact-row input{padding:12px}.kn-optional{display:inline-block}}
@media(max-width:360px){.kn-contact-body{padding:12px 20px 24px}.kn-contact-bar{padding-left:20px}.kn-contact-row{grid-template-columns:1fr}.kn-marketplaces{gap:8px}.kn-marketplaces label{padding:8px;font-size:12px}}
@media(prefers-reduced-motion:reduce){.knopka-contact-dialog,.knopka-contact-dialog::backdrop,.knopka-contact-dialog *{animation:none!important;transition:none!important}}
@media(max-width:360px){.kn-contact-heading h2{font-size:28px;line-height:32px}.kn-contact-mark{font-size:56px}}
