/* ==========================================================================
   OPTIMUS SEARCH 3.1.34
   Scoped to .optimus_search. Mobile = 879px and below, desktop = 880px and up.
   ========================================================================== */

/* --------------------------------------------------------------------------
   BASE
   -------------------------------------------------------------------------- */

.optimus_search {
    position: relative;
    z-index: 20;
    font-family: inherit;
    line-height: 1.35;
}

.optimus_search * {
    box-sizing: border-box;
}

/* Triggers */

.optimus_trigger_wrapper {
    display: flex;
    align-items: center;
}

.optimus_mobile_trigger_wrapper {
    display: none;
    align-items: center;
}

.optimus_trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    cursor: pointer;
}

.optimus_trigger_icon img,
.optimus_mobile_trigger_icon img {
    display: block;
    max-width: 100%;
    height: auto;
}

/* Search bar (desktop only, hidden on mobile) */

.optimus_search_input_trigger_wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    width: min(100%, 600px);
    max-width: 150px;
    height: 45px;
    max-height: 27px;
    padding: 0 10px;
    border: 1px solid #555555;
    border-radius: 12px;
    background: #fff;
}

.optimus_search_input_icon {
    flex: 0 0 auto;
    line-height: 1;
}

span.optimus_search_input_icon {
    margin-bottom: 1px;
    font-size: 20px;
}

.optimus_search_input_field {
    flex: 1;
    min-width: 0;
    height: 43px;
    padding: 0 4px !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    line-height: 43px;
}

input.optimus_search_input_field {
    max-height: 24px;
    margin-bottom: 3px;
    margin-left: -5px;
    font-size: 14px;
}

input.optimus_search_input_field::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
    display: none;
}

.optimus_search_input_clear {
    display: none;
    padding: 0 5px;
    background: none;
    line-height: 1;
    cursor: pointer;
}

button.optimus_search_input_clear {
    margin-right: -10px;
    margin-bottom: 4px;
    padding-left: 5px;
    border: 0;
    background-color: #ffffff00 !important;
    color: #555555;
    font-size: 20px;
    font-weight: 800;
}

.optimus_search_input_trigger_wrapper:focus-within .optimus_search_input_clear {
    display: block;
}

/* Collapsible search bar (desktop): only the icon shows; clicking it wipes the bar open to the left */

.optimus_collapsible .optimus_desktop_trigger_wrapper {
    position: relative;
}

button.optimus_search_toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    cursor: pointer;
}

button.optimus_search_toggle::before {
    content: "";
    display: block;
    width: 19.5px;
    height: 19.5px;
    margin-top: 0.5px;
    background: url("../images/search-icon.webp") center / contain no-repeat;
}

.optimus_collapsible .optimus_search_input_trigger_wrapper {
    position: absolute;
    top: 50%;
    right: calc(100% + 10px);
    z-index: 2;
    width: 150px;
    transform: translateY(-50%);
    clip-path: inset(0 0 0 100% round 12px);
    opacity: 0;
    visibility: hidden;
    transition: clip-path .4s cubic-bezier(.22, .61, .36, 1), opacity .4s ease, visibility 0s linear .4s;
}

.optimus_collapsible.optimus_bar_open .optimus_search_input_trigger_wrapper {
    clip-path: inset(0 0 0 0 round 12px);
    opacity: 1;
    visibility: visible;
    transition: clip-path .4s cubic-bezier(.22, .61, .36, 1), opacity .4s ease, visibility 0s;
}

/* Themes often animate inputs (transition: all), which would delay the input becoming focusable when the bar opens */
.optimus_collapsible .optimus_search_input_field {
    transition: none !important;
}

/* The icon sits right next to the bar, so the bar's own magnifier is hidden (and the input no longer needs pulling toward it) */
.optimus_collapsible .optimus_search_input_icon {
    display: none;
}

.optimus_collapsible input.optimus_search_input_field {
    margin-left: 0;
}

@media (prefers-reduced-motion: reduce) {
    .optimus_collapsible .optimus_search_input_trigger_wrapper,
    .optimus_collapsible.optimus_bar_open .optimus_search_input_trigger_wrapper {
        transition: none;
    }
}

/* Search bar dropdown panel (desktop only) */

.optimus_search_input_panel_wrapper {
    display: none;
    position: fixed !important;
    top: 0;
    right: 0;
    left: auto !important;
    z-index: 2147483001;
    width: auto;
    max-width: none;
    margin-top: 10px;
    border: solid 1px black;
}

.optimus_input_open .optimus_search_input_panel_wrapper {
    display: block;
}

.optimus_trigger_button .optimus_search_input_panel_wrapper,
.optimus_trigger_icon .optimus_search_input_panel_wrapper {
    display: none !important;
}

.optimus_search_input_panel {
    display: flex;
    flex-direction: column;
    width: min(600px, calc(100vw - 20px));
    max-width: 600px;
    max-height: calc(100dvh - 20px);
    overflow: hidden;
    border: 0;
    background: #fff;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .12);
}

.optimus_search_input_main_wrapper {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
    flex: 0 1 auto;
    height: auto;
    min-height: 0;
    max-height: calc(100dvh - 20px);
    overflow: hidden;
}

.optimus_search_results_wrapper,
.optimus_product_details_wrapper {
    align-self: stretch;
    min-width: 0;
    min-height: 0;
    padding: 22px 18px;
}

