/* Error Page Styles - Mobile-First Responsive Design */

.error-page {
  min-height: 100vh;
  background: linear-gradient(135deg, #1a1a1a 0%, #0d0d0d 100%);
  color: white;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
}

/* Error Code Animation */
.error-code {
  animation: pulse 2s ease-in-out infinite alternate;
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.05);
  }
}

/* Button Hover Effects */
.error-nav-button {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
}

.error-nav-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
  transition: left 0.5s;
}

.error-nav-button:hover::before {
  left: 100%;
}

/* Responsive Grid */
@media (max-width: 640px) {
  .error-nav-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }
  
  .error-code-text {
    font-size: 5rem;
  }
  
  .error-title {
    font-size: 1.875rem;
  }
  
  .error-message {
    font-size: 1rem;
  }
}

@media (max-width: 480px) {
  .error-code-text {
    font-size: 4rem;
  }
  
  .error-title {
    font-size: 1.5rem;
  }
  
  .error-nav-button {
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
  }
  
  .error-contact-info {
    padding: 1rem;
  }
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
  .error-page {
    background: linear-gradient(135deg, #0a0a0a 0%, #000000 100%);
  }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .error-page {
    background: #000000;
    color: #ffffff;
  }
  
  .error-nav-button {
    border: 2px solid #ffffff;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .error-code {
    animation: none;
  }
  
  .error-nav-button {
    transition: none;
  }
  
  .error-nav-button::before {
    display: none;
  }
}

/* Focus styles for accessibility */
.error-nav-button:focus {
  outline: 3px solid #f97316;
  outline-offset: 2px;
}

.error-back-button:focus {
  outline: 2px solid #f97316;
  outline-offset: 2px;
}

/* Print styles */
@media print {
  .error-page {
    background: white !important;
    color: black !important;
  }
  
  .error-nav-button {
    border: 1px solid black !important;
    background: white !important;
    color: black !important;
  }
} 