/* =====================================================================
   Alpha-Omega CMS – Default Theme (HGC 2025 Palette + ADA Compliance)
   Version: v4.5.0-ADA-compliant
   © 2025 Hubbard Genesis Corporation. All rights reserved.
   Developed by Mighty Jackalope / Northern Lights Entertainment Inc.
   ===================================================================== */

/* --------------------------------------------------------------
   Color Palette Variables
   -------------------------------------------------------------- */
    :root {
      --fla-bg: #e9edf3;
      --fla-page: #ffffff;
      --fla-page-alt: #f7fafc;
      --fla-line: #d8e2ee;
      --fla-grid: #edf3f9;
      --fla-text: #1f3556;
      --fla-muted: #5d7391;
      --fla-blue: #2f6fff;
      --fla-blue-dark: #245fdc;
      --fla-blue-soft: #eaf1ff;
      --fla-card: #ffffff;
      --fla-shadow: 0 10px 28px rgba(29, 53, 87, 0.05);
      --fla-radius: 0.75rem;
      --fla-canvas: min(92vw, 1520px);
      --fla-section-x: clamp(1.25rem, 1rem + 1.5vw, 3.5rem);
      --fla-section-y: clamp(1.5rem, 1.1rem + 1.1vw, 2.75rem);
      --fla-h1: clamp(2rem, 1.35rem + 1.8vw, 3.4rem);
      --fla-h2: clamp(1.35rem, 1.1rem + 0.8vw, 2rem);
      --fla-body: clamp(0.98rem, 0.92rem + 0.16vw, 1.08rem);
      --fla-small: clamp(0.78rem, 0.75rem + 0.08vw, 0.9rem);
      --fla-node-w: clamp(220px, 18vw, 300px);
      --fla-node-h: clamp(42px, 2.5vw, 56px);
      --fla-diagram-gap: clamp(0.9rem, 0.45rem + 0.8vw, 1.35rem);
    }

    html,
    body {
      margin: 0;
      padding: 0;
      background: var(--fla-bg);
      color: var(--fla-text);
      font-family: "Roboto", Arial, sans-serif;
      font-size: var(--fla-body);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    .fla-shell {
      width: var(--fla-canvas);
      margin: 0 auto;
      background: var(--fla-page);
      border: 1px solid #dfe7f1;
      box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset, var(--fla-shadow);
    }

    .fla-topbar {
      min-height: clamp(64px, 4vw, 82px);
      border-bottom: 1px solid var(--fla-line);
      background: #fff;
      padding-inline: var(--fla-section-x);
    }

    .fla-brand {
      color: #214a80;
      font-weight: 900;
      letter-spacing: -0.02em;
      font-size: clamp(1rem, 0.92rem + 0.3vw, 1.35rem);
    }

    .fla-brand-mark {
      position: relative;
      width: clamp(16px, 1vw, 20px);
      height: clamp(16px, 1vw, 20px);
      border-radius: 4px;
      background: linear-gradient(135deg, var(--fla-blue) 0%, #85b4ff 100%);
      transform: skewX(-18deg);
      flex: 0 0 auto;
    }

    .fla-brand-mark::after {
      content: "";
      position: absolute;
      top: 2px;
      left: 8px;
      width: clamp(10px, 0.7vw, 12px);
      height: clamp(10px, 0.7vw, 12px);
      border-radius: 3px;
      background: linear-gradient(135deg, #1c4a96 0%, #7fb0ff 100%);
      opacity: 0.95;
    }
	
	.fla-top-menu {
      background: var(--fla-blue);
	}

    .fla-nav-link {
      color: #314c72;
      text-decoration: none;
      font-size: var(--fla-small);
      font-weight: 700;
    }

    .fla-btn {
      min-height: clamp(38px, 2.2vw, 46px);
      padding: 0.55rem clamp(0.9rem, 0.7rem + 0.4vw, 1.25rem);
      border-radius: 0.45rem;
      border: 1px solid #d3deef;
      background: #f5f8fd;
      color: #3f5675;
      text-decoration: none;
      font-size: var(--fla-small);
      font-weight: 800;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      white-space: nowrap;
    }

    .fla-btn-primary {
      background: var(--fla-blue);
      color: #fff;
      border-color: var(--fla-blue);
    }

    .fla-section {
      padding: var(--fla-section-y) var(--fla-section-x);
      border-bottom: 1px solid var(--fla-line);
      background: var(--fla-page-alt);
    }

    .fla-section-white {
      background: #fff;
    }

    .fla-hero {
      position: relative;
      overflow: hidden;
      background: #fff;
    }

    .fla-hero::after {
      content: "";
      position: absolute;
      inset: auto 0 0 0;
      height: 1px;
      background: var(--fla-line);
    }

    .fla-h1 {
      font-size: var(--fla-h1);
      line-height: 1.1;
      letter-spacing: -0.03em;
      font-weight: 900;
      color: #213a61;
      margin: 0 0 1rem;
    }

    .fla-lead-blue {
      font-size: clamp(1.15rem, 0.95rem + 0.45vw, 1.55rem);
      line-height: 1.3;
      color: var(--fla-blue-dark);
      margin-bottom: 0.5rem;
      font-weight: 500;
    }

    .fla-sub {
      font-size: clamp(1rem, 0.92rem + 0.25vw, 1.2rem);
      color: #4f6889;
      margin-bottom: 1.5rem;
    }

    .fla-diagram {
      min-height: clamp(280px, 28vw, 460px);
      border-radius: 0.5rem;
      padding: clamp(0.75rem, 0.6rem + 0.5vw, 1.25rem);
      background:
        linear-gradient(var(--fla-grid) 1px, transparent 1px) 0 0 / 16px 16px,
        linear-gradient(90deg, var(--fla-grid) 1px, transparent 1px) 0 0 / 16px 16px,
        linear-gradient(#fbfdff, #f8fbff);
    }

    .fla-node {
      width: var(--fla-node-w);
      min-height: var(--fla-node-h);
      margin: 0 auto;
      border-radius: 0.3rem;
      border: 2px solid #c7d8ef;
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      text-align: center;
      color: #2b476d;
      font-size: clamp(0.82rem, 0.76rem + 0.18vw, 1rem);
      font-weight: 800;
    }

    .fla-node-small {
      width: clamp(180px, 14vw, 230px);
    }

    .fla-node-model {
      width: clamp(250px, 20vw, 340px);
      background: linear-gradient(180deg, #3883ff 0%, #2e6eed 100%);
      border-color: #3d7ff5;
      color: #fff;
      gap: 0.65rem;
      box-shadow: 0 10px 24px rgba(47, 111, 255, 0.18);
    }

    .fla-model-icon {
      position: relative;
      width: 18px;
      height: 12px;
      border: 2px solid rgba(255, 255, 255, 0.95);
      border-radius: 2px;
      flex: 0 0 auto;
    }

    .fla-model-icon::before,
    .fla-model-icon::after {
      content: "";
      position: absolute;
      left: -10px;
      width: 8px;
      height: 2px;
      background: rgba(255, 255, 255, 0.86);
      border-radius: 2px;
    }

    .fla-model-icon::before {
      top: 1px;
    }

    .fla-model-icon::after {
      top: 7px;
    }

    .fla-vline {
      width: 2px;
      height: clamp(22px, 2vw, 30px);
      margin: 0 auto;
      background: #8eb3e8;
      position: relative;
    }

    .fla-vline::after {
      content: "";
      position: absolute;
      top: -6px;
      left: -4px;
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-bottom: 7px solid #8eb3e8;
    }

    .fla-section-title {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: clamp(0.8rem, 0.5rem + 0.8vw, 1.1rem);
      margin-bottom: 1.25rem;
    }

    .fla-section-title::before,
    .fla-section-title::after {
      content: "";
      width: clamp(50px, 12vw, 200px);
      height: 1px;
      background: var(--fla-line);
    }

    .fla-section-title h2 {
      margin: 0;
      font-size: var(--fla-h2);
      line-height: 1.2;
      letter-spacing: -0.02em;
      font-weight: 900;
      color: #223c64;
      text-align: center;
    }

    .fla-card,
    .fla-agent-card,
    .fla-device-card {
      border: 1px solid #e3ebf5;
      border-radius: 0.3rem;
      background: #fff;
      box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85) inset;
    }

    .fla-card {
      min-height: clamp(92px, 8vw, 128px);
      padding: clamp(1rem, 0.8rem + 0.4vw, 1.35rem);
      text-align: center;
    }

    .fla-card h3 {
      margin: 0 0 0.45rem;
      font-size: clamp(0.9rem, 0.84rem + 0.12vw, 1.02rem);
      color: #214b89;
      font-weight: 900;
    }

    .fla-card p {
      margin: 0;
      font-size: var(--fla-small);
      line-height: 1.45;
      color: #476383;
    }

    .fla-workflow {
      border: 1px solid #e2eaf4;
      border-radius: 0.3rem;
      background: linear-gradient(#fbfdff, #f6f9fe);
      padding: clamp(0.8rem, 0.7rem + 0.25vw, 1rem);
    }

    .fla-step {
      position: relative;
      min-height: clamp(34px, 2.5vw, 46px);
      color: #294d7f;
      font-size: clamp(0.8rem, 0.75rem + 0.12vw, 0.95rem);
      font-weight: 800;
      text-align: center;
    }

    .fla-step:not(:last-child)::after {
      content: "›";
      position: absolute;
      right: -0.3rem;
      top: 50%;
      transform: translateY(-50%);
      font-size: clamp(1.1rem, 1rem + 0.4vw, 1.5rem);
      color: #8aa2c2;
    }

    .fla-icon {
      width: clamp(24px, 1.6vw, 30px);
      height: clamp(24px, 1.6vw, 30px);
      border-radius: 50%;
      background: linear-gradient(180deg, #65a2ff 0%, #2f6fff 100%);
      color: #fff;
      display: grid;
      place-items: center;
      font-size: clamp(0.72rem, 0.68rem + 0.1vw, 0.85rem);
      font-weight: 900;
      box-shadow: 0 3px 8px rgba(47, 111, 255, 0.18);
      flex: 0 0 auto;
    }

    .fla-agent-card {
      min-height: clamp(130px, 11vw, 170px);
      padding: 0.85rem 0.85rem 0.65rem;
    }

    .fla-agent-card h3 {
      margin: 0 0 0.75rem;
      font-size: clamp(0.82rem, 0.78rem + 0.12vw, 0.98rem);
      color: #224a83;
      font-weight: 900;
      text-align: center;
    }

    .fla-meta {
      padding: 0.38rem 0;
      border-top: 1px solid #eef3f8;
      color: #516b89;
      font-size: clamp(0.72rem, 0.68rem + 0.1vw, 0.84rem);
    }

    .fla-meta:first-of-type {
      border-top: 0;
    }

    .fla-mini {
      width: 14px;
      height: 14px;
      border-radius: 3px;
      background: var(--fla-blue-soft);
      color: var(--fla-blue);
      display: grid;
      place-items: center;
      font-size: 9px;
      font-weight: 900;
      flex: 0 0 auto;
    }

    .fla-device-card {
      padding: 0.7rem;
      text-align: center;
    }

    .fla-placeholder {
      width: 100%;
      aspect-ratio: 16 / 8;
      border-radius: 0.3rem;
      border: 1px dashed #b3c7e2;
      background:
        radial-gradient(circle at 50% 20%, rgba(255,255,255,0.92), rgba(255,255,255,0) 48%),
        linear-gradient(180deg, #e7edf6 0%, #d7e2ef 100%);
      display: flex;
      align-items: center;
      justify-content: center;
      color: #6a84a6;
      font-size: clamp(0.64rem, 0.62rem + 0.08vw, 0.78rem);
      font-weight: 800;
      letter-spacing: 0.08em;
      overflow: hidden;
      text-transform: uppercase;
      margin-bottom: 0.7rem;
    }

    .fla-device-label {
      color: #1f5cb7;
      font-size: clamp(0.8rem, 0.76rem + 0.1vw, 0.92rem);
      font-weight: 900;
    }

    .fla-phase-line {
      height: 1px;
      background: var(--fla-line);
      margin-bottom: 0.9rem;
    }

    .fla-phase h3 {
      margin: 0 0 0.6rem;
      color: #1f5dbe;
      font-size: clamp(1rem, 0.92rem + 0.18vw, 1.18rem);
      font-weight: 900;
    }

    .fla-phase p {
      margin: 0;
      color: #3e5978;
      font-size: clamp(0.82rem, 0.78rem + 0.12vw, 0.96rem);
    }

    .fla-support {
      background: #f0f5fb;
    }

    .fla-footer {
      padding: 1rem 1.25rem 1.2rem;
      background: #f6f9fd;
      color: #6d829c;
      text-align: center;
      font-size: var(--fla-small);
    }

    .fla-footer a {
      color: #5b728d;
      text-decoration: none;
      font-weight: 700;
    }

    @media (max-width: 991.98px) {
      .fla-topbar {
        padding-block: 0.75rem;
      }

      .fla-hero {
        padding-top: 1.5rem;
      }

      .fla-nav-stack {
        width: 100%;
      }
    }
	
	/* =====================================================================
   Alpha-Omega CMS – Theme CSS Patch: Tiered Menus + Header/Subfooter
   Version: 3.0.1
   Date: 2026-03-14 (America/Chicago)
   Purpose:
     • Adds visual support for tiered frontend menus.
     • Aligns header / subfooter presentation closer to v3.alpha-omega.app.
     • Safe as an append-only patch to existing theme.css.
   Notes:
     • This CSS assumes nested <ul> structures are already rendered.
     • CSS cannot create tiers from flat HTML output.
   ===================================================================== */

:root {
  --ao-header-bg: var(--hgc-2025-4);
  --ao-header-text: var(--hgc-2025-1);
  --ao-header-border: var(--hgc-2025-5);
  --ao-header-surface: #fffaf0;
  --ao-header-shadow: 0 12px 24px rgba(51, 0, 0, 0.12);
  --ao-footer-heading: var(--hgc-2025-1);
  --ao-footer-rule: var(--hgc-2025-5);
  --ao-tier-indent: 1rem;
  --ao-tier-radius: 0.75rem;
}

/* ==========================================================
   HEADER POLISH
   ========================================================== */
header.navbar {
  background: var(--ao-header-bg);
  border-bottom: 2px solid var(--ao-header-border);
}

header.navbar .container-fluid {
  padding-left: 0;
  padding-right: 0;
}

.navbar-brand {
  min-height: 50px;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}

.navbar-brand img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.navbar-brand span {
  color: var(--ao-header-text);
  font-weight: 700;
  letter-spacing: 0.01em;
}

.nav-top-flex,
.nav-main-flex {
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.nav-main-flex {
  position: relative;
}

.nav-main-flex > li,
.nav-top-flex > li {
  position: relative;
}

.nav-main-flex > li > a,
.nav-top-flex > li > a,
.navbar-nav .nav-link {
  min-height: 50px;
  display: flex !important;
  align-items: center;
  justify-content: center;
}

.nav-main-flex > li > .nav-link {
  padding-left: 1rem;
  padding-right: 1rem;
}

.nav-main-flex > li > .nav-link,
.nav-main-flex li > a,
.nav-top-flex li > a {
  border-radius: 0;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    box-shadow 0.2s ease;
}

.nav-main-flex > li:hover > .nav-link,
.nav-main-flex > li:focus-within > .nav-link,
.nav-top-flex > li:hover > a,
.nav-top-flex > li:focus-within > a {
  background: rgba(255, 248, 232, 0.55);
  color: var(--hgc-2025-6);
}

.navbar-toggler {
  min-width: 50px;
  min-height: 50px;
  border-width: 2px;
  border-color: var(--ao-header-border);
}

.navbar-toggler:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(204, 0, 0, 0.22);
}

/* ==========================================================
   DESKTOP TIERED NAVIGATION
   Assumes nested ULs inside LI nodes.
   ========================================================== */
@media (min-width: 992px) {
  .nav-main-flex li > ul,
  .nav-top-flex li > ul,
  .subfooter .footer-col li > ul {
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
  }

  .nav-main-flex li > ul,
  .nav-top-flex li > ul {
    position: absolute;
    top: calc(100% - 1px);
    left: 0;
    min-width: 16rem;
    background: var(--ao-header-surface);
    border: 1px solid rgba(118, 73, 22, 0.24);
    border-top: 2px solid var(--ao-header-border);
    border-radius: 0 0 var(--ao-tier-radius) var(--ao-tier-radius);
    box-shadow: var(--ao-header-shadow);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(0.35rem);
    z-index: 1100;
    transition:
      opacity 0.18s ease,
      transform 0.18s ease,
      visibility 0.18s ease;
  }

  .nav-main-flex li:hover > ul,
  .nav-main-flex li:focus-within > ul,
  .nav-top-flex li:hover > ul,
  .nav-top-flex li:focus-within > ul {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  .nav-main-flex li > ul > li,
  .nav-top-flex li > ul > li {
    position: relative;
  }

  .nav-main-flex li > ul > li > a,
  .nav-top-flex li > ul > li > a {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.75rem 1rem;
    color: var(--ao-header-text);
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
  }

  .nav-main-flex li > ul > li > a:hover,
  .nav-main-flex li > ul > li > a:focus-visible,
  .nav-top-flex li > ul > li > a:hover,
  .nav-top-flex li > ul > li > a:focus-visible {
    background: rgba(214, 198, 142, 0.2);
    color: var(--hgc-2025-6);
  }

  .nav-main-flex li > ul > li + li,
  .nav-top-flex li > ul > li + li {
    border-top: 1px solid rgba(118, 73, 22, 0.14);
  }

  .nav-main-flex li > ul li > ul,
  .nav-top-flex li > ul li > ul {
    top: -1px;
    left: calc(100% - 0.125rem);
    border-radius: var(--ao-tier-radius);
  }

  .nav-main-flex li > ul li > a,
  .nav-top-flex li > ul li > a {
    position: relative;
    padding-right: 2.5rem;
  }

  .nav-main-flex li > ul li > ul::before,
  .nav-top-flex li > ul li > ul::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: inherit;
    pointer-events: none;
  }

  .nav-main-flex li > ul li > ul > li > a,
  .nav-top-flex li > ul li > ul > li > a {
    background: var(--ao-header-surface);
  }
}

/* ==========================================================
   MOBILE / TABLET STACKED TIERS
   ========================================================== */
@media (max-width: 991.98px) {
  #mainNav {
    padding: 0.25rem 1rem 1rem;
    border-top: 1px solid rgba(118, 73, 22, 0.18);
    background: linear-gradient(to bottom, rgba(255,248,232,0.72), rgba(255,248,232,0.98));
  }

  .navbar-nav,
  .navbar-nav ul {
    list-style: none;
    margin: 0;
    padding-left: 0;
  }

  .navbar-nav li,
  .navbar-nav .nav-item {
    display: block;
    width: 100%;
  }

  .navbar-nav a,
  .navbar-nav .nav-link {
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0.75rem 0;
    border-bottom: 1px solid rgba(118, 73, 22, 0.12);
  }

  .navbar-nav li > ul {
    padding-left: var(--ao-tier-indent);
    margin-bottom: 0.5rem;
  }

  .navbar-nav li > ul > li > a {
    font-size: 0.975rem;
  }

  .navbar-nav li > ul li > ul {
    padding-left: var(--ao-tier-indent);
  }
}

/* ==========================================================
   SUBFOOTER – CLOSER TO v3.alpha-omega.app
   ========================================================== */
.subfooter {
  border-top: 2px solid var(--ao-footer-rule) !important;
}

.subfooter .container-fluid {
  max-width: 1600px;
}

.subfooter .footer-flex {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 2rem 2.5rem;
  align-items: start;
}

.subfooter .footer-col {
  min-width: 0;
}

.subfooter .footer-col h6 {
  color: var(--ao-footer-heading) !important;
  border-bottom: 2px solid var(--ao-footer-rule) !important;
  display: inline-block;
  padding-bottom: 0.35rem !important;
  margin-bottom: 0.85rem !important;
  letter-spacing: 0.04em;
}

.subfooter .footer-col ul,
.subfooter .footer-col li {
  list-style: none;
  margin: 0;
  padding: 0;
}

.subfooter .footer-col > ul > li + li {
  margin-top: 0.15rem;
}

.subfooter .footer-col a {
  display: inline-flex;
  align-items: center;
  min-height: 50px;
  color: var(--hgc-2025-1) !important;
  text-decoration: none;
  line-height: 1.4;
}

.subfooter .footer-col a:hover,
.subfooter .footer-col a:focus-visible {
  color: var(--hgc-2025-7) !important;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.subfooter .footer-col li > ul {
  margin-top: 0.15rem;
  margin-left: 0.25rem;
  padding-left: 0.9rem;
  border-left: 2px solid rgba(118, 73, 22, 0.16);
}

.subfooter .footer-col li > ul a {
  min-height: 42px;
  font-size: 0.95rem;
}

.subfooter .footer-col li > ul li > ul {
  margin-left: 0;
  padding-left: 0.85rem;
  border-left-color: rgba(118, 73, 22, 0.12);
}

/* ==========================================================
   SAFETY TWEAKS FOR FLAT LISTS
   These do no harm if tiers are not yet rendered.
   ========================================================== */
.nav-main-flex > li + li > .nav-link {
  border-left: 1px solid rgba(118, 73, 22, 0.12);
}

.nav-top-flex > li + li > a {
  border-left: 1px solid rgba(255, 248, 232, 0.12);
}

@media (max-width: 991.98px) {
  .nav-main-flex > li + li > .nav-link,
  .nav-top-flex > li + li > a {
    border-left: 0;
  }
}

/* ============================================================
   Tiered Header Menu Fixes
   Purpose:
   - keep deep dropdowns visible near right edge
   - improve nested menu positioning and usability
   ============================================================ */

@media (min-width: 992px) {
  .ao-header-stack,
  .ao-header-stack .navbar,
  .ao-header-stack .navbar .container-fluid,
  .ao-header-stack .navbar-collapse {
    overflow: visible !important;
  }

  header.navbar .dropdown-menu {
    min-width: 16rem;
    border: 1px solid var(--hgc-2025-4);
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.12);
  }

  header.navbar .dropdown-submenu {
    position: relative;
  }

  header.navbar .dropdown-submenu > .dropdown-menu {
    top: -1px;
    left: 100%;
    right: auto;
    margin-top: 0;
    margin-left: 0;
  }

  header.navbar .dropdown-submenu:hover > .dropdown-menu,
  header.navbar .dropdown-submenu:focus-within > .dropdown-menu {
    display: block;
  }

  /* When the root dropdown sits near the right side, open deeper tiers left */
  header.navbar .navbar-nav > .dropdown:last-child .dropdown-submenu > .dropdown-menu,
  header.navbar .navbar-nav > .dropdown:nth-last-child(2) .dropdown-submenu > .dropdown-menu {
    left: auto;
    right: 100%;
  }

  /* Improve nested item readability */
  header.navbar .dropdown-menu .dropdown-item,
  header.navbar .dropdown-menu .dropdown-toggle {
    white-space: nowrap;
    min-height: 50px;
    line-height: 1.25;
  }

  /* Visual cue for submenu items */
  header.navbar .dropdown-submenu > .dropdown-toggle::after {
    content: "›";
    margin-left: auto;
    font-size: 1rem;
    line-height: 1;
  }
}

/* ============================================================
   Subfooter Hierarchy Styling
   Note:
   This only applies once footer markup is rendered hierarchically.
   ============================================================ */

.subfooter .footer-menu,
.subfooter .footer-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.subfooter .footer-menu > li {
  margin-bottom: 0.35rem;
}

.subfooter .footer-menu ul {
  padding-left: 1rem;
  margin-top: 0.25rem;
  border-left: 1px solid rgba(118, 73, 22, 0.25);
}

.subfooter .footer-menu ul li a {
  font-size: 0.95rem;
}

.subfooter .footer-menu ul ul li a {
  font-size: 0.9rem;
  opacity: 0.95;
}

/* =====================================================
   FridayLocalAI Top Menu (FLA Blue)
   ===================================================== */

.ao-top-menu {
  background: var(--fla-blue);
  color: #ffffff;
  width: 100%;
  border-bottom: 2px solid var(--fla-blue-dark);
}

/* override Bootstrap container backgrounds */
.ao-top-menu .container,
.ao-top-menu .container-fluid {
  background: transparent;
}

/* top menu list */
.ao-top-menu ul {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  flex-wrap: nowrap;
  list-style: none;
  margin: 0;
  padding: 0.35rem 0;
}

/* links */
.ao-top-menu a {
  color: #ffffff;
  text-decoration: none;
  font-weight: 500;
  padding: 0.45rem 0.75rem;
  display: block;
  transition: background-color 0.2s ease;
}

/* hover = AO tan */
.ao-top-menu a:hover,
.ao-top-menu a:focus-visible {
  background-color: var(--hgc-2025-2);
  color: #ffffff;
}

/* accessibility */
.ao-top-menu a:focus-visible {
  outline: 2px solid rgba(255,255,255,0.5);
  outline-offset: 2px;
}

/* ============================================================
   FridayLocalAI Top Menu Override Patch
   Append to END of LKG theme.css
   ============================================================ */

:root {
  --fla-blue: #2f6df6;
  --fla-blue-dark: #1f56d6;
  --fla-blue-text: #ffffff;
  --ao-tan: #d2b48c;
}

/* Sticky wrapper safety */
.fla-blue.sticky-top {
  z-index: 1030;
  overflow: visible;
}

.fla-blue.sticky-top > nav,
.fla-blue.sticky-top > header {
  overflow: visible;
}

/* Top bar */
.ao-top-menu {
  background: var(--fla-blue) !important;
  background-color: var(--fla-blue) !important;
  background-image: none !important;
  color: var(--fla-blue-text) !important;
  border-bottom: 1px solid var(--fla-blue-dark) !important;
}

.ao-top-menu .container,
.ao-top-menu .container-fluid,
.ao-top-menu ul,
.ao-top-menu .nav-top-flex {
  background: transparent !important;
  background-color: transparent !important;
}

/* Top menu items */
.ao-top-menu .nav-top-flex > li {
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.ao-top-menu .nav-top-flex > li:last-child {
  border-right: 0;
}

/* Top menu links */
.ao-top-menu-link,
.ao-top-menu .nav-top-flex > li > a {
  color: #ffffff !important;
  background: transparent !important;
  text-decoration: none !important;
}

/* Hover / focus */
.ao-top-menu-link:hover,
.ao-top-menu-link:focus-visible,
.ao-top-menu .nav-top-flex > li > a:hover,
.ao-top-menu .nav-top-flex > li > a:focus-visible {
  background-color: #00000033 !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

/* Stop inherited dark/light utility classes from winning */
.ao-top-menu *,
.ao-top-menu a,
.ao-top-menu .small,
.ao-top-menu .text-dark,
.ao-top-menu .text-muted,
.ao-top-menu .nav-link {
  color: #ffffff !important;
}

.ao-nav-item-split > .d-flex {
    flex-wrap: nowrap;
}

.ao-nav-item-split .nav-link[href],
.ao-nav-item-split .dropdown-item[href] {
    white-space: nowrap;
}

.ao-nav-item-split .dropdown-toggle::after {
    margin-left: 0;
}

.ao-nav-item-split .dropdown-toggle {
    cursor: pointer;
}

.ao-nav-item-split .dropdown-item.dropdown-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ao-nav-item-split .dropdown-item[href] {
    flex: 1 1 auto;
}

@media (max-width: 991.98px) {
    .ao-submenu-toggle {
        min-width: 50px;
        min-height: 50px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

/* =====================================================================
   End of File
   ===================================================================== */
