/* RCG Site Manager responsive header */
body.rcgsm-responsive-header-enabled #masthead,
body.rcgsm-responsive-header-enabled > .site-header:not(#rcgsm-site-header) {
    display: none !important;
}

body.rcgsm-responsive-header-enabled {
    --rcgsm-header-red: #cf4335;
    --rcgsm-header-red-dark: #ac3127;
    --rcgsm-header-ink: #292929;
    --rcgsm-header-muted: #46546a;
    --rcgsm-header-line: rgba(35, 48, 68, .14);
    --rcgsm-header-surface: rgba(255, 255, 255, .98);
}

body.rcgsm-responsive-header-sticky #rcgsm-site-header {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 0;
    /* Belt and braces. The reserved height below is what actually stops the
       header shifting the page; this only guards against anything else above
       the viewport resizing. */
    overflow-anchor: none;
}

body.admin-bar.rcgsm-responsive-header-sticky #rcgsm-site-header {
    top: 32px;
}

/* This element reserves the header's full height in flow and does nothing
   else. The visible bar is painted on __main, which is free to shrink inside
   the reserved box when the header compacts — so compacting never changes
   layout height, and nothing below the header can move. That is what keeps
   the header still; without it, the 66px the bar gives up is real layout and
   the browser answers by moving the scroll position.

   The strip the bar vacates must therefore neither paint nor swallow clicks:
   hence the transparent background, no shadow, and pointer-events: none.
   __main turns interaction back on for the bar itself.

   --rcgsm-header-reserve must track .rcgsm-header__inner's expanded
   min-height at every breakpoint. Both are declared together below. */
#rcgsm-site-header {
    z-index: 9998;
    width: 100%;
    min-height: var(--rcgsm-header-reserve);
    color: var(--rcgsm-header-ink);
    background: transparent;
    border: 0;
    box-shadow: none !important;
    pointer-events: none;
}

/* Slightly stronger shadow once the sticky header compacts. */
body.rcgsm-responsive-header-sticky #rcgsm-site-header.is-compact .rcgsm-header__main {
    box-shadow: 0 6px 22px rgba(18, 27, 41, 0.12) !important;
}

#rcgsm-site-header,
#rcgsm-site-header * {
    box-sizing: border-box;
}

/* Set only while JS reads the expanded height, so the measurement cannot be
   seen as a flicker. */
#rcgsm-site-header.is-measuring,
#rcgsm-site-header.is-measuring * {
    transition: none !important;
}

#rcgsm-site-header a {
    text-decoration: none;
}


#rcgsm-site-header .ast-menu-toggle {
    display: none !important;
}

#rcgsm-site-header .dropdown-menu-toggle {
    display: none !important;
}

.rcgsm-header__promo {
    display: grid;
    pointer-events: auto;
    position: relative;
    z-index: 3;
    min-height: 36px;
    max-height: 60px;
    place-items: center;
    padding: 7px 22px;
    color: #0b9b0b;
    background: #fff;
    overflow: hidden;
    border: 0;
    box-shadow: none !important;
    font-size: 14px;
    line-height: 1.35;
    text-align: center;
    opacity: 1;
    transition: min-height .2s ease, max-height .2s ease, padding .2s ease, opacity .16s ease;
}

.rcgsm-header__promo-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .35em;
}

.rcgsm-header__promo strong {
    font-weight: 800;
}

.rcgsm-header__promo span {
    font-weight: 500;
}

/* The painted bar. This is the part that shrinks when the header compacts. */
.rcgsm-header__main {
    position: relative;
    background: var(--rcgsm-header-surface);
    /* Subtle drop shadow at all viewport sizes; stays visible when sticky
       without creating a heavy divider. Stronger when compact (scrolled). */
    box-shadow: 0 2px 14px rgba(18, 27, 41, 0.08) !important;
    backdrop-filter: saturate(160%) blur(14px);
    -webkit-backdrop-filter: saturate(160%) blur(14px);
    pointer-events: auto;
}

