/*
Theme Name: Uncode Child
Description: Child theme for Uncode theme
Author: Undsgn™
Author URI: http://www.undsgn.com
Template: uncode
Version: 1.0.0
Text Domain: uncode
*/

@import url('https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

.btn:not(.btn-custom-typo):not(.btn-inherit):not(.uncode-nav-container) {
    font-family: 'Barlow' !important;
}
.top-menu.navbar.menu-secondary.menu-dark.submenu-dark.style-color-wayh-bg.top-menu-padding.top-menu-enhanced.triple-h-padding {
    background-color: #4070af;
}
.main-container .row-container .row-parent .single-internal-gutter .uncont > *:not(.uncode-owl-nav-wrap):not(.pin-spacer):not([data-sticky]), .block-wrapper-parent .row-container .row-parent .single-internal-gutter .uncont > *:not(.uncode-owl-nav-wrap):not(.pin-spacer):not([data-sticky]), .has-unblock .row-container .row-parent .single-internal-gutter .uncont > *:not(.uncode-owl-nav-wrap):not(.pin-spacer):not([data-sticky]), .main-container .row-container .row-parent .row-parent .single-internal-gutter .uncont > *:not(.uncode-owl-nav-wrap):not(.pin-spacer):not([data-sticky]), .block-wrapper-parent .row-container .row-parent .row-parent .single-internal-gutter .uncont > *:not(.uncode-owl-nav-wrap):not(.pin-spacer):not([data-sticky]), .has-unblock .row-container .row-parent .row-parent .single-internal-gutter .uncont > *:not(.uncode-owl-nav-wrap):not(.pin-spacer):not([data-sticky]), .main-container .row-container .row-parent .single-internal-gutter .uncont > .uncode-owl-nav-wrap > *:not(.pin-spacer):not([data-sticky]), .block-wrapper-parent .row-container .row-parent .single-internal-gutter .uncont > .uncode-owl-nav-wrap > *:not(.pin-spacer):not([data-sticky]), .has-unblock .row-container .row-parent .single-internal-gutter .uncont > .uncode-owl-nav-wrap > *:not(.pin-spacer):not([data-sticky]), .main-container .row-container .row-parent .row-parent .single-internal-gutter .uncont > .uncode-owl-nav-wrap > *:not(.pin-spacer):not([data-sticky]), .block-wrapper-parent .row-container .row-parent .row-parent .single-internal-gutter .uncont > .uncode-owl-nav-wrap > *:not(.pin-spacer):not([data-sticky]), .has-unblock .row-container .row-parent .row-parent .single-internal-gutter .uncont > .uncode-owl-nav-wrap > *:not(.pin-spacer):not([data-sticky]) {
    margin-top: 20px;
}
p, .headings-style, h1, h2, h3, h4, h5, h6, .heading-text>p, .heading-text>div:first-child, .tmb .t-entry .t-entry-cat, .tmb .t-entry .t-entry-title, .tmb .t-entry .t-entry-table-typography, .vc_pie_chart .vc_pie_chart_value, ul.dwls_search_results .daves-wordpress-live-search_title .search-title {
    font-family: 'Barlow'
}

p {
    font-size: 1.2rem;
    font-weight: 500;
}

.menu-btn-cell .btn:not(.btn-custom-typo):not(.btn-inherit):not(.uncode-nav-container) {
    margin-left: 36px;
}

.headings-style, h1, h2, h3, h4, h5, h6, .heading-text>p, .heading-text>div:first-child, .tmb .t-entry .t-entry-cat, .tmb .t-entry .t-entry-title, .tmb .t-entry .t-entry-table-typography, .vc_pie_chart .vc_pie_chart_value, ul.dwls_search_results .daves-wordpress-live-search_title .search-title {
    font-weight: 500;
}

.uncode-slider .btn:not(.btn-custom-typo):not(.btn-inherit):not(.uncode-nav-container) {
    margin-left: 0;
}

.uncode-slider .btn:not(.btn-custom-typo):not(.btn-inherit):not(.uncode-nav-container) {
    margin-left: 0;
    font-size: 1.2rem;
}

.blocco-testo-slide .uncell.no-block-padding .uncont {
    width: 75% !important;
    margin-left: 15% !important;
    margin-top: 12% !important;
}

h1:not([class*="fontsize-"]), .h1:not([class*="fontsize-"]) {
    font-size: 3rem;
}

.uncode-slider p {
    font-size: 1.3rem;
    line-height: 1.5;
}

.uncode-slider h1, .uncode-slider p {
    text-shadow: 1px 1px 1px #000;
}

.font-family-menu, .menu-container:not(.grid-filters) ul.menu-smart, .top-menu.top-menu-enhanced ul.menu-smart, .menu-container:not(.grid-filters) ul.menu-smart a:not(.social-menu-link):not(.vc_control-btn), .top-menu.top-menu-enhanced ul.menu-smart a:not(.social-menu-link):not(.vc_control-btn), .uncode-menu-additional-text, .unmenu-block, .burger-label, #masthead .overlay .overlay-search-wrapper .search-container form .search-container-inner input {
    font-family: 'Barlow';
}

.menu-light .menu-smart a:not(.un-submenu *), .submenu-light .menu-smart ul a:not(.block-wrapper-parent *), .submenu-light .overlay-search {
    color: #4070af;
    text-transform: uppercase;
}

.font-weight-menu, .menu-container:not(.grid-filters) ul.menu-smart>li>a:not(.social-menu-link), .top-menu.top-menu-enhanced ul.menu-smart>li>a:not(.social-menu-link), .menu-container:not(.grid-filters) ul.menu-smart li.dropdown>a, .top-menu.top-menu-enhanced ul.menu-smart li.dropdown>a, .menu-container:not(.grid-filters) ul.menu-smart li.mega-menu>a, .top-menu.top-menu-enhanced ul.menu-smart li.mega-menu>a, .menu-container:not(.vmenu-container):not(.grid-filters) ul.menu-smart>li>a:not(.social-menu-link):not(.vc_control-btn), .menu-smart i.fa-dropdown, .unmenu-block i.fa-dropdown, .vmenu-container a:not(.has-unblock *), .unmenu-block .unmenu-title {
    font-weight: 400;
    letter-spacing: 0.05em;
}

.menu-light .menu-smart>li.active>a:not(.block-wrapper-parent *), .menu-light .menu-smart>li.current-menu-item:not(.menu-item-type-custom)>a:not(.block-wrapper-parent *) {
    color: #4070af;
    text-decoration: underline;
}

.btn:not(.btn-custom-typo):not(.btn-inherit):not(.uncode-nav-container) {
    border-color: #E78F3F;
    border-radius: 16px;
    background-color: #E78F3F;
    color: #fff;
    font-weight: 400;
    letter-spacing: 0.05em;
    font-size: 1.25rem;
    font-family: 'Barlow';
}

.foo-title h4.h4 {
    color: #E78F3F;
    font-family: 'Barlow';
    font-weight: 500;
    font-size: 1.5rem;
}

.foo-text {
    margin-top: 18px;
}
.foo-text p, .foo-text a {
    color: #222 !important;
    text-transform: uppercase;
    font-family: 'Barlow';
    font-size: 1.2rem;
	font-weight:500 !important;
}

footer i.fa.fa-facebook {
    color: #1877F2;
}

#footer-copy p, #footer-copy a {
    font-family: 'Barlow';
}

footer ul.sub-menu {
    display: none;
}

.info-col h2.h2 {
    font-size: 2.4rem;
    color: #4070AF;
}

.info-col p.h5 {
    color: #E78F3F;
    font-size: 1.2rem;
}

.info-col .vc_custom_heading_wrap {
    margin-top: 8px;
}

.rounded-img img {
    border-radius: 16px;
}

section.azienda-text:before {
    content: '';
    display: block;
    position: absolute;
    top: -14%;
    left: 1%;
    width: 320px;
    background-size: contain;
    background-image: url(/wp-content/uploads/2026/07/Scorri-gruppo-4.webp);
    height: 320px;
    background-repeat: no-repeat;
}

.azienda-text:before {
    content: '';
    display: block;
    position: absolute;
    top: -14%;
    left: 1%;
    width: 320px;
    background-size: contain;
    background-image: url(/wp-content/uploads/2026/07/Scorri-gruppo-4.webp);
    height: 320px;
    background-repeat: no-repeat;
}

section.azienda-text:after {
    content: 'AZIENDA';
    font-family: 'Barlow';
    font-size: 8rem;
    position: absolute;
    bottom: -10%;
    font-weight: 800;
    color: #C8EAF7;
    left: 1%;
    opacity: 0.25;
    z-index: 0;
}

