body.is-menu-open .category-drawer,
body.has-menu-open .category-drawer {
    position: fixed;
    top: var(--bodycare-category-menu-top);
    right: 0;
    left: 0;
    z-index: var(--bodycare-z-menu-open, 250);
    max-height: none;
    border-top: 0;
    transform: none;
}

body.is-menu-open .catalog-menu,
body.has-menu-open .catalog-menu {
    height: calc(100svh - var(--bodycare-category-menu-top));
}

body.is-menu-open .catalog-tabs :is(a, button),
body.has-menu-open .catalog-tabs :is(a, button) {
    box-sizing: border-box;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    overflow: hidden;
    font-weight: 700;
    overflow-wrap: anywhere;
    transform: none;
    translate: none;
    transition:
        background-color 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease,
        color 160ms ease;
}

body.is-menu-open .catalog-tabs [data-menu-tab].is-active,
body.has-menu-open .catalog-tabs [data-menu-tab].is-active {
    font-weight: 760;
}

body.is-menu-open .catalog-menu .catalog-group__title,
body.has-menu-open .catalog-menu .catalog-group__title,
body.is-menu-open .catalog-menu .catalog-panel__empty,
body.has-menu-open .catalog-menu .catalog-panel__empty {
    font-size: 15px;
    font-weight: 500;
}

body.is-menu-open .catalog-menu .catalog-group__item,
body.has-menu-open .catalog-menu .catalog-group__item,
body.is-menu-open .catalog-menu .catalog-subgroup__item,
body.has-menu-open .catalog-menu .catalog-subgroup__item {
    font-size: 14px;
    font-weight: 450;
}

body.is-menu-open .catalog-menu :is(.catalog-group__title, .catalog-subgroup__title, .catalog-group__item, .catalog-subgroup__item, .catalog-panel__empty),
body.has-menu-open .catalog-menu :is(.catalog-group__title, .catalog-subgroup__title, .catalog-group__item, .catalog-subgroup__item, .catalog-panel__empty) {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    overflow-wrap: anywhere;
    word-break: break-word;
}

body.is-menu-open .catalog-tabs :is(a, button):hover,
body.is-menu-open .catalog-tabs :is(a, button):focus-visible,
body.is-menu-open .catalog-tabs :is(a, button):active,
body.has-menu-open .catalog-tabs :is(a, button):hover,
body.has-menu-open .catalog-tabs :is(a, button):focus-visible,
body.has-menu-open .catalog-tabs :is(a, button):active {
    transform: none;
    translate: none;
}

body.is-menu-open .backdrop.is-visible,
body.has-menu-open .backdrop.is-visible {
    z-index: var(--bodycare-z-menu-backdrop, 75);
    opacity: 0;
}

body.is-menu-open {
    --catalog-open-gutter: clamp(24px, 2.4vw, 50px);
}

@media (max-width: 1320px) {
    body.is-menu-open {
        --catalog-open-gutter: 24px;
    }
}

@media (min-width: 700px) and (max-width: 1279px) {
    body.is-menu-open,
    body.has-menu-open {
        --catalog-open-gutter: clamp(24px, 2.4vw, 30px);
    }

    body.account-page.is-menu-open,
    body.account-page.has-menu-open {
        --catalog-open-gutter: clamp(56px, 4.4vw, 62px);
    }

    body.is-menu-open .catalog-tabs,
    body.has-menu-open .catalog-tabs {
        padding-right: var(--catalog-open-gutter);
        padding-left: var(--catalog-open-gutter);
    }

    body.is-menu-open .catalog-panel,
    body.has-menu-open .catalog-panel {
        padding-right: var(--catalog-open-gutter);
        padding-left: var(--catalog-open-gutter);
    }
}

@media (min-width: 1440px) and (max-width: 1899px) {
    body.is-menu-open,
    body.has-menu-open {
        --catalog-open-gutter: var(--bodycare-content-edge);
    }
}

@media (min-width: 1280px) and (max-width: 1899px) {
    body.account-page.is-menu-open,
    body.account-page.has-menu-open {
        --catalog-open-gutter: 62px;
    }
}

