/* === axion-header.css === */
/* Axion Communications — header styles
   Covers: nav-shell (desktop), mobile panel (weave drawer), mega-menus */

/* ── CSS Variables ── */
:root {
  --dark: #1C1C1C;
  --navy: #003a64;
  --line: rgba(15,23,42,0.10);
  --container: 1220px;
}

/* ── Reset / base for header elements ── */
.nav-shell *,
.nav-shell *::before,
.nav-shell *::after,
#mobile-menu *,
#mobile-menu *::before,
#mobile-menu *::after,
.mobile-overlay {
  box-sizing: border-box;
}
.nav-shell a,
#mobile-menu a {
  text-decoration: none;
}
.nav-shell button,
#mobile-menu button {
  font-family: "Poppins", sans-serif;
}

/* ── Nav Shell ── */
.nav-shell {
  position: sticky;
  top: 0;
  z-index: 9999;
  background: rgba(255,255,255,0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(6,83,137,0.08);
  box-shadow: 0 2px 16px rgba(7,17,31,0.06);
  font-family: "Poppins", sans-serif;
}
.nav {
  position: relative;
  max-width: var(--container);
  margin: 0 auto;
  padding: 17px 22px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 28px;
}

/* ── Logo ── */
.nav-shell .logo img {
  height: 58px;
  width: auto;
  display: block;
  max-width: 280px;
  object-fit: contain;
}

/* ── Nav Links ── */
.nav-links {
  display: flex;
  align-items: center;
  gap: 24px;
  font-size: 14px;
  font-weight: 700;
  color: #344054;
}
.nav-item {
  position: relative;
}
.nav-item.has-mega {
  position: static;
}
.nav-item.has-mega::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 34px;
  display: none;
  z-index: 99;
}
.nav-item.has-mega:hover::before,
.nav-item.has-mega:focus-within::before {
  display: block;
}
.nav-link,
.nav-link-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 0;
  border: 0;
  border-radius: 999px;
  background: transparent !important; /* kill Astra accent bleed */
  color: #344054 !important;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: none !important;
  transition: color .18s;
}
.nav-link::after,
.nav-link-btn::after {
  display: none;
}

/* ── Hover / active pill — zero layout shift, ::before carries the visuals ── */
.nav-item:hover > .nav-link-btn,
.nav-item:focus-within > .nav-link-btn,
.nav-item.current-menu-item > .nav-link-btn,
.nav-item.current-menu-ancestor > .nav-link-btn,
.nav-item.current_page_ancestor > .nav-link-btn {
  color: #065389 !important;
}
/* The pill background / border on ::before — no box-model impact */
.nav-item:hover > .nav-link-btn::before,
.nav-item:focus-within > .nav-link-btn::before,
.nav-item.current-menu-item > .nav-link-btn::before,
.nav-item.current-menu-ancestor > .nav-link-btn::before,
.nav-item.current_page_ancestor > .nav-link-btn::before {
  content: '';
  position: absolute;
  inset: -2px -14px;
  background: #f8fcff;
  border-radius: 999px;
  box-shadow: 0 0 0 1px rgba(6,83,137,0.18), 0 8px 22px rgba(6,83,137,0.08);
  z-index: -1;
  pointer-events: none;
}
.nav-item:hover > .nav-caret,
.nav-item:focus-within > .nav-caret {
  color: #065389;
}
.nav-caret {
  font-size: 11px;
  line-height: 1;
  color: #434753;
  transition: transform 0.2s ease;
  margin-left: 2px;
}
.nav-item:hover .nav-caret,
.nav-item:focus-within .nav-caret {
  transform: rotate(180deg);
}

/* ── Mega Menu base ── */
.mega-menu {
  position: absolute;
  top: calc(100% + 10px);
  left: 22px;
  right: 22px;
  width: auto;
  transform: translateY(8px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  background: #fff;
  border: 1px solid rgba(15,23,42,0.10);
  border-radius: 28px;
  box-shadow: 0 28px 80px rgba(7,17,31,0.18);
  padding: 22px;
  z-index: 100;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
}
.nav-item:hover .mega-menu,
.nav-item:focus-within .mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.mega-menu::before {
  content: "";
  position: absolute;
  top: -34px;
  left: 0;
  right: 0;
  height: 34px;
}
.mega-menu > * {
  position: relative;
  z-index: 2;
}

/* ── Mega Grid / Panel ── */
.mega-grid {
  display: grid;
  grid-template-columns: minmax(260px,0.95fr) repeat(3,minmax(220px,1fr));
  gap: 18px;
  align-items: stretch;
}
.mega-panel {
  border-radius: 22px;
  padding: 22px;
  background: #f7f9fb;
  border: 1px solid rgba(15,23,42,0.07);
}
.mega-panel.dark {
  background: radial-gradient(circle at center center,#00337D 0%,#00103B 100%);
  color: #fff;
}
.mega-eyebrow {
  margin: 0 0 10px;
  color: #0099dc;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.10em;
}
.mega-panel h3 {
  margin: 0 0 10px;
  color: var(--dark);
  font-size: 24px;
  line-height: 1.14;
  letter-spacing: -0.025em;
}
.mega-panel.dark h3 { color: #fff; }
.mega-panel p {
  margin: 0 0 18px;
  color: #434753;
  font-size: 14px;
  line-height: 1.6;
  font-weight: 500;
}
.mega-panel.dark p { color: #cbd5e1; }

/* ── Products / Solutions / Company outer layout: dark panel + links column ── */
.products-mega-layout,
.solutions-mega-layout,
.company-mega-layout {
  display: grid;
  grid-template-columns: 330px minmax(0, 1fr);
  gap: 18px;
  align-items: stretch;
}

/* ── Products / Solutions / Company inner links grid: 3 columns ── */
.products-links-grid,
.solutions-links-grid,
.company-links-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  align-content: start;
}

/* ── Resources / Network mega ── */
.resources-mega-menu .mega-grid,
.network-mega-menu .mega-grid {
  grid-template-columns: repeat(3,minmax(230px,1fr));
  gap: 18px;
  align-items: stretch;
}
.resources-mega-menu .mega-link,
.network-mega-menu .mega-link {
  min-height: 92px;
  padding: 14px;
  grid-template-columns: 56px minmax(0,1fr);
  align-self: stretch;
}
.resources-mega-menu .mega-icon,
.network-mega-menu .mega-icon {
  width: 56px;
  height: 56px;
  min-width: 56px;
  border-radius: 18px;
}
.resources-mega-menu .mega-icon svg,
.network-mega-menu .mega-icon svg { width: 29px; height: 29px; }
.resources-mega-menu .mega-link strong,
.network-mega-menu .mega-link strong { font-size: 15px; line-height: 1.25; margin-bottom: 3px; }
.resources-mega-menu .mega-link > span:not(.mega-icon) > span,
.network-mega-menu .mega-link > span:not(.mega-icon) > span { font-size: 13px; line-height: 1.35; }

/* ── Mega Link ── */
.mega-link {
  display: grid;
  grid-template-columns: 56px minmax(0,1fr);
  gap: 14px;
  align-items: center;
  border-radius: 18px;
  padding: 14px;
  color: var(--dark);
  transition: 0.18s ease;
  min-height: 92px;
}
.mega-link:hover {
  background: #f2f6fa;
  transform: translateX(3px);
}
.mega-icon {
  width: 56px;
  height: 56px;
  min-width: 56px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 75% 18%,rgba(0,174,239,0.18),transparent 38%),#f3f8ff;
  color: #116dcc;
  margin: 0;
  border: 1px solid rgba(17,109,204,0.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.88);
}
.mega-icon svg {
  width: 29px;
  height: 29px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: block;
}
.mega-link > span:not(.mega-icon) {
  display: block;
  min-width: 0;
  margin: 0;
}
.mega-link strong {
  display: block;
  color: var(--dark);
  font-size: 15px;
  line-height: 1.25;
  font-weight: 700;
  margin: 0 0 3px;
  white-space: normal;
}
.mega-link > span:not(.mega-icon) > span {
  display: block;
  color: #434753;
  font-size: 11.5px;
  line-height: 1.35;
  font-weight: 500;
  margin: 0;
  white-space: normal;
}

/* ── Mega CTA row / mini grid ── */
.mega-cta-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.mega-btn-light {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 15px;
  border-radius: 999px;
  background: #fff;
  color: #1C1C1C;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}
.mega-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 15px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.22);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}
.mega-mini-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 10px;
  margin-top: 18px;
}
.mega-mini {
  border-radius: 16px;
  padding: 13px;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.12);
}
.mega-mini strong {
  display: block;
  color: #fff;
  font-size: 18px;
  line-height: 1;
  margin-bottom: 4px;
}
.mega-mini span {
  color: #cbd5e1;
  font-size: 11px;
  font-weight: 600;
}

