:where(.main-nav) {
    .nav-searchbox.hidden-top {
        top: -100vh;
        transition: top 250ms ease-in-out;
        opacity: 0;
        display: none;
    }

    .nav-searchbox.hidden-top > * {
        display: none;
    }

    .search-icon svg {
        width: 2.4rem;

        &:hover {
            cursor: pointer;
        }

        path {
            fill: var(--color-primary-white);
        }
    }

    .close svg {
        &:hover {
            cursor: pointer;
        }
    }

    .nav-searchbox {
        width: 100%;
        min-height: 28.5rem;
        background: var(--color-brand-navy-opacity-2);
        z-index: var(--z-index-search-modal);
        padding-inline: var(--mobile-padding);
        opacity: 1;
        grid-column: 1 / -1;
        padding-top: 4rem;
    }

    .nav-search-wrap {
        display: flex;
        flex-flow: column;
        justify-content: center;
        align-items: center;
        background: var(--color-brand-navy);
        padding-block: 0 3rem;
        max-width: var(--content-width-wide-2);
        margin-inline: auto;
        font-size: 1.8rem;
    }

    .nav-search-wrap.search-page {
        position: relative !important;
        top: -5rem;
    }

    .nav-search-top {
        display: flex;
        justify-content: space-between;
        max-width: var(--content-width-wide-2);
        margin-inline: auto;
    }

    h2.search-title {
        color: var(--color-primary-white);
        font-size: 4.8rem;
    }

    [data-role="close-search"] svg {
        min-width: 2.1rem;
    }

    [data-role="close-search"] svg path {
        fill: var(--color-primary-white);
    }

    .submit-search {
        background: var(--color-brand-orange);
        border: none;
        color: var(--color-brand-navy);
        transition: all 250ms ease-in;
        font-weight: 500;
        padding: 0;
        border-radius: 0 0.5rem 0.5rem 0;
    }

    .submit-search:hover {
        background: var(--color-brand-pale-blue);
        transition: all 250ms ease-in;
    }

    .close-search {
        display: flex;
    }

    .close-search svg {
        max-width: 2.1rem;
    }

    [data-role~="clearSearch"] {
        background: var(--color-primary-white);
        padding-inline: 2rem;
        border-radius: 0 0.5rem 0.5rem 0;
        height: 100%;
    }

    [data-role~="clearSearch"] svg {
        min-width: 2.1rem;
    }

    .nav-search-wrap :is(input, .ais-Hits-item) {
        font-size: 1.8rem;
        width: 100%;
    }

    .nav-search-wrap .search-result-text .ais-Hits-item {
        color: var(--color-brand-navy);
        font-weight: 600;
        border-radius: 0;
    }

    .nav-search-wrap .search-result-text .ais-Hits-item:hover {
        filter: brightness(0.9);
        text-decoration: none;
    }

    .nav-search-wrap .ais-Hits-item.search-result-title {
        display: grid;
        grid-template-columns: 1fr 15rem;
        justify-content: space-between;

        & > span {
            overflow: hidden;
            text-overflow: ellipsis;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            display: -webkit-box;
        }
    }

    .nav-search-container {
        display: grid;
        grid-template-columns: auto 10rem;
        width: 100%;
    }

    .nav-search,
    .nav-results {
        width: 100%;
    }

    .nav-search-container .ais-SearchBox-form {
        margin-bottom: 0;
    }

    .nav-search-wrap .ais-Hits--empty {
        background: var(--color-primary-white);
        padding-left: 2rem;
    }

    .no-of-search-results {
        color: var(--color-primary-white);
        font-size: 1.8rem;
        margin-top: 1rem;
    }

    .nav-search-wrap .ais-Hits-item {
        line-height: 1.25;
    }
}

/* Search button icon toggle (depends on .nav-searchbox state) */

@supports selector(:has(+ *)) {
    .site-header:not(.visibility-hidden):has(.nav-searchbox.hidden-top) .search .close svg {
        display: none;
    }

    .site-header:not(.visibility-hidden):has(.nav-searchbox:not(.hidden-top)) .search .close svg {
        display: block;
    }

    .site-header:not(.visibility-hidden):has(.nav-searchbox:not(.hidden-top)) .search .search-icon svg {
        display: none;
    }
}

.site-header:not(.visibility-hidden) .search .close svg {
    display: none;
}

@media screen and (max-width: 1024px) {
    :where(.main-nav) {
        .search-title {
            display: none;
        }

        .nav-results {
            max-height: 50dvh;
            overflow: auto;
        }
    }
}
