@charset "UTF-8";
/*
 * Copyright (C) 2013 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/*
 * Copyright (C) 2014 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/*
 * Copyright (C) 2014 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/*
 * Copyright (C) 2014 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/* Legacy variables. Discontinue to use these: */
/* restored to 24 so items don't squish */
/* reduced from 4.5rem to match UNIK nav style */
/*
 * Copyright (C) 2015 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/**
 * Convert font-size from px to rem with px fallback
 * @param $size - the value in pixel you want to convert
 * e.g. p {@include fontSize(12px);}
 * courtesy of https://github.com/stubbornella/oocss/blob/master/oocss/src/components/utils/_fontSize.scss
 */
/*
 * Copyright (C) 2017 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/*
 * Copyright (C) 2015 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/*
 * Copyright (C) 2014 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/*
 * Copyright (C) 2014 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/*
 * Copyright (C) 2014 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/* Legacy variables. Discontinue to use these: */
/* restored to 24 so items don't squish */
/* reduced from 4.5rem to match UNIK nav style */
/*
 * Copyright (C) 2015 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/*
 * Copyright (C) 2012 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/*
 * Copyright (C) 2015 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/*
 * Copyright (C) 2015 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
/**
 * Convert font-size from px to rem with px fallback
 * @param $size - the value in pixel you want to convert
 * e.g. p {@include fontSize(12px);}
 * courtesy of https://github.com/stubbornella/oocss/blob/master/oocss/src/components/utils/_fontSize.scss
 */
/*
 * Copyright (C) 2026 - present Instructure, Inc.
 *
 * This file is part of Canvas.
 *
 * Canvas is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Affero General Public License as published by the Free
 * Software Foundation, version 3 of the License.
 *
 * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
 * details.
 *
 * You should have received a copy of the GNU Affero General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */
:root {
  --phase1-shell-bg: #002060;
  --phase1-shell-surface: #002d7a;
  --phase1-shell-surface-strong: #003a9e;
  --phase1-shell-border: rgba(255, 255, 255, 0.14);
  --phase1-shell-text: #eaf1ff;
  --phase1-shell-text-muted: rgba(234, 241, 255, 0.72);
  --phase1-accent: #F5A623;
  --phase1-accent-strong: #e08e00;
  --phase1-accent-soft: rgba(245, 166, 35, 0.18);
  --phase1-canvas: #f5f3ee;
  --phase1-surface: rgba(255, 255, 255, 0.94);
  --phase1-surface-strong: #ffffff;
  --phase1-surface-muted: #edeae4;
  --phase1-border: rgba(0, 48, 135, 0.1);
  --phase1-text: #1a2b3c;
  --phase1-text-muted: #5a6a7a;
  --phase1-shadow-soft: 0 16px 40px rgba(0, 20, 70, 0.12);
  --phase1-shadow-raised: 0 20px 48px rgba(0, 20, 70, 0.18);
  --phase1-shadow-floating: 0 24px 56px rgba(0, 20, 70, 0.26);
  --phase1-radius-sm: 0.875rem;
  --phase1-radius-md: 1.25rem;
  --phase1-radius-lg: 1.75rem;
  --phase1-transition-fast: 140ms cubic-bezier(0.2, 0.8, 0.2, 1);
  --phase1-transition-base: 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
  --phase1-transition-slow: 320ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

body {
  background: radial-gradient(circle at top right, rgba(245, 166, 35, 0.07), transparent 28rem), linear-gradient(180deg, #faf9f6 0%, #f5f3ee 100%);
  color: #1a2b3c;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}
/* ─────────────────────────────────────────────────
   InstUI TextInput / SimpleSelect focus reset

   These controls render a facade around the real input and draw focus on that
   facade. Keep the facade ring, but prevent the child input or focused facade
   border from adding the "input inside another input" effect.
───────────────────────────────────────────────── */
[class*=textInput__facade]:focus-within {
  border-color: transparent !important;
}
[class*=textInput__facade] input[class*=textInput],
[class*=textInput__facade] input[class*=textInput]:focus,
[class*=textInput__facade] input[class*=textInput]:focus-visible {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  outline: none !important;
}

/* ─────────────────────────────────────────────────
   PAGE WRAPPER
───────────────────────────────────────────────── */
.all_courses_page {
  padding: 0 0 3rem;
  background: #f4f6fa;
  min-height: 100vh;
}

/* ─────────────────────────────────────────────────
   HERO BANNER
───────────────────────────────────────────────── */
.all_courses_hero {
  position: relative;
  background: linear-gradient(135deg, #001440 0%, #002d80 55%, #0040b0 100%);
  padding: 2.5rem 2.5rem 5.5rem;
  overflow: hidden;
  z-index: 1;
}
.all_courses_hero::before {
  content: "";
  position: absolute;
  top: -4rem;
  right: -4rem;
  width: 22rem;
  height: 22rem;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(245, 166, 35, 0.18) 0%, transparent 70%);
  pointer-events: none;
}
.all_courses_hero::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3.5rem;
  background: #f4f6fa;
  clip-path: ellipse(55% 100% at 50% 100%);
}

.all_courses_hero__copy {
  position: relative;
  z-index: 2;
  max-width: 48rem;
}

.all_courses_eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.75rem;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  background: rgba(245, 166, 35, 0.18);
  border: 1px solid rgba(245, 166, 35, 0.35);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #F5A623;
}

.all_courses_hero__copy h1 {
  margin: 0 0 0.6rem;
  font-size: 2.4rem;
  font-weight: 800;
  line-height: 1.15;
  color: #fff;
  letter-spacing: -0.02em;
}

.all_courses_hero__summary {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.72);
  max-width: 38rem;
}

