/*Lollo css*/

h2,
h3,
h4 {
  text-align: center;
}

/*header*/

body {
  -webkit-animation: caricamento 1.5s ease-in 1 forwards;

  -moz-animation: caricamento 1.5s ease-in 1 forwards;

  -o-animation: caricamento 1.5s ease-in 1 forwards;

  animation: caricamento 1.5s ease-in 1 forwards;
}

@keyframes caricamento {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@-webkit-keyframes caricamento {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@-moz-keyframes caricamento {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

header {
  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  z-index: 999;

  padding: 20px 0;
}

header .overflow-hidden {
  width: 25% !important;
}

header ul {
  list-style: none;

  gap: 40px;

  justify-content: end;

  margin: 0px;

  padding: 0px;
}

header ul li a {
  color: white;

  font-size: 22px;

  font-weight: 400;
}

.content-top {
  padding-top: 150px;
}

@media (max-width: 767px) {
  header ul {
    gap: 20px 50px;
  }

  header .overflow-hidden {
    width: 50% !important;

    margin-bottom: 20px;
  }

  header ul li a {
    font-size: 15px;
  }
}

/*Chi siamo*/

.content-top.chi-siamo {
  background: none;

  background-color: darkred;

  height: 40vh;
}

.chi-siamo .banner-simple-text {
  padding-top: 0px;

  padding-bottom: 0px;
}

.chi-siamo .wrap p,
.servizi p,
.collaborazioni p {
  font-size: 17px;

  font-weight: 400;

  margin: 0px;
}

.servizi .content-section p {
  font-size: 22px;
}

.servizi-intro .text-special-2 strong {
  font-size: 60px;

  padding: 50px 0px 10px;

  margin-left: initial;
}

.servizi .row.card {
  width: 33%;

  position: relative;
}

.chi-siamo .card h4 {
  color: white !important;

  margin-bottom: 20px;

  padding-left: 20px;

  position: relative;

  z-index: 1;
}

.servizi .row.card .text-holder {
  position: absolute;

  padding: 27px;

  top: -14px;

  left: -31px;

  z-index: 100;

  height: 100%;

  display: flex;

  flex-direction: column;

  justify-content: space-between;
}

.servizi .row.card .text-holder p {
  color: white;

  padding-left: 47px;

  font-size: 18px;

  line-height: 130%;

  font-weight: 400;

  opacity: 0;
}

.servizi .row.card .overflow-hidden {
  width: 100%;

  height: 100%;
}

.chi-siamo.rita p {
  color: #555;

  line-height: 160%;

  font-size: 17px;

  margin-bottom: 30px;
}

.chi-siamo.rita p:nth-last-of-type(1) {
  margin-bottom: 0px;
}

.chi-siamo.rita .overflow-hidden {
  height: 900px;

  overflow: hidden;
}

.chi-siamo.rita .overflow-hidden img {
  height: 120%;

  border-radius: 5px;

  object-fit: cover;
}

.chi-siamo.messaggio .container {
  display: flex;

  position: relative;

  z-index: 1;

  justify-content: start;

  align-items: end;

  height: 100%;
}

.chi-siamo .intro-message {
  text-align: center;

  font-size: 22px;

  color: white;

  line-height: 160%;

  padding-right: 50px;

  text-shadow: none;

  margin: 0px;
}

.chi-siamo.gruppo {
  background-color: #f5f5f5;

  padding: 100px 0;
}

.chi-siamo p.intro-message {
  font-weight: 400;
}

.chi-siamo.messaggio {
  padding: 100px 0 0px;

  height: 50vh;
}

.chi-siamo.messaggio::after {
  content: "";

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  background-image: url("images/gallery/church.webp");

  z-index: 0;

  opacity: 0.05;
}

.chi-siamo .wrap h2,
.servizi h2,
.collaborazioni h2 {
  font-size: 40px;

  text-align: start !important;

  margin: 0px;

  font-family: "Playfair Display";
}

.chi-siamo.rita h2 {
  color: #f7ce65;

  font-size: 50px;

  margin-bottom: 30px;

  font-family: "Playfair Display";

  font-weight: 600;

  line-height: 90%;
}

.chi-siamo.rita h2 span {
  font-size: 30px;

  color: #0d0d0d;
}

.chi-siamo .coristi h2,
.chi-siamo .musicisti h2 {
  text-align: start !important;

  font-size: 60px;

  color: #f7ce65;

  font-family: "Playfair Display", serif;

  font-weight: 6 00;

  width: 100%;
}

.chi-siamo .coristi > p,
.chi-siamo .musicisti > p {
  margin-bottom: 50px;

  padding-right: 20%;

  line-height: 160%;

  color: #555;
}

.coristi,
.musicisti {
  display: flex;

  flex-wrap: wrap;
}

.chi-siamo .coristi .text h3,
.chi-siamo .musicisti .text h3 {
  font-size: 40px;

  font-family: "Playfair Display";

  color: #0d0d0d;
}

.musicisti {
  padding-top: 50px;
}

.chi-siamo .coristi h3,
.chi-siamo .coristi h4,
.chi-siamo .musicisti h4,
.chi-siamo .musicisti h3 {
  font-size: 20px;

  font-weight: 600;

  margin: 0px;

  color: #555;

  text-align: start;

  color: white;
}

.chi-siamo .coristi .row.text,
.chi-siamo .musicisti .row.text {
  width: 20%;

  display: none;
}

.chi-siamo .coristi .row.content,
.chi-siamo .musicisti .row.content {
  width: 100%;

  position: relative;
}

.chi-siamo .musicisti .row.content h3,
.chi-siamo .coristi .row.content h3 {
  position: absolute;

  z-index: 100;

  top: -32px;

  left: 0;

  color: #333;

  font-family: "Playfair Display";

  font-size: 40px;
}

.chi-siamo img,
.servizi img {
  height: 100%;

  width: 100%;

  object-fit: cover;
}

section.chi-siamo {
  overflow: hidden;
}

section.chi-siamo.quote {
  position: relative;
}

.about-section {
  position: relative;
}

#content > div > div > div > div:nth-child(5) > div.year {
  bottom: 450px;
}

section.chi-siamo.quote:before,
.about-section:before {
  content: "";

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  background-image: url(../images/decoration-gospel.svg);

  background-repeat: no-repeat;

  background-size: 90%;

  opacity: 0.1;

  fill: #333;

  filter: grayscale(1);

  pointer-events: none;
}

.servizi .content-section {
  margin-bottom: 0px;
}

.chi-siamo.messaggio h1,
.servizi-intro h1,
.servizi-intro label,
.collaborazioni-intro h1,
.collaborazioni-intro label,
.contatti-intro h1,
.contatti-intro label {
  text-align: start !important;

  color: #f7ce65;

  font-weight: 400;

  margin: 0px;
}

.chi-siamo.messaggio label,
.servizi-intro label,
.collaborazioni-intro label,
.contatti-intro label,
.media-video-intro label {
  font-size: 22px !important;

  left: initial;

  position: initial;

  top: initial;

  color: white;

  padding: 0px;

  font-weight: 400 !important;

  font-family: "Lato", Arial, Helvetica, sans-serif !important;
}

.chi-siamo.rita {
  background-color: #fff;
}

.chi-siamo.about.second .container {
  padding: 100px 0px;
}

.chi-siamo.messaggio h1,
.chi-siamo.messaggio .intro-quote,
.chi-siamo.messaggio label {
  text-align: center;

  position: relative;

  z-index: 1;

  text-align: center;

  color: #f7ce65;

  font-weight: 900;

  margin: 0px;
}

.chi-siamo.messaggio .intro-quote {
  margin: 50px 0;

  font-family: "Playfair Display";

  font-weight: 400;

  font-size: 24px;
}

.chi-siamo.messaggio label {
  color: white;

  font-size: 20px;

  position: relative;

  z-index: 1;
}

.chi-siamo.messaggio {
  background-color: #2f0a0a;

  background-position-y: -400px;

  position: relative;
}

.chi-siamo.rita #content > div > div:nth-child(1) {
  display: flex;

  flex-direction: column;

  align-items: start;

  justify-content: center;

  padding: 100px 10% 100px 100px;
}

.servizi .row > .col-12.col-md-6:nth-of-type(1) {
  display: flex;

  flex-direction: column;

  align-items: start;

  justify-content: center;

  justify-content: center;

  padding-right: 50px;
}

.servizi .row.flex-row-reverse > .col-12.col-md-6:nth-of-type(1) {
  display: flex;

  flex-direction: column;

  align-items: start;

  justify-content: center;

  padding-left: 50px;
}

.servizi .content-section .row .col-12 p {
  margin-top: 30px;

  font-size: 17px;

  line-height: 160%;

  color: #555;
}

.servizi .overflow-hidden img {
  margin-bottom: -3px;
}

.servizi .content-section .row .overflow-hidden {
  min-height: 400px;

  overflow: hidden;

  position: relative;

  border-radius: 5px;

  height: 100%;
}

/*

.servizi .content-section .row .overflow-hidden:before {

  content: "";

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  background: linear-gradient(

    0deg,

    rgba(0, 0, 0, 0.23) 0%,

    rgba(0, 0, 0, 1) 100%

  );



  z-index: 99;

}*/

.servizi .content-section .row .overflow-hidden img {
  height: 100%;

  width: 100%;

  object-fit: cover;

  position: absolute;

  left: 0;

  top: 0;

  /* padding: 50px; */
}

.servizi .content-section .row h2 {
  font-family: "Playfair Display", Arial, Helvetica, sans-serif;

  font-size: 50px;

  font-weight: 600;

  /* color: #f7ce65; */

  /* padding: 10px; */

  color: #f7ce65;

  border-radius: 10px;

  width: 100%;

  line-height: 100%;
}

.servizi .content-section {
  gap: 70px;
}

.servizi .content-section .row.card,
.servizi .content-section .row.card p {
  transition: all 0.3s linear;

  transition-delay: 0;
}

.servizi .content-section .row.card p {
  transition-delay: 0.3s;
}

.servizi .content-section .row.card:hover {
  width: 70%;
}

.servizi .content-section .row.card:hover p {
  opacity: 1;
}

.card {
  width: 24%;

  display: flex;

  flex-direction: column;

  justify-content: end;

  align-items: start;

  padding: 0px;

  position: relative;

  height: 400px;

  cursor: pointer;
}

.musicisti {
  justify-content: start;
}

.card .overflow-hidden {
  width: 100%;

  height: 100%;

  overflow: hidden;

  border-radius: 5px;

  margin-bottom: 20px;

  position: absolute;

  z-index: 0;

  left: 0;

  top: 0;
}

.row.card .overflow-hidden {
  border-radius: 5px;
}

.pages .servizi {
  padding: 50px 0;
}

.coristi > div:nth-child(2),
.coristi > div:nth-child(3),
.coristi > div:nth-child(4),
.musicisti > div {
  gap: 0px;
}

body.home-page .content-top.chi-siamo {
  background: url("../images/gallery/2020_San Lorenzo_online (2).PNG") no-repeat
    top center;

  background-size: cover;

  background-position-y: -210px;
}

.chi-siamo .card p {
  text-align: start;

  font-size: 18px;

  font-weight: 400;

  margin: 0px;

  padding: 0px 0px;

  margin-top: 5px;

  color: white;

  margin-bottom: 20px;

  padding-left: 20px;

  position: relative;

  z-index: 1;
}

.chi-siamo .card p.categoria {
  margin-bottom: 0px;
}

.chi-siamo .card p:last-of-type {
  overflow: hidden;

  height: 20px;

  transition: all 0.2s ease-out;
}

.chi-siamo .card:hover p:last-of-type {
  height: 50px;
}

.chi-siamo .coristi h3,
.chi-siamo .musicisti h3 {
  margin-bottom: 40px;

  text-align: start;
}

.chi-siamo .coristi .row,
.chi-siamo .musicisti .row {
  margin-bottom: 50px;

  gap: 50px 10px;
}

.chi-siamo.about .overflow-hidden {
  height: 800px;
}

.chi-siamo.about .overflow-hidden img {
  margin-bottom: -4px;
}

.swiper-pagination-bullet {
  background-color: white;

  opacity: 0.9;
}

.chi-siamo.about p.intro-message {
  color: #555;

  line-height: 160%;

  font-size: 17px;

  margin-bottom: 30px;

  padding-left: 10%;

  padding-right: 10%;
}

.chi-siamo.about.first p.intro-message {
  text-align: start;
}

.chi-siamo.about .text {
  height: 100%;

  display: flex;

  justify-content: center;

  align-items: center;

  flex-direction: column;
}

.chi-siamo.about .text h2 {
  width: 100%;

  text-align: start !important;

  font-size: 50px;

  color: #f7ce65;

  font-family: "Playfair Display", serif;

  padding-left: 10%;
}

.chi-siamo .coristi .row .text,
.chi-siamo .musicisti .row .text {
  min-width: 150px;
}

/* Media Page Styles */

.content-section {
  margin-bottom: 4rem;
}

.video-container {
  position: relative;

  height: 100%;

  overflow: hidden;
}

.video-container iframe {
  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100% !important;
}

.youtube-cta {
  text-align: center;
}

.youtube-cta .btn {
  display: inline-flex;

  align-items: center;

  gap: 0.5rem;

  padding: 0.75rem 1.5rem;

  background-color: #ff0000;

  color: white;

  text-decoration: none;

  border-radius: 4px;

  transition: background-color 0.3s;
}

.youtube-cta .btn:hover {
  background-color: #cc0000;
}

.swiper {
  width: 100%;

  padding-bottom: 3rem;

  height: 80vh;
}

.swiper-slide img {
  width: 100%;

  height: auto;

  object-fit: cover;
}

.photo-section .swiper-slide {
  height: 300px;
}

.photo-section .swiper-slide img {
  height: 100%;
}

/* Timeline Styles */

.timeline {
  position: relative;

  max-width: 1400px;

  margin: 0 auto;

  padding: 40px 0;
}

/* Timeline center line

.timeline::after {

  content: "";

  position: absolute;

  width: 2px;

  background-color: #333;

  top: 0;

  bottom: 0;

  left: 50%;

  transform: translateX(-50%);

} */

/* Timeline items */

.collaborazioni-intro,
.servizi-intro,
.contatti-intro {
  height: 50vh;

  display: flex;

  align-items: center;

  position: relative;

  background-color: #2f0a0a;
}

.collaborazioni-intro .container,
.servizi-intro .container,
.contatti-intro .container,
.media-video.intro .container {
  position: relative;

  z-index: 2;

  height: 100%;

  display: flex;

  align-items: end;

  justify-content: start;
}

.collaborazioni-intro .overflow-hidden,
.servizi-intro .overflow-hidden,
.contatti-intro .overflow-hidden,
.chi-siamo.messaggio .overflow-hidden,
.contatti-intro .overflow-hidden {
  width: 100%;

  height: 100%;

  position: absolute;

  top: 0;

  left: 0;
}

.servizi-intro .overflow-hidden:before,
.collaborazioni-intro .overflow-hidden:before,
.chi-siamo.messaggio .overflow-hidden:before,
.contatti-intro .overflow-hidden:before {
  content: "";

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  background: linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.23) 0%,

    rgba(0, 0, 0, 1) 100%
  );

  z-index: 0;
}

