 /* VARIABILI */
 :root {
     --color1: #1C396E;
     --color2: #6988B3;
     --color3: #A3B6D3;
     --grey: #373737;
     --light-grey: #F5F5F5;
     --white: #ffffff;
     --black: #000000;

     --sans: 'Inter', sans-serif;
     --sans-alt: 'Oswald', sans-serif;
     --font-icon: 'Font Awesome 6 Pro';
     --font-icon-alt: 'Font Awesome 6 Brands';

     --font-weight-light: 200;
     --font-weight-normal: 400;
     --font-weight-medium: 500;
     --font-weight-semibold: 600;
     --font-weight-bold: 700;
     --font-weight-solid: 900;

     --size-big: 50px;
     --size-medium: 22px;
     --size-average: 18px;
     --size-base: 16px;
     --size-mini: 14px;
     --size-minor: 12px;
     --max-width: 1600px;
 }

@font-face { font-family: 'Font Awesome 6 Pro'; src:url('../fonts/FontAwesome6Pro-Solid.woff') format('woff'); font-style: normal; font-weight: 900; font-display: swap; }
@font-face { font-family: "Font Awesome 6 Pro"; src:url("../fonts/FontAwesome6Brands-Regular.woff") format("woff"); font-style: normal; font-weight: 400; font-display: swap; }
@font-face { font-family: 'Font Awesome 6 Pro'; src:url('../fonts/FontAwesome6Pro-Light.woff') format('woff'); font-style: normal; font-weight: 300; font-display: swap; }
@font-face { font-family: 'Font Awesome 6 Pro'; src:url('../fonts/FontAwesome6Pro-Regular.woff') format('woff'); font-style: normal; font-weight: 400; font-display: swap; }


* { margin: 0; padding: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
*:before, *:after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}
html { font-family: sans-serif; -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);} 
body { margin: 0; line-height: 1.3; font-family: var(--sans); color: var(--grey); font-size: var(--size-base); font-weight: var(--font-weight-light); }
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
audio, canvas, progress, video { display: inline-block; vertical-align: baseline; }
audio:not([controls]) { display: none; height: 0; }
[hidden], template { display: none; }
a { background: transparent; -webkit-transition: all .6s; -moz-transition: all .6s; -o-transition: all .6s; transition: all .6s; text-decoration: none!important }
a:active, a:hover, a:focus { text-decoration: none; }
b, strong { font-weight: bold; }
svg:not(:root) { overflow: hidden; }
button, input, optgroup, select, textarea { margin: 0; color: inherit; font: inherit; }
input, button, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; border:none; display: block; }
label { display: block; }
img { border: 0; vertical-align: middle; max-width: 100%; }
h1, h2, h3, h4, h5, h6 { font-weight: var(--font-weight-normal); line-height: 1; }
.clear { clear: both; }
.overflow { overflow: hidden; }
.nav { margin: 0; padding: 0; list-style: none; }
.nav > li { position: relative; display: block; }
.nav > li > a { position: relative; display: block; }
.nav-pills { display: block; }
.nav-pills > li { float: left; text-transform: none; font-weight: normal; }
.navbar { position: relative; }
.navbar-nav > li > a { line-height: 1; }
ul.cnt { margin:0; padding:0; display:flex; list-style: none; -ms-box-orient: horizontal; -webkit-align-items: stretch; }
.cnt { display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: flex; list-style: none; -ms-box-orient: horizontal; -webkit-align-items: flex-start; align-items: flex-start; justify-content: center; }
/*Elementi comuni ai template*/
.caption-cnt { display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: flex; list-style: none; -ms-box-orient: horizontal; -webkit-align-items: center; align-items: center; }
.ztemplate .title { margin: 0 0 15px 0; font-size: 200%; font-family: var(--sans-alt); text-transform: uppercase; }
.ztemplate .title a { color: var(--color1); }
.ztemplate .zoption { margin: 0 0 10px 0; font-size: 90%; color: var(--grey);}
.ztemplate .zoption .fieldvalue:before { margin: 0 5px 0 0;content: "/";  }
/* Slick Dots */
.slick-dots { text-align: center; z-index: 10; position: absolute; left: 0; right: 0; bottom: 0px; }
.slick-dots li { margin: 0 5px; display: inline-block; }
.slick-dots li button { position: relative; width: 12px; height: 12px; border-radius: 50%; background-color: rgba(0,0,0,0.5); font-size: 0;}
.slick-dots li.slick-active button { background-color: var(--color1); }
/* Slick Arrow */
button.slick-next, button.slick-prev { z-index: 11; position: absolute; top: calc(50% - 24px); background-color: transparent; border: none; font-size: 0;}
button.slick-next { left: 0; right: initial; }
button.slick-prev { left: initial; right: 0; }
button.slick-next:before,
button.slick-prev:before{ font-family: var(--font-icon); font-weight: var(--font-weight-light); font-size: 48px; }
button.slick-next:before{ content: '\f053'; }
button.slick-prev:before{ content: '\f054';}