.progetti-text:before {
    content: '';
    display: block;
    position: absolute;
    top: -10%;
    right: 1%;
    width: 320px;
    background-size: contain;
    background-image: url(/wp-content/uploads/2026/07/Raggruppa-47.webp);
    height: 320px;
    background-repeat: no-repeat;
}

section.contatti-text:after {
    content: 'CONTATTI';
    font-family: 'Barlow';
    font-size: 8rem;
    position: absolute;
    bottom: 2%;
    font-weight: 800;
    color: #F9E3D0;
    left: 1%;
}

.servizi-text:before {
    content: '';
    display: block;
    position: absolute;
    bottom: -8%;
    left: 1%;
    width: 300px;
    background-size: contain;
    background-image: url(/wp-content/uploads/2026/07/Raggruppa-48.webp);
    height: 300px;
    background-repeat: no-repeat;
}

section.servizi-text:after {
    content: 'SERVIZI';
    font-family: 'Barlow';
    font-size: 8rem;
    position: absolute;
    bottom: 4%;
    font-weight: 800;
    color: #F9E3D0;
    right: 1%;
}

.servizi-text:after {
    content: 'SERVIZI';
    font-family: 'Barlow';
    font-size: 8rem;
    position: absolute;
    bottom: 4%;
    font-weight: 800;
    color: #F9E3D0;
    right: 1%;
}

section.black-border {
    border-bottom: 2px solid #999;
}

.black-border {
    border-bottom: 2px solid #999;
}

.link-servizi span.btn-container {
    margin-top: 16px;
}

.link-servizi a.custom-link.btn {
    font-size: 1.3rem;
}

.uncode-slider h1.h1 {
    text-transform: uppercase;
}

.titolo-point {
    font-family: 'Barlow';
    font-size: 1.65rem;
    color: #4070AF;
    font-weight: 500;
    padding-bottom: 14px;
    padding-top: 16px;
}

.focus-point .col-lg-3 {
    padding-left: 13px;

}

.focus-point .col-lg-3 .uncell {
    border: 1px solid #777;
    padding: 26px 16px 26px 16px;
    border-radius: 12px;

}

.focus-point .col-lg-3 .uncell:before {
    display: block;
    position: absolute;
    top: -1.6rem;
    font-size: 2.2rem;
    border: 1px solid #000;
    border-radius: 8px;
    width: 3.2rem;
    text-align: center;
    height: 3.1rem;
    background: #fff;
    color: #E78F3F;
    font-weight: 500;
    font-family: 'Barlow';
}

.focus-point .col-lg-3:first-child .uncell:before {
    content: '1';
}

.focus-point .col-lg-3:nth-child(2) .uncell:before {
    content: '2';
}

.focus-point .col-lg-3:nth-child(3) .uncell:before {
    content: '3';
}

.focus-point .col-lg-3:nth-child(4) .uncell:before {
    content: '4';
}

.middle-size h2.h2 {
    font-size: 2rem;
}

section.sezione-metodo:after {
    content: 'METODO';
    font-family: 'Barlow';
    font-size: 8rem;
    position: absolute;
    bottom: 4%;
    font-weight: 800;
    color: #D0DCEB;
    left: 1%;
}

.loadmore-button a.btn.btn-default.btn-flat {
    border-color: #E78F3F;
    border-radius: 16px;
    background-color: #E78F3F;
}

section.progetti-text:after {
    content: 'PROGETTI';
    font-family: 'Barlow';
    font-size: 8rem;
    position: absolute;
    bottom: 4%;
    font-weight: 800;
    color: #C8EAF7;
    right: 1%;
}

h4.h4 {
    font-size: 1.55em;
    font-weight: 500;
    color: #E78F3F;
}

.contatti-text span.smaller {
    font-size: 1rem;
}

.contatti-text p, .contatti-text a {
    color: #4070AF;
    font-size: 1.25rem;
}

.contatti-text i.fa.fa-facebook {
    margin-left: 10px;
}

.mappa-home iframe {
    border: 2px solid #909090;
    border-radius: 20px;
}

.form-home input, .form-home textarea {
    border-radius: 10px;
    border-color: #909090;
}

.form-home span.wpcf7-list-item-label {
    font-size: 16px;
}

.form-home .wpcf7-list-item input {
    width: 20px;
    height: 20px;
}

.form-home-int {
    border: 2px solid #a6a6a6;
    border-radius: 18px;
    padding-left: 0;
}

.form-home {
    padding-left: 0;
}

.form-home-int .uncell.no-block-padding {
    padding: 36px;
}

.contact-focus-big h4.h4 {
    font-size: 1.7rem;
}

.top-menu-cols-2 a, .top-menu-cols-2 p {
    font-family: 'Barlow';
    font-size: 1.1rem;
}

.top-menu-cols-2 i.fa.fa-phone-handset.fa-2x.fa-fw {
    font-size: 1.2rem;
    margin-right: 8px;
}

.menu-bloginfo.top-enhanced-inner.top-enhanced-left, li#menu-item-172026 a {
    padding-top: 12px;
    padding-bottom: 12px;
}

/* Icon menu */
.ico-id-res a:before {
    content: '';
    display: inline-block;
    width: 40px;
    height: 40px;
    background-image: url('/wp-content/uploads/2026/07/residenziale-idraulica.webp');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    margin-left: -58px;
    margin-top: 6px;
}

.ico-id-res a, .ico-ar-res a, .ico-cl-res a, .ico-ris-res a, .ico-pr-ind a, .ico-id-ind a, .ico-an-ind a, .ico-tr-ind a, .ico-cl-ind a {
    margin-left: 48px;
    line-height: 50px;
}

.ico-ar-res a:before {
    content: '';
    display: inline-block;
    width: 40px;
    height: 40px;
    background-image: url('/wp-content/uploads/2026/07/residenziale-cambio-aria.webp');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    margin-left: -58px;
    margin-top: 6px;
}

.ico-cl-res a:before {
    content: '';
    display: inline-block;
    width: 40px;
    height: 40px;
    background-image: url('/wp-content/uploads/2026/07/residenziale-climatizzazione.webp');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    margin-left: -58px;
    margin-top: 12px;
}

.ico-ris-res a:before {
    content: '';
    display: inline-block;
    width: 46px;
    height: 46px;
    background-image: url('/wp-content/uploads/2026/07/residenziale-riscaldamento.webp');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    margin-left: -58px;
    margin-top: 0px;
}

.ico-pr-ind a:before {
    content: '';
    display: inline-block;
    width: 40px;
    height: 40px;
    background-image: url('/wp-content/uploads/2026/07/industriale-impianti-processo.webp');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    margin-left: -58px;
    margin-top: 8px;
}

.ico-id-ind a:before {
    content: '';
    display: inline-block;
    width: 40px;
    height: 40px;
    background-image: url('/wp-content/uploads/2026/07/industriali-idraulica-aria-compressa.webp');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    margin-left: -58px;
    margin-top: 8px;
}

.ico-an-ind a:before {
    content: '';
    display: inline-block;
    width: 48px;
    height: 48px;
    background-image: url('/wp-content/uploads/2026/07/industriale-atntincendio.webp');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    margin-left: -58px;
    margin-top: 0px;
}

.ico-tr-ind a:before {
    content: '';
    display: inline-block;
    width: 46px;
    height: 46px;
    background-image: url('/wp-content/uploads/2026/07/industriale-termico.webp');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    margin-left: -58px;
    margin-top: 12px;
}

.ico-cl-ind a:before {
    content: '';
    display: inline-block;
    width: 40px;
    height: 40px;
    background-image: url('/wp-content/uploads/2026/07/industriale-climatizzazione.webp');
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    margin-left: -58px;
    margin-top: 8px;
}

.img-res:after {
    content: '';
    display: block;
    position: absolute;
    top: 20px;
    left: 20px;
    width: 70px;
    height: 70px;
    background-image: url(/wp-content/uploads/2026/07/residenziale.webp);
    z-index: 1;
    background-size: 56px;
    background-repeat: no-repeat;
    background-color: #fff;
    border-radius: 10px;
    border: 1px solid #909090;
    background-position: center;
}

.img-ind:after {
    content: '';
    display: block;
    position: absolute;
    top: 20px;
    left: 20px;
    width: 70px;
    height: 70px;
    background-image: url(/wp-content/uploads/2026/07/industriale.webp);
    z-index: 1;
    background-size: 56px;
    background-repeat: no-repeat;
    background-color: #fff;
    border-radius: 10px;
    border: 1px solid #909090;
    background-position: center;
}

.pt-36 {
    padding-top: 36px;
}

