.nav-search-link {
    display: inline-flex;
    width: 44px;
    height: 44px;

    align-items: center;
    justify-content: center;

    border-radius: 8px;
}

.nav-search-link:hover,
.nav-search-link:focus-visible,
.nav-search-link[aria-current="page"] {
    color: var(--accent);
    background: var(--input);
}

.nav-search-link:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.nav-search-icon {
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
}

.nav-search-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;

    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/*
 * Desktop navigation uses the three site categories as mega-menu columns.
 * The existing Nunjucks markup stays the source of truth, so new tools and
 * guides continue to appear automatically from site.json.
 */
@media (min-width: 621px) {
    .nav-dropdown-menu {
        position: fixed;
        top: 72px;
        left: 50%;
        right: auto;
        width: min(960px, calc(100vw - 32px));
        transform: translateX(-50%);
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 16px;
        row-gap: 10px;
        align-items: start;
    }

    .nav-dropdown-all {
        grid-column: 1 / -1;
    }

    .nav-dropdown-group {
        min-width: 0;
        padding-top: 12px;
    }

    .nav-dropdown-group a:not(.nav-dropdown-all) {
        padding: 8px 10px;
    }
}

@media (max-width: 620px) {
    .nav-search-link {
        width: 100%;
        height: auto;
        min-height: 44px;
        padding: 12px;

        justify-content: flex-start;
        gap: 10px;
    }

    .nav-search-label {
        position: static;
        width: auto;
        height: auto;
        margin: 0;

        overflow: visible;
        clip: auto;
        white-space: normal;
    }

    .nav-dropdown-menu {
        grid-template-columns: 1fr;
    }

    .nav-dropdown-group {
        padding-top: 6px;
    }

    .nav-dropdown-heading[role="button"] {
        min-height: 44px;
        padding: 11px 10px;

        justify-content: space-between;
        gap: 12px;

        border-radius: 7px;
        cursor: pointer;
    }

    .nav-dropdown-heading[role="button"]::after {
        flex: 0 0 auto;
        width: 8px;
        height: 8px;

        background: transparent;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: translateY(-2px) rotate(45deg);
        transition: transform 0.18s ease;
    }

    .nav-dropdown-heading[role="button"][aria-expanded="true"]::after {
        transform: translateY(2px) rotate(225deg);
    }

    .nav-dropdown-heading[role="button"]:hover,
    .nav-dropdown-heading[role="button"]:focus-visible {
        color: var(--accent);
        background: var(--background);
    }

    .nav-dropdown-heading[role="button"]:focus-visible {
        outline: 2px solid var(--accent);
        outline-offset: 2px;
    }

    .nav-dropdown-group.is-collapsed > a {
        display: none;
    }

    .nav-dropdown-group > a {
        margin-left: 6px;
    }
}
