.button {
  width: calc(100% - 27px);
  box-sizing: border-box;
}
.button.short {
  width: auto;
}

.lista1 > li a {
  color: #666;
}

.lista1 > li a:hover {
  color: #f9b707;
}

.lista1 {
  border-bottom: 2px dotted #f9b707;
  width: 100%;
  max-width: 540px; /* come .custom-divider */
  margin: 0 auto 30px auto;
  display: block;
  overflow: hidden;
  padding-bottom: 8px; /* o quanto vuoi */
}

.custom-divider {
  border-top: 2px dotted #f9b707;
  width: 100%;
  max-width: 540px; /* o la larghezza che vuoi, tipo la somma delle colonne */
  margin: 0 auto 30px auto;
}

.list-marked,
.list-marked-primary {
  border: 0;
}

ul.list-marked.lista1 {
  padding-bottom: 8px;
  margin: 0 0 30px 0;
  max-width: 540px;
  width: 100%;
  display: block;
}

ul.lista1 {
  border-bottom: none;
  padding-bottom: 0;
}
ul.lista1 > li {
  color: #666;
  position: relative;
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0;
  margin-top: 3px;
}
ul.lista1 > li:after {
  content: "";
  display: block;
  border-bottom: 2px dotted #f9b707;
  margin-left: 0; /* allinea il bordo perfettamente dopo il pallino */
  margin-top: 3px;
}
ul.lista1 > li:last-child:after {
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}
section.section-sm ul.list-marked.lista1 {
  font-size: 15px;
}

.alt-version {
  font-size: 1.1rem;
  color: #666;
  margin-top: 18px;
  margin-bottom: 10px;
  letter-spacing: 0.01em;
}
.alt-version a {
  color: #f5a800;
  font-weight: bold;
  text-decoration: underline dotted;
  transition: color 0.2s;
}
.alt-version a:hover {
  color: #d48806;
  text-decoration: underline solid;
}

.badge {
  background: #f5a800;
  color: #fff;
  border-radius: 4px;
  padding: 2px 8px;
  font-size: 0.95em;
  margin-right: 2px;
}

.highlight-version {
  background: #fffbe7;
  border: 1px solid #ffe08a;
  border-radius: 6px;
  padding: 10px 16px 10px 12px;
  font-weight: 500;
  box-shadow: 0 2px 8px rgba(245, 168, 0, 0.07);
  display: inline-block;
}
.highlight-version i {
  color: #f5a800;
  margin-right: 7px;
  font-size: 1.1em;
  vertical-align: -2px;
}
.badge-shadow {
  box-shadow: 0 2px 6px rgba(245, 168, 0, 0.18);
}

@media (max-width: 767.98px) {
  .alt-version {
    font-size: 0.97rem;
  }
  .heading-3 img {
    vertical-align: middle;
    margin-right: 10px;
    width: 36px !important; /* più piccolo su mobile, opzionale */
    height: auto;
  }
  .icon-heading-flex {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.3em; /* opzionale, regola se vuoi */
  }
  .icon-heading-flex img {
    width: 36px !important;
    height: auto;
    margin: 0 !important;
    display: block;
  }
}

.tabella2-atg td {
  padding: 9px 3px;
}
.tabella2-atg a {
  color: #000 !important;
}
.tabella2-atg a:hover {
  color: #f9b707 !important;
}

.list-minus {
  text-align: left;
  border: 0;
}
.list-minus > li {
  position: relative;
  padding-left: 32px;
  color: #333;
  align-items: unset;
  display: block;
}
.list-minus > li::before {
  content: "<";
  position: absolute;
  top: 8px;
  left: 0;
  font-weight: 900;
  color: #f9b707;
  font-size: 1.7em;
  line-height: 1;
  height: auto;
  display: block;
  align-items: unset;
  transform: none;
}
@media (min-width: 768px) {
  .list-minus > li::before {
    top: 14px;
  }
}
.list-minus > li + li {
  margin-top: 8px;
}
.list-minus > li a,
.list-minus > li a:active,
.list-minus > li a:focus {
  color: #f9b707;
}
.list-minus > li a:hover {
  color: #000;
}

.slick-gallery {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.slick-gallery img {
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

.slick-track {
  margin: 0 auto;
}

@media (max-width: 767.98px) {
  .slick-gallery {
    padding-left: 10px;
    padding-right: 10px;
  }
}

.colore-unico-img-singolo {
  width: 100%;
  height: auto;
}

@media (max-width: 767.98px) {
  .colore-unico-img-singolo {
    width: 48px;
  }
}

/* Griglia blueprint raffinata */
.bg-grid {
  position: relative;
  background-color: #0d5c8b;
  overflow: hidden;
  padding: 40px 0 24px 0;
}

.bg-grid::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: linear-gradient(
      to right,
      rgba(255, 255, 255, 0.07) 1px,
      transparent 1px
    ),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.07) 1px, transparent 1px);
  background-size: 24px 24px;
  pointer-events: none;
}

.bg-grid > * {
  position: relative;
  z-index: 1;
}

.bg-grid-rounded {
  border-radius: 22px;
  border: 3px solid #fff;
  box-shadow: 0 8px 40px 0 rgba(0, 0, 0, 0.13);
  overflow: hidden;
}