@media (min-width: 960px) {
    .vc_custom_heading_wrap.contact-focus.contact-focus-big {
        margin-left: -36px;
    }

    .font-size-menu, .menu-container:not(.grid-filters) ul.menu-smart>li>a:not(.social-menu-link), .menu-container:not(.vmenu-container):not(.grid-filters) ul.menu-smart>li>a:not(.social-menu-link):not(.vc_control-btn), .menu-smart>li>a>div>div>div.btn, .unmenu-block, .burger-label, #masthead .overlay .overlay-search-wrapper .search-container {
        font-size: 1.25rem;
    }

    .font-size-submenu, .menu-horizontal ul ul a:not([data-icon]), .vmenu-container ul ul a:not([data-icon]), .menu-horizontal ul ul .unmenu-title:not(.font-size-title-custom):not(.font-size-custom > *), .vmenu-container ul ul .unmenu-title:not(.font-size-title-custom):not(.font-size-custom > *) {
        font-size: 1.05rem;
    }

    .menu-horizontal ul.menu-smart>li>ul:not(.mega-menu-inner):not(.unmenu-inner-ul) {
        width: 310px !important;
    }

    body[class*=hmenu] .menu-icons i:not(.fa-dropdown), body.menu-overlay-center .menu-icons i:not(.fa-dropdown) {
        font-size: 2rem !important;
        width: 1em;
    }

    .menu-smart ul>li>a:not(.unmenu-inner-ul *), .unmenu-block ul>li>a:not(.unmenu-inner-ul *), .menu-smart ul>li>ul>li>a:not(.unmenu-inner-ul *), .unmenu-block ul>li>ul>li>a:not(.unmenu-inner-ul *) {
        letter-spacing: 0;
        padding: 12px 9px 12px 9px;
    }

    ul.drop-menu.un-submenu {
        border-radius: 16px;
        border: 2px solid #E78F3F;
    }

    .info-col h2.h2 {
        max-width: 85%;
    }

    .info-col.h2-unlimited h2.h2 {
        max-width: 100%
    }

    .no-bootstrap-row .col-lg-6 {
        width: 40%;
    }

    .no-bootstrap-row .col-lg-6:nth-child(2) {
        width: 60%;
    }
}

@media (min-width: 960px) and (max-width:1700px) {
    #main-logo .navbar-brand img {
        height: 86%;
    }

    .font-size-menu, .menu-container:not(.grid-filters) ul.menu-smart>li>a:not(.social-menu-link), .menu-container:not(.vmenu-container):not(.grid-filters) ul.menu-smart>li>a:not(.social-menu-link):not(.vc_control-btn), .menu-smart>li>a>div>div>div.btn, .unmenu-block, .burger-label, #masthead .overlay .overlay-search-wrapper .search-container {
        font-size: 1.1rem;
    }

    .btn:not(.btn-custom-typo):not(.btn-inherit):not(.uncode-nav-container) {
        border-color: #E78F3F;
        border-radius: 16px;
        background-color: #E78F3F;
        color: #fff;
        font-weight: 400;
        letter-spacing: 0.05em;
        font-size: 1.1rem;
        font-family: 'Barlow';
        margin-left: 18px;
    }

    .triple-h-padding#masthead .row-menu .row-menu-inner, .triple-h-padding.top-menu.navbar .row-menu .row-menu-inner, .triple-h-padding#masthead .overlay.overlay-search .overlay-search-wrapper, .triple-h-padding.top-menu.navbar .overlay.overlay-search .overlay-search-wrapper {
        padding-left: 36px;
        padding-right: 36px;
    }

    body[class*=hmenu-]:not(.hormenu-position-right) .menu-borders .navbar-nav+.navbar-nav-last>*:first-child, body[class*=hmenu-]:not(.hormenu-position-right) .menu-borders .navbar-mobile-el+.navbar-nav-last>*:first-child {
        padding: 0px 0px 0px 0px;
    }

    body[class*=hmenu-] .navbar-nav-last {
        text-align: left;
        padding-left: 16px;
    }

    .menu-smart, .unmenu-block {
        padding: 0px 13px 0px 36px;
    }
}

@media (min-width: 960px) and (max-width:1280px) {
    #main-logo .navbar-brand img {
        height: 74%;
    }

    .font-size-menu, .menu-container:not(.grid-filters) ul.menu-smart>li>a:not(.social-menu-link), .menu-container:not(.vmenu-container):not(.grid-filters) ul.menu-smart>li>a:not(.social-menu-link):not(.vc_control-btn), .menu-smart>li>a>div>div>div.btn, .unmenu-block, .burger-label, #masthead .overlay .overlay-search-wrapper .search-container {
        font-size: 1rem;
    }

    .btn:not(.btn-custom-typo):not(.btn-inherit):not(.uncode-nav-container) {
        font-size: 1rem;
        margin-left: 8px;
    }

    .row-menu-inner .col-lg-0 {
        padding: 19px 36px 10px 36px;
    }

    .triple-h-padding#masthead .row-menu .row-menu-inner, .triple-h-padding.top-menu.navbar .row-menu .row-menu-inner, .triple-h-padding#masthead .overlay.overlay-search .overlay-search-wrapper, .triple-h-padding.top-menu.navbar .overlay.overlay-search .overlay-search-wrapper {
        padding-left: 16px;
        padding-right: 16px;
    }

    .menu-smart>li>a:not(.uncode-vc-social *), .unmenu-block>li>a:not(.uncode-vc-social *) {
        padding: 0px 6px 0px 6px;
    }
}

.text-internal p {
    margin-top: 6px;
}

/* ==========================================================================
   RESPONSIVE GLOBALE — PALMIERI IMPIANTI
   Aggiunto il 24/07/2026.
   Regole condivise per Uncode/WPBakery: nessuna eccezione per singola pagina.
   ========================================================================== */

/* 1. Fondazioni fluide e contenimento */
html,
body {
    max-width: 100%;
    overflow-x: clip;
}

img,
video,
iframe,
svg {
    max-width: 100%;
}

img,
video {
    height: auto;
}

.wpb_column,
.uncell,
.uncont,
.heading-text,
.uncode_text_column,
.btn-container,
.info-col,
.rounded-img {
    min-width: 0;
    max-width: 100%;
}

.heading-text,
.uncode_text_column,
.text-internal,
.btn-container {
    overflow-wrap: break-word;
}

.rounded-img,
.rounded-img .uncode-single-media,
.rounded-img .tmb-img-ratio {
    overflow: hidden;
    border-radius: 16px;
}

.rounded-img img,
.isotope-wrapper img,
.tmb-img-ratio img,
.mappa-home iframe {
    display: block;
    width: 100%;
    max-width: 100%;
}

/* Corregge il margine assegnato ai .btn nei media query preesistenti:
   il margine orizzontale resta una responsabilità della sola CTA del menu. */
.main-container .btn-container .btn,
.uncode-slider .btn-container .btn,
.form-home .btn {
    margin-left: 0;
    margin-right: 0;
}