@media (min-width: 1900px) {
    body.is-menu-open,
    body.has-menu-open {
        --catalog-open-gutter: var(--bodycare-content-edge);
    }

    body.account-page.is-menu-open,
    body.account-page.has-menu-open {
        --catalog-open-gutter: var(--bodycare-content-edge);
    }
}

@media (max-width: 1279px) {
    html:has(body.is-menu-open),
    html:has(body.has-menu-open),
    body.is-menu-open,
    body.has-menu-open {
        overflow: hidden;
        overscroll-behavior: none;
    }

    body.is-menu-open .category-drawer,
    body.has-menu-open .category-drawer {
        top: var(--bodycare-category-menu-top);
        right: 0;
        bottom: 0;
        left: 0;
        z-index: var(--bodycare-z-menu-open, 250);
        height: auto;
        max-height: none;
        overflow: hidden;
        border-top: 0;
        border-bottom: 0;
        background: #fff;
        box-shadow:
            0 -4px 0 #fff,
            0 18px 42px rgba(17, 17, 17, 0.1);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    body.is-menu-open .category-drawer::before,
    body.is-menu-open .category-drawer::after,
    body.has-menu-open .category-drawer::before,
    body.has-menu-open .category-drawer::after {
        content: none;
        display: none;
    }

    body.is-menu-open .catalog-menu,
    body.has-menu-open .catalog-menu {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto minmax(0, 1fr);
        height: calc(100svh - var(--bodycare-category-menu-top));
        min-height: 0;
        max-height: none;
        gap: 0;
        overflow: hidden;
        padding: 0;
        background: #fff;
    }

    body.is-menu-open .catalog-tabs,
    body.has-menu-open .catalog-tabs {
        position: relative;
        top: auto;
        z-index: 1;
        display: grid;
        grid-column: 1;
        grid-row: 1;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        min-height: 0;
        gap: 8px;
        overflow: visible;
        padding: 12px 14px;
        border-right: 0;
        border-bottom: 1px solid var(--line);
        background: rgba(255, 255, 255, 0.98);
        box-shadow: none;
        scrollbar-width: none;
    }

    body.is-menu-open .catalog-tabs::-webkit-scrollbar,
    body.has-menu-open .catalog-tabs::-webkit-scrollbar {
        display: none;
    }

    body.is-menu-open .catalog-tabs :is(a, button),
    body.has-menu-open .catalog-tabs :is(a, button) {
        display: flex;
        width: 100%;
        min-height: 42px;
        align-items: center;
        justify-content: center;
        padding: 0 10px;
        border: 1px solid var(--line);
        border-radius: 14px;
        background: transparent;
        color: var(--ink);
        font-size: 12.5px;
        font-weight: 700;
        line-height: 1.14;
        text-align: center;
        text-transform: none;
        white-space: normal;
    }

    body.is-menu-open .catalog-tabs [data-menu-tab].is-active,
    body.has-menu-open .catalog-tabs [data-menu-tab].is-active {
        border-color: rgba(var(--theme-accent-rgb), 0.34);
        background: rgba(var(--theme-accent-rgb), 0.08);
        color: var(--pink);
        font-weight: 760;
        box-shadow: inset 0 0 0 1px rgba(var(--theme-accent-rgb), 0.04);
    }

    body.is-menu-open .catalog-tabs,
    body.has-menu-open .catalog-tabs,
    body.is-menu-open .catalog-panel,
    body.has-menu-open .catalog-panel {
        background: #fff;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    body.is-menu-open .catalog-panel,
    body.has-menu-open .catalog-panel {
        grid-column: 1;
        grid-row: 2;
        min-width: 0;
        min-height: 0;
        overflow: auto;
        padding: 8px 14px calc(98px + env(safe-area-inset-bottom));
        background: #fff;
    }

    body.is-menu-open .catalog-panel.is-active,
    body.has-menu-open .catalog-panel.is-active {
        display: block;
    }

    body.is-menu-open .catalog-columns,
    body.has-menu-open .catalog-columns {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0;
    }

    body.is-menu-open .catalog-columns section,
    body.is-menu-open .catalog-columns > .catalog-group,
    body.has-menu-open .catalog-columns section,
    body.has-menu-open .catalog-columns > .catalog-group {
        gap: 0;
        min-height: 0;
        padding: 0;
    }

    body.is-menu-open .catalog-columns section::before,
    body.is-menu-open .catalog-columns > .catalog-group::before,
    body.has-menu-open .catalog-columns section::before,
    body.has-menu-open .catalog-columns > .catalog-group::before {
        display: none;
    }

    body.is-menu-open .catalog-group,
    body.has-menu-open .catalog-group {
        gap: 0;
        border-bottom: 1px solid rgba(222, 222, 222, 0.82);
    }

    body.is-menu-open .catalog-group__head,
    body.is-menu-open .catalog-subgroup__head,
    body.has-menu-open .catalog-group__head,
    body.has-menu-open .catalog-subgroup__head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 30px;
        width: 100%;
        align-items: center;
        gap: 10px;
    }

    body.is-menu-open .catalog-group__head,
    body.has-menu-open .catalog-group__head {
        min-height: 56px;
    }

    body.is-menu-open .catalog-subgroup__head,
    body.has-menu-open .catalog-subgroup__head {
        min-height: 44px;
    }

    body.is-menu-open .catalog-group .catalog-group__title,
    body.is-menu-open .catalog-menu .catalog-subgroup .catalog-subgroup__title,
    body.has-menu-open .catalog-group .catalog-group__title,
    body.has-menu-open .catalog-menu .catalog-subgroup .catalog-subgroup__title {
        display: flex;
        min-width: 0;
        align-items: center;
        margin: 0;
        padding: 0;
        color: var(--ink);
        line-height: 1.24;
        text-transform: none;
    }

    body.is-menu-open .catalog-group .catalog-group__title,
    body.has-menu-open .catalog-group .catalog-group__title {
        min-height: 56px;
        max-width: 100%;
        font-size: 16px;
        font-weight: 500;
    }

    body.is-menu-open .catalog-menu .catalog-subgroup .catalog-subgroup__title,
    body.has-menu-open .catalog-menu .catalog-subgroup .catalog-subgroup__title {
        min-height: 44px;
        padding-left: 12px;
        color: #4d4d4d;
        font-size: 14px;
        font-weight: 500;
    }

    body.is-menu-open .catalog-group .catalog-group__toggle,
    body.is-menu-open .catalog-menu .catalog-subgroup__toggle,
    body.has-menu-open .catalog-group .catalog-group__toggle,
    body.has-menu-open .catalog-menu .catalog-subgroup__toggle {
        justify-self: end;
        flex: 0 0 30px;
        width: 30px;
        height: 30px;
        min-height: 30px;
        margin: 0;
    }

    body.is-menu-open .catalog-group .catalog-group__toggle,
    body.has-menu-open .catalog-group .catalog-group__toggle {
        border-color: rgba(var(--theme-accent-rgb), 0.34);
        color: var(--pink);
    }

    body.is-menu-open .catalog-group.is-open .catalog-group__toggle,
    body.has-menu-open .catalog-group.is-open .catalog-group__toggle {
        border-color: var(--pink);
        background: var(--pink);
        color: var(--paper);
    }

    body.is-menu-open .catalog-group__items,
    body.has-menu-open .catalog-group__items {
        gap: 0;
        padding: 0 0 10px;
    }

    body.is-menu-open .catalog-group button,
    body.has-menu-open .catalog-group button {
        margin-left: 0;
        text-transform: none;
    }

    body.is-menu-open .catalog-subgroup,
    body.has-menu-open .catalog-subgroup {
        gap: 0;
        margin-left: 0;
    }

    body.is-menu-open .catalog-subgroup__items,
    body.has-menu-open .catalog-subgroup__items {
        gap: 4px;
        margin: 0 0 8px 10px;
        padding: 6px 0 6px 12px;
        border-left: 2px solid rgba(var(--theme-accent-rgb), 0.22);
    }

    body.is-menu-open .catalog-menu .catalog-subgroup__toggle,
    body.has-menu-open .catalog-menu .catalog-subgroup__toggle {
        border-color: rgba(var(--theme-accent-rgb), 0.36);
        color: var(--color-primary-hover);
    }

    body.is-menu-open .catalog-menu .catalog-subgroup.is-open .catalog-subgroup__toggle,
    body.has-menu-open .catalog-menu .catalog-subgroup.is-open .catalog-subgroup__toggle {
        border-color: var(--color-primary-hover);
        background: var(--color-primary-hover);
        color: var(--paper);
    }

    body.is-menu-open .catalog-menu .catalog-subgroup.is-open .catalog-subgroup__title,
    body.has-menu-open .catalog-menu .catalog-subgroup.is-open .catalog-subgroup__title {
        color: #666666;
    }

    body.is-menu-open .catalog-menu .catalog-subgroup__items .catalog-subgroup__item,
    body.has-menu-open .catalog-menu .catalog-subgroup__items .catalog-subgroup__item {
        min-height: 34px;
        padding: 0 0 0 10px;
        border-radius: 10px;
        color: #6c6c6c;
        font-size: 13px;
        font-weight: 450;
        text-transform: none;
    }

    body.is-menu-open .catalog-group__items > button,
    body.is-menu-open .catalog-columns section > button,
    body.has-menu-open .catalog-group__items > button,
    body.has-menu-open .catalog-columns section > button {
        min-height: 40px;
        padding: 0 0 0 12px;
        border-radius: 10px;
        color: #4d4d4d;
        font-size: 14px;
        font-weight: 500;
        line-height: 1.24;
        text-transform: none;
    }

    body.is-menu-open .catalog-group__items > button:hover,
    body.is-menu-open .catalog-columns section > button:hover,
    body.has-menu-open .catalog-group__items > button:hover,
    body.has-menu-open .catalog-columns section > button:hover {
        background: rgba(var(--theme-accent-rgb), 0.07);
        transform: none;
    }

    body.is-menu-open .catalog-panel,
    body.has-menu-open .catalog-panel {
        padding-bottom: calc(98px + env(safe-area-inset-bottom));
    }
}

@media (min-width: 1280px) {
    body.is-menu-open .category-drawer,
    body.has-menu-open .category-drawer {
        --catalog-open-height: min(640px, calc(100svh - var(--bodycare-category-menu-top) - 18px));
        bottom: auto;
        grid-template-rows: minmax(0, 1fr);
        height: var(--catalog-open-height);
        max-height: var(--catalog-open-height);
        overflow: hidden;
        isolation: isolate;
        border-top: 0;
        border-bottom: 1px solid rgba(72, 52, 105, 0.1);
        background:
            linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--pink-soft) 28%, #fff) 100%),
            #fff;
        background-clip: padding-box;
        box-shadow:
            0 -4px 0 #fff,
            0 18px 42px rgba(48, 18, 42, 0.1),
            0 1px 0 rgba(255, 255, 255, 0.92) inset,
            0 -1px 0 rgba(72, 52, 105, 0.08) inset;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    body.is-menu-open .category-drawer::before,
    body.has-menu-open .category-drawer::before {
        position: absolute;
        inset: 0;
        z-index: 0;
        background:
            linear-gradient(118deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.12) 30%, rgba(255, 255, 255, 0) 52%, rgba(var(--theme-accent-rgb), 0.055) 74%, rgba(255, 255, 255, 0.22) 100%),
            radial-gradient(circle at 15% 18%, rgba(255, 255, 255, 0.48), transparent 28%),
            radial-gradient(circle at 78% 8%, rgba(var(--theme-accent-rgb), 0.055), transparent 34%);
        content: "";
        opacity: 0.58;
        pointer-events: none;
    }

    body.is-menu-open .category-drawer > *,
    body.has-menu-open .category-drawer > * {
        position: relative;
        z-index: 1;
    }

    body.is-menu-open .category-drawer::after,
    body.has-menu-open .category-drawer::after {
        position: absolute;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 2;
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(72, 52, 105, 0.16), transparent);
        content: "";
        pointer-events: none;
    }

    body.is-menu-open .catalog-menu,
    body.has-menu-open .catalog-menu {
        height: 100%;
        max-height: none;
        min-height: 0;
        overflow: auto;
        padding: 0 0 clamp(84px, 6vw, 118px);
        background: transparent;
        scroll-padding-bottom: clamp(84px, 6vw, 118px);
        scrollbar-width: thin;
        scrollbar-color: rgba(var(--theme-accent-rgb), 0.42) rgba(var(--theme-accent-rgb), 0.08);
    }

    body.is-menu-open .catalog-menu::-webkit-scrollbar {
        width: 8px;
    }

    body.is-menu-open .catalog-menu::-webkit-scrollbar-thumb {
        border-radius: 999px;
        background: rgba(var(--theme-accent-rgb), 0.38);
    }

    body.is-menu-open .catalog-tabs,
    body.has-menu-open .catalog-tabs {
        min-height: 64px;
        align-items: center;
        padding: 10px var(--catalog-open-gutter) 0;
        background: rgba(255, 255, 255, 0.92);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }

    body.is-menu-open .catalog-tabs :is(a, button),
    body.has-menu-open .catalog-tabs :is(a, button) {
        min-height: 54px;
        line-height: 1.1;
    }

    body.is-menu-open .catalog-panel,
    body.has-menu-open .catalog-panel {
        overflow: visible;
        padding: 28px var(--catalog-open-gutter) clamp(72px, 5vw, 108px);
        background: transparent;
    }

    body.is-menu-open .catalog-columns,
    body.has-menu-open .catalog-columns {
        gap: 14px clamp(34px, 5vw, 78px);
    }

    body.is-menu-open .catalog-group__head,
    body.has-menu-open .catalog-group__head,
    body.is-menu-open .catalog-subgroup__head,
    body.has-menu-open .catalog-subgroup__head,
    body.is-menu-open .catalog-group__title,
    body.has-menu-open .catalog-group__title,
    body.is-menu-open .catalog-subgroup__title,
    body.has-menu-open .catalog-subgroup__title {
        min-height: 36px;
    }

    body.is-menu-open .catalog-columns section > button,
    body.has-menu-open .catalog-columns section > button,
    body.is-menu-open .catalog-group .catalog-group__title,
    body.has-menu-open .catalog-group .catalog-group__title,
    body.is-menu-open .catalog-menu .catalog-subgroup .catalog-subgroup__title,
    body.has-menu-open .catalog-menu .catalog-subgroup .catalog-subgroup__title {
        font-size: 15px;
        font-weight: 500;
        line-height: 1.22;
    }

    body.is-menu-open .catalog-menu .catalog-subgroup__items .catalog-subgroup__item,
    body.has-menu-open .catalog-menu .catalog-subgroup__items .catalog-subgroup__item {
        font-size: 14px;
        font-weight: 450;
        line-height: 1.3;
    }
}

