/* Comments follow this hierarchy */
/* Module */
/*========*/
/* Component */
/*-----------*/
/* Component Info */

/*===============*/
/* Overview Card */
/*===============*/
/* Card Container */
.course-overview-card {
  background-color: #fff !important;
  padding: 0 24px 50px !important;
  border-radius: 12px;
  box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
  margin-bottom: 32px;
}

/* Card Header */
.course-overview-card h3 {
  background-color: var(--color-1);
  color: #fff;
  padding: 12px;
  margin: -24px -24px 16px -24px; /* Aligns header with card */
  border-radius: 12px 12px 0 0;
  font-size: 24px;
  text-align: center;
}

/* Info Layout */
.course-overview-card .overview-grid {
  display: grid;
  grid-template-columns: auto auto;
  gap: 12px 20px;
}

/* Labels */
.course-overview-card p strong {
  display: block;
  font-weight: bold;
  color: #333;
}

/* Topic Badge */
.course-overview-card .topic-badge {
  background-color: var(--color-1);
  color: #fff;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 14px;
  display: inline-block;
  margin-top: 8px;
}

/*==================*/
/* NLP: Course Card */
/*==================*/
.nlp-course-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
  border-radius: 16px;
  border: 1.5px solid rgba(26, 26, 26, 0.25) !important;
  overflow: hidden;
  color: var(--color-1);
  gap: 16px;
  padding: 0 0 24px 0 !important;
  background: #fff;
  max-width: 400px;
  width: 100%;
  margin: 0 auto;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.nlp-course-card:is(:hover, :focus) {
  transform: scale(1.03);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
}

.nlp-course-card p {
  margin: 0;
  font-weight: 500;
}

.nlp-course-card .nlp-course-image {
  width: 100%;
  height: 170px;
  overflow: hidden;
  margin: 0;
}

.nlp-course-card .nlp-course-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nlp-course-card .nlp-course-title {
  margin-top: 10px;
  font-size: 20px;
  color: #333;
  margin-left: 24px;
  margin-right: 24px;
}

.nlp-course-card .nlp-course-excerpt {
  flex: 1;
  margin: 10px 24px 0 24px;
  overflow: auto;
}

.nlp-course-card .nlp-course-tags {
  margin-bottom: 10px;
  margin-left: 24px;
  margin-right: 24px;
}

.nlp-course-card .nlp-course-cta {
  margin-top: auto;
  margin-left: 24px;
  margin-right: 24px;
}

.nlp-course-card .nlp-course-cta button {
  display: block;
  width: 100%;
  padding: 10px;
  background-color: var(--color-2);
  color: #fff;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  transition: background 0.2s;
}

.nlp-course-card .nlp-course-cta button:is(:hover, :focus) {
  background-color: var(--color-1);
}

.nlp-course-card .nlp-course-link {
  text-decoration: none;
}

.nlp-course-card .nlp-course-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-left: 24px;
  margin-right: 24px;
}

.nlp-course-card .nlp-course-meta strong {
  font-weight: 500;
}

.nlp-course-card .nlp-course-meta .nlp-offering-partner,
.nlp-course-card .nlp-course-meta .nlp-modalities {
  font-weight: 800;
}

.nlp-course-card .nlp-course-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 24px;
}

.nlp-course-card .nlp-category {
  display: inline-block;
  padding: 6px 10px;
  font-size: 14px;
  border-radius: 16px;
  font-weight: 600;
  background-color: #fff;
  color: var(--color-1);
  border: 2px solid var(--color-1);
}

