/* MSW Articles Slider 1.1.2 — motore invariato dalla base stabile 1.0.8 */
.mswas {
  --mswas-gap: 20px;
  --mswas-speed: 700ms;
  --mswas-radius: 8px;
  --mswas-ratio: 1 / 1;
  --mswas-overlay-rgb: 17,17,17;
  --mswas-overlay-opacity: .82;
  --mswas-accent: #ba372a;
  --mswas-title: #222;
  --mswas-overlay-text: #fff;
  --mswas-card-bg: #fff;
  --mswas-per-view: 1;
  position: relative;
  width: 100%;
  box-sizing: border-box;
  padding-inline: 42px;
  opacity: 0;
  transition: opacity .25s ease;
}

.mswas.is-ready, .mswas.mswas--fallback { opacity: 1; }
.mswas.mswas--fallback .mswas__viewport { overflow-x: auto; scroll-snap-type: x mandatory; }
.mswas.mswas--fallback .mswas__slide { scroll-snap-align: start; }
.mswas *, .mswas *::before, .mswas *::after { box-sizing: border-box; }
.mswas__viewport { overflow: hidden; width: 100%; outline: none; touch-action: pan-y pinch-zoom; }
.mswas__viewport:focus-visible { outline: 2px solid var(--mswas-accent); outline-offset: 4px; }
.mswas__track {
  display: flex;
  align-items: stretch;
  gap: var(--mswas-gap);
  will-change: transform;
  transition-property: transform;
  transition-duration: var(--mswas-speed);
  transition-timing-function: cubic-bezier(.22,.61,.36,1);
}
.mswas__slide { flex: 0 0 calc((100% - (var(--mswas-per-view) - 1) * var(--mswas-gap)) / var(--mswas-per-view)); min-width: 0; height: auto; }
.mswas--equal-height .mswas__slide, .mswas--equal-height .mswas-card, .mswas--equal-height .mswas-card__shell, .mswas--equal-height .mswas-card__front { height: 100%; }
.mswas.is-dragging, .mswas.is-dragging a { cursor: grabbing; user-select: none; }

