/* ==============================================
   Fluid Typography Scale B — MEDIUM
   Body: 15px (mobile) → 17px (desktop)
   Viewport range: 375px → 1440px
   
   Scala completa:
   display-0 ... display-3 | h1 ... h6
   pxl | pl | p | psm | pxs | label
   ============================================== */


/* --- Display (Hero / Statement) --- */

.fs-display-0 {
	font-size: clamp(2.9375rem, 2.4754rem + 1.9718vw, 4.25rem);
	/* Mobile: 47px → Desktop: 68px */
	line-height: clamp(1.0em, 0.98em + 0.08vw, 1.1em);
	letter-spacing: -0.03em;
}

.fs-display-1 {
	font-size: clamp(2.375rem, 1.8908rem + 2.0657vw, 3.75rem);
	/* Mobile: 38px → Desktop: 60px */
	line-height: clamp(1.05em, 1.02em + 0.12vw, 1.15em);
	letter-spacing: -0.025em;
}

.fs-display-2 {
	font-size: clamp(2.0rem, 1.7139rem + 1.2207vw, 2.8125rem);
	/* Mobile: 32px → Desktop: 45px */
	line-height: clamp(1.05em, 1.02em + 0.12vw, 1.15em);
	letter-spacing: -0.02em;
}

.fs-display-3 {
	font-size: clamp(1.875rem, 1.6549rem + 0.939vw, 2.5rem);
	/* Mobile: 30px → Desktop: 40px */
	line-height: clamp(1.1em, 1.05em + 0.2vw, 1.25em);
	letter-spacing: -0.015em;
}


/* --- Heading Scale --- */

h1, .fs-h1 {
	font-size: clamp(1.75rem, 1.5739rem + 0.7512vw, 2.25rem);
	/* Mobile: 28px → Desktop: 36px */
	letter-spacing: -0.015em;
}

h2, .fs-h2 {
	font-size: clamp(1.5625rem, 1.4305rem + 0.5634vw, 1.9375rem);
	/* Mobile: 25px → Desktop: 31px */
	letter-spacing: -0.01em;
}

h3, .fs-h3 {
	font-size: clamp(1.375rem, 1.265rem + 0.4695vw, 1.6875rem);
	/* Mobile: 22px → Desktop: 27px */
	letter-spacing: -0.005em;
}

h4, .fs-h4 {
	font-size: clamp(1.1875rem, 1.0775rem + 0.4695vw, 1.5rem);
	/* Mobile: 19px → Desktop: 24px */
	letter-spacing: 0em;
}

h5, .fs-h5 {
	font-size: clamp(1.0625rem, 0.9745rem + 0.3756vw, 1.3125rem);
	/* Mobile: 17px → Desktop: 21px */
	letter-spacing: 0.005em;
}

h6, .fs-h6 {
	font-size: clamp(1.0rem, 0.934rem + 0.2817vw, 1.1875rem);
	/* Mobile: 16px → Desktop: 19px */
	letter-spacing: 0.01em;
}


/* --- Body / Paragraph Scale --- */

.fs-pxl {
	font-size: clamp(1.1875rem, 1.1215rem + 0.2817vw, 1.375rem);
	/* Mobile: 19px → Desktop: 22px */
}

.fs-pl {
	font-size: clamp(1.0625rem, 0.9965rem + 0.2817vw, 1.25rem);
	/* Mobile: 17px → Desktop: 20px */
}

p, .fs-p {
	font-size: clamp(0.9375rem, 0.8935rem + 0.1878vw, 1.0625rem);
	/* Mobile: 15px → Desktop: 17px */
}

.fs-psm {
	font-size: clamp(0.8125rem, 0.7905rem + 0.0939vw, 0.875rem);
	/* Mobile: 13px → Desktop: 14px */
}

.fs-pxs {
	font-size: clamp(0.6875rem, 0.6655rem + 0.0939vw, 0.75rem);
	/* Mobile: 11px → Desktop: 12px */
}


/* --- Label / Overline --- */

.fs-label {
	font-size: clamp(0.625rem, 0.603rem + 0.0939vw, 0.6875rem);
	/* Mobile: 10px → Desktop: 11px */
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-weight: 600;
	line-height: 1.4em;
}


/* ==============================================
   Line-height fluido
   ============================================== */

h1, .fs-h1 {
	line-height: clamp(1.1em, 1.05em + 0.2vw, 1.25em);
}

h2, .fs-h2 {
	line-height: clamp(1.15em, 1.1em + 0.2vw, 1.3em);
}

h3, h4, h5, h6 {
	line-height: clamp(1.2em, 1.15em + 0.2vw, 1.35em);
}

.fs-pxl {
	line-height: clamp(1.4em, 1.35em + 0.2vw, 1.6em);
}

.fs-pl {
	line-height: clamp(1.45em, 1.375em + 0.3vw, 1.65em);
}

p, .fs-p {
	line-height: clamp(1.5em, 1.4em + 0.4vw, 1.7em);
}

.fs-psm {
	line-height: clamp(1.4em, 1.35em + 0.2vw, 1.6em);
}

.fs-pxs {
	line-height: clamp(1.4em, 1.35em + 0.2vw, 1.6em);
}