@media (max-width: 1279px) {
    body.is-menu-open .menu-trigger,
    body.has-menu-open .menu-trigger,
    .menu-trigger.is-open,
    .menu-trigger[aria-expanded="true"] {
        border: 1px solid rgba(255, 255, 255, 0.74);
        background: #ffffff;
        color: #8f0f58;
        box-shadow: 0 12px 26px rgba(62, 12, 51, 0.18);
        opacity: 1;
    }

    body.is-menu-open .menu-trigger span,
    body.has-menu-open .menu-trigger span,
    .menu-trigger.is-open span,
    .menu-trigger[aria-expanded="true"] span,
    body.is-menu-open .menu-trigger svg,
    body.has-menu-open .menu-trigger svg,
    .menu-trigger.is-open svg,
    .menu-trigger[aria-expanded="true"] svg,
    body.is-menu-open .menu-trigger i[data-lucide],
    body.has-menu-open .menu-trigger i[data-lucide],
    .menu-trigger.is-open i[data-lucide],
    .menu-trigger[aria-expanded="true"] i[data-lucide] {
        color: currentColor;
        opacity: 1;
        filter: none;
    }

    body.is-menu-open .menu-trigger svg,
    body.has-menu-open .menu-trigger svg,
    .menu-trigger.is-open svg,
    .menu-trigger[aria-expanded="true"] svg {
        stroke: currentColor;
    }
}
