/* Montjean Mega Menu 1.1 — theme-safe integration */
:root { --mjm-accent:#1f5f8b; }

/* Keep the theme's nav wrapper AND its top-level link metrics.
   Triggers are anchors so the current theme keeps control of height, padding,
   typography, desktop/sticky alignment and mobile navigation spacing. */
.mjm-item { box-sizing:border-box; }
.mjm-item > .mjm-trigger {
  display:flex !important;
  align-items:center;
  gap:7px;
  text-decoration:none !important;
  cursor:pointer;
}
.mjm-item > .mjm-direct-link { text-decoration:none; }
.mjm-item.mjm-open > .mjm-trigger { color:var(--mjm-accent) !important; }
.mjm-chevron {
  display:inline-block;
  width:7px;
  height:7px;
  border-right:1.7px solid currentColor;
  border-bottom:1.7px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  transition:transform .16s ease;
  flex:0 0 auto;
}
.mjm-item.mjm-open .mjm-chevron { transform:rotate(225deg) translate(-1px,-1px); }

/* Desktop panels are portaled to <body> by JS, so theme overflow/transform cannot clip them. */
.mjm-panel {
  --mjm-ink:#172033;
  --mjm-muted:#667085;
  --mjm-line:#e6ebf1;
  box-sizing:border-box;
  position:fixed;
  z-index:2147483000;
  left:50%;
  top:80px;
  width:min(1180px,calc(100vw - 32px));
  max-height:calc(100vh - 96px);
  overflow:auto;
  transform:translate(-50%,8px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
  color:var(--mjm-ink);
  font-family:inherit;
  text-align:left;
}
.mjm-panel.mjm-panel-open {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.mjm-panel,
.mjm-panel * { box-sizing:border-box; }
.mjm-panel-inner {
  background:#fff;
  border:1px solid var(--mjm-line);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 24px 70px rgba(16,24,40,.18);
}
.mjm-panel-heading {
  display:flex;
  align-items:baseline;
  gap:16px;
  padding:17px 22px;
  border-bottom:1px solid var(--mjm-line);
  background:#fbfcfe;
}
.mjm-panel-heading strong {
  margin:0;
  color:var(--mjm-ink);
  font-size:17px;
  font-weight:750;
  line-height:1.3;
}
.mjm-panel-heading span {
  color:var(--mjm-muted);
  font-size:13px;
  line-height:1.45;
}
.mjm-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.mjm-column {
  min-width:0;
  padding:20px 21px;
  border-right:1px solid var(--mjm-line);
}
.mjm-column:last-child { border-right:0; }
.mjm-column h3 {
  margin:0 0 10px !important;
  padding:0 !important;
  color:var(--mjm-accent) !important;
  font-family:inherit !important;
  font-size:12px !important;
  font-weight:800 !important;
  line-height:1.3 !important;
  letter-spacing:.07em !important;
  text-transform:uppercase !important;
}
.mjm-column ul,
.mjm-column li {
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
.mjm-column li::before,
.mjm-column li::after { display:none !important; content:none !important; }
.mjm-column li a {
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:0 !important;
  padding:8px 0 !important;
  margin:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:var(--mjm-ink) !important;
  font-family:inherit !important;
  font-size:13.5px !important;
  font-weight:500 !important;
  line-height:1.35 !important;
  text-decoration:none !important;
  text-transform:none !important;
  transition:color .14s ease,transform .14s ease;
}
.mjm-column li a:hover,
.mjm-column li a:focus-visible {
  color:var(--mjm-accent) !important;
  transform:translateX(2px);
  outline:none;
}
.mjm-arrow { opacity:.42; font-size:14px; }
.mjm-cta {
  display:block !important;
  margin:14px 0 0 !important;
  padding:13px 14px !important;
  border:1px solid #dce8f1 !important;
  border-radius:11px !important;
  background:#f3f8fc !important;
  box-shadow:none !important;
  color:var(--mjm-ink) !important;
  text-decoration:none !important;
}
.mjm-cta strong,
.mjm-cta span { display:block; }
.mjm-cta strong {
  margin:0 0 3px !important;
  color:var(--mjm-accent) !important;
  font-size:13px !important;
  font-weight:750 !important;
  line-height:1.35 !important;
}
.mjm-cta span {
  color:var(--mjm-muted) !important;
  font-size:12.5px !important;
  line-height:1.4 !important;
}

/* Standalone shortcode fallback only. */
.mjm-shortcode-list {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:2px;
  list-style:none;
  margin:0;
  padding:0;
}

@media (max-width:1180px) and (min-width:1025px) {
  .mjm-panel { width:calc(100vw - 24px); }
  .mjm-column { padding:18px 17px; }
}

/* Mobile/tablet: keep the panel inside the theme's own mobile menu. */
@media (max-width:1024px) {
  .mjm-item { width:100% !important; }
  .mjm-item > .mjm-trigger {
    width:100% !important;
    justify-content:space-between;
  }
  .mjm-panel {
    position:static;
    left:auto;
    top:auto !important;
    width:100%;
    max-height:none;
    overflow:visible;
    transform:none !important;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    display:none;
    padding:0 6px 10px;
  }
  .mjm-panel.mjm-panel-open { display:block; }
  .mjm-panel-inner { border-radius:11px; box-shadow:none; }
  .mjm-panel-heading { display:block; padding:13px 14px; }
  .mjm-panel-heading strong { display:block; font-size:15px; margin-bottom:3px; }
  .mjm-panel-heading span { display:block; font-size:12.5px; }
  .mjm-grid { grid-template-columns:1fr; }
  .mjm-column { padding:13px 14px; border-right:0; border-bottom:1px solid var(--mjm-line); }
  .mjm-column:last-child { border-bottom:0; }
  .mjm-column li a { padding:7px 0 !important; }
  .mjm-shortcode-list { display:block; }
}

@media (prefers-reduced-motion:reduce) {
  .mjm-item *, .mjm-panel, .mjm-panel * { transition:none !important; }
}
