.page-header{background-color:var(--secondary-color);color:var(--light-text);padding:8rem 0 4rem;text-align:center}.page-header h1{color:var(--light-text);font-size:2.5rem;margin-bottom:1rem}.page-header p{font-size:1.2rem;max-width:700px;margin:0 auto}.contact-content{display:grid;grid-template-columns:1fr 2fr;gap:3rem}.contact-info{background-color:var(--secondary-color);color:var(--light-text);padding:2rem;border-radius:8px;align-self:start;min-height:550px;display:flex;flex-direction:column;gap:1.5rem}.contact-info h2{color:var(--light-text);margin-bottom:2rem}.contact-item{display:flex;margin-bottom:1.5rem}.contact-item i{font-size:1.5rem;color:var(--primary-color);margin-right:1rem;margin-top:5px}.contact-item h3{color:var(--light-text);font-size:1.2rem;margin-bottom:.5rem}.contact-form-container{background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 5px 15px var(--shadow-color)}.contact-form-container h2{margin-bottom:2rem}.form-group{margin-bottom:1.5rem;width:48%;display:inline-block;vertical-align:top}.form-group.full-width{width:100%}.form-group label{display:block;margin-bottom:.5rem;font-weight:500}.contact-form input,.contact-form select,.contact-form textarea{height:45px;padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;width:100%;margin-top:.25rem}.contact-form textarea{height:120px;resize:vertical;min-height:120px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.8rem;border:1px solid var(--border-color);border-radius:4px;font-family:Montserrat,sans-serif}.form-group textarea{resize:vertical}.submit-btn{display:inline-flex;align-items:center;justify-content:center;padding:1rem 2rem;background-color:var(--primary-color);color:var(--light-text);border:none;border-radius:6px;font-weight:600;font-size:1.1rem;text-transform:uppercase;letter-spacing:1px;box-shadow:0 4px 12px rgba(0,0,0,.2);cursor:pointer;transition:var(--transition)}.submit-btn:hover{background-color:#ff885c;transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.3)}.submit-btn.processing{opacity:.75;cursor:not-allowed;pointer-events:none;transform:none}.submit-btn:disabled{opacity:.75;cursor:not-allowed;background-color:#999;transform:none;box-shadow:none}.form-submit-container{display:flex;align-items:center;gap:1rem}.file-upload-button{display:inline-flex;align-items:center;justify-content:center;padding:1rem 2rem;background-color:var(--accent-color);color:var(--dark-text);border:1px solid var(--border-color);border-radius:6px;font-weight:500;font-size:1rem;cursor:pointer;transition:all .3s ease}.file-upload-button:hover{background-color:#e8e8e8;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.file-upload-button i{margin-right:.5rem;color:var(--primary-color)}.file-input{display:none}.selected-files{margin-top:1rem}.selected-file{display:flex;align-items:center;gap:1rem;padding:.5rem;background-color:#f5f5f5;border-radius:4px;margin-bottom:.5rem}.selected-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-file-size{margin:0 1rem;color:#666;font-size:.9rem}.selected-file-remove{cursor:pointer;padding:.25rem;display:flex;align-items:center}.file-remove{color:red;cursor:pointer}.map-section{padding:80px 0;background-color:#f8f9fa}.map-section h2{text-align:center;margin-bottom:.5rem;color:#2e4374}.map-section p{text-align:center;margin-bottom:2rem;color:#666}#map{height:500px;width:100%;border-radius:10px;box-shadow:0 4px 8px rgba(0,0,0,.1)}.quote-section{background-color:var(--accent-color);text-align:center}.quote-content h2{margin-bottom:1.5rem}@media screen and (max-width:768px){.contact-content{grid-template-columns:1fr}.contact-info{margin-bottom:2rem}.form-group{width:100%}#map{height:400px}}@media screen and (max-width:768px){.form-submit-container{flex-direction:column;align-items:stretch}.file-upload-button,.submit-btn{width:100%;margin-bottom:1rem}}.error-message{display:block;color:#e74c3c;font-size:.85rem;margin-top:.5rem;font-weight:500;transition:all .3s ease}input.error,select.error,textarea.error{border-color:#e74c3c!important;box-shadow:0 0 0 1px rgba(231,76,60,.2)}.help-text{display:block;font-size:.8rem;color:#7f8c8d;margin-top:.25rem}@keyframes errorShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.error-message:not(:empty){animation:errorShake .5s ease}