.contact-form{background:#fff;border-radius:12px;padding:2rem;transition:all .3s;box-shadow:0 4px 6px #00000012}.contact-form:hover{box-shadow:0 20px 25px -5px #0000001a}.alert{border-radius:8px;align-items:center;gap:12px;margin-bottom:1.5rem;padding:1rem 1.25rem;font-size:.95rem;animation:.3s ease-out slideDown;display:flex}.alert-success{color:#065f46;background-color:#d1fae5;border:1px solid #a7f3d0}.alert-error{color:#7f1d1d;background-color:#fee2e2;border:1px solid #fca5a5}.alert-icon{font-size:1.25rem}.form-group{margin-bottom:1.5rem}.form-label{color:#1f2937;margin-bottom:.5rem;font-size:.95rem;font-weight:600;display:block}.required{color:#ef4444}.form-input,.form-textarea{box-sizing:border-box;background:#fff;border:2px solid #e5e7eb;border-radius:8px;width:100%;padding:.875rem 1rem;font-family:inherit;font-size:1rem;transition:all .3s}.form-input:focus,.form-textarea:focus{border-color:#14b8a6;outline:none;box-shadow:0 0 0 3px #14b8a61a}.form-input:disabled,.form-textarea:disabled{cursor:not-allowed;opacity:.6;background-color:#f3f4f6}.form-input.error,.form-textarea.error{border-color:#ef4444}.form-input.error:focus,.form-textarea.error:focus{box-shadow:0 0 0 3px #ef44441a}.form-textarea{resize:vertical;min-height:150px;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.error-message{color:#ef4444;align-items:center;gap:6px;margin-top:.375rem;font-size:.85rem;animation:.3s ease-out shake;display:flex}.char-count{color:#9ca3af;text-align:right;margin-top:.375rem;font-size:.8rem;display:block}.submit-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#14b8a6 0%,#059669 100%);border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:1rem;padding:1rem;font-size:1rem;font-weight:600;transition:all .3s;display:flex}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #14b8a64d}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.submit-btn .spinner{animation:1s linear infinite spin;display:inline-block}.privacy-notice{color:#6b7280;text-align:center;margin-top:1rem;font-size:.8rem;line-height:1.4}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.delay-1{animation-delay:.1s}.delay-2{animation-delay:.2s}.delay-3{animation-delay:.3s}.delay-4{animation-delay:.4s}
