﻿/*
 * aj-mega.css — Mega-menu styles
 * Loaded only when primary nav is active.
 */

/* ── Site header ──────────────────────────────────────────────────────── */
.ajcs-mega-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(11, 11, 13, 0.96);
  border-bottom: 1px solid rgba(192, 192, 192, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: padding 0.2s ease, box-shadow 0.2s ease;
}

.ajcs-mega-header.is-scrolled {
  box-shadow: 0 4px 32px rgba(0, 0, 0, 0.4);
}

.ajcs-mega-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: var(--wp--style--global--wide-size);
  margin: 0 auto;
  padding: 16px var(--wp--preset--spacing--6);
  gap: 32px;
}

/* Brand */
.ajcs-mega-header__brand {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  flex-shrink: 0;
}
.ajcs-mega-header__brand svg,
.ajcs-mega-header__brand img { height: 64px; width: auto; max-width: 120px; object-fit: contain; }
.ajcs-mega-header__site-name {
  font-family: var(--wp--preset--font-family--serif);
  font-size: 18px;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0;
  text-transform: uppercase;
}

/* Primary nav */
.ajcs-mega-header__nav { flex: 1; }

.ajcs-mega-header__menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: stretch;
  gap: 0;
}

.ajcs-mega-header__menu > li {
  display: flex;
  align-items: center;
  position: relative;
}

/* Nav link — custom walker uses .ajcs-mega-header__item-link;
   default WP walker outputs plain <a>. Both get the same treatment. */
.ajcs-mega-header__item-link,
.ajcs-mega-header__menu > li > a {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 16px;
  height: 100%;
  font-family: var(--wp--preset--font-family--sans);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(192, 192, 192, 0.8);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.15s ease;
  cursor: pointer;
}
.ajcs-mega-header__item-link:hover,
.ajcs-mega-header__menu > li > a:hover,
.ajcs-mega-header__menu > li.current-menu-item > a,
.ajcs-mega-header__menu > li.current-menu-ancestor > a,
.ajcs-mega-header__menu > li.current-menu-item > .ajcs-mega-header__item-link,
.ajcs-mega-header__menu > li.current-menu-ancestor > .ajcs-mega-header__item-link {
  color: #fff;
}

/* No chevron on dropdown items — nav items stay visually uniform */

