/* ==================================================
   CASSIOPEIA - PERSONALIZZAZIONI SCUOLATORO
   ================================================== */

/* ---------- INTESTAZIONE E MENU PRINCIPALE ---------- */

.container-header {
  background: #ffffff;
}

.container-header .container-nav {
  background: #23263d;
  padding: 10px 20px;
}

.container-header .mod-menu > li > a,
.container-header .mod-menu > li > span,
.container-header .mod-menu > li > button,
.container-header .mod-menu > li > .mm-toggler {
  color: #ffffff;
}

.container-header .mod-menu > li.active > a,
.container-header .mod-menu > li > a:hover {
  color: #ffffff;
  text-decoration: underline;
}


/* ---------- TRE BOX MENU COLORATI ---------- */

.box-menu {
  min-height: 350px;
  padding: 35px;
  border-radius: 4px;
  color: #ffffff;
  box-sizing: border-box;
}

.box-blu-scuro {
  background-color: #23263d;
}

.box-blu {
  background-color: #4876b9;
}

.box-azzurro {
  background-color: #079fd2;
}

.box-menu h3,
.box-menu a {
  color: #ffffff;
}


/* ---------- TOP-B A TUTTA LARGHEZZA ---------- */

.site-grid > .container-top-b {
  grid-column: full-start / full-end !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent;
}

.container-top-b > * {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-sizing: border-box;
}

.container-top-b .card-body {
  padding: 30px max(25px, calc((100vw - 1320px) / 2)) !important;
}

.container-top-b .box-eliane {
  padding: 30px max(25px, calc((100vw - 1320px) / 2));
  border: 0;
  border-radius: 0;
  background-color: #e9edf3 !important;
  box-sizing: border-box;
}


/* ---------- PROFILO ELIANE E VIVIANA ---------- */

.profilo-eliane {
  display: flex;
  align-items: flex-start;
  gap: 35px;
}

.profilo-foto {
  flex: 0 0 52%;
}

.profilo-foto img {
  display: block;
  width: 100%;
  height: auto;
  float: none !important;
}

.profilo-testo {
  flex: 1;
  min-width: 0;
}

.profilo-testo h2 {
  margin-top: 0;
  color: #376fba;
}

@media (max-width: 768px) {
  .profilo-eliane {
    display: block;
  }

  .profilo-foto {
    margin-bottom: 25px;
  }
}


/* ---------- CAROSELLO EVENTI ---------- */

.carosello-eventi ul.mod-articles-items {
  display: flex !important;
  grid-template-columns: none !important;
  flex-wrap: nowrap !important;
  gap: 20px;
  overflow-x: auto !important;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  list-style: none;
  margin: 0;
  padding: 5px 5px 20px;
}

.carosello-eventi ul.mod-articles-items > li {
  display: block;
  flex: 0 0 calc(25% - 15px) !important;
  width: calc(25% - 15px) !important;
  max-width: none !important;
  min-width: 0;
  scroll-snap-align: start;
}

.carosello-eventi .mod-articles-item {
  display: block;
  height: 100%;
}

.carosello-eventi .mod-articles-item-content {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.carosello-eventi .mod-articles-image {
  order: -1;
  margin: 0 0 15px;
}

.carosello-eventi .mod-articles-image a {
  display: block;
}

.carosello-eventi .mod-articles-image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  padding: 5px;
  border: 1px solid #d4d4d4;
  box-sizing: border-box;
  cursor: pointer;
  transition: opacity 0.2s ease;
}

.carosello-eventi .mod-articles-image a:hover img {
  opacity: 0.8;
}

.carosello-eventi .mod-articles-title {
  margin: 0 10px 14px;
  font-size: 1.45rem;
  line-height: 1.3;
  font-weight: 400;
}

.carosello-eventi .mod-articles-title a {
  color: #3970bd;
  text-decoration: none;
}

.carosello-eventi .article-info {
  margin: 0 10px;
  color: #707070;
}

@media (max-width: 900px) {
  .carosello-eventi ul.mod-articles-items > li {
    flex-basis: calc(50% - 10px) !important;
    width: calc(50% - 10px) !important;
  }
}

@media (max-width: 600px) {
  .carosello-eventi ul.mod-articles-items > li {
    flex-basis: 85% !important;
    width: 85% !important;
  }
}


/* ---------- SLIDER PRINCIPALE ---------- */

.modulo-slider-home,
.modulo-slider-home .card-body {
  margin: 0;
  padding: 0 !important;
  border: 0;
}

.scuola-slider {
  position: relative;
  width: 100%;
  min-height: 420px;
  max-height: 720px;
  aspect-ratio: 1600 / 720;
  overflow: hidden;
  background: #111111;
}

