/* Claude v3 · исполнитель A — каталог, поиск, 404, подбор по автомобилю, главная: исправления по аудиту телефона и планшета
   (work/v3/mobile/AUDIT.json, M-xx). Подключается последним (inc/mobile-v3.php, приоритет 999) и перекрывает основные листы
   той же или большей специфичностью без !important. Десктоп ≥1280px не меняется (сверено попиксельно, work/v3/mobile/FIX_A.md);
   правила для 901–1279px отмечены у своих находок. */

/* M-01: drawer фильтров (≤900px) — у строк брендов поле под квадрат ::before (left 10px, 16px), как в боковой колонке.
   Правило claude-v1.css «.r47-facet-options label{padding:7px 12px}» для ≤900px сбрасывало padding-left 34px, и квадрат закрывал первую букву. */
@media (max-width:900px){
  .hg-store .r47-brand-options label{padding-left:34px}
}

/* M-07: пагинация — «前へ/次へ» в одну строку (кнопка не сжимается во flex-строке), «…» на линии номеров и цветом текста темы
   (Ecomus сдвигал его bottom:5px и красил #000 — в тёмной теме 1,13:1). До 1279px: десктоп по правилам задания не меняется,
   хотя там те же «…» (снять @media, если руководитель решит распространить). */
@media (max-width:1279px){
  .hg-store .r128-pagination .r128-pages li{flex:none}
  .hg-store .r128-pagination .page-numbers:is(.prev,.next){width:auto;min-width:46px;white-space:nowrap;padding-inline:14px;font-size:14px}
  .hg-store .r128-pagination .page-numbers.dots{position:static;bottom:auto;display:inline-flex;align-items:center;justify-content:center;min-width:20px;min-height:44px;padding:0 2px;border:0;background:transparent;color:var(--hg-muted);font-size:16px;font-weight:700;line-height:1;cursor:default}
}
/* v3.1: те же дефекты на десктопе ≥1280: «…» (Ecomus: bottom 5px и #000 — ночью 1,13:1) и «次へ» в две строки в квадрате 46px. Шрифт десктопа прежний. */
@media (min-width:1280px){
  .hg-store .r128-pagination .r128-pages li{flex:none}
  .hg-store .r128-pagination .page-numbers:is(.prev,.next){width:auto;min-width:46px;white-space:nowrap;padding-inline:14px}
  .hg-store .r128-pagination .page-numbers.dots{position:static;bottom:auto;align-self:center;border:0;background:transparent;color:var(--hg-muted);cursor:default}
}

/* M-09: плашка наличия комплекта «タイヤ・ホイール 各4本» — число с единицей не разрываются («各4 / 本»), перенос по пробелу. */
.hg-store .jp-card-status .hg-stock{word-break:keep-all;overflow-wrap:anywhere}

/* M-11: главная, «お客様の声» — лента по центру с полями 18px, как остальные блоки (на ≤700px ширина calc(100% - 36px) стояла у левого края). */
@media (max-width:700px){
  .hg-store .hg-review-section .gt-review-universe{margin-inline:auto}
}

/* M-12 + M-15: «車種から探す» на телефоне — одна плотная строка; если название и кнопка не помещаются (RU/EN), кнопка уходит
   на вторую строку, а не наезжает на заголовок. */
@media (max-width:767px){
  .hg-store .hg-vbar>.hg-vbar__summary{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;min-height:52px;padding:6px 8px 6px 10px}
  .hg-store .hg-vbar__icon{flex:none;width:36px;height:36px;border-radius:9px}
  .hg-store .hg-vbar__text{flex:1 1 120px}
  .hg-store .hg-vbar__text small{display:none}
  .hg-store .hg-vbar__cta{flex:none;margin-left:auto}
}

/* M-15: первый экран каталога на телефоне — те же блоки плотнее: реплика маскота компактнее (фигура 1/2 вместо 3/4, текст 13px),
   меньше отступы заголовка, подбора и категорий; «絞り込み» и сортировка — одной строкой, счётчик — под ними одной строкой (M-35).
   Пустая выдача (.hg-is-empty) и страница автомобиля не меняются. У колонки фильтров нет z-index: иначе она стала бы контекстом
   наложения, и открытая панель (position:fixed, z-index 1001) ушла бы под закреплённую шапку. */
