/*!
 * FIle CSS per classi CUSTOM
 * Da utilizzare per aggiungere classi una volta online o per cose che non modificanno Bootstrap
 *
 */

/* EXTRA
--------------------------------------------------*/

/* LOADING */

#loading-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--bs-secondary);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100000;
    /* Cubic-bezier rende l'inizio e la fine dello sfumato meno lineari e più "setosi" */
    transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.8s;
    visibility: visible;
    opacity: 1;
}

#loading-overlay.loaded {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important; /* Fondamentale per cliccare il sito sotto */
}

.loader-logo img {
    width: 150px;
    height: auto;
    animation: pulse-logo 2.5s infinite ease-in-out;
    filter: drop-shadow(0 0 15px rgba(0, 0, 0, 0.1));
    will-change: transform, opacity;
    transition: transform 0.8s ease;
}

#loading-overlay.loaded .loader-logo img {
    transform: scale(0.9);
}

@keyframes pulse-logo {
    0%, 100% {
        transform: scale(0.98);
        opacity: 0.85;
    }
    50% {
        transform: scale(1.05);
        opacity: 1;
    }
}

/*  */

@keyframes scale-up {
    0%, 80%, 100% {
        transform: scaleY(0.4);
    }
    40% {
        transform: scaleY(1.0);
    }
}


html {
    scroll-timeline: --page-scroll block;
}

:root {
    --height-menu: 92px;
    --screen-h: calc(100vh - var(--height-menu));
    --bs-dark-rgb: 28, 28, 28;
    --bs-dark: #1c1c1c;

    --bs-red: #dd0d0d;
    --bs-yellow: #fdd821;
    --bs-green: #4ad148;


    /* Brand IMG */
    --h-brand: 60px;
    --w-brand: auto;

    /* Button */
    --btn-radius: 0px;
    --btn-padding: 10px 25px;
    --btn-font-size: 20px;
    --btn-font-weight: 400;

    /* Footer Color */
    --bg-footer: #141414;
    --text-footer: #ffffff;

    /* Colori header */
    --header-color: var(--bs-body-color);
    --bb-h1-color: var(--header-color) !important;
    --bb-h2-color: var(--header-color) !important;
    --bb-h3-color: var(--header-color) !important;

    /* Colori cookie banner */
    --cb-text: var(--bs-black);
    --cb-bg: var(--bs-gray-200);
    --cb-bg-border: var(--bs-gray-400);
    --cb-button-color: var(--bs-primary);
}

.bg-dark {
    --bs-primary: #0086ce;
    --bs-primary-rgb: 0, 134, 206;
}

.bg-dark p, .webform-element-description {
    color: #DDDDDD;
    letter-spacing: .5px;
}

.bg-dark .bg-lightgray p {
    color: inherit;
}

.form-body {
    --bs-body-bg: #252525;
    --bs-body-color: #d4d4d4;
}

.form-body .form-control,
.form-body .form-select {
    border: solid #505050 1px;
}

.screen-h {
    height: var(--screen-h);
}

.img-text-h {
    min-width: 100%;
    width: 100%;
    min-height: 100%;
    height: 300px;
    object-fit: cover;
}

.img-fit {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.video-youtube {
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
}

.filter-grayscale {
    filter: grayscale(1);
}

.filter-brightness-10 {
    filter: brightness(10);
}

.filter-brightness-gray {
    filter: brightness(10) grayscale(1);
}

.respoimg {
    height: auto;
    width: 100%;
}

.img-partners {
    max-width: 100%;
    padding: 60px;
}

.titolo-partners {
    display: flex;
    justify-content: center;
    align-items: center;
}

.box-partners {
    border: 1px solid #b3b3b3;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 200px !important;
}

#scroll-top {
    display: none;

    position: fixed;
    right: 30px;
    bottom: 30px;
    z-index: 99;

    /*   border-radius: 50%;
       border: var(--bs-primary) solid 2px;
       background-color: transparent;
       color: var(--bs-primary);*/

    background-color: var(--bs-primary);
    color: var(--bs-white);
    border: none;
    border-radius: 50%;

    font-size: 20px;

    padding: 10px 10px;

    transition: all 0.5s;
}

@media (max-width: 1024px) {
    :root {
        --height-menu: 162px;
    }

    .img-partners {
        max-width: 100%;
        padding: 30px;
    }
}

@media (max-width: 564px) {
    .sticky-top {
        position: relative;
    }

    :root {
        --height-menu: 0;
    }


}

@keyframes grow-progress {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

[id] {
    scroll-margin-top: calc(var(--height-menu) + 20px);
}

#progress {
    position: fixed;
    left: 0;
    top: var(--height-menu);
    width: 100%;
    height: 0.5em;
    background: var(--bs-secondary);

    transform-origin: 0 50%;
    animation: grow-progress auto linear;
    animation-timeline: --page-scroll;
    z-index: 2;
}

