.ge-tvhmenu-wrapper {
    position: relative;
}

.ge-tvhmenu-wrapper::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    width: 420px;
    max-width: calc(100vw - 30px);
    height: 14px;
    z-index: 98;
}

.ge-tvcmsvertical-menu {
    position: relative;
}

.ge-tvcategory-title-wrapper {
    cursor: pointer;
    user-select: none;
}

#tvcms-header-menu-7 .row.ge-header-menu-row {
    display: flex !important;
    align-items: center !important;
}

#tvcms-header-menu-7 .ge-tvhmenu-wrapper .tvcategory-title-wrapper,
#tvcms-header-menu-7 .ge-tvcmsvertical-menu .tvcategory-title-wrapper {
    padding: 10px 20px !important;
    margin: 0 !important;
}

.ge-tvverticalmenu-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 320px;
    max-width: 420px;
    background: #fff;
    border: 1px solid #ececec;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
    z-index: 99;
}

.ge-tvcmsvertical-menu-wrapper-data:hover .ge-tvverticalmenu-dropdown {
    display: block;
}

.ge-tvverticalmenu-dropdown li {
    position: relative;
    list-style: none;
    padding: 10px 14px;
    border-bottom: 1px solid #f4f4f4;
    background: #fff;
}

.ge-tvverticalmenu-dropdown li:last-child {
    border-bottom: 0;
}

.ge-tvverticalmenu-dropdown .tv-vertical-menu-text-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.ge-tvverticalmenu-dropdown a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #222;
    text-decoration: none;
    line-height: 1.3;
    width: calc(100% - 20px);
}

.ge-tvverticalmenu-dropdown .ge-category-item {
    width: calc(100% - 20px);
}

.ge-tvverticalmenu-dropdown .ge-category-item .subcategory-item-single {
    width: 100%;
}

.ge-tvverticalmenu-dropdown .subcategory-item-icon {
    width: 30px;
    height: 30px;
    object-fit: cover;
    border-radius: 4px;
    flex: 0 0 30px;
}

.ge-tvverticalmenu-dropdown .submenu-item-title,
.ge-tvverticalmenu-dropdown .subcategory-item-title,
.ge-tvverticalmenu-dropdown .tvvertical-menu-category {
    font-size: 14px;
    font-weight: 500;
}

.ge-tvverticalmenu-dropdown .tvvertical-menu-img-block {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    min-width: 30px;
    height: 30px;
    flex: 0 0 30px;
}

.ge-tvverticalmenu-dropdown .img-icon {
    width: 30px;
    height: 30px;
    object-fit: cover;
    border-radius: 4px;
    display: block;
}

.ge-tvverticalmenu-dropdown .tvvertical-menu-img-block.ge-brand-thumb-block {
    width: 60px !important;
    min-width: 60px !important;
    height: 32px !important;
    flex: 0 0 60px !important;
}

.ge-tvverticalmenu-dropdown .img-icon.ge-brand-thumb {
    max-width: 60px !important;
    max-height: 32px !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

/* Strong override with #id to beat theme/module specificity for brand logos */
#tvcms-header-menu-7 #ge-tvverticalmenu .ge-tvverticalmenu-dropdown .tvvertical-menu-img-block.ge-brand-thumb-block {
    width: 60px !important;
    min-width: 60px !important;
    flex: 0 0 60px !important;
}

#tvcms-header-menu-7 #ge-tvverticalmenu .ge-tvverticalmenu-dropdown .img-icon.ge-brand-thumb {
    max-width: 60px !important;
}

.ge-tvverticalmenu-dropdown .subcategory-item-title {
    text-align: left;
}

.ge-submenu-toggle {
    cursor: pointer;
    line-height: 1;
}

.ge-submenu-toggle .down {
    display: none;
}

.ge-submenu-block {
    position: absolute;
    top: -1px;
    left: 100%;
    min-width: 320px;
    background: #fff;
    border: 1px solid #ececec;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
    display: none;
    z-index: 100;
}

.tvcmsvertical-sub-menu.menu-dropdown.ge-submenu-block.ge-level-2 {
    width: auto;
}

.ge-submenu-list {
    margin: 0;
    padding: 0;
}

.ge-submenu-grid {
    display: grid;
}

.ge-submenu-grid-two-columns {
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    min-width: 620px;
}

.ge-submenu-column {
    margin: 0;
    padding: 0;
}

.ge-submenu-column > li {
    width: 100%;
}

.ge-submenu-list-one-column {
    min-width: 320px;
}

.ge-tvverticalmenu-dropdown li:hover > .ge-submenu-block {
    display: block;
}

.ge-tvverticalmenu-dropdown li:hover > .tv-vertical-menu-text-wrapper > a {
    color: #d1a737;
}

/* Temporary workaround: hide More/Less node injected by legacy tvcmsverticalmenu JS */
.ge-tvverticalmenu-dropdown .tvvertical-menu-show-hide-category {
    display: none !important;
}

@media (max-width: 1199px) {
    .ge-tvhmenu-wrapper::after {
        display: none;
    }

    .ge-tvverticalmenu-dropdown {
        position: static;
        min-width: 100%;
        max-width: 100%;
        border: 1px solid #ececec;
        box-shadow: none;
    }

    .ge-tvcmsvertical-menu-wrapper-data:hover .ge-tvverticalmenu-dropdown {
        display: none;
    }

    .ge-tvhmenu-wrapper.open .ge-tvverticalmenu-dropdown {
        display: block;
    }

    .ge-submenu-block {
        position: static;
        min-width: 100%;
        border: 0;
        box-shadow: none;
        margin-top: 8px;
        padding-left: 14px;
        display: none;
    }

    .ge-tvverticalmenu-dropdown li:hover > .ge-submenu-block {
        display: none;
    }

    .ge-submenu-grid-two-columns {
        grid-template-columns: 1fr;
        min-width: 100%;
    }

    .ge-tvverticalmenu-dropdown li.open > .ge-submenu-block {
        display: block;
    }

    .ge-tvverticalmenu-dropdown .ge-submenu-toggle .right {
        display: inline-block;
    }

    .ge-tvverticalmenu-dropdown li.open > .tv-vertical-menu-text-wrapper .ge-submenu-toggle .right {
        display: none;
    }

    .ge-tvverticalmenu-dropdown li.open > .tv-vertical-menu-text-wrapper .ge-submenu-toggle .down {
        display: inline-block;
    }
}