/*===================*/
/* NLP: Facet Filter */
/*===================*/
/* Collapse/Expand Filters */
/*-------------------------*/
.nlp-facet-filter .collapse-filters.current,
.nlp-facet-filter .expand-filters {
  display: inline-block;
  margin-right: 8px;
  margin-bottom: 16px;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

/* Display Results Count */
/*-----------------------*/
.nlp-facet-filter .facetwp-result-count {
  display: inline-block;
}

/* Filter Selection Value Pill */
/*-----------------------------*/
.nlp-facet-filter .facetwp-selections .facetwp-selection-value {
  padding: 6px 12px;
  border-radius: 50px;
  margin: 0;
  background: none;
  background-color: var(--color-2);
  background-image: none;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  transition: ease-in 175ms;
}

.nlp-facet-filter
  .facetwp-selections
  .facetwp-selection-value:is(:hover, :focus) {
  background-color: var(--color-1);
}

/* Filter Selection value Pill Remove (x) Icon */
.nlp-facet-filter .facetwp-selections .facetwp-selection-value::after {
  content: "\f00d";
  font-family: var(--fa-version);
  font-weight: 600;
  margin-left: 12px;
  vertical-align: bottom;
  color: #fff;
}

/* Tooltip */
/*---------*/
.nlp-facet-filter .facet-tooltip {
  display: inline-flex;
  margin-left: 4px;
  font-size: 0;
  vertical-align: top;
  color: #666;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.nlp-facet-filter .facet-tooltip::after {
  content: "\f05a";
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--fa-version);
  font-size: 14px;
  font-weight: 600;
  color: inherit;
  white-space: pre-wrap; /* Preserve whitespace */
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.nlp-facet-filter .facet-tooltip:is(:hover, :focus)::after {
  background-color: #fff;
  color: #111;
}

/* Button */
/*--------*/
.nlp-facet-filter button {
  padding: 8px 30px;
  font-weight: 600;
  border-radius: 8px;
  border: 2px solid var(--color-1);
  color: var(--color-1);
  transition: 175ms ease-in;
}

.nlp-facet-filter button:is(:hover, :focus) {
  border-color: var(--color-1);
  background-color: var(--color-1);
  color: #fff;
}

/* Clear All Filters */
.nlp-facet-filter .facetwp-facet-clear_all_filters {
  width: 100%;
  text-align: left;
  grid-column: 1 / -1;
}

/* Filter Group */
.nlp-facet-filter .facetwp-filters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(auto, 200px));
  gap: 16px;
  max-width: 100%;
  justify-content: center;
  margin: 0 auto 32px;
  align-items: start;
}

/* Filter Dropdown Button */
.nlp-facet-filter .facetwp-filters .facetwp-facet {
  /* flex: 0 1 auto; */
  /* Prevents stretching */
  width: 120px;
  /* Adjust to fit all facets in one row */
  min-width: 120px;
  /* Ensures they don’t collapse */
  padding: 5px;
  margin-right: 10px;
  /* Space between facets */
  width: auto;
  min-width: auto;
  margin: 0;
  padding: 0;
}

.nlp-facet-filter .facetwp-type-fselect .fs-dropdown {
  min-width: 200px !important;
  /* Wider dropdown */
  max-width: 300px !important;
  /* Prevents it from being too wide */
}

.nlp-facet-filter .facetwp-type-search {
  width: 140px;
  padding: 5px;
  margin-left: 10px;
}

.nlp-facet-filter .facet-wrap .facet-label,
.nlp-facet-filter .fs-label-wrap .fs-label {
  font-weight: 600;
  color: #033c5a;
}

.nlp-facet-filter .facetwp-type-fselect .fs-option .fs-option-label {
  color: #033c5a;
}

/* Filter Dropdown Button Wrapper */
.nlp-facet-filter .facetwp-filters .fs-wrap {
  width: auto;
}

/* Filter Dropdown Button Arrow */
.nlp-facet-filter .facetwp-filters .fs-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  border: 0;
  right: 0;
}

.nlp-facet-filter .facetwp-filters .fs-arrow::before {
  content: "\f078";
  font-family: var(--fa-version);
  font-size: 12px;
  font-weight: 600;
  color: #888;
}

/* Filter Dropdown Button Label Wrapper */
.nlp-facet-filter .facetwp-filters .fs-label-wrap {
  border-radius: 6px;
  width: 100%;
}

/* Filter Dropdown Button Label */
.nlp-facet-filter .facetwp-filters .fs-label-wrap .fs-label {
  font-weight: 500;
  padding: 12px 32px 12px 16px;
}

/* Filter Dropdown Menu */
.nlp-facet-filter .facetwp-filters .facetwp-type-fselect .fs-dropdown {
  min-width: 300px !important;
  max-width: 100% !important;
  margin-top: 8px;
  border-radius: 8px;
  border: 1px solid #ddd !important;
}

