/* ==========================================================
   FMB HEADER + RESPONSIVE NAVIGATION
   Desktop: primary nav + separate topic row.
   Tablet/mobile: topic row moves inside the menu drawer.
   No horizontally scrolling navigation.
   ========================================================== */

.fmb-site-header {
  position: relative;
  z-index: 100;
  background: var(--fmb-navy);
  color: var(--fmb-white);
}

.fmb-header-main { background: var(--fmb-navy); }

.fmb-header-main__inner {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 92px;
  padding: 14px var(--fmb-gutter);
  gap: clamp(18px, 2.2vw, 38px);
}

.fmb-brand { flex: 0 1 auto; }
.fmb-brand--header { width: clamp(205px, 20vw, 340px); margin-right: auto; }
.fmb-brand .custom-logo-link { display: inline-flex; align-items: center; max-width: 100%; text-decoration: none; }
.fmb-brand--header .custom-logo { width: auto; max-width: 100%; max-height: 62px; object-fit: contain; }
.fmb-brand__fallback { display: inline-flex; flex-direction: column; color: var(--fmb-white); text-decoration: none; }
.fmb-brand__name { font-family: var(--fmb-font-display); font-size: clamp(1.65rem, 2.3vw, 2.45rem); font-weight: 800; letter-spacing: -0.035em; line-height: 1; }
.fmb-brand__tagline { margin-top: 6px; color: var(--fmb-gold); font-size: 0.61rem; font-weight: 600; letter-spacing: 0.14em; line-height: 1.2; text-transform: uppercase; }

.fmb-primary-nav { display: flex; align-items: center; }
.fmb-primary-nav__menu,
.fmb-primary-nav__menu ul,
.fmb-topic-nav__menu,
.fmb-mobile-topics__menu { padding: 0; margin: 0; list-style: none; }
.fmb-primary-nav__menu { display: flex; align-items: center; gap: clamp(13px, 1.45vw, 27px); }
.fmb-primary-nav__menu > li { position: relative; flex: 0 0 auto; }
.fmb-primary-nav__menu a {
  display: flex;
  align-items: center;
  min-height: 44px;
  color: var(--fmb-off-white);
  font-size: clamp(0.78rem, 0.82vw, 0.92rem);
  font-weight: 600;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--fmb-transition), background-color var(--fmb-transition);
}
.fmb-primary-nav__menu > li:not(.fmb-nav-cta) > a:hover,
.fmb-primary-nav__menu > li:not(.fmb-nav-cta) > a:focus-visible,
.fmb-primary-nav__menu > .current-menu-item:not(.fmb-nav-cta) > a,
.fmb-primary-nav__menu > .current-menu-ancestor:not(.fmb-nav-cta) > a { color: var(--fmb-gold); }

.fmb-primary-nav__menu .menu-item-has-children > a::after {
  width: 6px;
  height: 6px;
  margin: -4px 0 0 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  content: "";
  transform: rotate(45deg);
}

.fmb-primary-nav__menu .sub-menu {
  position: absolute;
  z-index: 10;
  top: calc(100% + 8px);
  left: -18px;
  visibility: hidden;
  min-width: 220px;
  padding: 10px;
  border: 1px solid var(--fmb-divider);
  border-radius: var(--fmb-radius-sm);
  opacity: 0;
  background: var(--fmb-navy-dark);
  box-shadow: var(--fmb-shadow-lg);
  transform: translateY(-5px);
  transition: opacity var(--fmb-transition), transform var(--fmb-transition), visibility var(--fmb-transition);
}
.fmb-primary-nav__menu .sub-menu .sub-menu { top: -10px; left: calc(100% + 10px); }
.fmb-primary-nav__menu li:hover > .sub-menu,
.fmb-primary-nav__menu li:focus-within > .sub-menu { visibility: visible; opacity: 1; transform: translateY(0); }
.fmb-primary-nav__menu .sub-menu a { min-height: 40px; padding: 8px 11px; white-space: normal; }
.fmb-primary-nav__menu .sub-menu a:hover,
.fmb-primary-nav__menu .sub-menu a:focus-visible { color: var(--fmb-gold); background: rgba(255,255,255,.05); }

.fmb-primary-nav__menu > .fmb-nav-cta > a {
  min-height: 42px;
  padding: 10px 18px;
  border: 1px solid var(--fmb-gold);
  border-radius: var(--fmb-radius-sm);
  background: var(--fmb-gold);
  color: var(--fmb-navy-dark);
  font-weight: 700;
}
.fmb-primary-nav__menu > .fmb-nav-cta > a:hover,
.fmb-primary-nav__menu > .fmb-nav-cta > a:focus-visible { border-color: var(--fmb-white); background: var(--fmb-white); color: var(--fmb-navy-dark); }