#rcgsm-site-header {
    --rcgsm-header-reserve: 142px;   /* must equal .rcgsm-header__inner min-height */
}

.rcgsm-header__inner {
    display: flex;
    width: min(100%, 2048px);
    min-height: 142px;
    margin: 0 auto;
    padding: 18px clamp(28px, 3vw, 54px);
    align-items: center;
    gap: clamp(24px, 2.5vw, 52px);
    transition: min-height .2s ease, padding .2s ease, gap .2s ease;
}

.rcgsm-header__branding {
    display: flex;
    flex: 0 0 auto;
    min-width: 210px;
    align-items: flex-start;
    flex-direction: column;
}

.rcgsm-header__brand-link {
    display: inline-flex;
    align-items: center;
    color: var(--rcgsm-header-ink);
}

.rcgsm-header__logo {
    display: block;
    width: clamp(190px, 14vw, 252px);
    max-height: 78px;
    object-fit: contain;
    object-position: left center;
    transition: width .2s ease, max-height .2s ease;
}

.rcgsm-header__brand-text {
    max-width: 270px;
    font-family: "Libre Baskerville", Georgia, serif;
    font-size: clamp(1.2rem, 2vw, 1.7rem);
    font-weight: 700;
    line-height: 1.12;
}

.rcgsm-header__tagline {
    margin: 7px 0 0 7px;
    color: var(--rcgsm-header-muted);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .015em;
    line-height: 1.2;
    text-transform: uppercase;
    transition: opacity .14s ease, margin .2s ease;
}

.rcgsm-header__nav {
    display: flex;
    min-width: 0;
    margin-left: auto;
    align-self: stretch;
    align-items: center;
}

.rcgsm-header__menu,
.rcgsm-header__menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.rcgsm-header__menu {
    display: flex;
    align-items: center;
    gap: clamp(18px, 1.75vw, 34px);
}

.rcgsm-header__menu .menu-item {
    position: relative;
    margin: 0;
}

.rcgsm-header__menu > .menu-item > a {
    display: flex;
    min-height: 48px;
    padding: 4px 0;
    align-items: center;
    gap: 7px;
    color: var(--rcgsm-header-ink);
    font-size: clamp(14px, .9vw, 17px);
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1.2;
    text-transform: uppercase;
    white-space: nowrap;
}

.rcgsm-header__menu > .menu-item.current-menu-item > a,
.rcgsm-header__menu > .menu-item.current-menu-ancestor > a,
.rcgsm-header__menu > .menu-item.current-menu-parent > a,
.rcgsm-header__menu > .menu-item.current_page_item > a,
.rcgsm-header__menu > .menu-item.current_page_parent > a,
.rcgsm-header__menu > .menu-item.current_page_ancestor > a,
.rcgsm-header__menu > .menu-item > a[aria-current="page"],
.rcgsm-header__menu > .menu-item > a:hover,
.rcgsm-header__menu > .menu-item > a:focus-visible,
.rcgsm-header__menu > .menu-item > a:active {
    color: var(--rcgsm-header-red) !important;
}

.rcgsm-header__menu .sub-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + 1px);
    left: -20px;
    display: block;
    width: max-content;
    min-width: 250px;
    max-width: 310px;
    padding: 9px;
    visibility: hidden;
    opacity: 0;
    transform: translateY(8px);
    background: #fff;
    border: 1px solid var(--rcgsm-header-line);
    border-radius: 13px;
    box-shadow: 0 18px 42px rgba(22, 30, 44, .14);
    transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}

.rcgsm-header__menu .sub-menu .sub-menu {
    top: -10px;
    left: calc(100% + 8px);
}

.rcgsm-header__menu .menu-item:hover > .sub-menu {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0s;
}

.rcgsm-header__menu .sub-menu a {
    display: flex;
    width: 100%;
    min-height: 44px;
    padding: 10px 13px;
    align-items: center;
    color: var(--rcgsm-header-ink);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 550;
    line-height: 1.3;
    text-transform: none;
    white-space: normal;
}