/* ─────────────────────────────────────────────────
   SEARCH FORM (centred hero search)
───────────────────────────────────────────────── */
.all_courses_search_form {
  position: relative;
  z-index: 10;
  margin-top: 2.25rem;
  max-width: 52rem;
}

.all_courses_search_row {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.all_courses_search_field {
  position: relative;
  display: flex;
  align-items: center;
  border-radius: 1rem;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12), 0 8px 32px rgba(0, 15, 60, 0.35);
  transition: box-shadow 250ms;
}
.all_courses_search_field:focus-within {
  box-shadow: 0 0 0 1px rgba(245, 166, 35, 0.6), 0 0 0 5px rgba(245, 166, 35, 0.18), 0 8px 32px rgba(0, 15, 60, 0.4);
}

.all_courses_search_icon {
  position: absolute;
  left: 1.1rem;
  width: 1.3rem;
  height: 1.3rem;
  color: #5a7ab5;
  pointer-events: none;
  flex-shrink: 0;
  z-index: 1;
  transition: color 200ms;
}
.all_courses_search_field:focus-within .all_courses_search_icon {
  color: #F5A623;
}

.all_courses_search_input {
  width: 100%;
  height: 3.5rem;
  padding: 0 3.5rem 0 3.25rem;
  border: none;
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.97);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  font-size: 1.05rem;
  font-weight: 500;
  color: #1a2b3c;
  outline: none;
  letter-spacing: 0.01em;
}
.all_courses_search_input::placeholder {
  color: #8a9ab5;
  font-weight: 400;
}
.all_courses_search_input::-webkit-search-cancel-button {
  -webkit-appearance: none;
}

.all_courses_search_spinner {
  position: absolute;
  right: 1rem;
  width: 1.2rem;
  height: 1.2rem;
  border-radius: 50%;
  border: 2.5px solid rgba(0, 48, 135, 0.18);
  border-top-color: #F5A623;
  opacity: 0;
  transition: opacity 200ms;
  flex-shrink: 0;
}
.all_courses_search_spinner.is-spinning {
  opacity: 1;
  animation: catalog-spin 0.65s linear infinite;
}

@keyframes catalog-spin {
  to {
    transform: rotate(360deg);
  }
}
/* ─────────────────────────────────────────────────
   FILTER PILLS (below search bar)
───────────────────────────────────────────────── */
.all_courses_filter_pills {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.all_courses_pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.45rem 0.95rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  border: 1.5px solid rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  -webkit-user-select: none;
          user-select: none;
  transition: background 150ms, border-color 150ms, color 150ms, transform 150ms, box-shadow 150ms;
}
.all_courses_pill svg {
  width: 0.85rem;
  height: 0.85rem;
  flex-shrink: 0;
}
.all_courses_pill input[type=checkbox] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}
.all_courses_pill:hover {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
  transform: translateY(-1px);
}
.all_courses_pill.is-active {
  background: #F5A623;
  border-color: #F5A623;
  color: #001440;
  box-shadow: 0 0 0 3px rgba(245, 166, 35, 0.3);
}

/* ─────────────────────────────────────────────────
   BODY / LAYOUT
───────────────────────────────────────────────── */
.all_courses_body {
  position: relative;
  z-index: 2;
  margin-top: -2.5rem;
  padding: 0 1.5rem;
}

.all_courses_layout {
  display: block;
}

.all_courses_layout.has_tree {
  display: grid;
  grid-template-columns: minmax(14rem, 17rem) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}

/* ─────────────────────────────────────────────────
   CATALOG TREE SIDEBAR
───────────────────────────────────────────────── */
.catalog_tree_panel {
  background: #fff;
  border-radius: 1rem;
  box-shadow: 0 4px 24px rgba(0, 30, 80, 0.07);
  border: 1px solid rgba(0, 48, 135, 0.09);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 1rem;
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

.catalog_tree_panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1rem 0.75rem;
  border-bottom: 1px solid rgba(0, 48, 135, 0.07);
}