.optimus_search_results_wrapper {
    overflow: auto;
}

.optimus_product_details_wrapper {
    overflow: visible;
    border-left: 1px solid #e7e7e7;
}

.optimus_details_left .optimus_search_results_wrapper {
    order: 2;
}

.optimus_details_left .optimus_product_details_wrapper {
    order: 1;
    border-left: 0;
    border-right: 1px solid #e7e7e7;
}

/* Results list */

.optimus_search_results_header_wrapper,
.optimus_overlay_results_header_wrapper {
    margin: 0 0 14px;
}

.optimus_search_results_header,
.optimus_overlay_results_header {
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.optimus_search_results_header {
    font-family: "Poppins";
    font-weight: 400;
}

.optimus_overlay_results_header {
    font-weight: 500;
}

.optimus_search_results_list {
    display: flex;
    flex-direction: column;
}

.optimus_search_result_wrapper {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 12px 0;
    border-bottom: 1px solid #eee;
    color: inherit;
    text-decoration: none;
}

.optimus_search_result_image_wrapper {
    flex: 0 0 70px;
    width: 70px;
    height: 70px;
}

.optimus_search_result_image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.optimus_search_result_content_wrapper {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.optimus_search_result_title {
    font-weight: 600;
    line-height: 1.25;
}

.optimus_search_result_price {
    display: block;
    white-space: nowrap;
}

/* Prices */

.optimus_price_sale_stack,
.optimus_price_regular,
.optimus_price_sale,
.optimus_price_single {
    display: block;
    white-space: nowrap;
}

.optimus_price_regular {
    margin: 0;
    text-decoration: line-through;
}

.optimus_price_sale {
    font-weight: 600;
}

/* Product details preview (desktop only, hidden on mobile) */

.optimus_product_details_inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
}

.optimus_product_details_image_wrapper {
    width: 100%;
    min-width: 0;
}

.optimus_product_details_image_link {
    display: block;
}

.optimus_product_details_image {
    display: block;
    width: 100%;
    height: auto;
    max-height: 330px;
    object-fit: contain;
}

img.optimus_product_details_image {
    border: solid 1px #bdbdbdbf;
}

.optimus_product_details_content_wrapper {
    width: 100%;
    min-width: 0;
}

.optimus_product_details_title_link {
    color: inherit;
    text-decoration: none;
}

.optimus_product_details_title {
    margin: 0 0 12px;
    line-height: 1.08;
}

h3.optimus_product_details_title {
    font-size: 21px;
}

.optimus_product_details_price {
    margin-bottom: 8px;
    font-size: 15px;
    white-space: nowrap;
}

.optimus_product_details_sku,
.optimus_product_details_stock {
    margin: 5px 0;
}

.optimus_product_details_sku {
    font-size: 13px;
}

.optimus_product_details_stock {
    width: 100px;
    padding-top: 2px;
    padding-bottom: 3px;
    border: solid 1px #999999;
    background-color: #e4ffe5;
    font-size: 11px;
    font-weight: 600;
    text-align: center;
}

.optimus_product_details_short_description {
    max-width: 100%;
    margin: 14px 0;
    font-size: 14px;
    line-height: 1.55;
}

p.optimus_product_details_short_description {
    padding-top: 10px;
    border-top: solid 1px #bababa;
}

.optimus_product_actions_wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 16px 0 8px;
}

.optimus_product_action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 11px 17px;
    border: 1px solid currentColor;
    background: #fff;
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}

.optimus_product_add_to_cart {
    font: inherit;
}

.optimus_product_buy_now {
    background: #111;
    color: #fff;
}

.optimus_product_view_product,
.optimus_product_view_options {
    margin-top: 6px;
}

/* Shown under the buttons when Add to Cart / Buy Now fails */
.optimus_product_action_message {
    margin-top: 8px;
    color: #b3261e;
    font-size: 13px;
    line-height: 1.4;
}

/* Temporary: hide "View product" in the preview */
a.optimus_product_action.optimus_product_view_product {
    display: none;
}

