/* Global Styles - Additional custom styles */

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

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #FFFAF8;
}

::-webkit-scrollbar-thumb {
    background: #6B1D2A;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #4A101A;
}

/* Selection color */
::selection {
    background: #6B1D2A;
    color: #FFFFFF;
}

/* Focus styles for accessibility */
:focus-visible {
    outline: 2px solid #6B1D2A;
    outline-offset: 2px;
}

/* Print styles */
@media print {
    .navbar,
    .mobile-menu,
    .hero-visual,
    .cta {
        display: none;
    }
    
    body {
        color: #000;
        background: #fff;
    }
    
    .hero {
        min-height: auto;
        padding: 40px 20px;
    }
    
    .service-card,
    .testimonial-card {
        break-inside: avoid;
    }
}

/* High contrast mode support */
@media (forced-colors: active) {
    .btn-primary,
    .btn-secondary,
    .nav-cta {
        border: 2px solid currentColor;
    }
}

/* Reduced motion - ensure content is always visible */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    
    html {
        scroll-behavior: auto;
    }
}

/* Touch device optimizations */
@media (hover: none) and (pointer: coarse) {
    .service-card:hover {
        transform: none;
    }
    
    .btn-primary:hover,
    .btn-secondary:hover,
    .nav-cta:hover {
        transform: none;
    }
}

/* Landscape mobile optimization */
@media (max-height: 500px) and (orientation: landscape) {
    .hero {
        min-height: auto;
        padding: 100px 2rem 60px;
    }
    
    .hero-visual {
        display: none;
    }
}

/* Very small screens */
@media (max-width: 360px) {
    .nav-container {
        padding: 0 1rem;
    }
    
    .hero {
        padding: 100px 1rem 60px;
    }
    
    .stat-card {
        padding: 0.75rem 1rem;
    }
    
    .stat-card .stat-number {
        font-size: 1.25rem;
    }
}

/* Large screen optimization */
@media (min-width: 1920px) {
    .container {
        max-width: 1600px;
    }
    
    .hero-container {
        gap: 6rem;
    }
}

/* Dark mode support (system preference) */
@media (prefers-color-scheme: dark) {
    /* Only apply if site is viewed in dark mode context */
    /* Current design uses light theme throughout */
}

/* Accessibility: Skip to content link */
.skip-to-content {
    position: absolute;
    top: -40px;
    left: 0;
    background: #6B1D2A;
    color: #FFFFFF;
    padding: 8px 16px;
    z-index: 10000;
    transition: top 0.3s;
}

.skip-to-content:focus {
    top: 0;
}

/* Image loading placeholder */
img {
    background-color: #F5E6E0;
}

/* Loading state for form */
.form-submit:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

/* Form validation styles */
.form-group input:invalid:not(:placeholder-shown),
.form-group textarea:invalid:not(:placeholder-shown),
.form-group select:invalid:not(:placeholder-shown) {
    border-color: #6B1D2A;
}

/* Success state for form inputs */
.form-group input:valid:not(:placeholder-shown),
.form-group textarea:valid:not(:placeholder-shown) {
    border-color: #6B1D2A;
}
