/* =========================================================================
   Component: fm-mega
   Full-width dropdown panel opened by hovering a nav item.
   Background spans edge-to-edge; content lives inside .fm-container.
   Triggered by JS toggling [hidden] and the parent nav-item .is-open state.
   ========================================================================= */

.fm-mega {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  background: var(--fm-white);
  border-top: 1px solid var(--fm-accent);
  box-shadow: 0 12px 24px rgba(0,0,0,0.06);
  z-index: 90;
  transform-origin: top center;
  /* Closed state: collapsed downward from top, invisible and non-interactive. */
  transform: scaleY(0);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: transform 220ms var(--fm-ease),
              opacity 160ms var(--fm-ease),
              visibility 0s linear 220ms;
}

.fm-mega.is-open {
  transform: scaleY(1);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: transform 220ms var(--fm-ease),
              opacity 180ms var(--fm-ease),
              visibility 0s linear 0s;
}

.fm-mega__inner {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: var(--fm-sp-7);
  padding: var(--fm-sp-6) var(--fm-container-pad);
  align-items: stretch;
}

/* Left column: text links */
.fm-mega__links {
  display: flex;
  flex-direction: column;
  gap: var(--fm-sp-1);
  padding-right: var(--fm-sp-5);
  border-right: 1px solid var(--fm-gray-50);
}

.fm-mega__links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--fm-sp-3) 0;
  color: var(--fm-black);
  font-size: var(--fm-fs-base);
  font-weight: var(--fm-fw-normal);
}

.fm-mega__links a:hover { color: var(--fm-accent); }

.fm-mega__links .fm-caret {
  transform: rotate(-45deg);
  color: var(--fm-accent);
  border-width: 2px;
}

/* Right side: promo cards */
.fm-mega__promos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--fm-sp-4);
}

.fm-mega__promo {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: var(--fm-sp-3);
  min-height: 200px;
  padding: var(--fm-sp-5);
  background: linear-gradient(135deg, #1a1a1a 0%, #000 100%);
  color: var(--fm-white);
  border-radius: var(--fm-radius);
  transition: transform var(--fm-dur-fast) var(--fm-ease);
}

.fm-mega__promo:hover { transform: translateY(-2px); color: var(--fm-white); }

.fm-mega__promo--alt {
  background: linear-gradient(135deg, #2a1a10 0%, #000 100%);
}

.fm-mega__promo-title {
  font-size: var(--fm-fs-lg);
  font-weight: var(--fm-fw-bold);
  color: var(--fm-white);
  line-height: var(--fm-lh-tight);
}

.fm-mega__promo-title:has(+ .fm-mega__promo-desc) { margin-bottom: 0; }

.fm-mega__promo-desc {
  font-size: var(--fm-fs-sm);
  color: var(--fm-gray-200);
  line-height: var(--fm-lh-normal);
}

/* Highlight promo accent text */
.fm-mega__promo .fm-link--invert { color: var(--fm-accent); font-weight: var(--fm-fw-bold); }
.fm-mega__promo .fm-link--invert::after { border-color: var(--fm-accent); }