.btn-container .btn {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: break-word;
}
.menu-bloginfo.top-enhanced-inner.top-enhanced-left a {
    font-size: 18px;
}
.menu-horizontal.top-menu-enhanced-horizontal.top-enhanced-inner.top-enhanced-right a {
    font-size: 18px;
}
/* 2. Tablet e navigazione mobile (fino al breakpoint Uncode) */
@media (max-width: 959px) {
    body p {
        font-size: clamp(1.05rem, 2.6vw, 1.2rem);
        line-height: 1.55;
    }

    h1,
    h1.h1,
    h1.font-size-custom,
    .heading-text h1,
    .heading-text h1.font-size-custom,
    .uncode-slider h1.h1 {
        max-width: 100%;
        font-size: clamp(2.1rem, 8.5vw, 4rem) !important;
        line-height: 1.04 !important;
        overflow-wrap: break-word;
    }

    h2.font-size-custom,
    h3.font-size-custom,
    .heading-text h2.font-size-custom,
    .heading-text h3.font-size-custom,
    .info-col h2.h2,
    .middle-size h2.h2 {
        max-width: 100%;
        font-size: clamp(1.45rem, 5.5vw, 2.5rem) !important;
        line-height: 1.15 !important;
        overflow-wrap: break-word;
    }

    .top-title-p,
    .top-title-p p,
    .info-col p.h5 {
        max-width: 100%;
        font-size: clamp(0.95rem, 2.8vw, 1.15rem) !important;
        line-height: 1.25;
        overflow-wrap: break-word;
    }

    #main-logo,
    #main-logo .navbar-brand {
        min-width: 0;
        max-width: calc(100vw - 78px);
    }

    #main-logo .navbar-brand img {
        width: auto;
        height: auto;
        max-width: 100%;
    }

    .menu-container,
    .menu-container .row-menu,
    .menu-container .row-menu-inner {
        max-width: 100%;
    }

    .info-col,
    .rounded-img {
        width: 100%;
    }

    .info-col .btn-container {
        margin-top: clamp(20px, 4vw, 32px);
    }

    .rounded-img {
        margin-top: clamp(24px, 5vw, 42px);
    }

    .no-bootstrap-row .row-inner {
        row-gap: clamp(24px, 5vw, 44px);
    }

    /* Le decorazioni restano nel loro modulo e dietro al contenuto. */
    .azienda-text,
    .servizi-text,
    .progetti-text,
    .contatti-text,
    .sezione-metodo {
        overflow: hidden;
        isolation: isolate;
    }

    .azienda-text::before,
    section.azienda-text::before,
    .servizi-text::before,
    .progetti-text::before {
        width: clamp(150px, 28vw, 240px);
        height: clamp(150px, 28vw, 240px);
        max-width: 48%;
        pointer-events: none;
        z-index: -1;
    }

    section.azienda-text::after,
    section.servizi-text::after,
    .servizi-text::after,
    section.progetti-text::after,
    section.contatti-text::after,
    section.sezione-metodo::after {
        max-width: 100%;
        font-size: clamp(3.8rem, 14vw, 7rem);
        line-height: 0.85;
        pointer-events: none;
        z-index: -1;
    }

    .focus-point>.row-parent .col-focus,
    .focus-point>.row-parent .col-lg-3 {
        min-width: 0;
        margin-top: 30px;
        padding-left: 0 !important;
    }

    .focus-point>.row-parent .col-focus .uncell,
    .focus-point>.row-parent .col-lg-3 .uncell {
        min-width: 0;
        padding: 25px 16px 22px;
    }

    .titolo-point {
        font-size: clamp(1.35rem, 4vw, 1.65rem);
        line-height: 1.2;
        overflow-wrap: break-word;
    }

    .focus-point .col-lg-3 .uncell::before {
        top: -1.35rem;
        width: 2.8rem;
        height: 2.7rem;
        font-size: 1.9rem;
        line-height: 2.55rem;
    }

    .form-home,
    .form-home-int,
    .mappa-home {
        width: 100%;
        min-width: 0;
        max-width: 100%;
    }

    .contact-focus-big,
    .vc_custom_heading_wrap.contact-focus.contact-focus-big {
        margin-left: 0;
    }

    .form-home input:not([type="checkbox"]):not([type="radio"]),
    .form-home textarea,
    .form-home select {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .form-home textarea {
        resize: vertical;
    }

    .mappa-home iframe {
        min-height: 320px;
    }

    .isotope-wrapper,
    .isotope-container,
    .tmb,
    .tmb-img-ratio,
    .tmb-lightbox {
        max-width: 100%;
    }
}

/* 3. Smartphone e piccoli tablet */
@media (max-width: 767px) {

    .row-parent.triple-h-padding,
    .row-parent.quad-h-padding,
    .row-parent.penta-h-padding {
        padding-left: clamp(20px, 6vw, 30px);
        padding-right: clamp(20px, 6vw, 30px);
    }

    .row-parent.triple-top-padding,
    .row-parent.penta-top-padding,
    .row-parent.exa-top-padding {
        padding-top: clamp(48px, 12vw, 76px);
    }

    .row-parent.triple-bottom-padding,
    .row-parent.penta-bottom-padding,
    .row-parent.exa-bottom-padding {
        padding-bottom: clamp(48px, 12vw, 76px);
    }

    .row-parent .row-inner>.wpb_column+.wpb_column {
        margin-top: clamp(22px, 5vw, 38px);
    }

    .no-bootstrap-row .row-inner>.wpb_column+.wpb_column,
    .focus-point .row-inner>.wpb_column+.wpb_column {
        margin-top: 0;
    }

    .form-home-int .uncell.no-block-padding {
        padding: clamp(22px, 5vw, 30px);
    }

    .contact-focus-big h4.h4,
    .foo-title h4.h4 {
        font-size: clamp(1.3rem, 5vw, 1.55rem) !important;
    }

    .contatti-text p,
    .contatti-text a,
    .foo-text p,
    .foo-text a {
        font-size: clamp(1rem, 3.5vw, 1.15rem);
        overflow-wrap: anywhere;
    }

    #footer-first .uncell,
    #footer-copy .uncell {
        min-width: 0;
    }

    #footer-first .wpb_column {
        margin-bottom: 26px;
    }

    #footer-first .foo-text,
    #footer-first .foo-title {
        max-width: 100%;
    }

    .img-res::after,
    .img-ind::after {
        top: -28px;
        left: 16px;
        width: 58px;
        height: 58px;
        background-size: 45px;
    }
}

/* 4. Smartphone stretto: correzioni mirate alle cause di overflow */
@media (max-width: 479px) {
    body p {
        font-size: clamp(1rem, 4.5vw, 1.1rem);
    }

    h1,
    h1.h1,
    h1.font-size-custom,
    .heading-text h1,
    .heading-text h1.font-size-custom,
    .uncode-slider h1.h1 {
        font-size: clamp(2rem, 9.4vw, 3rem) !important;
        line-height: 1.03 !important;
    }

    h2.font-size-custom,
    h3.font-size-custom,
    .heading-text h2.font-size-custom,
    .heading-text h3.font-size-custom,
    .info-col h2.h2 {
        font-size: clamp(1.4rem, 7vw, 2rem) !important;
    }

    .top-menu-cols-2,
    .top-menu-cols-2 .row-menu-inner,
    .top-menu-cols-2 .menu-smart {
        min-width: 0;
        max-width: 100%;
    }

    .top-menu-cols-2 a,
    .top-menu-cols-2 p {
        font-size: clamp(0.78rem, 3.4vw, 0.9rem) !important;
        line-height: 1.25;
        overflow-wrap: anywhere;
    }

    .top-menu-cols-2 i.fa.fa-phone-handset.fa-2x.fa-fw {
        margin-right: 3px;
        font-size: 1rem;
    }

    .triple-h-padding.top-menu.navbar .row-menu .row-menu-inner,
    .triple-h-padding#masthead .row-menu .row-menu-inner {
        padding-left: 14px;
        padding-right: 14px;
    }

    #main-logo,
    #main-logo .navbar-brand {
        max-width: calc(100vw - 72px);
    }

    .blocco-testo-slide .uncell.no-block-padding .uncont {
        width: 100% !important;
        max-width: 100%;
        margin-left: 0 !important;
        margin-top: 0 !important;
        padding-left: clamp(20px, 6vw, 28px);
        padding-right: clamp(20px, 6vw, 28px);
        box-sizing: border-box;
    }

    .uncode-slider .btn-container,
    .uncode-slider .btn-container .btn {
        max-width: 100%;
        margin-left: 0;
    }

    /* Gancio condiviso WPBakery degli header servizio:
       neutralizza esclusivamente i bordi laterali inline da 36px. */
    .vc_custom_1784714867767 {
        border-left-width: 0 !important;
        border-right-width: 0 !important;
    }

    .azienda-text::before,
    section.azienda-text::before,
    .servizi-text::before,
    .progetti-text::before {
        display: none;
    }

    section.azienda-text::after,
    section.servizi-text::after,
    .servizi-text::after,
    section.progetti-text::after,
    section.contatti-text::after,
    section.sezione-metodo::after {
        font-size: clamp(3rem, 17vw, 4.5rem);
        opacity: 0.72;
    }

    .btn-container .btn,
    .form-home .btn {
        min-height: 44px;
        padding-left: 18px;
        padding-right: 18px;
        font-size: 1rem !important;
        line-height: 1.25;
    }

    .form-home-int .uncell.no-block-padding {
        padding: 20px;
    }

    .form-home span.wpcf7-list-item {
        margin-left: 0;
    }

    .form-home .wpcf7-list-item-label {
        display: inline;
        overflow-wrap: anywhere;
    }

    .mappa-home iframe {
        min-height: 280px;
    }

}

/* 5. Primo desktop: il menu Uncode passa a desktop a 960px.
   La sola CTA di navigazione viene nascosta nella fascia critica; tutte le CTA
   di contenuto restano disponibili e il menu non viene simulato via CSS. */
@media (min-width: 960px) and (max-width: 1099px) {
    #main-logo .navbar-brand img {
        width: auto;
        height: auto;
        max-width: 168px;
    }

    .menu-smart,
    .unmenu-block {
        padding-left: 12px;
        padding-right: 4px;
    }

    .menu-smart>li>a:not(.uncode-vc-social *),
    .unmenu-block>li>a:not(.uncode-vc-social *) {
        padding-left: 4px;
        padding-right: 4px;
        letter-spacing: 0.025em;
    }

    .menu-btn-cell {
        display: none !important;
    }

    body[class*="hmenu-"] .navbar-nav-last {
        padding-left: 4px;
    }
}

