/*------------------------------------*\
    
    Header CSS
 
    eg: Header, Navigation, Ubermenu, Masthead 
    Page head.............The main page header.
    Navigation............Navigation elements + Ubermenu.
    Masthead..............Page title/image/slideshow header block.
    Breadcrumbs...........Breadcrumbs navigation typically near the masthead/page heading

\*------------------------------------*/

/**
 * Page-head
 */

 .page-header {
    position: relative;  /* Start as relative */
    z-index: 99;
    top: 0;
    left: 0;
    width: 100%;
    background: #fff;
    padding-bottom: 17px;
    box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;  /* Transition all properties */
}

.page-header.js-scrolled {
    position: fixed;  /* Change to fixed when scrolled */
    top: calc(var(--zero) + var(--admin-bar-height));
    box-shadow: 0 0 5px 5px rgba(0, 0, 0, 0.1);
}

.js-scrolled .header-top {
    display: none;
}

@media (min-width: 600px) {
    .page-header.js-scrolled {
        top: calc(var(--zero) + var(--admin-bar-height));
    }
}

.header-top {
    text-align: center;
    background: #161616;
    color: #fff;
    font-size: 18px;
    line-height: 18px;
    font-weight: 600;
    padding: 14px 22px;
    text-transform: capitalize;
}

.logo {
    width: 60px;
    margin-block: 6px;
    min-height: 60px;
    height: 100%;
    display: flex;
    position: relative;
}

.logo a {
    display: block;
    border: none;
    width: 100%;
    img {
        position: absolute;
        -o-object-fit: contain;
        object-fit: contain;
        height: 100%;
        width: auto;
        top: 0;
    }
}

.nav-primary {
    order: 4;
    margin-left: 14px;
    margin-top: -5px;
}

.page-header .flex-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0;
}

.ubermenu-responsive-toggle {
    padding: 0;
    font-size: 0;
}

@media (min-width: 600px) {
    .logo {
        min-height: 130px;
        margin-block: 0;
    }
    .page-header .flex-row {
        display: grid;
        grid-template-columns: 105px 1fr 65px 35px;
        align-items: center;
        justify-items: center;
        gap: 25px;
    }

    .nav-primary {
        order: 4;
        margin-left: -15px;
        margin-top: -5px;
    }
}

@media (min-width: 1200px) {
    .page-header .flex-row {
        justify-content: space-between;
        padding: 6px 0;
        align-items: center;
        display: flex;
        flex-wrap: nowrap;
        gap: 0;
    }

    .nav-primary {
        order: initial;
        margin-left: auto;
        margin-top: initial;
    }
}

.image-text .flex-row {
    align-items: center;
}

.right-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-left: auto;
}

.right-header a {
    display: block;
    border: none;
}

.profile,
.header-cart {
    font-size: 24px;
}

.profile a,
.header-cart a {
    color: #000;
    font-weight: normal;
}

.js-menu-toggle {
    font-size: 35px;
    color: #000;
    cursor: pointer;
    cursor: pointer;
}

.desktop-menu__search {
    position: relative;
    background: #f0ece7;
    border-radius: 30px;
    height: 40px;
    padding: 0 20px 0 46px;
}

.desktop-menu__search input {
    width: 100%;
    height: 100%;
    padding: 9px 0;
    background: none;
    border: none;
    color: #858585;
    font-size: 16px;
    box-shadow: none;
}

.desktop-menu__search input::-webkit-input-placeholder {
    opacity: 1;
    color: #858585;
}

.desktop-menu__search input::-moz-placeholder {
    opacity: 1;
    color: #858585;
}

.desktop-menu__search input:-ms-input-placeholder {
    opacity: 1;
    color: #858585;
}

.desktop-menu__search input::-ms-input-placeholder {
    opacity: 1;
    color: #858585;
}

.desktop-menu__search input::placeholder {
    opacity: 1;
    color: #858585;
}

.search-bttn {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translate(0, -50%);
    color: #000000;
    font-size: 17px;
    line-height: 1em;
    margin: 1px 0 0 0;
    padding: 0;
    background: none;
    border: none;
}

.header-cart {
    position: relative;
}

.header-cart span.cart-count {
    position: absolute;
    border-radius: 50%;
    color: #fff;
    background: #4797a3;
    width: 20px;
    height: 20px;
    font-size: 12px;
    line-height: 1em;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    bottom: 0px;
    right: -8px;
}

.mini-cart-footer .cart-buttons a:after {
    content: "\f107";
    transform: rotate(270deg);
    font-size: 13px;
}

img.secure-icon-mini-cart {
    margin: 25px auto;
}

