/* Claude v3.6 (E5, P1): маскот по пути покупателя — действия-пилюли в пузыре (M2, M1a, у проданного лота), строка «тот же размер» (M1a),
   плашка после «в корзину» (M1b), блок «заказ принят» (M4, в конце файла). Цвета — токены hub.css (день/ночь без отдельных правил), лица — пары день/ночь (mascot-slots.css).
   Разметка серверная, без JS всё работает; анимаций у строки и плашки нет, высота известна заранее (CLS 0). Печатается после claude-v1.
   Резерв высоты реплик (T1d) — в конце файла; align-content:flex-start у ряда пилюль нужен ему: лишняя высота остаётся под рядами, а не растягивает пилюли. */

/* Действия пузыря: несколько ссылок рядом (hg_mascot_slot, аргумент actions). Первая главная — акцентная рамка. */
.hg-mascot .hg-mascot-actions{display:flex;flex-wrap:wrap;align-content:flex-start;gap:6px 8px;margin:10px 0 0}
.hg-mascot .hg-mascot-actions .hg-mascot-action{justify-content:center;min-height:36px;margin:0;padding:0 14px;border:1px solid var(--hg-line);border-radius:999px;background:var(--hg-paper);color:var(--hg-ink);font-size:13px;font-weight:700;line-height:1.2;text-align:center;text-decoration:none}
.hg-mascot .hg-mascot-actions .hg-mascot-action.is-primary,.hg-mascot .hg-mascot-actions .hg-mascot-action:hover{border-color:var(--hg-red);color:var(--hg-red)}
@media (max-width:680px){
  .hg-mascot .hg-mascot-actions .hg-mascot-action{min-height:44px}
}

