/* SPESA PRONTA — GERARCHIA TIPOGRAFICA PUBBLICA
   L'uppercase e' solo visuale: non modifica valori, URL, email o payload. */
:root {
  --sp-type-important-scale: 1.08;
  --sp-type-minor-scale: .88;
}

body.sp-public-uppercase :where(
  h1, h2, h3, h4, h5, h6,
  p, li, dt, dd, label, legend,
  button, a, b, strong, small, span,
  th, td, caption, option
) {
  text-transform: uppercase;
}

body.sp-public-uppercase :where(input, textarea, code, pre, kbd, samp, var, [data-preserve-case], .sp-case-sensitive, .sp-data-value, .sp-data-value *) {
  text-transform: none;
}

body.sp-public-uppercase :where(input, textarea)::placeholder {
  text-transform: uppercase;
}

.sp-importance-high {
  font-size: calc(1em * var(--sp-type-important-scale));
  font-weight: 900;
  line-height: 1.12;
  letter-spacing: .015em;
}

.sp-importance-medium {
  font-weight: 780;
  line-height: 1.25;
  letter-spacing: .02em;
}

.sp-importance-low {
  font-size: calc(1em * var(--sp-type-minor-scale));
  font-weight: 620;
  line-height: 1.42;
  letter-spacing: .035em;
  opacity: .78;
}

.sp-data-value,
.sp-data-value * {
  text-transform: none;
}