@media (max-width:767px){
  .hg-store .jp-catalog-page:not(.hg-vehicle-page) .jp-page-heading{margin:6px 0 8px}
  .hg-store .jp-catalog-page>.hg-mascot{--hg-mascot-scale:.5;gap:8px}
  .hg-store .jp-catalog-page>.jp-page-heading+.hg-mascot{margin:2px 0 10px}
  .hg-store .jp-catalog-page>.hg-mascot .hg-mascot-bubble{padding:8px 12px;border-radius:12px}
  .hg-store .jp-catalog-page>.hg-mascot[data-hg-mascot-dismiss] .hg-mascot-bubble{padding-right:44px}
  .hg-store .jp-catalog-page>.hg-mascot .hg-mascot-text{font-size:13px;line-height:1.55}
  .hg-store .jp-catalog-page>.hg-vbar{margin:0 0 10px}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-category-tabs{margin-top:10px;margin-bottom:0}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty){position:relative;padding-top:10px}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty)>.jp-filter-sidebar{position:absolute;top:10px;left:0;width:calc(50% - 5px);margin:0}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty) .r47-filters>summary{min-height:44px;padding:6px 12px}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty) .jp-results-toolbar{flex-wrap:wrap;gap:8px 10px;min-height:0}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty) .jp-results-toolbar>form{order:-1;flex:0 0 calc(50% - 5px);max-width:none;margin-left:auto}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty) .jp-results-toolbar select{width:100%;min-height:46px}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty) .jp-results-toolbar>p{flex:1 0 100%}
}
/* M-15, планшет в режиме drawer (768–900px): реплика маскота меньше, отступы заголовка и категорий короче; «絞り込み» слева
   в одной строке со счётчиком и сортировкой. */
@media (min-width:768px) and (max-width:900px){
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-page-heading{padding-bottom:14px}
  .hg-store .jp-catalog-page>.hg-mascot{--hg-mascot-scale:.6}
  .hg-store .jp-catalog-page>.jp-page-heading+.hg-mascot{margin:0 0 14px}
  .hg-store .jp-catalog-page>.hg-vbar{margin:0 0 14px}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-category-tabs{padding-bottom:16px;margin-bottom:0}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty){position:relative;padding-top:16px}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty)>.jp-filter-sidebar{position:absolute;top:16px;left:0;width:172px;margin:0}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty) .r47-filters>summary{min-height:44px;padding:6px 14px}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty) .jp-results-toolbar{padding-left:186px}
  .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty) .jp-results-toolbar select{min-height:46px}
}
/* без скрипта панель фильтров раскрывается в потоке — колонка возвращается в поток, чтобы не лечь на товары */
@media (max-width:900px){
  html:not(.r47-enhanced) .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty)>.jp-filter-sidebar:has(>details[open]){position:static;width:auto;margin-bottom:12px}
  html:not(.r47-enhanced) .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty):has(>.jp-filter-sidebar>details[open]) .jp-results-toolbar{flex-wrap:nowrap;padding-left:0}
  html:not(.r47-enhanced) .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty):has(>.jp-filter-sidebar>details[open]) .jp-results-toolbar>form{order:0;flex:0 1 auto;margin-left:0}
  html:not(.r47-enhanced) .hg-store .jp-catalog-page:not(.hg-vehicle-page)>.jp-catalog-layout:not(.hg-is-empty):has(>.jp-filter-sidebar>details[open]) .jp-results-toolbar>p{flex:1 1 auto}
}

/* M-04: страница автомобиля (≤900px, одна колонка) — под названием автомобиля строка «N点の商品 · タイヤ 195/65R15 ↓» со ссылкой
   на товары (вставляет m3-catalog.js). Место резервируется до скрипта, когда выбран справочный размер (есть форма #hg-selection-filters):
   строка вместе с отступом до примечания (margin-bottom 10px; у примечания исходный отступ 0) ложится в нижнее поле заголовка
   (margin-top отрицательный), поэтому вставка не сдвигает страницу. Без скрипта строки нет — поле не резервируется (scripting:none;
   браузер без этой возможности резервирует поле, как со скриптом). */
