/* ================================================================
   DESIGN SYSTEM — Bottacini
   Modifica solo questa sezione per cambiare palette/font/spacing
   ================================================================ */
:root {
    --k-accent:           #0C4D8D;
    --k-accent-hover:     #0a3f75;
    --k-accent-light:     #9EB8D1;
    --k-accent-subtle:    rgba(12, 77, 141, 0.1);
    --k-dark:             #001021;
    --k-dark-card:        #0a1a2e;
    --k-dark-border:      rgba(255, 255, 255, 0.12);
    --k-light:            #F3F3F3;
    --k-light-card:       #FFFFFF;
    --k-light-border:     #e0e0e0;
    --k-text:             #001021;
    --k-text-muted:       #4a5568;
    --k-text-light:       #FFFFFF;
    --k-text-light-muted: #9EB8D1;
    --k-font-body:        'Titillium Web', sans-serif;
    --k-font-base:        16px;
    --k-radius:           100px;
    --k-radius-lg:        12px;
    --k-radius-xl:        20px;
    --k-ease:             cubic-bezier(0.22, 0.61, 0.36, 1);
    --k-section-py:       96px;
    --k-section-py-mob:   56px;
}

/* ================================================================
   CLASSI CONDIVISE — non ridefinire nei blocchi
   ================================================================ */

/* pretitle */
.k-pretitle {
    font-size: 20px;
    font-weight: 400;
    text-transform: uppercase;
    color: var(--k-accent);
    font-family: var(--k-font-body);
    margin: 0;
}
.k-pretitle--light { color: var(--k-text-light-muted); }

/* section head */
.k-section-head {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 56px;
}

/* titoli */
.k-title {
    font-size: 70px;
    font-weight: 700;
    line-height: 1.05;
    color: var(--k-text);
    margin: 0;
    font-family: var(--k-font-body);
}
.k-title--h2 { font-size:45px; line-height: 1.15; }
.k-title--light { color: var(--k-text-light); }

/* subtitle */
.k-subtitle {
    font-size: 17px;
    line-height: 1.65;
    color: var(--k-text-muted);
    margin: 0;
    font-family: var(--k-font-body);
}
.k-subtitle--light { color: var(--k-text-light-muted); }

/* bottoni */
.k-btn {
    display: inline-block;
    padding: 14px 40px;
    border-radius: var(--k-radius);
    font-size: 16px;
    font-weight: 400;
    font-family: var(--k-font-body);
    text-decoration: none;
    border: 1px solid var(--k-accent);
    background-color: var(--k-accent);
    color: #fff;
    transition: background-color 0.25s var(--k-ease), color 0.25s var(--k-ease), border-color 0.25s var(--k-ease);
    cursor: pointer;
}
.k-btn:hover { }
.k-btn--lg   { padding: 18px 44px; font-size: 17px; }

