/* ==========================================================================
   FTS: Find Info Menu
   --------------------------------------------------------------------------
   Compact related-info menu with mobile disclosure behavior.
   Uses existing Fuller Design System tokens only.
========================================================================== */


/* Wrapper --------------------------------------------------------------- */

.fts-find-info-menu {
  width: 100%;
  margin-bottom: var(--fts-stack-sm);
}


/* Header row ------------------------------------------------------------ */

.fts-find-info-menu-menu-header-row {
  display: block;
  text-align: left;
}


/* Title ----------------------------------------------------------------- */

.fts-find-info-menu-title {
  display: block;
  margin: 0 0 4px;
  padding: 0;

  color: var(--color-text);
  font-family: var(--font-family-body);
  font-size: var(--font-size-body) !important;
  font-weight: var(--weight-semibold) !important;
  line-height: 1.35;
  letter-spacing: 0.05em;
  text-align: left;
  text-transform: uppercase;
}


/* Mobile toggle --------------------------------------------------------- */

.fts-find-info-menu-submenu-toggle {
  all: unset;

  display: none;
  align-items: center;
  justify-content: center;

  color: var(--color-text) !important;
  background: transparent !important;

  font-family: var(--font-family-body);
  font-size: 1.25rem !important;
  line-height: 1;

  cursor: pointer;

  transition:
    color var(--fts-btn-transition) ease,
    transform var(--fts-btn-transition) ease;
}

.fts-find-info-menu-submenu-toggle::after {
  content: "☰";
  transition: transform var(--fts-btn-transition) ease;
}

.fts-find-info-menu-submenu-toggle.is-open::after {
  content: "✕";
  font-size: var(--font-size-small);
  transform: rotate(180deg);
}

.fts-find-info-menu-submenu-toggle:hover,
.fts-find-info-menu-submenu-toggle:focus-visible {
  color: var(--color-link-hover) !important;
}

.fts-find-info-menu-submenu-toggle:focus-visible {
  outline: var(--fts-focus-width) solid var(--fts-focus-ring);
  outline-offset: var(--fts-focus-offset);
}


/* Submenu --------------------------------------------------------------- */

.fts-find-info-menu-submenu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;

  margin: 0;
  padding: 0;
  list-style: none;

  transition:
    max-height var(--fts-btn-transition) ease,
    opacity var(--fts-btn-transition) ease;
}

.fts-find-info-menu-submenu li {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  font-weight: var(--weight-bold) !important;
}


/* Links ----------------------------------------------------------------- */

.fts-find-info-menu-submenu a {
  display: inline-flex;
  align-items: center;

  margin: 0 6px 0 0;
  padding: 0;

  color: var(--color-link) !important;
  font-family: var(--font-family-body);
  font-size: var(--font-size-small);
  font-weight: var(--weight-semibold) !important;
  line-height: 1.25;
  letter-spacing: 0.05em;
  text-transform: none;
  text-decoration: none;

  cursor: pointer;

  transition:
    color var(--fts-btn-transition) ease,
    transform var(--fts-btn-transition) ease;
}

.fts-find-info-menu-submenu a:hover,
.fts-find-info-menu-submenu a:focus-visible {
  color: var(--color-link-hover) !important;
  text-decoration: none !important;
}

.fts-find-info-menu-submenu a:focus-visible {
  outline: var(--fts-focus-width) solid currentColor;
  outline-offset: var(--fts-focus-offset);
}


/* Separators ------------------------------------------------------------ */

.fts-find-info-menu-submenu .separator {
  margin: 0 0.625em 0 0.15em !important;

  color: var(--color-muted) !important;
  font-size: var(--font-size-small);
  font-weight: var(--weight-semibold);
  line-height: 1;
}


/* Large / narrow desktop ------------------------------------------------ */

@media (max-width: 1280px) {
  .fts-find-info-menu-title {
    font-weight: var(--weight-bold) !important;
    line-height: 1.2;
    text-transform: none;
  }

  .fts-find-info-menu-submenu a {
    margin: 0;
  }

  .fts-find-info-menu-submenu .separator {
    font-size: 0.75rem;
    color: var(--color-text) !important;
  }
}


/* Mobile / tablet ------------------------------------------------------- */

@media (max-width: 768px) {
  .fts-find-info-menu {
    margin-bottom: var(--fts-stack) !important;
  }

  .fts-find-info-menu-menu-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;

    width: 100%;
    text-align: left;
  }

  .fts-find-info-menu-title {
    flex: 1;
    margin: 0;
    font-size: var(--font-size-body) !important;
    white-space: nowrap;
  }

  .fts-find-info-menu-submenu-toggle {
    display: flex;
    font-size: 1.5rem !important;
  }

  .fts-find-info-menu-submenu {
    flex-direction: column;
    align-items: flex-start;

    width: 100%;
    max-height: 0;
    margin-top: 1rem;
    padding: 0;

    opacity: 0;
    overflow: hidden;
  }

  .fts-find-info-menu-submenu.is-open {
    max-height: 500px;
    opacity: 1;
  }

  .fts-find-info-menu-submenu li {
    width: 100%;
    margin-bottom: 0.25em;
    text-align: left;
  }

  .fts-find-info-menu-submenu a {
    display: inline-flex;
    width: 100%;
    padding: 0.25em 0;
  }

  .fts-find-info-menu-submenu .separator {
    display: none;
  }
}


/* Mobile only ----------------------------------------------------------- */

@media (max-width: 480px) {
  .fts-find-info-menu {
    margin-bottom: var(--fts-stack-sm) !important;
  }
}


/* Reduced motion -------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  .fts-find-info-menu-submenu,
  .fts-find-info-menu-submenu a,
  .fts-find-info-menu-submenu-toggle,
  .fts-find-info-menu-submenu-toggle::after {
    transition: none;
  }
}