/* g4search.css — поиск «как Озон» (F1, волна 7, 04.09.2026).
   Подключается из local/g4w7/10-search.head.php ПОСЛЕ g4site.css, поэтому одноимённые правила отсюда
   перебивают старые правила поиска из g4site.css (те помечены на удаление — список в отчёте F1). */

/* ── строка поиска (форма) ── */
.g4qsearch-holder { display: none !important; }   /* прежняя маленькая строка верхней полосы (из старого композит-кэша) */
.g4qsearch { display: flex; align-items: center; border: 2px solid #FF6600; border-radius: 12px; background: #fff; width: 440px; max-width: 32vw; height: 40px; padding-left: 4px; box-sizing: border-box; }
.g4qsearch input { border: 0 !important; outline: none; padding: 0 10px; font-size: 14.5px; flex: 1; min-width: 0; height: 100%; background: transparent; box-shadow: none !important; color: #001a34; }
.g4qsearch input::placeholder { color: #8a8a90; opacity: 1; }
.g4qsearch button[type=submit] { border: 0; background: #FF6600; color: #fff; width: 44px; height: 30px; margin: 0 3px 0 4px; border-radius: 8px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .12s; flex: 0 0 auto; }
.g4qsearch button[type=submit]:hover { background: #e65c00; }
.g4photo-btn { border: 0; background: transparent; color: #8a94a3; width: 34px; height: 32px; padding: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: 8px; flex: 0 0 auto; transition: color .12s, background .12s; }
.g4photo-btn:hover { color: #FF6600; background: #f5f7fa; }
/* в мобильной строке #g4mhsearch button задаёт padding 0 16px и color #fff — иконке оставалось 2px, а сама она была
   белой на белом: камера была невидима, хотя тап по пустому месту открывал выбор фото. Кнопка — на всю высоту поля,
   фон как у поля (#f7f7f7), иконка серая как на десктопе */
#g4mhsearch .g4photo-btn { background: #f7f7f7; color: #8a94a3; padding: 0; height: auto; align-self: stretch; width: 40px; border-radius: 0; }
#g4mhsearch .g4photo-btn:hover { color: #FF6600; }
.g4photo-btn svg { flex: 0 0 auto; }

/* большая строка под шапкой — все страницы ≥768 (планшет 768–991 — под #mobileheader).
   w8 F1 (п.4 владельца «возьми да сделай ТАК ЖЕ как на Озоне»): строка НЕ на всю ширину
   контейнера (было 1140 px — отсюда «белое поле» выпадашки), а 760 px по центру: у Озона
   строка занимает 44 % окна (560 из 1280). Радиус 8, лупа шириной 56 прижата к правому краю
   и скруглена только справа, слева — пилюля «Везде ▾», при тексте появляется ✕. */
#g4dsearch-wrap { background: #fff; padding: 10px 0 12px; }
.g4dsearch-in { max-width: 1170px; margin: 0 auto; padding: 0 15px; }
#g4dsearch.g4qsearch { position: relative; width: 100%; max-width: 760px; margin: 0 auto; height: 44px; border-radius: 8px; padding: 0; }
#g4dsearch input[type=text] { font-size: 16px; padding: 0 8px; }
#g4dsearch button[type=submit] { width: 56px; height: 100%; margin: 0; border-radius: 0 6px 6px 0; }

/* пилюля-селектор «Везде ▾» */
/* w9 F1 (п.4, сверка с эталоном «десктоп поиск озон.jpg»): пилюля 30px / 14px, каретка — маленький залитый треугольник (svg в g4search.js) */
#g4dsearch .g4qs-scope { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; height: 30px; max-width: 190px; margin: 0 2px 0 5px; padding: 0 9px 0 11px; border: 0; background: #f2f3f5; border-radius: 6px; font-size: 14px; line-height: 1; color: #222; cursor: pointer; transition: background .15s ease-out; }
#g4dsearch .g4qs-scope:hover { background: #e8eaed; }
#g4dsearch .g4qs-scope.is-on { background: #fff3ea; color: #d95c11; }
#g4dsearch .g4qs-scope__t { max-width: 156px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#g4dsearch .g4qs-scope svg { flex: 0 0 auto; opacity: .6; }
/* w8 F1 r2: список разделов лежит в body (внутри формы он попадал в стековый контекст
   #g4dsearch-wrap{position:relative;z-index:2} и рисовался ПОД контентом страницы, не принимая
   клики — ЗАМЕРЕНО elementFromPoint). Координаты и max-height ставит js (scopePlace). */
.g4qs-scope__list { position: absolute; top: 0; left: 0; z-index: 10060; min-width: 260px; max-height: 360px; overflow: auto; overscroll-behavior: contain; background: #fff; border-radius: 12px; box-shadow: 0 8px 24px rgba(0, 0, 0, .12); padding: 6px; }
.g4qs-scope__list[hidden] { display: none; }
.g4qs-scope__i { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 8px 12px; border-radius: 8px; font-size: 14px; color: #222; cursor: pointer; }
.g4qs-scope__i:hover { background: #f5f7fa; }
.g4qs-scope__i.is-sel { color: #FF6600; font-weight: 600; }

/* ✕ очистки и камера — как у Озона: серый крестик и камера в светлом кружке */
#g4dsearch .g4qs-clear { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 28px; height: 28px; margin: 0 2px; border: 0; background: none; color: #9aa0a6; border-radius: 50%; cursor: pointer; }
#g4dsearch .g4qs-clear:hover { color: #222; background: #f2f3f5; }
/* ЗАМЕРЕНО 06.09: у Озона ✕ появляется только при вводе, а у нас он висел и в пустом поле —
   авторское `display:flex` выше перебивает браузерное правило [hidden]{display:none}
   (стиль автора сильнее стиля браузера при любой специфичности), и кнопка шириной 28 px
   рисовалась при hidden=true. Гасим явно. */
#g4dsearch .g4qs-clear[hidden] { display: none; }
#g4dsearch .g4photo-btn { width: 26px; height: 26px; margin: 0 10px 0 4px; border-radius: 50%; background: #f2f3f5; color: #707070; }
#g4dsearch .g4photo-btn:hover { background: #e8eaed; color: #FF6600; }
#g4dsearch .g4photo-btn svg { width: 15px; height: 15px; }
@media (max-width: 767px) { #g4dsearch-wrap { display: none; } }
@media (max-width: 991px) { .g4dsearch-in { padding: 0 24px; } }

/* строку вставляет отложенный JS — до этого держим под шапкой ровно её высоту (66px),
   иначе при появлении строки вся страница дёргалась вниз (ревью в7: сдвиг 66px на каждой загрузке).
   Класс g4ds-on скрипт ставит сразу, как строка появилась, — место отдаётся ей */
@media (min-width: 992px) { body:not(.g4ds-on) .wrapper1 > .header_wrap { padding-bottom: 66px; } }
@media (min-width: 768px) and (max-width: 991px) { body:not(.g4ds-on) .wrapper1 > #mobileheader { padding-bottom: 66px; } }

/* Родные точки входа в поиск прячем ТОЛЬКО когда наша строка реально появилась (класс g4ds-on
   ставит g4search.js). Если скрипт не выполнится (обрыв файла, блокировщик), у покупателя
   останется штатный поиск темы, а не пустая шапка (ревью в7). */

/* планшет 768–991: вход в поиск должен быть ОДИН — наша строка. Родную лупу мобильной шапки прячем
   (она открывала вторую строку поиска аспро поверх нашей) */
@media (min-width: 768px) and (max-width: 991px) { body.g4ds-on #mobileheader .inline-search-show { display: none !important; } }

/* страница результатов /catalog/?q=: у аспро там своя маленькая форма поиска. На ≥768 она лишняя —
   большая строка вверху и так показывает запрос (у Озона строка одна). Заодно снимается дефект:
   это поле лежало ПОД затемнением, темнело, а «Найти» не срабатывал с первого клика */
@media (min-width: 768px) { body.g4ds-on .search-page-wrap { display: none !important; } }
/* 27.09.2026 (Лиза, п.20): пока грузится g4search.js, старая форма мелькала долю секунды. html.g4ds-pre ставит
   скрипт в <head> (10-search.head.php) и сам снимает через 6 с, если наш поиск так и не включился — тогда штатная форма вернётся */
@media (min-width: 768px) { html.g4ds-pre .search-page-wrap { display: none !important; } }

/* стековка (п.1): в закрытом состоянии строка — обычный блок .wrapper1 (z 2, НИЖЕ попапов шапки z 4).
   w10 F1 (п.4 владельца, третий раз): при открытой выпадашке над затемнением (10040) — ТОЛЬКО само поле
   (форма #g4dsearch: пилюля «Везде», ввод, камера, лупа) и выпадашка; белая полоса-обёртка #g4dsearch-wrap
   остаётся ПОД затемнением. Для этого у обёртки снимается z-index (иначе она — стековый контекст, и форма
   не может подняться выше неё; ЗАМЕРЕНО: обёртка 0,168,1440,66 при z 10045 была целиком поверх затемнения),
   а z-index 10045 получает форма (position:relative у неё уже есть) */
body.g4ds-on #g4dsearch-wrap { position: relative; z-index: 2; background: #fff; }
body.g4sg-open #g4dsearch-wrap { z-index: auto; }
body.g4sg-open #g4dsearch.g4qsearch { z-index: 10045; }
/* мобильная строка (форма, а не div — правило темы .wrapper1 > div на неё не действует, z-index не было):
   при открытой выпадашке поднимаем её над затемнением, иначе поле темнело, тап в него закрывал клавиатуру,
   а тап по оранжевой лупе не искал — уходил в затемнение (ревью в7) */
body.g4sg-open #g4mhsearch { position: relative; z-index: 10045; }
.g4sg-dim { position: fixed; inset: 0; background: rgba(0, 10, 30, .42); z-index: 10040; }

/* w8 F1, п.39 владельца («выпадающие меню должны появляться ПОВЕРХ строки поиска»):
   правило волны 7, которое опускало мегаменю на высоту строки (--g4dsh), СНЯТО.
   Переменную --g4dsh скрипт по-прежнему выставляет — ею пользуется F2. */

/* ── выпадашка ДЕСКТОПА «как Озон» (.g4sd): панель шириной со строку, белая, радиус 16, тень ── */
/* w8 F1 (п.4): тень и отступы как в ТЗ, БЕЗ прокрутки (высоту ограничивает place() 560 px) */
.g4sd { position: absolute; z-index: 10050; box-sizing: border-box; background: #fff; border-radius: 16px; box-shadow: 0 8px 24px rgba(0, 0, 0, .12); padding: 16px 20px 12px; overflow: hidden; color: #001a34; font-size: 15px; line-height: 1.35; }
.g4sd-cols { display: flex; gap: 24px; align-items: flex-start; }
.g4sd-l { flex: 1 1 auto; min-width: 0; }
.g4sd-r { flex: 0 0 268px; min-width: 0; }     /* w9 F1: 2 плитки по 128 + зазор 12 (у Озона фото ~120×160, портрет) */
.g4sd-r--secs { flex-basis: 260px; }
.g4sd-t { display: flex; align-items: baseline; gap: 14px; font-size: 16px; font-weight: 700; color: #001a34; margin: 2px 0 8px; }
.g4sd-clear { font-size: 14px; font-weight: 600; color: #FF6600; text-decoration: none; }
.g4sd-clear:hover { color: #e65c00; text-decoration: none; }

/* строки: история / часто ищут / подсказки-дополнения (введённое обычным, дополнение жирным) */
.g4sd-row { display: flex; align-items: center; gap: 10px; min-height: 36px; padding: 3px 10px; margin: 0 -10px; border-radius: 10px; color: #001a34; text-decoration: none; }
.g4sd-row:hover, .g4sd-row.is-act { background: #f5f7fa; color: #001a34; text-decoration: none; }
/* w9 F1 (п.4): у Озона иконка строки (часы истории / лупа) лежит в светло-сером кружке 28px */
.g4sd-i { flex: 0 0 auto; width: 28px; height: 28px; padding: 6px; box-sizing: border-box; border-radius: 50%; background: #f2f3f5; color: #707070; }
.g4sd-row__img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; background: #f2f2f5; flex: 0 0 auto; }
.g4sd-row__t { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g4sd-row__t b { font-weight: 700; }
.g4sd-row__t small { display: block; font-size: 13px; color: #999; line-height: 1.2; }

/* товары под подсказками */
.g4sd-prods { margin-top: 6px; padding-top: 6px; border-top: 1px solid #ececf0; }
.g4sd-prod { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 4px 10px; margin: 0 -10px; border-radius: 10px; color: #001a34; text-decoration: none; }
.g4sd-prod:hover { background: #f5f7fa; color: #001a34; text-decoration: none; }
.g4sd-prod img, .g4sd-prod__no { width: 48px; height: 48px; object-fit: contain; border-radius: 8px; background: #f7f7f9; flex: 0 0 auto; }
/* у 2 товаров каталога фото нет вовсе — вместо пустого серого квадрата бледная иконка «нет фото» */
.g4sd-prod__no { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23c6ccd6' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3.5' y='5.5' width='17' height='13' rx='2.5'/><circle cx='9' cy='10' r='1.7'/><path d='m4.6 17.2 4.5-4.1 3.4 3 3-2.4 3.9 3.5'/></svg>"); background-repeat: no-repeat; background-position: center; }
.g4sd-prod__n { flex: 1; min-width: 0; font-size: 14.5px; }
.g4sd-prod__p { font-weight: 700; white-space: nowrap; }
.g4sd-empty, .g4sd-msg { padding: 10px 0; color: #8a8a90; font-size: 14px; }

/* «Перейти в раздел» — карточки с картинкой раздела целиком (contain) */
.g4sd-sec { display: flex; align-items: center; gap: 12px; padding: 6px 10px; margin: 0 -10px; border-radius: 12px; color: #001a34; text-decoration: none; }
.g4sd-sec:hover { background: #f5f7fa; color: #001a34; text-decoration: none; }
.g4sd-sec__img { width: 56px; height: 56px; flex: 0 0 auto; border-radius: 12px; background: #f7f7f9; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.g4sd-sec__img img { width: 56px; height: 56px; object-fit: contain; display: block; }
.g4sd-sec__n { font-size: 14.5px; font-weight: 600; line-height: 1.3; }

.g4sd-all { display: block; margin: 6px -8px 0; padding: 10px; text-align: center; border-radius: 12px; color: #FF6600; font-weight: 700; font-size: 15px; text-decoration: none; }
.g4sd-all:hover { background: #fff3ea; color: #e65c00; text-decoration: none; }
/* r1 (ревью, ТЗ п.4): стрелка в «Показать все результаты →» */
.g4sd-all__a { display: inline-block; margin-left: 2px; transition: transform .15s ease-out; }
.g4sd-all:hover .g4sd-all__a { transform: translateX(3px); }
/* r1: шапка фотопоиска — миниатюра снимка + сброс (как у Озона) */
.g4sd-photo { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; }
.g4sd-photo__img { width: 44px; height: 44px; flex: 0 0 44px; border-radius: 8px; object-fit: cover; background: #f2f3f5; }
.g4sd-photo__t { flex: 1 1 auto; min-width: 0; font-size: 16px; font-weight: 700; color: #001a34; }
.g4sd-photo__x { flex: 0 0 auto; width: 28px; height: 28px; padding: 0; border: 0; background: 0 0; color: #9aa0a6; border-radius: 999px; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s ease-out, color .15s ease-out; }
.g4sd-photo__x:hover { background: #f2f3f5; color: #222; }

/* плитки «Рекомендуем для вас» / фото-поиск: цена жирно, название в 2 строки.
   w9 F1 (п.4, эталон Озона): фото ВЫСОКОЕ — контейнер 3:4 (128×171), object-fit: contain, фон #f5f5f7, радиус 8;
   цена 16px/700, название 13px. Сетка фотопоиска (--wide, 8 плиток в 4 колонки) остаётся квадратной —
   с портретом две строки плиток не влезают в 560px панели и fit() выбрасывал бы половину результата */
.g4sd-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
/* результаты фотопоиска: РОВНО 4 колонки (было auto-fill — на панели 1140 px выходило 6) */
.g4sd-tiles--wide { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.g4sd-tile { display: block; color: #001a34; text-decoration: none; min-width: 0; }
.g4sd-tile:hover { color: #001a34; text-decoration: none; }
.g4sd-tile:hover .g4sd-tile__n { color: #FF6600; }
/* w9 координатор: квадратный контейнер — фото каталога квадратные, в 3:4 оставались серые поля */
.g4sd-tile__img { display: block; aspect-ratio: 1 / 1; border-radius: 8px; background: #fff; overflow: hidden; }
.g4sd-tiles--wide .g4sd-tile__img { aspect-ratio: 1 / 1; }
.g4sd-tile__img img { width: 100%; height: 100%; object-fit: contain; display: block; }
.g4sd-tile__p { display: block; margin-top: 8px; font-size: 16px; font-weight: 700; line-height: 1.2; }
.g4sd-tile__n { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 13px; line-height: 1.3; margin-top: 3px; }
/* w8 F1 r2: заглушки «Рекомендуем», пока ответ в пути — панель сразу нужной высоты, без прыжка */
.g4sd-tile--sk { pointer-events: none; }
.g4sd-tile--sk .g4sd-tile__p { height: 19px; width: 72px; border-radius: 5px; background: #f2f3f5; }
.g4sd-tile--sk .g4sd-tile__n { display: block; height: 36px; border-radius: 5px; background: #f7f7f9; }
/* w8 F1 r3: то же для строк «Часто ищут» — слова появляются один раз, без подмены запасного списка */
.g4sd-row--sk { pointer-events: none; }
.g4sd-row--sk .g4sd-i { opacity: .35; }
.g4sd-row--sk .g4sd-row__t i { display: block; height: 13px; border-radius: 7px; background: #f2f3f5; }
.g4sd-row--sk:nth-child(2n) .g4sd-row__t i { width: 58%; }
.g4sd-row--sk:nth-child(2n+1) .g4sd-row__t i { width: 42%; }
/* товар без цены (п.29): «Под заказ» вместо пустого места */
.g4sd-p--ord { color: #707070; font-weight: 600; font-size: 14px; }

@media (max-width: 991px) {
	.g4sd { padding: 14px 16px 10px; }
	.g4sd-cols { gap: 20px; }
	.g4sd-r { flex-basis: 268px; }
	.g4sd-r--secs { flex-basis: 240px; }
	.g4sd-tiles--wide { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ── мобильная выпадашка (.g4sg, ≤767 и поле на странице результатов) — принята раньше, стили прежние ── */
.g4sg { position: absolute; z-index: 10050; background: #fff; border: 1px solid #eceff3; border-radius: 16px; box-shadow: 0 8px 32px rgba(0, 26, 52, .16); padding: 12px; max-height: 70vh; overflow: auto; }
.g4sg-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.g4sg-chip { display: inline-flex; align-items: center; height: 32px; padding: 0 14px; background: #fff; border: 1px solid #e2e6ec; border-radius: 16px; font-size: 14px; color: #001a34; cursor: pointer; transition: background .12s, border-color .12s; }
.g4sg-chip:hover { background: #f5f7fa; border-color: #c9d0da; }
.g4sg-cap { color: #999; font-size: 12.5px; margin-right: 4px; align-self: center; }
.g4sg-item { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 5px 8px; border-radius: 10px; text-decoration: none; color: #001a34; }
.g4sg-item:hover { background: #f5f7fa; }
.g4sg-item img, .g4sg-noimg { width: 44px; height: 44px; object-fit: contain; border-radius: 8px; background: #f7f7f7; flex: 0 0 auto; }
.g4sg-item__n { flex: 1; font-size: 14px; line-height: 1.35; }
.g4sg-item__p { font-weight: 700; white-space: nowrap; }
.g4sg-secs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 8px; padding-top: 8px; border-top: 1px solid #f0f0f0; }
.g4sg-secs__t { color: #999; font-size: 12.5px; }
.g4sg-secs .g4sg-sec { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border: 1px solid #eee; border-radius: 22px; text-decoration: none; color: #333; font-size: 13px; transition: border-color .12s, background .12s; }
.g4sg-secs .g4sg-sec:hover { border-color: #FF6600; background: #f5f5f7; }
.g4sg-secs .g4sg-sec img { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; background: #fafafa; }
.g4sg-all { display: block; text-align: center; margin-top: 8px; padding: 10px; border-radius: 10px; color: #FF6600; text-decoration: none; font-size: 14px; font-weight: 600; }
.g4sg-all:hover { background: #f5f7fa; }

/* 23.09 (видео владельца «поиск с телефона»): выпадашка штатного поиска аспро рисуется в конце
   <body> и берёт подсказки из старого индекса Битрикса — там висят удалённые лендинги
   /landings/...: вместо фото заглушка, а переход даёт 301 на главную. Прячем её; в ту же
   строку наш скрипт ставит свою панель — с фото, ценами и живыми ссылками. */
body > .title-search-result { display: none !important; }

/* 26.09.2026: камера поиска по фото во всех прочих формах поиска (лупа в шапке телефона, форма страницы результатов) —
   внутри поля СЛЕВА: справа у темы абсолютом стоят «Найти» и крестик «закрыть» (замер 390 px: камера справа легла на крестик) */
.g4ph-host { position: relative; }
.g4ph-host > .g4photo-btn { position: absolute; left: 4px; top: 50%; transform: translateY(-50%); z-index: 3; width: 34px; height: 32px; }
.g4ph-host > input[name="q"] { padding-left: 42px !important; }
