.carrello-preview{width: 80px;height: 60px;object-fit: cover;cursor: pointer;border-radius: 6px;}
.foto-preventivo-section{padding: 60px 0;}
.foto-preventivo-image-wrapper{position: relative;border-radius: 12px;overflow: hidden;box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12);margin-bottom: 30px;}
.foto-preventivo-image-wrapper img{width: 100%;height: auto;display: block;}
.foto-preventivo-id-badge{position: absolute;top: 12px;right: 12px;background: linear-gradient(135deg, #005096 0%, #00a3d0 100%);color: #fff;padding: 8px 16px;border-radius: 8px;font-size: 14px;font-weight: 600;box-shadow: 0 4px 12px rgba(0, 80, 150, 0.4);}
.contact-form{background: #ffffff;border-radius: 12px;box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);padding: 3rem;}
.contact-form .form-control{border: 2px solid #e9ecef;border-radius: 8px;padding: 12px 16px;font-size: 15px;transition: all 0.3s ease;}
.contact-form .form-control:focus{border-color: #005096;box-shadow: 0 0 0 0.2rem rgba(0, 80, 150, 0.15);outline: none;}
.contact-form .form-label{font-weight: 600;color: #2d3748;margin-bottom: 8px;font-size: 14px;}
.foto-preventivo-section .btn-submit,.contact-form-panel .btn-submit{background: linear-gradient(135deg, #005096 0%, #00a3d0 100%);border: none;padding: 14px 32px;font-size: 16px;font-weight: 600;border-radius: 8px;transition: all 0.3s ease;box-shadow: 0 4px 12px rgba(0, 80, 150, 0.3);}
.foto-preventivo-section .btn-submit:hover,.contact-form-panel .btn-submit:hover{transform: translateY(-2px);box-shadow: 0 6px 20px rgba(0, 80, 150, 0.4);filter: brightness(1.1);}
.foto-preventivo-section .btn-submit:disabled,.contact-form-panel .btn-submit:disabled{opacity: 0.6;cursor: not-allowed;transform: none;}
.contact-form .alert{border-radius: 8px;padding: 16px 20px;margin-bottom: 24px;border: none;}
.contact-form .alert-success{background-color: #d4edda;color: #155724;}
.contact-form .alert-danger{background-color: #f8d7da;color: #721c24;}
.contact-form .form-check{padding-left: 0;display: flex;align-items: flex-start;gap: 12px;min-height: auto;}
.contact-form .form-check-input{width: 20px !important;height: 20px !important;margin-top: 2px !important;margin-left: 0 !important;cursor: pointer;border: 2px solid #ced4da;border-radius: 4px;flex-shrink: 0;position: relative;appearance: none;-webkit-appearance: none;-moz-appearance: none;background-color: #fff;transition: all 0.2s ease;}
.contact-form .form-check-input:checked{background-color: #005096;border-color: #005096;background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");background-size: 100% 100%;background-position: center;background-repeat: no-repeat;}
.contact-form .form-check-input:focus{border-color: #005096;outline: 0;box-shadow: 0 0 0 0.2rem rgba(0, 80, 150, 0.25);}
.contact-form .form-check-label{cursor: pointer;color: #2d3748;line-height: 1.6;margin: 0;font-size: 15px;}
#turnstile-widget{margin: 20px 0;}
.foto-info-card{background: #f8f9fa;border-radius: 8px;padding: 16px 20px;margin-bottom: 20px;border-left: 4px solid #005096;}
.foto-info-card p{margin: 0;font-size: 14px;color: #2d3748;}
.foto-info-card strong{color: #005096;}
.progress-container{position: sticky;top: 0;z-index: 10;border-bottom: 1px solid #dee2e6;}
.step-label{font-size: 0.8rem;font-weight: 500;color: #6c757d;transition: color 0.3s ease;}
.step-label.active{color: #007bff;font-weight: 600;}
.form-step{display: none;min-height: 400px;}
.form-step.active{display: block;}
.upload-area{border: 2px dashed #dee2e6;border-radius: 8px;padding: 2rem;text-align: center;transition: all 0.3s ease;cursor: pointer;}
.upload-area:hover,.upload-area.dragover{border-color: #007bff;background-color: #f8f9fa;}
.upload-content i{font-size: 3rem;margin-bottom: 1rem;}
.file-item{display: flex;align-items: center;justify-content: space-between;padding: 0.5rem;background-color: #f8f9fa;border-radius: 4px;margin-bottom: 0.5rem;}
.file-item .file-info{display: flex;align-items: center;}
.file-item .file-info i{margin-right: 0.5rem;color: #28a745;}
.file-item .remove-file{color: #dc3545;cursor: pointer;}
#quotationModal .form-control:invalid{border-color: #dc3545;}
#quotationModal .form-control.is-valid{border-color: #28a745;}
#quotationModal .invalid-feedback{display: block;width: 100%;margin-top: 0.25rem;font-size: 0.875rem;color: #dc3545;}
.radio-group{display: flex;flex-direction: column;gap: 12px;}
.radio-option{position: relative;}
.radio-option input[type="radio"]{position: absolute;opacity: 0;pointer-events: none;}
.radio-label{display: flex;align-items: center;padding: 16px;border: 2px solid #e9ecef;border-radius: 12px;background-color: #ffffff;cursor: pointer;transition: all 0.3s ease;position: relative;overflow: hidden;}
.radio-label:hover{border-color: #007bff;background-color: #f8f9ff;transform: translateY(-2px);box-shadow: 0 4px 12px rgba(0, 123, 255, 0.15);}
.radio-option input[type="radio"]:checked + .radio-label{border-color: #007bff;background: linear-gradient(135deg, #007bff 0%, #0056b3 100%);color: white;box-shadow: 0 6px 20px rgba(0, 123, 255, 0.3);transform: translateY(-2px);}
.radio-option input[type="radio"]:checked + .radio-label .radio-icon{background-color: rgba(255, 255, 255, 0.2);color: white;}
.radio-option input[type="radio"]:checked + .radio-label .radio-title{color: white;font-weight: 600;}
.radio-option input[type="radio"]:checked + .radio-label .radio-subtitle{color: rgba(255, 255, 255, 0.9);}
.radio-icon{display: flex;align-items: center;justify-content: center;width: 48px;height: 48px;border-radius: 10px;background-color: #f8f9fa;color: #6c757d;margin-right: 16px;transition: all 0.3s ease;flex-shrink: 0;}
.radio-icon i{font-size: 20px;}
.radio-content{flex: 1;}
.radio-title{font-size: 16px;font-weight: 500;color: #212529;margin-bottom: 4px;transition: all 0.3s ease;}
.radio-subtitle{font-size: 14px;color: #6c757d;line-height: 1.4;transition: all 0.3s ease;}
.radio-option input[type="radio"]:focus + .radio-label{outline: 2px solid #007bff;outline-offset: 2px;}
.radio-label::before{content: '';position: absolute;top: 0;left: -100%;width: 100%;height: 100%;background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);transition: left 0.5s ease;}
.radio-option input[type="radio"]:checked + .radio-label::before{left: 100%;}
@media (max-width: 768px){.modal-dialog{margin: 0.5rem;} .step-label{font-size: 0.7rem;} .upload-area{padding: 1rem;} .radio-label{padding: 12px;} .radio-icon{width: 40px;height: 40px;margin-right: 12px;} .radio-icon i{font-size: 18px;} .radio-title{font-size: 15px;} .radio-subtitle{font-size: 13px;}}
.contact-page-section{padding-top: 2rem;padding-bottom: 5rem;}
.contact-page-wrapper{border-radius: 20px;overflow: hidden;box-shadow: 0 32px 80px rgba(0,0,0,0.13);display: flex;}
.contact-info-panel{background: linear-gradient(160deg, #0d1b2e 0%, #1a3556 100%);padding: 3.5rem 2.5rem;display: flex;flex-direction: column;min-height: 100%;position: relative;overflow: hidden;}
.contact-info-panel::before{content: '';position: absolute;inset: 0;background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,0.04) 1px, transparent 0);background-size: 28px 28px;pointer-events: none;}
.contact-info-panel::after{content: '';position: absolute;bottom: -60px;right: -60px;width: 220px;height: 220px;border-radius: 50%;background: radial-gradient(circle, rgba(59,130,246,0.15) 0%, transparent 70%);pointer-events: none;}
.contact-info-brand{font-size: 0.68rem;letter-spacing: 0.22em;text-transform: uppercase;color: rgba(255,255,255,0.35);margin-bottom: 2.25rem;font-weight: 600;}
.contact-info-heading{font-size: 1.65rem;font-weight: 700;color: #fff;line-height: 1.2;margin-bottom: 0.75rem;letter-spacing: -0.02em;}
.contact-info-lead{color: rgba(255,255,255,0.52);font-size: 0.9rem;line-height: 1.7;margin-bottom: 2.75rem;}
.contact-info-items{display: flex;flex-direction: column;gap: 1.6rem;flex: 1;}
.contact-info-item{display: flex;align-items: flex-start;gap: 1rem;}
.contact-info-icon-wrap{width: 42px;height: 42px;min-width: 42px;border-radius: 11px;background: rgba(255,255,255,0.07);border: 1px solid rgba(255,255,255,0.1);display: flex;align-items: center;justify-content: center;color: #60a5fa;font-size: 1rem;transition: background 0.25s, border-color 0.25s;}
.contact-info-item:hover .contact-info-icon-wrap{background: rgba(96,165,250,0.14);border-color: rgba(96,165,250,0.35);}
.contact-info-text{display: flex;flex-direction: column;gap: 0.18rem;padding-top: 0.1rem;}
.contact-info-label{font-size: 0.65rem;text-transform: uppercase;letter-spacing: 0.12em;color: rgba(255,255,255,0.35);font-weight: 600;}
.contact-info-value{color: rgba(255,255,255,0.88);font-size: 0.93rem;line-height: 1.5;font-weight: 500;}
a.contact-info-value{text-decoration: none;transition: color 0.2s;}
a.contact-info-value:hover{color: #93c5fd;}
.contact-info-divider{height: 1px;background: rgba(255,255,255,0.07);margin: 2.25rem 0 1.75rem;}
.contact-form-panel{background: #fff;padding: 3.5rem 3rem;flex: 1;}
.contact-form-panel .form-section-title{font-size: 1.35rem;font-weight: 700;color: #0d1b2e;letter-spacing: -0.02em;margin-bottom: 0.35rem;}
.contact-form-panel .form-section-sub{color: #94a3b8;font-size: 0.875rem;margin-bottom: 2rem;}
.contact-info-col{width: 340px;min-width: 280px;display: flex;flex-shrink: 0;}
.autocomplete-dropdown{position: absolute;top: 100%;left: 0;right: 0;margin-top: 10px;padding: 10px;z-index: 1000;}
@media (max-width: 991px){.contact-page-wrapper{flex-direction: column;} .contact-info-col{width: 100%;min-width: 0;} .contact-info-panel{padding: 2rem 1.75rem;} .contact-info-panel::after{display: none;} .contact-form-panel{padding: 2.5rem 2rem;} .contact-info-heading{font-size: 1.3rem;margin-bottom: 0.5rem;} .contact-info-lead{margin-bottom: 1.75rem;font-size: 0.85rem;} .contact-info-items{flex-direction: row;flex-wrap: wrap;gap: 1rem;} .contact-info-item{flex: 1 1 140px;} .contact-info-divider{display: none;}}
@media (max-width: 575px){.contact-info-panel{padding: 1.5rem 1.25rem;} .contact-form-panel{padding: 1.75rem 1.25rem;} .contact-info-brand,.contact-info-heading,.contact-info-lead{display: none;} .contact-info-items{flex-direction: column;gap: 1rem;} .contact-info-item{flex: none;} .contact-info-icon-wrap{width: 38px;height: 38px;min-width: 38px;} .contact-info-value{font-size: 0.9rem;}}
