:root {
  --featured-search-container-width: 680px;
}

#featured .site-label {
  color: rgba(255, 255, 255, .75);
  font-size: .85rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

#featured h1 {
  color: #fff;
  font-size: 2rem;
  margin: 0 0 1.5rem;
}

#search-wrap {
  max-width: 680px;
  margin: 0 auto 1.6rem;
}

/* search box */
#id_q {
  border: none;
  padding: .85rem 7rem .85rem 1.5rem;
  font-size: 1rem;
  box-shadow: 0 4px 24px rgba(0, 0, 0, .18);
  width: 100%;
}

#id_q:focus {
  outline: 0;
  box-shadow: 0 0 0 3px rgba(141, 200, 236, .6), 0 4px 24px rgba(0, 0, 0, .18);
}

#search-btn {
  right: .35rem;
  top: 50%;
  transform: translateY(-50%);
  padding: .5rem 1.3rem;
  font-size: .9rem;
  background: var(--secondary);
  color: #fff;
  border: none;
  transition: background .15s;
}

#search-btn:hover {
  background: #0a4a8a;
}

#filters {
  max-width: 680px;
}

/* quick search terms */
.quick-term {
  font-size: 0.9rem;
  height: 2.0rem;
  white-space: nowrap;
  padding: .3rem .85rem;
  background: rgba(255, 255, 255, .08);
  transition: background .15s;
  flex-shrink: 0;
  /* prevents focus rings from being clipped by overflow hidden */
  margin: 3px 0 3px;
}

.quick-term:first-of-type {
  /* prevents focus rings from being clipped by overflow hidden */
  margin-left: 3px;
}

.quick-term:hover {
  background: rgba(255, 255, 255, .15);
}

.quick-term.quick-term--clipped {
  visibility: hidden;
  pointer-events: none;
}

#quick-terms-overflow {
  overflow: auto;
  gap: .5rem;
  scrollbar-width: none;
  transition: height 0.15s ease-in-out;
}

.overflow-mask-left {
  mask-image: linear-gradient(to left, black calc(100% - 1.5rem), transparent 100%);
}

.overflow-mask-right {
  mask-image: linear-gradient(to right, black calc(100% - 1.5rem), transparent 100%);
}

.overflow-mask-both {
  mask:
    linear-gradient(to right, black calc(100% - 1.5rem), transparent 100%),
    linear-gradient(to left, black calc(100% - 1.5rem), transparent 100%);
  mask-composite: intersect;
}

.overflow-mask-both {
  mask-image: linear-gradient(to left, black calc(100% - 1.5rem), transparent 100%), linear-gradient(to right, black calc(100% - 1.5rem), transparent 100%);
}

#quick-terms-overflow input[name="quick_terms"]:checked+label {
  --bs-border-opacity: 0.4;
  box-shadow: 0 0 0px 1px rgba(255, 255, 255, 0.5);
}

/* Filter toggle button */

.filter-toggle-btn {
  flex-shrink: 0;
  font-size: .9rem;
  height: 2.0rem;
  padding: .3rem .9rem;
  background: rgba(255, 255, 255, .08);
  transition: width 0.15s ease-in-out, background .15s;
  white-space: nowrap;
}

.filter-toggle-btn:not(.collapsed),
.filter-toggle-btn:hover {
  background: rgba(255, 255, 255, .15);
  --bs-border-opacity: 0.4;
  box-shadow: 0 0 0px 1px rgba(255, 255, 255, 0.5);
}

.filter-toggle-btn .bi {
  transition: transform .25s;
}

.filter-toggle-btn.collapsed .bi-chevron-up::before {
  transform: rotate(180deg);
}

/* filter drawer */
#filter-forms {
  max-width: 680px;
}

#filter-forms .btn-close {
  width: .5rem;
  height: .5rem;
  --bs-btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'><path d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/></svg>");
}

.collapsed-filters {
  background: linear-gradient(to top, rgb(47 138 195 / 50%) calc(100% - 1.5rem), transparent 95%);
  backdrop-filter: blur(10px);
  box-shadow: 0px 15px 15px -3px rgba(0, 0, 0, .15);
}

.collapsed-filters .form-check-input,
.collapsed-filters .form-check-label {
  cursor: pointer;
}

.collapsed-filters .form-check-input:not(:checked) {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e");
}

.collapsed-filters .form-switch .form-check-input {
  background-color: rgba(255, 255, 255, .1);
}

.collapsed-filters .form-switch .form-check-input:checked {
  background-color: rgba(255, 255, 255, .4);
  border-color: var(--secondary);
}

.collapsed-filters:has(.form-switch .form-check-input:checked) #calendar-range {
  display: block;
}

