/* Tipografia para Gráfica AMEI
 * Fontes selecionadas do Google Fonts para garantir modernidade e legibilidade
 */

/* Importação das fontes do Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Poppins:wght@300;400;500;600;700&family=Roboto:wght@300;400;500;700&display=swap');

:root {
  /* Famílias de fontes */
  --font-primary: 'Montserrat', sans-serif;    /* Para títulos e elementos de destaque */
  --font-secondary: 'Poppins', sans-serif;     /* Para subtítulos e elementos de navegação */
  --font-body: 'Roboto', sans-serif;           /* Para corpo de texto e conteúdo geral */
  
  /* Tamanhos de fonte responsivos */
  --fs-xxl: clamp(2.5rem, 5vw, 3.5rem);        /* Títulos principais/hero */
  --fs-xl: clamp(2rem, 4vw, 2.75rem);          /* Títulos de seção */
  --fs-lg: clamp(1.5rem, 3vw, 2rem);           /* Subtítulos */
  --fs-md: clamp(1.125rem, 2vw, 1.25rem);      /* Destaques */
  --fs-base: 1rem;                             /* Texto base */
  --fs-sm: 0.875rem;                           /* Texto pequeno */
  --fs-xs: 0.75rem;                            /* Texto muito pequeno/notas */
  
  /* Espessuras de fonte */
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;
  
  /* Altura de linha */
  --lh-tight: 1.2;
  --lh-base: 1.5;
  --lh-loose: 1.8;
  
  /* Espaçamento entre letras */
  --ls-tight: -0.01em;
  --ls-normal: 0;
  --ls-wide: 0.05em;
  --ls-wider: 0.1em;
}

/* Classes de tipografia */
.heading-1 {
  font-family: var(--font-primary);
  font-size: var(--fs-xxl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  margin-bottom: 1rem;
}

.heading-2 {
  font-family: var(--font-primary);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: var(--ls-tight);
  margin-bottom: 0.875rem;
}

.heading-3 {
  font-family: var(--font-primary);
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-tight);
  margin-bottom: 0.75rem;
}

.heading-4 {
  font-family: var(--font-secondary);
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-tight);
  margin-bottom: 0.5rem;
}

.subtitle {
  font-family: var(--font-secondary);
  font-size: var(--fs-md);
  font-weight: var(--fw-medium);
  line-height: var(--lh-base);
  color: var(--text-muted);
}

.body-text {
  font-family: var(--font-body);
  font-size: var(--fs-base);
  font-weight: var(--fw-regular);
  line-height: var(--lh-base);
}

.body-text-bold {
  font-family: var(--font-body);
  font-size: var(--fs-base);
  font-weight: var(--fw-medium);
  line-height: var(--lh-base);
}

.small-text {
  font-family: var(--font-body);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
}

.caption {
  font-family: var(--font-body);
  font-size: var(--fs-xs);
  line-height: var(--lh-base);
  color: var(--text-muted);
}

.nav-link {
  font-family: var(--font-secondary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  text-transform: uppercase;
  letter-spacing: var(--ls-wide);
}

.btn-text {
  font-family: var(--font-secondary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: var(--ls-wide);
}

/* Utilitários de texto */
.text-uppercase { text-transform: uppercase; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }

.fw-light { font-weight: var(--fw-light); }
.fw-regular { font-weight: var(--fw-regular); }
.fw-medium { font-weight: var(--fw-medium); }
.fw-semibold { font-weight: var(--fw-semibold); }
.fw-bold { font-weight: var(--fw-bold); }
.fw-extrabold { font-weight: var(--fw-extrabold); }

/* Otimização para leitura em dispositivos móveis */
@media (max-width: 768px) {
  :root {
    --lh-base: 1.6;  /* Aumenta ligeiramente o espaçamento entre linhas em telas menores */
  }
  
  .body-text, .small-text {
    letter-spacing: 0.01em; /* Ligeiramente mais espaçado para melhor legibilidade */
  }
}