.k-btn--outline { background-color: transparent; color: var(--k-accent); }
.k-btn--outline:hover { background-color: var(--k-accent); color: #fff; }

.k-btn--dark { background-color: var(--k-dark); border-color: var(--k-dark); color: var(--k-text-light); }
.k-btn--dark:hover { background-color: #000; border-color: #000; color: #fff; }

.k-btn--white { background-color: #fff; border-color: #fff; color: var(--k-dark); }
.k-btn--white:hover {}

.k-btn--ghost { background-color: transparent; border-color: rgba(255,255,255,0.5); color: #fff; }
.k-btn--ghost:hover { background-color: #fff; border-color: #fff; color: var(--k-dark); }

/* responsive classi condivise */
@media screen and (max-width: 767px) {
    .k-title            { font-size: 34px; }
    .k-title--h2        { font-size: 26px; }
    .k-section-head     { margin-bottom: 32px; }
    .k-btn              { padding: 10px 32px; width: fit-content; }
}

/* ipad pro */
@media screen and (min-width: 992px) and (max-width: 1200px) {
    .k-title--h2        { font-size: 35px; }
}

/* ================================================================ */

/**** generic ****/
body{overflow-x: hidden; margin: 0; font-size: 16px; color: #001021;  font-family: "Titillium Web", sans-serif; font-weight: 400; line-height: 1.5;}
h1,h2,h3,h4{ }
.pure-button{font-size: 100%; padding: .5em 1em; color: rgba(0,0,0,.8); border: transparent; background-color: #e6e6e6; text-decoration: none; border-radius: 2px;}
.pure-button-hover, .pure-button:focus, .pure-button:hover {background-image: -webkit-gradient(linear,left top,left bottom,from(transparent),color-stop(40%,rgba(0,0,0,.05)),to(rgba(0,0,0,.1)));background-image: linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));}
main{margin-top: 0;}
a{color: inherit;}
p{margin-top: 0;}

/* admin */
.admin-bar .menu1{top: 47px;}

/* custom classes (utils) */
.w-100{width: 100%;}
.h-auto{height: auto;}
.d-block{display: block!important;}
.overflow-hidden{overflow: hidden;}

/* custom containers */
.pure-containerFluid{width: 100%;}
.pure-container{max-width: 1440px; width: 100%; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto; box-sizing: border-box;}
.menu1 .pure-g > div[class*="pure-u-"] {margin-bottom: 0px;}
body .pure-g{letter-spacing: normal;}
.pure-g > div[class*="pure-u-"] {padding: 0 15px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;}

/**** header ****/
.navbar-brand{display: flex; align-items: center;}
.navbar__logo{height: 43px; width: auto;}

/* menu */
.menu1{ padding: 10px; position: fixed; top:15px; left: 50%; transform: translateX(-50%); width: calc(100% - 30px); height: auto; z-index: 10; background-color: #FFFFFF; transition: height 0.3s, box-shadow 0.3s;
    max-width: 1440px; box-sizing: border-box; border-bottom: 3px solid #0C4D8D;}
.menu1--scrolled{ box-shadow: 0 4px 20px rgba(0, 16, 33, 0.12); }
.menu1.open{height: 100%; transition: height 0.3s;}
.menu1 .pure-menu-link{color: #0C4D8D; text-transform: uppercase; padding: 0 15px; position: relative; z-index: 1;}
.menu1 li.current-menu-item .pure-menu-link, .menu1 li.current-menu-ancestor .pure-menu-link, .menu1 li.current_page_item .pure-menu-link{position: relative;}
.menu1 li.current-menu-item .pure-menu-link::before, .menu1 li.current-menu-ancestor .pure-menu-link::before, .menu1 li.current_page_item .pure-menu-link::before{content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 34px; height: 34px; background-image: url('assets/images/bg-current-link.svg'); background-repeat: no-repeat; background-position: center; background-size: contain; z-index: -1;}
.menu1 .pure-menu{position: relative;display: flex;align-items: center;justify-content: space-between; height: 100%;}
.menu1 .pure-menu-list{display: flex; justify-content: flex-end; align-items: center;}
.menu1 .sub-menu{display: none; margin: 0; padding: 8px 0; min-width: 240px;}
.menu1 .menu-item-has-children:hover .sub-menu{display: block; position: absolute; top: 100%; left: 0; padding-left: 0; background-color: #fff; list-style: none; box-shadow: 0 12px 24px rgba(0,16,33,0.14); border-radius: 6px; z-index: 20;}
.menu1 .menu-item-has-children{position: relative;}
.menu1 .sub-menu .pure-menu-link{display: block; padding: 5px 20px; white-space: nowrap; transition: background-color 0.2s, color 0.2s; font-size: 16px; text-transform: unset;}
.menu1 .sub-menu li .pure-menu-link::before{display: none;}
.menu1 .sub-menu .pure-menu-link:hover{opacity: 0.6;}
.menu1 .menu-item-has-children > a{position: relative;}
.menu1 .menu-item-has-children > a::after{content: ''; display: inline-block; width: 10px; height: 10px; margin-left: 6px; background-color: currentColor; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 1200'%3E%3Cpath d='m13.707 356.53c-18.301-18.23-18.301-47.91 0-66.211 18.301-18.301 47.98-18.301 66.211 0l520.08 520.08 520.01-520.08c18.301-18.301 47.98-18.301 66.281 0 18.23 18.301 18.23 47.98 0 66.211l-553.22 553.15c-18.23 18.301-47.91 18.301-66.211 0l-553.15-553.15z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 1200'%3E%3Cpath d='m13.707 356.53c-18.301-18.23-18.301-47.91 0-66.211 18.301-18.301 47.98-18.301 66.211 0l520.08 520.08 520.01-520.08c18.301-18.301 47.98-18.301 66.281 0 18.23 18.301 18.23 47.98 0 66.211l-553.22 553.15c-18.23 18.301-47.91 18.301-66.211 0l-553.15-553.15z'/%3E%3C/svg%3E"); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain; vertical-align: middle;}
.custom-wrapper{ margin-bottom: 0; -webkit-font-smoothing: antialiased;}
.menu1__colRight .pure-menu{justify-content: flex-end;}

.menu1__buttonmode{}
.menu1__buttonmode a{background-color: #0C4D8D!important; color: #FFFFFF!important; font-weight: 700; border-radius: 100px;
    padding: 12px 30px!important; margin-left: 15px;}
.menu1__buttonmode a:hover{background-color: #0C4D8D!important; color: #FFFFFF!important;}

/* hamburger */
.custom-toggle.hamburger{width: 34px; height: 24px; position: relative; display: none; opacity: 1!important; padding: 0;}
.custom-toggle.hamburger .hamburger-box{width: 34px; height: 24px;}
.custom-toggle.hamburger .hamburger-inner, .custom-toggle.hamburger .hamburger-inner:after, .custom-toggle.hamburger .hamburger-inner:before{width: 34px; height: 3px;}
.custom-toggle.hamburger .hamburger-inner, .custom-toggle.hamburger .hamburger-inner:after, .custom-toggle.hamburger .hamburger-inner:before{background-color: #222222;}
.custom-toggle.hamburger .hamburger.is-active .hamburger-inner, .custom-toggle.hamburger .hamburger.is-active .hamburger-inner:after, .custom-toggle.hamburger .hamburger.is-active .hamburger-inner:before{background-color: #222222;}

/* footer */
footer{margin-bottom: 0; margin-top: 0;}
footer .widget_media_image img{width: 150px; margin-bottom: 0px;}
footer li{list-style: none;}
footer li a{width: fit-content;}
.footer-copy{text-align: center; font-size: 14px;}
.pure-menu-active>.pure-menu-link, .pure-menu-link:focus, .pure-menu-link:hover {background-color: transparent!important;}
.footer__logos figure{margin-bottom: 0!important;}
.footer__col.footer__col4 figure a{display: flex; justify-content: center;}


/* mobile*/
@media screen and (max-width: 767px) {
    .pure-container .pure-g > div[class*="pure-u-"]{padding-left: 0!important; padding-right: 0!important;}

    .menu1__colLeft{padding-left: 0!important; padding-right: 0!important;}
    .navbar__logo{height: 36px;}
    .menu1 li.current-menu-item .pure-menu-link::before, .menu1 li.current-menu-ancestor .pure-menu-link::before, .menu1 li.current_page_item .pure-menu-link::before{left: -10px; transform: translateY(-50%);}
    .menu1 .sub-menu li .pure-menu-link::before{display: none;}

    .menu1 .pure-menu-list{display: none;}
    .menu1.open{position: fixed; top: 0; left: 0; transform: none; width: 100%; max-width: none; height: 100vh; overflow-y: auto; border-radius: 0; padding: 20px;}
    .menu1.open .pure-menu-list{display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-top: 24px; width: 100%;}
    .menu1.open .pure-menu-list li{width: 100%;}
    .menu1.open .pure-menu-link{padding: 12px 0; font-size: 18px; width: 100%;}
    .menu1.open .sub-menu .pure-menu-link{padding: 8px 12px !important;}
    .custom-toggle.hamburger {display: block;}
    .menu1 .pure-button{display: none;  margin-left: 15px;}
    .menu1.open .menu1__buttonmode{margin-top: 12px; width: 100%;}
    .menu1.open .menu1__buttonmode a{display: block; text-align: center; margin-left: 0!important; box-sizing: border-box;}
    .menu1__colRight .pure-menu{justify-content: flex-start;}
    .menu1 .menu-item-has-children:hover .sub-menu, .menu1 .menu-item-has-children.sub-menu-open > .sub-menu{position: relative!important; box-shadow: none!important; border-radius: 0!important;}
    .menu1 .menu-item-has-children:hover .sub-menu{display: none;}
    .menu1 .sub-menu{position: relative; box-shadow: none; border-radius: 0; min-width: 0; padding: 0 0 0 16px;}
    .menu1 .menu-item-has-children.sub-menu-open > .sub-menu{display: block;}
    .menu1 .menu-item-has-children > a{display: flex; align-items: center; justify-content: space-between; width: 100%;}
    .menu1 .menu-item-has-children > a::after{margin-left: 6px; margin-right: 8px; flex-shrink: 0;}
    .menu1 .menu-item-has-children.sub-menu-open > a::after{transform: rotate(180deg);}
}

/* ipad */
@media screen and (min-width: 768px) and  (max-width: 1023px){
    .pure-container .pure-g > div[class*="pure-u-"]{padding-left: 0!important; padding-right: 0!important;}
    .menu1__colLeft{padding-left: 0!important; padding-right: 0!important;}
}

/* menu: hamburger attivo da 768px fino a 1200px (ipad + ipad pro) */
@media screen and (min-width: 768px) and (max-width: 1200px){
    .navbar__logo{height: 36px;}
    .menu1__colLeft, .menu1__colRight { width: 100% !important; }
    .menu1 li.current-menu-item .pure-menu-link::before, .menu1 li.current-menu-ancestor .pure-menu-link::before, .menu1 li.current_page_item .pure-menu-link::before{left: -10px; transform: translateY(-50%);}
    .menu1 .sub-menu li .pure-menu-link::before{display: none;}

    body .menu1 .pure-menu-list{display: none;}
    .menu1.open{position: fixed; top: 0; left: 0; transform: none; width: 100%; max-width: none; height: 100vh; overflow-y: auto; border-radius: 0; padding: 20px;}
    .menu1.open .pure-menu-list{display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-top: 24px; width: 100%;}
    .menu1.open .pure-menu-list li{width: 100%;}
    .menu1.open .pure-menu-link{padding: 12px 0; font-size: 18px; width: 100%;}
    .menu1.open .sub-menu .pure-menu-link{padding: 5px 20px !important;}
    .custom-toggle.hamburger {display: block;}
    .menu1 .pure-button{display: none; margin-left: 15px;}
    .menu1.open .menu1__buttonmode{margin-top: 12px; width: 100%;}
    .menu1.open .menu1__buttonmode a{display: block; text-align: center; margin-left: 0!important; box-sizing: border-box;}
    .menu1__colRight .pure-menu{justify-content: flex-start;}
    .menu1 .menu-item-has-children:hover .sub-menu, .menu1 .menu-item-has-children.sub-menu-open > .sub-menu{position: relative!important; box-shadow: none!important; border-radius: 0!important;}
    .menu1 .menu-item-has-children:hover .sub-menu{display: none;}
    .menu1 .sub-menu{position: relative; box-shadow: none; border-radius: 0; min-width: 0; padding: 0 0 0 16px;}
    .menu1 .menu-item-has-children.sub-menu-open > .sub-menu{display: block;}
    .menu1 .menu-item-has-children > a{display: flex; align-items: center; justify-content: space-between; width: 100%;}
    .menu1 .menu-item-has-children > a::after{margin-left: 6px; margin-right: 8px; margin-top: 7px; flex-shrink: 0;}
    .menu1 .menu-item-has-children.sub-menu-open > a::after{transform: rotate(180deg);}
}


[id]{scroll-margin-top: 150px;}

/* desktop stretto */
@media screen and (min-width: 1201px) and (max-width: 1390px) {
    .menu1 .pure-menu-link { padding: 0 10px; font-size: 14px; }
    .navbar__logo { height: 35px; width: auto; }
}