.collapsed-filters:has(.form-switch .form-check-input:checked) #calendar-exact {
  display: none;
}

.collapsed-filters:has(.form-switch .form-check-input:not(:checked)) #calendar-exact {
  display: block;
}

.collapsed-filters:has(.form-switch .form-check-input:not(:checked)) #calendar-range {
  display: none;
}


/* expand */

#expand #expand-toggle+#expand-btn::before {
  font-family: "bootstrap-icons";
  content: "\F283";
  display: inline-block;
  width: 1em;
  height: 1em;
  padding-top: 0.3rem;
}

#expand #expand-toggle+#expand-btn {
  color: var(--bs-gray-300);
  border-width: 0;
}

#expand #expand-toggle+#expand-btn:hover {
  color: var(--bs-gray-100);
}

#expand #expand-toggle:checked+#expand-btn::before {
  content: "\F27D";
}

#filters:has(#expand-toggle:checked) {
  flex-wrap: wrap;
}

#filters:has(#expand-toggle:checked) #quick-terms-overflow {
  flex-wrap: wrap;
  height: auto;
  overflow: visible;
  justify-content: center !important;
}

#filters:has(#expand-toggle:checked) #additional-filters {
  width: 100%;
  margin-top: 1rem;
}

#filters:has(#expand-toggle:checked) #additional-filters {
  justify-content: center;
}

#entities-filter-toggle .label {
  max-width: 12ch;
}

#dates-filter-toggle .label {
  max-width: 17ch;
}

#remove-filters a {
  transition: color .15s;
  font-size: 0.9rem;
}

#remove-filters .bi-x::before {
  vertical-align: -0.23em;
}

/* tomselect */

.ts-wrapper {
  width: 100%;
  flex-wrap: wrap;
}

#collapsed-filters-entities .ts-control {
  border: 0;
  border-radius: .75rem;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

#collapsed-filters-entities .ts-wrapper.single .ts-control {
  background-image: linear-gradient(180deg, #fff, #f9f9f9) !important;
}

.ts-dropdown-content {
  max-height: 350px;
  mask-image: linear-gradient(to bottom, black calc(100% - 1rem), transparent 100%);
}

/* overrides to keep dropdown always visible */
.ts-wrapper.single .ts-control:after {
  display: none;
}

.ts-dropdown {
  /* overrides to keep dropdown always visible */
  display: block !important;
  visibility: visible !important;
  position: relative;
  margin: 0;
  border: 0;
  border-radius: .5rem;
  border-top-right-radius: 0;
  border-top-left-radius: 0;
  overflow: hidden;
}

.ts-dropdown .option[data-value=""] {
  display: none !important;
}

.ts-all-entities-row {
  border-bottom: 1px solid #d0d0d0;
  cursor: pointer;
  padding: 8px;
}

.ts-all-entities-row.is-selected {
  background: #f0f7ff;
}

.ts-dropdown .optgroup {
  height: 100%;
}

.ts-dropdown .optgroup-header {
  position: sticky;
  top: 0;
  mask-image: linear-gradient(to bottom, black calc(100% - .7rem), transparent 100%);
}

.ts-wrapper.plugin-remove_button:not(.rtl) .item .remove {
  border-left: none;
  background: #f3f3f3;
  border-radius: 5px;
}

.ts-wrapper.plugin-remove_button .item .remove:hover {
  background: #f0f0f0;
  color: var(--secondary);
}

/* vanilla-calendar-pro */

/* changing weekends colors */

[data-vc-theme=light] .vc-date[data-vc-date-holiday] .vc-date__btn,
[data-vc-theme=light] .vc-date[data-vc-date-weekend] .vc-date__btn {
  color: #999;
}

[data-vc-theme=light] .vc-week__day[data-vc-week-day-off] {
  color: #999;
}

[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-selected] .vc-date__btn,
[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-selected] .vc-date__btn {
  background-color: rgb(218 218 218 / var(--tw-bg-opacity));
  --tw-bg-opacity: 0.7;
  color: #999;
}

[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected] .vc-date__btn,
[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected] .vc-date__btn {
  --tw-bg-opacity: 1;
  background-color: rgb(218 218 218 / var(--tw-bg-opacity));
  color: #999;
}

[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=first] .vc-date__btn,
[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=last] .vc-date__btn,
[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=first] .vc-date__btn,
[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=last] .vc-date__btn {
  --tw-bg-opacity: 1;
  background-color: rgb(218 218 218/var(--tw-bg-opacity))
}

@media (hover: hover) and (pointer:fine) {

  [data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=first] .vc-date__btn:hover,
  [data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover=last] .vc-date__btn:hover,
  [data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=first] .vc-date__btn:hover,
  [data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover=last] .vc-date__btn:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(218 218 218/var(--tw-bg-opacity))
  }
}