/* Header */
header { position: fixed; top: 0; left: 0; width: 100%; z-index: 998; background-color: var(--white); /* overflow: hidden; */ }
header .wrap_cnt { margin: 0 auto; display: flex; align-items: center; justify-content: space-between; width: 100%; max-width: var(--max-width); }
header .col { padding: 20px; display: flex; align-items: center; gap: 20px; position: relative; z-index: 1;}
header #cntlogo { border-right: 1px solid var(--color3); }
header .col.menu_col:before { content: ''; position: absolute; z-index: -1; width: 750px; height: 110px; left: -110px; background-image: url(../images/bg/top_menu_bg.svg); background-size: cover; background-repeat: no-repeat; }

/* Elementi comuni */
.phone_btn a { font-weight: var(--font-weight-normal); color: var(--color1); font-size: var(--size-mini); }
.phone_btn a:before { margin-right: 5px; font-family: var(--font-icon); content: '\f095'; color: var(--color3); font-weight: var(--font-weight-solid); }
.btn a, .zsimplebutton a,
.zlink a { padding: 10px 20px; text-transform: uppercase; color: var(--color1); font-size: var(--size-mini); font-weight: var(--font-weight-bold); background-color: var(--white); border: 2px solid var(--color2); min-width: 130px; display: inline-block; text-align: center; }
.blue_btn a { background-color: var(--color1); color: var(--white); border-color: var(--color1); }
.o10 { opacity: .10; }

/* Slideshow */
#slideshow img { width: 100%; max-height: 100vh; object-fit: cover; }
.slideshow_cnt { position: relative; }
.scroll_btn { display: none; position: absolute; z-index: 2; bottom: 40px; left: 50%; transform: translateX(-50%); color: var(--white); text-transform: uppercase; text-align: center; }
.body_home .scroll_btn { display: block; }
.scroll_btn:after { margin-top: 10px; display: inline-block; font-family: var(--font-icon); content: '\f13d'; font-weight: var(--font-weight-light); font-size: var(--size-medium); }

/* Standard page */
#page { margin: 0 auto; padding: 40px 15px; max-width: var(--max-width); }
#page_name, .page_title { margin-bottom: 5px; font-family: var(--sans-alt); text-transform: uppercase; color: var(--color1); font-weight: var(--font-weight-normal); font-size: 2em;}
#page .text.g2 { color: var(--color2); text-transform: uppercase; font-weight: var(--font-weight-medium); }
#page .text.g2 a { color: var(--color2); }
#page .text_dyn.g3 { margin-top: 30px; }
#page .text_dyn.g3 strong { color: var(--color1); }
#page p { margin-bottom: 15px; }
.has_submenu { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 30px; }
.has_submenu .col { width: calc(100% - 350px - 30px); }
#page :where(.text, .text_dyn) a { color: var(--color1); text-decoration: underline!important; }
#page .text_dyn ul { padding-left: 18px; }
#page .text_dyn ul li { margin-bottom: 8px; }
#page .text_dyn .fieldvalue { margin-bottom: 30px; overflow: hidden; }
#page .text_dyn :where(h2,h3,h4,h5,h6) { margin-bottom: 5px; font-family: var(--sans-alt); color: var(--color1); }

/* User Privacy */
.body_user_privacy_panel form .caption-fields .field { width: 100%; text-align: left; }
.body_user_privacy_panel #page { --max-width: 1024px; text-align: center; }

/* Google maps */
.gmap { margin-bottom: 40px; border: 5px solid var(--color2)!important; }

/* SEO */
.top_seo { margin-bottom: 10px; font-size: var(--size-minor); color: var(--color1); }

