@charset "UTF-8";
/*
 * Этап 0 мобильной версии (17.09.2026): срочные исправления вёрстки на телефоне.
 * ВСЕ правила — только для ширины до 760 px: сайт для компьютера не затрагивается.
 * Скрипт — js/mobile_fix.js. План: артефакт «GSM-Опт в телефоне».
 */
@media (max-width: 760px) {

	/* 1. Фильтры — шторка снизу, а не блок в странице ------------------------ */
	.gsm-catalog .cat-filter { display: none !important; }
	html.gsm-fs-open .gsm-catalog .cat-filter {
		display: block !important; position: fixed !important; left: 0; right: 0; bottom: 0; z-index: 100010;
		max-height: 80vh; margin: 0 !important; padding: 8px 16px calc(84px + env(safe-area-inset-bottom, 0px)) !important;
		overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
		border: 0 !important; border-radius: 20px 20px 0 0 !important; background: var(--gsm-card, #fff) !important;
		box-shadow: 0 -12px 40px rgba(20, 28, 38, .25); animation: gsmSheetIn .22s ease-out;
	}
	.gsm-fs-dim { display: none; }
	html.gsm-fs-open .gsm-fs-dim { display: block; position: fixed; inset: 0; z-index: 100000; background: rgba(20, 28, 38, .45); }
	html.gsm-fs-open, html.gsm-fs-open body { overflow: hidden; }
	.gsm-fs-head { display: none; }
	html.gsm-fs-open .gsm-fs-head {
		position: sticky; top: -8px; z-index: 2; display: flex; align-items: center; justify-content: space-between;
		margin: -8px -16px 8px; padding: 14px 16px 10px; background: var(--gsm-card, #fff); border-bottom: 1px solid var(--gsm-line, #e4e8ec);
	}
	.gsm-fs-head b { font-size: 17px; font-weight: 700; color: var(--gsm-ink, #23282d); }
	.gsm-fs-head::before { content: ""; position: absolute; left: 50%; top: 5px; width: 36px; height: 4px; margin-left: -18px; border-radius: 2px; background: var(--gsm-line-strong, #ccd3da); }
	.gsm-fs-close { display: grid; place-items: center; width: 40px; height: 40px; margin: -8px -8px -8px 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--gsm-ink-2, #5f6b78); font-size: 26px; line-height: 1; }
	.gsm-fs-foot { display: none; }
	html.gsm-fs-open .gsm-fs-foot {
		display: flex; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 100020;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px)); background: var(--gsm-card, #fff); border-top: 1px solid var(--gsm-line, #e4e8ec);
	}
	.gsm-fs-foot .gsm-btn { flex: 1; min-height: 48px; }
	.gsm-fs-foot .gsm-btn--secondary { flex: 0 0 auto; }
	/* Строки выбора — удобная для пальца высота (было ~18 pt) */
	.gsm-catalog .cat-filter nobr { min-height: 44px; display: flex !important; align-items: center; }
	.gsm-catalog .cat-filter input[type="checkbox"] + label.top_tab_label { width: 22px; height: 22px; min-height: 0; align-self: center; }

	/* 2. «Каталог» и «Меню» — на весь экран поверх страницы, страница не сдвигается */
	.body_left { left: 0 !important; overflow: visible !important; }
	html.html_left .pop_up_menu_cat_mob {
		z-index: 1500 !important; width: 100% !important; max-width: 100% !important; left: 0 !important;
		height: 100%; max-height: 100%; background: var(--gsm-card, #fff); overflow-y: auto !important;
		box-shadow: none; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
	}
	html.html_left, html.html_left body { overflow: hidden !important; }

	/* 3. Счётчик корзины в нижнем меню шапки (число ставит js/mobile_fix.js) */
	.mobile_v_menu_item .mvi-icon { position: relative; }
	.gsm-mcount {
		position: absolute; top: -6px; right: -10px; min-width: 18px; height: 18px; padding: 0 5px; box-sizing: border-box;
		border-radius: 9px; background: var(--gsm-red, #d64545); color: #fff; font: 700 11px/18px var(--gsm-font, 'Open Sans', sans-serif); text-align: center;
		box-shadow: 0 0 0 2px var(--gsm-btn, #0f89c6);
	}
	.gsm-mcount[hidden] { display: none; }

	/* 4. «Ваш город?» — карточкой внизу экрана, не поверх меню */
	.cityChangeMessage-container .cityChangeMessage, body > .cityChangeMessage {
		position: fixed !important; top: auto !important; left: 12px !important; right: 12px !important;
		bottom: calc(12px + env(safe-area-inset-bottom, 0px)) !important; z-index: 1400; width: auto !important; margin: 0 !important;
		padding: 14px 16px !important; border-radius: 16px !important; box-shadow: 0 10px 30px rgba(20, 28, 38, .25) !important;
	}
	.cityChangeMessage::before, .cityChangeMessage::after { display: none !important; }

	/* 5. Оформление: блок карты Ozon — только когда выбран Ozon */
	.ck .del_plitka:not(:has(> .del_title input:checked)) .ck-ozon { display: none !important; }
}

@keyframes gsmSheetIn { from { transform: translateY(24px); opacity: .6; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { html.gsm-fs-open .gsm-catalog .cat-filter { animation: none; } }

@media (max-width: 760px) {
	.gsm-mcount.is-bump { animation: gsmBump .3s ease-out; }
}
@keyframes gsmBump { 40% { transform: scale(1.3); } }
@media (prefers-reduced-motion: reduce) { .gsm-mcount.is-bump { animation: none; } }
