/* Microinterazioni globali: classi per Elementor > Avanzato > Classi CSS.
   Caricare dopo tutti gli stili dei componenti. Nessuna dipendenza. */
body.fz-wordpress{
  --motion-fast: 220ms;
  --motion-base: 250ms;
  --motion-slow: 540ms;
  --motion-image: 380ms;
  --motion-fade: 640ms;
  --motion-stagger: 90ms;
  --dur: var(--motion-base);
  --motion-distance: 10px;
  --motion-ease: cubic-bezier(.2, .7, .2, 1);
}
body.fz-wordpress .interactive-card,body.fz-wordpress .fz-catalog-card.fz-course-card__inner.interactive-card{
  transition: transform var(--motion-base) var(--motion-ease), border-color var(--motion-base) var(--motion-ease), box-shadow var(--motion-base) var(--motion-ease);
}
body.fz-wordpress :is(.interactive-card, .fz-tile__link.interactive-card, .fz-course-card__inner.interactive-card):is(:hover, :focus-visible, :focus-within){ transform: none; }
body.fz-wordpress .image-hover{ overflow: hidden; }
body.fz-wordpress .image-hover img,body.fz-wordpress .fz-catalog-card__media.image-hover .fz-course-card__img{ transition: transform var(--motion-image) var(--motion-ease); }
body.fz-wordpress .arrow-link :is(.fz-icon, .elementor-button-icon){ transition: transform var(--motion-fast) var(--motion-ease); }
body.fz-wordpress .arrow-link:is(:hover, :focus-visible, :focus-within) :is(.fz-icon, .elementor-button-icon){ transform: none; }
body.fz-wordpress :is(.fz-btn--primary, .elementor-element.fz-btn--primary .elementor-button):hover{
  transform: none;
  box-shadow: 0 7px 18px rgba(12, 61, 133, .23);
}
@media (hover: hover) and (pointer: fine) {
  body.fz-wordpress :is(.interactive-card, .fz-tile__link.interactive-card, .fz-course-card__inner.interactive-card):is(:hover, :focus-visible, :focus-within){
    transform: translateY(-2px);
    box-shadow: 0 3px 12px rgba(10, 26, 51, .08);
  }
  body.fz-wordpress .interactive-card:is(:hover, :focus-within) .image-hover img{ transform: scale(1.02); }
  body.fz-wordpress .arrow-link:is(:hover, :focus-visible, :focus-within) :is(.fz-icon, .elementor-button-icon){ transform: translateX(3px); }
}
/* Anche il focus da tastiera evidenzia il link, senza dipendere dal movimento. */
body.fz-wordpress .arrow-link:focus-visible{ outline: 3px solid var(--color-focus); outline-offset: 3px; }
body.fz-wordpress .fz-accordion__chevron,body.fz-wordpress .fz-ed-detail summary .fz-icon{ transition-duration: var(--motion-base); }
/* Evitare la precedente interpolazione di height: pannelli nativi sempre usabili. */
body.fz-wordpress .fz-accordion__item::details-content{ transition: none; }
body.fz-wordpress .fz-accordion__item[open] > .fz-accordion__panel,body.fz-wordpress .fz-ed-detail[open] > .fz-ed-answer{ animation: fz-content-in var(--motion-base) ease-out; }
@keyframes fz-content-in { from { opacity: .25; } to { opacity: 1; } }
@media (hover: none), (pointer: coarse) {
  body.fz-wordpress .interactive-card:is(:hover, :focus-within) .image-hover img,body.fz-wordpress .arrow-link:is(:hover, :focus-within) :is(.fz-icon, .elementor-button-icon),body.fz-wordpress .fz-catalog-card:is(:hover, :focus-within) .fz-catalog-card__cta .fz-icon{ transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.fz-wordpress .interactive-card,body.fz-wordpress :is(.interactive-card, .fz-tile__link.interactive-card, .fz-course-card__inner.interactive-card):is(:hover, :focus-visible, :focus-within),body.fz-wordpress .image-hover img,body.fz-wordpress .interactive-card:is(:hover, :focus-within) .image-hover img,body.fz-wordpress .arrow-link:is(:hover, :focus-visible, :focus-within) :is(.fz-icon, .elementor-button-icon){ transform: none !important; transition: none !important; }
  body.fz-wordpress .fz-accordion__item[open] > .fz-accordion__panel,body.fz-wordpress .fz-ed-detail[open] > .fz-ed-answer{ animation: none; }
}

/* Reveal progressivi: per default tutto è visibile. JS avvia l'animazione
   solo all'ingresso, senza nascondere contenuti fuori dallo schermo. */
body.fz-wordpress .reveal.is-revealed{ animation: fz-reveal var(--motion-slow) var(--motion-ease) backwards; }
body.fz-wordpress .reveal-soft.is-revealed{ animation: fz-fade var(--motion-fade) ease-out backwards; }
body.fz-wordpress .reveal-group.is-revealed > *{
  animation: fz-reveal var(--motion-slow) var(--motion-ease) backwards;
}
body.fz-wordpress .reveal-group.is-revealed > :nth-child(2){ animation-delay: calc(var(--motion-stagger) * 1); }
body.fz-wordpress .reveal-group.is-revealed > :nth-child(3){ animation-delay: calc(var(--motion-stagger) * 2); }
body.fz-wordpress .reveal-group.is-revealed > :nth-child(4){ animation-delay: calc(var(--motion-stagger) * 3); }
body.fz-wordpress .reveal-group.is-revealed > :nth-child(5){ animation-delay: calc(var(--motion-stagger) * 4); }
body.fz-wordpress .reveal-group.is-revealed > :nth-child(n+6){ animation-delay: calc(var(--motion-stagger) * 5); }
@keyframes fz-reveal {
  from { opacity: 0; transform: translateY(var(--motion-distance)); }
  to { opacity: 1; transform: none; }
}
@keyframes fz-fade { from { opacity: 0; } to { opacity: 1; } }
/* I controlli di un form o una destinazione focus sono subito stabili. */
body.fz-wordpress :is(.reveal, .reveal-soft, .reveal-group).motion-static,body.fz-wordpress .reveal-group.motion-static > *{ animation: none; }
body.fz-wordpress .fz-sub-menu{ transform: translateY(-4px); transition-duration: var(--motion-fast); }
body.fz-wordpress .sticky-elevation{ transition-duration: var(--motion-base); }
body.fz-wordpress .fz-finder__panel:not([hidden]){ animation: fz-wizard-in var(--motion-base) ease-out; }
@keyframes fz-wizard-in { from { opacity: .4; transform: translateX(6px); } to { opacity: 1; transform: none; } }
@media (max-width: 1199px) { body.fz-wordpress .fz-sub-menu{ transform: none; } }
@media (max-width: 767px) {
  body.fz-wordpress .reveal,body.fz-wordpress .reveal-group{ --motion-distance: 8px; }
  body.fz-wordpress .reveal-group.is-revealed > *{ animation-delay: 0ms; }
}
@media (prefers-reduced-motion: reduce) {
  body.fz-wordpress .reveal.is-revealed,body.fz-wordpress .reveal-soft.is-revealed,body.fz-wordpress .reveal-group.is-revealed > *,body.fz-wordpress .fz-finder__panel:not([hidden]){ animation: none; transform: none; opacity: 1; }
  body.fz-wordpress .fz-sub-menu{ transform: none; }
}
