/* ── Custom base styles ── */
html {
    scroll-behavior: smooth;
}

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

/* Custom selection color */
::selection {
    background-color: rgba(16, 185, 129, 0.2);
    color: #064e3b;
}

/* ── Navbar transition states ── */
.navbar-scrolled {
    background-color: rgba(254, 253, 248, 0.95) !important;
    backdrop-filter: blur(12px);
    box-shadow: 0 1px 0 rgba(6, 95, 70, 0.08);
}

.navbar-scrolled .menu-line {
    background-color: #065f46 !important;
}

.navbar-scrolled .font-serif {
    color: #065f46 !important;
}

.navbar-scrolled .text-emerald-600 {
    color: #059669 !important;
}

/* ── Mobile menu transitions ── */
.mobile-menu-open {
    opacity: 1 !important;
    pointer-events: all !important;
}

/* Hamburger animation */
.menu-open .menu-line:first-child {
    transform: translateY(5px) rotate(45deg);
}

.menu-open .menu-line:nth-child(2) {
    opacity: 0;
}

.menu-open .menu-line:last-child {
    transform: translateY(-5px) rotate(-45deg);
    width: 1.25rem;
}

/* ── Button active state ── */
button:active {
    transform: scale(0.98);
}

/* ── Smooth focus outlines ── */
input:focus,
select:focus,
textarea:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.15);
}

/* ── Image loading placeholder ── */
img {
    background-color: #d1fae5;
}

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

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

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

::-webkit-scrollbar-thumb:hover {
    background: #34d399;
}

/* ── Print styles ── */
@media print {
    header, footer, #contact-form, .reveal {
        display: none !important;
    }
    body {
        color: #000 !important;
        background: #fff !important;
    }
    a {
        color: #000 !important;
    }
}