.rcgsm-header__menu .sub-menu a:hover,
.rcgsm-header__menu .sub-menu a:focus-visible,
.rcgsm-header__menu .sub-menu .current-menu-item > a {
    color: var(--rcgsm-header-red);
    background: rgba(207, 67, 53, .07);
}

.rcgsm-header__submenu-toggle {
    display: inline-flex;
    width: 18px;
    height: 48px;
    margin: 0 0 0 -3px;
    padding: 0;
    align-items: center;
    justify-content: center;
    color: var(--rcgsm-header-ink);
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}

.rcgsm-header__submenu-toggle:hover,
.rcgsm-header__submenu-toggle:focus-visible {
    color: var(--rcgsm-header-red);
    background: transparent;
    box-shadow: none;
    outline: none;
}

.rcgsm-header__submenu-toggle svg {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .16s ease;
}

.rcgsm-header__menu .menu-item.is-submenu-open > .rcgsm-header__submenu-toggle svg {
    transform: rotate(180deg);
}

.rcgsm-header__menu .menu-item.is-submenu-open > .sub-menu {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition-delay: 0s;
}

.rcgsm-header__menu > .menu-item-has-children {
    display: flex;
    align-items: center;
}

.rcgsm-header__menu .sub-menu .menu-item-has-children {
    padding-right: 34px;
}

.rcgsm-header__menu .sub-menu .menu-item-has-children > .rcgsm-header__submenu-toggle {
    position: absolute;
    top: 1px;
    right: 4px;
    width: 34px;
    height: 40px;
    margin: 0;
}

.rcgsm-header__actions {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 7px;
}

.rcgsm-header__icon-button {
    position: relative;
    display: inline-flex;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    align-items: center;
    justify-content: center;
    color: var(--rcgsm-header-ink);
    background: transparent;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    transition: color .16s ease, background-color .16s ease, transform .16s ease;
}

#rcgsm-site-header button.rcgsm-header__icon-button {
    color: var(--rcgsm-header-ink) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.rcgsm-header__cart,
.rcgsm-header__account {
    color: var(--rcgsm-header-red);
}

.rcgsm-header__cart:hover,
.rcgsm-header__cart:focus-visible,
.rcgsm-header__account:hover,
.rcgsm-header__account:focus-visible {
    color: var(--rcgsm-header-red-dark);
}

.rcgsm-header__icon-button:hover,
.rcgsm-header__icon-button:focus-visible {
    color: var(--rcgsm-header-red);
    background: rgba(207, 67, 53, .08);
    outline: none;
}

.rcgsm-header__icon-button:focus-visible,
.rcgsm-header__menu a:focus-visible,
.rcgsm-header__search-form input:focus-visible,
.rcgsm-header__search-form button:focus-visible {
    box-shadow: 0 0 0 3px rgba(207, 67, 53, .22);
}

.rcgsm-header__icon-button svg {
    display: block;
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.rcgsm-header__cart-count {
    position: absolute;
    top: -2px;
    right: -2px;
    display: grid;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    place-items: center;
    color: #fff;
    background: var(--rcgsm-header-red);
    border: 2px solid #fff;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

.rcgsm-header__menu-toggle {
    display: none;
}

#rcgsm-site-header.is-menu-open .rcgsm-header__menu-toggle {
    color: #fff !important;
    background: var(--rcgsm-header-red) !important;
}

#rcgsm-site-header.is-menu-open .rcgsm-header__menu-toggle:hover,
#rcgsm-site-header.is-menu-open .rcgsm-header__menu-toggle:focus-visible,
#rcgsm-site-header.is-menu-open .rcgsm-header__menu-toggle:active {
    color: #fff !important;
    background: var(--rcgsm-header-red-dark) !important;
}

.rcgsm-header__menu-close-icon {
    display: none;
}