.card .overflow-hidden:before {
  content: "";

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.23) 50%,

    rgba(0, 0, 0, 1) 100%
  );

  z-index: 0;
}

.collaborazioni-intro .overflow-hidden img,
.servizi-intro .overflow-hidden img,
.contatti-intro .overflow-hidden img {
  width: 100%;

  height: 100%;

  object-fit: cover;
}

.timeline-item {
  padding: 10px 0px;

  position: relative;

  width: 100%;

  margin-bottom: 30px;

  display: flex;

  justify-content: start;

  min-height: 500px;

  max-height: 500px;
}

/* Left and right items */

.timeline-item.left {
  left: 0;
}

.timeline-item.right {
  left: 0;

  justify-content: end;
}

/* Year marker */

.year {
  position: absolute;

  /* background: #333; */

  color: #f7ce65;

  padding: 10px 20px;

  border-radius: 20px;

  /* top: 50%; */

  transform: translateY(-50%);

  bottom: 350px;

  z-index: 10;

  top: 15px;
}

.timeline-item .year {
  font-size: 80px;

  /* font-family: "Poirot One"; */

  font-family: "Poiret One";
}

.timeline-item.left .year {
  right: 46%;
}

.timeline-item.right .year {
  left: 46%;

  z-index: 10;
}

