.product-search {
    box-sizing: border-box;
    font-family: "Karla", sans-serif;
    position: relative;
    text-align: left;
    z-index: 40;
}

.product-search *,
.product-search *::before,
.product-search *::after {
    box-sizing: border-box;
}

.product-search__box {
    position: relative;
    width: 100%;
}

.product-search__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.product-search__icon {
    color: #707070;
    font-size: 14px;
    left: 14px;
    line-height: 1;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
}

.product-search__input {
    appearance: none;
    background: #fff;
    border: 1px solid #d7d9e2;
    border-radius: 999px;
    color: #333;
    font: 400 14px/1 "Karla", sans-serif;
    height: 38px;
    margin: 0;
    outline: 0;
    padding: 0 15px 0 38px;
    width: 100%;
}

.product-search__input::-webkit-search-cancel-button {
    cursor: pointer;
}

.product-search__input:focus {
    border-color: #3f51b5;
    box-shadow: 0 0 0 3px rgba(63, 81, 181, 0.14);
}

.product-search__input::placeholder {
    color: #777;
    opacity: 1;
}

.product-search__results {
    background: #fff;
    border: 1px solid #e0e2ea;
    border-radius: 10px;
    box-shadow: 0 10px 28px rgba(18, 28, 72, 0.18);
    max-height: min(390px, calc(100vh - 145px));
    overflow-x: hidden;
    overflow-y: auto;
    position: absolute;
    top: calc(100% + 8px);
    width: 360px;
    z-index: 1000001;
}

.product-search__results[hidden] {
    display: none;
}

.product-search__result {
    align-items: center;
    border-bottom: 1px solid #edf0f5;
    color: #333;
    display: flex;
    gap: 11px;
    min-height: 62px;
    padding: 8px 11px;
    text-decoration: none;
}

.product-search__result:first-child {
    border-radius: 9px 9px 0 0;
}

.product-search__result:last-child {
    border-bottom: 0;
    border-radius: 0 0 9px 9px;
}

.product-search__result:hover,
.product-search__result:focus,
.product-search__result.is-active {
    background: #f1f3ff;
    color: #283a9f;
    outline: 0;
    text-decoration: none;
}

.product-search__result-image {
    background: #f6f7fa;
    border: 1px solid #eceef4;
    border-radius: 6px;
    flex: 0 0 46px;
    height: 46px;
    object-fit: contain;
    padding: 3px;
    width: 46px;
}

.product-search__result-image--empty {
    display: block;
}

.product-search__result-text {
    display: block;
    line-height: 1.2;
    min-width: 0;
}

.product-search__result-name,
.product-search__result-category {
    display: block;
}

.product-search__result-name {
    color: inherit;
    font: 700 14px/1.2 "Karla", sans-serif;
}

.product-search__result-category {
    color: #6d7180;
    font: 400 12px/1.25 "Karla", sans-serif;
    margin-top: 4px;
}

.product-search__message {
    color: #555;
    font: 400 14px/1.35 "Karla", sans-serif;
    margin: 0;
    padding: 16px;
}

.product-search__message.is-error {
    color: #9b2c2c;
}

.product-search--desktop {
    display: block;
    flex: 0 0 150px;
    height: 38px;
    margin-left: 8px;
    width: 150px;
}

.product-search--desktop .product-search__box {
    position: absolute;
    right: 0;
    transition: width 0.25s ease;
    width: 150px;
}

.product-search--desktop.is-focused .product-search__box {
    width: 230px;
}

.product-search--desktop .product-search__results {
    right: 0;
}

.product-search--mobile {
    display: none;
}

@media only screen and (min-width: 992px) {
    .header-bottomarea .tm-navigation > ul {
        transform: translateX(0);
        transition: transform 0.25s ease;
    }

    .header-bottomarea.product-search-has-focus .tm-navigation > ul {
        transform: translateX(-80px);
    }
}

@media only screen and (min-width: 1200px) {
    .header-logo {
        flex: 0 0 190px;
        max-width: 190px;
    }

    .tm-navigation > ul > li > a {
        padding-left: 12px;
        padding-right: 12px;
        white-space: nowrap;
    }
}

@media only screen and (min-width: 992px) and (max-width: 1199px) {
    .header-logo {
        flex: 0 0 125px;
        max-width: 125px;
    }

    .tm-navigation ul li a {
        font-size: 13px;
        padding-left: 7px;
        padding-right: 7px;
        white-space: nowrap;
    }

    .header-icons {
        padding-left: 8px;
    }

    .header-icons .tm-button.tm-button-sm {
        font-size: 13px;
        padding-left: 13px;
        padding-right: 13px;
        white-space: nowrap;
    }

    .product-search--desktop {
        flex-basis: 140px;
        margin-left: 5px;
        width: 140px;
    }

    .product-search--desktop .product-search__box {
        width: 140px;
    }

    .product-search--desktop.is-focused .product-search__box {
        width: 220px;
    }
}

@media only screen and (max-width: 991px) {
    .product-search--desktop {
        display: none;
    }

    .product-search--mobile {
        display: block;
        padding: 0 0 12px;
        width: 100%;
    }

    .product-search--mobile .product-search__results {
        left: 0;
        right: 0;
        width: 100%;
    }

    .header-mobilemenu.has-product-search .mean-container a.meanmenu-reveal {
        margin-top: -107px;
    }
}

@media only screen and (max-width: 360px) {
    .header-logo {
        flex: 0 0 108px;
        max-width: 108px;
    }

    .header-icons {
        padding-left: 5px;
        padding-right: 31px;
    }

    .header-icons .tm-button.tm-button-sm {
        font-size: 12px;
        padding-left: 10px;
        padding-right: 10px;
        white-space: nowrap;
    }

    .product-search__input {
        font-size: 13px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .product-search--desktop .product-search__box,
    .header-bottomarea .tm-navigation > ul {
        transition: none;
    }
}
