/*
 * Milestone 3 — compact academic catalog navigation.
 * Uses the centralized GSU palette, typography, and spacing tokens defined
 * by theme.json. Keep selectors scoped so record/table styles remain intact.
 */
.gsu-navigation-page {
  --nav-space: var(--wp--preset--spacing--30);
  width: min(100%, var(--wp--custom--academic--content-width));
  min-width: 0;
  margin-inline: auto;
  padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
  color: var(--wp--preset--color--gsu-blue-steel);
  font-family: var(--wp--preset--font-family--lato);
  line-height: var(--wp--custom--academic--line-height);
}

.gsu-navigation-page,
.gsu-navigation-page :where(*, *::before, *::after) {
  box-sizing: border-box;
}

.gsu-navigation-page :where(h1, h2, h3, p, ul, ol, dl) {
  max-width: 100%;
}

.gsu-navigation-page :where(a) {
  color: var(--wp--preset--color--gsu-blue);
  text-underline-offset: .18em;
  overflow-wrap: anywhere;
}

.gsu-navigation-page :where(a:hover) {
  color: var(--wp--preset--color--gsu-accent);
}

.gsu-navigation-page :where(a:focus-visible, button:focus-visible, select:focus-visible) {
  outline: 3px solid var(--wp--custom--semantic--focus);
  outline-offset: 3px;
}

.gsu-navigation-page h1 {
  margin: 0 0 var(--wp--preset--spacing--30);
  color: var(--wp--preset--color--gsu-blue);
  font-size: var(--wp--custom--academic--title-size);
  font-weight: 700;
  line-height: var(--wp--custom--academic--heading-line-height);
  overflow-wrap: anywhere;
}

.gsu-navigation-page :where(h2, h3) {
  color: var(--wp--preset--color--gsu-blue);
  font-weight: 700;
  line-height: var(--wp--custom--academic--heading-line-height);
  overflow-wrap: anywhere;
}

.gsu-navigation-page > :where(p, .gsu-breadcrumb, .gsu-nav-actions, .gsu-context-navigation, .gsu-program-filters, .gsu-alpha-navigation) {
  margin-block: 0 var(--wp--preset--spacing--30);
}

.gsu-catalog-home,
.gsu-family-entry,
.gsu-organization-card,
.gsu-program-list > li,
.gsu-navigation-empty,
.gsu-organizational-context,
.gsu-tree-warning,
.gsu-history-placeholder {
  min-width: 0;
  border: 1px solid var(--wp--custom--semantic--border);
  background: var(--wp--custom--semantic--surface);
}

.gsu-catalog-home {
  margin-block: var(--wp--preset--spacing--30);
  padding: var(--wp--preset--spacing--30);
  border-top: 3px solid var(--wp--preset--color--gsu-blue);
}

.gsu-catalog-home > :first-child,
.gsu-family-entry > :first-child,
.gsu-organization-card > :first-child,
.gsu-navigation-empty > :first-child,
.gsu-organizational-context > :first-child,
.gsu-tree-warning > :first-child,
.gsu-history-placeholder > :first-child {
  margin-top: 0;
}

.gsu-catalog-home > :last-child,
.gsu-family-entry > :last-child,
.gsu-organization-card > :last-child,
.gsu-navigation-empty > :last-child,
.gsu-organizational-context > :last-child,
.gsu-tree-warning > :last-child,
.gsu-history-placeholder > :last-child {
  margin-bottom: 0;
}

.gsu-family-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--30);
  margin-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.gsu-family-entry {
  padding: var(--wp--preset--spacing--30);
  border-top: 3px solid var(--wp--preset--color--gsu-coolblue);
}

.gsu-family-entry h2 {
  margin: 0 0 .35rem;
  font-size: var(--wp--custom--academic--subheading-size);
}

.gsu-family-entry :where(p) {
  margin-block: .35rem;
}

.gsu-family-entry :where(.gsu-edition, .gsu-edition-metadata, .gsu-family-edition) {
  color: var(--wp--custom--semantic--muted);
  font-size: var(--wp--custom--academic--label-size);
  line-height: var(--wp--custom--academic--small-line-height);
}

.gsu-family-entry a {
  display: inline-flex;
  align-items: center;
  min-height: var(--wp--custom--academic--control-target);
  font-weight: 700;
}

