/* STILLA brand assets — fonts, tokens, component styles for stilla-core shortcodes */

@font-face {
  font-family: 'Rhetorik Sans';
  src: url('fonts/RhetorikSans-Light.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Rhetorik Sans';
  src: url('fonts/RhetorikSans-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --stilla-viola: #482E91;
  --stilla-crema: #FFFCDF;
  --stilla-arancio: #F2623E;
  --stilla-lilla: #C395AF;
  --stilla-lime: #DFE932;
  --stilla-radius: 16px;
  --stilla-radius-sm: 8px;
  --stilla-font: 'Rhetorik Sans', 'Helvetica Neue', Arial, sans-serif;
}

/* ---- shared atoms ---- */
.stilla-btn {
  display: inline-block;
  font-family: var(--stilla-font);
  font-weight: 400;
  font-size: 20px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 12px 32px;
  border-radius: 999px;
  text-decoration: none;
  text-align: center;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.stilla-btn:hover { transform: translateY(-1px); }
.stilla-btn--lime { background: var(--stilla-lime); color: var(--stilla-viola); }
.stilla-btn--viola { background: var(--stilla-viola); color: var(--stilla-crema); }
.stilla-tag {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--stilla-crema);
  background: var(--stilla-viola);
  border-radius: 999px;
  padding: 4px 14px;
}

/* ---- scheda corso (sidebar card) ---- */
.stilla-scheda {
  background: var(--stilla-crema);
  border: 1px solid var(--stilla-viola);
  border-radius: var(--stilla-radius);
  padding: 24px;
  color: var(--stilla-viola);
  font-family: var(--stilla-font);
}
.stilla-scheda__prezzo {
  font-size: 44px;
  border-bottom: 1px solid var(--stilla-viola);
  padding-bottom: 12px;
  margin-bottom: 16px;
}
.stilla-scheda__rows { list-style: none; margin: 0 0 16px; padding: 0; }
.stilla-scheda__rows li { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 10px; font-size: 19px; }
.stilla-scheda__rows svg { width: 20px; height: 20px; flex: none; margin-top: 1px; }
.stilla-scheda__ecm {
  border: 1px solid var(--stilla-viola);
  border-radius: var(--stilla-radius-sm);
  padding: 10px 14px;
  font-size: 13px;
  margin-bottom: 18px;
  display: flex;
  flex-direction: column;
}
.stilla-scheda .stilla-btn { width: 100%; }

/* ---- promo box ---- */
.stilla-promo {
  background: var(--stilla-viola);
  border-radius: var(--stilla-radius);
  color: var(--stilla-crema);
  padding: 24px;
  font-family: var(--stilla-font);
}
.stilla-promo__label { font-size: 14px; letter-spacing: 0.08em; text-transform: uppercase; }
.stilla-promo__testo { font-size: 28px; line-height: 1.2; margin: 8px 0 16px; }

/* ---- programma ---- */
.stilla-programma { display: flex; flex-direction: column; gap: 20px; }
.stilla-programma__giorno {
  background: var(--stilla-viola);
  color: var(--stilla-crema);
  border-radius: var(--stilla-radius);
  padding: 28px 32px;
  font-family: var(--stilla-font);
}
.stilla-programma__giorno h3 { color: var(--stilla-crema); font-weight: 400; font-size: 28px; margin: 0 0 12px; }
.stilla-programma__giorno ul { margin: 0; padding-left: 20px; }
.stilla-programma__giorno li { font-size: 15px; font-weight: 300; margin-bottom: 6px; }

/* ---- docenti ---- */
.stilla-docenti { display: flex; flex-direction: column; gap: 20px; }
.stilla-docente {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  background: #FFFFFF66;
  border: 1px solid var(--stilla-viola);
  border-radius: var(--stilla-radius);
  padding: 20px;
  font-family: var(--stilla-font);
  color: var(--stilla-viola);
}
.stilla-docente img { width: 180px; height: 180px; object-fit: cover; border-radius: 12px !important; flex: none; }
.stilla-docente__testo h3 { margin: 0 0 8px; font-size: 30px; font-weight: 400; color: var(--stilla-viola); }
.stilla-docente__testo p { margin: 0; font-size: 20px; font-weight: 300; line-height: 1.5; }

/* ---- testimonianze ---- */
.stilla-testimonianze { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.stilla-testimonianza {
  background: var(--stilla-lilla);
  border-radius: var(--stilla-radius);
  padding: 24px;
  margin: 0;
  color: var(--stilla-viola);
  font-family: var(--stilla-font);
}
.stilla-testimonianza p { font-size: 14px; font-weight: 300; line-height: 1.6; margin: 0 0 16px; }
.stilla-testimonianza cite { font-style: normal; font-size: 14px; }

/* ---- FAQ ---- */
.stilla-faq { display: flex; flex-direction: column; gap: 14px; font-family: var(--stilla-font); }
.stilla-faq__item {
  background: var(--stilla-lime);
  border-radius: var(--stilla-radius-sm);
  overflow: hidden;
}
.stilla-faq__q {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  background: none;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--stilla-font);
  font-size: 16px;
  color: var(--stilla-viola);
  padding: 18px 22px;
}
.stilla-faq__chevron {
  width: 10px; height: 10px; flex: none;
  border-right: 2px solid var(--stilla-viola);
  border-bottom: 2px solid var(--stilla-viola);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
.stilla-faq__item--open .stilla-faq__chevron { transform: rotate(-135deg); }
.stilla-faq__a { display: none; padding: 0 22px 18px; color: var(--stilla-viola); font-weight: 300; font-size: 14px; line-height: 1.6; }
.stilla-faq__item--open .stilla-faq__a { display: block; }

/* ---- riserva il tuo posto ---- */
.stilla-riserva {
  background: var(--stilla-viola);
  border-radius: var(--stilla-radius);
  color: var(--stilla-crema);
  padding: 48px;
  text-align: center;
  font-family: var(--stilla-font);
}
.stilla-riserva h2 { color: var(--stilla-crema); font-weight: 300; font-size: 36px; margin: 0 0 8px; }
.stilla-riserva__sub { font-weight: 300; font-size: 27px; margin: 0 0 28px; }
.stilla-riserva__steps { display: flex; gap: 20px; justify-content: center; flex-wrap: wrap; margin-bottom: 28px; }
.stilla-riserva__step {
  border: 1px solid var(--stilla-crema);
  border-radius: var(--stilla-radius-sm);
  padding: 20px 28px;
  min-width: 220px;
  text-align: left;
}
.stilla-riserva__step span { font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; }
.stilla-riserva__step h3 { color: var(--stilla-crema); font-weight: 400; font-size: 22px; margin: 6px 0; }
.stilla-riserva__step p { font-weight: 300; font-size: 13px; margin: 0; }
.stilla-riserva__tt { background: #FFFFFF; border-radius: var(--stilla-radius-sm); padding: 8px; }
.stilla-riserva__note { font-weight: 300; font-size: 12px; margin: 20px 0 0; opacity: 0.85; }
.stilla-soldout { padding: 20px; }

/* ---- aggiornamenti ---- */
.stilla-agg__card {
  font-family: var(--stilla-font);
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 32px;
  align-items: stretch;
  background: var(--stilla-crema);
  border: 1px solid var(--stilla-viola);
  border-radius: var(--stilla-radius);
  padding: 14px 32px 14px 14px;
}
.stilla-agg__card + .stilla-agg__card { margin-top: 24px; }
.stilla-agg__card img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--stilla-radius-sm) !important; display: block; }
.stilla-agg__testo h3 { color: var(--stilla-viola); font-weight: 400; font-size: 30px; margin: 12px 0; }
.stilla-agg__testo p { color: var(--stilla-viola); font-weight: 300; font-size: 19px; margin: 0 0 20px; }

/* ---- gallery ---- */
.stilla-gallery {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  border-radius: var(--stilla-radius);
}
.stilla-gallery img {
  height: 380px;
  border-radius: var(--stilla-radius);
  scroll-snap-align: start;
  flex: none;
  max-width: 85%;
  object-fit: cover;
}

@media (max-width: 767px) {
  .stilla-riserva { padding: 32px 20px; }
  .stilla-agg__card { grid-template-columns: 1fr; }
  .stilla-gallery img { height: 240px; }
}

/* ---- corsi grid/list ---- */
.stilla-filtri { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 28px; font-family: var(--stilla-font); }
.stilla-filtro {
  font-family: var(--stilla-font);
  font-size: 20px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--stilla-viola);
  background: transparent;
  border: 1px solid var(--stilla-viola);
  border-radius: 999px;
  padding: 8px 22px;
  cursor: pointer;
}
.stilla-filtro--active { background: var(--stilla-viola); color: var(--stilla-crema); }
.stilla-pill {
  display: inline-block;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--stilla-viola);
  border: 1px solid var(--stilla-viola);
  border-radius: 999px;
  padding: 4px 16px;
}
.stilla-chip {
  display: inline-block;
  font-size: 12px;
  color: var(--stilla-viola);
  border: 1px solid var(--stilla-viola);
  border-radius: 6px;
  padding: 4px 10px;
}
.stilla-corsi { display: grid; gap: 24px; font-family: var(--stilla-font); }
.stilla-corsi--card { grid-template-columns: repeat(3, 1fr); }
.stilla-corsi--list { grid-template-columns: 1fr; }
.stilla-corso-card {
  background: var(--stilla-crema);
  border: 1px solid var(--stilla-viola);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 14px;
}
.stilla-corso-card--master { background: var(--stilla-lime); }
.stilla-corso-card__media { position: relative; }
.stilla-corso-card__media img { width: 100%; height: 220px; object-fit: cover; display: block; border-radius: var(--stilla-radius-sm) !important; }
.stilla-corso-card__badge { position: absolute; top: 14px; right: 14px; z-index: 2; }
.stilla-corso-card__body { padding: 16px 6px 6px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.stilla-corso-card__tags { display: flex; gap: 8px; }
.stilla-corso-card__title { margin: 0; font-size: 26px; font-weight: 400; line-height: 1.25; }
.stilla-corso-card__title a { color: var(--stilla-viola); text-decoration: none; }
.stilla-corso-card__docenti { margin: 0; font-size: 16px; font-weight: 300; color: var(--stilla-viola); }
.stilla-corso-card__meta { display: flex; gap: 18px; font-size: 15px; color: var(--stilla-viola); }
.stilla-corso-card__meta span { display: inline-flex; align-items: center; gap: 6px; }
.stilla-corso-card__meta svg { width: 16px; height: 16px; }
.stilla-corso-card__prezzo-row { display: flex; justify-content: space-between; align-items: center; margin-top: auto; }
.stilla-corso-card__prezzo { font-size: 24px; color: var(--stilla-viola); }
.stilla-corso-card__cta { margin-top: 6px; }

/* list layout: image left, body right */
.stilla-corsi--list .stilla-corso-card { flex-direction: row; border-radius: 16px; }
.stilla-corsi--list .stilla-corso-card__media { width: 38%; flex: none; }
.stilla-corsi--list .stilla-corso-card__media img { height: 100%; min-height: 280px; }
.stilla-corsi--list .stilla-corso-card__body { padding: 14px 20px 14px 28px; }
.stilla-corsi--list .stilla-corso-card__title { font-size: 30px; }
.stilla-corsi--list .stilla-corso-card__docenti { font-size: 19px; }
.stilla-corsi--list .stilla-corso-card__meta { font-size: 19px; }
.stilla-corsi--list .stilla-corso-card__prezzo { font-size: 28px; }
.stilla-corsi--list .stilla-corso-card__cta { align-self: flex-end; min-width: 220px; }

@media (max-width: 1023px) {
  .stilla-corsi--card { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  .stilla-corsi--card { grid-template-columns: 1fr; }
  .stilla-corsi--list .stilla-corso-card { flex-direction: column; }
  .stilla-corsi--list .stilla-corso-card__media { width: 100%; }
  .stilla-corsi--list .stilla-corso-card__media img { min-height: 200px; height: 200px; }
}

/* stat shapes (numero dentro forma) */
.stilla-stat { display: flex; align-items: center; gap: 18px; font-family: var(--stilla-font); }
.stilla-stat__shape {
  width: 150px; height: 130px; flex: none;
  background-size: contain; background-repeat: no-repeat; background-position: center;
  display: flex; align-items: center; justify-content: center;
  color: var(--stilla-viola); font-size: 44px; font-weight: 300;
}
.stilla-stat__label { font-size: 30px; color: var(--stilla-viola); font-weight: 300; line-height: 1.3; }

/* swiper containment (Elementor image-carousel senza CSS swiper caricato) */
.elementor-image-carousel-wrapper { overflow: hidden !important; }
.elementor-image-carousel .swiper-slide img { width: 100%; height: 420px; object-fit: cover; border-radius: 16px; }

/* width utilities for Elementor child containers */
.st-w18 { width: 18% !important; flex: 0 0 18% !important; }
.st-w22 { width: 22% !important; flex: 0 0 22% !important; }
.st-w32 { width: 32% !important; flex: 0 0 32% !important; }
.st-w33 { width: 32.5% !important; flex: 0 0 32.5% !important; }
.st-w44 { width: 44% !important; flex: 0 0 44% !important; }
.st-w52 { width: 52% !important; flex: 0 0 52% !important; }
.st-w66 { width: 66% !important; flex: 0 0 66% !important; }
@media (max-width: 767px) {
  .st-w18, .st-w22, .st-w32, .st-w33, .st-w44, .st-w52, .st-w66 { width: 100% !important; flex: 1 1 100% !important; }
}

/* le email lunghe nei testi vanno a capo invece di sforare */
.elementor-widget-text-editor a[href^="mailto:"] { overflow-wrap: anywhere; }

/* About, riga fondatori su tablet: testo full width, le due card affiancate sotto
   (i figli stanno dentro .e-con-inner → selettori discendenti) */
@media (min-width: 768px) and (max-width: 1024px) {
  .st-founders-row, .st-founders-row > .e-con-inner { flex-wrap: wrap !important; }
  .st-founders-row .st-w22 { width: 100% !important; flex: 1 1 100% !important; }
  .st-founders-row .st-w33 { width: calc(50% - 12px) !important; flex: 0 0 calc(50% - 12px) !important; }
}

/* ---- news cards (orizzontali) ---- */
.stilla-news { display: grid; grid-template-columns: 1fr; gap: 24px; font-family: var(--stilla-font); }
.stilla-news-card { display: flex; flex-direction: row; background: var(--stilla-crema); border: 1px solid var(--stilla-viola); border-radius: 16px; overflow: hidden; padding: 14px; }
.stilla-news-card__media { width: 40%; flex: none; }
.stilla-news-card__media img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; display: block; border-radius: var(--stilla-radius-sm) !important; }
.stilla-news-card__body { padding: 12px 18px 12px 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.stilla-news-card__title { margin: 0; font-size: 30px; font-weight: 400; }
.stilla-news-card__title a { color: var(--stilla-viola); text-decoration: none; }
.stilla-news-card__excerpt { margin: 0; font-size: 19px; line-height: 1.35; font-weight: 300; color: var(--stilla-viola); }
.stilla-news-card__body .stilla-btn { margin-top: auto; min-width: 200px; }
@media (max-width: 767px) {
  .stilla-news-card { flex-direction: column; }
  .stilla-news-card__media { width: 100%; }
}

/* ---- percorso steps (about) ---- */
.stilla-step { text-align: left; font-family: var(--stilla-font); color: var(--stilla-viola); }
.stilla-step__num {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--stilla-lilla); color: var(--stilla-viola);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 24px; margin-bottom: 12px;
}
.stilla-step h4 { font-weight: 400; font-size: 32px; margin: 0 0 8px; color: var(--stilla-viola); }
.stilla-step p { font-weight: 300; font-size: 20px; line-height: 1.5; margin: 0; }

/* ---- valori list (about, su card arancio) ---- */
.stilla-valori { color: var(--stilla-crema); font-family: var(--stilla-font); }
.stilla-valori h4 { color: var(--stilla-crema); font-size: 18px; font-weight: 400; margin: 0 0 2px; }
.stilla-valori p { font-weight: 300; font-size: 13px; margin: 0 0 14px; }

/* override kit global link/button styles inside our components */
a.stilla-btn--viola, .stilla-btn--viola { color: var(--stilla-crema) !important; background: var(--stilla-viola) !important; }
a.stilla-btn--lime, .stilla-btn--lime { color: var(--stilla-viola) !important; background: var(--stilla-lime) !important; }
button.stilla-faq__q, .stilla-faq__q {
  background: none !important;
  color: var(--stilla-viola) !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 18px 22px !important;
  width: 100% !important;
  font-size: 16px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  display: flex !important;
  justify-content: space-between !important;
}
button.stilla-filtro, .stilla-filtro {
  background: transparent !important;
  color: var(--stilla-viola) !important;
  border: 1px solid var(--stilla-viola) !important;
  border-radius: 999px !important;
  padding: 8px 22px !important;
  font-size: 13px !important;
}
button.stilla-filtro--active, .stilla-filtro--active { background: var(--stilla-viola) !important; color: var(--stilla-crema) !important; }

/* ---- card interamente cliccabile ---- */
.stilla-corso-card, .stilla-news-card { position: relative; }
.stilla-card-link { position: absolute; inset: 0; z-index: 1; }
.stilla-corso-card .stilla-btn, .stilla-news-card .stilla-btn,
.stilla-corso-card__title a, .stilla-news-card__title a { position: relative; z-index: 2; }

/* ---- overlay checkout Ticket Tailor ---- */
.stilla-tt-overlay {
  position: fixed; inset: 0; width: 100%; height: 100%;
  z-index: 999999; background: rgba(20, 10, 60, 0.6);
  display: flex; align-items: center; justify-content: center;
}
.stilla-tt-frame {
  width: 85%;
  max-width: 1160px;
  height: 90vh;
  border: 0;
  border-radius: 16px;
}
@media (max-width: 767px) {
  .stilla-tt-frame { width: 94%; height: 94vh; border-radius: 12px; }
}
body.stilla-tt-open { overflow: hidden; }
.stilla-riserva__cta { display: flex; justify-content: center; margin-top: 8px; }
.stilla-riserva__cta .stilla-btn { min-width: 260px; }

/* ---- news: variante a card verticali (correlate singola news) ---- */
.stilla-news--card { grid-template-columns: repeat(2, 1fr); }
.stilla-news-card--v { flex-direction: column; }
.stilla-news-card--v .stilla-news-card__media { width: 100%; }
.stilla-news-card--v .stilla-news-card__media img { min-height: 220px; height: 220px; }
.stilla-news-card--v .stilla-news-card__body { padding: 16px 6px 6px; }
@media (max-width: 767px) { .stilla-news--card { grid-template-columns: 1fr; } }

/* ---- gallery slider con dots ---- */
.stilla-gallery-wrap { width: 100%; }
.stilla-gallery img { max-width: 100%; flex: 0 0 100%; width: 100%; height: 420px; }
.stilla-gallery { scroll-behavior: smooth; }
.stilla-gallery::-webkit-scrollbar { display: none; }
.stilla-gallery__dots { display: flex; gap: 10px; justify-content: center; margin-top: 14px; }
.stilla-gallery__dot {
  width: 12px; height: 12px; border-radius: 50%;
  border: 1px solid var(--stilla-viola) !important;
  background: transparent !important; padding: 0 !important; cursor: pointer;
}
.stilla-gallery__dot--active { background: var(--stilla-viola) !important; }

/* ---- form Elementor: campi flat e checkbox rotondo (stile mockup) ---- */
.elementor-form .elementor-field-textual {
  border: 0 !important;
  box-shadow: none !important;
  background-color: var(--stilla-crema);
  color: var(--stilla-viola);
  font-family: var(--stilla-font);
}
.elementor-form .elementor-field-type-acceptance input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px; height: 20px;
  border: none;
  border-radius: 50%;
  background: var(--stilla-crema);
  vertical-align: middle;
  margin-right: 8px;
  cursor: pointer;
  position: relative;
}
.elementor-form .elementor-field-type-acceptance input[type="checkbox"]:checked::after {
  content: '';
  position: absolute; inset: 3px;
  border-radius: 50%;
  background: var(--stilla-viola);
}

