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