/* ── Desktop mega stage (JS-created) ── */
@media (min-width: 1101px) {
  .nav-shell .nav {
    position: relative;
  }
  .nav-shell .nav-mega-stage {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% - 2px);
    height: 0;
    overflow: visible;
    z-index: 120;
    pointer-events: none;
  }
  /* All panels are stacked at top:0 in the stage; all panels overlay each other */
  .nav-shell .nav-mega-stage .mega-menu {
    position: absolute !important;
    top: 0;
    left: 18px;
    right: 18px;
    width: auto;
    max-width: 1220px;
    margin: 0 auto;
    pointer-events: none;
  }
  /* Only the open panel is visible and interactive */
  .nav-shell .nav-mega-stage .mega-menu.is-mega-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
}

/* ── Nav Actions ── */
.nav-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 700;
  font-size: 14px;
  color: var(--dark);
  white-space: nowrap;
}
.nav-phone-wrap {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--dark);
  white-space: nowrap;
  text-decoration: none;
}
.nav-phone-icon,
.portal-icon {
  width: 38px;
  height: 38px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  background: #eef6ff;
  color: #317EE5;
  flex: 0 0 auto;
}
.nav-phone-icon svg,
.portal-icon svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.portal-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--dark);
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
}
.nav-actions .btn,
.nav-shell .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  line-height: 1;
}
.nav-actions .btn-red,
.nav-shell .btn-red {
  min-height: 44px;
  padding: 12px 20px;
  background: #065389;
  color: #fff !important;
  border-color: transparent;
  box-shadow: 0 14px 34px rgba(7,17,31,0.18);
  transition: opacity .2s;
}
.nav-actions .btn-red:hover,
.nav-shell .btn-red:hover {
  opacity: .88;
}

/* ── Menu Button (hamburger) ── */
.menu-btn {
  display: none;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #ffffff;
  color: #1A202C;
  border: 1px solid rgba(15,23,42,0.10);
  border-radius: 12px;
  font: 700 14px/1 "Poppins", sans-serif;
  cursor: pointer;
}
.menu-btn-icon {
  display: none;
  width: 22px;
  height: 16px;
  position: relative;
}
.menu-btn-icon span {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.menu-btn-icon span:nth-child(1) { top: 0; }
.menu-btn-icon span:nth-child(2) { top: 50%; transform: translateY(-50%); }
.menu-btn-icon span:nth-child(3) { bottom: 0; }
.menu-btn-label {
  font-size: 14px;
  font-weight: 700;
}
.nav-shell .menu-btn:hover,
.nav-shell .menu-btn:focus-visible,
.nav-shell .menu-btn:active {
  background: #f1f5f9;
  border-color: rgba(49, 126, 229, 0.28);
  color: #1A202C;
}

/* ── Overlay ── */
.mobile-overlay {
  display: none;
}

/* ── Responsive breakpoints ── */
@media (max-width: 1100px) {
  .nav-links,
  .nav-actions {
    display: none !important;
  }
  .nav {
    padding: 12px 16px;
    min-height: 64px;
  }
  .nav-shell .logo img {
    max-height: 50px;
    max-width: min(230px, 55vw);
  }
  .menu-btn {
    display: inline-flex !important;
  }
  .menu-btn-icon {
    display: block !important;
  }
  .mega-menu {
    display: none !important;
  }
}

@media (min-width: 1101px) {
  .mobile-overlay,
  .nav-shell .mobile-overlay {
    display: none !important;
  }
  #mobile-menu.mobile-panel--weave {
    display: none !important;
  }
  .menu-btn {
    display: none !important;
  }
}

/* ── Mobile panel (weave drawer) ── */
.mobile-panel--weave {
  display: flex !important;
  flex-direction: column !important;
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  max-width: 100vw !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: none !important;
  visibility: hidden;
  transform: translate3d(100%,0,0);
  transition: transform 0.32s cubic-bezier(0.22,0.61,0.36,1);
  z-index: 100000 !important;
  isolation: isolate;
}
body.axion-nav-scope.mobile-menu-open #mobile-menu.mobile-panel--weave,
body.axion-nav-scope.mobile-menu-open .mobile-panel.mobile-panel--weave,
body.axion-nav-scope #mobile-menu.mobile-panel--weave.open,
body.axion-nav-scope .mobile-panel.mobile-panel--weave.open {
  transform: translate3d(0,0,0) !important;
  visibility: visible !important;
}