/* Submenu */
.section_submenu { background-color: var(--light-grey); width: 350px; position: sticky; top: 120px; border: 1px solid var(--color1); }
.section_submenu .varsimple { padding: 10px; background-color: var(--color1); color: var(--white); font-family: var(--sans-alt); text-transform: uppercase; font-weight: var(--font-weight-normal); font-size: var(--size-average); }
.submenu ul { display: flex; flex-direction: column }
.submenu, .submenu a { color: var(--color1); display: inline-block; width: 100%; }
.submenu ul li { padding: 10px; border-bottom: 1px solid var(--color3); display: flex; align-items: center; }
.submenu ul li:last-of-type { border-bottom: unset; }
.submenu ul li.active { background-color: var(--color3); color: var(--white); }
.submenu ul li:before { margin-right: 5px; font-family: var(--font-icon); content: '\f13d'; color: var(--color2); }
.submenu ul li.active:before { color: var(--white); }

/* Gallery */
.gallery_cnt { margin-top: 60px; }
.gallery_cnt.no_carousel ul { display: flex; justify-content: center; gap: 20px; }

/* TNS Controls */
.tns-nav { display: flex; align-items: center; gap: 10px; position: absolute; z-index: 3; bottom: 30px; left: 50%; transform: translateX(-50%);}
.tns-nav button { width: 15px; height: 2px; background-color: var(--white); opacity: .5; transition: .4s all;}
.tns-nav button:before { content: ''; position: absolute; height: 20px; top: -10px; width: 100%; }
.tns-nav button.tns-nav-active { opacity: 1; width: 25px; }
.tns-controls { margin-top: 15px; display: flex; justify-content: center; gap: 5px;}
.tns-controls button { background-color: transparent; width: 60px; height: 60px; background-color: var(--color1); text-align: center; line-height: 60px; }
.tns-controls button > div:before { font-family: var(--font-icon); font-size: var(--size-medium); color: var(--white); }
.tns-controls button[disabled] { opacity: .3; pointer-events: none; }
.tns-controls .prev:before { content: '\f053'; }
.tns-controls .next:before { content: '\f054'; }

/* Documents */
.documents { padding: 15px; background-color: var(--light-grey); }
.documents .document { padding: 10px 0; border-bottom: 1px solid var(--color3); }
.documents .document:last-of-type { border: unset; }
.documents .document a { text-transform: uppercase; color: var(--color1); }
.documents .document a:before { margin-right: 5px; font-family: var(--font-icon); content: '\e053'; }
.document_size { display: none; }

/* 404 */
.body_404 header, .body_404 footer, .body_404 #partners, .body_404 .privacy_cnt { display: none; }
.body_404 { text-align: center; }
.not_found_logo { margin-bottom: 30px; width: 100vw; height: 100vh; position: absolute; z-index: -1; left: 0; top: 0; object-fit: cover; }
.not_found_text { font-size: 15vw; }
.not_found_text span:nth-child(1){ color: var(--color2); }
.not_found_text span:nth-child(2){ color: var(--color1); }
.not_found_text span:nth-child(3){ color: var(--color3); }
.body_404 .section_text { color: var(--color1); font-size: var(--size-medium); }
.body_404 .btn { margin-top: 15px; }
.body_404 { padding-top: 10%; }

/* RWD */

@media(max-width: 1440px){
    header .col.menu_col:before { left: 0; }
}

@media(max-width: 1260px){
    header #cntlogo img { width: 220px; }
    header .col.menu_col { position: fixed; z-index: 9998; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--white); flex-direction: column; align-items: center; justify-content: center; }
    header .col.menu_col:before { background-image: url('../images/logos/logo.svg'); width: 390px; height: 80px; position: relative; }
    .menu_is_open header .col { z-index: 9999; }
    .menu_is_open header .col.menu_col { z-index: 9998; }
    .menu_is_open header .col :where(#cntlogo, .phone_btn, .language_cnt) { display: none; }
    .menu_is_open header .col:last-of-type { width: 100%; justify-content: center; }
    .menu_is_open header .col:last-of-type .btn { position: relative; left: -20px; }
}

@media(max-width: 1023px){
    .has_submenu .col { width: 100%; }
    .section_submenu { width: 100%; }
}

@media(max-width: 820px){
    .phone_btn a { font-size: 0; }
    .phone_btn a:before { font-size: var(--size-average); }
    .tns-controls button { width: 40px; height: 40px; line-height: 40px; }
    .tns-controls button > div:before { font-size: var(--size-base); }
}

@media(max-width: 767px){
    body { padding-top: 115px; }
    header { overflow: visible; }
    header .col:last-of-type { position: inherit; }
    header .col .btn.blue_btn { position: absolute; top: 100%; left: 0; width: 100%; }
    header .col .btn.blue_btn a { width: 100%; }
    header .col.menu_col:before { width: 195px; height: 40px; }
    #page { padding: 30px 15px; }
}