.mini-cart-footer > strong {
    display: flex;
    justify-content: space-between;
    color: #474747;
    font-size: 17px;
    font-weight: 700;
}

@media (min-width: 768px) {
    .page-header {
        padding-bottom: 0;
    }

    .logo {
        width: 106px;
    }

    .desktop-menu__search {
        width: 380px;
    }
}

@media (min-width: 1200px) {
    .page-header {
        position: absolute;
        transition: all 0.3s ease;
    }

    .page-header .flex-row {
        padding: 0;
    }

    .hideheader {
        top: -200px;
    }

    .logo {
        width: 90px;
        min-height: 130px;
    }

    .desktop-menu__search {
        width: 278px;
        margin-left: 58px;
    }

    .right-header {
        gap: 25px;
    }

     /* .search-bttn:hover,
    .profile:hover a,
    .header-cart:hover a {
        color: #4797a3;
    } */

    .header-cart:hover span.cart-count {
        background: #000;
    }
}

@media (min-width: 1366px) {
    .logo {
        width: 130px;
        min-height: 130px;
    }
}

@media (min-width: 1025px) {
    .page-header--sticky {
        position: -webkit-sticky;
        position: sticky;
        top: 0;
    }
}

/* Fix sticky header position for when admin bar visible
   TODO: Uncomment if design has sticky header */

/* .admin-bar .page-header {
    top: 32px;
}

@media screen and (max-width: 1200px) {
    .admin-bar .page-header {
        top: 0;
    }
} */

@media (-webkit-min-device-pixel-ratio: 2) and (-webkit-min-device-pixel-ratio: 2) and (max-width: 1024px),
    (-webkit-min-device-pixel-ratio: 2) and (min-resolution: 192dpi) and (max-width: 1024px) {
    /* TODO: Add Retina-specific logo here - see instructions https://app.getguru.com/card/cgKzjo5i/How-to-make-a-highres-logo-load-for-2x-resolution-devices */
}

/**
 * Navigation
 */

/* General Styling */

/* 1st Level */

/* Sub Menus */

.nav-primary .sub-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    max-width: 250px; /* adjust to match width of submenu prototype */
}

.nav-primary li:hover > .sub-menu {
    display: block;
}

.nav-primary .sub-menu li {
    display: block;
}

/* 3rd Level Sub Menus */

.nav-primary .sub-menu .sub-menu {
    top: 0;
    left: 100%;
}

@media (min-width: 1200px) {
    .sub-menu-toggle {
        position: absolute;
        right: 0;
        top: 8px;
        font-size: 10px;
        line-height: 1em;
        color: #6c6c6c;
    }
}

/**
 * Ubermenu Styling (Starter CSS - Generally no editing needed)
 */

@media only screen and (max-width: 1200px) {
    /* forces mobile menu to push other menu items down when open instead of the sub-menu overlapping other menu items */
    .ubermenu .ubermenu-item .ubermenu-submenu-drop {
        position: relative !important;
    }

    .ubermenu-responsive.ubermenu {
        margin: 0;
        position: fixed;
        width: 100%;
        z-index: 900;
        background: #f0f0f0;
    }

    .ubermenu .ubermenu-item {
        position: relative !important;
    }

    /* styles the sub-menu indicator on mobile and tablet */
    .ubermenu-sub-indicator {
        position: absolute;
        right: 0 !important;
        top: 0;
        padding: 20px;
        z-index: 900;
    }

    .ubermenu.ubermenu-submenu-indicator-closes .ubermenu-sub-indicator-close {
        right: 14px;
        top: 0;

        i:before {
            content: "\f107";
            rotate: 180deg;
            display: block;
        }
    }

    .ubermenu.ubermenu-submenu-indicator-closes .ubermenu-sub-indicator-close > [class^="fa"] {
        position: relative;
        top: 0;
        margin-top: 0;
    }

    .ubermenu-responsive-toggle {
        float: right;
    }
}

.ubermenu-responsive-toggle i {
    /* controls styling of mobile menu toggle */
    display: block;
    font-size: 32px;
    margin: 0 !important;
    outline-color: transparent;

    &:focus {
        outline: none;
        outline-color: transparent;
    }
}

.mobile-menu {
    position: relative;
    z-index: 9;
}

.ubermenu-responsive-toggle:hover {
    background-color: transparent;
}

.ubermenu-responsive-toggle:focus {
    outline-color: transparent;
}

@media only screen and (min-width: 1200px) {
    .ubermenu > ul > li > a {
        padding-top: 40px !important; /* controls top level menu items on desktop size */
        padding-bottom: 40px !important;
        display: block;
    }
}

