body {
    overflow-x: hidden!important;
}

.owl-stage-outer {
    overflow: hidden!important;
}

.zony-editor .flex-lg-row-reverse .image-box img {
    float: unset;
}

.zony-editor .image-box img{
    max-width: 100%;
}

.zony-editor .flex-lg-row-reverse .content_block_1 .content-box {
    margin-left: 0;
    margin-right: 40px;
}

.zony-editor > .auto-container .row {
    padding-bottom: 40px;
}

.zony-editor > .auto-container .row + .row {
    padding-top: 40px;
}

.news-section .shape {
    position: absolute;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100px;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
}

.banner-style-two .pattern-layer {
    height: 110%;
}

.mb-40 {
    margin-bottom: 40px;
}

.news-section h2, .bold-h2 {
    font-size: 40px;
    line-height: 55px;
    font-weight: 700;
}

.news-block-one .inner-box {
    background-color: transparent;
}

.main-menu .navigation > li > ul > li > a:hover {
    color: #fff;
    font-weight: 700;
}

p {
    position: relative;
    font-family: "Plus Jakarta Sans", sans-serif;
    color: #2a2a2a;
    font-weight: 400;
    margin: 0px;
    transition: all 500ms ease;
    font-size: 18px;
    line-height: 25px;
}

.page-title * {
    color: #fff!important;
}

.page-title .bread-crumb li:before {
    background-color: #fff;
}

.zony-editor .col-md-4 {
    margin-bottom: 30px;
}

.zony-editor .video-inner .inner-box {
    position: relative;
    width: 100%;
    padding: 135px 0px;
    text-align: center;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}

.zony-editor .video-inner {
    position: relative;
    width: 100%;
    background-color: #fff;
    padding: 15px;
    box-shadow: 0px 20px 50px 0px rgb(0 0 0 / 10%);
}

.zony-editor .video-inner .inner-box:before {
    position: absolute;
    content: '';
    background-color: #172746;
    width: 100%;
    height: 100%;
    left: 0px;
    top: 0px;
    opacity: 0.2;
}

.zony-editor .video-inner .inner-box .video-btn a {
    position: relative;
    display: inline-block;
    font-size: 40px;
    color: #fff;
    width: 120px;
    height: 120px;
    line-height: 108px;
    border: 10px solid #fff;
    border-radius: 50%;
}

.zony-editor .video-inner .inner-box .video-btn a:after, .zony-editor .video-inner .inner-box .video-btn a:before {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: transparent;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-animation-delay: .9s;
    animation-delay: .9s;
    content: "";
    position: absolute;
    -webkit-box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.9);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.9);
    -webkit-animation: ripple 3s infinite;
    animation: ripple 3s infinite;
    -webkit-transition: all .4s ease;
    transition: all .4s ease;
}

.col-auto-center {
    margin: 0 auto;
}

.main-footer .contact-widget .info-list li i, .footer-bottom .copyright p a {
    color: #fff;
}
.zony-editor a {
    color: #2a2a2a;
    text-decoration: underline;
}

@media screen and (max-width: 1201px){
    .outer-box {
        display: flex!important;
    }

    .outer-box .logo-box {
        width: 80%;
    }

    .outer-box .menu-area {
        width: 20%;
    }

    /* iframe {
        min-height: 400px;
    } */
}

@media screen and (max-width: 991px){
    .video-gallery {
        margin-bottom: 40px;
    }

    .auto-container {
        max-width: 760px;
    }

    .main-header .logo-box .logo img {
        width: auto;
        max-height: 90px;
    }
}

@media screen and (max-width: 768px){
    .zony-editor > .auto-container .row {
        padding-bottom: 20px;
    }

    .zony-editor > .auto-container .row + .row {
        padding-top: 20px;
    }

    .content_block_1 .content-box .text {
        margin-bottom: 10px;
    }

    .gallery-block-one .inner-box {
        margin-bottom: 0;
    }
}