/* ---- icone contatti ---- */
.stilla-contact-list { list-style: none; margin: 0; padding: 0; font-family: var(--stilla-font); color: var(--stilla-viola); }
.stilla-contact-list li { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 18px; font-size: 17px; }
.stilla-contact-list svg { width: 22px; height: 22px; flex: none; margin-top: 2px; }
.stilla-contact-list a { color: var(--stilla-viola); text-decoration: underline; }

/* ---- pilastri about: icona ---- */
.stilla-pilastro-icon { height: 56px; display: flex; justify-content: center; align-items: flex-end; margin-bottom: 10px; }
.stilla-pilastro-icon img { max-height: 56px; width: auto; }

/* foto fondatori about: altezza uniforme */
.st-foto-docente img { width: 100%; height: 420px !important; object-fit: cover; border-radius: 16px !important; }

/* acceptance: niente label di gruppo, checkbox rotondo robusto */
.elementor-form .elementor-field-type-acceptance > .elementor-field-label { display: none !important; }
.elementor-form input.elementor-acceptance-field {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-block !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 20px !important;
  border: none !important;
  border-radius: 50% !important;
  background: var(--stilla-crema) !important;
  vertical-align: middle;
  margin-right: 8px;
  cursor: pointer;
  position: relative;
}
.elementor-form input.elementor-acceptance-field:checked::after {
  content: '';
  position: absolute; inset: 3px;
  border-radius: 50%;
  background: var(--stilla-viola);
}

