/* Tipografia UniZambeze — fontes Google Fonts alojadas localmente.
 * Carregamento por alfabeto/peso, font-display: swap; sem pedidos a terceiros.
 * Alegreya Sans: 400, 500, 700 (a família não tem peso 600).
 * Roboto: variável 400–700; itálico apenas quando necessário.
 */
@font-face {
  font-family: 'Alegreya Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/alegreya-sans/alegreya-sans-latin-ext-400.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Alegreya Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/alegreya-sans/alegreya-sans-latin-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Alegreya Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/alegreya-sans/alegreya-sans-latin-ext-500.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Alegreya Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(../fonts/alegreya-sans/alegreya-sans-latin-500.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Alegreya Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/alegreya-sans/alegreya-sans-latin-ext-700.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Alegreya Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/alegreya-sans/alegreya-sans-latin-700.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/roboto/roboto-latin-ext-italic.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/roboto/roboto-latin-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/roboto/roboto-latin-ext-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/roboto/roboto-latin-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


:root {
  --font-body: 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --font-heading: 'Alegreya Sans', 'Trebuchet MS', 'Segoe UI', Arial, sans-serif;
  --font-size-body: 1rem;
  --font-size-h1: clamp(2rem, 1.6rem + 1.8vw, 3rem);
  --font-size-h2: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem);
  --font-size-h3: clamp(1.375rem, 1.2rem + .55vw, 1.625rem);
  --font-size-h4: clamp(1.125rem, 1rem + .4vw, 1.375rem);
  --font-size-h5: 1.125rem;
  --font-size-h6: 1rem;
  --font-size-ui: .9375rem;
  --font-size-small: .875rem;
  --line-height-body: 1.5;
  /* Integração com os layouts Bootstrap ainda existentes. */
  --bs-body-font-family: var(--font-body);
  --bs-font-sans-serif: var(--font-body);
}

html { font-family: var(--font-body); }
body {
  font-family: var(--font-body);
  font-size: var(--font-size-body);
  font-weight: 400;
  line-height: var(--line-height-body);
}

/* Especificidade baixa: classes de cartões, banners e menus mantêm as suas
 * dimensões. Apenas os títulos sem estilos próprios recebem a escala base. */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.2;
}
h1 { font-size: var(--font-size-h1); }
h2 { font-size: var(--font-size-h2); }
h3 { font-size: var(--font-size-h3); }
h4 { font-size: var(--font-size-h4); }
h5 { font-size: var(--font-size-h5); font-weight: 500; }
h6 { font-size: var(--font-size-h6); font-weight: 500; }
:where(p) { line-height: var(--line-height-body); }

:where(button, input, select, textarea, table, nav) {
  font-family: var(--font-body);
}
:where(button, input, select, textarea) { font-size: var(--font-size-ui); }
:where(button, [type='button'], [type='submit'], [type='reset']) { font-weight: 500; }
:where(nav a, nav button) { font-size: var(--font-size-ui); font-weight: 500; }
:where(small) { font-size: var(--font-size-small); }

/* Os cabeçalhos dentro da navegação são texto de interface. Não se aplica
 * a todos os descendentes: ícones e código conservam as famílias próprias. */
:is(nav, .megaMenu, .flyoutPanel) :is(h1, h2, h3, h4, h5, h6) { font-family: var(--font-body); }
