/* Tema Biglietti Calabria Movie - CSS del sito originale (cmw-*). */
@import url('https://fonts.googleapis.com/css2?family=Google+Sans+Flex:opsz,wght@6..144,1..1000&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap');
*,*::before,*::after{box-sizing:border-box}
body{margin:0}
/*
 Theme Name: Calabria Movie Webkit by darioenchelli.me
 Theme URI: https://denkhub.io/
 Author: Denkhub
 Author URI: https://denkhub.io/
 Description: Webkit per il sito web di Calabria Movie Film Festival. Sviluppo e manutenzione a cura di Denkhub. Changelog: vedi CHANGELOG.md.
 Version: 1.2.9
*/

/* FONT */

h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
div {
  font-family: 'Google Sans Flex' !important;
}

#wpadminbar div {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif !important;
}

html,
body {
  background-color: #050505;
  /* Black/Neutral Extra Dark */
  margin: 0;
  padding: 0;
  /* Ensure height is at least 100% to cover viewport */
  min-height: 100vh;
}

html.cmw-scroll-locked,
body.cmw-scroll-locked {
  overscroll-behavior: none;
}

/* Scroll morbido agli ancoraggi (es. "I biglietti" -> #biglietti). */
html {
  scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}


/* HERO IMPOSTAZIONI RAPIDE*/

/* HERO IMPOSTAZIONI RAPIDE*/
.cmw-hero-inner h2,
.cmw-hero-inner p {
  margin-top: 1.5rem;
}

/* BASE TYPOGRAPHY & RESET */
img.emoji {
  width: 1em !important;
  height: 1em !important;
  margin: 0 .07em !important;
  vertical-align: -0.1em !important;
  background: none !important;
  padding: 0 !important;
  box-shadow: none !important;
  display: inline !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 0.6em;
}

h1 {
  font-size: 2.5rem;
}

h2 {
  font-size: 2rem;
}

h3 {
  font-size: 1.75rem !important;
}

h4 {
  font-size: 1.5rem;
}

h5 {
  font-size: 1.25rem;
}

h6 {
  font-size: 1rem;
}

p {
  margin-bottom: 1.25rem;
}


.cmw-hero-slider {
  background-color: black;
}

.ai-article-wrapper a {
  color: black !important;
  font-weight: bold;
}

.ai-article-wrapper a:hover {
  color: #cc3715 !important;
}

.ai-article-wrapper a:hover {
  color: #cc3715 !important;
}

/* LINK DENTRO IL RIASSUNTO AI */
.ai-summary-section a {
  color: white !important;
  font-weight: bold;
}

.ai-summary-section a:hover {
  color: skyblue !important;
}

.ai-article-wrapper {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: black;
}



/* FIX LAYOUT CONTENT (Official Selection etc) */
.cmw-page-content,
.cmw-page-content-inner {
  width: 100%;
  max-width: 100%;
  display: block;
  /* assicura che non sia flex row */
}

/* FIX DESKTOP MENU WRAPPING */
@media (min-width: 901px) {
  .cmw-main-nav {
    width: 100%;
  }

  .cmw-main-nav .cmw-menu {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    white-space: nowrap;
    gap: 1.5rem;
    /* ridotto leggermente gap per sicurezza */
  }
}

/* HERO CON BACKGROUND IMMAGINE + OVERLAY */
.ai-article-hero {
  position: relative;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem 1.5rem;

  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}

/* Overlay colore sopra l'immagine (opacity gestita inline via PHP) */
.ai-article-hero-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

/* Contenuto hero sopra overlay+immagine */
.ai-article-hero-inner {
  padding-top: calc(2.5rem + 5vh);
  /* +5vh verso il basso */
  position: relative;
  z-index: 1;
  max-width: 1180px;
  width: 100%;
  display: flex;
  gap: 3rem;
  align-items: center;
}


/* BOTTONI GUTENBERG – STILE CALABRIA */
.wp-block-button .wp-block-button__link,
.wp-block-button__link.wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 1.8rem;
  /* un filo più piccolo */
  border-radius: 999px;
  background: #efc984;
  color: #cc3715 !important;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  border: 1px solid transparent;
  text-decoration: none;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
}

.cmw-page-content .wp-block-button .wp-block-button__link,
.cmw-page-content .wp-block-button__link.wp-element-button {
  margin-bottom: 1em;
}

/* Hover — cresce leggermente e testo bianco */
.wp-block-button .wp-block-button__link:hover,
.wp-block-button__link.wp-element-button:hover {
  background: #cc3715;
  /* sfondo cc3715 */
  color: #ffffff !important;
  /* testo bianco */
  border-color: #ffffff;
  /* bordo bianco */
  transform: scale(1.06);
}

/* Focus — per accessibilità */
.wp-block-button .wp-block-button__link:focus-visible,
.wp-block-button__link.wp-element-button:focus-visible {
  outline: 3px solid #EFC984 !important;
  outline-offset: 3px !important;
}

/* Colonna immagine hero */
/* Tag overlay sull'immagine hero (stile sticker Insta) */
.ai-hero-tag {
  position: absolute;
  top: 3%;
  left: 7%;
  z-index: 20;
  pointer-events: none;
  /* non blocca click sull'immagine */
}

/* BOTTONI SOLO HERO – MINIMAL CAPS + UNDERLINE ANIMATA */
.cmw-hero-inner .wp-block-buttons {
  margin-top: 3vh;
  display: flex;
  gap: 4rem;
  justify-content: center;
}

/* Link pulsanti */
.cmw-hero-inner .wp-block-button .wp-block-button__link,
.cmw-hero-inner .wp-block-button__link.wp-element-button,
.cmw-splash-btn {
  position: relative;
  background: none !important;
  border: none !important;

  font-size: 0.85rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08rem !important;

  color: #ffffff !important;
  padding: 0 !important;
  cursor: pointer !important;

  transition: color 0.25s ease;
}

.cmw-hero-inner .wp-block-button .wp-block-button__link::after,
.cmw-hero-inner .wp-block-button__link.wp-element-button::after,
.cmw-splash-btn::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -4px;
  width: 0%;
  height: 2px;
  background-color: #ffffff;
  border-radius: 2px;

  transform: translateX(-50%);
  transition: width 0.28s ease;
}


.cmw-hero-inner .wp-block-button .wp-block-button__link:hover::after,
.cmw-hero-inner .wp-block-button__link.wp-element-button:hover::after,
.cmw-splash-btn:hover::after {
  width: 100%;
}


.cmw-hero-inner .wp-block-button .wp-block-button__link:hover,
.cmw-hero-inner .wp-block-button__link.wp-element-button:hover,
.cmw-splash-btn:hover {
  color: #ffffff !important;
}


@media (max-width: 680px) {
  .cmw-hero-inner .wp-block-buttons {
    flex-direction: column;
    gap: 1rem;
  }

  .cmw-hero-inner .wp-block-button .wp-block-button__link,
  .cmw-hero-inner .wp-block-button__link.wp-element-button {
    text-align: center;
  }
}

.ai-hero-tag img {
  display: block;
  width: 66% !important;
  height: auto;
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.35));
}


/* Gradient nero → trasparente sulla card dell'immagine */
.ai-hero-gradient {
  position: absolute;
  bottom: 82%;
  left: 0;
  right: 0;
  height: 18%;
  background: linear-gradient(to bottom,
      rgba(0, 0, 0, 0.8),
      rgba(0, 0, 0, 0));
  z-index: 2;
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.35s ease-out;
}

/* Hover: intensifica leggermente */
.ai-article-hero-image:hover .ai-hero-gradient {
  opacity: 1;
}

.ai-article-hero-image-wrapper {
  flex: 0 0 30%;
  display: flex;
  justify-content: center;
}

.ai-article-hero-image {
  position: relative;
  height: 75vh;
  aspect-ratio: 9 / 16;
  border-radius: 50px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35);
  background: #111;
}

@media (max-width: 786px) {
  .ai-article-hero-image {
    aspect-ratio: 3 / 4 !important;
    height: 50vh;
  }

  .ai-article-hero-image-wrapper {
    padding-bottom: 5%;
    margin-top: -5%;
  }
}

.ai-article-hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Colonna testo hero */
.ai-article-hero-text {
  margin-left: 2em;
  flex: 1;
}

.ai-article-category {
  color: #cc3715;
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: #efc984;
  margin-bottom: 1rem;
}

.ai-article-title {
  color: #ffffff;
  font-size: clamp(2.0rem, 4vw + 1rem, 3.8rem);
  font-weight: bold;
  line-height: 1.1;
  margin: 0 0 1rem;
}

.ai-article-meta {
  color: #EFC984;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  opacity: 0.9;
}

.ai-article-separator {
  opacity: 0.7;
}

/* RIASSUNTO AI POWERED */
.ai-summary-inner p.ai-typed {
  opacity: 1;
}

.ai-word {
  opacity: 0;
  transition: opacity 0.35s ease;
}

.ai-word.ai-word-visible {
  opacity: 1;
}

.ai-summary-section {
  padding: 3rem 1.5rem 0;
  display: flex;
  justify-content: center;
  background-color: #ffffff;
}

.ai-summary {
  max-width: 1150px;
  width: 100%;
  position: relative;
}

.ai-summary::before {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 1.5rem;
  background: linear-gradient(135deg, #3b82f6, #8b5cf6);
  filter: blur(8px);
  opacity: 0.8;
  z-index: 0;
}

.ai-summary-inner {
  position: relative;
  z-index: 1;
  border-radius: 1.3rem;
  padding: 1.75rem 2rem;
  background-image:
    radial-gradient(circle at 0% 0%, rgba(59, 130, 246, 0.25), rgba(0, 0, 0, 0) 55%),
    radial-gradient(circle at 100% 100%, rgba(139, 92, 246, 0.25), rgba(0, 0, 0, 0) 55%);
  background-color: #020617;
  color: #e5e7eb;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.6);
}

.ai-summary-label {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  opacity: 0.85;
  margin-bottom: 0.6rem;
}

.ai-summary-inner p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
}

/* CONTENUTO ARTICOLO */
@media (max-width: 786px) {
  .ai-article-content-inner {
    padding-right: 5%;
    padding-left: 5%;
  }
}

.ai-article-content {
  padding: 2.5rem 1.5rem 3.5rem;
  display: flex;
  justify-content: center;
  background-color: #ffffff;
}

.ai-article-content-inner {
  max-width: 1200px;
  width: 100%;
  font-size: 1.02rem;
  line-height: 1.8;
  color: black;
}

.ai-article-content-inner h2,
.ai-article-content-inner h3,
.ai-article-content-inner h4 {
  margin-top: 2rem;
  margin-bottom: 0.75rem;
  color: #050505;
}

.ai-article-content-inner p {
  margin-bottom: 1rem;
}

/* Immagini nel corpo articolo arrotondate */
.ai-article-content img {
  border-radius: 50px;
}

/* SEZIONE ALTRI ARTICOLI */
.ai-related-section {
  padding: 2.5rem 2.3rem 3rem;
  background: #cc3715;
  color: #ffffff;
}

/* Wrapper che contiene lo slider e gestisce i fade ai bordi */
.ai-related-viewport {
  position: relative;
  max-width: 1250px;
  margin: 0 auto;
  overflow: hidden;
  /* ciò che esce viene mascherato */
}

/* Sfumature ai bordi, fisse */
.ai-related-viewport::before,
.ai-related-viewport::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 64px;
  pointer-events: none;
  z-index: 4;
}

/* fade a sinistra */
.ai-related-viewport::before {
  left: 0;
  background: linear-gradient(to right,
      #cc3715 0%,
      rgba(204, 55, 21, 0) 100%);
}

/* fade a destra */
.ai-related-viewport::after {
  right: 0;
  background: linear-gradient(to left,
      #cc3715 0%,
      rgba(204, 55, 21, 0) 100%);
}

@media (max-width: 786px) {
  .ai-related-section {
    padding: 1em;
  }

  .ai-related-title {
    padding-left: 5%;
  }

  .ai-related-viewport {
    margin-top: -10%;
  }

  .ai-related-viewport::before,
  .ai-related-viewport::after {
    display: none;
  }
}

.ai-related-title {
  max-width: 1180px;
  margin: 0 auto;
  padding-left: 0.5em;
  padding-top: 25px;
  padding-bottom: 50px;
  font-size: 2.5rem;
  font-weight: bold;
}

/* SLIDER ORIZZONTALE – STORIES */
/* Spazio vuoto prima della prima card (spinge tutto a destra) */
.ai-related-slider::before {
  content: "";
  flex: 0 0 200px !important;
  /* quantità di spazio prima della prima card */
}

.ai-related-slider {
  margin: 0 auto;
  display: flex;
  flex-wrap: nowrap;
  /* niente wrap */
  gap: 2.4rem;

  /* padding top/bottom + spazio laterale per hover */
  padding: 2em 4em;

  overflow-x: auto;
  /* scroll orizzontale reale */
  overflow-y: hidden;
  scroll-snap-type: x mandatory;

  cursor: grab;
  -webkit-overflow-scrolling: touch;
  user-select: none;
}

/* Nascondi scrollbar orizzontale */
.ai-related-slider {
  scrollbar-width: none;
  /* Firefox */
}

.ai-related-slider::-webkit-scrollbar {
  display: none;
  /* Chrome / Safari */
}

.ai-related-slider.is-dragging {
  cursor: grabbing;
}

/* Bordi sfumati a sinistra e destra */
.ai-related-slider::before,
.ai-related-slider::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 64px;
  /* larghezza della sfumatura */
  pointer-events: none;
  /* non blocca il drag */
  z-index: 2;
}



/* CARD STORIES */
.ai-related-item {
  min-width: 230px;
  max-width: 280px;
  flex: 0 0 auto;
  scroll-snap-align: start;
}

.ai-related-link {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  text-decoration: none;
  color: #e5e7eb;
}

/* Immagine 9:16 */
.ai-related-image-card {
  position: relative;
  box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.2);
  width: 100%;
  aspect-ratio: 9 / 16;
  border-radius: 40px;
  overflow: hidden;
  background: #020617;
  border: 0px solid transparent;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    border-color 0.25s ease;
}

.ai-related-image-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  -webkit-user-drag: none;
  user-select: none;
}

/* Gradiente nero dal basso verso l'alto, nascosto di default */
.ai-related-gradient {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 55%;
  background: linear-gradient(to top,
      rgba(0, 0, 0, 1),
      rgba(0, 0, 0, 0));
  opacity: 0;
  transition: opacity 0.25s ease;
}

/* Titolo sopra immagine, in basso, visibile SOLO in hover */
.ai-related-post-title {
  z-index: 20;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 1.6rem;
  padding: 0 1.1rem;
  margin: 0;
  font-size: 1.5rem !important;
  font-weight: bold;
  line-height: 1;
  color: #ffffff;
  opacity: 0;
  transform: translateY(8px);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
}

.ai-related-category {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.8;
}

/* Hover: card più grande, bordo bianco, glow bianco + overlay + titolo */
.ai-related-link:hover .ai-related-image-card {
  transform: scale(1.06);
  border-color: #ffffff;
  box-shadow:
    0 0 0 2px #ffffff,
    0 0 18px rgba(255, 255, 255, 0.35);
}

.ai-related-link:hover .ai-related-gradient {
  opacity: 1;
}

.ai-related-link:hover .ai-related-post-title {
  opacity: 1;
  transform: translateY(0);
}

/* MOBILE FIX: Stories sempre visibili */
@media (max-width: 768px) {
  .ai-related-post-title {
    z-index: 20;
    opacity: 1 !important;
    transform: translateY(0) !important;
  }

  .ai-related-gradient {
    opacity: 1 !important;
  }
}

/* BLOCKQUOTE BUBBLE */
.wp-block-quote {
  --bubble-bg: #EFC984;
  overflow-y: visible !important;
  overflow-x: visible !important;
  position: relative;
  max-width: 75%;
  justify-items: center;
  margin: 2.5rem auto 3rem;
  padding: 1.2rem 1.6rem;
  font-style: italic;
  font-size: 1.2rem;
  line-height: 1.55;
  color: #111;
  background: transparent;
  filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.18));
}

/* Bolla principale */
.wp-block-quote::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 1.4rem;
  background: var(--bubble-bg);
  z-index: -1;
}

/* Coda integrata, stessa forma e colore */
.wp-block-quote::after {
  content: "";
  position: absolute;
  left: 34px;
  bottom: -5px;
  width: 22px;
  height: 22px;
  background: var(--bubble-bg);
  transform: rotate(45deg);
  border-radius: 4px;
  z-index: -1;
}

/* CUSTOM CLASSES SAVED FROM APP.CSS */
.visible {
  visibility: visible;
}


/* Testo interno blockquote */
.wp-block-quote p {
  margin: 0;
}

/* RESPONSIVE */
@media (max-width: 900px) {
  .ai-article-hero-inner {
    flex-direction: column;
    text-align: left;
  }

  .ai-article-hero {
    padding-top: 5rem;
    padding-bottom: 3rem;
    min-height: auto;
  }

  .ai-article-hero-image-wrapper {
    order: -1;
  }

  .ai-article-hero-image {
    max-width: 260px;
  }

  .ai-article-hero-text {
    width: 100%;
  }
}

@media (max-width: 600px) {
  .ai-summary-inner {
    padding: 1.4rem 1.3rem;
  }

  .ai-article-content {
    padding-inline: 1rem;
  }

  .ai-related-section {
    padding-inline: 1rem;
  }

}

/* === EDIZIONI – LAYOUT GENERALE === */

.cmw-edition-wrapper {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #111827;
}

/* HERO 100vh con background e overlay */
.cmw-edition-hero {
  position: relative;
  min-height: 100vh;
  padding: 3rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;

  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}

.cmw-edition-hero-overlay {
  position: absolute;
  inset: 0;
  background: #000000;
  opacity: 0.75;
  /* 50% overlay */
  pointer-events: none;
}

.cmw-edition-hero-inner {
  padding-top: calc(2.5rem + 5vh);
  /* +5vh verso il basso */
  position: relative;
  z-index: 1;
  max-width: 1180px;
  width: 100%;
  display: flex;
  gap: 3rem;
  align-items: center;
}

.cmw-edition-winners {
  margin-bottom: 5vh;
}

/* Poster a sinistra */
.cmw-edition-hero-poster {
  flex: 0 0 40%;
  display: flex;
  justify-content: center;
}

.cmw-edition-hero-poster img {
  height: 75vh;
  width: auto;
  border-radius: 50px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35);
  object-fit: cover;
  display: block;
}

/* Testo a destra */
.cmw-edition-label {
  color: #cc3715;
  display: inline-block;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: #efc984;
  margin-bottom: 0.5rem;
}

.cmw-edition-hero-text {
  margin-left: 2em;
  flex: 1;
  color: #fff;
}

.cmw-edition-title {
  font-size: clamp(2.6rem, 3.6vw + 1rem, 3.8rem);
  font-weight: bold;
  line-height: 1.0;
}

.cmw-edition-winners {
  font-size: 1.03rem;
  line-height: 1.3;
}

.cmw-edition-winners p {
  margin-bottom: 0.75rem;
}

/* Bottoni Programma / Catalogo */
.cmw-edition-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
}

.cmw-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0.85rem 1.6rem !important;
  background: #CC3715 !important;
  color: #EFC984 !important;
  text-decoration: none !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  border-radius: 50px !important;
  transition: transform 0.25s ease, color 0.25s ease, background 0.25s ease !important;
  border: none !important;
  cursor: pointer !important;
}


.cmw-btn:hover {
  transform: scale(1.07) !important;
  color: #ffffff !important;
}



/* === MEDIA GALLERY === */
.cmw-edition-gallery-section {
  height: 75vh;
  padding: 3rem 1.5rem 4rem;
  background: #ffffff;
  /* fascia scura sotto */
  color: #111111;
}

.cmw-edition-gallery-header h2 {
  font-weight: bold;
}

.cmw-edition-gallery-header {
  max-width: 1180px;
  margin: 0 auto 2rem;
}

.cmw-edition-gallery-header h2 {
  font-size: 2.2rem;
  margin: 0;
}

/* viewport con fade ai lati, come slider articoli */
.cmw-edition-gallery-viewport {
  position: relative;
  max-width: 1250px;
  margin: 0 auto;
}

/* fade bordi */
.cmw-edition-gallery-viewport::before,
.cmw-edition-gallery-viewport::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 64px;
  pointer-events: none;
  z-index: 2;
}

.cmw-edition-gallery-viewport::before {
  left: 0;
  background: linear-gradient(to right, #ffffff 0%, rgba(204, 55, 21, 0) 100%);
}

.cmw-edition-gallery-viewport::after {
  right: 0;
  background: linear-gradient(to left, #ffffff 0%, rgba(204, 55, 21, 0) 100%);
}

/* slider orizzontale */
.cmw-edition-gallery-slider {
  display: flex;
  flex-wrap: nowrap;
  gap: 1.8rem;
  padding: 1em 4em;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;

  cursor: grab;
  -webkit-overflow-scrolling: touch;
  user-select: none;

  scrollbar-width: none;
}

.cmw-edition-gallery-slider::-webkit-scrollbar {
  display: none;
}

.cmw-edition-gallery-slider.is-dragging {
  cursor: grabbing;
}

/* singola immagine */
.cmw-edition-gallery-item {
  flex: 0 0 auto;
  height: 50vh;
  width: auto;
  scroll-snap-align: start;
}

.cmw-edition-gallery-item img {
  width: 100%;
  height: 100%;
  border-radius: 28px;
  object-fit: cover;
  display: block;
  box-shadow: 0 0px 10px rgba(0, 0, 0, 0.45);
}

/* Responsive */
@media (max-width: 900px) {
  .cmw-edition-hero-inner {
    flex-direction: column;
    gap: 2rem;
  }

  .cmw-edition-hero-poster {
    order: -1;
  }

  .cmw-edition-hero {
    padding-top: 5rem;
    padding-bottom: 3rem;
    min-height: auto;
  }
}

@media (max-width: 600px) {
  .cmw-edition-gallery-section {
    padding-inline: 1rem;
  }

  .cmw-edition-gallery-slider {
    padding-inline: 2rem;
  }
}

/* === HOME HERO SLIDER === */

.cmw-hero-slider {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

/* Una sola slide visibile alla volta, con semplice fade */
.cmw-hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  display: flex;
  align-items: stretch;
  justify-content: center;
  /* Lateral slide transition + Fade */
  transform: translateX(100%);
  transition: transform 1s cubic-bezier(0.19, 1, 0.22, 1), opacity 0.6s ease;
}

.cmw-hero-slide.is-active {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
  z-index: 10;
}

/* ANTI "CLICK FANTASMA": durante il cambio slide (1s) nessuna slide è
   cliccabile. Senza questo, il link di una slide che SCORRE attraverso lo
   schermo (anche dal centro) cattura i click e ti porta su pagine a caso.
   La classe .cmw-hero-animating viene messa/tolta dal JS dello slider. */
.cmw-hero-slider.cmw-hero-animating .cmw-hero-slide {
  pointer-events: none !important;
}

/* Directional classes managed by JS */
.cmw-hero-slide.from-left,
.cmw-hero-slide.to-left,
.cmw-hero-slide.to-right,
.cmw-hero-slide.from-right {
  opacity: 1 !important;
}

.cmw-hero-slide.from-left {
  transform: translateX(-100%);
}

.cmw-hero-slide.to-right {
  transform: translateX(100%);
}

.cmw-hero-slide.to-left {
  transform: translateX(-100%);
}

.cmw-hero-slide.from-right {
  transform: translateX(100%);
}

/* Navigation Buttons */
.cmw-hero-nav {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  padding: 0 3%;
  pointer-events: none;
  z-index: 50;
}

.cmw-hero-btn {
  pointer-events: auto;
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: rgba(255, 255, 255, 0.5);
  transition: color 0.3s ease;
  padding: 0;
}

.cmw-hero-btn:hover {
  background: transparent;
  border: none;
  box-shadow: none;
  transform: none;
  color: #ffffff;
}

.cmw-hero-btn svg {
  width: 40px;
  height: 40px;
}

/* Horizontal Bounce Animations */
@keyframes cmw-bounce-left {

  0%,
  100% {
    transform: translateX(-25%);
    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
  }

  50% {
    transform: translateX(0);
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
  }
}

@keyframes cmw-bounce-right {

  0%,
  100% {
    transform: translateX(25%);
    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
  }

  50% {
    transform: translateX(0);
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
  }
}

.cmw-hero-prev {
  animation: cmw-bounce-left 1s infinite;
}

.cmw-hero-next {
  animation: cmw-bounce-right 1s infinite;
}

@media (max-width: 768px) {
  .cmw-hero-nav {
    padding: 0 1rem;
    top: auto;
    bottom: 6rem;
    transform: none;
    justify-content: center;
    gap: 1rem;
  }

  .cmw-hero-btn {
    width: auto;
    height: auto;
    background: transparent;
    color: #ffffff;
  }
}

/* Effetto ingresso contenuto: sale leggermente e sfuma in */
.cmw-hero-left,
.cmw-hero-story {
  transform: translateY(20px);
  opacity: 0;
  transition: transform 0.5s ease, opacity 0.5s ease;
}

.cmw-hero-slide.is-active .cmw-hero-left,
.cmw-hero-slide.is-active .cmw-hero-story {
  transform: translateY(0);
  opacity: 1;
}

/* Video di sfondo */
.cmw-hero-bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

/* Overlay sopra il video */
.cmw-hero-bg-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  pointer-events: none;
  z-index: 1;
}

/* Contenuto */
.cmw-hero-inner {
  position: relative;
  z-index: 2;
  max-width: 1180px;
  width: 100%;
  margin: 0 auto;
  padding: 2.5rem 1.5rem;
  /* +5vh verso il basso */
  display: flex;
  gap: 3rem;
  align-items: center;
  justify-content: space-between;
  color: #ffffff;
}

/* Colonna sinistra */
.cmw-hero-logo {
  display: flex;
  justify-content: center;
}

.cmw-hero-logo img {
  width: 60vw;
  height: auto;
  display: block;
}

.cmw-hero-title {
  font-size: clamp(2.4rem, 3.6vw + 1rem, 3.4rem);
  line-height: 1.1;
  margin: 0 0 1rem;
}

.cmw-hero-content {
  font-size: 1.02rem;
  line-height: 1.7;

  padding-right: 2em;
  padding-left: 2em;
}

/* Layout standard: due colonne */
.cmw-hero-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3rem;
}

/* Variante quando NON c'è la colonna stories (classe messa via JS) */
.cmw-hero-slide.cmw-hero-no-story .cmw-hero-inner {
  justify-content: center;
}

.cmw-hero-slide.cmw-hero-no-story .cmw-hero-left {
  max-width: 720px;
  /* se vuoi, puoi attivare anche:
  text-align: center;
  */
}

/* Colonna destra: stories tipo 9:16 */
.cmw-hero-story {
  flex: 0 0 30%;
  text-decoration: none;
  color: inherit;
}

.cmw-hero-story-inner {
  position: relative;
  height: 75vh;
  aspect-ratio: 9 / 16;
  border-radius: 40px;
  overflow: hidden;
  background: #020617;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.cmw-hero-story-media {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cmw-hero-story-inner:hover {
  transform: scale(1.03);
  box-shadow: 0 26px 58px rgba(0, 0, 0, 0.65);
}

/* Barra di progressione in basso */
/* Barra di progressione in basso – full width */
.cmw-hero-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  /* ancorata in basso alla hero */
  transform: none;
  /* niente translateX */
  width: 100%;
  height: 6px;
  background: rgba(239, 201, 132, 0.5);
  /* #efc984 al 50% */
  overflow: hidden;
  z-index: 3;
}

.cmw-hero-progress-bar {
  width: 100%;
  height: 100%;
  border-radius: 0;
  background: #efc984;
  /* pieno */
  transform-origin: left center;
  /* per l’animazione scaleX */
}

/* MOBILE */
@media (max-width: 900px) {
  .cmw-hero-inner {
    flex-direction: column;
    align-items: flex-start;
    padding-top: 4rem;
  }

  .cmw-hero-left {
    flex: 1 1 auto;
  }

  .cmw-hero-story {
    align-self: stretch;
    width: 60%;
  }

  .cmw-hero-logo img {
    max-width: 200px;
  }
}

@media (max-width: 600px) {
  .cmw-hero-inner {
    padding-inline: 1.2rem;
  }

  .cmw-hero-story {
    width: 80%;
  }
}


/* MOBILE */
@media (max-width: 900px) {
  .cmw-hero-inner {
    flex-direction: column;
    align-items: flex-start;
    padding-top: 4rem;
  }

  .cmw-hero-left {
    flex: 1 1 auto;
  }

  .cmw-hero-story {
    align-self: stretch;
    width: 60%;
  }

  .cmw-hero-logo img {
    max-width: 100%;
  }

  /* quando non c'è stories, su mobile centro il contenuto */
  .cmw-hero-slide.cmw-hero-no-story .cmw-hero-inner {
    align-items: center;
    text-align: center;
  }
}

@media (max-width: 600px) {
  .cmw-hero-inner {
    padding-inline: 1.2rem;
  }

  .cmw-hero-story {
    width: 80%;
  }
}

/* Nasconde gli H1 nelle Hero mantenendoli accessibili a screen reader e SEO */
/* Nascondi SOLO gli H1 delle hero in home */
.cmw-home .cmw-hero-title {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  white-space: nowrap;
  clip-path: inset(100%);
  clip: rect(0 0 0 0);
  overflow: hidden;
}

/* Tag overlay dentro la story (riuso dello stile ai-hero-tag, ma più piccolo se vuoi) */
.cmw-hero-story-inner .ai-hero-tag {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 3;
  pointer-events: none;
}

.cmw-hero-story-inner .ai-hero-tag img {
  display: block;
  width: 190px;
  /* regola se lo vuoi più grande/piccolo rispetto all'hero articolo */
  height: auto;
  filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.35));
}

/* Overlay gradiente: di base nascosto, visibile in hover (per richiamare "altre stories") */
.cmw-hero-story-inner .ai-hero-gradient {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 55%;
  background: linear-gradient(to top,
      rgba(0, 0, 0, 0.95),
      rgba(0, 0, 0, 0));
  opacity: 0;
  transition: opacity 0.25s ease;
  z-index: 2;
  pointer-events: none;
}

/* Titolo overlay in basso, come le altre stories */
.cmw-hero-story-text {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2.5rem;
  padding: 0 1.2rem;
  width: 90%;
  z-index: 5;
  pointer-events: none;
}

.cmw-hero-story-title {
  z-index: 3;
  left: 0;
  right: 0;
  margin-bottom: 0.5rem;
  font-size: 1.5rem;
  font-weight: bold;
  line-height: 1;
  color: #ffffff;
  opacity: 1;
  transform: translateY(8px);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
}

.cmw-hero-story-subtitle {
  z-index: 3;
  left: 0;
  right: 0;
  bottom: 2rem;
  margin: 0;
  font-size: 1.2rem;
  font-weight: normal;
  line-height: 1;
  color: #ffffff;
  opacity: 1;
  transform: translateY(8px);
  transition:
    opacity 0.25s ease,
    transform 0.25s ease;
}

/* Hover: storia si ingrandisce, appare gradient e titolo – stesso mood di "altre stories" */
.cmw-hero-story:hover .cmw-hero-story-inner {
  transform: scale(1.03);
  box-shadow: 0 26px 58px rgba(0, 0, 0, 0.65);
}

.cmw-hero-story:hover .ai-hero-gradient {
  opacity: 1;
}

/* === LINEA DEL TEMPO EDIZIONI === */

/* === LINEA DEL TEMPO EDIZIONI === */

.cmw-timeline-section {
  min-height: 50vh;
  padding: 4rem 1.5rem 5rem;
  background: #111111;
  color: #ffffff;
  display: flex;
  overflow: visible !important;
}

.cmw-timeline-inner {
  max-width: 1180px;
  margin: 0 auto;
  width: 100%;
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: visible !important;
  /* riga titolo + riga che occupa il resto */
}

.cmw-timeline-title {
  padding-left: 0.5em;
  font-size: 2.2rem;
  margin: 0 0 1.5rem;
  font-weight: 700;
  margin-bottom: 7% !important;
}

/* wrapper che occupa tutto lo spazio sotto il titolo
   e centra verticalmente la linea */
.cmw-timeline-track-wrapper {
  position: relative;
  overflow: visible !important;
  padding-bottom: 1.5rem;
  display: flex;
  align-items: center;
  /* linea a metà della sezione */
}

/* nascondi scrollbar, opzionale */
.cmw-timeline-track-wrapper {
  scrollbar-width: none;
}

.cmw-timeline-track-wrapper::-webkit-scrollbar {
  display: none;
}

.cmw-timeline-track {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3.5rem;
  width: 100%;
  padding: 2rem 0;
}

/* MOBILE TIMELINE -> SLIDER */
@media (max-width: 900px) {
  .cmw-timeline-track::before {
    display: none;
  }

  .cmw-timeline-track-wrapper {
    overflow-x: auto !important;
    scroll-snap-type: x mandatory;
    padding-bottom: 20px;
  }

  .cmw-timeline-track {
    width: auto;
    gap: 1rem;
    padding: 0 1rem;
    justify-content: flex-start;
  }

  .cmw-timeline-point {
    scroll-snap-align: center;
    width: 280px;
    /* Larghezza card */
    margin: 0;
  }

  .cmw-timeline-dot,
  .cmw-timeline-number {
    display: none;
  }

  .cmw-timeline-card {
    position: static;
    opacity: 1;
    pointer-events: auto;
    transform: none;
    background: #cc3715 !important;
    width: 100%;
    max-width: none;
    margin-bottom: 0;
  }
}

.cmw-timeline-track::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  background: linear-gradient(to right,
      rgba(248, 250, 252, 0),
      rgba(248, 250, 252, 0.45),
      rgba(248, 250, 252, 0));
  transform: translateY(-50%);
  pointer-events: none;
}

.cmw-timeline-point {
  position: relative;
  flex: 0 0 auto;
  text-decoration: none;
  color: inherit;
}

/* Mobile Menu CTA Fix */
@media (max-width: 900px) {
  .cmw-mobile-cta {
    background-color: #cc3715 !important;
    color: #ffffff !important;
    margin: 1.5rem auto !important;
    display: inline-flex !important;
    width: fit-content;
    border: 1px solid #ffffff;
  }
}

/* Ensure Desktop CTA is hidden on mobile */
@media (max-width: 900px) {
  .cmw-header-cta:not(.cmw-mobile-cta) {
    display: none !important;
  }
}


.cmw-timeline-point::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 70px;
  /* larghezza area attiva */
  height: 160px;
  /* altezza verso l’alto */
  /* niente background: resta trasparente */
}

/* dot sulla linea */
.cmw-timeline-dot {
  display: block;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: #cc3715;
  box-shadow:
    0 0 0 4px rgba(239, 201, 132, 0.3),
    0 0 16px rgba(239, 201, 132, 0.7);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

/* card sopra il punto, un po’ più vicina */
.cmw-timeline-card {
  position: absolute;
  left: 50%;
  bottom: 2.4rem;
  /* se la vuoi ancora più vicina, scendi a 2rem o 1.8rem */
  transform: translateX(-50%) translateY(12px);
  opacity: 0;
  pointer-events: none;
  min-width: 260px;
  max-width: 320px;
  border-radius: 1.2rem;
  padding: 0.9rem;
  background: #cc3715 !important;
  color: white !important;
  border: 1px solid rgba(248, 250, 252, 0.12);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.6);
  display: flex;
  flex-direction: column;
  /* Vertical stack */
  gap: 0;
  /* Spacing handled by margins */
  align-items: stretch;
  /* Full width content */
  justify-content: center;
  transition: opacity 0.22s ease, transform 0.22s ease;
  z-index: 10;
}

.cmw-timeline-point:hover .cmw-timeline-number,
.cmw-timeline-point.is-active .cmw-timeline-number {
  color: #efc984;
}

/* hover: ingrandisci dot + mostra card */
/* DOT attivo + hover */
.cmw-timeline-point.is-active .cmw-timeline-dot,
.cmw-timeline-point:hover .cmw-timeline-dot {
  transform: scale(1.4);
  box-shadow:
    0 0 0 6px rgba(250, 204, 107, 0.28),
    0 0 24px rgba(250, 204, 107, 0.55);
}


.cmw-timeline-point:hover .cmw-timeline-card {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

/* ogni "punto" cliccabile */
.cmw-timeline-point {
  position: relative;
  flex: 0 0 auto;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* DOT base */
.cmw-timeline-dot {
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #cc3715;
  box-shadow: 0 0 0 0 rgba(250, 204, 107, 0.4);
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

/* card sopra il punto (tooltip) */
.cmw-timeline-card {
  position: absolute;
  left: 50%;
  bottom: 2.8rem;
  transform: translateX(-50%) translateY(12px);
  opacity: 0;
  pointer-events: none;
  min-width: 280px;
  /* Slightly wider */
  max-width: 340px;
  border-radius: 1.2rem;
  padding: 0.9rem;
  background: rgba(15, 23, 42, 0.97);
  border: 1px solid rgba(248, 250, 252, 0.12);
  box-shadow: 0 18px 45px rgba(0, 0, 0, 0.6);
  display: flex;
  flex-direction: column;
  /* Vertical stack */
  gap: 0;
  align-items: stretch;
  justify-content: center;
  transition: opacity 0.22s ease, transform 0.22s ease;
  z-index: 10;
}

/* mini poster */
.cmw-timeline-card-thumb {
  flex: 0 0 auto;
  width: 100%;
  aspect-ratio: 16 / 9;
  /* Force 16:9 */
  border-radius: 0.9rem;
  overflow: hidden;
  background: #020617;
}

.cmw-timeline-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* testo card */
.cmw-timeline-card-text {
  flex: 1;
  min-width: 0;
}

.cmw-timeline-card-title {
  font-size: 1rem;
  margin: 0 0 0.25rem;
  line-height: 1.3;
}

.cmw-timeline-card-subtitle {
  font-size: 0.8rem;
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.75;
}

/* hover interazione */
.cmw-timeline-point:hover .cmw-timeline-dot,
.cmw-timeline-point.is-active .cmw-timeline-dot {

  background: #efc984;
  transform: scale(1.7);
  box-shadow:
    0 0 0 6px rgba(239, 201, 132 0.25),
    0 0 22px rgba(239, 201, 132, 0.45);
}

.cmw-timeline-point:hover .cmw-timeline-card,
.cmw-timeline-point.is-active .cmw-timeline-card {
  opacity: 1;
  transform: translate(-50%, -1px) scale(1);
  pointer-events: auto;
}

/* responsive: se lo spazio è poco, stringiamo i gap */
@media (max-width: 800px) {
  .cmw-timeline-track {
    gap: 2.2rem;
  }

  .cmw-timeline-card {
    min-width: 230px;
    max-width: 260px;
  }
}

/* Numeri sotto i puntini della timeline */
.cmw-timeline-number {
  position: absolute;
  top: 20px;
  /* distanza verticale dal punto */
  left: 50%;
  transform: translateX(-50%);
  margin-top: 1rem;
  text-align: center;
  font-size: 0.85rem;
  font-weight: 600;
  color: #cc3715;
  /* colore base */
  transition: color 0.25s ease;
  pointer-events: none;
}

/* === TEMPLATE PAGINA CALABRIA MOVIE === */
/* CARD SPECIALI MEDIA-TEXT SOLO NEL TEMPLATE CMW */
body.page-template-page-template-cmw .wp-block-media-text,
.ai-article-content .wp-block-media-text {
  position: relative;
  display: block;
  max-width: 420px;
  /* regola a gusto */
  margin: 0 auto 2.5rem;
  border-radius: 50px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  /* quadrata */
  background: #000;
  /* fallback */
  transition: transform 0.28s ease, box-shadow 0.28s ease;
}

body.page-template-page-template-cmw .wp-block-media-text:hover,
.ai-article-content .wp-block-media-text:hover {
  transform: scale(1.1);
}

/* l’immagine riempie il quadrato */
body.page-template-page-template-cmw .wp-block-media-text__media,
body.page-template-page-template-cmw .wp-block-media-text__media img,
.ai-article-content .wp-block-media-text__media,
.ai-article-content .wp-block-media-text__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Overlay colorato CC3715 al 50% */
body.page-template-page-template-cmw .wp-block-media-text::before,
.ai-article-content .wp-block-media-text::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* Gradiente nero in basso per leggere il titolo */
body.page-template-page-template-cmw .wp-block-media-text::after,
.ai-article-content .wp-block-media-text::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 40%;
  background: linear-gradient(to top,
      rgba(0, 0, 0, 0.9),
      rgba(0, 0, 0, 0));
  z-index: 2;
}

/* Contenuto (titolo) sovrapposto all’immagine */
body.page-template-page-template-cmw .wp-block-media-text__content,
.ai-article-content .wp-block-media-text__content {
  position: absolute;
  left: 50%;
  bottom: 1.2rem;
  transform: translateX(-50%);
  width: calc(100% - 3rem);
  text-align: center;
  z-index: 3;
  margin: 0;
  padding: 0;
}

/* Titolo dentro il blocco */
body.page-template-page-template-cmw .wp-block-media-text__content .wp-block-heading,
.ai-article-content .wp-block-media-text__content .wp-block-heading {
  margin: 0;
  font-size: 1.5rem;
  /* regola se lo vuoi più grande */
  font-weight: bold;
  color: #ffffff;
}

/* Opzionale: su mobile un filo più piccolo */
@media (max-width: 600px) {

  body.page-template-page-template-cmw .wp-block-media-text__content .wp-block-heading,
  .ai-article-content .wp-block-media-text__content .wp-block-heading {
    font-size: 0.95rem;
  }
}

/* --- CARD MEDIA-TEXT: i paragrafi sono nascosti nella card --- */
body.page-template-page-template-cmw .wp-block-media-text__content p,
.ai-article-content .wp-block-media-text__content p {
  display: none;
}

/* — MODAL PERSONA — */
.cmw-person-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  /* PRIMA: display: none; ora sempre flex ma “spento” di base */
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: inherit;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  /* fade + leggero movimento globale se vuoi */
  transition:
    opacity 0.35s ease,
    visibility 0.35s ease;
}

/* stato aperto: lo vedo e riceve click */
.cmw-person-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* backdrop invariato, ma ora “eredita” il fade dal parent */
.cmw-person-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
}

/* dialog: entra dal basso e si ingrandisce */
.cmw-person-modal__dialog {
  position: relative;
  z-index: 1;
  width: 80vw;
  max-height: 80vh;
  background: #ffffff;
  border-radius: 50px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.7);
  padding: 3rem;
  display: flex;
  flex-direction: row;
  gap: 2rem;

  /* stato base (quando il modal NON è open) */
  transform: translateY(40px) scale(0.9);
  opacity: 0;
  transition:
    transform 0.4s cubic-bezier(0.22, 0.61, 0.36, 1),
    opacity 0.4s ease;
}

/* quando il modal è aperto: il box sale e si ingrandisce */
.cmw-person-modal.is-open .cmw-person-modal__dialog {
  transform: translateY(0) scale(1);
  opacity: 1;
}

/* layout interno: testo + immagine */
.cmw-person-modal__inner {
  display: flex;
  flex: 1;
  gap: 2rem;
  align-items: stretch;

  /* contenuto che appare “dopo” il dialog */
  opacity: 0;
  transform: translateY(10px);
  transition:
    opacity 0.3s ease 0.12s,
    transform 0.3s ease 0.12s;
}

/* quando aperto: il contenuto si accende */
.cmw-person-modal.is-open .cmw-person-modal__inner {
  opacity: 1;
  transform: translateY(0);
}

/* colonna testo */
.cmw-person-modal__text {
  flex: 1 1 55%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  overflow-y: auto;
  padding-right: 0.5rem;
  padding-top: 0.5rem;
}

.cmw-person-modal__name {
  font-weight: bold;
  color: #cc3715;
  margin: 0;
  font-size: 2rem;
}

.cmw-person-modal__bio p {
  color: black;
  margin: 0 0 0.7rem;
  line-height: 1.6;
  font-size: 0.98rem;
}

.cmw-person-modal__bio a {
  color: #cc3715;
  font-weight: bold;
}

.cmw-person-modal__bio a:hover {
  color: black;
}

/* colonna immagine */
.cmw-person-modal__image-wrap {
  position: relative;
  flex: 0 0 40%;
  border-radius: 40px;
  overflow: hidden;
  background: #000;
}

.cmw-person-modal__image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


/* bottone chiudi */
.cmw-person-modal__close {
  z-index: 9999999 !important;
  position: absolute !important;
  top: 1.6rem !important;
  left: 2.6rem !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 999px !important;
  border: none !important;
  background: #cc3715 !important;
  color: #cc3715 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
}

.cmw-person-modal__close:hover {
  width: 24px !important;
  height: 24px !important;
  color: white !important;
  transform: scale(1.1);
}

/* responsive */
@media (max-width: 800px) {
  .cmw-person-modal__dialog {
    flex-direction: column-reverse;
    padding: 1.8rem 1.5rem;
  }

  .cmw-person-modal__inner {
    flex-direction: column-reverse;
  }

  .cmw-person-modal__image-wrap {
    flex: 0 0 auto;
    width: 100%;
  }
}

/* Limita l’altezza complessiva del dialog */
.cmw-person-modal__dialog {
  max-height: 90vh;
  overflow: hidden;
}

/* L’inner prende lo spazio disponibile */
.cmw-person-modal__inner {
  max-height: calc(90vh - 3.5rem);
}

/* Colonna testo scrollabile – già ok */
.cmw-person-modal__text::-webkit-scrollbar {
  width: 6px;
}

.cmw-person-modal__text::-webkit-scrollbar-track {
  background: transparent;
}

.cmw-person-modal__text::-webkit-scrollbar-thumb {
  background: rgba(239, 201, 132, 0.8);
  border-radius: 999px;
}

/* Wrapper delle card persone/eventi */
.cmw-person-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0rem 2rem;
  margin: 0 auto;
}

/* Assicuriamoci che la card occupi la cella intera */
.cmw-person-grid .wp-block-media-text {
  margin: 0;
  /* niente margin esterno, ci pensa il gap della grid */
}

/* Tablet: 2 colonne */
@media (max-width: 1024px) {
  .cmw-person-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile: 1 colonna */
@media (max-width: 640px) {
  .cmw-person-grid {
    grid-template-columns: 1fr;
  }
}

.cmw-page-wrapper {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #111827;
}

/* HERO PAGINA */
.cmw-page-hero {
  position: relative;
  min-height: 60vh;
  /* 100vh come richiesto */
  padding: 6rem 1.5rem 4rem;
  display: flex;
  align-items: center;
  /* centra verticalmente */
  justify-content: center;
  /* centra orizzontalmente il contenuto */
  background-color: #0b1120;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}

/* overlay nero 50% */
.cmw-page-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.66);
  /* 50% nero */
  pointer-events: none;
}

.cmw-page-hero-inner {
  padding-top: calc(2.5rem + 2vh);
  /* +5vh verso il basso */
  position: relative;
  z-index: 1;
  max-width: 1180px;
  width: 100%;
  display: flex;
  justify-content: center;
  text-align: center;
  /* testi centrati */
}

.cmw-page-hero-text {
  max-width: 780px;
  margin: 0 auto;
}

/* Title H1 */
.cmw-page-hero-title {
  margin: 0 0 0.75rem;
  font-size: clamp(2.4rem, 3.6vw + 0.8rem, 3.5rem);
  line-height: 1.05;
  font-weight: 800;
  color: #ffffff;
  /* bianco pieno */
}

/* Subtitle H2 (estratto) */
.cmw-page-hero-subtitle {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.7;
  color: #ffffff;
  /* anche il sottotitolo bianco */
  max-width: 620px;
  opacity: 0.95;
}

/* BLOCCO CONTENUTO: tutto bianco, senza ombre */

.cmw-page-content-section {
  background: #ffffff;
  /* niente grigio, tutto bianco */
}

.cmw-page-content-inner {
  max-width: 1200px;
  margin: 0 auto;
  background: #ffffff;
  /* corpo su bianco */
  border-radius: 0;
  /* se vuoi puoi rimettere 1.8rem */
  padding: 2.5rem 2.3rem 3rem;
  box-shadow: none;
  /* niente ombra */
}

/* tipografia contenuto */
.cmw-page-content {
  font-size: 1.02rem;
  line-height: 1.8;
  color: #111827;
}

.cmw-page-content h2,
.cmw-page-content h3,
.cmw-page-content h4 {
  margin-top: 1rem;
  margin-bottom: 0.75rem;
}

.cmw-page-content p {
  margin-bottom: 1rem;
}

.cmw-page-content ul,
.cmw-page-content ol {
  margin: 0 0 1.25rem 1.25rem;
}

/* Responsive */
@media (max-width: 768px) {
  .cmw-page-hero {
    padding: 5rem 1.25rem 3rem;
    min-height: 100vh;
    /* resta full vh anche su mobile */
  }

  .cmw-page-content-inner {
    padding: 1.8rem 1.5rem 2.3rem;
  }
}

.cmw-page-content-section a {
  color: #cc3715 !important;
}

.cmw-page-content-section h2 {
  margin-bottom: 1em;
}

.cmw-page-content-section a:hover {
  color: #000000 !important;
}

/* ===== HEADER CALABRIA MOVIE ===== */

.cmw-header {
  position: fixed;
  width: 100%;
  z-index: 50;
  background: #cc3715;
  height: 8vh;
  /* altezza 20% viewport */
  min-height: 80px;
  /* per non schiacciarsi troppo su schermi bassi */
  display: flex;
  align-items: center;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.45);
  /* ombra verso il basso */
}

.cmw-header-inner {
  max-width: 1440px;
  width: 100%;
  margin: 0 auto;
  padding: 0 2.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.5rem;
}

/* Logo */
.cmw-header-logo img {
  display: block;
  height: 7vh;
  width: auto;
}

/* Nav + voci di menu */
.cmw-main-nav {
  flex: 1 1 auto;
}

.cmw-menu {
  display: flex;
  justify-content: center;
  gap: 2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.cmw-menu a {
  color: #efc984;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: normal;
  /* niente tracking esagerato */
  padding: 0.25rem 0;
  position: relative;
}

.cmw-menu a:hover {
  color: #ffffff;
}

/* sottolineatura soft in hover */
.cmw-menu a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.25rem;
  width: 0;
  height: 2px;
  background: #fbe9c4;
  transition: width 0.2s ease;
}

.cmw-menu a:hover::after,
.cmw-menu .current-menu-item>a::after {
  width: 100%;
}

/* CTA a destra */
.cmw-header-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 1.8rem;
  /* un filo più piccolo */
  border-radius: 999px;
  background: #efc984;
  color: #cc3715;
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  border: 1px solid transparent;
  text-decoration: none;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
}

.cmw-header-cta-arrow {
  margin-right: -0.5rem;
  margin-left: 0.5rem;
  font-size: 1.1em;
  transition: transform 0.2s ease;
}

/* HAMBURGER */
.cmw-hamburger {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 30px;
  height: 22px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 60;
}

.cmw-hamburger span {
  display: block;
  width: 100%;
  height: 3px;
  background: #efc984;
  /* Colore giallo */
  border-radius: 4px;
  transition: all 0.3s ease;
}

@media (max-width: 900px) {
  .cmw-hamburger {
    display: flex;
  }

  .cmw-main-nav {
    /* Hide nav by default on mobile, handled by JS toggling .is-open class on a wrapper normally, 
            but assuming cmw-mobile-menu.js handles opening/closing or display */
    /* Actually cmw-main-nav likely contains the menu. We rely on JS to show/hide it or style it as a drawer */
  }
}



/* Hover CTA */
.cmw-header-cta:hover {
  background: #cc3715;
  /* sfondo cc3715 */
  color: #ffffff;
  /* testo bianco */
  border-color: #ffffff;
  /* bordo bianco */
  transform: scale(1.06);
  /* cresce un po' */
}

/* Mobile basic (puoi raffinarlo più avanti) */
@media (max-width: 900px) {
  .cmw-header-inner {
    gap: 1.5rem;
    padding-inline: 1.5rem;
  }

  .cmw-menu {
    gap: 1rem;
    font-size: 0.8rem;
  }

  .cmw-header-cta {
    padding: 0.45rem 1.4rem;
    font-size: 0.8rem;
  }
}

/* === SPLASH SCREEN CALABRIA MOVIE === */
/* === SPLASH SCREEN CALABRIA MOVIE === */

#cmw-splash {
  position: fixed;
  inset: 0;
  background: #cc3715;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

#cmw-splash.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.cmw-splash-inner {
  text-align: center;
  padding: 2rem 3rem;
  border-radius: 32px;
}

.cmw-splash-logo {
  display: block;
  max-width: 260px;
  height: auto;
  margin: 0 auto 1.5rem;
}

.cmw-splash-label {
  margin: 0;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #efc984;
  opacity: 0.9;
}

/* Progress container */
.cmw-splash-progress {
  margin-top: 1.5rem;
  width: 260px;
  max-width: 80vw;
  height: 4px;
  border-radius: 999px;
  background: rgba(239, 201, 132, 0.35);
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
}

/* Barra animata */
.cmw-splash-progress-bar {
  width: 0%;
  height: 100%;
  background: #efc984;
  border-radius: inherit;
}

/* mobile */
@media (max-width: 600px) {
  .cmw-splash-inner {
    padding: 1.5rem 2rem;
    border-radius: 24px;
  }

  .cmw-splash-logo {
    max-width: 200px;
  }

  .cmw-splash-label {
    font-size: 0.8rem;
  }
}

/* =========================================================
   OFFICIAL SELECTION
   ========================================================= */

/* HERO */
.cmw-offsel-hero {
  position: relative;
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5rem 6vw 4rem;
  color: #f9fafb;
  background-color: #000;
  background-size: cover;
  background-position: center;
}

.cmw-offsel-hero-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}

.cmw-offsel-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 820px;
  text-align: center;
}

.cmw-offsel-title {
  margin: 0 0 0.6rem;
  font-size: clamp(3.55rem, 5vw + 1rem, 3.4rem);
  font-weight: bold;
}

.cmw-offsel-subtitle {
  margin: 0;
  font-size: 1.2rem;
}

/* CARD SLIDER – dimensioni + ombre */

.cmw-offsel-slider-section {
  position: relative;
  overflow-x: hidden;
  /* blocca lo scroll orizzontale della PAGINA */
  overflow-y: visible;
  /* lascia vivere le ombre */
}

.cmw-offsel-slider {
  display: flex;
  gap: 2rem;
  padding: 0 6vw 1.2rem;
  overflow-x: auto;
  /* scroll solo dentro lo slider */
  overflow-y: visible;
  scroll-snap-type: x mandatory;

  /* nascondi scrollbar Firefox */
  scrollbar-width: none;
}

/* nascondi scrollbar WebKit */
.cmw-offsel-slider::-webkit-scrollbar {
  height: 0;
}

.cmw-offsel-item {
  flex: 0 0 640px;
  margin-top: 2em;
  margin-bottom: 2em;
  /* dimensione più grande ma non mostruosa :) */
  scroll-snap-align: start;
  cursor: pointer;
}

/* Card 16:9 con ombre */
.cmw-offsel-media {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: 50px;
  overflow: hidden;
  background: #000;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

/* immagine */
.cmw-offsel-media img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  position: relative;
  z-index: 1;
}


/* gradiente nero dal basso in alto per il titolo */
.cmw-offsel-media-gradient,
.cmw-offsel-media-gradient {
  position: absolute;
  inset: auto 0 0 0;
  height: 45%;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.95), rgba(0, 0, 0, 0));
  z-index: 3;
}

.cmw-offsel-film-title {
  position: absolute;
  left: 50%;
  bottom: 1rem;
  transform: translateX(-50%);
  margin: 0;
  padding: 0 1.2rem;
  font-size: 2rem;
  color: #ffffff;
  font-weight: bold;
  text-align: center;
  z-index: 4;
}

/* Hover = ingrandisce di più */
.cmw-offsel-item:hover .cmw-offsel-media {
  transform: translateY(-8px) scale(1.05);
}

/* mobile */
@media (max-width: 768px) {
  .cmw-offsel-slider {
    padding-inline: 1.5rem;
  }

  .cmw-offsel-item {
    flex-basis: 75vw;
  }
}

/* Fade bianco a sinistra/destra come nelle altre stories */
.cmw-offsel-slider-section::before,
.cmw-offsel-slider-section::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 80px;
  pointer-events: none;
  z-index: 10;
}

/* cambia #ffffff se il background della pagina non è bianco */
.cmw-offsel-slider-section::before {
  left: 0;
  background: linear-gradient(to right, #ffffff, rgba(255, 255, 255, 0));
}

.cmw-offsel-slider-section::after {
  right: 0;
  background: linear-gradient(to left, #ffffff, rgba(255, 255, 255, 0));
}

/* =========================================================
   MODAL OFFICIAL SELECTION
   ========================================================= */

.cmw-offsel-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  /* .is-open per mostrarlo */
  align-items: center;
  justify-content: center;
  font-family: inherit;
}

.cmw-offsel-modal.is-open {
  display: flex;
}

.cmw-offsel-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
}

/* dialog con bg immagine + overlay */
.cmw-offsel-modal__dialog {
  position: relative;
  z-index: 1;
  width: 80vw;
  max-width: 1500px;
  max-height: 90vh;
  border-radius: 50px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.7);
  background: #000;
  padding-bottom: 2rem;
}

.cmw-offsel-modal__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  filter: grayscale(0.2);
  opacity: 0.4;
}

.cmw-offsel-modal__inner {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 2rem;
  padding: 2.6rem;
}

/* poster sinistra */
.cmw-offsel-modal__poster-wrap {
  flex: 0 0 40%;
  border-radius: 40px;
  overflow: hidden;
  background: #000;
}

.cmw-offsel-modal__poster-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* testo destra, scrollabile */
.cmw-offsel-modal__text {
  flex: 1 1 55%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  color: #f9fafb;
  max-height: calc(90vh - 4rem);
  overflow-y: auto;
}

.cmw-offsel-modal__title {
  margin: 0 0 0.5rem;
  font-size: 3rem;
  font-weight: bold;
  color: white;
}

.cmw-offsel-modal__body p {
  margin: 0 0 0.7rem;
  line-height: 1.6;
  font-size: 0.98rem;
}

.cmw-offsel-modal__body a {
  color: #efc984;
  font-weight: 600;
}

.cmw-offsel-modal__body a:hover {
  color: #ffffff;
}

/* responsive modal */
@media (max-width: 900px) {
  .cmw-offsel-modal__inner {
    flex-direction: column;
    padding: 1.8rem 1.5rem 2.1rem;
  }

  .cmw-offsel-modal__poster-wrap {
    flex: 0 0 auto;
    width: 100%;
    max-height: 40vh;
  }

  .cmw-offsel-modal__text {
    max-height: none;
  }
}

.cmw-offsel-modal__close {
  z-index: 9999999 !important;
  position: absolute !important;
  top: 1.6rem !important;
  right: 2.6rem !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 999px !important;
  border: none !important;
  background: #efc984 !important;
  color: #efc984 !important;
  /* se vuoi vedere la X metti #ffffff */
  font-size: 1rem !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: width 0.15s ease, height 0.15s ease, transform 0.15s ease, color 0.15s ease;
}

.cmw-offsel-modal__close:hover {
  width: 24px !important;
  height: 24px !important;
  color: #cc3715 !important;
  transform: scale(1.1);
}

/* BOX poster */
.cmw-offsel-modal__image-wrap {
  flex: 0 0 40%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 2rem 0;
  /* SPAZIO SOPRA+SOTTO */
  align-items: center;
}

/* POSTER: niente stretch */
.cmw-offsel-modal__image-wrap img#cmw-offsel-modal-poster {
  width: auto;
  max-width: 100%;
  /* non esce dai bordi */
  height: auto;
  /* mantiene aspect ratio */
  object-fit: contain;
}

/* =========================================
   GENERIC INFO MODAL (DARK THEME)
   Based on .cmw-offsel-modal structure
   ========================================= */

.cmw-info-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  /* Higher than sticky headers */
  display: none;
  align-items: center;
  justify-content: center;
  font-family: inherit;
}

.cmw-info-modal.is-open {
  display: flex;
  opacity: 1;
  /* Ensure visibility if animated */
}

.cmw-info-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(5px);
}

.cmw-info-modal__dialog {
  position: relative;
  z-index: 2;
  width: 90vw;
  max-width: 1100px;
  max-height: 90vh;
  background: #020617;
  border: 1px solid rgba(204, 55, 21, 0.3);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.9), 0 0 40px rgba(204, 55, 21, 0.08);
  display: flex;
  flex-direction: column;
}

.cmw-info-modal__close {
  position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border: none;
  cursor: pointer;
  z-index: 10;
  transition: all 0.2s ease;
}

.cmw-info-modal__close:hover {
  background: #efc984;
  /* CMW Gold */
  color: #000;
  transform: rotate(90deg);
}

.cmw-info-modal__inner {
  display: flex;
  flex-direction: row;
  height: 100%;
  overflow: hidden;
}

/* LEFT COL (IMAGE) */
.cmw-info-modal__image-wrap {
  flex: 0 0 40%;
  background: #000;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cmw-info-modal__image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  opacity: 1;
}

/* RIGHT COL (TEXT) */
.cmw-info-modal__text {
  flex: 1;
  padding: 3rem;
  overflow-y: auto;
  color: #e5e5e5;
}

.cmw-info-modal__title {
  font-size: 2.5rem;
  font-weight: 800;
  margin-bottom: 1.5rem;
  color: #fff;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: -0.02em;
}

.cmw-info-modal__body {
  font-size: 1.1rem;
  line-height: 1.7;
  color: #d4d4d4;
}

.cmw-info-modal__body p {
  margin-bottom: 1rem;
}

.cmw-info-modal__body ul,
.cmw-info-modal__body ol {
  margin-left: 1.5rem;
  margin-bottom: 1.5rem;
  list-style-type: disc;
}

.cmw-info-modal__body li {
  margin-bottom: 0.5rem;
}

.cmw-info-modal__body strong {
  color: #fff;
}

/* RESPONSIVE */
@media (max-width: 900px) {
  .cmw-info-modal__inner {
    flex-direction: column;
    overflow-y: auto;
    /* Scroll entire inner container on mobile */
  }

  .cmw-info-modal__image-wrap {
    flex: 0 0 250px;
    /* Fixed height for image on mobile */
    min-height: 250px;
  }

  .cmw-info-modal__text {
    padding: 2rem;
    overflow-y: visible;
    /* Let container scroll */
  }

  .cmw-info-modal__title {
    font-size: 2rem;
  }
}

.cmw-footer-top {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.8fr) minmax(0, 1.4fr);
  gap: 2rem;
  align-items: center;
  padding-bottom: 2.5rem;
}

.cmw-footer-col-logo img {
  max-width: 220px;
  height: auto;
}

.cmw-footer-col-text h4 {
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #efc984;
}

.cmw-footer-col-text p {
  margin: 0;
  line-height: 1.6;
}

/* Newsletter */
.cmw-footer-newsletter-label {
  display: block;
  margin-bottom: 0.6rem;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cmw-footer-newsletter-form {
  display: flex;
  gap: 0.6rem;
}

.cmw-footer-newsletter-input {
  flex: 1;
  padding: 0.5rem 0.8rem;
  border-radius: 6px;
  border: 1px solid #555;
  background: #332a1a;
  color: #f9f9f9;
}

.cmw-footer-newsletter-input::placeholder {
  color: #c8b8a0;
}

.cmw-footer-newsletter-btn {
  padding: 0.5rem 1.4rem;
  border-radius: 999px;
  border: none;
  background: #cc3715;
  color: #fff;
  font-size: 0.85rem;
  cursor: pointer;
}

/* === FOOTER BAR STYLE === */
.cmw-footer-bottom {
  width: 100%;
  background: #444444;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.footer-content {
  width: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-decoration: none;
  cursor: pointer;
}

.logo {
  width: 20px;
  height: auto;
  cursor: pointer;
  transition: transform 0.5s ease-in-out;
  z-index: 2;
}

.logotitolo,
.made-possible {
  opacity: 0;
  position: absolute;
  transition: transform 0.5s ease, opacity 0.5s ease;
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  color: #ffffff;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.01em;
  white-space: nowrap;
  pointer-events: none;
}

/* Posizioni iniziali */
.logotitolo {
  min-width: 100px;
  left: 50%;
  transform: translateX(0);
  margin-left: 7px;
  text-align: left;
  font-weight: 700; /* "denkhub" — Inter Bold */
  font-size: 15px;  /* leggermente più grande di "made possible by" */
}

.made-possible {
  min-width: 100px;
  right: 50%;
  transform: translateX(0);
  margin-right: 7px;
  text-align: right;
  font-weight: 400; /* "made possible by" — Inter Regular */
}

/* Hover Animations */
.footer-content:hover .logo {
  transform: rotate(360deg);
}

.footer-content:hover .logotitolo {
  opacity: 1;
  transform: translateX(10px);
}

.footer-content:hover .made-possible {
  opacity: 1;
  transform: translateX(-10px);
}

/* Reverse Animation */
.footer-content:not(:hover) .logotitolo,
.footer-content:not(:hover) .made-possible {
  transition: transform 0.5s ease-in-out, opacity 0.5s ease-in-out;
}

/* === MOBILE HAMBURGER MENU === */
.cmw-hamburger {
  display: none;
  /* hidden on desktop */
  background: none;
  border: none;
  cursor: pointer;
  flex-direction: column;
  justify-content: space-around;
  width: 30px;
  height: 24px;
  padding: 0;
  z-index: 10001;
  /* sopra il menu aperto */
}

.cmw-hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: #efc984;
  /* colore linee aggiornato */
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Animazione Hamburger 'X' */
.cmw-hamburger.is-active span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.cmw-hamburger.is-active span:nth-child(2) {
  opacity: 0;
}

.cmw-hamburger.is-active span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

@media (max-width: 900px) {
  .cmw-hamburger {
    display: flex;
  }

  /* Nascondi il menu normale e trasformalo in overlay */
  .cmw-main-nav {
    position: fixed;
    inset: 0;
    background: #000000;
    /* sfondo menu mobile */
    z-index: 10000;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem;

    /* Stato chiuso: nascosto/fuori schermo */
    opacity: 0;
    visibility: hidden;
    transform: translateY(-20px);
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
  }

  .cmw-main-nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  /* Stile link nel menu mobile */
  .cmw-main-nav .cmw-menu {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
  }

  .cmw-main-nav a {
    font-size: 1.5rem;
    color: #ffffff;
  }

  /* Nascondi bottone header CTA originale */
  .cmw-header-cta {
    display: none;
  }

  /* Mostra CTA Mobile (che sarà dentro la nav) */
  .cmw-mobile-cta {
    display: inline-flex !important;
    /* forza visibilità */
    margin-top: 2rem;
    background: #efc984;
    color: #000;
    padding: 0.8rem 1.5rem;
    border-radius: 30px;
    font-weight: bold;
    text-decoration: none;
    align-items: center;
    gap: 0.5rem;
  }
}

/* === MOBILE HERO: NASCONDI STORIES === */
@media (max-width: 900px) {
  .cmw-hero-story {
    display: none !important;
  }

  .cmw-home-hero {
    padding-top: 120px;
    /* compenso fixed header */
    min-height: 70vh;
    /* riduco altezza */
  }

  .cmw-hero-inner {
    justify-content: center;
    text-align: center;
    height: auto;
    /* reset */
  }

  .cmw-hero-left {
    max-width: 100%;
    margin: 0 auto;
  }
}

/* === MOBILE TIMELINE: SLIDER (Horizontal Swipe) === */
@media (max-width: 900px) {
  .cmw-timeline-track::before {
    display: none;
  }

  .cmw-timeline-track-wrapper {
    overflow-x: auto !important;
    scroll-snap-type: x mandatory;
    padding-bottom: 20px;
    display: block;
    /* Ensure it's a block container for scrolling */
  }

  .cmw-timeline-track {
    width: max-content;
    /* Allow track to grow horizontally */
    gap: 1.5rem;
    padding: 0 1.5rem;
    justify-content: flex-start;
    flex-direction: row;
    /* FORCE ROW */
    flex-wrap: nowrap;
    /* Ensure no wrapping */
    align-items: stretch;
  }

  .cmw-timeline-point {
    flex: 0 0 auto;
    /* Ensure items don't shrink */
    scroll-snap-align: center;
    width: 280px;
    /* Larghezza card */
    margin: 0;
    display: flex;
    flex-direction: column;
    opacity: 1;
    /* Always visible */
  }

  /* Hide dot/number in slider mode if desired, OR keep them above. 
     User wanted "horizontal timeline" but as a slider.
     If we keep dots, they might look weird without the line. 
     Let's hide the dots/numbers to focus on the cards as requested "slider swipeable" */
  .cmw-timeline-dot,
  .cmw-timeline-number {
    display: none;
  }

  /* Card becomes the main element */
  .cmw-timeline-card {
    position: relative;
    /* Static position in flow */
    left: auto;
    bottom: auto;
    transform: none;
    background: #cc3715 !important;
    width: 100%;
    max-width: none;
    margin-bottom: 0;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    display: flex;
  }

  .cmw-timeline-point.is-active .cmw-timeline-card {
    opacity: 1;
    transform: none;
  }
}


/* === MOBILE HAMBURGER MENU === */
/* FORCE HIDE ON DESKTOP - HIGH SPECIFICITY */
body .cmw-hamburger {
  display: none !important;
  background: none;
  border: none;
  cursor: pointer;
  flex-direction: column;
  justify-content: space-around;
  width: 30px;
  height: 24px;
  padding: 0;
  z-index: 10001;
  /* sopra il menu aperto */
}

.cmw-hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: #efc984;
  /* colore linee aggiornato */
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Animazione Hamburger 'X' */
.cmw-hamburger.is-active span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
  background: #efc984 !important;
  /* Forza Giallo su rosa elementor */
}

.cmw-hamburger.is-active span:nth-child(2) {
  opacity: 0;
}

.cmw-hamburger.is-active span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
  background: #efc984 !important;
  /* Forza Giallo */
}

@media (max-width: 900px) {
  body .cmw-hamburger {
    display: flex !important;
  }

  /* Nascondi il menu normale e trasformalo in overlay */
  .cmw-main-nav {
    position: fixed;
    inset: 0;
    background: #cc3715 !important;
    /* ARANCIONE RICHIESTO */
    z-index: 10000;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem;

    /* Stato chiuso: nascosto/fuori schermo */
    opacity: 0;
    visibility: hidden;
    transform: translateY(-20px);
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
  }

  .cmw-main-nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  /* Stile link nel menu mobile */
  .cmw-main-nav .cmw-menu {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
  }

  .cmw-main-nav .cmw-menu li {
    display: block;
  }

  .cmw-main-nav a {
    font-size: 1.5rem;
    color: #efc984 !important;
    /* GIALLO RICHIESTO */
    font-weight: bold;
    text-decoration: none;
    display: block;
  }

  /* Nascondi bottone header CTA originale */
  .cmw-header-cta {
    display: none;
  }

  /* Mostra CTA Mobile: Stile originale (Giallo con testo Rosso/Nero) */
  .cmw-mobile-cta {
    display: inline-flex !important;
    /* forza visibilità */
    margin-top: 2rem;
    background: #efc984 !important;
    /* Giallo */
    color: #cc3715 !important;
    /* Rosso/Arancio scuro */
    padding: 0.8rem 1.8rem;
    border-radius: 999px;
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    align-items: center;
    gap: 0.5rem;
  }

  .cmw-mobile-cta:hover {
    background: #ffffff !important;
    color: #cc3715 !important;
  }
}

/* === MOBILE HERO: NASCONDI STORIES === */
@media (max-width: 900px) {
  .cmw-hero-story {
    display: none !important;
  }

  .cmw-home-hero {
    padding-top: 120px;
    /* compenso fixed header */
    min-height: 70vh;
    /* riduco altezza */
  }

  .cmw-hero-inner {
    justify-content: center;
    text-align: center;
    height: auto;
    /* reset */
  }

  .cmw-hero-left {
    max-width: 100%;
    margin: 0 auto;
  }
}

/* === MOBILE TIMELINE: VERTICALE === */
@media (max-width: 900px) {
  .cmw-timeline-track {
    flex-direction: column;
    align-items: flex-start;
    /* allinea a sinistra */
    gap: 6rem;
    /* aumentato gap */
    padding-left: 2rem;
    /* spazio per la linea */
    padding-top: 2rem;
    /* aria sopra */
    padding-bottom: 2rem;
  }

  /* Linea verticale */
  .cmw-timeline-track::before {
    left: 7px;
    /* centra nella pallina (pallina ~16px) */
    top: 0;
    bottom: 0;
    right: auto;
    width: 2px;
    height: 100%;
    transform: none;
    background: linear-gradient(to bottom,
        rgba(255, 255, 255, 0),
        rgba(255, 255, 255, 0.3) 10%,
        rgba(255, 255, 255, 0.3) 90%,
        rgba(255, 255, 255, 0));
  }

  /* I punti (link) */
  .cmw-timeline-point {
    flex-direction: row;
    align-items: center;
    width: 100%;
    gap: 1.5rem;
    margin-bottom: 2rem;
    /* spaziatura extra */
  }

  /* Modifica: pallina a sinistra */
  .cmw-timeline-dot {
    position: relative;
    left: auto;
    flex: 0 0 16px;
    margin-left: -2.5rem;
    /* tira fuori dal padding del container */
  }

  .cmw-timeline-number {
    position: relative;
    top: 0;
    left: auto;
    transform: none;
    margin: 0;
    margin-right: 1rem;
    order: -1;
    color: #efc984;
    font-size: 0.8rem;
  }

  /* Card: posizionata relativa sotto o accanto? */
  .cmw-timeline-card {
    position: relative;
    left: auto;
    bottom: auto;
    transform: none;
    pointer-events: auto;
    margin-top: 1rem;
    max-width: 100%;
    width: 100%;
    /* full width */
    display: flex;
    opacity: 0;
    visibility: visible;
  }

  .cmw-timeline-point.is-active .cmw-timeline-card {
    display: flex;
    opacity: 1;
    animation: fadeIn 0.3s ease;
  }

  /* Fix Gradient Slider Mobile */
  .ai-hero-gradient {
    background-size: cover;
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.cmw-hamburger span {
  display: block;
  width: 100%;
  height: 2px;
  background: #efc984;
  /* colore linee aggiornato */
  transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Animazione Hamburger 'X' */
.cmw-hamburger.is-active span:nth-child(1) {
  transform: translateY(8px) rotate(45deg);
}

.cmw-hamburger.is-active span:nth-child(2) {
  opacity: 0;
}

.cmw-hamburger.is-active span:nth-child(3) {
  transform: translateY(-8px) rotate(-45deg);
}

@media (max-width: 900px) {
  .cmw-hamburger {
    display: flex;
  }

  /* Nascondi il menu normale e trasformalo in overlay */
  .cmw-main-nav {
    position: fixed;
    inset: 0;
    background: #000000;
    /* sfondo menu mobile */
    z-index: 10000;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem;

    /* Stato chiuso: nascosto/fuori schermo */
    opacity: 0;
    visibility: hidden;
    transform: translateY(-20px);
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease;
  }

  .cmw-main-nav.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }

  /* Stile link nel menu mobile */
  .cmw-main-nav .cmw-menu {
    flex-direction: column;
    align-items: center;
    gap: 2rem;
  }

  .cmw-main-nav a {
    font-size: 1.5rem;
    color: #ffffff;
  }

  /* Nascondi bottone header CTA originale */
  .cmw-header-cta {
    display: none;
  }

  /* Mostra CTA Mobile (che sarà dentro la nav) */
  .cmw-mobile-cta {
    display: inline-flex !important;
    /* forza visibilità */
    margin-top: 2rem;
    background: #efc984;
    color: #000;
    padding: 0.8rem 1.5rem;
    border-radius: 30px;
    font-weight: bold;
    text-decoration: none;
    align-items: center;
    gap: 0.5rem;
  }
}

/* === MOBILE HERO: NASCONDI STORIES === */
@media (max-width: 900px) {
  .cmw-hero-story {
    display: none !important;
  }

  .cmw-home-hero {
    padding-top: 120px;
    /* compenso fixed header */
    min-height: 70vh;
    /* riduco altezza */
  }

  .cmw-hero-inner {
    justify-content: center;
    text-align: center;
    height: auto;
    /* reset */
  }

  .cmw-hero-left {
    max-width: 100%;
    margin: 0 auto;
  }
}

/* === MOBILE TIMELINE: VERTICALE === */
@media (max-width: 900px) {
  .cmw-timeline-track {
    flex-direction: column;
    align-items: flex-start;
    /* allinea a sinistra */
    gap: 6rem;
    /* aumentato gap */
    padding-left: 2rem;
    /* spazio per la linea */
    padding-top: 2rem;
    /* aria sopra */
    padding-bottom: 2rem;
  }

  /* Linea verticale */
  .cmw-timeline-track::before {
    left: 7px;
    /* centra nella pallina (pallina ~16px) */
    top: 0;
    bottom: 0;
    right: auto;
    width: 2px;
    height: 100%;
    transform: none;
    background: linear-gradient(to bottom,
        rgba(255, 255, 255, 0),
        rgba(255, 255, 255, 0.3) 10%,
        rgba(255, 255, 255, 0.3) 90%,
        rgba(255, 255, 255, 0));
  }

  /* I punti (link) */
  .cmw-timeline-point {
    flex-direction: row;
    align-items: center;
    width: 100%;
    gap: 1.5rem;
    margin-bottom: 2rem;
    /* spaziatura extra */
  }

  /* Modifica: pallina a sinistra */
  .cmw-timeline-dot {
    position: relative;
    left: auto;
    flex: 0 0 16px;
    margin-left: -2.5rem;
    /* tira fuori dal padding del container */
  }

  .cmw-timeline-number {
    position: relative;
    top: 0;
    left: auto;
    transform: none;
    margin: 0;
    margin-right: 1rem;
    order: -1;
    color: #efc984;
    font-size: 0.8rem;
  }

  /* Card: posizionata relativa sotto o accanto? */
  .cmw-timeline-card {
    position: relative;
    left: auto;
    bottom: auto;
    transform: none;
    pointer-events: auto;
    margin-top: 1rem;
    max-width: 100%;
    width: 100%;
    /* full width */
    display: flex;
    opacity: 0;
    visibility: visible;
  }

  .cmw-timeline-point.is-active .cmw-timeline-card {
    display: flex;
    opacity: 1;
    animation: fadeIn 0.3s ease;
  }

  /* Fix Gradient Slider Mobile */
  .ai-hero-gradient {
    background-size: cover;
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* FINAL FORCE OVERRIDE - SYSTEM 2 */
@media (min-width: 901px) {

  /* Hide hamburger on desktop with extreme prejudice */
  body .cmw-hamburger {
    display: none !important;
  }

  /* Force menu nowrap */
  body .cmw-main-nav .cmw-menu {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    white-space: nowrap !important;
  }
}

/* Ensure Slider is Visible if loaded */
.cmw-offsel-slider-section {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Fix Mobile Menu Colors ONE LAST TIME */
@media (max-width: 900px) {
  body .cmw-main-nav {
    background-color: #cc3715 !important;
  }

  body .cmw-main-nav a {
    color: #efc984 !important;
  }

  body .cmw-hamburger span {
    background-color: #efc984 !important;
  }
}

/* === MOBILE FIXES - OFFICIAL SELECTION & MODAL === */

/* 1. Modal Scrolling Fix */
.cmw-offsel-modal__text {
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  /* smooth scroll on iOS */
  padding-bottom: 2rem;
  /* space at bottom */
}

/* 2. Close Button Visibility & Spacing */
.cmw-offsel-modal__close {
  opacity: 1 !important;
  /* Always visible */
  top: 2rem !important;
  right: 2rem !important;
  width: 32px !important;
  height: 32px !important;
  background: #cc3715 !important;
  color: white !important;
  font-size: 1.2rem !important;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3) !important;
}

/* Ensure inner modal doesn't block scroll */
.cmw-offsel-modal__inner {
  max-height: 90vh !important;
  overflow: hidden !important;
}

/* 3. Mobile Hero Adjustments */
@media (max-width: 900px) {

  /* Margin top for Hero Inner — rimosso, centrato via flexbox */
  .cmw-hero-inner {
    margin-top: 0;
  }

  /* Height for Hero Slider */
  .cmw-hero-slider {
    height: 80vh !important;
    min-height: 80vh !important;
  }

  /* Ensure modal text column takes height to scroll */
  .cmw-offsel-modal__text {
    flex: 1 1 auto !important;
    max-height: 50vh !important;
    /* give it defined height to scroll */
  }

  .cmw-offsel-modal__dialog {
    padding: 1.5rem !important;
  }
}

/* =========================================
   FIXES (Gallery & Desktop Tips)
   ========================================= */

/* 1. GALLERY IMAGE FIX */
/* Remove aggressive border-radius and forcing aspect ratio on gallery images */
.wp-block-gallery .wp-block-image img,
.gallery .gallery-item img,
.ai-article-content .wp-block-gallery img,
.ai-article-content .gallery img {
  border-radius: 12px !important;
  /* Small radius, not 50px */
  aspect-ratio: auto !important;
  /* Respect original ratio */
  height: auto !important;
  /* Don't stretch */
  object-fit: contain !important;
  /* Ensure content is visible */
  width: 100%;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  /* Replace weird shadow if any */
}

/* Ensure figure container allows proper sizing */
.wp-block-gallery .wp-block-image,
.gallery .gallery-item {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* 2. DESKTOP TYPOGRAPHY RESTORE */
/* Restore larger font sizes only on desktop */
@media (min-width: 901px) {

  /* General Headings */
  h1 {
    font-size: 3.5rem;
  }

  h2 {
    font-size: 2.5rem;
  }

  h3 {
    font-size: 2rem;
  }

  h4 {
    font-size: 1.75rem;
  }

  h5 {
    font-size: 1.5rem;
  }

  h6 {
    font-size: 1.25rem;
  }

  /* Specific Hero Titles Override */
  .cmw-page-hero-title,
  .cmw-hero-title,
  .ai-article-title {
    font-size: clamp(3rem, 4vw + 1rem, 4.5rem) !important;
    line-height: 1.05;
  }

  .cmw-page-hero-subtitle,
  .cmw-hero-subtitle {
    font-size: 1.25rem !important;
    line-height: 1.6;
  }
}

/* =========================================
   FIXES (Mobile Scroll, Slider, Menu)
   ========================================= */

/* 1. PREVENT HORIZONTAL SCROLL */
html,
body {
  overflow-x: hidden;
  position: relative;
  width: 100%;
}

/* 2. FIX HAMBURGER MENU CTA "OBBROBRIO" */
@media (max-width: 900px) {
  .cmw-mobile-cta {
    display: inline-flex !important;
    width: auto !important;
    /* Stop full width */
    min-width: 200px;
    justify-content: center;
    margin: 2rem auto !important;
    /* Centered with spacing */
    font-size: 0.9rem !important;
    letter-spacing: 0.05em;
    background: #efc984 !important;
    color: #cc3715 !important;
    opacity: 1 !important;
    visibility: visible !important;
    /* Ensure text is black/red if yellow bg */
  }

  .cmw-mobile-cta span {
    color: inherit;
  }
}

/* 3. FIX EDIZIONI SLIDER CONTENT & RED BOX */
@media (max-width: 900px) {

  /* Ensure content is row and visible */
  .cmw-timeline-card {
    display: flex !important;
    flex-direction: row !important;
    /* Image left, text right */
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 1rem !important;

    background: #cc3715 !important;
    color: #ffffff !important;

    width: 85vw !important;
    /* Fix width */
    max-width: 350px !important;
    padding: 1rem !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3) !important;

    opacity: 1 !important;
    visibility: visible !important;
  }

  /* Ensure image thumb is visible */
  .cmw-timeline-card-thumb {
    display: block !important;
    flex: 0 0 70px !important;
    width: 70px !important;
    height: 70px !important;
    border-radius: 8px !important;
    background: black;
  }

  .cmw-timeline-card-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  /* Ensure text is visible and wraps correctly */
  .cmw-timeline-card-text {
    flex: 1 !important;
    text-align: left !important;
    color: #ffffff !important;
    min-width: 0 !important;
    /* Flex shrink fix */
    overflow: hidden !important;
  }

  .cmw-timeline-card-title {
    color: #ffffff !important;
    font-size: 1.1rem !important;
    margin-bottom: 0.25rem !important;
    white-space: normal !important;
    /* Allow wrapping */
    line-height: 1.2 !important;
    word-wrap: break-word !important;
  }

  .cmw-timeline-card-subtitle {
    color: rgba(255, 255, 255, 0.8) !important;
    font-size: 0.85rem !important;
  }
}

/* =========================================
   CRITICAL FINAL FIXES
   ========================================= */

/* 1. HIDE MOBILE CTA ON DESKTOP (Fix "Duplicate Button") */
@media (min-width: 901px) {
  .cmw-mobile-cta {
    display: none !important;
  }
}

/* 2. FIX MOBILE MENU CTA TEXT VISIBILITY */
@media (max-width: 900px) {
  .cmw-mobile-cta {
    /* Ensure specific sizing and centering */
    display: inline-flex !important;
    align-items: center;
    justify-content: center;

    /* Typography - FORCE VISIBILITY */
    font-family: inherit !important;
    font-size: 0.9rem !important;
    font-weight: 700 !important;
    line-height: normal !important;

    /* Colors */
    background-color: #efc984 !important;
    /* Yellow */
    color: #cc3715 !important;
    /* Red Text */

    /* Layout */
    padding: 0.8rem 1.0rem !important;
    /* Reduced padding for fit */
    border-radius: 999px !important;
    margin-top: 2rem !important;
    min-height: 44px;
    width: auto !important;
    white-space: nowrap !important;
    /* ONE LINE FORCE */

    opacity: 1 !important;
    visibility: visible !important;
  }

  /* Target direct text and spans to prevent inheritance issues */
  .cmw-mobile-cta,
  .cmw-mobile-cta span,
  .cmw-mobile-cta:visited,
  .cmw-mobile-cta:active {
    color: #cc3715 !important;
  }
}

/* 3. ABSOLUTE SCROLL KILLER */
/* The previous overflow-x hidden might be overridden by specific sections */
html,
body {
  max-width: 100%;
  overflow-x: hidden !important;
}

/* Fix Hero section causing width blowout on mobile */
@media (max-width: 900px) {

  .cmw-home-hero,
  .cmw-hero-slide,
  .cmw-header-inner,
  .cmw-timeline-section,
  .ai-related-section {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  /* Allow Slider Section to scroll internally but not blow out page */
  .cmw-timeline-track-wrapper {
    width: 100%;
    max-width: 100%;
    overflow-x: auto !important;
  }
}

/* =========================================
   ADDITIONAL REQUESTED FIXES (H2 & Mobile Gallery)
   ========================================= */

/* 1. INCREASE DESKTOP H2 SIZE */
@media (min-width: 901px) {

  h2,
  .wp-block-heading h2 {
    font-size: 3.5rem !important;
    /* Increased from 2.5rem */
    line-height: 1.15;
  }
}

/* 2. FIX MOBILE GALLERY LAYOUT (RESTORE SLIDER + SPACING) */
@media (max-width: 900px) {

  /* Constrain the gallery container to be a SLIDER */
  .wp-block-gallery,
  .wp-block-gallery.has-nested-images,
  .gallery {
    display: flex !important;
    flex-direction: row !important;
    /* Horizontal */
    flex-wrap: nowrap !important;
    /* No wrapping -> Slider */
    overflow-x: auto !important;
    /* Allow scroll */
    width: 100% !important;
    box-sizing: border-box !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    gap: 1.5rem !important;

    /* THE REQUESTED "AIR" BELOW */
    margin-bottom: 4rem !important;
    padding-bottom: 1.5rem !important;

    /* Smooth scroll */
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
  }

  /* Constrain individual gallery items */
  .wp-block-gallery .wp-block-image,
  .gallery .gallery-item {
    flex: 0 0 85vw !important;
    /* Card width on mobile */
    max-width: 350px !important;
    margin: 0 !important;
    scroll-snap-align: center;

    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  /* Fix Images */
  .wp-block-gallery .wp-block-image img,
  .gallery .gallery-item img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    border-radius: 12px !important;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2) !important;
  }
}

/* =========================================
   FIX HERO STORY SPACING
   ========================================= */
.cmw-hero-story-title {
  margin-bottom: 0.25rem !important;
  /* Reduced from default */
  line-height: 1.1 !important;
  padding-bottom: 0 !important;
}

.cmw-hero-story-subtitle {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Ensure no extra paragraph margin inside subtitle */
.cmw-hero-story-subtitle p {
  margin: 0 !important;
  padding: 0 !important;
}

/* =========================================
   REVERT H2 SIZE FIX
   ========================================= */
@media (min-width: 901px) {

  h2,
  .wp-block-heading h2 {
    font-size: 2.5rem !important;
    /* REVERTED TO 2.5rem */
    line-height: 1.2 !important;
  }
}

/* =========================================
   EMERGENCY MOBILE FIXES (NUCLEAR OPTION)
   ========================================= */

/* 1. FIX CTA TEXT VISIBILITY (FORCE) */
/* 1. FIX CTA TEXT VISIBILITY (FORCE ON MOBILE ONLY) */
@media (max-width: 900px) {
  .cmw-mobile-cta {
    color: #cc3715 !important;
    -webkit-text-fill-color: #cc3715 !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 99999 !important;
    display: inline-flex !important;
  }
}

/* Explicitly hide on desktop again to be absolutely sure */
@media (min-width: 901px) {
  .cmw-mobile-cta {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }
}

/* 2. FIX STORIES TEXT Z-INDEX (Appear above gradient) */
.cmw-hero-story-text {
  position: relative !important;
  z-index: 20 !important;
  /* Higher than gradient (10) */
  color: white !important;
}

.ai-hero-gradient {
  z-index: 10 !important;
}

/* 3. FIX GIANT ICONS (Constrain generic images in content) */
/* Prevent unchecked growth of small images/icons */
.entry-content img:not(.wp-block-gallery img),
.wp-block-image:not(.is-style-full-width) img {
  width: auto !important;
  /* Do not force 100% unless specified */
  max-width: 100% !important;
  /* Never exceed container */
  height: auto !important;
}

/* Specific fix for known icon classes if any, e.g. "pin" */
img[src*="pin"],
img[src*="icon"] {
  width: auto !important;
  max-width: 50px !important;
  /* Hard constraint for icons */
}

/* 4. FIX "MINUSCULE" ARTICLE TITLES */
@media (max-width: 900px) {

  h1.ai-article-title,
  .entry-title,
  h1 {
    font-size: 2.25rem !important;
    /* Increase from whatever it was */
    line-height: 1.2 !important;
  }
}

/* =========================================
   FIX EDIZIONI CARD TEXT SIZE (MOBILE)
   ========================================= */
@media (max-width: 900px) {

  /* Force all text inside the card to be reasonable */
  .cmw-timeline-card-text,
  .cmw-timeline-card-text * {
    font-size: 1.1rem !important;
    /* Cap standard text */
    line-height: 1.3 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    max-width: 100% !important;
  }

  /* Specifically squash headings if they are causing the issue */
  .cmw-timeline-card-text h1,
  .cmw-timeline-card-text h2,
  .cmw-timeline-card-text h3,
  .cmw-timeline-card-text h4,
  .cmw-timeline-card-text p {
    font-size: 1.2rem !important;
    /* Slightly larger for headings but small enough */
    margin: 0 !important;
    padding: 0 !important;
    color: #ffffff !important;
  }

  /* Ensure the container of the text allows it */
  .cmw-timeline-card-text {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    /* Flex fix */
  }
}

/* =========================================
   FIX EDIZIONI CARD TEXT SIZE (DESKTOP)
   ========================================= */
@media (min-width: 901px) {

  /* 
       Apply strict sizing to Edizioni Card titles on Desktop 
       to prevent them from blowing up the layout.
    */
  .cmw-timeline-card-text h1,
  .cmw-timeline-card-text h2,
  .cmw-timeline-card-text h3,
  .cmw-timeline-card-text h4,
  .cmw-timeline-card-title {
    font-size: 1.5rem !important;
    /* Cap at 1.5rem (approx 24px) */
    line-height: 1.25 !important;
    margin-bottom: 0.5rem !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
  }

  .cmw-timeline-card-text p,
  .cmw-timeline-card-subtitle {
    font-size: 1rem !important;
    line-height: 1.4 !important;
  }
}

/* =========================================
   FIX HERO BUTTON WRAPPING (NUCLEAR)
   ========================================= */

/* Target by class AND by href to be sure */
.wp-block-button__link,
a[href*="filmfreeway"] {
  white-space: nowrap !important;
  /* Force single line */
  width: auto !important;
  max-width: none !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

/* On mobile, if it's too wide, scale the font instead of wrapping */
@media (max-width: 600px) {

  .wp-block-button__link,
  a[href*="filmfreeway"] {
    white-space: nowrap !important;
    font-size: 0.9rem !important;
    /* Reduce size to fit */
    padding-left: 1.2rem !important;
    padding-right: 1.2rem !important;
  }
}

/* =========================================
   FIX HERO STORY CARD TEXT (POSITION & VISIBILITY)
   ========================================= */

/* 1. MOVE TEXT UP (Avoid rounded corners cut-off) */
.cmw-hero-story-text {
  position: absolute !important;
  /* Restore absolute positioning */
  bottom: 2.8rem !important;
  /* Reduced from 3.5rem to avoid excessive gap */
  left: 0 !important;
  width: 100% !important;
  /* Use full width */
  padding: 0 1rem !important;
  /* Safe padding */
  z-index: 50 !important;
  /* Ensure on top */
}

/* 2. MAKE GRADIENT VISIBLE (Ensure contrast) */
/* The text is white, so we need the black gradient behind it to be visible always, not just on hover */
.cmw-hero-story-inner .ai-hero-gradient {
  opacity: 1 !important;
  /* Force visible */
  height: 80% !important;
  /* Cover the text area well */
  z-index: 20 !important;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.6) 50%, rgba(0, 0, 0, 0) 100%) !important;
}

/* 2a. FIX LOGO Z-INDEX (Between Text and Gradient) */
.cmw-hero-story-inner .ai-hero-tag {
  z-index: 40 !important;
  /* Above Gradient (20), Below Text (50) */
  position: absolute !important;
  top: 1rem !important;
  left: 1rem !important;
}

/* 3. ADJUST TITLES INSIDE STORY CARD */
.cmw-hero-story-title {
  font-size: 1.6rem !important;
  line-height: 1.1 !important;
  margin-bottom: 0.5rem !important;
  white-space: normal !important;
  /* Allow wrapping */
}

.cmw-hero-story-subtitle {
  font-size: 1rem !important;
  line-height: 1.3 !important;
  opacity: 0.9 !important;
}

/* =========================================
   FIX GIANT EMOJIS (WORDPRESS)
   ========================================= */

/* Force WordPress converted emojis to be text-size */
img.emoji,
.entry-content img.emoji {
  display: inline !important;
  border: none !important;
  box-shadow: none !important;
  height: 1em !important;
  width: 1em !important;
  margin: 0 0.07em !important;
  vertical-align: -0.1em !important;
  background: none !important;
  padding: 0 !important;
}

/* Fallback for other small inline icons inside paragraphs */
.entry-content p img:not([class*="wp-image-"]) {
  width: auto !important;
  max-width: 1.5em !important;
  /* Assume small icon if no class */
  display: inline-block;
  vertical-align: middle;
}

/* =========================================
   FIX EDIZIONI CARD TEXT SIZE (DESKTOP - AGGRESSIVE)
   ========================================= */
@media (min-width: 901px) {

  /* 
       Drastically reduce font sizes to fit in the small tooltip card.
       Previous 1.5rem was too big. Going down to ~1rem.
    */
  .cmw-timeline-card-text h1,
  .cmw-timeline-card-text h2,
  .cmw-timeline-card-text h3,
  .cmw-timeline-card-text h4,
  .cmw-timeline-card-title,
  .cmw-timeline-card-text strong {
    font-size: 1.1rem !important;
    /* MUCH SMALLER */
    line-height: 1.2 !important;
    margin-bottom: 0.3rem !important;
    word-wrap: break-word !important;
  }

  .cmw-timeline-card-text p,
  .cmw-timeline-card-subtitle {
    font-size: 0.9rem !important;
    line-height: 1.3 !important;
    margin: 0 !important;
  }

  /* Remove massive margins likely on headings */
  .cmw-timeline-card-text>* {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

/* =========================================
   FIX EDIZIONI CARD TEXT SIZE (INVERTED HIERARCHY)
   ========================================= */
@media (min-width: 901px) {
  /* 
       User wants "CROTONE" (Title) smaller than "Sesta Edizione" (Subtitle).
       HTML structure: Title (H1) is First, Subtitle (H2) is Second.
       If visually swapped, they might feature flex-direction, but here we fix sizes.
    */

  /* The main title (CROTONE | DATE) - MAKE SMALL */
  .cmw-timeline-card-title,
  h1.cmw-timeline-card-title {
    font-size: 0.9rem !important;
    /* Tiny */
    line-height: 1.3 !important;
    font-weight: 600 !important;
    color: rgba(255, 255, 255, 0.9) !important;
    margin-bottom: 0 !important;
    order: 2 !important;
    /* If using flex column */
  }

  /* The subtitle (Sesta Edizione) - MAKE LARGER */
  .cmw-timeline-card-subtitle,
  h2.cmw-timeline-card-subtitle {
    font-size: 1.15rem !important;
    /* Larger/Prominent */
    line-height: 1.2 !important;
    font-weight: bold !important;
    color: #ffffff !important;
    margin-bottom: 0.2rem !important;
    order: 1 !important;
    /* Ensure it is above if flex */
  }

  /* Container Flex Column to support Order */
  .cmw-timeline-card-text {
    display: flex !important;
    flex-direction: column !important;
  }
}

/* =========================================
   FIX HEADER ALIGNMENT (FORCE CENTER)
   ========================================= */
.cmw-header-inner {
  align-items: center !important;
  /* Ensure vertical center */
}

/* Remove potential default margins that break alignment */
.cmw-main-nav,
.cmw-menu,
.cmw-header-logo,
.cmw-header-cta {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  line-height: 1 !important;
  /* Reset line-height to avoid phantom space */
}

.cmw-menu {
  padding-left: 0 !important;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
}

/* Ensure Logo link is flex to avoid inline-block spacing */
.cmw-header-logo {
  display: flex !important;
  align-items: center !important;
}

/* =========================================
   FIX GIANT PIN / ICONS
   ========================================= */
/* Target images that are likely icons based on heuristics or common naming */
.entry-content img[src*="pin"],
.entry-content img[src*="icon"],
.entry-content img[src*="marker"] {
  width: auto !important;
  max-width: 60px !important;
  /* Force small size */
  height: auto !important;
  display: inline-block !important;
  box-shadow: none !important;
}

/* Double protection for 'wp-block-image' if used for icons */
.wp-block-image img[src*="pin"],
.wp-block-image img[src*="icon"] {
  width: auto !important;
  max-width: 60px !important;
  margin: 0 auto !important;
}

/* =========================================
   FIX GIANT SVG EMOJIS (NO CLASS)
   ========================================= */
/* Target emojis served from s.w.org or similar that lack the .emoji class */
img[src*="/emoji/"],
img[src*="1f4cc"],
/* Specific targeting for the pin just in case */
.entry-content img[src*="/emoji/"] {
  width: 1em !important;
  height: 1em !important;
  display: inline !important;
  vertical-align: -0.1em !important;
  margin: 0 0.1em !important;
  box-shadow: none !important;
  border: none !important;
  background: none !important;
  padding: 0 !important;
}

/* =========================================
   FIX EDIZIONI CARD TEXT HIERARCHY (CORRECTED)
   ========================================= */
@media (min-width: 901px) {
  /* 
       Browser config confirmed: 
       H1 = "Sesta Edizione" (Title)
       H2 = "CROTONE..." (Subtitle)
       
       User wants: CROTONE (H2) < SESTA EDIZIONE (H1)
    */

  /* H1: EDITION NAME -> MAKE BIGGER */
  .cmw-timeline-card-title,
  h1.cmw-timeline-card-title {
    font-size: 1.3rem !important;
    /* Prominent */
    font-weight: 800 !important;
    line-height: 1.1 !important;
    margin-bottom: 0.2rem !important;
    color: #ffffff !important;
    order: 1 !important;
    /* Show FIRST */
  }

  /* H2: LOCATION/DATE -> MAKE SMALLER */
  .cmw-timeline-card-subtitle,
  h2.cmw-timeline-card-subtitle {
    font-size: 0.9rem !important;
    /* Tiny/Detail */
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    line-height: 1.3 !important;
    color: rgba(255, 255, 255, 0.85) !important;
    margin-bottom: 0 !important;
    order: 2 !important;
    /* Show SECOND */
  }

  .cmw-timeline-card-text {
    display: flex !important;
    flex-direction: column !important;
  }
}

/* =========================================
   FIX HEADER ALIGNMENT (GRID FOR PERFECT CENTER)
   ========================================= */
@media (min-width: 901px) {
  .cmw-header-inner {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr !important;
    align-items: center !important;
    /* Reset flex properties */
    justify-content: unset !important;
    gap: 0 !important;
    /* Grid handles spacing via columns */
  }

  /* Left Column: Logo */
  .cmw-header-logo {
    justify-self: start;
  }

  /* Center Column: Nav */
  /* Ensure only the active elements affect the grid. 
       Hamburger is display:none on desktop, so direct children are Logo, Nav, CTA 
    */
  .cmw-main-nav {
    justify-self: center;
    width: 100%;
    display: flex;
    justify-content: center;
  }

  /* Right Column: CTA */
  .cmw-header-cta {
    justify-self: end;
  }
}

/* =========================================
   FIX HERO STORY TAG Z-INDEX
   ========================================= */
.cmw-hero-story-inner .ai-hero-tag {
  z-index: 50 !important;
  /* Ensure it stays above any gradients/overlays */
  position: absolute !important;
  /* Optional: brighten it if it was being dimmed by opacity inheritance, though z-index is the main request */
  opacity: 1 !important;
}

/* Ensure the image/content inside also respects this */
.cmw-hero-story-inner .ai-hero-tag img,
.cmw-hero-story-inner .ai-hero-tag span {
  z-index: 50 !important;
  position: relative;
}

/* =========================================
   MOBILE FIXES (MENU, HERO, SLIDERS, GALLERY)
   ========================================= */

/* 1. MOBILE MENU ALIGNMENT & SPACING */
@media (max-width: 900px) {
  .cmw-main-nav {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2rem !important;
    /* Consistent vertical spacing */
  }

  /* Force the CTA button (Invia il tuo corto) to be centered and not strictly start-aligned */
  .cmw-mobile-cta,
  .cmw-main-nav a.cmw-header-cta {
    display: inline-flex !important;
    width: auto !important;
    /* Let it shrink to content */
    margin: 0 auto !important;
    text-align: center !important;
  }
}

/* 2. HERO H2 SIZE (BUMP UP) */
@media (max-width: 900px) {
  .cmw-hero-inner h2 {
    font-size: 1.5rem !important;
    /* Was ~16px/1rem. increased to ~21px */
    line-height: 1.3 !important;
  }
}

/* 3. EDIZIONI SLIDER FIX (FORCE HORIZONTAL ROW) */
/* The audit found it was flex-direction: column. Forcing row. */
.cmw-timeline-track {
  display: flex !important;
  flex-direction: row !important;
  /* Horizontal slider */
  flex-wrap: nowrap !important;
  -webkit-overflow-scrolling: touch;
  gap: 1.5rem !important;
  width: 100% !important;
  padding-bottom: 2rem !important;
  /* Space for scrollbar/touch */
}

/* 4. EDIZIONI CARD TEXT SIZES (CONFIRM SUBTITLE < TITLE) */
.cmw-timeline-card-title,
h1.cmw-timeline-card-title {
  margin-top: 1rem;
  font-size: 1.3rem !important;
  order: 1 !important;
}

.cmw-timeline-card-subtitle,
h2.cmw-timeline-card-subtitle {
  font-size: 0.9rem !important;
  order: 2 !important;
  color: rgba(255, 255, 255, 0.7) !important;
}

.cmw-timeline-card-text {
  display: flex !important;
  flex-direction: column !important;
}

/* 5. GALLERY OVERFLOW FIX (SESTA EDIZIONE) */
/* Remove fixed heights and add spacing to prevent invasion of next block */
.cmw-edition-gallery-viewport,
.cmw-edition-gallery-slider {
  height: auto !important;
  /* Let content dictate height */
  min-height: 350px !important;
  /* Allow shadows/scroll without clipping */
  margin-bottom: 4rem !important;
  /* Push next section away */
}

/* Ensure images don't overflow the container */
.cmw-edition-gallery-item {
  height: 45vh !important;
  /* Responsive height */
  max-height: 450px !important;
}

/* =========================================
   FIX STORIES SLIDER LEFT OFFSET (PREVENT GRADIENT OCCLUSION)
   ========================================= */
@media (min-width: 769px) {
  .ai-related-slider {
    /* 
           Original padding was 4em (~64px). 
           Gradient is 64px wide. 
           We bump this to 140px to ensure the first card starts 
           WELL to the right of the gradient overlay.
        */
    scroll-padding-left: 140px !important;
    /* Ensures snap aligns to the new start */
  }

  .cmw-edition-hero-text .wp-block-heading {
    padding-bottom: 20px;
  }

  .cmw-edition-hero-text .cmw-edition-label {
    margin-bottom: 20px;
  }

}

@media (max-width: 900px) {

  /* il container: lo rendiamo flex e lo centriamo */
  .cmw-hero-left {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    /* centro orizzontale */
    justify-content: center !important;
    /* centro verticale */
    text-align: center !important;

    /* padding simmetrico sopra/sotto */
    padding: 0vh 24px !important;

    /* niente min-height 100%: spesso è “finto” e sballa */
    min-height: unset !important;

    /* spaziatura tra i figli: usa gap, non margin random */
    gap: 16px !important;
  }

  /* NON azzerare margini a caso: solo i figli diretti e solo top/bottom */
  .cmw-hero-inner>* {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}

/* LISTE E PUNTI ELENCO NEL CONTENUTO */
.ai-article-content-inner ul,
.cmw-page-content ul {
  list-style-type: disc;
  margin-left: 1.5em;
  margin-bottom: 2rem;
  padding-left: 1rem;
}

.ai-article-content-inner ol,
.cmw-page-content ol {
  list-style-type: decimal;
  margin-left: 1.5em;
  margin-bottom: 2rem;
  padding-left: 1rem;
}

.ai-article-content-inner li,
.cmw-page-content li {
  margin-bottom: 0.5rem;
  line-height: 1.6;
}

/* HEADER: assicurati che gli item della grid siano centrati verticalmente */
.cmw-header-inner {
  align-items: center !important;
}

/* NAV: torna “allineabile” verticalmente */
.cmw-main-nav {
  display: flex !important;
  align-items: center !important;
  /* <-- questo ti rimette l’allineamento verticale */
  justify-content: center !important;
  /* non centra il blocco nella grid, centra il contenuto */
  width: 100% !important;
}

/* MENU: rimane centrato dentro il nav */
.cmw-main-nav>.cmw-menu {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 24px !important;

  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* CTA mobile: su desktop deve sparire, altrimenti altera l’altezza/centratura */
@media (min-width: 901px) {
  .cmw-main-nav .cmw-mobile-cta {
    display: none !important;
  }
}

/* =========================================
   FOOTER REDESIGN
   ========================================= */
.cmw-footer {
  background: #050505 !important;
  color: #fff !important;
  padding-top: 3rem !important;
}

.cmw-footer-main {
  width: min(1180px, calc(100% - 3rem));
  margin: 0 auto;
  padding-bottom: 2.2rem;
}

.cmw-footer-main-card {
  border-top: 1px solid rgba(239, 201, 132, 0.26);
  padding: clamp(1.4rem, 2.4vw, 2rem) 0 0;
  display: grid;
  grid-template-columns: minmax(240px, 290px) minmax(0, 1fr);
  gap: clamp(1.2rem, 2vw, 2.2rem);
}

.cmw-footer-main-card::after {
  content: none;
}

.cmw-footer-brand,
.cmw-footer-nav-grid {
  position: relative;
  z-index: 1;
}

.cmw-footer-brand {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.cmw-footer-logo-svg {
  width: min(220px, 100%);
  height: auto;
}

.cmw-footer-org-text h4 {
  margin: 0 0 0.65rem;
  font-size: 0.9rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #efc984;
}

.cmw-footer-org-text p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
}

.cmw-footer-pill-link {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.62rem 1.15rem;
  border-radius: 999px;
  background: #efc984;
  color: #1c140b;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.cmw-footer-pill-link:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(239, 201, 132, 0.25);
  opacity: 0.95;
}

.cmw-footer-social {
  display: flex;
  align-items: center;
  gap: 0.52rem;
  flex-wrap: wrap;
}

.cmw-footer-social-link {
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 999px;
  border: 1px solid rgba(239, 201, 132, 0.46);
  color: #efc984;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.cmw-footer-social-link svg {
  width: 0.98rem;
  height: 0.98rem;
  fill: currentColor;
}

.cmw-footer-social-link:hover,
.cmw-footer-social-link:focus-visible {
  background: #efc984;
  border-color: #efc984;
  color: #111827;
  transform: translateY(-1px);
}

.cmw-footer-nav-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(0.8rem, 1.4vw, 1.35rem);
}

.cmw-footer-nav-group h4 {
  margin: 0 0 1rem;
  font-size: 0.92rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #ffffff;
}

.cmw-footer-nav-group ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.6rem;
}

.cmw-footer-nav-group a {
  color: rgba(255, 255, 255, 0.74);
  text-decoration: none;
  font-size: 1rem;
  line-height: 1.35;
  transition: color 0.2s ease, transform 0.2s ease;
  display: inline-block;
}

.cmw-footer-nav-group a:hover {
  color: #efc984;
  transform: translateX(2px);
}

.cmw-footer-editions-archive a {
  color: rgba(255, 255, 255, 0.74);
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}

@media (max-width: 1180px) {
  .cmw-footer-main-card {
    grid-template-columns: 1fr;
  }

  .cmw-footer-nav-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .cmw-footer {
    padding-top: 1.4rem !important;
  }

  .cmw-footer-main {
    width: min(1180px, calc(100% - 1.4rem));
    padding-bottom: 1.6rem;
  }

  .cmw-footer-main-card {
    padding: 0.95rem 0 0;
    gap: 1.15rem;
  }

  .cmw-footer-main-card::after {
    display: none;
  }

  .cmw-footer-brand {
    gap: 0.72rem;
    align-items: center;
    text-align: center;
  }

  .cmw-footer-social {
    justify-content: center;
  }

  .cmw-footer-logo-svg {
    width: 156px;
  }

  .cmw-footer-org-text h4 {
    font-size: 0.78rem;
    margin-bottom: 0.4rem;
  }

  .cmw-footer-org-text p {
    font-size: 0.8rem;
    line-height: 1.34;
    color: rgba(255, 255, 255, 0.66);
    max-width: 34ch;
  }

  .cmw-footer-pill-link {
    width: min(320px, 100%);
    min-height: 50px;
    font-size: 0.82rem;
    padding: 0.68rem 1rem;
    align-self: center;
  }

  .cmw-footer-nav-grid {
    grid-template-columns: repeat(2, minmax(130px, 1fr));
    gap: 1rem 0.9rem;
    justify-items: stretch;
  }

  .cmw-footer-nav-group h4 {
    font-size: 0.78rem;
    margin-bottom: 0.52rem;
    text-align: center;
  }

  .cmw-footer-nav-group ul {
    gap: 0.3rem;
  }

  .cmw-footer-nav-group a {
    font-size: 0.84rem;
    line-height: 1.18;
    color: rgba(255, 255, 255, 0.82);
    transform: none;
    text-align: center;
    width: 100%;
  }

  .cmw-footer-nav-group a:hover {
    transform: none;
  }

  .cmw-footer-nav-group-editions .cmw-footer-edition-item--extra {
    display: none;
  }

  .cmw-footer-editions-archive a {
    margin-top: 0.1rem;
    display: inline-flex;
    justify-content: center;
  }
}

@media (max-width: 620px) {
  .cmw-footer-main {
    width: min(1180px, calc(100% - 1rem));
  }

  .cmw-footer-nav-grid {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
    gap: 0.85rem 0.7rem;
  }
}

/* =========================================
   VIDEO MODAL EDIZIONI
   ========================================= */

/* Play Button Overlay on Card */
.cmw-timeline-card-thumb {
  position: relative;
}

.cmw-play-overlay {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 60px;
  background-color: rgba(0, 0, 0, 0.6);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease, transform 0.3s ease;
  z-index: 10;
  pointer-events: none;
  /* Click goes to the wrapper div */
}

.cmw-timeline-card-thumb:hover .cmw-play-overlay {
  background-color: rgba(220, 38, 38, 0.9);
  /* Red like YouTube */
  transform: translate(-50%, -50%) scale(1.1);
}

.cmw-play-icon {
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 18px solid #fff;
  margin-left: 4px;
  /* Optical centering */
}

/* Modal Styles */
.cmw-video-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.cmw-video-modal.is-open {
  visibility: visible;
  opacity: 1;
}

.cmw-video-modal-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(5px);
}

.cmw-video-modal-container {
  position: relative;
  width: 90%;
  max-width: 900px;
  background: #000;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5);
  z-index: 10000;
  display: flex;
  flex-direction: column;
  animation: cmw-modal-slide-up 0.4s ease-out;
}

@keyframes cmw-modal-slide-up {
  from {
    transform: translateY(20px);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.cmw-video-modal-close {
  position: absolute;
  top: 10px;
  right: 15px;
  font-size: 32px;
  color: #fff;
  background: transparent;
  border: none;
  cursor: pointer;
  line-height: 1;
  z-index: 20;
  opacity: 0.7;
  transition: opacity 0.2s;
}

.cmw-video-modal-close:hover {
  opacity: 1;
}

.cmw-video-modal-header {
  padding: 20px 20px 5px;
  text-align: center;
}

.cmw-video-modal-title {
  color: #fff;
  font-size: 1.5rem;
  margin: 0;
  font-weight: 700;
}

.cmw-video-modal-body {
  padding: 10px;
}

.cmw-video-embed-wrapper {
  position: relative;
  padding-bottom: 56.25%;
  /* 16:9 Aspect Ratio */
  height: 0;
  background: #000;
}

.cmw-video-embed-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.cmw-video-modal-footer {
  padding: 15px 20px 25px;
  text-align: center;
  background: #111;
}

.cmw-btn-primary {
  display: inline-block;
  padding: 10px 24px;
  background-color: #fff;
  color: #000;
  text-decoration: none;
  font-weight: 600;
  border-radius: 50px;
  transition: transform 0.2s ease, background-color 0.2s ease;
}

.cmw-btn-primary:hover {
  transform: translateY(-2px);
  background-color: #f0f0f0;
  color: #000;
}

/* --- CMW Info Modal Trigger Styles --- */
.cmw-open-info-modal {
  cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cmw-open-info-modal:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

/* Hide buttons inside the trigger block overlays */
/* Hide buttons inside the trigger block overlays */
.cmw-open-info-modal .wp-block-buttons,
.cmw-open-info-modal .wp-block-button,
.cmw-open-info-modal .cmw-modal-action-btn {
  display: none !important;
}

/* Modal specific button styling override if needed */
.cmw-info-modal__buttons .wp-block-button__link {
  /* Ensure they look clickable in the modal */
  pointer-events: auto;
}

/* HEADER TRASPARENTE (Home Splash) */
.cmw-header-transparent {
  background-color: transparent !important;
  box-shadow: none !important;
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

/* Assicuriamoci che gli elementi interni siano leggibili su sfondo scuro/video */
.cmw-header-transparent .cmw-menu>li>a,
.cmw-header-transparent .cmw-header-cta {
  text-shadow: none !important;
}

/* Hide buttons inside Person Modal Trigger (Media & Text block) */
.cmw-person-trigger .wp-block-buttons,
/* Remove overlay/opacity from Info Modal Header Image */
.cmw-info-modal__header-image::after {
  display: none !important;
  content: none !important;
}

.cmw-info-modal__header-image img {
  opacity: 1 !important;
  filter: none !important;
}

img#splash-hero-logo {
  width: 70rem;
  padding-bottom: 2rem;
}

/* ========================================
   INDUSTRY CLUB STYLES - DARK/INDUSTRIAL
   ======================================== */

/* CSS Variables - Palette Industrial/Dark */
:root {
    --ic-black: #000000;
    --ic-dark: #0a0a0a;
    --ic-gray-darker: #111111;
    --ic-gray-dark: #1a1a1a;
    --ic-gray-medium: #2a2a2a;
    --ic-gray: #444444;
    --ic-gray-light: #666666;
    --ic-gray-lighter: #888888;
    --ic-silver: #b8b8b8;
    --ic-steel: #db642d;
    --ic-accent: #db642d;
    --ic-red: #cc3715;
    --ic-white: #ffffff;
    /* Colori sezioni */
    --ic-shorts2future: #db642d;
    --ic-calabria-showcase: #ca388e;
    --ic-pitch-my-series: #47ad5f;
    --ic-abstract-font-size: clamp(1.06rem, 0.99rem + 0.28vw, 1.2rem);
    --ic-abstract-line-height: 1.72;
}

/* Body - Completamente Nero */
body.industry-club-site {
    background-color: var(--ic-black);
    color: var(--ic-silver);
}

body.industry-club-site [id] {
    scroll-margin-top: var(--ic-scroll-offset, 110px);
}

/* Header Industry Club - NERO TOTALE (non arancione!) */
.ic-header.cmw-header {
    background-color: var(--ic-black) !important;
    border-bottom: 1px solid var(--ic-gray-darker);
    box-shadow: none;
}

.ic-header .cmw-header-inner {
    background-color: transparent;
}

.ic-header .cmw-header-logo img {
    max-height: 45px;
    filter: brightness(1.2);
}

.ic-header .cmw-menu a {
    color: var(--ic-silver);
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-size: 0.85rem;
    transition: color 0.3s;
}

.ic-header .cmw-menu a:hover,
.ic-header .cmw-menu .current-menu-item a {
    color: var(--ic-white);
}

.ic-header-cta-cmw {
    background-color: transparent !important;
    border: 1px solid var(--ic-steel) !important;
    color: var(--ic-silver) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    padding: 0.6rem 1.2rem !important;
    transition: all 0.3s;
}

.ic-header-cta-cmw:hover {
    background-color: var(--ic-steel) !important;
    color: var(--ic-white) !important;
    border-color: var(--ic-steel) !important;
}

/* Hero Section */
.ic-hero {
    position: relative;
    width: 100%;
    height: 100vh;
    min-height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.ic-hero-video-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
}

/* Industry Club Home: keep hero video fixed as page background */
.ic-page-wrapper--fixed-video .ic-hero-video-bg {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.ic-page-wrapper--fixed-video .ic-hero,
.ic-page-wrapper--fixed-video .ic-section {
    position: relative;
    z-index: 1;
}

.ic-page-wrapper--fixed-video .ic-section {
    background-color: transparent;
}

.ic-hero-video-bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.4;
}

.ic-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(5,5,5,0.7), rgba(5,5,5,0.5));
}

.ic-hero-content {
    position: relative;
    z-index: 10;
    text-align: center;
    max-width: 800px;
    padding: 2rem;
}

.ic-hero-deadline-badge {
    position: absolute;
    top: 104px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 20;
    padding: 0.45rem 0.7rem;
    border: 0;
    border-bottom: 1px solid rgba(219, 100, 45, 0.85);
    background: rgba(10, 10, 10, 0.58);
    color: var(--ic-white);
    border-radius: 0;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: none;
    backdrop-filter: blur(2px);
    white-space: nowrap;
}

body.admin-bar .ic-hero-deadline-badge {
    top: 136px;
}

.ic-hero-subtitle-wrap {
    margin-bottom: 2.6rem;
}

.ic-hero-logo {
    max-width: 400px;
    width: 100%;
    height: auto;
    margin: 0 auto 2rem;
}

.ic-hero-subtitle {
    font-size: 1.75rem;
    font-weight: 300;
    color: var(--ic-white);
    letter-spacing: 0.03em;
    line-height: 1.45;
    margin: 0 0 0.85rem;
}

.ic-hero-date {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    border-radius: 0;
    color: var(--ic-white);
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1.35;
    margin: 0;
    text-align: center;
}

.ic-scroll-down {
    width: 50px;
    height: 50px;
    border: 2px solid var(--ic-steel);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    cursor: pointer;
    transition: all 0.3s;
    background: transparent;
    color: var(--ic-silver);
}

.ic-scroll-down:hover {
    background-color: var(--ic-steel);
    color: var(--ic-dark);
    transform: translateY(5px);
}

/* Hero Home - tuning layout */
#ic-hero .ic-hero-overlay {
    background: linear-gradient(to bottom, rgba(5, 5, 5, 0.58), rgba(5, 5, 5, 0.38));
}

#ic-hero .ic-hero-content {
    max-width: 980px;
    transform: translateY(66px);
    padding-top: clamp(1.4rem, 3.4vh, 2.8rem);
}

#ic-hero .ic-hero-logo {
    max-width: min(92vw, 560px);
    display: block;
    margin: clamp(1.55rem, 3.2vh, 2.55rem) auto clamp(-0.65rem, -1.4vh, -0.2rem);
}

#ic-hero .ic-hero-subtitle-wrap {
    margin-bottom: clamp(1.75rem, 2.9vh, 2.45rem);
}

#ic-hero .ic-scroll-down {
    margin-top: 0.35rem;
}

/* Hero Autori */
.ic-autori-hero {
    min-height: 620px;
}

.ic-autori-hero-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transform: scale(1.03);
    filter: saturate(1.05);
}

.ic-autori-hero .ic-hero-overlay {
    z-index: 1;
    background: linear-gradient(to bottom, rgba(4, 4, 4, 0.56), rgba(4, 4, 4, 0.88));
}

.ic-autori-hero-content {
    z-index: 2;
    max-width: 980px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
}

.ic-autori-hero-title {
    margin: 0;
    color: var(--ic-white);
    font-size: clamp(2.25rem, 1.65rem + 2.55vw, 4.5rem);
    font-weight: 800;
    line-height: 1.02;
    letter-spacing: 0.01em;
    text-transform: none;
}

.ic-autori-hero-subtitle {
    margin: 0.45rem 0 0;
    color: var(--ic-white);
    font-size: 1.75rem;
    font-weight: 300;
    line-height: 1.45;
    letter-spacing: 0.03em;
    text-align: center;
}

.ic-autori-scroll-cta {
    margin-top: 1rem;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--ic-white);
    text-decoration: none;
    opacity: 0.94;
    transition: color 0.3s, transform 0.3s, opacity 0.3s;
}

.ic-autori-scroll-claim {
    font-size: clamp(1.2rem, 1.02rem + 0.85vw, 1.7rem);
    font-weight: 700;
    line-height: 1.22;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--ic-white);
    text-align: center;
}

.ic-autori-scroll-chevron {
    margin-top: 0.62rem;
}

.ic-autori-scroll-cta:hover,
.ic-autori-scroll-cta:focus-visible {
    color: inherit;
    transform: none;
    opacity: 1;
}

.ic-autori-scroll-cta:hover .ic-scroll-down,
.ic-autori-scroll-cta:focus-visible .ic-scroll-down {
    background-color: var(--ic-steel);
    color: var(--ic-dark);
    transform: translateY(5px);
}

/* Sections */
.ic-section {
    padding: 3rem 0;
    background-color: var(--ic-dark);
}

.ic-section-title {
    font-size: 2.5rem;
    font-weight: 700;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    position: relative;
    display: block;
    text-align: center;
}

.ic-section-title::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background-color: var(--ic-steel);
}

.ic-section-content {
    color: var(--ic-white);
    line-height: 1.8;
}

.ic-format-section .ic-section-content {
    max-width: 900px;
    width: min(100%, 900px);
    padding: 2rem 2.1rem;
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
    box-shadow: 0 14px 36px rgba(0, 0, 0, 0.3);
}

.ic-format-section .ic-section-content p {
    font-size: var(--ic-abstract-font-size);
    line-height: var(--ic-abstract-line-height);
    color: var(--ic-white);
    letter-spacing: 0.003em;
    margin-bottom: 0.98rem;
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    hyphens: auto;
}

.ic-format-section .ic-section-content p:not(.ic-format-highlight-date),
.ic-format-section .ic-section-content blockquote,
.ic-format-section .ic-section-content [class*="has-text-align-"]:not(ul):not(ol):not(li) {
    text-align: justify !important;
    text-justify: inter-word !important;
    text-align-last: auto !important;
}

.ic-format-section .ic-section-content ul,
.ic-format-section .ic-section-content ol {
    margin: 0.6rem 0 1rem;
    padding-left: 1.45rem;
    text-align: left !important;
    text-align-last: auto !important;
    list-style-position: outside;
}

.ic-format-section .ic-section-content li {
    margin: 0 0 0.45rem;
    text-align: left !important;
    text-align-last: auto !important;
}

.ic-format-section .ic-section-content li p {
    margin: 0;
    text-align: left !important;
    text-align-last: auto !important;
}

.ic-format-section .ic-section-content p:last-child {
    margin-bottom: 0;
}

.ic-format-highlight-title {
    font-size: 1.9rem;
    margin-bottom: 1.5rem;
    color: #fff;
    line-height: 1.3;
    width: 100%;
    text-align: center;
    text-align-last: center;
}

.ic-format-highlights {
    margin-top: 1.55rem;
    padding: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.4rem;
}

.ic-format-highlight-date {
    margin: 0;
    text-align: center;
    font-size: clamp(1.02rem, 0.97rem + 0.24vw, 1.14rem);
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.4;
    color: var(--ic-white);
    text-shadow: none;
}

.ic-format-highlight-flow {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
    margin-top: 0.08rem;
    margin-bottom: 0.55rem;
    justify-content: center;
    width: 100%;
}

.ic-format-step {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.42rem;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    cursor: default;
}

.ic-format-step::after {
    content: none;
    margin-left: 0;
}

.ic-format-step:last-child::after {
    content: none;
    margin-left: 0;
}

.ic-format-step-icon {
    display: inline-flex;
    width: 1.28rem;
    height: 1.28rem;
    color: var(--ic-accent);
    flex: 0 0 auto;
}

.ic-format-step-text {
    font-size: var(--ic-abstract-font-size);
    font-weight: 600;
    line-height: 1.45;
    color: var(--ic-white);
    white-space: normal;
}

.ic-format-step--pitch {
    border-color: transparent;
    background: transparent;
}

.ic-format-step--one-to-one {
    border-color: transparent;
    background: transparent;
}

.ic-format-step--network {
    border-color: transparent;
    background: transparent;
}

.ic-format-step--pitch .ic-format-step-icon {
    color: #ffb15d;
}

.ic-format-step--one-to-one .ic-format-step-icon {
    color: #9dc8ff;
}

.ic-format-step--network .ic-format-step-icon {
    color: #7ce2a0;
}

.ic-format-cta-wrap {
    margin-top: 2rem;
    display: flex;
    justify-content: center;
}

.ic-format-cta-button {
    min-width: 220px;
    text-align: center;
}

.ic-section-content a {
    color: var(--ic-accent);
    text-decoration: underline;
    transition: opacity 0.3s;
}

.ic-section-content a:hover {
    opacity: 0.8;
}

/* Decision Makers Grid */
.ic-dm-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2.5rem;
    margin-top: 1.6rem;
}

.ic-dm-intro {
    margin-bottom: 1.75rem;
}

.ic-dm-intro p {
    margin-bottom: 0.92rem;
    color: var(--ic-white);
    font-size: var(--ic-abstract-font-size);
    line-height: var(--ic-abstract-line-height);
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    hyphens: auto;
}

.ic-dm-intro p:last-child {
    margin-bottom: 0;
}

.ic-dm-discover-wrap {
    margin: 1.15rem auto 1.65rem;
    text-align: center;
}

.ic-dm-discover-link {
    display: inline-block;
    margin: 0;
    max-width: min(100%, 860px);
    color: var(--ic-white);
    font-size: clamp(1.1rem, 0.95rem + 0.65vw, 1.5rem);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: 0.02em;
    text-wrap: balance;
}

.ic-dm-discover-link::after {
    content: "";
    display: block;
    width: 72px;
    height: 3px;
    margin: 0.72rem auto 0;
    background: var(--ic-steel);
}

.ic-dm-card {
    display: block;
    width: 100%;
    padding: 0;
    text-align: left;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    background-color: var(--ic-gray-dark);
    border: 1px solid rgba(219, 100, 45, 0.15);
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s;
}

.ic-dm-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 40px rgba(219, 100, 45, 0.25);
}

.ic-dm-card:focus-visible {
    outline: 2px solid var(--ic-steel);
    outline-offset: 3px;
}

.ic-dm-photo-wrap {
    width: 100%;
    aspect-ratio: 1;
    padding: 0.6rem 0.6rem 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    background: radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0));
}

.ic-dm-photo {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
}

.ic-dm-photo--placeholder {
    display: block;
    border-radius: 8px;
    background: linear-gradient(140deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.01));
}

.ic-dm-bio-source {
    display: none;
}

.ic-dm-info {
    padding: 1.5rem;
    text-align: center;
}

.ic-dm-name {
    font-size: 1.25rem;
    font-weight: 600;
    color: #fff;
    margin-bottom: 0.5rem;
}

.ic-dm-company {
    font-size: 0.9rem;
    color: var(--ic-silver);
    margin-bottom: 0.35rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.ic-dm-subtitle {
    font-size: 0.95rem;
    color: var(--ic-gray-light);
    letter-spacing: 0.02em;
}

.ic-dm-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.2rem;
}

.ic-dm-modal.is-open {
    display: flex;
}

.ic-dm-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(4, 4, 4, 0.82);
    backdrop-filter: blur(4px);
}

.ic-dm-modal__dialog {
    position: relative;
    width: min(1220px, 96vw);
    max-height: calc(100vh - 2.4rem);
    border: 1px solid rgba(219, 100, 45, 0.45);
    border-radius: 16px;
    background: linear-gradient(150deg, rgba(20, 20, 20, 0.98), rgba(7, 7, 7, 0.98));
    box-shadow: 0 28px 80px rgba(0, 0, 0, 0.55);
    overflow: hidden;
    z-index: 1;
}

.ic-dm-modal__layout {
    display: grid;
    grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
    max-height: inherit;
}

.ic-dm-modal__sidebar {
    display: grid;
    grid-template-rows: 1fr auto;
    background: linear-gradient(170deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
    border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.ic-dm-modal__media {
    background: radial-gradient(circle at 50% 8%, rgba(219, 100, 45, 0.12), rgba(255, 255, 255, 0));
    padding: 1rem 1rem 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
}

.ic-dm-modal__media.is-empty::after {
    content: "Nessuna immagine";
    color: var(--ic-gray-light);
    font-size: 0.95rem;
    letter-spacing: 0.02em;
}

.ic-dm-modal__media img {
    width: 100%;
    max-height: calc(100vh - 14rem);
    object-fit: contain;
    border-radius: 12px;
}

.ic-dm-modal__identity {
    padding: 0.45rem 1.15rem 1.2rem;
}

.ic-dm-modal__content {
    padding: 1.35rem 1.45rem 1.5rem;
    overflow-y: auto;
}

.ic-dm-modal__name {
    margin: 0 0 0.32rem;
    color: #fff;
    font-size: clamp(1.3rem, 1.06rem + 0.72vw, 1.8rem);
    line-height: 1.2;
}

.ic-dm-modal__role {
    margin: 0;
    color: #e8e8e8;
    font-size: 0.98rem;
    font-weight: 600;
    line-height: 1.4;
}

.ic-dm-modal__company {
    margin: 0.28rem 0 0;
    color: var(--ic-accent);
    font-size: 0.76rem;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    line-height: 1.3;
}

.ic-dm-modal__bio {
    margin: 0;
    color: var(--ic-gray-light);
    line-height: 1.75;
}

.ic-dm-modal__bio > :first-child {
    margin-top: 0;
}

.ic-dm-modal__bio > :last-child {
    margin-bottom: 0;
}

.ic-dm-modal__bio p,
.ic-dm-modal__bio ul,
.ic-dm-modal__bio ol,
.ic-dm-modal__bio blockquote {
    margin: 0 0 0.95rem;
}

.ic-dm-modal__bio ul,
.ic-dm-modal__bio ol {
    padding-left: 1.15rem;
}

.ic-dm-modal__bio h1,
.ic-dm-modal__bio h2,
.ic-dm-modal__bio h3,
.ic-dm-modal__bio h4,
.ic-dm-modal__bio h5,
.ic-dm-modal__bio h6 {
    margin: 1.05rem 0 0.55rem;
    color: #fff;
    line-height: 1.25;
}

.ic-dm-modal__bio a {
    color: var(--ic-accent);
    text-decoration: underline;
}

.ic-dm-modal__bio strong {
    color: #fff;
}

.ic-dm-modal__close {
    position: absolute;
    top: 0.65rem;
    right: 0.65rem;
    width: 2.2rem;
    height: 2.2rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.5);
    color: var(--ic-white);
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
}

.ic-dm-modal__close:hover {
    border-color: rgba(219, 100, 45, 0.75);
    color: var(--ic-accent);
}

/* CTA Cards */
.ic-cta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 3rem;
}

.ic-cta-card {
    background-color: var(--ic-gray-dark);
    border: 2px solid transparent;
    border-radius: 16px;
    padding: 3rem;
    transition: border-color 0.3s;
}

.ic-cta-card:hover {
    border-color: var(--ic-steel);
}

.ic-cta-title {
    font-size: clamp(1.35rem, 1.1rem + 0.6vw, 1.72rem);
    font-weight: 700;
    color: var(--ic-white);
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.12;
    white-space: nowrap;
}

.ic-cta-list {
    list-style: none;
    padding: 0;
    margin: 2rem 0;
}

.ic-cta-list li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 1rem;
    color: var(--ic-white);
    line-height: 1.8;
    text-align: left;
    text-justify: auto;
    text-align-last: auto;
    hyphens: auto;
}

.ic-cta-list li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--ic-white);
    font-weight: 600;
}

.ic-cta-button {
    display: inline-block;
    padding: 1rem 2.5rem;
    border: 2px solid var(--ic-steel);
    color: var(--ic-silver);
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-decoration: none;
    transition: all 0.3s;
    border-radius: 9999px;
    background: transparent;
    cursor: pointer;
}

.ic-cta-button:hover {
    background-color: var(--ic-steel);
    color: var(--ic-dark);
}

/* CTA Card with Image */
.ic-cta-card--with-image {
    display: flex;
    flex-direction: row-reverse;
    overflow: hidden;
    padding: 0;
}

.ic-cta-card--with-image .ic-cta-card__content {
    flex: 1 1 auto;
    min-width: 0;
    padding: 2.7rem 2.2rem;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.ic-cta-card--with-image .ic-cta-button {
    margin-top: auto;
    align-self: flex-start;
}

.ic-cta-card__image {
    position: relative;
    width: 38%;
    flex: 0 0 38%;
    min-height: 100%;
    flex-shrink: 0;
}

.ic-cta-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ic-cta-card__image-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, var(--ic-gray-dark) 0%, transparent 100%);
}

/* Form Styles */
.ic-form-wrapper {
    background-color: var(--ic-gray-dark);
    border-radius: 16px;
    padding: 3rem;
    max-width: 800px;
    margin: 3rem auto;
}

.ic-form-tabs {
    display: flex;
    gap: 2rem;
    margin-bottom: 2rem;
    border-bottom: 2px solid rgba(255,255,255,0.1);
}

.ic-form-tab {
    padding: 1rem 2rem;
    border: none;
    background: transparent;
    color: var(--ic-gray-light);
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
}

.ic-form-tab.active {
    color: var(--ic-white);
    border-bottom-color: var(--ic-accent);
}

.ic-form-panel {
    display: none;
}

.ic-form-panel.active {
    display: block;
}

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

.ic-form-group label {
    display: block;
    margin-bottom: 0.5rem;
    color: #fff;
    font-weight: 600;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
}

.ic-form-group .required {
    color: var(--ic-red);
}

.ic-form-group input,
.ic-form-group textarea,
.ic-form-group select {
    width: 100%;
    padding: 0.9rem 1.2rem;
    background-color: var(--ic-gray-medium);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 6px;
    color: #fff;
    font-family: 'Google Sans Flex';
    font-size: 1rem;
    transition: border-color 0.3s;
}

.ic-form-group input:focus,
.ic-form-group textarea:focus,
.ic-form-group select:focus {
    outline: none;
    border-color: var(--ic-steel);
}

.ic-form-group textarea {
    min-height: 120px;
    resize: vertical;
}

/* Contatore caratteri (campi con limite) */
.ic-char-counter {
    margin-top: 6px;
    text-align: right;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.55);
    letter-spacing: 0.02em;
}

.ic-char-counter.is-over {
    color: var(--ic-red);
    font-weight: 700;
}

.ic-form-group textarea.is-over-limit {
    border-color: var(--ic-red) !important;
    box-shadow: 0 0 0 3px rgba(204, 55, 21, 0.22);
}

.ic-list-field {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ic-list-tiles {
    display: grid;
    gap: 0.7rem;
    counter-reset: ic-list-tile;
}

.ic-list-tile {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 60px;
    padding: 0.7rem 0.75rem 0.7rem 0.68rem;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    background: linear-gradient(120deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
}

.ic-list-tile::before {
    counter-increment: ic-list-tile;
    content: counter(ic-list-tile);
    width: 1.75rem;
    height: 1.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(219, 100, 45, 0.22);
    border: 1px solid rgba(219, 100, 45, 0.65);
    background: color-mix(in srgb, var(--ic-modal-accent) 22%, transparent);
    border: 1px solid color-mix(in srgb, var(--ic-modal-accent) 65%, transparent);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
}

.ic-list-tile-input {
    flex: 1 1 auto;
    width: 100%;
    padding: 0.62rem 0.72rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.22);
    color: #fff;
}

.ic-list-tile-input:focus {
    outline: none;
    border-color: var(--ic-modal-accent);
}

.ic-list-remove {
    width: 2rem;
    height: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.35);
    color: var(--ic-white);
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
}

.ic-list-remove:hover {
    border-color: var(--ic-modal-accent);
    color: var(--ic-modal-accent);
}

.ic-list-add {
    align-self: flex-start;
    min-height: 42px;
    padding: 0.55rem 1.1rem;
    border: 1px dashed rgba(219, 100, 45, 0.85);
    border: 1px dashed color-mix(in srgb, var(--ic-modal-accent) 80%, #ffffff 20%);
    border-radius: 999px;
    background: rgba(219, 100, 45, 0.14);
    background: color-mix(in srgb, var(--ic-modal-accent) 14%, transparent);
    color: var(--ic-white);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
}

.ic-list-add:hover {
    background: var(--ic-modal-accent);
    color: #fff;
}

.ic-guest-cluster {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.4rem;
}

.ic-guest-controls {
    display: grid;
    gap: 0.6rem;
    margin: 0.85rem 0 1rem;
}

.ic-guest-add {
    align-self: flex-start;
    min-height: 42px;
    padding: 0.55rem 1.1rem;
    border: 1px dashed color-mix(in srgb, var(--ic-modal-accent, var(--ic-accent)) 80%, #ffffff 20%);
    border-radius: 999px;
    background: color-mix(in srgb, var(--ic-modal-accent, var(--ic-accent)) 14%, transparent);
    color: var(--ic-white);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
}

.ic-guest-add:hover {
    background: var(--ic-modal-accent);
    border-color: var(--ic-modal-accent);
}

.ic-guest-chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ic-guest-chip {
    min-height: 34px;
    padding: 0.35rem 0.78rem;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.05);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
}

.ic-guest-chip:hover {
    border-color: var(--ic-modal-accent);
    color: var(--ic-modal-accent);
}

.ic-guest-generated {
    border-left: 2px solid color-mix(in srgb, var(--ic-modal-accent, var(--ic-accent)) 60%, transparent);
    padding-left: 0.9rem;
}

.ic-guest-documents {
    margin: 1rem 0 1.2rem;
    padding: 0.9rem 0.95rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.03);
}

.ic-guest-documents h4 {
    margin: 0 0 0.3rem;
    color: #fff;
    font-size: 0.98rem;
}

.ic-guest-documents-note {
    margin: 0 0 0.75rem;
    color: rgba(255, 255, 255, 0.74);
    font-size: 0.86rem;
}

.ic-guest-documents-body {
    display: grid;
    gap: 0.8rem;
}

.ic-guest-doc-field {
    margin-bottom: 0;
}

.ic-file-upload-group {
    padding: 2rem;
    border: 2px dashed color-mix(in srgb, var(--ic-modal-accent, var(--ic-accent)) 45%, transparent);
    border-radius: 8px;
    text-align: center;
    transition: border-color 0.3s;
}

.ic-file-upload-group:hover {
    border-color: var(--ic-steel);
}

.ic-submit-button {
    width: 100%;
    padding: 1.2rem;
    background-color: var(--ic-steel);
    color: var(--ic-dark);
    border: none;
    border-radius: 8px;
    font-size: 1.1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    cursor: pointer;
    transition: all 0.3s;
}

.ic-submit-button:hover {
    background-color: var(--ic-accent);
    box-shadow: 0 8px 24px rgba(219, 100, 45, 0.4);
}

.ic-submit-button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.ic-form-message {
    padding: 1rem;
    border-radius: 6px;
    margin-bottom: 1.5rem;
    text-align: center;
}

.ic-form-message.success {
    background-color: rgba(0, 255, 0, 0.1);
    border: 1px solid rgba(0, 255, 0, 0.3);
    color: #00ff00;
}

.ic-form-message.error {
    background-color: rgba(204, 55, 21, 0.1);
    border: 1px solid var(--ic-red);
    color: var(--ic-red);
}

/* Modal Autori */
.ic-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.35rem;
    background: rgba(3, 3, 3, 0.76);
    backdrop-filter: blur(6px);
}

.ic-modal-backdrop.is-open {
    display: flex;
}

.ic-modal-dialog {
    --ic-modal-accent: var(--ic-accent);
    position: relative;
    width: min(960px, 100%);
    max-height: calc(100vh - 2.7rem);
    overflow: hidden auto;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: linear-gradient(160deg, rgba(20, 20, 20, 0.97), rgba(7, 7, 7, 0.98));
    box-shadow: 0 36px 80px rgba(0, 0, 0, 0.58);
}

.ic-modal-close {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    width: 2.2rem;
    height: 2.2rem;
    border: 1px solid rgba(255, 255, 255, 0.34);
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.58);
    color: var(--ic-white);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
}

.ic-modal-close:hover {
    border-color: var(--ic-modal-accent);
    color: var(--ic-modal-accent);
}

.ic-modal-head {
    padding: 2rem 2rem 1.2rem;
}

.ic-modal-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0 auto;
}

.ic-modal-logo {
    width: auto;
    height: 112px;
    max-width: min(100%, 430px);
    object-fit: contain;
    flex: 0 0 auto;
}

.ic-modal-title {
    margin: 0;
    color: #fff;
    font-size: clamp(1.35rem, 1.1rem + 0.95vw, 1.95rem);
    line-height: 1.12;
}

.ic-modal-heading {
    margin: 0.75rem 0 0;
    text-align: center;
}

.ic-modal-heading .ic-modal-title {
    margin-bottom: 0.3rem;
}

.ic-modal-subtitle {
    margin: 0;
    color: var(--ic-white);
    font-size: 0.98rem;
    line-height: 1.45;
    letter-spacing: 0.02em;
}

.ic-modal-description {
    margin: 1rem auto 0;
    max-width: min(100%, 980px);
    color: #ffffff;
    line-height: var(--ic-abstract-line-height);
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    hyphens: auto;
    font-size: var(--ic-abstract-font-size);
}

.ic-modal-description [class*="has-text-align-"]:not(ul):not(ol):not(li) {
    text-align: justify !important;
    text-justify: inter-word !important;
    text-align-last: auto !important;
}

.ic-modal-description .ic-format-highlights {
    margin-top: 0.35rem;
    margin-bottom: 0.75rem;
}

.ic-modal-description .ic-format-highlight-date {
    font-size: var(--ic-abstract-font-size);
}

.ic-modal-description .ic-format-highlight-flow {
    gap: 0.35rem;
    margin-bottom: 0.7rem;
}

.ic-modal-description .ic-format-step {
    min-height: 0;
    padding: 0;
}

.ic-modal-description .ic-format-step-text {
    font-size: var(--ic-abstract-font-size);
}

/* Popup Autori (S2F / CSC / PMS): desktop in linea, mobile in colonna */
body.page-template-page-industry-club-autori .ic-modal-description .ic-format-highlights--modal .ic-format-highlight-flow,
body.page-template-page-industry-club-autori-php .ic-modal-description .ic-format-highlights--modal .ic-format-highlight-flow {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 1.15rem;
}

body.page-template-page-industry-club-autori .ic-modal-description .ic-format-highlights--modal .ic-format-step,
body.page-template-page-industry-club-autori-php .ic-modal-description .ic-format-highlights--modal .ic-format-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

body.page-template-page-industry-club-autori .ic-modal-description .ic-format-highlights--modal .ic-format-step-text,
body.page-template-page-industry-club-autori-php .ic-modal-description .ic-format-highlights--modal .ic-format-step-text {
    white-space: nowrap;
}

.ic-modal-dialog .ic-format-step,
.ic-modal-dialog .ic-format-step--pitch,
.ic-modal-dialog .ic-format-step--one-to-one,
.ic-modal-dialog .ic-format-step--network {
    border-color: transparent;
    background: transparent;
}

.ic-modal-dialog .ic-format-step-icon,
.ic-modal-dialog .ic-format-step--pitch .ic-format-step-icon,
.ic-modal-dialog .ic-format-step--one-to-one .ic-format-step-icon,
.ic-modal-dialog .ic-format-step--network .ic-format-step-icon {
    color: var(--ic-modal-accent);
}

.ic-modal-description p,
.ic-modal-description blockquote {
    margin: 0 0 1rem;
    color: #ffffff !important;
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    hyphens: auto;
    font-size: var(--ic-abstract-font-size);
    line-height: var(--ic-abstract-line-height);
}

.ic-modal-description h1,
.ic-modal-description h2,
.ic-modal-description h3,
.ic-modal-description h4,
.ic-modal-description h5,
.ic-modal-description h6 {
    margin: 1.2rem 0 0.72rem;
    color: #fff !important;
    line-height: var(--ic-abstract-line-height);
    font-size: var(--ic-abstract-font-size);
    font-weight: 700;
    text-align: left;
    text-justify: auto;
    text-align-last: auto;
    hyphens: auto;
}

/* Solo Industry Player: uniforma davvero il titolo interno (h1-h6) tra Listen e Corner */
body.page-template-page-industry-club-produttori .ic-modal-description [class*="has-"][class*="-font-size"],
body.page-template-page-industry-club-produttori-php .ic-modal-description [class*="has-"][class*="-font-size"] {
    font-size: inherit !important;
}

body.page-template-page-industry-club-produttori .ic-modal-description h1,
body.page-template-page-industry-club-produttori-php .ic-modal-description h1,
body.page-template-page-industry-club-produttori .ic-modal-description h2,
body.page-template-page-industry-club-produttori-php .ic-modal-description h2,
body.page-template-page-industry-club-produttori .ic-modal-description h3,
body.page-template-page-industry-club-produttori-php .ic-modal-description h3,
body.page-template-page-industry-club-produttori .ic-modal-description h4,
body.page-template-page-industry-club-produttori-php .ic-modal-description h4,
body.page-template-page-industry-club-produttori .ic-modal-description h5,
body.page-template-page-industry-club-produttori-php .ic-modal-description h5,
body.page-template-page-industry-club-produttori .ic-modal-description h6,
body.page-template-page-industry-club-produttori-php .ic-modal-description h6 {
    margin: 0.9rem 0 0.6rem !important;
    font-size: var(--ic-abstract-font-size) !important;
    font-weight: 700 !important;
    line-height: var(--ic-abstract-line-height) !important;
    color: #fff !important;
    text-align: justify !important;
    text-justify: inter-word !important;
    text-align-last: auto !important;
    hyphens: auto !important;
}

.ic-modal-description > :last-child {
    margin-bottom: 0;
}

.ic-modal-description ul,
.ic-modal-description ol {
    display: block;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0.55rem;
    margin-bottom: 0.95rem;
    padding-left: 1.5rem;
    text-align: left;
    list-style-position: outside;
    width: 100%;
}

.ic-modal-description ul {
    list-style-type: disc;
}

.ic-modal-description ol {
    list-style-type: decimal;
}

.ic-modal-description li {
    margin: 0 0 0.48rem;
    color: #ffffff !important;
    font-size: var(--ic-abstract-font-size);
    line-height: var(--ic-abstract-line-height);
    text-align: left;
    text-justify: auto;
    text-align-last: auto;
    hyphens: auto;
}

.ic-modal-description li p {
    margin: 0;
    text-align: left !important;
    text-align-last: auto !important;
}

.ic-modal-description li::marker {
    color: #ffffff;
}

.ic-modal-description a {
    color: var(--ic-modal-accent) !important;
    text-decoration: underline;
}

.ic-modal-description strong {
    color: #fff !important;
}

.ic-modal-description .ic-price-highlight {
    display: block;
    margin: 0.4rem auto;
    font-size: clamp(2rem, 1.7rem + 1.3vw, 3rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.01em;
    color: var(--ic-modal-accent) !important;
    text-align: center !important;
    text-align-last: center !important;
}

.ic-modal-description .ic-footnote-note {
    display: block;
    margin-top: 0.6rem;
    font-size: 0.78em;
    line-height: 1.45;
    color: #ffffff;
    text-align: center !important;
    text-align-last: center !important;
}

.ic-modal-actions {
    margin-top: 1.15rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    width: 100%;
    gap: 0.62rem;
}

.ic-modal-regulation {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0.62rem 1.1rem;
    border: 1px solid var(--ic-modal-accent);
    border-radius: 999px;
    color: var(--ic-white);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color 0.25s, color 0.25s;
}

.ic-modal-regulation:hover {
    background-color: var(--ic-modal-accent);
    border-color: var(--ic-modal-accent);
    color: #fff;
}

.ic-modal-apply {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    min-height: 50px;
    padding: 0.72rem 1.6rem;
    border: 1px solid var(--ic-modal-accent);
    border-radius: 999px;
    background: var(--ic-modal-accent);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform 0.24s, filter 0.24s;
}

.ic-modal-apply:hover {
    filter: brightness(1.08);
    transform: translateY(-1px);
}

.ic-modal-form-wrapper {
    padding: 0.95rem 2rem 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    margin-top: 0.35rem;
}

.ic-modal-backdrop.is-form-open .ic-modal-head {
    padding-bottom: 0.65rem;
}

.ic-modal-dialog .ic-form-tabs {
    border-bottom-color: rgba(255, 255, 255, 0.14);
}

.ic-modal-dialog .ic-form-tab.active {
    border-bottom-color: var(--ic-modal-accent);
    color: #fff;
}

.ic-modal-dialog .ic-form-group input:focus,
.ic-modal-dialog .ic-form-group textarea:focus,
.ic-modal-dialog .ic-form-group select:focus {
    border-color: var(--ic-modal-accent);
}

.ic-modal-dialog .ic-file-upload-group {
    position: relative;
}

.ic-modal-dialog .ic-file-upload-group:hover {
    border-color: var(--ic-modal-accent);
}

.ic-file-upload-meta {
    font-size: 0.9rem;
    margin-top: 0.5rem;
    color: var(--ic-gray-light);
}

.ic-modal-dialog .ic-file-upload-label:hover {
    border-color: var(--ic-modal-accent);
    background-color: rgba(255, 255, 255, 0.08);
}

.ic-modal-dialog .ic-submit-button {
    background-color: var(--ic-modal-accent);
    color: #fff;
    display: block;
    width: min(100%, 500px);
    min-height: 68px;
    margin: 1.35rem auto 0;
    padding: 1.25rem 2.4rem;
    border-radius: 999px;
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-align: center;
}

.ic-modal-dialog .ic-submit-button:hover {
    background-color: var(--ic-modal-accent);
    filter: brightness(1.08);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.ic-bonifico-instructions {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    padding: 1rem 1.1rem;
    margin-bottom: 1.2rem;
}

.ic-bonifico-instructions h4 {
    margin: 0 0 0.62rem;
    color: var(--ic-modal-accent);
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ic-bonifico-instructions p {
    margin: 0 0 0.36rem;
}

.ic-bonifico-note {
    margin-top: 0.7rem !important;
    color: var(--ic-gray-light);
    font-size: 0.9rem;
}

.ic-payment-info-block {
    margin: 0 0 1.15rem;
    padding: 0.95rem 1rem;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
    text-align: center;
}

.ic-payment-info-block--paypal {
    border-color: color-mix(in srgb, var(--ic-modal-accent) 55%, #ffffff 45%);
}

.ic-payment-info-block--bonifico {
    border-color: color-mix(in srgb, var(--ic-modal-accent) 45%, #ffffff 55%);
}

.ic-payment-info-title {
    margin: 0 0 0.45rem;
    font-size: 0.95rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--ic-modal-accent);
}

.ic-payment-info-text,
.ic-payment-info-block p {
    margin: 0 0 0.35rem;
}

.ic-payment-info-amount {
    margin: 0.45rem 0 0.62rem !important;
    font-size: 1.03rem;
}

.ic-payment-link-button {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    width: fit-content;
    margin: 0.2rem auto 0;
    padding: 0.5rem 1rem;
    border: 1px solid color-mix(in srgb, var(--ic-modal-accent) 80%, #ffffff 20%);
    border-radius: 999px;
    color: #fff;
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ic-payment-link-button:hover {
    background: color-mix(in srgb, var(--ic-modal-accent) 25%, transparent);
}

.ic-payment-receipt-block {
    margin-top: 1.3rem;
    border-style: solid;
    border-width: 1px;
    border-color: color-mix(in srgb, var(--ic-modal-accent) 45%, rgba(255, 255, 255, 0.2));
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.55));
}

.ic-payment-receipt-title {
    margin: 0 0 0.3rem;
    color: #fff;
    font-size: 1.12rem;
}

.ic-payment-receipt-text {
    margin: 0 0 0.8rem;
    color: rgba(255, 255, 255, 0.86);
}

.ic-payment-info-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    margin-bottom: 0.88rem;
    padding: 0.45rem 0.9rem;
    border: 1px dashed rgba(255, 255, 255, 0.35);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.02);
    color: rgba(255, 255, 255, 0.94);
    font-size: 0.78rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    cursor: pointer;
}

.ic-payment-info-link:hover {
    border-color: var(--ic-modal-accent);
    color: #fff;
}

.ic-antispam-honeypot {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.ic-form-security {
    margin: 0.85rem 0 1rem;
    display: flex;
    justify-content: center;
}

.ic-turnstile-host {
    min-height: 65px;
}

.ic-form-privacy-note {
    margin: 0 0 0.95rem;
    color: rgba(237, 237, 237, 0.86);
    font-size: 0.86rem;
    line-height: 1.45;
}

.ic-form-privacy-note a {
    color: #ffffff;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ic-form-privacy-note a:hover {
    color: var(--ic-modal-accent);
}

.ic-file-upload-group input[type="file"] {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.ic-file-upload-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.7rem 1.2rem;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: var(--ic-silver);
    cursor: pointer;
    transition: border-color 0.25s, color 0.25s, background-color 0.25s;
}

.ic-file-upload-label:hover {
    border-color: var(--ic-modal-accent);
    color: #fff;
    background-color: rgba(255, 255, 255, 0.08);
}

/* Options Grid (Autori) */
.ic-options-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 1.35rem;
    align-items: stretch;
}

.ic-option-card {
    --option-color: var(--ic-accent);
    background-color: #121212;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 16px;
    padding: 2rem 1.45rem;
    text-align: center;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.25s, border-color 0.25s, box-shadow 0.25s;
}

.ic-option-card:hover {
    transform: translateY(-7px);
    border-color: var(--option-color);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.36);
}

.ic-option-logo-wrap {
    width: 100%;
    margin: 0 auto 1.2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.ic-option-logo {
    width: auto;
    max-width: min(100%, 220px);
    height: 66px;
    object-fit: contain;
}

.ic-option-logo-bar {
    width: 86px;
    height: 3px;
    margin-top: 0.8rem;
    border-radius: 3px;
    background-color: var(--option-color);
}

.ic-option-title {
    margin: 0;
    font-size: clamp(1.2rem, 1.04rem + 0.55vw, 1.45rem);
    font-weight: 700;
    color: #fff;
    letter-spacing: 0.01em;
    text-transform: none;
    width: 100%;
}

.ic-option-description {
    margin: 0.82rem 0 1.5rem;
    color: var(--ic-white);
    line-height: var(--ic-abstract-line-height);
    font-size: var(--ic-abstract-font-size);
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    hyphens: auto;
    min-height: 3.2em;
    width: 100%;
}

.ic-option-description--wysiwyg {
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    min-height: 0;
    width: min(100%, 560px);
    margin-left: auto;
    margin-right: auto;
    margin-top: 0.9rem;
    margin-bottom: 1.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
}

.ic-option-description--wysiwyg > * {
    width: 100%;
}

.ic-option-description--wysiwyg .has-text-align-left,
.ic-option-description--wysiwyg .has-text-align-left * {
    text-align: left !important;
    text-align-last: auto !important;
    text-justify: auto !important;
}

.ic-option-description--wysiwyg .has-text-align-center,
.ic-option-description--wysiwyg .has-text-align-center * {
    text-align: center !important;
    text-align-last: center !important;
    text-justify: auto !important;
}

.ic-option-description--wysiwyg .has-text-align-right,
.ic-option-description--wysiwyg .has-text-align-right * {
    text-align: right !important;
    text-align-last: right !important;
    text-justify: auto !important;
}

.ic-option-description--wysiwyg .has-text-align-justify,
.ic-option-description--wysiwyg .has-text-align-justify * {
    text-align: justify !important;
    text-align-last: auto !important;
    text-justify: inter-word !important;
}

.ic-option-subtitle {
    margin: 0;
    min-height: 0;
    width: 100%;
    line-height: var(--ic-abstract-line-height);
    font-size: var(--ic-abstract-font-size) !important;
    font-weight: 600 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ic-white);
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    hyphens: auto;
}

.ic-option-description--wysiwyg .ic-option-subtitle,
.ic-option-description--wysiwyg .ic-option-subtitle *,
.ic-option-description--wysiwyg .ic-option-body,
.ic-option-description--wysiwyg .ic-option-body *,
.ic-option-description--wysiwyg .ic-option-footnote,
.ic-option-description--wysiwyg .ic-option-footnote * {
    color: var(--ic-white) !important;
}

.ic-option-price {
    color: var(--option-color) !important;
}

.ic-option-price {
    margin: 0.4rem 0;
    font-size: clamp(2rem, 1.7rem + 1.3vw, 3rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.01em;
    color: var(--option-color);
}

.ic-option-body {
    margin: 0;
    color: var(--ic-white);
    text-align: justify;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.ic-option-body p {
    margin: 0 0 0.72rem;
    text-align: justify;
    font-size: var(--ic-abstract-font-size) !important;
    line-height: var(--ic-abstract-line-height) !important;
    font-weight: 500;
    color: var(--ic-white) !important;
    text-justify: inter-word;
    text-align-last: auto;
    hyphens: auto;
}

.ic-option-body h1,
.ic-option-body h2,
.ic-option-body h3,
.ic-option-body h4,
.ic-option-body h5,
.ic-option-body h6 {
    margin: 0 0 0.72rem;
    font-size: var(--ic-abstract-font-size);
    font-weight: 600;
    line-height: var(--ic-abstract-line-height);
    color: var(--ic-white);
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    hyphens: auto;
}

.ic-option-body > :last-child {
    margin-bottom: 0;
}

.ic-option-body ul,
.ic-option-body ol {
    display: block;
    margin-top: 0.55rem;
    margin-bottom: 0.95rem;
    margin-left: 0;
    margin-right: 0;
    padding-left: 1.45rem !important;
    text-align: left;
    list-style-position: outside !important;
    width: 100%;
}

.ic-option-body ul {
    list-style-type: disc !important;
}

.ic-option-body ol {
    list-style-type: decimal !important;
}

.ic-option-body li {
    margin: 0 0 0.48rem;
    font-size: inherit !important;
    line-height: inherit !important;
    text-align: left;
    text-align-last: auto;
}

.ic-option-body li p {
    margin: 0;
    text-align: left !important;
    text-align-last: auto !important;
}

.ic-option-body li::marker {
    color: var(--ic-white) !important;
}

.ic-option-footnote {
    margin-top: 0.9rem;
    margin-bottom: 0;
    font-size: clamp(0.88rem, 0.84rem + 0.12vw, 0.95rem);
    line-height: 1.6;
    color: var(--ic-white);
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    font-weight: 500;
}

/* Solo pagina Industry Player: forza dimensioni uguali anche se nel WYSIWYG ci sono h3/classi custom */
body.page-template-page-industry-club-produttori .ic-option-subtitle,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle,
body.page-template-page-industry-club-produttori .ic-option-subtitle p,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle p,
body.page-template-page-industry-club-produttori .ic-option-subtitle h1,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle h1,
body.page-template-page-industry-club-produttori .ic-option-subtitle h2,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle h2,
body.page-template-page-industry-club-produttori .ic-option-subtitle h3,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle h3,
body.page-template-page-industry-club-produttori .ic-option-subtitle h4,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle h4,
body.page-template-page-industry-club-produttori .ic-option-subtitle h5,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle h5,
body.page-template-page-industry-club-produttori .ic-option-subtitle h6,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle h6 {
    margin: 0 !important;
    font-size: var(--ic-abstract-font-size) !important;
    font-weight: 700 !important;
    line-height: var(--ic-abstract-line-height) !important;
    color: var(--ic-white) !important;
    text-align: center !important;
    text-align-last: center !important;
    text-justify: auto !important;
    hyphens: manual !important;
}

.ic-option-card .ic-cta-button {
    border-color: var(--option-color);
    color: var(--option-color);
    min-width: 170px;
    padding: 0.86rem 1.7rem;
    margin-top: auto;
    margin-bottom: 0.2rem;
    align-self: center;
}

.ic-option-card .ic-cta-button:hover {
    background-color: var(--option-color);
    color: #fff;
}

/* FAQ globali Industry Club */
.ic-faq-section {
    padding-top: 2.2rem;
    padding-bottom: 4rem;
}

.ic-faq-section .ic-section-title {
    margin: 0 0 2.2rem;
}

.ic-faq-section .ic-faq-list {
    margin-top: 0.3rem;
}

.ic-faq-list {
    width: min(100%, 980px);
    margin: 0 auto;
    display: grid;
    gap: 0.85rem;
}

.ic-faq-item {
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(0, 0, 0, 0.22));
    overflow: hidden;
}

.ic-faq-question {
    list-style: none;
    cursor: pointer;
    padding: 1rem 1.15rem;
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.4;
    position: relative;
    padding-right: 3.1rem;
}

.ic-faq-question::-webkit-details-marker {
    display: none;
}

.ic-faq-question::marker {
    content: "";
}

.ic-faq-question::after {
    content: "+";
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1.5rem;
    height: 1.5rem;
    border: 1px solid rgba(255, 255, 255, 0.32);
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--ic-accent);
    font-size: 1rem;
    line-height: 1;
}

.ic-faq-item[open] .ic-faq-question::after {
    content: "−";
}

.ic-faq-answer {
    padding: 0.15rem 1.15rem 1rem;
    color: var(--ic-gray-light);
    line-height: 1.72;
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    hyphens: auto;
}

.ic-faq-answer p,
.ic-faq-answer ul,
.ic-faq-answer ol,
.ic-faq-answer blockquote {
    margin: 0 0 0.75rem;
    text-align: justify;
    text-justify: inter-word;
    text-align-last: auto;
    hyphens: auto;
}

.ic-faq-answer ul,
.ic-faq-answer ol,
.ic-faq-answer li {
    text-align: left;
    text-align-last: auto;
}

.ic-faq-answer > :last-child {
    margin-bottom: 0;
}

.ic-faq-answer h1,
.ic-faq-answer h2,
.ic-faq-answer h3,
.ic-faq-answer h4,
.ic-faq-answer h5,
.ic-faq-answer h6 {
    margin: 0 0 0.55rem;
    color: var(--ic-white);
    line-height: 1.3;
}

.ic-faq-answer strong {
    color: var(--ic-white);
}

.ic-faq-answer a {
    color: var(--ic-accent);
}

/* Responsive */
@media (max-width: 768px) {
    body.industry-club-site .container {
        padding-left: 1.35rem !important;
        padding-right: 1.35rem !important;
    }

    .ic-hero-deadline-badge {
        top: 88px;
        left: 50%;
        transform: translateX(-50%);
        width: max-content;
        max-width: calc(100% - 32px);
        text-align: center;
        font-size: 0.72rem;
        padding: 0.42rem 0.55rem;
    }

    body.admin-bar .ic-hero-deadline-badge {
        top: 126px;
    }

    .ic-hero-logo {
        max-width: 280px;
    }

    #ic-hero .ic-hero-content {
        transform: translateY(36px);
        padding-top: clamp(0.95rem, 2.4vh, 1.45rem);
    }

    #ic-hero .ic-hero-logo {
        max-width: min(86vw, 360px);
        margin: 1.25rem auto -0.45rem;
    }

    #ic-hero .ic-hero-subtitle-wrap {
        margin-bottom: 1.55rem;
    }

    .ic-hero-subtitle {
        font-size: 1.3rem;
        line-height: 1.5;
    }

    .ic-hero-subtitle-wrap {
        margin-bottom: 2.2rem;
    }

    .ic-hero-date {
        width: auto;
        max-width: none;
        font-size: 1rem;
        padding: 0;
        border: 0;
        background: transparent;
        border-radius: 0;
        text-align: center;
    }

    .ic-autori-hero {
        min-height: 560px;
    }

    .ic-autori-hero-title {
        font-size: clamp(1.9rem, 1.38rem + 3.1vw, 2.8rem);
        line-height: 1.05;
    }

    .ic-autori-hero-subtitle {
        font-size: 1.3rem;
        line-height: 1.5;
    }

    .ic-autori-scroll-claim {
        font-size: clamp(1.02rem, 0.92rem + 0.92vw, 1.24rem);
    }

    .ic-autori-scroll-cta {
        margin-top: 0.95rem;
    }

    .ic-section {
        padding: 2.25rem 0;
    }

    .ic-section-title {
        font-size: 2rem;
    }

    .ic-cta-title {
        white-space: normal;
    }

    .ic-format-highlight-title {
        font-size: 1.45rem;
    }

    .ic-format-section .ic-section-content {
        padding: 1.35rem 1.25rem;
        border-radius: 14px;
    }

    .ic-format-section .ic-section-content p {
        font-size: clamp(0.95rem, 0.9rem + 0.3vw, 1.02rem);
        line-height: 1.66;
    }

    .ic-format-highlights {
        width: 100%;
        gap: 0.42rem;
    }

    .ic-format-highlight-date {
        font-size: clamp(0.96rem, 0.9rem + 0.25vw, 1.02rem);
    }

    .ic-format-highlight-flow {
        gap: 0.2rem;
        margin-bottom: 0.62rem;
    }

    .ic-modal-description .ic-format-highlight-flow {
        gap: 0.2rem;
    }

    body.page-template-page-industry-club-autori .ic-modal-description .ic-format-highlights--modal .ic-format-highlight-flow,
    body.page-template-page-industry-club-autori-php .ic-modal-description .ic-format-highlights--modal .ic-format-highlight-flow {
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 0.28rem;
    }

    body.page-template-page-industry-club-autori .ic-modal-description .ic-format-highlights--modal .ic-format-step,
    body.page-template-page-industry-club-autori-php .ic-modal-description .ic-format-highlights--modal .ic-format-step,
    body.page-template-page-industry-club-autori .ic-modal-description .ic-format-highlights--modal .ic-format-step-text,
    body.page-template-page-industry-club-autori-php .ic-modal-description .ic-format-highlights--modal .ic-format-step-text {
        white-space: normal;
    }

    .ic-format-step {
        min-height: 0;
        padding: 0;
        border-radius: 0;
    }

    .ic-format-step-icon {
        width: 1.08rem;
        height: 1.08rem;
    }

    .ic-format-step-text {
        font-size: clamp(0.95rem, 0.9rem + 0.25vw, 1.02rem);
    }

    .ic-format-cta-wrap {
        margin-top: 1.5rem;
    }

    .ic-format-cta-button {
        width: 100%;
        max-width: 320px;
    }

    .ic-cta-grid {
        grid-template-columns: 1fr;
    }

    .ic-cta-card--with-image {
        flex-direction: column;
    }

    .ic-cta-card__image {
        width: 100%;
        height: 200px;
        order: -1;
    }

    .ic-cta-card__image-overlay {
        background: linear-gradient(to top, var(--ic-gray-dark) 0%, transparent 100%);
    }

    .ic-dm-grid {
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    }

    .ic-dm-discover-wrap {
        margin: 0.9rem auto 1.25rem;
    }

    .ic-dm-discover-link {
        font-size: clamp(0.98rem, 0.9rem + 0.75vw, 1.15rem);
    }

    .ic-dm-modal {
        padding: 1.25rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom));
        display: none;
        align-items: flex-start;
        justify-content: flex-start;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        touch-action: pan-y;
    }

    .ic-dm-modal.is-open {
        display: block;
    }

    .ic-dm-modal__dialog {
        width: calc(100vw - 2.5rem);
        max-width: 720px;
        max-height: none;
        margin: 0 auto;
        overflow: visible;
    }

    .ic-dm-modal__layout {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto;
        max-height: none;
    }

    .ic-dm-modal__sidebar {
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    }

    .ic-dm-modal__media {
        padding: 0.9rem 0.9rem 0.2rem;
    }

    .ic-dm-modal__media img {
        max-height: 40vh;
    }

    .ic-dm-modal__identity {
        padding: 0.35rem 0.9rem 0.95rem;
    }

    .ic-dm-modal__content {
        padding: 0.95rem 0.9rem 1.15rem;
        min-height: auto;
        overflow: visible;
    }

    .ic-dm-modal__name {
        font-size: clamp(1.2rem, 1.06rem + 1vw, 1.45rem);
    }

    .ic-dm-modal__role {
        font-size: 0.9rem;
    }

    .ic-dm-modal__company {
        font-size: 0.7rem;
        letter-spacing: 0.09em;
    }

    .ic-form-wrapper {
        padding: 2rem 1.5rem;
    }

    .ic-modal-backdrop {
        align-items: flex-start;
        overflow-y: auto;
    }

    .ic-modal-dialog {
        width: calc(100vw - 1.5rem);
        max-height: none;
        margin-top: 0.75rem;
        margin-bottom: 0.75rem;
    }

    .ic-modal-head {
        padding: 1.35rem 1.05rem 0.5rem;
    }

    .ic-modal-brand {
        align-items: center;
    }

    .ic-modal-logo {
        height: 74px;
        max-width: min(100%, 280px);
    }

    .ic-modal-actions {
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .ic-modal-regulation,
    .ic-modal-apply {
        width: 100%;
        max-width: 360px;
        text-align: center;
    }

    .ic-modal-form-wrapper {
        padding: 0.35rem 1.05rem 1.2rem;
    }

    .ic-modal-dialog .ic-submit-button {
        width: min(100%, 380px);
        min-height: 60px;
        font-size: 1rem;
    }

    .ic-options-grid {
        grid-template-columns: 1fr;
    }

    .ic-faq-question {
        font-size: 0.95rem;
        padding: 0.9rem 0.95rem;
        padding-right: 2.7rem;
    }

    .ic-faq-question::after {
        right: 0.75rem;
    }

    .ic-faq-answer {
        padding: 0.1rem 0.95rem 0.9rem;
    }

    .ic-form-tabs {
        flex-direction: column;
        gap: 0;
    }

    .ic-form-tab {
        border-bottom: 1px solid rgba(255,255,255,0.1);
        margin-bottom: 0;
        text-align: left;
    }

    .ic-form-tab.active {
        border-bottom-color: var(--ic-accent);
    }
}

/* =========================================
   FIX 1: HERO MOBILE – Centro contenuto + frecce ai bordi
   ========================================= */
@media (max-width: 900px) {
  /* Rimuovi margin-top esagerato, centra verticalmente */
  .cmw-hero-inner {
    margin-top: 0 !important;
    padding-top: 0 !important;
    justify-content: center !important;
    align-items: center !important;
    height: 100%;
  }

  /* Frecce ai bordi della sezione, centrate verticalmente */
  .cmw-hero-nav {
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    justify-content: space-between !important;
    padding: 0 0.5rem !important;
    gap: 0 !important;
  }
}

/* =========================================
   FIX 2: EDIZIONI – padding-bottom card + altezza 60vh
   ========================================= */
.cmw-timeline-track-wrapper {
  padding-bottom: 0 !important;
}

.cmw-timeline-section {
  min-height: 60vh !important;
  height: 60vh !important;
  max-height: 60vh !important;
  overflow: hidden;
}

/* =========================================
   FIX 3: ARTICOLI MOBILE – titoli più grandi del corpo
   ========================================= */
@media (max-width: 768px) {
  .ai-article-content-inner h2 {
    font-size: 1.6rem !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
  }

  .ai-article-content-inner h3 {
    font-size: 1.35rem !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
  }

  .ai-article-content-inner h4 {
    font-size: 1.2rem !important;
    line-height: 1.3 !important;
    font-weight: 700 !important;
  }
}

/* =========================================
   FIX 4: CTA MOBILE/TABLET – immagine sopra, poi contenuto
   ========================================= */
@media (max-width: 1024px) {
  .ic-cta-grid {
    grid-template-columns: 1fr !important;
    gap: 1.4rem !important;
  }

  .ic-cta-card.ic-cta-card--with-image {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    min-height: 0 !important;
  }

  .ic-cta-card.ic-cta-card--with-image .ic-cta-card__image {
    width: 100% !important;
    flex: 0 0 auto !important;
    min-height: 0 !important;
    height: auto !important;
    aspect-ratio: 16 / 10 !important;
    max-height: 360px !important;
    order: 0 !important;
  }

  .ic-cta-card.ic-cta-card--with-image .ic-cta-card__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .ic-cta-card.ic-cta-card--with-image .ic-cta-card__image-overlay {
    background: linear-gradient(to top, var(--ic-gray-dark) 0%, rgba(0, 0, 0, 0.18) 50%, transparent 100%) !important;
  }

  .ic-cta-card.ic-cta-card--with-image .ic-cta-card__content {
    order: 1 !important;
    width: 100% !important;
    padding: 1.2rem 1rem 1.35rem !important;
    justify-content: flex-start !important;
    align-items: center !important;
    text-align: center !important;
  }

  .ic-cta-card.ic-cta-card--with-image .ic-cta-title {
    margin-bottom: 0.8rem !important;
    line-height: 1.2 !important;
    text-align: center !important;
  }

  .ic-cta-card.ic-cta-card--with-image .ic-cta-list {
    width: 100%;
    max-width: 500px;
    margin: 1rem auto 1.15rem !important;
  }

  .ic-cta-card.ic-cta-card--with-image .ic-cta-list li {
    padding-left: 1.3rem !important;
    text-align: left !important;
    text-justify: auto !important;
    text-align-last: auto !important;
  }

  .ic-cta-card.ic-cta-card--with-image .ic-cta-list li::before {
    position: absolute !important;
    left: 0 !important;
    margin-right: 0;
  }

  .ic-cta-card.ic-cta-card--with-image .ic-cta-button {
    width: 100%;
    max-width: 320px;
    text-align: center;
    align-self: center !important;
  }
}

@media (max-width: 600px) {
  .ic-cta-card.ic-cta-card--with-image .ic-cta-card__image {
    aspect-ratio: 5 / 4 !important;
    max-height: 320px !important;
    min-height: 0 !important;
  }
}

/* =========================================
   INDUSTRY CLUB MOBILE HEADER OVERRIDES
   ========================================= */
@media (max-width: 900px) {
  body.industry-club-site .cmw-hamburger span,
  body.industry-club-site .cmw-hamburger.is-active span:nth-child(1),
  body.industry-club-site .cmw-hamburger.is-active span:nth-child(3) {
    background-color: var(--ic-accent) !important;
  }

  body.industry-club-site .cmw-main-nav {
    background-color: var(--ic-black) !important;
  }

  body.industry-club-site .cmw-main-nav .cmw-menu > li > a {
    color: var(--ic-white) !important;
  }

  body.industry-club-site .cmw-main-nav .cmw-menu > li > a:hover,
  body.industry-club-site .cmw-main-nav .cmw-menu > li > a:focus-visible,
  body.industry-club-site .cmw-main-nav .cmw-menu > li.current-menu-item > a,
  body.industry-club-site .cmw-main-nav .cmw-menu > li.current-menu-parent > a,
  body.industry-club-site .cmw-main-nav .cmw-menu > li.current-menu-ancestor > a {
    color: var(--ic-white) !important;
  }

  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw,
  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw:visited {
    background-color: var(--ic-accent) !important;
    border-color: var(--ic-accent) !important;
    color: var(--ic-white) !important;
    transform: scale(1) !important;
    transition: transform 0.2s ease !important;
  }

  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw span {
    color: var(--ic-white) !important;
  }

  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw .cmw-header-cta-arrow {
    color: var(--ic-white) !important;
  }

  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw:hover {
    background-color: var(--ic-accent) !important;
    border-color: var(--ic-accent) !important;
    color: var(--ic-white) !important;
    transform: scale(1.06) !important;
  }

  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw:focus-visible,
  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw:active {
    background-color: var(--ic-accent) !important;
    border-color: var(--ic-accent) !important;
    color: var(--ic-white) !important;
    transform: scale(1) !important;
  }
}

/* =========================================
   SOSTIENICI PAGE - CALABRIA MOVIE (LIGHT)
   ========================================= */
.cmw-support-page {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #f3e5d4 0%, #faefe0 28%, #fff7ea 100%);
  color: #111827;
}

.cmw-support-page::before {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 420px;
  pointer-events: none;
  background: radial-gradient(circle at 50% 0, rgba(239, 201, 132, 0.32), transparent 70%);
}

.cmw-support-page [id] {
  scroll-margin-top: 130px;
}

.cmw-support-container {
  width: min(1100px, calc(100% - 2.6rem));
  margin: 0 auto;
}

.cmw-support-section {
  position: relative;
  padding: clamp(3.8rem, 6.8vw, 6.4rem) 0;
}

.cmw-support-section + .cmw-support-section {
  border-top: 1px solid rgba(122, 35, 9, 0.12);
}

.cmw-support-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.95rem;
  font-size: 0.77rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #9a3412;
}

.cmw-support-eyebrow::before {
  content: '';
  display: inline-block;
  width: 2rem;
  height: 2px;
  background: #cc3715;
}

.cmw-support-title {
  margin: 0;
  font-size: clamp(1.95rem, 3.6vw, 3.45rem);
  line-height: 1.06;
  font-weight: 800;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #111827;
}

.cmw-support-lead {
  margin: 1rem 0 0;
  font-size: clamp(1.15rem, 1.08rem + 0.72vw, 1.62rem);
  line-height: 1.5;
  color: #3f3f46;
}

.cmw-support-panel {
  margin-top: 1.7rem;
  padding: clamp(1.3rem, 2.2vw, 2rem);
  border-radius: 18px;
  border: 1px solid #efd4b5;
  border-left: 4px solid #efc984;
  background: #fffdf8;
  box-shadow: 0 12px 28px rgba(80, 33, 10, 0.11);
}

.cmw-support-panel p {
  margin: 0 0 0.95rem;
  font-size: 1.03rem;
  line-height: 1.78;
  color: #1f2937;
}

.cmw-support-panel p:last-child {
  margin-bottom: 0;
}

.cmw-support-list {
  margin: 1.15rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.74rem;
}

.cmw-support-list li {
  position: relative;
  padding-left: 1.4rem;
  font-size: 1rem;
  line-height: 1.62;
  color: #111827;
}

.cmw-support-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6rem;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: #efc984;
  box-shadow: 0 0 0 2px rgba(204, 55, 21, 0.14);
}

.cmw-support-actions {
  margin-top: 1.8rem;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.85rem;
}

.cmw-support-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0.8rem 1.65rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.cmw-support-btn:hover,
.cmw-support-btn:focus-visible {
  transform: translateY(-2px);
}

.cmw-support-btn--primary {
  background: #cc3715;
  border-color: #cc3715;
  color: #ffffff;
  box-shadow: 0 10px 22px rgba(204, 55, 21, 0.34);
}

.cmw-support-btn--primary:hover,
.cmw-support-btn--primary:focus-visible {
  background: #e14b29;
  border-color: #e14b29;
  color: #ffffff;
}

.cmw-support-btn--secondary,
.cmw-support-btn--ghost {
  background: #fff5df;
  border-color: #efc984;
  color: #7c2d12;
}

.cmw-support-btn--secondary:hover,
.cmw-support-btn--secondary:focus-visible,
.cmw-support-btn--ghost:hover,
.cmw-support-btn--ghost:focus-visible {
  background: #ffeec8;
  border-color: #eabf6d;
  color: #7c2d12;
}

.cmw-support-hero {
  min-height: 90vh;
  display: flex;
  align-items: center;
  text-align: center;
  padding-top: clamp(7.2rem, 13vh, 9.6rem);
  padding-bottom: clamp(3.8rem, 7vh, 5.4rem);
  border-top: 0;
  background: linear-gradient(180deg, rgba(241, 214, 184, 0.72) 0%, rgba(255, 247, 234, 0.95) 100%);
}

.cmw-support-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(204, 55, 21, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(204, 55, 21, 0.07) 1px, transparent 1px);
  background-size: 62px 62px;
  opacity: 0.3;
}

.cmw-support-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(255, 248, 236, 0.36) 0%, rgba(255, 248, 236, 0.84) 84%);
}

.cmw-support-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.cmw-support-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.3;
  filter: saturate(1.08);
}

.cmw-support-hero-content {
  position: relative;
  z-index: 1;
  max-width: 920px;
}

.cmw-support-hero-title {
  margin: 0;
  font-size: clamp(2.35rem, 7vw, 5.2rem);
  line-height: 0.97;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 800;
  color: #0f172a;
  text-wrap: balance;
}

.cmw-support-hero-subtitle {
  margin: 1.35rem auto 0;
  max-width: 780px;
  font-size: clamp(1.22rem, 1.08rem + 0.72vw, 1.75rem);
  line-height: 1.45;
  color: #1f2937;
}

.cmw-support-hero-text {
  margin: 0.85rem auto 0;
  max-width: 620px;
  font-size: 1.03rem;
  line-height: 1.75;
  color: #4b5563;
}

.cmw-support-two-col {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 1.1rem;
  align-items: stretch;
}

.cmw-support-two-col > .cmw-support-panel,
.cmw-support-two-col > .cmw-support-photo-card {
  margin-top: 1.7rem;
}

.cmw-support-photo-card {
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid #efd4b5;
  box-shadow: 0 12px 28px rgba(80, 33, 10, 0.11);
}

.cmw-support-photo-card img {
  width: 100%;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
  display: block;
}

.cmw-support-tax-card {
  margin: 1.25rem 0 1.15rem;
  padding: 1.1rem 1.2rem;
  border-radius: 12px;
  border: 1px solid #efc984;
  border-left: 4px solid #cc3715;
  background: #fff3de;
}

.cmw-support-tax-entity,
.cmw-support-tax-code {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.55;
  color: #111827;
}

.cmw-support-tax-code {
  font-weight: 700;
}

.cmw-support-donation-grid {
  margin-top: 1.5rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.cmw-support-card {
  padding: 1.1rem 1.15rem 1.25rem;
  border-radius: 14px;
  border: 1px solid #efd4b5;
  background: #ffffff;
  box-shadow: 0 8px 22px rgba(80, 33, 10, 0.08);
}

.cmw-support-card h3 {
  margin: 0 0 0.65rem;
  font-size: 1.05rem !important;
  line-height: 1.3;
  color: #7c2d12;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.cmw-support-card p {
  margin-bottom: 0.55rem;
  font-size: 0.97rem;
  line-height: 1.68;
  color: #374151;
}

.cmw-support-note {
  margin-top: 1.2rem !important;
  font-size: 0.94rem !important;
  color: #7c2d12 !important;
}

.cmw-support-partner {
  background:
    radial-gradient(circle at 90% 14%, rgba(204, 55, 21, 0.18), transparent 43%),
    radial-gradient(circle at 12% 86%, rgba(239, 201, 132, 0.28), transparent 42%),
    #f5e8d8;
}

.cmw-support-photo-strip {
  margin-top: 1.6rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
}

.cmw-support-photo-strip-item {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid #efd4b5;
  box-shadow: 0 10px 24px rgba(80, 33, 10, 0.1);
}

.cmw-support-photo-strip-item img {
  width: 100%;
  height: 190px;
  object-fit: cover;
  display: block;
}

.cmw-support-panel--partner {
  border-color: #efcfaa;
  background: linear-gradient(165deg, rgba(239, 201, 132, 0.22), rgba(255, 255, 255, 0.96) 42%);
}

.cmw-support-strong {
  margin-top: 1.15rem !important;
  margin-bottom: 0 !important;
  font-size: 1.02rem !important;
  font-weight: 700;
  color: #111827 !important;
}

.cmw-support-contact {
  background:
    radial-gradient(circle at 20% 20%, rgba(239, 201, 132, 0.35), transparent 48%),
    #f7e8d4;
  color: #111827;
  text-align: center;
}

.cmw-support-contact p {
  margin: 1rem auto 0;
  max-width: 760px;
  font-size: 1.05rem;
  line-height: 1.72;
  color: #374151;
}

.cmw-support-contact .cmw-support-btn {
  margin-top: 1.45rem;
}

.cmw-support-closing {
  text-align: center;
  background: linear-gradient(180deg, #4a1f11 0%, #2f140d 100%);
}

.cmw-support-closing .cmw-support-title {
  color: #ffffff;
  text-wrap: balance;
}

.cmw-support-closing p {
  max-width: 780px;
  margin: 1rem auto 0;
  font-size: 1.04rem;
  line-height: 1.72;
  color: rgba(255, 255, 255, 0.88);
}

.cmw-support-thanks {
  margin-top: 1.25rem !important;
  font-weight: 700;
  color: #efc984 !important;
}

@media (max-width: 960px) {
  .cmw-support-container {
    width: min(1100px, calc(100% - 2rem));
  }

  .cmw-support-two-col {
    grid-template-columns: 1fr;
  }

  .cmw-support-photo-card img {
    min-height: 300px;
  }

  .cmw-support-donation-grid {
    grid-template-columns: 1fr;
  }

  .cmw-support-photo-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .cmw-support-section {
    padding: 3.1rem 0;
  }

  .cmw-support-hero {
    min-height: 84vh;
    padding-top: 7rem;
    padding-bottom: 3.2rem;
  }

  .cmw-support-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .cmw-support-photo-strip {
    grid-template-columns: 1fr;
  }

  .cmw-support-photo-strip-item img {
    height: 220px;
  }

  .cmw-support-btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cmw-support-btn {
    transition: none;
  }
}

/* =========================================
   INDUSTRY CLUB TEXT LAYOUT LOCK
   ========================================= */

/* HOME INDUSTRY CLUB */
body.page-template-page-industry-club-home .ic-format-section .ic-section-content p:not(.ic-format-highlight-date),
body.page-template-page-industry-club-home-php .ic-format-section .ic-section-content p:not(.ic-format-highlight-date),
body.page-template-page-industry-club-home .ic-format-section .ic-section-content blockquote,
body.page-template-page-industry-club-home-php .ic-format-section .ic-section-content blockquote {
  text-align: justify !important;
  text-justify: inter-word !important;
  text-align-last: center !important;
  color: #fff !important;
}

body.page-template-page-industry-club-home .ic-format-section .ic-section-content ul,
body.page-template-page-industry-club-home-php .ic-format-section .ic-section-content ul,
body.page-template-page-industry-club-home .ic-format-section .ic-section-content ol,
body.page-template-page-industry-club-home-php .ic-format-section .ic-section-content ol,
body.page-template-page-industry-club-home .ic-format-section .ic-section-content li,
body.page-template-page-industry-club-home-php .ic-format-section .ic-section-content li {
  text-align: left !important;
  text-align-last: auto !important;
}

body.page-template-page-industry-club-home .ic-format-highlights,
body.page-template-page-industry-club-home-php .ic-format-highlights,
body.page-template-page-industry-club-home .ic-format-highlight-flow,
body.page-template-page-industry-club-home-php .ic-format-highlight-flow,
body.page-template-page-industry-club-home .ic-format-highlight-date,
body.page-template-page-industry-club-home-php .ic-format-highlight-date {
  text-align: center !important;
  align-items: center !important;
  justify-content: center !important;
}

body.page-template-page-industry-club-home .ic-format-highlight-title,
body.page-template-page-industry-club-home-php .ic-format-highlight-title {
  text-align: center !important;
  text-align-last: center !important;
  color: #fff !important;
}

body.page-template-page-industry-club-home .ic-dm-intro p,
body.page-template-page-industry-club-home-php .ic-dm-intro p,
body.page-template-page-industry-club-home .ic-dm-discover-link,
body.page-template-page-industry-club-home-php .ic-dm-discover-link {
  color: #fff !important;
  text-align: justify !important;
  text-justify: inter-word !important;
  text-align-last: center !important;
}

body.page-template-page-industry-club-home .ic-cta-section .ic-cta-card__content,
body.page-template-page-industry-club-home-php .ic-cta-section .ic-cta-card__content {
  text-align: left !important;
  align-items: flex-start !important;
}

body.page-template-page-industry-club-home .ic-cta-section .ic-cta-title,
body.page-template-page-industry-club-home-php .ic-cta-section .ic-cta-title,
body.page-template-page-industry-club-home .ic-cta-section .ic-cta-list,
body.page-template-page-industry-club-home-php .ic-cta-section .ic-cta-list,
body.page-template-page-industry-club-home .ic-cta-section .ic-cta-list li,
body.page-template-page-industry-club-home-php .ic-cta-section .ic-cta-list li {
  text-align: left !important;
  text-align-last: auto !important;
}

/* SEI UN AUTORE - BOX (NO POPUP) */
body.page-template-page-industry-club-autori .ic-option-description,
body.page-template-page-industry-club-autori-php .ic-option-description,
body.page-template-page-industry-club-autori .ic-option-description--wysiwyg,
body.page-template-page-industry-club-autori-php .ic-option-description--wysiwyg,
body.page-template-page-industry-club-autori .ic-option-subtitle,
body.page-template-page-industry-club-autori-php .ic-option-subtitle,
body.page-template-page-industry-club-autori .ic-option-body,
body.page-template-page-industry-club-autori-php .ic-option-body,
body.page-template-page-industry-club-autori .ic-option-body p,
body.page-template-page-industry-club-autori-php .ic-option-body p,
body.page-template-page-industry-club-autori .ic-option-body h1,
body.page-template-page-industry-club-autori-php .ic-option-body h1,
body.page-template-page-industry-club-autori .ic-option-body h2,
body.page-template-page-industry-club-autori-php .ic-option-body h2,
body.page-template-page-industry-club-autori .ic-option-body h3,
body.page-template-page-industry-club-autori-php .ic-option-body h3,
body.page-template-page-industry-club-autori .ic-option-body h4,
body.page-template-page-industry-club-autori-php .ic-option-body h4,
body.page-template-page-industry-club-autori .ic-option-body h5,
body.page-template-page-industry-club-autori-php .ic-option-body h5,
body.page-template-page-industry-club-autori .ic-option-body h6,
body.page-template-page-industry-club-autori-php .ic-option-body h6,
body.page-template-page-industry-club-autori .ic-option-footnote,
body.page-template-page-industry-club-autori-php .ic-option-footnote {
  text-align: center !important;
  text-align-last: center !important;
  text-justify: auto !important;
}

/* POPUP (AUTORI + INDUSTRY PLAYER): testo centrato giustificato */
body.page-template-page-industry-club-autori .ic-modal-description p,
body.page-template-page-industry-club-autori-php .ic-modal-description p,
body.page-template-page-industry-club-autori .ic-modal-description blockquote,
body.page-template-page-industry-club-autori-php .ic-modal-description blockquote,
body.page-template-page-industry-club-autori .ic-modal-description h1,
body.page-template-page-industry-club-autori-php .ic-modal-description h1,
body.page-template-page-industry-club-autori .ic-modal-description h2,
body.page-template-page-industry-club-autori-php .ic-modal-description h2,
body.page-template-page-industry-club-autori .ic-modal-description h3,
body.page-template-page-industry-club-autori-php .ic-modal-description h3,
body.page-template-page-industry-club-autori .ic-modal-description h4,
body.page-template-page-industry-club-autori-php .ic-modal-description h4,
body.page-template-page-industry-club-autori .ic-modal-description h5,
body.page-template-page-industry-club-autori-php .ic-modal-description h5,
body.page-template-page-industry-club-autori .ic-modal-description h6,
body.page-template-page-industry-club-autori-php .ic-modal-description h6,
body.page-template-page-industry-club-produttori .ic-modal-description p,
body.page-template-page-industry-club-produttori-php .ic-modal-description p,
body.page-template-page-industry-club-produttori .ic-modal-description blockquote,
body.page-template-page-industry-club-produttori-php .ic-modal-description blockquote,
body.page-template-page-industry-club-produttori .ic-modal-description h1,
body.page-template-page-industry-club-produttori-php .ic-modal-description h1,
body.page-template-page-industry-club-produttori .ic-modal-description h2,
body.page-template-page-industry-club-produttori-php .ic-modal-description h2,
body.page-template-page-industry-club-produttori .ic-modal-description h3,
body.page-template-page-industry-club-produttori-php .ic-modal-description h3,
body.page-template-page-industry-club-produttori .ic-modal-description h4,
body.page-template-page-industry-club-produttori-php .ic-modal-description h4,
body.page-template-page-industry-club-produttori .ic-modal-description h5,
body.page-template-page-industry-club-produttori-php .ic-modal-description h5,
body.page-template-page-industry-club-produttori .ic-modal-description h6,
body.page-template-page-industry-club-produttori-php .ic-modal-description h6 {
  text-align: justify !important;
  text-justify: inter-word !important;
  text-align-last: center !important;
}

/* POPUP (AUTORI + INDUSTRY PLAYER): elenchi left aligned con rientro */
body.page-template-page-industry-club-autori .ic-modal-description ul,
body.page-template-page-industry-club-autori-php .ic-modal-description ul,
body.page-template-page-industry-club-autori .ic-modal-description ol,
body.page-template-page-industry-club-autori-php .ic-modal-description ol,
body.page-template-page-industry-club-produttori .ic-modal-description ul,
body.page-template-page-industry-club-produttori-php .ic-modal-description ul,
body.page-template-page-industry-club-produttori .ic-modal-description ol,
body.page-template-page-industry-club-produttori-php .ic-modal-description ol {
  text-align: left !important;
  text-align-last: auto !important;
  padding-left: 1.55rem !important;
  list-style-position: outside !important;
}

body.page-template-page-industry-club-autori .ic-modal-description li,
body.page-template-page-industry-club-autori-php .ic-modal-description li,
body.page-template-page-industry-club-autori .ic-modal-description li p,
body.page-template-page-industry-club-autori-php .ic-modal-description li p,
body.page-template-page-industry-club-produttori .ic-modal-description li,
body.page-template-page-industry-club-produttori-php .ic-modal-description li,
body.page-template-page-industry-club-produttori .ic-modal-description li p,
body.page-template-page-industry-club-produttori-php .ic-modal-description li p {
  text-align: left !important;
  text-align-last: auto !important;
}

/* SEI UN INDUSTRY PLAYER: box centrati + elenchi left aligned con rientro */
body.page-template-page-industry-club-produttori .ic-option-subtitle,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle,
body.page-template-page-industry-club-produttori .ic-option-body,
body.page-template-page-industry-club-produttori-php .ic-option-body,
body.page-template-page-industry-club-produttori .ic-option-body p,
body.page-template-page-industry-club-produttori-php .ic-option-body p,
body.page-template-page-industry-club-produttori .ic-option-body h1,
body.page-template-page-industry-club-produttori-php .ic-option-body h1,
body.page-template-page-industry-club-produttori .ic-option-body h2,
body.page-template-page-industry-club-produttori-php .ic-option-body h2,
body.page-template-page-industry-club-produttori .ic-option-body h3,
body.page-template-page-industry-club-produttori-php .ic-option-body h3,
body.page-template-page-industry-club-produttori .ic-option-body h4,
body.page-template-page-industry-club-produttori-php .ic-option-body h4,
body.page-template-page-industry-club-produttori .ic-option-body h5,
body.page-template-page-industry-club-produttori-php .ic-option-body h5,
body.page-template-page-industry-club-produttori .ic-option-body h6,
body.page-template-page-industry-club-produttori-php .ic-option-body h6,
body.page-template-page-industry-club-produttori .ic-option-footnote,
body.page-template-page-industry-club-produttori-php .ic-option-footnote {
  text-align: center !important;
  text-align-last: center !important;
  text-justify: auto !important;
}

body.page-template-page-industry-club-produttori .ic-option-body ul,
body.page-template-page-industry-club-produttori-php .ic-option-body ul,
body.page-template-page-industry-club-produttori .ic-option-body ol,
body.page-template-page-industry-club-produttori-php .ic-option-body ol {
  text-align: left !important;
  text-align-last: auto !important;
  padding-left: 1.55rem !important;
  list-style-position: outside !important;
}

body.page-template-page-industry-club-produttori .ic-option-body li,
body.page-template-page-industry-club-produttori-php .ic-option-body li,
body.page-template-page-industry-club-produttori .ic-option-body li p,
body.page-template-page-industry-club-produttori-php .ic-option-body li p {
  text-align: left !important;
  text-align-last: auto !important;
}

/* =========================================
   FINAL HARD OVERRIDES (FORMAT + DECISION MAKERS)
   ========================================= */

/* IL FORMAT: testo giustificato con ultima riga centrata */
body.industry-club-site .ic-format-section .ic-section-content p:not(.ic-format-highlight-date),
body.industry-club-site .ic-format-section .ic-section-content blockquote,
body.industry-club-site .ic-format-section .ic-section-content [class*="has-text-align-"]:not(ul):not(ol):not(li),
body.industry-club-site .ic-format-section .ic-section-content [style*="text-align"] {
  color: #ffffff !important;
  text-align: justify !important;
  text-justify: inter-word !important;
  text-align-last: center !important;
  -moz-text-align-last: center !important;
}

body.industry-club-site .ic-format-section .ic-section-content p *,
body.industry-club-site .ic-format-section .ic-section-content blockquote * {
  color: #ffffff !important;
}

/* Liste: sempre left aligned con rientro */
body.industry-club-site .ic-format-section .ic-section-content ul,
body.industry-club-site .ic-format-section .ic-section-content ol,
body.industry-club-site .ic-format-section .ic-section-content li,
body.industry-club-site .ic-format-section .ic-section-content li p {
  text-align: left !important;
  text-align-last: auto !important;
}

/* Decision Makers: bianco + giustificato centrato */
body.industry-club-site .ic-dm-intro,
body.industry-club-site .ic-dm-intro * {
  color: #ffffff !important;
}

body.industry-club-site .ic-dm-intro p,
body.industry-club-site .ic-dm-discover-link {
  text-align: justify !important;
  text-justify: inter-word !important;
  text-align-last: center !important;
  -moz-text-align-last: center !important;
}

/* =========================================
   LAYOUT FIXES - FORMAT + INDUSTRY PLAYER
   ========================================= */

/* HOME > IL FORMAT: attività in linea su desktop */
body.page-template-page-industry-club-home .ic-format-section .ic-format-highlight-flow,
body.page-template-page-industry-club-home-php .ic-format-section .ic-format-highlight-flow {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 1.15rem !important;
}

body.page-template-page-industry-club-home .ic-format-section .ic-format-step,
body.page-template-page-industry-club-home-php .ic-format-section .ic-format-step {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: nowrap !important;
}

body.page-template-page-industry-club-home .ic-format-section .ic-format-step-text,
body.page-template-page-industry-club-home-php .ic-format-section .ic-format-step-text {
  white-space: nowrap !important;
}

/* INDUSTRY PLAYER: box simmetrici e testo centrato/giustificato correttamente */
body.page-template-page-industry-club-produttori .ic-option-description--wysiwyg,
body.page-template-page-industry-club-produttori-php .ic-option-description--wysiwyg {
  width: min(100%, 620px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page-template-page-industry-club-produttori .ic-option-price,
body.page-template-page-industry-club-produttori-php .ic-option-price {
  width: 100% !important;
  text-align: center !important;
  text-align-last: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page-template-page-industry-club-produttori .ic-option-subtitle,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle,
body.page-template-page-industry-club-produttori .ic-option-subtitle *,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle *,
body.page-template-page-industry-club-produttori .ic-option-body,
body.page-template-page-industry-club-produttori-php .ic-option-body,
body.page-template-page-industry-club-produttori .ic-option-body p,
body.page-template-page-industry-club-produttori-php .ic-option-body p,
body.page-template-page-industry-club-produttori .ic-option-body h1,
body.page-template-page-industry-club-produttori-php .ic-option-body h1,
body.page-template-page-industry-club-produttori .ic-option-body h2,
body.page-template-page-industry-club-produttori-php .ic-option-body h2,
body.page-template-page-industry-club-produttori .ic-option-body h3,
body.page-template-page-industry-club-produttori-php .ic-option-body h3,
body.page-template-page-industry-club-produttori .ic-option-body h4,
body.page-template-page-industry-club-produttori-php .ic-option-body h4,
body.page-template-page-industry-club-produttori .ic-option-body h5,
body.page-template-page-industry-club-produttori-php .ic-option-body h5,
body.page-template-page-industry-club-produttori .ic-option-body h6,
body.page-template-page-industry-club-produttori-php .ic-option-body h6,
body.page-template-page-industry-club-produttori .ic-option-footnote,
body.page-template-page-industry-club-produttori-php .ic-option-footnote {
  text-align: justify !important;
  text-justify: inter-word !important;
  text-align-last: center !important;
  -moz-text-align-last: center !important;
}

body.page-template-page-industry-club-produttori .ic-option-body ul,
body.page-template-page-industry-club-produttori-php .ic-option-body ul,
body.page-template-page-industry-club-produttori .ic-option-body ol,
body.page-template-page-industry-club-produttori-php .ic-option-body ol {
  width: min(100%, 520px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 1.5rem !important;
  text-align: left !important;
  text-align-last: auto !important;
  list-style-position: outside !important;
}

body.page-template-page-industry-club-produttori .ic-option-body li,
body.page-template-page-industry-club-produttori-php .ic-option-body li,
body.page-template-page-industry-club-produttori .ic-option-body li p,
body.page-template-page-industry-club-produttori-php .ic-option-body li p {
  text-align: left !important;
  text-align-last: auto !important;
}

@media (max-width: 768px) {
  body.page-template-page-industry-club-home .ic-format-section .ic-format-highlight-flow,
  body.page-template-page-industry-club-home-php .ic-format-section .ic-format-highlight-flow {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 0.28rem !important;
  }

  body.page-template-page-industry-club-home .ic-format-section .ic-format-step,
  body.page-template-page-industry-club-home-php .ic-format-section .ic-format-step,
  body.page-template-page-industry-club-home .ic-format-section .ic-format-step-text,
  body.page-template-page-industry-club-home-php .ic-format-section .ic-format-step-text {
    white-space: normal !important;
  }
}

/* =========================================
   FINAL VISUAL BALANCE - FORMAT + ACCREDITI
   ========================================= */

/* IL FORMAT: desktop in linea in modo robusto */
@media (min-width: 769px) {
  body.industry-club-site .ic-format-section .ic-format-highlight-flow {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 1.15rem !important;
  }

  body.industry-club-site .ic-format-section .ic-format-step,
  body.industry-club-site .ic-format-section .ic-format-step-text {
    white-space: nowrap !important;
  }
}

/* SEI UN INDUSTRY PLAYER: prezzi piu grandi + blocchi testo pareggiati */
body.page-template-page-industry-club-produttori .ic-option-description--wysiwyg,
body.page-template-page-industry-club-produttori-php .ic-option-description--wysiwyg {
  --ic-player-copy-width: 32rem;
  width: min(100%, 40rem) !important;
}

body.page-template-page-industry-club-produttori .ic-option-price,
body.page-template-page-industry-club-produttori-php .ic-option-price {
  font-size: clamp(3rem, 2.45rem + 1.85vw, 4.2rem) !important;
  line-height: 1 !important;
  margin: 0.35rem auto 0.9rem !important;
  width: 100% !important;
  text-align: center !important;
  text-align-last: center !important;
}

body.page-template-page-industry-club-produttori .ic-option-subtitle,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle,
body.page-template-page-industry-club-produttori .ic-option-body,
body.page-template-page-industry-club-produttori-php .ic-option-body,
body.page-template-page-industry-club-produttori .ic-option-footnote,
body.page-template-page-industry-club-produttori-php .ic-option-footnote {
  width: min(100%, var(--ic-player-copy-width)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.page-template-page-industry-club-produttori .ic-option-subtitle,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle {
  display: flex !important;
  justify-content: center !important;
  align-items: flex-start !important;
  min-height: 3.2em !important;
  margin-top: 0 !important;
  margin-bottom: 0.9rem !important;
}

body.page-template-page-industry-club-produttori .ic-option-subtitle,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle,
body.page-template-page-industry-club-produttori .ic-option-subtitle *,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle *,
body.page-template-page-industry-club-produttori .ic-option-body p,
body.page-template-page-industry-club-produttori-php .ic-option-body p,
body.page-template-page-industry-club-produttori .ic-option-body h1,
body.page-template-page-industry-club-produttori-php .ic-option-body h1,
body.page-template-page-industry-club-produttori .ic-option-body h2,
body.page-template-page-industry-club-produttori-php .ic-option-body h2,
body.page-template-page-industry-club-produttori .ic-option-body h3,
body.page-template-page-industry-club-produttori-php .ic-option-body h3,
body.page-template-page-industry-club-produttori .ic-option-body h4,
body.page-template-page-industry-club-produttori-php .ic-option-body h4,
body.page-template-page-industry-club-produttori .ic-option-body h5,
body.page-template-page-industry-club-produttori-php .ic-option-body h5,
body.page-template-page-industry-club-produttori .ic-option-body h6,
body.page-template-page-industry-club-produttori-php .ic-option-body h6,
body.page-template-page-industry-club-produttori .ic-option-footnote,
body.page-template-page-industry-club-produttori-php .ic-option-footnote {
  text-align: center !important;
  text-align-last: center !important;
  text-justify: auto !important;
  hyphens: manual !important;
}

body.page-template-page-industry-club-produttori .ic-option-body ul,
body.page-template-page-industry-club-produttori-php .ic-option-body ul,
body.page-template-page-industry-club-produttori .ic-option-body ol,
body.page-template-page-industry-club-produttori-php .ic-option-body ol {
  width: min(100%, var(--ic-player-copy-width)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 1.5rem !important;
  text-align: left !important;
  text-align-last: auto !important;
  list-style-position: outside !important;
}

body.page-template-page-industry-club-produttori .ic-option-body li,
body.page-template-page-industry-club-produttori-php .ic-option-body li,
body.page-template-page-industry-club-produttori .ic-option-body li p,
body.page-template-page-industry-club-produttori-php .ic-option-body li p {
  text-align: left !important;
  text-align-last: auto !important;
}

@media (max-width: 768px) {
  body.industry-club-site .ic-format-section .ic-format-highlight-flow {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 0.28rem !important;
  }

  body.industry-club-site .ic-format-section .ic-format-step,
  body.industry-club-site .ic-format-section .ic-format-step-text {
    white-space: normal !important;
  }

  body.page-template-page-industry-club-produttori .ic-option-description--wysiwyg,
  body.page-template-page-industry-club-produttori-php .ic-option-description--wysiwyg {
    --ic-player-copy-width: 100%;
    width: 100% !important;
  }

  body.page-template-page-industry-club-produttori .ic-option-subtitle,
  body.page-template-page-industry-club-produttori-php .ic-option-subtitle {
    min-height: 0 !important;
  }

  body.page-template-page-industry-club-produttori .ic-option-price,
  body.page-template-page-industry-club-produttori-php .ic-option-price {
    font-size: clamp(2.35rem, 2.08rem + 1.25vw, 3.1rem) !important;
  }
}

/* Layout strutturale accrediti: stesso centro del blocco testo in entrambi i box */
body.page-template-page-industry-club-produttori .ic-option-description--wysiwyg,
body.page-template-page-industry-club-produttori-php .ic-option-description--wysiwyg {
  display: flex !important;
  flex-direction: column !important;
  min-height: 100% !important;
}

body.page-template-page-industry-club-produttori .ic-option-main-copy,
body.page-template-page-industry-club-produttori-php .ic-option-main-copy {
  width: min(100%, var(--ic-player-copy-width)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  flex: 1 1 auto !important;
  display: grid !important;
  grid-template-rows: auto minmax(3.1em, auto) minmax(0, 1fr) auto !important;
  align-content: start !important;
}

body.page-template-page-industry-club-produttori .ic-option-price,
body.page-template-page-industry-club-produttori-php .ic-option-price {
  font-size: clamp(3.4rem, 2.8rem + 2.2vw, 4.8rem) !important;
  margin-top: 0.4rem !important;
  margin-bottom: 1.05rem !important;
}

body.page-template-page-industry-club-produttori .ic-option-subtitle > *,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle > * {
  margin: 0 !important;
  width: 100% !important;
}

body.page-template-page-industry-club-produttori .ic-option-body > :first-child,
body.page-template-page-industry-club-produttori-php .ic-option-body > :first-child {
  margin-top: 0 !important;
}

body.page-template-page-industry-club-produttori .ic-option-body ul,
body.page-template-page-industry-club-produttori-php .ic-option-body ul,
body.page-template-page-industry-club-produttori .ic-option-body ol,
body.page-template-page-industry-club-produttori-php .ic-option-body ol {
  margin-top: 0.95rem !important;
}

body.page-template-page-industry-club-produttori .ic-option-footnote,
body.page-template-page-industry-club-produttori-php .ic-option-footnote {
  width: min(100%, var(--ic-player-copy-width)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: 1.1rem !important;
}

@media (max-width: 768px) {
  body.page-template-page-industry-club-produttori .ic-option-main-copy,
  body.page-template-page-industry-club-produttori-php .ic-option-main-copy {
    width: 100% !important;
    justify-content: flex-start !important;
  }

  body.page-template-page-industry-club-produttori .ic-option-price,
  body.page-template-page-industry-club-produttori-php .ic-option-price {
    font-size: clamp(2.35rem, 2.08rem + 1.25vw, 3.1rem) !important;
    margin-top: 0.3rem !important;
    margin-bottom: 0.8rem !important;
  }
}

/* =========================================
   INDUSTRY PLAYER CARDS - AUTHORITATIVE LAYOUT
   (structured inputs: title, price, content, disclaimer)
   ========================================= */
body.page-template-page-industry-club-produttori .ic-option-description--wysiwyg,
body.page-template-page-industry-club-produttori-php .ic-option-description--wysiwyg {
  --ic-player-copy-width: 33rem;
  width: min(100%, 40rem) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  display: flex !important;
  flex-direction: column !important;
  min-height: 100% !important;
}

body.page-template-page-industry-club-produttori .ic-option-main-copy,
body.page-template-page-industry-club-produttori-php .ic-option-main-copy {
  width: min(100%, var(--ic-player-copy-width)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  flex: 1 1 auto !important;
  display: grid !important;
  grid-template-rows: auto minmax(3.1em, auto) minmax(0, 1fr) auto !important;
  align-content: start !important;
}

body.page-template-page-industry-club-produttori .ic-option-subtitle,
body.page-template-page-industry-club-produttori-php .ic-option-subtitle {
  grid-row: 2 !important;
  width: 100% !important;
  min-height: 3.1em !important;
  margin: 0 0 0.95rem !important;
  display: flex !important;
  justify-content: center !important;
  align-items: flex-end !important;
}

body.page-template-page-industry-club-produttori .ic-option-price,
body.page-template-page-industry-club-produttori-php .ic-option-price {
  grid-row: 1 !important;
  width: 100% !important;
  margin: 0.35rem auto 1.1rem !important;
  font-size: clamp(3.45rem, 2.9rem + 2vw, 5rem) !important;
  line-height: 1 !important;
  text-align: center !important;
  text-align-last: center !important;
}

body.page-template-page-industry-club-produttori .ic-option-body,
body.page-template-page-industry-club-produttori-php .ic-option-body {
  grid-row: 3 !important;
  width: 100% !important;
  margin: 0 !important;
  flex: 0 0 auto !important;
  display: block !important;
}

body.page-template-page-industry-club-produttori .ic-option-body p,
body.page-template-page-industry-club-produttori-php .ic-option-body p,
body.page-template-page-industry-club-produttori .ic-option-body h1,
body.page-template-page-industry-club-produttori-php .ic-option-body h1,
body.page-template-page-industry-club-produttori .ic-option-body h2,
body.page-template-page-industry-club-produttori-php .ic-option-body h2,
body.page-template-page-industry-club-produttori .ic-option-body h3,
body.page-template-page-industry-club-produttori-php .ic-option-body h3,
body.page-template-page-industry-club-produttori .ic-option-body h4,
body.page-template-page-industry-club-produttori-php .ic-option-body h4,
body.page-template-page-industry-club-produttori .ic-option-body h5,
body.page-template-page-industry-club-produttori-php .ic-option-body h5,
body.page-template-page-industry-club-produttori .ic-option-body h6,
body.page-template-page-industry-club-produttori-php .ic-option-body h6 {
  text-align: center !important;
  text-align-last: center !important;
  text-justify: auto !important;
}

body.page-template-page-industry-club-produttori .ic-option-body ul,
body.page-template-page-industry-club-produttori-php .ic-option-body ul,
body.page-template-page-industry-club-produttori .ic-option-body ol,
body.page-template-page-industry-club-produttori-php .ic-option-body ol {
  width: 100% !important;
  margin: 0.95rem 0 0 !important;
  padding-left: 1.5rem !important;
  text-align: left !important;
  text-align-last: auto !important;
  list-style-position: outside !important;
}

body.page-template-page-industry-club-produttori .ic-option-body li,
body.page-template-page-industry-club-produttori-php .ic-option-body li,
body.page-template-page-industry-club-produttori .ic-option-body li p,
body.page-template-page-industry-club-produttori-php .ic-option-body li p {
  text-align: left !important;
  text-align-last: auto !important;
}

body.page-template-page-industry-club-produttori .ic-option-footnote,
body.page-template-page-industry-club-produttori-php .ic-option-footnote {
  grid-row: 4 !important;
  width: 100% !important;
  margin: 1.1rem 0 0 !important;
  text-align: center !important;
  text-align-last: center !important;
}

@media (max-width: 768px) {
  body.page-template-page-industry-club-produttori .ic-option-description--wysiwyg,
  body.page-template-page-industry-club-produttori-php .ic-option-description--wysiwyg {
    --ic-player-copy-width: 100%;
    width: 100% !important;
  }

  body.page-template-page-industry-club-produttori .ic-option-main-copy,
  body.page-template-page-industry-club-produttori-php .ic-option-main-copy {
    width: 100% !important;
    display: block !important;
  }

  body.page-template-page-industry-club-produttori .ic-option-subtitle,
  body.page-template-page-industry-club-produttori-php .ic-option-subtitle {
    min-height: 0 !important;
  }

  body.page-template-page-industry-club-produttori .ic-option-price,
  body.page-template-page-industry-club-produttori-php .ic-option-price {
    font-size: clamp(2.35rem, 2.08rem + 1.25vw, 3.1rem) !important;
    margin-top: 0.3rem !important;
    margin-bottom: 0.8rem !important;
  }
}

/* Industry Player: keep disclaimer and copy safely inside each card */
body.page-template-page-industry-club-produttori .ic-option-card,
body.page-template-page-industry-club-produttori-php .ic-option-card {
  padding-bottom: 2.35rem !important;
}

body.page-template-page-industry-club-produttori .ic-option-description--wysiwyg,
body.page-template-page-industry-club-produttori-php .ic-option-description--wysiwyg {
  min-height: 0 !important;
  height: auto !important;
  padding-bottom: 0.25rem !important;
}

body.page-template-page-industry-club-produttori .ic-option-main-copy,
body.page-template-page-industry-club-produttori-php .ic-option-main-copy {
  width: min(100%, 31rem) !important;
}

body.page-template-page-industry-club-produttori .ic-option-footnote,
body.page-template-page-industry-club-produttori-php .ic-option-footnote {
  width: 100% !important;
  max-width: 31rem !important;
  margin: 1rem auto 0 !important;
  padding-inline: 0.15rem !important;
}

@media (max-width: 768px) {
  body.page-template-page-industry-club-produttori .ic-option-card,
  body.page-template-page-industry-club-produttori-php .ic-option-card {
    padding-bottom: 2rem !important;
  }

  body.page-template-page-industry-club-produttori .ic-option-main-copy,
  body.page-template-page-industry-club-produttori-php .ic-option-main-copy {
    width: 100% !important;
  }

  body.page-template-page-industry-club-produttori .ic-option-footnote,
  body.page-template-page-industry-club-produttori-php .ic-option-footnote {
    max-width: 100% !important;
    padding-inline: 0 !important;
  }
}

/* Industry Player - intro text section */
body.page-template-page-industry-club-produttori .ic-player-intro-section,
body.page-template-page-industry-club-produttori-php .ic-player-intro-section {
  padding-top: 3rem;
  padding-bottom: 0.35rem;
}

body.page-template-page-industry-club-produttori .ic-player-intro-content,
body.page-template-page-industry-club-produttori-php .ic-player-intro-content {
  max-width: 1100px;
  width: min(100%, 1100px);
  margin: 0 auto;
  padding: 1.6rem 1.85rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01));
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
}

body.page-template-page-industry-club-produttori .ic-player-intro-content p,
body.page-template-page-industry-club-produttori-php .ic-player-intro-content p,
body.page-template-page-industry-club-produttori .ic-player-intro-content h1,
body.page-template-page-industry-club-produttori-php .ic-player-intro-content h1,
body.page-template-page-industry-club-produttori .ic-player-intro-content h2,
body.page-template-page-industry-club-produttori-php .ic-player-intro-content h2,
body.page-template-page-industry-club-produttori .ic-player-intro-content h3,
body.page-template-page-industry-club-produttori-php .ic-player-intro-content h3,
body.page-template-page-industry-club-produttori .ic-player-intro-content h4,
body.page-template-page-industry-club-produttori-php .ic-player-intro-content h4,
body.page-template-page-industry-club-produttori .ic-player-intro-content h5,
body.page-template-page-industry-club-produttori-php .ic-player-intro-content h5,
body.page-template-page-industry-club-produttori .ic-player-intro-content h6,
body.page-template-page-industry-club-produttori-php .ic-player-intro-content h6 {
  margin: 0 0 0.75rem;
  color: #fff !important;
  font-size: var(--ic-abstract-font-size);
  line-height: var(--ic-abstract-line-height);
  text-align: justify;
  text-justify: inter-word;
  text-align-last: center;
}

body.page-template-page-industry-club-produttori .ic-player-intro-content > :last-child,
body.page-template-page-industry-club-produttori-php .ic-player-intro-content > :last-child {
  margin-bottom: 0;
}

@media (max-width: 768px) {
  body.page-template-page-industry-club-produttori .ic-player-intro-section,
  body.page-template-page-industry-club-produttori-php .ic-player-intro-section {
    padding-top: 2rem;
    padding-bottom: 0.2rem;
  }

  body.page-template-page-industry-club-produttori .ic-player-intro-content,
  body.page-template-page-industry-club-produttori-php .ic-player-intro-content {
    padding: 1.15rem 1rem;
  }
}

body.page-template-page-industry-club-produttori .ic-player-options-container,
body.page-template-page-industry-club-produttori-php .ic-player-options-container {
  padding-top: 1.65rem !important;
  padding-bottom: 4rem !important;
}

@media (max-width: 768px) {
  body.page-template-page-industry-club-produttori .ic-player-options-container,
  body.page-template-page-industry-club-produttori-php .ic-player-options-container {
    padding-top: 1.2rem !important;
    padding-bottom: 3.2rem !important;
  }
}

/* =========================================
   CALABRIA MOVIE MAIN SITE - SUPPORT + LEGAL PAGES
   ========================================= */
.cmw-support-template [id],
.cmw-legal-template [id] {
  scroll-margin-top: 120px;
}

.cmw-page-hero--support,
.cmw-page-hero--legal {
  min-height: 72vh;
  background-size: cover;
  background-position: center;
}

.cmw-page-hero--support .cmw-page-hero-overlay,
.cmw-page-hero--legal .cmw-page-hero-overlay {
  background: linear-gradient(180deg, rgba(5, 5, 5, 0.68) 0%, rgba(5, 5, 5, 0.82) 58%, rgba(5, 5, 5, 0.92) 100%);
}

.cmw-support-template .cmw-page-hero-subtitle,
.cmw-legal-template .cmw-page-hero-subtitle {
  color: #efc984;
}

.cmw-support-template .cmw-support-hero-actions {
  margin-top: 1.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.cmw-support-template .cmw-support-pill,
.cmw-legal-template .cmw-support-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0.65rem 1.4rem;
  border-radius: 999px;
  border: 1px solid #cc3715;
  background: #cc3715;
  color: #ffffff !important;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.cmw-support-template .cmw-support-pill:hover,
.cmw-support-template .cmw-support-pill:focus-visible,
.cmw-legal-template .cmw-support-pill:hover,
.cmw-legal-template .cmw-support-pill:focus-visible {
  transform: translateY(-1px);
  background: #b32f12;
  border-color: #b32f12;
  color: #ffffff !important;
}

.cmw-support-template .cmw-support-pill--ghost {
  background: transparent;
  border-color: #efc984;
  color: #efc984 !important;
}

.cmw-support-template .cmw-support-pill--ghost:hover,
.cmw-support-template .cmw-support-pill--ghost:focus-visible {
  background: #efc984;
  border-color: #efc984;
  color: #111827 !important;
}

.cmw-support-template .cmw-support-content,
.cmw-legal-template .cmw-legal-content {
  max-width: 980px;
  margin: 0 auto;
}

.cmw-support-template .cmw-support-lead {
  margin: 0 0 1.35rem;
  font-size: 1.09rem;
  line-height: 1.75;
  color: #1f2937;
}

.cmw-support-template .cmw-support-index,
.cmw-legal-template .cmw-support-index {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1.8rem;
  padding: 0.9rem;
  border: 1px solid #efe5d5;
  border-radius: 14px;
  background: #fcfaf6;
}

.cmw-support-template .cmw-support-index a,
.cmw-legal-template .cmw-support-index a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.25rem 0.7rem;
  border-radius: 999px;
  border: 1px solid #e5d0ae;
  background: #fff;
  color: #7c2d12 !important;
  font-size: 0.82rem;
  text-decoration: none;
}

.cmw-support-template .cmw-support-index a:hover,
.cmw-support-template .cmw-support-index a:focus-visible,
.cmw-legal-template .cmw-support-index a:hover,
.cmw-legal-template .cmw-support-index a:focus-visible {
  border-color: #cc3715;
  color: #cc3715 !important;
}

.cmw-support-template .cmw-support-content > section,
.cmw-legal-template .cmw-legal-content > section {
  margin-top: 2.1rem;
  padding-top: 2.1rem;
  border-top: 1px solid #ebe4d8;
}

.cmw-support-template .cmw-support-content > section h2,
.cmw-legal-template .cmw-legal-content > section h2 {
  margin-top: 0;
  margin-bottom: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.cmw-support-template .cmw-support-split {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
  gap: 1.2rem;
  align-items: start;
}

.cmw-support-template .cmw-support-image-card {
  margin: 0;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #e5e7eb;
}

.cmw-support-template .cmw-support-image-card img {
  width: 100%;
  height: 100%;
  min-height: 330px;
  object-fit: cover;
  display: block;
}

.cmw-support-template .cmw-support-list {
  margin: 0.9rem 0 0;
  padding: 0;
  list-style: none;
}

.cmw-support-template .cmw-support-list li {
  position: relative;
  margin-bottom: 0.55rem;
  padding-left: 1.1rem;
}

.cmw-support-template .cmw-support-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.62rem;
  width: 0.42rem;
  height: 0.42rem;
  border-radius: 999px;
  background: #cc3715;
}

.cmw-support-template .cmw-support-highlight-box,
.cmw-support-template .cmw-support-muted-box {
  margin-top: 1rem;
  padding: 1rem 1.05rem;
  border-left: 4px solid #cc3715;
  border-radius: 12px;
  background: #f8f8f8;
}

.cmw-support-template .cmw-support-highlight-box p,
.cmw-support-template .cmw-support-muted-box p {
  margin-bottom: 0.55rem;
}

.cmw-support-template .cmw-support-highlight-box p:last-child,
.cmw-support-template .cmw-support-muted-box p:last-child {
  margin-bottom: 0;
}

.cmw-support-template .cmw-support-muted-box .cmw-support-partner-note {
  margin-top: 1rem;
}

.cmw-support-template .cmw-support-card-grid {
  margin-top: 1.2rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.cmw-support-template .cmw-support-info-card {
  padding: 1rem;
  border-radius: 14px;
  border: 1px solid #e5e7eb;
  background: #ffffff;
}

.cmw-support-template .cmw-support-info-card h3 {
  margin: 0 0 0.65rem;
  font-size: 1rem !important;
  color: #7c2d12;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cmw-support-template .cmw-support-info-card p:last-child {
  margin-bottom: 0;
}

.cmw-support-template .cmw-support-small-note {
  margin-top: 1rem;
  font-size: 0.95rem;
  color: #6b7280;
}

.cmw-support-template .cmw-support-gallery-grid {
  margin-top: 1.15rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
}

.cmw-support-template .cmw-support-gallery-grid figure {
  margin: 0;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #e5e7eb;
}

.cmw-support-template .cmw-support-gallery-grid img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
}

.cmw-support-template .cmw-support-cta-section {
  text-align: center;
  border: 1px solid #e5e7eb;
  border-radius: 18px;
  background: #fafafa;
  padding: 1.35rem;
}

.cmw-support-template .cmw-support-cta-section p {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}

.cmw-legal-template .cmw-legal-update-chip {
  display: inline-flex;
  align-items: center;
  margin: 0 0 1.2rem;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  border: 1px solid #f1dfbe;
  background: #faf5eb;
  color: #7c2d12;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.cmw-legal-template .cmw-legal-content h3 {
  margin: 1.2rem 0 0.55rem;
  font-size: 1.1rem !important;
}

.cmw-legal-template .cmw-legal-table-wrap {
  margin: 1rem 0 1.2rem;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  overflow-x: auto;
  background: #ffffff;
}

.cmw-legal-template .cmw-legal-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 700px;
}

.cmw-legal-template .cmw-legal-table th,
.cmw-legal-template .cmw-legal-table td {
  padding: 0.78rem 0.75rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid #e5e7eb;
  font-size: 0.94rem;
  line-height: 1.6;
}

.cmw-legal-template .cmw-legal-table th {
  background: #faf5eb;
  color: #7c2d12;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.74rem;
}

.cmw-legal-template .cmw-legal-table tr:last-child td {
  border-bottom: 0;
}

@media (max-width: 980px) {
  .cmw-page-hero--support,
  .cmw-page-hero--legal {
    min-height: 66vh;
  }

  .cmw-support-template .cmw-support-split,
  .cmw-support-template .cmw-support-card-grid {
    grid-template-columns: 1fr;
  }

  .cmw-support-template .cmw-support-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .cmw-support-template .cmw-support-index,
  .cmw-legal-template .cmw-support-index {
    padding: 0.75rem;
  }

  .cmw-support-template .cmw-support-index a,
  .cmw-legal-template .cmw-support-index a {
    width: 100%;
    justify-content: center;
  }

  .cmw-support-template .cmw-support-gallery-grid {
    grid-template-columns: 1fr;
  }

  .cmw-support-template .cmw-support-image-card img,
  .cmw-support-template .cmw-support-gallery-grid img {
    min-height: 0;
    height: 220px;
  }

  .cmw-legal-template .cmw-legal-table {
    min-width: 0;
  }

  .cmw-legal-template .cmw-legal-table thead {
    display: none;
  }

  .cmw-legal-template .cmw-legal-table,
  .cmw-legal-template .cmw-legal-table tbody,
  .cmw-legal-template .cmw-legal-table tr,
  .cmw-legal-template .cmw-legal-table td {
    display: block;
    width: 100%;
  }

  .cmw-legal-template .cmw-legal-table tr {
    border-bottom: 1px solid #e5e7eb;
  }

  .cmw-legal-template .cmw-legal-table td {
    border-bottom: 0;
    padding: 0.65rem 0.75rem;
  }

  .cmw-legal-template .cmw-legal-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 0.2rem;
    color: #7c2d12;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.68rem;
    font-weight: 700;
  }
}

/* =========================================
   SUPPORT + LEGAL REFINEMENTS (caps, glow, nav, lists)
   ========================================= */
.cmw-support-template .cmw-page-hero,
.cmw-legal-template .cmw-page-hero {
  min-height: min(86vh, 920px);
  padding-top: clamp(7.2rem, 12vh, 9rem);
  padding-bottom: clamp(3rem, 6vh, 4.5rem);
}

.cmw-support-template .cmw-page-hero-text,
.cmw-legal-template .cmw-page-hero-text {
  position: relative;
  max-width: 980px;
}

.cmw-support-template .cmw-support-hero-kicker,
.cmw-legal-template .cmw-support-hero-kicker {
  margin: 0 0 0.95rem;
  color: #efc984;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.cmw-support-template .cmw-support-hero-glow,
.cmw-legal-template .cmw-support-hero-glow {
  position: absolute;
  left: 50%;
  top: 48%;
  width: min(760px, 92vw);
  height: 210px;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  pointer-events: none;
  background: radial-gradient(circle at center, rgba(239, 201, 132, 0.22), rgba(204, 55, 21, 0.12) 48%, transparent 72%);
  filter: blur(18px);
  z-index: 0;
}

.cmw-support-template .cmw-page-hero-title,
.cmw-legal-template .cmw-page-hero-title {
  position: relative;
  z-index: 1;
  margin: 0;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.065em;
  font-size: clamp(2.3rem, 7vw, 5rem);
  line-height: 0.95;
  text-shadow:
    0 0 18px rgba(239, 201, 132, 0.34),
    0 0 42px rgba(204, 55, 21, 0.22),
    0 8px 28px rgba(0, 0, 0, 0.55);
}

.cmw-support-template .cmw-page-hero-subtitle,
.cmw-legal-template .cmw-page-hero-subtitle {
  position: relative;
  z-index: 1;
  margin-top: 1rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  color: #efc984;
  font-size: clamp(1.02rem, 1rem + 0.46vw, 1.38rem);
  line-height: 1.55;
  text-shadow: 0 3px 14px rgba(0, 0, 0, 0.45);
}

.cmw-support-template .cmw-page-content strong,
.cmw-legal-template .cmw-page-content strong {
  font-weight: 800;
}

.cmw-support-template .cmw-support-content > section h2,
.cmw-legal-template .cmw-legal-content > section h2 {
  font-weight: 900;
}

.cmw-support-template .cmw-support-index-wrap,
.cmw-legal-template .cmw-support-index-wrap {
  margin: 0 0 2rem;
  padding: 0.9rem;
  border-radius: 16px;
  border: 1px solid #e9d4b2;
  background: linear-gradient(180deg, #fbf6ed 0%, #fffdf9 100%);
  box-shadow: 0 8px 26px rgba(15, 23, 42, 0.06);
}

.cmw-support-template .cmw-support-index-title,
.cmw-legal-template .cmw-support-index-title {
  margin: 0 0 0.7rem;
  color: #7c2d12;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.cmw-support-template .cmw-support-index,
.cmw-legal-template .cmw-support-index {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.45rem;
}

.cmw-support-template .cmw-support-index a,
.cmw-legal-template .cmw-support-index a {
  min-height: 46px;
  padding: 0.5rem 0.72rem;
  border-radius: 10px;
  border: 1px solid #e3cfab;
  background: rgba(255, 255, 255, 0.9);
  color: #6b280f !important;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.84rem;
  font-weight: 600;
  transition: border-color 0.2s ease, color 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

.cmw-support-template .cmw-support-index a:hover,
.cmw-support-template .cmw-support-index a:focus-visible,
.cmw-legal-template .cmw-support-index a:hover,
.cmw-legal-template .cmw-support-index a:focus-visible {
  border-color: #cc3715;
  color: #cc3715 !important;
  background: #fff;
  transform: translateY(-1px);
}

.cmw-support-template .cmw-support-index-step,
.cmw-legal-template .cmw-support-index-step {
  flex: 0 0 auto;
  min-width: 30px;
  height: 30px;
  border-radius: 999px;
  border: 1px solid rgba(204, 55, 21, 0.34);
  background: rgba(204, 55, 21, 0.08);
  color: #a03313;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.cmw-support-template .cmw-support-split {
  align-items: stretch;
}

.cmw-support-template .cmw-support-value-list {
  margin: 1rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.65rem;
}

.cmw-support-template .cmw-support-value-list li {
  margin: 0;
  padding: 0.85rem 0.95rem;
  border: 1px solid #e5e7eb;
  border-left: 4px solid #cc3715;
  border-radius: 12px;
  background: #ffffff;
  box-shadow: 0 10px 24px rgba(2, 6, 23, 0.05);
}

.cmw-support-template .cmw-support-value-list li strong {
  display: block;
  margin: 0 0 0.15rem;
  color: #7c2d12;
  font-size: 0.99rem;
}

.cmw-support-template .cmw-support-value-list li span {
  display: block;
  color: #374151;
  font-size: 0.93rem;
  line-height: 1.58;
}

.cmw-support-template .cmw-support-value-list--compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cmw-support-template .cmw-support-info-card p {
  line-height: 1.6;
}

.cmw-support-template .cmw-support-info-card strong {
  color: #7c2d12;
}

@media (min-width: 981px) {
  .cmw-support-template .cmw-support-index-wrap,
  .cmw-legal-template .cmw-support-index-wrap {
    position: sticky;
    top: calc(8vh + 16px);
    z-index: 30;
  }
}

@media (max-width: 980px) {
  .cmw-support-template .cmw-support-value-list--compact {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .cmw-support-template .cmw-page-hero,
  .cmw-legal-template .cmw-page-hero {
    min-height: 78vh;
  }

  .cmw-support-template .cmw-support-index,
  .cmw-legal-template .cmw-support-index {
    grid-template-columns: 1fr;
  }

  .cmw-support-template .cmw-support-index a,
  .cmw-legal-template .cmw-support-index a {
    justify-content: flex-start;
  }

  .cmw-support-template .cmw-page-hero-title,
  .cmw-legal-template .cmw-page-hero-title {
    letter-spacing: 0.045em;
    line-height: 0.98;
  }
}

/* =========================================
   DIVENTA SPONSOR PAGE
   ========================================= */
.cmw-sponsor-template .cmw-sponsor-content > section h2 {
  margin-bottom: 1.05rem;
}

.cmw-sponsor-template .cmw-sponsor-emphasis {
  margin-top: 1rem;
  font-weight: 800;
  color: #7c2d12;
}

.cmw-sponsor-template .cmw-sponsor-feature-grid {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.cmw-sponsor-template .cmw-sponsor-feature-card {
  padding: 1.1rem 1.05rem;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #ffffff;
  box-shadow: 0 10px 28px rgba(2, 6, 23, 0.05);
}

.cmw-sponsor-template .cmw-sponsor-feature-card h3 {
  margin: 0 0 0.65rem;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 1.12rem !important;
  color: #111827;
}

.cmw-sponsor-template .cmw-sponsor-feature-card p:last-child {
  margin-bottom: 0;
}

.cmw-sponsor-template .cmw-sponsor-check-icon {
  position: relative;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  border: 2px solid #111827;
  border-radius: 4px;
}

.cmw-sponsor-template .cmw-sponsor-check-icon::after {
  content: "";
  position: absolute;
  left: 7px;
  top: 4px;
  width: 9px;
  height: 15px;
  border-right: 4px solid #cc3715;
  border-bottom: 4px solid #cc3715;
  transform: rotate(38deg);
}

.cmw-sponsor-template .cmw-sponsor-stat-list {
  margin: 0.25rem 0 0.7rem;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.5rem;
}

.cmw-sponsor-template .cmw-sponsor-stat-list li {
  position: relative;
  margin: 0;
  padding-left: 1rem;
  color: #1f2937;
}

.cmw-sponsor-template .cmw-sponsor-stat-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6rem;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 999px;
  background: #cc3715;
}

.cmw-sponsor-template .cmw-sponsor-activation-grid {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.95rem;
}

.cmw-sponsor-template .cmw-sponsor-activation-card {
  padding: 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  background: #ffffff;
}

.cmw-sponsor-template .cmw-sponsor-activation-card h3 {
  margin: 0 0 0.5rem;
  font-size: 1rem !important;
  color: #7c2d12;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.cmw-sponsor-template .cmw-sponsor-chip-list {
  margin: 0.9rem 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.cmw-sponsor-template .cmw-sponsor-chip-list li {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  border: 1px solid #dfc7a2;
  background: #fff8ed;
  color: #6b280f;
  font-size: 0.84rem;
  font-weight: 600;
}

.cmw-sponsor-template .cmw-sponsor-cta-section {
  border: 1px solid #e3d6c2;
  background: linear-gradient(180deg, #fffdf8 0%, #f8f3ea 100%);
}

.cmw-sponsor-template .cmw-sponsor-inline-mail {
  font-weight: 800;
  color: #7c2d12 !important;
  text-decoration: none;
}

.cmw-sponsor-template .cmw-sponsor-inline-mail:hover,
.cmw-sponsor-template .cmw-sponsor-inline-mail:focus-visible {
  text-decoration: underline;
}

.cmw-sponsor-template .cmw-sponsor-cta-claim {
  margin-top: 1rem;
  margin-bottom: 0;
  font-weight: 800;
  color: #7c2d12;
}

@media (max-width: 980px) {
  .cmw-sponsor-template .cmw-sponsor-feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .cmw-sponsor-template .cmw-sponsor-feature-grid,
  .cmw-sponsor-template .cmw-sponsor-activation-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================
   PAGE CONTATTI - CALABRIA MOVIE
   ========================================= */
.cmw-contact-template [id] {
  scroll-margin-top: 120px;
}

.cmw-contact-template .cmw-page-hero {
  min-height: min(84vh, 880px);
  padding-top: clamp(7rem, 11vh, 8.6rem);
  padding-bottom: clamp(3rem, 6vh, 4.5rem);
  background-size: cover;
  background-position: center;
}

.cmw-contact-template .cmw-page-hero-overlay {
  background: linear-gradient(180deg, rgba(3, 7, 18, 0.7) 0%, rgba(6, 8, 14, 0.84) 56%, rgba(5, 5, 5, 0.92) 100%);
}

.cmw-contact-template .cmw-page-hero-text {
  position: relative;
  max-width: 980px;
}

.cmw-contact-template .cmw-support-hero-kicker {
  margin: 0 0 0.95rem;
  color: #efc984;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.cmw-contact-template .cmw-support-hero-glow {
  position: absolute;
  left: 50%;
  top: 48%;
  width: min(760px, 92vw);
  height: 210px;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  pointer-events: none;
  background: radial-gradient(circle at center, rgba(239, 201, 132, 0.22), rgba(204, 55, 21, 0.12) 48%, transparent 72%);
  filter: blur(18px);
  z-index: 0;
}

.cmw-contact-template .cmw-page-hero-title {
  position: relative;
  z-index: 1;
  margin: 0;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: clamp(2.6rem, 7vw, 5.1rem);
  line-height: 0.95;
  text-shadow:
    0 0 18px rgba(239, 201, 132, 0.34),
    0 0 42px rgba(204, 55, 21, 0.22),
    0 8px 28px rgba(0, 0, 0, 0.55);
}

.cmw-contact-template .cmw-page-hero-subtitle {
  position: relative;
  z-index: 1;
  margin: 1rem auto 0;
  text-align: center;
  color: #efc984;
  font-size: clamp(1.02rem, 1rem + 0.4vw, 1.28rem);
  line-height: 1.55;
  text-shadow: 0 3px 14px rgba(0, 0, 0, 0.45);
}

.cmw-contact-template .cmw-contact-hero-actions {
  position: relative;
  z-index: 1;
  margin-top: 1.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.cmw-contact-template .cmw-contact-hero-actions .cmw-contact-btn--hero {
  width: auto;
  min-width: 168px;
  padding: 0.7rem 1.35rem;
  border-radius: 999px;
  font-size: 0.72rem;
}

.cmw-contact-template .cmw-contact-hero-actions .cmw-contact-btn--ghost {
  background: transparent;
  border-color: #efc984;
  color: #efc984 !important;
}

.cmw-contact-template .cmw-contact-hero-actions .cmw-contact-btn--ghost:hover,
.cmw-contact-template .cmw-contact-hero-actions .cmw-contact-btn--ghost:focus-visible {
  background: #efc984;
  border-color: #efc984;
  color: #111827 !important;
}

.cmw-contact-template .cmw-contact-content {
  max-width: 1100px;
  margin: 0 auto;
}

.cmw-contact-template .cmw-contact-intro {
  margin: 0 0 1.55rem;
  text-align: center;
  font-size: 1.08rem;
  line-height: 1.75;
  color: #111827;
}

.cmw-contact-template .cmw-contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(0, 0.94fr);
  gap: 1rem;
}

.cmw-contact-template .cmw-contact-card {
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  background: #ffffff;
  padding: 1.15rem;
  box-shadow: 0 10px 28px rgba(2, 6, 23, 0.07);
}

.cmw-contact-template .cmw-contact-card h2 {
  margin: 0 0 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-size: clamp(1.15rem, 1.08rem + 0.44vw, 1.5rem);
}

.cmw-contact-template .cmw-contact-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.68rem;
}

.cmw-contact-template .cmw-contact-list li {
  margin: 0;
  padding: 0.72rem 0.8rem;
  border-radius: 12px;
  border: 1px solid #eceff3;
  border-left: 4px solid #cc3715;
  background: #fbfcfd;
}

.cmw-contact-template .cmw-contact-label {
  display: block;
  margin-bottom: 0.15rem;
  color: #7c2d12;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.7rem;
  font-weight: 700;
}

.cmw-contact-template .cmw-contact-value {
  display: inline-block;
  color: #0f172a !important;
  font-size: 1rem;
  line-height: 1.55;
  text-decoration: none;
}

.cmw-contact-template a.cmw-contact-value:hover,
.cmw-contact-template a.cmw-contact-value:focus-visible {
  color: #cc3715 !important;
}

.cmw-contact-template .cmw-contact-actions-copy {
  margin: 0 0 0.9rem;
  color: #374151;
  line-height: 1.65;
}

.cmw-contact-template .cmw-contact-actions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.6rem;
}

.cmw-contact-template .cmw-contact-social-wrap {
  margin-top: 0.9rem;
  padding-top: 0.9rem;
  border-top: 1px solid #e5e7eb;
}

.cmw-contact-template .cmw-contact-social-title {
  margin: 0 0 0.62rem;
  color: #374151;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.cmw-contact-template .cmw-contact-social {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.58rem;
}

.cmw-contact-template .cmw-contact-social-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.55rem 0.7rem;
  border-radius: 10px;
  border: 1px solid #d1d5db;
  background: #ffffff;
  color: #111827 !important;
  text-decoration: none;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: transform 0.2s ease, border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.cmw-contact-template .cmw-contact-social-link:hover,
.cmw-contact-template .cmw-contact-social-link:focus-visible {
  transform: translateY(-1px);
  border-color: #cc3715;
  color: #cc3715 !important;
  background: #fffaf5;
}

.cmw-contact-template .cmw-contact-social-icon {
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  background: #111827;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.cmw-contact-template .cmw-contact-social-link:hover .cmw-contact-social-icon,
.cmw-contact-template .cmw-contact-social-link:focus-visible .cmw-contact-social-icon {
  background: #cc3715;
}

.cmw-contact-template .cmw-contact-social-icon svg {
  width: 0.82rem;
  height: 0.82rem;
  fill: currentColor;
}

.cmw-contact-template .cmw-contact-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  width: 100%;
  padding: 0.65rem 1rem;
  border-radius: 12px;
  border: 1px solid transparent;
  text-decoration: none;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: transform 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.cmw-contact-template .cmw-contact-btn:hover,
.cmw-contact-template .cmw-contact-btn:focus-visible {
  transform: translateY(-1px);
}

.cmw-contact-template .cmw-contact-btn--primary {
  background: #cc3715;
  border-color: #cc3715;
  color: #ffffff !important;
}

.cmw-contact-template .cmw-contact-btn--primary:hover,
.cmw-contact-template .cmw-contact-btn--primary:focus-visible {
  background: #b92f10;
  border-color: #b92f10;
}

.cmw-contact-template .cmw-contact-btn--secondary {
  background: #efc984;
  border-color: #efc984;
  color: #1f2937 !important;
}

.cmw-contact-template .cmw-contact-btn--secondary:hover,
.cmw-contact-template .cmw-contact-btn--secondary:focus-visible {
  background: #e8bf74;
  border-color: #e8bf74;
}

.cmw-contact-template .cmw-contact-btn--ghost {
  background: #ffffff;
  border-color: #d1d5db;
  color: #111827 !important;
}

.cmw-contact-template .cmw-contact-btn--ghost:hover,
.cmw-contact-template .cmw-contact-btn--ghost:focus-visible {
  border-color: #cc3715;
  color: #cc3715 !important;
}

.cmw-contact-template .cmw-contact-btn--instagram {
  background: #ffffff;
  border-color: #d1d5db;
  color: #111827 !important;
}

.cmw-contact-template .cmw-contact-btn--instagram:hover,
.cmw-contact-template .cmw-contact-btn--instagram:focus-visible {
  border-color: #cc3715;
  color: #cc3715 !important;
}

@media (max-width: 980px) {
  .cmw-contact-template .cmw-contact-grid {
    grid-template-columns: 1fr;
  }

  .cmw-contact-template .cmw-contact-actions-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .cmw-contact-template .cmw-page-hero {
    min-height: 78vh;
  }

  .cmw-contact-template .cmw-page-hero-title {
    letter-spacing: 0.045em;
  }

  .cmw-contact-template .cmw-contact-social {
    grid-template-columns: 1fr;
  }
}

/* =========================================
   AUTHORITATIVE MOBILE MENU OVERRIDES
   Keep this block last to avoid cascade conflicts.
   ========================================= */
@media (max-width: 900px) {
  body .cmw-header {
    z-index: 12000 !important;
  }

  body .cmw-main-nav {
    position: fixed !important;
    inset: 0 !important;
    z-index: 11990 !important;
    padding: calc(env(safe-area-inset-top, 0px) + 88px) 1.75rem calc(env(safe-area-inset-bottom, 0px) + 2rem) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-20px) !important;
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease !important;
  }

  body .cmw-main-nav.is-open {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }

  body .cmw-hamburger {
    position: relative;
    z-index: 12010 !important;
  }

  body .cmw-hamburger.is-active {
    position: fixed !important;
    top: calc(env(safe-area-inset-top, 0px) + 1rem) !important;
    right: 1rem !important;
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    z-index: 2147483646 !important;
  }

  body:not(.industry-club-site) .cmw-main-nav {
    background: #cc3715 !important;
  }

  body:not(.industry-club-site) .cmw-main-nav .cmw-menu>li>a {
    color: #efc984 !important;
  }

  body:not(.industry-club-site) .cmw-main-nav .cmw-mobile-cta,
  body:not(.industry-club-site) .cmw-main-nav .cmw-mobile-cta:visited,
  body:not(.industry-club-site) .cmw-main-nav .cmw-mobile-cta:active {
    background: #efc984 !important;
    border-color: #efc984 !important;
    color: #cc3715 !important;
    -webkit-text-fill-color: #cc3715 !important;
  }

  body.industry-club-site .cmw-main-nav {
    background: var(--ic-black) !important;
  }

  body.industry-club-site .cmw-main-nav .cmw-menu>li>a,
  body.industry-club-site .cmw-main-nav .cmw-menu>li.current-menu-item>a {
    color: var(--ic-white) !important;
  }

  body.industry-club-site .cmw-hamburger span,
  body.industry-club-site .cmw-hamburger.is-active span:nth-child(1),
  body.industry-club-site .cmw-hamburger.is-active span:nth-child(3) {
    background-color: var(--ic-accent) !important;
  }

  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw,
  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw:visited,
  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw:hover,
  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw:focus-visible,
  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw:active {
    background-color: var(--ic-accent) !important;
    border-color: var(--ic-accent) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }

  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw *,
  body.industry-club-site .cmw-main-nav .cmw-mobile-cta.ic-header-cta-cmw .cmw-header-cta-arrow {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }
}

/* =========================================
   AUTORI MODAL TITLES (MOBILE)
   Smaller, tighter, centered (no justified heading text).
   ========================================= */
@media (max-width: 768px) {
  body.page-template-page-industry-club-autori .ic-modal-description h1,
  body.page-template-page-industry-club-autori-php .ic-modal-description h1,
  body.page-template-page-industry-club-autori .ic-modal-description h2,
  body.page-template-page-industry-club-autori-php .ic-modal-description h2,
  body.page-template-page-industry-club-autori .ic-modal-description h3,
  body.page-template-page-industry-club-autori-php .ic-modal-description h3,
  body.page-template-page-industry-club-autori .ic-modal-description h4,
  body.page-template-page-industry-club-autori-php .ic-modal-description h4,
  body.page-template-page-industry-club-autori .ic-modal-description h5,
  body.page-template-page-industry-club-autori-php .ic-modal-description h5,
  body.page-template-page-industry-club-autori .ic-modal-description h6,
  body.page-template-page-industry-club-autori-php .ic-modal-description h6,
  body.page-template-page-industry-club-autori .ic-modal-description p[class*="has-"][class*="-font-size"],
  body.page-template-page-industry-club-autori-php .ic-modal-description p[class*="has-"][class*="-font-size"] {
    font-size: clamp(1.48rem, 1.32rem + 0.95vw, 1.9rem) !important;
    line-height: 1.12 !important;
    margin-top: 0.95rem !important;
    margin-bottom: 0.5rem !important;
    text-align: center !important;
    text-align-last: center !important;
    text-justify: auto !important;
    hyphens: none !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }
}

/* =========================================
   MOBILE MENU TYPOGRAPHY ALIGNMENT
   Keep same menu text size on Calabria + Industry Club.
   ========================================= */
@media (max-width: 900px) {
  body .cmw-main-nav .cmw-menu > li > a {
    font-size: clamp(1.36rem, 1.18rem + 1.25vw, 1.58rem) !important;
    line-height: 1.1 !important;
    letter-spacing: 0.035em !important;
    text-align: center !important;
  }
}

/* =========================================
   SPLASH HERO LINKS (MOBILE)
   Improve readability and prevent clipping.
   ========================================= */
@media (max-width: 768px) {
  #cmw-splash-hero .cmw-splash-controls {
    bottom: max(1.35rem, env(safe-area-inset-bottom, 0px)) !important;
    gap: 0.9rem !important;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  #cmw-splash-hero .cmw-splash-links {
    width: min(100%, 430px);
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 0.8rem !important;
    align-items: stretch !important;
  }

  #cmw-splash-hero .cmw-splash-links .cmw-splash-btn {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    width: 100%;
    padding: 0.55rem 0.7rem !important;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.24) !important;
    background: rgba(2, 6, 14, 0.38) !important;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    font-size: clamp(0.83rem, 0.78rem + 0.55vw, 0.95rem) !important;
    line-height: 1.12 !important;
    letter-spacing: 0.04em !important;
    text-align: center !important;
    text-wrap: balance;
    white-space: normal !important;
  }

  #cmw-splash-hero .cmw-splash-links .cmw-splash-btn:first-child {
    grid-column: 1 / -1;
  }

  #cmw-splash-hero .cmw-splash-links .cmw-splash-btn::after {
    display: none;
  }

  #cmw-splash-hero .cmw-splash-scroll-trigger {
    margin-top: 0.4rem !important;
  }
}

/* =========================================================
   HEADER MENU – SOTTOMENU A TENDINA (dropdown)
   Le voci figlie (sub-menu di WordPress) appaiono in hover
   come elenco verticale su desktop, e impilate/indentate
   dentro il drawer su mobile.
   ========================================================= */

/* Il genitore deve fare da riferimento per il posizionamento assoluto */
.cmw-menu li {
  position: relative;
}

/* --- DESKTOP (sopra i 900px) --- */
@media (min-width: 901px) {

  /* Pannello a tendina: nascosto di default.
     --cmw-sub-gap = distanza fra la barra e il pannello (alza/abbassa qui) */
  .cmw-menu .menu-item-has-children {
    --cmw-sub-gap: 18px;
  }

  .cmw-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 50%;
    margin-top: var(--cmw-sub-gap); /* abbassa il pannello sotto la barra */
    transform: translateX(-50%) translateY(6px);
    min-width: 264px;
    padding: 0.6rem 0;
    list-style: none;

    background: #0b0b0b;
    border: 1px solid rgba(239, 201, 132, 0.22);
    border-radius: 14px;
    box-shadow: 0 22px 50px rgba(0, 0, 0, 0.5);

    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;

    white-space: normal;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    /* RITARDO IN CHIUSURA (0.12s): se esci di un pixel e rientri subito,
       il menu non inizia nemmeno a sparire */
    transition:
      opacity 0.2s ease 0.12s,
      transform 0.2s ease 0.12s,
      visibility 0.2s ease 0.12s;
    z-index: 1000;
  }

  /* PONTE 1 — fascia invisibile subito sotto la voce (larga quanto la voce) */
  .cmw-menu .menu-item-has-children::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: calc(var(--cmw-sub-gap) + 6px); /* copre il gap + sovrapposizione */
  }

  /* PONTE 2 — fascia invisibile sopra il pannello (larga quanto il pannello):
     riempie il gap su TUTTA la larghezza della tendina, così i movimenti
     diagonali verso le voci laterali non attraversano mai una zona morta */
  .cmw-menu .sub-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 100%;
    height: calc(var(--cmw-sub-gap) + 6px);
  }

  /* Mostra la tendina in hover o focus da tastiera (apertura immediata) */
  .cmw-menu .menu-item-has-children:hover > .sub-menu,
  .cmw-menu .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
    transition-delay: 0s; /* niente ritardo in apertura */
  }

  /* Voci del sottomenu: una sotto l'altra, riga singola */
  .cmw-menu .sub-menu li {
    width: 100%;
  }

  .cmw-menu .sub-menu a {
    display: block;
    width: 100%;
    padding: 0.85rem 1.6rem;
    font-size: 0.9rem;
    line-height: 1.35;
    white-space: nowrap;
    text-align: left;
    color: #efc984;
    transition: background 0.18s ease, color 0.18s ease;
  }

  /* niente sottolineatura animata dentro la tendina */
  .cmw-menu .sub-menu a::after {
    display: none !important;
  }

  .cmw-menu .sub-menu a:hover {
    background: rgba(239, 201, 132, 0.12);
    color: #ffffff;
  }

  .cmw-menu .sub-menu .current-menu-item > a {
    color: #ffffff;
  }

  /* Freccetta sui genitori che hanno figli */
  .cmw-menu .menu-item-has-children > a {
    padding-right: 1.1em;
  }

  .cmw-menu .menu-item-has-children > a::before {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 0.42em;
    height: 0.42em;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-70%) rotate(45deg);
    transition: transform 0.22s ease;
    pointer-events: none;
  }

  .cmw-menu .menu-item-has-children:hover > a::before,
  .cmw-menu .menu-item-has-children:focus-within > a::before {
    transform: translateY(-30%) rotate(-135deg);
  }
}

/* --- MOBILE (drawer, sotto i 900px) --- */
@media (max-width: 900px) {

  /* Dentro al drawer i figli restano visibili e indentati sotto al genitore.
     SOLO a drawer APERTO: altrimenti i sub-menu (che qui forzano
     visibility:visible + pointer-events:auto) restano cliccabili anche a menu
     chiuso — invisibili ma "fantasma" — e intercettano i tap al centro pagina. */
  .cmw-main-nav.is-open .sub-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;

    list-style: none;
    margin: 0.75rem 0 0;
    padding: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
  }

  .cmw-main-nav.is-open .sub-menu a {
    font-size: 1.05rem !important;
    opacity: 0.9;
  }
}

/* Mantiene il bottone CTA dell'header su una sola riga
   (prima il nowrap arrivava da a[href*="filmfreeway"]) */
.cmw-header-cta {
  white-space: nowrap;
}

/* Icona "due persone" nel bottone CTA dell'header (sostituisce la freccia).
   fill="currentColor" => eredita il colore del testo, anche in hover */
.cmw-header-cta-icon {
  width: 1.2em;
  height: 1.2em;
  margin-left: 0.55rem;
  margin-right: -0.1rem;
  flex-shrink: 0;
  vertical-align: middle;
  transition: transform 0.2s ease;
}

.cmw-header-cta:hover .cmw-header-cta-icon {
  transform: translateY(-1px) scale(1.06);
}

*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box;
  /* 1 */
  border-width: 0;
  /* 2 */
  border-style: solid;
  /* 2 */
  border-color: #e5e7eb;
  /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  -moz-tab-size: 4;
  /* 3 */
  -o-tab-size: 4;
     tab-size: 4;
  /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  /* 4 */
  font-feature-settings: normal;
  /* 5 */
  font-variation-settings: normal;
  /* 6 */
  -webkit-tap-highlight-color: transparent;
  /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0;
  /* 1 */
  line-height: inherit;
  /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0;
  /* 1 */
  color: inherit;
  /* 2 */
  border-top-width: 1px;
  /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  /* 1 */
  font-feature-settings: normal;
  /* 2 */
  font-variation-settings: normal;
  /* 3 */
  font-size: 1em;
  /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0;
  /* 1 */
  border-color: inherit;
  /* 2 */
  border-collapse: collapse;
  /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-feature-settings: inherit;
  /* 1 */
  font-variation-settings: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  font-weight: inherit;
  /* 1 */
  line-height: inherit;
  /* 1 */
  letter-spacing: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  /* 1 */
  background-color: transparent;
  /* 2 */
  background-image: none;
  /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  /* 1 */
  vertical-align: middle;
  /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

.container {
  width: 100%;
}

@media (min-width: 640px) {
  .container {
    max-width: 640px;
  }
}

@media (min-width: 768px) {
  .container {
    max-width: 768px;
  }
}

@media (min-width: 1024px) {
  .container {
    max-width: 1024px;
  }
}

@media (min-width: 1280px) {
  .container {
    max-width: 1280px;
  }
}

@media (min-width: 1536px) {
  .container {
    max-width: 1536px;
  }
}

.collapse {
  visibility: collapse;
}

.static {
  position: static;
}

.fixed {
  position: fixed;
}

.absolute {
  position: absolute;
}

.relative {
  position: relative;
}

.-inset-4 {
  inset: -1rem;
}

.inset-0 {
  inset: 0px;
}

.bottom-4 {
  bottom: 1rem;
}

.bottom-8 {
  bottom: 2rem;
}

.left-0 {
  left: 0px;
}

.left-2 {
  left: 0.5rem;
}

.left-4 {
  left: 1rem;
}

.right-0 {
  right: 0px;
}

.top-2 {
  top: 0.5rem;
}

.z-0 {
  z-index: 0;
}

.z-10 {
  z-index: 10;
}

.z-20 {
  z-index: 20;
}

.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.mb-1 {
  margin-bottom: 0.25rem;
}

.mb-10 {
  margin-bottom: 2.5rem;
}

.mb-12 {
  margin-bottom: 3rem;
}

.mb-2 {
  margin-bottom: 0.5rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.mb-6 {
  margin-bottom: 1.5rem;
}

.mb-8 {
  margin-bottom: 2rem;
}

.ml-2 {
  margin-left: 0.5rem;
}

.mt-12 {
  margin-top: 3rem;
}

.mt-4 {
  margin-top: 1rem;
}

.mt-6 {
  margin-top: 1.5rem;
}

.mt-8 {
  margin-top: 2rem;
}

.mt-auto {
  margin-top: auto;
}

.line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.block {
  display: block;
}

.flex {
  display: flex;
}

.inline-flex {
  display: inline-flex;
}

.table {
  display: table;
}

.grid {
  display: grid;
}

.hidden {
  display: none;
}

.h-1 {
  height: 0.25rem;
}

.h-10 {
  height: 2.5rem;
}

.h-12 {
  height: 3rem;
}

.h-4 {
  height: 1rem;
}

.h-48 {
  height: 12rem;
}

.h-\[400px\] {
  height: 400px;
}

.h-full {
  height: 100%;
}

.h-screen {
  height: 100vh;
}

.min-h-\[600px\] {
  min-height: 600px;
}

.min-h-screen {
  min-height: 100vh;
}

.w-10 {
  width: 2.5rem;
}

.w-12 {
  width: 3rem;
}

.w-24 {
  width: 6rem;
}

.w-4 {
  width: 1rem;
}

.w-48 {
  width: 12rem;
}

.w-80 {
  width: 20rem;
}

.w-full {
  width: 100%;
}

.max-w-2xl {
  max-width: 42rem;
}

.max-w-4xl {
  max-width: 56rem;
}

.flex-none {
  flex: none;
}

.flex-grow {
  flex-grow: 1;
}

.border-collapse {
  border-collapse: collapse;
}

.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

@keyframes bounce {
  0%, 100% {
    transform: translateY(-25%);
    animation-timing-function: cubic-bezier(0.8,0,1,1);
  }

  50% {
    transform: none;
    animation-timing-function: cubic-bezier(0,0,0.2,1);
  }
}

.animate-bounce {
  animation: bounce 1s infinite;
}

.snap-x {
  scroll-snap-type: x var(--tw-scroll-snap-strictness);
}

.snap-mandatory {
  --tw-scroll-snap-strictness: mandatory;
}

.snap-center {
  scroll-snap-align: center;
}

.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.flex-col {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.items-center {
  align-items: center;
}

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

.gap-16 {
  gap: 4rem;
}

.gap-4 {
  gap: 1rem;
}

.gap-6 {
  gap: 1.5rem;
}

.gap-8 {
  gap: 2rem;
}

.overflow-hidden {
  overflow: hidden;
}

.overflow-x-auto {
  overflow-x: auto;
}

.rounded {
  border-radius: 0.25rem;
}

.rounded-2xl {
  border-radius: 1rem;
}

.rounded-full {
  border-radius: 9999px;
}

.rounded-xl {
  border-radius: 0.75rem;
}

.border {
  border-width: 1px;
}

.border-2 {
  border-width: 2px;
}

.border-y {
  border-top-width: 1px;
  border-bottom-width: 1px;
}

.border-l-4 {
  border-left-width: 4px;
}

.border-t {
  border-top-width: 1px;
}

.border-cmw-gold {
  --tw-border-opacity: 1;
  border-color: rgb(239 201 132 / var(--tw-border-opacity, 1));
}

.border-cmw-red {
  --tw-border-opacity: 1;
  border-color: rgb(204 55 21 / var(--tw-border-opacity, 1));
}

.border-slate-800 {
  --tw-border-opacity: 1;
  border-color: rgb(30 41 59 / var(--tw-border-opacity, 1));
}

.border-white {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}

.border-white\/10 {
  border-color: rgb(255 255 255 / 0.1);
}

.border-white\/5 {
  border-color: rgb(255 255 255 / 0.05);
}

.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}

.bg-black\/40 {
  background-color: rgb(0 0 0 / 0.4);
}

.bg-black\/60 {
  background-color: rgb(0 0 0 / 0.6);
}

.bg-black\/70 {
  background-color: rgb(0 0 0 / 0.7);
}

.bg-cmw-dark {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}

.bg-cmw-red {
  --tw-bg-opacity: 1;
  background-color: rgb(204 55 21 / var(--tw-bg-opacity, 1));
}

.bg-neutral-800 {
  --tw-bg-opacity: 1;
  background-color: rgb(38 38 38 / var(--tw-bg-opacity, 1));
}

.bg-neutral-900 {
  --tw-bg-opacity: 1;
  background-color: rgb(23 23 23 / var(--tw-bg-opacity, 1));
}

.bg-slate-900\/50 {
  background-color: rgb(15 23 42 / 0.5);
}

.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}

.bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}

.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}

.from-black {
  --tw-gradient-from: #000 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-black\/30 {
  --tw-gradient-from: rgb(0 0 0 / 0.3) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-black\/90 {
  --tw-gradient-from: rgb(0 0 0 / 0.9) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-cmw-dark {
  --tw-gradient-from: #000000 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-cmw-dark\/80 {
  --tw-gradient-from: rgb(0 0 0 / 0.8) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-cmw-gold {
  --tw-gradient-from: #efc984 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(239 201 132 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-cmw-red {
  --tw-gradient-from: #cc3715 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(204 55 21 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.via-black\/50 {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / 0.5) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-cmw-dark\/50 {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / 0.5) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-cmw-dark\/60 {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / 0.6) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-cmw-dark\/90 {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / 0.9) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.via-transparent {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.to-black\/80 {
  --tw-gradient-to: rgb(0 0 0 / 0.8) var(--tw-gradient-to-position);
}

.to-cmw-dark {
  --tw-gradient-to: #000000 var(--tw-gradient-to-position);
}

.to-orange-300 {
  --tw-gradient-to: #fdba74 var(--tw-gradient-to-position);
}

.to-orange-400 {
  --tw-gradient-to: #fb923c var(--tw-gradient-to-position);
}

.to-orange-600 {
  --tw-gradient-to: #ea580c var(--tw-gradient-to-position);
}

.to-rose-400 {
  --tw-gradient-to: #fb7185 var(--tw-gradient-to-position);
}

.to-transparent {
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}

.bg-clip-text {
  -webkit-background-clip: text;
          background-clip: text;
}

.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}

.p-5 {
  padding: 1.25rem;
}

.p-6 {
  padding: 1.5rem;
}

.p-8 {
  padding: 2rem;
}

.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}

.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}

.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}

.py-16 {
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.py-20 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}

.py-24 {
  padding-top: 6rem;
  padding-bottom: 6rem;
}

.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.py-32 {
  padding-top: 8rem;
  padding-bottom: 8rem;
}

.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.pb-20 {
  padding-bottom: 5rem;
}

.pb-4 {
  padding-bottom: 1rem;
}

.pb-8 {
  padding-bottom: 2rem;
}

.pl-3 {
  padding-left: 0.75rem;
}

.pl-4 {
  padding-left: 1rem;
}

.pt-4 {
  padding-top: 1rem;
}

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

.font-sans {
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}

.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}

.text-5xl {
  font-size: 3rem;
  line-height: 1;
}

.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}

.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}

.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}

.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}

.font-bold {
  font-weight: 700;
}

.font-light {
  font-weight: 300;
}

.uppercase {
  text-transform: uppercase;
}

.italic {
  font-style: italic;
}

.leading-relaxed {
  line-height: 1.625;
}

.leading-tight {
  line-height: 1.25;
}

.tracking-tight {
  letter-spacing: -0.025em;
}

.tracking-wider {
  letter-spacing: 0.05em;
}

.tracking-widest {
  letter-spacing: 0.1em;
}

.text-cmw-gold {
  --tw-text-opacity: 1;
  color: rgb(239 201 132 / var(--tw-text-opacity, 1));
}

.text-cmw-gold\/80 {
  color: rgb(239 201 132 / 0.8);
}

.text-cmw-red {
  --tw-text-opacity: 1;
  color: rgb(204 55 21 / var(--tw-text-opacity, 1));
}

.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.text-neutral-400 {
  --tw-text-opacity: 1;
  color: rgb(163 163 163 / var(--tw-text-opacity, 1));
}

.text-neutral-500 {
  --tw-text-opacity: 1;
  color: rgb(115 115 115 / var(--tw-text-opacity, 1));
}

.text-neutral-600 {
  --tw-text-opacity: 1;
  color: rgb(82 82 82 / var(--tw-text-opacity, 1));
}

.text-slate-100 {
  --tw-text-opacity: 1;
  color: rgb(241 245 249 / var(--tw-text-opacity, 1));
}

.text-slate-200 {
  --tw-text-opacity: 1;
  color: rgb(226 232 240 / var(--tw-text-opacity, 1));
}

.text-slate-300 {
  --tw-text-opacity: 1;
  color: rgb(203 213 225 / var(--tw-text-opacity, 1));
}

.text-slate-400 {
  --tw-text-opacity: 1;
  color: rgb(148 163 184 / var(--tw-text-opacity, 1));
}

.text-transparent {
  color: transparent;
}

.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.text-white\/50 {
  color: rgb(255 255 255 / 0.5);
}

.underline {
  text-decoration-line: underline;
}

.opacity-20 {
  opacity: 0.2;
}

.opacity-60 {
  opacity: 0.6;
}

.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.shadow-black {
  --tw-shadow-color: #000;
  --tw-shadow: var(--tw-shadow-colored);
}

.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.blur-2xl {
  --tw-blur: blur(40px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.drop-shadow-2xl {
  --tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / 0.15));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.drop-shadow-lg {
  --tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / 0.04)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.drop-shadow-md {
  --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.drop-shadow-xl {
  --tw-drop-shadow: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03)) drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.invert {
  --tw-invert: invert(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.backdrop-filter {
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.transition {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.duration-300 {
  transition-duration: 300ms;
}

.duration-500 {
  transition-duration: 500ms;
}

.hover\:border-cmw-gold\/30:hover {
  border-color: rgb(239 201 132 / 0.3);
}

.hover\:border-cmw-gold\/50:hover {
  border-color: rgb(239 201 132 / 0.5);
}

.hover\:border-cmw-red\/50:hover {
  border-color: rgb(204 55 21 / 0.5);
}

.hover\:border-white\/30:hover {
  border-color: rgb(255 255 255 / 0.3);
}

.hover\:bg-black:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}

.hover\:bg-cmw-gold:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(239 201 132 / var(--tw-bg-opacity, 1));
}

.hover\:bg-cmw-red:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(204 55 21 / var(--tw-bg-opacity, 1));
}

.hover\:bg-white:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}

.hover\:text-black:hover {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}

.hover\:text-white:hover {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.hover\:shadow-cmw-gold\/10:hover {
  --tw-shadow-color: rgb(239 201 132 / 0.1);
  --tw-shadow: var(--tw-shadow-colored);
}

.hover\:shadow-cmw-gold\/20:hover {
  --tw-shadow-color: rgb(239 201 132 / 0.2);
  --tw-shadow: var(--tw-shadow-colored);
}

.hover\:shadow-cmw-red\/10:hover {
  --tw-shadow-color: rgb(204 55 21 / 0.1);
  --tw-shadow: var(--tw-shadow-colored);
}

.group:hover .group-hover\:translate-x-1 {
  --tw-translate-x: 0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:via-black\/40 {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / 0.4) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.group:hover .group-hover\:text-cmw-gold {
  --tw-text-opacity: 1;
  color: rgb(239 201 132 / var(--tw-text-opacity, 1));
}

.group:hover .group-hover\:text-neutral-300 {
  --tw-text-opacity: 1;
  color: rgb(212 212 212 / var(--tw-text-opacity, 1));
}

@media (min-width: 768px) {
  .md\:w-64 {
    width: 16rem;
  }

  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .md\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .md\:gap-16 {
    gap: 4rem;
  }

  .md\:py-28 {
    padding-top: 7rem;
    padding-bottom: 7rem;
  }

  .md\:py-32 {
    padding-top: 8rem;
    padding-bottom: 8rem;
  }

  .md\:py-40 {
    padding-top: 10rem;
    padding-bottom: 10rem;
  }

  .md\:text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }

  .md\:text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }

  .md\:text-5xl {
    font-size: 3rem;
    line-height: 1;
  }

  .md\:text-7xl {
    font-size: 4.5rem;
    line-height: 1;
  }

  .md\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
}

@media (min-width: 1024px) {
  .lg\:w-96 {
    width: 24rem;
  }

  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* =======================================================================
 * Calabria Movie WebKit — Update 1.1.0
 * Lightbox media gallery · Pagina Biglietti · Pagina Programma
 * Palette: #cc3715 (rosso) · #efc984 (oro) · #fbe9c4 (crema) · #050505 (nero)
 * ===================================================================== */

/* =======================================================================
 * 1) LIGHTBOX MEDIA GALLERY
 * ===================================================================== */
.cmw-edition-gallery-item img,
.jury-gallery__item img,
[data-cmw-lightbox] img {
  cursor: zoom-in;
}

html.cmw-lightbox-open,
body.cmw-lightbox-open {
  overflow: hidden !important;
}

.cmw-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 4vw, 3rem);
  background: rgba(5, 5, 5, 0.93);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity 0.25s ease;
}

.cmw-lightbox.is-open {
  display: flex;
  opacity: 1;
}

.cmw-lightbox__stage {
  margin: 0;
  max-width: 92vw;
  max-height: 88vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.9rem;
}

.cmw-lightbox__img {
  max-width: 92vw;
  max-height: 82vh;
  width: auto;
  height: auto;
  border-radius: 16px;
  border: 1px solid rgba(239, 201, 132, 0.25);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6);
  opacity: 0;
  transform: scale(0.985);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.cmw-lightbox__img.is-loaded {
  opacity: 1;
  transform: none;
}

.cmw-lightbox__caption {
  color: #fbe9c4;
  font-size: 0.95rem;
  text-align: center;
  max-width: 60ch;
  line-height: 1.4;
}

.cmw-lightbox__counter {
  position: absolute;
  top: 1.25rem;
  left: 1.5rem;
  color: #efc984;
  font-weight: 600;
  letter-spacing: 0.04em;
  font-size: 0.85rem;
}

.cmw-lightbox__close {
  position: absolute;
  top: 0.6rem;
  right: 1rem;
  width: 48px;
  height: 48px;
  background: transparent;
  border: none;
  color: #efc984;
  font-size: 2.4rem;
  line-height: 1;
  cursor: pointer;
  transition: transform 0.15s ease, color 0.15s ease;
}

.cmw-lightbox__close:hover {
  color: #fff;
  transform: scale(1.12);
}

.cmw-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 54px;
  height: 54px;
  border-radius: 999px;
  background: rgba(204, 55, 21, 0.85);
  color: #efc984;
  border: 1px solid rgba(239, 201, 132, 0.4);
  font-size: 1.8rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, transform 0.15s ease, color 0.15s ease;
}

.cmw-lightbox__nav:hover {
  background: #cc3715;
  color: #fff;
  transform: translateY(-50%) scale(1.08);
}

.cmw-lightbox__prev { left: clamp(0.5rem, 2vw, 2rem); }
.cmw-lightbox__next { right: clamp(0.5rem, 2vw, 2rem); }

@media (max-width: 600px) {
  .cmw-lightbox__nav { width: 44px; height: 44px; font-size: 1.4rem; }
  .cmw-lightbox__img { max-height: 74vh; }
  .cmw-lightbox__close { font-size: 2rem; }
}

/* =======================================================================
 * 2) PAGINA BIGLIETTI
 * ===================================================================== */
.cmw-tickets-page {
  background: #050505;
  color: #fbe9c4;
}

/* --- HERO AD ARCO --- */
.cmw-tickets-hero {
  position: relative;
  background: #cc3715;
  text-align: center;
  padding-top: max(90px, 9vh);
  overflow: hidden;
}

.cmw-tickets-arch {
  position: relative;
  max-width: 1120px;
  margin: 0 auto;
  line-height: 0;
}

.cmw-tickets-arch-bg {
  display: block;
  width: 100%;
  height: auto;
}

.cmw-tickets-arch-logo {
  position: absolute;
  top: 6%;
  left: 50%;
  transform: translateX(-50%);
  width: 26%;
  max-width: 300px;
  height: auto;
  z-index: 3;
}

.cmw-tickets-arch-medusa {
  position: absolute;
  left: 50%;
  bottom: 1%;
  transform: translateX(-50%);
  width: 42%;
  max-width: 420px;
  z-index: 2;
  display: block;
}

.cmw-tickets-arch-medusa img {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 12px 30px rgba(0, 0, 0, 0.35));
}

.cmw-tickets-arch--vertical { display: none; }

.cmw-tickets-hero-text {
  position: relative;
  z-index: 4;
  padding: 0 1.5rem 3.2rem;
  line-height: 1.2;
}

.cmw-tickets-eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 0.8rem;
  color: #fbe9c4;
  font-weight: 600;
  margin: 0 0 0.5rem;
}

.cmw-tickets-title {
  font-size: clamp(2.6rem, 7.5vw, 5.6rem);
  color: #efc984;
  font-weight: 800;
  line-height: 1;
  margin: 0.2rem 0;
}

.cmw-tickets-title i { font-style: italic; color: #fff; }

/* Titolo hero ("Acquista il tuo biglietto" / "Il programma…"): riga più stretta
   su mobile/tablet. Serve !important per battere la regola globale
   `@media (max-width:900px) h1 { line-height: 1.2 !important }` di style.css. */
@media (max-width: 900px) {
  .cmw-tickets-title { line-height: 1.1 !important; }
}

.cmw-tickets-sub {
  font-size: clamp(1rem, 2.4vw, 1.3rem);
  color: #fbe9c4;
  margin: 0.5rem 0 1.4rem;
}

.cmw-tickets-scrollcue {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  color: #efc984;
  text-decoration: none;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.cmw-tickets-scrollcue svg { animation: cmwBob 1.8s ease-in-out infinite; }

@keyframes cmwBob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}

/* --- SEZIONE BIGLIETTI --- */
.cmw-tickets {
  max-width: 1180px;
  margin: 0 auto;
  padding: clamp(3rem, 7vw, 6rem) 1.25rem;
}

.cmw-tickets-section-head {
  text-align: center;
  margin-bottom: clamp(2rem, 5vw, 3.5rem);
}

.cmw-tickets-section-head h2 {
  font-size: clamp(1.8rem, 4.5vw, 2.8rem);
  color: #efc984;
  margin: 0 0 0.6rem;
}

.cmw-tickets-section-head h2 i { color: #fff; }

.cmw-tickets-section-head p {
  color: rgba(251, 233, 196, 0.7);
  max-width: 60ch;
  margin: 0 auto;
  line-height: 1.55;
}

.cmw-tickets-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1rem, 2.2vw, 1.8rem);
}

@media (max-width: 1024px) {
  .cmw-tickets-grid { grid-template-columns: repeat(2, 1fr); gap: 1.6rem; }
}

@media (max-width: 560px) {
  .cmw-tickets-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
}

.cmw-ticket-card { display: flex; flex-direction: column; }

.cmw-ticket-figure {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  border: 3px solid rgba(239, 201, 132, 0.6);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.cmw-ticket-figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.cmw-ticket-card:hover .cmw-ticket-figure {
  transform: translateY(-6px);
  border-color: #efc984;
  box-shadow: 0 18px 44px rgba(204, 55, 21, 0.5);
}

.cmw-ticket-body { text-align: center; padding: 1rem 0.5rem 0; }
.cmw-ticket-name { color: #efc984; font-size: 1.3rem; margin: 0.2rem 0 0; }
.cmw-ticket-date { color: rgba(251, 233, 196, 0.7); font-size: 0.9rem; margin: 0.15rem 0 0.9rem; }

/* --- BOTTONE ACQUISTA ORA --- */
.cmw-ticket-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.8rem 1.4rem;
  border-radius: 999px;
  background: #efc984;
  color: #cc3715;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 0.92rem;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.18s ease;
}

.cmw-ticket-cta:hover {
  background: #cc3715;
  color: #fff;
  border-color: #fff;
  transform: translateY(-2px);
}

.cmw-ticket-cta-icon { width: 1.1em; height: 1.1em; flex-shrink: 0; }

/* Logo Tickly nel bottone "Acquista su". In hover il bottone diventa rosso
   con testo bianco: il logo (colorato) passa a bianco via filtro, cosi' non
   serve una versione bianca separata. Fallback a testo se il logo manca. */
.cmw-tickly { display: inline-flex; align-items: center; }
.cmw-tickly-logo { height: 1.15em; width: auto; display: block; transition: filter 0.2s ease; }
.cmw-ticket-cta:hover .cmw-tickly-logo { filter: brightness(0) invert(1); }

.cmw-ticket-cta.is-soon {
  background: rgba(239, 201, 132, 0.12);
  color: #efc984;
  border: 1px solid rgba(239, 201, 132, 0.55);
  cursor: default;
  pointer-events: none;
  letter-spacing: 0.05em;
}

/* --- ACCREDITO 4 GIORNI (FEATURE) — offerta premium --- */
.cmw-ticket-feature {
  position: relative;
  margin-top: clamp(2rem, 5vw, 3.5rem);
  margin-bottom: clamp(2.75rem, 7vw, 5rem);
  display: grid;
  grid-template-columns: minmax(0, 420px) 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(239, 201, 132, 0.16), transparent 55%),
    linear-gradient(150deg, rgba(204, 55, 21, 0.42), rgba(204, 55, 21, 0.12) 62%, rgba(5, 5, 5, 0.28));
  border: 1.5px solid rgba(239, 201, 132, 0.6);
  border-radius: 28px;
  padding: clamp(1.5rem, 3.2vw, 2.6rem);
  box-shadow:
    0 0 0 4px rgba(239, 201, 132, 0.08),
    0 26px 64px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(239, 201, 132, 0.22);
}

@media (max-width: 780px) {
  .cmw-ticket-feature {
    grid-template-columns: 1fr;
    max-width: 460px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }
}

.cmw-ticket-feature-figure {
  border-radius: 20px;
  overflow: hidden;
  border: 2px solid rgba(239, 201, 132, 0.55);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.5);
}

.cmw-ticket-feature-figure img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.cmw-ticket-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: linear-gradient(90deg, #f6d99a, #efc984);
  color: #a5290f;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.74rem;
  padding: 0.42rem 0.9rem;
  border-radius: 999px;
  box-shadow: 0 6px 18px rgba(239, 201, 132, 0.28);
}

.cmw-ticket-badge-star { width: 0.95em; height: 0.95em; flex-shrink: 0; }

.cmw-ticket-feature-name {
  color: #efc984;
  font-size: clamp(1.75rem, 4.4vw, 2.6rem);
  line-height: 1.05;
  margin: 0.7rem 0 0.5rem;
}

.cmw-ticket-feature-name i { color: #fff; }

/* Frase-guida sotto il titolo */
.cmw-ticket-feature-lead {
  color: #fbe9c4;
  font-size: clamp(1.02rem, 2.4vw, 1.2rem);
  line-height: 1.5;
  margin: 0 0 1.1rem;
}
.cmw-ticket-feature-lead strong { color: #efc984; }

/* Benefici scannabili con spunta dorata */
.cmw-ticket-feature-list {
  list-style: none;
  margin: 0 0 1.7rem;
  padding: 0;
  display: grid;
  gap: 0.65rem;
  text-align: left;
}
.cmw-ticket-feature-list li {
  position: relative;
  padding-left: 2rem;
  color: rgba(251, 233, 196, 0.92);
  line-height: 1.45;
}
.cmw-ticket-feature-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.02em;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 999px;
  background-color: rgba(239, 201, 132, 0.15);
  border: 1px solid rgba(239, 201, 132, 0.55);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23efc984' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.2 8.4l3 3L12.8 4.9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0.8rem;
}
.cmw-ticket-feature-list strong { color: #efc984; }

@media (max-width: 780px) {
  /* checklist a sinistra ma centrata come blocco */
  .cmw-ticket-feature-list { width: fit-content; margin-left: auto; margin-right: auto; }
}

.cmw-ticket-feature .cmw-ticket-cta {
  width: auto;
  min-width: 260px;
  padding: 0.95rem 1.7rem;
  font-size: 0.98rem;
}

@media (max-width: 780px) {
  .cmw-ticket-feature .cmw-ticket-cta { width: 100%; }
}

/* --- FOOT --- */
.cmw-tickets-foot { text-align: center; margin-top: clamp(2.5rem, 6vw, 4rem); }

.cmw-tickets-foot-note {
  color: rgba(251, 233, 196, 0.6);
  font-size: 0.9rem;
  max-width: 52ch;
  margin: 0 auto 1.4rem;
  line-height: 1.55;
}

.cmw-tickets-foot-links { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

.cmw-tickets-foot-link {
  background: #efc984;
  color: #cc3715;
  padding: 0.6rem 1.4rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.85rem;
  text-transform: uppercase;
  transition: background 0.2s ease, color 0.2s ease;
}

.cmw-tickets-foot-link--ghost {
  background: transparent;
  color: #efc984;
  border: 1px solid rgba(239, 201, 132, 0.5);
}

.cmw-tickets-foot-link:hover { background: #cc3715; color: #fff; }

/* --- HERO RESPONSIVE: su mobile, logo + medusa grande su rosso (stile locandina) --- */
@media (max-width: 760px) {
  .cmw-tickets-hero { padding-top: max(84px, 11vh); }
  .cmw-tickets-arch--wide { display: none; }
  .cmw-tickets-arch--vertical {
    display: block;
    position: relative;
    max-width: none;
    text-align: center;
    padding: 0.5rem 1rem 0;
  }
  .cmw-tickets-arch--vertical .cmw-tickets-arch-bg { display: none; } /* niente cornice allungata su mobile */
  .cmw-tickets-arch--vertical .cmw-tickets-arch-logo {
    position: static;
    transform: none;
    display: block;
    width: 64%;
    max-width: 280px;
    margin: 0 auto 0.6rem;
  }
  .cmw-tickets-arch--vertical .cmw-tickets-arch-medusa {
    position: static;
    transform: none;
    display: block;
    width: 76%;
    max-width: 320px;
    margin: 0 auto;
  }
}

/* =======================================================================
 * 3) PAGINA PROGRAMMA
 * ===================================================================== */
.cmw-prog-page { background: #050505; color: #fbe9c4; }

/* --- HERO --- */
.cmw-prog-hero {
  position: relative;
  background: #cc3715;
  text-align: center;
  padding: max(96px, 10vh) 1.25rem 3rem;
  overflow: hidden;
}

.cmw-prog-hero-medusa {
  position: absolute;
  right: -4%;
  bottom: -12%;
  width: 340px;
  max-width: 44%;
  opacity: 0.16;
  pointer-events: none;
}

.cmw-prog-hero-inner { position: relative; z-index: 2; }

.cmw-prog-hero-logo {
  width: 180px;
  max-width: 60%;
  height: auto;
  margin: 0 auto 0.4rem;
  display: block;
}

.cmw-prog-eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #fbe9c4;
  font-size: 0.78rem;
  margin: 0.4rem 0 0;
}

.cmw-prog-title {
  font-size: clamp(2.4rem, 7vw, 4.5rem);
  color: #efc984;
  font-weight: 800;
  line-height: 1;
  margin: 0.1rem 0 0.8rem;
}

.cmw-prog-title i { color: #fff; }

.cmw-prog-badge {
  display: inline-block;
  background: #050505;
  color: #efc984;
  border: 1px solid rgba(239, 201, 132, 0.4);
  padding: 0.4rem 1rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.03em;
}

.cmw-prog-hero-note {
  color: rgba(255, 255, 255, 0.85);
  max-width: 50ch;
  margin: 0.9rem auto 0;
  font-size: 0.92rem;
  line-height: 1.5;
}

/* --- NAV STICKY --- */
.cmw-prog-nav {
  background: none;
  border: none;
  padding-top: clamp(1.5rem, 4vw, 2.5rem);
}

.cmw-prog-nav-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  gap: 0.4rem;
  overflow-x: auto;
  padding: 0.7rem 1rem;
  scrollbar-width: none;
}

.cmw-prog-nav-inner::-webkit-scrollbar { display: none; }

.cmw-prog-nav-link {
  flex: 0 0 auto;
  color: #efc984;
  text-decoration: none;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.82rem;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

.cmw-prog-nav-link:hover {
  background: #cc3715;
  color: #fff;
  border-color: rgba(239, 201, 132, 0.4);
}

/* --- GIORNI --- */
.cmw-prog-days {
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Bande full-width alternate nero/arancio */
.cmw-prog-day {
  padding: clamp(2.5rem, 6vw, 4.5rem) 1.25rem;
  scroll-margin-top: 90px;
}
.cmw-prog-day:nth-child(odd)  { background: #cc3715; }
.cmw-prog-day:nth-child(even) { background: #050505; }
.cmw-prog-day-inner {
  max-width: 1120px;
  margin: 0 auto;
}

.cmw-prog-day-head {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.6rem;
}

.cmw-prog-day-title {
  font-size: clamp(1.8rem, 4.5vw, 2.6rem);
  color: #efc984;
  font-style: italic;
  font-weight: 800;
  margin: 0;
}

.cmw-prog-day-date { color: rgba(251, 233, 196, 0.7); font-size: 0.95rem; }

.cmw-prog-events { display: flex; flex-direction: column; gap: 1.1rem; }

.cmw-prog-event {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 1.2rem;
  background: rgba(204, 55, 21, 0.07);
  border: 1px solid rgba(239, 201, 132, 0.16);
  border-left: 4px solid #cc3715;
  border-radius: 16px;
  padding: 1.2rem 1.4rem;
  transition: background 0.2s ease, border-color 0.2s ease;
}

.cmw-prog-event:hover {
  background: rgba(204, 55, 21, 0.13);
  border-left-color: #efc984;
}

@media (max-width: 620px) {
  .cmw-prog-event { grid-template-columns: 1fr; gap: 0.6rem; }
}

.cmw-prog-event-when { display: flex; flex-direction: column; gap: 0.4rem; }

.cmw-prog-time {
  display: inline-block;
  align-self: flex-start;
  background: #efc984;
  color: #cc3715;
  font-weight: 800;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-size: 0.95rem;
}

.cmw-prog-venue {
  color: #efc984;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cmw-prog-event-cat {
  color: rgba(251, 233, 196, 0.65);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  margin: 0 0 0.25rem;
}

.cmw-prog-event-title {
  color: #fff;
  font-size: 1.3rem;
  font-style: italic;
  margin: 0 0 0.3rem;
}

.cmw-prog-event-note {
  color: rgba(251, 233, 196, 0.8);
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0.1rem 0 0;
}

.cmw-prog-films {
  list-style: none;
  margin: 0.8rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cmw-prog-films li { padding-left: 1rem; border-left: 2px solid rgba(239, 201, 132, 0.3); }
.cmw-prog-film-title { display: block; color: #efc984; font-weight: 600; }
.cmw-prog-film-meta { display: block; color: rgba(251, 233, 196, 0.6); font-size: 0.85rem; }

.cmw-prog-list { margin: 0.7rem 0 0; padding-left: 1.1rem; color: rgba(251, 233, 196, 0.8); }
.cmw-prog-list li { margin: 0.2rem 0; }

.cmw-prog-event-after {
  margin: 0.9rem 0 0;
  padding-top: 0.7rem;
  border-top: 1px dashed rgba(239, 201, 132, 0.25);
  color: rgba(251, 233, 196, 0.75);
  font-size: 0.9rem;
  font-style: italic;
  line-height: 1.5;
}

/* --- CTA FINALE --- */
.cmw-prog-cta {
  text-align: center;
  padding: clamp(2.5rem, 6vw, 4.5rem) 1.25rem;
  background: #050505;
}

.cmw-prog-cta h2 {
  color: #efc984;
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  margin: 0 0 1.4rem;
}

.cmw-prog-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: #efc984;
  color: #cc3715;
  padding: 0.9rem 2rem;
  border-radius: 999px;
  font-weight: 800;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, transform 0.18s ease;
}

.cmw-prog-cta-btn {
  border: 1px solid transparent;
  text-transform: uppercase;
}
.cmw-prog-cta-btn:hover {
  background: #cc3715;
  color: #ffffff;
  border-color: #ffffff;
}

/* =======================================================================
 * 4) HERO AD ARCO v2 — cornice trasparente con medusa e logo ai due lati
 *    (usato da Biglietti e Programma)
 * ===================================================================== */
/* Header trasparente sopra la prima sezione (come la home): l'hero ha spazio
   in alto, l'header resta trasparente sul rosso */
/* Hero: arco grande, contenuto centrato e distanziato, titolo su sfumatura in basso */
.cmw-tickets-hero.cmw-page-hero,
.cmw-prog-hero.cmw-page-hero {
  display: block;
  position: relative;
  text-align: center;
  /* solo lo spazio per liberare l'header trasparente: l'arco parte subito sotto.
     (il vuoto in cima è stato tolto anche ritagliando il PNG dell'arco) */
  padding: clamp(86px, 9vh, 100px) 0 0;
  min-height: 0;
}
/* Titolo in basso sull'arco, su sfumatura arancione. Di default è ancorato al
   fondo dell'hero; quando l'hero è in vista viene "pinnato" via JS (cmw-pinned)
   a fondo schermo, così resta visibile mentre la medusa scorre dietro. */
.cmw-tickets-hero.cmw-page-hero .cmw-tickets-hero-text,
.cmw-prog-hero.cmw-page-hero .cmw-tickets-hero-text {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 30;
  padding: clamp(3.5rem, 11vw, 8rem) 1.25rem clamp(1.5rem, 4vw, 2.6rem);
  background: linear-gradient(to top, #cc3715 0%, #cc3715 40%, rgba(204, 55, 21, 0.85) 62%, rgba(204, 55, 21, 0) 100%);
}
.cmw-tickets-hero.cmw-page-hero .cmw-tickets-hero-text.cmw-pinned,
.cmw-prog-hero.cmw-page-hero .cmw-tickets-hero-text.cmw-pinned { position: fixed; }

/* HERO: ricostruzione della locandina (arco + logo + medusa), centrata */
.cmw-arch-hero-stage {
  position: relative;
  width: 96%;
  max-width: 1280px;
  margin: 0 auto;
  line-height: 0;
}
.cmw-arch-frame {
  display: block;
  position: relative;
  width: 100%;
  height: auto;
  z-index: 1;
  pointer-events: none;
}
.cmw-arch-frame img { display: block; width: 100%; height: auto; }
.cmw-arch-content { position: absolute; inset: 0; z-index: 2; }
/* Logo: in alto, centrato, sopra la testa della medusa */
/* Logo: piccolo, nello spazio libero tra la cima dell'arco e la testa della medusa */
.cmw-arch-logo {
  position: absolute;
  left: 50%;
  top: 5%;
  transform: translateX(-50%);
  width: 22%;
  z-index: 3;
}
.cmw-arch-logo img { display: block; width: 100%; height: auto; }
/* Medusa: subito sotto il logo, alzata per essere ben visibile al caricamento
   (la composizione è più alta del viewport: senza alzarla il viso finisce
   dietro la sfumatura del titolo / sotto la piega) */
.cmw-arch-medusa {
  position: absolute;
  left: 50%;
  top: 25%;
  transform: translateX(-50%);
  width: 34%;
  z-index: 2;
}
.cmw-arch-medusa img { display: block; width: 100%; height: auto; }

@media (max-width: 760px) {
  .cmw-tickets-hero.cmw-page-hero,
  .cmw-prog-hero.cmw-page-hero { padding-top: clamp(82px, 12vh, 100px); }
  /* Su mobile il titolo va SOTTO la composizione, senza coprire la medusa */
  .cmw-tickets-hero.cmw-page-hero .cmw-tickets-hero-text,
  .cmw-prog-hero.cmw-page-hero .cmw-tickets-hero-text {
    position: static;
    background: none;
    padding: 1.4rem 1.25rem 2rem;
  }
  /* Su mobile (arco largo, quindi basso) la medusa va ingrandita per non restare
     minuscola, MA senza collidere: wordmark compatto in alto, medusa staccata sotto
     e contenuta nell'arco (niente sovrapposizione col wordmark sopra né con la
     didascalia sotto). */
  .cmw-arch-logo { top: 2%; width: 32%; }
  .cmw-arch-medusa { top: 36%; width: 54%; }
  /* Nudge del wordmark (fix di matteo): 17px più in basso = posizione giusta nell'arco */
  .cmw-arch-logo img { margin-top: 17px; }
}

/* =======================================================================
 * 5) PROGRAMMA v2 — Ospiti scorrevoli, card eventi, modal
 * ===================================================================== */
.cmw-prog-section-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto clamp(1.6rem, 4vw, 2.6rem);
  padding-inline: 1.25rem;
}
.cmw-prog-section-head h2 {
  font-size: clamp(1.8rem, 4.5vw, 2.8rem);
  color: #efc984;
  margin: 0 0 0.5rem;
}
.cmw-prog-section-head h2 i { color: #fff; }
.cmw-prog-section-head p {
  color: rgba(251, 233, 196, 0.7);
  line-height: 1.55;
  margin: 0;
}

/* --- OSPITI (riga scorrevole) --- */
.cmw-ospiti {
  background: #050505;
  padding: clamp(2.5rem, 6vw, 4.5rem) 0;
}
.cmw-ospiti-row {
  display: flex;
  gap: 1.1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 0.5rem clamp(1rem, 5vw, 4rem) 1.4rem;
  scrollbar-width: none;
}
.cmw-ospiti-row::-webkit-scrollbar { display: none; }
.cmw-ospite-card {
  flex: 0 0 auto;
  width: clamp(160px, 22vw, 205px);
  scroll-snap-align: start;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  text-align: left;
  color: inherit;
  font: inherit;
}
.cmw-ospite-card picture {
  display: block;
  border-radius: 18px;
  overflow: hidden;
  border: 3px solid rgba(239, 201, 132, 0.55);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.35);
  transition: border-color 0.2s ease;
}
.cmw-ospite-card img {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}
.cmw-ospite-card:hover picture {
  border-color: #efc984;
}
.cmw-ospite-name {
  color: #efc984;
  font-weight: 700;
  margin: 0.7rem 0 0;
  font-size: 1rem;
  line-height: 1.2;
}
.cmw-ospite-role {
  color: rgba(251, 233, 196, 0.6);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 0.15rem;
}

/* --- EVENTI (griglia di card) --- */
.cmw-events-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2.4vw, 1.8rem);
}
@media (max-width: 980px) { .cmw-events-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .cmw-events-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; } }

.cmw-event-card {
  position: relative;
  display: block;
  padding: 0;
  border: 3px solid rgba(239, 201, 132, 0.55);
  border-radius: 20px;
  overflow: hidden;
  background: transparent;
  cursor: pointer;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  text-align: left;
  color: inherit;
  font: inherit;
}
.cmw-event-card:hover {
  border-color: #efc984;
}
.cmw-event-figure { display: block; }
.cmw-event-figure img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.cmw-event-time {
  position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  z-index: 3;
  background: #efc984;
  color: #cc3715;
  font-weight: 800;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
/* Hint "Dettagli" che appare in hover (la grafica è già autosufficiente) */
.cmw-event-hint {
  position: absolute;
  bottom: 0.9rem;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  z-index: 4;
  background: rgba(239, 201, 132, 0.96);
  color: #cc3715;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 0.74rem;
  letter-spacing: 0.06em;
  padding: 0.4rem 1rem;
  border-radius: 999px;
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;
}
.cmw-event-hint--plain { position: static; transform: none; align-self: flex-start; margin-top: 0.4rem; opacity: 0.85; }
.cmw-event-card:hover .cmw-event-hint { opacity: 1; transform: translateX(-50%) translateY(0); }
.cmw-event-card:hover .cmw-event-hint--plain { transform: none; opacity: 1; }

/* Card "disegnata" senza foto: crema su rosso */
.cmw-event-card--plain { background: #fbe9c4; border-color: rgba(204, 55, 21, 0.4); }
.cmw-event-card--plain .cmw-event-caption { display: none; }
.cmw-event-plain {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.5rem;
  aspect-ratio: 4 / 5;
  padding: 1.6rem 1.3rem;
}
.cmw-event-plain-cat {
  color: rgba(204, 55, 21, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
}
.cmw-event-plain-title {
  color: #cc3715;
  font-size: 1.55rem;
  font-weight: 800;
  font-style: italic;
  line-height: 1.05;
}
.cmw-event-plain-venue {
  color: rgba(204, 55, 21, 0.85);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Nav giorni: centrata */
.cmw-prog-nav-inner { justify-content: center; }

/* Dettagli dentro al modal (riusa .cmw-info-modal del tema) */
.cmw-modal-meta { color: #efc984; font-weight: 600; margin: 0 0 0.3rem; }
.cmw-modal-time {
  background: #efc984;
  color: #cc3715;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-weight: 800;
}
.cmw-modal-cat {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  color: rgba(251, 233, 196, 0.65);
  margin: 0 0 0.6rem;
}
.cmw-modal-films { list-style: none; padding: 0; margin: 0.6rem 0 0; }
.cmw-modal-films li { padding: 0.4rem 0; border-bottom: 1px solid rgba(239, 201, 132, 0.15); }
.cmw-modal-after {
  margin-top: 0.9rem;
  padding-top: 0.7rem;
  border-top: 1px dashed rgba(239, 201, 132, 0.25);
  font-style: italic;
  color: rgba(251, 233, 196, 0.8);
}


/* ===== Minisito: header a due voci (logo + Torna alla home) ===== */
.cmw-header-minisite .cmw-header-inner{display:flex!important;grid-template-columns:none!important;align-items:center!important;justify-content:space-between!important;gap:1rem!important;}
.cmw-header-minisite .cmw-header-cta{display:inline-flex!important;align-items:center!important;background:#efc984!important;color:#cc3715!important;border-color:transparent!important;justify-self:end;}
.cmw-header-minisite .cmw-header-cta:hover{background:#cc3715!important;color:#fff!important;border-color:#fff!important;}
.cmw-header-minisite .cmw-header-cta-icon{width:1.05em;height:1.05em;margin-right:.45rem;}

/* ===== Sezione iscrizione novita' (form lead) ===== */
.cmw-signup{background:radial-gradient(120% 140% at 50% 0%, #d8451f 0%, #a82a10 55%, #7d1c07 100%);padding:clamp(3.5rem,8vw,6rem) 1.25rem;display:flex;justify-content:center;}
.cmw-signup-card{width:100%;max-width:680px;text-align:center;color:#fff8ee;}
.cmw-signup-eyebrow{margin:0 0 .75rem;font-size:.8rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#efc984;}
.cmw-signup-title{margin:0 0 .75rem;font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.1;font-weight:800;}
.cmw-signup-title i{font-style:italic;color:#efc984;}
.cmw-signup-sub{margin:0 auto 2rem;max-width:46ch;font-size:1.02rem;line-height:1.55;color:rgba(255,248,238,.86);}
.cmw-signup-form{background:#fffdf8;color:#2a1a12;border-radius:20px;padding:clamp(1.4rem,4vw,2.2rem) clamp(1.4rem,4vw,2.2rem) clamp(1rem,2.5vw,1.3rem);text-align:left;box-shadow:0 30px 60px rgba(60,10,0,.35);}
.cmw-signup-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.cmw-signup-field{display:flex;flex-direction:column;gap:.4rem;}
.cmw-signup-field-label{font-size:.82rem;font-weight:700;color:#8a4a2f;text-transform:uppercase;letter-spacing:.05em;}
.cmw-signup-field-label em{color:#cc3715;font-style:normal;}
.cmw-signup-field input{width:100%;box-sizing:border-box;padding:.8rem .95rem;font-size:1rem;border:1.5px solid #e4d3c2;border-radius:11px;background:#fff;color:#2a1a12;transition:border-color .15s ease,box-shadow .15s ease;}
.cmw-signup-field input:focus{outline:none;border-color:#cc3715;box-shadow:0 0 0 3px rgba(204,55,21,.15);}
.cmw-signup-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.cmw-signup-consent{display:flex;gap:.65rem;align-items:flex-start;margin-top:1.1rem;font-size:.9rem;line-height:1.45;color:#4a352a;cursor:pointer;}
.cmw-signup-consent input{margin-top:.15rem;width:1.1rem;height:1.1rem;flex:0 0 auto;accent-color:#cc3715;cursor:pointer;}
.cmw-signup-consent a{color:#cc3715;font-weight:600;}
.cmw-signup-consent em{color:#cc3715;font-style:normal;}
.cmw-signup-btn{margin-top:1.5rem;width:100%;padding:.95rem 1.5rem;font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#fff;background:#cc3715;border:none;border-radius:999px;cursor:pointer;transition:background .2s ease,transform .15s ease;}
.cmw-signup-btn:hover{background:#a82a10;transform:translateY(-1px);}
.cmw-signup-btn:disabled{opacity:.6;cursor:progress;transform:none;}
.cmw-signup-status{margin:.7rem 0 0;font-size:.92rem;font-weight:600;min-height:0;}
.cmw-signup-status:empty{margin:0;}
.cmw-signup-status.is-ok{color:#1c7a3e;}
.cmw-signup-status.is-err{color:#cc3715;}
.cmw-signup-fineprint{margin:.85rem 0 0;font-size:.78rem;color:#9a7a67;line-height:1.45;}
@media (max-width:560px){.cmw-signup-fields{grid-template-columns:1fr;}}
/* Link in fondo ai biglietti: dal secondo in poi in stile ghost (outline). */
.cmw-tickets-foot-links .cmw-tickets-foot-link:nth-child(n+2){background:transparent;color:#efc984;border:1px solid rgba(239,201,132,.5);}
.cmw-tickets-foot-links .cmw-tickets-foot-link:nth-child(n+2):hover{background:#cc3715;color:#fff;border-color:#cc3715;}
/* ===== Pagine legali (privacy / cookie): stile pagina contenuto di
   calabriamovie.it - hero scuro (titolo maiuscolo + sottotitolo oro +
   riga rossa) e blocco contenuto bianco. ===== */
.cmw-legal{background:#ffffff;color:#1a1a1a;font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;}
.cmw-legal-hero{background:#050505;padding:clamp(6.5rem,16vh,10rem) 1.25rem clamp(2.6rem,7vw,4rem);text-align:center;}
.cmw-legal-hero-inner{max-width:900px;margin:0 auto;}
.cmw-legal-hero-title{margin:0 0 1rem;font-size:clamp(2.2rem,6vw,4rem);font-weight:800;line-height:1.05;text-transform:uppercase;letter-spacing:-.01em;color:#fff;text-shadow:0 0 24px rgba(239,201,132,.28);}
.cmw-legal-hero-sub{margin:0 0 1.6rem;font-size:clamp(1rem,2.4vw,1.35rem);font-weight:300;color:#efc984;}
.cmw-legal-hero-rule{width:6rem;height:4px;margin:0 auto;border-radius:999px;background:#cc3715;}
.cmw-legal-content-section{background:#fff;padding:clamp(2.6rem,7vw,5rem) 1.25rem clamp(3rem,8vw,6rem);}
.cmw-legal-content-inner{max-width:760px;margin:0 auto;}
.cmw-legal-content{font-size:1.02rem;line-height:1.75;color:#2a2a2a;}
.cmw-legal-content p{margin:.8rem 0;}
.cmw-legal-content strong{display:block;margin:2rem 0 .2rem;font-size:1.2rem;font-weight:700;color:#cc3715;line-height:1.25;}
.cmw-legal-content a{color:#cc3715;font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.cmw-legal-content ul{margin:.7rem 0;padding-left:1.4rem;}
.cmw-legal-content li{margin:.4rem 0;}
/* ===== Kit incluso nell'accredito (galleria contenuti) ===== */
.cmw-ticket-kit{margin-top:1.3rem;margin-bottom:2rem;}
.cmw-ticket-kit-title{margin:0 0 .7rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#efc984;}
.cmw-ticket-kit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;align-items:end;}
.cmw-ticket-kit-item{display:flex;flex-direction:column;align-items:center;margin:0;}
.cmw-ticket-kit-frame{width:100%;height:130px;display:flex;align-items:flex-end;justify-content:center;background:transparent;overflow:visible;}
.cmw-ticket-kit-frame img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;}
.cmw-ticket-kit-item figcaption{margin-top:.6rem;font-size:.82rem;font-weight:600;color:#fff;text-align:center;}

/* FAQ a fisarmonica (details/summary, niente JS) + JSON-LD FAQPage */
.cmw-faq{padding:clamp(3rem,7vw,5rem) 1.5rem;}
.cmw-faq-inner{max-width:760px;margin:0 auto;}
.cmw-faq-head{text-align:center;margin-bottom:2.2rem;}
.cmw-faq-head h2{font-size:clamp(1.9rem,4.5vw,2.8rem);font-weight:800;color:#efc984;line-height:1.05;}
.cmw-faq-head h2 i{font-style:italic;font-weight:600;}
.cmw-faq-head p{margin-top:.7rem;color:rgba(255,255,255,.72);font-size:1.02rem;}
.cmw-faq-list{display:flex;flex-direction:column;gap:.7rem;}
.cmw-faq-item{border:1px solid rgba(239,201,132,.22);border-radius:14px;background:rgba(255,255,255,.03);overflow:hidden;}
.cmw-faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.3rem;font-weight:700;font-size:1.05rem;color:#f6e7c8;}
.cmw-faq-item summary::-webkit-details-marker{display:none;}
.cmw-faq-item summary:hover{color:#efc984;}
.cmw-faq-mark{position:relative;width:16px;height:16px;flex:none;}
.cmw-faq-mark::before,.cmw-faq-mark::after{content:"";position:absolute;background:#efc984;border-radius:2px;transition:transform .25s ease;}
.cmw-faq-mark::before{top:7px;left:0;width:16px;height:2px;}
.cmw-faq-mark::after{left:7px;top:0;width:2px;height:16px;}
.cmw-faq-item[open] .cmw-faq-mark::after{transform:scaleY(0);}
.cmw-faq-a{padding:0 1.3rem 1.2rem;color:rgba(255,255,255,.78);line-height:1.6;}


/* ============================================================
   PROGRAMMA (pagina /programma): ospiti, giornate, eventi,
   costi, modal di dettaglio. Portato dal tema WP di
   calabriamovie.it. Colori: rosso #cc3715 / oro #efc984.
   ============================================================ */
/* =========================================
   GENERIC INFO MODAL (DARK THEME)
   Based on .cmw-offsel-modal structure
   ========================================= */

.cmw-info-modal {position: fixed;
  inset: 0;
  z-index: 99999;
  /* Higher than sticky headers */
  display: none;
  align-items: center;
  justify-content: center;
  font-family: inherit;}
.cmw-info-modal.is-open {display: flex;
  opacity: 1;
  /* Ensure visibility if animated */}
.cmw-info-modal__backdrop {position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(5px);}
.cmw-info-modal__dialog {position: relative;
  z-index: 2;
  width: 90vw;
  max-width: 1100px;
  max-height: 90vh;
  background: #020617;
  border: 1px solid rgba(204, 55, 21, 0.3);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.9), 0 0 40px rgba(204, 55, 21, 0.08);
  display: flex;
  flex-direction: column;}
.cmw-info-modal__close {position: absolute;
  top: 1.5rem;
  right: 1.5rem;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border: none;
  cursor: pointer;
  z-index: 10;
  transition: all 0.2s ease;}
.cmw-info-modal__close:hover {background: #efc984;
  /* CMW Gold */
  color: #000;
  transform: rotate(90deg);}
.cmw-info-modal__inner {display: flex;
  flex-direction: row;
  height: 100%;
  overflow: hidden;}
/* LEFT COL (IMAGE) */
.cmw-info-modal__image-wrap {flex: 0 0 40%;
  background: #000;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;}
.cmw-info-modal__image-wrap img {width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  opacity: 1;}
/* RIGHT COL (TEXT) */
.cmw-info-modal__text {flex: 1;
  padding: 3rem;
  overflow-y: auto;
  color: #e5e5e5;}
.cmw-info-modal__title {font-size: 2.5rem;
  font-weight: 800;
  margin-bottom: 1.5rem;
  color: #fff;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: -0.02em;}
.cmw-info-modal__body {font-size: 1.1rem;
  line-height: 1.7;
  color: #d4d4d4;}
.cmw-info-modal__body p {margin-bottom: 1rem;}
.cmw-info-modal__body ul,
.cmw-info-modal__body ol {margin-left: 1.5rem;
  margin-bottom: 1.5rem;
  list-style-type: disc;}
.cmw-info-modal__body li {margin-bottom: 0.5rem;}
.cmw-info-modal__body strong {color: #fff;}
@keyframes cmw-modal-slide-up {
  from {
    transform: translateY(20px);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}
/* --- CMW Info Modal Trigger Styles --- */
.cmw-open-info-modal {cursor: pointer;
  transition: transform 0.3s ease, box-shadow 0.3s ease;}
.cmw-open-info-modal:hover {transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);}
/* Hide buttons inside the trigger block overlays */
/* Hide buttons inside the trigger block overlays */
.cmw-open-info-modal .wp-block-buttons,
.cmw-open-info-modal .wp-block-button,
.cmw-open-info-modal .cmw-modal-action-btn {display: none !important;}
/* Modal specific button styling override if needed */
.cmw-info-modal__buttons .wp-block-button__link {/* Ensure they look clickable in the modal */
  pointer-events: auto;}
.cmw-info-modal__header-image img {opacity: 1 !important;
  filter: none !important;}
/* =======================================================================
 * 3) PAGINA PROGRAMMA
 * ===================================================================== */
.cmw-prog-page {background: #050505; color: #fbe9c4;}
/* --- NAV STICKY --- */
/* Barra dei giorni: un blocco riconoscibile, non una riga di link sospesa.
   Nota: qui NON si può usare position:sticky, perché style.css imposta
   overflow-x:hidden su html e body per bloccare lo scroll orizzontale, e
   questo rende body un contenitore di scorrimento che annulla lo sticky. */
.cmw-prog-nav {background: rgba(239, 201, 132, 0.05);
  border-top: 1px solid rgba(239, 201, 132, 0.18);
  border-bottom: 1px solid rgba(239, 201, 132, 0.18);
  padding: 0;}
.cmw-prog-nav-inner {max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  overflow-x: auto;
  padding: 0.75rem 1rem;
  scrollbar-width: none;}
.cmw-prog-nav-inner::-webkit-scrollbar {display: none;}
.cmw-prog-nav-label {flex: 0 0 auto;
  margin-right: 0.4rem;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(251, 233, 196, 0.5);
  white-space: nowrap;}
.cmw-prog-nav-link {flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  color: #efc984;
  text-decoration: none;
  padding: 0.42rem 1rem;
  border-radius: 999px;
  border: 1px solid rgba(239, 201, 132, 0.45);
  background: rgba(239, 201, 132, 0.06);
  transition: background 0.18s ease, color 0.18s ease,
              border-color 0.18s ease, transform 0.18s ease;}
.cmw-prog-nav-day {font-weight: 700;
  text-transform: uppercase;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  line-height: 1.1;}
.cmw-prog-nav-date {font-size: 0.66rem;
  letter-spacing: 0.02em;
  opacity: 0.65;
  line-height: 1.1;
  white-space: nowrap;}
.cmw-prog-nav-link:hover,
.cmw-prog-nav-link:focus-visible {background: #cc3715;
  color: #fff;
  border-color: #efc984;
  transform: translateY(-1px);}
@media (max-width: 640px) {
.cmw-prog-nav-label {display: none;}
.cmw-prog-nav-date {display: none;}
.cmw-prog-nav-inner {padding: 0.6rem 0.9rem; gap: 0.4rem;}
}
/* --- GIORNI --- */
.cmw-prog-days {max-width: none;
  margin: 0;
  padding: 0;}
/* Bande full-width alternate nero/arancio */
.cmw-prog-day {padding: clamp(2.5rem, 6vw, 4.5rem) 1.25rem;
  /* Sotto l'header fisso (8vh, min 80px), altrimenti cliccando l'ancora il
     titolo del giorno finisce nascosto. */
  scroll-margin-top: max(96px, calc(8vh + 16px));}
.cmw-prog-day:nth-child(odd) {background: #cc3715;}
.cmw-prog-day:nth-child(even) {background: #050505;}
.cmw-prog-day-inner {max-width: 1120px;
  margin: 0 auto;}
.cmw-prog-day-head {display: flex;
  align-items: baseline;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.6rem;}
.cmw-prog-day-title {font-size: clamp(1.8rem, 4.5vw, 2.6rem);
  color: #efc984;
  font-style: italic;
  font-weight: 800;
  margin: 0;}
.cmw-prog-day-date {color: rgba(251, 233, 196, 0.7); font-size: 0.95rem;}
.cmw-prog-events {display: flex; flex-direction: column; gap: 1.1rem;}
.cmw-prog-event {display: grid;
  grid-template-columns: 140px 1fr;
  gap: 1.2rem;
  background: rgba(204, 55, 21, 0.07);
  border: 1px solid rgba(239, 201, 132, 0.16);
  border-left: 4px solid #cc3715;
  border-radius: 16px;
  padding: 1.2rem 1.4rem;
  transition: background 0.2s ease, border-color 0.2s ease;}
.cmw-prog-event:hover {background: rgba(204, 55, 21, 0.13);
  border-left-color: #efc984;}
@media (max-width: 620px) {
.cmw-prog-event {grid-template-columns: 1fr; gap: 0.6rem;}
}
.cmw-prog-event-when {display: flex; flex-direction: column; gap: 0.4rem;}
.cmw-prog-event-cat {color: rgba(251, 233, 196, 0.65);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  margin: 0 0 0.25rem;}
.cmw-prog-event-title {color: #fff;
  font-size: 1.3rem;
  font-style: italic;
  margin: 0 0 0.3rem;}
.cmw-prog-event-note {color: rgba(251, 233, 196, 0.8);
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0.1rem 0 0;}
.cmw-prog-films {list-style: none;
  margin: 0.8rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;}
.cmw-prog-films li {padding-left: 1rem; border-left: 2px solid rgba(239, 201, 132, 0.3);}
.cmw-prog-list {margin: 0.7rem 0 0; padding-left: 1.1rem; color: rgba(251, 233, 196, 0.8);}
.cmw-prog-list li {margin: 0.2rem 0;}
.cmw-prog-event-after {margin: 0.9rem 0 0;
  padding-top: 0.7rem;
  border-top: 1px dashed rgba(239, 201, 132, 0.25);
  color: rgba(251, 233, 196, 0.75);
  font-size: 0.9rem;
  font-style: italic;
  line-height: 1.5;}
/* --- CTA FINALE --- */
.cmw-prog-cta {text-align: center;
  padding: clamp(2.5rem, 6vw, 4.5rem) 1.25rem;
  background: #050505;}
.cmw-prog-cta h2 {color: #efc984;
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  margin: 0 0 1.4rem;}
.cmw-prog-cta-btn {display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: #efc984;
  color: #cc3715;
  padding: 0.9rem 2rem;
  border-radius: 999px;
  font-weight: 800;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, transform 0.18s ease;}
.cmw-prog-cta-btn {border: 1px solid transparent;
  text-transform: uppercase;}
.cmw-prog-cta-btn:hover {background: #cc3715;
  color: #ffffff;
  border-color: #ffffff;}
/* =======================================================================
 * 5) PROGRAMMA v2 · Ospiti scorrevoli, card eventi, modal
 * ===================================================================== */
.cmw-prog-section-head {text-align: center;
  max-width: 760px;
  margin: 0 auto clamp(1.6rem, 4vw, 2.6rem);
  padding-inline: 1.25rem;}
.cmw-prog-section-head h2 {font-size: clamp(1.8rem, 4.5vw, 2.8rem);
  color: #efc984;
  margin: 0 0 0.5rem;}
.cmw-prog-section-head h2 i {color: #fff;}
.cmw-prog-section-head p {color: rgba(251, 233, 196, 0.7);
  line-height: 1.55;
  margin: 0;}
/* --- OSPITI (riga scorrevole) --- */
.cmw-ospiti {background: #050505;
  padding: clamp(2.5rem, 6vw, 4.5rem) 0;}
.cmw-ospiti-row {display: flex;
  gap: 1.1rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 0.5rem clamp(1rem, 5vw, 4rem) 1.4rem;
  scrollbar-width: none;}
.cmw-ospiti-row::-webkit-scrollbar {display: none;}
.cmw-ospite-card {flex: 0 0 auto;
  width: clamp(160px, 22vw, 205px);
  scroll-snap-align: start;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  text-align: center; /* nome e ruolo centrati sotto il ritaglio tondo */
  color: inherit;
  font: inherit;}
/* I ritagli ospite arrivano già tondi e con il loro anello dorato su fondo
   trasparente: qui niente cornice, niente ombra, altrimenti si vedrebbe un
   riquadro attorno al cerchio. */
.cmw-ospite-card picture {display: block;
  background: transparent;
  border: 0;
  transition: transform 0.2s ease;}
.cmw-ospite-card img {display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: contain;}
.cmw-ospite-card:hover picture {transform: scale(1.04);}
/* La card è un trigger del modal: va annullato il sollevamento con ombra
   che style.css applica a .cmw-open-info-modal:hover. */
.cmw-ospite-card:hover {transform: none;
  box-shadow: none;}
.cmw-ospite-name {color: #efc984;
  font-weight: 700;
  margin: 0.7rem 0 0;
  font-size: 1rem;
  line-height: 1.2;}
.cmw-ospite-role {color: rgba(251, 233, 196, 0.6);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 0.15rem;}
/* --- EVENTI --------------------------------------------------------------
   Dalla 7ª edizione la giornata è una scaletta verticale (.cmw-prog-scaletta):
   card illustrate solo per il talk delle 18:30 e per la proiezione serale,
   riga singola per tutto il resto. Vedi in fondo al file.
   Le regole .cmw-events-grid / .cmw-event-plain qui sotto restano per le card
   ma la griglia a 3 colonne non è più usata dal template.
   ------------------------------------------------------------------------- */
.cmw-events-grid {display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2.4vw, 1.8rem);}
.cmw-event-card {position: relative;
  display: block;
  padding: 0;
  border: 3px solid rgba(239, 201, 132, 0.55);
  border-radius: 20px;
  overflow: hidden;
  background: transparent;
  cursor: pointer;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  text-align: left;
  color: inherit;
  font: inherit;}
.cmw-event-card:hover {border-color: #efc984;}
.cmw-event-figure {display: block;}
.cmw-event-figure img {display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;}
.cmw-event-time {position: absolute;
  top: 0.8rem;
  left: 0.8rem;
  z-index: 3;
  background: #efc984;
  color: #cc3715;
  font-weight: 800;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;}
/* Hint "Dettagli" che appare in hover (la grafica è già autosufficiente) */
.cmw-event-hint {position: absolute;
  bottom: 0.9rem;
  left: 50%;
  transform: translateX(-50%) translateY(10px);
  z-index: 4;
  background: rgba(239, 201, 132, 0.96);
  color: #cc3715;
  font-weight: 800;
  text-transform: uppercase;
  font-size: 0.74rem;
  letter-spacing: 0.06em;
  padding: 0.4rem 1rem;
  border-radius: 999px;
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
  pointer-events: none;}
.cmw-event-hint--plain {position: static; transform: none; align-self: flex-start; margin-top: 0.4rem; opacity: 0.85;}
.cmw-event-card:hover .cmw-event-hint {opacity: 1; transform: translateX(-50%) translateY(0);}
.cmw-event-card:hover .cmw-event-hint--plain {transform: none; opacity: 1;}
/* Card "disegnata" senza foto: crema su rosso */
.cmw-event-card--plain {background: #fbe9c4; border-color: rgba(204, 55, 21, 0.4);}
.cmw-event-card--plain .cmw-event-caption {display: none;}
.cmw-event-plain {display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.5rem;
  aspect-ratio: 4 / 5;
  padding: 1.6rem 1.3rem;}
.cmw-event-plain-cat {color: rgba(204, 55, 21, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;}
.cmw-event-plain-title {color: #cc3715;
  font-size: 1.55rem;
  font-weight: 800;
  font-style: italic;
  line-height: 1.05;}
.cmw-event-plain-venue {color: rgba(204, 55, 21, 0.85);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;}
/* Nav giorni: centrata */
.cmw-prog-nav-inner {justify-content: center;}
/* Dettagli dentro al modal (riusa .cmw-info-modal del tema) */
.cmw-modal-meta {color: #efc984; font-weight: 600; margin: 0 0 0.3rem;}
.cmw-modal-time {background: #efc984;
  color: #cc3715;
  padding: 0.15rem 0.55rem;
  border-radius: 999px;
  font-weight: 800;}
.cmw-modal-cat {text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  color: rgba(251, 233, 196, 0.65);
  margin: 0 0 0.6rem;}
.cmw-modal-films {list-style: none; padding: 0; margin: 0.6rem 0 0;}
.cmw-modal-films li {padding: 0.4rem 0; border-bottom: 1px solid rgba(239, 201, 132, 0.15);}
.cmw-modal-after {margin-top: 0.9rem;
  padding-top: 0.7rem;
  border-top: 1px dashed rgba(239, 201, 132, 0.25);
  font-style: italic;
  color: rgba(251, 233, 196, 0.8);}
/* Etichetta di sezione dentro al modal (National & International, Corto in Calabria…) */
.cmw-modal-filmslabel {margin: 1rem 0 0.2rem;
  color: #efc984;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.8rem;}
.cmw-modal-ospiti {margin-top: 0.9rem; color: rgba(251, 233, 196, 0.85);}
.cmw-modal-ospiti strong {color: #efc984;}
/* Card ospite senza foto: monogramma con iniziali.
   Tondo come i ritagli fotografici, altrimenti nella stessa fila
   convivrebbero cerchi e quadrati. */
.cmw-ospite-monogram {display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  border: 3px solid rgba(239, 201, 132, 0.55);
  background:
    radial-gradient(circle at 30% 22%, rgba(204, 55, 21, 0.4), rgba(5, 5, 5, 0.92));
  color: #efc984;
  font-size: clamp(2.4rem, 5.4vw, 3.1rem);
  font-weight: 800;
  letter-spacing: 0.02em;
  transition: border-color 0.2s ease, transform 0.2s ease;}
.cmw-ospite-card--plain:hover .cmw-ospite-monogram {border-color: #efc984;
  transform: scale(1.04);}
/* Sezione Costi e accesso */
.cmw-prog-info {background: #050505;
  padding: clamp(2.6rem, 6vw, 4.5rem) 0;}
.cmw-prog-info-inner {max-width: 980px;
  margin: 0 auto;
  padding: 0 clamp(1.2rem, 5vw, 3rem);}
.cmw-prog-price-grid {display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(0.9rem, 2vw, 1.4rem);
  margin-top: 1.8rem;}
/* Due sole tariffe (abbonamento ed evento singolo): niente terza colonna
   vuota, il blocco resta centrato e le card non si allargano a dismisura. */
.cmw-prog-price-grid--due {grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 680px;
  margin-inline: auto;}
@media (max-width: 720px) {
.cmw-prog-price-grid {grid-template-columns: 1fr; max-width: 380px; margin-inline: auto;}
}
.cmw-prog-price {display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 1.4rem 1.3rem;
  border: 2px solid rgba(239, 201, 132, 0.4);
  border-radius: 18px;
  background: rgba(239, 201, 132, 0.04);}
.cmw-prog-price--alt {border-style: dashed;}
.cmw-prog-price-val {color: #efc984;
  font-size: 2rem;
  font-weight: 800;
  line-height: 1;}
.cmw-prog-price-lbl {color: rgba(251, 233, 196, 0.75);
  font-size: 0.86rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;}
.cmw-prog-info-list {list-style: none;
  padding: 0;
  margin: 2rem 0 0;
  display: grid;
  gap: 0.7rem;}
.cmw-prog-info-list li {position: relative;
  padding-left: 1.4rem;
  color: rgba(251, 233, 196, 0.82);
  line-height: 1.55;}
.cmw-prog-info-list li::before {content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #cc3715;}
.cmw-prog-info-list strong {color: #efc984; font-weight: 700;}
/* ==========================================================================
   SCALETTA DELLA GIORNATA · 7ª edizione
   Ordine cronologico. Riga singola per Industry Club, seminari, class,
   Cinekids e musica; card illustrata per il talk delle 18:30 e la proiezione.
   ========================================================================== */

.cmw-prog-scaletta {display: flex;
  flex-direction: column;
  gap: 0;}
/* --- Riga singola --------------------------------------------------------- */

.cmw-event-riga {display: grid;
  grid-template-columns: 5.6rem minmax(0, 1fr) auto auto;
  align-items: baseline;
  gap: clamp(0.8rem, 2vw, 1.6rem);
  width: 100%;
  padding: 1.05rem 0.6rem;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(239, 201, 132, 0.22);
  cursor: pointer;
  text-align: left;
  color: inherit;
  font: inherit;
  transition: transform 0.18s ease;}
/* Solo scorrimento laterale: niente fondini, niente ombre.
   Serve annullare esplicitamente .cmw-open-info-modal:hover di style.css, che
   su ogni trigger del modal mette translateY(-5px) e una box-shadow. */
.cmw-event-riga:hover,
.cmw-event-riga:focus-visible {transform: translateX(10px);
  box-shadow: none;
  background: transparent;}
.cmw-event-riga-ora {font-weight: 800;
  font-size: 0.95rem;
  color: #efc984;
  letter-spacing: 0.02em;
  white-space: nowrap;}
.cmw-event-riga-corpo {display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;}
.cmw-event-riga-titolo {font-weight: 700;
  font-size: 1.02rem;
  line-height: 1.3;
  color: #fffdf8;}
.cmw-event-riga-cat {font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(239, 201, 132, 0.75);}
.cmw-event-riga-luogo {font-size: 0.84rem;
  color: rgba(255, 253, 248, 0.6);
  text-align: right;
  white-space: nowrap;}
.cmw-event-riga-piu {font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #efc984;
  opacity: 0;
  transition: opacity 0.2s ease;
  white-space: nowrap;}
.cmw-event-riga:hover .cmw-event-riga-piu,
.cmw-event-riga:focus-visible .cmw-event-riga-piu {opacity: 1;}
/* --- Card illustrata dentro la scaletta ----------------------------------- */

/* Nella scaletta la card condivide la colonna dell'ora con le righe, così la
   giornata si legge come un'unica timeline. Il bordo e l'ombra della card
   restano quelli definiti più in alto. */
.cmw-prog-scaletta .cmw-event-card {display: grid;
  grid-template-columns: 5.6rem minmax(0, 1fr);
  align-items: start;
  gap: clamp(0.8rem, 2vw, 1.6rem);
  width: 100%;
  max-width: none;
  margin: 0.6rem 0 1.4rem;
  padding: 0.4rem 0.6rem 0;
  border: 0;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;}
/* Il bottone è solo un contenitore: la cornice e il sollevamento stanno sulla
   figura, quindi qui si annulla l'effetto globale di .cmw-open-info-modal. */
.cmw-prog-scaletta .cmw-event-card:hover {border: 0;
  transform: none;
  box-shadow: none;}
.cmw-event-card-ora {font-weight: 800;
  font-size: 0.95rem;
  color: #efc984;
  letter-spacing: 0.02em;
  white-space: nowrap;
  padding-top: 0.5rem;}
/* La cornice sta sulla figura, non più sul bottone. */
.cmw-event-card-figura {position: relative;
  display: block;
  width: 100%;
  max-width: 320px;
  border: 3px solid rgba(239, 201, 132, 0.55);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.3);
  transition: border-color 0.25s ease, transform 0.25s ease;}
.cmw-prog-scaletta .cmw-event-card:hover .cmw-event-card-figura {border-color: #efc984;
  transform: translateY(-4px);}
@media (max-width: 640px) {
.cmw-prog-scaletta .cmw-event-card {grid-template-columns: 4.4rem minmax(0, 1fr);
    padding: 0.4rem 0.4rem 0;}
.cmw-event-card-figura {max-width: 100%;}
}
@media (max-width: 640px) {
.cmw-event-riga {grid-template-columns: 4.4rem minmax(0, 1fr);
    row-gap: 0.35rem;
    padding: 0.95rem 0.4rem;}
/* Luogo sotto al titolo, allineato alla colonna del testo. */
  .cmw-event-riga-luogo {grid-column: 2;
    text-align: left;
    white-space: normal;}
/* Su touch l'hint in hover non ha senso. */
  .cmw-event-riga-piu {display: none;}
/* Su touch lo scorrimento in hover non serve. */
  .cmw-event-riga:hover {transform: none;}
.cmw-prog-scaletta .cmw-event-card {max-width: 300px;}
}
/* ==========================================================================
   MODAL · ritratti ritagliati
   I ritratti ospite sono PNG tondi su fondo trasparente. La colonna immagine
   del modal è pensata per le locandine rettangolari (fondo nero, object-fit
   cover, immagine a filo): su un ritaglio quel fondo si vedrebbe come un
   riquadro nero attorno al cerchio. Qui la colonna diventa trasparente, così
   mostra il #020617 del pannello, e il ritaglio prende aria attorno.
   ========================================================================== */

.cmw-info-modal.has-ritaglio .cmw-info-modal__image-wrap {background: transparent;
  padding: clamp(1.6rem, 3.5vw, 3rem);
  align-items: center;}
.cmw-info-modal.has-ritaglio .cmw-info-modal__image-wrap img {width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  object-position: center;}
@media (max-width: 900px) {
.cmw-info-modal.has-ritaglio .cmw-info-modal__image-wrap {padding: 1.4rem 1.4rem 0;
    min-height: 0;}
}
/* ============================================================
   HOME -> PROGRAMMA: bottoni di rimando alla pagina /programma
   (CTA nell'hero, voce in testata, banda dedicata).
   ============================================================ */

/* Bottone secondario "Vedi il programma" sotto il titolo dell'hero (fondo rosso). */
.cmw-tickets-hero-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0.4rem auto 0;
  padding: 0.7rem 1.6rem;
  border-radius: 999px;
  border: 1px solid rgba(239, 201, 132, 0.55);
  background: rgba(239, 201, 132, 0.08);
  color: #efc984;
  font-weight: 700;
  text-decoration: none;
  letter-spacing: 0.02em;
  transition: background 0.2s ease, color 0.2s ease, transform 0.18s ease;
}
.cmw-tickets-hero-cta:hover,
.cmw-tickets-hero-cta:focus-visible {
  background: #efc984;
  color: #cc3715;
  transform: translateY(-1px);
}

/* Link "Programma" nella testata, accanto a "Torna alla home". */
.cmw-header-link {
  color: #efc984;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.02em;
  padding: 0.4rem 0.6rem;
  margin-left: auto;
  margin-right: 0.4rem;
  white-space: nowrap;
  transition: color 0.18s ease, opacity 0.18s ease;
}
.cmw-header-link:hover,
.cmw-header-link:focus-visible { opacity: 0.75; }
@media (max-width: 480px) {
  .cmw-header-link { display: none; }
}

/* Banda "Scopri il programma" (blocco program-cta), full-width. */
.cmw-program-band {
  background: #050505;
  border-top: 1px solid rgba(239, 201, 132, 0.18);
  border-bottom: 1px solid rgba(239, 201, 132, 0.18);
  padding: clamp(2.6rem, 6vw, 4.2rem) 1.25rem;
  text-align: center;
}
.cmw-program-band-inner { max-width: 760px; margin: 0 auto; }
.cmw-program-band-eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: rgba(251, 233, 196, 0.6);
  font-size: 0.72rem;
  font-weight: 700;
  margin: 0 0 0.5rem;
}
.cmw-program-band-title {
  color: #efc984;
  font-size: clamp(1.8rem, 4.5vw, 2.8rem);
  font-weight: 800;
  line-height: 1.05;
  margin: 0 0 0.9rem;
}
.cmw-program-band-title i { color: #fff; font-style: italic; }
.cmw-program-band-text {
  color: rgba(255, 255, 255, 0.82);
  font-size: 1.02rem;
  line-height: 1.55;
  max-width: 56ch;
  margin: 0 auto 1.5rem;
}
.cmw-program-band-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  background: #efc984;
  color: #cc3715;
  padding: 0.9rem 2rem;
  border-radius: 999px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.18s ease;
}
.cmw-program-band-btn:hover,
.cmw-program-band-btn:focus-visible {
  background: #cc3715;
  color: #fff;
  border-color: #efc984;
  transform: translateY(-1px);
}

/* Bottone di acquisto per singola serata dentro la pagina programma. */
.cmw-prog-day-buy { margin-top: 1.6rem; }
.cmw-prog-day-buy-btn { text-transform: uppercase; letter-spacing: 0.02em; }
/* Su mobile il bottone "Acquista il Day N" va centrato. */
@media (max-width: 640px) {
  .cmw-prog-day-buy { text-align: center; }
  .cmw-prog-day-buy-btn { width: 100%; max-width: 22rem; justify-content: center; }
}

/* ============================================================
   MODAL programma: altezza FISSA uguale per tutti, immagine
   SEMPRE intera a sinistra (object-fit:contain), testo che
   scorre solo a destra. Ultimo blocco: vince sui duplicati.
   ============================================================ */
.cmw-info-modal__dialog {
  height: min(86vh, 640px);
  max-height: 86vh;
}
.cmw-info-modal__inner {
  flex-direction: row;
  height: 100%;
  overflow: hidden;
}
.cmw-info-modal__image-wrap {
  flex: 0 0 42%;
  height: 100%;
  background: #020617;
  padding: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.cmw-info-modal__image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.cmw-info-modal__text {
  flex: 1;
  height: 100%;
  overflow-y: auto;
}
/* Ritratto ospite (ritaglio tondo): centrato e contenuto. */
.cmw-info-modal.has-ritaglio .cmw-info-modal__image-wrap { background: #020617; }
.cmw-info-modal.has-ritaglio .cmw-info-modal__image-wrap img {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
/* Mobile: impila (immagine sopra a altezza fissa, testo sotto che scorre). */
@media (max-width: 720px) {
  .cmw-info-modal__dialog { height: min(90vh, 620px); width: 94vw; }
  .cmw-info-modal__inner { flex-direction: column; }
  .cmw-info-modal__image-wrap { flex: 0 0 44%; width: 100%; height: 44%; }
  .cmw-info-modal__text { width: 100%; height: 56%; padding: 1.6rem; }
}

/* ============================================================
   CARD OSPITI / GIURIA (grafiche verticali 4:5): riga scorrevole
   in cima (Grand Jury) e dentro ogni giornata (ospiti della serata).
   Cliccando la card si apre il popup dell'evento collegato.
   ============================================================ */
.cmw-jury {
  padding: clamp(2.5rem, 6vw, 4rem) 0;
  background: #050505;
}
.cmw-jury .cmw-prog-section-head { padding: 0 1.25rem; }
.cmw-guestcards-viewport { max-width: 1200px; margin: 1.4rem auto 0; }
.cmw-guestcards-row {
  display: flex;
  gap: 0.9rem;
  overflow-x: auto;
  padding: 0.5rem 1.25rem 0.8rem;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
}
.cmw-guestcards-row::-webkit-scrollbar { display: none; }
.cmw-guestcard {
  flex: 0 0 auto;
  width: clamp(150px, 44vw, 220px);
  aspect-ratio: 4 / 5;
  border: none;
  padding: 0;
  margin: 0;
  background: #1a1a1a;
  border-radius: 16px;
  overflow: hidden;
  position: relative;
  cursor: pointer;
  display: block;
  text-decoration: none;
  color: inherit;
  scroll-snap-align: start;
  box-shadow: none;
}
/* Card statiche (giuria + ospiti di giornata): solo immagini, niente
   ombra (sbava sulla riga sotto), niente hover, niente movimento. */
.cmw-guestcard--static {
  cursor: default;
  box-shadow: none;
  transition: none;
}
.cmw-guestcard--static:hover,
.cmw-guestcard--static:focus-visible {
  transform: none;
  box-shadow: none;
}
.cmw-guestcard--static .cmw-guestcard-hint { display: none; }
/* Ancora evento: non finire sotto l'header fisso quando si scorre da una card. */
.cmw-event-riga, .cmw-event-card { scroll-margin-top: max(96px, calc(8vh + 24px)); }
.cmw-guestcard img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cmw-guestcard-hint {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 1.1rem 0.5rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #fff;
  text-align: center;
  background: linear-gradient(to top, rgba(204, 55, 21, 0.95), rgba(204, 55, 21, 0));
  opacity: 0;
  transition: opacity 0.2s ease;
}
.cmw-guestcard:hover,
.cmw-guestcard:focus-visible { transform: none; box-shadow: none; outline: none; }
.cmw-guestcard:hover .cmw-guestcard-hint,
.cmw-guestcard:focus-visible .cmw-guestcard-hint { opacity: 1; }
/* Etichetta sopra ogni riga di card (Grand Jury / Gli ospiti). */
.cmw-guestcards-sublabel {
  max-width: 1200px;
  margin: 0.2rem auto 0;
  padding: 0 1.4rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(251, 233, 196, 0.55);
}

/* Card ospiti dentro la giornata */
.cmw-day-guests { margin: 1.8rem 0 0.4rem; max-width: none; }
.cmw-day-guests-label {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: rgba(251, 233, 196, 0.55);
  margin: 0 0 0.3rem;
  padding: 0 0.15rem;
}
.cmw-day-guests .cmw-guestcards-row { padding-left: 0; padding-right: 0; }
.cmw-day-guests .cmw-guestcard { width: clamp(140px, 40vw, 188px); }

/* ============================================================
   ETICHETTA ACCESSO evento (Gratuito / A pagamento / Selezionati…).
   ============================================================ */
.cmw-event-access {
  display: inline-block;
  align-self: flex-start;
  margin-top: 0.35rem;
  padding: 0.2rem 0.62rem;
  border-radius: 999px;
  font-size: 0.64rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border: 1px solid rgba(239, 201, 132, 0.5);
  color: #efc984;
  background: rgba(0, 0, 0, 0.28);
  white-space: nowrap;
  line-height: 1.3;
}
.cmw-event-access--free {
  background: #efc984;
  color: #cc3715;
  border-color: #efc984;
}
/* Sulla card: badge accesso sovrapposto al poster, in alto a sinistra. */
.cmw-event-access--card {
  position: absolute;
  top: 0.55rem;
  left: 0.55rem;
  z-index: 3;
  margin: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
}
/* Nel modal. */
.cmw-modal-access { margin: 0 0 0.9rem; }
.cmw-modal-access .cmw-event-access { margin: 0; font-size: 0.7rem; }

/* Card a monogramma (madrina, senza foto): iniziali nel cerchio + nome. */
.cmw-guestcard--mono {
  background: #141414;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  padding: 1rem;
  text-align: center;
}
.cmw-guestcard-mono {
  width: 46%;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 2px solid #efc984;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(1.6rem, 5vw, 2.1rem);
  font-weight: 800;
  color: #efc984;
}
.cmw-guestcard-mono-name {
  color: #fff;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.3;
}
.cmw-guestcard-mono-name em {
  display: block;
  color: rgba(251, 233, 196, 0.6);
  font-style: normal;
  font-weight: 600;
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-top: 0.2rem;
}

/* blocco override nav */
.cmw-header.cmw-header-minisite{
  background: transparent !important;
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 0 !important;
}

.cmw-header.cmw-header-minisite .cmw-header-inner{
  background: transparent !important;
  box-shadow: none !important;
}

/* blocco override signup */
.cmw-signup-card {
  padding-bottom: calc(var(--cmw-sub-gap, 2rem) - 1rem) !important;
}

.cmw-signup-btn {
  margin-bottom: 0 !important;
}
.gm-langnav{position:fixed;bottom:16px;right:16px;z-index:2147482000;display:flex;gap:2px;padding:3px;border-radius:999px;background:rgba(20,20,20,.82);box-shadow:0 4px 16px rgba(0,0,0,.22);font-family:system-ui,-apple-system,sans-serif;font-size:12px;font-weight:600}.gm-langnav a,.gm-langnav span{display:inline-block;padding:4px 10px;border-radius:999px;text-decoration:none;text-transform:uppercase;letter-spacing:.04em;color:#fff;opacity:.65}.gm-langnav a:hover{opacity:1}.gm-langnav [aria-current]{background:#fff;color:#111;opacity:1}