.fmb-menu-toggle,
.fmb-search-toggle,
.fmb-search-close { display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; background: transparent; color: var(--fmb-white); cursor: pointer; }
.fmb-menu-toggle { display: none; width: 44px; height: 44px; }
.fmb-menu-toggle__icon { display: grid; width: 23px; gap: 5px; }
.fmb-menu-toggle__icon span { display: block; width: 100%; height: 2px; border-radius: 1px; background: currentColor; transition: transform var(--fmb-transition), opacity var(--fmb-transition); }
.fmb-menu-toggle[aria-expanded="true"] .fmb-menu-toggle__icon span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.fmb-menu-toggle[aria-expanded="true"] .fmb-menu-toggle__icon span:nth-child(2) { opacity: 0; }
.fmb-menu-toggle[aria-expanded="true"] .fmb-menu-toggle__icon span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.fmb-search-toggle { flex: 0 0 44px; width: 44px; height: 44px; border-left: 1px solid var(--fmb-divider); }
.fmb-search-toggle svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.8; }
.fmb-search-toggle:hover,
.fmb-search-toggle:focus-visible,
.fmb-menu-toggle:hover,
.fmb-menu-toggle:focus-visible { color: var(--fmb-gold); }

.fmb-search-panel { border-top: 1px solid var(--fmb-divider); background: var(--fmb-navy-dark); }
.fmb-search-panel__inner { display: flex; align-items: center; width: 100%; padding: 18px var(--fmb-gutter); gap: 14px; }
.fmb-search-panel .search-form { display: flex; flex: 1; max-width: 760px; margin: 0 auto; }
.fmb-search-panel .search-form label { flex: 1; }
.fmb-search-panel .search-field { width: 100%; min-height: 48px; padding: 10px 15px; border: 1px solid rgba(255,255,255,.28); border-right: 0; border-radius: var(--fmb-radius-sm) 0 0 var(--fmb-radius-sm); outline: 0; background: var(--fmb-white); color: var(--fmb-navy-dark); }
.fmb-search-panel .search-field:focus { border-color: var(--fmb-gold); box-shadow: inset 0 0 0 1px var(--fmb-gold); }
.fmb-search-panel .search-submit { min-height: 48px; padding: 10px 22px; border: 1px solid var(--fmb-gold); border-radius: 0 var(--fmb-radius-sm) var(--fmb-radius-sm) 0; background: var(--fmb-gold); color: var(--fmb-navy-dark); font-weight: 700; cursor: pointer; }
.fmb-search-panel .search-submit:hover,
.fmb-search-panel .search-submit:focus-visible { border-color: var(--fmb-white); background: var(--fmb-white); }
.fmb-search-close { flex: 0 0 44px; width: 44px; height: 44px; font-size: 2rem; font-weight: 300; }

/* Desktop topic row: centered and wrapping rather than horizontally scrolling. */
.fmb-topic-nav { border-top: 1px solid var(--fmb-divider); border-bottom: 1px solid var(--fmb-divider); background: var(--fmb-navy); }
.fmb-topic-nav__inner { width: 100%; padding: 0 var(--fmb-gutter); }
.fmb-topic-nav__menu { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 clamp(28px, 4.4vw, 76px); max-width: var(--fmb-content-width); margin-inline: auto; }
.fmb-topic-nav__menu li { flex: 0 1 auto; }
.fmb-topic-nav__menu a { display: flex; align-items: center; min-height: 48px; color: var(--fmb-off-white); font-size: clamp(.73rem,.77vw,.86rem); font-weight: 500; letter-spacing: .015em; text-decoration: none; transition: color var(--fmb-transition); }
.fmb-topic-nav__menu a:hover,
.fmb-topic-nav__menu a:focus-visible,
.fmb-topic-nav__menu .current-menu-item > a { color: var(--fmb-gold); }

.fmb-mobile-topics { display: none; }

