.contact-hero{background-color:var(--dark-green);padding:8rem 1.5rem 6rem;position:relative;overflow:hidden}.contact-hero .dots-canvas{opacity:.18}.contact-hero .container{z-index:2;position:relative}.contact-card{background:var(--bg);max-width:960px;box-shadow:0 4px 40px var(--shadow-color);border-radius:1.25rem;grid-template-columns:1fr 1.6fr;gap:3rem;margin:0 auto;padding:3.5rem;display:grid}.contact-info h1{color:var(--dark-green);margin-bottom:2rem;font-size:clamp(2rem,1.6rem + 2vw,2.75rem);line-height:1.1}.contact-details{flex-direction:column;gap:1rem;display:flex}.contact-detail{color:var(--text-muted);align-items:center;gap:.75rem;font-size:.9375rem;display:flex}.contact-detail svg{color:var(--text-muted);flex-shrink:0}.contact-form{flex-direction:column;gap:1.25rem;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:1.25rem;display:grid}.form-group{flex-direction:column;gap:.375rem;display:flex}.form-label{color:var(--text-dark);font-size:.875rem;font-weight:600}.form-required{color:var(--text-dark)}.form-input{border:1px solid var(--border-light);border-radius:var(--radius);color:var(--text-dark);background:var(--bg);transition:border-color var(--transition), outline-color var(--transition);padding:.75rem 1rem;font-size:.9375rem}.form-input::placeholder{color:var(--input-placeholder)}.form-input:focus{border-color:var(--medium-green);outline:2px solid var(--medium-green);outline-offset:-1px}.form-input.is-invalid{border-color:var(--input-error-border)}.form-textarea{resize:vertical;min-height:100px}.form-submit{align-self:flex-start;padding:.8rem 2.25rem}.form-message{border-radius:var(--radius);margin-top:.25rem;padding:.75rem 1rem;font-size:.875rem}.form-message-success{background:var(--success-bg);color:var(--success-color)}.form-message-error{background:var(--error-bg);color:var(--error-color)}:root[data-theme=dark] .contact-info h1{color:var(--text-dark)}@media (width<=900px){.contact-hero{padding:7rem 1.5rem 4rem}.contact-card{grid-template-columns:1fr;gap:2rem;padding:2.5rem}.contact-info h1{margin-bottom:1.25rem}}@media (width<=640px){.contact-hero{padding:6rem 0 3rem}.contact-card{padding:1.75rem}.form-row{grid-template-columns:1fr}}