.mswas-card { position: relative; min-width: 0; perspective: 1200px; }
.mswas-card__shell { position: relative; min-height: 100%; transform-style: preserve-3d; transition: transform var(--mswas-speed) cubic-bezier(.22,.61,.36,1); }
.mswas-card__front, .mswas-card__back { overflow: hidden; border-radius: var(--mswas-radius); background: var(--mswas-card-bg); }
.mswas-card__front { position: relative; display: flex; flex-direction: column; min-height: 100%; box-shadow: 0 8px 26px rgba(0,0,0,.09); }
.mswas-card__media { display: block; position: relative; overflow: hidden; aspect-ratio: var(--mswas-ratio); background: #ececec; }
.mswas-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform calc(var(--mswas-speed) * 1.15) cubic-bezier(.22,.61,.36,1), filter var(--mswas-speed) ease; }
.mswas-card__media--empty { background: linear-gradient(135deg,#ececec,#d8d8d8); }
.mswas-card__body { display: flex; flex: 1 1 auto; flex-direction: column; align-items: center; gap: .65rem; padding: 1rem; text-align: center; }
.mswas-card__title, .mswas-card__overlay-title, .mswas-card__back-title { margin: 0; font-size: clamp(1rem, 1.3vw, 1.25rem); font-weight: var(--mswas-title-weight, 700); line-height: 1.25; }

/* Isolamento titoli dal CSS del template.
   Alcuni template aggiungono barre, fondi o pseudo-elementi agli h2/h3/h4. */
.mswas .mswas-card__title,
.mswas .mswas-card__overlay-title,
.mswas .mswas-card__back-title {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

.mswas .mswas-card__title::before,
.mswas .mswas-card__title::after,
.mswas .mswas-card__overlay-title::before,
.mswas .mswas-card__overlay-title::after,
.mswas .mswas-card__back-title::before,
.mswas .mswas-card__back-title::after,
.mswas .mswas-card__title > a::before,
.mswas .mswas-card__title > a::after,
.mswas .mswas-card__overlay-title > a::before,
.mswas .mswas-card__overlay-title > a::after,
.mswas .mswas-card__back-title > a::before,
.mswas .mswas-card__back-title > a::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  border: 0 !important;
  background: none !important;
  box-shadow: none !important;
}

.mswas .mswas-card__title > a,
.mswas .mswas-card__overlay-title > a,
.mswas .mswas-card__back-title > a {
  border: 0 !important;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
.mswas-card__title a { color: var(--mswas-title); text-decoration: none; }
.mswas-card__title a:hover, .mswas-card__title a:focus { color: var(--mswas-accent); }
.mswas-card__intro { margin: 0; font-size: .94rem; line-height: 1.5; }
.mswas-card__button { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; margin-top: .35rem; padding: .55rem 1rem; border: 1px solid currentColor; border-radius: 999px; color: inherit; font-weight: 700; line-height: 1.1; text-decoration: none; transition: transform .2s ease, background-color .2s ease, color .2s ease; }
.mswas-card__button:hover, .mswas-card__button:focus { transform: translateY(-2px); background: var(--mswas-accent); border-color: var(--mswas-accent); color: #fff; }
.mswas-card__overlay { position: absolute; inset: 0; z-index: 2; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(var(--mswas-overlay-rgb),var(--mswas-overlay-opacity)); color: var(--mswas-overlay-text); text-align: center; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity var(--mswas-speed) ease, visibility var(--mswas-speed) ease, transform var(--mswas-speed) cubic-bezier(.22,.61,.36,1); }
.mswas-card__overlay-inner { display: flex; flex-direction: column; align-items: center; gap: .75rem; max-height: 100%; overflow: auto; }
.mswas-card__overlay a { color: inherit; }
.mswas-card__overlay-title a { text-decoration: none; }
.mswas-card__back { display: none; }

/* Preset MBJ: immagine + titolo; pannello completo in hover. */
.mswas-card-effect--mbj .mswas-card__intro--normal,
.mswas-card-effect--mbj .mswas-card__button--normal { display: none; }
.mswas-card-effect--mbj .mswas-card__overlay { transform: translateY(12%); }
.mswas-card-effect--mbj .mswas-card:hover .mswas-card__overlay { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }

/* Zoom: titolo visibile, testo che sale sopra l'immagine. */
.mswas-card-effect--zoom .mswas-card__intro--normal,
.mswas-card-effect--zoom .mswas-card__button--normal { display: none; }
.mswas-card-effect--zoom .mswas-card__overlay { top: auto; min-height: 58%; transform: translateY(100%); }
.mswas-card-effect--zoom .mswas-card:hover .mswas-card__overlay { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.mswas-card-effect--zoom .mswas-card:hover img { transform: scale(1.09); }

/* Overlay sempre visibile. */
.mswas-card-effect--overlay .mswas-card__body { display: none; }
.mswas-card-effect--overlay .mswas-card__overlay { opacity: 1; visibility: visible; pointer-events: auto; }
.mswas-card-effect--overlay .mswas-card:hover img { transform: scale(1.06); filter: saturate(.85); }

/* Flip card. */
.mswas-card-effect--flip .mswas-card__shell { min-height: 360px; }
.mswas-card-effect--flip .mswas-card__front,
.mswas-card-effect--flip .mswas-card__back { position: absolute; inset: 0; backface-visibility: hidden; }
.mswas-card-effect--flip .mswas-card__overlay { display: none; }
.mswas-card-effect--flip .mswas-card__intro--normal,
.mswas-card-effect--flip .mswas-card__button--normal { display: none; }
.mswas-card-effect--flip .mswas-card__back { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .9rem; padding: 1.2rem; background: rgba(var(--mswas-overlay-rgb),var(--mswas-overlay-opacity)); color: var(--mswas-overlay-text); text-align: center; transform: rotateY(180deg); box-shadow: 0 8px 26px rgba(0,0,0,.12); }
.mswas-card-effect--flip .mswas-card:hover .mswas-card__shell { transform: rotateY(180deg); }

/* Minimal: nessun pannello sovrapposto. */
.mswas-card-effect--minimal .mswas-card__overlay { display: none; }
.mswas-card-effect--minimal .mswas-card__front { box-shadow: none; border: 1px solid rgba(0,0,0,.1); }

/* Stile Gallery MSW: fascia titolo e zoom. */
.mswas-card-effect--gallery .mswas-card__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; min-height: 64px; justify-content: center; padding: .7rem 1rem; background: rgba(var(--mswas-overlay-rgb),var(--mswas-overlay-opacity)); backdrop-filter: blur(3px); }
.mswas-card-effect--gallery .mswas-card__title a { color: var(--mswas-overlay-text); }
.mswas-card-effect--gallery .mswas-card__intro--normal,
.mswas-card-effect--gallery .mswas-card__button--normal { display: none; }
.mswas-card-effect--gallery .mswas-card__overlay { transform: scale(.94); }
.mswas-card-effect--gallery .mswas-card:hover .mswas-card__overlay { opacity: 1; visibility: visible; pointer-events: auto; transform: scale(1); }
.mswas-card-effect--gallery .mswas-card:hover img { transform: scale(1.08); }

/* Coverflow morbido. */
.mswas--coverflow .mswas__viewport { padding-block: 18px; }
.mswas--coverflow .mswas__slide { transform: scale(.86) rotateY(7deg); opacity: .58; transition: transform var(--mswas-speed) ease, opacity var(--mswas-speed) ease; }
.mswas--coverflow .mswas__slide.is-near { transform: scale(.93) rotateY(3deg); opacity: .82; }
.mswas--coverflow .mswas__slide.is-active { transform: scale(1) rotateY(0); opacity: 1; z-index: 2; }

/* Fade e Cards usano sempre una singola scheda. */
.mswas--fade .mswas__viewport,
.mswas--cards .mswas__viewport { min-height: 380px; }
.mswas--fade .mswas__track,
.mswas--cards .mswas__track { position: relative; display: block; height: 100%; min-height: inherit; transform: none !important; }
.mswas--fade .mswas__slide,
.mswas--cards .mswas__slide { position: absolute; inset: 0; width: 100% !important; height: 100%; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity var(--mswas-speed) ease, transform var(--mswas-speed) cubic-bezier(.22,.61,.36,1); }
.mswas--fade .mswas__slide.is-active,
.mswas--cards .mswas__slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; z-index: 3; }
.mswas--cards .mswas__slide { transform: translate3d(8%,0,0) scale(.92) rotate(2deg); }
.mswas--cards .mswas__slide.is-prev { opacity: .35; visibility: visible; transform: translate3d(-4%,0,0) scale(.94) rotate(-2deg); z-index: 1; }
.mswas--cards .mswas__slide.is-next { opacity: .55; visibility: visible; transform: translate3d(4%,0,0) scale(.96) rotate(1.2deg); z-index: 2; }
.mswas--cards .mswas__slide.is-active { transform: translate3d(0,0,0) scale(1) rotate(0); }

.mswas__nav { position: absolute; top: 50%; z-index: 8; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 54px; padding: 0; border: 0; border-radius: 5px; background: rgba(var(--mswas-overlay-rgb),.72); color: #fff; font-size: 1.35rem; cursor: pointer; transform: translateY(-50%); transition: background .2s ease, opacity .2s ease, transform .2s ease; }
.mswas__nav:hover, .mswas__nav:focus { background: var(--mswas-accent); transform: translateY(-50%) scale(1.04); }
.mswas__nav:disabled { opacity: .28; cursor: default; }
.mswas__nav--prev { left: 0; }
.mswas__nav--next { right: 0; }
.mswas__pagination { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 14px; }
.mswas__dot { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 50%; background: #aaa; cursor: pointer; transition: width .2s ease, border-radius .2s ease, background .2s ease; }
.mswas__dot.is-active { width: 24px; border-radius: 999px; background: var(--mswas-accent); }

@media (hover: none) {
  .mswas-card-effect--mbj .mswas-card__overlay,
  .mswas-card-effect--zoom .mswas-card__overlay,
  .mswas-card-effect--gallery .mswas-card__overlay { display: none; }
  .mswas-card-effect--mbj .mswas-card__button--normal,
  .mswas-card-effect--zoom .mswas-card__button--normal,
  .mswas-card-effect--gallery .mswas-card__button--normal { display: inline-flex; }
  .mswas-card-effect--flip .mswas-card__shell { transform: none !important; }
  .mswas-card-effect--flip .mswas-card__front { position: relative; }
  .mswas-card-effect--flip .mswas-card__back { display: none; }
}

@media (max-width: 575.98px) {
  .mswas { padding-inline: 32px; }
  .mswas__nav { width: 29px; height: 48px; }
  .mswas-card__body { padding: .85rem; }
  .mswas-card__intro { font-size: .9rem; }
}

@media (prefers-reduced-motion: reduce) {
  .mswas *, .mswas *::before, .mswas *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}


/* 1.0.6: il titolo non usa più h2/h3/h4, per evitare decorazioni del template. */
.mswas .mswas-card__title-link {
  all: unset !important;
  display: inline !important;
  color: inherit !important;
  font: inherit !important;
  font-weight: var(--mswas-title-weight, 700) !important;
  line-height: inherit !important;
  cursor: pointer !important;
  text-decoration: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
.mswas .mswas-card__title-link::before,
.mswas .mswas-card__title-link::after { content: none !important; display: none !important; }


/* 1.0.7: l'intera scheda è un unico collegamento all'articolo. */
.mswas .mswas-card__link {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: inherit !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  color: inherit !important;
  font: inherit !important;
  line-height: inherit !important;
  text-decoration: none !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: transparent;
}
.mswas .mswas-card__link:hover,
.mswas .mswas-card__link:focus,
.mswas .mswas-card__link:active,
.mswas .mswas-card__link:visited {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  color: inherit !important;
  text-decoration: none !important;
}
.mswas .mswas-card__link::before,
.mswas .mswas-card__link::after {
  content: none !important;
  display: none !important;
}
.mswas .mswas-card__link:focus-visible {
  outline: 3px solid var(--mswas-accent) !important;
  outline-offset: 3px !important;
}
.mswas .mswas-card__media,
.mswas .mswas-card__body,
.mswas .mswas-card__overlay,
.mswas .mswas-card__back {
  cursor: pointer;
}

/* 1.0.8: peso del titolo esplicito e configurabile; predefinito 700. */

/* 1.1.2 — testi desktop e mobile separati.
   Desktop: descrizione completa nel pannello hover, sempre fuori dal flusso.
   Mobile: anteprima assoluta sopra l'immagine, senza aumentare l'altezza. */

/* Il testo descrittivo non compare mai nel box bianco sotto l'immagine. */
.mswas .mswas-card__intro--normal {
  display: none !important;
}

/* Pannello desktop: titolo, descrizione scorrevole e pulsante restano
   confinati nella scheda e non possono modificarne l'altezza. */
.mswas .mswas-card__overlay-inner {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  align-items: center;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}

.mswas .mswas-card__overlay-heading,
.mswas .mswas-card__overlay-action {
  min-width: 0;
}

.mswas .mswas-card__overlay-description {
  display: flex;
  align-items: stretch;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}

.mswas .mswas-card__intro--overlay {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0 .2rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  font-size: var(--mswas-overlay-font-size, 15px);
  line-height: 1.4;
}

.mswas .mswas-card__overlay-action:empty,
.mswas .mswas-card__overlay-heading:empty,
.mswas .mswas-card__overlay-description:empty {
  display: none;
}

/* Overlay mobile dedicato: di default non esiste visivamente. */
.mswas .mswas-card__mobile-overlay {
  display: none;
}

.mswas .mswas-card__media-empty {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,#ececec,#d8d8d8);
}

@media (max-width: 767.98px) {
  /* Quando l'opzione backend è attiva, la scheda mobile coincide con
     l'immagine: nessun box bianco può essere allungato dal testo. */
  .mswas--mobile-text.mswas--equal-height .mswas__slide,
  .mswas--mobile-text.mswas--equal-height .mswas-card,
  .mswas--mobile-text.mswas--equal-height .mswas-card__link,
  .mswas--mobile-text.mswas--equal-height .mswas-card__shell,
  .mswas--mobile-text.mswas--equal-height .mswas-card__front {
    height: auto !important;
    min-height: 0 !important;
  }

  .mswas--mobile-text .mswas-card__body,
  .mswas--mobile-text .mswas-card__overlay,
  .mswas--mobile-text .mswas-card__back {
    display: none !important;
  }

  .mswas--mobile-text .mswas-card__front {
    display: block;
    background: transparent;
  }

  .mswas--mobile-text .mswas-card__media {
    width: 100%;
    min-height: 0;
    border-radius: var(--mswas-radius);
  }

  .mswas--mobile-text .mswas-card__mobile-overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: flex-end;
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: clamp(.8rem, 4vw, 1.25rem);
    overflow: hidden;
    color: var(--mswas-overlay-text);
    background: linear-gradient(
      to top,
      rgba(var(--mswas-overlay-rgb), var(--mswas-overlay-opacity-strong, .82)) 0%,
      rgba(var(--mswas-overlay-rgb), var(--mswas-overlay-opacity-mid, .64)) 48%,
      rgba(var(--mswas-overlay-rgb), var(--mswas-overlay-opacity-light, .10)) 100%
    );
    text-align: center;
    pointer-events: none;
  }

  .mswas--mobile-text .mswas-card__mobile-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
    width: 100%;
    max-height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  .mswas--mobile-text .mswas-card__mobile-title {
    width: 100%;
    margin: 0;
    overflow: hidden;
    color: var(--mswas-overlay-text);
    font-size: clamp(1.05rem, 5vw, 1.35rem);
    font-weight: var(--mswas-title-weight, 700);
    line-height: 1.18;
    text-wrap: balance;
  }

  .mswas--mobile-text .mswas-card__mobile-intro {
    display: -webkit-box;
    width: 100%;
    margin: 0;
    overflow: hidden;
    color: var(--mswas-overlay-text);
    font-size: clamp(.82rem, 3.6vw, .98rem);
    line-height: 1.32;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--mswas-mobile-lines, 3);
    line-clamp: var(--mswas-mobile-lines, 3);
  }

  .mswas--mobile-text .mswas-card__mobile-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    margin-top: .1rem;
    padding: .4rem .8rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    color: var(--mswas-overlay-text);
    font-size: .82rem;
    font-weight: 700;
    line-height: 1;
  }
}
