/* Custom styles beyond Tailwind */

/* Smooth scroll offset for fixed nav */
section[id] {
    scroll-margin-top: 80px;
}

/* Selection color */
::selection {
    background: rgba(79, 191, 152, 0.3);
    color: #ffffff;
}

/* Focus visible styles */
*:focus-visible {
    outline: 2px solid #4FBF98;
    outline-offset: 2px;
}

/* Subtle gradient text for special emphasis */
.text-gradient-mint {
    background: linear-gradient(135deg, #ABE8D0, #2EAA7E);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Navbar transition */
#navbar {
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

/* Menu card image hover */
.menu-card img {
    transition: transform 0.5s ease;
}
.menu-card:hover img {
    transform: scale(1.05);
}
.menu-card .sm\\:w-48 {
    overflow: hidden;
}

/* Testimonial card hover */
.gradient-border {
    transition: border-color 0.3s ease, transform 0.3s ease;
}
.gradient-border:hover {
    border-color: rgba(79, 191, 152, 0.3);
}

/* Input autofill styling */
input:-webkit-autofill,
textarea:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 30px #0F2035 inset !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* Animated underline for nav links */
nav a:not(.bg-mint-500) {
    position: relative;
}
nav a:not(.bg-mint-500)::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1px;
    background: #4FBF98;
    transition: width 0.2s ease;
}
nav a:not(.bg-mint-500):hover::after {
    width: 100%;
}

/* Pulse animation for the dot */
@keyframes pulse-subtle {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}
.animate-pulse {
    animation: pulse-subtle 2s ease-in-out infinite;
}

/* Mobile menu button animation */
.menu-line:last-child {
    transform-origin: left center;
}
.mobile-menu.open ~ .flex .menu-line:last-child,
#mobile-menu.open ~ .flex .menu-line:last-child {
    transform: scaleX(0.66);
}
