/* Custom styles layered on top of the compiled Tailwind bundle (site.css).
   Shared by every page so the header, hero animation, and collapsible menu
   behave consistently. */

/* Sticky header that stays visible, shrinks on scroll, and shows a solid
   backdrop so it never blends into the page content. */
#site-header {
    background-color: transparent;
}
#site-header.is-scrolled {
    background-color: rgba(255, 255, 255, 0.95);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}
#site-header.is-scrolled .lucide-music {
    height: 1.25rem;
    width: 1.25rem;
}

/* Desktop nav links: give each a full "pill" so the whole button -- not just
   the text -- lights up on hover/active, and keep the label readable on every
   backdrop. Default colors assume a light backdrop (inner pages, or any page
   once the header turns solid white on scroll). */
#site-header nav a {
    padding: 0.45rem 0.95rem;
    border-radius: 9999px;
    transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
#site-header nav a:hover {
    background-color: rgba(107, 142, 35, 0.12);
    color: #5a7a1e;
}
#site-header nav a.font-semibold {
    background-color: rgba(107, 142, 35, 0.14);
}

/* Home page only: while the header is still transparent over the dark hero,
   switch the nav to white text with a soft shadow, and use a translucent
   white pill on hover/active so it stays visible against the photo. */
#site-header.has-hero:not(.is-scrolled) nav a {
    color: #ffffff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
}
#site-header.has-hero:not(.is-scrolled) nav a:hover {
    background-color: rgba(255, 255, 255, 0.22);
    color: #ffffff;
}
#site-header.has-hero:not(.is-scrolled) nav a.font-semibold {
    background-color: rgba(255, 255, 255, 0.28);
    color: #ffffff;
}

/* Collapsible (mobile) menu revealed by the hamburger toggle. */
#mobile-menu {
    display: none;
    background-color: rgba(255, 255, 255, 0.97);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}
#mobile-menu.open {
    display: block;
}
#mobile-menu a {
    display: block;
    padding: 0.875rem 1.5rem;
    color: #2a2622;
    font-weight: 500;
    transition: background-color 0.2s ease, color 0.2s ease;
}
#mobile-menu a:hover,
#mobile-menu a.active {
    color: #6b8e23;
    background-color: rgba(0, 0, 0, 0.03);
}
/* The hamburger and its menu are mobile-only; never show them on desktop. */
@media (min-width: 768px) {
    #mobile-menu {
        display: none !important;
    }
}

/* On narrow portrait screens the wide hero image is cropped by
   `background-size: cover`, so slowly pan it left-to-right to reveal the full
   scene. Only the background animates; foreground content stays put. */
@media (max-width: 768px) and (orientation: portrait) {
    #top {
        animation: hero-pan 24s ease-in-out infinite alternate;
    }
}
@keyframes hero-pan {
    from { background-position: left center; }
    to { background-position: right center; }
}
@media (prefers-reduced-motion: reduce) {
    #top {
        animation: none !important;
    }
}