.scuola-slide {
  position: absolute;
  inset: 0;
  visibility: hidden;
  opacity: 1;
  z-index: 0;
  transform: translateX(100%);
  transition: transform 1600ms ease;
}

.scuola-slide.attiva,
.scuola-slide.precedente {
  visibility: visible;
  opacity: 1;
}

.scuola-slide.attiva {
  z-index: 2;
  transform: translateX(0);
}

.scuola-slide.precedente {
  z-index: 1;
  transform: translateX(-100%);
}

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

.scuola-maschera {
  position: absolute;
  inset: 0 auto 0 0;
  width: 42%;
  background: rgba(63, 108, 178, 0.8);
  opacity: 0;
  transform: translateX(-70%);
  transition: transform 2.6s ease, opacity 2.6s ease;
}

.scuola-maschera::after {
  content: "";
  position: absolute;
  top: 0;
  left: 100%;
  border-left: 180px solid rgba(63, 108, 178, 0.8);
  border-bottom: 720px solid transparent;
}

.scuola-slide.attiva .scuola-maschera {
  transform: translateX(0);
  opacity: 1;
}

.scuola-slide-contenuto {
  position: absolute;
  z-index: 2;
  top: 20%;
  left: max(5%, calc((100vw - 1320px) / 2));
  width: min(34%, 500px);
  color: #ffffff;
}

.scuola-slide-contenuto h2,
.scuola-slide-pulsante {
  opacity: 0;
  transform: translateY(70px);
  transition: opacity 1.3s ease, transform 1.3s ease;
}

.scuola-slide-contenuto h2 {
  transition-delay: 600ms;
}

.scuola-slide-pulsante {
  transition-delay: 1800ms;
}

.scuola-slide.attiva .scuola-slide-contenuto h2,
.scuola-slide.attiva .scuola-slide-pulsante {
  opacity: 1;
  transform: translateY(0);
}

.scuola-slide-contenuto h2 {
  margin: 0 0 28px;
  color: #ffffff;
  font-size: clamp(1.6rem, 2.6vw, 2.7rem);
  line-height: 1.2;
}

.scuola-slide-pulsante {
  display: inline-block;
  padding: 12px 24px;
  border: 2px solid #ffffff;
  color: #ffffff;
  text-decoration: none;
  font-weight: 600;
}

.scuola-slide-pulsante:hover {
  color: #23263d;
  background: #ffffff;
}

