:root{
  --ga-mm-z: 9999;
  --ga-mm-panel-w: 320px;
  --ga-mm-overlay: rgba(0,0,0,.35);
  --ga-mm-bg: #fff;
  --ga-mm-text: #111;
  --ga-mm-border: #eee;
}

.ga-mm{ position:relative; }
.ga-mm__toggle{
  display:inline-flex; align-items:center; gap:.5rem;
  border:0; background:transparent; cursor:pointer; padding:.5rem .75rem;
}
.ga-mm__icon{ display:inline-flex; }
.ga-mm__label{ font-size:14px; }

/* Overlay */
.ga-mm__overlay{
  position:fixed; inset:0; background:var(--ga-mm-overlay);
  z-index:var(--ga-mm-z); opacity:0; transition:opacity .2s ease;
}
.ga-mm.is-open .ga-mm__overlay{ opacity:1; }

/* Panel */
.ga-mm__panel{
  position:fixed; top:0; bottom:0; right:0; width:var(--ga-mm-panel-w, 320px);
  max-width:100vw; background:var(--ga-mm-bg); color:var(--ga-mm-text);
  z-index:calc(var(--ga-mm-z) + 1); transform:translateX(100%);
  transition:transform .25s ease; box-shadow:-6px 0 20px rgba(0,0,0,.15);
  display:flex; flex-direction:column;
}
.ga-mm.is-open .ga-mm__panel{ transform:none; }

.ga-mm__panel-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; border-bottom:1px solid var(--ga-mm-border);
}
.ga-mm__brand{ display:inline-flex; align-items:center; gap:10px; text-decoration:none; color:inherit; }
.ga-mm__logo{ height:var(--ga-mm-logo-h, 28px); width:auto; display:block; }
.ga-mm__title{ font-weight:600; }

.ga-mm__close{
  border:0; background:transparent; cursor:pointer; padding:6px;
}

.ga-mm__panel-body{ padding:8px 8px 24px; overflow:auto; }

/* Menu base */
.ga-mm__menu, .ga-mm__menu ul{ list-style:none; margin:0; padding:0; }
.ga-mm__menu > li{ border-bottom:1px solid var(--ga-mm-border); }
.ga-mm__menu a{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 10px; text-decoration:none; color:inherit;
  text-transform:uppercase; /* Uppercase titles as requested */
  letter-spacing:.02em;
}
.ga-mm__menu li.menu-item-has-children > a{ position:relative; }
.ga-mm__menu li.menu-item-has-children > a::after{
  content:""; width:10px; height:10px; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(-45deg); margin-left:8px;
}

/* Submenus */
.ga-mm__menu ul{ display:none; padding-left:10px; border-left:2px solid var(--ga-mm-border); }
.ga-mm__menu li.is-open > ul{ display:block; }
.ga-mm__menu li.is-open > a::after{ transform:rotate(45deg); }

/* Responsive: show toggle only under breakpoint */
@media (min-width: 1025px){
  [data-ga-mm-root][data-breakpoint="1024"] .ga-mm__toggle{ display:none; }
}
/* Generic rule driven by attribute */
@media (min-width: 1px){
  [data-ga-mm-root] .ga-mm__toggle{ display:inline-flex; }
}