/* Raggruppamento: .box-hero-yellow e .card-yellow */
.box-hero-yellow,
.card-yellow {
  background: #ffc107;
  border-radius: 18px;
  box-shadow: 0 4px 24px 0 rgba(0, 0, 0, 0.1);
  padding: 2.5rem 2rem;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 991.98px) {
  .bg-grid {
    padding: 18px 0 10px 0;
  }
  .bg-grid-rounded {
    border-radius: 10px;
    border-width: 2px;
  }
  .box-hero-yellow,
  .card-yellow {
    border-radius: 10px;
    padding: 1.2rem 0.7rem;
  }
  .box-hero-img {
    max-width: 95vw;
    max-height: 180px;
  }
  .box-hero-title {
    font-size: 2.1rem;
  }
  .img-blueprint-overlap {
    max-height: 180px;
    margin-top: 12px;
    margin-bottom: -24px;
  }
  .blueprint-content {
    padding-left: 0;
    padding-right: 0;
    flex-direction: column !important;
    text-align: center;
  }
  .img-blueprint-overlap.mt-n5 {
    margin-top: -18px !important;
  }
  .img-blueprint-absolute {
    max-height: 120px;
    bottom: -30px;
  }
  .card-yellow {
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

.img-blueprint-overlap {
  max-height: 260px;
  margin-top: 24px;
  margin-bottom: -48px;
  z-index: 2;
  position: relative;
}

.blueprint-content {
  min-height: 340px;
}
@media (min-width: 992px) {
  .blueprint-content {
    padding-left: 32px;
    padding-right: 32px;
  }
  .img-blueprint-overlap.mt-n5 {
    margin-top: -56px !important;
  }
}

.img-blueprint-absolute {
  position: absolute;
  left: 50%;
  bottom: -60px;
  transform: translateX(-50%);
  max-height: 220px;
  z-index: 3;
  pointer-events: none;
}

.img-blueprint-large {
  max-width: 520px;
  max-height: 320px;
}
@media (max-width: 991.98px) {
  .img-blueprint-large {
    max-width: 90vw;
    max-height: 140px;
  }
}

.box-hero {
  background: #0d5c8b;
  border-radius: 20px;
  margin: 30px 0 250px 0;
  padding: 20px 30px 20px 30px;
}
.box-hero:last-child {
  margin-bottom: 45px;
}
.box-hero-subtitle {
  font-size: 1.2rem;
  display: block;
  font-weight: 400;
  letter-spacing: 0.1em;
  opacity: 0.95;
  color: #fff;
  line-height: 1.1;
  margin-bottom: -0.3em;
}
.box-hero-title {
  font-size: 3.1rem;
  font-weight: 400;
  letter-spacing: -2px;
  line-height: 1.1;
  margin-bottom: 30px;
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 10px;
  text-transform: none;
}
.box-hero-text {
  color: #fff;
  font-size: 1.18rem;
  line-height: 1.45;
}
.box-hero-yellow-title {
  color: #111;
  font-size: 2.25rem;
  letter-spacing: 0;
  line-height: 1.1;
  font-weight: 700;
  display: inline-block;
  text-align: center;
  margin: 0 auto 0.5rem;
}
.box-hero-yellow-subtitle {
  color: #0d5c8b;
  font-size: 2rem;
  font-family: "Raleway", sans-serif;
  line-height: 1.1;
  text-decoration: underline;
  text-underline-offset: 4px;
  font-weight: bold;
  margin: 0 0 1.5rem;
  display: block;
  text-align: center;
}
.box-hero-yellow-list {
  font-size: 1.08em;
  list-style: none;
  padding-left: 0;
}
.box-hero-yellow-list > li {
  border-bottom: 1.5px solid #fff;
  padding-bottom: 10px;
}
.box-hero-yellow-list > li:last-child {
  border-bottom: none;
  margin-bottom: 0;
}
.box-hero-yellow-list b {
  font-size: 1.08em;
}
.box-hero-yellow-list ul {
  list-style: disc inside;
  color: #222;
  margin: 7px;
}
.box-hero-yellow-list ul li {
  border: none;
  padding: 0;
  margin: 0;
  color: #222;
  font-size: 1em;
}
.box-hero-img {
  max-width: 600px;
  margin: 0 auto 0 auto;
  display: block;
  position: relative;
  margin-bottom: -183px;
}

@media (max-width: 600px) {
  .box-hero {
    padding: 12px 2vw 0 2vw;
    border-radius: 12px;
    margin: 16px 0 60px 0;
  }
  .box-hero-subtitle {
    font-size: 1.1rem;
    margin-bottom: 0.2em;
    display: block;
  }
  .box-hero-title {
    font-size: 2.1rem;
    margin-bottom: 1.1em;
  }
  .box-hero-text {
    font-size: 0.98rem;
    line-height: 1.3;
    margin-bottom: 1.1em;
  }
  .box-hero-yellow {
    min-width: 0;
    max-width: 100%;
    width: 100%;
    padding: 1.2rem 1.1rem 1.2rem 1.1rem;
    border-radius: 12px;
    font-size: 0.98rem;
    box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.08);
    margin-top: 1.2rem;
    margin-bottom: 1.2rem;
  }
  .box-hero-yellow-title {
    font-size: 1.2rem;
    margin-bottom: 0.3rem;
  }
  .box-hero-yellow-subtitle {
    font-size: 1.1rem;
    margin: 0.5rem 0 1rem;
  }
  .box-hero-yellow-list {
    font-size: 0.98em;
    padding-left: 0.2em;
    padding-right: 0.2em;
  }
  .box-hero-yellow-list > li {
    border-bottom: 1px solid #ffe082;
    padding-bottom: 10px;
    margin-bottom: 10px;
  }
  .box-hero-yellow-list ul {
    margin: 7px 0 7px 0;
  }
  .box-hero-yellow-list ul li {
    font-size: 0.97em;
  }
  .box-hero-yellow-list > li > b {
    font-size: .97rem;
  }
  .box-hero-yellow-list > li > b > span {
    font-size: 1.3rem !important;
  }
  .box-hero-img {
    width: 100%;
    height: auto;
    max-width: 100vw;
    margin: 15px 0 32px 0;
    display: block;
    max-height: none;
    object-fit: unset;
  }
}

.linea-sicurezza.box-hero {
  background: #a70e13 !important;
}
.linea-sicurezza .box-hero-title,
.linea-sicurezza .box-hero-subtitle,
.linea-sicurezza .box-hero-text {
  color: #fff !important;
}
.linea-sicurezza .box-hero-yellow {
  /* Rimuovo override: eredita da .box-hero-yellow globale */
}
.linea-sicurezza .box-hero-yellow-title {
  /* Rimuovo override: eredita da .box-hero-yellow-title globale */
}
.linea-sicurezza .box-hero-yellow-subtitle {
  color: #a70e13 !important;
  /* Tutto il resto eredita */
}

.linea-sicurezza .box-hero-yellow-list > li:last-child {
  border-bottom: none !important;
}
.linea-sicurezza .box-hero-yellow-list ul li {
  color: #111 !important;
}
.linea-sicurezza .antislip-img {
  display: block;
  margin: 0 auto 0 0;
  max-width: 120px;
  height: auto;
  vertical-align: middle;
}
/* Titolo R13 e sottotitolo arancione (da inserire nell'HTML se serve) */
.linea-sicurezza .r13-title {
  color: #ffd600;
  font-size: 3.5rem;
  font-weight: 900;
  line-height: 1.1;
}
.linea-sicurezza .r13-sub {
  color: #f9b707;
  font-size: 1.2rem;
  font-weight: 700;
}

.linea-ufficio.box-hero {
  background: #eb6a33 !important;
}
.linea-ufficio .box-hero-yellow-subtitle {
  color: #eb6a33 !important;
  /* Tutto il resto eredita */
}

.intro-linee {
  margin: 45px 0;
}

.intro-img {
  margin-bottom: 10px;
}

/* Box padding per lasciare spazio al cerchio */
.intro-box {
  position: relative;
  padding-top: 30px;
  text-align: center;
}

/* Titoli */
.intro-title {
  font-size: 1.35rem;
  font-weight: bold;
  text-transform: uppercase;
  margin-top: 20px;
  margin-bottom: 10px;
}
.intro-title-1,
.intro-title-2 {
  color: #0071b9;
}
.intro-title-3 {
  color: #a10e1a;
}
.intro-title-4 {
  color: #f47c20;
}

/* Link stile "VEDI LINEA >" */
.intro-link {
  display: inline-block;
  margin-top: 10px;
  font-weight: 600;
  margin-top: 30px;
  text-transform: uppercase;
  font-size: 1.1rem;
  text-decoration: none;
  position: relative;
  padding-bottom: 4px;
}
.intro-link-1,
.intro-link-2 {
  color: #0071b9;
}
.intro-link-3 {
  color: #a10e1a;
}
.intro-link-4 {
  color: #f47c20;
}
.intro-link-1::after,
.intro-link-2::after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background: #0071b9;
  margin-top: 2px;
}
.intro-link-3::after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background: #a10e1a;
  margin-top: 2px;
}
.intro-link-4::after {
  content: "";
  display: block;
  width: 100%;
  height: 4px;
  background: #f47c20;
  margin-top: 2px;
}