.rcgsm-header.is-menu-open .rcgsm-header__menu-open-icon {
    display: none;
}

.rcgsm-header.is-menu-open .rcgsm-header__menu-close-icon {
    display: inline-flex;
}

.rcgsm-header__search-panel {
    position: absolute;
    z-index: 30;
    top: 100%;
    right: 0;
    left: 0;
    padding: 16px clamp(28px, 3vw, 54px) 18px;
    background: #fff;
    border-top: 1px solid rgba(35, 48, 68, .08);
    border-bottom: 1px solid var(--rcgsm-header-line);
    box-shadow: 0 14px 28px rgba(22, 30, 44, .1);
}

.rcgsm-header__search-panel[hidden] {
    display: none !important;
}

.rcgsm-header__search-form {
    display: flex;
    width: min(100%, 760px);
    margin: 0 auto;
    gap: 10px;
}

.rcgsm-header__search-form input[type="search"] {
    width: 100%;
    min-width: 0;
    height: 48px;
    margin: 0;
    padding: 0 16px;
    color: var(--rcgsm-header-ink);
    background: #fff;
    border: 1px solid var(--rcgsm-header-line);
    border-radius: 9px;
    font: inherit;
    outline: none;
}

.rcgsm-header__search-form button {
    min-width: 112px;
    height: 48px;
    margin: 0;
    padding: 0 20px;
    color: #fff;
    background: var(--rcgsm-header-red);
    border: 1px solid var(--rcgsm-header-red);
    border-radius: 9px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
    cursor: pointer;
}

.rcgsm-header__search-form button:hover,
.rcgsm-header__search-form button:focus-visible {
    background: var(--rcgsm-header-red-dark);
    border-color: var(--rcgsm-header-red-dark);
}

body.rcgsm-responsive-header-sticky.rcgsm-responsive-header-shadow #rcgsm-site-header.is-compact .rcgsm-header__main {
    box-shadow: 0 10px 28px rgba(18, 27, 41, .11);
}

body.rcgsm-responsive-header-sticky #rcgsm-site-header.is-compact .rcgsm-header__promo {
    min-height: 0;
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    opacity: 0;
    pointer-events: none;
}

body.rcgsm-responsive-header-sticky #rcgsm-site-header.is-compact .rcgsm-header__inner {
    min-height: 76px;
    padding-top: 6px;
    padding-bottom: 6px;
    gap: clamp(18px, 2vw, 36px);
}

body.rcgsm-responsive-header-sticky #rcgsm-site-header.is-compact .rcgsm-header__logo {
    width: clamp(158px, 11vw, 188px);
    max-height: 54px;
}

body.rcgsm-responsive-header-sticky #rcgsm-site-header.is-compact .rcgsm-header__tagline {
    display: none;
}

body.rcgsm-responsive-header-sticky #rcgsm-site-header.is-compact .rcgsm-header__icon-button {
    width: 36px;
    height: 36px;
}

/* Do not lock <body> when the mobile menu opens. iOS Safari can recalculate a
   sticky header against the document origin when overflow is changed here,
   which makes an already-stuck header appear to jump back to the top of the
   page. The menu panel owns its own scrolling instead. */
body.rcgsm-header-menu-open {
    overflow: visible;
}

@media (max-width: 1320px) {
    .rcgsm-header__inner {
        gap: 22px;
        padding-right: 26px;
        padding-left: 26px;
    }

    .rcgsm-header__menu {
        gap: 18px;
    }

    .rcgsm-header__social {
        display: none;
    }
}

@media (max-width: 1120px) {
    .rcgsm-header__tagline {
        display: none;
    }

    .rcgsm-header__branding {
        min-width: 180px;
    }

    .rcgsm-header__logo {
        width: 190px;
    }
}

