/* Import Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500&display=swap');

/* Typography Scale */
.text-xs { font-size: var(--text-xs); }
.text-sm { font-size: var(--text-sm); }
.text-base { font-size: var(--text-base); }
.text-lg { font-size: var(--text-lg); }
.text-xl { font-size: var(--text-xl); }
.text-2xl { font-size: var(--text-2xl); }
.text-3xl { font-size: var(--text-3xl); }
.text-4xl { font-size: var(--text-4xl); }
.text-5xl { font-size: var(--text-5xl); }

/* Font Families */
.font-primary { font-family: var(--font-primary); }
.font-secondary { font-family: var(--font-secondary); }

/* Font Weights */
.font-light { font-weight: 300; }
.font-normal { font-weight: 400; }
.font-medium { font-weight: 500; }
.font-semibold { font-weight: 600; }
.font-bold { font-weight: 700; }

/* Font Styles */
.italic { font-style: italic; }
.not-italic { font-style: normal; }

/* Text Alignment */
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-justify { text-align: justify; }

/* Text Colors */
.text-primary { color: var(--indigo); }
.text-accent { color: var(--accent); }
.text-cream { color: var(--cream); }
.text-white { color: var(--white); }
.text-black { color: var(--black); }
.text-gray-light { color: var(--gray-light); }
.text-gray-medium { color: var(--gray-medium); }
.text-gray-dark { color: var(--gray-dark); }

/* Line Heights */
.leading-tight { line-height: 1.2; }
.leading-normal { line-height: 1.5; }
.leading-relaxed { line-height: 1.6; }
.leading-loose { line-height: 1.8; }

/* Text Decoration */
.underline { text-decoration: underline; }
.no-underline { text-decoration: none; }

/* Text Transform */
.uppercase { text-transform: uppercase; }
.lowercase { text-transform: lowercase; }
.capitalize { text-transform: capitalize; }

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

/* Heading Styles */
.heading-display {
  font-family: var(--font-primary);
  font-size: var(--text-5xl);
  font-weight: 700;
  line-height: 1.1;
  color: var(--indigo);
  margin-bottom: var(--space-6);
}

.heading-hero {
  font-family: var(--font-primary);
  font-size: var(--text-4xl);
  font-weight: 600;
  line-height: 1.2;
  color: var(--indigo);
  margin-bottom: var(--space-4);
}

.heading-section {
  font-family: var(--font-primary);
  font-size: var(--text-3xl);
  font-weight: 600;
  line-height: 1.3;
  color: var(--indigo);
  margin-bottom: var(--space-6);
  text-align: center;
}

.heading-card {
  font-family: var(--font-primary);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: 1.3;
  color: var(--indigo);
  margin-bottom: var(--space-3);
}

/* Body Text Styles */
.body-large {
  font-size: var(--text-lg);
  line-height: 1.7;
  color: var(--gray-dark);
}

.body-medium {
  font-size: var(--text-base);
  line-height: 1.6;
  color: var(--gray-dark);
}

.body-small {
  font-size: var(--text-sm);
  line-height: 1.5;
  color: var(--gray-medium);
}

/* Caption and Label Styles */
.caption {
  font-size: var(--text-xs);
  line-height: 1.4;
  color: var(--gray-medium);
  font-weight: 500;
}

.label {
  font-size: var(--text-sm);
  line-height: 1.4;
  color: var(--gray-dark);
  font-weight: 600;
}

/* Link Styles */
.link {
  color: var(--accent);
  text-decoration: none;
  transition: color var(--transition-base);
}

.link:hover {
  color: var(--indigo);
  text-decoration: underline;
}

.link-primary {
  color: var(--indigo);
  font-weight: 500;
  text-decoration: none;
  transition: color var(--transition-base);
}

.link-primary:hover {
  color: var(--accent);
}

/* Button Text Styles */
.btn-text {
  font-size: var(--text-sm);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.025em;
  color: var(--accent);
  text-decoration: none;
  transition: color var(--transition-base);
}

.btn-text:hover {
  color: var(--indigo);
}

/* Responsive Typography */
@media (max-width: 768px) {
  .heading-display {
    font-size: var(--text-4xl);
  }
  
  .heading-hero {
    font-size: var(--text-3xl);
  }
  
  .heading-section {
    font-size: var(--text-2xl);
  }
}

@media (max-width: 480px) {
  .heading-display {
    font-size: var(--text-3xl);
  }
  
  .heading-hero {
    font-size: var(--text-2xl);
  }
  
  .heading-section {
    font-size: var(--text-xl);
  }
}