/* Responsive fix se serve */
@media (max-width: 767px) {
  .intro-num {
    width: 50px;
    height: 50px;
    font-size: 1.5rem;
    margin-bottom: -25px;
  }
  .intro-title {
    font-size: 1.1rem;
  }
}

.titolo-azienda-4ready {
  color: #fdc401 !important;
  font-size: 2.5rem;
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1.1;
  margin: 30px 0 -25px 0;
  letter-spacing: 0.01em;
  position: relative;
  display: block;
}
@media (max-width: 767.98px) {
  .titolo-azienda-4ready {
    font-size: 1.3rem;
    margin: 22px 0 12px 0;
  }
}

.sfogliabili-cataloghi {
  background: #fff3d6;
  border-radius: 32px;
  border: 2px solid #ffe6a1;
  box-shadow: 0 2px 16px 0 rgba(0, 0, 0, 0.04);
  padding: 15px;
  margin: 0 auto 32px 50px;
  max-width: 1320px;
}
.sfogliabili-cataloghi .catalogo-header {
  border-bottom: 3px dotted #222;
  display: flex;
  align-items: center;
  gap: 28px;
  margin-bottom: 18px;
  padding-bottom: 10px;
}
.sfogliabili-cataloghi .catalogo-icona {
  width: 50px;
  min-width: 50px;
}
.sfogliabili-cataloghi .catalogo-titolo {
  flex: 1;
  text-align: left;
}
.sfogliabili-cataloghi .catalogo-titolo h2 {
  font-size: 1.9rem;
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 700;
  letter-spacing: 0px;
  color: #111;
  margin-top: 0;
  line-height: 1.1;
}
.sfogliabili-cataloghi .catalogo-titolo .catalogo-divider {
  border-bottom: 3px dotted #222;
  width: 100%;
  max-width: 480px;
  margin: 0.5em 0 0 0;
}
.sfogliabili-cataloghi .catalogo-row {
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  gap: 10px;
  margin: 15px 0;
  flex-wrap: nowrap;
}
.sfogliabili-cataloghi .catalogo-col {
  display: flex;
  flex-direction: row;
  align-items: center;
  min-width: 0;
  max-width: 100%;
  flex: 1 1 0;
  gap: 10px;
}
.sfogliabili-cataloghi .catalogo-img {
  width: 70px;
  height: auto;
  border-radius: 0;
  box-shadow: none;
  margin-bottom: 0;
  background: none;
  flex-shrink: 0;
}
.sfogliabili-cataloghi .catalogo-testo-bold {
  font-size: .9rem;
  color: #222;
  text-align: left;
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 400;
  line-height: 1.18;
}
.sfogliabili-cataloghi .catalogo-testo-bold strong {
  display: block;
  font-size: .8rem;
  font-weight: 700;
  color: #111;
  margin-top: 2px;
  line-height: 1.18;
  letter-spacing: 0px;
}
.sfogliabili-cataloghi .catalogo-testo-normal {
  font-size: .8rem;
  color: #222;
  text-align: left;
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 400;
  line-height: 1.18;
}
.sfogliabili-cataloghi .catalogo-sfoglia {
  display: block;
  color: #009836;
  margin-top: 10px;
  text-decoration: underline dotted;
  text-underline-position: under;
  transition: color 0.2s;
}
.sfogliabili-cataloghi .catalogo-col > a {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 5px;
  text-decoration: none;
  color: inherit;
  width: 100%;
}
.sfogliabili-cataloghi .catalogo-col > a:hover {
  color: inherit;
}
@media (max-width: 900px) {
  .sfogliabili-cataloghi {
    margin: 0 auto 32px 0;
  }
  .sfogliabili-cataloghi .catalogo-row {
    flex-direction: column;
    gap: 18px;
    margin-top: 18px;
  }
  .sfogliabili-cataloghi .catalogo-col {
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
  }
  .sfogliabili-cataloghi .catalogo-img {
    width: 70px;
  }
}