/* dots gallery: dimensioni blindate contro gli stili button del kit */
button.stilla-gallery__dot, .stilla-gallery__dot {
  width: 12px !important;
  height: 12px !important;
  min-width: 12px !important;
  min-height: 12px !important;
  max-width: 12px !important;
  line-height: 0 !important;
  font-size: 0 !important;
  border-radius: 50% !important;
  display: inline-block !important;
}

/* step percorso: numero dentro forma lilla */
.stilla-step__num {
  width: 76px !important;
  height: 76px !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
}

/* hamburger mobile */
.stilla-hamburger { display: inline-flex; padding: 6px; }
.elementor-popup-modal .dialog-message { padding: 0 !important; }

/* ---------- Scroll reveal (fade-in dal basso) ---------- */
.st-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1);
  will-change: opacity, transform;
}
.st-reveal.st-in {
  opacity: 1;
  transform: none;
  will-change: auto;
}
@media (prefers-reduced-motion: reduce) {
  .st-reveal { opacity: 1; transform: none; transition: none; }
}

/* ---------- Smart header: sticky nascosto, riappare allo scroll-up ---------- */
[data-elementor-type="header"] {
  transition: transform .35s ease, box-shadow .35s ease;
}
[data-elementor-type="header"].st-header-fix {
  position: fixed;
  top: var(--st-header-top, 0px);
  left: 0;
  right: 0;
  z-index: 990;
  transform: translateY(-102%);
  background: #FFFCDF;
}
[data-elementor-type="header"].st-header-fix.st-header-show {
  transform: translateY(0);
  box-shadow: 0 6px 24px rgba(72, 46, 145, .10);
}
body.admin-bar [data-elementor-type="header"].st-header-fix {
  --st-header-top: 32px;
}
@media (max-width: 782px) {
  body.admin-bar [data-elementor-type="header"].st-header-fix {
    --st-header-top: 46px;
  }
}
@media (prefers-reduced-motion: reduce) {
  [data-elementor-type="header"] { transition: none; }
}

