/* Contact Section */ .contact { padding: 5rem 0; } .contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; } .contact-form { display: grid; gap: 1.5rem; } .form-group { display: flex; flex-direction: column; } .form-group label { margin-bottom: 0.5rem; font-weight: 600; } .form-group input, .form-group textarea { padding: 0.8rem; border: 1px solid var(--accent-color); border-radius: 5px; background-color: var(--card-bg); color: var(--text-color); transition: var(--transition); } .form-group input:focus, .form-group textarea:focus { outline: none; box-shadow: 0 0 0 2px var(--accent-color); } .form-group input:invalid, .form-group textarea:invalid { border-color: #ff4444; } .loading-spinner { display: none; width: 20px; height: 20px; border: 2px solid #ffffff; border-radius: 50%; border-top-color: transparent; animation: spin 1s linear infinite; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); } .form-feedback { display: none; padding: 1rem; border-radius: 5px; margin-top: 1rem; } .form-feedback.success { display: block; background-color: rgba(40, 167, 69, 0.1); border: 1px solid #28a745; color: #28a745; } .form-feedback.error { display: block; background-color: rgba(220, 53, 69, 0.1); border: 1px solid #dc3545; color: #dc3545; } .contact-info { padding: 2rem; background-color: var(--card-bg); border-radius: 10px; } .contact-info h3 { margin-bottom: 1.5rem; color: var(--accent-color); } .contact-info p { margin-bottom: 1rem; } .contact-info i { margin-right: 0.5rem; color: var(--accent-color); } .contact-info a { color: var(--text-color); text-decoration: none; transition: var(--transition); } .contact-info a:hover { color: var(--accent-color); }