/* Поиск по сайту: кнопка в шапке и окно поиска (search/search.js) */

/* ---------- Кнопки «Поиск» и «Версия для слабовидящих» в шапке ---------- */
/* На компьютере — одна общая «капсула» с двумя иконками, чтобы шапка не стала шире */
.nav-tools { display: inline-flex; align-items: center; flex: 0 0 auto; border: 1px solid rgba(104, 92, 84, .14); border-radius: 999px; background: rgba(255, 253, 249, .46); }
.nav-tools .nav-pill.nav-search,
.nav-tools .nav-pill.nav-bvi { min-height: 32px; width: 36px; padding: 0; border: 0; border-radius: 999px; background: transparent; cursor: pointer; color: var(--v3-ink-secondary); }
.nav-tools .nav-pill.nav-search:hover,
.nav-tools .nav-pill.nav-bvi:hover { color: var(--v3-ink); background: rgba(255, 253, 249, .82); }
.nav-tools .nav-pill.nav-search svg { width: 19px; height: 19px; flex: 0 0 auto; }
.nav-tools .nav-pill.nav-bvi svg { width: 21px; height: 21px; }
.nav-search:focus-visible { outline: 2px solid var(--v3-champagne-deep); outline-offset: 2px; }
/* Планшеты и телефоны: две отдельные иконки 44×44 без рамки, как телефон */
@media (max-width: 1120px) {
  .nav-tools { border: 0; background: transparent; }
  .nav-tools .nav-pill.nav-search,
  .nav-tools .nav-pill.nav-bvi { min-height: 44px; width: 44px; color: var(--v3-ink); }
  .nav-tools .nav-pill.nav-search svg { width: 24px; height: 24px; }
  .nav-tools .nav-pill.nav-bvi svg { width: 26px; height: 26px; }
}

/* Компьютеры: чуть плотнее пункты меню, чтобы логотип не упирался в «Услуги»
   (ширина шапки ограничена контейнером, поэтому на больших экранах места не больше) */
@media (min-width: 1121px) {
  .nav-inner .nav-links { gap: .625rem; }
  .nav-inner .nav-utility { gap: .5rem; }
}

/* ---------- Окно поиска ---------- */
html.pls-open { overflow: hidden; }
.pls { position: fixed; inset: 0; z-index: 130; display: flex; justify-content: center; align-items: flex-start; padding: 1.5rem; }
.pls[hidden] { display: none; }
/* Окно поиска поверх баннера cookie (z-index 120) и панели версии для слабовидящих (999999) */
.bvi-active .pls { z-index: 1000000; }
.pls-backdrop { position: absolute; inset: 0; border: 0; padding: 0; background: rgba(10, 10, 10, .55); cursor: pointer; }
.pls-panel {
  position: relative; display: flex; flex-direction: column;
  width: 100%; max-width: 64rem; max-height: calc(100dvh - 3rem);
  background: var(--v3-cream); color: var(--v3-ink);
  border-radius: 4px; box-shadow: 0 24px 70px rgba(10, 10, 10, .22);
  font-family: var(--v3-font-body); overflow: hidden;
}

.pls-head { display: flex; align-items: center; gap: .75rem; padding: .875rem 1rem .875rem 1.5rem; border-bottom: 1px solid var(--v3-border-hair); }
.pls-head > svg { width: 22px; height: 22px; flex: 0 0 auto; color: var(--v3-champagne); }
.pls-input {
  flex: 1 1 auto; min-width: 0; min-height: 44px; border: 0; background: transparent;
  color: var(--v3-ink); font-family: var(--v3-font-body); font-size: 1.125rem; line-height: 1.3; outline: none;
}
.pls .pls-input, .pls .pls-input:focus, .pls .pls-input:focus-visible { border: 0; border-radius: 0; outline: none; box-shadow: none; padding: 0; }
.pls-head:focus-within { border-bottom-color: var(--v3-champagne); }
.pls-input::placeholder { color: var(--v3-ink-faint); }
.pls-input::-webkit-search-cancel-button { display: none; }
.pls-clear {
  border: 0; background: none; padding: .5rem; cursor: pointer;
  color: var(--v3-ink-muted); font-family: var(--v3-font-body); font-size: .8125rem;
  text-decoration: underline dashed; text-underline-offset: 3px;
}
.pls-clear[hidden] { display: none; }
.pls-x { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 auto; border: 0; background: none; border-radius: 999px; cursor: pointer; color: var(--v3-ink); }
.pls-x:hover { background: var(--v3-surface-muted); }
.pls-x svg { width: 22px; height: 22px; }
.pls-clear:focus-visible, .pls-x:focus-visible, .pls-tools select:focus-visible, .pls a:focus-visible, .pls button:focus-visible { outline: 2px solid var(--v3-champagne-deep); outline-offset: 2px; }