.timeline-content {
  width: 45%;
}

.timeline-content p {
  text-align: start;
}

/* Timeline cards */

.timeline-card {
  background: white;

  border-radius: 8px;

  position: relative;

  display: flex;

  align-items: center;

  justify-content: center;

  flex-direction: row;

  width: 100%;

  justify-content: space-between;

  align-items: center;

  margin-bottom: 100px;
}

/* Card arrow */

.timeline-card::after {
  content: "";

  position: absolute;

  border: 10px solid transparent;

  top: 50%;

  transform: translateY(-50%);
}

.timeline-item.left .timeline-card::after {
  border-left-color: white;

  right: -20px;
}

.timeline-item.right .timeline-card::after {
  border-right-color: white;

  left: -20px;
}

.right .timeline-card {
  flex-direction: row-reverse;
}

/* Card content */

.timeline-image {
  margin-bottom: 15px;

  overflow: hidden;

  border-radius: 5px;

  height: 100%;

  width: 50%;
}

.timeline-image img {
  width: 100%;

  height: 100%;

  object-fit: cover;

  border-radius: 4px;
  height: 400px;
}

.timeline-content h3 {
  margin: 0 0 20px;

  color: #333;

  font-size: 40px;

  text-align: start;

  color: #f7ce65;

  font-weight: 600;

  font-family: "Playfair Display", Arial, Helvetica, sans-serif;

  line-height: 100%;
}

.timeline-content p {
  margin: 0;

  color: #555;

  line-height: 1.6;

  font-weight: 400;

  font-size: 17px;
}

.timelineSwiper {
  width: 100%;

  height: auto;

  padding-bottom: 0px;
}

#content > div > div > div > div:nth-child(5) > div.timeline-card {
  margin-bottom: 0px;
}

.timelineSwiper .swiper-slide {
  background: transparent;
}
.timeline-item:first-of-type .timelineSwiper .swiper-slide {
  flex-direction: row-reverse;
}
.timeline-card .swiper-pagination {
  bottom: 60px;
}

.swiper-pagination-bullet-active {
  opacity: var(--swiper-pagination-bullet-opacity, 1);

  background: #f7ce65;
}

.timeline-card .swiper-button-next,
.timeline-card .swiper-button-prev {
  color: #333;
}

.contatti-intro {
  position: relative;
}

.timelineSwiper .swiper-slide {
  padding: 10px 40px;

  position: relative;

  width: 100%;

  margin-bottom: 30px;

  display: flex;

  justify-content: space-between;

  min-height: 500px;

  max-height: 500px;

  overflow: hidden;
}

.timeline-item.right h3,
.timeline-item.right p {
  text-align: start;
}

/* Responsive design */

@media screen and (max-width: 991px) {
  .timeline::after {
    left: 31px;
  }

  .timeline-item {
    width: 100%;

    padding-left: 70px;

    padding-right: 25px;
  }

  .timeline-item.right {
    left: 0;
  }

  .timeline-card::after {
    left: -20px !important;

    border-right-color: white !important;

    border-left-color: transparent !important;
  }

  .chi-siamo.messaggio label,
  .servizi-intro label,
  .collaborazioni-intro label,
  .contatti-intro label {
    font-weight: 400 !important;
  }

  .swiper-wrapper .timeline-content {
    width: 100% !important  ;
  }

  .collaborazioni .swiper-wrapper {
    margin-top: 0px !important;
  }
}

/* Contact Page Styles */

.contatti .form-control {
  width: 100%;

  padding: 0.75rem;

  border: none;

  border-bottom: 1px solid #ddd;

  border-radius: 0px;

  transition: border-color 0.3s;

  background: transparent;
}

.contact-form,
.contact-info {
  background: #fff;

  padding: 20px;

  border-radius: 5px;

  height: 100%;
}

.form-control:focus {
  border-color: #f7ce65 !important;

  outline: none;
}

/* Checkbox styling for privacy checkbox */

.checkbox-container input[type="checkbox"] {
  display: none; /* Nasconde il checkbox nativo */
}

.checkbox-container label.checkbox {
  width: 20px;

  height: 20px;

  border: 1px solid #999;

  border-radius: 4px;

  display: inline-block;

  position: relative;

  cursor: pointer;

  background-color: transparent; /* sfondo trasparente */

  transition: all 0.2s ease-in-out;

  margin: 0px;
}

.checkbox-container input[type="checkbox"]:checked + label.checkbox {
  background-color: rgba(255, 255, 255, 0.2); /* sfondo quando selezionato */

  border-color: #f7ce65; /* bordo quando selezionato */
}

.checkbox-container input[type="checkbox"]:checked + label.checkbox::after {
  content: "";

  position: absolute;

  top: 2px;

  left: 6px;

  width: 5px;

  height: 10px;

  border: solid #f7ce65;

  border-width: 0 2px 2px 0;

  transform: rotate(45deg);
}

.form-check-input[type="checkbox"] {
  width: 18px;

  height: 18px;

  margin-top: 0.25em;

  background-color: transparent;

  border: 1px solid #adb5bd;

  border-radius: 3px;

  transition: all 0.2s ease-in-out;
}

.form-check-input[type="checkbox"]:checked {
  background-color: #f7ce65;

  border-color: #f7ce65;

  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}

p:not(#foo) > input[type="checkbox"]:checked + label:after {
  content: "2714";

  display: block;

  position: absolute;

  top: 1px;

  left: 0;

  margin: 0 auto;

  color: #222;

  font-size: 11px;

  background-color: transparent;
}

.form-check-input:focus {
  border-color: #f7ce65;

  outline: 0;

  box-shadow: 0 0 0 0.25rem rgba(247, 206, 101, 0.25);
}

.form-check-label {
  color: #555;

  font-size: 14px;

  padding-left: 5px;
}

.contact-info {
  display: flex;

  flex-wrap: wrap;

  justify-content: space-between;

  align-items: center;

  gap: 0px;

  height: min-content;
}

.contact-info h2 {
  width: 100%;
}

.contact-info .info-block {
  width: 50%;
}

.contatti-intro label {
  display: block;

  font-size: 24px;

  width: 100%;

  text-align: center;

  font-weight: 400;

  color: #0d0d0d;
}

.contatti .content-section {
  margin-bottom: 0px;

  padding: 70px 0;
}

.contatti h2 {
  text-align: start;

  font-size: 30px;

  color: #f7ce65;

  margin-top: 0px;

  font-family: "Playfair Display", Arial, Helvetica, sans-serif;

  font-weight: 600;

  font-size: 30px;
}

.contact-form {
  background-color: #fbfbfb;
}

.contatti .info-block a {
  color: #f7ce65 !important;
}

.contatti button {
  background-color: #f7ce65 !important;
}