/* ==========================================================================
   RIFINITURE SMARTPHONE — REVISIONE 375 PX
   Correzioni globali basate su componenti condivisi, senza selettori pagina.
   ========================================================================== */

@media (max-width: 479px) {

    /* Titoli ridotti di circa il 20%; i sovratitoli restano invariati. */
    h1, h1.h1, h1.font-size-custom, .heading-text h1, .heading-text h1.font-size-custom {
        font-size: clamp(1.7rem, 6.5vw, 2.4rem) !important;
        line-height: 1.06 !important;
    }

    h2,
    h2.h2,
    h2.font-size-custom,
    .heading-text h2,
    .heading-text h2.font-size-custom,
    .info-col h2.h2,
    .middle-size h2.h2 {
        font-size: clamp(1.4rem, 6.2vw, 1.9rem) !important;
        line-height: 1.12 !important;
    }

    h3,
    h3.h3,
    h3.font-size-custom,
    .heading-text h3,
    .heading-text h3.font-size-custom {
        font-size: clamp(1.2rem, 5.4vw, 1.65rem) !important;
        line-height: 1.16 !important;
    }

    h4.h4,
    .heading-text h4 {
        font-size: clamp(1.1rem, 4.8vw, 1.4rem) !important;
    }

    /* Hero homepage: titolo più compatto e testo descrittivo nascosto. */
    .uncode-slider .blocco-testo-slide h1,
    .uncode-slider .blocco-testo-slide h1.h1 {
        font-size: clamp(1.65rem, 7.2vw, 2.3rem) !important;
        line-height: 1.04 !important;
    }

    .uncode-slider .blocco-testo-slide .heading-text>div {
        display: none;
    }

    /* Top bar: due aree reali, senza sovrapposizioni tra telefono ed email. */
    .top-menu .top-menu-cols-2 {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        width: 100%;
        padding-left: 12px !important;
        padding-right: 12px !important;
        box-sizing: border-box;
    }

    .top-menu-cols-2 .topbar-col,
    .top-menu-cols-2 .top-enhanced-inner,
    .top-menu-cols-2 .navbar-topmenu,
    .top-menu-cols-2 .menu-smart {
        position: static;
        float: none;
        display: block;
        min-width: 0;
        width: auto;
        padding: 0;
    }

    .top-menu-cols-2 .topbar-col-left {
        flex: 0 0 auto;
    }

    .top-menu-cols-2 .topbar-col-right,
    .top-menu-cols-2 .top-enhanced-right {
        flex: 1 1 auto;
        overflow: hidden;
        text-align: right;
    }

    .top-menu-cols-2 .topbar-col-right .menu-smart {
        display: flex;
        justify-content: flex-end;
    }

    .top-menu-cols-2 a,
    .top-menu-cols-2 p {
        display: inline-block;
        max-width: 100%;
        font-size: clamp(0.68rem, 2.9vw, 0.8rem) !important;
        line-height: 1.2;
        white-space: nowrap;
    }

    /* Riga logo/hamburger: allineamento ai lati e altezza dimezzata. */
    #logo-container-mobile {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        width: 100%;
        padding: 10px 16px !important;
        box-sizing: border-box;
        text-align: left;
    }

    #logo-container-mobile #main-logo {
        flex: 1 1 auto;
        width: auto;
        max-width: calc(100% - 52px);
        margin: 0 auto 0 0;
        text-align: left;
    }

    #logo-container-mobile #main-logo .navbar-brand {
        display: block;
        width: 100%;
        max-width: 100%;
        margin: 0;
        text-align: left;
    }

    #logo-container-mobile #main-logo .logo-image {
        max-width: 100%;
        margin-left: 0;
        margin-right: auto;
    }

    #logo-container-mobile .mmb-container {
        position: static;
        flex: 0 0 40px;
        width: 40px;
        margin-left: auto;
        text-align: right;
    }

    /* Menu mobile aperto: voci leggibili e CTA centrata. */
    #masthead .menu-container .menu-primary-inner.menu-smart>li>a,
    .menu-container .menu-smart>li>a,
    .main-menu-container .menu-primary-inner>li>a {
        font-size: 1.1rem !important;
        line-height: 1.25;
        padding-top: 12px !important;
        padding-bottom: 12px !important;
    }

    #masthead .menu-container .menu-primary-inner.menu-smart ul a,
    .menu-container .menu-smart ul a,
    .main-menu-container .menu-primary-inner .drop-menu a {
        font-size: 1rem !important;
        line-height: 1.3;
    }

    .main-menu-container .menu-item-button {
        display: flex;
        justify-content: center;
        width: 100%;
        padding: 14px 18px 22px;
        box-sizing: border-box;
    }

    .main-menu-container .menu-item-button>a,
    .main-menu-container .menu-item-button .menu-btn-table,
    .main-menu-container .menu-item-button .menu-btn-cell {
        display: block;
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
        padding: 0 !important;
    }

    .main-menu-container .menu-item-button .btn-on-menu {
        display: block;
        width: 100%;
        margin: 0 !important;
        padding: 13px 16px !important;
        box-sizing: border-box;
        font-size: 1.1rem !important;
        line-height: 1.2;
        text-align: center;
        white-space: normal;
    }

    #masthead .menu-item-button .btn-on-menu,
    #masthead .menu-item-button .btn-on-menu span {
        font-size: 1.1rem !important;
    }

    /* Nei moduli immagine/testo condivisi, la fotografia precede il testo. */
    .row-inner:has(> .info-col + .rounded-img) {
        display: flex;
        flex-direction: column;
    }

    .row-inner:has(> .info-col + .rounded-img)>.rounded-img {
        order: 1;
        margin-top: 0;
        margin-bottom: 26px;
    }

    .row-inner:has(> .info-col + .rounded-img)>.info-col {
        order: 2;
    }

    /* Barre arancioni testuali più leggere e compatte. */
    .row-container.style-accent-bg .heading-text p.h4 {
        font-size: clamp(0.78rem, 3.8vw, 0.95rem) !important;
        font-weight: 400 !important;
        line-height: 1.18;
        letter-spacing: 0.025em;
    }

    /* Focus numerati: meno aria esterna e distanze verticali più strette. */
    .focus-point>.row-parent {
        padding-top: 30px !important;
        padding-bottom: 30px !important;
    }

    .focus-point>.row-parent .col-focus,
    .focus-point>.row-parent .col-lg-3 {
        margin-top: 18px;
    }

    .focus-point>.row-parent .col-focus:first-child,
    .focus-point>.row-parent .col-lg-3:first-child {
        margin-top: 12px;
    }

    /* Copyright compatto: elimina la colonna vuota e azzera il grande intervallo. */
    #footer-copy .row-parent {
        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }

    #footer-copy .row-inner {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    #footer-copy .row-inner>.wpb_column {
        width: 100%;
        margin: 0 !important;
    }

    #footer-copy .row-inner>.wpb_column:nth-child(2) {
        display: none;
    }

    #footer-copy .uncode_text_column {
        padding-top: 4px;
        padding-bottom: 4px;
    }

    #footer-copy p,
    #footer-copy a {
        margin: 0;
        font-size: 0.82rem;
        line-height: 1.3;
        text-align: center;
        overflow-wrap: anywhere;
    }
}

/* ==========================================================================
   RIFINITURE SMARTPHONE — MENU SERVIZI E RITMO DELLE PAGINE
   ========================================================================== */

@media (max-width: 479px) {

    /* Sottovoci con icona: allineamento stabile e spazio reale per 34px. */
    #masthead .menu-primary-inner .drop-menu li[class*="ico-"]>a {
        position: relative;
        display: flex;
        align-items: center;
        min-height: 50px;
        margin-left: 0;
        padding: 8px 10px 8px 48px;
        box-sizing: border-box;
        font-size: 0.98rem !important;
        line-height: 1.4 !important;
    }

    #masthead .menu-primary-inner .drop-menu li[class*="ico-"]>a::before {
        position: absolute;
        top: 50%;
        left: 5px;
        width: 34px;
        height: 34px;
        margin: 0;
        transform: translateY(-50%);
        background-position: center;
        background-size: contain;
    }

    /* Meno vuoto tra navigazione e primo contenuto dei layout immagine/testo. */
    .post-content>.row-container:first-child>.row-parent:has(.row-inner > .info-col + .rounded-img) {
        padding-top: 0px !important;
    }

    /* La fascia arancione conserva respiro anche quando il testo va su due righe. */
    .row-container.style-accent-bg>.row-parent {
        padding-top: 10px !important;
        padding-bottom: 10px !important;
    }

    /* Header delle singole pagine servizio. */
    .post-content>.row-container.has-bg:first-child .heading-text h1 {
        font-size: clamp(1.95rem, 8.4vw, 2.7rem) !important;
        line-height: 1.06 !important;
    }

    .post-content>.row-container.has-bg:first-child .heading-text h3 {
        font-size: clamp(1.05rem, 4.6vw, 1.4rem) !important;
        line-height: 1.22 !important;
    }

    /* Blocco conclusivo dei servizi: 36px dalla riga precedente e claim leggibile. */
    .black-border>.row-parent:has(.btn-orange) {
        padding-top: 36px !important;
    }

    .black-border:has(.btn-orange) .vc_custom_heading_wrap {
        margin-top: 32px !important;
    }

    .black-border:has(.btn-orange) .heading-text h3 {
        max-width: 19ch;
        margin-left: auto;
        margin-right: auto;
        font-size: clamp(1.35rem, 5.8vw, 1.55rem) !important;
        line-height: 1.25 !important;
        text-align: center;
    }

    .post-body .uncode_text_column {
        margin-top: 20px;
    }
}