.scuola-slider-indicatori {
  position: absolute;
  z-index: 3;
  left: max(5%, calc((100vw - 1320px) / 2));
  right: max(5%, calc((100vw - 1320px) / 2));
  bottom: 35px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

.scuola-slider-indicatori button {
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  color: #ffffff;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.scuola-slider-indicatori button.attivo {
  border-bottom: 4px solid #ffffff;
}

@media (max-width: 768px) {
  .scuola-slider {
    min-height: 500px;
    aspect-ratio: auto;
  }

  .scuola-maschera {
    width: 100%;
    background: rgba(35, 38, 61, 0.65);
  }

  .scuola-maschera::after {
    display: none;
  }

  .scuola-slide-contenuto {
    top: 18%;
    left: 25px;
    right: 25px;
    width: auto;
  }

  .scuola-slider-indicatori {
    left: 25px;
    right: 25px;
  }
}


/* ---------- BOTTOM-B: MODULI UNO SOTTO L'ALTRO ---------- */

.container-bottom-b {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 25px;
}

.container-bottom-b > * {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
}


/* ---------- MODULO LABORATORIO LIB ---------- */

.container-bottom-b .modulo-lib {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  overflow: hidden;
}

.container-bottom-b .modulo-lib .card-body {
  padding: 0 !important;
}

.modulo-lib .mod-custom {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  width: 100% !important;
  max-width: none !important;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.modulo-lib .lib-presentazione,
.modulo-lib .lib-logo,
.modulo-lib .lib-mani,
.modulo-lib .lib-testo-inglese,
.modulo-lib .lib-immagine-grande {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.modulo-lib .lib-presentazione {
  grid-column: 1 / 2;
  grid-row: 1;
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: clamp(25px, 3vw, 55px);
  color: #23263d;
  background-color: #ffffff;
}

.modulo-lib .lib-presentazione h3 {
  margin: 0 0 18px;
  color: #23263d;
  font-size: clamp(1.1rem, 1.4vw, 1.5rem);
  font-weight: 700;
  line-height: 1.2;
}

.modulo-lib .lib-presentazione p {
  margin: 0 0 22px;
  font-size: clamp(0.9rem, 1vw, 1.05rem);
  line-height: 1.7;
}

.modulo-lib .lib-pulsante {
  display: inline-block;
  position: relative;
  z-index: 20;
  padding: 11px 18px;
  color: #ffffff !important;
  background-color: #4876b9;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none !important;
  transition: background-color 0.25s ease, transform 0.25s ease;
}

.modulo-lib .lib-pulsante:hover,
.modulo-lib .lib-pulsante:focus {
  color: #ffffff !important;
  background-color: #23263d;
  transform: translateY(-2px);
}

.modulo-lib .lib-logo {
  grid-column: 2 / 3;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #ffffff;
}

.modulo-lib .lib-mani {
  grid-column: 1 / 2;
  grid-row: 2;
}

.modulo-lib .lib-testo-inglese {
  grid-column: 2 / 3;
  grid-row: 2;
  display: flex;
  align-items: center;
  padding: clamp(25px, 3vw, 55px);
  color: #ffffff;
  background-color: #4876b9;
}

.modulo-lib .lib-testo-inglese p {
  margin: 0;
  font-size: clamp(0.9rem, 1vw, 1.05rem);
  line-height: 1.65;
}

.modulo-lib .lib-testo-inglese strong {
  display: inline-block;
  margin-bottom: 5px;
}

.modulo-lib .lib-immagine-grande {
  grid-column: 3 / 5;
  grid-row: 1 / 3;
  aspect-ratio: 1 / 1;
}

.modulo-lib .lib-logo img,
.modulo-lib .lib-mani img,
.modulo-lib .lib-immagine-grande img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  box-sizing: border-box;
}

.modulo-lib .lib-logo img {
  padding: clamp(15px, 2vw, 35px);
  object-fit: contain !important;
}

.modulo-lib .lib-mani img,
.modulo-lib .lib-immagine-grande img {
  object-fit: cover !important;
}

@media (max-width: 1000px) {
  .modulo-lib .lib-presentazione,
  .modulo-lib .lib-testo-inglese {
    padding: 25px;
  }

  .modulo-lib .lib-presentazione p,
  .modulo-lib .lib-testo-inglese p {
    font-size: 0.9rem;
    line-height: 1.5;
  }
}

@media (max-width: 700px) {
  .modulo-lib .mod-custom {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
  }

  .modulo-lib .lib-presentazione,
  .modulo-lib .lib-logo,
  .modulo-lib .lib-mani,
  .modulo-lib .lib-testo-inglese,
  .modulo-lib .lib-immagine-grande {
    grid-column: 1 !important;
    grid-row: auto !important;
  }

  .modulo-lib .lib-presentazione,
  .modulo-lib .lib-testo-inglese {
    padding: 30px 25px;
  }

  .modulo-lib .lib-logo {
    padding: 20px;
  }

  .modulo-lib .lib-logo img {
    max-width: 300px !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: 0;
  }

  .modulo-lib .lib-mani img,
  .modulo-lib .lib-immagine-grande img {
    height: auto !important;
  }

  .modulo-lib .lib-immagine-grande {
    aspect-ratio: auto;
  }
}
/* Allineamento altezza modulo LIB */

@media (min-width: 701px) {
  .modulo-lib .mod-custom {
    aspect-ratio: 2 / 1;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch;
  }

  .modulo-lib .lib-presentazione,
  .modulo-lib .lib-logo,
  .modulo-lib .lib-mani,
  .modulo-lib .lib-testo-inglese,
  .modulo-lib .lib-immagine-grande {
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  .modulo-lib .lib-logo img,
  .modulo-lib .lib-mani img,
  .modulo-lib .lib-immagine-grande img {
    width: 100% !important;
    height: 100% !important;
  }

  .modulo-lib .lib-immagine-grande {
    aspect-ratio: auto;
  }
}


/* Mantiene visibile il pulsante nel riquadro LIB */

@media (min-width: 701px) {
  .modulo-lib .lib-presentazione {
    justify-content: center;
    padding: clamp(15px, 2vw, 32px);
    overflow: visible;
  }

  .modulo-lib .lib-presentazione h3 {
    margin: 0 0 12px;
    font-size: clamp(1rem, 1.2vw, 1.3rem);
  }

  .modulo-lib .lib-presentazione p {
    margin: 0 0 15px;
    font-size: clamp(0.78rem, 0.9vw, 1rem);
    line-height: 1.45;
  }

  .modulo-lib .lib-pulsante {
    display: inline-block !important;
    flex: 0 0 auto;
    margin: 0;
    padding: 10px 16px;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

/* ==================================================
   CONTATTI NELLA PARTE ALTA DEL SITO
   ================================================== */

.container-header .container-topbar {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 max(20px, calc((100vw - 1320px) / 2));
  border-top: 1px solid #dfe3e8;
  border-bottom: 1px solid #dfe3e8;
  background-color: #ffffff;
  box-sizing: border-box;
}

.container-header .contatti-alti {
  width: 100%;
  margin: 0;
  padding: 0;
}

.contatti-header {
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  width: 100%;
  min-height: 54px;
  color: #687386;
  font-size: 1rem;
}

.contatti-header > span {
  display: flex;
  align-items: center;
  padding: 0 18px;
  border-left: 1px solid #dfe3e8;
}

.contatti-header > span:last-child {
  border-right: 1px solid #dfe3e8;
}

.contatti-header a {
  margin-left: 5px;
  color: #356fc1;
  text-decoration: none;
}

.contatti-header a:hover,
.contatti-header a:focus {
  color: #23263d;
  text-decoration: underline;
}

/* Versione smartphone */

@media (max-width: 600px) {
  .container-header .container-topbar {
    padding: 0;
  }

  .contatti-header {
    justify-content: center;
    min-height: auto;
    font-size: 0.88rem;
  }

  .contatti-header > span {
    justify-content: center;
    padding: 10px 12px;
  }

  .contatti-header > span:first-child {
    border-left: 0;
  }

  .contatti-header > span:last-child {
    border-right: 0;
  }
}

@media (max-width: 420px) {
  .contatti-header {
    flex-direction: column;
  }

  .contatti-header > span {
    border: 0;
  }

  .contatti-header > span + span {
    border-top: 1px solid #dfe3e8;
  }
}

/* ==================================================
   MODULO SEPARATO 5X1000
   ================================================== */

.container-top-b {
  flex-direction: column;
}

.container-top-b .fascia-5x1000 {
  display: block;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: #59ba59;
  box-shadow: none !important;
}

.container-top-b .fascia-5x1000 .card-body {
  width: 100%;
  margin: 0;
  padding: 0 !important;
}

.fascia-5x1000 .mod-custom {
  width: 100%;
  margin: 0;
  padding: 0;
}

.striscia-5x1000-contenuto {
  display: flex;
  align-items: center;
  gap: 25px;
  width: 100%;
  max-width: 1320px;
  min-height: 62px;
  margin: 0 auto;
  padding: 10px 25px;
  box-sizing: border-box;
  color: #ffffff;
  font-size: clamp(1.1rem, 1.7vw, 1.65rem);
  line-height: 1.2;
}

.striscia-5x1000-contenuto strong {
  font-weight: 500;
}

@media (max-width: 700px) {
  .striscia-5x1000-contenuto {
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 15px;
    min-height: 70px;
    padding: 14px 20px;
    font-size: 1rem;
    text-align: center;
  }

  .striscia-5x1000-contenuto strong {
    width: 100%;
  }
}

/* ==================================================
   QUARANTENA E INTERVISTA AFFIANCATI
   ================================================== */

@media (min-width: 701px) {
  .container-bottom-b {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 25px !important;
    align-items: start;
  }

  /* Tutti gli altri moduli occupano due colonne */

  .container-bottom-b > * {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0;
  }

  /* Quarantena a sinistra */

  .container-bottom-b > .modulo-quarantena {
    grid-column: 1 / 2 !important;
    grid-row: auto;
  }

  /* Intervista a destra */

  .container-bottom-b > .modulo-intervista {
    grid-column: 2 / 3 !important;
    grid-row: auto;
  }
}

/* Aspetto dei due moduli */

.modulo-quarantena,
.modulo-intervista {
  width: 100% !important;
  min-width: 0;
  margin: 0 !important;
}

.modulo-quarantena img {
  display: block;
  width: 100% !important;
  max-width: 500px !important;
  height: auto !important;
  margin: 0 auto;
}

.intervista-video {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: #000000;
}

.intervista-video iframe {
  position: absolute;
  inset: 0;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  border: 0;
}

.intervista-durata {
  margin: 15px 0;
  color: #666666;
}

.intervista-pulsante {
  display: inline-block;
  padding: 11px 20px;
  color: #ffffff !important;
  background-color: #4876b9;
  font-weight: 700;
  text-decoration: none !important;
}

.intervista-pulsante:hover {
  color: #ffffff !important;
  background-color: #23263d;
}

@media (max-width: 700px) {
  .container-bottom-b {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .container-bottom-b > .modulo-quarantena,
  .container-bottom-b > .modulo-intervista {
    grid-column: 1 / -1 !important;
  }
}

/* Pagina Video */

.pagina-video {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 35px;
}

.scheda-video {
  min-width: 0;
}

.video-responsive {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: #000000;
}

.video-responsive iframe {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.scheda-video h2 {
  margin: 15px 0 0;
  color: #3970bd;
  font-size: 1.25rem;
  line-height: 1.35;
}

@media (max-width: 700px) {
  .pagina-video {
    grid-template-columns: 1fr;
  }
}

/* ==================================================
   TIPOGRAFIA GENERALE DEL SITO
   ================================================== */

:root {
  --font-testo: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-titoli: "Helvetica Neue", Helvetica, Arial, sans-serif;

  --dimensione-testo: 14px;
  --interlinea-testo: 1.7143;

  --dimensione-h1: 36px;
  --dimensione-h2: 30px;
  --dimensione-h3: 26px;
  --dimensione-h4: 18px;

  --dimensione-titolo-modulo: 18px;
  --dimensione-menu: 14px;
  --dimensione-pulsante: 14px;
}

/* Testo generale */

html {
  font-size: 100%;
}

body {
  color: #333333;
  font-family: var(--font-testo);
  font-size: var(--dimensione-testo);
  font-weight: 400;
  line-height: var(--interlinea-testo);
}

a {
  color: #3f6cb2;
}

a:hover,
a:focus {
  color: #2b4a79;
}

p,
li,
dd,
dt,
figcaption {
  font-family: var(--font-testo);
  line-height: var(--interlinea-testo);
}

p {
  margin: 0 0 12px;
}

/* Campi e pulsanti */

button,
input,
select,
textarea,
.btn {
  font-family: var(--font-testo);
}

/* Titoli generali */

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  margin-top: 24px;
  margin-bottom: 12px;
  font-family: var(--font-titoli);
  font-weight: 500;
  line-height: 1.4;
  color: #3f6cb2;
}

h4,
h5,
h6,
.h4,
.h5,
.h6 {
  margin-top: 12px;
}

h1,
.h1,
.page-header h1 {
  font-size: var(--dimensione-h1);
}

h2,
.h2 {
  font-size: var(--dimensione-h2);
}

h3,
.h3 {
  font-size: var(--dimensione-h3);
}

h4,
.h4 {
  font-size: var(--dimensione-h4);
}

h5,
.h5 {
  font-size: 14px;
}

h6,
.h6 {
  font-size: 12px;
}

/* Titoli degli articoli */

.item-page .page-header h1,
.com-content-article__body h1 {
  color: #3f6cb2;
  font-weight: 500;
  margin: 0 0 24px;
}

.item-page h2,
.com-content-article__body h2 {
  color: #3f6cb2;
  font-weight: 500;
}

.blog .article-title,
.blog-featured .article-title,
.blog .article-title a,
.blog-featured .article-title a,
.com-content-category-blog .page-header h2,
.com-content-category-blog .page-header h2 a {
  font-size: 24px;
  font-weight: 400;
  line-height: 1.4;
}

/* Titoli di tutti i moduli */

.card-header,
.moduletable > h3,
.moduletable > h2,
.module-title {
  color: #23263d;
  font-family: var(--font-titoli) !important;
  font-size: var(--dimensione-titolo-modulo) !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}

/* Uniforma specificamente i due moduli finali */

.modulo-quarantena .card-header,
.modulo-intervista .card-header {
  min-height: 70px;
  padding: 18px 25px;
  font-size: var(--dimensione-titolo-modulo) !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}

/* Menu principale */

.container-header .mod-menu > li > a,
.container-header .mod-menu > li > span,
.container-header .mod-menu > li > button,
.container-header .mod-menu > li > .mm-toggler,
.container-header .metismenu.mod-menu > .metismenu-item > a,
.container-header .metismenu.mod-menu > .metismenu-item > button {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  font-style: normal !important;
  font-weight: 600 !important;
  line-height: 24px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}

/* Tre menu colorati */

.box-menu {
  font-family: var(--font-testo);
  font-size: 14px;
  line-height: 1.7143;
}

.box-menu h3 {
  font-size: var(--dimensione-h3);
  font-weight: 500;
}

/* Profilo Eliane e Viviana */

.profilo-testo {
  font-size: 14px;
  line-height: var(--interlinea-testo);
}

.profilo-testo h2 {
  font-size: var(--dimensione-h2);
  font-weight: 500;
  line-height: 1.4;
}

/* Caroselli Eventi e Articoli */

.carosello-eventi .mod-articles-title {
  margin: 0 10px 14px;
  font-family: var(--font-titoli);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.4;
}

.carosello-eventi .mod-articles-title a {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

.carosello-eventi .mod-articles-item-content {
  font-size: 14px;
  font-weight: 300;
  line-height: 22px;
}

.carosello-eventi .article-info {
  font-size: 13px;
  font-weight: 300;
  line-height: 1.2;
}

/* Modulo LIB */

.modulo-lib {
  font-family: var(--font-testo);
}

.modulo-lib .lib-presentazione h3 {
  font-family: var(--font-titoli);
  font-size: var(--dimensione-h3);
  font-weight: 500;
}

.modulo-lib .lib-presentazione p,
.modulo-lib .lib-testo-inglese p {
  font-size: 14px;
  line-height: 1.7143;
}

/* Pagina video */

.scheda-video h2 {
  font-family: var(--font-titoli);
  font-size: 24px;
  font-weight: 400;
  line-height: 1.4;
}

/* Didascalie e informazioni secondarie */

.intervista-durata,
.article-info,
.text-muted,
small {
  font-family: var(--font-testo);
  font-size: 85%;
  line-height: 1.7143;
}

/* Pulsanti */

.btn,
.lib-pulsante,
.intervista-pulsante {
  font-family: var(--font-testo) !important;
  font-size: var(--dimensione-pulsante) !important;
  font-weight: 700 !important;
  line-height: 1.7143 !important;
}

/* Contatti superiori */

.contatti-header {
  font-family: var(--font-testo);
  font-size: 14px;
  line-height: 1.7143;
}

/* Fascia 5x1000 */

.striscia-5x1000-contenuto {
  font-family: var(--font-testo);
  font-size: 26px;
  font-weight: 500;
  line-height: 1.4;
}

/* ==================================================
   ADATTAMENTO SMARTPHONE
   ================================================== */

@media (max-width: 700px) {
  :root {
    --dimensione-testo: 14px;
    --dimensione-h1: 26px;
    --dimensione-h2: 30px;
    --dimensione-h3: 26px;
    --dimensione-titolo-modulo: 18px;
  }

  .modulo-quarantena .card-header,
  .modulo-intervista .card-header {
    min-height: auto;
    padding: 15px 20px;
  }

  .carosello-eventi .mod-articles-title {
    font-size: 20px;
  }
}

/* ==================================================
   FOOTER: ARCHIVIO, PARTNERS, CONTATTI E CREDITI
   ================================================== */

footer.container-footer {
  display: block !important;
  grid-template-columns: none !important;
  width: 100% !important;
  max-width: none !important;
  padding: 0 !important;
  background-color: #23263d !important;
}

footer.container-footer > .grid-child {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(250px, 1fr)) !important;
  align-items: start !important;
  gap: 40px !important;
  width: 100% !important;
  max-width: 1500px !important;
  margin: 0 auto !important;
  padding: 55px 50px !important;
  box-sizing: border-box !important;
}

footer.container-footer > .grid-child > * {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  align-self: start !important;
}

/* Mantiene il formato card di Joomla, ma senza riquadri */
footer.container-footer .card {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box;
}

footer.container-footer .card-header {
  min-height: auto !important;
  display: block !important;
  padding: 0 30px 25px !important;
  background: transparent !important;
  border: 0 !important;
}

footer.container-footer .card-header,
footer.container-footer .card-header * {
  color: #ffffff !important;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.7143 !important;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

footer.container-footer .card-body {
  padding: 0 30px 20px !important;
  background: transparent !important;
}

footer.container-footer .card-body,
footer.container-footer .card-body p,
footer.container-footer .card-body li,
footer.container-footer .card-body a {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.7143;
}

.crediti-footer,
.crediti-footer a,
.crediti-footer span {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 12px;
  line-height: 1.7143;
}

/* ==================================================
   CITAZIONI: ASPETTO ORIGINALE DEL VECCHIO SITO
   ================================================== */

blockquote {
  padding: 12px 24px;
  margin: 0 0 24px;
  color: #333333;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 17.5px;
  font-weight: 400;
  line-height: 1.7143;
  background: transparent;
  border: 0;
  border-left: 5px solid #eeeeee;
}

blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}

blockquote footer,
blockquote small,
blockquote .small,
blockquote cite {
  display: block;
  color: #999999;
  font-size: 80%;
  font-style: normal;
  line-height: 1.7143;
}

blockquote footer::before,
blockquote small::before,
blockquote .small::before,
blockquote cite::before {
  content: "\2014\00a0";
}

.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  text-align: right;
  border-right: 5px solid #eeeeee;
  border-left: 0;
}

.blockquote-reverse footer::before,
blockquote.pull-right footer::before,
.blockquote-reverse small::before,
blockquote.pull-right small::before,
.blockquote-reverse .small::before,
blockquote.pull-right .small::before,
.blockquote-reverse cite::before,
blockquote.pull-right cite::before {
  content: "";
}

.blockquote-reverse footer::after,
blockquote.pull-right footer::after,
.blockquote-reverse small::after,
blockquote.pull-right small::after,
.blockquote-reverse .small::after,
blockquote.pull-right .small::after,
.blockquote-reverse cite::after,
blockquote.pull-right cite::after {
  content: "\00a0\2014";
}

/* ==================================================
   TABELLA OPERATORI: RIGHE ORIGINALI
   ================================================== */

.item-page table.ta1,
.com-content-article__body table.ta1,
table.tabella-operatori {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  empty-cells: show;
}

.item-page table.ta1 th,
.item-page table.ta1 td,
.com-content-article__body table.ta1 th,
.com-content-article__body table.ta1 td,
table.tabella-operatori th,
table.tabella-operatori td {
  color: #000000;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
  font-size: 10pt;
  line-height: 1.7143;
  text-align: left;
  vertical-align: top;
  border: 0;
  border-top: 1px solid #dddddd;
}

.item-page table.ta1 p,
.com-content-article__body table.ta1 p,
table.tabella-operatori p {
  margin: 0;
}

/* Righe territoriali evidenziate come nell'originale */
.item-page table.ta1 td.ce3,
.item-page table.ta1 td.ce8,
.item-page table.ta1 td.ce11,
.com-content-article__body table.ta1 td.ce3,
.com-content-article__body table.ta1 td.ce8,
.com-content-article__body table.ta1 td.ce11,
table.tabella-operatori tr.riga-zona > * {
  background-color: #e8e8e8;
}

.item-page table.ta1 td.ce1,
.item-page table.ta1 td.ce2,
.item-page table.ta1 td.ce3,
.item-page table.ta1 td.ce7,
.com-content-article__body table.ta1 td.ce1,
.com-content-article__body table.ta1 td.ce2,
.com-content-article__body table.ta1 td.ce3,
.com-content-article__body table.ta1 td.ce7,
table.tabella-operatori thead th,
table.tabella-operatori tr.riga-zona > * {
  font-weight: 700;
}

/* La tabella può scorrere orizzontalmente sugli schermi piccoli */
@media (max-width: 767px) {
  .item-page table.ta1,
  .com-content-article__body table.ta1,
  table.tabella-operatori {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}

footer.container-footer a {
  color: #9fb9eb;
  text-decoration: none;
}

footer.container-footer a:hover,
footer.container-footer a:focus {
  color: #ffffff;
  text-decoration: underline;
}

footer.container-footer .contatti-footer,
footer.container-footer .contatti-footer a {
  min-width: 0 !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

/* Linee verticali leggere tra le tre colonne */
footer.container-footer > .grid-child > * + * {
  border-left: 1px solid rgba(255, 255, 255, 0.14) !important;
}

/* Crediti finali su tutta la larghezza */
footer.container-footer > .grid-child > .footer-crediti,
footer.container-footer > .grid-child > *:has(.footer-crediti),
footer.container-footer > .grid-child > *:has(.crediti-footer) {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  margin-top: 25px !important;
  padding: 28px 30px 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-left: 0 !important;
  box-sizing: border-box;
  color: rgba(255, 255, 255, 0.65) !important;
  background: transparent !important;
}

.crediti-footer .crediti-legali {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 5px;
  margin: 0 0 10px;
}

.crediti-footer .crediti-legali a,
.crediti-footer .crediti-legali span {
  display: inline;
  white-space: nowrap;
}

.crediti-footer .crediti-webdesign {
  margin: 0;
}

@media (max-width: 900px) {
  footer.container-footer > .grid-child {
    grid-template-columns: 1fr !important;
    gap: 25px !important;
    padding: 35px 20px !important;
  }

  footer.container-footer > .grid-child > * + * {
    border-left: 0 !important;
    border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
    padding-top: 25px !important;
  }

  footer.container-footer .card-header,
  footer.container-footer .card-body {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  footer.container-footer .card-header {
    white-space: normal !important;
  }

  footer.container-footer > .grid-child > .footer-crediti,
  footer.container-footer > .grid-child > *:has(.footer-crediti),
  footer.container-footer > .grid-child > *:has(.crediti-footer) {
    grid-column: 1 !important;
    margin-top: 0 !important;
    padding: 25px 0 0 !important;
    border-left: 0 !important;
  }
}

@media (max-width: 500px) {
  .crediti-footer .crediti-legali {
    display: block;
  }

  .crediti-footer .crediti-legali a,
  .crediti-footer .crediti-legali span {
    white-space: normal;
  }

  .crediti-footer .separatore {
    margin: 0 4px;
  }
}

/* ==================================================
   EFFETTI HOVER ORIGINALI DEI MENU
   ================================================== */

/* Voci dei tre menu colorati */
.box-menu .mod-menu li a {
  display: block;
  color: #ffffff !important;
  opacity: 0.7;
  text-decoration: none;
  transition: opacity 0.2s ease, background-color 0.2s ease;
}

.box-menu .mod-menu li a:hover,
.box-menu .mod-menu li a:focus,
.box-menu .mod-menu li.active > a,
.box-menu .mod-menu li.current > a {
  color: #ffffff !important;
  background-color: #367c78 !important;
  opacity: 1;
  text-decoration: none;
}

/* Menu principale: effetto originale su tutte le voci */
.container-header .mod-menu > li > a,
.container-header .mod-menu > li > span,
.container-header .mod-menu > li > button,
.container-header .mod-menu > li > .mm-toggler {
  opacity: 0.7;
  transition: color 0.2s ease, background-color 0.2s ease, opacity 0.2s ease;
}

.container-header .mod-menu > li > a:hover,
.container-header .mod-menu > li > a:focus,
.container-header .mod-menu > li > span:hover,
.container-header .mod-menu > li > span:focus,
.container-header .mod-menu > li > button:hover,
.container-header .mod-menu > li > button:focus,
.container-header .mod-menu > li > .mm-toggler:hover,
.container-header .mod-menu > li > .mm-toggler:focus,
.container-header .mod-menu > li.mm-active > a,
.container-header .mod-menu > li.mm-active > button,
.container-header .mod-menu > li.mm-active > .mm-toggler {
  color: #ffffff !important;
  background-color: #367c78 !important;
  opacity: 1;
  text-decoration: none !important;
}

/* Le voci singole attive non conservano il fondino verde */
.container-header .mod-menu > li:not(.parent).active > a,
.container-header .mod-menu > li:not(.parent).current > a {
  color: #ffffff !important;
  background-color: transparent !important;
  opacity: 0.7;
}

.container-header .mod-menu > li:not(.parent).active > a:hover,
.container-header .mod-menu > li:not(.parent).active > a:focus,
.container-header .mod-menu > li:not(.parent).current > a:hover,
.container-header .mod-menu > li:not(.parent).current > a:focus {
  background-color: #367c78 !important;
  opacity: 1;
}

/* Menu a discesa: effetto originale del vecchio sito */
.container-header .metismenu .mm-collapse > li > a,
.container-header .metismenu .mod-menu__sub > li > a,
.container-header .mod-menu li ul li > a {
  display: block;
  color: #555555 !important;
  background-color: transparent !important;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.7143;
  padding: 6px 0 !important;
  border-radius: 3px;
  opacity: 1;
  transition: padding 350ms, color 200ms, background-color 200ms;
}

.container-header .metismenu .mm-collapse > li > a:hover,
.container-header .metismenu .mm-collapse > li > a:focus,
.container-header .metismenu .mm-collapse > li.active > a,
.container-header .metismenu .mm-collapse > li.current > a,
.container-header .metismenu .mod-menu__sub > li > a:hover,
.container-header .metismenu .mod-menu__sub > li > a:focus,
.container-header .metismenu .mod-menu__sub > li.active > a,
.container-header .metismenu .mod-menu__sub > li.current > a,
.container-header .mod-menu li ul li > a:hover,
.container-header .mod-menu li ul li > a:focus,
.container-header .mod-menu li ul li.active > a,
.container-header .mod-menu li ul li.current > a {
  color: #3f6cb2 !important;
  background-color: #f2f4f8 !important;
  padding-right: 12px !important;
  padding-left: 12px !important;
  opacity: 1;
  text-decoration: none !important;
}

.container-header .metismenu .mm-collapse,
.container-header .metismenu .mod-menu__sub,
.container-header .mod-menu li ul {
  background-color: #ffffff;
}

.container-header .metismenu .mm-collapse > li + li,
.container-header .metismenu .mod-menu__sub > li + li,
.container-header .mod-menu li ul li + li {
  border-top: 1px solid #f2f4f8;
}

/* Apertura automatica dei menu a discesa al passaggio del mouse */
@media (min-width: 992px) {
  .container-header .metismenu.mod-menu > .metismenu-item.parent:hover > ul.mm-collapse,
  .container-header .metismenu.mod-menu > .metismenu-item.parent:focus-within > ul.mm-collapse,
  .container-header .metismenu.mod-menu > li.parent:hover > ul,
  .container-header .metismenu.mod-menu > li.parent:focus-within > ul {
    display: block !important;
    height: auto !important;
    visibility: visible !important;
    overflow: visible !important;
    opacity: 1 !important;
  }

  /* Mantiene aperto il riquadro mentre il puntatore passa al sottomenu */
  .container-header .metismenu.mod-menu > .metismenu-item.parent > ul.mm-collapse,
  .container-header .metismenu.mod-menu > li.parent > ul {
    margin-top: 0;
  }
}