/**
 * Opensolr Search — default styles.
 *
 * These styles provide a clean, mobile-first search UI.
 * Override in your theme by copying and modifying these rules.
 * All classes are prefixed with "opensolr-" to avoid conflicts.
 */

/* ============================================================
   WRAPPER & THEME
   ============================================================ */
/* Header offset: JS sets --oss-header-offset on :root to account for
   fixed-position theme headers. Falls back to 0 if no fixed header. */
.opensolr-search-wrapper {
  max-width: 100vw !important;
  width: 100% !important;

  margin-top: var(--oss-header-offset, 0) !important;

  margin-bottom: 0 !important;

  margin-left: 0 !important;

  margin-right: 0 !important;

  padding: 3px 20px 0 !important;

  box-sizing: border-box !important;

  overflow-x: hidden !important;

  /* Override WordPress block theme constrained layout (645px max-width) */
  overflow-wrap: anywhere !important;
  word-break: break-word !important;

  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;

  color: #1e293b !important;

}

/* ============================================================
   CONTENT TYPE TABS — Web / Documents
   ============================================================ */
.opensolr-content-tabs {
  display: flex !important;

  gap: 0 !important;

  border-bottom: 1px solid #e2e8f0 !important;

  margin-bottom: 12px !important;

}

.opensolr-content-tab {
  display: inline-flex !important;

  align-items: center !important;

  gap: 6px !important;

  padding: 10px 16px !important;

  font-size: 14px !important;

  font-weight: 500 !important;

  color: #64748b !important;

  text-decoration: none !important;

  border-bottom: 2px solid transparent !important;

  transition: color 0.15s, border-color 0.15s;
}

.opensolr-content-tab:hover {
  color: #1e293b !important;

}

.opensolr-content-tab--active {
  color: #1e293b !important;

  font-weight: 600 !important;

  border-bottom-color: #1e293b !important;

}

/* -- Hide breadcrumb, page title, and kill ALL gaps on the search page -- */
.path-opensolr-search .block-page-title-block,
.path-opensolr-search .page-title,
.path-opensolr-search .region--breadcrumb,
.path-opensolr-search .breadcrumb,
.path-opensolr-search .region--content-above,
.path-opensolr-search .region--highlighted {
  display: none !important;
}

