.contact-form{display:flex;flex-direction:column;gap:14px}.contact-form input:not([type="checkbox"]),.contact-form textarea{width:100%;padding:12px;border:1px solid #d6d6d6;border-radius:6px;font-family:inherit;font-size:15px;background:#fff;box-sizing:border-box;transition:border 0.2s}.contact-form input:focus,.contact-form textarea:focus{outline:none;border:1px solid #2f6b45}.contact-form textarea.racconto{min-height:150px;max-height:200px;resize:vertical;font-family:inherit;font-size:15px;position:relative}.char-counter{text-align:right;font-size:12px;color:#666;margin-top:2px}.contact-form button{align-self:flex-start;background:#2f6b45;color:#fff;border:none;padding:12px 28px;border-radius:6px;font-weight:700;font-size:16px;font-family:inherit;cursor:pointer;transition:background 0.2s;margin-top:10px}.contact-form button:hover{background:#255437}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#999}.form-row{display:flex;gap:12px}.form-row input{flex:1}.honeypot{display:none}.upload-box{background:#f8f8f8;border:1px dashed #ccc;padding:15px;border-radius:6px;text-align:left}.upload-label{display:inline-flex;align-items:center;gap:8px;background:#2f6b45;color:#fff;padding:10px 18px;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px;transition:background 0.2s;width:auto}.upload-label:hover{background:#255437}.upload-label input[type="file"]{display:none}.upload-label .upload-icon{width:20px;height:20px}.preview-grid{display:flex;flex-direction:column;gap:12px;margin-top:10px}.preview-item{display:flex;align-items:flex-start;gap:8px;position:relative;max-width:500px;background:#f8f8f8;padding:5px;border-radius:6px}.preview-item img{width:120px;height:120px;object-fit:cover;border-radius:6px;position:relative}.remove-btn{position:absolute;top:-4px;right:4px;background:rgb(0 0 0 / .7);color:#fff;border:none;border-radius:50%;width:30px;height:30px;padding:0!important;font-size:20px!important;margin:0;cursor:pointer;font-size:12px;line-height:20px;text-align:center;display:flex;justify-content:center;align-items:center;z-index:10}.remove-btn:hover{background:#255437}.image-desc{padding:4px 6px;font-size:13px;border:1px solid #d6d6d6;border-radius:5px;resize:none;font-family:inherit;height:120px;max-height:120px;line-height:1.2;box-sizing:border-box}.privacy-group{display:flex;flex-direction:column;gap:12px;margin-top:10px}.privacy-item{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;cursor:pointer}.privacy-item input[type="checkbox"]{width:auto;margin:4px 0 0 0;flex-shrink:0}.privacy-item span{display:block;flex:1}.privacy-item a{color:#2f6b45;text-decoration:underline}.privacy-item:hover span{color:#2f6b45}.privacy-note{font-size:13px;color:#666;margin-top:5px}.form-messages{margin:20px 0}.success-msg{color:#155724;background-color:#d4edda;border:1px solid #c3e6cb;padding:12px;border-radius:5px;font-weight:700}.error-msg{color:#721c24;background-color:#f8d7da;border:1px solid #f5c6cb;padding:12px;border-radius:5px;font-weight:700}.loader{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgb(255 255 255 / .7);z-index:9999}.hidden{display:none}.spinner{width:50px;height:50px;border:4px solid #e0e0e0;border-top:4px solid #333;border-radius:50%;animation:spin 0.8s linear infinite;margin-bottom:10px}.loader p{font-size:1rem;color:#333;text-align:center}@keyframes spin{100%{transform:rotate(360deg)}}@media (max-width:768px){.form-row{flex-direction:column}.preview-item{max-width:100%;flex-direction:row;align-items:flex-start;gap:8px}.preview-item img{width:120px;height:120px;object-fit:cover}.image-desc{width:calc(100% - 120px - 8px);height:120px}}