.gradient-background {
  background: linear-gradient(300deg, #adadee, #e0bbef, #FFFFFF);
  background-size: 180% 180%;
  animation: gradient-animation 18s ease infinite;
}

html {
  scroll-behavior: smooth;
}


@keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }
}


/* Sfondo navbar viola */
.custom-navbar {
  background-color: #6a1b9a;
  /* Viola scuro */
}

/* Testo bianco per migliorare leggibilità */
.custom-navbar .nav-link {
  color: white !important;
  font-weight: 500;
  transition: color 0.3s ease-in-out;
}

/* Cambia colore quando attivo o al passaggio del mouse */
.custom-navbar .nav-link.active,
.custom-navbar .nav-link:hover {
  color: #d8b2ff !important;
  /* Viola chiaro per contrasto */
  font-weight: bold;
}

/* Interlinea normale su desktop */
.responsive-heading {
  line-height: 1.3;
  /* Normale su desktop */
}

/* Riduzione dell'interlinea su schermi piccoli */
@media (max-width: 768px) {
  .responsive-heading {
    line-height: 1.1;
    /* Riduce lo spazio tra le righe su mobile */
    /* font-size: 1.8rem; */
    /* Evita che il testo sia troppo grande */
  }
}

.cropped-image {
  width: 100%;
  /* Occupa tutta la larghezza disponibile */

  /* Altezza fissa desiderata */
  max-height: 300px;
  overflow: hidden;
  /* Nasconde la parte eccedente dell'immagine */
  display: flex;
  justify-content: center;
  /* Centra l'immagine */
  align-items: center;
  border-radius: 15px;
  /* O il valore che preferisci */

  /* Allinea verticalmente */
}

.cropped-image img {
  width: 100%;
  /* L'immagine si adatta alla larghezza del contenitore */
  height: 100%;
  /* L'immagine si adatta all'altezza */
  object-fit: cover;
  /* Ritaglia automaticamente l'immagine mantenendo il centro */
}

.responsive-logo {
  max-width: 40vw;
  /* Mantiene una dimensione limitata su schermi grandi */
  height: auto;
}

/* Su schermi piccoli (mobile) aumenta la dimensione del logo */
@media (max-width: 768px) {
  .responsive-logo {
    max-width: 80vw;
    /* Il logo diventa più grande su mobile */
  }

  .cropped-image {
    max-height: 200px;
  }
}

.cropped-image-CTA {
  width: 100%;
  max-width: 500px;
  /* Limita la larghezza massima su desktop */
  height: 300px;
  /* Altezza panoramica */
  border-radius: 20px;
  /* Stondatura più visibile */
  overflow: hidden;
  /* Nasconde le parti in eccesso */
  display: flex;
  justify-content: center;
  align-items: center;
  margin: auto;
  /* Centra nei layout più piccoli */
}

.cropped-image-CTA img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Ritaglia l'immagine senza distorsioni */
  object-position: center;
  /* Prende la parte centrale dell'immagine */
}

.carousel-caption h5 {
  font-size: 1.5rem;
  /* Testo più grande */
  font-weight: bold;
  /* Testo più marcato */
  color: white !important;
  /* Assicura testo bianco per massimo contrasto */
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);
  /* Ombra per renderlo leggibile */
}

.carousel-caption p {
  font-size: 1.2rem;
  /* Testo più grande */
  color: white !important;
  /* Assicura testo bianco */
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.97);
  /* Ombra leggera per leggibilità */
}

/* Ridurre la dimensione del testo su schermi piccoli */
@media (max-width: 768px) {
  .carousel-caption h5 {
    font-size: 1.2rem;
  }

  .carousel-caption p {
    font-size: 1rem;
  }
}

.icon-square {
  width: 3rem;
  height: 3rem;
  border-radius: 0.75rem;
}

.profile-img {
  height: 100px;
  border-radius: 50%;
}

body {
  display: flex;
  flex-direction: column;
  gap: 0;
  /* Rimuove gli spazi tra le sezioni */
}

.navbar-nav .nav-link.active {
  color: #6a1b9a !important;
  /* Viola personalizzato */
  font-weight: bold;
  /* Per renderlo più visibile */
}

.nav-link {
  color: #6a1b9a !important;
  /* Colore di base per i link */
}

.navbar-nav .nav-link:hover {
  color: #6a1b9a !important;
  /* Cambia colore anche al passaggio del mouse */
}

/* 
section {
  padding: 0 0;
} */

h2 {
  margin-bottom: 20px;
}

.carousel-inner img {
  max-height: 400px;
  /* Imposta l'altezza massima */
  width: auto;
  /* Mantiene le proporzioni */
  object-fit: cover;
  /* Assicura che l'immagine si adatti bene */
  border-radius: 12px;
  /* Stondatura leggera */
}

.carousel-indicators button {
  background-color: #adadee !important;
  /* Cambia il colore degli indicatori */
  width: 12px;
  /* Aumenta la dimensione */
  height: 12px;
  border-radius: 50%;
  /* Rende gli indicatori rotondi */
  opacity: 0.7;
  /* Leggera trasparenza */
}

.carousel-indicators .active {
  background-color: #e0bbef !important;
  /* Cambia il colore dell'indicatore attivo */
  opacity: 1;
  /* Massima visibilità */
}

.carousel-indicators {
  bottom: -30px !important;
  /* Sposta gli indicatori più in basso */
}

/* Ingrandire le frecce */
.carousel-control-prev-icon,
.carousel-control-next-icon {
  width: 3rem;
  /* Aumenta la dimensione */
  height: 3rem;
  filter: brightness(1.5);
  /* Rende le frecce più chiare */
}

/* Sfondo dietro le frecce per maggiore visibilità */
.carousel-control-prev,
.carousel-control-next {
  background: rgba(0, 0, 0, 0.3);
  /* Sfondo scuro trasparente */
  border-radius: 50%;
  /* Rende le frecce rotonde */
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  /* Centra verticalmente */
  transform: translateY(-50%);
  /* Corregge la posizione precisa */
}

/* Sposta le frecce più verso l'interno */
.carousel-control-prev {
  left: 5%;
  /* Distanza dal bordo sinistro */
}

.carousel-control-next {
  right: 5%;
  /* Distanza dal bordo destro */
}

/* Effetto al passaggio del mouse */
.carousel-control-prev:hover,
.carousel-control-next:hover {
  background: rgba(0, 0, 0, 0.6);
  /* Sfondo più scuro quando il mouse passa sopra */
  transition: background 0.3s ease-in-out;
}

.responsive-image {
  max-width: 70%;
  /* L'immagine non supera l'80% del container */
  height: auto;
  /* Mantiene le proporzioni */
  max-height: 500px;
  /* Evita che diventi troppo alta */
  object-fit: contain;
  /* Assicura che l'immagine non si distorca */
}

/* Su schermi piccoli, ridimensiona l'immagine per adattarsi */
@media (max-width: 768px) {
  .responsive-image {
    max-width: 100%;
    /* Su mobile occupa tutta la larghezza disponibile */
    max-height: 300px;
    /* Evita che diventi troppo grande */
  }
}

.figure-caption {
  font-size: 1.2rem;
  /* Aumenta la dimensione del testo */
  font-weight: 500;
  /* Rende il testo leggermente più marcato */
  color: #444;
  /* Colore più scuro per maggiore leggibilità */
}

/* Su schermi piccoli, ridimensiona la caption per evitare che sia troppo grande */
@media (max-width: 768px) {
  .figure-caption {
    font-size: 1rem;
    /* Mantiene la caption leggibile su mobile */
  }
}