/* Contatti Modern - Libemax */
.contact-section{padding:20px;max-width:1200px;margin:0 auto;position:relative}
.background-roads{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden}
#background-map{width:100%;height:100%;opacity:0.7}
.leaflet-control-container{display:none!important}
#background-map .leaflet-container{cursor:default!important}
.main-content{display:grid;grid-template-columns:1fr 1.5fr;gap:60px;align-items:start;position:relative;z-index:2}
.section-header{text-align:center;margin-bottom:60px;position:relative;z-index:2}
.section-header .title{color:#646363;font-weight:700;font-size:2rem;margin-bottom:15px}
.company-info{margin:0 auto;max-width:800px}
.company-info strong{color:#e91e63}

/* Vignette Marker */
.vignette-link{margin-top:85px;text-decoration:none;color:inherit;display:block;transition:all 0.3s ease}
.vignette-link:hover .vignette-marker{transform:translateY(-3px);box-shadow:0 0 0 5px rgba(233,30,99,0.25),0 25px 50px rgba(0,0,0,0.2)}
.vignette-link:hover .vignette-icon{transform:translateX(-50%) translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,0.25)}
.vignette-marker{position:relative;background:white;width:180px;height:200px;border-radius:50px 50px 50px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto;box-shadow:0 0 0 5px rgba(233,30,99,0.15),0 20px 40px rgba(0,0,0,0.15);animation:float 4s ease-in-out infinite;z-index:10;padding:30px 20px 20px;cursor:pointer;transition:all 0.3s ease}
.vignette-marker::after{content:'';position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:15px solid transparent;border-right:15px solid transparent;border-top:22px solid #d81b60}
.vignette-icon{position:absolute;top:-25px;left:50%;transform:translateX(-50%);width:50px;height:50px;background:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;z-index:15;transition:all 0.3s ease}
.vignette-text{color:#e91e63;font-weight:600;font-size:13px;text-align:center;line-height:1.4;padding:0 10px;margin-top:15px}
.vignette-text .company-name{font-size:16px;margin-bottom:10px;font-weight:700;letter-spacing:1px}
.vignette-text .address-line{margin-bottom:4px;font-size:12px}
.vignette-text .contact-line{font-size:12px;margin-bottom:3px;font-weight:700}

/* Contact Form */
.contact-form_c{background:white;padding:40px;border-radius:15px;box-shadow:0 10px 30px rgba(0,0,0,0.1);border:1px solid #eee}

/* Floating Inputs */
.input-group-floating{position:relative;margin-bottom:1.5rem}
.input-floating{width:100%;padding:1.2rem 1rem 0.6rem;font-size:1rem;border:2px solid #dee2e6;border-radius:8px;outline:none;background:white;transition:all 0.3s ease;color:#646363;min-height:60px;box-sizing:border-box}
.input-floating:focus{border-color:#e91e63;box-shadow:0 0 0 3px rgba(233,30,99,0.1);transform:translateY(-1px)}
.label-floating{position:absolute;left:1rem;top:50%;transform:translateY(-50%);background:white;padding:0 0.5rem;color:#999;font-size:1rem;pointer-events:none;transition:all 0.3s cubic-bezier(0.25,0.46,0.45,0.94);border-radius:4px;display:flex;align-items:center;gap:0.5rem}
.input-floating:focus~.label-floating,.input-floating:not(:placeholder-shown)~.label-floating{top:0;transform:translateY(-50%) scale(0.85);color:#e91e63;font-weight:600;background:white;box-shadow:0 2px 8px rgba(0,0,0,0.1)}
.input-floating.textarea{height:150px;resize:vertical}
.label-icon{max-height:14px;width:auto}

/* Phone Prefix */
.phone-floating-group .phone-floating-wrapper{display:flex;width:100%}
.phone-floating-group .phone-prefix-select{width:0;flex:0 0 0;padding:0;font-size:1rem;border:2px solid #dee2e6;border-right:1px solid #dee2e6;border-radius:8px 0 0 8px;outline:none;background:white;color:#646363;min-height:60px;overflow:hidden;opacity:0;transition:all 0.3s ease;cursor:pointer}
.phone-floating-group:has(.input-floating:focus) .phone-prefix-select,.phone-floating-group:has(.input-floating:not(:placeholder-shown)) .phone-prefix-select{width:85px;flex:0 0 85px;padding:1.2rem 0.5rem 0.6rem;opacity:1}
.phone-floating-group:has(.input-floating:focus) .phone-prefix-select{border-color:#e91e63;box-shadow:0 0 0 3px rgba(233,30,99,0.1);clip-path:inset(-3px -0px -3px -3px);transform:translateY(-1px)}
.phone-floating-group .phone-floating-wrapper .input-floating{border-radius:8px;flex:1;transition:all 0.3s ease}
.phone-floating-group:has(.input-floating:focus) .phone-floating-wrapper .input-floating,.phone-floating-group:has(.input-floating:not(:placeholder-shown)) .phone-floating-wrapper .input-floating{border-radius:0 8px 8px 0;border-left:none}
.phone-floating-group .phone-floating-wrapper .input-floating:focus{clip-path:inset(-3px -3px -3px -0px)}
.phone-floating-group .phone-floating-wrapper+.label-floating{left:1rem;top:50%;transform:translateY(-50%);transition:all 0.3s ease}
.phone-floating-group:has(.input-floating:focus) .phone-floating-wrapper+.label-floating,.phone-floating-group:has(.input-floating:not(:placeholder-shown)) .phone-floating-wrapper+.label-floating{left:1rem;top:0;transform:translateY(-50%) scale(0.85);color:#e91e63;font-weight:600;background:white;box-shadow:0 2px 8px rgba(0,0,0,0.1)}

/* Checkboxes */
.contact-check{display:flex;align-items:flex-start;gap:8px;margin-bottom:1rem}
.contact-check-input{width:16px;height:16px;margin-top:3px;flex-shrink:0;accent-color:#e91e63;cursor:pointer}
.contact-check-label{font-size:14px;color:#333;cursor:pointer}
.contact-check-label a{color:#e91e63;text-decoration:none;font-weight:600}
.contact-check-label a:hover{text-decoration:underline}

/* Product Cards */
.prodotto-card{border:2px solid #dee2e6;border-radius:12px;padding:15px 10px;cursor:pointer;transition:all 0.3s ease;background:white}
.prodotto-card:hover{border-color:#e91e63;box-shadow:0 4px 15px rgba(233,30,99,0.15)}
.prodotto-check:checked+.prodotto-card{border-color:#e91e63;background:rgba(233,30,99,0.05);box-shadow:0 4px 15px rgba(233,30,99,0.2)}

/* Animation */
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* Responsive */
@media(max-width:991px){
.main-content{grid-template-columns:1fr;gap:40px;display:flex;flex-direction:column}
.contact-form_c{order:1;padding:30px 20px;width:100%;max-width:100%;margin:0;box-sizing:border-box}
.vignette-link{order:2;margin-top:20px;margin-bottom:100px;align-self:center;width:auto}
.input-floating{padding:1rem 0.75rem 0.5rem;min-height:55px;width:100%;box-sizing:border-box}
}
