/* ===
   RESET DI BASE
   - Impedisce differenze tra browser
   - Garantisce un box model prevedibile === */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Impedisce l'ingrandimento automatico del testo sui dispositivi mobili */
html {
  -moz-text-size-adjust: none;       /* Disattiva l'adattamento del testo su Firefox */
  -webkit-text-size-adjust: none;    /* Disattiva l'adattamento del testo su Chrome/Safari */
  text-size-adjust: none;            /* Standard moderno per disattivare l'adattamento su browser compatibili */
  box-sizing: border-box;            /* Include padding e border nel calcolo di width/height: semplifica layout e prevenzione overflow */
  scroll-behavior: smooth;           /* IT: Scroll fluido — EN: Smooth scrolling */
}

/* ============================================================
   RESET MARGINS — Azzeramento dei margini predefiniti
   ============================================================ */

/*
   IT: Rimuove i margini finali (margin-block-end) dagli elementi
   tipografici principali. Questo evita spaziature imprevedibili
   imposte dai browser e ti permette di controllare tu ogni distanza.

   EN: Removes default bottom margins (margin-block-end) from key
   typographic elements. This prevents unpredictable browser spacing
   and gives you full control over vertical rhythm.
*/
body,
h1,
h2,
h3,
h4,
p,
figure,
blockquote,
dl,
dd,
ul,
ol,
li,
table,
thead,
tbody,
tr,
td,
th,
pre,
hr,
address {
  margin-block-end: 0;
  /* 
     IT: Elimina il margine inferiore automatico, così puoi gestire
         manualmente la spaziatura verticale con il tuo spacing system.

     EN: Removes the automatic bottom margin, allowing you to manage
         vertical spacing manually using your spacing system.
  */
}

/* ============================================================
   MEDIA ELEMENTS — Elementi multimediali responsive
   ============================================================ */

/*
   IT: Impedisce che immagini e media escano dal contenitore.
   EN: Prevents images and media from overflowing their container.
*/
img,
picture,
video,
canvas,
svg {
  max-width: 100%;
  height: auto;
  display: block;
}


/* ============================================================
   FORMS — Coerenza degli elementi di input
   ============================================================ */

/*
   IT: Rimuove lo stile nativo dei form per un controllo totale.
   EN: Removes native form styling for full design control.
*/
input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
  background: none;
  border: none;
  outline: none;
}


/* ============================================================
   LINKS — Stile dei link
   ============================================================ */

/*
   IT: Rimuove lo stile predefinito dei link per gestirli tramite il design system.
   EN: Removes default link styling so links can be styled via the design system.
*/
a {
  text-decoration: none;
  color: inherit;
}


/* ============================================================
   TEXT RENDERING — Resa del testo
   ============================================================ */

/*
   IT: Migliora la nitidezza del testo su display moderni.
   EN: Improves text rendering on modern displays.
*/
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
