.contact { display:grid; grid-template-columns:1fr 1.25fr; gap:8%; border-top:1px solid var(--line); padding:90px 0 100px; }
.contact h2 { font-size:clamp(38px,4.5vw,68px); font-weight:400; letter-spacing:-.045em; line-height:1.1; margin:20px 0 28px; }
.contact h2 em { font-family:Georgia,serif; color:var(--violet,#5B3FB0); font-weight:400; }
.contact-copy > p:last-child { font-size:16px; color:var(--muted,#62635a); max-width:420px; line-height:1.6; }
.contact-field { margin-bottom:28px; }
.contact-field label { display:block; font-size:var(--fs-meta,13px); font-weight:500; color:#5b5c55; text-transform:none; letter-spacing:normal; margin-bottom:6px; }
.contact-field input, .contact-field textarea { display:block; box-sizing:border-box; width:100%; border:0; border-bottom:1px solid var(--ink); border-radius:0; background:transparent; color:var(--ink); font:inherit; font-size:var(--fs-body,17px); padding:12px 0; outline:none; }
.contact-field textarea { resize:vertical; }
.contact-field input:focus, .contact-field textarea:focus { border-bottom-color:#5B3FB0; box-shadow:0 1px 0 0 #5B3FB0; }
.contact-field input:focus-visible, .contact-field textarea:focus-visible { outline:3px solid rgba(91,63,176,.22); outline-offset:6px; border-radius:4px; }
.contact-field input[aria-invalid="true"], .contact-field textarea[aria-invalid="true"] { border-bottom-color:#b3261e; box-shadow:0 1px 0 0 #b3261e; }
.contact .field-error { margin:6px 0 0; font-size:12px; color:#b3261e; }
.contact .field-error:empty { display:none; }
.contact .hp { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.contact-submit { border:0; background:#5B3FB0; color:#fff; border-radius:99px; padding:16px 28px; font:inherit; cursor:pointer; }
.contact-submit span { display:inline-block; margin-left:12px; transition:transform .2s; }
.contact-submit:hover { background:#4a3196; }
.contact-submit:hover span { transform:translateX(4px); }
.contact-submit:disabled { opacity:.6; cursor:wait; }
.contact .contact-privacy { font-size:12px; color:var(--muted,#62635a); margin-top:16px; }
.contact .form-status { font-size:14px; color:#b3261e; margin-top:16px; }
.form-status a{color:var(--violet);text-decoration:underline;text-underline-offset:3px}
.contact-success { padding:24px 0; }
.contact-success svg { display:block; height:56px; width:auto; margin-bottom:24px; }
.contact-success h3 { font-family:Georgia,serif; font-style:italic; font-size:32px; font-weight:400; color:#5B3FB0; margin:0 0 16px; }
.contact-success p { font-size:16px; line-height:1.6; }
.contact-again { background:none; border:0; border-bottom:1px solid currentColor; padding:4px 0; margin-top:20px; font:inherit; color:#5B3FB0; cursor:pointer; }
.contact-mark path { stroke:#5B3FB0; stroke-width:3; stroke-dasharray:1; stroke-dashoffset:0; animation:contact-draw 1.4s ease both; }
@keyframes contact-draw { 0% { stroke-dashoffset:1; fill:transparent; } 70% { stroke-dashoffset:0; fill:transparent; } 100% { fill:#5B3FB0; } }
html.motion-paused .contact-mark path { animation:none; }
@media (prefers-reduced-motion:reduce) { .contact-mark path { animation:none; } .contact-submit span { transition:none; } }
@media (max-width:899px) { .contact { grid-template-columns:1fr; gap:36px; padding:55px 0 70px; } }