/* ── Default WP sub-menu dropdown ────────────────────────────────────── */
/* Mirrors the .ajcs-mega-panel design until the custom walker is built. */
.ajcs-mega-header__menu > li .sub-menu {
  position: absolute;
  top: calc(100% + 1px);
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  min-width: 240px;
  background: var(--wp--preset--color--navy-900);
  border: 1px solid rgba(192, 192, 192, 0.14);
  border-top: 2px solid var(--wp--preset--color--ignition-red);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  list-style: none;
  margin: 0;
  padding: 8px 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  z-index: 200;
}
.ajcs-mega-header__menu > li:hover .sub-menu,
.ajcs-mega-header__menu > li.is-open .sub-menu {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.ajcs-mega-header__menu > li .sub-menu li a {
  display: block;
  padding: 10px 24px;
  height: auto;
  font-family: var(--wp--preset--font-family--sans);
  font-size: 13.5px;
  font-weight: 400;
  color: rgba(192, 192, 192, 0.75);
  text-decoration: none;
  border-bottom: 1px solid rgba(192, 192, 192, 0.06);
  transition: color 0.15s ease, background 0.15s ease, padding-left 0.15s ease;
  white-space: nowrap;
}
.ajcs-mega-header__menu > li .sub-menu li:last-child a { border-bottom: 0; }
.ajcs-mega-header__menu > li .sub-menu li a:hover {
  color: #fff;
  background: rgba(200, 16, 46, 0.07);
  padding-left: 32px;
}

.ajcs-mega-header__chevron {
  font-size: 13px;
  opacity: 0.5;
  transition: transform 0.2s ease;
  margin-top: 1px;
}
.ajcs-mega-header__menu > li[aria-expanded="true"] .ajcs-mega-header__chevron {
  transform: rotate(180deg);
  opacity: 1;
}

/* Certification logos + tooltip */
.ajcs-mega-header__certs {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-left: 24px;
  border-left: 1px solid rgba(192, 192, 192, 0.12);
  flex-shrink: 0;
}

/* Each logo is wrapped so the tooltip can anchor to it */
.ajcs-cert-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.ajcs-mega-header__cert-logo {
  height: 36px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
  display: block;
  cursor: help;
  filter: brightness(0) invert(1);
  opacity: 0.6;
  transition: opacity 0.25s ease, filter 0.25s ease;
}

/* ── Single-image logos (Elevate): remove filter to reveal color ──────── */
.ajcs-cert-wrap:not(.ajcs-cert-wrap--has-hover):hover .ajcs-mega-header__cert-logo,
.ajcs-cert-wrap:not(.ajcs-cert-wrap--has-hover).is-open .ajcs-mega-header__cert-logo {
  filter: none;
  opacity: 1;
}

/* ── Two-image crossfade (JM default → JM Peak Advantage on hover) ────── */
.ajcs-cert-wrap--has-hover:hover .ajcs-cert-logo--default,
.ajcs-cert-wrap--has-hover.is-open .ajcs-cert-logo--default {
  opacity: 0;
}

.ajcs-cert-logo--hover {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 36px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
  filter: none;
  opacity: 0;
  pointer-events: none;
}
.ajcs-cert-wrap--has-hover:hover .ajcs-cert-logo--hover,
.ajcs-cert-wrap--has-hover.is-open .ajcs-cert-logo--hover {
  opacity: 1;
  pointer-events: auto;
}

/* Tooltip card — matches nav dropdown visual language */
.ajcs-cert-tip {
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  width: 272px;
  background: var(--wp--preset--color--navy-900);
  border: 1px solid rgba(192, 192, 192, 0.14);
  border-top: 2px solid var(--wp--preset--color--ignition-red);
  box-shadow: 0 20px 56px rgba(0, 0, 0, 0.5);
  padding: 16px 18px 18px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s cubic-bezier(0.34, 1.56, 0.64, 1);
  z-index: 250;
  text-align: left;
}

/* Small notch at top of card */
.ajcs-cert-tip::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 10px;
  background: var(--wp--preset--color--ignition-red);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}

.ajcs-cert-wrap:hover .ajcs-cert-tip,
.ajcs-cert-wrap.is-open .ajcs-cert-tip {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.ajcs-cert-tip__name {
  display: block;
  font-family: var(--wp--preset--font-family--mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--wp--preset--color--ignition-red);
  margin-bottom: 9px;
}

.ajcs-cert-tip__desc {
  font-family: var(--wp--preset--font-family--sans);
  font-size: 13px;
  font-weight: 300;
  color: rgba(192, 192, 192, 0.82);
  line-height: 1.6;
  margin: 0;
}

/* Hidden when mobile menu is active — certs visible in footer on small screens */
@media (max-width: 1024px) {
  .ajcs-mega-header__certs { display: none; }
}

/* Actions */
.ajcs-mega-header__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.ajcs-mega-header__cta { font-size: 14px; padding: 12px 20px; }

/* ── Mega panel ───────────────────────────────────────────────────────── */
.ajcs-mega-panel {
  position: absolute;
  top: calc(100% + 1px);
  left: 50%;
  transform: translateX(-50%);
  min-width: 480px;
  background: var(--wp--preset--color--navy-900);
  border: 1px solid rgba(192, 192, 192, 0.14);
  border-top: 2px solid var(--wp--preset--color--ignition-red);
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) translateY(-8px);
  transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  z-index: 200;
}

/* Open state — toggled by JS */
.ajcs-mega-header__menu > li.is-open > .ajcs-mega-panel,
.ajcs-mega-header__menu > li:focus-within > .ajcs-mega-panel {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}

.ajcs-mega-panel__inner {
  padding: 28px 32px 32px;
}