.catalog_tree_panel__title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #003087;
}
.catalog_tree_panel__title svg {
  width: 1rem;
  height: 1rem;
  color: #F5A623;
  flex-shrink: 0;
}

.catalog_tree_collapse_btn {
  width: 1.85rem;
  height: 1.85rem;
  border: 1px solid rgba(0, 48, 135, 0.12);
  border-radius: 0.5rem;
  background: rgba(0, 48, 135, 0.04);
  color: #5a6a7a;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 150ms, color 150ms;
  padding: 0;
}
.catalog_tree_collapse_btn svg {
  width: 0.85rem;
  height: 0.85rem;
}
.catalog_tree_collapse_btn:hover {
  background: rgba(0, 48, 135, 0.1);
  color: #003087;
}

.catalog_tree_search_wrap {
  position: relative;
  display: flex;
  align-items: center;
  margin: 0.75rem 1rem;
}
.catalog_tree_search_wrap svg {
  position: absolute;
  left: 0.65rem;
  width: 0.85rem;
  height: 0.85rem;
  color: #8a9ab5;
  pointer-events: none;
}

.catalog_tree_search_input {
  width: 100%;
  height: 2.2rem;
  padding: 0 0.75rem 0 2.1rem;
  border: 1px solid rgba(0, 48, 135, 0.14);
  border-radius: 0.5rem;
  background: rgba(0, 48, 135, 0.03);
  font-size: 0.82rem;
  color: #1a2b3c;
  outline: none;
  transition: border-color 150ms, background 150ms;
  box-sizing: border-box;
  max-width: 100%;
}
.catalog_tree_search_input::placeholder {
  color: #8a9ab5;
}
.catalog_tree_search_input:focus {
  border-color: rgba(245, 166, 35, 0.5);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(245, 166, 35, 0.15);
}

.catalog_tree_scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding: 0.5rem 0.75rem 1rem;
}
.catalog_tree_scroll::-webkit-scrollbar {
  width: 4px;
}
.catalog_tree_scroll::-webkit-scrollbar-track {
  background: transparent;
}
.catalog_tree_scroll::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(0, 48, 135, 0.14);
}

.catalog_tree_list,
.catalog_tree_children {
  margin: 0;
  padding: 0;
  list-style: none;
}

.catalog_tree_node + .catalog_tree_node {
  margin-top: 1px;
}

.catalog_tree_children {
  margin-left: 0.5rem;
  margin-top: 1px;
}

.catalog_tree_row {
  --catalog-tree-indent: calc(var(--catalog-tree-depth, 0) * 0.6rem);
  display: flex;
  align-items: center;
  min-width: 0;
  padding-left: var(--catalog-tree-indent);
  border-radius: 0.5rem;
  border: 1px solid transparent;
  background: transparent;
  transition: background 150ms, border-color 150ms;
}
.catalog_tree_row:hover {
  background: rgba(0, 48, 135, 0.05);
  border-color: rgba(0, 48, 135, 0.1);
}
.catalog_tree_row.is-selected {
  background: linear-gradient(90deg, rgba(245, 166, 35, 0.12), rgba(245, 166, 35, 0.02));
  border-color: rgba(245, 166, 35, 0.35);
  box-shadow: inset 3px 0 0 #F5A623;
}

.catalog_tree_toggle,
.catalog_tree_toggle_spacer {
  width: 1.5rem;
  min-width: 1.5rem;
  height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #8a9ab5;
}

.catalog_tree_toggle {
  border: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 0.375rem;
  padding: 0;
  transition: color 150ms, background 150ms;
  flex-shrink: 0;
}
.catalog_tree_toggle svg {
  width: 0.85rem;
  height: 0.85rem;
  transition: transform 200ms ease;
}
.catalog_tree_toggle:hover {
  color: #003087;
  background: rgba(0, 48, 135, 0.08);
}

.catalog_tree_select {
  border: 0;
  background: transparent;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  padding: 0.35rem 0.5rem 0.35rem 0.15rem;
  min-width: 0;
  text-align: left;
  cursor: pointer;
  color: #1a2b3c;
  text-decoration: none;
}
.catalog_tree_select:focus-visible {
  outline: 2px solid #F5A623;
  outline-offset: 2px;
  border-radius: 0.375rem;
}

.catalog_tree_name_wrap {
  min-width: 0;
}

.catalog_tree_name {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.82rem;
  font-weight: 600;
  color: #1a2b3c;
}

.catalog_tree_count {
  flex-shrink: 0;
  min-width: 1.4rem;
  height: 1.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: rgba(0, 48, 135, 0.08);
  color: #003087;
  font-size: 0.68rem;
  font-weight: 700;
}