@media (max-width: 1024px) {
    #rcgsm-site-header {
        --rcgsm-header-reserve: 82px;   /* must equal .rcgsm-header__inner min-height */
    }

    .rcgsm-header__inner {
        min-height: 82px;
        padding: 9px 18px;
        gap: 12px;
    }

    .rcgsm-header__branding {
        min-width: 0;
        margin-right: auto;
    }

    .rcgsm-header__logo {
        width: clamp(155px, 34vw, 205px);
        max-height: 62px;
    }

    .rcgsm-header__actions {
        gap: 2px;
    }

    .rcgsm-header__icon-button {
        width: 39px;
        height: 39px;
    }

    .rcgsm-header__menu-toggle {
        display: inline-flex;
    }

    .rcgsm-header__nav {
        position: absolute;
        z-index: 25;
        top: 100%;
        right: 0;
        left: 0;
        display: none;
        max-height: calc(100dvh - 82px);
        margin: 0;
        padding: 10px 18px 22px;
        overflow: auto;
        background: #fff;
        border-top: 1px solid rgba(35, 48, 68, .08);
        border-bottom: 1px solid var(--rcgsm-header-line);
        box-shadow: 0 18px 34px rgba(22, 30, 44, .13);
    }

    .rcgsm-header.is-menu-open .rcgsm-header__nav {
        display: block;
    }

    .rcgsm-header__menu {
        display: block;
        width: 100%;
    }

    .rcgsm-header__menu .menu-item,
    .rcgsm-header__menu > .menu-item-has-children {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        width: 100%;
        border-bottom: 1px solid rgba(35, 48, 68, .09);
    }

    .rcgsm-header__menu > .menu-item > a,
    .rcgsm-header__menu .sub-menu a {
        min-height: 52px;
        padding: 10px 8px;
        color: var(--rcgsm-header-ink);
        font-size: 15px;
        font-weight: 600;
        line-height: 1.3;
        text-transform: none;
        white-space: normal;
    }

    .rcgsm-header__menu .sub-menu .menu-item-has-children {
        padding-right: 0;
    }

    .rcgsm-header__submenu-toggle,
    .rcgsm-header__menu .sub-menu .menu-item-has-children > .rcgsm-header__submenu-toggle {
        position: static;
        display: inline-flex;
        width: 48px;
        min-height: 52px;
        margin: 0;
        padding: 0;
        align-items: center;
        justify-content: center;
        color: var(--rcgsm-header-ink);
        background: transparent;
        border: 0;
        cursor: pointer;
    }

    .rcgsm-header__submenu-toggle svg {
        width: 19px;
        height: 19px;
        fill: none;
        stroke: currentColor;
        stroke-width: 2;
        transition: transform .16s ease;
    }

    .rcgsm-header__menu .menu-item.is-submenu-open > .rcgsm-header__submenu-toggle svg {
        transform: rotate(180deg);
    }

    .rcgsm-header__menu .sub-menu,
    .rcgsm-header__menu .sub-menu .sub-menu {
        position: static;
        grid-column: 1 / -1;
        display: none;
        min-width: 0;
        padding: 0 0 8px 16px;
        visibility: visible;
        opacity: 1;
        transform: none;
        background: rgba(35, 48, 68, .025);
        border: 0;
        border-radius: 0;
        box-shadow: none;
        transition: none;
    }

    .rcgsm-header__menu .menu-item.is-submenu-open > .sub-menu {
        display: block;
    }

    .rcgsm-header__menu .sub-menu .menu-item {
        border-bottom: 0;
    }

    .rcgsm-header__menu .sub-menu a {
        min-height: 44px;
        padding: 8px 10px;
        font-size: 14px;
        font-weight: 500;
    }

    #rcgsm-site-header .rcgsm-header__menu > .menu-item.current-menu-item > a,
    #rcgsm-site-header .rcgsm-header__menu > .menu-item.current-menu-ancestor > a,
    #rcgsm-site-header .rcgsm-header__menu > .menu-item.current-menu-parent > a,
    #rcgsm-site-header .rcgsm-header__menu > .menu-item.current_page_item > a,
    #rcgsm-site-header .rcgsm-header__menu > .menu-item.current_page_parent > a,
    #rcgsm-site-header .rcgsm-header__menu > .menu-item.current_page_ancestor > a,
    #rcgsm-site-header .rcgsm-header__menu > .menu-item > a[aria-current="page"],
    #rcgsm-site-header .rcgsm-header__menu > .menu-item > a:hover,
    #rcgsm-site-header .rcgsm-header__menu > .menu-item > a:focus-visible,
    #rcgsm-site-header .rcgsm-header__menu > .menu-item > a:active {
        color: var(--rcgsm-header-red) !important;
    }

    .rcgsm-header__search-panel {
        padding: 14px 18px 16px;
    }

    body.rcgsm-responsive-header-sticky #rcgsm-site-header.is-compact .rcgsm-header__inner {
        min-height: 66px;
        padding-top: 5px;
        padding-bottom: 5px;
    }

    body.rcgsm-responsive-header-sticky #rcgsm-site-header.is-compact .rcgsm-header__logo {
        width: clamp(138px, 30vw, 170px);
        max-height: 50px;
    }
}

