/* Галерея моделей dev.ivstore.ru — фильтры, сетка, карточка модели.
   Токены — глобальные цвета кита Elementor (как в figures.css) с запасными значениями.
   Всё под #ivgal: кит (`.elementor-kit-210 a`, `input:not([type=button])…` до (0,3,1))
   и Astra (у select своя фоновая стрелка) перебивают голые классы, а вес id выигрывает
   у них без !important. Кнопки — стандарт сайта: 16px/700, радиус 100, без анимации,
   ховер v2 (светлое кольцо + свой цвет наведения). */

#ivgal{
	--g-alt:var(--e-global-color-bgalt,#0F131A);
	--g-s1:var(--e-global-color-surf1,#141922);
	--g-s2:var(--e-global-color-surf2,#1A202B);
	--g-bd:var(--e-global-color-bordr,#232B38);
	--g-tx:var(--e-global-color-text,#EDF2F8);
	--g-mu:var(--e-global-color-muted,#93A0B2);
	--g-pr:var(--e-global-color-primary,#A5D400);
	--g-on:var(--e-global-color-ongrn,#0B1400);
	--g-ring:0 0 0 3px rgba(237,242,248,.35);
	display:flex;flex-direction:column;gap:22px;width:100%;
	font-family:Onest,sans-serif;color:var(--g-tx)}
#ivgal *,#ivgal *::before,#ivgal *::after{box-sizing:border-box}

/* --- панель фильтров ------------------------------------------------------ */
/* Одна строка (владелец): поиск, два фильтра — вселенная и персонаж — и сортировка значком.
   Студия — только в поиске и в карточке модели. На телефоне поиск свёрнут в лупу (ниже). */
#ivgal .ivgal__bar{position:relative;display:flex;align-items:center;gap:8px}
#ivgal .ivgal__bar label{display:block;min-width:0;margin:0}
#ivgal .ivgal__search{flex:2 1 0}
#ivgal .ivgal__sel{flex:1 1 0}
/* Сортировка: значок, под ним невидимый родной select — на телефоне открывается системный список. */
/* Удвоенный класс: общее `#ivgal .ivgal__bar label{display:block}` весом (1,1,1) иначе снимал grid,
   и значок прилипал к верху круга. */
#ivgal .ivgal__bar .ivgal__sortw{position:relative;flex:0 0 48px;display:grid;place-items:center;width:48px;height:48px;
	border:1px solid var(--g-bd);border-radius:100px;background:var(--g-s1);color:var(--g-mu);cursor:pointer}
#ivgal .ivgal__sortw svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;pointer-events:none}
#ivgal .ivgal__sortw select{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;
	cursor:pointer;appearance:none;-webkit-appearance:none;color-scheme:dark;font-size:16px}
#ivgal .ivgal__sortw option{background:#141922;color:#EDF2F8}
#ivgal .ivgal__sortw:hover{border-color:#3A4556;color:var(--g-tx)}
#ivgal .ivgal__sortw.is-set{border-color:var(--g-pr);color:var(--g-pr)}
#ivgal .ivgal__sortw:focus-within{outline:3px solid var(--g-pr);outline-offset:2px}
#ivgal .ivgal__field{display:block;width:100%;height:48px;margin:0;padding:0 18px;
	border:1px solid var(--g-bd);border-radius:100px;background-color:var(--g-s1);
	color:var(--g-tx);font:600 15px/1.2 Onest,sans-serif;letter-spacing:0;
	box-shadow:none;outline:0;appearance:none;-webkit-appearance:none;color-scheme:dark;transition:none}
#ivgal select.ivgal__field{padding-right:44px;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2393A0B2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat:no-repeat;background-position:right 18px center;background-size:12px 8px}
#ivgal select.ivgal__field option{background:#141922;color:#EDF2F8}
#ivgal input.ivgal__field{padding-left:46px;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Ccircle cx='7' cy='7' r='5.5' fill='none' stroke='%2393A0B2' stroke-width='2'/%3E%3Cpath d='M11.2 11.2L15 15' stroke='%2393A0B2' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat:no-repeat;background-position:18px center;background-size:16px 16px}
#ivgal input.ivgal__field::placeholder{color:var(--g-mu);opacity:1}
#ivgal .ivgal__field:hover{border-color:#3A4556}
#ivgal .ivgal__field.is-set{border-color:var(--g-pr);color:var(--g-pr)}
#ivgal .ivgal__field:focus-visible{border-color:var(--g-pr);outline:3px solid var(--g-pr);outline-offset:2px}

@media(max-width:560px){
	/* Четыре поля в 331px не читаются, поэтому поиск — лупа 48px; тап раскрывает его на всю
	   строку поверх фильтров, пустой — сворачивается обратно (класс is-searching ставит JS). */
	#ivgal .ivgal__search{flex:0 0 48px}
	#ivgal .ivgal__search input.ivgal__field{padding:0 0 0 46px;background-position:15px center}
	#ivgal .ivgal__search input.ivgal__field::placeholder{color:transparent}
	#ivgal .ivgal__bar.is-searching .ivgal__search{position:absolute;top:0;left:0;right:0;z-index:2}
	#ivgal .ivgal__bar.is-searching .ivgal__search input.ivgal__field{padding-right:18px}
	#ivgal .ivgal__bar.is-searching .ivgal__search input.ivgal__field::placeholder{color:var(--g-mu)}
	/* Чтобы «Вселенная» и «Персонаж» читались целиком: значки 44px, зазоры 6px, стрелка меньше. */
	#ivgal .ivgal__bar{gap:6px}
	#ivgal .ivgal__search{flex:0 0 44px}
	#ivgal .ivgal__bar .ivgal__sortw{flex:0 0 44px;width:44px;height:44px}
	#ivgal .ivgal__search input.ivgal__field{height:44px;padding:0 0 0 42px;background-position:13px center}
	#ivgal .ivgal__sel select.ivgal__field{height:44px;padding:0 20px 0 10px;background-position:right 8px center;background-size:9px 6px}
}

/* --- подсказки поиска (как в поисковиках) --------------------------------- */
#ivgal .ivgal__sugg{position:absolute;top:calc(100% + 6px);left:0;z-index:5;max-width:100%;margin:0;padding:6px;list-style:none;
	background:var(--g-s1);border:1px solid var(--g-bd);border-radius:14px;box-shadow:0 14px 36px rgba(0,0,0,.5)}
#ivgal .ivgal__sugg li{display:flex;align-items:center;gap:12px;min-height:44px;margin:0;padding:8px 12px;border-radius:10px;
	cursor:pointer;font:600 15px/1.3 Onest,sans-serif;color:var(--g-tx)}
#ivgal .ivgal__sugg li[aria-selected="true"],#ivgal .ivgal__sugg li:hover{background:var(--g-s2)}
#ivgal .ivgal__sugg li.ivgal__sugg-h{min-height:0;padding:6px 12px 4px;cursor:default;font:400 15px/1.3 Onest,sans-serif;color:var(--g-mu);background:none}
#ivgal .ivgal__sugg-l{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#ivgal .ivgal__sugg-l mark{padding:0;background:none;color:var(--g-pr);font-weight:700}
#ivgal .ivgal__sugg-t{flex:0 1 auto;min-width:0;max-width:55%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
	font:400 15px/1.3 Onest,sans-serif;color:var(--g-mu)}

/* --- счётчик, сброс, сортировка ------------------------------------------ */
#ivgal .ivgal__meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
#ivgal .ivgal__count{margin:0;font:600 15px/1.4 Onest,sans-serif;color:var(--g-mu)}
#ivgal .ivgal__reset{appearance:none;min-height:0;margin:0;padding:0;border:0;background:none;box-shadow:none;
	color:var(--g-pr);font:600 15px/1.4 Onest,sans-serif;text-decoration:underline;
	text-underline-offset:3px;text-transform:none;letter-spacing:0;cursor:pointer;transition:none}
