/* Switch On – Risultati: layout, animazioni di ingresso e grafici.
   L'aspetto delle schede (.so-kpi, .so-property) e' nel CSS del tema (switchon.css). */

.so-data { width: 100%; }
.so-data__kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0 0 36px; }
.so-data__props { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.so-data__cell { display: flex; }
.so-data__cell > * { flex: 1 1 auto; width: 100%; }
.so-data__note { text-align: center; margin: 40px 0 0; }
.so-count { font-variant-numeric: tabular-nums; }

/* Effetti: attivi solo con JS (classe is-js) e senza "riduci animazioni" */
.so-data.is-js [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .7s ease var(--d, 0ms), transform .7s cubic-bezier(.2, .7, .2, 1) var(--d, 0ms); }
.so-data.is-js [data-reveal].is-in { opacity: 1; transform: none; }
.so-data.is-js .so-property__line { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.6s cubic-bezier(.4, 0, .2, 1); }
.so-data.is-js .so-property__chart.is-in .so-property__line { stroke-dashoffset: 0; }
.so-data.is-js .so-property__dots circle { opacity: 0; transition: opacity .35s ease; }
.so-data.is-js .so-property__chart.is-in .so-property__dots circle { opacity: 1; }
.so-data.is-js .so-property__chart.is-in .so-property__dots circle:nth-child(1) { transition-delay: .3s; }
.so-data.is-js .so-property__chart.is-in .so-property__dots circle:nth-child(2) { transition-delay: .7s; }
.so-data.is-js .so-property__chart.is-in .so-property__dots circle:nth-child(3) { transition-delay: 1.1s; }
.so-data.is-js .so-property__chart.is-in .so-property__dots circle:nth-child(4) { transition-delay: 1.5s; }
.so-data.is-js .so-property__area { opacity: 0; transition: opacity .9s ease 1.1s; }
.so-data.is-js .so-property__chart.is-in .so-property__area { opacity: 1; }

@media (max-width: 1024px) {
  .so-data__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .so-data__props { grid-template-columns: minmax(0, 1fr); }
}