@media (hover: hover) and (pointer: fine) {

  [data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-selected] .vc-date__btn:hover,
  [data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-selected] .vc-date__btn:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(218 218 218 / var(--tw-bg-opacity));
    color: #999;
  }
}

@media (hover: hover) and (pointer: fine) {

  [data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-holiday][data-vc-date-selected] .vc-date__btn:hover,
  [data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-weekend][data-vc-date-selected] .vc-date__btn:hover {
    background-color: rgb(218 218 218 / var(--tw-bg-opacity));
    --tw-bg-opacity: 0.7;
    color: #999;
  }
}

[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-hover] .vc-date__btn,
[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-hover] .vc-date__btn {
  --tw-bg-opacity: 1;
  background-color: rgb(218 218 218/var(--tw-bg-opacity))
}

@media (hover: hover) and (pointer: fine) {

  [data-vc-theme=light] .vc-date[data-vc-date-holiday] .vc-date__btn:hover,
  [data-vc-theme=light] .vc-date[data-vc-date-weekend] .vc-date__btn:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(218 218 218 / var(--tw-bg-opacity));
  }
}

/* Changing selected dates colors - matching site's color scheme */

[data-vc-theme=light] .vc-date[data-vc-date-selected] .vc-date__btn {
  --tw-bg-opacity: 1;
  background-color: rgb(13 119 186/var(--tw-bg-opacity));
  color: #fff
}

@media (hover: hover) and (pointer:fine) {
  [data-vc-theme=light] .vc-date[data-vc-date-selected] .vc-date__btn:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(13 119 186/var(--tw-bg-opacity));
    color: #fff
  }
}

[data-vc-theme=light] .vc-months__month[data-vc-months-month-selected],
[data-vc-theme=light] .vc-years__year[data-vc-years-year-selected] {
  --tw-bg-opacity: 1;
  background-color: rgb(13 119 186/var(--tw-bg-opacity));
  color: #fff
}

@media (hover: hover) and (pointer:fine) {

  [data-vc-theme=light] .vc-months__month[data-vc-months-month-selected]:hover,
  [data-vc-theme=light] .vc-years__year[data-vc-years-year-selected]:hover {
    --tw-bg-opacity: 1;
    background-color: rgb(13 119 186/var(--tw-bg-opacity));
    color: #fff
  }
}

[data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-selected] .vc-date__btn {
  background-color: rgb(13 119 186/var(--tw-bg-opacity));
  --tw-bg-opacity: 0.7;
  color: #fff
}

@media (hover: hover) and (pointer:fine) {
  [data-vc-theme=light] .vc-date[data-vc-date-selected=middle][data-vc-date-selected] .vc-date__btn:hover {
    background-color: rgb(13 119 186/var(--tw-bg-opacity));
    --tw-bg-opacity: 0.7;
    color: #fff
  }
}

[data-vc-theme=light] .vc-date[data-vc-date-holiday][data-vc-date-today] .vc-date__btn,
[data-vc-theme=light] .vc-date[data-vc-date-weekend][data-vc-date-today] .vc-date__btn {
  color: #999;
}

/* applies to x-small devices (portrait phones, less than 360px) */
@media (max-width: 359.98px) {

  #entities-filter-toggle .label {
    max-width: 9ch !important;
  }

  #dates-filter-toggle .label {
    max-width: 12ch !important;
  }
}

/* publication listing */
#publications-list .list-group-item {
  border: 1px solid rgba(14, 94, 170, .1);
  box-shadow: 0 2px 12px rgba(14, 94, 170, .06);
  transition: background-color .20s, border-color .30s, box-shadow .2s ease;
}

#publications-list .list-group-item:has(a:hover),
#publications-list .list-group-item:has(a:focus-visible) {
  background-color: #fff;
  border-color: #8dc8ec;
  box-shadow: 0 8px 20px rgba(14, 94, 170, .14);
}

#publications-list .publication-title,
#publications-list .entity-title {
  /* size of date .badge */
  padding-right: 5.5rem;
}

#publications-list .entity-title {
  font-size: .9rem;
}

#publications-list .date.badge {
  background: linear-gradient(135deg, var(--primary), var(--secondary));
  box-shadow: 0 3px 10px rgba(14, 94, 170, .25);
}

#filters-info strong {
  color: var(--secondary);
}

#paginate a {
  font-weight: 500;
}

/* applies to small devices (portrait phones, less than 360px) */
@media (max-width: 360px) {
  #search-btn-label {
    display: none;
  }

  #id_q {
    padding-right: 4.5rem;
  }
}