/* Filter Dropdown Menu Search Bar */
.nlp-facet-filter .facetwp-filters .fs-search {
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  border-bottom: 1px solid #ccc;
  padding: 12px 8px 8px;
  background-color: #fff;
}

/* Filter Dropdown Menu Checkbox */
.nlp-facet-filter .facetwp-filters .fs-wrap.multiple .fs-option .fs-checkbox i {
  margin: 10px auto;
}

/* Filter Dropdown Menu Label */
.nlp-facet-filter
  .facetwp-filters
  .facetwp-type-fselect
  .fs-option
  .fs-option-label {
  white-space: normal;
  word-break: break-word;
  text-align: left;
  line-height: 1.5;
  vertical-align: top;
}

/* Filter Search Bar */
.nlp-facet-filter .facetwp-filters .facetwp-facet-search {
  margin-left: auto;
}

/* Filter Inputs */
.nlp-facet-filter .facetwp-filters .facetwp-facet-search .facetwp-search,
.nlp-facet-filter .facetwp-filters .fs-label-wrap {
  border: 2px solid #4f4f4f;
  height: 40px;
}

.nlp-facet-filter .facetwp-filters .facetwp-facet-search .facetwp-search {
  padding: 12px 32px 12px 16px;
  height: 40px;
  border-radius: 6px;
  width: 100%;
  min-width: auto;
}

/* Filter Search Bar Icon */
.nlp-facet-filter .facetwp-filters .facetwp-facet-search .facetwp-icon::before {
  content: "\f002";
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--fa-version);
  font-style: normal;
  font-weight: 600;
  background: none;
  color: #333;
}

/* Filter Selections List */
.nlp-facet-filter .facetwp-selections {
  grid-column: 1 / -1;
  order: 1;
  width: 100%;
}

.nlp-facet-filter .facetwp-selections ul {
  display: flex;
  gap: 16px;
  padding: 0;
  font-size: 14px;
  margin: 16px 0;
}

.nlp-facet-filter .facetwp-selections li {
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 5px;
  margin: 0;
  line-height: 1.5;
}

/* Filter Selection Category */
.nlp-facet-filter .facetwp-selection-label {
  font-weight: 600;
}

@media (max-width: 1200px) {
  /* Filter Wrappers */
  .nlp-facet-filter .facetwp-filters .facetwp-facet,
  .nlp-facet-filter .facetwp-filters .facet-wrap,
  .nlp-facet-filter .facetwp-filters .fs-wrap,
  .nlp-facet-filter .facetwp-input-wrap,
  .nlp-facet-filter .facetwp-facet .facetwp-search {
    width: 100%;
  }

  /* Filter Group */
  .nlp-facet-filter .facetwp-filters {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: auto;
  }

  /* Filter Dropdown Menu */
  .nlp-facet-filter .facetwp-filters .facetwp-type-fselect .fs-dropdown {
    max-width: 100%;
  }

  /* Filter Search Bar */
  .nlp-facet-filter .facetwp-filters .facetwp-facet-search {
    margin: auto;
  }

  .nlp-facet-filter .facetwp-selections ul {
    flex-direction: column;
  }
}

@media (min-width: 992px) {
  /* NLP Filter Card Results */
  #nlp-course-filter-results {
    gap: 36px;
  }
}

/* Limit to 6 columns max */
@media (min-width: 1200px) {
  .nlp-facet-filter .facetwp-filters {
    grid-template-columns: repeat(6, minmax(auto, 230px));
  }
}

/* Adjust for smaller screens */
@media (max-width: 1199px) {
  .nlp-facet-filter .facetwp-filters {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  }
}

/* Make all facets fill their column evenly */
.nlp-facet-filter .facetwp-filters .facetwp-facet,
.nlp-facet-filter .facetwp-filters .facet-wrap,
.nlp-facet-filter .facetwp-filters .fs-wrap,
.nlp-facet-filter .facetwp-input-wrap {
  width: 100%;
  margin: 0;
  padding: 0;
}

/* Ensure the dropdown and search fill full width of column */
.nlp-facet-filter .facetwp-filters .fs-label-wrap,
.nlp-facet-filter .facetwp-filters .facetwp-facet-search .facetwp-search {
  width: 100%;
  box-sizing: border-box;
}