button.optimus_product_action.optimus_product_add_to_cart {
    width: auto;
    padding: 11px 20px;
    border: solid 1px #858585de;
    background-color: #000000;
    color: #ffffff;
    font-family: "Poppins";
    font-size: 13px;
    font-weight: 500;
    transition: transform 0.3s ease, background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

button.optimus_product_action.optimus_product_add_to_cart:hover {
    border-color: #000000;
    background-color: #ffffff;
    color: #000000;
    transform: scale(1.03);
}

/* Loading and empty states */

.optimus_loading_wrapper {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.optimus_loading_skeleton {
    height: 70px;
    background: linear-gradient(90deg, #f1f1f1, #fafafa, #f1f1f1);
    background-size: 200% 100%;
    animation: optimusShimmer 1.1s infinite;
}

.optimus_loading_skeleton_result {
    width: 100%;
}

@keyframes optimusShimmer {
    to {
        background-position: -200% 0;
    }
}

.optimus_empty,
.optimus_min_chars {
    padding: 18px 0;
    font-size: 14px;
}

/* Search history */

.optimus_history_section_wrapper {
    width: 100%;
}

.optimus_history_title_wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.optimus_history_title {
    font-size: 14px;
    font-weight: 600;
}

.optimus_history_clear {
    padding: 6px 10px;
    background: #fff;
    cursor: pointer;
}

.optimus_history_list_wrapper {
    display: flex;
    flex-direction: column;
}

.optimus_history_term_wrapper,
.optimus_history_product_wrapper {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 10px 0;
    border: 0;
    border-bottom: 1px solid #eee;
    background: none;
    color: inherit;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
}

.optimus_history_term_icon {
    font-size: 18px;
}

.optimus_history_term_text {
    font-size: 14px;
}

.optimus_history_product_image_wrapper {
    flex: 0 0 70px;
    width: 70px;
    height: 70px;
}

.optimus_history_product_image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.optimus_history_product_content_wrapper {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.optimus_history_product_title {
    font-size: 14px;
    line-height: 1.25;
}

.optimus_history_product_price {
    font-size: 13px;
    white-space: nowrap;
}

.optimus_history_product_price .optimus_price_regular {
    margin-right: 6px;
}

/* Upsells (shared) */

.optimus_upsells_wrapper {
    flex: 0 0 auto;
    width: 100%;
    padding: 18px 22px 22px;
    border-top: 1px solid #eee;
}

.optimus_upsells_header_wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.optimus_upsells_title {
    font-family: "Poppins";
    font-size: 16px;
}

.optimus_upsells_see_all {
    color: inherit;
    font-size: 13px;
    text-decoration: underline;
}

.optimus_upsells_products_viewport_wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
}

.optimus_upsells_products_wrapper {
    display: flex;
    gap: 14px;
    width: 100%;
    overflow-x: auto;
    scroll-behavior: smooth;
    scrollbar-width: none;
}

.optimus_upsells_products_wrapper::-webkit-scrollbar {
    display: none;
}

.optimus_upsell_product_wrapper {
    display: flex;
    flex-direction: column;
    flex: 0 0 calc(25% - 11px);
    min-width: 0;
    color: inherit;
    text-decoration: none;
}

.optimus_upsell_product_image_wrapper {
    display: block;
    width: 100%;
    aspect-ratio: 1/1;
    overflow: hidden;
}

.optimus_upsell_product_image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.optimus_upsell_product_content_wrapper {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    padding-top: 7px;
}

.optimus_upsell_product_title {
    font-size: 14px;
    line-height: 1.25;
}

.optimus_upsell_product_price {
    white-space: nowrap;
}

.optimus_upsell_product_price .optimus_price_regular {
    margin-right: 5px;
}

.optimus_upsell_arrow {
    display: none;
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 30px;
    height: 30px;
    border: 1px solid #ddd;
    border-radius: 50%;
    background: #fff;
    transform: translateY(-50%);
    cursor: pointer;
}

.optimus_upsell_prev {
    left: 4px;
}

.optimus_upsell_next {
    right: 4px;
}

/* Upsells inside the overlay */

.optimus_upsells_overlay_wrapper {
    flex: 0 0 30dvh;
    width: 100%;
    height: 30dvh;
    min-height: 30dvh;
    max-height: 30dvh;
    padding: 16px 28px 20px;
    overflow: hidden;
}

.optimus_upsells_overlay_wrapper .optimus_upsells_products_viewport_wrapper {
    position: relative;
    width: 100%;
    height: calc(30dvh - 72px);
    min-height: 0;
    overflow: hidden;
}

.optimus_upsells_overlay_wrapper .optimus_upsells_products_wrapper {
    display: flex;
    align-items: stretch;
    gap: 8px;
    width: 100%;
    height: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
}

.optimus_upsells_overlay_wrapper .optimus_upsells_products_wrapper::-webkit-scrollbar {
    display: none;
}

.optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
    display: flex;
    flex-direction: column;
    flex: 0 0 calc((100% - 32px) / 5);
    min-width: 0;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.optimus_upsells_overlay_wrapper .optimus_upsell_product_image_wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: calc(100% - 44px);
    min-height: 0;
    aspect-ratio: auto;
    overflow: hidden;
}

.optimus_upsells_overlay_wrapper .optimus_upsell_product_image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.optimus_upsells_overlay_wrapper .optimus_upsell_product_content_wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 3px;
    min-width: 0;
    height: 44px;
    padding-top: 5px;
    overflow: hidden;
    text-align: center;
}

.optimus_upsells_overlay_wrapper .optimus_upsell_product_title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    width: 100%;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.25;
    white-space: normal;
    text-align: center;
    text-overflow: ellipsis;
}

.optimus_upsells_overlay_wrapper .optimus_upsell_product_price {
    width: 100%;
    overflow: hidden;
    font-size: 13px;
    white-space: nowrap;
    text-align: center;
}

.optimus_upsells_overlay_wrapper .optimus_upsell_product_price .optimus_price_regular {
    margin: 0;
}

/* Overlay (Button/Icon mode on desktop, always on mobile) */

.optimus_overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    width: 100vw;
    height: 100dvh;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    background: rgba(255, 255, 255, .98);
}

.optimus_overlay_open .optimus_overlay {
    display: block;
}

.optimus_overlay_panel_wrapper {
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    width: 100%;
    height: 100dvh;
    max-width: none;
    overflow: hidden;
}

.optimus_overlay_panel {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100dvh;
    max-width: none;
    max-height: none;
    overflow: hidden;
    background: #fff;
}