/* la sidebar sticky del corso scende sotto l'header quando questo è visibile.
   .st-below-header è applicata via JS SOLO quando l'elemento è position:fixed:
   a fondo pagina Elementor lo parcheggia absolute+bottom:0 e un top forzato
   lo sposterebbe in cima alla colonna, fuori schermo */
.elementor-sticky--active {
  transition: top .35s ease;
}
.elementor-sticky--active.st-below-header {
  top: calc(var(--st-header-h, 90px) + 24px) !important;
}

/* nota sotto i bottoni Iscriviti (destinazione biglietteria TT) */
.stilla-tt-note {
  display: block;
  margin-top: 10px;
  font-family: var(--stilla-font);
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(72, 46, 145, .75);
}
.stilla-promo .stilla-tt-note,
.stilla-riserva .stilla-tt-note { color: rgba(255, 252, 223, .8); }
.stilla-riserva .stilla-tt-note { max-width: 440px; margin-left: auto; margin-right: auto; }

/* hover card corsi e news: float verso l'alto */
.stilla-corso-card,
.stilla-news-card { transition: transform .3s ease; }
.stilla-corso-card:hover,
.stilla-news-card:hover { transform: translateY(-5px); }
@media (prefers-reduced-motion: reduce) {
  .stilla-corso-card, .stilla-news-card { transition: none; }
  .stilla-corso-card:hover, .stilla-news-card:hover { transform: none; }
}
.stilla-riserva__cta { flex-direction: column; align-items: center; }