@media (max-width: 782px) {
    body.admin-bar.rcgsm-responsive-header-sticky #rcgsm-site-header {
        top: 46px;
    }
}

@media (max-width: 600px) {
    body.admin-bar.rcgsm-responsive-header-sticky #rcgsm-site-header {
        top: 0;
    }

    .rcgsm-header__promo {
        min-height: 0;
        padding: 6px 14px;
        font-size: 12px;
    }

    .rcgsm-header__promo-inner {
        gap: .25em;
    }

    #rcgsm-site-header {
        --rcgsm-header-reserve: 72px;   /* must equal .rcgsm-header__inner min-height */
    }

    .rcgsm-header__inner {
        min-height: 72px;
        padding: 7px 12px;
    }

    .rcgsm-header__logo {
        width: clamp(128px, 38vw, 174px);
        max-height: 54px;
    }

    .rcgsm-header__icon-button {
        width: 36px;
        height: 36px;
    }

    .rcgsm-header__icon-button svg {
        width: 20px;
        height: 20px;
    }

    .rcgsm-header__cart-count {
        top: -1px;
        right: -1px;
        min-width: 17px;
        height: 17px;
        font-size: 9px;
    }

    .rcgsm-header__search-form {
        gap: 7px;
    }

    .rcgsm-header__search-form button {
        min-width: 88px;
        padding: 0 13px;
        font-size: 12px;
    }
}

@media (max-width: 430px) {
    .rcgsm-header__logo {
        width: 128px;
    }

    .rcgsm-header__icon-button {
        width: 34px;
        height: 34px;
    }
}

@media (prefers-reduced-motion: reduce) {
    #rcgsm-site-header *,
    #rcgsm-site-header *::before,
    #rcgsm-site-header *::after {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}

/* Theme reset and refined dropdown behavior. */
#rcgsm-site-header .rcgsm-header__menu li,
#rcgsm-site-header .rcgsm-header__menu .sub-menu li {
    margin: 0 !important;
    padding-top: 0;
    padding-bottom: 0;
    list-style: none !important;
}

#rcgsm-site-header .rcgsm-header__menu .sub-menu a {
    margin: 0 !important;
    padding: 10px 13px !important;
    color: var(--rcgsm-header-ink) !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 550 !important;
    line-height: 1.3 !important;
    text-decoration: none !important;
    text-transform: none !important;
}

#rcgsm-site-header .rcgsm-header__menu .sub-menu a:hover,
#rcgsm-site-header .rcgsm-header__menu .sub-menu a:focus-visible,
#rcgsm-site-header .rcgsm-header__menu .sub-menu .current-menu-item > a {
    color: var(--rcgsm-header-red) !important;
    background: rgba(207, 67, 53, .07) !important;
}

#rcgsm-site-header .rcgsm-header__cart,
#rcgsm-site-header .rcgsm-header__account {
    color: var(--rcgsm-header-red) !important;
}