/* -- Kill every possible source of extra padding/margin/max-width on search page -- */
.path-opensolr-search .main-content__container,
.path-opensolr-search .container,
.path-opensolr-search .main-content,
.path-opensolr-search .layout-main,
.path-opensolr-search .layout-main-wrapper,
.path-opensolr-search #main-wrapper,
.path-opensolr-search .region--content,
.path-opensolr-search #content,
.path-opensolr-search .layout--pass--content-medium,
.path-opensolr-search .grid-full,
.path-opensolr-search main {
  padding-top: 0 !important;
  margin-top: 0 !important;
  padding-bottom: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ============================================================
   SEARCH BOX — sticky below toolbar/header so it's always accessible.
   Background matches page so content scrolls cleanly underneath.
   ============================================================ */
/* Sticky search box — sits below admin toolbar + site header.
   Site header is typically ~50px; admin toolbar adds via CSS var.
   Shadow provides visual separation from content scrolling underneath.
   ::before covers the gap between site header and search box so
   scrolling content is hidden behind white, not visible through the gap. */
.opensolr-search-box {
  position: sticky !important;

  /* WordPress admin bar is 32px (desktop) or 46px (mobile); no fixed theme header in standalone mode */
  top: calc(var(--drupal-displace-offset-top, 0px) + 0px) !important;

  z-index: 100 !important;

  background: #fff !important;
  box-shadow: none !important;
}

.opensolr-search-box::before {
  content: '' !important;

  position: absolute !important;

  top: -50px !important;

  left: -20px !important;

  right: -20px !important;

  height: 50px !important;

  background: #fff !important;

  z-index: -1 !important;

}

.opensolr-search-form {
  margin-bottom: 12px !important;

}

.opensolr-search-input-wrap {
  display: flex !important;

  align-items: center !important;

  gap: 8px !important;

  max-width: 100% !important;

}

/* Search input: darker border by default, neon glow on focus */
.opensolr-search-input {
  flex: 1 !important;
  min-height: 35px !important;
  padding: 8px 14px !important;
  font-size: 16px !important;
  border: 1px solid rgba(102, 126, 234, 0.2) !important;
  border-radius: 8px !important;
  outline: none !important;
  box-shadow: 0 0 4px rgba(102, 126, 234, 0.08) !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}

/* Focus: neon glow intensifies — visible difference from the subtle unfocused glow */
.opensolr-search-input:focus {
  border-color: rgba(102, 126, 234, 0.6) !important;
  box-shadow: 0 0 12px rgba(102, 126, 234, 0.3) !important;
  outline: none !important;
}

.opensolr-search-btn {
  padding: 9px 24px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #fff !important;
  background: #c05520 !important;
  border: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
  flex-shrink: 0 !important;
}

.opensolr-search-btn:hover {
  background: #a34a1c !important;

}

.opensolr-search-clear {
  font-size: 22px !important;

  color: #94a3b8 !important;

  text-decoration: none !important;

  padding: 4px 8px !important;

}

/* ============================================================
   ACTIVE FILTERS BAR — removable filter pills below search box
   ============================================================ */
.opensolr-active-filters {
  display: flex !important;

  flex-wrap: wrap !important;

  align-items: center !important;

  gap: 6px !important;

  padding: 8px 0 !important;

  font-size: 13px !important;

}

.opensolr-active-filters-label {
  color: #64748b !important;

  font-weight: 600 !important;

  font-size: 12px !important;

  margin-right: 2px !important;

}

.opensolr-filter-pill {
  display: inline-flex !important;

  align-items: center !important;

  gap: 4px !important;

  padding: 3px 8px 3px 10px !important;

  background: #eef2ff !important;

  border: 1px solid #c7d2fe !important;

  border-radius: 16px !important;

  color: #3730a3 !important;

  text-decoration: none !important;

  font-size: 12px !important;

  line-height: 1.4 !important;

  transition: background 0.15s, border-color 0.15s;
}

.opensolr-filter-pill:hover {
  background: #fef2f2 !important;

  border-color: #fecaca !important;

  color: #991b1b !important;

}

.opensolr-filter-pill-label {
  font-weight: 600 !important;
  flex-shrink: 0 !important;
}

.opensolr-filter-pill-value {
  max-width: 150px !important;

  overflow: hidden !important;

  text-overflow: ellipsis !important;

  white-space: nowrap !important;

}

.opensolr-filter-pill-x {
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  opacity: 0.6 !important;
  flex-shrink: 0 !important;
}

.opensolr-filter-pill:hover .opensolr-filter-pill-x {
  opacity: 1 !important;

}

.opensolr-filter-clear-all {
  font-size: 12px !important;

  color: #dc2626 !important;

  text-decoration: none !important;

  font-weight: 600 !important;

  margin-left: 4px !important;

}

.opensolr-filter-clear-all:hover {
  text-decoration: underline !important;

}

/* ============================================================
   SPELLCHECK
   ============================================================ */
.opensolr-spellcheck {
  padding: 10px 14px !important;

  background: #fffbeb !important;

  border: 1px solid #fde68a !important;

  border-radius: 8px !important;

  margin-bottom: 16px !important;

  font-size: 14px !important;

  color: #92400e !important;

}

.opensolr-spellcheck a {
  color: #667eea !important;

  font-weight: 600 !important;

  text-decoration: none !important;

}

/* ============================================================
   RESULTS META (count)
   ============================================================ */
.opensolr-results-meta {
  font-size: 13px !important;

  color: #64748b !important;

  margin-bottom: 8px !important;

}

/* ============================================================
   LAYOUT: sidebar + results
   ============================================================ */
/* Flex layout — sidebar + results side by side.
   margin-top adds breathing room below search box / active filters. */
.opensolr-search-layout {
  display: flex !important;

  gap: 24px !important;

  align-items: flex-start !important;

  margin-top: 25px !important;

}

/* ============================================================
   FACETS SIDEBAR
   ============================================================ */
/* Facets sidebar — scrolls with results, no sticky positioning */
.opensolr-facets-sidebar {
  width: 220px !important;

  flex-shrink: 0 !important;

}

/* Facet group card — bordered, padded, visually distinct */
.opensolr-facet-group {
  margin-bottom: 12px !important;

  padding: 5px 5px !important;

  background: #f8fafc !important;

  border: 1px solid #e2e8f0 !important;

  border-radius: 8px !important;

}

.opensolr-facet-title {
  font-size: 14px !important;

  font-weight: 700 !important;

  color: #334155 !important;

  text-transform: uppercase !important;

  letter-spacing: 0.8px !important;

  margin: 0 0 8px !important;

  padding-bottom: 6px !important;

  border-bottom: 1px solid #e2e8f0 !important;

  display: flex !important;

  align-items: center !important;

  gap: 4px !important;

}

.opensolr-facet-list {
  list-style: none !important;

  margin: 0 !important;

  padding: 0 !important;

  /* Show more facet segments on desktop — ~16 items visible before scroll */
  max-height: 520px !important;

  overflow-y: auto !important;

}

/* Regex filter input for facets with many values */
.opensolr-facet-filter {
  width: 100% !important;
  padding: 5px !important;
  font-size: 12px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 3px !important;
  margin-bottom: 4px !important;
  box-sizing: border-box !important;
  color: #475569 !important;
  min-height: auto !important;
  height: auto !important;
}

.opensolr-facet-list li {
  margin-bottom: 0 !important;

}

.opensolr-facet-list a {
  display: flex !important;

  justify-content: space-between !important;

  align-items: center !important;

  padding: 2px 2px !important;

  font-size: 14px !important;

  color: #334155 !important;

  text-decoration: none !important;

  border-radius: 4px !important;

  transition: background 0.1s;
}

.opensolr-facet-list a:hover {
  background: #f1f5f9 !important;
}

/* Instant facet tooltip — positioned via JS to avoid overflow clipping */
.opensolr-facet-tip {
  display: none !important;
  position: fixed !important;
  z-index: 10000 !important;
  background: #1e293b !important;
  color: #f1f5f9 !important;
  padding: 6px 10px !important;
  border-radius: 6px !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  white-space: normal !important;
  max-width: 280px !important;
  word-break: break-word !important;
  line-height: 1.4 !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
  pointer-events: none !important;
}
.opensolr-facet-tip.opensolr-tip-visible {
  display: block !important;
}

/* Truncate long facet values — count stays visible */
.opensolr-facet-val {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  min-width: 0 !important;
}

.opensolr-facet-count {
  font-size: 11px !important;
  flex-shrink: 0 !important;

  color: #94a3b8 !important;

}

/* -- Active facet value -- */
.opensolr-facet-active {
  background: #667eea !important;
  color: #fff !important;
  font-weight: 600 !important;

}

/* ============================================================
   RANGE FACETS — date pickers, numeric sliders
   ============================================================ */
.opensolr-range-form {
  display: flex !important;

  flex-direction: column !important;

  gap: 4px !important;

}

.opensolr-range-form label {
  font-size: 10px !important;

  color: #94a3b8 !important;

  font-weight: 600 !important;

  text-transform: uppercase !important;

  letter-spacing: 0.5px !important;

}

/* -- Date range: compact inline pickers -- */
.opensolr-date-input,
input[type="date"].opensolr-date-input {
  padding: 3px !important;
  font-size: 14px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 4px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  height: 26px !important;
  line-height: 1.2 !important;
  min-height: 0 !important;
}

/* -- Numeric slider: text inputs + noUiSlider -- */
.opensolr-slider-inputs {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin-bottom: 8px !important;
}
.opensolr-num-input,
.opensolr-facet-group .opensolr-num-input {
  width: 50% !important;
  padding: 3px 4px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 4px !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  height: auto !important;
  min-height: 0 !important;
  max-width: none !important;
  box-sizing: border-box !important;
  text-align: center !important;
  font-variant-numeric: tabular-nums !important;
  background: #fff !important;
  color: #1e293b !important;
  -moz-appearance: textfield !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.opensolr-num-input::-webkit-inner-spin-button,
.opensolr-num-input::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}
.opensolr-slider-sep {
  color: #94a3b8 !important;
  font-size: 11px !important;
}
/* noUiSlider overrides — thinner track, smaller handles */
.opensolr-nouislider-wrap {
  margin: 0 0 10px !important;
  /* Padding so slider handles don't clip at edges */
  padding: 0 7px !important;
}
.opensolr-nouislider-wrap.noUi-target {
  height: 4px !important;
  border: none !important;
  background: #e2e8f0 !important;
  box-shadow: none !important;
}
.opensolr-nouislider-wrap .noUi-connect {
  background: #667eea !important;
}
.opensolr-nouislider-wrap .noUi-handle {
  width: 14px !important;
  height: 14px !important;
  border-radius: 50% !important;
  background: #667eea !important;
  border: 2px solid #fff !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.25) !important;
  top: -6px !important;
  right: -7px !important;
  cursor: pointer !important;
}
.opensolr-nouislider-wrap .noUi-handle::before,
.opensolr-nouislider-wrap .noUi-handle::after {
  display: none !important;
}

.opensolr-range-btn {
  padding: 3px 10px !important;

  font-size: 11px !important;

  font-weight: 600 !important;

  color: #fff !important;

  background: #667eea !important;

  border: none !important;

  border-radius: 4px !important;

  cursor: pointer !important;

  align-self: flex-start !important;

}

.opensolr-range-btn:hover {
  background: #5a6fd6 !important;

}

/* Apply + Clear button row container */
.opensolr-range-actions {
  display: flex !important;

  gap: 6px !important;

  align-items: center !important;

}

/* Clear button — identical to Apply except background color */
.opensolr-range-clear {
  padding: 3px 10px !important;

  font-size: 11px !important;

  font-weight: 600 !important;

  color: #fff !important;

  background: #e53e3e !important;

  border: none !important;

  border-radius: 4px !important;

  cursor: pointer !important;

  text-decoration: none !important;

  display: inline-block !important;

  line-height: normal !important;

}

.opensolr-range-clear:hover {
  background: #c53030 !important;

  color: #fff !important;

}

/* ============================================================
   SNIPPET "MORE" TOGGLE — extra highlighted text from text_t/text
   ============================================================ */
.opensolr-result-actions {
  margin-top: 4px !important;
}
.opensolr-more-toggle {
  display: inline-flex !important;
  align-items: center !important;
  gap: 3px !important;
  background: none !important;
  border: none !important;
  padding: 2px 4px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #94a3b8 !important;
  cursor: pointer !important;
}
.opensolr-more-toggle:hover {
  color: #667eea !important;
}
.opensolr-more-toggle svg {
  width: 12px !important;
  height: 12px !important;
}
.opensolr-more-arrow {
  transition: transform 0.2s ease !important;
}
.opensolr-more-text {
  margin-top: 6px !important;
  padding: 8px 0 !important;
  font-size: 13px !important;
  color: #475569 !important;
  line-height: 1.6 !important;
  border-top: 1px solid #f1f5f9 !important;
}

/* Dark theme — More toggle */
.opensolr-theme--dark .opensolr-more-toggle {
  color: #64748b !important;
}
.opensolr-theme--dark .opensolr-more-toggle:hover {
  color: #818cf8 !important;
}
.opensolr-theme--dark .opensolr-more-text {
  color: #cbd5e1 !important;
  border-top-color: #1e293b !important;
}

/* ============================================================
   FACET "SHOW MORE" — expanded value browser dialog
   ============================================================ */

/* "Show more" link at bottom of facet lists */
.opensolr-facet-show-more {
  list-style: none !important;
}
.opensolr-facet-show-more a {
  display: block !important;
  padding: 6px 8px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #667eea !important;
  text-decoration: none !important;
  margin-top: 4px !important;
}
.opensolr-facet-show-more a:hover {
  color: #4f46e5 !important;
  text-decoration: underline !important;
}
/* Show more button — styled as link, positioned outside the scrollable list.
   Uses <button> instead of <a> for reliable Safari/iOS click events.
   appearance:none + transparent bg kills all default button chrome. */
.opensolr-facet-show-more-link {
  display: block !important;
  width: 100% !important;
  padding: 6px 8px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #667eea !important;
  background: transparent !important;
  border: none !important;
  text-align: left !important;
  cursor: pointer !important;
  margin-top: 4px !important;
  font-family: inherit !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  outline: none !important;
  box-shadow: none !important;
}
.opensolr-facet-show-more-link:hover {
  color: #4f46e5 !important;
  text-decoration: underline !important;
}

/* Backdrop overlay */
.opensolr-expand-backdrop {
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,0.4) !important;
  z-index: 100000 !important;
}