/* ── Overlay (scoped) ── */
body.axion-nav-scope .mobile-overlay,
body.axion-nav-scope .nav-shell .mobile-overlay {
  display: block !important;
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: 99999 !important;
}
body.axion-nav-scope.mobile-menu-open .mobile-overlay,
body.axion-nav-scope.mobile-menu-open .nav-shell .mobile-overlay {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  background: rgba(15,23,42,0.55) !important;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* ── Hide Astra native header inner elements from scope ── */
body.axion-nav-scope .nav-shell .mobile-accordion,
body.axion-nav-scope .nav-shell .mobile-menu-header,
body.axion-nav-scope .nav-shell .mobile-nav-utility,
body.axion-nav-scope .nav-shell .mobile-menu-footer {
  display: none !important;
}

/* ── Mobile stages ── */
body.axion-nav-scope .mobile-stages {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
body.axion-nav-scope .mobile-stage {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  background: #fff;
  transition: transform 0.28s cubic-bezier(0.22,0.61,0.36,1);
  transform: translateX(0);
}
body.axion-nav-scope .mobile-stage--sub {
  transform: translateX(100%);
}
body.axion-nav-scope .mobile-panel.mobile-nav-sub-active .mobile-stage--root {
  transform: translateX(-100%);
  visibility: hidden !important;
  pointer-events: none !important;
}
body.axion-nav-scope .mobile-panel.mobile-nav-sub-active .mobile-stage--sub {
  transform: translateX(0);
  visibility: visible !important;
  pointer-events: auto !important;
}
body.axion-nav-scope .mobile-stage[hidden] {
  visibility: hidden !important;
  pointer-events: none !important;
}

/* ── Mobile toolbar ── */
body.axion-nav-scope .mobile-toolbar {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid #e8ecf0;
  min-height: 56px;
}
body.axion-nav-scope .mobile-toolbar--root { justify-content: flex-end; }
body.axion-nav-scope .mobile-toolbar--sub { justify-content: flex-start; }

body.axion-nav-scope .mobile-close-btn,
body.axion-nav-scope .mobile-back-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: #1C1C1C;
  cursor: pointer;
}
body.axion-nav-scope .mobile-close-btn:hover,
body.axion-nav-scope .mobile-back-btn:hover { background: #f1f5f9; }
body.axion-nav-scope .mobile-close-btn svg,
body.axion-nav-scope .mobile-back-btn svg { width: 24px; height: 24px; }
body.axion-nav-scope .mobile-toolbar-divider {
  width: 1px;
  height: 28px;
  background: #e2e8f0;
  flex: 0 0 auto;
}
body.axion-nav-scope .mobile-toolbar-sales {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: #065389;
  text-decoration: none;
}
body.axion-nav-scope .mobile-toolbar-sales-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #e8f6fa;
  color: #065389;
}
body.axion-nav-scope .mobile-toolbar-sales-icon svg { width: 16px; height: 16px; }

/* ── Mobile root list ── */
body.axion-nav-scope .mobile-root-list {
  flex: 1 1 auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 8px 0 24px;
}
body.axion-nav-scope .mobile-root-item {
  width: 100%;
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px 24px;
  margin: 0;
  border: none;
  border-bottom: 1px solid #eef2f6;
  border-radius: 0;
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease;
  font-family: "Poppins", sans-serif;
  white-space: normal;
}
body.axion-nav-scope .mobile-root-item:hover { background: #f8fafb; }
body.axion-nav-scope .mobile-root-icon {
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: #e8f6fa;
  color: #065389;
}
body.axion-nav-scope .mobile-root-icon svg {
  width: 26px;
  height: 26px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
body.axion-nav-scope .mobile-root-text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
body.axion-nav-scope .mobile-root-title {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  color: #1C1C1C;
}
body.axion-nav-scope .mobile-root-desc {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.45;
  color: #434753;
}
body.axion-nav-scope .mobile-root-chevron {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin-top: 14px;
  color: #434753;
}
body.axion-nav-scope .mobile-root-chevron svg { width: 100%; height: 100%; }

/* ── Mobile sub-panel ── */
body.axion-nav-scope .mobile-sub-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
body.axion-nav-scope .mobile-sub-panel { display: block; }
body.axion-nav-scope .mobile-sub-panel[hidden] { display: none !important; }
body.axion-nav-scope .mobile-sub-link {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px 24px;
  text-decoration: none;
  border-bottom: 1px solid #eef2f6;
  transition: background 0.15s ease;
}
body.axion-nav-scope .mobile-sub-link:hover { background: #f8fafb; }
body.axion-nav-scope .mobile-sub-icon {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #e8f6fa;
  color: #065389;
}
body.axion-nav-scope .mobile-sub-icon svg {
  width: 22px !important;
  height: 22px !important;
  flex: 0 0 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  display: block;
}
body.axion-nav-scope #mobile-menu .mobile-sub-icon svg path[fill],
body.axion-nav-scope #mobile-menu .mobile-toolbar-sales-icon svg path[fill],
body.axion-nav-scope #mobile-menu .mobile-dock-icon svg path[fill] {
  fill: currentColor;
  stroke: none;
}
body.axion-nav-scope .mobile-sub-text {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
body.axion-nav-scope .mobile-sub-title {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.3;
  color: #1C1C1C;
}
body.axion-nav-scope .mobile-sub-desc {
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  color: #434753;
}

/* ── Mobile dock ── */
body.axion-nav-scope .mobile-dock {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr 1.4fr;
  align-items: end;
  gap: 8px;
  padding: 12px 16px max(16px, env(safe-area-inset-bottom));
  border-top: 1px solid #e8ecf0;
  background: #fff;
}
body.axion-nav-scope .mobile-dock-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  color: #065389;
  font-size: 13px;
  font-weight: 600;
}
body.axion-nav-scope .mobile-dock-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: #065389;
}
body.axion-nav-scope .mobile-dock-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
}
body.axion-nav-scope .mobile-dock-label {
  font-size: 13px;
  font-weight: 600;
  color: #065389;
}
body.axion-nav-scope .mobile-dock-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  border-radius: 999px;
  background: #065389;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
}

/* ── body.mobile-menu-open ── */
body.mobile-menu-open {
  overflow: hidden;
}

/* ── Suppress Astra native header ── */
#masthead,
.site-header,
#ast-fixed-header {
  display: none !important;
}

/* ── Safe-area support ── */
@supports (padding: max(0px)) {
  .nav-shell {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  .mega-menu,
  .mega-link,
  .nav-link-btn {
    transition: none !important;
    transform: none !important;
  }
  .mobile-panel--weave {
    transition: none !important;
  }
}

/* ── Chevron bullet lists (Elementor tab/text content) ── */
.elementor-tab-content ul:not(.elementor-icon-list-items),
.elementor-widget-text-editor ul:not(.elementor-icon-list-items) {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
  margin-top: 20px;
  margin-bottom: 20px;
}
.elementor-tab-content ul:not(.elementor-icon-list-items) li,
.elementor-widget-text-editor ul:not(.elementor-icon-list-items) li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 12px;
}
.elementor-tab-content ul:not(.elementor-icon-list-items) li:last-child,
.elementor-widget-text-editor ul:not(.elementor-icon-list-items) li:last-child {
  margin-bottom: 0;
}
.elementor-tab-content ul:not(.elementor-icon-list-items) li::before,
.elementor-widget-text-editor ul:not(.elementor-icon-list-items) li::before {
  content: "\276F";
  position: absolute;
  left: 0;
  top: 0.05em;
  color: var(--navy);
  font-size: 0.9em;
  font-weight: 700;
}

/* ── 404 page ── */
.axion-404-page {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  padding: 64px 24px;
  max-width: 1140px;
  margin: 0 auto;
}
.axion-404-wrap {
  text-align: center;
  max-width: 672px;
}
.axion-404-code {
  margin: 0 0 8px;
  font-size: 144px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.04em;
  background: linear-gradient(135deg, #0099dc 0%, #003a64 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.axion-404-title {
  max-width: 760px;
  margin: 0 auto 16px;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.026em;
  color: #003a64;
}
.axion-404-message {
  max-width: 544px;
  margin: 0 auto 40px;
  font-size: 18px;
  line-height: 1.65;
  color: #5c6773;
}
.axion-404-actions {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin: 0 0 48px;
}
.axion-404-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 36px;
  border-radius: 999px;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
}
.axion-404-btn--primary {
  background: linear-gradient(135deg, #065389 0%, #003a64 100%);
  color: #fff;
}
.axion-404-btn--secondary {
  background: #fff;
  border: 0.8px solid rgba(0, 58, 100, 0.25);
  color: #003a64;
}
.axion-404-links {
  border-top: 0.8px solid #e2e8f0;
  padding-top: 32px;
}
.axion-404-links-label {
  margin: 0 0 16px;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #5c6773;
}
.axion-404-links ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.axion-404-links a {
  color: #317ee5;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
}
.axion-404-links a:hover {
  text-decoration: underline;
}
@media (max-width: 600px) {
  .axion-404-code {
    font-size: 96px;
  }
  .axion-404-title {
    font-size: 28px;
    line-height: 1.3;
  }
  .axion-404-message {
    margin-left: 0;
    margin-right: 0;
  }
  .axion-404-actions {
    flex-direction: column;
    align-items: stretch;
  }
}

/* === axion-prefooter-footer.css === */
/* ============================================================
   Axion — Pre-footer & Footer styles
   Covers: Blog section, Unleash/contact section,
           Newsletter section, Site footer.
   Loads after axion-header.css (shares .axion-container).
   ============================================================ */

/* ── Suppress Hello Elementor's native footer shell — child theme owns the footer ── */
#site-footer {
	display: none !important;
}

