/* FONTS */
@font-face{font-family:Montserrat;src:url("../fonts/Montserrat-Regular.d06cc782.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:Montserrat;src:url("../fonts/Montserrat-Medium.8cc4096e.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:Montserrat;src:url("../fonts/Montserrat-Bold.23d048d0.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap;}

/* ------------------------------ Oringone tokens (globali) ------------------------------ */
:root {
  --blue: #0d47a1;
  --dark: #263238;
  --cyan: #1fdbdc;
  --grey: #636569;
  --red: #d31f26;
  --white: #ffffff;
  --black: #000000;
  --ease: cubic-bezier(0.77, 0, 0.175, 1);
  --dur: 0.5s;
  --transition: all var(--dur) var(--ease);
  --bs-body-bg: #ffffff;
  --bs-body-text-align: left;
}


body {
    color: #000;
    font-family: "Montserrat",sans-serif;
    font-weight: 400;
    font-style: normal;
    margin: 0;
    line-height: 2;
    font-size: 1.25rem;
    text-align: var(--bs-body-text-align);
    background-color: var(--bs-body-bg);
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

/* UTILITIES */
.bg-blue { background-color: #0d47a1; }
.gap-4 { gap: 2.8125rem !important; }
.text--xs { font-size: .75rem; line-height: 1.25; font-weight: 500; }
/* Etichette <small> (parità con l'originale: .text--xs; il colore tenue/display sono solo per .file-text) */
small { font-size: .75rem; line-height: 1.25; font-weight: 500; }
.textbtn { background: none; text-decoration: none; border: none; height: auto; width: auto; padding: 0; }
.is-clickable { cursor: pointer; }
/* Immagini: parità con l'originale (img.fit-contain / img.fit-cover) */
.fit-contain { object-fit: contain; }
.fit-cover { object-fit: cover; }

.white { color: #fff; }
.link-underline-white { text-decoration: underline !important; color: white; }

/* HEADER */
#header { width: 100%; height: auto; position: fixed; top: 0; left: 0; z-index: 400; padding-bottom: 1.5625rem; padding-top: 1.5625rem; 
  background: transparent; -webkit-transition-property: all; transition-property: all; -webkit-transition-duration: 0.5s; 
  transition-duration: 0.5s; -webkit-transition-timing-function: cubic-bezier(0.77,0,0.175,1); transition-timing-function: cubic-bezier(0.77,0,0.175,1);
}
#header { padding-bottom: 1.875rem; padding-top: 1.875rem; }
#header .navbar-header { width: 100%; } 

.menu-visiblemenu { font-size: .75rem; line-height: 1.25; font-weight: 500; }

.logo{ width: 100%; max-width: 7.5rem; height: auto; display: block; }
.svg-wrapper { width: 100%; display: block; height: auto; position: relative; padding-top: 100%; transition-property: all; 
  transition-duration: .5s; transition-timing-function: cubic-bezier(.77,0,.175,1); }
.svg-wrapper svg { width: 100%; height: 100%; position: absolute; top: 0; left: 0; overflow: visible; vertical-align: top; }
.logo .svg-wrapper { padding-top: 28%; }

#header.is-home .logo .svg-wrapper svg *,
#header.menu-is-open .logo .svg-wrapper svg * { fill: #fff; }
#header.is-home .logo .svg-wrapper svg * { fill: #ffffff; }
#header.menu-is-open .logo .svg-wrapper svg * { fill: #ffffff; }
#header.is-scrolled { transform: translateY(-300px); z-index: -1; }
#header.is-scrolled,
#header.page-is-scrolled { background: #fff; }
#header.is-scrolled.menu-is-open,
#header.page-is-scrolled.menu-is-open { background: #263238; color: #fff; z-index: 301; transform: translateY(0); }
#header.is-home .menu-item--header,
#header.is-home .textbtn { color: #fff; }
#header.is-home .line { background: #fff; }
/* Pagine interne: voci menu (e hamburger) blu come l'originale */
#header.is-not-home .nav-link,
#header.is-not-home .textbtn,
#header.is-not-home .menu-item--header { color: #0d47a1; }
#header.is-not-home.menu-is-closed .js-navbar-toggler .line { background: #0d47a1; }
#header.is-home.menu-is-closed.hide--menu { transform: translateY(-300px); z-index: -1; }
#header.is-home.menu-is-closed.is-scrolled,
#header.is-home.menu-is-closed.page-is-scrolled { background: #0d47a1; }

@media (min-width: 992px) {
  .menu-is-open #menu-visiblemenu .nav-link:not(.is-active) {
    color: rgba(255, 255, 255, 0.5) !important;
  }
}

.js-navbar-toggler { background-color: transparent; cursor: pointer; display: block; width: 2.1875rem; height: 0.9375rem; z-index: 300; 
  position: relative; display: inline; }
.js-navbar-toggler .line { width: 100%; height: 1px; background: rgb(255, 255, 255); position: absolute; transition-property: all; 
  transition-duration: 0.5s; transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
}
.js-navbar-toggler .line { transition-property: all; transition-duration: 0.5s; transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1); }
.js-navbar-toggler .line.top { top: 0px; bottom: auto; }
.js-navbar-toggler .line.center { top: 45%; bottom: 50%; }
.js-navbar-toggler .line.bottom { top: auto; bottom: 0px; }
.js-navbar-toggler.is-open .line.top { top: 45%; }
.js-navbar-toggler.is-open .line.bottom { bottom: 50%; }

/* SUBMENU */
#menu a { text-decoration: none; -webkit-text-decoration: none; }
.menu { width: 100%; height: 100%; position: fixed; top: 0; left: 0; overflow-x: hidden; overflow-y: auto; background: #263238; color: #fff; z-index: 300; }
.menu.is-visible { top: 0; transition: all .5s cubic-bezier(.77, 0, .175, 1); }
.menu.not-visible {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    top: -100vh;
    transition: all .5s cubic-bezier(.77, 0, .175, 1);
}
.menu--label { position: relative; } 
.menu--label::before { content: ""; width: 0.5rem; height: 0.5rem; left: -0.9375rem; border-radius: 50%; position: absolute; top: 50%; 
  transform: translateY(-50%); background: rgb(255, 255, 255); }
.menu .nav-link.is-disabled { color: #636569; }
.menu .nav-link.is-disabled:hover { color: #fff; }
.menu--top { padding-top: 7.5rem; }

.menu .mainmenu-list .nav-item { margin-bottom: 1.5625rem;  }
.nav-link, .menu-inside-voice { color: rgb(255, 255, 255); text-decoration: none; }

/* Search modal */

.menu-search--modal {  width: 100%; height: 100%; position: fixed; left: 0; overflow-x: hidden; overflow-y: auto; background: #263238; color: #ffffff; z-index: 301;
 transition-property: all; transition-duration: 0.5s; transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1); }

.menu-search--modal .js-close-search { height: 125px; }
.menu-search--modal .js-close-search::before { content: "<< "; }

.menu-search--modal.is-visible {
    top: 0;

    transition-property: all;
    transition-duration: 0.5s;
    transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
}

.menu-search--modal.not-visible {
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    top: 100vh;

    transition-property: all;
    transition-duration: 0.5s;
    transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
}

.menu-search--modal .menu--top {
    padding-top: 7.5rem;
}

/* Algolia search form (hero home + modal menu) */
.algolia-search-form {
    display: grid;
    grid-template-columns: 1fr 2.1875rem;
    border-bottom: 0.125rem solid #ffffff;
}
.algolia-search-form input { border-radius: 0 !important; }
#algolia_search {
    line-height: 1.25;
    font-size: 2.5rem;
    background: transparent;
    border: none;
    color: inherit;
    width: 100%;
    outline: none;
}
@media (min-width: 992px) { #algolia_search { font-size: 5rem; } }
#algolia_search::placeholder { color: #fff; opacity: 1; }
#algolia_search::-webkit-search-cancel-button { -webkit-appearance: none; }
.close-icon--button {
    background: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}
.close-icon--button[hidden] { display: none; }
.close-icon { display: block; width: 0.9375rem; height: 0.9375rem; }
.close-icon .svg-wrapper { padding-top: 100%; }
.hits-wrapper { height: 0; overflow: hidden; }

/* Algolia results (hits) */
.algolia-results {
    background: #0d47a1;
    color: #ffffff;
    margin-top: 0.9375rem;
    overflow-x: hidden;
    overflow-y: auto;
    max-height: 75vh;
}
.algolia-results.bg-darkblue { background: #263238; }
.hit-list { list-style: none; margin: 0; padding: 0; }
.hit-link {
    display: grid;
    grid-template-columns: 6.25rem 1fr;
    grid-template-rows: auto;
    grid-gap: 1.875rem;
    color: #ffffff;
    text-decoration: none;
}
.hit-link:hover .hit-image { opacity: 0.75; }
.hit-link:hover .hit-title,
.hit-link:hover .hit-text { color: #ffffff; }
.hit-content { max-width: 62.5rem; }
.hit-image {
    width: 100%;
    height: 0;
    padding-bottom: 100%;
    position: relative;
    overflow: hidden;
    opacity: 1;
    transition: all 0.5s cubic-bezier(0.77, 0, 0.175, 1);
}
.hit-image img {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    object-fit: cover;
    opacity: inherit;
}
.hit-title { line-height: 1.2; display: block; }
.no-results { color: #ffffff; border: 0.125rem solid #ffffff; padding: 30px; }
input[type="search"]::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
}


@media (min-width: 992px) {

    .menu-search--modal .menu--top {
        width: 100%;
        height: 100%;
    }

}

.menu-search--modal .menu--label {
    position: relative;
    margin-bottom: 3.125rem;
}

@media (min-width: 992px) {

    .menu-search--modal .menu--label {
        margin-top: 0.625rem;
        margin-bottom: 6.25rem;
    }

}

.menu-search--modal .menu--label::before {
    content: "<< ";
}

.menu-search--modal .search--label {
    transition-property: all;
    transition-duration: 0.5s;
    transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);

    margin-bottom: 4.6875rem;
    margin-bottom: 0;
}

.menu-search--modal .search--label.show-hits {
    transition-property: all;
    transition-duration: 0.5s;
    transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);

    margin-bottom: 0;
}

.menu-search--modal .no-scroll {
    overflow: hidden;
}

@media (min-width: 992px) {
    .menu-voices--voice .menu-inside-voice { margin-left: 1.25rem; }
}

@media (min-width: 992px) {
    .menu--top {
        width: 100%;
        height: 100%;
    }
}

.menu--bottom {
    position: absolute;
    left: 0;
    bottom: 1.875rem;
    color: #fff;
}

.lang-inline--link {
    opacity: 1;
    position: relative;
    -webkit-transition-property: all;
    transition-property: all;
    -webkit-transition-duration: 0.5s;
    transition-duration: 0.5s;
    -webkit-transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
    transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1);
    -webkit-text-decoration: none;
    text-decoration: none;
}

.dropdown-collapse {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition:
        opacity .25s ease 0s,
        max-height .3s ease .25s;
}

.dropdown-collapse.list--show {
    max-height: 125rem;
    opacity: 1;
    transition:
        max-height .35s ease 0s,
        opacity .25s ease .2s;
}

.menu .nav-link.is-disabled { color: #636569; }
.menu .nav-link.is-disabled:hover { color: #fff; }
.menu .nav-link.link--voices.is-opened .voices-main-title { font-style: italic; }

#header #menu-visiblemenu { color: #fff; }

@media (min-width: 992px) {
    .menu .nav-link.is-disabled { height: clamp(30px, 10px + 2vw, 60px); font-size: calc(0.65vh + 1vw); }
}

@media only screen and (min-width: 1600px) {
    .menu .nav-link { font-size: calc(1vh + 1vw); }
}

@media (min-width: 992px) {
    .custom-cursor {
        display: block;
        width: 1.375rem;
        height: 1.375rem;
        border: .125rem solid #1fdbdc;
        border-radius: 50%;
        position: fixed;
        transform: translate(-50%, -50%);
        pointer-events: none;
        z-index: 1000;
    }
}


@media (min-width: 1400px) {
  .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl { max-width: 1400px; }
}

/*
.logo {
    width: 100%;
    max-width: 6.875rem;
    height: auto;
    display: block;
}

@media (min-width: 992px) {
    .logo {
        max-width:7.5rem;
    }
}

.logo .svg-wrapper {
    padding-top: 28%;
}

@media (min-width: 992px) {
    .logo.logo--landing {
        max-width:150px;
    }
}

.logo.logo--landing .svg-wrapper {
    padding-top: 56%;
}

.menu-item--header {
    display: none;
}

@media (min-width: 992px) {
    .menu-item--header {
        display:block;
    }

    .menu-item--header .menu-link {
        -webkit-text-decoration: none;
        text-decoration: none;
    }

    .menu-is-open .menu-item--header .menu-link.not-active {
        color: rgba(255,255,255,0.5) !important;
    }

    .menu-is-open .menu-item--header .menu-link.is-active {
        color: white !important;
        -webkit-text-decoration: underline;
        text-decoration: underline;
    }
}

.menu {
    cursor: pointer;
    display: block;
    width: 2.1875rem;
    height: 0.9375rem;
    z-index: 300;
    position: relative;
}

.menu .line {
    width: 100%;
    height: 1px;
    background: #ffffff;
    position: absolute;
    -webkit-transition-property: all;
    transition-property: all;
    -webkit-transition-duration: 0.5s;
    transition-duration: 0.5s;
    -webkit-transition-timing-function: cubic-bezier(0.77,0,0.175,1);
    transition-timing-function: cubic-bezier(0.77,0,0.175,1);
}

.menu .line.top {
    top: 0;
    bottom: auto;
}

.menu .line.center {
    top: 45%;
    bottom: 50%;
}

.menu .line.bottom {
    top: auto;
    bottom: 0;
    bottom: 0;
}

.menu.is-open {
    -webkit-transition-property: all;
    transition-property: all;
    -webkit-transition-duration: 0.5s;
    transition-duration: 0.5s;
    -webkit-transition-timing-function: cubic-bezier(0.77,0,0.175,1);
    transition-timing-function: cubic-bezier(0.77,0,0.175,1);
}

.menu.is-open .line.top {
    top: 45%;
}

.menu.is-open .line.bottom {
    bottom: 50%;
}

.is-page {
    color: #0d47a1;
}
*/
/* ============ MODAL HEADER ITEMS (voci del menu visibile) ============ */
.modal-header--items { width: 100%; height: 100%; position: fixed; top: 0; left: 0; overflow-x: hidden; overflow-y: auto; background: #263238; color: #fff; z-index: 300; }
.modal-header--items.is-visible { top: 0; transition-property: all; transition-duration: 0.5s; transition-timing-function: cubic-bezier(0.77,0,0.175,1); }
.modal-header--items.not-visible { opacity: 0; pointer-events: none; visibility: hidden; top: -100vh; transition-property: all; transition-duration: 0.5s; transition-timing-function: cubic-bezier(0.77,0,0.175,1); }
.modal--top { padding-top: 7.5rem; }
@media (min-width: 992px) { .modal--top { padding-top: 7.5rem; width: 100%; height: 100%; } }
.modal-voice--title { font-style: italic; line-height: 1; padding-bottom: 3.75rem; margin-bottom: 3.75rem; position: relative; }
.modal-voice--title::after { content: ""; position: absolute; bottom: 0; left: 0; width: 1.875rem; height: 1px; background: #fff; }
.modal-voice--title .textbtn { cursor: default; color: #fff; }
.modal-voice { margin-bottom: 1.875rem; line-height: 1; max-width: fit-content; color: #fff; text-decoration: none; }
.modal-voice:last-child { margin-bottom: 0; }
@media (min-width: 992px) { .modal-voice--title, .modal-voice { font-size: calc(1vw + 0.65vh); } }
@media only screen and (min-width: 1600px) { .modal-voice--title, .modal-voice { font-size: calc(1vw + 1vh); } }
/* ====== menu visibile: stato attivo voci (come l originale) ========= */
.js-visiblemenu-accordion.is-active { color: #fff !important; text-decoration: underline; }
@media (min-width: 992px) {
    .menu-is-open .js-visiblemenu-accordion.not-active { color: rgba(255, 255, 255, 0.5) !important; }
}
/* ====== utility globali testo (hero interno + footer) =============== */
.heading--xl { line-height: 1.25; font-size: 2.5rem; }
@media (min-width: 768px) { .heading--xl { font-size: 3.75rem; } }
@media (min-width: 992px) { .heading--xl { font-size: 5rem; } }

.text--stroked {
  display: inline-block;
  position: relative;
  font-size: 2.5rem;
  line-height: 1.25;
  font-weight: 700;
  color: transparent;
}
@media (min-width: 768px) { .text--stroked { font-size: 3.75rem; } }
@media (min-width: 992px) { .text--stroked { font-size: 6.25rem; } }
.text--stroked.stroke--blue { -webkit-text-stroke: 0.0625rem var(--blue); }
@media (min-width: 992px) { .text--stroked.stroke--blue { -webkit-text-stroke: 0.125rem var(--blue); } }
.text--stroked.stroke--blue:before { color: var(--blue); }
.text--stroked.stroke--white { -webkit-text-stroke: 0.0625rem #fff; }
@media (min-width: 992px) { .text--stroked.stroke--white { -webkit-text-stroke: 0.125rem #fff; } }
.text--stroked.stroke--white:before { color: #fff; }
.text--stroked:before {
  content: attr(data-text);
  height: 100%;
  position: absolute;
  pointer-events: none;
  overflow: hidden;
  z-index: -1;
  transition: height 1.5s ease-out 0.5s;
  white-space: pre-line;
}
.text--stroked.show:before { height: 0; }
/* Stacking: il contenuto sta SOPRA il footer fisso (tutte le pagine) */
.block, .block-hero, .pageheader { position: relative; z-index: 2; }
/* Highlight testo (mark) come il sito originale */
mark { padding: .2em; background: #0d47a1; color: #fff; }
/* Come l'originale: l'ultimo blocco della pagina ha più respiro in basso (12.5rem @>=992px) */
@media (min-width: 992px) {
  #main-content > .section:last-child,
  #main-content > .blocks > .section:last-child { padding-bottom: 12.5rem; }
}

/* =====================================================================
   Modale CONFRONTO (markup generato dal blocco, logica in custom.js)
   ===================================================================== */
.compare-modal {
  width: 100%;
  position: fixed;
  overflow-x: hidden;
  overflow-y: auto;
  background: #263238;
  color: #ffffff;
  z-index: 400;
  height: 0;
  max-height: 0;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: all .5s cubic-bezier(.77, 0, .175, 1);
}
.compare-modal.first-step {
  opacity: 1;
  pointer-events: all;
  visibility: visible;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 6.25rem;
  max-height: 6.25rem;
  bottom: 0;
  left: 0;
  overflow: hidden;
}
@media (min-width: 992px) { .compare-modal.first-step { height: 9.375rem; max-height: 9.375rem; } }
.compare-modal.second-step { max-height: 100%; height: 100%; }
.compare-modal.second-step .container { position: relative; height: 100%; }
.compare-modal--inner { position: absolute; left: 0; top: 1.5625rem; width: 100%; height: calc(100% - 1.5625rem); }
.compare-modal--inner.centered { height: auto; top: 50%; transform: translateY(-50%); }
.compare-modal .next-step--button { cursor: pointer; }
.second-step--wrapper {
  position: absolute;
  width: calc(100% - 1.875rem);
  min-width: calc(100% - 1.875rem);
  top: 50%;
  transform: translateY(-50%);
}
.second-step--wrapper.not-visible {
  opacity: 0;
  height: 0;
  visibility: hidden;
  pointer-events: none;
  transition: all .5s cubic-bezier(.77, 0, .175, 1);
}
.compare-modal .table-scroller { overflow-x: auto; overflow-y: hidden; }
.second-step--labels span { display: block; padding: .9375rem 0; border-bottom: .0625rem solid #263238; }
@media (min-width: 992px) { .second-step--labels span { padding: 1.25rem 0; } }
.second-step--content { grid-gap: 1rem; display: grid; }
.second-step--content.grid-compare--3 { grid-template-columns: 7.8125rem repeat(2, minmax(180px, 1fr)); }
.second-step--content.grid-compare--4 { grid-template-columns: 7.8125rem repeat(3, minmax(180px, 1fr)); }
.second-step--content.grid-compare--5 { grid-template-columns: 7.8125rem repeat(4, minmax(180px, 1fr)); }
@media (min-width: 992px) {
  .second-step--content.grid-compare--3 { grid-template-columns: 9.375rem repeat(2, minmax(0, 1fr)); }
  .second-step--content.grid-compare--4 { grid-template-columns: 9.375rem repeat(3, minmax(0, 1fr)); }
  .second-step--content.grid-compare--5 { grid-template-columns: 9.375rem repeat(4, minmax(0, 1fr)); }
}
.compare-field { padding: .9375rem; border-bottom: .0625rem solid #ffffff; }
@media (min-width: 992px) { .compare-field { padding: 1.25rem; } }
.compare-fields--wrapper { text-align: center; }
.compare-head .material-label { padding: .35em .6em; }

/* Bottoni della barra (stile produzione: .btn + .btn--small, sottolineati) */
.compare-modal .btn {
  text-transform: uppercase;
  font-size: .75rem;
  line-height: 1.5;
  outline: none;
  -webkit-appearance: none;
  transition: all .5s cubic-bezier(.77, 0, .175, 1);
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  border: none;
  text-decoration: none;
  padding: .9375rem 1.875rem;
  margin: 0;
  color: #ffffff;
  background: #1fdbdc;
  font-weight: 700;
  max-width: 100%;
  border-radius: 0;
}
.compare-modal .btn:hover,
.compare-modal .btn:focus,
.compare-modal .btn:active { color: #ffffff; background: #1fdbdc; font-style: normal; }
.compare-modal .btn--small {
  background: transparent;
  color: #ffffff;
  text-decoration: none;
  max-width: fit-content;
  height: 2.5rem;
  padding: .625rem;
  font-weight: 400;
  cursor: pointer;
}
.compare-modal .btn--small:hover,
.compare-modal .btn--small:focus,
.compare-modal .btn--small:active { background: transparent; color: #ffffff; }
.compare-modal .btn--small:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: .0625rem;
  background: #ffffff;
  transition: all .5s cubic-bezier(.77, 0, .175, 1);
}
.compare-modal .btn--small:hover:after,
.compare-modal .btn--small:focus:after,
.compare-modal .btn--small:active:after { bottom: .3125rem; }

/* ------------------------- buttons & CTA (globale) ---------------------------- */
.cta {
  width: 100%;
  position: relative;
  text-decoration: none !important;
  display: grid;
  grid-template-columns: 1fr 2.5rem;
  font-size: 2.5rem;
  grid-column-gap: 1.875rem;
  column-gap: 1.875rem;
  line-height: 1.2;
  font-weight: 700;
  align-items: center;
}
@media (min-width: 768px) {
  .cta { font-size: 3.75rem; grid-template-columns: 1fr 3.75rem; white-space: nowrap; }
}
@media (min-width: 992px) {
  .cta { grid-template-columns: 1fr 5rem; font-size: 6.25rem; }
}
.cta.is-disabled, .cta:disabled { color: rgba(13, 71, 161, 0.2); cursor: not-allowed; }

.cta .cta-arrow--wrapper {
  position: relative;
  display: block;
  width: 100%;
  border: none;
  text-decoration: none;
  background: transparent;
  stroke-width: 0.1875rem;
}
/* cyan disc that grows behind the arrow */
.cta .cta-arrow--wrapper:after {
  content: "";
  border-radius: 50%;
  position: absolute;
  width: 100%;
  height: 100%;
  background: var(--cyan);
  z-index: -1;
  opacity: 0;
  left: -35px;
  bottom: 10px;
  transition: var(--transition);
}
.big-cta--hover .cta-arrow--wrapper:after { bottom: 0; left: -10px; opacity: 1; }
/* simple hover fallback (original triggers it via a JS-added class) */
.cta:hover .cta-arrow--wrapper:after { bottom: 0; left: -10px; opacity: 1; }

.palette-dark .cta-arrow--wrapper { border-color: #fff; }
.palette-dark .cta-arrow--wrapper .svg-wrapper * { stroke: #fff; }
.palette-light .cta-arrow--wrapper { border-color: var(--blue); }
.palette-light .cta-arrow--wrapper .svg-wrapper * { stroke: var(--blue); }

/* ---------------------- griglie (grid utilities) --------------------- */
.grid--1, .grid--2, .grid--3, .grid--4, .grid--5, .grid--6, .grid--9, .grid--12 { grid-gap: 1rem; display: grid; }
.grid--1 { grid-template-columns: 1fr; }
.grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.grid--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.grid--9 { grid-template-columns: repeat(9, minmax(0, 1fr)); }
.grid--12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
@media (min-width: 768px) {
  .grid-md--1 { grid-template-columns: 1fr; }
  .grid-md--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-md--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid-md--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .grid-md--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .grid-md--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .grid-md--9 { grid-template-columns: repeat(9, minmax(0, 1fr)); }
  .grid-md--12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
  .grid-lg--1 { grid-template-columns: 1fr; }
  .grid-lg--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-lg--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid-lg--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .grid-lg--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .grid-lg--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .grid-lg--9 { grid-template-columns: repeat(9, minmax(0, 1fr)); }
  .grid-lg--12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
  .grid-xl--1 { grid-template-columns: 1fr; }
  .grid-xl--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-xl--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grid-xl--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .grid-xl--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .grid-xl--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .grid-xl--9 { grid-template-columns: repeat(9, minmax(0, 1fr)); }
  .grid-xl--12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
}

/* ==========================================================================
   Blog > Articolo (pageheader--blogArticle + corpo .contentBlock)
   Riprodotto dal sito originale.
   ========================================================================== */

/* Scroll reveal (GSAP porta opacity a 1 e aggiunge .show) — globale, tutte le pagine */
.content-animation,
.text-animation {
  opacity: 0;
  transition: var(--transition);
}
.text-animation.show,
.content-animation.show { opacity: 1; }

/* Utility .text--justify (paragrafi giustificati, usata su più pagine) */
.text--justify { text-align: justify; }

/* Utility .text--m (titoli dei risultati di ricerca) */
.text--m { line-height: 1.6; font-size: 1.5625rem; }
@media (min-width: 992px) { .text--m { font-size: 1.875rem; } }

/* Utility .text--l (titolo dell'articolo) */
.text--l { line-height: 1.4; font-size: 1.5625rem; }
@media (min-width: 992px) { .text--l { font-size: 2.5rem; } }

/* Utility .font--medium (link "‹ Blog") */
.font--medium { font-weight: 500; }

/* Testata articolo */
.pageheader--blogArticle { background: #ffffff; overflow: hidden; }
.pageheader--blogArticle .pageheader-title--wrapper { position: relative; padding-top: 10rem; padding-bottom: 6.25rem; }
@media (min-width: 768px) { .pageheader--blogArticle .pageheader-title--wrapper { padding-top: 16.25rem; } }
.pageheader--blogArticle .parent-link { color: var(--blue); text-decoration: none; }
.pageheader--blogArticle h1 { margin: .9375rem 0; }
@media (min-width: 992px) { .pageheader--blogArticle h1 { margin: 0; } }
.pageheader--blogArticle .pageheader-cover--wrapper { position: relative; width: 100%; height: 0; overflow: hidden; padding-bottom: 100%; }
@media (min-width: 768px) { .pageheader--blogArticle .pageheader-cover--wrapper { padding-bottom: 39%; } }
.pageheader--blogArticle .pageheader-cover--wrapper img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.pageheader--blogArticle .pageheader-cover--wrapper.spacing-no-content { margin-bottom: 3.125rem; }
@media (min-width: 768px) { .pageheader--blogArticle .pageheader-cover--wrapper.spacing-no-content { margin-bottom: 6.25rem; } }
@media (min-width: 992px) { .pageheader--blogArticle .pageheader-cover--wrapper.spacing-no-content { margin-bottom: 10.625rem; } }

/* Corpo articolo */
.post--inner { position: relative; overflow: hidden; background: #ffffff; color: var(--blue); z-index: 1; }
.post--inner .is-blog .block:first-child { padding-top: 0; }
.post--inner .is-blog .block:last-child { padding-bottom: 0; }
.post--inner .contentBlock { margin: 0; }
.post--inner .contentBlock.spacing-top--regular { padding-top: 3.75rem; }
.post--inner .contentBlock.spacing-bottom--regular { padding-bottom: 3.75rem; }
@media (min-width: 992px) {
  .post--inner .contentBlock.spacing-top--regular { padding-top: 5rem; }
  .post--inner .contentBlock.spacing-bottom--regular { padding-bottom: 5rem; }
}

/* Contenuto ricco (.sanity) */
.contentBlock-content.sanity > * { margin-top: 0; margin-bottom: 1.875rem; }
.contentBlock-content.sanity > :last-child { margin-bottom: 0; }
.contentBlock-content.sanity p { text-align: justify; }
.contentBlock-content.sanity li {
  list-style-position: inside;
  position: relative;
  margin-bottom: .625rem;
  line-height: 1.6;
  font-size: .9375rem;
  font-family: Montserrat, sans-serif;
  font-weight: 400;
  font-style: normal;
}
@media (min-width: 992px) {
  .contentBlock-content.sanity > * { margin-bottom: 2.5rem; }
  .contentBlock-content.sanity li { line-height: 2; font-size: 1.25rem; }
}
.contentBlock-content.sanity blockquote {
  background: rgba(13, 71, 161, .1);
  padding: .9375rem;
  border-left: 3px solid var(--blue);
}
.contentBlock-content.sanity .inlineimage {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 70.65%;
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
}
@media (min-width: 992px) {
  .contentBlock-content.sanity .inlineimage { width: 50%; padding-bottom: 35%; }
}
.contentBlock-content.sanity .inlineimage picture,
.contentBlock-content.sanity .inlineimage img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.contentBlock-content.sanity mark { font-size: 20px; }

/* Link nel contenuto ricco: ereditano il colore (bianco dentro <mark>),
   underline colorato; all'hover l'underline diventa ciano. */
.sanity a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: currentColor;
  transition: var(--transition);
}
.sanity a:hover,
.sanity a:focus,
.sanity a:active {
  color: inherit;
  text-decoration-color: var(--cyan);
}

/* Ultime news in fondo all'articolo (.related > Swiper di card-blog) */
.related { padding-top: 8.125rem; padding-bottom: 8.125rem; }
@media (min-width: 992px) {
  .related { padding-top: 16.25rem; padding-bottom: 16.25rem; }
}
.related .card-blog--image {
  display: block;
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 100%;
  overflow: hidden;
  background: rgba(13, 71, 161, .2);
}
.related .card-blog--image picture,
.related .card-blog--image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.related .card-blog--title {
  line-height: 1.5;
  text-align: left;
  display: block;
  color: #0d47a1;
}