.ajcs-mega-panel__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ajcs-mega-panel__link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  text-decoration: none;
  color: rgba(192, 192, 192, 0.75);
  font-family: var(--wp--preset--font-family--sans);
  font-size: 14px;
  font-weight: 400;
  border-bottom: 1px solid rgba(192, 192, 192, 0.06);
  transition: color 0.15s ease, background 0.15s ease;
}
.ajcs-mega-panel__link:hover {
  color: #fff;
  background: rgba(200, 16, 46, 0.07);
  transform: translateX(4px);
  border-radius: 0;
}
.ajcs-mega-panel__list > li:last-child .ajcs-mega-panel__link { border-bottom: 0; }

/* ── Hamburger button ─────────────────────────────────────────────────── */
.ajcs-mega-header__hamburger {
  display: none; /* hidden on desktop */
}

/* ── Mobile nav panel ────────────────────────────────────────────────── */
.ajcs-mobile-nav {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 300;
  background: var(--wp--preset--color--navy-900);
  border-top: 2px solid var(--wp--preset--color--ignition-red);
  border-bottom: 1px solid rgba(192, 192, 192, 0.12);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
}

.ajcs-mobile-nav__list {
  list-style: none;
  margin: 0;
  padding: 8px 0 20px;
}

.ajcs-mobile-nav__list > li > a {
  display: block;
  padding: 14px 24px;
  font-family: var(--wp--preset--font-family--sans);
  font-size: 16px;
  font-weight: 500;
  color: rgba(192, 192, 192, 0.8);
  text-decoration: none;
  border-bottom: 1px solid rgba(192, 192, 192, 0.07);
  transition: color 0.15s ease, padding-left 0.15s ease;
}
.ajcs-mobile-nav__list > li > a:hover,
.ajcs-mobile-nav__list > li.current-menu-item > a { color: #fff; padding-left: 32px; }

/* Sub-items */
.ajcs-mobile-nav__list .sub-menu {
  list-style: none;
  margin: 0;
  padding: 0;
  background: rgba(0, 0, 0, 0.25);
}
.ajcs-mobile-nav__list .sub-menu a {
  display: block;
  padding: 10px 24px 10px 40px;
  font-family: var(--wp--preset--font-family--sans);
  font-size: 14px;
  font-weight: 400;
  color: rgba(192, 192, 192, 0.6);
  text-decoration: none;
  border-bottom: 1px solid rgba(192, 192, 192, 0.04);
  transition: color 0.15s ease;
}
.ajcs-mobile-nav__list .sub-menu a:hover { color: #fff; }
.ajcs-mobile-nav__list .sub-menu li:last-child a { border-bottom: 0; }

/* ── Responsive — collapse to standard dropdown on mobile ────────────── */
@media (max-width: 1024px) {
  .ajcs-mega-header__menu { display: none; }
  .ajcs-mega-header__inner { justify-content: space-between; }

  /* Show hamburger */
  .ajcs-mega-header__hamburger {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 28px;
    height: 20px;
    padding: 0;
    background: none;
    border: none;
    cursor: pointer;
    flex-shrink: 0;
    margin-left: 8px;
  }
  .ajcs-mega-header__hamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: rgba(192, 192, 192, 0.85);
    border-radius: 1px;
    transition: transform 0.22s ease, opacity 0.22s ease;
    transform-origin: center;
  }
  /* Animate to × when open */
  .ajcs-mega-header__hamburger.is-open span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
  .ajcs-mega-header__hamburger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
  .ajcs-mega-header__hamburger.is-open span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }
}

@media (max-width: 600px) {
  /* Shrink logo + tighten spacing so CTA button fits on narrow screens */
  .ajcs-mega-header__inner {
    padding: 12px 12px;
    gap: 8px;
  }
  .ajcs-mega-header__brand svg,
  .ajcs-mega-header__brand img { height: 44px; width: auto; max-width: 60px; }
  .ajcs-mega-header__cta {
    padding: 8px 14px;
    font-size: 11px;
    letter-spacing: 0.06em;
  }
}