/* ── Shared section wrapper ── */
.axion-section {
	box-sizing: border-box;
	width: 100%;
}

/* ── Container centering: Unleash, Newsletter, Footer (1180px matches reference) ── */
.axion-section--contact-premium .axion-container,
.axion-newsletter-section .axion-container,
.axion-site-footer .axion-container {
	max-width: 1180px;
	margin-inline: auto;
	box-sizing: border-box;
}

/* ── Blog section container centering ── */
.axion-blog-section .axion-container {
	max-width: 1180px;
	margin-inline: auto;
	box-sizing: border-box;
}

/* ─────────────────────────────────────────────
   1. BLOG SECTION
───────────────────────────────────────────── */
.axion-blog-section {
	padding: 72px 0;
	background: #fff;
}

.axion-blog-section__header {
	text-align: center;
	margin-bottom: 48px;
}

.axion-blog-section__heading {
	font-size: 2rem;
	font-weight: 700;
	color: #1c1c1c;
	margin: 0 0 12px;
	line-height: 1.2;
}

.axion-blog-section__sub {
	font-size: 1rem;
	color: #555;
	margin: 0;
	max-width: 560px;
	margin-inline: auto;
}

/* Grid + card styles for this section now live in axion-blog.css
   (.axion-blog-grid, .axion-blog-card, etc.) so the sitewide footer
   section and the /blog/ listing page share one card design. */

/* ─────────────────────────────────────────────
   2. UNLEASH / CONTACT PREMIUM SECTION
───────────────────────────────────────────── */
.axion-section--contact-premium {
	padding: 80px 0;
	background: #fff;
}