/* Link nei box gialli: neri, senza sottolineatura, hover più chiaro */
.box-hero-yellow a {
  color: #111;
  text-decoration: none;
  transition: color 0.18s;
}
.box-hero-yellow a:hover,
.box-hero-yellow a:focus,
.box-hero-yellow a:active {
  color: #444;
  text-decoration: none;
}

/* Link nei sottotitoli gialli: colore originale, hover più chiaro, no sottolineatura - forzato */
.box-hero-yellow-subtitle a {
  color: #0d5c8b !important;
  text-decoration: none !important;
  transition: color 0.18s;
}
.linea-sicurezza .box-hero-yellow-subtitle a {
  color: #a70e13 !important;
}
.linea-ufficio .box-hero-yellow-subtitle a {
  color: #eb6a33 !important;
}
.box-hero-yellow-subtitle a:hover,
.box-hero-yellow-subtitle a:focus,
.box-hero-yellow-subtitle a:active {
  color: #3a7fc4 !important;
  text-decoration: none !important;
}
.linea-sicurezza .box-hero-yellow-subtitle a:hover,
.linea-sicurezza .box-hero-yellow-subtitle a:focus,
.linea-sicurezza .box-hero-yellow-subtitle a:active {
  color: #d13a4a !important;
}
.linea-ufficio .box-hero-yellow-subtitle a:hover,
.linea-ufficio .box-hero-yellow-subtitle a:focus,
.linea-ufficio .box-hero-yellow-subtitle a:active {
  color: #ff9a5c !important;
}

.post-img-uniform {
  width: 418px;
  height: 315px;
  object-fit: cover;
  display: block;
  margin: 0 auto 15px auto;
}
.section-xs .post-classic iframe {
  width: 418px !important;
  height: 315px !important;
  display: block;
  margin: 0 auto 15px auto;
}

