/* Custom styles complementing Tailwind and inline styles */

/* Smooth transitions for interactive elements */
a, button, .service-card, .testimonial-card, .stat-card {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Focus styles for accessibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 2px solid #3d8a3d;
    outline-offset: 2px;
    border-radius: 4px;
}

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

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

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

::-webkit-scrollbar-thumb:hover {
    background: #5fa85f;
}

/* Selection color */
::selection {
    background: #d9edda;
    color: #1d451d;
}

/* Print styles */
@media print {
    .navbar, .hamburger, .mobile-menu, .cta, .map-section {
        display: none !important;
    }
    
    body {
        background: white !important;
        color: #4a3728 !important;
    }
    
    .hero {
        min-height: auto;
        padding: 2rem 1rem;
    }
    
    section {
        padding: 2rem 1rem;
    }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .service-card {
        border: 2px solid #245724;
    }
    
    .btn-primary {
        border: 2px solid #ffffff;
    }
}

/* Reduced motion - ensure animations are disabled */
@media (prefers-reduced-motion: reduce) {
    .stat-card {
        animation: none !important;
    }
    
    .reveal {
        opacity: 1 !important;
        transform: none !important;
    }
    
    html {
        scroll-behavior: auto;
    }
    
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Ensure proper rendering on all devices */
img {
    max-width: 100%;
    height: auto;
}

/* Prevent text overflow issues */
.hero-title, .section-title, .about-content h2 {
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Improve touch targets on mobile */
@media (max-width: 768px) {
    .nav-link, .btn-primary, .btn-secondary, .btn-white, .btn-outline-white {
        min-height: 44px;
        min-width: 44px;
    }
    
    .form-group input,
    .form-group select,
    .form-group textarea {
        font-size: 16px; /* Prevents zoom on iOS */
    }
}