.contatti p {
  font-weight: 400;

  font-size: 17px;
}

.form-group {
  margin-bottom: 1.5rem;
}

.form-group.d-flex {
  gap: 10px;
}

.form-check {
  display: flex;

  align-items: center;

  gap: 5px;
}

.form-group label {
  display: block;

  margin-bottom: 0.5rem;

  font-weight: 500;
}

.form-group .form-check-label {
  margin: 0px;
}

.form-control {
  width: 100%;

  padding: 0.75rem;

  border: 1px solid #ddd;

  border-radius: 4px;

  transition: border-color 0.3s;
}

.form-control:focus {
  border-color: #007bff;

  outline: none;
}

.btn-primary {
  background: #007bff;

  color: white;

  padding: 0.75rem 2rem;

  border: none;

  border-radius: 4px;

  cursor: pointer;

  transition: background 0.3s;
}

.intro-quote {
  font-size: 70px;

  color: #777;

  font-weight: 400;

  font-family: "Playfair Display";

  width: 100%;

  text-align: center;

  padding: 0px 0px;

  font-style: italic;
}

section.chi-siamo.quote {
  background-color: #f5f5f5;
}

.pages .text-special-2 strong {
  font-size: 50px;

  padding: 50px 0px 0px;

  margin-left: initial;

  font-family: "Playfair Display", serif;

  font-weight: 400;

  width: 100%;

  text-align: start;
}

.pages .text-special {
  margin: 0px;

  margin-bottom: 50px;
}
.media-video.intro .container .text-special.text-special-2 {
  margin-bottom: 0px;
}
.chi-siamo .text-special-2 > label {
  font-size: 22px;

  left: initial;

  position: initial;

  top: initial;

  color: white;

  width: 100%;

  text-align: start;

  font-weight: 400;
}

.btn-primary:hover {
  background: #0056b3;
}

.row > div.text {
  width: auto;
}

/* Contact Info Styles */

.info-block {
  margin-bottom: 2rem;
}

.info-block h3 {
  font-size: 1.1rem;

  margin-bottom: 0.75rem;

  display: flex;

  align-items: center;

  gap: 0.5rem;
}

.info-block p {
  margin: 0;

  color: #666;
}

.info-block a {
  color: #007bff;

  text-decoration: none;

  transition: color 0.3s;
}

.info-block a:hover {
  color: #0056b3;
}

.social-icons {
  display: flex;

  gap: 1rem;
}

.social-icons a {
  width: 40px;

  height: 40px;

  background: #333;

  border-radius: 50%;

  display: flex;

  align-items: center;

  justify-content: center;

  color: #333;

  transition: all 0.3s;
}

.social-icons a i {
  font-size: 20px;
}

.contatti .social-icons a:hover {
  background: #f5f5f5;

  color: #f7ce65 !important;
}

.contatti button,
.contatti a {
  transition: all 0.3s ease-in-out;
}

.contatti button:hover {
  background-color: #333 !important;

  background: #333 !important;

  color: #f7ce65;
}

.contatti a:hover {
  color: #333 !important;
}

img {
  transition: all 0.3s ease-in-out;
}

.youtube-cta p,
.youtube-cta a {
  font-weight: 400;

  font-size: 20px;

  padding: 0px 10px;
}

.photo-section h2 {
  font-size: 40px;

  font-weight: 600;

  font-family: "Playfair Display", Arial, Helvetica, sans-serif;

  color: #f7ce65;
}

/* Responsive adjustments */

@media (max-width: 991.98px) {
  .contact-info {
    margin-top: 2rem;
  }
}

/* Masonry Gallery Styles */

.masonry-gallery {
  column-count: 3;

  column-gap: 20px;

  padding: 20px;
}

@media (max-width: 991px) {
  .masonry-gallery {
    column-count: 2;
  }
}

@media (max-width: 576px) {
  .masonry-gallery {
    column-count: 1;
  }
}

.masonry-item {
  break-inside: avoid;

  margin-bottom: 20px;

  position: relative;

  border-radius: 5px;

  overflow: hidden;

  transition: transform 0.3s ease;
}

.masonry-item:hover img {
  scale: 1.1;
}

.masonry-item img {
  width: 100%;

  height: auto;

  display: block;

  border-radius: 8px;
}

.masonry-item-caption {
  position: absolute;

  bottom: 0;

  left: 0;

  right: 0;

  background-color: #f7ce654d;

  color: white;

  padding: 10px;

  font-size: 14px;

  opacity: 1;

  transition: opacity 0.3s ease;
}

.read-more-btn {
  display: block !important;
}

.masonry-item:hover .masonry-item-caption {
  opacity: 1;
}

.events-list ul {
  list-style: none;

  column-count: 3;

  gap: 40px;
}

.contatti-intro label {
  display: block;

  font-size: 24px;

  width: 100%;

  text-align: center;

  font-weight: 400;

  color: white;
}

.text-holder p {
  display: -webkit-box;

  -webkit-line-clamp: 4;

  -webkit-box-orient: vertical;

  overflow: hidden;

  transition: all 0.3s ease;

  position: relative;

  cursor: pointer;
}

.text-holder p.expanded {
  -webkit-line-clamp: unset;
}

.read-more-btn {
  background: none;

  border: none;

  color: #222;

  padding: 0;

  margin-top: 10px;

  font-weight: 600;

  cursor: pointer;

  font-size: 17px;

  font-family: "Lato", Arial, Helvetica, sans-serif;
}

.servizi .cta-content h2 {
  text-align: center;
}

.collaborazioni .swiper-wrapper {
  margin-top: 130px;
}

.swiper-wrapper .timeline-content {
  width: 45%;

  display: flex;

  flex-direction: column;

  justify-content: center;
}

.timeline {
  margin-bottom: 0px;

  padding-bottom: 0px;
}

.read-more-btn:hover {
  text-decoration: underline;
}

.text-holder p {
  display: -webkit-box;

  -webkit-line-clamp: 4;

  -webkit-box-orient: vertical;

  overflow: hidden;

  transition: all 0.3s ease;

  margin-bottom: 0;
}

.text-holder p.expanded {
  -webkit-line-clamp: unset;
}
/* Assicurati che il menu non venga tagliato */
header,
.navbar,
.main-nav,
.main-nav > ul {
  overflow: visible;
}

/* Dropdown base */
.dropdown-parent {
  position: relative;
}
.dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  cursor: pointer;
}
.dropdown-toggle i {
  transition: transform 0.2s;
}

.dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 0.4rem); /* piccolo distacco evita “salti” di hover */
  left: 0;
  min-width: 200px;
  background-color: #2f0a0a;
  border-radius: 4px;
  padding: 10px 0;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
  z-index: 1000;
}

.dropdown-menu li {
  padding: 5px 15px;
}
.dropdown-menu li a {
  display: block;
  white-space: nowrap;
  padding: 5px 0;
}

/* Apertura su desktop: hover e focus per tastiera */
@media (hover: hover) and (pointer: fine) {
  .dropdown-parent:hover > .dropdown-menu {
    display: block;
  }
  .dropdown-parent:hover > .dropdown-toggle i {
    transform: rotate(180deg);
  }
}
/* Tastiera / accessibilità */
.dropdown-parent:focus-within > .dropdown-menu {
  display: block;
}
.dropdown-parent:focus-within > .dropdown-toggle i {
  transform: rotate(180deg);
}

/* (opzionale) disattiva l’hover sui dispositivi touch per evitare glitch */
@media (hover: none) {
  .dropdown-parent:hover > .dropdown-menu {
    display: none;
  }
}
/* assicurati che i contenitori non taglino il dropdown */
header,
.navbar,
.main-nav,
.main-nav > ul {
  overflow: visible;
}

.dropdown-parent {
  position: relative;
}

