@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  --federal-blue: #1A2530;
  --safety-amber: #F5A623;
}

body {
  font-family: 'Inter', sans-serif;
  background-color: #f8fafc; /* bg-slate-50 */
  color: #0f172a; /* text-slate-900 */
}

/* High Contrast Mode Override */
.high-contrast {
  background-color: #000000 !important;
  color: #ffffff !important;
}

.high-contrast body {
  background-color: #000000 !important;
  color: #ffffff !important;
}

.high-contrast .bg-federal-blue {
  background-color: #000000 !important;
  color: #ffffff !important;
  border-bottom: 2px solid #ffffff !important;
}

.high-contrast header {
  background-color: #000000 !important;
  border-bottom: 2px solid #ffffff !important;
}

.high-contrast footer {
  background-color: #000000 !important;
  border-top: 2px solid #ffffff !important;
}

.high-contrast .text-federal-blue {
  color: #ffffff !important;
}

.high-contrast .text-slate-300,
.high-contrast .text-slate-400,
.high-contrast .text-slate-500,
.high-contrast .text-slate-600 {
  color: #e2e8f0 !important;
}

.high-contrast .bg-slate-50,
.high-contrast .bg-slate-100,
.high-contrast .bg-slate-200 {
  background-color: #1e293b !important;
  color: #ffffff !important;
}

.high-contrast .bg-white {
  background-color: #000000 !important;
  color: #ffffff !important;
  border: 1px solid #ffffff !important;
}

.high-contrast .border,
.high-contrast .border-slate-100,
.high-contrast .border-slate-200,
.high-contrast .border-slate-300 {
  border-color: #ffffff !important;
}

.high-contrast .bg-safety-amber {
  background-color: #ffff00 !important; /* Pure yellow for high contrast */
  color: #000000 !important;
  font-weight: 700 !important;
}

.high-contrast .text-safety-amber {
  color: #ffff00 !important;
}

.high-contrast button,
.high-contrast a.bg-safety-amber {
  border: 2px solid #ffffff !important;
}

.high-contrast input,
.high-contrast select,
.high-contrast textarea {
  background-color: #000000 !important;
  color: #ffffff !important;
  border: 2px solid #ffffff !important;
}

/* Text Scaling */
.text-scale-110 {
  font-size: 1.1rem !important;
}

.text-scale-110 p, 
.text-scale-110 span, 
.text-scale-110 a, 
.text-scale-110 li {
  font-size: 1.1rem !important;
}

.text-scale-110 h1 {
  font-size: 3.5rem !important;
}

.text-scale-110 h2 {
  font-size: 2.5rem !important;
}

.text-scale-110 h3 {
  font-size: 1.8rem !important;
}

.text-scale-120 {
  font-size: 1.25rem !important;
}

.text-scale-120 p, 
.text-scale-120 span, 
.text-scale-120 a, 
.text-scale-120 li {
  font-size: 1.25rem !important;
}

.text-scale-120 h1 {
  font-size: 3.75rem !important;
}

.text-scale-120 h2 {
  font-size: 2.75rem !important;
}

.text-scale-120 h3 {
  font-size: 2.0rem !important;
}

/* Custom Micro-animations */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in {
  animation: fadeIn 0.4s ease-out forwards;
}