/* Slider Swiper 9+ home */
.slider-home .swiper {
  width: 100vw;
  height: 100vh;
  position: relative;
}
.slider-home .swiper-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  min-height: 400px;
}
.slider-home .slide-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}
.slider-home .slide-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.slider-home .slide-overlay {
  position: absolute;
  inset: 0;
  /*background: linear-gradient(180deg,rgba(0,0,0,0.55) 0%,rgba(0,0,0,0.75) 100%);*/
  z-index: 2;
}
.slider-home .swiper-slide-caption {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(53, 53, 52, 0.3);
  border-radius: 22px;
  margin: 0 auto;
  box-shadow: 0 4px 32px rgba(0,0,0,0.10);
  padding: 2rem 2.2rem;
  max-width: 600px;
  max-height: 100px;
  color: #fff;
  text-align: center;
  position: relative;
  z-index: 3;
  opacity: 0;
  pointer-events: none;
  transition: none;
}
.slider-home .swiper-slide-caption .container,
.slider-home .swiper-slide-caption .row,
.slider-home .swiper-slide-caption .col-lg-10 {
  all: unset;
  display: contents;
}
.slider-home .swiper-slide-caption h1,
.slider-home .swiper-slide-caption h4,
.slider-home .swiper-slide-caption a.button {
  margin: 0 0 1.1rem 0;
  display: block;
}
.slider-home .swiper-slide-caption h1 {
  color: #fbc100;
  position: relative;
  font-size: 2.1rem;
  font-weight: 700;
  text-shadow:
    0 2px 0 #000, /* bordo nero netto */
    0 4px 8px #000, /* ombra corta e netta */
    0 1px 0 #fff, /* leggero bordo chiaro */
    0 0 2px #000; /* ombra di profondità */
  margin-bottom: 0.7rem;
  letter-spacing: -0.02em;
}
.slider-home .swiper-slide-caption h1::before {
  content: "";
  display: block;
  width: 50%;
  height: 3px;
  background: #009836;
  margin: 0 auto 1.2rem auto;
  border-radius: 2px;
}
.slider-home .swiper-slide-caption h4 {
  color: #fff;
  font-size: 1.1rem;
  font-weight: 400;
  margin-bottom: 1.5rem;
  text-shadow: 0 4px 24px rgba(0,0,0,0.85), 0 1px 0 #000, 0 0 2px #000;
}
.slider-home .swiper-slide-caption a.button {
  font-size: 1.1rem;
  padding: 0.55rem 1.7rem;
  border-radius: 2rem;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  margin: 0 auto;
  display: inline-block;
}
.slider-home .swiper-pagination {
  bottom: 40px !important;
  left: 0;
  width: 100%;
  text-align: center;
  z-index: 10;
}
.slider-home .swiper-pagination-bullet {
  width: 16px;
  height: 16px;
  background: rgba(255,255,255,0.7);
  opacity: 1;
  border-radius: 50%;
  margin: 0 6px;
  transition: background 0.2s, transform 0.2s;
  border: 2px solid #fff;
}
.slider-home .swiper-pagination-bullet-active {
  background: #e60004;
  transform: scale(1.2);
  border-color: #e60004;
}
.slider-home .swiper-button-next,
.slider-home .swiper-button-prev {
  color: #222;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,0.82);
  border: 1.5px solid #ffd600;
  box-shadow: 0 2px 8px rgba(0,0,0,0.10);
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  transition: background 0.2s, color 0.2s, border 0.2s;
  font-size: 1.7rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.slider-home .swiper-button-next:after,
.slider-home .swiper-button-prev:after {
  color: #222;
  font-weight: bold;
  font-size: 1.7rem;
}
.slider-home .swiper-button-next:hover,
.slider-home .swiper-button-prev:hover {
  background: #ffd600;
  color: #111;
  border-color: #222;
}
.slider-home .swiper-button-next {
  right: var(--swiper-navigation-sides-offset,20px);
}
@media (max-width: 991px) {
  .slider-home .swiper-slide-caption {
    padding: 1.1rem 0.7rem;
    max-width: 98vw;
    border-radius: 14px;
  }
  .slider-home .swiper-slide-caption h1 { font-size: 1.3rem; }
  .slider-home .swiper-slide-caption h4 { font-size: 0.95rem; }
}
@media (max-width: 600px) {
  .slider-home .swiper-slide-caption h1 { font-size: 1.3rem; }
  .slider-home .swiper-slide-caption h4 { font-size: 0.95rem; }
  .slider-home .swiper-button-next, .slider-home .swiper-button-prev { width: 36px; height: 36px; }
}
@media (max-width: 700px) {
  .slider-home .swiper-slide-caption {
    padding: 1.1rem 0.7rem;
    max-width: 98vw;
  }
  .slider-home .swiper-button-next,
  .slider-home .swiper-button-prev {
    display: none !important;
  }
  .slider-home .swiper-pagination-bullet {
    width: 18px;
    height: 18px;
    background: #fff;
    border: 2.5px solid #222;
    margin: 0 7px;
    opacity: 1;
  }
  .slider-home .swiper-pagination-bullet-active {
    background: #ffd600;
    border-color: #ffd600;
    box-shadow: 0 0 0 2px #222;
  }
  .slider-home .swiper-pagination {
    position: static !important;
    margin-top: 1.2rem;
    margin-bottom: 0;
    text-align: center;
    width: 100%;
    z-index: 11;
  }
}

/* Parallax Swiper (già Swiper gestisce, ma puoi forzare transizioni se vuoi) */
.slider-home .parallax-img {
  will-change: transform;
}

/* Ken Burns effect potenziato */
.slider-home .kenburns {
  animation: kenburns-strong 6s ease-in-out infinite alternate;
}
@keyframes kenburns-strong {
  0% { transform: scale(1) translate(0,0); }
  100% { transform: scale(1.18) translate(-18px, -18px); }
}
@media (max-width: 700px) {
  .slider-home .kenburns {
    animation: kenburns-strong 7s ease-in-out infinite alternate;
  }
}

/* Coverflow: Swiper gestisce, ma puoi aggiungere ombre o 3D extra se vuoi */
.coverflow-slide .slide-bg img {
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  border-radius: 12px;
}

/* Blur dinamico: blur solo se non attiva (JS lo gestirà, ma base qui) */
.blur-slide .blur-bg {
  filter: blur(0.5px);
  transition: filter 0.5s;
}
.blur-slide.swiper-slide:not(.swiper-slide-active) .blur-bg {
  filter: blur(7px) brightness(0.8);
}

/* Overlay animato (gradient shift) */
.animated-gradient {
  background: linear-gradient(120deg, #fbc100 0%, #ffd600 100%, #fffbe7 200%);
  background-size: 200% 200%;
  animation: gradientMove 5s ease-in-out infinite alternate;
  opacity: 0.85;
}
@keyframes gradientMove {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

/* Glitch text */
.glitch-text {
  position: relative;
  color: #fff;
  text-shadow: 2px 0 #fbc100, -2px 0 #009836, 0 2px #fff, 0 -2px #ffd600;
  animation: glitch 1.2s infinite linear alternate-reverse;
}
@keyframes glitch {
  0% { transform: translate(0,0); }
  20% { transform: translate(-2px,1px); }
  40% { transform: translate(-1px,-2px); }
  60% { transform: translate(2px,1px); }
  80% { transform: translate(1px,-1px); }
  100% { transform: translate(0,0); }
}

/* Neon text */
.neon-text {
  color: #fffbe7;
  text-shadow: 0 0 8px #fbc100, 0 0 24px #ffd600, 0 0 2px #fff;
  animation: neon-flicker 2.2s infinite alternate;
}
@keyframes neon-flicker {
  0%, 19%, 21%, 23%, 25%, 54%, 56%, 100% {
    opacity: 1;
    text-shadow: 0 0 8px #fbc100, 0 0 24px #ffd600, 0 0 2px #fff;
  }
  20%, 22%, 55% {
    opacity: 0.7;
    text-shadow: 0 0 2px #fbc100, 0 0 8px #ffd600, 0 0 1px #fff;
  }
}

/* Animazioni comparsa caption slider */
.slider-home .swiper-slide-caption {
  opacity: 0;
  pointer-events: none;
  transition: none;
}
.slider-home .swiper-slide-active .swiper-slide-caption.is-animating {
  opacity: 1;
  pointer-events: auto;
}

/* Slide in from top */
.slider-home .slide-anim-top .swiper-slide-caption.is-animating {
  animation: slideInTop 0.85s cubic-bezier(.77,.01,.29,.99) 0.1s both;
}
@keyframes slideInTop {
  0% { opacity: 0; transform: translateY(-60px) scale(0.98); }
  100% { opacity: 1; transform: none; }
}

/* Slide in from right */
.slider-home .slide-anim-right .swiper-slide-caption.is-animating {
  animation: slideInRight 0.85s cubic-bezier(.77,.01,.29,.99) 0.1s both;
}
@keyframes slideInRight {
  0% { opacity: 0; transform: translateX(80px) scale(0.98); }
  100% { opacity: 1; transform: none; }
}

/* Slide in from left */
.slider-home .slide-anim-left .swiper-slide-caption.is-animating {
  animation: slideInLeft 0.85s cubic-bezier(.77,.01,.29,.99) 0.1s both;
}
@keyframes slideInLeft {
  0% { opacity: 0; transform: translateX(-80px) scale(0.98); }
  100% { opacity: 1; transform: none; }
}

/* Slide in from bottom */
.slider-home .slide-anim-bottom .swiper-slide-caption.is-animating {
  animation: slideInBottom 0.85s cubic-bezier(.77,.01,.29,.99) 0.1s both;
}
@keyframes slideInBottom {
  0% { opacity: 0; transform: translateY(60px) scale(0.98); }
  100% { opacity: 1; transform: none; }
}

/* Fade in */
.slider-home .slide-anim-fade .swiper-slide-caption.is-animating {
  animation: fadeInBlock 0.85s cubic-bezier(.77,.01,.29,.99) 0.1s both;
}
@keyframes fadeInBlock {
  0% { opacity: 0; transform: scale(0.98); }
  100% { opacity: 1; transform: none; }
}

/* Zoom in */
.slider-home .slide-anim-zoom .swiper-slide-caption.is-animating {
  animation: zoomInBlock 0.85s cubic-bezier(.77,.01,.29,.99) 0.1s both;
}
@keyframes zoomInBlock {
  0% { opacity: 0; transform: scale(0.7); }
  100% { opacity: 1; transform: none; }
}

/* Rotate in */
.slider-home .slide-anim-rotate .swiper-slide-caption.is-animating {
  animation: rotateInBlock 0.85s cubic-bezier(.77,.01,.29,.99) 0.1s both;
}
@keyframes rotateInBlock {
  0% { opacity: 0; transform: rotateX(60deg) scale(0.92); }
  100% { opacity: 1; transform: none; }
}

/* Flip in (effetto più elastico e shadow animata) - ora per tutte le slide Swiper */
.slider-home .swiper-slide-caption.is-animating {
  animation: flipInYSlider 1.05s cubic-bezier(.68,-0.55,.27,1.55) 0.05s both;
  backface-visibility: visible;
  perspective: 900px;
  box-shadow: 0 0 0 rgba(0,0,0,0.18);
}
@keyframes flipInYSlider {
  0% {
    opacity: 0;
    transform: rotateY(90deg) scale(0.92) translateY(40px);
    box-shadow: 0 32px 48px rgba(0,0,0,0.18);
  }
  60% {
    opacity: 1;
    transform: rotateY(-12deg) scale(1.04) translateY(-8px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.10);
  }
  80% {
    transform: rotateY(6deg) scale(0.98) translateY(2px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  }
  100% {
    opacity: 1;
    transform: none;
    box-shadow: 0 4px 32px rgba(0,0,0,0.10);
  }
}
/* Disattivo tutte le altre animazioni di entrata caption Swiper */
.slider-home .slide-anim-top .swiper-slide-caption.is-animating,
.slider-home .slide-anim-blur .swiper-slide-caption.is-animating,
.slider-home .slide-anim-bottom .swiper-slide-caption.is-animating,
.slider-home .slide-anim-fade .swiper-slide-caption.is-animating,
.slider-home .slide-anim-zoom .swiper-slide-caption.is-animating,
.slider-home .slide-anim-rotate .swiper-slide-caption.is-animating {
  animation: none !important;
}

/* Blur in (zoom, blur, fade, movimento verticale) */
.slider-home .slide-anim-blur .swiper-slide-caption.is-animating {
  animation: blurZoomDream 1.05s cubic-bezier(.77,.01,.29,.99) 0.08s both;
  filter: blur(0);
}
@keyframes blurZoomDream {
  0% {
    opacity: 0;
    filter: blur(32px);
    transform: scale(1.25) translateY(60px);
  }
  50% {
    opacity: 0.7;
    filter: blur(8px);
    transform: scale(1.08) translateY(-10px);
  }
  80% {
    opacity: 1;
    filter: blur(2px);
    transform: scale(1.01) translateY(2px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: none;
  }
}

/* --- Effetti dinamici Swiper avanzati (versione delicata e più lenta) --- */
.img-parallax {
  animation: imgParallaxMove 16s ease-in-out infinite alternate;
  filter: brightness(1.08) contrast(1.08);
}
@keyframes imgParallaxMove {
  0% { transform: scale(1.01) translateY(-8px); }
  100% { transform: scale(1.04) translateY(18px); }
}
.img-rotate {
  animation: imgRotateOsc 18s cubic-bezier(.77,.01,.29,.99) infinite alternate;
  filter: sepia(0.18) brightness(1.04);
}
@keyframes imgRotateOsc {
  0% { transform: rotate(-1.2deg) scale(1.01); }
  100% { transform: rotate(2.2deg) scale(1.04); }
}
.img-blur {
  animation: imgBlurAnim 14s ease-in-out infinite alternate;
  filter: blur(0.5px) contrast(1.12);
}
@keyframes imgBlurAnim {
  0% { filter: blur(0.5px) contrast(1.12); }
  100% { filter: blur(3.5px) contrast(1.18); }
}
.img-zoom {
  animation: imgZoomAnim 18s ease-in-out infinite alternate;
  filter: grayscale(0.12) brightness(1.06);
}
@keyframes imgZoomAnim {
  0% { transform: scale(1.01); }
  100% { transform: scale(1.08); }
}
.img-float {
  animation: imgFloatAnim 12s cubic-bezier(.77,.01,.29,.99) infinite alternate;
  filter: brightness(1.13) saturate(1.08);
}
@keyframes imgFloatAnim {
  0% { transform: translateY(0); }
  100% { transform: translateY(-12px); }
}
.img-sepia {
  filter: sepia(0.35) brightness(1.08);
}
.img-contrast {
  filter: contrast(1.22) brightness(1.04);
}
.img-grayscale {
  filter: grayscale(0.7) brightness(1.1);
}
.overlay-gradient {
  background: linear-gradient(120deg, #fbc100 0%, #ffd600 100%, #fffbe7 200%) !important;
  background-size: 200% 200%;
  animation: gradientMove 12s ease-in-out infinite alternate;
  opacity: 0.68;
}
.overlay-animated {
  background: radial-gradient(ellipse at 60% 40%, #fffbe7 0%, #ffd600 60%, #fbc100 100%) !important;
  animation: overlayGlow 9s ease-in-out infinite alternate;
  opacity: 0.5;
}
@keyframes overlayGlow {
  0% { filter: blur(0px) brightness(1.03); }
  100% { filter: blur(6px) brightness(1.10); }
}
.overlay-noise {
  background: repeating-linear-gradient(135deg, #fffbe7 0 2px, #ffd600 2px 4px, #fbc100 4px 6px, transparent 6px 12px) !important;
  opacity: 0.10;
  animation: overlayNoiseAnim 2.2s steps(8) infinite;
}
@keyframes overlayNoiseAnim {
  0% { background-position: 0 0; }
  100% { background-position: 40px 60px; }
}
.float-text {
  animation: floatTextAnim 4.2s ease-in-out infinite alternate;
}
@keyframes floatTextAnim {
  0% { transform: translateY(0); }
  100% { transform: translateY(-7px); }
}
.fade-text {
  animation: fadeTextAnim 5.5s ease-in-out infinite alternate;
}
@keyframes fadeTextAnim {
  0% { opacity: 1; }
  100% { opacity: 0.82; }
}
.anim-h4-delay { opacity: 0; transition: opacity 0.5s 0.38s; }
.anim-h4-delay.is-animating { opacity: 1; }
.anim-btn-delay { opacity: 0; transition: opacity 0.5s 0.68s; }
.anim-btn-delay.is-animating { opacity: 1; }

/* --- Overlay SVG/PNG unici per slide Swiper --- */
.overlay-svg-wave {
  background: url('/_img/slider/overlay-wave.svg') repeat-x bottom left/cover, linear-gradient(180deg,rgba(0,0,0,0.08) 0%,rgba(0,0,0,0.18) 100%);
  mix-blend-mode: screen;
  opacity: 0.7;
}
.overlay-svg-pois {
  background: url('/_img/slider/overlay-pois.svg') repeat top left/cover, linear-gradient(180deg,rgba(0,0,0,0.10) 0%,rgba(0,0,0,0.22) 100%);
  mix-blend-mode: multiply;
  opacity: 0.5;
}
.overlay-svg-lines {
  background: url('/_img/slider/overlay-lines.svg') repeat top left/cover, linear-gradient(180deg,rgba(0,0,0,0.10) 0%,rgba(0,0,0,0.22) 100%);
  mix-blend-mode: overlay;
  opacity: 0.5;
}
.overlay-svg-paper {
  background: url('/_img/slider/overlay-paper.png') repeat top left/cover, linear-gradient(180deg,rgba(0,0,0,0.10) 0%,rgba(0,0,0,0.22) 100%);
  mix-blend-mode: lighten;
  opacity: 0.4;
}
.overlay-svg-radial {
  background: radial-gradient(circle at 60% 40%, #fffbe7 0%, #ffd600 60%, #fbc100 100%);
  mix-blend-mode: color-burn;
  opacity: 0.5;
}
.overlay-svg-particles {
  background: url('/_img/slider/overlay-particles.svg') repeat top left/cover, linear-gradient(180deg,rgba(0,0,0,0.10) 0%,rgba(0,0,0,0.22) 100%);
  mix-blend-mode: screen;
  opacity: 0.5;
}
.overlay-svg-glow {
  background: radial-gradient(circle at 50% 50%, #fffbe7 0%, #ffd600 60%, #fbc100 100%);
  mix-blend-mode: lighten;
  opacity: 0.7;
}

/* --- Filtri colore estremi e blend mode per img --- */
.img-hue {
  filter: hue-rotate(180deg) brightness(1.1) saturate(1.2);
}
.img-invert {
  filter: invert(1) brightness(1.1);
}
.img-saturate {
  filter: saturate(2.5) brightness(1.1);
}
.img-poster {
  filter: contrast(2.2) brightness(1.1) grayscale(0.2);
}
.img-bright {
  filter: brightness(1.5) contrast(1.1);
}
.img-blend-multiply {
  mix-blend-mode: multiply;
}
.img-blend-overlay {
  mix-blend-mode: overlay;
}
.img-blend-colorburn {
  mix-blend-mode: color-burn;
}

/* --- Effetti testo avanzati --- */
.outline-text {
  color: transparent !important;
  -webkit-text-stroke: 2px #ffd600;
  text-stroke: 2px #ffd600;
  text-shadow: none !important;
}
.wave-text {
  display: inline-block;
  animation: waveTextAnim 2.2s infinite linear alternate;
}
@keyframes waveTextAnim {
  0% { transform: skewY(0deg); }
  20% { transform: skewY(4deg); }
  40% { transform: skewY(-4deg); }
  60% { transform: skewY(2deg); }
  80% { transform: skewY(-2deg); }
  100% { transform: skewY(0deg); }
}
.typewriter-text {
  overflow: hidden;
  border-right: 2px solid #ffd600;
  white-space: nowrap;
  animation: typewriterAnim 2.8s steps(18) 1 both, blinkCaret 0.7s step-end infinite;
}
@keyframes typewriterAnim {
  from { width: 0; }
  to { width: 100%; }
}
@keyframes blinkCaret {
  0%, 100% { border-color: transparent; }
  50% { border-color: #ffd600; }
}
.split-text span {
  display: inline-block;
  opacity: 0;
  transform: translateY(30px);
  animation: splitTextAnim 0.7s cubic-bezier(.77,.01,.29,.99) forwards;
}
.split-text span.is-animating {
  opacity: 1;
  transform: none;
}

/* --- Animazioni di entrata caption diverse per slide --- */
.slide-anim-top .swiper-slide-caption.is-animating { animation: slideInTop 1.2s cubic-bezier(.77,.01,.29,.99) 0.1s both; }
.slide-anim-flip .swiper-slide-caption.is-animating { animation: flipInYSlider 1.3s cubic-bezier(.68,-0.55,.27,1.55) 0.1s both; }
.slide-anim-blur .swiper-slide-caption.is-animating { animation: blurZoomDream 1.3s cubic-bezier(.77,.01,.29,.99) 0.1s both; }
.slide-anim-bottom .swiper-slide-caption.is-animating { animation: slideInBottom 1.2s cubic-bezier(.77,.01,.29,.99) 0.1s both; }
.slide-anim-fade .swiper-slide-caption.is-animating { animation: fadeInBlock 1.2s cubic-bezier(.77,.01,.29,.99) 0.1s both; }
.slide-anim-zoom .swiper-slide-caption.is-animating { animation: zoomInBlock 1.2s cubic-bezier(.77,.01,.29,.99) 0.1s both; }
.slide-anim-rotate .swiper-slide-caption.is-animating { animation: rotateInBlock 1.2s cubic-bezier(.77,.01,.29,.99) 0.1s both; }

.slider-home .swiper-slide-caption h1.split-text span.is-animating:not(:last-child) {
  margin-right: 0.08em;
}
.slider-home .swiper-slide-caption h1.split-text span.is-animating:last-child {
  margin-right: 0.18em;
}
.slider-home .swiper-slide-caption h1.split-text span.is-animating.space {
  margin-right: 0.38em !important;
}

/* Accordion custom SL - spaziatura minima */
.accordion {
  font-size: 16px !important;
}
.accordion .card-header {
  margin-bottom: 0;
  padding: 0;
  border: none;
  background: none;
}

.accordion .btn-link,
.accordion .accordion-toggle-custom {
  color: #333;
  text-decoration: none;
  text-align: left;
  padding: 0.02rem 0 0.02rem 0;
  margin: 0;
  display: inline-flex;
  align-items: center;
  border: none;
  background: none;
  box-shadow: none;
  line-height: 1.1;
  transition: color 0.3s;
}

.accordion .btn-link:focus {
  outline: none;
  box-shadow: none;
}

.accordion .card {
  border: none;
  margin-bottom: 0;
  background: none;
}

.accordion .card-body {
  padding: 0.05rem 0 0 20px;
  margin: 0;
}

.accordion .collapse.show {
  margin-top: 0;
}

.accordion-icon {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 6px 0 6px 10px;
  border-color: transparent transparent transparent #333;
  margin: 0 7px;
  transition: transform 0.3s, border-color 0.3s;
  display: inline-block;
  vertical-align: middle;
}

/* Accordion aperto: cambia colore testo e triangolo, ruota il triangolo */
.accordion .btn-link[aria-expanded="true"],
.accordion .accordion-toggle-custom[aria-expanded="true"] {
  color: #fbc100;
}

.accordion .btn-link[aria-expanded="true"] .accordion-icon,
.accordion .accordion-toggle-custom[aria-expanded="true"] .accordion-icon {
  transform: rotate(90deg);
  border-color: transparent transparent transparent #fbc100;
}

/* Spaziatura verticale tra accordion: solo tra i blocchi, mai sopra nessuno */
#colorAccordion1 {
  margin-top: -3px;
  margin-bottom: 5px;
}
#colorAccordion2 {margin-bottom: 20px}

/* Spazio strong nelle intestazioni accordion */
.accordion .btn-link strong,
.accordion .accordion-toggle-custom strong {
  margin: 0 0.25em;
}