.optimus_overlay_header_wrapper {
    display: flex;
    align-items: center;
    gap: 15px;
    flex: 0 0 72px;
    height: 72px;
    min-height: 72px;
    padding: 0 22px;
    border-bottom: 1px solid #eee;
    overflow: hidden;
}

.optimus_overlay_search_bar_wrapper {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
    height: 45px;
    min-height: 45px;
    padding: 0 10px;
    border: 1px solid #222;
}

.optimus_overlay_search_icon {
    flex: 0 0 auto;
    font-size: 22px;
    line-height: 1;
}

.optimus_overlay_input_field {
    flex: 1 1 auto;
    min-width: 0;
    height: 43px;
    padding: 0 4px !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    font-size: 18px;
}

.optimus_overlay_close,
.optimus_overlay_back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}

/* Back button is currently hidden everywhere */
button.optimus_overlay_back {
    display: none;
}

.optimus_overlay_body_wrapper {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    height: calc(100dvh - 72px);
    min-height: 0;
    overflow: hidden;
}

.optimus_overlay_main_wrapper {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
    overflow: hidden;
}

.optimus_overlay_results_wrapper,
.optimus_overlay_product_details_wrapper {
    min-width: 0;
    min-height: 0;
    padding: 28px;
    overflow: auto;
}

.optimus_overlay_product_details_wrapper {
    border-left: 1px solid #eee;
}

.optimus_body_lock {
    overflow: hidden;
}

/* --------------------------------------------------------------------------
   1279px AND BELOW: overlay upsells show 4 per row
   -------------------------------------------------------------------------- */

@media (max-width: 1279px) {
    .optimus_upsells_overlay_wrapper .optimus_upsells_products_wrapper {
        gap: 6px;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
        flex: 0 0 calc((100% - 18px) / 4);
    }
}

/* --------------------------------------------------------------------------
   DESKTOP (880px and up)
   -------------------------------------------------------------------------- */

@media (min-width: 880px) {
    button.optimus_history_clear {
        width: auto;
        height: 25px;
        padding-top: 8px;
        border: solid 1px #000000;
        border-radius: 15px;
        background-color: #ebebeb;
        color: #000000;
        font-family: "Poppins" !important;
        font-size: 11px;
        font-weight: 600;
        letter-spacing: 0.5px;
        line-height: 0;
        transition: transform 0.25s ease, background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
    }

    button.optimus_history_clear:hover {
        border-color: #444444;
        background-color: #000000;
        color: #ffffff;
        transform: scale(1.03);
    }

    img.optimus_history_product_image {
        border: solid 1px #bdbdbdbf;
    }

    .optimus_upsells_title {
        padding-right: 10px;
        padding-bottom: 10px;
        padding-left: 10px;
        border-bottom: solid 1px #a2a2a2;
        font-weight: 300;
    }

    span.optimus_upsell_product_price {
        color: #525252;
        font-size: 12px;
    }
}

/* --------------------------------------------------------------------------
   DESKTOP FULL-WIDTH DROPDOWN (880px and up, Search Input mode, "Full width" design)
   Suggestions + recent searches | results | you might also like
   -------------------------------------------------------------------------- */

@keyframes optimusEdFade {
    from { opacity: 0; }
    to { opacity: 1; }
}

