/* KJ & E STOP & Go - Custom Styles */
/* This file supplements the inline styles and Tailwind CSS */

/* Base Typography */
html {
    font-size: 16px;
    scroll-behavior: smooth;
}

body {
    font-family: 'Lato', sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Playfair Display', serif;
    font-weight: 700;
    line-height: 1.2;
}

/* Focus States for Accessibility */
a:focus-visible,
button:focus-visible {
    outline: 2px solid #9a2929;
    outline-offset: 2px;
    border-radius: 4px;
}

/* Selection Color */
::selection {
    background-color: #9a2929;
    color: white;
}

::-moz-selection {
    background-color: #9a2929;
    color: white;
}

/* Smooth Image Loading */
img {
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* Print Styles */
@media print {
    .hero,
    .cta-section,
    .gallery-overlay {
        display: none;
    }
    
    body {
        color: #000;
        background: #fff;
    }
    
    a {
        text-decoration: underline;
    }
}

/* Reduced Motion Preferences */
@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;
    }
}

/* High Contrast Mode */
@media (forced-colors: active) {
    .btn-primary {
        border: 2px solid ButtonText;
    }
    
    .service-card {
        border: 1px solid ButtonText;
    }
}

/* Touch Device Optimizations */
@media (hover: none) {
    .gallery-overlay {
        opacity: 1;
        background: linear-gradient(to top, rgba(42, 10, 10, 0.6) 0%, transparent 40%);
    }
    
    .service-card:hover {
        transform: none;
    }
}
