.vi-menu-search-menu-item {
    position: relative;
}

.vi-menu-search__trigger,
.vi-menu-search__submit,
.vi-menu-search__close {
    font: inherit;
}

.vi-menu-search__trigger {
    color: inherit;
    cursor: pointer;
    text-decoration: none;
}

.vi-menu-search__trigger-inner {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: .4em;
    white-space: nowrap;
}

.vi-menu-search__icon {
    display: inline-block;
    flex: 0 0 auto;
}

.vi-menu-search__panel {
    position: absolute;
    z-index: 9999;
    top: calc(100% + 8px);
    right: 0;
    min-width: max-content;
    padding: 12px;
    background: var(--vims-background);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .14);
}

/* Never allow theme CSS to expose a closed search panel. */
.vi-menu-search__panel[hidden] {
    display: none !important;
}

.vi-menu-search__form {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

.vi-menu-search__field {
    box-sizing: border-box;
    width: var(--vims-field-width);
    max-width: min(85vw, var(--vims-field-width));
    height: var(--vims-field-height);
    border: var(--vims-border-width) solid var(--vims-border-color);
    border-radius: var(--vims-border-radius);
    background: var(--vims-background);
    color: var(--vims-text-color);
    font-size: var(--vims-font-size);
    line-height: 1.2;
    padding: 0 var(--vims-horizontal-padding);
    outline: none;
}

.vi-menu-search__field::placeholder {
    color: var(--vims-placeholder-color);
    opacity: 1;
}

.vi-menu-search__field:focus {
    border-color: var(--vims-focus-border-color);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--vims-focus-border-color) 25%, transparent);
}

.vi-menu-search__submit {
    min-height: var(--vims-field-height);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35em;
    cursor: pointer;
}

.vi-menu-search__results {
    width: var(--vims-field-width);
    max-width: 85vw;
    margin-top: 8px;
}

.vi-menu-search__results-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.vi-menu-search__result-link {
    display: block;
    padding: 9px 10px;
    text-decoration: none;
}

.vi-menu-search__result-link:hover,
.vi-menu-search__result-link:focus {
    background: rgba(0, 0, 0, .06);
}

.vi-menu-search__result-title,
.vi-menu-search__result-type {
    display: block;
}

.vi-menu-search__result-type,
.vi-menu-search__status {
    font-size: .82em;
    opacity: .72;
}

/* Takeover mode is moved into a suitable header/nav host by JavaScript. */
.vi-menu-search-takeover-host {
    position: relative;
}

.vi-menu-search-takeover-host > .vi-menu-search__panel--takeover {
    position: absolute;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 8px 12px;
    background: var(--vims-takeover-background, var(--vims-background));
    box-shadow: none;
}

.vi-menu-search-takeover-host > .vi-menu-search__panel--takeover .vi-menu-search__form {
    width: 100%;
}

.vi-menu-search-takeover-host > .vi-menu-search__panel--takeover .vi-menu-search__field {
    flex: 1 1 auto;
    width: auto;
    max-width: none;
}

.vi-menu-search__branding-hidden {
    visibility: hidden !important;
}

.vi-menu-search__close {
    display: none;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
    padding: 4px 6px;
}

.vi-menu-search__panel--takeover .vi-menu-search__close {
    display: inline-flex;
}

@media (max-width: 600px) {
    .vi-menu-search__panel:not(.vi-menu-search__panel--takeover) {
        right: auto;
        left: 0;
    }
}

/* Device visibility. These classes are applied to the menu <li>, so the entire search item is removed at the selected breakpoint. */
@media (max-width: 767px) {
    .vi-menu-search-menu-item.vi-menu-search--hide-mobile {
        display: none !important;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .vi-menu-search-menu-item.vi-menu-search--hide-tablet {
        display: none !important;
    }
}

@media (min-width: 1025px) {
    .vi-menu-search-menu-item.vi-menu-search--hide-desktop {
        display: none !important;
    }
}

/* Divi 4 compatibility: the mobile navigation is cloned and can carry its own stacking rules. */
#main-header.vi-menu-search-takeover-host,
.et-l--header.vi-menu-search-takeover-host {
    isolation: isolate;
}

#main-header.vi-menu-search-takeover-host > .vi-menu-search__panel--takeover,
.et-l--header.vi-menu-search-takeover-host > .vi-menu-search__panel--takeover {
    z-index: 2147483000;
    width: 100%;
    max-width: none;
}
