/*!
 * 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: 0;
  --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
--------------------------------------------------*/

.region-header-form {
  align-items: center;
}

/* LANGUAGE SWITCH */


.block-language .links.nav.links-inline {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
}

/*span.it.nav-link.is-active {
    display: none !important;
}

span.en.nav-link.is-active {
    display: none !important;
}*/

/* Nasconde il link nella lingua corrente della pagina */
/*:lang(it) .links span[hreflang="it"],
:lang(en) .links span[hreflang="en"] {
    display: none;
}*/

span.it.nav-link a::before {
  content: url("/sites/default/files/images/polo-innovativo-lingua-italiana.svg");
}

span.en.nav-link a::before {
  content: url("/sites/default/files/images/polo-innovativo-lingua-inglese.svg");
}

span.it.nav-link a::before,
span.en.nav-link a::before {
  height: 30px;
  width: 30px;
  position: absolute;
}

span.it.nav-link,
span.en.nav-link {
  padding: 5px;
}

span.it.nav-link a,
span.en.nav-link a {
  display: block;
  color: transparent;
  user-select: none;
  position: relative;
  height: 30px;
  width: 30px;
}

#not-found span.it.nav-link,
#not-found span.en.nav-link {
  display: none;
}

/* Style */

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

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

.dropdown-menu {
  border-radius: 0;
  border: none;
  box-shadow: rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 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);
}

.region-header-form {
  align-items: center;
}

/* LANGUAGE SWITCH */


.block-language .links.nav.links-inline {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
}

/*span.it.nav-link.is-active {
    display: none !important;
}

span.en.nav-link.is-active {
    display: none !important;
}*/

/* Nasconde il link nella lingua corrente della pagina */
/*:lang(it) .links span[hreflang="it"],
:lang(en) .links span[hreflang="en"] {
    display: none;
}*/

span.it.nav-link a::before {
  content: url("/sites/default/files/images/polo-innovativo-lingua-italiana.svg");
}

span.en.nav-link a::before {
  content: url("/sites/default/files/images/polo-innovativo-lingua-inglese.svg");
}

span.it.nav-link a::before,
span.en.nav-link a::before {
  height: 30px;
  width: 30px;
  position: absolute;
}

span.it.nav-link,
span.en.nav-link {
  padding: 5px;
}

span.it.nav-link a,
span.en.nav-link a {
  display: block;
  color: transparent;
  user-select: none;
  position: relative;
  height: 30px;
  width: 30px;
}

#not-found span.it.nav-link,
#not-found span.en.nav-link {
  display: none;
}

/* Style */

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

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

.dropdown-menu {
  border-radius: 0;
  border: none;
  box-shadow: rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 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
--------------------------------------------------*/

html[lang="en"] li.tbm-item.level-3:has(a[href*="finanza-agevolata"]),
html[lang="en"] li.tbm-item.level-3:has(a[href*="bando-competenze-innovazione"]) {
  display: none;
}

html[lang="en"] li.no-en {
  display: none;
}

.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) 0 10px 10px 0;

}

.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);
  }
}

.text-reveal-servizi {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;

  height: 100%;

  overflow: hidden;
  padding: 20px;
}

.text-reveal-servizi > span {
  height: 100%;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.07);
  transform: translateX(-10px);

  position: absolute;
  z-index: 1;

  backdrop-filter: blur(5px);
  transition: all 0.5s;
}

.text-reveal-servizi:hover > span {
  transition: all 0.5s;
  backdrop-filter: blur(0px);
}

.text-reveal-servizi p {
  transform: translateY(5px);
  opacity: 20%;
  transition: all 0.5s;
}

.text-reveal-servizi:hover p {
  transform: translateY(0px);
  opacity: 100%;
  transition: all 0.5s;
  transition-delay: 0.2s;
}

.text-reveal-servizi .title {
  position: absolute;
  text-align: center;
  opacity: 100%;
  transition: all 0.3s;

  z-index: 1;
}

.text-reveal-servizi .title h3 {
  transform: translateX(0);
  transition: all 0.3s;
}

.text-reveal-servizi:hover .title h3 {
  transform: translateY(20px);
  transition: all 0.3s;
}

.text-reveal-servizi .title img {
  height: 50px;
  width: auto;
  margin-bottom: 10px;
  transform: translateX(0);
  transition: all 0.3s;

}

.text-reveal-servizi:hover .title img {
  transform: translateY(-20px);
  transition: all 0.3s;
}

.text-reveal-servizi:hover .title {
  opacity: 0;
  transition: all 0.5s;
}

/* 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;
}*/

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

/* 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: 0 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';
}