#ivgal .ivgal__reset:hover,#ivgal .ivgal__reset:focus{background:none;color:#B6EA0A}

/* --- сетка ------------------------------------------------------------------ */
#ivgal .ivgal__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin:0;padding:0;list-style:none}
@media(max-width:1024px){#ivgal .ivgal__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}
@media(max-width:767px){#ivgal .ivgal__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}
#ivgal .ivgal__card{min-width:0;margin:0;padding:0}
#ivgal a.ivgal__open{display:flex;flex-direction:column;height:100%;overflow:hidden;
	background:var(--g-s1);border:1px solid var(--g-bd);border-radius:14px;
	color:var(--g-tx);text-decoration:none;transition:none}
#ivgal a.ivgal__open:hover{border-color:var(--g-pr);color:var(--g-tx)}
#ivgal a.ivgal__open:focus-visible{outline:3px solid var(--g-pr);outline-offset:2px}
#ivgal .ivgal__img{display:block;aspect-ratio:1/1;overflow:hidden;background:var(--g-alt)}
#ivgal .ivgal__img img{display:block;width:100%;height:100%;object-fit:cover}
/* Лёгкое приближение обложки при наведении (владелец) — только там, где есть мышь,
   и не для тех, кто отключил анимацию в системе. */
@media(hover:hover) and (prefers-reduced-motion:no-preference){
	#ivgal .ivgal__img img{transition:transform .35s ease}
	#ivgal a.ivgal__open:hover .ivgal__img img{transform:scale(1.05)}
}
#ivgal .ivgal__txt{display:flex;flex-direction:column;gap:4px;min-width:0;padding:14px 16px 16px}
/* Одна строка на имя и одна на подпись: высоты карточек в ряду совпадают всегда. */
#ivgal .ivgal__name,#ivgal .ivgal__sub{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#ivgal .ivgal__name{font:700 17px/1.3 Onest,sans-serif}
#ivgal .ivgal__sub{font:400 15px/1.4 Onest,sans-serif;color:var(--g-mu)}
@media(max-width:767px){
	#ivgal .ivgal__txt{padding:12px 12px 14px}
	#ivgal .ivgal__name{font-size:15px}
}

/* --- пусто / показать ещё ------------------------------------------------- */
#ivgal .ivgal__empty{padding:44px 26px;text-align:center;border:1px dashed var(--g-bd);border-radius:14px;background:var(--g-alt)}
#ivgal .ivgal__empty p{margin:0 0 6px;font:700 17px/1.4 Onest,sans-serif;color:var(--g-tx)}
#ivgal .ivgal__empty span{font:400 15px/1.6 Onest,sans-serif;color:var(--g-mu)}

/* --- кнопки ------------------------------------------------------------------ */
#ivgal .ivgal__btn,#ivgal .ivgal__more{display:inline-flex;align-items:center;justify-content:center;
	min-height:48px;margin:0;padding:12px 26px;border:1px solid transparent;border-radius:100px;
	font:700 16px/1.2 Onest,sans-serif;letter-spacing:0;text-transform:none;text-decoration:none;
	white-space:nowrap;cursor:pointer;box-shadow:none;transition:none}
