/* ---------- header (desktop) ---------- */
#site-header {
    height: 85px;
    padding: 0 144px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--background);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
    position: relative;
    z-index: 10;
}
 
.logo {
    width: 117px;
    height: 65px;
    display: block;
}
 
/* these four only exist on mobile */
.hamburger,
.menu-overlay,
.drawer-top,
.back-button {
    display: none;
}
 
.menu-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 36px;
    min-width: 600px;
}
 
.menu a {
    text-decoration: none;
    color: var(--text);
    font-weight: 500;
    font-size: 14px;
}
 
.brands-button {
    border: none;
    background: none;
    padding: 0;
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    color: var(--text);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
}
 
.brands-button::after {
    content: "";
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    transition: transform 0.2s;
}
 
/* chevron flips up while the dropdown is open */
.menu.submenu-open .brands-button::after {
    transform: rotate(225deg) translateY(2px);
}
 
/* ---------- brands dropdown (desktop) ---------- */
.has-submenu {
    position: relative;
}
 
.submenu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    margin: 10px 0 0;
    padding: 8px 0;
    min-width: 190px;
    list-style: none;
    background: var(--background);
    border-radius: 6px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
    z-index: 20;
}
 
/* invisible bridge so the dropdown doesn't close when the mouse crosses the gap */
.submenu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -10px;
    height: 10px;
}
 
.submenu a {
    display: block;
    padding: 12px 20px;
    font-size: 14px;
}
 
.submenu a:hover {
    background: var(--primary2);
    color: var(--primary);
}
 
.menu.submenu-open .submenu {
    display: block;
}

.submenu .submenu-all { display: none; }
 
@media (hover: hover) and (min-width: 768px) {
    .has-submenu:hover .submenu {
        display: block;
    }
}
 
/* ---------- green Let's Talk button (header and hero) ---------- */
.talk-button {
    background: var(--primary);
    color: #fff !important;
    width: 140px;
    height: 40px;
    border: 2px solid var(--primary);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, color 0.2s;
}
 
.talk-button:hover {
    background: var(--primary2);
    color: var(--primary) !important;
}

/* ---------- mobile (767px and below) ---------- */
@media screen and (max-width: 767.98px) {
 
    #site-header {
        padding: 0 24px;
        justify-content: center; /* logo in the middle */
    }
 
    /* hamburger on the right */
    .hamburger {
        display: flex;
        position: absolute;
        right: 24px;
        top: 50%;
        transform: translateY(-50%);
        background: none;
        border: none;
        padding: 4px;
        color: var(--text);
        cursor: pointer;
    }
 
    /* dark layer behind the drawer */
    .menu-overlay {
        display: block;
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.35);
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s, visibility 0.3s;
        z-index: 25;
    }
 
    #site-header.menu-open .menu-overlay {
        opacity: 1;
        visibility: visible;
    }
 
    /* the drawer */
    .menu {
        position: fixed;
        top: 0;
        right: 0;
        width: 55%;
        min-width: 260px;
        max-width: 360px;
        height: 100%;
        background: var(--background);
        transform: translateX(100%);
        visibility: hidden;
        transition: transform 0.3s ease, visibility 0.3s;
        z-index: 30;
        overflow-y: auto;
    }
 
    #site-header.menu-open .menu {
        transform: translateX(0);
        visibility: visible;
    }
 
    /* top bar: back (left, brands view only) + X (right, shared) */
    .drawer-top {
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 85px;
        padding: 0 24px;
    }
 
    .back-button {
        align-items: center;
        gap: 8px;
        background: none;
        border: none;
        padding: 0;
        font: inherit;
        font-size: 14px;
        font-weight: 500;
        color: var(--text);
        cursor: pointer;
    }
 
    .menu.submenu-open .back-button {
        display: flex;
    }
 
    .close-button {
        margin-left: auto;
        display: flex;
        background: none;
        border: none;
        padding: 4px;
        color: var(--text);
        cursor: pointer;
    }
 
    /* main list (picture 2) */
    .menu-list {
        flex-direction: column;
        align-items: flex-end;
        justify-content: flex-start;
        gap: 28px;
        min-width: 0;
        padding: 24px;
    }
 
    .menu a,
    .brands-button {
        font-size: 18px;
    }
 
    .menu .talk-button {
        background: none;
        border: none;
        color: var(--text) !important;
        width: auto;
        height: auto;
        border-radius: 0;
        display: inline;
    }
 
    .menu .talk-button:hover {
        background: none;
        color: var(--primary) !important;
    }
 
    /* "Our Brands" row: arrow on the left, text on the right */
    .has-submenu {
        position: static; 
        width: 100%;
    }
 
    .brands-button {
        width: 100%;
        justify-content: space-between;
    }
 
    .brands-button::after {
        display: none;
    }
 
    .brands-button::before {
        content: "\2190";
        font-size: 20px;
    }
 
    /* brands panel (picture 3) covers the main list, under the top bar */
    .submenu {
        position: absolute;
        top: 85px;
        left: 0;
        right: 0;
        bottom: 0;
        margin: 0;
        min-width: 0;
        padding: 24px;
        border-radius: 0;
        box-shadow: none;
        flex-direction: column;
        align-items: flex-end;
        gap: 28px;
    }
    .submenu .submenu-all { display: block; }
 
    .submenu::before {
        display: none;
    }
 
    .menu.submenu-open .submenu {
        display: flex;
    }
 
    .submenu a {
        padding: 0;
        font-size: 18px;
    }
 
    .submenu a:hover {
        background: none;
    }
 
}

@media screen and (min-width: 768px) {
    #site-header {
        padding: 0 30px;
    }
    .menu-list {
        gap: 20px;
        min-width: 200px;
    }
    .has-submenu:focus-within .submenu { display: block; }
}
@media screen and (min-width: 897px) {
    #site-header {
        padding: 0 80px;
    }
    .menu-list {
        gap: 36px;
    }

}
@media screen and (min-width: 1025px) and (max-width: 1232px) {
    #site-header {
        padding: 0 120px;
    }
    .menu-list {
        min-width: 500px;
    }
}