.contact-section { margin:0 var(--page-gutter) var(--section-gap); padding-top:var(--space-80); border-top:1px solid var(--color-border); scroll-margin-top:calc(var(--topbar-h) + var(--space-24)); }
.contact-grid { display:grid; gap:var(--space-48); }
.contact-intro { display:flex; flex-direction:column; align-items:flex-start; }
.contact-intro h2 { margin:0 0 var(--space-24); font-weight:400; text-wrap:balance; }
.contact-intro p { max-width:440px; margin:0; color:var(--color-muted); }
.contact-telegram { display:inline-flex; align-items:center; gap:var(--space-8); min-height:56px; margin-top:auto; padding-top:var(--space-40); color:var(--color-ink); text-decoration:none; }
.contact-telegram span { text-decoration:underline; text-decoration-color:var(--color-border); text-underline-offset:4px; }
.contact-telegram:hover span { text-decoration-color:currentColor; }
.contact-telegram img { display:block; flex:none; }
.contact-form { min-width:0; }
.contact-fields { display:grid; column-gap:var(--space-24); }
.contact-field { display:block; margin-bottom:var(--space-24); }
.contact-field > span { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.contact-field input,.contact-field textarea { display:block; width:100%; min-width:0; padding:var(--space-12) 0 var(--space-16); border:0; border-bottom:1px solid var(--color-border); border-radius:0; color:var(--color-ink); background:transparent; font-family:inherit; transition:border-color 180ms ease; }
.contact-field textarea { min-height:112px; resize:vertical; }
.contact-field :is(input,textarea)::placeholder { color:var(--color-muted); opacity:1; }
.contact-field :is(input,textarea):focus { outline:none; border-bottom:2px solid var(--color-ink); padding-bottom:calc(var(--space-16) - 1px); }
.contact-field [aria-invalid="true"] { border-bottom-color:var(--color-ink); }
.contact-error { display:block; min-height:20px; margin-top:var(--space-8); color:var(--color-ink); }
.contact-consent { display:grid; grid-template-columns:24px minmax(0,1fr); gap:var(--space-12); align-items:start; margin-top:var(--space-24); }
.contact-check { display:grid; place-items:center; width:44px; height:44px; margin:-10px; }
.contact-consent input { appearance:none; position:relative; width:24px; height:24px; margin:0; border:1px solid var(--color-muted); border-radius:0; background:transparent; cursor:pointer; transition:border-color 200ms ease; }
.contact-check:hover input,.contact-consent input:checked { border-color:var(--color-ink); }
.contact-consent input::after { content:""; position:absolute; inset:3px; background:var(--color-ink); mask:url('/assets/icons/check.svg') center/contain no-repeat; clip-path:inset(0 100% 0 0); opacity:0; transform:scale(.8); transition:clip-path 240ms var(--motion-standard),opacity 180ms ease,transform 240ms var(--motion-standard); }
.contact-consent input:checked::after { clip-path:inset(0); opacity:1; transform:scale(1); }
.contact-consent p { margin:0; color:var(--color-muted); }
.contact-consent label { cursor:pointer; }
.contact-consent a { color:var(--color-ink); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--color-border); }
.contact-consent a:hover { text-decoration-color:var(--color-ink); }
.contact-actions { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-16) var(--space-24); margin-top:var(--space-24); }
.contact-submit { display:inline-flex; justify-content:center; align-items:center; gap:var(--space-32); min-height:56px; padding:var(--space-16) var(--space-32); border:0; border-radius:0; background:var(--color-ink); color:var(--color-paper); font-family:inherit; cursor:pointer; text-decoration:none; }
.contact-submit:hover { background:var(--color-accent); color:var(--color-ink); }
.contact-status { margin-top:var(--space-16); }
.contact-status:empty { display:none; }
.contact-status a { color:inherit; text-underline-offset:3px; }
.contact-section :is(button,a,input[type="checkbox"]):focus-visible { outline:2px solid var(--color-ink); outline-offset:4px; }
@media(min-width:1100px) { .contact-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--space-80); } }
@media(min-width:600px) { .contact-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } .contact-field--task { grid-column:1 / -1; } }
@media(prefers-reduced-motion:reduce) { .contact-field :is(input,textarea),.contact-consent input,.contact-consent input::after { transition:none; } }
