    *, *::before, *::after { box-sizing: border-box; }
    html { scroll-behavior: smooth; scroll-padding-top: 80px; }
    body { overflow-x: hidden; }

    ::selection { background: #A7F3D0; color: #064E3B; }

    .service-card { transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.4s ease; }
    .service-card:hover { transform: translateY(-4px); }

    .mobile-link { transition: color 0.2s ease, padding-left 0.2s ease; }
    .mobile-link:hover { color: #047857; padding-left: 8px; }

    /* Mobile menu open state */
    #mobileMenu.open { display: block; animation: fadeIn 0.25s ease; }
    #mobileMenu.hidden { display: none; }
    @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

    /* Hamburger animation */
    #menuBtn[aria-expanded="true"] .menu-line:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    #menuBtn[aria-expanded="true"] .menu-line:nth-child(2) { opacity: 0; transform: scaleX(0); }
    #menuBtn[aria-expanded="true"] .menu-line:nth-child(3) { transform: translateY(-6px) rotate(-45deg); width: 5rem; }

    /* Scroll reveal — progressive enhancement, only active when JS runs and user prefers motion */
    .reveal {
        opacity: 1;
        transform: none;
        transition: opacity 0.6s ease, transform 0.6s ease;
    }
    @media (prefers-reduced-motion: no-preference) {
        .js .reveal {
            opacity: 0;
            transform: translateY(24px);
        }
        .js .reveal.revealed {
            opacity: 1;
            transform: translateY(0);
        }
        .js .reveal-delay-1 { transition-delay: 0.1s; }
        .js .reveal-delay-2 { transition-delay: 0.2s; }
        .js .reveal-delay-3 { transition-delay: 0.3s; }
    }

    /* Custom select arrow */
    select {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 1rem center;
        padding-right: 2.5rem;
    }
