/* /all-courses: course catalog. Builds on services-redesign.css (.fsv tokens,
   hero, buttons); classes here are prefixed fc-. */
.fc-hero .fsv-wrap { padding-top: 24px; padding-bottom: 36px; }
.fc-hero h1 { font-size: 40px; line-height: 1.1; margin-bottom: 14px; }
.fc-hero .fsv-lead { margin-bottom: 20px !important; }
.fc-browse .fsv-wrap { padding-top: 32px; }
.fc-browse .fsv-section-title { font-size: 30px; margin-bottom: 18px !important; }
.fc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Search and subject buttons */
.fc-tools { display: flex; flex-direction: column; gap: 14px; margin-bottom: 24px; }
.fc-search { display: flex; flex-direction: column; gap: 6px; max-width: 460px; }
.fc-search label { font-weight: 700; font-size: 15px; color: #403770; }
.fc-search input {
  font: inherit; font-size: 16px; min-height: 48px; padding: 0 16px; border: 1px solid rgba(64,55,112,0.5); border-radius: 12px;
  background: #FFFCFA; color: #403770;
}
.fc-search input:focus-visible { outline: 3px solid var(--fsv-coral); outline-offset: 2px; }
.fc-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.fc-chip {
  font: inherit; font-weight: 600; font-size: 14px; min-height: 40px; padding: 0 14px; border-radius: 999px;
  border: 1px solid rgba(64,55,112,0.24); background: #FFFCFA; color: #403770; cursor: pointer;
}
.fc-chip:hover { background: rgba(64,55,112,0.12); }
.fc-chip[aria-pressed="true"] { background: #403770; border-color: var(--fsv-plum-2); color: #FFFCFA; }
.fc-chip:focus-visible { outline: 3px solid var(--fsv-coral); outline-offset: 2px; }
.fc-status { font-size: 15px; color: #403770; min-height: 1.4em; }

/* Course cards */
/* Equal-width columns that pack cards of different heights without gaps. */
.fc-grid { columns: 3 300px; column-gap: 20px; }
.fc-card { display: block; break-inside: avoid; margin: 0 0 20px; background: #FFFCFA; border: 1px solid var(--fsv-line); border-radius: 22px; padding: 22px 24px; }
.fc-card[hidden] { display: none; }
.fc-card h3 { font-size: 24px; line-height: 1.2; margin-bottom: 4px; }
.fc-note { font-size: 15px; color: #403770; }
.fc-list { margin-top: 10px !important; }
.fc-course { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--fsv-line); font-size: 16px; }
.fc-course:first-child { border-top: 0; }
.fc-tags { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; flex: none; }
.fc-tag { font-size: 12px; font-weight: 700; line-height: 1; padding: 5px 8px; border-radius: 999px; background: rgba(196,231,230,0.32); color: #403770; white-space: nowrap; }
.fc-service { margin-top: 12px !important; font-size: 15px; font-weight: 700; }
.fc-empty { margin-top: 16px !important; font-size: 17px; color: #403770; }
.fc-empty a { font-weight: 700; }

@media (min-width: 701px) {
  /* Laptops: wider intro and tighter hero so search and subject buttons show
     on the first screen (checked at 1190 x 650). */
  .fc-hero .fsv-wrap { padding-top: 16px; padding-bottom: 22px; }
  .fc-hero .fsv-crumbs ol { margin-bottom: 18px; }
  .fc-hero h1 { margin-bottom: 10px; }
  .fc-hero .fsv-lead { max-width: 960px; margin-bottom: 14px !important; }
  .fc-browse .fsv-wrap { padding-top: 22px; }
  .fc-browse .fsv-section-title { margin-bottom: 10px !important; }
  .fc-tools { gap: 10px; }
}

@media (max-width: 700px) {
  .fc-hero h1 { font-size: 34px; }
  .fc-grid { columns: 1; }
  .fc-search { max-width: none; }
}

/* fullmind-local-fallbacks */
.menu-lottie {
  display: block;
  width: 24px;
  height: 18px;
  background: linear-gradient(to bottom, #403770 0 2px, transparent 2px 8px, #403770 8px 10px, transparent 10px 16px, #403770 16px 18px);
}

@media (max-width: 991px) {
  .nav-menu.w-nav {
    overflow: visible;
  }

  .nav-menu-links.w-nav-menu.w--nav-menu-open {
    float: none;
    position: absolute;
    z-index: 999;
    top: 100%;
    right: 0;
    left: 0;
    width: 100%;
    max-width: none;
    max-height: calc(100dvh - 120px);
  }
}
