/* MS Consulting Custom Stylesheet */

/* Theme Color Variables - Modern, vibrant palette with WCAG AA compliant contrast */
:root {
  /* Primary colors - darker for better contrast */
  --color-primary: #4338ca;
  --color-primary-50: #eef2ff;
  --color-primary-100: #e0e7ff;
  --color-primary-200: #c7d2fe;
  --color-primary-300: #a5b4fc;
  --color-primary-400: #818cf8;
  --color-primary-500: #6366f1;
  --color-primary-600: #4f46e5;
  --color-primary-700: #4338ca;
  --color-primary-800: #3730a3;
  --color-primary-900: #312e81;
  --color-primary-950: #1e1b4b;
  
  --color-primary-content: #ffffff;
  --color-primary-content-50: #f0f9ff;
  
  /* Secondary colors */
  --color-secondary: #7e22ce;
  --color-secondary-50: #faf5ff;
  --color-secondary-100: #f3e8ff;
  --color-secondary-200: #e9d5ff;
  --color-secondary-300: #d8b4fe;
  --color-secondary-400: #c084fc;
  --color-secondary-500: #a855f7;
  --color-secondary-600: #9333ea;
  --color-secondary-700: #7e22ce;
  --color-secondary-800: #6b21a8;
  --color-secondary-900: #581c87;
  --color-secondary-950: #3b0764;
  
  --color-secondary-content: #ffffff;
  
  /* Base colors */
  --color-base-50: #fafafa;
  --color-base-100: #f5f5f5;
  --color-base-200: #e5e5e5;
  --color-base-300: #d4d4d4;
  
  --color-base-content: #171717;
  --color-heading: #0a0a0a;
  --color-body: #404040;
  --color-subtle: #525252;
  --color-link: #4338ca;
  --color-border: #e5e7eb;
  
  --color-white: #ffffff;
  --color-black: #000000;
  
  /* Semantic colors */
  --color-success: #059669;
  --color-success-content: #ffffff;
  --color-warning: #d97706;
  --color-warning-content: #ffffff;
  --color-danger: #dc2626;
  --color-danger-content: #ffffff;
  --color-info: #2563eb;
  --color-info-content: #ffffff;
  
  /* Border radius */
  --radius-btn: 0.5rem;
  --radius-box: 0.75rem;
  --radius-input: 0.5rem;
}

/* Typography */
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  color: var(--color-body);
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Outfit', 'Inter', sans-serif;
  color: var(--color-heading);
  font-weight: 700;
}

/* Global Transitions */
* {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Custom focus styles */
:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* Custom selection */
::selection {
  background-color: var(--color-primary-200);
  color: var(--color-heading);
}

/* Accessibility - Ensure sufficient contrast */
.bg-primary {
  background-color: var(--color-primary);
}

.text-primary-content {
  color: var(--color-primary-content);
}

.text-subtle {
  color: var(--color-subtle);
}

.bg-base-200 {
  background-color: var(--color-base-200);
}

/* Footer specific fixes for contrast */
footer.site-footer {
  background-color: var(--color-base-200);
}

footer.site-footer .text-subtle {
  color: var(--color-subtle);
}

/* Utility animations */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

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

.animate-slide-in-left {
  animation: slideInLeft 0.6s ease-out;
}

.animate-slide-in-right {
  animation: slideInRight 0.6s ease-out;
}