/* niente margini che creano il buco; top esatto sotto al link */
.dropdown-menu {
  display: none;
  position: absolute;
  top: 100%; /* <— niente calc / margin */
  left: 0;
  min-width: 200px;
  background: #2f0a0a;
  border-radius: 4px;
  padding: 10px 0;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
  z-index: 1000;

  /* opzionale: spaziatura visiva mantenuta senza creare un buco reale */
  transform: translateY(8px);
}

/* desktop: resta aperto su hover e su focus (tastiera) */
@media (hover: hover) and (pointer: fine) {
  .dropdown-parent:hover > .dropdown-menu,
  .dropdown-parent:focus-within > .dropdown-menu {
    display: block;
  }

  /* PONTE INVISIBILE: area “cuscinetto” che evita la chiusura mentre scendi col mouse */
  .dropdown-parent::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 12px; /* >= translateY(8px) */
    /* nessun background: è invisibile ma mantiene l'hover del parent */
  }
}
.dropdown-parent.open > .dropdown-menu {
  display: block;
}

@media (max-width: 991px) {
  .chi-siamo .coristi .row,
  .chi-siamo .musicisti .row {
    gap: 10px 10px;
  }

  .servizi .content-section .row h2 {
    font-size: 40px;
  }

  .chi-siamo.about .overflow-hidden,
  .chi-siamo.rita .overflow-hidden {
    height: 400px;
  }

  .servizi .row > .col-12.col-md-6:nth-of-type(1) {
    padding-right: 0%;
  }

  .text-special-2:not(.homepage) {
    bottom: 20px;
  }

  .intro-quote {
    font-size: 30px;

    color: #777;

    font-weight: 400;

    font-family: "Playfair Display";

    width: 100%;

    text-align: center;

    padding: 0px 0px;

    font-style: italic;
  }

  section.chi-siamo.quote:before {
    content: "";

    position: absolute;

    top: 0;

    left: 0;

    width: 100%;

    height: 100%;

    background-image: url(../images/decoration-gospel.svg);

    background-repeat: no-repeat;

    background-size: 190%;

    opacity: 0.1;

    fill: #333;

    filter: grayscale(1);
  }

  .chi-siamo .coristi > p,
  .chi-siamo .musicisti > p {
    margin-bottom: 50px;

    margin-bottom: 50px !important;

    padding-right: 0%;

    line-height: 160%;

    color: #222;
  }

  .events-list ul {
    list-style: none;

    column-count: 1;

    gap: 40px;
  }

  .contatti .content-section {
    padding: 0px;
  }

  .chi-siamo.about .text h2 {
    margin-bottom: 0px !important;
  }

  .chi-siamo.rita h2 {
    line-height: 80%;

    font-size: 40px;

    margin-bottom: 10px;
  }

  .chi-siamo.rita h2 span {
    font-size: 22px;
  }

  .chi-siamo.rita #content > div > div:nth-child(1) {
    padding: 50px 30px;
  }

  .chi-siamo.about.second .text {
    padding: 0px 30px;
  }

  .chi-siamo .coristi > p,
  .chi-siamo .musicisti > p {
    margin-bottom: 0px;

    padding-right: 0%;

    line-height: 160%;

    color: #222;
  }

  .chi-siamo .coristi .row.text,
  .chi-siamo .musicisti .row.text {
    width: 100%;

    justify-content: center;

    align-items: center;

    margin-bottom: 0px;
  }

  .chi-siamo .coristi .text h3,
  .chi-siamo .musicisti .text h3 {
    font-size: 30px;

    font-family: "Playfair Display";

    color: #0d0d0d;

    text-align: center;

    width: 100%;

    margin-bottom: 20px;

    margin-top: 40px;
  }

  .coristi,
  .musicisti {
    display: flex;

    flex-wrap: wrap;

    flex-direction: column;

    align-items: center;
  }

  .card {
    width: 100%;
  }

  .pages .text-special {
    margin-bottom: 0px;
  }

  .chi-siamo.about .text {
    padding: 5% 15px;
  }

  .chi-siamo.about .text h2 {
    width: 100%;

    text-align: start !important;

    font-size: 40px;

    color: #f7ce65;

    font-family: "Playfair Display", serif;

    padding-left: 0%;

    margin-bottom: 0px;
  }

  .chi-siamo.about p.intro-message {
    color: #555;

    line-height: 160%;

    font-size: 17px;

    margin-bottom: 30px;

    padding-left: 0%;

    padding-right: 0%;
  }

  .chi-siamo.gruppo {
    padding: 50px 0px;
  }

  .servizi .row.flex-row-reverse > .col-12.col-md-6:nth-of-type(1) {
    padding-left: 0px;

    padding: 0px 15px;
  }

  .servizi .content-section .row {
    gap: 30px;
  }

  .servizi .content-section {
    gap: 50px;
  }

  .pages .servizi {
    padding: 25px 0px;
  }

  .servizi .content-section .row .col-12 p {
    margin-top: 20px;
  }

  header .overflow-hidden {
    margin-bottom: 0px;
  }

  header i {
    color: white;
  }

  #footer {
    margin-top: 0px;
  }

  .timeline-card,
  .timelineSwiper .swiper-slide {
    background: white;

    border-radius: 8px;

    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    flex-direction: row;

    width: 100%;

    justify-content: space-between;

    align-items: start;

    margin-bottom: 100px;

    flex-direction: column;
  }

  .timelineSwiper .swiper-slide {
    padding: 0px;
  }

  .timeline-content {
    width: 100%;
  }
  .timeline-card {
    flex-direction: column;
    padding-top: 80px;
  }
  .timeline-image {
    margin-bottom: 15px;

    overflow: hidden;

    border-radius: 5px;

    height: 100%;

    width: 100%;
    display: none;
  }

  .timeline-item {
    width: 100%;

    /* padding-left: 70px; */

    /* padding-right: 25px; */

    padding: 0px;
  }

  .timeline-content h3 {
    margin: 0 0 20px;

    color: #333;

    font-size: 30px;

    text-align: start;

    color: #f7ce65;

    font-weight: 400;

    font-family: "Playfair Display", Arial, Helvetica, sans-serif;

    line-height: 100%;

    margin-bottom: 10px;
  }

  .timeline-item .year {
    font-size: 50px;
  }

  .timeline-item.left .year {
    left: -6%;

    top: 23px;
  }

  .timeline-card .swiper-pagination {
    bottom: 10px;
  }

  .right .timeline-card {
    flex-direction: column;
  }

  .timeline-item.right .year {
    left: -6%;

    z-index: 10;

    top: 23px;
  }

  #content > div > div > div > div:nth-child(5) > div.timeline-card {
    margin-bottom: 0px;
  }

  #content > div > div > div > div:nth-child(5) {
    margin-bottom: 0px;
  }

  .timeline {
    padding: 40px 0px 0px;
  }

  .pages .text-special-2 strong {
    font-size: 50px;

    padding: 0px;
  }

  .contatti-intro label {
    text-align: start;
  }

  .contact-info {
    padding: 0px;
  }

  .chi-siamo .coristi h2,
  .chi-siamo .musicisti h2 {
    font-size: 40px;
  }

  .chi-siamo .coristi .row.content,
  .chi-siamo .musicisti .row.content {
    width: 90%;
  }

  .collaborazioni .cta-section {
    margin-top: 70px !important;
  }

  .contatti h2 {
    margin-bottom: 0px;
  }

  .contact-form {
    padding: 10px;
  }
}

.pages strong {
  font-weight: 900;
}

/* Mobile Menu Styles */

.mobile-toggle {
  border: none;

  background: none;

  font-size: 2rem;

  cursor: pointer;

  z-index: 1000;

  position: relative;
}

.mobile-menu {
  position: fixed;

  top: 0;

  right: -100%;

  width: 80%;

  height: 100vh;

  background: rgba(0, 0, 0, 0.9);

  z-index: 999;

  transition: right 0.3s ease-in-out;

  padding: 80px 20px 20px;
}