.ubermenu-responsive.ubermenu {
    --top-header-offset: 175px;
    top: var(--top-header-offset);
    left: 0;
    height: calc(100lvh - var(--top-header-offset)) !important;
    overflow-x: scroll !important;
    z-index: 2000;
    position: fixed;
    max-height: initial !important;
    box-shadow: inset 0px 4px 10px 0px rgba(0, 0, 0, 0.1);
    background-color: #fff;
}

.js-scrolled .ubermenu-responsive.ubermenu {
    --top-header-offset: 130px;
}

.desktop-menu .ubermenu-responsive-toggle {
    display: none;
    z-index: 2000;
    position: relative;
}

.admin-bar {
    .ubermenu-responsive.ubermenu {
        --top-header-offset: 221px;
    }

    .js-scrolled .ubermenu-responsive.ubermenu {
        --top-header-offset: 131px;
    }
}

@media only screen and (min-width: 768px) {
    .ubermenu-responsive.ubermenu {
        --top-header-offset: 175px;
        bottom: auto;
        max-height: auto !important;
        overflow-x: inherit !important;
    }

    .js-scrolled .ubermenu-responsive.ubermenu {
        --top-header-offset: 129px;
    }

    .admin-bar {
        .ubermenu-responsive.ubermenu {
            --top-header-offset: 240px;
        }

        .js-scrolled .ubermenu-responsive.ubermenu {
            --top-header-offset: 162px;
        }
    }

    .sticky-bar {
        display: none;
    }

    .desktop-menu {
        display: inline-block;
    }

    .desktop-menu .ubermenu-responsive-toggle {
        display: block;
    }
}

@media only screen and (min-width: 1200px) {
    .desktop-menu .ubermenu-responsive-toggle {
        display: none;
    }

    .ubermenu-responsive.ubermenu {
        top: auto;
        height: auto !important;
        box-shadow: none;
    }
}

/* Custom Ubermenu */

@media (max-width: 1199px) {
    html:has(body.menu-is-active) {
        overflow-y: hidden;
        height: 100lvh;
    }

    .ubermenu.ubermenu-main .ubermenu-item-level-0 {
        margin: 0 !important;
    }

    .ubermenu-item:before {
        display: none;
    }

    .ubermenu-sub-indicators.ubermenu-sub-indicators-align-text
        .ubermenu-has-submenu-drop
        > .ubermenu-target
        > .ubermenu-sub-indicator {
        right: initial;
        margin-left: auto;
        display: inline-block;
    }

    .ubermenu-responsive .ubermenu-item.ubermenu-item-level-0 > .ubermenu-target {
        border: none;
        box-shadow: none;
        display: flex;
        justify-content: space-between;
    }

    .ubermenu .ubermenu-item .ubermenu-submenu-drop {
        box-shadow: none;
    }
    .ubermenu-main .ubermenu-submenu.ubermenu-submenu-drop {
        background-color: #f8f8f8;
    }

    .ubermenu-main {
        .ubermenu-submenu.ubermenu-submenu-drop {
            background-color: #f0efef;
        }

        .ubermenu-active .ubermenu-submenu.ubermenu-submenu-drop {
            padding-block: 10px;
            background-color: #f4f3f1;
        }
    }
}

@media (min-width: 1200px) {
    .ubermenu-sub-indicators.ubermenu-sub-indicators-align-text
        .ubermenu-has-submenu-drop
        > .ubermenu-target
        > .ubermenu-sub-indicator {
        right: auto;
        margin-left: 0.6em;
    }

    .ubermenu.ubermenu-main .ubermenu-item-level-0 {
        margin: 0 0 !important;

        > a {
            padding-block: 60px !important;
        }
    }

    .ubermenu-item::before {
        display: none;
    }

    .page-header > .container {
        position: relative !important;
    }

    .ubermenu-bound {
        position: static !important;
    }

    .ubermenu.ubermenu-disable-submenu-scroll .ubermenu-active > .ubermenu-submenu.ubermenu-submenu-type-mega {
        z-index: -1;
        box-shadow: inset 0px 4px 10px 0px rgba(0, 0, 0, 0.1);
        display: flex;
    }

    .ubermenu-main .ubermenu-submenu .ubermenu-item-header > .ubermenu-target {
        margin-top: 22px;
    }

    .ubermenu .ubermenu-nav .ubermenu-column-1-2,
    .ubermenu .ubermenu-nav .ubermenu-column-1-3,
    .ubermenu .ubermenu-nav .ubermenu-column-1-4 {
        border-right: 1px solid #f0ece7;
        height: inherit;
    }

    .ubermenu .ubermenu-nav .ubermenu-column-1-4:has(.ubermenu-custom-content) {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-grow: 1;
        flex-shrink: 0;
    }

    .ubermenu .ubermenu-autocolumn,
    .ubermenu .ubermenu-submenu-type-stack {
        padding-bottom: 18px;
    }

    .ubermenu .ubermenu-target {
        line-height: 1.125;
    }

    .ubermenu:not(.ubermenu-transition-slide) .ubermenu-submenu.ubermenu-submenu-type-flyout {
        min-width: 300px;
        padding-block: 15px;
        box-shadow: inset 0px 4px 10px 0px rgba(0, 0, 0, 0.1);
    }

    .ubermenu-sub-indicators.ubermenu-sub-indicators-align-text
        .ubermenu-has-submenu-drop
        > .ubermenu-target
        > .ubermenu-sub-indicator {
        font-size: 80%;
    }

    .ubermenu-item-level-0.ubermenu-active > a > .ubermenu-target-text {
        position: relative;

        &:before {
            content: "";
            display: block;
            width: 130%;
            height: 2px;
            background: #4797a3;
            top: 100%;
            position: absolute;
        }
    }
}