/* ==========================================================================
   DESKTOP COMPATTO 1281–1440 PX
   Riduzione tipografica uniforme del 20% nei contenuti.
   Masthead, menu, sottomenu e top bar sono volutamente esclusi.
   ========================================================================== */

@media (min-width: 1281px) and (max-width: 1440px) {
.vc_custom_heading_wrap {
    margin-top: 12px !important;
}
    /* Testo corrente, liste e didascalie dei contenuti. */
    .main-container p:not(.h1):not(.h2):not(.h3):not(.h4):not(.h5):not(.h6),
    .main-container ul:not(.menu-smart)>li,
    .main-container ol>li,
    .main-container table,
    .main-container blockquote,
    .main-container figcaption,
    .main-container .t-entry-meta,
    .main-container .t-entry-excerpt {
        font-size: 1.04rem;
    }

    /* Sovratitoli e testi semanticamente impostati come H5. */
    .main-container p.h5,
    .main-container .top-title-p,
    .main-container .top-title-p p,
    .main-container .info-col p.h5 {
        font-size: 0.96rem;
    }

    .main-container p.h4 {
        font-size: 1rem;
    }

    /* Titoli standard e titoli riutilizzati con classe tipografica H1. */
    .main-container h1:not(.font-size-custom),
    .main-container h2.h1,
    .main-container h3.h1,
    .main-container .heading-text>.h1:not(.font-size-custom) {
        font-size: 2.4rem;
    }

    .main-container h2.h2,
    .main-container .info-col h2.h2,
    .main-container .heading-text>.h2 {
        font-size: 1.92rem;
    }

    /* Titoli dei moduli testuali delle pagine servizio. */
    .main-container .text-internal h2.h2,
    .main-container .text-internal .heading-text h2 {
        font-size: 1.45rem;
    }

    .main-container .middle-size h2.h2 {
        font-size: 1.6rem;
    }

    .main-container h3.h2,
    .main-container .heading-text>h3.h2 {
        font-size: 1.45rem;
    }

    .main-container h3.h3,
    .main-container .heading-text>h3.h3 {
        font-size: 1.2rem;
    }

    .main-container h4.h4:not(.contact-focus-big *),
    .main-container .heading-text>h4.h4:not(.contact-focus-big *) {
        font-size: 1.1625rem;
    }

    /* Header Azienda, Residenziali e Industriali. */
    .post-content>.row-container:first-child:not(.has-bg) .info-col .heading-text h1.font-size-custom {
        font-size: clamp(38.4px, 4vw, 67.2px) !important;
    }

    .post-content>.row-container:first-child:not(.has-bg) .info-col .heading-text h2.font-size-custom {
        font-size: clamp(19.2px, 2.4vw, 33.6px) !important;
    }

    /* Header condiviso delle singole pagine servizio. */
    .post-content>.row-container.has-bg:first-child .heading-text h1 {
        font-size: clamp(41.6px, 5.6vw, 110.4px) !important;
    }

    .post-content>.row-container.has-bg:first-child .heading-text h3 {
        font-size: clamp(14.4px, 5.6vw, 36px) !important;
    }

    .post-content>.row-container.has-bg:first-child .heading-text h6 {
        font-size: clamp(28px, 6.4vw, 64px) !important;
    }

    /* Pulsanti di pagina: nessuna regola raggiunge la CTA del menu. */
    .main-container .btn:not(.btn-custom-typo):not(.btn-inherit),
    .uncode-slider .btn:not(.btn-custom-typo):not(.btn-inherit) {
        font-size: 0.88rem;
    }

    .main-container .btn.btn-lg {
        font-size: 1.04rem;
    }

    .uncode-slider .btn.btn-lg:not(.btn-custom-typo):not(.btn-inherit):not(.uncode-nav-container) {
        font-size: 0.96rem;
    }

    .main-container .btn.btn-xl {
        font-size: 0.9rem;
    }

    .main-container .link-servizi a.custom-link.btn {
        font-size: 1.04rem;
    }

    /* Focus, numerazioni, contatti, form e componenti secondari. */
    .main-container .titolo-point {
        font-size: 1.32rem;
    }

    .main-container .focus-point .col-lg-3 .uncell::before {
        font-size: 1.76rem;
    }

    .main-container .contatti-text p,
    .main-container .contatti-text a {
        font-size: 1rem;
    }

    .main-container .contatti-text span.smaller {
        font-size: 0.8rem;
    }

    .main-container .contact-focus-big h4.h4 {
        font-size: 1.36rem;
    }

    .main-container input,
    .main-container textarea,
    .main-container select,
    .main-container label,
    .main-container .form-home span.wpcf7-list-item-label {
        font-size: 0.8rem;
    }

    .main-container .tmb .t-entry .t-entry-cat,
    .main-container .tmb .t-entry .t-entry-title,
    .main-container .tmb .t-entry .t-entry-table-typography,
    .main-container .vc_pie_chart .vc_pie_chart_value {
        font-size: 80%;
    }

    /* Testi decorativi di sfondo. */
    .main-container section.azienda-text::after,
    .main-container section.contatti-text::after,
    .main-container section.servizi-text::after,
    .main-container .servizi-text::after,
    .main-container section.sezione-metodo::after,
    .main-container section.progetti-text::after {
        font-size: 6.4rem;
    }

    /* Footer completo, incluso copyright. */
    footer .foo-title h4.h4,
    footer h4.h4 {
        font-size: 1.1625rem;
    }

    footer .foo-text p,
    footer .foo-text a,
    footer ul:not(.menu-smart) li,
    footer ul:not(.menu-smart) a {
        font-size: 0.96rem;
    }

    footer #footer-copy p,
    footer #footer-copy a {
        font-size: 1.04rem;
    }
}

/* ==========================================================================
   RIFINITURA SMARTPHONE — HERO E BARRA LOGO
   ========================================================================== */

@media (max-width: 479px) {
    /* Hero homepage: titolo e CTA centrati rispetto all'intero viewport. */
    .uncode-slider .blocco-testo-slide .uncell.no-block-padding .uncont {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100% !important;
        margin-right: auto;
        margin-left: auto;
        text-align: center;
    }

    .uncode-slider .blocco-testo-slide .heading-text,
    .uncode-slider .blocco-testo-slide .heading-text h1,
    .uncode-slider .blocco-testo-slide .btn-container {
        width: 100%;
        margin-right: auto;
        margin-left: auto;
        text-align: center;
    }

    .uncode-slider .blocco-testo-slide .btn-container .btn {
        margin-right: auto;
        margin-left: auto;
    }

    /* Logo e hamburger centrati verticalmente nella barra bianca globale. */
    #logo-container-mobile {
        align-items: center;
    }

    #logo-container-mobile #main-logo,
    #logo-container-mobile #main-logo .navbar-brand,
    #logo-container-mobile #main-logo .logo-image {
        display: flex;
        align-items: center;
    }

    #logo-container-mobile #main-logo,
    #logo-container-mobile #main-logo .navbar-brand,
    #logo-container-mobile #main-logo .logo-image {
        align-self: stretch;
        min-height: 100%;
    }

    #logo-container-mobile #main-logo .navbar-brand,
    #logo-container-mobile #main-logo .logo-image {
        justify-content: flex-start;
        line-height: 1;
    }

    #logo-container-mobile #main-logo img {
        display: block;
        margin-top: auto;
        margin-bottom: auto;
    }
}

/* ==========================================================================
   DESKTOP COMPATTO / TABLET ORIZZONTALE 960–1280 PX
   Scala tipografica ridotta e armonizzata; navigazione esclusa.
   ========================================================================== */