/* M1a: строка «тот же размер» в зоне покупки — лицо 48 px, одна реплика, две ссылки. Серая подложка без рамки. */
.hg-buy .hg-mascot--product-size,.hg-mascot--product-size{--hg-mascot-h:48px;--hg-mascot-scale:1;align-items:flex-start;gap:12px;max-width:none;margin:14px 0 0;padding:12px 14px;border-radius:14px;background:var(--hg-soft)}
.hg-mascot--product-size .hg-mascot-figure{width:48px;height:48px;border-radius:50%;overflow:hidden;background:var(--hg-white);box-shadow:0 0 0 1px var(--hg-line)}
.hg-mascot--product-size .hg-mascot-figure img{width:100%;max-width:none;height:100%;object-fit:cover;object-position:50% 50%}
.hg-mascot--product-size .hg-mascot-bubble{padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.hg-mascot--product-size .hg-mascot-figure+.hg-mascot-bubble::before{display:none}
.hg-mascot--product-size .hg-mascot-text{font-size:14px;line-height:1.75}
@media (max-width:680px){
  /* текст рядом с лицом, ссылки — второй строкой на всю ширину */
  .hg-mascot--product-size{flex-wrap:wrap;padding:12px}
  .hg-mascot--product-size .hg-mascot-bubble{display:contents}
  .hg-mascot--product-size .hg-mascot-text{flex:1 1 0;min-width:0}
  /* display:contents у пузыря снимает его контейнер (mascot.css включает auto-phrase запросом по контейнеру): без этой строки японский текст рвётся посреди слова */
  html:lang(ja) .hg-mascot--product-size .hg-mascot-text{word-break:auto-phrase}
  .hg-mascot--product-size .hg-mascot-actions{flex:1 1 100%;order:3;margin-top:2px}
  .hg-mascot--product-size .hg-mascot-actions .hg-mascot-action{flex:1 1 auto}
}

/* M1b: плашка после успешного «в корзину» внутри штатного уведомления Woo (role=alert, фокус ставит Woo). Штатный фон и рамка уведомления снимаются. */
.woocommerce-message:has(.hg-added){display:block;margin:0 0 16px;padding:0;border:0;background:none;box-shadow:none;color:inherit}
.woocommerce-message:has(.hg-added)::before,.woocommerce-message:has(.hg-added)::after{display:none}
.hg-added{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--hg-line);border-radius:14px;background:var(--hg-white);color:var(--hg-ink);box-shadow:0 8px 24px #171b220d}
[data-theme=dark] .hg-added{box-shadow:none}
.hg-added__face{flex:none;width:48px;height:48px;margin:0;border-radius:50%;overflow:hidden;background:var(--hg-white);box-shadow:0 0 0 1px var(--hg-line);line-height:0}
.hg-added__face img{display:block;width:100%;height:100%;object-fit:cover}
.hg-added__face .hg-added__img--night,html[data-theme=dark] .hg-added__face .hg-added__img--day{display:none}
html[data-theme=dark] .hg-added__face .hg-added__img--night{display:block}
.hg-added__text{flex:1 1 auto;min-width:0;margin:0;font-size:15px;line-height:1.75;color:var(--hg-ink);text-wrap:pretty;overflow-wrap:anywhere}
html:lang(ja) .hg-added__text{word-break:auto-phrase}
.hg-added__text strong{font-weight:700}
.hg-added__acts{display:flex;align-items:center;gap:16px;flex:none;margin:0}
/* Ссылки внутри .woocommerce-message: вендорное правило .woocommerce-message a (color:inherit; text-decoration:underline; line-height:1) тяжелее одного класса, поэтому селекторы ссылок начинаются с .hg-added. */
.hg-added .hg-added__main{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:10px;background:var(--hg-action,var(--hg-red));color:#fff;font-size:14px;font-weight:700;line-height:1.2;text-decoration:none;white-space:nowrap}
.hg-added__main::after{content:"";flex:none;width:18px;height:18px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.hg-added .hg-added__main:hover{background:var(--hg-action-hover,var(--hg-red-hover));color:#fff}
.hg-added .hg-added__more{display:inline-flex;align-items:center;min-height:44px;color:var(--hg-ink);font-size:14px;font-weight:600;line-height:1.2;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.hg-added .hg-added__more:hover{color:var(--hg-red)}
.hg-added a:focus-visible{outline:2px solid var(--hg-red);outline-offset:2px}
@media (max-width:720px){
  .hg-added{flex-wrap:wrap;align-items:flex-start;padding:12px 14px}
  .hg-added__text{flex:1 1 calc(100% - 64px)}
  .hg-added__acts{flex:1 1 100%;justify-content:space-between;gap:12px}
  .hg-added__main{flex:1 1 auto}
}

/* T1: заголовок пустой карточки поиска (h2.hg-empty__title из inc/mascot-map.php) — число строк не зависит от ширины шрифта и letter-spacing.
   Класс случая у заголовка: --q (один запрос), --both (запрос и условия), --filters (только условия); прочие виды (нет страницы, неверный запрос, ни одного условия) — --plain, без правил.
   Ширина --hg-tm в em: меньше ширины одной строки заголовка и больше любой из его строк, поэтому заголовок всегда в две строки (ru «запрос и условия» — в три). Значения взяты из окон устойчивости
   (tools/e5_title_sweep.py: letter-spacing −0,06…+0,06em, шрифты «загружены / нет», ширины 1440, 1024, 390; середина общего окна). Высота резервируется по числу строк случая (--hg-tl, +1px на разницу метрик
   шрифтов): положение фигуры маскота не зависит от числа строк заголовка. На телефоне кегль 20px — на узкой колонке окна шире. Переносы по фразам у японского — word-break:auto-phrase из claude-v1.css. */
.hg-store .hg-empty--search .hg-empty__title:is(.hg-empty__title--q,.hg-empty__title--both,.hg-empty__title--filters){max-width:var(--hg-tm,none);min-height:calc(var(--hg-tl,2) * 1.35em + 1px)}
html:lang(ja) .hg-store .hg-empty--search .hg-empty__title--q,html:lang(ja) .hg-store .hg-empty--search .hg-empty__title--both{--hg-tm:17em}
html:lang(ja) .hg-store .hg-empty--search .hg-empty__title--filters{--hg-tm:13.5em}
html:lang(ru) .hg-store .hg-empty--search .hg-empty__title--q{--hg-tm:17.25em}
html:lang(ru) .hg-store .hg-empty--search .hg-empty__title--filters{--hg-tm:17.5em}
html:lang(ru) .hg-store .hg-empty--search .hg-empty__title--both{--hg-tm:15.25em;--hg-tl:3}
html:lang(en) .hg-store .hg-empty--search .hg-empty__title--q{--hg-tm:9.6em}
html:lang(en) .hg-store .hg-empty--search .hg-empty__title--both{--hg-tm:17em}
html:lang(en) .hg-store .hg-empty--search .hg-empty__title--filters{--hg-tm:11.25em}
/* Фигура стоит у нижнего края карточки, поэтому её y складывается из высот всех блоков: абзац и ряды действий пузыря взяты из тех же окон устойчивости, что и заголовок.
   Абзац en «один запрос» — две строки при любом состоянии шрифтов; ru и en «запрос и условия» и «только условия» — одна строка на широком окне (колонка шире 36em, 1281 px и шире)
   и две строки на окне до 1280 px (на колонке около 31em одна строка у загруженного шрифта едва помещается, у запасного помещается: порог переноса); три пилюли пузыря в ru — всегда два ряда (две и одна). */
@media (max-width:1280px){
  html:is(:lang(ru),:lang(en)) .hg-store .hg-empty--search :is(.hg-empty__title--both,.hg-empty__title--filters)~.hg-empty__text{max-width:25em}
}
html:lang(en) .hg-store .hg-empty--search .hg-empty__title--q~.hg-empty__text{max-width:26em}
html:lang(ru) .hg-store .hg-empty--search .hg-mascot-actions{max-width:26em}
/* Реплика M2 (пустой поиск по размеру; ряд пилюль есть только у неё) на узком телефоне: неразрывные пробелы ru (T1b) сдвинули порог переноса с 360–375 px на 390–400 px —
   у загруженного шрифта 4 строки, у запасного 3, и фигура сдвигалась. Ширина 13,6em — из окна устойчивости (tools/e5_title_sweep.py sel=".hg-empty .hg-mascot-text"):
   на 340–400 px всегда 4 строки при любом состоянии шрифта; на 320 px колонка уже окна (5 строк), правило не действует. */
@media (max-width:400px){
  html:lang(ru) .hg-store .hg-empty--search .hg-mascot-bubble:has(.hg-mascot-actions) .hg-mascot-text{max-width:13.6em}
}
@media (max-width:680px){
  .hg-store .hg-empty--search .hg-empty__title:is(.hg-empty__title--q,.hg-empty__title--both,.hg-empty__title--filters){font-size:20px}
}

/* R4, M4: «заказ принят» (банковский перевод) — сцена упаковки слева, справа заголовок, лицо с репликой и четыре шага «что дальше». Всё в серверной разметке, без анимации (высота известна заранее, CLS 0).
   Лицо и реплика — слот checkout/after с лицом 48 px вместо фигуры (как строка «тот же размер»). */
.hg-thanks{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);margin:0 0 32px;border:1px solid var(--hg-line);border-radius:18px;background:var(--hg-white);overflow:hidden}
.hg-thanks__art{margin:0;position:relative;min-height:100%;line-height:0;background:var(--hg-soft)}
.hg-thanks__art img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hg-thanks__art .hg-thanks__img--night,html[data-theme=dark] .hg-thanks__art .hg-thanks__img--day{display:none}
html[data-theme=dark] .hg-thanks__art .hg-thanks__img--night{display:block}
.hg-thanks__body{display:grid;gap:14px;align-content:center;min-width:0;padding:28px 32px}
.hg-thanks__body h2{margin:0;font-size:26px;line-height:1.35;color:var(--hg-ink)}
.hg-thanks .hg-mascot{--hg-mascot-h:48px;--hg-mascot-scale:1;display:flex;align-items:flex-start;gap:12px;max-width:none;margin:0;padding:0}
.hg-thanks .hg-mascot-figure{flex:none;width:48px;height:48px;margin:0;border-radius:50%;overflow:hidden;background:var(--hg-white);box-shadow:0 0 0 1px var(--hg-line)}
.hg-thanks .hg-mascot-figure img{width:100%;max-width:none;height:100%;object-fit:cover;object-position:50% 50%}
.hg-thanks .hg-mascot-text{font-size:15px;line-height:1.75}
.hg-thanks__steps{display:grid;margin:4px 0 0;padding:0;list-style:none}
.hg-thanks__step{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:12px;padding:0 0 14px}
.hg-thanks__step:last-child{padding-bottom:0}
.hg-thanks__step::before{content:"";position:absolute;left:13px;top:28px;bottom:0;width:2px;background:var(--hg-line)}
.hg-thanks__step:last-child::before{display:none}
.hg-thanks__dot{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:2px solid var(--hg-line);background:var(--hg-white);color:var(--hg-muted);font-size:12px;font-weight:700}
.hg-thanks__step.is-done .hg-thanks__dot{border-color:var(--hg-red);background:var(--hg-red);color:#fff}
html[data-theme=dark] .hg-thanks__step.is-done .hg-thanks__dot{border-color:var(--hg-action,#dc0100);background:var(--hg-action,#dc0100)}
.hg-thanks__step.is-now .hg-thanks__dot{border-color:var(--hg-red);color:var(--hg-red)}
.hg-thanks__step strong{display:block;font-size:15px;line-height:1.5;color:var(--hg-ink)}
.hg-thanks__text{display:block;font-size:13.5px;line-height:1.7;color:var(--hg-muted)}
@media (max-width:820px){
  .hg-thanks{grid-template-columns:minmax(0,1fr)}
  .hg-thanks__art{aspect-ratio:16/10;min-height:0}
  .hg-thanks__body{padding:20px 18px 22px}
  .hg-thanks__body h2{font-size:22px}
}

/* T1d: резерв высоты реплик (ru, en). Число строк реплики при загруженных веб-шрифтах и при запасном шрифте различается (запасной уже): при подмене шрифта блок менял высоту, и фигура маскота сдвигалась.
   Каждой реплике, у которой на ширинах 320–430 px замером (tools/t1d_sweep.py: страницы по записи, ширины с шагом 2 px, «шрифты да/нет») найдено расхождение, задана min-height в строках lh по числу строк
   у загруженных шрифтов: до подмены блок той же высоты, что после неё. Ступени взяты по загруженным шрифтам; ступень, перешагнувшая 430 px, доведена до своего конца, чтобы окно расхождения не обрывалось.
   У ряда пилюль min-height — число рядов по 44 px и зазору 6 px. Нечётная ширина на стыке ступеней отдана ступени с большим числом строк. Японский: расхождений нет, правил нет.
   Числа строк измерены на проверочных страницах (шина 195/80 R15, количество 4, заказ №26776): у текста другой длины пороги сдвигаются. Вне 320–430 px расхождения остаются, кроме доведённых ступеней. */
/* Заголовок пустой карточки: ru «только условия» и en «запрос и условия» на самом узком телефоне у загруженного шрифта длиннее на строку — резерв строки через --hg-tl (правило T1).
   ru «запрос» с пробелом в размере (275/35 R20) на 320 px: три строки у загруженного шрифта против двух; кегль 19px на 320–321 px даёт две строки при обоих состояниях шрифта. */
@media (max-width:333px){html:lang(ru) .hg-store .hg-empty--search .hg-empty__title--filters{--hg-tl:3}}
@media (max-width:327px){html:lang(en) .hg-store .hg-empty--search .hg-empty__title--both{--hg-tl:3}}
@media (max-width:321px){html:lang(ru) .hg-store .hg-empty--search .hg-empty__title--q{font-size:19px}}
/* Ряд кнопки действия карточки: лишняя высота резерва остаётся под кнопкой (кнопка не уезжает к середине ряда). */
.hg-store .hg-empty--search .hg-empty__actions{align-content:flex-start}
/* M1b, ряд «カートを見る» и «お買い物を続ける»: надписи в одну строку (nowrap), а ряд не переносился — у ru («Открыть корзину» и «Продолжить выбор», 353 px при загруженном шрифте) он не помещался в плашку
   до 420 px (ссылка выступала за край плашки, на 320–384 px страница получала горизонтальную прокрутку до 62 px), у en («Continue shopping») — до 340 px. Перенос включён у ряда ru и en; у ru до 421 px и у en до 341 px
   ссылка всегда на своей строке под кнопкой (ряд 100 px) — раскладка не зависит от ширины шрифта. Японский помещается в одну строку при любой ширине (на 320–326 px заходит в поле плашки, но не выступает
   за неё): японский остаётся прежним, правила нет. */
html:is(:lang(ru),:lang(en)) .hg-added__acts{flex-wrap:wrap}
@media (max-width:421px){html:lang(ru) .hg-added .hg-added__more{flex:1 1 100%;justify-content:center}}
@media (max-width:341px){html:lang(en) .hg-added .hg-added__more{flex:1 1 100%;justify-content:center}}
/* M2, абзац случая «запрос», ru */
@media (max-width:413px){html:lang(ru) .hg-store .hg-empty--search .hg-empty__title--q~.hg-empty__text{min-height:3lh}}
/* M2, абзац случая «запрос», en */
@media (max-width:357px){html:lang(en) .hg-store .hg-empty--search .hg-empty__title--q~.hg-empty__text{min-height:3lh}}
/* M2, кнопка «все товары», ru */
@media (max-width:321px){html:lang(ru) .hg-store .hg-empty--search .hg-empty__title--q~.hg-empty__actions{min-height:67px}}
/* M2, реплика «размера нет», ru */
@media (max-width:339px){html:lang(ru) .hg-store .hg-empty--search .hg-mascot-bubble:has(.hg-mascot-actions) .hg-mascot-text{min-height:5lh}}
@media (min-width:340px) and (max-width:403px){html:lang(ru) .hg-store .hg-empty--search .hg-mascot-bubble:has(.hg-mascot-actions) .hg-mascot-text{min-height:4lh}}
/* M2, реплика «размера нет», en */
@media (max-width:339px){html:lang(en) .hg-store .hg-empty--search .hg-mascot-bubble:has(.hg-mascot-actions) .hg-mascot-text{min-height:5lh}}
@media (min-width:340px) and (max-width:425px){html:lang(en) .hg-store .hg-empty--search .hg-mascot-bubble:has(.hg-mascot-actions) .hg-mascot-text{min-height:4lh}}
/* M2, ряды пилюль «размера нет», ru */
/* M2, ряды пилюль «размера нет», en */
@media (max-width:431px){html:lang(en) .hg-store .hg-empty--search .hg-mascot-actions{min-height:144px}}
/* M2, реплика без пилюль, ru */
@media (max-width:339px){html:lang(ru) .hg-store .hg-empty--search .hg-mascot-bubble:not(:has(.hg-mascot-actions)) .hg-mascot-text{min-height:6lh}}
@media (min-width:340px) and (max-width:431px){html:lang(ru) .hg-store .hg-empty--search .hg-mascot-bubble:not(:has(.hg-mascot-actions)) .hg-mascot-text{min-height:4lh}}
/* M2, реплика без пилюль, en */
@media (max-width:367px){html:lang(en) .hg-store .hg-empty--search .hg-mascot-bubble:not(:has(.hg-mascot-actions)) .hg-mascot-text{min-height:4lh}}
@media (min-width:371px) and (max-width:389px){html:lang(en) .hg-store .hg-empty--search .hg-mascot-bubble:not(:has(.hg-mascot-actions)) .hg-mascot-text{min-height:4lh}}
/* M2, ссылка в пузыре без пилюль, ru */
@media (max-width:323px){html:lang(ru) .hg-store .hg-empty--search .hg-mascot-bubble>.hg-mascot-action{min-height:54.5px}}
/* M1b, плашка после «в корзину», ru */
@media (max-width:339px){html:lang(ru) .hg-added__text{min-height:2lh}}
/* M3, реплика у количества, ru */
@media (max-width:335px){html:lang(ru) .hg-mascot--cart-quantity .hg-mascot-text{min-height:4lh}}
@media (min-width:336px) and (max-width:451px){html:lang(ru) .hg-mascot--cart-quantity .hg-mascot-text{min-height:3lh}}
/* M3, реплика у количества, en */
@media (max-width:349px){html:lang(en) .hg-mascot--cart-quantity .hg-mascot-text{min-height:4lh}}
/* M1a, строка «тот же размер», ru */
@media (max-width:351px){html:lang(ru) .hg-mascot--product-size .hg-mascot-text{min-height:3lh}}
/* M1a, строка «тот же размер», en */
@media (max-width:347px){html:lang(en) .hg-mascot--product-size .hg-mascot-text{min-height:3lh}}
/* M1a, ряды ссылок, ru */
@media (max-width:437px){html:lang(ru) .hg-mascot--product-size .hg-mascot-actions{min-height:94px}}
/* M1a, ряды ссылок, en */
@media (max-width:357px){html:lang(en) .hg-mascot--product-size .hg-mascot-actions{min-height:94px}}
/* реплика у проданного лота, ru */
@media (max-width:411px){html:lang(ru) .hg-mascot[data-hg-mascot=product][data-hg-mascot-slot=sold] .hg-mascot-text{min-height:3lh}}
/* реплика у проданного лота, en */
@media (max-width:353px){html:lang(en) .hg-mascot[data-hg-mascot=product][data-hg-mascot-slot=sold] .hg-mascot-text{min-height:3lh}}
/* подсказка фильтра (контекст filter; у search/hint свой текст), ru */
@media (max-width:387px){html:lang(ru) .hg-mascot[data-hg-mascot=filter][data-hg-mascot-slot=hint] .hg-mascot-text{min-height:3lh}}
/* подсказка фильтра (контекст filter; у search/hint свой текст), en */
@media (max-width:379px){html:lang(en) .hg-mascot[data-hg-mascot=filter][data-hg-mascot-slot=hint] .hg-mascot-text{min-height:3lh}}
/* M4, заголовок, en */
@media (max-width:339px){html:lang(en) .hg-thanks__body h2{min-height:2lh}}
/* M4, реплика, ru */
@media (max-width:343px){html:lang(ru) .hg-thanks .hg-mascot-text{min-height:3lh}}
/* M4, реплика, en */
@media (max-width:333px){html:lang(en) .hg-thanks .hg-mascot-text{min-height:4lh}}
@media (min-width:334px) and (max-width:419px){html:lang(en) .hg-thanks .hg-mascot-text{min-height:3lh}}
/* M4, название шага 2, ru */
@media (max-width:351px){html:lang(ru) .hg-thanks__step:nth-child(2) strong{min-height:2lh}}
/* M4, текст шага 2, ru */
/* M4, текст шага 2, en */
@media (max-width:425px){html:lang(en) .hg-thanks__step:nth-child(2) .hg-thanks__text{min-height:2lh}}
/* M4, текст шага 3, ru */
@media (max-width:393px){html:lang(ru) .hg-thanks__step:nth-child(3) .hg-thanks__text{min-height:3lh}}
/* M4, текст шага 3, en */
@media (max-width:381px){html:lang(en) .hg-thanks__step:nth-child(3) .hg-thanks__text{min-height:3lh}}
/* M4, текст шага 4, ru */
@media (max-width:329px){html:lang(ru) .hg-thanks__step:nth-child(4) .hg-thanks__text{min-height:3lh}}
/* M4, текст шага 4, en */
@media (max-width:345px){html:lang(en) .hg-thanks__step:nth-child(4) .hg-thanks__text{min-height:3lh}}
/* M5, заказ ждёт оплату, ru */
@media (max-width:327px){html:lang(ru) .hg-mascot--account-orders[data-hg-mascot-pose=wait] .hg-mascot-text{min-height:3lh}}
/* M5, заказ ждёт оплату, en */
@media (max-width:415px){html:lang(en) .hg-mascot--account-orders[data-hg-mascot-pose=wait] .hg-mascot-text{min-height:3lh}}
/* M5, заказ собирается, ru */
@media (max-width:405px){html:lang(ru) .hg-mascot--account-orders[data-hg-mascot-pose=pack] .hg-mascot-text{min-height:3lh}}
/* M5, заказ собирается, en */
@media (max-width:363px){html:lang(en) .hg-mascot--account-orders[data-hg-mascot-pose=pack] .hg-mascot-text{min-height:3lh}}
/* M5, заказ отправлен, ru */
@media (max-width:349px){html:lang(ru) .hg-mascot--account-orders[data-hg-mascot-pose=shipping] .hg-mascot-text{min-height:3lh}}
/* M5, заказ отправлен, en */
@media (max-width:359px){html:lang(en) .hg-mascot--account-orders[data-hg-mascot-pose=shipping] .hg-mascot-text{min-height:4lh}}
/* M5, заказов нет, ru */
@media (max-width:339px){html:lang(ru) .hg-mascot[data-hg-mascot=account][data-hg-mascot-slot=noorders] .hg-mascot-text{min-height:3lh}}
/* M5, заказов нет, en */
/* T1h: резерв высоты в окнах расхождения «шрифты да/нет» на 320–680 px после запасного шрифта ru/en (fontfit, E3, inc/perf-claude.php). Запасной шрифт теперь почти той же ширины, что Montserrat (±2 %),
   поэтому расхождение осталось только у порогов переноса: окно в 1–6 значений ширины с шагом 2 px. Окно «нет<да» (у запасного строк меньше): высота — число строк загруженного шрифта, пустой строки нет.
   Окно «нет>да» (помечено в конце правила: у запасного строка лишняя): высота по запасному шрифту, при загруженном шрифте на ширинах окна под текстом одна свободная строка (ряд, 10–15 px). Границы окна — ±1 px
   на нечётные ширины. Блок собирается заново из замера (tools/t1d_sweep.py ff=on при CSS без этого блока, затем tools/t1h_gen.py), а не правится руками: пороги зависят от текста и множителей запасного шрифта.
   Окно шире 12 px правила не получает (резерв дал бы пустую строку на всех широких экранах): M5 «заказ отправлен» ru от 592 px — текст у предела колонки 487 px, у Montserrat одна строка, у запасного две. */
/* M2, кнопка «все товары», ru */
@media (min-width:321px) and (max-width:325px){html:lang(ru) .hg-store .hg-empty--search .hg-empty__title--q~.hg-empty__actions{min-height:67px}} /* нет>да */
/* M2, реплика «размера нет», ru */
@media (min-width:403px) and (max-width:405px){html:lang(ru) .hg-store .hg-empty--search .hg-mascot-bubble:has(.hg-mascot-actions) .hg-mascot-text{min-height:4lh}} /* нет>да */
/* M2, реплика «размера нет», en */
@media (min-width:425px) and (max-width:427px){html:lang(en) .hg-store .hg-empty--search .hg-mascot-bubble:has(.hg-mascot-actions) .hg-mascot-text{min-height:4lh}} /* нет>да */
@media (min-width:523px) and (max-width:529px){html:lang(en) .hg-store .hg-empty--search .hg-mascot-bubble:has(.hg-mascot-actions) .hg-mascot-text{min-height:3lh}} /* нет>да */
/* M2, ряды пилюль «размера нет», ru */
@media (min-width:501px) and (max-width:505px){html:lang(ru) .hg-store .hg-empty--search .hg-mascot-actions{min-height:144px}} /* нет>да */
/* M2, ряды пилюль «размера нет», en */
@media (min-width:587px) and (max-width:589px){html:lang(en) .hg-store .hg-empty--search .hg-mascot-actions{min-height:94px}} /* нет>да */
/* M2, реплика без пилюль, en */
@media (min-width:389px) and (max-width:391px){html:lang(en) .hg-store .hg-empty--search .hg-mascot-bubble:not(:has(.hg-mascot-actions)) .hg-mascot-text{min-height:4lh}} /* нет>да */
/* M2, ссылка в пузыре без пилюль, ru */
@media (min-width:323px) and (max-width:327px){html:lang(ru) .hg-store .hg-empty--search .hg-mascot-bubble>.hg-mascot-action{min-height:54.5px}} /* нет>да */
/* M3, реплика у количества, ru */
@media (min-width:451px) and (max-width:453px){html:lang(ru) .hg-mascot--cart-quantity .hg-mascot-text{min-height:3lh}} /* нет>да */
/* M3, реплика у количества, en */
@media (min-width:505px) and (max-width:507px){html:lang(en) .hg-mascot--cart-quantity .hg-mascot-text{min-height:3lh}} /* нет>да */
/* M1a, строка «тот же размер», ru */
@media (min-width:553px) and (max-width:559px){html:lang(ru) .hg-mascot--product-size .hg-mascot-text{min-height:2lh}} /* нет>да */
/* M1a, строка «тот же размер», en */
@media (min-width:347px) and (max-width:351px){html:lang(en) .hg-mascot--product-size .hg-mascot-text{min-height:3lh}} /* нет>да */
@media (min-width:565px) and (max-width:571px){html:lang(en) .hg-mascot--product-size .hg-mascot-text{min-height:2lh}} /* нет>да */
/* M1a, ряды ссылок, en */
@media (min-width:357px) and (max-width:359px){html:lang(en) .hg-mascot--product-size .hg-mascot-actions{min-height:94px}} /* нет>да */
/* реплика у проданного лота, ru */
@media (min-width:641px) and (max-width:643px){html:lang(ru) .hg-mascot[data-hg-mascot=product][data-hg-mascot-slot=sold] .hg-mascot-text{min-height:2lh}} /* нет>да */
/* реплика у проданного лота, en */
@media (min-width:353px) and (max-width:355px){html:lang(en) .hg-mascot[data-hg-mascot=product][data-hg-mascot-slot=sold] .hg-mascot-text{min-height:3lh}} /* нет>да */
@media (min-width:593px) and (max-width:597px){html:lang(en) .hg-mascot[data-hg-mascot=product][data-hg-mascot-slot=sold] .hg-mascot-text{min-height:2lh}} /* нет>да */
/* подсказка фильтра (контекст filter; у search/hint свой текст), en */
@media (min-width:627px) and (max-width:633px){html:lang(en) .hg-mascot[data-hg-mascot=filter][data-hg-mascot-slot=hint] .hg-mascot-text{min-height:2lh}}
/* M4, заголовок, en */
@media (min-width:339px) and (max-width:341px){html:lang(en) .hg-thanks__body h2{min-height:2lh}} /* нет>да */
/* M4, реплика, ru */
@media (min-width:343px) and (max-width:345px){html:lang(ru) .hg-thanks .hg-mascot-text{min-height:3lh}} /* нет>да */
@media (min-width:527px) and (max-width:529px){html:lang(ru) .hg-thanks .hg-mascot-text{min-height:2lh}} /* нет>да */
/* M4, реплика, en */
@media (min-width:657px) and (max-width:663px){html:lang(en) .hg-thanks .hg-mascot-text{min-height:2lh}}
/* M4, текст шага 2, ru */
@media (min-width:489px) and (max-width:493px){html:lang(ru) .hg-thanks__step:nth-child(2) .hg-thanks__text{min-height:2lh}} /* нет>да */
/* M4, текст шага 2, en */
@media (min-width:425px) and (max-width:427px){html:lang(en) .hg-thanks__step:nth-child(2) .hg-thanks__text{min-height:2lh}} /* нет>да */
/* M4, текст шага 3, ru */
@media (min-width:393px) and (max-width:399px){html:lang(ru) .hg-thanks__step:nth-child(3) .hg-thanks__text{min-height:3lh}} /* нет>да */
@media (min-width:669px) and (max-width:677px){html:lang(ru) .hg-thanks__step:nth-child(3) .hg-thanks__text{min-height:2lh}} /* нет>да */
/* M4, текст шага 3, en */
@media (min-width:609px) and (max-width:611px){html:lang(en) .hg-thanks__step:nth-child(3) .hg-thanks__text{min-height:2lh}} /* нет>да */
/* M4, текст шага 4, ru */
@media (min-width:553px) and (max-width:557px){html:lang(ru) .hg-thanks__step:nth-child(4) .hg-thanks__text{min-height:2lh}}
/* M4, текст шага 4, en */
@media (min-width:535px) and (max-width:545px){html:lang(en) .hg-thanks__step:nth-child(4) .hg-thanks__text{min-height:2lh}}
/* M5, заказ ждёт оплату, ru */
@media (min-width:327px) and (max-width:329px){html:lang(ru) .hg-mascot--account-orders[data-hg-mascot-pose=wait] .hg-mascot-text{min-height:3lh}} /* нет>да */
@media (min-width:563px) and (max-width:567px){html:lang(ru) .hg-mascot--account-orders[data-hg-mascot-pose=wait] .hg-mascot-text{min-height:2lh}} /* нет>да */
/* M5, заказ собирается, en */
@media (min-width:575px) and (max-width:581px){html:lang(en) .hg-mascot--account-orders[data-hg-mascot-pose=pack] .hg-mascot-text{min-height:2lh}}
/* M5, заказ отправлен, en */
@media (min-width:459px) and (max-width:467px){html:lang(en) .hg-mascot--account-orders[data-hg-mascot-pose=shipping] .hg-mascot-text{min-height:3lh}}
/* M5, заказов нет, en */
@media (min-width:501px) and (max-width:505px){html:lang(en) .hg-mascot[data-hg-mascot=account][data-hg-mascot-slot=noorders] .hg-mascot-text{min-height:2lh}}
/* M2, заголовок «только условия», ru */
@media (min-width:333px) and (max-width:341px){html:lang(ru) .hg-store .hg-empty--search .hg-empty__title--filters{--hg-tl:3}} /* нет>да */
