/* Custom styles beyond Tailwind */

/* Smooth focus outlines */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
    outline: 2px solid #2a8a6f;
    outline-offset: 2px;
    border-radius: 4px;
}

/* Selection color */
::selection {
    background-color: #d5efea;
    color: #1e6d56;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
    background: #94a3b8;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #64748b;
}

/* Mobile menu transitions */
#mobile-menu:not(.hidden) {
    display: block;
}

#mobile-panel {
    transition: transform 0.3s ease;
}

#mobile-menu.open #mobile-panel {
    transform: translateX(0);
}

#mobile-menu.open #mobile-panel {
    transform: translateX(0);
}

/* Hamburger animation */
#mobile-menu.open #bar1 {
    transform: rotate(45deg) translate(5px, 5px);
}
#mobile-menu.open #bar2 {
    opacity: 0;
}
#mobile-menu.open #bar3 {
    transform: rotate(-45deg) translate(5px, -5px);
    width: 1.5rem;
}

/* Image lazy load fade */
img[loading="lazy"] {
    transition: opacity 0.5s ease;
}

/* Prevent FOUC on dark sections */
.bg-slate-900, .bg-slate-800 {
    background-color: #0f172a;
}