@media (min-width: 960px) and (max-width: 1280px) {
    /* Corpo testo e componenti editoriali: circa -30%. */
    .main-container p:not(.h1):not(.h2):not(.h3):not(.h4):not(.h5):not(.h6),
    .main-container ul:not(.menu-smart) > li,
    .main-container ol > li,
    .main-container table,
    .main-container blockquote,
    .main-container figcaption,
    .main-container .t-entry-meta,
    .main-container .t-entry-excerpt {
        font-size: 0.91rem;
        line-height: 1.5;
    }

    .main-container p.h5,
    .main-container .top-title-p,
    .main-container .top-title-p p,
    .main-container .info-col p.h5 {
        font-size: 0.84rem;
        line-height: 1.3;
    }

    .main-container p.h4 {
        font-size: 0.875rem;
        line-height: 1.25;
    }

    /* Gerarchia titoli mantenuta, con una scala più contenuta. */
    .main-container h1:not(.font-size-custom),
    .main-container h2.h1,
    .main-container h3.h1,
    .main-container .heading-text > .h1:not(.font-size-custom) {
        font-size: 2.1rem;
        line-height: 1.06;
    }

    .main-container h2.h2,
    .main-container .info-col h2.h2,
    .main-container .heading-text > .h2 {
        font-size: 1.68rem;
        line-height: 1.12;
    }

    .main-container .text-internal h2.h2,
    .main-container .text-internal .heading-text h2 {
        font-size: 1.27rem;
        line-height: 1.18;
    }

    .main-container .middle-size h2.h2 {
        font-size: 1.4rem;
    }

    .main-container h3.h2,
    .main-container .heading-text > h3.h2 {
        font-size: 1.27rem;
        line-height: 1.18;
    }

    .main-container h3.h3,
    .main-container .heading-text > h3.h3 {
        font-size: 1.05rem;
        line-height: 1.2;
    }

    .main-container h4.h4:not(.contact-focus-big *),
    .main-container .heading-text > h4.h4:not(.contact-focus-big *) {
        font-size: 1.017rem;
        line-height: 1.2;
    }

    /* Header Azienda, Residenziali e Industriali. */
    .post-content > .row-container:first-child:not(.has-bg)
    .info-col .heading-text h1.font-size-custom {
        font-size: clamp(33.6px, 3.5vw, 58.8px) !important;
        line-height: 1.04;
    }

    .post-content > .row-container:first-child:not(.has-bg)
    .info-col .heading-text h2.font-size-custom {
        font-size: clamp(16.8px, 2.1vw, 29.4px) !important;
        line-height: 1.12;
    }

    /* Header condiviso delle pagine servizio. */
    .post-content > .row-container.has-bg:first-child .heading-text h1 {
        font-size: clamp(36.4px, 4.9vw, 96.6px) !important;
        line-height: 1.04;
    }

    .post-content > .row-container.has-bg:first-child .heading-text h3 {
        font-size: clamp(12.6px, 4.9vw, 31.5px) !important;
        line-height: 1.18;
    }

    .post-content > .row-container.has-bg:first-child .heading-text h6 {
        font-size: clamp(24.5px, 5.6vw, 56px) !important;
    }

    /* CTA e pulsanti: ridotti ma sempre leggibili e cliccabili. */
    .main-container .btn:not(.btn-custom-typo):not(.btn-inherit),
    .uncode-slider .btn:not(.btn-custom-typo):not(.btn-inherit) {
        font-size: 0.8rem;
    }

    .main-container .btn.btn-lg {
        font-size: 0.91rem;
    }

    .uncode-slider .btn.btn-lg:not(.btn-custom-typo):not(.btn-inherit):not(.uncode-nav-container) {
        font-size: 0.84rem;
    }

    .main-container .btn.btn-xl {
        font-size: 0.8rem;
    }

    .main-container .link-servizi a.custom-link.btn {
        font-size: 0.91rem;
    }

    /* Focus, form, contatti, gallery e testi secondari. */
    .main-container .titolo-point {
        font-size: 1.155rem;
    }

    .main-container .focus-point .col-lg-3 .uncell::before {
        font-size: 1.54rem;
    }

    .main-container .contatti-text p,
    .main-container .contatti-text a {
        font-size: 0.875rem;
    }

    .main-container .contatti-text span.smaller {
        font-size: 0.7rem;
    }

    .main-container .contact-focus-big h4.h4 {
        font-size: 1.19rem;
    }

    .main-container input,
    .main-container textarea,
    .main-container select,
    .main-container label,
    .main-container .form-home span.wpcf7-list-item-label {
        font-size: 0.8rem;
    }

    .main-container .tmb .t-entry .t-entry-cat,
    .main-container .tmb .t-entry .t-entry-title,
    .main-container .tmb .t-entry .t-entry-table-typography,
    .main-container .vc_pie_chart .vc_pie_chart_value {
        font-size: 70%;
    }

    /* Elementi decorativi proporzionati alla nuova scala. */
    .main-container section.azienda-text::after,
    .main-container section.contatti-text::after,
    .main-container section.servizi-text::after,
    .main-container .servizi-text::after,
    .main-container section.sezione-metodo::after,
    .main-container section.progetti-text::after {
        font-size: 5.6rem;
    }

    /* Footer e copyright. */
    footer .foo-title h4.h4,
    footer h4.h4 {
        font-size: 1.017rem;
    }

    footer .foo-text p,
    footer .foo-text a,
    footer ul:not(.menu-smart) li,
    footer ul:not(.menu-smart) a {
        font-size: 0.84rem;
    }

    footer #footer-copy p,
    footer #footer-copy a {
        font-size: 0.91rem;
    }
}

/* ==========================================================================
   NAVIGAZIONE COMPATTA 960–1280 PX
   Top bar, logo, menu e social riequilibrati per tablet orizzontale.
   ========================================================================== */

@media (min-width: 960px) and (max-width: 1280px) {
    /* Top bar più bassa e con una scala tipografica coerente. */
    .top-menu .top-menu-cols-2 a,
    .top-menu .top-menu-cols-2 p,
    .top-menu .top-enhanced-inner {
        font-size: 0.8rem;
        line-height: 1.2;
    }

    .top-menu .menu-bloginfo.top-enhanced-inner,
    .top-menu .menu-smart > li > a {
        padding-top: 6px;
        padding-bottom: 6px;
    }

    .top-menu .top-menu-cols-2 i,
    .top-menu .top-menu-cols-2 i.fa,
    .top-menu .top-menu-cols-2 i[class*="fa-"] {
        width: auto;
        margin-right: 5px;
        font-size: 0.8rem;
        line-height: 1;
    }

    /* Menu principale e sottomenu: compatti senza perdere leggibilità. */
    #masthead .font-size-menu,
    #masthead .menu-container:not(.grid-filters) ul.menu-smart > li > a:not(.social-menu-link),
    #masthead .menu-container:not(.vmenu-container):not(.grid-filters)
    ul.menu-smart > li > a:not(.social-menu-link):not(.vc_control-btn),
    #masthead .unmenu-block,
    #masthead .burger-label {
        font-size: 0.85rem;
        line-height: 1.2;
    }

    #masthead .font-size-submenu,
    #masthead .menu-horizontal ul ul a:not([data-icon]),
    #masthead .menu-horizontal ul ul .unmenu-title {
        font-size: 0.8rem;
        line-height: 1.25;
    }

    /* Logo più presente e centrato nella cella della barra principale. */
    #masthead .logo-container,
    #masthead #main-logo {
        vertical-align: middle;
    }

    #masthead #main-logo .navbar-brand,
    #masthead #main-logo .logo-image {
        display: inline-flex;
        align-items: center;
        vertical-align: middle;
        line-height: 1;
    }

    #masthead #main-logo .navbar-brand img {
        display: block;
        width: auto;
        height: auto;
        max-width: 220px;
        max-height: 38px;
        margin-top: auto;
        margin-bottom: auto;
    }

    #masthead .row-menu-inner .col-lg-0 {
        padding-top: 10px;
        padding-right: 16px;
        padding-bottom: 10px;
        padding-left: 16px;
        vertical-align: middle;
    }

    /* Icone social proporzionate al nuovo menu. */
    body[class*="hmenu-"] #masthead .menu-icons i:not(.fa-dropdown),
    body[class*="hmenu-"] #masthead .navbar-nav-last i:not(.fa-dropdown) {
        width: 1em;
        font-size: 1.25rem !important;
        line-height: 1;
    }

    body[class*="hmenu-"] #masthead .navbar-nav-last {
        padding-left: 8px;
        vertical-align: middle;
    }

    /* I max-width 86% impostati inline dai widget Uncode diventano fluidi. */
    .main-container .uncont[style*="max-width:86%"],
    .main-container .uncont[style*="max-width: 86%"] {
        width: 100%;
        max-width: 100% !important;
    }
}

