.store-mobile-menu {
    --store-menu-ink: #102f36;
    --store-menu-muted: #6a777a;
    --store-menu-line: #e7ecec;
    width: min(100vw, 440px) !important;
    max-width: 100vw;
    background: #fff;
    color: var(--store-menu-ink);
}

.store-mobile-menu__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 72px;
    padding: 14px 22px;
    border-bottom: 1px solid var(--store-menu-line);
}

.store-mobile-menu__logo,
.store-mobile-menu__logo img {
    display: block;
    max-width: 150px;
    height: auto;
}

.store-mobile-menu__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border: 1px solid var(--store-menu-line);
    border-radius: 50%;
    background: #fff;
    color: var(--store-menu-ink);
    font-size: 18px;
}

.store-mobile-menu__search {
    display: flex;
    align-items: center;
    margin: 18px 22px 4px;
    min-height: 46px;
    border: 1px solid #dbe3e4;
    border-radius: 7px;
    background: #f8fafa;
}

.store-mobile-menu__search input {
    width: 100%;
    min-width: 0;
    height: 44px;
    padding: 0 13px;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--store-menu-ink);
    font-size: 14px;
}

.store-mobile-menu__search button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    height: 44px;
    border: 0;
    background: transparent;
    color: var(--store-menu-ink);
    font-size: 17px;
}

.store-mobile-menu__body {
    overflow-y: auto;
    flex: 1 1 auto;
    padding: 16px 22px 28px;
    overscroll-behavior: contain;
}