.menu-banner {
    position: relative;
    height: 100%;
    display: flex;
    justify-content: end;
    flex-direction: column;
    height: 425px;
    min-width: 293px;
    padding: 20px;
    border: none;
    border-radius: 0;
    margin-top: 7px;

    &:after {
        content: "";
        display: block;
        height: 201px;
        width: 100%;
        position: absolute;
        z-index: 1;
        left: 0;
        bottom: 0;
        background: linear-gradient(180deg, rgba(1, 1, 1, 0) 0%, #000 100%);
    }

    span {
        z-index: 3;
    }
}

.menu-banner-image {
    height: 100%;
    width: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    position: absolute;
    z-index: -1;
    left: 0;
    top: 0;
    border: none;
}

.menu-banner-title {
    color: #fff;
    font-family: "Source Sans 3";
    font-size: 26px;
    font-style: normal;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 10px;
}

.menu-banner-button {
    display: flex;
    gap: 10px;
    color: #fff;
    font-weight: 400;
    color: #fff;
    font-family: "Source Sans 3";
    font-size: 22px;
}

.menu-banner-button-arrow {
    width: 51px;
    height: auto;
    -o-object-fit: contain;
    object-fit: contain;
}

/* controls sticky bar menu icon and overlay on mobile */
.sticky-bar .menu-is-active .fa-bars:before {
    content: "X"; /* TODO: change this to be an icon from the icon font on the site */
    color: #000;
}


.fa-bars {
    color: #000;
}

body:after {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    display: none;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.25);
    z-index: -1000;
}

@media (max-width: 1024px) {
    .sticky-bar {
        z-index: 2000 !important;
    }
}

/* Modern IPhone Fixes */
@media screen and (width: 375px) and (height: 813px) {
    .sticky-bar {
        /* ^ TODO: change classname to match mobile sticky bar class */

        /* prevents 'home indicator' overlap */
        padding-bottom: 34px;

        /* prevents content from being cut off in screen rounded corners */
        padding-left: 16px;
        padding-right: 16px;
    }
}

/**
 * Ubermenu Styling - Custom Styles
 */

/**
 * site-content
 */

.site-content {
    position: relative;
}

@media (min-width: 1200px) {
    .site-content {
        margin-top: 146px !important;
    }
}

@media (min-width: 1366px) {
    .home.page-template-default .site-content,
    .site-content {
        margin-top: 154px !important;
        padding-top: 0;
    }

    .page-template-default .site-content{
    /* .archive .site-content  */
        margin-top: 180px !important;
        padding-top: 50px;
    }
}

/**
 * Breadcrumbs
 */

.breadcrumbs {
    padding-block: 50px;
    font-size: 16px;
}

.breadcrumbs li {
    list-style-type: none;
    display: inline-block;
    margin-right: 3px;
    font-size: 0;
    margin-bottom: 0;
}

.breadcrumbs a {
    text-decoration: none;
    font-size: 16px;
}

.breadcrumbs li :not(:nth-last-child(2)),
.breadcrumbs li :after {
    display: none;
    visibility: hidden;
    content: none;
}

.breadcrumbs li a:before {
    content: "< Go to ";
}

@media (min-width: 767px) {
    .breadcrumbs li a:before {
        content: none;
    }

    .breadcrumbs li :not(:nth-last-child(2)),
    .breadcrumbs li :after {
        display: inline-block;
        visibility: visible;
        content: initial;
    }

    .breadcrumbs li {
        font-size: 16px;
    }
}