/* ─────────────────────────────────────────────────
   RESULTS HEADER
───────────────────────────────────────────────── */
.all_courses_results_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
  background: #fff;
  border-radius: 0.875rem;
  border: 1px solid rgba(0, 48, 135, 0.07);
  box-shadow: 0 2px 8px rgba(0, 30, 80, 0.04);
}

.all_courses_results_header__eyebrow {
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8a9ab5;
}

.all_courses_results_header__title {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
  color: #1a2b3c;
  line-height: 1.1;
}

.all_courses_results_header__count {
  margin: 0;
  padding: 0.4rem 0.85rem;
  border-radius: 999px;
  background: rgba(245, 166, 35, 0.14);
  color: #003087;
  font-weight: 700;
  font-size: 0.85rem;
  white-space: nowrap;
  border: 1px solid rgba(245, 166, 35, 0.25);
}

/* ─────────────────────────────────────────────────
   COURSE GRID
───────────────────────────────────────────────── */
#course_summaries {
  margin: 0;
  padding: 0;
  list-style: none;
}

.all_courses_results_grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr));
  gap: 1rem;
}

.course_summary {
  display: flex;
  flex-direction: column;
  min-height: 13rem;
  overflow: hidden;
  margin: 0;
  position: relative;
  background: #fff;
  border: 1px solid rgba(0, 48, 135, 0.09);
  border-radius: 14px;
  box-shadow: 0 2px 12px rgba(0, 30, 80, 0.05);
  transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
}
.course_summary:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 30px rgba(0, 30, 80, 0.1);
}

.course_text {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  padding: 1rem 1rem 0.85rem;
  color: #1a2b3c;
  background: linear-gradient(180deg, #fff 70%, rgba(246, 246, 250, 0.6) 100%);
}
.course_text::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--course-accent, #F5A623);
  border-radius: 14px 14px 0 0;
}

.course_summary__eyebrow {
  margin: 0 0 0.5rem;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #8a9ab5;
}

.course_summary h3 {
  margin: 0;
  padding: 0;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  background: transparent !important;
  border: 0 !important;
  color: #1a2b3c;
}
.course_summary h3 a {
  color: #1a2b3c;
  text-decoration: none;
}
.course_summary h3 a:hover {
  color: #003087;
}

.course_summary__description {
  margin: 0.55rem 0 0.75rem;
  padding: 0 !important;
  font-size: 0.82rem;
  color: #5a6a7a;
  line-height: 1.55;
  flex: 1 1 auto;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
}

.course_summary__action {
  margin: 0;
  padding-top: 0.5rem;
}

.course_enrollment_link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.85rem;
  border: 0;
  border-radius: 999px;
  background: #003087;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  transition: background 150ms, transform 150ms;
  text-decoration: none;
}
.course_enrollment_link:hover {
  background: #7B0020;
  color: #fff;
  text-decoration: none;
  transform: scale(1.03);
}

/* ─────────────────────────────────────────────────
   EMPTY STATE
───────────────────────────────────────────────── */
.not_found {
  display: grid;
  gap: 1rem;
  justify-items: center;
  text-align: center;
  padding: 3rem 1.5rem;
  background: #fff;
  border-radius: 1rem;
  border: 1px solid rgba(0, 48, 135, 0.07);
  box-shadow: 0 2px 12px rgba(0, 30, 80, 0.04);
}
.not_found__heading {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1a2b3c;
}

/* ─────────────────────────────────────────────────
   PAGINATION
───────────────────────────────────────────────── */
.all_courses_pagination {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.5rem;
}

.all_courses_pagination__link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.65rem 1.25rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(0, 48, 135, 0.12);
  color: #003087;
  font-weight: 700;
  font-size: 0.85rem;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0, 30, 80, 0.05);
  transition: background 150ms, transform 150ms, box-shadow 150ms;
}
.all_courses_pagination__link:hover {
  background: rgba(0, 48, 135, 0.06);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 30, 80, 0.1);
}

/* ─────────────────────────────────────────────────
   RESPONSIVE
───────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .all_courses_layout.has_tree {
    grid-template-columns: 1fr;
  }

  .catalog_tree_panel {
    position: static;
    max-height: none;
  }
}
@media (max-width: 768px) {
  .all_courses_hero {
    padding: 2rem 1.25rem 5rem;
  }

  .all_courses_hero__copy h1 {
    font-size: 1.8rem;
  }

  .all_courses_body {
    padding: 0 0.75rem;
  }

  .all_courses_search_row {
    flex-direction: column;
    align-items: stretch;
  }

  .all_courses_filter_pills {
    justify-content: center;
  }

  .all_courses_results_header {
    flex-direction: column;
    align-items: flex-start;
  }

  .all_courses_pagination {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }
}