.banner-carousel .slide-item {
    min-height: 60vh;
}

.footer-logo img {
    max-width: 200px;
}

.news-block-one h4 {
    min-height: 80px;
}

.news-block-one .text {
    min-height: 140px;
}

.partner img {
    max-height: 150px;

}

.partner figure {
    text-align: center;
    min-height: 150px;
}

.partner-link {
    color: #172746;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-weight: 700;
    margin-top: 20px;
    display: block;
    text-transform: uppercase;

}

.table-responsive table {
    width: 100%!important;
}

.col-homepage .inner-box {
    position: relative;
    overflow: hidden;
}

.col-homepage .inner-box img {
    transition: all 0.3s ease;
    width: 100%;
    filter: brightness(0.2);
    transform: scale(1);

}

.col-homepage .inner-box h4 {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    opacity: 1;
    transition: all 0.3s ease;
    text-align: center;
    z-index: 2;
    width: 100%;
}

.col-homepage .inner-box:hover img {
    filter: brightness(1);
    transform: scale(1.1);
}

.col-homepage .inner-box:hover h4 {
    opacity: 0;
}


.mb-20 {
    margin-bottom: 20px;
}

.mb-40 {
    margin-bottom: 40px;
}

.mb-60 {
    margin-bottom: 60px;
}

.contact-green-banner {
    background-color: #4eb41f;
}
.contact-green-banner .row {
    min-height: 70vh;
    margin: 0;
}
.contact-green-banner .contact-green-image img {
    width: 100%;
    height: 88vh;
    display: block;
    object-fit: cover;
    object-position: center center;
}
.contact-green-banner .contact-green-image {
    min-height: 85vh;
    padding: 0;
}
.contact-green-banner .contact-green-image,
.contact-green-banner .contact-green-form {
    height: 100%;
}
.contact-green-banner .contact-green-form .form-inner{
    padding: 50px;
}
.contact-green-banner .contact-green-form .form-inner {
    background: transparent;
    box-shadow: none;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.contact-green-banner h3 {
    margin-bottom: 50px;
}
.contact-green-banner h3,
.contact-green-banner .checkbox-label,
.contact-green-banner .checkbox-label a {
    color: #fff;
}
.contact-green-banner input,
.contact-green-banner textarea,
.contact-green-banner select {
    background: #fff;
    color: #172746;
    border: 1px solid rgba(255,255,255,0.7);
    box-shadow: none;
}
.contact-green-banner input::placeholder,
.contact-green-banner textarea::placeholder {
    color: #556;
}
.contact-green-banner .theme-btn.btn-one {
    background: #fff;
    color: #172746 !important;
    border-color: #fff;
}
@media screen and (max-width: 767px){
    .contact-green-banner .contact-green-image {
        margin-bottom: 16px;
    }
    .contact-green-banner .row {
        min-height: auto;
    }
}

@media screen and (max-width: 991px){
    .contact-green-banner .contact-green-image, .contact-green-banner .contact-green-image img {
        min-height: 400px;
        max-height: 400px;
        margin: 0;
        padding: 0;
    }
}

.pb60-section {
    padding-bottom: 60px;
    padding-top: 60px;
}


.config-option {
    cursor: pointer;
    transition: all 0.1s ease;
    border: 2px solid transparent;
}

.config-option:hover img {

    transform: scale(1.03);
}

.config-option.selected {
    transform: scale(1.05);
    border: 2px solid #4eb41f;
    animation: expandToQuadrant 0.3s ease forwards;
    z-index: 2;
    position: relative;
}

@keyframes expandToQuadrant {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.05);
    }
}

.config-option img {
    width: 100%;
    height: auto;
    background-color: #4eb41f;
    padding: 10px;
}

.progress {
    height: 8px;
    border-radius: 4px;
}

.form-control {
    padding: 12px;
    border-radius: 8px;
}

.progress-bar {
    background-color: #4eb41f;
}

.btn-primary {
    background-color: #4eb41f;
    border-color: #4eb41f;
}