/* Responsive fallback for smaller screens */
@media (max-width: 1024px) {
  .nlp-facet-filter .facetwp-filters {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  }

  .nlp-facet-filter .facetwp-filters .facetwp-type-fselect .fs-dropdown {
    min-width: auto !important;
  }
}

.nlp-facet-filter .facetwp-filters .fs-wrap {
  width: 100%;
}

/* Make the label wrapper behave */
.nlp-facet-filter .facetwp-filters .fs-label-wrap {
  width: 100%;
  overflow: hidden;
}

/* Make the label itself truncate */
.nlp-facet-filter .facetwp-filters .fs-label-wrap .fs-label {
  display: block;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/*--------*/
/* Slider */
/*--------*/
/* TODO: currently two blocks share the same slider styles - NLP: Courses Related and NLP: Courses
/* Recommend appending a class such as ".nlp-slider" to the container of the blocks */
/* '.nlp-courses' currently wraps:
/* 1. NLP: Courses Facet Block - Course Filter Results Listing... /* 2. NLP: Courses Block - Slider
*/

/* Slider Prev/Next Button */
.nlp-course-related .slick-arrow,
.nlp-courses .slick-arrow {
  width: 35px;
  height: 35px;
  border-radius: 50%;
  border: 1px solid var(--color-2) !important;
  background-color: var(--color-2) !important;
  transition: all 0.2s linear;
}

.nlp-course-related .slick-arrow:is(:hover, :focus),
.nlp-courses .slick-arrow:is(:hover, :focus) {
  background-color: var(--color-5) !important;
  border-color: #333 !important;
}

.nlp-course-related .slick-arrow::before,
.nlp-courses .slick-arrow::before {
  font-size: 14px;
  color: #fff;
}

.nlp-course-related .slick-arrow:is(:hover, :focus)::before,
.nlp-courses .slick-arrow:is(:hover, :focus)::before {
  color: #333;
}

/* Slider Prev Button Position */
.nlp-course-related .slick-prev,
.nlp-courses .slick-prev {
  left: -32px;
}

/* Slider Next Button Position */
.nlp-course-related .slick-next,
.nlp-courses .slick-next {
  right: -32px;
}

.nlp-course-related .slick-slide,
.nlp-courses .slick-slide {
  display: flex !important;
  justify-content: center !important;
  padding: 16px;
}

/* Slider Dots Container */
.nlp-course-related .slick-dots,
.nlp-courses .slick-dots {
  bottom: -35px;
}

/* Slider Dots Button Container Size */
.nlp-course-related .slick-dots :is(li, li button),
.nlp-courses .slick-dots :is(li, li button),
.nlp-course-related .slick-dots li button::before,
.nlp-courses .slick-dots li button::before {
  width: 12px;
  height: 12px;
}

.nlp-course-related .slick-dots li,
.nlp-courses .slick-dots li {
  margin: 0 4px;
}

/* Slider Dots Button Size */
.nlp-course-related .slick-dots li button::before,
.nlp-courses .slick-dots li button::before {
  font-size: 12px;
  transition: ease-out 0.2s;
}

/* ??? */
/*=========================*/
/* MAIN COURSE CARD STYLES */
/*=========================*/
.course-card {
  background: #fff;
  border-radius: 16px;
  box-shadow: 2px 2px 12px rgba(0, 0, 0, 0.15);
  width: 100%;
  max-width: 400px;
  height: 360px; /* Fixed height */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  font-family: Helvetica, Arial, sans-serif;
  border: 1px solid #ddd;
  margin: 0 auto;
  overflow: hidden;
}

/* Image Header */
.course-card img {
  width: 100%;
  height: 160px;
  object-fit: cover;
  border-top-left-radius: 16px;
  border-top-right-radius: 16px;
}

/* Card Content */
.course-card-content {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  padding: 20px;
}

/* Course Title */
.course-card h3 {
  font-size: 22.4px;
  font-weight: bold;
  color: var(--color-1);
  margin-bottom: 10px;
}

/* Course Details */
.course-card p {
  font-size: 16px;
  color: #333;
  margin: 5px 0;
}

.course-card p strong {
  font-weight: bold;
  color: #000;
}

/* Course Description */
.course-card .description {
  font-size: 16px;
  line-height: 1.5;
  color: #333;
  margin-top: 10px;
}
