/* ── Custom overrides and refinements ── */

html {
    scroll-behavior: smooth;
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Selection color */
::selection {
    background: color-mix(in srgb, #5ebe90 40%, transparent);
    color: #0c1731;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: #f0f3f9;
}
::-webkit-scrollbar-thumb {
    background: #a9b4cc;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #7e8eb0;
}

/* ── Navbar transition ── */
#navbar.scrolled {
    background: rgba(12, 23, 49, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.2);
}

/* ── Hero parallax effect ── */
#hero img {
    will-change: transform;
}

/* ── Service card hover glow ── */
.group:hover .bg-mint-100 {
    box-shadow: 0 0 20px rgba(94, 190, 144, 0.3);
}

/* ── Gallery image overlay on hover ── */
.group {
    position: relative;
    overflow: hidden;
}
.group::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(12, 23, 49, 0.3) 0%, transparent 50%);
    opacity: 0;
    transition: opacity 0.4s ease;
    border-radius: inherit;
}
.group:hover::after {
    opacity: 1;
}

/* ── Form input focus animations ── */
input:focus,
select:focus,
textarea:focus {
    box-shadow: 0 0 0 3px rgba(94, 190, 144, 0.15);
}

/* ── Testimonial card shimmer ── */
.bg-white {
    position: relative;
    overflow: hidden;
}
.bg-white::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(94, 190, 144, 0.03), transparent);
    transition: left 0.6s ease;
}
.bg-white:hover::before {
    left: 100%;
}

/* ── Mobile menu overlay ── */
.mobile-menu {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

/* ── Decorative line animation ── */
.w-20.h-0\.5.bg-mint-400 {
    position: relative;
    overflow: hidden;
}
.w-20.h-0\.5.bg-mint-400::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    animation: shimmer 3s infinite;
}
@keyframes shimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .reveal { opacity: 1 !important; transform: none !important; }
    .group img { transition: none; }
    .group:hover img { transform: none; }
    ::-webkit-scrollbar { width: 4px; }
}

/* ── Print styles ── */
@media print {
    nav, .mobile-menu, #contact-form, .reveal { display: none !important; }
    body { color: #000; background: #fff; }
    .bg-midnight-800, .bg-midnight-900 { background: #1e3360 !important; }
}