.page-title {
    background-color: #4eb41f;
}

p + p {
    margin-bottom: 20px;
}

.cta-banner-section {
    text-align: center;
    background-color: #4eb41f;
}

.cta-banner-section h4, .cta-banner-section p {
    color: #fff;
}

.cta-banner-section h4 {
    margin-bottom: 20px;
    min-height: 90px;
    margin-top: 40px;
}

.cta-banner-section .btn-cta {
    background-color: #fff;
    color: #4eb41f;
    border-color: #fff;
    padding: 20px 40px;
    display: inline-block;
}

.cta-banner-section .btn-cta:hover {
    border-color: #fff;
    background-color: transparent;
}


@media screen and (max-width: 991px){
    #configuratore h3 {
        margin-top: 30px;
    } 

    .zony-editor .flex-lg-row-reverse .content_block_1 .content-box {
        margin-right: 0;
        margin-top: 30px;
    }

    .col-homepage {
        margin-bottom: 30px;
    }

    .news-block-one .inner-box .lower-content {
        padding-left: 30px;
        padding-right: 30px;
    }
}

.side-buttons {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 999;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.side-button {
    display: flex;
    align-items: center;
    background-color: #333;
    color: white;
    padding: 12px 15px;
    border-radius: 4px 0 0 4px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    text-decoration: none;
    transition: all 0.3s ease;
    width: 50px;
    overflow: hidden;
}

.side-button i {
    font-size: 20px;
    min-width: 20px;
}

.side-button span {
    white-space: nowrap;
    margin-left: 15px;
    opacity: 0;
    transition: opacity 0.3s ease;
    display: none;
}

/* MODIFICA: Quando si fa hover sul contenitore, tutti i pulsanti si allargano */
.side-buttons:hover .side-button {
    width: 280px;
}

.side-buttons:hover .side-button span {
    opacity: 1;
    display: inline;
}

.btn-whatsapp { background-color: #4eb41f; }
.btn-phone { background-color: #007bff; }
.btn-contact { background-color: #6a6051; }
.btn-tollfree { background-color: #28a745; }

.btn-google-reviews {
            display: inline-flex;
            align-items: center;
            padding: 12px 24px;
            text-decoration: none;
            border-radius: 8px;
            font-weight: 600;
            font-size: 16px;
            box-shadow: 0 4px 12px rgba(0,0,0,0.15);
            transition: all 0.3s ease;
            border: none;
        }
        
        .btn-google-reviews:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(0,0,0,0.2);
            color: rgb(0, 0, 0);
            text-decoration: none;
        }
        
        .google-icon {
            width: 24px;
            height: 24px;
            margin-right: 12px;
            background: white;
            border-radius: 4px;
            padding: 2px;
        }
        
        .btn-google-reviews i {
            margin-left: 8px;
            font-size: 14px;
        }
        
        @media (max-width: 768px) {
            .btn-google-reviews {
                font-size: 14px;
                padding: 10px 20px;
            }
            .btn-google-reviews span {
                display: none;
            }
            .btn-google-reviews::after {
                content: "Scopri tutte le recensioni";
                margin-left: 8px;
            }
        }


        @media screen and (min-width: 992px) and (max-width: 1199px) {
            
            .auto-container{
            position:static;
            max-width:1000px;
            padding:0px 15px;
            margin:0 auto;
            }
        }

.second-cta {
    margin-left: 30px;
}

.second-cta, .second-cta a {
    color: #fff;
    font-size: 20px;
}

.mt-40 {
    margin-top: 40px;
}

.cta-banner-section .theme-btn.btn-one {
    border: 2px solid white;
        padding: 20px 40px;
    margin-top: 40px;
    display: inline-block;
}

.mb-10 {
    margin-bottom: 10px;
}

.mt-10 {
    margin-top: 10px;
}

.handicare-banner {
    padding: 20px;
    background: #2d2e2e;
}

.handicare-banner h2 {
    margin-top: 5px;
}

.handicare-banner img {
    max-height: 50px; 
    margin-left: 20px; 
    display: inline;
}

.page-preventivo .service-section{padding-top:40px;padding-bottom:40px;}
.page-preventivo .preventivo-hero{padding-top:64px;padding-bottom:64px;}
.page-preventivo .preventivo-features{padding-top:20px;padding-bottom:20px;}
.page-preventivo .preventivo-steps{padding-top:60px;padding-bottom:60px;}

.page-preventivo .hero-title{font-size:34px;line-height:1.2;}
.page-preventivo .content-box p{margin-bottom:16px;}
.page-preventivo .hero-features i{font-size:20px;color:#4eb41f;margin-right:8px;}
.page-preventivo .hero-features li{margin-bottom:15px;}
.page-preventivo .hero-features li:last-child{margin-bottom:0;}
.page-preventivo .hero-cta .theme-btn{margin-top:8px;}
.page-preventivo .video-embed{position:relative;padding-top:56.25%;border-radius:10px;overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,0.08);}
.page-preventivo .video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;}

.page-preventivo .feature-card{background:#fff;border:1px solid #eee;border-radius:12px;padding:24px;height:100%;box-shadow:0 4px 12px rgba(0,0,0,0.04);}
.page-preventivo .feature-card .icon-box i{font-size:36px;color:#4eb41f;}
.page-preventivo .feature-card h4 {
    margin-top: 14px;
    min-height: 60px;
}
.page-preventivo .feature-card p{margin-top:25px;}

.page-preventivo .steps-title{font-size:48px;margin-bottom:40px;}
.page-preventivo .step-card{background:#f9fafb;border:1px solid #eee;border-radius:12px;padding:24px;height:100%;}
.page-preventivo .step-badge{display:inline-block;padding:6px 12px;font-size:14px;border-radius:9999px;margin-bottom:8px;}
.page-preventivo .step-card h4{margin-top:10px;margin-bottom:20px}
.mt-30 {margin-top: 30px}

/* CTA section styling: complementary to green (brand blue) */
.page-preventivo .cta-section.style-two{background:#002c8f;padding:32px 0;}
.page-preventivo .cta-section.style-two h3,
.page-preventivo .cta-section.style-two p,
.page-preventivo .cta-section.style-two strong{color:#fff;}
.page-preventivo .cta-section.style-two .theme-btn.btn-one{background:#fff;color:#002c8f !important;}
.page-preventivo .contact-style-two h3 {font-size: 40px; margin-bottom: 60px; line-height: 1.2;}

/* Form section styling: green background with high contrast inputs */
.page-preventivo #preventivo-form{background:#4eb41f;}
.page-preventivo #preventivo-form .form-inner{background:transparent;box-shadow:none;}
.page-preventivo #preventivo-form h3,
.page-preventivo #preventivo-form .checkbox-label,
.page-preventivo #preventivo-form label{color:#fff;}
.page-preventivo #preventivo-form .checkbox-label a{color:#fff;text-decoration:underline;}
.page-preventivo #preventivo-form input,
.page-preventivo #preventivo-form textarea,
.page-preventivo #preventivo-form select{
    background:#fff;
    color:#172746;
    border:1px solid rgba(255,255,255,0.7);
    box-shadow:none;
}
.page-preventivo #preventivo-form input::placeholder,
.page-preventivo #preventivo-form textarea::placeholder{
    color:#556;
}
.page-preventivo #preventivo-form .theme-btn.btn-one{
    background:#fff;
    color:#172746 !important;
    border-color:#fff;
}

.mb-30 {
    margin-bottom: 30px;
}

@media (max-width:767px){
    .page-preventivo .hero-title{font-size:28px;}
    .page-preventivo .feature-card .icon-box i{font-size:30px;}
    .page-preventivo .preventivo-hero .content-box{margin-bottom:20px;}
    .page-preventivo .video-embed{margin-top:12px;}
    .page-preventivo .preventivo-features{margin-top:20px;}
    .page-preventivo .preventivo-steps{padding-top:20px;padding-bottom:20px;}
    .sm-mb-30 {
    margin-bottom: 30px;
    }
    .page-title {
    padding-top: 40px;
    padding-bottom: 40px;
    }
    .page-title h1 {
    font-size: 36px;
    line-height: 1.2;
    }
}
/* --- Consulenza Map Styles --- */
#svg-map-container svg {
    width: 100%;
    height: auto;
    max-width: 600px;
    margin: 0 auto;
    display: block;
}
#svg-map-container svg path {
    fill: #e0e0e0;
    stroke: #ffffff;
    stroke-width: 1;
    transition: fill 0.3s ease;
    cursor: default;
}
#svg-map-container svg path.has-consultant {
    cursor: pointer;
    fill: #daf5d0;
}
#svg-map-container svg path.has-consultant:hover {
    fill: #4eb41f;
}
#svg-map-container svg path.active {
    fill: #3a8e13;
}
.consulente-card {
    border: 1px solid #eee;
    padding: 20px;
    margin-bottom: 20px;
    background: #fff;
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    transition: all 0.3s ease;
}
.consulente-card.hidden {
    display: none;
}
.consulente-card.visible {
    display: block;
    animation: fadeIn 0.5s;
}
.consulente-info h4 {
    margin-bottom: 15px;
    color: #6a6052;
    font-weight: 700;
    border-bottom: 2px solid #f0f0f0;
    padding-bottom: 10px;
}
.citta-list ul {
    display: flex;
    flex-wrap: wrap;
    padding-left: 0;
    margin-bottom: 0;
}
.citta-list li {
    width: 50%;
    margin-bottom: 10px;
    font-size: 16px;
    color: #555;
}
@media (max-width: 576px) {
    .citta-list li {
        width: 100%;
    }
}
.region-name-display {
    font-size: 1.5em;
    font-weight: bold;
    margin-bottom: 20px;
    color: #333;
    min-height: 1.5em;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.instruction-text {
    text-align: center;
    color: #666;
    margin-bottom: 30px;
    margin-top: 30px;
}
#region-select {
    display: block !important;
    width: 100%;
    padding: 10px 15px;
    border: 1px solid #e5e5e5;
    border-radius: 0px;
    height: auto;
    line-height: normal;
    background-color: #fff;
    appearance: auto;
    -webkit-appearance: auto;
    -moz-appearance: auto;
}
#region-select + .nice-select {
    display: none !important;
}

