/* НеваЛаб — поиск по сайту: кнопка в шапке, всплывающее окно, страница результатов */

/* Кнопка в шапке */
.nl-header__search {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: var(--nl-radius-sm);
  background: var(--nl-white);
  color: var(--nl-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background-color .3s ease, color .3s ease;
}
.nl-header__search:hover { background: var(--nl-dark); color: var(--nl-white); }
.nl-header__search svg { width: 16px; height: 16px; }

/* ---------- Поиск по сайту: всплывающее окно ---------- */
/* выше выезжающей кнопки формы заявки (z-index 999994) */
.nl-search { position: fixed; inset: 0; z-index: 1000001; visibility: hidden; pointer-events: none; }
.nl-search.is-open { visibility: visible; pointer-events: all; }
.nl-search__overlay {
  position: absolute;
  inset: 0;
  background: rgba(33, 33, 33, .2);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  opacity: 0;
  transition: opacity .3s ease;
}
.nl-search.is-open .nl-search__overlay { opacity: 1; }
.nl-search__panel {
  position: absolute;
  top: 12px;
  left: 8px;
  right: 8px;
  max-width: 1400px;
  max-height: calc(100svh - 24px);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  background: var(--nl-white);
  border-radius: 20px;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-12px);
  transition: opacity .3s ease, transform .3s ease;
  font-family: var(--nl-font);
}
.nl-search.is-open .nl-search__panel { opacity: 1; transform: none; }
.nl-search__close {
  position: absolute;
  z-index: 2;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: var(--nl-bg-2);
  color: var(--nl-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: background-color .3s ease, color .3s ease;
}
.nl-search__close:hover { background: var(--nl-dark); color: var(--nl-white); }
.nl-search__close svg { width: 12px; height: 12px; }
.nl-search__inner { padding: 56px 20px 32px; overflow-y: auto; }
.nl-search__title { font: 400 28px/110% var(--nl-font); color: var(--nl-text); margin: 0 0 16px; }
.nl-search__form { position: relative; display: flex; align-items: center; margin: 0; }
.nl-search__input {
  width: 100%;
  height: 52px;
  padding: 0 156px 0 20px !important;
  border: 0 !important;
  border-radius: var(--nl-radius) !important;
  background: var(--nl-bg-2) !important;
  font: 400 16px/20px var(--nl-font) !important;
  color: var(--nl-text) !important;
  box-shadow: none !important;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box;
}
.nl-search__input::placeholder { color: var(--nl-text-2); }
.nl-search__input:focus { box-shadow: inset 0 0 0 2px var(--nl-dark) !important; }
.nl-search__input::-webkit-search-cancel-button { display: none; }
.nl-search__clear {
  position: absolute;
  right: 118px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border: 0;
  border-radius: 50%;
  background: var(--nl-border);
  color: var(--nl-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}
.nl-search__clear[hidden] { display: none; }
.nl-search__clear svg { width: 8px; height: 8px; }
.nl-search__submit { position: absolute; top: 6px; right: 6px; bottom: 6px; padding: 0 24px; justify-content: center; }
.nl-search__block { margin-top: 32px; }
.nl-search__block[hidden] { display: none; }
.nl-search__label { font: 400 14px/18px var(--nl-font); color: var(--nl-text-2); margin: 0 0 12px; }
.nl-search__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
}
.nl-search__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  height: 100%;
  padding: 14px 16px;
  box-sizing: border-box;
  background: var(--nl-bg-3);
  border-radius: var(--nl-radius);
  font: 400 16px/20px var(--nl-font);
  color: var(--nl-text) !important;
  transition: background-color .3s ease;
}
.nl-search__link:hover { background: var(--nl-border); }
.nl-search__name { display: block; }
.nl-search__desc {
  display: -webkit-box;
  margin-top: 4px;
  font-size: 13px;
  line-height: 17px;
  color: var(--nl-text-2);
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.nl-search__arrow {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--nl-white);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color .3s ease, color .3s ease;
}
.nl-search__arrow svg { width: 8px; height: 8px; }
.nl-search__link:hover .nl-search__arrow { background: var(--nl-accent); color: var(--nl-white); }
.nl-search__all { margin-top: 16px; }
.nl-search__all[hidden] { display: none; }
@media (min-width: 1180px) {
  .nl-search__panel { top: 20px; left: 20px; right: 20px; max-height: calc(100svh - 40px); }
  .nl-search__inner { padding: 64px 40px 40px; }
  .nl-search__title { font-size: 40px; margin-bottom: 24px; }
  .nl-search__close { top: 20px; right: 20px; }
}

/* Страница результатов «Умного поиска» */
.com-finder > h1, .com-finder .page-header h1 { font: 400 36px/110% var(--nl-font) !important; margin: 0 0 24px !important; }
@media (min-width: 1180px) { .com-finder > h1, .com-finder .page-header h1 { font-size: 56px !important; margin-bottom: 32px !important; } }
.com-finder__form label { display: none !important; }
.com-finder__form fieldset { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.com-finder__form .form-inline { display: block !important; margin: 0 !important; }
#g-page-surround .com-finder__form .input-group { display: flex; gap: 4px; max-width: 760px; flex-wrap: nowrap; margin: 0 !important; }
#g-page-surround .com-finder__form .form-control {
  height: 52px;
  margin: 0 !important;
  padding: 0 20px !important;
  border: 0 !important;
  border-radius: var(--nl-radius) !important;
  background: var(--nl-bg-2) !important;
  font: 400 16px/20px var(--nl-font) !important;
  color: var(--nl-text) !important;
  box-shadow: none !important;
}
#g-page-surround .com-finder__form .form-control:focus { box-shadow: inset 0 0 0 2px var(--nl-dark) !important; }
#g-page-surround .com-finder__form .btn-primary {
  flex: 0 0 auto;
  height: 52px;
  margin: 0 !important;
  border: 0 !important;
  border-radius: var(--nl-radius-sm) !important;
  background: var(--nl-accent) !important;
  color: var(--nl-white) !important;
  padding: 0 28px !important;
  font: 400 14px/17px var(--nl-font) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
}
#g-page-surround .com-finder__form .btn-primary:hover { background: var(--nl-accent-hover) !important; }
.com-finder__form .icon-search { display: none; }
.com-finder__results-list { list-style: none !important; margin: 32px 0 0 !important; padding: 0 !important; display: grid; gap: 4px; max-width: 1000px; }
.com-finder .result__item { background: var(--nl-bg-3); border: 0 !important; border-radius: var(--nl-radius); padding: 20px 24px !important; margin: 0 !important; }
.com-finder .result__item:has(a[href*="/component/tags/"]) { display: none; }
.com-finder .result__title { margin: 0 0 6px; font: 400 20px/125% var(--nl-font); }
.com-finder .result__title a:hover { color: var(--nl-accent) !important; }
.com-finder .result__title-url { display: none; }
.com-finder .result__description { margin: 0; font: 400 15px/150% var(--nl-font); color: var(--nl-text-3); }
.com-finder mark, .com-finder .highlight { background: rgba(221, 23, 20, .12); color: inherit; padding: 0 2px; border-radius: 3px; }
.com-finder__navigation { margin-top: 24px; font: 400 14px/18px var(--nl-font); color: var(--nl-text-2); }