.mobile-menu.active {
  right: 0;
}

.mobile-menu nav ul {
  list-style: none;

  padding: 0;

  margin: 0;
}

.mobile-menu nav ul li {
  margin: 20px 0;
}

.mobile-menu nav ul li a {
  color: white;

  text-decoration: none;

  font-size: 1.2rem;

  display: block;

  padding: 10px;
}

/* ... existing code ... */

.alert {
  padding: 15px;

  margin-bottom: 20px;

  border: 1px solid transparent;

  border-radius: 4px;

  position: fixed;

  top: 100px;

  left: 50%;

  transform: translateX(-50%);

  z-index: 9999;

  width: 80%;

  max-width: 500px;

  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);

  text-align: center;
}

.alert-success {
  color: #155724;

  background-color: #d4edda;

  border-color: #c3e6cb;
}

.alert-danger {
  color: #721c24;

  background-color: #f8d7da;

  border-color: #f5c6cb;
}

/* Swiper navigation styling */

.video-section .swiper {
  position: relative;

  padding: 0px;
}

.video-section .swiper-button-next,
.video-section .swiper-button-prev {
  color: #f7ce65;
}

.video-section .swiper-pagination-bullet-active {
  background: #f7ce65;
}

.video-container {
  position: relative;

  padding-bottom: 40%; /* 16:9 aspect ratio */

  height: 0;

  overflow: hidden;

  max-width: 100%;
}

.video-container iframe {
  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;
}

/* Hide mobile menu on desktop */

@media (min-width: 991px) {
  .mobile-menu {
    display: none;
  }
  .video-section .container {
    flex-direction: column;
  }
  .swiper-slide,
  .swiper-wrapper,
  .swiper-slide .video-container {
    height: 100% !important;
  }
}

.swiper-slide,
.swiper-wrapper,
.swiper-slide .video-container {
  height: 100% !important;
}

.timeline .swiper-pagination-bullet {
  background-color: #999;
}

header nav a {
  transition: all 0.3s ease-in-out;
}

header nav a:hover {
  color: #f7ce65;
}

.chi-siamo.about .text h2 {
  margin-bottom: 30px;
}

form a {
  text-decoration: underline;

  color: #f7ce65;
}

form a:hover {
  text-decoration: underline;

  color: #f7ce65 !important;
}

.contact-info {
  padding: 20px 0px;
}

/* Group Swiper styling */

.groupSwiper {
  width: 100%;

  height: 100%;

  overflow: hidden;
}

.groupSwiper .swiper-slide {
  width: 100%;

  height: 100%;
}

.groupSwiper .swiper-slide img {
  width: 100%;

  height: auto;

  display: block;

  transition: transform 0.5s ease;
}

.groupSwiper .swiper-slide:hover img {
  transform: scale(1.05);
}

.chi-siamo .swiper-slide:hover img {
  transform: scale(1);
}

/* CTA Section Styling */

.cta-section {
  padding: 60px 0;

  margin: 40px 0 0;

  position: relative;

  overflow: hidden;
}

.collaborazioni .cta-section {
  padding: 0px 0px 60px;

  position: relative;

  overflow: hidden;
}

.collaborazioni .cta-section h2 {
  text-align: center !important;
}

.cta-section::before {
  content: "";

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  background-image: url("../images/texture-overlay.png");

  opacity: 0.1;

  z-index: 1;
}

.cta-wrapper {
  position: relative;

  z-index: 2;

  text-align: center;
}

.cta-content {
  max-width: 800px;

  margin: 0 auto;
}

.cta-content h2 {
  font-family: "Playfair Display", serif;

  font-size: 36px;

  color: #333;

  margin-bottom: 10px;
}

.cta-content p {
  font-size: 18px;

  color: #555;

  margin-bottom: 25px;

  margin-top: 0px;
}

.btn-cta {
  display: inline-block;

  background-color: #f7ce65;

  color: #333;

  padding: 12px 30px;

  border-radius: 5px;

  text-decoration: none;

  font-weight: 600;

  transition: all 0.3s ease;
}

.btn-cta:hover {
  background-color: #333;

  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);

  color: #f7ce65;
}

@media (max-width: 991px) {
  .cta-section {
    padding: 40px 0;
  }
  .video-section .container {
    flex-direction: column;
    align-items: center !important;
  }

  .cta-content h2 {
    font-size: 28px;
  }
}

.pages .servizi,
.chi-siamo.gruppo {
  padding-bottom: 0px;
}

/* Featured Video Styling */

.featured-video {
  width: 100%;

  /* max-width: 1000px; */

  height: 50vh;

  /* margin: 0 auto 30px; */

  overflow: hidden;
}

.featured-video video {
  display: block;

  width: 100%;

  /* height: auto; */

  height: 100%;

  object-fit: cover;

  max-width: 100%;
}

.home-page .content-top.video-section {
  position: relative;

  height: 80vh;
}

.home-page .content-top.video-section .featured-video {
  position: absolute;

  top: 0;

  left: 0;

  height: 100%;
}

.banner-simple-text {
  padding-bottom: 0px;
}

.text-special > label {
  text-align: center;

  font-family: "Playfair Display";

  font-size: 40px;

  color: #ffffff;
}

.text-special > label span {
  color: #f7ce65;

  font-size: 60px;
}

.blank-text {
  padding: 75px 0px;
}

.blank-text p {
  font-size: 42px;

  font-weight: 400;

  font-family: "Lato", Arial, Helvetica, sans-serif;

  color: #222;

  text-align: center;

  margin-bottom: 5px;

  width: 100%;

  text-align: center;

  margin-top: 0%;
}

.blank-text p.normal {
  font-size: 20px;

  font-weight: 400;

  font-family: "Lato", Arial, Helvetica, sans-serif;

  color: #666;

  text-align: center;

  margin-bottom: 30px;

  width: 100%;

  text-align: center;

  margin-top: 0%;

  padding: 0px 20%;
}

#content > section.wrap.location-section {
  position: relative;
}
.location-section h2 {
  margin: 0px;
}
#content > section.wrap.location-section:after {
  content: "";

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  background-color: #0d0d0d;

  opacity: 0.2;
}

.media-video.intro {
  position: relative;

  height: 50vh;

  overflow: hidden;
}

.media-video .featured-video {
  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  object-fit: cover;

  z-index: -1;
}

.overtext {
  z-index: 100;
}

.blank-text p span {
  font-family: "Playfair Display";

  font-style: italic;

  font-size: 49px;
}

#content
  > div.banner-grid-adv
  > div.banner-grid-left
  > div:nth-child(2)
  > div
  > div.inner-grid-text-box
  > h2 {
  padding-left: 50px;
}

.inner-grid-text-box {
  bottom: 0;

  height: 130px;

  left: 0;

  margin: auto;

  padding-left: 0px;

  position: absolute;

  right: 0;

  top: 0;

  width: 100%;
}

.overtext {
  font-size: 40px;

  text-align: center;

  color: #fff;

  position: absolute;

  top: 50%;

  left: 50%;

  width: 1000px;

  max-width: 90vw;

  transform: translate(-50%, -50%);

  font-family: "Playfair Display";

  text-shadow: none;

  line-height: 140%;
}

.title-box-default.white-arrow-style .title-tab {
  color: #f7ce65;

  font-family: "Playfair Display";

  text-shadow: none;

  font-size: 40px;
}

.content-message p:first-child {
  margin-top: 0;

  font-weight: 400;
}

.cta-events-list a {
  background: #f7ce65;

  color: #222;

  font-size: 17px;

  text-transform: none;

  text-decoration: none;

  font-weight: 500;

  line-height: 1.2;

  display: flex;

  flex-direction: column;

  align-items: center;

  justify-content: center;

  width: fit-content;

  padding: 15px 30px;

  border-radius: 6px;

  margin: 0 auto;

  transition: all 0.3s ease-in-out;
}

