/* =============================================================================
   MARCA — livello di override sul markup Elementor
   Generato da applica-ds.py. Non modificare a mano: si rigenera.

   I VALORI (colore, font, raggi, ombre) sono gia' stati sostituiti dentro i
   fogli del sito. Qui stanno solo le regole STRUTTURALI del sistema, che non
   si possono esprimere come sostituzione di un valore.
   ============================================================================= */

/* --- divieto 1: nessuna ombra. Il focus non e' un'ombra, e resta. --------- */
*:not(:focus-visible) { box-shadow: none !important; }

/* --- divieto 2: raggio solo sui controlli (4px), pillole e segni circolari - */
button, input, select, textarea,
.elementor-button, .elementor-field, .elementor-field-textual {
  border-radius: var(--marca-radius-control) !important;
}

/* --- tipografia: corpo e interlinea si dichiarano SEMPRE insieme ---------- */
body, p, li, td, .elementor-widget-text-editor {
  font-family: var(--marca-font-primary);
  font-size: 16px;
  line-height: 24px;
}
small, .elementor-widget-text-editor small, figcaption {
  font-size: 14px;
  line-height: 24px;
}
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: var(--marca-font-primary);
  font-weight: var(--marca-weight-medium);
}
/* il dato e il codice vanno sul monospaziato, che e' l'unica seconda famiglia */
code, kbd, samp, pre, .mg-mono {
  font-family: var(--marca-font-mono);
  font-size: 16px;
  line-height: 24px;
}

/* --- movimento: ogni durata e' un multiplo di T = 40ms -------------------- */
a, button, .elementor-button, input, select, textarea {
  transition-duration: var(--marca-motion-control);
  transition-timing-function: var(--marca-ease-state);
}
.elementor-widget, .elementor-section {
  transition-duration: var(--marca-motion-panel);
  transition-timing-function: var(--marca-ease-state);
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
  }
}

/* --- stati: il fuoco e' visibile e non e' affidato al solo colore --------- */
:focus-visible {
  outline: var(--marca-focus-width) solid var(--marca-focus-ring);
  outline-offset: var(--marca-focus-offset);
}

/* --- azione primaria: bianco su Green/700, la combinazione approvata ------
   Bianco su Green/500 vale 2,65 e non e' testo ammesso.                     */
.elementor-button, button[type="submit"] {
  background-color: var(--marca-depth);
  color: var(--marca-text-invert);
}
.elementor-button:hover, button[type="submit"]:hover {
  background-color: var(--marca-identity-active);
}

/* --- separazione: un filo da 1px, mai un gutter (divieto 4) --------------- */
hr, .elementor-divider-separator {
  border: 0;
  border-top: var(--marca-border-width) solid var(--marca-border);
}
