.primary-menu{
 list-style: none;
 margin: 0 var(--space-sm) 0 0;
 padding: 0;
 display: flex;
 align-items: center;
 gap: var(--space-sm);
}
.site-menu-container{
 display: flex;
 align-items: center;
 gap: var(--space-sm);
 position: relative;
}
.primary-menu > li{
 position: relative;
}
.primary-menu a{
 display: block;
 padding: calc(var(--space-sm) + var(--space-xs)) var(--space-md);
 color: var(--text-primary);
 text-decoration: none;
 font-weight: var(--text-medium);
 font-size: var(--text-base);
 transition: var(--transition-color);
 white-space: nowrap;
 border-radius: var(--border-radius-sm);
}
.primary-menu a:hover{
 color: var(--link-hover);
 background-color: var(--bg-secondary);
}
.sub-menu{
 display: none;
 list-style: none;
 margin: 0;
 padding: 0;
 z-index: 1000;
}
.primary-menu > li > .sub-menu{
 position: absolute;
 top: 100%;
 left: 0;
 min-width: var(--grid-min-width, 250px);
 background-color: var(--bg-primary);
 border: 1px solid var(--border-color);
 box-shadow: var(--shadow-md);
 z-index: 1000;
}
.menu-item-has-children.is-open > .sub-menu{
 display: block;
}
.sub-menu .menu-item-has-children{
 position: relative;
}
.sub-menu .sub-menu{
 position: static;
 top: auto;
 left: auto;
 box-shadow: none;
 border: none;
 background: var(--bg-secondary);
}
.primary-menu > li > .sub-menu,
.menu-items > li > .sub-menu{
 background-color: var(--bg-primary);
}
li > .sub-menu> li > .sub-menu{
 background-color: var(--bg-secondary);
}
li > .sub-menu > li > .sub-menu > li > .sub-menu{
 background-color: var(--submenu-depth-4-bg);
}
.sub-menu a,
.menu-items > li > a{
 border-bottom: 1px solid var(--border-color);
 transition: var(--transition-color);
 border-radius: 0;
}
.menu-items a{
 display: block;
 padding: calc(var(--space-sm) + var(--space-xs)) var(--space-md);
 color: var(--text-primary);
 font-size: var(--text-base);
 font-weight: var(--text-medium);
 text-decoration: none;
}
.menu-items a:hover,
.sub-menu a:hover{
 background: var(--bg-secondary);
 color: var(--link-hover);
}
.menu-item-has-children > a::after{
 content: "";
 display: inline-block;
 width: .6rem;
 height: .6rem;
 margin-left: var(--space-sm);
 background-color: currentColor;
 mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat center / contain;
 -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat center / contain;
 transition: transform 0.2s ease;
}
.menu-item-has-children.is-open > a::after{
 transform: rotate(180deg);
}
.sub-menu .menu-item-has-children > a::after{
 transform: rotate(-90deg);
}
.sub-menu .menu-item-has-children.is-open > a::after{
 transform: rotate(0deg);
}
@media (max-width: 769px){
 .primary-menu{
 display: none;
}
}
.hamburger-toggle{
 display: block;
 background: none;
 border: none;
 cursor: pointer;
 padding: var(--space-sm);
 color: var(--text-primary);
 transition: var(--transition-all);
 border-radius: var(--border-radius-sm);
 position: relative;
 z-index: 100;
}
.hamburger-toggle:hover{
 color: var(--link-hover);
 background: var(--bg-primary);
}
.hamburger-toggle:focus{
 outline: 2px solid var(--primary-color);
 outline-offset: 2px;
}
.hamburger-toggle[aria-expanded="true"]{
 background: var(--primary-color);
 color: var(--white);
}
.hamburger-icon{
 display: block;
 width: var(--icon-size-lg);
 height: var(--icon-size-lg);
 fill: currentColor;
 transition: var(--transition-all);
}
.hamburger-toggle:hover .hamburger-icon{
 fill: var(--link-hover);
}
.hamburger-toggle[aria-expanded="true"] .hamburger-icon{
 fill: var(--white);
}
.hamburger-menu{
 position: absolute;
 top: 100%;
 right: 0;
 min-width: var(--grid-min-width);
 background: var(--bg-primary);
 border: 1px solid var(--border-color);
 border-top: none;
 box-shadow: var(--shadow-md);
 z-index: 1000;
 visibility: hidden;
 opacity: 0;
 transform: translateY(-2px);
 transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
 box-sizing: content-box;
}
.hamburger-menu.is-open{
 visibility: visible;
 opacity: 1;
}
.hamburger-menu > .menu-items{
 list-style: none;
 margin: 0;
 text-align: right;
}
.hamburger-menu > .menu-items > li{border: none;}
@media (min-width: 769px){
 .hamburger-menu .hide-on-desktop{
 display: none;
}
}