.store-mobile-menu__heading {
    margin: 0 0 10px;
    color: var(--store-menu-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.store-mobile-menu__heading--categories {
    margin-top: 25px;
}

.store-mobile-menu__quick-links,
.store-mobile-menu__categories,
.store-mobile-menu__categories ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.store-mobile-menu__quick-links > li,
.store-mobile-menu__category-item {
    border-bottom: 1px solid var(--store-menu-line);
}

.store-mobile-menu__quick-links a,
.store-mobile-menu__category-link,
.store-mobile-menu__group summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 10px 2px;
    color: var(--store-menu-ink);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.4;
    text-decoration: none;
}

.store-mobile-menu__group summary {
    cursor: pointer;
    list-style: none;
}

.store-mobile-menu__group summary::-webkit-details-marker {
    display: none;
}

.store-mobile-menu__chevron {
    position: relative;
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    margin: 0 4px 4px 12px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform .18s ease, margin .18s ease;
}

.store-mobile-menu__group[open] > summary .store-mobile-menu__chevron {
    margin-bottom: -4px;
    transform: rotate(225deg);
}

.store-mobile-menu__group-content {
    padding: 0 0 9px 12px;
}

.store-mobile-menu__view-all {
    display: inline-flex;
    padding: 8px 0 9px;
    color: #b52f42;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.store-mobile-menu__categories--nested {
    padding-left: 12px !important;
    border-left: 1px solid var(--store-menu-line);
}

.store-mobile-menu__categories--nested .store-mobile-menu__category-item:last-child {
    border-bottom: 0;
}

.store-mobile-menu__categories--nested .store-mobile-menu__category-link,
.store-mobile-menu__categories--nested .store-mobile-menu__group summary {
    min-height: 42px;
    font-size: 14px;
    font-weight: 400;
}

.store-mobile-menu__support {
    display: grid;
    gap: 8px;
    margin-top: 28px;
    padding: 18px;
    border-radius: 8px;
    background: #f5f8f8;
    font-size: 14px;
}

.store-mobile-menu__support-label {
    color: var(--store-menu-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.store-mobile-menu__support a {
    color: var(--store-menu-ink);
    text-decoration: none;
}

.store-mobile-menu__empty {
    margin: 0;
    color: var(--store-menu-muted);
    font-size: 14px;
}

/* Use the existing dropdown layout for keyboard focus as well as pointer hover. */
.tf-header .menu-item:focus-within > .sub-menu,
.tf-header .menu-item.store-nav-open > .sub-menu {
    display: block;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.tf-header .nav-account:focus-within > .dropdown-account,
.tf-header .nav-account.store-nav-open > .dropdown-account,
.tf-header .has-sub-nav-category:focus-within > .sub-nav-category,
.tf-header .has-sub-nav-category.store-nav-open > .sub-nav-category {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}
.tf-header .store-nav-dismissed > .sub-menu,
.tf-header .store-nav-dismissed > .dropdown-account,
.tf-header .store-nav-dismissed > .sub-nav-category {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none;
}
.tf-header button.btn-nav-drop { width: 100%; border: 0; font: inherit; }
.tf-header button.btn-open-header-bottom { border: 0; background: transparent; color: inherit; padding: 0; }
.tf-header a:focus-visible,
.tf-header button:focus-visible,
.tf-header input:focus-visible,
.tf-header select:focus-visible,
.store-mobile-menu a:focus-visible,
.store-mobile-menu button:focus-visible,
.store-mobile-menu input:focus-visible,
.store-mobile-menu summary:focus-visible,
.modal-search input:focus-visible,
.modal-search button:focus-visible {
    outline: 3px solid #086579;
    outline-offset: 3px;
}
.modal-search button.icon-close-popup { border: 0; background: transparent; color: inherit; }
.store-mobile-menu__search:focus-within { border-color: #667085; }

/* Keep search compact. No extra outer ring on pointer/programmatic input focus. */
.tf-header input[type="search"]:focus,
.modal-search input[type="search"]:focus,
.store-mobile-menu input[type="search"]:focus {
    outline: none;
    box-shadow: none;
    border-color: #667085;
}
.modal-search .modal-dialog { max-width: 680px; }
.modal-search .modal-content { max-height: calc(100dvh - 32px); overflow-y: auto; }
.modal-search .icon-close-popup:focus:not(:focus-visible) { outline: none; }
.store-search-field, .header-search-form .fieldset-search, .store-mobile-menu__search { position: relative; }
.store-search-results {
    position: absolute; top: calc(100% + 8px); left: 0; right: 0;
    z-index: 1055; background: #fff; border: 1px solid #e4e7ec; border-radius: 10px;
    padding: 4px; max-height: min(380px, 55dvh); overflow-y: auto;
    box-shadow: 0 8px 24px rgba(16,24,40,.1); text-align: left;
}
.store-search-results[hidden] { display: none !important; }
.modal-search .store-search-results { position: static; margin-top: 8px; box-shadow: none; }
.store-search-option {
    display: flex; align-items: center; gap: 12px; padding: 11px 12px;
    min-height: 44px; color: #182230; font-size: 14px; line-height: 1.4; border-radius: 6px;
}
.store-search-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.store-search-meta { flex: 0 0 auto; font-size: 12px; color: #475467; white-space: nowrap; }
.store-search-option:hover, .store-search-option[aria-selected="true"], .store-search-option:focus-visible { background: #f1f5f6; }
.store-search-option:focus-visible { outline: 2px solid #086579; outline-offset: -2px; }
.store-search-message { padding: 12px; margin: 0; font-size: 14px; color: #475467; }
@media (max-width: 575.98px) {
    .modal-search .modal-dialog { margin: 12px; }
    .modal-search .modal-content { padding: 20px; gap: 18px; border-radius: 16px; }
    .store-search-option { gap: 8px; padding: 11px 8px; }
}
@media (prefers-reduced-motion: reduce) {
    .tf-header .sub-menu, .tf-header .dropdown-account, .tf-header .sub-nav-category,
    .store-mobile-menu__chevron { transition: none; }
}

@media (max-width: 575.98px) {
    .store-mobile-menu__header,
    .store-mobile-menu__body {
        padding-right: 18px;
        padding-left: 18px;
    }

    .store-mobile-menu__search {
        margin-right: 18px;
        margin-left: 18px;
    }
}
