/* Custom styles that extend Tailwind */

/* Ensure smooth rendering */
* {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Prevent content flash on load */
body {
    opacity: 1;
}

/* Mobile menu overlay backdrop */
.mobile-menu::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(5, 46, 22, 0.3);
    backdrop-filter: blur(4px);
}

/* Ensure all text is readable */
.text-sunset-dark {
    color: #0a1f14;
}

.text-sunset-emerald-700 {
    color: #15803d;
}

.text-sunset-emerald-800 {
    color: #166534;
}

/* Service card image overlay on hover */
.service-card .img-zoom::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10, 31, 20, 0.1) 0%, transparent 40%);
    pointer-events: none;
    border-radius: inherit;
}

/* Ensure contrast on all backgrounds */
.bg-sunset-emerald-800 .font-display,
.bg-sunset-emerald-950 .font-display,
.bg-sunset-dark .font-display {
    color: #fefdf8;
}

/* Active navigation state based on scroll */
.nav-link.active {
    color: #166534;
}

.nav-link.active::after {
    width: 100%;
}

/* Form input focus ring */
.form-input:focus {
    border-color: #166534;
}

/* Print styles */
@media print {
    .mobile-menu,
    #backToTop,
    .geo-circle,
    .geo-triangle,
    .geo-rectangle {
        display: none !important;
    }
    
    body {
        color: #000;
        background: #fff;
    }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .service-card {
        border-width: 2px;
    }
    
    .form-input {
        border-width: 2px;
    }
}