.axion-contact-premium__panel {
	background: radial-gradient(circle at center center, #00337D 0%, #00103B 100%);
	border-radius: 28px;
	padding: 52px 48px;
	box-sizing: border-box;
}

.axion-contact-premium__header {
	text-align: center;
	margin-bottom: 40px;
}

.axion-contact-premium__heading {
	font-size: 1.875rem;
	font-weight: 700;
	color: #fff;
	margin: 0 0 14px;
	line-height: 1.25;
}

.axion-contact-premium__sub {
	font-size: 1rem;
	color: rgba(255, 255, 255, .78);
	margin: 0;
	max-width: 560px;
	margin-inline: auto;
}

.axion-contact-premium__grid {
	display: grid;
	grid-template-columns: 1fr 400px;
	gap: 44px;
	align-items: start;
}

/* GF form overrides inside navy panel */
.axion-contact-premium__form .gform_wrapper,
.axion-contact-premium__form .gform-body {
	color: #fff;
}

.axion-contact-premium__form .gfield_label,
.axion-contact-premium__form label {
	color: rgba(255, 255, 255, .9) !important;
	font-size: .9rem;
	font-weight: 600;
	margin-bottom: 6px;
}

/* Company field is set to quarter-width in GF editor — force full-width since it's alone in its row */
.axion-contact-premium__form .gfield--width-quarter {
	grid-column: span 12 !important;
}

/* Hide the GF spacer that was filling the remaining 9 columns after Company */
.axion-contact-premium__form .spacer.gfield {
	display: none !important;
}

.axion-contact-premium__form input:not([type=submit]),
.axion-contact-premium__form textarea,
.axion-contact-premium__form select {
	background-color: rgba(255, 255, 255, .1) !important;
	background-image: none;
	border: 1px solid rgba(255, 255, 255, .22) !important;
	border-radius: 10px !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	font-size: .9375rem !important;
	padding: 14px 18px !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

.axion-contact-premium__form input::placeholder,
.axion-contact-premium__form textarea::placeholder {
	color: rgba(255, 255, 255, .45) !important;
}

.axion-contact-premium__form select {
	-webkit-appearance: none !important;
	appearance: none !important;
	color-scheme: dark;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23ffffff' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 18px center !important;
	padding-right: 40px !important;
	min-height: 48px;
	line-height: 1.4 !important;
	cursor: pointer;
}

.axion-contact-premium__form .ginput_container_select,
.axion-contact-premium__form .axion-select-wrap {
	position: relative !important;
	display: block !important;
}

.axion-contact-premium__form select.axion-select-native {
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
	position: relative;
	z-index: 2;
}

.axion-contact-premium__form .axion-select-overlay {
	position: absolute !important;
	left: 18px !important;
	right: 40px !important;
	top: 0 !important;
	height: 100%;
	display: flex !important;
	align-items: center !important;
	color: #fff !important;
	font-size: .9375rem !important;
	line-height: 1.4 !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	pointer-events: none !important;
	z-index: 1;
}

.axion-contact-premium__form select option {
	background: #003a64 !important;
	color: #fff !important;
}

.axion-contact-premium__form .gform_footer input[type=submit],
.axion-contact-premium__form .gform_footer button,
.axion-contact-premium__form .gform-footer input[type=submit] {
	background: #fff !important;
	color: #003a64 !important;
	font-weight: 700 !important;
	border: none !important;
	border-radius: 999px !important;
	padding: 14px 44px !important;
	cursor: pointer;
	font-size: 1rem;
	transition: opacity .2s;
	width: auto;
	display: inline-block;
}

.axion-contact-premium__form .gform_footer input[type=submit]:hover {
	opacity: .9;
}

.axion-contact-premium__form .gform_fields {
	row-gap: 20px !important;
}

.axion-contact-premium__form .gfield_checkbox,
.axion-contact-premium__form .gfield_radio {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 10px 20px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.axion-contact-premium__form .gfield_checkbox li,
.axion-contact-premium__form .gfield_radio li,
.axion-contact-premium__form .gfield_checkbox .gchoice,
.axion-contact-premium__form .gfield_radio .gchoice {
	display: flex !important;
	align-items: center !important;
	gap: 10px !important;
	user-select: none;
}

.axion-contact-premium__form .gfield_checkbox input[type=checkbox],
.axion-contact-premium__form .gfield_radio input[type=radio] {
	-webkit-appearance: checkbox;
	appearance: checkbox;
	width: 18px !important;
	height: 18px !important;
	flex-shrink: 0;
	border-radius: 6px !important;
	border: 1px solid rgba(255, 255, 255, .35) !important;
	background: rgba(255, 255, 255, .08) !important;
	accent-color: #0b7fd3;
	cursor: pointer;
}

.axion-contact-premium__form .gfield_checkbox li label,
.axion-contact-premium__form .gfield_radio li label,
.axion-contact-premium__form .gfield_checkbox .gchoice label,
.axion-contact-premium__form .gfield_radio .gchoice label {
	color: rgba(255, 255, 255, .9) !important;
	margin: 0 !important;
	font-size: .9rem !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	cursor: pointer;
	user-select: none;
}

.axion-contact-premium__form .gfield_validation_message,
.axion-contact-premium__form .validation_message {
	color: #ffb3b3 !important;
}

/* Aside */
.axion-contact-premium__aside {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.axion-contact-premium__aside-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: #fff !important;
	margin: 0 0 4px;
	padding-bottom: 12px;
	border-bottom: 2px solid rgba(255, 255, 255, .2);
}

.axion-contact-premium__aside-sub {
	font-size: .9rem;
	color: rgba(255, 255, 255, .7);
	margin: 0 0 8px;
}

/* Contact cards */
.axion-contact-cards {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.axion-contact-card {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	background: rgba(255, 255, 255, .07);
	border-radius: 16px;
	padding: 16px 18px;
}

.axion-contact-card__icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: linear-gradient(145deg, #0099dc 0%, #003a64 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: #fff;
}

.axion-contact-card__content {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.axion-contact-card__label {
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: rgba(255, 255, 255, .72);
}

.axion-contact-card__value {
	font-size: .9375rem;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
}

a.axion-contact-card__value:hover {
	text-decoration: underline;
}

.axion-contact-card__sub {
	font-size: .8rem;
	color: rgba(255, 255, 255, .55);
}

/* ─────────────────────────────────────────────
   3. NEWSLETTER SECTION
───────────────────────────────────────────── */
.axion-newsletter-section {
	padding: 64px 0;
	background: #f7f9fc;
	border-top: 1px solid #e8edf2;
	border-bottom: 1px solid #e8edf2;
}

.axion-newsletter-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 20px;
}

.axion-newsletter-copy {
	max-width: 560px;
}

.axion-newsletter-heading {
	font-size: 1.875rem;
	font-weight: 700;
	color: #1c1c1c;
	margin: 0 0 10px;
	line-height: 1.2;
}

.axion-newsletter-sub {
	font-size: .9375rem;
	color: #555;
	margin: 0;
	line-height: 1.6;
	max-width: 440px;
	margin-inline: auto;
}

.axion-newsletter-form {
	width: 100%;
	max-width: 520px;
}

/* GF newsletter pill overrides */

/* Hide GF form title/description — only the section heading is needed */
.axion-newsletter-form .gform_heading {
	display: none !important;
}

.axion-newsletter-form .gform_wrapper {
	margin: 0;
}

/* Pill container: email input + Subscribe button in one row */
.axion-newsletter-form form {
	display: flex !important;
	align-items: center;
	gap: 12px;
	background: #fff;
	border: 1px solid rgba(6, 83, 137, 0.16);
	border-radius: 999px;
	padding: 10px 12px 10px 22px;
	box-shadow: 0 18px 45px rgba(6, 20, 40, 0.08);
	max-width: 820px;
	margin: 0 auto;
	overflow: hidden;
}

/* gform_body is transparent inside the pill */
.axion-newsletter-form .gform_body {
	flex: 1;
	min-width: 0;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	overflow: visible !important;
	display: block !important;
	padding: 0 !important;
}

.axion-newsletter-form .gform_fields {
	display: flex !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.axion-newsletter-form .gfield {
	flex: 1;
	min-width: 0;
	padding: 0 !important;
	margin: 0 !important;
}

.axion-newsletter-form .gfield_label {
	display: none !important;
}

.axion-newsletter-form .ginput_container {
	margin: 0 !important;
}

.axion-newsletter-form input[type=email],
.axion-newsletter-form input[type=text] {
	border: none !important;
	background: transparent !important;
	outline: none !important;
	box-shadow: none !important;
	font-size: .9375rem;
	color: #1c1c1c;
	min-height: 52px;
	padding: 0 !important;
	width: 100%;
	min-width: 0;
	text-align: left;
}

.axion-newsletter-form .gform_footer {
	flex-shrink: 0;
	padding: 0 !important;
	margin: 0 !important;
	border: none;
	background: none;
	width: auto;
}

.axion-newsletter-form .gform_footer input[type=submit],
.axion-newsletter-form .gform_footer button {
	background: #065389 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 999px !important;
	padding: 0 34px !important;
	min-height: 52px !important;
	font-size: .875rem;
	font-weight: 600;
	cursor: pointer;
	white-space: nowrap;
	transition: opacity .2s;
	display: block;
	width: auto !important;
}

.axion-newsletter-form .gform_footer input[type=submit]:hover {
	opacity: .88;
}

/* ─────────────────────────────────────────────
   4. SITE FOOTER
───────────────────────────────────────────── */

.axion-site-footer {
	background: radial-gradient(circle at center center, #00337D 0%, #00103B 100%);
	color: rgba(255, 255, 255, .75);
	padding: 56px 0 40px;
	border-radius: 64px 64px 0 0;
	overflow: hidden;
}

.axion-footer-columns {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 40px;
	padding-bottom: 48px;
	border-bottom: 1px solid rgba(255, 255, 255, .12);
}

/* Brand column */
.axion-footer-brand {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.axion-footer-brand__logo-link {
	display: inline-block;
	line-height: 0;
}

.axion-footer-brand__logo-link img {
	max-width: 200px;
	height: auto;
}

.axion-footer-brand__text-logo {
	font-size: 1.125rem;
	font-weight: 700;
	color: #fff;
	letter-spacing: -.01em;
}

.axion-footer-brand__desc {
	font-size: .875rem;
	color: rgba(255, 255, 255, .6);
	line-height: 1.65;
	margin: 0;
	max-width: 300px;
}

/* Social icons */
.axion-footer-socials {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.axion-footer-social {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	text-decoration: none;
	transition: background .2s, color .2s;
}

.axion-footer-social:hover,
.axion-footer-social:focus-visible {
	background: #fff;
	color: #003a64;
}

/* Link columns */
.axion-footer-column {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.axion-footer-column__title {
	font-size: .875rem;
	font-weight: 600;
	color: #fff !important;
	margin: 0 0 4px;
}

.axion-footer-column__links {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.axion-footer-column__links a {
	font-size: .875rem;
	color: rgba(255, 255, 255, .65);
	text-decoration: none;
	transition: color .15s;
}

.axion-footer-column__links a:hover {
	color: #fff;
}

/* Bottom bar */
.axion-footer-bottom {
	padding-top: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.axion-footer-copyright {
	font-size: .8125rem;
	color: rgba(255, 255, 255, .45);
	margin: 0;
}

/* ─────────────────────────────────────────────
   5. RESPONSIVE
───────────────────────────────────────────── */

/* Tablet (≤ 900px) */
@media (max-width: 900px) {
	/* Container side-padding on tablet */
	.axion-section--contact-premium .axion-container,
	.axion-newsletter-section .axion-container,
	.axion-site-footer .axion-container,
	.axion-blog-section .axion-container { padding-inline: 24px; }

	/* Unleash grid: stack vertically */
	.axion-contact-premium__grid {
		grid-template-columns: 1fr;
	}

	.axion-contact-premium__panel {
		padding: 40px 28px;
	}

	/* Newsletter already column on desktop; just ensure form stays full-width */
	.axion-newsletter-form {
		width: 100%;
		max-width: 480px;
	}

	/* Footer: 2-col */
	.axion-footer-columns {
		grid-template-columns: 1fr 1fr;
		gap: 32px;
	}

	.axion-footer-brand {
		grid-column: 1 / -1;
		flex-direction: row;
		flex-wrap: wrap;
		gap: 20px;
	}

	.axion-footer-brand__desc {
		max-width: 100%;
	}
}

/* Mobile (≤ 600px) */
@media (max-width: 600px) {
	/* Blog */
	.axion-blog-section {
		padding: 48px 0;
	}

	.axion-blog-section__heading {
		font-size: 1.5rem;
	}

	/* Container side-padding on mobile */
	.axion-section--contact-premium .axion-container,
	.axion-newsletter-section .axion-container,
	.axion-site-footer .axion-container,
	.axion-blog-section .axion-container { padding-inline: 16px; }

	/* Unleash */
	.axion-section--contact-premium {
		padding: 48px 0;
	}

	.axion-contact-premium__panel {
		padding: 32px 20px;
		border-radius: 20px;
	}

	.axion-contact-premium__heading {
		font-size: 1.5rem;
	}

	/* Product checkboxes/radios: stack to one column so wrapped labels
	   (e.g. "Business Phone System") don't throw off row alignment */
	.axion-contact-premium__form .gfield_checkbox,
	.axion-contact-premium__form .gfield_radio {
		grid-template-columns: 1fr !important;
	}

	/* Newsletter */
	.axion-newsletter-section {
		padding: 40px 0;
	}

	.axion-newsletter-heading {
		font-size: 1.5rem;
	}

	/* Newsletter: stack to column on small screens */
	.axion-newsletter-form form {
		flex-direction: column;
		border-radius: 24px;
		padding: 18px;
		gap: 8px;
	}

	.axion-newsletter-form .gform_footer,
	.axion-newsletter-form .gform_footer input[type=submit],
	.axion-newsletter-form .gform_footer button {
		width: 100% !important;
	}

	/* Footer */
	.axion-footer-columns {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	.axion-footer-brand {
		flex-direction: column;
	}

	.axion-site-footer {
		border-radius: 32px 32px 0 0;
		/* Extra bottom padding for mobile dock (~70px) */
		padding-bottom: 80px;
	}
}

/* =================================================================
   "Let's Talk" popup — hidden by default (display:none), so it has
   zero layout/paint cost until a trigger link (href="#lets-talk")
   is clicked. See template-parts/axion-lets-talk-modal.php.
   ================================================================= */
.axion-lt-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 100000;
}

.axion-lt-modal.is-open {
	display: block;
}

body.axion-lt-lock {
	overflow: hidden;
}

.axion-lt-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(7, 17, 31, .55);
}

.axion-lt-modal__card {
	position: relative;
	z-index: 1;
	max-width: 520px;
	width: calc(100% - 32px);
	margin: 8vh auto;
	max-height: 84vh;
	overflow-y: auto;
	background: #fff;
	border-radius: 20px;
	padding: 40px 44px 36px;
	box-sizing: border-box;
	box-shadow: 0 24px 64px rgba(7, 17, 31, .28);
}

.axion-lt-modal__close {
	position: absolute;
	top: 16px;
	right: 20px;
	background: none;
	border: none;
	font-size: 1.75rem;
	line-height: 1;
	color: #1a2a3a;
	cursor: pointer;
	padding: 4px;
}

.axion-lt-modal__title {
	font-size: 1.75rem;
	font-weight: 800;
	color: #1a2a3a;
	text-align: center;
	margin: 0 0 28px;
}

/* GF form styling: clean underline inputs to match the popup's minimal
   look. GF's modern default theme ships high-specificity styles of its
   own, so these overrides use !important throughout - same approach
   already used for the other embedded GF forms in this file. */
.axion-lt-modal__form .gform_heading {
	display: none !important;
}

.axion-lt-modal__form .gform_wrapper {
	margin: 0 !important;
}

.axion-lt-modal__form .gform_fields {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 20px 24px !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.axion-lt-modal__form .gfield {
	/* Gravity Forms' default grid-column: 1 / -1 refers to the last
	   EXPLICIT grid line, which resolves inconsistently depending on
	   which grid-template-columns rule the browser applies (ours vs GF's
	   own foundation theme grid). Using an absolute line number matches
	   the same fix already used for the checkbox field below and reliably
	   spans the full 12-column grid regardless of that ambiguity. */
	grid-column: 1 / 13 !important;
	margin: 0 !important;
}

.axion-lt-modal__form .gfield_label,
.axion-lt-modal__form .gform-field-label:not(.gform-field-label--type-inline) {
	display: none !important;
}

.axion-lt-modal__form input[type=text],
.axion-lt-modal__form input[type=email],
.axion-lt-modal__form input[type=tel],
.axion-lt-modal__form select,
.axion-lt-modal__form textarea {
	width: 100% !important;
	box-sizing: border-box !important;
	border-top: 0 !important;
	border-left: 0 !important;
	border-right: 0 !important;
	border-bottom: 1.5px solid #d7e1ea !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	padding: 8px 2px !important;
	font-size: .9375rem !important;
	color: #1a2a3a !important;
	background: transparent !important;
	transition: border-color .15s;
}

.axion-lt-modal__form select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2397a5b3' d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 2px center !important;
	padding-right: 18px !important;
	cursor: pointer;
	line-height: normal !important;
}

.axion-lt-modal__form textarea {
	/* The Message field's rows="10" HTML attribute drives the browser's
	   default intrinsic sizing (~130px) independent of min-height; an
	   explicit height is needed to actually shrink it. */
	height: 80px !important;
	min-height: 80px !important;
	resize: vertical;
}

.axion-lt-modal__form input:focus,
.axion-lt-modal__form select:focus,
.axion-lt-modal__form textarea:focus {
	outline: none !important;
	border-bottom-color: #065389 !important;
}

.axion-lt-modal__form input::placeholder,
.axion-lt-modal__form textarea::placeholder {
	color: #97a5b3 !important;
}

.axion-lt-modal__form .gfield:has(.ginput_container_checkbox) {
	grid-column: 1 / 13 !important;
}

.axion-lt-modal__form .gfield_checkbox {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.axion-lt-modal__form .gfield_checkbox .gchoice {
	display: flex !important;
	align-items: flex-start !important;
	gap: 8px !important;
}

.axion-lt-modal__form .gfield_checkbox input[type=checkbox] {
	margin-top: 3px !important;
	flex-shrink: 0 !important;
}

.axion-lt-modal__form .gfield_checkbox label {
	font-size: .875rem !important;
	line-height: 1.5 !important;
	color: #4a5568 !important;
}

.axion-lt-modal__form .gform_footer {
	grid-column: span 2 !important;
	margin: 8px 0 0 !important;
	padding: 0 !important;
	text-align: center !important;
	display: block !important;
}

.axion-lt-modal__form .gform_footer input[type=submit],
.axion-lt-modal__form .gform_footer button {
	background: #065389 !important;
	color: #fff !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
	border: none !important;
	border-radius: 999px !important;
	padding: 14px 44px !important;
	cursor: pointer;
	transition: opacity .2s;
}

.axion-lt-modal__form .gform_footer input[type=submit]:hover,
.axion-lt-modal__form .gform_footer button:hover {
	opacity: .88;
}

.axion-lt-modal__form .validation_error,
.axion-lt-modal__form .gfield_description.validation_message {
	grid-column: span 2;
	color: #c0392b;
	font-size: .8125rem;
}

@media (max-width: 560px) {
	.axion-lt-modal__card {
		padding: 32px 24px 28px;
		margin-top: 6vh;
	}

	.axion-lt-modal__form .gform_fields {
		grid-template-columns: 1fr;
	}

	.axion-lt-modal__form .gform_footer {
		grid-column: span 1;
	}

	.axion-lt-modal__form .validation_error,
	.axion-lt-modal__form .gfield_description.validation_message {
		grid-column: span 1;
	}
}

/* === axion-blog.css === */
/* =================================================================
   Axion — Blog archive & listing styles
   Loaded only on: is_page('blog'), is_singular('post')
   ================================================================= */

/* ── Archive wrapper ── */
.axion-blog-archive {
	display: block;
}

/* ── Hero ── */
.axion-blog-hero {
	background:
		radial-gradient(ellipse 90% 70% at 50% 110%, rgba(0, 120, 255, .22), transparent),
		radial-gradient(ellipse 60% 40% at 80% 20%, rgba(0, 80, 160, .18), transparent),
		radial-gradient(circle at center center, #00337D 0%, #00103B 100%);
	padding: 100px 0 80px;
	text-align: center;
}

.axion-blog-hero__inner {
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 40px;
	box-sizing: border-box;
}

.axion-blog-hero .axion-blog-hero__heading {
	font-size: 3rem;
	font-weight: 700;
	color: #fff;
	margin: 0 0 20px;
	line-height: 1.15;
}

.axion-blog-hero__sub {
	font-size: 1rem;
	color: rgba(255, 255, 255, .78);
	max-width: 680px;
	margin: 0 auto 44px !important;
	line-height: 1.65;
}

.axion-blog-hero__cta {
	display: inline-block;
	background: #fff;
	color: #003a64;
	font-size: 1rem;
	font-weight: 500;
	padding: 15px 30px;
	border-radius: 44px;
	text-decoration: none;
	transition: opacity .2s;
}

.axion-blog-hero__cta:hover {
	opacity: .88;
}

/* ── Listing section ── */
.axion-blog-listing {
	padding: 72px 0;
	background: #f7f9fc;
}

.axion-blog-listing__inner {
	max-width: 1220px;
	margin-inline: auto;
	padding-inline: 40px;
	box-sizing: border-box;
}

/* ── Grid ── */
.axion-blog-grid {
	display: grid;
	list-style: none;
	margin: 0;
	padding: 0;
}

.axion-blog-grid--2 {
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
}

/* ── Card ── */
.axion-blog-card {
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 2px 16px rgba(0, 58, 100, .07);
	transition: box-shadow .2s, transform .2s;
}

.axion-blog-card:hover {
	box-shadow: 0 8px 32px rgba(0, 58, 100, .14);
	transform: translateY(-3px);
}

.axion-blog-card__link {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
	height: 100%;
}

/* Card image */
.axion-blog-card__media {
	display: block;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	flex-shrink: 0;
}

.axion-blog-card__media img,
.axion-blog-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s ease;
}

.axion-blog-card:hover .axion-blog-card__img {
	transform: scale(1.04);
}

/* Card body */
.axion-blog-card__body {
	padding: 20px 24px 28px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}

/* Category + date row */
.axion-blog-card__meta-row {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.axion-blog-card__category {
	display: inline-block;
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	background: #003a64;
	color: #fff;
	padding: 3px 10px;
	border-radius: 999px;
	white-space: nowrap;
}

.axion-blog-card__date {
	font-size: .75rem;
	font-weight: 600;
	color: #5c6773;
	letter-spacing: .04em;
}

/* Title */
.axion-blog-card__title {
	font-size: 1.0625rem;
	font-weight: 700;
	color: #1a2a3a;
	margin: 0;
	line-height: 1.4;
}

/* Byline */
.axion-blog-card__byline {
	font-size: .8125rem;
	color: #5c6773;
	margin: 0;
}

/* See More */
.axion-blog-card__more {
	display: inline-block;
	font-size: .875rem;
	font-weight: 600;
	color: #003a64;
	margin-top: auto;
	padding-top: 4px;
}

.axion-blog-card__link:hover .axion-blog-card__more {
	text-decoration: underline;
}

/* Empty state */
.axion-blog-empty {
	text-align: center;
	color: #777;
	font-size: 1rem;
	padding: 64px 0;
	margin: 0;
}

/* ── Responsive ── */
@media (max-width: 900px) {
	.axion-blog-hero {
		padding: 72px 0 56px;
	}

	.axion-blog-hero__inner,
	.axion-blog-listing__inner {
		padding-inline: 24px;
	}

	.axion-blog-hero .axion-blog-hero__heading {
		font-size: 2.25rem;
	}

	.axion-blog-hero__sub {
		font-size: .9375rem;
	}
}

@media (max-width: 600px) {
	.axion-blog-hero {
		padding: 56px 0 40px;
	}

	.axion-blog-hero__inner,
	.axion-blog-listing__inner {
		padding-inline: 16px;
	}

	.axion-blog-hero .axion-blog-hero__heading {
		font-size: 1.875rem;
	}

	.axion-blog-listing {
		padding: 48px 0;
	}

	.axion-blog-grid--2 {
		grid-template-columns: 1fr;
	}
}

/* =================================================================
   Axion — Single post template
   ================================================================= */

/* ── Wrapper ── */
.axion-single-post {
	background: #fff;
	min-height: 60vh;
}

.axion-single-post__inner {
	max-width: 1220px;
	margin-inline: auto;
	padding: 32px 40px 0;
	box-sizing: border-box;
}

/* ── Breadcrumb ── */
.axion-single-post__crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: .8125rem;
	color: #778;
	margin-bottom: 28px;
}

.axion-single-post__crumbs a {
	color: #778;
	text-decoration: none;
}

.axion-single-post__crumbs a:hover {
	color: #065389;
	text-decoration: underline;
}

.axion-single-post__crumbs-current {
	color: #4a5568;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 320px;
}

/* ── Sidebar + main layout ── */
.axion-single-post__layout {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 56px;
	align-items: start;
	padding-bottom: 72px;
}

.axion-single-post__sidebar {
	position: sticky;
	top: 96px;
}

.axion-single-post__sidebar-author {
	font-size: 1rem;
	font-weight: 700;
	color: #1a2a3a;
	margin: 0 0 20px;
}

.axion-single-post__toc-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: .8125rem;
	font-weight: 700;
	color: #1a2a3a;
	padding-bottom: 14px;
	border-bottom: 1px solid #eef2f6;
	margin-bottom: 4px;
}

.axion-single-post__toc-readtime {
	font-weight: 400;
	color: #778;
}

.axion-single-post__toc {
	list-style: none;
	margin: 0;
	padding: 0;
}

.axion-single-post__toc-link {
	display: flex;
	gap: 12px;
	padding: 12px 8px;
	border-radius: 8px;
	text-decoration: none;
	color: #4a5568;
	font-size: .875rem;
	line-height: 1.4;
	transition: background .15s, color .15s;
}

.axion-single-post__toc-link:hover {
	background: #f7f9fc;
}

.axion-single-post__toc-link.is-active {
	background: #eaf2f8;
	color: #065389;
	font-weight: 700;
}

.axion-single-post__toc-num {
	flex-shrink: 0;
	color: #a7b3c0;
	font-weight: 700;
}

.axion-single-post__toc-link.is-active .axion-single-post__toc-num {
	color: #065389;
}

.axion-single-post__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid #eef2f6;
}

.axion-single-post__tag {
	font-size: .75rem;
	font-weight: 600;
	color: #4a5568;
	background: #f7f9fc;
	border: 1px solid #eef2f6;
	border-radius: 999px;
	padding: 5px 14px;
	text-decoration: none;
}

.axion-single-post__tag:hover {
	background: #eaf2f8;
	color: #065389;
}

/* ── Header: H1 + lede + meta ── */
.axion-single-post__header {
	margin-bottom: 32px;
}

.axion-single-post__title {
	font-size: 2.5rem;
	font-weight: 800;
	color: #1a2a3a;
	line-height: 1.15;
	margin: 0 0 18px;
}

.axion-single-post__lede {
	font-size: 1.0625rem;
	line-height: 1.7;
	color: #4a5568;
	margin-bottom: 20px;
}

.axion-single-post__meta {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 10px;
	font-size: .8125rem;
	color: #666;
	padding-bottom: 24px;
	border-bottom: 1px solid #eef2f6;
}

.axion-single-post__author-avatar {
	display: inline-block;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #e2e8f0;
}

.axion-single-post__author {
	font-weight: 700;
	color: #1a2a3a;
}

.axion-single-post__sep {
	color: #bbb;
}

/* ── Featured image ── */
.axion-single-post__thumb {
	margin-bottom: 40px;
	border-radius: 12px;
	overflow: hidden;
}

.axion-single-post__thumb-img {
	width: 100%;
	height: auto;
	display: block;
}

/* ── Suppress Elementor hero section (section 0: only breadcrumb + H1)
   Verified safe: post 1026 section 0 contains post-info + heading only.
   Template provides its own H1, meta, and featured image. ── */
.axion-single-post .elementor-top-section:first-child {
	display: none !important;
}

/* ── Article body typography ── */
.axion-single-post__body {
	line-height: 1.75;
	color: #2d3a47;
}

.axion-single-post__body h2 {
	font-size: 1.5rem;
	font-weight: 700;
	color: #1a2a3a;
	margin: 2rem 0 .75rem;
}

.axion-single-post__body h3 {
	font-size: 1.1875rem;
	font-weight: 700;
	color: #1a2a3a;
	margin: 1.5rem 0 .5rem;
}

.axion-single-post__body p {
	margin: 0 0 1.25rem;
}

.axion-single-post__body ul,
.axion-single-post__body ol {
	padding-left: 1.5rem;
	margin: 0 0 1.25rem;
}

.axion-single-post__body li {
	margin-bottom: .375rem;
}

.axion-single-post__body a {
	color: #003a64;
	text-decoration: underline;
}

/* ── ACF sections ── */
.axion-acf-section {
	margin-top: 48px;
	scroll-margin-top: 96px;
}

.axion-acf-section__heading {
	font-size: 1.5rem;
	font-weight: 700;
	color: #1a2a3a;
	margin: 0 0 16px;
	border-left: 4px solid #065389;
	padding-left: 16px;
}

.axion-acf-section__figure {
	margin: 0 0 24px;
	border-radius: 10px;
	overflow: hidden;
}

.axion-acf-section__img {
	width: 100%;
	height: auto;
	display: block;
}

.axion-acf-section__body {
	line-height: 1.75;
	color: #2d3a47;
}

/* ── ACF Table ── */
.axion-acf-table-section {
	margin-top: 48px;
}

.axion-acf-table-section__heading {
	font-size: 1.375rem;
	font-weight: 700;
	color: #1a2a3a;
	margin: 0 0 16px;
}

.axion-acf-table-wrap {
	overflow-x: auto;
}

.axion-acf-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9375rem;
}

.axion-acf-table th,
.axion-acf-table td {
	border: 1px solid #e2e8f0;
	padding: 10px 14px;
	text-align: left;
}

.axion-acf-table thead th {
	background: #003a64;
	color: #fff;
	font-weight: 700;
}

.axion-acf-table tbody tr:nth-child(even) td {
	background: #f7f9fc;
}

/* ── ACF FAQ (accordion) ── */
.axion-acf-faq {
	margin-top: 56px;
	padding-top: 40px;
	border-top: 1px solid #e8eef4;
	scroll-margin-top: 96px;
}

.axion-acf-faq__heading {
	font-size: 1.5rem;
	font-weight: 700;
	color: #1a2a3a;
	margin: 0 0 20px;
	border-left: 4px solid #065389;
	padding-left: 16px;
}

.axion-acf-faq__list {
	margin: 0;
	padding: 0;
}

.axion-acf-faq__item {
	border: 1px solid #e8eef4;
	border-radius: 12px;
	margin-bottom: 12px;
	overflow: hidden;
}

.axion-acf-faq__q {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: none;
	border: none;
	text-align: left;
	padding: 18px 20px;
	font-size: 1rem;
	font-weight: 700;
	color: #1a2a3a;
	cursor: pointer;
	font-family: inherit;
}

.axion-acf-faq__toggle {
	position: relative;
	flex-shrink: 0;
	width: 18px;
	height: 18px;
}

.axion-acf-faq__toggle::before,
.axion-acf-faq__toggle::after {
	content: '';
	position: absolute;
	background: #065389;
	border-radius: 2px;
	transition: transform .2s ease;
}

.axion-acf-faq__toggle::before {
	top: 50%;
	left: 0;
	width: 100%;
	height: 2px;
	transform: translateY(-50%);
}

.axion-acf-faq__toggle::after {
	left: 50%;
	top: 0;
	width: 2px;
	height: 100%;
	transform: translateX(-50%);
}

.axion-acf-faq__item.is-open .axion-acf-faq__toggle::after {
	transform: translateX(-50%) rotate(90deg);
	opacity: 0;
}

.axion-acf-faq__a {
	display: grid;
	grid-template-rows: 0fr;
	overflow: hidden;
	transition: grid-template-rows .25s ease;
}

.axion-acf-faq__a p {
	font-size: .9375rem;
	color: #4a5568;
	line-height: 1.7;
	margin: 0;
	padding: 0 20px;
	overflow: hidden;
	min-height: 0;
}

.axion-acf-faq__item.is-open .axion-acf-faq__a {
	grid-template-rows: 1fr;
}

.axion-acf-faq__item.is-open .axion-acf-faq__a p {
	padding-bottom: 18px;
}

/* ── ACF CTA ── */
.axion-acf-cta {
	background: #f0f5fa;
	border-radius: 16px;
	padding: 40px;
	text-align: center;
	margin-top: 56px;
}

.axion-acf-cta__heading {
	font-size: 1.5rem;
	font-weight: 700;
	color: #1a2a3a;
	margin: 0 0 12px;
}

.axion-acf-cta__text {
	color: #4a5568;
	margin: 0 0 24px;
}

.axion-acf-cta__btn {
	display: inline-block;
	background: #065389;
	color: #fff;
	font-weight: 700;
	font-size: .9375rem;
	padding: 16px 40px;
	border-radius: 999px;
	text-decoration: none;
	transition: background-color .2s, transform .15s;
}

.axion-acf-cta__arrow {
	display: inline-block;
	margin-left: 8px;
	transition: transform .2s;
}

.axion-acf-cta__btn:hover {
	background-color: #054370;
	transform: translateY(-1px);
}

.axion-acf-cta__btn:hover .axion-acf-cta__arrow {
	transform: translateX(3px);
}

/* ── Up Next ── */
.axion-up-next {
	background: #f7f9fc;
	padding: 64px 40px 72px;
	margin-top: 0;
}

.axion-up-next__inner {
	max-width: 1220px;
	margin-inline: auto;
	box-sizing: border-box;
}

.axion-up-next__heading {
	font-size: 1.75rem;
	font-weight: 700;
	color: #1a2a3a;
	margin: 0 0 36px;
}

.axion-up-next__cta {
	text-align: center;
	margin-top: 40px;
}

.axion-up-next__btn {
	display: inline-block;
	background: #065389;
	color: #fff;
	font-weight: 700;
	font-size: .9375rem;
	padding: 14px 36px;
	border-radius: 999px;
	text-decoration: none;
	transition: opacity .2s;
}

.axion-up-next__btn:hover {
	opacity: .88;
}

/* ── Single post responsive ── */
@media (max-width: 900px) {
	.axion-single-post__inner {
		padding: 24px 24px 0;
	}

	.axion-single-post__layout {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-bottom: 56px;
	}

	.axion-single-post__sidebar {
		position: static;
		order: 2;
	}

	.axion-single-post__article {
		order: 1;
	}

	.axion-single-post__crumbs-current {
		max-width: 180px;
	}

	.axion-single-post__title {
		font-size: 2rem;
	}

	.axion-up-next {
		padding: 48px 24px 56px;
	}
}

@media (max-width: 600px) {
	.axion-single-post__inner {
		padding: 20px 16px 0;
	}

	.axion-single-post__title {
		font-size: 1.625rem;
	}

	.axion-acf-cta {
		padding: 28px 20px;
	}

	.axion-up-next {
		padding: 40px 16px 48px;
	}
}