@media (max-width: 1180px) {
  .fmb-header-main__inner { min-height: 78px; }
  .fmb-brand--header { width: min(270px, calc(100% - 118px)); }
  .fmb-brand--header .custom-logo { max-height: 54px; }
  .fmb-menu-toggle { display: inline-flex; order: 2; }
  .fmb-search-toggle { order: 3; }

  .fmb-primary-nav {
    position: absolute;
    z-index: 20;
    top: 100%;
    right: 0;
    left: 0;
    display: block;
    visibility: hidden;
    max-height: 0;
    overflow: hidden;
    border-top: 1px solid var(--fmb-divider);
    opacity: 0;
    background: var(--fmb-navy-dark);
    transition: max-height 260ms ease, opacity var(--fmb-transition), visibility var(--fmb-transition);
  }
  .fmb-primary-nav.is-open { visibility: visible; max-height: calc(100vh - 78px); overflow-y: auto; opacity: 1; }
  .fmb-primary-nav__menu { display: block; padding: 14px var(--fmb-gutter) 8px; }
  .fmb-primary-nav__menu a { min-height: 48px; font-size: .92rem; white-space: normal; }
  .fmb-primary-nav__menu > li:not(:last-child) { border-bottom: 1px solid rgba(255,255,255,.09); }
  .fmb-primary-nav__menu .menu-item-has-children > a::after { margin-left: auto; }
  .fmb-primary-nav__menu .sub-menu,
  .fmb-primary-nav__menu .sub-menu .sub-menu { position: static; visibility: visible; min-width: 0; padding: 0 0 8px 20px; border: 0; opacity: 1; background: transparent; box-shadow: none; transform: none; }
  .fmb-primary-nav__menu .sub-menu a { min-height: 42px; color: var(--fmb-muted); font-size: .86rem; }
  .fmb-primary-nav__menu > .fmb-nav-cta { padding: 16px 0 0; border-bottom: 0; }
  .fmb-primary-nav__menu > .fmb-nav-cta > a { display: inline-flex; min-height: 44px; }

  /* Topic navigation is now inside the drawer on phone/tablet. */
  .fmb-topic-nav { display: none; }
  .fmb-mobile-topics { display: block; margin: 6px var(--fmb-gutter) 22px; padding-top: 18px; border-top: 1px solid rgba(212,182,120,.28); }
  .fmb-mobile-topics__label { margin: 0 0 10px; color: var(--fmb-gold); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
  .fmb-mobile-topics__menu { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 18px; }
  .fmb-mobile-topics__menu a { display: flex; min-height: 42px; align-items: center; color: var(--fmb-off-white); font-size: .86rem; font-weight: 600; text-decoration: none; }
  .fmb-mobile-topics__menu a:hover,
  .fmb-mobile-topics__menu a:focus-visible { color: var(--fmb-gold); }
  body.fmb-menu-open { overflow: hidden; }
}

@media (max-width: 600px) {
  .fmb-header-main__inner { min-height: 70px; padding-top: 10px; padding-bottom: 10px; gap: 4px; }
  .fmb-brand--header { width: min(205px, calc(100% - 96px)); }
  .fmb-brand--header .custom-logo { max-height: 48px; }
  .fmb-brand__tagline { display: none; }
  .fmb-menu-toggle,
  .fmb-search-toggle { width: 42px; height: 42px; }
  .fmb-search-toggle { flex-basis: 42px; border-left: 0; }
  .fmb-primary-nav.is-open { max-height: calc(100vh - 70px); }
  .fmb-search-panel__inner { padding-top: 14px; padding-bottom: 14px; gap: 6px; }
  .fmb-search-panel .search-submit { padding-right: 13px; padding-left: 13px; }
  .fmb-mobile-topics__menu { grid-template-columns: 1fr; gap: 0; }
  .fmb-mobile-topics__menu li + li { border-top: 1px solid rgba(255,255,255,.07); }
}

/* ==========================================================
   DESKTOP NAVIGATION POLISH
   Slightly larger desktop navigation + automatic Partner CTA.
   ========================================================== */
@media (min-width: 1181px) {
  .fmb-primary-nav__menu {
    gap: clamp(14px, 1.35vw, 25px);
  }

  .fmb-primary-nav__menu a {
    font-size: clamp(0.84rem, 0.9vw, 1rem);
    font-weight: 650;
  }

  .fmb-primary-nav__menu > .fmb-nav-cta > a {
    min-height: 46px;
    padding: 11px 22px;
    border-color: var(--fmb-gold);
    border-radius: 5px;
    background: var(--fmb-gold);
    color: var(--fmb-navy-dark);
    font-weight: 750;
    box-shadow: 0 5px 16px rgba(0, 0, 0, 0.10);
  }

  .fmb-topic-nav__menu a {
    min-height: 50px;
    font-size: clamp(0.78rem, 0.82vw, 0.91rem);
    font-weight: 600;
  }
}