/* ==========================================================================
   TABLET / MENU MOBILE 480–959 PX
   Header, navigazione e titoli riequilibrati per la fascia intermedia.
   ========================================================================== */

@media (min-width: 480px) and (max-width: 959px) {
    /* Top bar compatta: contatti leggibili senza dominare l'header. */
    .top-menu .top-menu-cols-2 {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        width: 100%;
        padding-right: 18px !important;
        padding-left: 18px !important;
        box-sizing: border-box;
    }

    .top-menu .top-menu-cols-2 a,
    .top-menu .top-menu-cols-2 p {
        font-size: 0.85rem !important;
        line-height: 1.2;
        white-space: nowrap;
    }

    .top-menu .top-menu-cols-2 i,
    .top-menu .top-menu-cols-2 i.fa {
        width: auto;
        margin-right: 5px;
        font-size: 0.85rem !important;
        line-height: 1;
    }

    /* Barra bianca: logo contenuto e hamburger realmente separato. */
    #logo-container-mobile {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between;
        gap: 18px;
        width: 100%;
        min-height: 78px;
        padding: 10px 24px !important;
        box-sizing: border-box;
    }

    #logo-container-mobile #main-logo {
        flex: 1 1 auto;
        width: auto;
        max-width: calc(100% - 62px);
        margin: 0;
    }

    #logo-container-mobile #main-logo .navbar-brand,
    #logo-container-mobile #main-logo .logo-image {
        display: flex;
        align-items: center;
        width: auto;
        max-width: 100%;
        margin: 0;
        line-height: 1;
    }

    #logo-container-mobile #main-logo img {
        display: block;
        width: auto !important;
        height: auto !important;
        max-width: 320px !important;
        max-height: 44px !important;
        margin: auto 0;
    }

    #logo-container-mobile .mmb-container {
        position: static;
        flex: 0 0 44px;
        width: 44px;
        margin-left: auto;
        text-align: right;
    }

    /* Menu aperto: stessa leggibilità ottenuta sullo smartphone. */
    #masthead .menu-container .menu-primary-inner.menu-smart > li > a,
    .menu-container .menu-smart > li > a,
    .main-menu-container .menu-primary-inner > li > a {
        font-size: 1.1rem !important;
        line-height: 1.25;
        padding-top: 12px !important;
        padding-bottom: 12px !important;
    }

    #masthead .menu-container .menu-primary-inner.menu-smart ul a,
    .menu-container .menu-smart ul a,
    .main-menu-container .menu-primary-inner .drop-menu a {
        font-size: 1rem !important;
        line-height: 1.3;
    }

    .main-menu-container .menu-item-button {
        display: flex;
        justify-content: center;
        width: 100%;
        padding: 14px 20px 22px;
        box-sizing: border-box;
    }

    .main-menu-container .menu-item-button .btn-on-menu {
        display: block;
        width: min(100%, 300px);
        margin: 0 auto !important;
        padding: 13px 18px !important;
        box-sizing: border-box;
        font-size: 1.05rem !important;
        line-height: 1.2;
        text-align: center;
    }

    /* Scala titoli intermedia: evita il salto a 64px presente a 768px. */
    h1,
    h1.h1,
    h1.font-size-custom,
    .heading-text h1,
    .heading-text h1.font-size-custom {
        font-size: clamp(2rem, 5vw, 2.6rem) !important;
        line-height: 1.06 !important;
    }

    h2,
    h2.h2,
    h2.font-size-custom,
    h3,
    h3.h3,
    h3.font-size-custom,
    .heading-text h2,
    .heading-text h3,
    .info-col h2.h2,
    .middle-size h2.h2 {
        font-size: clamp(1.4rem, 3.8vw, 2rem) !important;
        line-height: 1.14 !important;
    }

    /* Hero homepage: blocco centrato, titolo compatto e testo leggibile. */
    .uncode-slider .blocco-testo-slide .uncell.no-block-padding .uncont {
        width: 100% !important;
        max-width: 580px;
        margin: 0 auto !important;
        padding-right: 32px;
        padding-left: 32px;
        box-sizing: border-box;
        text-align: center;
    }

    .uncode-slider .blocco-testo-slide h1,
    .uncode-slider .blocco-testo-slide h1.h1 {
        font-size: clamp(2.15rem, 5vw, 2.6rem) !important;
        line-height: 1.06 !important;
        text-align: center;
    }

    .post-content > .row-container.has-bg:first-child
    .heading-text h3.font-size-custom {
        font-size: clamp(1.2rem, 3vw, 1.55rem) !important;
        line-height: 1.2 !important;
    }

    .uncode-slider .blocco-testo-slide .heading-text > div,
    .uncode-slider .blocco-testo-slide p {
        max-width: 34rem;
        margin-right: auto;
        margin-left: auto;
        font-size: 1rem;
        line-height: 1.45;
        text-align: center;
    }

    .uncode-slider .blocco-testo-slide .btn-container {
        width: 100%;
        text-align: center;
    }

    .uncode-slider .blocco-testo-slide .btn-container .btn {
        margin-right: auto;
        margin-left: auto;
    }
}

/* ==========================================================================
   RITMO VERTICALE SMARTPHONE
   Spazi condivisi più compatti nei moduli immagine/testo.
   ========================================================================== */

@media (max-width: 479px) {
    /* I 36px standard di Uncode diventano 16px nei blocchi informativi. */
    .info-col .uncont > * + * {
        margin-top: 16px !important;
    }

    .row-inner:has(> .info-col + .rounded-img) > .rounded-img {
        margin-bottom: 16px;
    }

    /* Riduce lo spazio fra fascia precedente e foto iniziale delle sezioni. */
    .vc_section
    .row-container:has(.info-col):has(.uncode-single-media) > .row-parent {
        padding-top: 24px !important;
    }
}

@media (max-width:991px) {
	 .no-mobile {
        display: none;
    }
	  #video-section .uncont {
        padding-top: 0 !important;
    }
}
@media (min-width:991px) {
	 .no-desk {
        display: none;
    }
	  #video-section .uncont {
        padding-top: 0 !important;
    }
}
@media (min-width:960px) and (max-width:1380px) {
	    #video-section a.text-default-color.custom-link.lbox-trigger-item {
        width: 100px;
    }
    #video-section .icon-box-icon.fa-container {
        margin: auto !important;
        text-align: center;
        align-items: center;
        justify-content: center;
        display: flex;
    }
}

.vc_row.contenuto-slider.row-internal.row-container {
    position: absolute;
    top: 23%;
	left: 5%;
	 width: 40%;
	z-index:10;
}
.head-title h1.h1, .head-title p {
    color: #fff;
    text-align: left;
}
.head-title h1.h1 {
	font-size:3rem;
	text-transform:uppercase;
	text-shadow: 1px 1px 1px #000;
}
.head-title p {
font-size: 1.3rem;
    line-height: 1.5;
	text-shadow: 1px 1px 1px #000;
}

.icona-play {
    position: absolute !important;
    left: 15%;
    z-index: 12;
    width: 100%;
    text-align: center;
    display: flex;
    align-items: baseline;
    justify-content: center;
    margin-top: 0 !important;
    top: 34%;
}
section#video-section {
     margin-top: -36px !important;
    max-width: 98%;
    margin: auto;
}
#video-section #mep_0:before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    display: inline-block;
    background: rgba(0, 0, 0, 0.25);
    z-index: 2;
}

@media (max-width:790px) {
	.vc_row.contenuto-slider.row-internal.row-container {
		position: absolute;
		top: 60%;
		left:auto;
		width: 100%;
		z-index: 1;
	}
	.icona-play a img {
		width: 100px;
	}

	.icona-play {
		position: absolute !important;
		left: auto;
		z-index: 12;
		width: 100%;
		text-align: center;
		display: flex;
		align-items: baseline;
		justify-content: center;
		margin-top: 0 !important;
		top: 20%;
	}
	.head-title p {
		display: none;
	}
	.head-title h1.h1, .head-title p {
		text-align: center;
		padding-left: 26px;
        padding-right: 26px;
	}
.vc_row.contenuto-slider span.btn-container {
		display: none;
	}
	.wpb_raw_code.wpb_raw_html.no-desk:before {
		content: '';
		position: absolute;
		width: 100%;
		height: 100%;
		display: inline-block;
		background: rgba(0, 0, 0, 0.25);
		z-index: 0;
		left: 0;
		top: 0;
	}
	    
}

li.menu-item-link.social-icon.tablet-hidden.mobile-hidden.social-667453 a.social-menu-link {
    margin-left: 18px;
}