@media (min-width: 1025px) {
    #rcgsm-site-header .rcgsm-header__menu .sub-menu::before {
        position: absolute;
        top: -10px;
        right: 0;
        left: 0;
        height: 12px;
        content: "";
    }

    #rcgsm-site-header .rcgsm-header__menu > li > a {
        min-height: 48px !important;
        padding: 4px 0 !important;
        font-size: clamp(14px, .9vw, 17px) !important;
        font-weight: 600 !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
    }

    #rcgsm-site-header .rcgsm-header__submenu-toggle {
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    #rcgsm-site-header .rcgsm-header__menu > .menu-item-has-children {
        gap: 0;
    }

    #rcgsm-site-header .rcgsm-header__menu > .menu-item-has-children > a {
        padding-right: 2px;
    }

    #rcgsm-site-header .rcgsm-header__menu .sub-menu .rcgsm-header__submenu-toggle {
        width: 30px;
        height: 44px;
        border-radius: 0;
    }

    #rcgsm-site-header .rcgsm-header__menu .sub-menu .rcgsm-header__submenu-toggle svg {
        transform: rotate(-90deg);
    }

    #rcgsm-site-header .rcgsm-header__menu .sub-menu .menu-item.is-submenu-open > .rcgsm-header__submenu-toggle svg {
        transform: rotate(90deg);
    }
}

/* Keep the promotion fully collapsed in the compact mobile header. */
body.rcgsm-responsive-header-sticky #rcgsm-site-header.is-compact .rcgsm-header__promo {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

#rcgsm-site-header .rcgsm-header__cart:hover,
#rcgsm-site-header .rcgsm-header__cart:focus-visible,
#rcgsm-site-header .rcgsm-header__account:hover,
#rcgsm-site-header .rcgsm-header__account:focus-visible {
    color: var(--rcgsm-header-red-dark) !important;
}

/* v0.6.6: prevent theme button states from reintroducing blue accents. */
#rcgsm-site-header button.rcgsm-header__icon-button:hover,
#rcgsm-site-header button.rcgsm-header__icon-button:focus-visible,
#rcgsm-site-header button.rcgsm-header__icon-button:active {
    color: var(--rcgsm-header-red) !important;
    background: rgba(207, 67, 53, .08) !important;
}

#rcgsm-site-header button.rcgsm-header__icon-button:focus-visible {
    box-shadow: 0 0 0 3px rgba(207, 67, 53, .22) !important;
}

#rcgsm-site-header.is-menu-open button.rcgsm-header__menu-toggle,
#rcgsm-site-header.is-menu-open button.rcgsm-header__menu-toggle:hover,
#rcgsm-site-header.is-menu-open button.rcgsm-header__menu-toggle:focus-visible,
#rcgsm-site-header.is-menu-open button.rcgsm-header__menu-toggle:active {
    color: #fff !important;
    background: var(--rcgsm-header-red) !important;
}

#rcgsm-site-header.is-menu-open button.rcgsm-header__menu-toggle:hover,
#rcgsm-site-header.is-menu-open button.rcgsm-header__menu-toggle:focus-visible,
#rcgsm-site-header.is-menu-open button.rcgsm-header__menu-toggle:active {
    background: var(--rcgsm-header-red-dark) !important;
}

@media (max-width: 1024px) {
    #rcgsm-site-header .rcgsm-header__menu > .menu-item > a {
        font-weight: 600 !important;
    }

    #rcgsm-site-header .rcgsm-header__menu .sub-menu a {
        font-weight: 500 !important;
    }
}

#rcgsm-site-header a,
#rcgsm-site-header button {
    -webkit-tap-highlight-color: rgba(207, 67, 53, .18);
}

#rcgsm-site-header .rcgsm-header__menu a:focus,
#rcgsm-site-header .rcgsm-header__menu a:focus-visible {
    color: var(--rcgsm-header-red) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(207, 67, 53, .18) !important;
}