/* Dialog box — centered, wide enough for all 27 letter buttons */
.opensolr-expand-dialog {
  position: fixed !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%,-50%) !important;
  width: 1100px !important;
  max-width: 94vw !important;
  max-height: 80vh !important;
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.2) !important;
  z-index: 100001 !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

/* Header */
.opensolr-expand-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 14px 20px !important;
  border-bottom: 1px solid #e2e8f0 !important;
  flex-shrink: 0 !important;
}
.opensolr-expand-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1e293b !important;
}
.opensolr-expand-close {
  background: none !important;
  border: none !important;
  font-size: 22px !important;
  color: #94a3b8 !important;
  cursor: pointer !important;
  padding: 0 4px !important;
  line-height: 1 !important;
}
.opensolr-expand-close:hover {
  color: #e53e3e !important;
}

/* Search input */
.opensolr-expand-search {
  padding: 10px 20px !important;
  border-bottom: 1px solid #f1f5f9 !important;
  flex-shrink: 0 !important;
}
.opensolr-expand-search input {
  width: 100% !important;
  padding: 8px 12px !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  box-sizing: border-box !important;
  outline: none !important;
}

/* Letter index bar — square button style with spacing */
.opensolr-expand-letters {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 4px !important;
  padding: 10px 20px !important;
  border-bottom: 1px solid #f1f5f9 !important;
  flex-shrink: 0 !important;
}
.opensolr-expand-letters a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 28px !important;
  height: 28px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #667eea !important;
  text-decoration: none !important;
  border-radius: 6px !important;
  border: 1px solid #c7d2fe !important;
  background: #eef2ff !important;
  cursor: pointer !important;
  transition: background 0.15s, border-color 0.15s !important;
}
.opensolr-expand-letters a:hover {
  background: #c7d2fe !important;
  border-color: #667eea !important;
}
/* Inactive/disabled letters — clearly greyed out */
.opensolr-expand-letters a.disabled {
  color: #d1d5db !important;
  background: #f9fafb !important;
  border-color: #e5e7eb !important;
  pointer-events: none !important;
  opacity: 0.45 !important;
}

/* Scrollable body */
.opensolr-expand-body {
  flex: 1 !important;
  overflow-y: auto !important;
  padding: 6px 20px 20px !important;
}

/* Letter section header */
.opensolr-expand-letter-header {
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #94a3b8 !important;
  border-bottom: 1px solid #e2e8f0 !important;
  padding: 8px 0 4px !important;
  margin: 14px 0 6px !important;
}
.opensolr-expand-letter-header:first-child {
  margin-top: 0 !important;
}

/* Values multi-column grid — like eMAG */
.opensolr-expand-values {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
  gap: 2px 20px !important;
}
.opensolr-expand-value {
  overflow: hidden !important;
  min-width: 0 !important;
}
.opensolr-expand-value a {
  display: flex !important;
  align-items: baseline !important;
  gap: 3px !important;
  padding: 4px 0 !important;
  font-size: 13px !important;
  color: #1e293b !important;
  text-decoration: none !important;
  overflow: hidden !important;
  min-width: 0 !important;
}
/* Value text truncates, count stays visible */
.opensolr-expand-value a .opensolr-ev-name {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  min-width: 0 !important;
}
.opensolr-expand-value a:hover {
  color: #667eea !important;
}
.opensolr-ev-count {
  color: #94a3b8 !important;
  font-size: 11px !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}

/* Mobile: dialog goes near-full-width, single column */
@media (max-width: 768px) {
  .opensolr-expand-dialog {
    width: 95vw !important;
    max-height: 80vh !important;
  }
  .opensolr-expand-values {
    grid-template-columns: 1fr !important;
  }
  /* 16px on mobile prevents iOS auto-zoom on focus */
  .opensolr-num-input {
    font-size: 16px !important;
    padding: 5px 6px !important;
  }
}

/* ============================================================
   ELEVATION CONTROLS (admin only) — PIN / EXCLUDE / EXCLUDE ALL
   ============================================================ */
.oss-elev-bar {
  display: flex !important;

  align-items: center !important;

  gap: 4px !important;

  margin-top: 6px !important;

  padding-top: 6px !important;

  border-top: 1px dashed #e2e8f0 !important;

}

.oss-elev-btn {
  display: inline-flex !important;

  align-items: center !important;

  gap: 3px !important;

  padding: 2px 8px !important;

  font-size: 10px !important;

  font-weight: 700 !important;

  text-transform: uppercase !important;

  letter-spacing: 0.5px !important;

  color: #667eea !important;

  background: #fff !important;

  border: 1px solid #667eea !important;

  border-radius: 3px !important;

  cursor: pointer !important;

  line-height: 1.4 !important;

}

@media (hover: hover) {
  .oss-elev-btn:hover {
    background: #667eea !important;

    color: #fff !important;

  }
}

.oss-elev-btn.oss-elev-active {
  background: #667eea !important;

  color: #fff !important;

}

.oss-elev-btn.oss-elev-active.oss-elev-pin {
  background: #c05520 !important;

  border-color: #c05520 !important;

}

