:root{
  --cmm-cols:4;--cmm-width:760px;--cmm-img:56px;
  --cmm-bg:#fff;--cmm-text:#222;--cmm-hover:#f4f4f4;--cmm-accent:#111;
  --cmm-title:14px;--cmm-radius:10px;
}

.cmm-has-mega{position:relative}

.cmm-panel{
  position:absolute;top:100%;left:0;z-index:99999;
  width:var(--cmm-width);max-width:96vw;box-sizing:border-box;
  background:var(--cmm-bg);color:var(--cmm-text);padding:18px;
  border-radius:0 0 var(--cmm-radius) var(--cmm-radius);
  box-shadow:0 14px 34px rgba(0,0,0,.14);
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
  text-align:left;
}
.cmm-panel.cmm-right{left:auto;right:0}

.cmm-has-mega:hover>.cmm-panel,
.cmm-has-mega:focus-within>.cmm-panel,
.cmm-has-mega.cmm-open>.cmm-panel{
  opacity:1;visibility:visible;pointer-events:auto;transform:none;
}

.cmm-heading{display:block;margin-bottom:10px;font-weight:700;font-size:15px;
  text-decoration:none;color:var(--cmm-text)}

.cmm-grid{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(var(--cmm-cols),minmax(0,1fr));gap:10px}
.cmm-item{margin:0;padding:0}
.cmm-grid a{display:flex;align-items:center;gap:10px;padding:6px;border-radius:6px;
  text-decoration:none;color:var(--cmm-text);line-height:1.3;transition:background .15s}
.cmm-grid a:hover{background:var(--cmm-hover)}

.cmm-img{flex:0 0 var(--cmm-img);width:var(--cmm-img);height:var(--cmm-img)}
.cmm-img img{width:100%;height:100%;object-fit:cover;border-radius:4px;display:block;margin:0}

.cmm-text{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
/* Product name: wraps up to 2 lines, then ellipsis. Overrides Elementor's nowrap on menu links */
.cmm-grid a,.cmm-title,.cmm-price{white-space:normal!important}
.cmm-title{font-size:var(--cmm-title);line-height:1.4;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;
  overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere}
.cmm-price{font-size:12px;opacity:.75;margin-top:2px}
.cmm-price del{opacity:.6}
.cmm-price ins{text-decoration:none;font-weight:600}

.cmm-viewall{display:inline-block;margin-top:12px;padding-top:10px;border-top:1px solid rgba(0,0,0,.08);
  font-size:13px;font-weight:600;text-decoration:none;color:var(--cmm-accent)}
.cmm-viewall:hover{text-decoration:underline}

/* [cmm_menu] shortcode menu */
.cmm-nav{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px}
.cmm-nav>li{margin:0;position:relative}
.cmm-nav>li>a{display:block;padding:12px 16px;text-decoration:none;color:inherit;font-weight:500}
.cmm-nav .sub-menu{list-style:none;margin:0;padding:8px 0;position:absolute;top:100%;left:0;min-width:200px;
  background:#fff;box-shadow:0 10px 26px rgba(0,0,0,.12);opacity:0;visibility:hidden;transition:opacity .15s;z-index:99999}
.cmm-nav li:hover>.sub-menu,.cmm-nav li:focus-within>.sub-menu{opacity:1;visibility:visible}
.cmm-nav .sub-menu a{display:block;padding:8px 16px;text-decoration:none;color:inherit}

/* [cmm_products] static grid: always visible */
.cmm-static .cmm-panel{position:static;width:auto;max-width:none;opacity:1;visibility:visible;
  pointer-events:auto;transform:none;box-shadow:none;padding:0}