/* testo card aggiornamenti: contenuto in alto, bottone ancorato in basso */
.stilla-agg__testo { display: flex; flex-direction: column; align-items: flex-start; padding: 10px 0; }
.stilla-agg__testo .stilla-btn { margin-top: auto; }

/* ---------- Transizione fade tra le pagine ---------- */
@media (prefers-reduced-motion: no-preference) {
  body { animation: st-page-in .3s ease; }
  body.st-page-out { opacity: 0; transition: opacity .3s ease; }
}
@keyframes st-page-in { from { opacity: 0; } to { opacity: 1; } }

/* heading opzionale del loop corsi (es. "Corsi passati") */
.stilla-corsi__heading {
  font-family: var(--stilla-font);
  font-weight: 300;
  font-size: 42px;
  color: var(--stilla-viola);
  margin: 48px 0 24px;
}

/* ---------- strip foto (altezza fissa, larghezza naturale) ---------- */
.stilla-strip {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  cursor: grab;
}
.stilla-strip::-webkit-scrollbar { display: none; }
.stilla-strip.st-dragging { cursor: grabbing; scroll-snap-type: none; }
.stilla-strip img.stilla-strip__img {
  height: var(--strip-h, 420px) !important;
  width: auto !important;
  max-width: none !important;
  flex: none;
  object-fit: cover;
  border-radius: 16px !important;
  scroll-snap-align: start;
  user-select: none;
  -webkit-user-drag: none;
}
@media (max-width: 767px) {
  .stilla-strip { gap: 14px; }
  .stilla-strip img.stilla-strip__img { height: min(var(--strip-h, 420px), 62vw) !important; }
}

