/**
 * Typography
 * Font scales, headings, text styles
 */

body {
  font-family: var(--font-primary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-normal);
  color: var(--color-text-inverse);
}

/* Headings */

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-primary);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-tight);
  color: var(--color-text-inverse);
  margin: 0;
  padding: 0;
}
h1 {
  font-size: var(--font-size-3xl);
}
h2 {
  font-size: var(--font-size-2xl);
}
h3 {
  font-size: var(--font-size-xl);
}
h4 {
  font-size: var(--font-size-lg);
}
h5 {
  font-size: var(--font-size-lg);
}
h6 {
  font-size: var(--font-size-base);
}
p {
  font-family: var(--font-primary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-normal);
  margin: 0;
  padding: 0;
}
html,
body,
*,
*::before,
*::after {
  font-family: var(--font-primary);
  color: var(--color-text-inverse);
  hyphens: none !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  word-wrap: normal !important;
}
.content-section,
.text-newsletter,
.modal-content p,
.address-text {
  white-space: normal;
  word-spacing: normal;
  line-break: auto;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
  letter-spacing: var(--letter-spacing-normal);
}
.text-newsletter {
  color: var(--text-muted);
  margin-bottom: 1rem;
  font-family: var(--font-primary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-normal);
}
.text-newsletter-accent {
  color: var(--text-accent);
  font-family: var(--font-primary);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-normal);
}
.title-newsletter {
  font-family: var(--font-primary);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-bold);
  line-height: var(--line-height-tight);
  letter-spacing: var(--letter-spacing-normal);
}
.claim-title {
  font-family: var(--font-brand);
  letter-spacing: var(--letter-spacing-wide);
}
.nav-link {
  font-family: var(--font-brand);
  font-size: var(--font-size-xs); 
  font-weight: var(--font-weight-normal);
  letter-spacing: var(--letter-spacing-caps);
  text-transform: uppercase;
}
.menu-label {
  font-family: var(--font-brand);
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-normal);
  letter-spacing: var(--letter-spacing-wide);
}
.newsletter-content {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-normal);
  font-weight: var(--font-weight-normal);
  letter-spacing: var(--letter-spacing-wide);
}
.newsletter-form input,
.newsletter-form textarea {
  font-family: var(--font-primary);
  font-size: var(--font-size-xs);
  line-height: var(--line-height-normal);
  letter-spacing: var(--letter-spacing-wide);
}
.contact-info {
  font-family: var(--font-primary);
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-normal);
  font-size: var(--font-size-xs);
  letter-spacing: var(--letter-spacing-wide);
}
.legal-title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-normal);
  letter-spacing: var(--letter-spacing-normal);
}
.legal-section {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-normal);
}
.legal-footer,
.legal-update-date {
  font-size: var(--font-size-xs); 
  font-weight: var(--font-weight-normal);
  letter-spacing: var(--letter-spacing-wide);
}
.footer-link {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-normal);
  letter-spacing: var(--letter-spacing-wide);
  line-height: var(--line-height-footer);
  font-family: var(--font-primary);
}
.footer-copyright,
.footer-bottom span {
  font-size: var(--font-size-xs); 
  letter-spacing: var(--letter-spacing-normal);
  line-height: var(--line-height-metadata);
}
h1, .hero-title {
  font-size: var(--text-3xl);  
  line-height: calc(var(--base-line-height) * 0.9);
  margin-bottom: var(--space-md);  
}
h2, .section-title {
  font-size: var(--text-2xl);  
  line-height: calc(var(--base-line-height) * 0.95);
  margin-bottom: var(--space-sm);  
}
h3, .subtitle {
  font-size: var(--text-xl);   
  line-height: var(--base-line-height);
  margin-bottom: var(--space-sm);
}
h4 { font-size: var(--text-lg); }
h5 { font-size: var(--text-base); }
h6 { font-size: var(--text-sm); }
p, .body-text, .text-newsletter {
  font-size: var(--text-base);
  line-height: var(--base-line-height);
  margin-bottom: var(--space-sm);  
}
.text-small { font-size: var(--text-sm); }
.text-tiny { font-size: var(--text-xs); }

@media (max-width: 480px) {
  h1, .hero-title {
    font-size: clamp(1.5rem, 8vw, 2rem);  
    line-height: 1.1;
  }
  h2, .section-title {
    font-size: clamp(1.25rem, 6vw, 1.75rem);
    line-height: 1.2;
  }
  h3, .subtitle {
    font-size: clamp(1.125rem, 5vw, 1.5rem);
    line-height: 1.3;
  }
  p, .body-text, .text-newsletter {
    font-size: clamp(0.9rem, 4vw, 1.1rem);
    line-height: 1.5;
  }
}