/* v0.6.7: improve dropdown readability and header action visibility. */
#rcgsm-site-header .rcgsm-header__menu .sub-menu a {
    font-size: 15px !important;
    line-height: 1.35 !important;
}

#rcgsm-site-header .rcgsm-header__cart svg,
#rcgsm-site-header .rcgsm-header__account svg {
    width: 22px;
    height: 22px;
    stroke-width: 2.35;
}

@media (max-width: 1024px) {
    #rcgsm-site-header .rcgsm-header__menu .sub-menu a {
        font-size: 15px !important;
        font-weight: 500 !important;
    }
}

/* Virtual Gallery sublinks (Originals, Giclées, Sound Art, Gift Collection).
   They are siblings of Gallery in the markup rather than true children, so the
   indent and the rail are what tell a visitor they belong to it. The padding
   has to carry !important here: the block above pins every submenu link to
   `padding: 10px 13px !important` to hold Astra off, and a plain declaration
   loses to it no matter how specific. Type size is left alone deliberately —
   it is pinned at three breakpoints, and the indent already reads as nesting. */
#rcgsm-site-header .rcgsm-header__menu .sub-menu .menu-item.rcgsm-gallery-subnav-item {
    position: relative;
}

#rcgsm-site-header .rcgsm-header__menu .sub-menu .menu-item.rcgsm-gallery-subnav-item::before {
    content: "";
    position: absolute;
    top: 4px;
    bottom: 4px;
    left: 19px;
    width: 1px;
    background: rgba(207, 67, 53, .22);
    pointer-events: none;
}

#rcgsm-site-header .rcgsm-header__menu .sub-menu .menu-item.rcgsm-gallery-subnav-item > a {
    padding-left: 32px !important;
}

/* =========================================================
   v0.6.76 — MOBILE HEADER / MENU POLISH
   ========================================================= */
@media (max-width: 1024px) {
    /* Keep the sticky header anchored at the current viewport position while
       the menu is open; the menu itself is the scroll container. */
    #rcgsm-site-header .rcgsm-header__nav {
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    /* The promo strip and main bar should read as one continuous white header.
       Paint the promo above the main-bar shadow so the shadow cannot haze the
       FREE SHIPPING strip. */
    #rcgsm-site-header .rcgsm-header__promo {
        position: relative;
        z-index: 3;
        background: #fff !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    #rcgsm-site-header .rcgsm-header__main {
        z-index: 2;
    }

    /* Mobile submenus occupy the full menu width. Indentation is carried by
       link padding rather than shrinking the submenu container. */
    #rcgsm-site-header .rcgsm-header__menu .sub-menu,
    #rcgsm-site-header .rcgsm-header__menu .sub-menu .sub-menu {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 0 8px !important;
        background: #fff !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    #rcgsm-site-header .rcgsm-header__menu .sub-menu .menu-item {
        width: 100% !important;
        min-width: 0 !important;
    }

    #rcgsm-site-header .rcgsm-header__menu .sub-menu .menu-item > a {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 10px 10px 10px 26px !important;
        background: transparent !important;
        border-radius: 0 !important;
    }

    #rcgsm-site-header .rcgsm-header__menu .sub-menu .menu-item:not(.menu-item-has-children) > a {
        grid-column: 1 / -1;
    }

    /* Current/hover state is communicated with text color only on mobile; no
       gray or blush block behind child links. */
    #rcgsm-site-header .rcgsm-header__menu .sub-menu a:hover,
    #rcgsm-site-header .rcgsm-header__menu .sub-menu a:focus-visible,
    #rcgsm-site-header .rcgsm-header__menu .sub-menu .current-menu-item > a,
    #rcgsm-site-header .rcgsm-header__menu .sub-menu .current_page_item > a,
    #rcgsm-site-header .rcgsm-header__menu .sub-menu a[aria-current="page"] {
        color: var(--rcgsm-header-red) !important;
        background: transparent !important;
    }
}