#ivgal .ivgal__btn--p,#ivgal .ivgal__btn--p:visited{background:var(--g-pr);border-color:var(--g-pr);color:var(--g-on)}
#ivgal .ivgal__btn--p:hover{background:#B6EA0A;border-color:#B6EA0A;color:var(--g-on);box-shadow:var(--g-ring)}
#ivgal .ivgal__btn--tg,#ivgal .ivgal__btn--tg:visited{background:#0F7CB8;border-color:#0F7CB8;color:#fff}
#ivgal .ivgal__btn--tg:hover{background:#0C6699;border-color:#0C6699;color:#fff;box-shadow:var(--g-ring)}
#ivgal .ivgal__more{align-self:center;background:transparent;border-color:var(--g-bd);color:var(--g-tx)}
#ivgal .ivgal__more:hover{background:var(--g-pr);border-color:var(--g-pr);color:var(--g-on);box-shadow:var(--g-ring)}
#ivgal .ivgal__btn:focus-visible,#ivgal .ivgal__more:focus-visible,#ivgal .ivgal__reset:focus-visible,
#ivgal .ivgal__x:focus-visible,#ivgal .ivgal__thumb:focus-visible,#ivgal a.ivgal__src:focus-visible{outline:3px solid var(--g-pr);outline-offset:2px}

/* --- карточка модели (dialog) ------------------------------------------------ */
#ivgal .ivgal__dlg{width:min(980px,calc(100% - 28px));max-width:none;max-height:calc(100dvh - 28px);
	margin:auto;padding:0;overflow:auto;overscroll-behavior:contain;
	border:1px solid var(--g-bd);border-radius:18px;background:var(--g-s1);color:var(--g-tx)}
#ivgal .ivgal__dlg::backdrop{background:rgba(5,7,10,.78)}
html:has(#ivgal-dlg[open]){overflow:hidden}
#ivgal .ivgal__dlg-in{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
#ivgal .ivgal__dlg-media{display:flex;flex-direction:column;gap:10px;min-width:0;padding:14px;background:var(--g-alt)}
#ivgal .ivgal__dlg-img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;border-radius:10px}
#ivgal .ivgal__thumbs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
#ivgal .ivgal__thumb{flex:0 0 64px;width:64px;height:64px;margin:0;padding:0;overflow:hidden;cursor:pointer;
	border:2px solid transparent;border-radius:8px;background:var(--g-s1);box-shadow:none;transition:none}