.oss-elev-btn.oss-elev-active.oss-elev-exclude,
.oss-elev-btn.oss-elev-active.oss-elev-global-exclude {
  background: #e53e3e !important;

  border-color: #e53e3e !important;

}

.oss-elev-status {
  font-size: 10px !important;

  font-weight: 700 !important;

  text-transform: uppercase !important;

  letter-spacing: 0.5px !important;

  margin-left: 4px !important;

}

/* ============================================================
   DRAG HANDLE — for SortableJS reordering of pinned results
   ============================================================ */
.oss-elev-drag {
  display: none !important;

  cursor: grab !important;

  padding: 2px 4px !important;

  color: #94a3b8 !important;

}
/* Only show drag handle when result is pinned */
.oss-elev-drag.oss-elev-drag-visible {
  display: inline-flex !important;

}
.oss-elev-drag:active { cursor: grabbing; }
/* Hide elevation elements (REMOVE btn, status label) via class toggle.
   More specific than .oss-elev-btn so it always wins. */
.oss-elev-bar .oss-elev-hidden { display: none !important; }

/* Sortable ghost element styling during drag */
.opensolr-result.sortable-ghost {
  opacity: 0.4 !important;

  background: #f1f5f9 !important;

}

/* ============================================================
   FILTERS TOGGLE BUTTON — mobile only
   ============================================================ */
.opensolr-filters-toggle {
  display: none; /* Hidden on desktop */
  align-items: center !important;

  gap: 6px !important;

  padding: 8px 16px !important;

  font-size: 14px !important;

  font-weight: 600 !important;

  color: #475569 !important;

  background: #f1f5f9 !important;

  border: 1px solid #e2e8f0 !important;

  border-radius: 8px !important;

  cursor: pointer !important;

  margin-bottom: 12px !important;

  width: 100% !important;

  justify-content: center !important;

}

/* ============================================================
   SEARCH RESULTS
   ============================================================ */
.opensolr-results {
  flex: 1 !important;

  min-width: 0 !important;

}

.opensolr-result {
  display: flex !important;

  gap: 16px !important;

  padding: 16px 0 !important;

  border-bottom: 1px solid #f1f5f9 !important;

}

.opensolr-result:last-child {
  border-bottom: none !important;

}

.opensolr-result-image {
  flex-shrink: 0 !important;

  width: 80px !important;

  height: 80px !important;

  overflow: hidden !important;

  border-radius: 8px !important;

  background: #f8fafc !important;

}

.opensolr-result-image img {
  width: 100% !important;

  height: 100% !important;

  object-fit: cover !important;

}

.opensolr-result-content {
  flex: 1 !important;

  min-width: 0 !important;

}

/* Result title — flex for inline doc icon + typography */
.opensolr-result-title {
  display: flex !important;

  align-items: center !important;

  gap: 6px !important;

  font-size: 18px !important;

  font-weight: 600 !important;

  margin: 0 0 4px !important;

  line-height: 1.3 !important;

  overflow-wrap: anywhere !important;
  word-break: break-word !important;
  min-width: 0 !important;
}

/* Document metadata block — pages, type, author, last modified */
.opensolr-doc-meta {
  font-size: 12px !important;

  color: #64748b !important;

  line-height: 1.6 !important;

  margin-bottom: 6px !important;

  padding: 4px 8px !important;

  background: #f8fafc !important;

  border-left: 3px solid #e2e8f0 !important;

  border-radius: 2px !important;

}

/* Meta line below title: date + price, discrete styling */
.opensolr-result-meta {
  display: flex !important;

  gap: 12px !important;

  align-items: center !important;

  font-size: 12px !important;

  color: #64748b !important;

  margin-bottom: 4px !important;

}

.opensolr-result-date {
  font-weight: 500 !important;

  display: inline-flex !important;

  align-items: center !important;

  gap: 3px !important;

  color: #c05520 !important;

}

.opensolr-result-date svg {
  stroke: #c05520 !important;

}

.opensolr-result-price {
  font-weight: 600 !important;

  font-size: 11px !important;

  color: #166534 !important;

  background: #dcfce7 !important;

  padding: 1px 6px !important;

  border-radius: 3px !important;

}

.opensolr-result-title a {
  color: #1e293b !important;

  text-decoration: none !important;

}

.opensolr-result-title a:hover {
  color: #667eea !important;

}

/* Breadcrumb URI — Google-style green path below title */
.opensolr-result-uri {
  display: block !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  color: #1a7a2e !important;
  font-style: normal !important;
  margin-bottom: 4px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 100% !important;
}
.opensolr-result-uri a {
  color: #1a7a2e !important;
  text-decoration: none !important;
  font-weight: 400 !important;
}
.opensolr-result-uri a:hover {
  text-decoration: underline !important;
}
.opensolr-uri-sep {
  color: #5f9e6a !important;
  margin: 0 3px !important;
  font-size: 10px !important;
}