.pt-40 {
    padding-top: 40px!important;
}

@media screen and (max-width: 767px) {
    .contact-green-banner .contact-green-form .form-inner {
        padding: 40px 0px;
    }
}

.recensioni .masonry-wrapper {
    column-count: 3;
    column-gap: 30px;
}
@media (max-width: 991px) {
    .recensioni .masonry-wrapper {
        column-count: 2;
    }
}
@media (max-width: 767px) {
    .recensioni .masonry-wrapper {
        column-count: 1;
    }
}
.recensioni .masonry-item {
    break-inside: avoid; /* Prevent breaking across columns */
    margin-bottom: 30px;
    background: #fff;
    box-shadow: 0 0 20px rgba(0,0,0,0.1);
    border-radius: 10px;
    padding: 30px;
    display: inline-block; /* Fix for column-count */
    width: 100%;
}

/* Adjust internal spacing */
.recensioni .testimonial-block-one .inner-box {
    padding: 0;
    margin: 0;
}

.recensioni .testimonial-block-one .inner-box h5 {
    margin-top: 15px;
    font-weight: 600;
    color: #002c8f; /* Blue color */
}

.recensioni .rating li {
    display: inline-block;
    color: #ffab01;
    font-size: 14px;
}

.recensioni .rating {
    margin-bottom: 15px;
}

.recensioni .google-btn-container {
    margin-bottom: 50px;
}