.title-box-default {
  background: rgba(0, 0, 0, 0) url(../images/home_1/bg_title.png) no-repeat
    scroll center top;

  padding-bottom: 10px;

  padding-top: 60px;

  text-align: center;
}

#content
  > div.about-section
  > div:nth-child(1)
  > div.row.justify-content-center {
  gap: 100px;
}

.cta-wrapper h2 {
  text-align: center !important;
}

/* YouTube Video Grid Styling */

.video-container {
  position: relative;

  padding-bottom: 56.25%; /* 16:9 Aspect Ratio */

  height: 0;

  overflow: hidden;

  border-radius: 8px;

  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);

  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.video-container:hover {
  transform: translateY(-5px);

  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.video-container iframe {
  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  border-radius: 8px;
}

.video-section h2 {
  font-family: "Playfair Display", serif;

  font-size: 40px;

  color: #f7ce65;

  margin-bottom: 30px;

  text-align: center;
}
.video-section .container {
  height: 100%;
  display: flex;
  align-items: center;
  width: 100%;
  justify-content: center;
  padding-bottom: 50px;
}

.media-video.intro .container {
  flex-direction: row;
}
.video-section h4 {
  font-size: 16px;

  color: #333;

  text-align: center;

  font-weight: 500;
}

@media (max-width: 767px) {
  .video-section h2 {
    font-size: 32px;
  }
}

/* Footer Styling */

.footer-top {
  padding: 0px 0 30px;

  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-logo-img {
  max-width: 300px;

  margin-bottom: 15px;
}

.footer-logo p {
  color: #ccc;

  font-size: 18px;

  line-height: 1.6;

  text-align: start;

  padding-right: 70px;
}

#footer > div > div > div.row.footer-top > div.col-12.col-md-4.footer-logo {
  justify-content: start;

  display: flex;

  flex-direction: column;

  align-items: start;
}

#footer > div > div > div.row.footer-top > div.col-12.col-md-4.footer-logo > a {
  width: 300px;
}

#content
  > div
  > section.content-section.video-section
  > div.container.mt-5
  > p {
  font-size: 20px;

  width: 100%;

  text-align: center;

  margin-bottom: 50px;
}

.content-section.video-section {
  margin-bottom: 0px;
}

.footer-links h4,
.footer-contact h4 {
  color: #f7ce65;

  font-size: 20px;

  margin-bottom: 10px;

  font-family: "Playfair Display", serif;
}

.footer-links ul,
.footer-contact ul {
  list-style: none;

  padding: 0;

  margin: 0;
}

.footer-links ul li,
.footer-contact ul li {
  margin-bottom: 10px;

  width: fit-content;
}

.footer-links ul li a,
.footer-contact ul li a {
  color: #fff;

  text-decoration: none;

  transition: color 0.3s ease;

  font-size: 18px;
}

.footer-links ul li a:hover,
.footer-contact ul li a:hover {
  color: #f7ce65;
}

.footer-contact ul li {
  display: flex;

  align-items: center;

  color: #fff;

  font-size: 18px;

  text-align: start;

  width: fit-content;
}

.footer-contact ul li i {
  margin-right: 10px;

  color: #f7ce65;
}

.social-links {
  display: flex;

  gap: 15px;
}

footer .social-links a {
  display: flex;

  align-items: center;

  justify-content: center;

  width: 36px;

  height: 36px;

  background-color: rgba(255, 255, 255, 0.1);

  border-radius: 50%;

  color: #fff;

  transition: all 0.3s ease;
}

.social-links a:hover {
  background-color: #f7ce65;

  color: #2f0a0a;
}

.copy-right p {
  margin-bottom: 0;

  font-size: 14px;
}

.copy-right,
.copy-right p,
.contact-footer,
.contact-footer p {
  margin: 0px;

  padding: 0px;
}

.contatti-intro .text-special > label {
  text-align: start;
}

.contatti-intro.media {
  margin-bottom: 80px;
}

footer h4 {
  text-align: start;
}

.media-video .cta-section,
.media-foto .cta-section,
.cta-section {
  padding: 60px 0;

  margin: 30px 0 0;

  position: relative;

  overflow: hidden;

  padding-top: 0px;
}

.servizi .wrap {
  margin-bottom: 60px;
}

.collaborazioni .cta-section,
.servizi .cta-section {
  padding: 60px 0;
}

.desktop-nav ul li a.active,
.mobile-menu ul li a.active {
  color: #f7ce65 !important;

  font-weight: 400;

  background-color: transparent !important;
}

/* Dropdown menu styles */

.dropdown-parent {
  position: relative;
}

.dropdown-toggle {
  cursor: pointer;
}

.dropdown-menu {
  display: none;

  position: absolute;

  background-color: #2f0a0a;

  min-width: 160px;

  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);

  z-index: 1000;

  padding: 10px 0;

  border-radius: 4px;

  top: 100%;

  left: 0;
}

.dropdown-menu li {
  width: 100%;

  padding: 5px 15px;
}

.dropdown-menu li a {
  display: block;

  padding: 5px 0;

  white-space: nowrap;
}

.dropdown-parent:hover .dropdown-menu {
  display: block;
}

/* Mobile dropdown styles */

.mobile-menu .dropdown-menu {
  position: static;

  background-color: transparent;

  box-shadow: none;

  padding-left: 20px;
}

.mobile-menu .dropdown-toggle {
  display: flex;

  justify-content: space-between;

  align-items: center;
}

.mobile-menu .dropdown-parent.open .dropdown-menu {
  display: block;
}

.media-video.intro .text-special label {
  font-size: 22px !important;

  left: initial;

  position: initial;

  top: initial;

  color: white;

  padding: 0px;

  font-weight: 400 !important;

  font-family: "Lato", Arial, Helvetica, sans-serif !important;

  text-align: start !important;
}

.media-video.intro h1 {
  margin-bottom: 0px;
}

.about-section {
  background-position: center;
}

footer p,
footer a,
footer li {
  font-weight: 400;
}

.banner-simple-text {
  text-transform: none !important;
}

.title-tab {
  text-transform: none !important;
}

.cta-events-list a {
  animation: animate-pulse-button 3s linear infinite;

  cursor: pointer;
}

.cta-events-list a:hover {
  background-color: #333;

  color: #f7ce65;
}

#content > section.wrap.location-section > img {
  object-fit: cover;

  height: 100%;

  object-position: center bottom;
}

.content-message p:first-child {
  font-size: 20px;
}

.footer {
  padding: 0px 0px 50px;
}

.servizi .cta-section {
  padding: 90px 0 60px;
}

.media-video .cta-section {
  padding-top: 30px;
}

.dropdown-menu a {
  font-size: 20px;
}

.dropdown-menu {
  margin-top: 10px;
}

.coristi,
.musicisti {
  padding: 0px 20px;
}

.card-mobile {
  display: none;
}

