/* Centralized Font Definitions */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@1,500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=National+Park:wght@400;600&display=swap');

/* Font Variables */
:root {
  /* Primary Fonts */
  --font-inter: 'Inter', sans-serif;
  --font-roboto: 'Roboto', sans-serif;
  --font-lora: 'Lora', serif;
  --font-poppins: 'Poppins', sans-serif;
  --font-national-park: 'National Park', sans-serif;
  --font1: 'National Park', sans-serif;
  
  /* Default Font Assignments */
  --font-primary: var(--font-inter);
  --font-secondary: var(--font1);
  --font-heading: var(--font-inter);
  --font-body: var(--font-inter);
  
  /* Font Weights */
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  
  /* Font Styles */
  --font-style-normal: normal;
  --font-style-italic: italic;
}

/* Global Font Settings - with Font Awesome protection */
*:not(i):not([class^="fa"]):not([class*=" fa"]):not([class^="fab"]):not([class*=" fab"]):not([class^="fas"]):not([class*=" fas"]):not([class^="far"]):not([class*=" far"]) {
  font-family: var(--font-primary);
  font-weight: var(--font-weight-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
}

/* Font Awesome Icon Protection - Enhanced for all pages */
i[class^="fa"], i[class*=" fa"], .fab, .fas, .far, .fal {
  font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands", "Font Awesome 6 Pro" !important;
  font-style: normal !important;
  font-weight: 900 !important;
  line-height: inherit !important;
  speak: none !important;
  font-variant: normal !important;
  text-transform: none !important;
  -webkit-font-smoothing: antialiased !important;
  -moz-osx-font-smoothing: grayscale !important;
}

/* Font Family Classes */
.font-inter {
  font-family: var(--font-inter);
}

.font-roboto {
  font-family: var(--font-roboto);
}

.font-lora {
  font-family: var(--font-lora);
}

.font-poppins {
  font-family: var(--font-poppins);
}

.font-national-park {
  font-family: var(--font-national-park);
}

.font1 {
  font-family: var(--font1);
}

.font-primary {
  font-family: var(--font-primary);
}

.font-secondary {
  font-family: var(--font-secondary);
}

.font-heading {
  font-family: var(--font-heading);
}

.font-body {
  font-family: var(--font-body);
}

/* Font Weight Classes */
.font-light {
  font-weight: var(--font-weight-light);
}

.font-normal {
  font-weight: var(--font-weight-normal);
}

.font-medium {
  font-weight: var(--font-weight-medium);
}

.font-semibold {
  font-weight: var(--font-weight-semibold);
}

.font-bold {
  font-weight: var(--font-weight-bold);
}

/* Font Style Classes */
.font-italic {
  font-style: var(--font-style-italic);
}

.font-normal-style {
  font-style: var(--font-style-normal);
}

/* Typography Utility Classes */
.text-heading {
  font-family: var(--font-heading);
  font-weight: var(--font-weight-semibold);
  line-height: 1.2;
}

.text-body {
  font-family: var(--font-body);
  font-weight: var(--font-weight-normal);
  line-height: 1.6;
}

.text-caption {
  font-family: var(--font-inter);
  font-weight: var(--font-weight-medium);
  font-size: 0.875rem;
}

/* Responsive Font Sizes */
.text-xs { font-size: 0.75rem; }
.text-sm { font-size: 0.875rem; }
.text-base { font-size: 1rem; }
.text-lg { font-size: 1.125rem; }
.text-xl { font-size: 1.25rem; }
.text-2xl { font-size: 1.5rem; }
.text-3xl { font-size: 1.875rem; }
.text-4xl { font-size: 2.25rem; }
.text-5xl { font-size: 3rem; }
.text-6xl { font-size: 3.75rem; }

/* Font Smoothing */
.font-smooth {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Letter Spacing */
.tracking-tight { letter-spacing: -0.025em; }
.tracking-normal { letter-spacing: 0em; }
.tracking-wide { letter-spacing: 0.025em; }
.tracking-wider { letter-spacing: 0.05em; }

/* Line Height */
.leading-none { line-height: 1; }
.leading-tight { line-height: 1.25; }
.leading-snug { line-height: 1.375; }
.leading-normal { line-height: 1.5; }
.leading-relaxed { line-height: 1.625; }
.leading-loose { line-height: 2; } 