/* ========================================
   FLUID TYPOGRAPHY SCALE - DIMESCALE.IT
   Mobile-First - Sizing & Spacing Only
   Font families e weights gestiti da GP
   ======================================== */

:root {
  font-size: 16px; /* Base per calcoli rem */
}

/* ========================================
   HEADINGS - Sizing & Spacing
   ======================================== */

h1, .fs-h1 {
  font-size: clamp(1.875rem, 1.6477rem + 0.9091vw, 2.375rem);
  /* Mobile: 30px → Desktop: 38px */
  line-height: clamp(1.1, 1.05 + 0.2vw, 1.25);
  /* Titoli principali: compatti ma leggibili */
  margin-bottom: clamp(1.5rem, 1.2rem + 1.2vw, 2.25rem);
  /* Mobile: 24px → Desktop: 36px */
}

h2, .fs-h2 {
  font-size: clamp(1.625rem, 1.4318rem + 0.7727vw, 2.0625rem);
  /* Mobile: 26px → Desktop: 33px */
  line-height: clamp(1.15, 1.1 + 0.2vw, 1.3);
  /* Sottotitoli: leggermente più ariosi */
  margin-bottom: clamp(1.25rem, 1rem + 1vw, 2rem);
  /* Mobile: 20px → Desktop: 32px */
}

h3, .fs-h3 {
  font-size: clamp(1.4375rem, 1.2614rem + 0.7045vw, 1.8125rem);
  /* Mobile: 23px → Desktop: 29px */
  line-height: clamp(1.2, 1.15 + 0.2vw, 1.35);
  /* Titoli minori: bilanciati */
  margin-bottom: clamp(1rem, 0.8rem + 0.8vw, 1.5rem);
  /* Mobile: 16px → Desktop: 24px */
}

h4, .fs-h4 {
  font-size: clamp(1.25rem, 1.1136rem + 0.5455vw, 1.5625rem);
  /* Mobile: 20px → Desktop: 25px */
  line-height: clamp(1.2, 1.15 + 0.2vw, 1.35);
  margin-bottom: clamp(0.875rem, 0.7rem + 0.7vw, 1.25rem);
  /* Mobile: 14px → Desktop: 20px */
}

h5, .fs-h5 {
  font-size: clamp(1.125rem, 1.0114rem + 0.4545vw, 1.375rem);
  /* Mobile: 18px → Desktop: 22px */
  line-height: clamp(1.2, 1.15 + 0.2vw, 1.35);
  margin-bottom: clamp(0.75rem, 0.6rem + 0.6vw, 1rem);
  /* Mobile: 12px → Desktop: 16px */
}

h6, .fs-h6 {
  font-size: clamp(1.0625rem, 0.9659rem + 0.3864vw, 1.25rem);
  /* Mobile: 17px → Desktop: 20px */
  line-height: clamp(1.2, 1.15 + 0.2vw, 1.35);
  margin-bottom: clamp(0.75rem, 0.6rem + 0.6vw, 1rem);
  /* Mobile: 12px → Desktop: 16px */
}

/* ========================================
   BODY TEXT - Sizing & Spacing
   ======================================== */

p, .fs-p {
  font-size: clamp(1.0625rem, 0.9943rem + 0.2727vw, 1.1875rem);
  /* Mobile: 17px → Desktop: 19px */
  line-height: clamp(1.5, 1.4 + 0.4vw, 1.7);
  margin-bottom: clamp(1rem, 0.8rem + 0.8vw, 1.5rem);
}

/* Paragrafo small (didascalie, note) */
.fs-psm {
  font-size: clamp(0.875rem, 0.8182rem + 0.2273vw, 0.9375rem);
  /* Mobile: 14px → Desktop: 15px */
  line-height: 1.5;
  margin-bottom: clamp(0.75rem, 0.6rem + 0.6vw, 1rem);
}

/* ========================================
   UTILITY CLASSES
   ======================================== */

/* Grassetto contestuale - usa 600 come fallback */
strong, b {
  font-weight: 600;
}

/* Reset margini per ultimo elemento nei contenitori */
*:last-child {
  margin-bottom: 0;
}