@media (min-width: 880px) {
    .optimus_layout_editorial .optimus_hidden {
        display: none !important;
    }

    /* Panel sits under the header across the full width; the page below is dimmed */
    .optimus_layout_editorial .optimus_search_input_panel_wrapper {
        left: 0 !important;
        right: 0 !important;
        bottom: 0;
        width: auto !important;
        max-width: none !important;
        margin-top: 0;
        border: 0;
        background: rgba(17, 17, 17, .45);
    }

    .optimus_layout_editorial.optimus_input_open .optimus_search_input_panel_wrapper {
        animation: optimusEdFade .2s ease;
    }

    .optimus_layout_editorial .optimus_search_input_panel {
        position: relative;
        display: grid;
        grid-template-columns: 200px minmax(0, 1fr) 440px;
        align-items: stretch;
        width: 100%;
        max-width: none !important;
        padding: 32px 36px 36px;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        border: 0;
        border-top: 1px solid #ececec;
        background: #fff;
        box-shadow: none;
    }

    .optimus_layout_editorial .optimus_editorial_no_upsells {
        grid-template-columns: 200px minmax(0, 1fr);
    }

    .optimus_layout_editorial .optimus_editorial_close {
        position: absolute;
        z-index: 6;
        top: 22px;
        right: 24px;
        width: 26px;
        height: 26px;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        cursor: pointer;
    }

    .optimus_layout_editorial .optimus_editorial_close::before,
    .optimus_layout_editorial .optimus_editorial_close::after {
        content: "";
        position: absolute;
        top: 50%;
        left: 50%;
        width: 24px;
        height: 1.5px;
        background: #222;
    }

    .optimus_layout_editorial .optimus_editorial_close::before {
        transform: translate(-50%, -50%) rotate(45deg);
    }

    .optimus_layout_editorial .optimus_editorial_close::after {
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    /* Columns */
    .optimus_layout_editorial .optimus_editorial_side {
        min-width: 0;
        padding-right: 28px;
    }

    .optimus_layout_editorial .optimus_editorial_results {
        min-width: 0;
        padding: 0 28px;
        border-left: 1px solid #d9d9d9;
    }

    .optimus_layout_editorial .optimus_editorial_upsells {
        min-width: 0;
        padding: 0 20px 0 28px;
        border-left: 1px solid #d9d9d9;
    }

    .optimus_layout_editorial .optimus_editorial_heading {
        margin: 0 0 18px;
        color: #111;
        font-size: 15px;
        font-weight: 400;
        line-height: 1.3;
        letter-spacing: .02em;
    }

    /* Suggestions and recent searches */
    .optimus_layout_editorial .optimus_editorial_suggestions_block:not(.optimus_hidden) + .optimus_editorial_recent_block {
        margin-top: 34px;
    }

    .optimus_layout_editorial .optimus_editorial_term {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0 !important;
        overflow: hidden;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        color: #8a8a8a !important;
        font-family: inherit !important;
        font-size: 13px !important;
        font-weight: 400 !important;
        line-height: 30px !important;
        letter-spacing: .01em;
        text-align: left;
        text-overflow: ellipsis;
        text-transform: none !important;
        white-space: nowrap;
        cursor: pointer;
    }

    .optimus_layout_editorial .optimus_editorial_term:hover,
    .optimus_layout_editorial .optimus_editorial_term:focus-visible {
        color: #111 !important;
    }

    .optimus_layout_editorial .optimus_editorial_term_typed {
        color: #111;
    }

    .optimus_layout_editorial .optimus_editorial_note,
    .optimus_layout_editorial .optimus_editorial_message {
        color: #8a8a8a;
        font-size: 13px;
        line-height: 1.6;
    }

    .optimus_layout_editorial .optimus_editorial_message {
        margin: -4px 0 16px;
    }

    .optimus_layout_editorial .optimus_editorial_message:empty {
        display: none;
    }

    /* Results */
    .optimus_layout_editorial .optimus_editorial_results_header {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 16px;
        margin-bottom: 18px;
    }

    .optimus_layout_editorial .optimus_editorial_results_header .optimus_editorial_heading {
        margin: 0;
    }

    .optimus_layout_editorial .optimus_editorial_view_all {
        flex: 0 0 auto;
        padding-bottom: 3px;
        border-bottom: 1px solid #111;
        color: #111 !important;
        font-size: 11px;
        letter-spacing: .16em;
        text-decoration: none !important;
        text-transform: uppercase;
        white-space: nowrap;
    }

    /* One row of cards: bigger when there are few results, as many as fit when there are more */
    .optimus_layout_editorial .optimus_editorial_results_grid {
        display: grid;
        justify-content: center;
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
        grid-template-rows: auto;
        grid-auto-rows: 0;
        column-gap: 24px;
        row-gap: 0;
        overflow: hidden;
    }

    .optimus_layout_editorial .optimus_editorial_results_grid .optimus_editorial_card {
        max-width: 200px;
    }

    /* Three or fewer: cards stay next to each other at full size */
    .optimus_layout_editorial .optimus_editorial_results_grid.optimus_editorial_few {
        display: flex;
        justify-content: center;
        gap: 24px;
    }

    .optimus_layout_editorial .optimus_editorial_results_grid.optimus_editorial_few .optimus_editorial_card {
        flex: 0 1 200px;
    }

    /* Cards (results, recently viewed, you might also like) */
    .optimus_layout_editorial .optimus_editorial_card {
        display: flex;
        flex-direction: column;
        min-width: 0;
        color: #222 !important;
        text-decoration: none !important;
    }

    .optimus_layout_editorial .optimus_editorial_card_image_wrapper {
        display: block;
        position: relative;
        width: 100%;
        aspect-ratio: 3 / 4;
        overflow: hidden;
        background: #f3f3f3;
    }

    .optimus_layout_editorial .optimus_editorial_card_image {
        display: block;
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
        transition: transform .5s ease;
    }

    .optimus_layout_editorial .optimus_editorial_card:hover .optimus_editorial_card_image {
        transform: scale(1.03);
    }

    .optimus_layout_editorial .optimus_editorial_card_title {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        margin-top: 12px;
        overflow: hidden;
        color: #222;
        font-size: 12px;
        line-height: 1.4;
    }

    .optimus_layout_editorial .optimus_editorial_card_price {
        margin-top: 4px;
        color: #222;
        font-size: 12px;
    }

    .optimus_layout_editorial .optimus_editorial_card_price del {
        margin-right: 6px;
        color: #9a9a9a;
    }

    .optimus_layout_editorial .optimus_editorial_card_price ins {
        text-decoration: none;
    }

    .optimus_layout_editorial .optimus_editorial_card_loading .optimus_editorial_card_image_wrapper {
        height: auto;
    }

    .optimus_layout_editorial .optimus_editorial_skeleton_line {
        width: 70%;
        height: 12px;
        margin-top: 12px;
    }

    /* Hover preview: a contained card next to the hovered product, on an opaque layer that hides
       whatever it covers. Always two columns: image | name, price, description, button. */
    .optimus_layout_editorial .optimus_editorial_preview {
        display: none;
        position: absolute;
        z-index: 4;
        padding: 18px;
        overflow: hidden;
        border: 1px solid #e8e8e8;
        background: #fff;
        box-shadow: 0 12px 34px rgba(0, 0, 0, .10);
    }

    .optimus_layout_editorial .optimus_ed_hidden_behind {
        visibility: hidden;
    }

    .optimus_layout_editorial .optimus_editorial_preview_open {
        display: block;
        animation: optimusEdFade .15s ease;
    }

    .optimus_layout_editorial .optimus_editorial_preview .optimus_product_details_inner {
        display: grid;
        grid-template-columns: 170px minmax(0, 1fr);
        gap: 20px;
        align-items: start;
    }

    .optimus_layout_editorial .optimus_editorial_preview .optimus_product_details_image_wrapper {
        width: 100%;
        max-width: 170px;
        aspect-ratio: 3 / 4;
        overflow: hidden;
        background: #f3f3f3;
    }

    .optimus_layout_editorial .optimus_editorial_preview .optimus_product_details_image_link {
        display: block;
        height: 100%;
    }

    /* Tight space: smaller image, text keeps both columns */
    @media (max-width: 1279px) {
        .optimus_layout_editorial .optimus_editorial_preview .optimus_product_details_inner {
            grid-template-columns: 130px minmax(0, 1fr);
            gap: 16px;
        }

        .optimus_layout_editorial .optimus_editorial_preview .optimus_product_details_image_wrapper {
            max-width: 130px;
        }
    }

    .optimus_layout_editorial .optimus_editorial_preview .optimus_product_details_image {
        width: 100%;
        height: 100%;
        max-height: none;
        object-fit: cover;
        border: 0;
    }

    .optimus_layout_editorial .optimus_editorial_preview .optimus_product_details_content_wrapper {
        max-width: 300px;
    }

    .optimus_layout_editorial .optimus_editorial_preview h3.optimus_product_details_title {
        margin: 0 0 8px;
        font-size: 15px;
        line-height: 1.35;
    }

    .optimus_layout_editorial .optimus_editorial_preview .optimus_product_details_price {
        margin-bottom: 10px;
        font-size: 14px;
    }

    .optimus_layout_editorial .optimus_editorial_preview .optimus_product_details_sku,
    .optimus_layout_editorial .optimus_editorial_preview .optimus_product_details_stock {
        display: none;
    }

    .optimus_layout_editorial .optimus_editorial_preview p.optimus_product_details_short_description {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 4;
        max-width: 42ch;
        margin: 0 0 16px;
        padding-top: 0;
        overflow: hidden;
        border-top: 0;
        color: #555;
        font-size: 13px;
        line-height: 1.6;
    }

    .optimus_layout_editorial .optimus_editorial_preview .optimus_product_actions_wrapper {
        margin: 0;
    }

    /* Uniform 1px black border, and no scaling (scaling makes the border render unevenly) */
    .optimus_layout_editorial .optimus_editorial_preview button.optimus_product_action.optimus_product_add_to_cart,
    .optimus_layout_editorial .optimus_editorial_preview button.optimus_product_action.optimus_product_add_to_cart:hover {
        padding: 12px 24px;
        border: 1px solid #000000 !important;
        transform: none !important;
    }

    /* You might also like: two cards at a time, circle arrows over the image edges */
    .optimus_layout_editorial .optimus_editorial_carousel {
        position: relative;
        container-type: inline-size;
    }

    .optimus_layout_editorial .optimus_editorial_carousel_track {
        display: flex;
        gap: 24px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .optimus_layout_editorial .optimus_editorial_carousel_track::-webkit-scrollbar {
        display: none;
    }

    .optimus_layout_editorial .optimus_editorial_carousel .optimus_editorial_card {
        flex: 0 0 calc((100% - 24px) / 2);
        scroll-snap-align: start;
    }

    .optimus_layout_editorial .optimus_editorial_arrow {
        position: absolute;
        top: calc((100cqw - 24px) / 2 * 4 / 3 / 2);
        z-index: 2;
        width: 34px;
        height: 34px;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 50% !important;
        box-shadow: none !important;
        transform: translateY(-50%);
        cursor: pointer;
        transition: opacity .2s ease;
    }

    .optimus_layout_editorial .optimus_editorial_prev {
        left: -17px;
        background: transparent url("../images/arrow-left.webp") center / contain no-repeat !important;
    }

    .optimus_layout_editorial .optimus_editorial_next {
        right: -17px;
        background: transparent url("../images/arrow-right.webp") center / contain no-repeat !important;
    }

    .optimus_layout_editorial .optimus_editorial_arrow.optimus_disabled {
        opacity: .3;
        pointer-events: none;
    }
}

/* Narrower laptops: tighter columns so results keep their room */
@media (min-width: 880px) and (max-width: 1279px) {
    .optimus_layout_editorial .optimus_search_input_panel {
        grid-template-columns: 180px minmax(0, 1fr) 340px;
        padding: 28px 28px 32px;
    }

    .optimus_layout_editorial .optimus_editorial_no_upsells {
        grid-template-columns: 180px minmax(0, 1fr);
    }

    .optimus_layout_editorial .optimus_editorial_side {
        padding-right: 22px;
    }

    .optimus_layout_editorial .optimus_editorial_results {
        padding: 0 22px;
    }

    .optimus_layout_editorial .optimus_editorial_upsells {
        padding: 0 16px 0 22px;
    }
}

@media (min-width: 880px) and (max-width: 1023px) {
    .optimus_layout_editorial .optimus_search_input_panel {
        grid-template-columns: 160px minmax(0, 1fr) 250px;
    }

    .optimus_layout_editorial .optimus_editorial_no_upsells {
        grid-template-columns: 160px minmax(0, 1fr);
    }
}

/* "You might also like" shows one card at a time when its column is narrow */
@container (max-width: 240px) {
    .optimus_layout_editorial .optimus_editorial_carousel .optimus_editorial_card {
        flex-basis: 100%;
    }

    .optimus_layout_editorial .optimus_editorial_arrow {
        top: calc(100cqw * 4 / 3 / 2);
    }
}

@media (min-width: 880px) and (prefers-reduced-motion: reduce) {
    .optimus_layout_editorial.optimus_input_open .optimus_search_input_panel_wrapper {
        animation: none;
    }

    .optimus_layout_editorial .optimus_editorial_card_image {
        transition: none;
    }
}

/* --------------------------------------------------------------------------
   MOBILE (879px and below)
   -------------------------------------------------------------------------- */

@media (max-width: 879px) {
    /* Triggers */
    .optimus_desktop_trigger_wrapper {
        display: none;
    }

    .optimus_mobile_trigger_wrapper {
        display: flex;
    }

    .optimus_search_input_panel_wrapper {
        display: none !important;
    }

    button.optimus_trigger.optimus_mobile_trigger_button {
        display: flex;
        align-items: center;
        justify-content: center;
        border: 0px;
        font-size: 0;
    }

    button.optimus_trigger.optimus_mobile_trigger_button::before {
        content: "";
        display: block;
        width: 19px;
        height: 19px;
        background-image: url("../images/search-icon.webp");
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
    }

    button.optimus_trigger.optimus_mobile_trigger_button:hover,
    button.optimus_trigger.optimus_mobile_trigger_button:focus,
    button.optimus_trigger.optimus_mobile_trigger_button:active {
        background: transparent !important;
    }

    /* Overlay header */
    .optimus_overlay_header_wrapper {
        flex-basis: 64px;
        height: 64px;
        min-height: 64px;
        padding: 0 14px;
    }

    .optimus_overlay_search_bar_wrapper {
        height: 40px;
        min-height: 40px;
        border: solid 1px #7d7d7d;
    }

    input.optimus_overlay_input_field {
        font-size: 15px;
    }

    button.optimus_overlay_close,
    button.optimus_overlay_back {
        height: 41px;
        min-height: 41px;
        padding-top: 5px;
        padding-bottom: 10px;
        border: 0px;
        color: black;
        font-size: 25px;
        font-weight: 500;
    }

    /* Close button: icon image */
    button.optimus_overlay_close {
        flex: 0 0 41px !important;
        width: 41px !important;
        padding: 0 !important;
        background: url("../images/close.webp") center / 34px no-repeat !important;
        font-size: 0 !important;
    }

    /* Overlay body: results only, no preview */
    .optimus_overlay_body_wrapper {
        height: calc(100dvh - 64px);
    }

    .optimus_overlay_main_wrapper {
        grid-template-columns: minmax(0, 1fr);
    }

    .optimus_overlay_results_wrapper {
        display: block !important;
        padding: 18px;
    }

    .optimus_overlay_product_details_wrapper {
        display: none !important;
    }

    /* History */
    button.optimus_history_clear {
        border: solid 1px #666666;
        border-radius: 15px;
        color: black;
        font-family: "Poppins";
        font-size: 12px;
        font-weight: 500;
        letter-spacing: 0.5px;
    }

    span.optimus_history_product_title {
        font-size: 15px;
        font-weight: 600;
    }

    /* Upsells */
    .optimus_upsells_overlay_wrapper {
        padding: 12px 15px 16px;
    }

    .optimus_upsells_title {
        margin-top: 5px;
        margin-left: 10px;
        padding: 1px 20px 5px 20px;
        border-bottom: solid 1px #868686;
    }

    a.optimus_upsell_product_wrapper,
    span.optimus_upsell_product_content_wrapper {
        margin-top: -35px;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_content_wrapper {
        height: auto;
    }

    span.optimus_upsell_product_title {
        font-weight: 500;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_price {
        font-size: 12px;
    }

    .optimus_upsell_arrow {
        display: block;
    }

    /* Arrows: icon images */
    button.optimus_upsell_arrow {
        width: 65px !important;
        height: 65px !important;
        padding: 0 !important;
        font-size: 0 !important;
    }

    button.optimus_upsell_arrow.optimus_upsell_prev,
    button.optimus_upsell_arrow.optimus_upsell_next {
        margin-top: -8px !important;
        border: 0px !important;
        border-radius: 25px;
        color: black;
        font-weight: 400;
        line-height: 1px;
    }

    button.optimus_upsell_arrow.optimus_upsell_prev {
        margin-left: -22px;
        background: #ffffff00 url("../images/arrow-left.webp") center / 37px no-repeat !important;
    }

    button.optimus_upsell_arrow.optimus_upsell_next {
        margin-right: -22px;
        background: #ffffff00 url("../images/arrow-right.webp") center / 37px no-repeat !important;
    }
}

/* Mobile landscape: fixed-height upsell rail */

@media (max-width: 879px) and (orientation: landscape) {
    .optimus_upsells_overlay_wrapper {
        --optimus-landscape-upsell-height:clamp(155px,36dvh,200px);
        flex: 0 0 var(--optimus-landscape-upsell-height);
        height: var(--optimus-landscape-upsell-height);
        min-height: var(--optimus-landscape-upsell-height);
        max-height: var(--optimus-landscape-upsell-height);
        padding: 10px 14px 12px;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsells_header_wrapper {
        margin-bottom: 8px;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsells_products_viewport_wrapper {
        height: calc(var(--optimus-landscape-upsell-height) - 54px);
        min-height: 100px;
        overflow-x: hidden;
        overflow-y: auto;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsells_products_wrapper {
        align-items: flex-start;
        height: auto;
        min-height: 120px;
        padding-bottom: 2px;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
        height: 118px;
        min-height: 118px;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_image_wrapper {
        height: 82px;
        min-height: 82px;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_content_wrapper {
        min-height: 36px;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_title {
        font-size: 12px;
    }
}

/* Mobile portrait: upsell section sizes itself from its content */

@media (max-width: 879px) and (orientation: portrait) {
    .optimus_overlay_body_wrapper {
        height: calc(100dvh - 64px) !important;
        min-height: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    .optimus_upsells_overlay_wrapper,
    .optimus_search.optimus_trigger_button .optimus_upsells_overlay_wrapper,
    .optimus_search.optimus_trigger_icon .optimus_upsells_overlay_wrapper {
        display: flex !important;
        flex-direction: column !important;
        flex: 0 0 auto !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsells_header_wrapper {
        flex: 0 0 auto !important;
        margin-bottom: 10px !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsells_products_viewport_wrapper {
        position: relative !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsells_products_wrapper {
        display: flex !important;
        align-items: flex-start !important;
        gap: 6px !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        padding-bottom: 0 !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scrollbar-width: none !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsells_products_wrapper::-webkit-scrollbar {
        display: none !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
        align-self: flex-start !important;
        flex: 0 0 calc((100% - 18px) / 4) !important;
        width: calc((100% - 18px) / 4) !important;
        height: auto !important;
        min-height: 0 !important;
        margin-top: 0 !important;
        box-sizing: border-box !important;
    }

    /* Button/Icon mode keeps 4 per row at every portrait width (existing behavior) */
    .optimus_search.optimus_trigger_button .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper,
    .optimus_search.optimus_trigger_icon .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
        flex-basis: calc((100% - 18px) / 4) !important;
        width: calc((100% - 18px) / 4) !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_image_wrapper {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 1 / 1 !important;
        overflow: hidden !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_image {
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_content_wrapper {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: flex-start !important;
        flex: 0 0 auto !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        margin-top: 0 !important;
        padding: 6px 2px 0 !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_title {
        display: block !important;
        -webkit-box-orient: initial !important;
        -webkit-line-clamp: unset !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        overflow: visible !important;
        white-space: normal !important;
        text-align: center !important;
        text-overflow: clip !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_product_price {
        display: block !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 2px 0 0 !important;
        overflow: visible !important;
        white-space: nowrap !important;
        text-align: center !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsell_arrow {
        top: calc(50% - 12px) !important;
    }
}

/* Short mobile portrait (673px tall or less): the panel scrolls as one piece */

@media (max-width: 879px) and (orientation: portrait) and (max-height: 673px) {
    .optimus_overlay {
        width: 100vw !important;
        height: 100dvh !important;
        min-height: 100dvh !important;
        max-height: 100dvh !important;
        overflow: hidden !important;
    }

    .optimus_overlay_panel_wrapper {
        width: 100% !important;
        height: 100dvh !important;
        min-height: 100dvh !important;
        max-height: 100dvh !important;
        overflow: hidden !important;
    }

    .optimus_overlay_panel {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        height: 100dvh !important;
        min-height: 100dvh !important;
        max-height: 100dvh !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    .optimus_overlay_body_wrapper {
        flex: 0 0 auto !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .optimus_overlay_main_wrapper {
        flex: 0 0 auto !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    .optimus_overlay_results_wrapper {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsells_products_viewport_wrapper {
        max-height: none !important;
    }

    .optimus_upsells_overlay_wrapper .optimus_upsells_products_wrapper {
        max-height: none !important;
        overflow-y: visible !important;
    }
}

/* --------------------------------------------------------------------------
   NARROW SCREENS: overlay upsells go 3, 2, then 1 per row
   -------------------------------------------------------------------------- */

@media (max-width: 599px) {
    .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
        flex-basis: calc((100% - 12px) / 3);
    }
}

@media (max-width: 599px) and (orientation: portrait) {
    .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
        flex-basis: calc((100% - 12px) / 3) !important;
        width: calc((100% - 12px) / 3) !important;
    }
}

@media (max-width: 459px) {
    .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
        flex-basis: calc((100% - 6px) / 2);
    }
}

@media (max-width: 459px) and (orientation: portrait) {
    .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
        flex-basis: calc((100% - 6px) / 2) !important;
        width: calc((100% - 6px) / 2) !important;
    }
}

@media (max-width: 379px) {
    .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
        flex-basis: 100%;
    }
}

@media (max-width: 379px) and (orientation: portrait) {
    .optimus_upsells_overlay_wrapper .optimus_upsell_product_wrapper {
        flex-basis: 100% !important;
        width: 100% !important;
    }
}