/* ---------- carosello Elementor in modalità "strip" ----------
   classe st-strip-carousel (Avanzate → Classi CSS del widget):
   slide a larghezza naturale, altezza uniforme; lo slidesPerView
   'auto' è impostato dal JS (Swiper calcola le misure da qui) */
.st-strip-carousel .swiper-slide { width: auto !important; }
.st-strip-carousel .swiper-slide figure { margin: 0; }
.st-strip-carousel .swiper-slide img {
  height: 420px !important;
  width: auto !important;
  max-width: none !important;
  object-fit: cover;
  border-radius: 16px !important;
}
.st-strip-carousel .elementor-image-carousel-wrapper { padding-bottom: 34px; }
.st-strip-carousel .swiper-pagination { bottom: 0 !important; }
.st-strip-carousel .swiper-pagination-bullet {
  width: 12px; height: 12px;
  background: transparent;
  border: 1px solid var(--stilla-viola);
  opacity: 1;
}
.st-strip-carousel .swiper-pagination-bullet-active { background: var(--stilla-viola); }
@media (max-width: 767px) {
  .st-strip-carousel .swiper-slide img { height: min(420px, 62vw) !important; }
}

/* card corsi senza bordo (su bande colorate, es. arancio) */
.stilla-corsi--noborder .stilla-corso-card { border: none; }