.search-icon {
    color: var(--bs-secondary);
    font-size: 1rem;
    border: solid 1px var(--bs-secondary);
    height: 30px;
    display: block;
    width: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.bg-title {
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: 2px #ffffff;
    opacity: 20%;
    text-transform: uppercase;
    position: absolute;
    font-weight: 900;

    font-size: clamp(1rem, 1rem + 15vw, 15rem);
}

.divider-primary {
    height: 10px;
    width: 100%;
    background-color: var(--bs-primary);
}

.divider-secondary {
    height: 10px;
    width: 100%;
    background-color: var(--bs-secondary);
}

.social-circle {
    height: 30px;
    width: auto;
    aspect-ratio: 1 / 1;
    background-color: var(--bs-primary);
    color: var(--bs-white);
    border-radius: 50%;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;

    &:hover {
        background-color: var(--bs-secondary);

    }
}

.square-icon {
    height: 3.2rem;
    width: auto !important;
    aspect-ratio: 1 / 1;
    /*background-color: var(--bs-primary);*/
    color: var(--bs-white);
    border-radius: .6rem;
    font-size: 2rem;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: linear-gradient(150deg, rgb(28 144 210) 0%, rgb(4 110 170) 100%);

    margin-bottom: 0.5rem;
}

/* Eventi */

.event-block .gray-scale {
    filter: grayscale(5);
    transition: all 0.5s;
}

.event-block {
    height: 80vh;
    min-height: 800px;
    position: relative;
    border: 10px solid #1c1c1c;
}

.event-block.home {
    height: auto;
    min-height: 600px;
    position: relative;
    border: none;
}

.event-block .data {
    position: absolute;
    background-color: #007dc5;
    border-radius: 0 0 0 10px;
    text-align: center;

    padding: 10px;
    z-index: 11;

    right: 0;
    top: 0;
}

.event-block.home .data {
    z-index: 1;
}

.event-block .data .giorno,
.event-block .data .mese,
.event-block .data .anno {
    color: #ffffff;
    line-height: 0.9;
}

.event-block .data .giorno {
    font-size: 40px;
    font-weight: 600;
}

.event-block .data .mese {
    font-size: 25px;
}

.event-block .data .anno {
    font-size: 25px;
}

.event-block .cover {
    display: block;
    height: 100%;
    width: 100%;
    position: absolute;

    z-index: 2;

    background: #000000;
    background: -webkit-linear-gradient(0deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 100%);
    background: -moz-linear-gradient(0deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 100%);
    background: linear-gradient(0deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000", endColorstr="#000000", GradientType=0);
}

.event-block.home .container-img {
    aspect-ratio: 3 / 2;
    margin-bottom: 20px;
}

.event-block img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    /*position: absolute;*/
    position: static;
    z-index: -2;
    transition: all 0.5s;
}

.event-block.home img {
    height: 100%;
    width: 100%;
    object-fit: cover;
    position: static;
    z-index: -2;
    transition: all 0.5s;
}

.event-block:hover:not(.home) img {
    transition: all 0.5s;
    filter: brightness(0.2);
}

.event-block:hover:not(.home) img.gray-scale {
    transition: all 0.5s;
    filter: grayscale(1) brightness(0.2);
}

.event-block .text-block {
    position: absolute;
    color: white;
    padding: 0 50px;
    transition: all 0.5s;
    padding-top: 40%;
    z-index: 10;
}

.event-block.home .text-block {
    color: white;
    padding: 0;
    transition: all 0.5s;
}

.event-block:hover:not(.home) .text-block {
    color: white;
    padding: 0 50px;
    transition: all 0.5s;
    padding-top: 30%;
}

.event-block .text-block .tempo {
    margin-bottom: 10px;
}

.event-block .text-block .tempo .futuro,
.event-block .text-block .tempo .passato,
.event-block .text-block .tempo .futuro {
    padding: 7px 20px;
    border-radius: 50px;
    width: fit-content;
}

.event-block .text-block .tempo .futuro {
    background-color: #ffa500;
}

.event-block .text-block .tempo .passato {
    background-color: #ff0000;
}

.event-block .text-block .tempo .presente {
    background-color: #adff2f;
}


.event-block .text-block .text p {
    color: white;
}

.event-block .text-block .text {
    opacity: 0;
    transition: all 0.5s;
}

.event-block.home .text-block .text {
    opacity: 1;
}

.event-block:hover:not(.home) .text-block .text {
    opacity: 1;
    transition: all 0.5s;
}

@media (max-width: 768px) {
    .event-block .text-block .text {
        opacity: 1;
    }

    .event-block img {
        filter: brightness(0.5);
    }

    .event-block img.gray-scale {
        filter: grayscale(1) brightness(0.5);
    }

}

/* pagine content eventi */

.side-menu {
    background-color: #eeeeee;
    padding: 15px;

    position: sticky;
    top: 100px;

    display: flex;
    flex-direction: column;
}

.side-menu a {
    color: black !important;
    cursor: pointer;
    font-weight: 400;
    margin-left: 10px;

    &:hover {
        color: var(--bs-primary) !important;
    }
}

.side-menu a:hover {
    color: #47b749;
}

.title-eventi img {
    height: 50vh;
    object-fit: cover;
}

.title-eventi .text-box {
    padding: 50px 0;
    color: #ffffff;
}

.giorno-evento {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    column-gap: 30px;
}

.giorno-evento .giorno {
    font-size: 50px;
    font-weight: 800;
}

.giorno-evento .mese {
    font-size: 30px;
}

.giorno-evento .anno {
    font-size: 30px;
}

.text-corsi h1,
.text-corsi h2,
.text-corsi h3,
.text-corsi h4,
.text-corsi h5,
.text-corsi .h2,
.text-corsi .h3,
.text-corsi .h4,
.text-corsi .h5,
.text-corsi {
    color: var(--bs-white);
}

.text-corsi .bg-lightgray p {
    color: var(--bs-body-color);
}

.giorno-evento .in-corso,
.giorno-evento .futuro,
.giorno-evento .passato {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 30px;
    border-radius: 10px;
}


.giorno-evento .in-corso,
.giorno-evento .futuro,
.giorno-evento .passato,
.ora-evento {
    height: 200px;
}

.giorno-evento .in-corso {
    background-color: greenyellow;
}

.giorno-evento .passato {
    background-color: red;
    color: #ffffff !important;
}

.giorno-evento .futuro {
    background-color: orange;
    color: #000000 !important;
}

.giorno-evento .in-corso p {
    color: #000000 !important;
}

.giorno-evento .passato p {
    color: #ffffff !important;
}

.giorno-evento .futuro p {
    color: #000000 !important;
}

.ora-evento {
    color: #ffffff !important;
    background-color: #016ba4;
    padding: 30px;
    border-radius: 10px;
}

.ora-evento p {
    color: #ffffff;
}

.ora-evento .ora {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: 40px;
    line-height: 35px;
    font-weight: 600;

    color: #ffffff;
}

.events.card-columns {
    column-count: 2;
}

.link-eventi {
    /* text-decoration:underline; */
    color: #252525;
    margin-bottom: 10px;
}

.img-eventi-aggiungi-calendario {
    width: 20px;
    height: auto;
    margin-right: 5px;
}

/* Dark mode switch */

.switch {
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
}

.switch .light {
    background-color: rgb(235, 245, 255);
}

.switch .dark {
    background-color: rgb(24, 24, 24);
    display: none;
}

.switch .dark,
.switch .light {
    padding: 10px;
    border-radius: 50%;
    cursor: pointer;
}

.switch .dark::before,
.switch .light::before {
    font-size: 20px;
    display: block;
}

.switch:hover .light {
    background-color: rgb(24, 24, 24);
    color: rgb(235, 245, 255);
}

.text-animate {
    font-size: 10vw;
    color: transparent;
    -webkit-text-stroke: 2px #000000;
}

.number-counterup {
    text-align: center;
    font-size: 5rem;
}

@media (max-width: 768px) {
    .number-counterup {
        font-size: 3rem;
    }
}

/* FONT
--------------------------------------------------*/

@font-face {
    font-family: 'Gotham Pro';
    src: url('/themes/custom/leadlab/fonts/GothamPro-MediumItalic.woff2') format('woff2'),
    url('/themes/custom/leadlab/fonts/GothamPro-MediumItalic.woff') format('woff');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Gotham Pro';
    src: url('/themes/custom/leadlab/fonts/GothamPro-Medium.woff2') format('woff2'),
    url('/themes/custom/leadlab/fonts/GothamPro-Medium.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Gotham Pro';
    src: url('/themes/custom/leadlab/fonts/GothamPro-Light.woff2') format('woff2'),
    url('/themes/custom/leadlab/fonts/GothamPro-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Gotham Pro';
    src: url('/themes/custom/leadlab/fonts/GothamPro-LightItalic.woff2') format('woff2'),
    url('/themes/custom/leadlab/fonts/GothamPro-LightItalic.woff') format('woff');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Gotham Pro';
    src: url('/themes/custom/leadlab/fonts/GothamPro.woff2') format('woff2'),
    url('/themes/custom/leadlab/fonts/GothamPro.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Gotham Pro';
    src: url('/themes/custom/leadlab/fonts/GothamPro-Italic.woff2') format('woff2'),
    url('/themes/custom/leadlab/fonts/GothamPro-Italic.woff') format('woff');
    font-weight: normal;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Gotham Pro';
    src: url('/themes/custom/leadlab/fonts/GothamPro-Bold.woff2') format('woff2'),
    url('/themes/custom/leadlab/fonts/GothamPro-Bold.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Gotham Pro';
    src: url('/themes/custom/leadlab/fonts/GothamPro-BoldItalic.woff2') format('woff2'),
    url('/themes/custom/leadlab/fonts/GothamPro-BoldItalic.woff') format('woff');
    font-weight: bold;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Gotham Pro';
    src: url('/themes/custom/leadlab/fonts/GothamPro-Black.woff2') format('woff2'),
    url('/themes/custom/leadlab/fonts/GothamPro-Black.woff') format('woff');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Gotham Pro';
    src: url('/themes/custom/leadlab/fonts/GothamPro-BlackItalic.woff2') format('woff2'),
    url('/themes/custom/leadlab/fonts/GothamPro-BlackItalic.woff') format('woff');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

body {
    word-break: break-word;
    font-family: 'aptos', sans-serif !important;
    font-style: normal;
    line-height: normal;
    font-weight: 300;
    color: #333333;
}

em {
    font-family: 'aptos', sans-serif !important;
    font-style: italic;
}

.h1, .h2, .h3, .h4, h1, h2, h3, h4 {
    font-family: 'Gotham Pro', sans-serif !important;
}

.h5, .h6, h5, h6 {
    font-family: 'aptos', sans-serif !important;
    font-style: normal;
}

.alt-text {
    font-family: "Arial", sans-serif;
}

.text-justify, .justify {
    text-align: justify;
}

/* HEADER
--------------------------------------------------*/

/* Style */

.custom-header {
    padding: 0 100px;
    gap: 30px;
}

header.sticky-top {
    z-index: 99;
}

.dropdown-menu {
    border-radius: 0px;
    border: none;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.05) 0px 4px 6px -2px;
}

.dropdown-item {
    padding: 0 !important;
}

.dropdown-item.active,
.dropdown-item:active {
    background-color: var(--bs-primary);
}

.dropdown-item a {
    color: #000000;
    font-weight: 400;

    border-radius: 0;
    padding: 10px 20px;
    width: 100%;
    display: block;

    &:hover {
        color: var(--bs-primary);
    }
}

@media (max-width: 1400px) {
    .custom-header {
        padding: 0 10px;
        gap: 5px;
    }

    .search-container {
        position: absolute;
        bottom: 20px;
        right: 10px;
        z-index: 1000;
    }

}

/* animate */

header {
    transition: all 1s;
    position: static;
    z-index: 99;
}

header.animate-fade-in {
    position: sticky;
    top: 0;
    width: 100%;
    z-index: 99;
    transform: translateY(-10px);
    animation: header-animation 1s ease forwards;
}

@keyframes header-animation {
    from {
        transform: translateY(-100px);
    }

    to {
        transform: translateY(0);
    }
}

/* transparent */

.transparent-header {
    position: fixed;
    width: 100%;
}

.transparent-header nav {
    background: transparent !important;
}

/* animate-transparent */

.animate-transparent-header {
    position: absolute;
    width: 100%;
}

.animate-transparent-header nav {
    background: transparent !important;
}

.animate-transparent-fade-in {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 99;
    transform: translateY(-10px);
    animation: header-animation 1s ease forwards;
    background: var(--bs-primary);
}

/* MEGA MENU
--------------------------------------------------*/

.tbm .social-circle [class^='fa-'], .tbm .social-circle [class*=' fa-'] {
    margin-right: 0;
}

.tbm-custom .tbm-nav {
    padding-left: 400px;
}

.fw-bold .no-link {
    font-weight: bold;
}

.block-tb-megamenu {
    width: 100%;
}

.tbm-nav {
    justify-content: center;
    background: var(--bs-white);
}

.tbm-column .tbm-link-container {
    width: fit-content;
}

.tbm-column .tbm-link-container .tbm-link.active-trail {
    padding: 0.3rem !important;
    font-weight: 600;
}

.tbm {
    background-color: transparent;
    font-family: 'Gotham Pro', sans-serif;
}

.tbm-item.level-1 {
    border-right: none !important;
}

.tbm-link.level-1 {
    padding: 1rem 1rem;
}

.tbm-item-child {
    width: 100%;
}

.tbm-link {
    background-color: transparent;
    font-weight: 400;
    width: 90%;
}

.tbm-link:hover:not(.no-link),
.tbm-link:focus:not(.no-link),
.tbm-link.level-1:hover:not(.no-link),
.tbm-link.level-1:focus:not(.no-link) {
    background-color: transparent;
    color: var(--bs-primary) !important;
    border-bottom: 1px solid var(--bs-primary);

}

/* link active */
.tbm-link.active-trail:not(.tbm-group-title),
.nav-link.is-active:not(.tbm-group-title) {
    font-weight: 400;
    border-bottom: 2px solid var(--bs-secondary);
}

.tbm-submenu-toggle {
    width: 10px;
}

.tbm-submenu-toggle,
.tbm-submenu-toggle:hover,
.tbm-submenu-toggle:focus {
    background-color: transparent;
}

.tbm-submenu-custom .tbm-link-container,
.tbm-submenu-custom .tbm-block {
    padding: 0 3rem;
}

.tbm-submenu.tbm-item-child {
    position: fixed;
}

/* submenu item */
.tbm-submenu {
    background-color: var(--bs-white);
    border: none;
    padding: 30px 60px;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 10px 10px 0px;

}

.tbm-submenu-custom {
    padding-left: 10rem;
    padding-right: 10rem;
}

.tbm-group-container.tbm-item-child {
    border: none;
    padding-left: 20px;
}

/*.tbm-toggle::after {
  content: "↓";
  margin-left: 5px;
  height: 89%;
  transition: transform 0.5s;
}*/

.tbm-toggle:hover::after {
    transform: rotate(180deg);
    transition: transform 0.5s;
}

.tbm-no-arrows .tbm-item--has-flyout > .tbm-link-container .tbm-link:before {
    content: none;
}

/* RESPONSIVE MENU */

.tbm-button {
    background-color: var(--bs-white);
    border: none;
}

.tbm-button-container {
    display: block;
    margin: 0.5rem;
    position: relative;
    width: 1.5rem;
    height: 1rem;
}

.tbm-button-container span {
    height: 2px;
}

.tbm-button-container span:nth-child(2), .tbm-button-container span:nth-child(3) {
    top: calc(50% - 1px);
}

.tbm.tbm--mobile .tbm-nav {
    background: var(--bs-white);
}

.tbm.tbm--mobile .tbm-item {
    border: none;
}

.tbm.tbm--mobile .tbm-submenu-toggle {
    border-left: none;
    padding-right: 50px;
    border-right: none;
}

@media (max-width: 910px) {

    .tbm-collapse {
        width: 100vw !important;
        left: -10px;
    }

    .tbm-submenu.tbm-item-child {
        position: static;
    }

    .tbm-column .tbm-link-container .tbm-link.active-trail {
        padding: 1rem 1.25rem !important;
    }

}

@media (min-width: 576px) {
    .tbm-row {
        max-width: 540px;
        margin: auto;
    }
}

@media (min-width: 768px) {
    .tbm-row {
        max-width: 720px;
        margin: auto;
    }
}

@media (min-width: 992px) {
    .tbm-row {
        max-width: 960px;
        margin: auto;
    }
}

@media (min-width: 75rem) {
    .tbm-row {
        max-width: 1140px;
        margin: auto;
    }
}

@media (min-width: 87.5rem) {
    .tbm-row {
        max-width: 1320px;
        margin: auto;
    }
}


/* Fade In elements
------------------------------------------------- */

.fade-in-right,
.fade-in-left,
.fade-in-top,
.fade-in-bottom {
    opacity: 0;
    transition: opacity 1s ease, transform 1s ease;
    will-change: opacity, transform;
}

.fade-in-right {
    transform: translateX(100%);
}

.fade-in-left {
    transform: translateX(-100%);
}

.fade-in-top {
    transform: translatey(-100%);
}

.fade-in-bottom {
    transform: translatey(100%);
}

.fade-in-zoom {
    transform: scale(0);
    opacity: 0;
    transition: opacity 1s ease, transform 1s ease;
}

.fade-in-zoom.visible {
    transform: scale(100%);
    opacity: 1;
}

.fade-in-left.visible,
.fade-in-right.visible,
.fade-in-top.visibile,
.fade-in-bottom.visible {
    opacity: 1;
    transform: translate(0, 0);
}

/* BLOG
--------------------------------------------------*/

.tag-field .field {
    margin: 0;
}

.tag-field .field__items li {
    padding: 0 5px !important;
    margin: 0 3px;
    background-color: var(--bs-secondary);
    border-radius: 5px;
}

/* HOME
--------------------------------------------------*/

.video-home {
    position: relative;
    height: var(--screen-h);
}

.video-home video {
    position: absolute;
    height: 100%;
    width: 100%;
    object-fit: cover;
    z-index: -1;
}

.video-home .cover {
    content: " ";
    display: block;
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    z-index: -1;
    background-color: rgb(0 0 0 / 40%);;
}

.video-home .text {
    padding: 50px;
}

.video-home h1 {
    color: var(--bs-white);

}

.video-home .more-button {
    position: absolute;
    width: 30%;
    min-width: 300px;
    bottom: 50px;
    right: 20px;
    color: var(--bs-white);

    padding: 20px;
    background-color: rgba(var(--bs-dark-rgb), 0.5);
    backdrop-filter: blur(10px);
}

.video-home .more-button img {
    height: 100%;
    width: 100%;
    aspect-ratio: 16 /9;
    object-fit: cover;
}

.video-home .more-button a {
    font-weight: normal;
    color: var(--bs-white);
}

@media (max-width: 768px) {
    .video-home {
        height: 50vh;
        min-height: 600px;
    }
}


/* Servizi Home */

.servizi-home {
    position: relative;
    height: 75vh;
    display: flex;
    align-items: flex-end;
}

.servizi-home img {
    position: absolute;
    height: 100%;
    width: 100%;
    object-fit: cover;
    z-index: -1;
}

.servizi-home .cover {
    background-color: rgba(var(--bs-dark-rgb), 1);
    position: absolute;
    height: 100%;
    width: 100%;
    z-index: -1;
    transition: background-color 0.6s ease-in-out; /* Transizione fluida */
}

.servizi-home.is-visible .cover {
    background-color: rgba(var(--bs-dark-rgb), 0.9);
}

.servizi-home:hover .cover {
    background-color: rgba(var(--bs-dark-rgb), 0.4) !important;
}

.servizi-home .text {
    padding: 100px 50px;
    position: sticky;
    bottom: 0;
    color: var(--bs-white) !important;
}

.servizi-home .text h2 {
    color: var(--bs-white) !important;
}

@media (max-width: 564px) {
    .servizi-home.is-visible .cover {
        background-color: rgba(var(--bs-dark-rgb), 0.5);
    }
}

/* Carousel home */

.slick-track {
    text-align: inherit !important;
}

.carousel-home {
    overflow: hidden;
}

.carousel-home .carousel-child {
    position: relative;
}

.carousel-home .text-carousel {
    text-align: center;
    height: 100%;
    flex-direction: column;
    display: flex;
    align-items: center;
    justify-content: center;
}

.carousel-home .slick-slide img {
    width: 100%;
    object-fit: cover;
    position: absolute;
    z-index: -1;
}

.carousel-home .slick-slide img,
.carousel-home .slick-slide,
.carousel-home .carousel-child {
    height: calc(100vh - var(--height-menu)) !important;
}

.carousel-home .slick > div {
    margin: 0 !important;
}

@media (max-width: 564px) {

    .carousel-home .slick-slide img,
    .carousel-home .slick-slide,
    .carousel-home .carousel-child {
        height: 50vh !important;
    }
}

/* Carousel single text */

.carousel-home-single-text {
    overflow: hidden;
}

.carousel-home-single-text .single-text {
    position: absolute;
    z-index: 2;
    right: 0;
    width: 50%;
    padding: 30px;
    background-color: rgba(240, 255, 255, 0.466);
}

.carousel-home-single-text .carousel-child {
    position: relative;
}

.carousel-home-single-text .slick-slide img {
    width: 100%;
    object-fit: cover;
    position: absolute;
    z-index: -1;
}

.carousel-home-single-text .slick-slide img,
.carousel-home-single-text .slick-slide,
.carousel-home-single-text .carousel-child,
.carousel-home-single-text .single-text {
    height: calc(100vh - var(--height-menu)) !important;
}

.carousel-home-single-text .slick > div {
    margin: 0 !important;
}

@media (max-width: 564px) {

    .carousel-home-single-text .slick-slide img,
    .carousel-home-single-text .slick-slide,
    .carousel-home-single-text .carousel-child,
    .carousel-home-single-text .single-text {
        height: 50vh !important;
    }
}

/* Carousel partners */

.carousel-partners .slick-dots li button:before {
    color: var(--bs-white);
}

.carousel-partners .slick-dots li.slick-active button:before {
    color: var(--bs-primary);
}

.carousel-partners .carousel-child {
    height: 100%;
}

.carousel-partners .filter-grayscale,
.carousel-partners .filter-brightness-10,
.carousel-partners .filter-brightness-gray {
    transition: all 0.2s;
}

.carousel-partners .filter-grayscale:hover,
.carousel-partners .filter-brightness-10:hover,
.carousel-partners .filter-brightness-gray:hover {
    filter: none;
    transition: all 0.2s;
}

/* Parallax */

.parallax-container {
    background-image: url(/sites/default/files/images/sfondo-parallasse-test.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;

    padding: 30px 0;
}

/* .parallax-title {
    position: sticky;
    top: var(--height-menu);
    z-index: 2;
} */

.parallax-title h2 {
    padding: 10vh 0;
    font-size: 10vw;
    text-align: center;
    color: #ffffff;
    text-shadow: #0000006a 0 1px 30px;
}

.container-child {
    display: flex;
    flex-direction: column;
    row-gap: 30vh;
}

.parallax-child {
    position: sticky;
    top: 30vh;
    z-index: 0;
    padding: 10vh 0;
}

.parallax-child .row {
    padding: 50px 30px;
    background-color: #000000;
    color: #ffffff;

    border-radius: 30px;
}

.parallax-child h3 {
    text-align: center;
    font-size: 10rem;
}

@media (max-width: 768px) {
    .parallax-child .row {
        padding: 3vh 0;
    }

    .parallax-child {
        position: sticky;
        top: 10vh;
    }
}

/* CHI SIAMO
--------------------------------------------------*/

/*.story {
  display: flex;
  overscroll-behavior-y: contain;
  !*overflow: scroll;*!
}

.story > div {
  min-width: 100vw;
}*/


/* 1. Il wrapper deve avere un'altezza fisica enorme per scorrere */
.horizontal-scroll-wrapper {
    height: 1000vh !important;
    position: relative;
    display: block !important;
}

/* 2. Lo sticky DEVE avere un contenitore che non sia interrotto da overflow:hidden */
.sticky-container {
    position: sticky !important;
    top: var(--height-menu);
    height: var(--screen-h);
    width: 100%;
    overflow: hidden; /* Taglia le card che escono */
    display: flex;
    align-items: center;
}

.sticky-container .story-line {
    width: 100%;
    position: absolute;
    top: 80%;
    z-index: 2;
    display: flex;
}

.story-line .line {
    width: 80%;
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: auto;
}

.story-line .line:before {
    content: " ";
    position: absolute;
    width: 100%;
    height: 5px;
    background: var(--bs-secondary);
    z-index: -1;
}

.story-line .line .date {
    position: relative;
    font-size: 1.5rem;
    font-weight: 600;
}

.story-line .line .date:before {
    content: " ";
    background-color: var(--bs-white);
    position: absolute;
    left: -50%;
    height: 30px;
    width: 100px;
    z-index: -1;
}

/* 3. Il nastro che contiene le card */
.horizontal-shelf {
    display: flex;
    flex-wrap: nowrap;
    will-change: transform;
    /* Aggiunge un leggero ritardo che smussa i micro-scatti della rotella del mouse */
    transition: transform 0.2s ease-out;
}

/* 4. Le card */
.story-card, .scroll-card {
    width: 100vw !important;
    flex: 0 0 100vw !important;
    height: var(--screen-h);
}

.horizontal-shelf.view-50 .scroll-card {
    flex: 0 0 50vw !important;
    padding: 0 2.5rem;
}

.story-card .box {
    padding: 0 15%;
    margin-top: 50px;
    height: 50%;
    display: flex;
}

.story-card .box img {
    min-width: 100%;
    width: 100%;
    min-height: 100%;
    height: 100px;
    object-fit: cover;
}

.story-card .box .text {
    height: 100%;
    padding: 30px;
    background: var(--bs-dark);
    color: var(--bs-white) !important;
}

.story-card .box .text h2 {
    color: var(--bs-white) !important;
}

.story-card .box [class^="col-"] {
    padding: 0;
}

@media (max-width: 768px) {

    .horizontal-shelf.view-50 .scroll-card {
        flex: 0 0 100vw !important;
        padding: 0 10px;
    }

    .sticky-container, .story-card {
        top: 0;
        height: 100vh;
        min-height: 1000px;
    }

    .sticky-container .story-line {
        top: 80%;
    }

    .story-line .line {
        width: 95%;
    }

    .story-card .box {
        padding: 20px;
    }
}


/* RASSEGNA STAMPA
--------------------------------------------------*/

.rassegna-stampa-box {
    border: 1px solid rgb(165 165 165 / 30%);
    border-radius: 18px;
    box-shadow: 0 1px 1px -.5px rgb(144 147 165 / 4%), 0 3px 3px -1.5px rgb(146 149 165 / 4%), 0 6px 6px -3px rgb(126 129 145 / 4%), 0 12px 12px -6px rgb(117 121 141 / 4%);
    padding: 20px;
    height: 100%;
}

.rassegna-stampa-box .box-immagine {
    aspect-ratio: 5 / 7;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 410px;
}

.rassegna-stampa-box .box-immagine img {
    height: 100%;
    width: 100%;
    object-fit: contain;
}

.rassegna-stampa-box .box-testo {
    margin-top: 20px;
}

.logo-giornale {
    width: 170px;
    height: auto;
}

.box-logo-giornale {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60px;

    margin: 0px 40px;
    margin-bottom: 15px;
}

.box-logo-giornale img {
    width: auto;
    height: 60px;
}

.logo-giornale-quadrato {
    width: 60px;
    height: auto;
}

/* AGEVOLAZIONI
--------------------------------------------------*/

.agevolazioni-home {
    background: #ededed;
    height: 100%;
}

.agevolazioni-home img {
    max-height: 200px;
}

.agevolazioni-home .box {
    padding: 30px;
}

.aperto {
    background-color: var(--bs-green);
    color: #0a0e14 !important;
}

.chiuso {
    background-color: var(--bs-red);
}

.in-attesa {
    background-color: var(--bs-yellow);
    color: #0a0e14 !important;
}

.facile {
    color: var(--bs-green);
}

.difficile {
    color: var(--bs-red);
}

.medio {
    color: var(--bs-yellow);
}

.in-attesa, .chiuso, .aperto {
    width: fit-content;
    padding: 5px;
    font-weight: 600;
    color: #ffffff;
    font-size: 1.5rem;
}

/* SERVIZI
--------------------------------------------------*/


/* PORTFOLIO
--------------------------------------------------*/

.portfolio-carousel img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 5/3;
}

.portfolio-carousel .swiper-button-next,
.portfolio-carousel .swiper-button-prev {
    background-color: var(--bs-primary);
    padding: 18px 23px;
    border-radius: 50%;
}

.portfolio-carousel .swiper-button-next::after,
.portfolio-carousel .swiper-button-prev::after {
    color: var(--bs-white);
    font-size: 25px;
}

@media (max-width: 767px) {

    .portfolio-carousel .swiper-button-next,
    .portfolio-carousel .swiper-button-prev {
        display: none !important;
    }
}


/* CAROUSEL
--------------------------------------------------*/

.slick-3-slide .slide {
    margin: 20px;
}

/* Arrow carousel */

.slick-prev.slick-arrow::before,
.swiper-button-prev::after {
    content: "\f104" !important;
    font-family: "FontAwesome" !important;
}

.slick-next.slick-arrow::before,
.swiper-button-next::after {
    content: "\f105" !important;
    font-family: "FontAwesome" !important;
}

.slick-arrow::before {
    color: var(--bs-secondary) !important;
}

.slick-prev {
    left: -30px !important;
}

.slick-next {
    right: -30px !important;
}

.slick-arrow {
    height: auto !important;
    width: auto !important;
    border-radius: 0 !important;
    padding: 30px 20px !important;
    background-color: transparent;
    color: var(--bs-primary);
    z-index: 10;

    &:hover {
        filter: brightness(0.8) !important;
    }
}

.slick-arrow::before {
    opacity: 1 !important;
}

/* IMAGES */

.slick-images-slide .slick-prev {
    left: 50px !important;
}

.slick-images-slide .slick-next {
    right: 50px !important;
}

.slick-images-slide .carousel-child {
    aspect-ratio: 5/3;
    overflow: hidden;
}

.slick-images-slide img {
    height: 100% !important;
    width: 100% !important;
    object-fit: cover;
}

.slick-images-slide .slick-dots {
    bottom: 30px !important;
}

/*  */

.slick-recensioni-slide {
    position: relative;
}

.slick-recensioni-slide:not(.view--blazy) {
    padding: 0 30px;
}

.slick-recensioni-slide .carousel-child span {
    display: block;
}

.slick-recensioni-slide .carousel-child span::before {
    content: '\f005';
    font-family: 'Fontawesome';
    display: block;
    color: rgb(255, 213, 0);
}

.slick-recensioni-slide .carousel-child .stelle {
    display: flex;
    gap: 5px;
    margin: 10px;
}

.slick-recensioni-slide .carousel-child img {
    height: 100px;
    margin-bottom: 10px;
}

.slick-recensioni-slide .carousel-child .box {
    margin: 20px;
    padding: 20px;
    background-color: var(--bs-white);
    height: 100%;
    display: flex !important;
    flex-direction: column;
    align-items: center;
}

.slick-recensioni-slide .slick-list {
    overflow: hidden;
}

/*  */

.cover-img::after {
    content: "";
    position: absolute;
    display: block;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    background-color: rgb(0, 0, 0, 0.3);
    z-index: -1;
}


/* COOKIE BANNER
--------------------------------------------------*/

#sliding-popup {
    background-color: var(--bs-gray-200) !important;
    padding: 20px;
    border: none;
    width: 40% !important;
    transform: translate(0, 1px);

    right: 0;
}

.popup-content {
    position: relative;
    display: flex;
    flex-direction: column;
}

.eu-cookie-compliance-message {
    max-width: 100%;
}

.eu-cookie-compliance-message h2 {
    font-size: 1.5rem;
}

.eu-cookie-compliance-more-button {
    display: inline-block;
    padding: 5px 10px;
    font-weight: bold;
    color: var(--bs-primary);
    transition: all 0.5s;
    border-radius: 0 !important;
    border: none;
    background-color: transparent;
    margin-bottom: 20px;
}

.eu-cookie-compliance-categories-buttons {
    width: fit-content;
}

.eu-cookie-compliance-save-preferences-button,
.eu-cookie-compliance-default-button,
.eu-cookie-compliance-default-button,
.eu-cookie-withdraw-button,
.eu-cookie-withdraw-tab,
.eu-cookie-withdraw-button {
    display: inline-block;
    padding: 10px 20px;
    font-size: 16px;
    font-weight: var(--btn-font-weight);
    color: #000000;
    transition: all 0.5s;
    border-radius: 0 !important;
    border: none;
}


.eu-cookie-compliance-category {
    background-color: var(--bs-gray-300);
    width: 70%;
}

.eu-cookie-compliance-category > div {
    padding: 10px;
    margin-bottom: 5px;

    border-radius: 10px;
}

.eu-cookie-withdraw-tab {
    display: flex;
    flex-direction: row;
    gap: 7px;
    font-size: 20px;
}

.eu-cookie-withdraw-tab::before {
    content: "\f564";
    display: block;
    font-family: "Fontawesome";
    color: var(--bs-primary);
}

.eu-cookie-compliance-buttons .agree-button {
    position: absolute;
    bottom: 0;
    right: 0;
}

.eu-cookie-compliance-save-preferences-button {
    margin-top: 10px;
    border: var(--bs-gray-600) 2px solid;
}


.agree-button.eu-cookie-compliance-default-button,
.eu-cookie-withdraw-button {
    border: var(--bs-primary) 2px solid;
}

@media (max-width: 1400px) {
    .eu-cookie-compliance-content {
        max-width: 100%;
    }
}

@media (max-width: 1000px) {
    #sliding-popup {
        width: 100% !important;
    }
}

/* .eu-cookie-compliance-default-button {
    position: absolute;
} */

/* SWIPER
--------------------------------------------------*/

.swiper-slide {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
}

.swiper-home {
    width: 100%;
    height: 100vh;
    overflow: hidden;
}

.swiper-home .bg-img {
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    height: 100%;
    background-attachment: fixed;
    position: relative;
}

.number .swiper-home .swiper-pagination {
    font-size: 16px;
    width: auto;
    right: 30px;
    left: auto;
    color: var(--bs-white);
}

.number .swiper-home .swiper-pagination-current {
    font-size: 50px;
}

.number .swiper-home .swiper-pagination-total {
    font-size: 30px;
}

.swiper-home .swiper-button-next,
.swiper-home .swiper-button-prev {
    color: var(--bs-white);
    padding: 30px;
}

.swiper-home .swiper-button-prev::after {
    content: '\f104';
    font-family: 'Fontawesome';
}

.swiper-home .swiper-button-next::after {
    content: '\f105';
    font-family: 'Fontawesome';
}