#ivgal .ivgal__thumb:hover{border-color:#3A4556;background:var(--g-s1)}
#ivgal .ivgal__thumb[aria-current="true"]{border-color:var(--g-pr)}
#ivgal .ivgal__thumb img{display:block;width:100%;height:100%;object-fit:cover}
#ivgal .ivgal__dlg-info{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-width:0;padding:34px 30px 30px}
#ivgal .ivgal__pill{padding:5px 12px;border-radius:100px;background:rgba(165,212,0,.12);color:var(--g-pr);font:600 15px/1.2 Onest,sans-serif}
#ivgal .ivgal__dlg h2{margin:0;padding-right:44px;font:700 26px/1.25 Onest,sans-serif;letter-spacing:-.2px;color:var(--g-tx)}
#ivgal .ivgal__desc{margin:0;font:400 15px/1.6 Onest,sans-serif;color:var(--g-mu)}
#ivgal .ivgal__facts{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0;font:400 15px/1.5 Onest,sans-serif}
#ivgal .ivgal__facts dt{margin:0;font-weight:400;color:var(--g-mu)}
#ivgal .ivgal__facts dd{margin:0;font-weight:600;color:var(--g-tx)}
/* Высота при заказе — радиокнопки (владелец): 12 / 18 / 24 см, по умолчанию 18. Пилюли в ряд
   на любой ширине: на телефоне три по ~95px, текст «12 см» влезает с кружком. */
#ivgal .ivgal__sizes{display:flex;flex-direction:column;gap:8px;width:100%;min-width:0;margin:2px 0 0;padding:0;border:0}
#ivgal .ivgal__sizes-l{float:none;margin:0 0 8px;padding:0;font:400 15px/1.4 Onest,sans-serif;color:var(--g-mu)}
#ivgal .ivgal__radios{display:flex;gap:8px}
#ivgal .ivgal__radio{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:0;min-height:44px;
	margin:0;padding:10px 12px;border:1px solid var(--g-bd);border-radius:100px;cursor:pointer;
	font:600 15px/1.2 Onest,sans-serif;color:var(--g-tx);white-space:nowrap}
#ivgal .ivgal__radio:hover{border-color:#3A4556}
#ivgal .ivgal__radio input{appearance:none;-webkit-appearance:none;flex:0 0 18px;width:18px;height:18px;margin:0;padding:0;
	border:2px solid var(--g-mu);border-radius:50%;background:transparent;box-shadow:none;cursor:pointer}
#ivgal .ivgal__radio input:checked{border-color:var(--g-pr);background:var(--g-pr);box-shadow:inset 0 0 0 3px var(--g-s1)}
#ivgal .ivgal__radio:has(input:checked){border-color:var(--g-pr)}
#ivgal .ivgal__radio:has(input:focus-visible){outline:3px solid var(--g-pr);outline-offset:2px}
/* Две кнопки в одну строку (владелец): заказ забирает остаток, Telegram — по подписи.
   Уже 1100px полная подпись «Спросить в Telegram» не влезает рядом — остаётся «Telegram» со значком. */
#ivgal .ivgal__acts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;margin-top:6px}
#ivgal .ivgal__acts .ivgal__btn{gap:8px;min-height:48px;padding:12px 16px;font-size:15px}
#ivgal .ivgal__tg{flex:0 0 18px;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
#ivgal .ivgal__l-short{display:none}
@media(max-width:1100px){
	#ivgal .ivgal__l-full{display:none}
	#ivgal .ivgal__l-short{display:inline}
}
#ivgal a.ivgal__src,#ivgal a.ivgal__src:visited{font:600 15px/1.4 Onest,sans-serif;color:var(--g-mu);text-decoration:underline;text-underline-offset:3px}
#ivgal a.ivgal__src:hover{color:var(--g-tx)}
#ivgal .ivgal__x{position:absolute;top:12px;right:12px;z-index:1;display:grid;place-items:center;
	width:44px;height:44px;min-height:0;margin:0;padding:0;cursor:pointer;
	border:1px solid var(--g-bd);border-radius:100px;background:rgba(11,14,19,.8);color:var(--g-tx);box-shadow:none;transition:none}
#ivgal .ivgal__x:hover{background:var(--g-s2);color:var(--g-tx);box-shadow:var(--g-ring)}
#ivgal .ivgal__x svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
@media(max-width:767px){
	#ivgal .ivgal__dlg-in{grid-template-columns:1fr}
	#ivgal .ivgal__dlg-info{padding:22px 22px 26px}
	#ivgal .ivgal__dlg h2{padding-right:0;font-size:22px}
	#ivgal .ivgal__acts .ivgal__btn{padding:12px 12px}
	#ivgal .ivgal__radio{padding:10px 8px}
}

/* Последним: у кнопок и блоков свой display, а [hidden] должен побеждать всегда. */
#ivgal [hidden]{display:none!important}