.opensolr-result-snippet {
  font-size: 14px !important;
  color: #475569 !important;
  line-height: 1.5 !important;
  margin-bottom: 0 !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

/* Highlight matching terms: bold + high-contrast color instead of
   yellow background — cleaner look, works well in both light and dark themes */
.opensolr-result-snippet mark,
.opensolr-result-title mark {
  background: none !important;
  color: #1e40af !important;
  font-weight: 700 !important;
  padding: 0 !important;
}

.opensolr-result-url {
  font-size: 12px !important;

  color: #94a3b8 !important;

  display: block !important;

  overflow: hidden !important;

  text-overflow: ellipsis !important;

  white-space: nowrap !important;

  word-break: break-all !important;

}

/* ============================================================
   NO RESULTS
   ============================================================ */
.opensolr-no-results {
  padding: 20px 0 !important;

  text-align: left !important;

  color: #64748b !important;

}

/* ============================================================
   PAGINATION
   ============================================================ */
.opensolr-pagination {
  display: flex !important;

  gap: 4px !important;

  align-items: center !important;

  justify-content: center !important;

  margin-top: 24px !important;

  padding: 16px 0 !important;

}

.opensolr-page-link {
  display: inline-block !important;

  padding: 6px 12px !important;

  font-size: 14px !important;

  color: #334155 !important;

  text-decoration: none !important;

  border-radius: 6px !important;

  transition: background 0.1s;
}

.opensolr-page-link:hover {
  background: #f1f5f9 !important;

}

.opensolr-page-current {
  display: inline-block !important;

  padding: 6px 12px !important;

  font-size: 14px !important;

  font-weight: 700 !important;

  color: #fff !important;

  background: #667eea !important;

  border-radius: 6px !important;

}

.opensolr-page-dots {
  padding: 6px 4px !important;

  color: #94a3b8 !important;

}

/* ============================================================
   LOAD MORE (infinite scroll style)
   ============================================================ */
.opensolr-load-more-wrap {
  text-align: center !important;

  padding: 20px 0 !important;

}

.opensolr-load-more-btn {
  display: inline-block !important;

  padding: 10px 32px !important;

  font-size: 14px !important;

  font-weight: 600 !important;

  color: #475569 !important;

  background: #f1f5f9 !important;

  border: 1px solid #e2e8f0 !important;

  border-radius: 8px !important;

  text-decoration: none !important;

  transition: all 0.15s;
}

.opensolr-load-more-btn:hover {
  background: #e2e8f0 !important;

  color: #1e293b !important;

}

/* ============================================================
   RESULT FOOTER (URL + Read button)
   ============================================================ */
/* URL sits tight below the snippet — minimal gap */
.opensolr-result-footer {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-top: 1px !important;
}

/* Read button — sits inline at the end of the snippet text.
   Slightly larger than plain text so it's discoverable but not intrusive. */
.opensolr-read-btn {
  display: inline-flex !important;

  align-items: center !important;

  gap: 4px !important;

  padding: 3px 10px !important;

  font-size: 11px !important;

  vertical-align: middle !important;

  margin-left: 4px !important;

  font-weight: 600 !important;

  color: #667eea !important;

  background: #eef2ff !important;

  border: 1px solid #c7d2fe !important;

  border-radius: 4px !important;

  cursor: pointer !important;

  transition: all 0.15s;
  white-space: nowrap !important;

  touch-action: manipulation !important;

  -webkit-tap-highlight-color: rgba(102, 126, 234, 0.15) !important;

}

/* iOS: SVG inside buttons must not capture taps — let the <button> handle them */
.opensolr-read-btn svg,
.opensolr-ai-hints-btn svg {
  pointer-events: none !important;

}

/* iOS Safari fix: :hover on touch devices causes first-tap-to-hover,
   second-tap-to-click. Restrict hover effects to pointer devices only. */
@media (hover: hover) {
  .opensolr-read-btn:hover {
    background: #667eea !important;

    color: #fff !important;

    border-color: #667eea !important;

  }
}

/* ============================================================
   AI HINTS — streaming answer panel
   ============================================================ */
.opensolr-ai-section {
  margin-bottom: 16px !important;

}

/* iOS Safari fix: touch-action + tap-highlight for reliable mobile taps */
.opensolr-ai-hints-btn {
  display: inline-flex !important;

  align-items: center !important;

  gap: 6px !important;

  padding: 10px 20px !important;

  font-size: 14px !important;

  font-weight: 600 !important;

  color: #fff !important;

  background: linear-gradient(135deg, #667eea, #764ba2) !important;

  border: none !important;

  border-radius: 8px !important;

  cursor: pointer !important;

  transition: opacity 0.15s;
  touch-action: manipulation !important;

  -webkit-tap-highlight-color: rgba(255, 255, 255, 0.2) !important;

}

@media (hover: hover) {
  .opensolr-ai-hints-btn:hover {
    opacity: 0.9 !important;

  }
}

/* --- Sort Controls — small discrete dropdowns --- */
.opensolr-sort-wrap {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  margin-left: 8px !important;
  vertical-align: middle !important;
}

.opensolr-sort-select {
  font-family: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-size: 13px !important;
  padding: 2px 18px 2px 6px !important;
  border: none !important;
  border-radius: 3px !important;
  background: transparent !important;
  color: #94a3b8 !important;
  cursor: pointer !important;
  outline: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%2394a3b8'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 4px center !important;
  line-height: 1.3 !important;
}

.opensolr-sort-select:hover,
.opensolr-sort-select:focus {
  color: #e2e8f0 !important;
}

/* Sort direction dropdown — compact */
.opensolr-sort-dir {
  min-width: 44px !important;
}

/* Light theme overrides */
.opensolr-light .opensolr-sort-select {
  color: #64748b !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%2364748b'/%3E%3C/svg%3E") !important;
}

.opensolr-light .opensolr-sort-select:hover,
.opensolr-light .opensolr-sort-select:focus {
  color: #334155 !important;
}

/* Mobile: sort wraps below AI hints */
@media (max-width: 768px) {
  .opensolr-sort-wrap {
    display: flex !important;
    margin-left: 0 !important;
    margin-top: 8px !important;
  }

  .opensolr-sort-select {
    flex: 1 !important;
    min-width: 0 !important;
  }
}

.opensolr-ai-loading {
  /* display is controlled by JS — do NOT set display here or it overrides inline display:none */
  align-items: center !important;

  gap: 8px !important;

  padding: 12px 16px !important;

  font-size: 13px !important;

  color: #667eea !important;

  font-weight: 600 !important;

}

.opensolr-ai-response {
  padding: 16px 20px !important;

  background: #f8fafc !important;

  border: 1px solid #e2e8f0 !important;

  border-left: 4px solid #667eea !important;

  border-radius: 8px !important;

  font-size: 14px !important;

  line-height: 1.7 !important;

  color: #1e293b !important;

  position: relative !important;

}

/* Markdown content inside AI response */
.opensolr-ai-response h1,
.opensolr-ai-response h2,
.opensolr-ai-response h3 {
  margin: 16px 0 8px !important;

  color: #1e293b !important;

}

.opensolr-ai-response h1 { font-size: 18px; }
.opensolr-ai-response h2 { font-size: 16px; }
.opensolr-ai-response h3 { font-size: 15px; }

.opensolr-ai-response p {
  margin: 0 0 10px !important;

}

.opensolr-ai-response ul,
.opensolr-ai-response ol {
  margin: 0 0 10px !important;

  padding-left: 20px !important;

}

.opensolr-ai-response code {
  background: #e2e8f0 !important;

  padding: 1px 5px !important;

  border-radius: 3px !important;

  font-size: 13px !important;

}

.opensolr-ai-response pre {
  background: #1e293b !important;

  color: #e2e8f0 !important;

  padding: 12px 16px !important;

  border-radius: 6px !important;

  overflow-x: auto !important;

  font-size: 13px !important;

  margin: 8px 0 !important;

}

.opensolr-ai-response pre code {
  background: none !important;

  padding: 0 !important;

  color: inherit !important;

}

.opensolr-ai-response strong {
  font-weight: 700 !important;

}

/* Dismiss X button in AI response */
.opensolr-ai-dismiss {
  position: absolute !important;

  top: 8px !important;

  right: 12px !important;

  font-size: 20px !important;

  color: #94a3b8 !important;

  cursor: pointer !important;

  line-height: 1 !important;

  z-index: 1 !important;

}

@media (hover: hover) {
  .opensolr-ai-dismiss:hover {
    color: #dc2626 !important;

  }
}

/* ============================================================
   AI READER — full-screen document modal
   ============================================================ */
.opensolr-reader-modal {
  position: fixed !important;

  top: 0 !important;

  left: 0 !important;

  right: 0 !important;

  bottom: 0 !important;

  background: rgba(0, 0, 0, 0.6) !important;

  /* Must be above WordPress admin bar (z-index: 99999) */
  z-index: 100001 !important;

  display: flex !important;

  align-items: stretch !important;

  justify-content: center !important;

  padding: 0 !important;

}

.opensolr-reader-inner {
  background: #fff !important;

  width: 100% !important;

  max-width: 860px !important;

  display: flex !important;

  flex-direction: column !important;

  overflow: hidden !important;

  margin: 0 auto !important;

  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3) !important;

}

.opensolr-reader-header {
  display: flex !important;

  align-items: center !important;

  gap: 12px !important;

  padding: 14px 20px !important;

  border-bottom: 1px solid #e2e8f0 !important;

  background: #f8fafc !important;

  flex-shrink: 0 !important;

}

.opensolr-reader-title-wrap {
  flex: 1 !important;

  min-width: 0 !important;

}

.opensolr-reader-title {
  font-size: 16px !important;

  font-weight: 700 !important;

  color: #1e293b !important;

  text-decoration: none !important;

  display: block !important;

  overflow: hidden !important;

  text-overflow: ellipsis !important;

  white-space: nowrap !important;

}

.opensolr-reader-title:hover {
  color: #667eea !important;

}

/* iOS: touch-action + min touch target for reliable mobile taps */
.opensolr-reader-close {
  font-size: 24px !important;

  color: #94a3b8 !important;

  background: none !important;

  border: none !important;

  cursor: pointer !important;

  padding: 8px 12px !important;

  line-height: 1 !important;

  flex-shrink: 0 !important;

  touch-action: manipulation !important;

  min-width: 44px !important;

  min-height: 44px !important;

}

@media (hover: hover) {
  .opensolr-reader-close:hover {
    color: #dc2626 !important;

  }
}

.opensolr-reader-meta {
  padding: 8px 20px !important;

  font-size: 12px !important;

  color: #64748b !important;

  border-bottom: 1px solid #f1f5f9 !important;

  display: flex !important;

  align-items: center !important;

  gap: 6px !important;

  flex-wrap: wrap !important;

  flex-shrink: 0 !important;

}

.opensolr-reader-content {
  flex: 1 !important;

  overflow-y: auto !important;

  padding: 24px 28px !important;

  font-size: 15px !important;

  line-height: 1.8 !important;

  color: #334155 !important;

}

.opensolr-reader-og-image {
  float: left !important;

  max-width: 200px !important;

  max-height: 200px !important;

  margin: 0 20px 12px 0 !important;

  border-radius: 8px !important;

  object-fit: cover !important;

}

.opensolr-reader-loading {
  display: flex;

  align-items: center !important;

  gap: 10px !important;

  padding: 20px 0 !important;

  color: #667eea !important;

  font-weight: 600 !important;

  font-size: 14px !important;

}

/* Markdown in reader summary */
.opensolr-reader-summary h1,
.opensolr-reader-summary h2,
.opensolr-reader-summary h3 {
  margin: 20px 0 8px !important;

  color: #1e293b !important;

}

.opensolr-reader-summary h1 { font-size: 20px; }
.opensolr-reader-summary h2 { font-size: 18px; }
.opensolr-reader-summary h3 { font-size: 16px; }

.opensolr-reader-summary p {
  margin: 0 0 12px !important;

}

.opensolr-reader-summary ul,
.opensolr-reader-summary ol {
  margin: 0 0 12px !important;

  padding-left: 24px !important;

}

.opensolr-reader-summary code {
  background: #e2e8f0 !important;

  padding: 1px 5px !important;

  border-radius: 3px !important;

  font-size: 13px !important;

}

.opensolr-reader-summary pre {
  background: #1e293b !important;

  color: #e2e8f0 !important;

  padding: 14px 18px !important;

  border-radius: 6px !important;

  overflow-x: auto !important;

  font-size: 13px !important;

}

.opensolr-reader-summary pre code {
  background: none !important;

  padding: 0 !important;

  color: inherit !important;

}

.opensolr-reader-footer {
  padding: 10px 20px !important;

  font-size: 11px !important;

  color: #94a3b8 !important;

  text-align: center !important;

  border-top: 1px solid #f1f5f9 !important;

  flex-shrink: 0 !important;

}

.opensolr-reader-footer a {
  color: #667eea !important;

  text-decoration: none !important;

  font-weight: 600 !important;

}

/* ============================================================
   DARK THEME — applied when admin selects "Dark" in Search Display
   Scoped to .opensolr-theme--dark so it never leaks outside the search wrapper.
   ============================================================ */
/* Page-level dark background — covers everything outside the search wrapper */
.opensolr-theme--dark,
.opensolr-theme--dark ~ *,
.path-opensolr-search:has(.opensolr-theme--dark) {
  background-color: #0f172a !important;
}
.path-opensolr-search:has(.opensolr-theme--dark) main,
.path-opensolr-search:has(.opensolr-theme--dark) .main-content,
.path-opensolr-search:has(.opensolr-theme--dark) .layout-main,
.path-opensolr-search:has(.opensolr-theme--dark) .layout-main-wrapper,
.path-opensolr-search:has(.opensolr-theme--dark) #main-wrapper,
.path-opensolr-search:has(.opensolr-theme--dark) .region--content,
.path-opensolr-search:has(.opensolr-theme--dark) #content,
.path-opensolr-search:has(.opensolr-theme--dark) .main-content__container {
  background-color: #0f172a !important;
}
.opensolr-theme--dark {
  background: #0f172a !important;

  color: #e2e8f0 !important;

}

/* Search box */
.opensolr-theme--dark .opensolr-search-box {
  background: #0f172a !important;
  box-shadow: none !important;
}
.opensolr-theme--dark .opensolr-search-box::before {
  background: #0f172a !important;

}
.opensolr-theme--dark .opensolr-search-input {
  background: #0f172a !important;
  border-color: rgba(102, 126, 234, 0.15) !important;
  box-shadow: 0 0 5px rgba(102, 126, 234, 0.1) !important;
  color: #e2e8f0 !important;
  min-height: 35px !important;
}
/* Dark focus: neon glow intensifies */
.opensolr-theme--dark .opensolr-search-input:focus {
  border-color: rgba(102, 126, 234, 0.7) !important;
  box-shadow: 0 0 14px rgba(102, 126, 234, 0.4) !important;
  outline: none !important;
}
.opensolr-theme--dark .opensolr-search-input::placeholder {
  color: #64748b !important;

}

/* Content tabs */
.opensolr-theme--dark .opensolr-content-tabs {
  border-bottom-color: #334155 !important;

}
.opensolr-theme--dark .opensolr-content-tab {
  color: #94a3b8 !important;

}
.opensolr-theme--dark .opensolr-content-tab:hover {
  color: #e2e8f0 !important;

}
.opensolr-theme--dark .opensolr-content-tab--active {
  color: #e2e8f0 !important;

  border-bottom-color: #667eea !important;

}

/* Active filter pills */
.opensolr-theme--dark .opensolr-filter-pill {
  background: #1e293b !important;

  border-color: #475569 !important;

  color: #a5b4fc !important;

}
.opensolr-theme--dark .opensolr-filter-pill:hover {
  background: #7f1d1d !important;

  border-color: #f87171 !important;

  color: #fecaca !important;

}
.opensolr-theme--dark .opensolr-active-filters-label {
  color: #94a3b8 !important;

}

/* Spellcheck */
.opensolr-theme--dark .opensolr-spellcheck {
  background: #1c1917 !important;

  border-color: #78350f !important;

  color: #fbbf24 !important;

}

/* Results meta */
.opensolr-theme--dark .opensolr-results-meta {
  color: #94a3b8 !important;

}

/* Facets sidebar */
.opensolr-theme--dark .opensolr-facet-group {
  background: #1e293b !important;

  border-color: #334155 !important;

}
.opensolr-theme--dark .opensolr-facet-title {
  color: #94a3b8 !important;

  border-bottom-color: #334155 !important;

}
.opensolr-theme--dark .opensolr-facet-list a {
  color: #cbd5e1 !important;

}
.opensolr-theme--dark .opensolr-facet-list a:hover {
  background: #334155 !important;

}
.opensolr-theme--dark .opensolr-facet-count {
  color: #64748b !important;

}
.opensolr-theme--dark .opensolr-facet-active {
  background: #667eea !important;
  color: #fff !important;
}
.opensolr-theme--dark .opensolr-facet-filter {
  background: #0f172a !important;

  border-color: #334155 !important;

  color: #e2e8f0 !important;

}
/* Dark theme: show-more button inherits transparent bg */
.opensolr-theme--dark .opensolr-facet-show-more-link {
  color: #818cf8 !important;
  background: transparent !important;
}
.opensolr-theme--dark .opensolr-facet-show-more-link:hover {
  color: #a5b4fc !important;
}

/* Range facets — sliders and date pickers */
.opensolr-theme--dark .opensolr-range-form label {
  color: #64748b !important;

}
/* Dark theme: numeric slider text inputs */
.opensolr-theme--dark .opensolr-num-input,
.opensolr-theme--dark .opensolr-facet-group .opensolr-num-input {
  background: #1e293b !important;
  color: #e2e8f0 !important;
  border-color: #334155 !important;
}
.opensolr-theme--dark .opensolr-date-input,
.opensolr-theme--dark input[type="date"].opensolr-date-input {
  background: #0f172a !important;
  border-color: #334155 !important;
  color: #e2e8f0 !important;
}

/* Dark theme: noUiSlider track */
.opensolr-theme--dark .opensolr-nouislider-wrap.noUi-target {
  background: #334155 !important;
}

/* Facet expand dialog — dark theme */
.opensolr-theme--dark .opensolr-expand-dialog {
  background: #16213e !important;
  border-color: #2a3a5c !important;
}
.opensolr-theme--dark .opensolr-expand-header {
  border-bottom-color: #2a3a5c !important;
}
.opensolr-theme--dark .opensolr-expand-title {
  color: #e2e8f0 !important;
}
.opensolr-theme--dark .opensolr-expand-search input {
  background: #1e293b !important;
  border-color: #334155 !important;
  color: #e0e0ec !important;
}
.opensolr-theme--dark .opensolr-expand-letters a {
  color: #818cf8 !important;
  background: #1e2d50 !important;
  border-color: #334155 !important;
}
.opensolr-theme--dark .opensolr-expand-letters a:hover {
  background: #2d3f6a !important;
  border-color: #818cf8 !important;
}
.opensolr-theme--dark .opensolr-expand-letters a.disabled {
  color: #475569 !important;
  background: #0f172a !important;
  border-color: #1e293b !important;
}
.opensolr-theme--dark .opensolr-expand-letter-header {
  color: #64748b !important;
  border-bottom-color: #2a3a5c !important;
}
.opensolr-theme--dark .opensolr-expand-value a {
  color: #e0e0ec !important;
}
.opensolr-theme--dark .opensolr-expand-value a:hover {
  color: #818cf8 !important;
}
.opensolr-theme--dark .opensolr-expand-search {
  border-bottom-color: #2a3a5c !important;
}
.opensolr-theme--dark .opensolr-expand-letters {
  border-bottom-color: #2a3a5c !important;
}

/* Search results */
.opensolr-theme--dark .opensolr-result {
  border-bottom-color: #1e293b !important;

}
.opensolr-theme--dark .opensolr-result-title a {
  color: #e2e8f0 !important;

}
.opensolr-theme--dark .opensolr-result-title a:hover {
  color: #a5b4fc !important;

}
.opensolr-theme--dark .opensolr-result-snippet {
  color: #cbd5e1 !important;

}
.opensolr-theme--dark .opensolr-result-uri { color: #4ade80 !important; }
.opensolr-theme--dark .opensolr-result-uri a { color: #4ade80 !important; }
.opensolr-theme--dark .opensolr-uri-sep { color: #6ee7b7 !important; }
/* Dark theme: bright contrast color for highlighted terms */
.opensolr-theme--dark .opensolr-result-snippet mark,
.opensolr-theme--dark .opensolr-result-title mark {
  background: none !important;
  color: #93c5fd !important;
  font-weight: 700 !important;
}
.opensolr-theme--dark .opensolr-result-url {
  color: #64748b !important;

}
.opensolr-theme--dark .opensolr-result-date {
  color: #fb923c !important;

}
.opensolr-theme--dark .opensolr-result-date svg {
  stroke: #fb923c !important;

}
.opensolr-theme--dark .opensolr-result-price {
  background: #052e16 !important;

  color: #4ade80 !important;

}
.opensolr-theme--dark .opensolr-result-image {
  background: #1e293b !important;

}
.opensolr-theme--dark .opensolr-result-meta {
  color: #64748b !important;

}

/* Document metadata block */
.opensolr-theme--dark .opensolr-doc-meta {
  background: #1e293b !important;

  border-left-color: #475569 !important;

  color: #94a3b8 !important;

}

/* No results */
.opensolr-theme--dark .opensolr-no-results {
  color: #94a3b8 !important;

}

/* Pagination */
.opensolr-theme--dark .opensolr-page-link {
  color: #cbd5e1 !important;

}
.opensolr-theme--dark .opensolr-page-link:hover {
  background: #334155 !important;

}
.opensolr-theme--dark .opensolr-page-current {
  background: #667eea !important;

  color: #fff !important;

}
.opensolr-theme--dark .opensolr-page-dots {
  color: #475569 !important;

}

/* Load more */
.opensolr-theme--dark .opensolr-load-more-btn {
  background: #1e293b !important;

  border-color: #334155 !important;

  color: #cbd5e1 !important;

}
.opensolr-theme--dark .opensolr-load-more-btn:hover {
  background: #334155 !important;

  color: #e2e8f0 !important;

}

/* Read button */
.opensolr-theme--dark .opensolr-read-btn {
  background: #1e293b !important;

  border-color: #475569 !important;

  color: #a5b4fc !important;

}
@media (hover: hover) {
  .opensolr-theme--dark .opensolr-read-btn:hover {
    background: #667eea !important;

    color: #fff !important;

    border-color: #667eea !important;

  }
}

/* Elevation controls */
.opensolr-theme--dark .oss-elev-bar {
  border-top-color: #334155 !important;

}
.opensolr-theme--dark .oss-elev-btn {
  background: #1e293b !important;

  border-color: #475569 !important;

  color: #a5b4fc !important;

}
@media (hover: hover) {
  .opensolr-theme--dark .oss-elev-btn:hover {
    background: #667eea !important;

    color: #fff !important;

  }
}

/* Filters toggle (mobile) */
.opensolr-theme--dark .opensolr-filters-toggle {
  background: #1e293b !important;

  border-color: #334155 !important;

  color: #cbd5e1 !important;

}

/* AI Hints response */
.opensolr-theme--dark .opensolr-ai-response {
  background: #1e293b !important;

  border-color: #334155 !important;

  border-left-color: #667eea !important;

  color: #e2e8f0 !important;

}
.opensolr-theme--dark .opensolr-ai-response code {
  background: #334155 !important;

  color: #e2e8f0 !important;

}
.opensolr-theme--dark .opensolr-ai-response h1,
.opensolr-theme--dark .opensolr-ai-response h2,
.opensolr-theme--dark .opensolr-ai-response h3 {
  color: #e2e8f0 !important;

}

/* AI Reader modal */
.opensolr-theme--dark .opensolr-reader-inner {
  background: #0f172a !important;

}
.opensolr-theme--dark .opensolr-reader-header {
  background: #1e293b !important;

  border-bottom-color: #334155 !important;

}
.opensolr-theme--dark .opensolr-reader-title {
  color: #e2e8f0 !important;

}
.opensolr-theme--dark .opensolr-reader-meta {
  color: #94a3b8 !important;

  border-bottom-color: #1e293b !important;

}
.opensolr-theme--dark .opensolr-reader-content {
  color: #cbd5e1 !important;

}
.opensolr-theme--dark .opensolr-reader-footer {
  border-top-color: #1e293b !important;

  color: #64748b !important;

}
.opensolr-theme--dark .opensolr-reader-summary code {
  background: #334155 !important;

  color: #e2e8f0 !important;

}

/* Autocomplete dropdown */
.opensolr-theme--dark .opensolr-autocomplete-dropdown {
  background: #1e293b !important;

  border-color: #334155 !important;

  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4) !important;

}
.opensolr-theme--dark .opensolr-ac-item {
  border-bottom-color: #0f172a !important;

}
.opensolr-theme--dark .opensolr-ac-item:hover,
.opensolr-theme--dark .opensolr-ac-item.opensolr-ac-active {
  background: #334155 !important;

}
.opensolr-theme--dark .opensolr-ac-suggestion-text {
  color: #a5b4fc !important;

}
.opensolr-theme--dark .opensolr-ac-count {
  background: #334155 !important;

  color: #94a3b8 !important;

}
.opensolr-theme--dark .opensolr-ac-result {
  color: #e2e8f0 !important;

}
.opensolr-theme--dark .opensolr-ac-result-text em {
  background: #854d0e !important;

  color: #fef08a !important;

}
.opensolr-theme--dark .opensolr-ac-date {
  color: #64748b !important;

}

/* ============================================================
   MOBILE RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
  /* Search input + button: same height, compact on mobile */
  .opensolr-search-input {
    padding: 8px 12px !important;
    font-size: 16px !important;
  }
  .opensolr-search-btn {
    padding: 8px 18px !important;
    font-size: 14px !important;
  }

  /* Stack layout vertically on mobile */
  .opensolr-search-layout {
    flex-direction: column !important;

  }

  /* Show the Filters toggle button on mobile */
  .opensolr-filters-toggle {
    display: flex !important;
  }

  /* Facet sidebar hidden by default on mobile, toggled via JS */
  .opensolr-facets-sidebar {
    width: 100% !important;
    display: none !important;
    flex-wrap: wrap !important;

    gap: 12px !important;

  }

  /* Show sidebar when toggled open */
  .opensolr-facets-sidebar.oss-sidebar-open {
    display: flex !important;
  }

  .opensolr-facet-group {
    flex: 1 !important;

    min-width: 150px !important;

  }

  .opensolr-result-title {
    font-size: 16px !important;
    display: block !important;
  }

  /* Force all result text to wrap within viewport on mobile */
  .opensolr-result-title a,
  .opensolr-result-uri,
  .opensolr-result-uri a,
  .opensolr-result-snippet {
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    white-space: normal !important;
    max-width: 100% !important;
  }

  /* Mobile layout: use display:contents on .opensolr-result-content so its
     children become direct flex children of .opensolr-result. This lets us
     use CSS order to place the OG image BELOW the title (like the embeddable
     search UI) instead of above all content. */
  /* Force result cards to stay within viewport — display:contents on
     .opensolr-result-content removes its min-width:0 constraint, so
     children would otherwise overflow on narrow screens */
  .opensolr-result {
    flex-direction: column !important;
    gap: 8px !important;
    overflow: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  .opensolr-result-content {
    display: contents !important;

  }

  /* Order: title(1) → uri(1) → image(2) → meta(3) → snippet(4) → footer(5) → elev(6)
     Image is full-width below title — matches the embeddable search UI on mobile */
  .opensolr-result-title { order: 1 !important; }
  .opensolr-result-uri { order: 1 !important; }
  .opensolr-result-image { order: 2 !important; width: 100% !important; height: 120px !important; max-height: 120px !important; border-radius: 8px !important; flex-shrink: 1 !important; }
  .opensolr-result-image img { width: 100% !important; height: 120px !important; max-height: 120px !important; object-fit: cover !important; }
  .opensolr-doc-meta { order: 3 !important; }
  .opensolr-result-meta { order: 3 !important; }
  .opensolr-result-snippet { order: 4 !important; }
  .opensolr-result-footer { order: 5 !important; }
  .oss-elev-bar { order: 6 !important; }

  /* Elevation buttons: show on mobile but wrap nicely */
  .oss-elev-bar {
    flex-wrap: wrap !important;

    gap: 4px !important;

  }

  /* Pagination wraps on mobile */
  .opensolr-pagination {
    flex-wrap: wrap !important;

    gap: 4px !important;

  }

  /* URL truncation handled by JS — no max-width needed */
}

/* ============================================================
   AUTOCOMPLETE DROPDOWN
   Matches the Opensolr embeddable search engine styling.
   Two item types: suggestions (past queries) and results (docs).
   ============================================================ */
.opensolr-autocomplete-dropdown {
  position: absolute !important;

  top: 100% !important;

  left: 0 !important;

  right: 0 !important;

  max-width: 700px !important;

  background: #fff !important;

  border: 1px solid #e2e8f0 !important;

  border-top: none !important;

  border-radius: 0 0 8px 8px !important;

  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1) !important;

  z-index: 1000 !important;

  max-height: 400px !important;

  overflow-y: auto !important;

}

/* Shared item styles */
.opensolr-ac-item {
  border-bottom: 1px solid #f8fafc !important;

  cursor: pointer !important;

  transition: background 0.1s;
}

.opensolr-ac-item:hover,
.opensolr-ac-item.opensolr-ac-active {
  background: #f1f5f9 !important;

}

/* --- Suggestion items (past queries with search icon + count) --- */
.opensolr-ac-suggestion {
  display: flex !important;

  align-items: center !important;

  gap: 8px !important;

  padding: 8px 12px !important;

}

.opensolr-ac-suggestion svg {
  flex-shrink: 0 !important;

}

.opensolr-ac-suggestion-text {
  font-weight: 600 !important;

  color: #667eea !important;

  font-size: 14px !important;

}

.opensolr-ac-suggestion-text em {
  font-style: normal !important;

  text-decoration: underline !important;

}

.opensolr-ac-count {
  margin-left: auto !important;

  font-size: 10px !important;

  color: #999 !important;

  background: #f0f0f4 !important;

  padding: 1px 6px !important;

  border-radius: 8px !important;

  flex-shrink: 0 !important;

}

/* --- Result items (documents with favicon + date) --- */
.opensolr-ac-result {
  display: flex !important;

  align-items: center !important;

  gap: 8px !important;

  padding: 7px 12px !important;

  text-decoration: none !important;

  color: #1e293b !important;

}

.opensolr-ac-icon {
  width: 16px !important;

  height: 16px !important;

  border-radius: 3px !important;

  flex-shrink: 0 !important;

}

.opensolr-ac-result-text {
  font-size: 14px !important;

  font-weight: 500 !important;

  line-height: 1.3 !important;

  overflow: hidden !important;

  text-overflow: ellipsis !important;

  white-space: nowrap !important;

}

.opensolr-ac-result-text em {
  font-style: normal !important;

  background: #fef08a !important;

  padding: 0 1px !important;

  border-radius: 2px !important;

}

.opensolr-ac-date {
  margin-left: auto !important;

  font-size: 11px !important;

  color: #999 !important;

  flex-shrink: 0 !important;

  white-space: nowrap !important;

}