.pls-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.5rem; padding: .75rem 1.5rem; border-bottom: 1px solid var(--v3-border-hair); background: var(--v3-cream-alt); font-size: .8125rem; color: var(--v3-ink-muted); }
.pls-tools[hidden] { display: none; }
.pls-count { margin-right: auto; color: var(--v3-ink); }
.pls-tools label { display: inline-flex; align-items: center; gap: .5rem; }
.pls-tools select {
  appearance: none; -webkit-appearance: none; min-height: 34px; padding: .25rem 1.75rem .25rem .75rem;
  border: 1px solid var(--v3-border-soft); border-radius: 999px; cursor: pointer;
  background: var(--v3-surface-card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23917271' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right .7rem center;
  color: var(--v3-ink); font-family: var(--v3-font-body); font-size: .8125rem;
}

.pls-body { overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 1.25rem 1.5rem 1.75rem; }
.pls-section + .pls-section { margin-top: 1.75rem; }
.pls-h { margin: 0 0 .75rem; font-family: var(--v3-font-body); font-size: .75rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--v3-ink-muted); }
.pls-h span { letter-spacing: 0; font-weight: 400; color: var(--v3-ink-faint); }
.pls mark { background: rgba(145, 114, 113, .16); color: inherit; border-radius: 2px; padding: 0 .05em; }

/* Подсказки при пустом запросе */
.pls-hint { margin: 0 0 .875rem; font-size: .9375rem; line-height: 1.5; color: var(--v3-ink-muted); }
.pls-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.pls-chip { min-height: 36px; padding: .375rem .875rem; border: 1px solid var(--v3-border-soft); border-radius: 999px; background: var(--v3-surface-card); cursor: pointer; color: var(--v3-ink); font-family: var(--v3-font-body); font-size: .875rem; }
.pls-chip:hover { border-color: var(--v3-champagne); }

/* Врачи */
.pls-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: .75rem; }
.pls-doc { display: flex; gap: .875rem; align-items: center; padding: .75rem; border: 1px solid var(--v3-border-hair); border-radius: 4px; background: var(--v3-surface-card); }
.pls-doc img { width: 64px; height: 80px; flex: 0 0 auto; object-fit: cover; object-position: center 15%; border-radius: 3px; background: var(--v3-sand); }
.pls-doc-main { min-width: 0; display: flex; flex-direction: column; gap: .2rem; }
.pls-doc-name { color: var(--v3-ink); font-size: .9375rem; line-height: 1.3; text-decoration: none; }
.pls-doc-name:hover { text-decoration: underline; }
.pls-doc-spec { font-size: .8125rem; color: var(--v3-ink-muted); }
.pls-doc-care { font-size: .8125rem; line-height: 1.4; color: var(--v3-ink); }
.pls-doc-actions { display: flex; flex-wrap: wrap; gap: .25rem .875rem; margin-top: .25rem; font-size: .8125rem; }
.pls-doc-actions a, .pls-doc-actions button { padding: 0; border: 0; background: none; cursor: pointer; color: var(--v3-champagne-deep); font-family: var(--v3-font-body); font-size: .8125rem; text-decoration: underline; text-underline-offset: 3px; }

/* Услуги и цены */
.pls-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--v3-border-hair); }
.pls-row { display: flex; align-items: baseline; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--v3-border-hair); }
.pls-row-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: .2rem; }
.pls-row-title { color: var(--v3-ink); font-size: .9375rem; line-height: 1.4; text-decoration: none; }
.pls-row-title:hover { text-decoration: underline; }
.pls-row-meta { font-size: .8125rem; color: var(--v3-ink-muted); }
.pls-row-meta a { color: var(--v3-champagne-deep); }
.pls-price { flex: 0 0 auto; white-space: nowrap; font-size: .9375rem; color: var(--v3-ink); }
.pls-more { margin-top: 1rem; padding: .5rem 1.125rem; min-height: 40px; border: 1px solid var(--v3-border-soft); border-radius: 999px; background: transparent; cursor: pointer; color: var(--v3-ink); font-family: var(--v3-font-body); font-size: .875rem; }
.pls-more:hover { border-color: var(--v3-champagne); }

/* Разделы сайта */
.pls-pages { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.pls-page { display: block; padding: .625rem .875rem; border: 1px solid var(--v3-border-hair); border-radius: 4px; background: var(--v3-surface-card); text-decoration: none; }
.pls-page:hover { border-color: var(--v3-border-soft); }
.pls-page b { display: block; font-weight: 400; color: var(--v3-ink); font-size: .9375rem; }
.pls-page span { display: block; margin-top: .15rem; font-size: .8125rem; line-height: 1.45; color: var(--v3-ink-muted); }

.pls-empty { margin: 0; font-size: .9375rem; line-height: 1.6; color: var(--v3-ink-muted); }
.pls-empty a { color: var(--v3-champagne-deep); }

/* Подсветка найденной строки на странице цен */
.price-group { scroll-margin-top: 110px; }
tr.pls-flash > td { animation: pls-flash 2.6s ease-out 1; }
@keyframes pls-flash { 0%, 35% { background: rgba(145, 114, 113, .2); } 100% { background: transparent; } }

/* Телефоны: окно на весь экран */
@media (max-width: 640px) {
  .pls { padding: 0; }
  .pls-panel { max-width: none; height: 100dvh; max-height: none; border-radius: 0; }
  .pls-head { padding: max(.5rem, env(safe-area-inset-top)) .5rem .5rem 1rem; gap: .5rem; }
  .pls-input { font-size: 1rem; }
  .pls-tools { padding: .625rem 1rem; gap: .5rem 1rem; }
  .pls-count { flex-basis: 100%; }
  .pls-body { padding: 1rem 1rem max(1.5rem, env(safe-area-inset-bottom)); }
  .pls-docs { grid-template-columns: 1fr; }
  .pls-row { flex-direction: column; gap: .25rem; }
  .pls-price { font-weight: 500; }
}