@media (max-width: 991px) {
  #content > div.content-top.video-section > div.container {
    position: relative;
  }
  .timeline-item:first-of-type .timelineSwiper .swiper-slide {
    flex-direction: column;
  }

  .timeline-card .swiper-button-next,
  .timeline-card .swiper-button-prev {
    bottom: 0px;
    top: auto;
  }
  #content
    > div.content-top.video-section
    > div.container
    > div.banner-simple-text {
    min-height: auto !important;

    height: auto !important;

    position: absolute;

    width: 100%;

    border: 0px;

    bottom: 120px;
  }

  .contact-form {
    margin-bottom: 50px;
  }

  .card-mobile {
    display: block;
  }

  .card-mobile img {
    height: 300px !important;

    object-fit: cover;

    width: 100%;
  }

  .card-mobile .text {
    padding: 70px 0px;
  }

  .card-mobile .text h2 {
    font-size: 30px;

    font-family: "Playfair Display", Arial, Helvetica, sans-serif;

    font-weight: 400;

    color: #f7ce65;
  }

  #content
    > section.card-mobile
    > div:nth-child(3)
    > div.col-12.overflow-hidden
    > img {
    margin-bottom: -3px;
  }

  .footer-logo,
  .footer-links,
  .footer-contact {
    margin-bottom: 30px;

    text-align: center;
  }

  .social-links {
    justify-content: center;
  }

  .footer-contact ul li {
    justify-content: center;

    display: flex;

    flex-direction: column;

    margin-bottom: 20px;
  }

  #content
    > div.content-top.video-section
    > div.container
    > div.banner-simple-text
    > div {
    position: relative;
  }

  #content
    > div.content-top.video-section
    > div.container
    > div.banner-simple-text {
    padding-top: 0px;
  }

  #content > div.content-top.video-section > div.container {
    height: 100%;
  }

  #content
    > div.content-top.video-section
    > div.container
    > div.banner-simple-text
    > div
    > label
    > span {
    font-size: 35px;

    text-align: center !important;

    width: 100%;
  }

  #content
    > div.content-top.video-section
    > div.container
    > div.banner-simple-text
    > div
    > label {
    font-size: 20px;

    text-align: center !important;

    width: 100%;
  }

  .footer-links ul li a,
  .footer-contact ul li a {
    text-align: center;
  }

  #content > section.blank-text > div > div {
    top: auto;
  }

  section.blank-text {
    padding: 75px 0px 150px;
  }

  #content > section.wrap.location-section > div > h2 {
    font-size: 24px;

    line-height: 120%;
  }

  #content > section.wrap.location-section > img {
    object-position: center center;
    height: 500px;
  }

  #content > div.banner-grid-adv {
    display: none;
  }

  #content
    > div.about-section
    > div:nth-child(1)
    > div.row.justify-content-center
    > div.cta-events-list.my-5 {
    top: auto;

    bottom: 0px;
  }

  .text-special > label {
    text-align: start !important;
  }

  #footer
    > div
    > div
    > div.row.footer-top
    > div.col-12.col-md-4.footer-logo
    > p {
    padding-right: 0px;

    text-align: center;
  }

  #footer > div > div > div.row.footer-top > div.col-12.col-md-4.footer-logo {
    align-items: center;
  }

  #footer
    > div
    > div
    > div.row.footer-top
    > div.col-12.col-md-4.footer-links
    > ul,
  #footer
    > div
    > div
    > div.row.footer-top
    > div.col-12.col-md-4.footer-contact
    > ul {
    display: flex;

    flex-direction: column;

    align-items: center;
  }

  footer h4 {
    text-align: center;
  }

  .dropdown-parent:hover .dropdown-menu {
    display: none;
  }

  .blank-text p {
    font-size: 32px;
  }

  .blank-text p span {
    font-size: 39px;
  }

  .blank-text p.normal {
    font-size: 20px;

    padding: 0px;
  }
}

.tour {
  padding: 100px 0px;
}

.blank-text p span {
  text-decoration: underline;
}

.home-page .about-section:before {
  background-image: none;
}

/* TOUR 2025 – layout e UX della lista eventi */
.contatti.tour .content-section {
  padding-top: 2.5rem;
  padding-bottom: 3rem;
}

/* Contenitore generale delle date */
.contatti.tour .tour-dates {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Singolo evento */
.contatti.tour .tour-date {
  display: flex;
  flex-direction: column-reverse;
  gap: 0.5rem;
  padding: 10px 0px;
  border-bottom: 1px solid #333;
}

/* Colonna data/ora */
.contatti.tour .tour-date__meta {
  font-size: 0.9rem;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: flex;
  flex-wrap: wrap;
  row-gap: 0.25rem;
  column-gap: 0.75rem;
  flex-direction: column;
}

.contatti.tour h2,
.contatti.tour p {
  padding: 0px;
}
.contatti.tour .cta-events-list {
  position: relative;
}
/* Data e ora separati ma vicini */
.contatti.tour .tour-date__day,
.contatti.tour .tour-date__time {
  display: inline-flex;
  align-items: center;
}

/* Colonna contenuto (luogo + info) */
.contatti.tour .tour-date__content {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  align-items: start;
}
span.tour-date__day {
  font-weight: 600;
  text-transform: capitalize;
  font-size: 20px;
}

span.tour-date__time {
  font-weight: 600;
  margin-top: 3px;
}

.contatti.tour .tour-date__subtitle strong {
  font-size: 20px;
}

/* Luogo dell’evento */
.contatti.tour .tour-date__location {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.4;
  text-align: start;
  align-items: start;
}

/* Sottotitolo / ospiti ecc. */
.contatti.tour .tour-date__subtitle {
  margin: 0;
  font-size: 1rem;
  width: 35%;
  line-height: 1.2;
}

/* Blocco "more updates coming soon" */
.contatti.tour .tour-more-updates {
  text-align: start;
  font-size: 0.95rem;
  font-weight: 600;
  padding-left: 0px;
}

/* CTA PDF */
.contatti.tour .cta-events-list {
  margin-top: 0.75rem;
}

.tour-date__info {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
  width: 100%;
}

/* Rendiamo la lista ancora più leggibile su desktop */
@media (max-width: 768px) {
  .contatti.tour .tour-dates {
    gap: 1.75rem;
    padding: 0px 20px;
  }
  .tour-date__info {
    flex-direction: column;
    gap: 10px;
  }

  .contatti.tour .content-section {
    padding: 0px;
  }

  span.tour-date__day {
    font-weight: 600;
    text-transform: capitalize;
    font-size: 0.9rem;
  }
  .contatti.tour .tour-date__meta {
    justify-content: flex-start;
  }

  .contatti.tour .tour-date__content {
    align-items: flex-start;
  }
}

/* Layout generale 1/3 + 2/3 per la pagina Tour */
.contatti.tour .tour-layout {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 2rem;
}

/* Sidebar download locandina */
.contatti.tour .tour-sidebar {
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 0.75rem;
  width: 30%;
  padding-top: 0px;
}

.contatti.tour .tour-sidebar h3 {
  text-align: start;
  font-size: 20px;
  margin-top: 0px;
  font-family: "Playfair Display", Arial, Helvetica, sans-serif;
  font-weight: 600;
  font-size: 30px;
  color: #f7ce65;
  margin-bottom: 0px;
}

.contatti.tour .tour-sidebar p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
}

.contatti.tour .tour-sidebar a {
  color: #333;
}

.contatti.tour .cta-locandina {
  margin-top: 0.75rem;
}

.contatti.tour .cta-locandina .btn {
  width: 100%;
  text-align: center;
}

/* Colonna principale con il programma */
.contatti.tour .tour-main {
  display: flex;
  flex-direction: column;
  gap: 0px;
  width: 70%;
}

.contatti.tour i.bi {
  margin-right: 5px;
  font-size: 15px;
}

.contatti.tour h2,
.contatti.tour p {
  padding-left: 0px;
}

/* Da tablet/desktop: 1/3 (sidebar) + 2/3 (programma) */
@media (max-width: 764px) {
  .contatti.tour .tour-layout {
    flex-direction: column;
  }
  .contatti.tour .tour-main,
  .contatti.tour .tour-sidebar {
    width: 100%;
  }
  .contatti.tour .tour-sidebar {
    padding: 0px;
  }
  .contatti.tour .tour-date__subtitle {
    width: 100%;
  }

  .row.titles {
    padding: 0px 20px;
  }

  .contatti.tour .cta-events-list {
    margin-bottom: 20px;
    top: inherit;
    left: inherit;
    position: relative;
    transform: none;
    z-index: 1;
  }
  .contatti.tour .tour-layout {
    gap: 0px;
  }
}