.m3-vapplied{display:none}
@media (max-width:900px){
  .hg-store .hg-vehicle-page:has(#hg-selection-filters) .hg-vehicle-heading>h1{padding-bottom:68px}
  .hg-store .hg-vehicle-page .m3-vapplied{display:flex;align-items:center;gap:8px;box-sizing:border-box;height:46px;margin:-56px 0 10px;padding:0 12px 0 14px;border:1px solid var(--hg-line);border-radius:10px;background:var(--hg-white);color:var(--hg-ink);font-size:14px;font-weight:600;line-height:1.3;text-decoration:none;overflow:hidden}
  .hg-store .hg-vehicle-page .m3-vapplied b{flex:none;color:var(--hg-red);font-weight:800}
  .hg-store .hg-vehicle-page .m3-vapplied span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .hg-store .hg-vehicle-page .m3-vapplied i{flex:none;margin-left:auto;font-style:normal;font-size:18px;line-height:1}
  .hg-store .hg-vehicle-page .m3-vapplied:focus-visible{outline:2px solid var(--hg-red);outline-offset:2px}
  .hg-store .hg-vehicle-results .m3-vapplied-sel{margin:-8px 0 14px;color:var(--hg-ink);font-size:15px;font-weight:700;line-height:1.4}
}
@media (max-width:900px) and (scripting:none){
  .hg-store .hg-vehicle-page:has(#hg-selection-filters) .hg-vehicle-heading>h1{padding-bottom:0}
}
.m3-vapplied-sel{display:none}
@media (max-width:900px){.hg-store .hg-vehicle-results .m3-vapplied-sel{display:block}}

/* ── P3 ── */

/* M-23: док на страницах категорий — «その他» не подсвечивается вместе с «商品一覧» (раздел уже отмечен «商品一覧», текущая
   категория — внутри листа «その他»), как на /shop/. Открытый лист подсвечивает «その他» по-прежнему (aria-expanded). */
.hg-dock:has(.hg-dock-item[data-hg-dock=catalog][aria-current]) .hg-dock-more[data-has-current-child=true]:not([aria-expanded=true]){color:inherit;font-weight:500;text-decoration:none}
.hg-dock:has(.hg-dock-item[data-hg-dock=catalog][aria-current]) .hg-dock-more[data-has-current-child=true]:not([aria-expanded=true])::before{content:none}

/* M-24: быстрый просмотр на сенсорном экране — Ecomus «button:hover» (тёмная заливка, без (hover:hover)) залипал на варианте после касания. */
@media (hover:none){
  .hg-qv .hg-qv-variant:hover{background-color:var(--hg-white);color:var(--hg-ink);border-color:var(--hg-line)}
  .hg-qv .hg-qv-variant:hover::after{animation:none}
}

/* M-28: быстрый просмотр (телефон, планшет) — закрытие 44×44; характеристики переносятся строками без пустой ячейки в последнем ряду.
   Подпись цены «…各4本の価格» — блок покупки исполнителя B (pdp-buy-v3: keep-all и разрыв после «タイヤ・ホイール»), здесь не трогается. */
@media (max-width:1279px){
  .hg-qv .hg-qv-close{width:44px;height:44px}
  .hg-qv .hg-qv-info .hg-qv-specs{display:flex;flex-wrap:wrap}
  .hg-qv .hg-qv-info .hg-qv-specs>div{flex:1 1 130px;min-width:0}
}

/* M-27: главная — подпись героя на одной линии с текстом (старое правило ≤680 давало ей ещё 18px поля внутри уже отступившего блока). */
@media (max-width:680px){
  .hg-store .hg-hero-detail .hg-hero-caption{width:auto;margin-left:0;margin-right:0}
}

/* M-31: логотип Mercari Shops в карточке канала — пропорции оригинала (2000×817): max-width:100% сужал картинку при заданной высоте. На всех ширинах:
   раньше правило стояло только до 900 px, а от 901 px логотип был сжат до ×0,93 (118×52 вместо 127×52). */
.hg-store .hgm-logo{flex:none}
.hg-store .hgm-logo img{max-width:none;object-fit:contain}

/* M-34: главная, тёмная тема — дневные иллюстрации акций приглушены и не светят пятном на тёмном фоне (ночных вариантов нет). */
@media (max-width:900px){
  html[data-theme=dark] .hg-store .hg-campaign__media img{filter:brightness(.8) saturate(.9)}
}

/* M-33: страница автомобиля на телефоне — у формы выбора одна рамка (поля на всю ширину карточки); «コピー» — вторичная кнопка рядом
   с полем ссылки, а не крупная красная под ним (она же сдвигала страницу, появляясь после скрипта); второй переключатель JA/RU/EN
   не дублирует меню языка шапки. */
@media (max-width:767px){
  .hg-store .hg-vehicle-selector form{padding-left:0;padding-right:0}
  .hg-store .hg-vehicle-page .hg-vehicle-languages{display:none}
  .hg-store .hg-vehicle-share .hg-vehicle-share-controls{display:flex}
  .hg-store .hg-vehicle-share .hg-vehicle-share-controls input{width:auto;border-radius:6px 0 0 6px}
  .hg-store .hg-vehicle-share .hg-vehicle-share-controls button{width:auto;margin-top:0;border-color:var(--hg-line);border-left:0;border-radius:0 6px 6px 0;background:var(--hg-white);color:var(--hg-ink)}
}

/* M-25 (страницы области A): мелкий вспомогательный текст на телефоне — дата отзыва и подписи площадки на главной (8–9px),
   состояние и ранг на фото карточки (10px), счётчик истории главной «01 / 06» (10px) — 12px. */
@media (max-width:767px){
  .hg-store .hg-review-section .gt-review-card time,.hg-store .hg-review-section .gt-review-card__source,.hg-store .hg-review-section .gt-review-card__read{font-size:12px}
  .hg-store .hg-review-section .gt-review-platform small,.hg-store .hg-review-section .gt-review-platform>span:not([aria-hidden=true]){font-size:12px}
  .hg-store .hg-card .hg-card-cond :is(.jp-state,.jp-card-grade){padding:4px 7px;font-size:12px}
  .hg-store .hg-story__num{font-size:12px}
}

/* M-26 (главная): японские абзацы героя и вступления FAQ переносятся по фразам, без висячего «す。»/«い。» в последней строке. */
@media (max-width:767px){
  html:lang(ja) .hg-store .hg-hero-description,html:lang(ja) .hg-store .hgb-faq-heading>p{word-break:auto-phrase;text-wrap:pretty}
}

/* M-29 (каталог): «掲載の多いブランド» в drawer фильтров — чипы 40px с промежутком 8px вместо 36px вплотную. */
@media (max-width:900px){
  .hg-store .hg-popular-brands{gap:8px}
  .hg-store .hg-popular-brands label{min-height:40px}
}