.gsu-family-heading {
  margin-bottom: var(--wp--preset--spacing--40);
  padding-bottom: var(--wp--preset--spacing--30);
  border-bottom: 1px solid var(--wp--custom--semantic--border);
}

.gsu-family-heading h1 {
  margin-bottom: .25rem;
}

.gsu-family-heading > p {
  margin: 0;
  color: var(--wp--custom--semantic--muted);
}

.gsu-nav-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem var(--wp--preset--spacing--30);
}

.gsu-nav-actions a {
  display: inline-flex;
  align-items: center;
  min-height: var(--wp--custom--academic--control-target);
  font-weight: 700;
}

.gsu-context-navigation {
  padding: .25rem;
  border: 1px solid var(--wp--custom--semantic--border);
  background: var(--wp--custom--semantic--surface-subtle);
}

.gsu-context-navigation ul {
  display: flex;
  flex-wrap: wrap;
  gap: .15rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gsu-context-navigation li {
  min-width: 0;
}

.gsu-context-navigation li a {
  display: flex;
  align-items: center;
  min-height: var(--wp--custom--academic--control-target);
  padding: .45rem .7rem;
  color: var(--wp--preset--color--gsu-blue);
  font-size: var(--wp--custom--academic--navigation-size);
  font-weight: 700;
  line-height: var(--wp--custom--academic--small-line-height);
  text-decoration: none;
}

.gsu-context-navigation li a[aria-current="page"] {
  color: var(--wp--preset--color--gsu-white);
  background: var(--wp--preset--color--gsu-blue);
}

.gsu-context-navigation li a:hover:not([aria-current="page"]) {
  color: var(--wp--preset--color--gsu-blue);
  background: var(--wp--preset--color--gsu-gray);
  text-decoration: underline;
  text-underline-offset: .2em;
}

.gsu-organization-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--30);
  margin-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.gsu-organization-card {
  padding: var(--wp--preset--spacing--30);
  border-left: 3px solid var(--wp--preset--color--gsu-coolblue);
}

.gsu-organization-card h2,
.gsu-organization-card h3 {
  margin: 0 0 .25rem;
  font-size: 1.0625rem;
}

.gsu-organization-card p {
  margin-block: .25rem;
  font-size: .9375rem;
}

.gsu-organization-card a {
  display: inline-flex;
  align-items: center;
  min-height: var(--wp--custom--academic--control-target);
  font-weight: 700;
}

.gsu-program-list {
  display: grid;
  gap: 0;
  margin: var(--wp--preset--spacing--30) 0;
  padding: 0;
  border-top: 1px solid var(--wp--custom--semantic--border);
  list-style: none;
}

.gsu-program-list > li {
  padding: var(--wp--preset--spacing--30);
  border-top: 0;
  border-right: 0;
  border-left: 0;
  background: transparent;
}

.gsu-program-list > li + li {
  border-top: 1px solid var(--wp--custom--semantic--border);
}

.gsu-program-title {
  margin: 0 0 .15rem;
  font-size: 1.0625rem;
}

.gsu-program-title a {
  color: var(--wp--preset--color--gsu-blue);
  text-decoration-thickness: .08em;
}

.gsu-program-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .2rem 1rem;
  margin: .35rem 0 0;
  font-size: var(--wp--custom--academic--label-size);
  line-height: var(--wp--custom--academic--small-line-height);
}

.gsu-program-meta > div {
  display: flex;
  flex-wrap: wrap;
  gap: .2rem .4rem;
  min-width: 0;
}

.gsu-program-meta dt {
  color: var(--wp--custom--semantic--muted);
  font-weight: 700;
}

.gsu-program-meta dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.gsu-program-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: var(--wp--preset--spacing--30);
  margin-block: var(--wp--preset--spacing--30);
  padding: var(--wp--preset--spacing--30);
  border: 1px solid var(--wp--custom--semantic--border);
  background: var(--wp--custom--semantic--surface-subtle);
}

.gsu-program-filters label {
  display: grid;
  gap: .2rem;
  min-width: min(100%, 12rem);
  color: var(--wp--preset--color--gsu-blue-steel);
  font-size: var(--wp--custom--academic--label-size);
  font-weight: 700;
}