/* filtri corsi in riga col titolo (archivio) */
.stilla-filtri { margin-bottom: 0; }

/* contatti: lista contatti rapidi come da design */
.stilla-contact-list li { font-size: 26px; }
.stilla-contact-list li svg { width: 26px; height: 26px; }

/* form: label più grandi come da design */
.elementor-form .elementor-field-group > label { font-size: 20px; }

/* ---------- riduzioni mobile per le size allineate al design ---------- */
@media (max-width: 767px) {
  .stilla-btn { font-size: 17px; }
  .stilla-filtro { font-size: 15px; }
  .stilla-filtri { flex-wrap: wrap; }
  .stilla-corsi--list .stilla-corso-card__title { font-size: 24px; }
  .stilla-corsi--list .stilla-corso-card__docenti,
  .stilla-corsi--list .stilla-corso-card__meta { font-size: 15px; }
  .stilla-corsi--list .stilla-corso-card__prezzo { font-size: 24px; }
  .stilla-news-card__title { font-size: 24px; }
  .stilla-news-card__excerpt { font-size: 16px; }
  .stilla-agg__testo h3 { font-size: 24px; }
  .stilla-agg__testo p { font-size: 16px; }
  .stilla-scheda__prezzo { font-size: 32px; }
  .stilla-scheda__rows li { font-size: 16px; }
  .stilla-promo__testo { font-size: 24px; }
  .stilla-programma__giorno h3 { font-size: 24px; }
  .stilla-riserva__sub { font-size: 20px; }
  .stilla-stat__label { font-size: 22px; }
  .stilla-docente img { width: 110px; height: 110px; }
  .stilla-docente__testo h3 { font-size: 24px; }
  .stilla-docente__testo p { font-size: 16px; }
  .stilla-step h4 { font-size: 24px; }
  .stilla-step p { font-size: 16px; }
  .stilla-corsi__heading { font-size: 30px; }
  .stilla-contact-list li { font-size: 20px; }
  .stilla-contact-list li svg { width: 20px; height: 20px; }
}

/* popup waitlist (fondo viola): testo privacy leggibile */
.stilla-waitlist-popup .elementor-field-type-acceptance,
.stilla-waitlist-popup .elementor-field-type-acceptance label,
.stilla-waitlist-popup .elementor-field-type-acceptance a {
  color: var(--stilla-crema) !important;
}

/* FAQ native (Nested Accordion) con lo stesso look di .stilla-faq */
.stilla-faq-native .e-n-accordion { display: flex; flex-direction: column; gap: 14px; }
.stilla-faq-native details.e-n-accordion-item {
  background: var(--stilla-lime);
  border-radius: var(--stilla-radius-sm);
  overflow: hidden;
}
.stilla-faq-native summary.e-n-accordion-item-title {
  padding: 18px 22px;
  font-family: var(--stilla-font);
}
.stilla-faq-native details.e-n-accordion-item,
.stilla-faq-native summary.e-n-accordion-item-title,
.stilla-faq-native .e-n-accordion-item > .e-con { border: none !important; }
