/* ==========================================================================
   Web fonts
   - woff2 first (smallest); eot/svg dropped (no supported browser needs them)
   - Display faces (Philosopher, Millanova) use font-display: block — the
     browser keeps the text invisible for up to 3s rather than painting a
     system font and re-laying-out when the real face arrives. With the
     <link rel="preload"> tags in main-css.php the fonts normally land well
     inside that window, so users never see a wrong font or a jump.
   - Body face (Montserrat) keeps swap (text must be readable immediately)
     but falls back to a METRIC-MATCHED system face (below), so the swap
     moves the layout by ~0px instead of reflowing every paragraph.
   ========================================================================== */
@font-face {
	font-family: 'Montserrat';
	src: url('../fonts/Montserrat-Regular.woff2') format('woff2'),
	     url('../fonts/Montserrat-Regular.woff') format('woff'),
	     url('../fonts/Montserrat-Regular.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Philosopher';
	src: url('../fonts/Philosopher-Regular.woff2') format('woff2'),
	     url('../fonts/Philosopher-Regular.woff') format('woff'),
	     url('../fonts/Philosopher-Regular.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
	font-display: block;
}
@font-face {
	font-family: 'Millanova';
	src: url('../fonts/Millanova.woff2') format('woff2'),
	     url('../fonts/Millanova.woff') format('woff'),
	     url('../fonts/Millanova.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
	font-display: block;
}
/* Montserrat SemiBold, exposed as its own family so it can be applied to
   individual elements (via .fw-medium) without adding a heavier face to the
   'Montserrat' family — that would silently re-render every bold/700 text
   on the site with SemiBold glyphs instead of the current synthetic bold. */
@font-face {
	font-family: 'Montserrat SemiBold';
	src: url('../fonts/Montserrat-SemiBold.woff2') format('woff2'),
	     url('../fonts/Montserrat-SemiBold.woff') format('woff'),
	     url('../fonts/Montserrat-SemiBold.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

/* --------------------------------------------------------------------------
   Metric-matched fallbacks (used only while the real font is not yet
   available). size-adjust / ascent-override / descent-override were measured
   against the actual glyph widths of a sample sentence, so the fallback
   occupies the same width and line height as the web font. Roboto = Android,
   Helvetica = iOS/macOS, Arial = Windows.
   -------------------------------------------------------------------------- */
@font-face {
	font-family: 'Montserrat Fallback';
	src: local('Roboto'), local('Helvetica Neue'), local('Helvetica'), local('Arial');
	size-adjust: 111.3%;
	ascent-override: 87%;
	descent-override: 22.6%;
	line-gap-override: 0%;
}
@font-face {
	font-family: 'Philosopher Fallback';
	src: local('Times New Roman'), local('Georgia'), local('Noto Serif'), local('serif');
	size-adjust: 104.1%;
	ascent-override: 86.4%;
	descent-override: 21.1%;
	line-gap-override: 0%;
}