.gsu-program-filters select {
  width: 100%;
  min-width: 0;
  min-height: var(--wp--custom--academic--control-target);
  padding: .45rem 2rem .45rem .65rem;
  border: 1px solid var(--wp--custom--semantic--border);
  border-radius: var(--wp--custom--button--radius);
  color: var(--wp--preset--color--gsu-blue-steel);
  background-color: var(--wp--custom--semantic--surface);
  font: inherit;
}

.gsu-program-filters button,
.gsu-navigation-page button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--wp--custom--button--min-height);
  max-width: 100%;
  padding-inline: var(--wp--custom--button--horizontal-padding);
  border: 1px solid var(--wp--preset--color--gsu-blue);
  border-radius: var(--wp--custom--button--radius);
  color: var(--wp--preset--color--gsu-white);
  background: var(--wp--preset--color--gsu-blue);
  font: inherit;
  font-weight: 700;
  text-align: center;
  cursor: pointer;
}

.gsu-program-filters button:hover,
.gsu-navigation-page button[type="submit"]:hover {
  color: var(--wp--preset--color--gsu-white);
  background: var(--wp--preset--color--gsu-blue-steel);
}

.gsu-alpha-navigation {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
  margin-block: var(--wp--preset--spacing--30);
}

.gsu-alpha-navigation a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: var(--wp--custom--academic--control-target);
  min-height: var(--wp--custom--academic--control-target);
  padding-inline: .45rem;
  border: 1px solid var(--wp--custom--semantic--border);
  color: var(--wp--preset--color--gsu-blue);
  font-weight: 700;
  text-decoration: none;
}

.gsu-alpha-navigation a:hover {
  border-color: var(--wp--preset--color--gsu-blue);
  color: var(--wp--preset--color--gsu-white);
  background: var(--wp--preset--color--gsu-blue);
}

.gsu-navigation-empty,
.gsu-organizational-context,
.gsu-tree-warning,
.gsu-history-placeholder {
  margin-block: var(--wp--preset--spacing--30);
  padding: var(--wp--preset--spacing--30);
}

.gsu-navigation-empty {
  border-left: 4px solid var(--wp--preset--color--gsu-coolblue);
  background: var(--wp--custom--semantic--surface-subtle);
}

.gsu-organizational-context {
  border-left: 4px solid var(--wp--preset--color--gsu-coolblue);
}

.gsu-tree-warning {
  border-left: 4px solid var(--wp--custom--semantic--warning);
  background: var(--wp--custom--semantic--surface-subtle);
}

.gsu-history-placeholder {
  border-style: dashed;
  color: var(--wp--custom--semantic--muted);
  background: var(--wp--custom--semantic--surface-subtle);
}

.gsu-breadcrumb {
  color: var(--wp--custom--semantic--muted);
  font-size: var(--wp--custom--academic--label-size);
  line-height: var(--wp--custom--academic--small-line-height);
}

.gsu-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .2rem .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gsu-breadcrumb li {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  overflow-wrap: anywhere;
}

.gsu-breadcrumb li + li::before {
  content: "›";
  margin-inline-end: .5rem;
  color: var(--wp--custom--semantic--muted);
  font-weight: 700;
}

.gsu-breadcrumb a {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  font-weight: 700;
}

@media (max-width: 767px) {
  .gsu-navigation-page {
    width: 100%;
    padding-inline: var(--wp--preset--spacing--30);
  }

  .gsu-family-grid,
  .gsu-organization-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .gsu-family-grid,
  .gsu-organization-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .gsu-family-entry,
  .gsu-organization-card,
  .gsu-catalog-home,
  .gsu-navigation-empty,
  .gsu-organizational-context,
  .gsu-tree-warning,
  .gsu-history-placeholder {
    padding: var(--wp--preset--spacing--30);
  }

  .gsu-program-filters {
    align-items: stretch;
  }

  .gsu-program-filters label,
  .gsu-program-filters button {
    width: 100%;
  }

  .gsu-context-navigation ul {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
  }
}

@media print {
  .gsu-navigation-page .gsu-context-navigation,
  .gsu-navigation-page .gsu-program-filters,
  .gsu-navigation-page .gsu-alpha-navigation {
    display: none !important;
  }

  .gsu-navigation-page {
    width: 100%;
    padding: 0;
  }

  .gsu-family-entry,
  .gsu-organization-card,
  .gsu-program-list > li {
    break-inside: avoid;
  }
}
