/* UI-02-c product-ui: вид групп плиток (ENG-04), частично известного значения (ENG-03), «все характеристики» (native details),
   блока покупки (C2PL-5 переносы, C2PD-2 тёмная тема) и фигуры маскота в guide (ENG-01). Структура и данные — C3/K3, цвета — токены hub.css. */

/* Группы: у комплекта — карточки «タイヤ» и «ホイール» (h3 + список), у шины или диска — одна карточка; общий блок (состояние) — отдельно под чертой. */
.jp-product-information .hg-spec-group-title{margin:0;padding:14px 16px 4px;border:1px solid var(--hg-line);border-bottom:0;border-radius:12px 12px 0 0;background:var(--hg-soft);font-size:15px;font-weight:700;line-height:1.5;color:var(--hg-ink)}
.jp-product-information .hg-spec-tiles:is([data-spec-group=tire],[data-spec-group=wheel]){margin:0 0 16px;padding:12px;border:1px solid var(--hg-line);border-radius:12px;background:var(--hg-soft)}
.jp-product-information .hg-spec-group-title+.hg-spec-tiles{border-top:0;border-radius:0 0 12px 12px;padding-top:8px}
.jp-product-information .hg-spec-tiles[data-spec-group=common]{margin:4px 0 24px;padding-top:16px;border-top:1px dashed var(--hg-line)}
/* Частично известный размер (ENG-02c/03): «265/50 —» — пунктирная рамка, как знак неполного значения. */
.jp-product-information .hg-spec-tile[data-spec-state=partial]{border-style:dashed;border-color:var(--hg-muted)}
/* Переносы в плитках: слово не рвётся посреди. JA — по фразам (auto-phrase); RU/EN — между словами, слово длиннее строки — с дефисом.
   На ≤680 у «未確認 / не подтверждён / unconfirmed» текста 92px рядом с «?» мало (слово 94–101px): значение занимает строку под «?». */
.jp-product-information .hg-spec-tile :is(.hg-spec-tile__label,.hg-spec-tile__value){overflow-wrap:break-word;hyphens:auto}
html:lang(ja) .jp-product-information .hg-spec-tile :is(.hg-spec-tile__label,.hg-spec-tile__value){word-break:auto-phrase}
@media (max-width:680px){.jp-product-information .hg-spec-tile[data-spec-state=unknown]{grid-template-areas:"label help" "value value"}}

/* Все характеристики — native details под плитками; без плиток (ENG-01 не установлен) открыт сразу. */
.hg-all-specs{margin:8px 0 0;border-top:1px solid var(--hg-line)}
.hg-all-specs>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 4px;font-size:15px;font-weight:600;color:var(--hg-ink);cursor:pointer;list-style:none}
.hg-all-specs>summary::-webkit-details-marker{display:none}
.hg-all-specs>summary::after{content:"+";flex:none;font-size:22px;font-weight:400;line-height:1;color:var(--hg-muted)}
.hg-all-specs[open]>summary::after{content:"−"}
.hg-all-specs>summary:hover{color:var(--hg-red)}
.hg-all-specs>summary:focus-visible{outline:2px solid var(--hg-red);outline-offset:2px}

/* Блок покупки. C2PL-5: японские фразы не рвутся посреди слова на 390, последние строки без висячих слов. */
html:lang(ja) .gtyres-pack :is(p,small,label,span),html:lang(ja) .jp-product-summary p,html:lang(ja) .jp-product-card .gtyres-pack-catalog-total{word-break:auto-phrase}
.gtyres-pack p,.jp-product-summary p,.jp-product-card .gtyres-pack-catalog-total{text-wrap:pretty}
/* C2PD-2: в тёмной теме поле количества — поверхность темы, а не белое пятно. */
[data-theme=dark] .hg-store .gtyres-pack input{background:var(--hg-white);color:var(--hg-ink);border:1px solid var(--hg-line)}
/* C2PD-2: вторичная кнопка «価格・在庫を問い合わせる» в тёмной теме — контурная, отличается от основной. */
[data-theme=dark] body.hg-store .jp-button.hg-button-secondary{background:transparent;color:var(--hg-ink);border:1px solid var(--hg-line);box-shadow:none}
[data-theme=dark] body.hg-store .jp-button.hg-button-secondary:hover{background:var(--hg-soft);color:var(--hg-ink)}

/* Маскот guide: фигура под подсказкой; поза — по активной секции (guide-mascot.js). */
.hg-guide__mascot{margin:12px 0 0;line-height:0}
.hg-guide__mascot img{display:block;width:auto;max-width:100%;height:140px}
@media (max-width:999px){.hg-guide__mascot img{height:96px}}

/* Отзывы (ENG-05c: штатный шаблон Woo + слой темы C3, reviews-ui r2): разметка и тексты — C3/C2, вид — здесь. Секция как остальные на карточке;
   селекторы через #reviews, чтобы перекрыть правила Ecomus/Woo для #review_form и #respond. Порядок DOM = видимому (заголовок, сводка, список,
   реплика маскота, форма, внешняя ссылка) — order не нужен. */
.hg-store #reviews.hg-reviews{display:flex;flex-direction:column;gap:20px;margin:48px 0 0;padding:32px 0 0;border-top:1px solid var(--hg-line);color:var(--hg-ink)}
.hg-store #reviews>*{margin:0}
.hg-store #reviews .woocommerce-Reviews{display:flex;flex-direction:column;gap:20px;margin:0}
.hg-store #reviews .woocommerce-Reviews>*{margin:0}
.hg-store #reviews .woocommerce-Reviews>.clear{display:none}
.hg-store #reviews #comments{display:flex;flex-direction:column;gap:16px}
.hg-store #reviews #comments>*{margin:0}
/* Читаемая ширина списка и формы на десктопе (строка отзыва на 1320 px не читается). */
.hg-store #reviews :is(#comments,#review_form_wrapper){width:100%;max-width:880px}
.hg-store #reviews #hg-reviews-title{font-size:23px;line-height:1.4;font-weight:700;color:var(--hg-ink);letter-spacing:0}
@media (max-width:900px){.hg-store #reviews #hg-reviews-title{font-size:21px}}
@media (max-width:680px){.hg-store #reviews.hg-reviews{margin-top:36px;padding-top:24px}.hg-store #reviews #hg-reviews-title{font-size:24px}}

/* Звёзды Ecomus: <use href="#star"> без спрайта на странице ничего не рисует — звезда маской на самой иконке, заливка — цвет текста.
   Ширину заполнения задаёт Ecomus (--em-rating-width у .user-rating). */
.hg-store .star-rating .ecomus-svg-icon--star{display:inline-block;width:1em;height:1em;background:currentColor;-webkit-mask:var(--hg-star) center/contain no-repeat;mask:var(--hg-star) center/contain no-repeat}
.hg-store .star-rating .ecomus-svg-icon--star svg{display:none}
/* Ширина .user-rating у Ecomus — процент от бокса .star-rating: растянутый сеткой бокс заливал все пять звёзд при оценке 4. Бокс — по содержимому. */
.hg-store .star-rating{width:max-content;max-width:100%;justify-self:start;flex:none}
.hg-store .star-rating .max-rating{color:var(--hg-line)}
.hg-store .star-rating .user-rating{color:var(--hg-red)}
.hg-store{--hg-star:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01z'/%3E%3C/svg%3E")}
.hg-store .hg-review-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:14px;line-height:1.5;color:var(--hg-muted)}
.hg-store .hg-review-summary .star-rating{font-size:16px;margin:0}
/* Ссылка-сводка под размером — спокойная строка к блоку отзывов, не кнопка. */
.hg-store a.hg-review-summary{display:inline-flex;min-height:24px;margin:8px 0 0;padding:0;background:none;border:0;text-decoration:none}
.hg-store a.hg-review-summary:hover .hg-review-summary__count{color:var(--hg-ink);text-decoration:underline;text-underline-offset:4px}
.hg-store a.hg-review-summary:focus-visible{outline:2px solid var(--hg-red);outline-offset:3px;border-radius:4px}

/* Список — карточки без нумерации: оценка, автор, дата, текст. */
.hg-store #reviews .commentlist{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.hg-store #reviews .commentlist>li{display:block;margin:0;padding:16px 18px;list-style:none;border:1px solid var(--hg-line);border-radius:12px;background:var(--hg-white)}
.hg-store #reviews .commentlist .comment_container{display:block;margin:0;padding:0}
.hg-store #reviews .commentlist .comment-text{display:grid;gap:8px;margin:0;padding:0;border:0}
.hg-store #reviews .commentlist .star-rating{font-size:14px;margin:0}
.hg-store #reviews .commentlist .meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;font-size:13px;line-height:1.6;color:var(--hg-muted)}
.hg-store #reviews .woocommerce-review__author{font-size:14px;font-weight:700;color:var(--hg-ink)}
.hg-store #reviews .woocommerce-review__verified{font-style:normal;font-size:12px;font-weight:600;line-height:1.5;padding:1px 8px;border-radius:999px;background:var(--hg-soft);color:var(--hg-ink)}
.hg-store #reviews .commentlist .description p{margin:0;font-size:14px;line-height:1.8;color:var(--hg-ink)}
/* Ожидает проверки и ошибка оценки — тихие заметки с красной полосой слева, как у реплик маскота; не курсив. */
.hg-store #reviews .woocommerce-review__awaiting-approval,.hg-store #reviews #hg-review-error{display:block;margin:0;padding:10px 14px;font-style:normal;font-size:13px;line-height:1.7;color:var(--hg-ink);background:var(--hg-soft);border-left:3px solid var(--hg-red);border-radius:0 8px 8px 0}
.hg-store #reviews #hg-review-error{margin:0 0 16px;font-size:14px;font-weight:600}
/* «Отзывов пока нет», «только купившие», «войдите» — тихие строки, а не уведомления Ecomus (голубой фон и отступы). */
.hg-store #reviews :is(.woocommerce-noreviews,.woocommerce-verification-required,.must-log-in){margin:0;padding:0;font-size:14px;font-weight:400;line-height:1.8;color:var(--hg-muted);background:none;border:0}

/* Форма: поля на поверхности темы (в тёмной — не белое пятно), граница ≥ 3:1, фокус виден. */
.hg-store #reviews #respond{margin:0;padding:0;border:0;background:none}
/* Заголовок формы — штатный span#reply-title Woo (role=heading, aria-level=3): строкой подзаголовка. */
.hg-store #reviews #reply-title{display:block;margin:0 0 14px;font-size:18px;font-weight:700;line-height:1.5;color:var(--hg-ink)}
.hg-store #reviews #reply-title small{font-size:13px;font-weight:400}
.hg-store #reviews #commentform{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin:0}
.hg-store #reviews #commentform>*{grid-column:1/-1;margin:0}
/* Абзацы формы у Ecomus — float, половина ширины и отступы 15px; раскладку даёт сетка формы. */
.hg-store #reviews #commentform>:is(p,div){float:none;width:auto;padding:0}
.hg-store #reviews #commentform>.comment-form-author{grid-column:1}
.hg-store #reviews #commentform>.comment-form-email{grid-column:2}
.hg-store #reviews #commentform .comment-notes{font-size:12px;line-height:1.8;color:var(--hg-muted)}
.hg-store #reviews #commentform .required{color:var(--hg-red)}
.hg-store #reviews #commentform :is(.comment-form-rating,.comment-form-comment,.comment-form-author,.comment-form-email)>label{display:block;float:none;width:auto;margin:0 0 8px;padding:0;font-size:14px;font-weight:600;line-height:1.5;color:var(--hg-ink)}
.hg-store #reviews #commentform :is(textarea,input[type=text],input[type=email]){display:block;width:100%;min-height:48px;margin:0;padding:12px 14px;font:inherit;font-size:15px;line-height:1.6;color:var(--hg-ink);background:var(--hg-white);border:1px solid color-mix(in srgb,var(--hg-muted) 75%,var(--hg-white));border-radius:8px;box-shadow:none}
.hg-store #reviews #commentform #comment{min-height:140px;resize:vertical}
.hg-store #reviews #commentform :is(textarea,input[type=text],input[type=email]):focus{border-color:var(--hg-ink);outline:2px solid var(--hg-red);outline-offset:2px}
/* Оценка (Root R41): штатный select#rating Woo. Без JS Woo он — единственный элемент выбора и виден, как поля формы.
   display не задаётся: с JS Woo прячет select (inline display:none) и ставит перед ним p.stars. */
.hg-store #reviews #commentform select#rating{width:auto;min-width:200px;max-width:100%;min-height:48px;margin:0;padding:10px 14px;font:inherit;font-size:15px;line-height:1.6;color:var(--hg-ink);background-color:var(--hg-white);border:1px solid color-mix(in srgb,var(--hg-muted) 75%,var(--hg-white));border-radius:8px;box-shadow:none;cursor:pointer}
html[data-theme=dark] .hg-store #reviews #commentform select#rating{color-scheme:dark}
.hg-store #reviews #commentform select#rating:focus-visible{border-color:var(--hg-ink);outline:2px solid var(--hg-red);outline-offset:2px}
/* С JS Woo: p.stars > span[role=group] > a.star-1…5 (role=radio, имя — текст ссылки). Текст скрыт визуально и остаётся именем;
   звезда — маска --hg-star на ::before, цель 44×44. Пустая — граница поля (≥ 3:1 к фону), выбранные и до выбранной — --hg-red. */
.hg-store #reviews p.stars{margin:0;padding:0;line-height:0}
.hg-store #reviews p.stars>span{display:inline-flex;gap:2px}
.hg-store #reviews p.stars a{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;margin:0;padding:0;font-size:0;line-height:0;color:transparent;text-decoration:none;text-indent:0;border-radius:8px;overflow:hidden}
.hg-store #reviews p.stars a::before{content:"";position:static;width:30px;height:30px;font-size:0;background:color-mix(in srgb,var(--hg-muted) 75%,var(--hg-white));-webkit-mask:var(--hg-star) center/contain no-repeat;mask:var(--hg-star) center/contain no-repeat;transition:transform .15s}
.hg-store #reviews p.stars.selected a::before,.hg-store #reviews p.stars.selected a.active::before{background:var(--hg-red)}
.hg-store #reviews p.stars.selected a.active~a::before{background:color-mix(in srgb,var(--hg-muted) 75%,var(--hg-white))}
/* Предпросмотр под указателем: до наведённой включительно — заливка, после — пусто (после правил выбора, та же специфичность). */
@media (hover:hover){
  .hg-store #reviews p.stars:hover a:not(:hover~a)::before{background:var(--hg-red)}
  .hg-store #reviews p.stars:hover a:hover~a::before{background:color-mix(in srgb,var(--hg-muted) 75%,var(--hg-white))}
  .hg-store #reviews p.stars a:hover::before{transform:scale(1.08)}
}
.hg-store #reviews p.stars a:focus-visible{outline:2px solid var(--hg-red);outline-offset:-2px}
@media (prefers-reduced-motion:reduce){.hg-store #reviews p.stars a::before{transition:none}}
.hg-store #reviews #commentform .comment-form-cookies-consent{display:flex;align-items:flex-start;gap:10px}
/* Чекбокс согласия: штатный в светлой теме почти не виден (светло-серый контур) — свой вид через appearance:none, элемент видим и фокусируем;
   граница --hg-muted ≥ 3:1, отмеченный — заливка --hg-red с галочкой. */
.hg-store #reviews #commentform .comment-form-cookies-consent input{-webkit-appearance:none;appearance:none;display:inline-grid;place-content:center;flex:none;width:18px;height:18px;margin:3px 0 0;padding:0;border:2px solid var(--hg-muted);border-radius:4px;background:var(--hg-white);cursor:pointer}
.hg-store #reviews #commentform .comment-form-cookies-consent input::before{content:"";width:10px;height:10px;background:var(--hg-white);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%);transform:scale(0)}
.hg-store #reviews #commentform .comment-form-cookies-consent input:checked{border-color:var(--hg-red);background:var(--hg-red)}
.hg-store #reviews #commentform .comment-form-cookies-consent input:checked::before{transform:scale(1)}
.hg-store #reviews #commentform .comment-form-cookies-consent input:focus-visible{outline:2px solid var(--hg-red);outline-offset:2px}
.hg-store #reviews #commentform .comment-form-cookies-consent label{margin:0;font-size:13px;font-weight:400;line-height:1.8;color:var(--hg-muted)}
/* Отправка — кнопка карточки (jp-button: тот же цвет и форма; в тёмной теме — та же розовая). */
.hg-store #reviews #commentform .form-submit{display:flex;margin:4px 0 0}
.hg-store #reviews #commentform #submit{width:auto;min-width:240px;min-height:54px;margin:0;padding:14px 28px;font-family:inherit;font-size:14px;font-weight:700;line-height:1.5;color:#fff;background:#c92720;border:0;border-radius:8px;box-shadow:none;cursor:pointer;transition:background .2s,box-shadow .2s}
.hg-store #reviews #commentform #submit:hover{background:#ad1e17;box-shadow:0 8px 20px #c9272023}
.hg-store #reviews #commentform #submit:focus-visible{outline:2px solid var(--hg-ink);outline-offset:3px}
html[data-theme=dark] .hg-store #reviews #commentform #submit{background:var(--hg-action);color:#fff}
html[data-theme=dark] .hg-store #reviews #commentform #submit:hover{background:var(--hg-action-hover);color:#fff}
@media (max-width:680px){.hg-store #reviews #commentform{grid-template-columns:1fr}.hg-store #reviews #commentform>:is(.comment-form-author,.comment-form-email){grid-column:1/-1}.hg-store #reviews #commentform #submit{width:100%;min-width:0}}
/* Внешние отзывы — текстовая ссылка со стрелкой, как jp-text-link. */
.hg-store #reviews .hg-reviews-external a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:13px;font-weight:600;line-height:1.5;color:var(--hg-ink);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--hg-muted) 60%,transparent);text-underline-offset:5px}
.hg-store #reviews .hg-reviews-external a:hover{color:var(--hg-red);text-decoration-color:currentColor}
.hg-store #reviews .hg-reviews-external a:focus-visible{outline:2px solid var(--hg-red);outline-offset:3px;border-radius:4px}

/* variants-ui: выбор セット / タイヤのみ / ホイールのみ (ENG-06 → ENG-25 C3, parts/related-offers.php) — вплотную над блоком покупки,
   по референсу владельца R323 (08, Mercari): плитки «миниатюра + тип + цена», выбранная выделена. Разметка, ссылки, цены и тексты — C3;
   здесь только вид. Покупки в блоке нет: ни одна плитка не похожа на кнопку. Цвета — токены hub.css, поэтому день/ночь без отдельных правил. */
.hg-store .hg-variants{display:flex;flex-direction:column;gap:10px;margin:22px 0 0;color:var(--hg-ink)}
.hg-store .hg-variants>*{margin:0}
/* Заголовок — подпись выбора, как «セット内容» референса: тише заголовков разделов карточки. */
.hg-store .hg-variants .hg-variants-title{margin:0;font-size:15px;line-height:1.5;font-weight:700;color:var(--hg-ink);letter-spacing:0}
/* Реплика маскота product/variants — короткая заметка над плитками: плитки остаются вплотную к блоку покупки. */
.hg-store .hg-variants .hg-mascot{max-width:none;margin:0}
.hg-store .hg-variants .hg-mascot-bubble{padding:8px 12px}
.hg-store .hg-variants .hg-mascot .hg-mascot-text{font-size:13px;line-height:1.65}
/* Плитки: две колонки, где колонка карточки шире 480 px (1280 — около 540 px), иначе одна; плитки строки — одной высоты. */
.hg-store .hg-variants-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,236px),1fr));gap:8px;margin:0;padding:0;list-style:none}
.hg-store .hg-variants-item{display:flex;margin:0;padding:0;list-style:none}
.hg-store .hg-variant-card{flex:1 1 auto;display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:12px;min-height:44px;box-sizing:border-box;margin:0;padding:9px 12px 9px 9px;
  border:1px solid var(--hg-line);border-radius:10px;background:var(--hg-white);color:var(--hg-ink);text-decoration:none;transition:border-color .15s,box-shadow .15s}
.hg-store .hg-variant-thumb{display:block;width:56px;aspect-ratio:1;border-radius:6px;overflow:hidden;background:var(--hg-soft)}
.hg-store .hg-variant-thumb img{display:block;width:100%;max-width:none;height:100%;object-fit:contain}
/* Своё предложение без фото — пунктирная плашка на месте миниатюры (знак неполного значения), текст плиток начинается на одной линии. */
.hg-store .hg-variant-card:not(.is-inactive):not(:has(>.hg-variant-thumb))::before{content:"";width:56px;aspect-ratio:1;box-sizing:border-box;border:1px dashed var(--hg-line);border-radius:6px;background:var(--hg-soft)}
.hg-store .hg-variant-body{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.hg-store .hg-variant-head{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}
.hg-store .hg-variant-type{font-size:14px;line-height:1.5;font-weight:700;color:var(--hg-ink);overflow-wrap:anywhere}
html:lang(ja) .hg-store .hg-variant-type{word-break:auto-phrase}
.hg-store .hg-variant-sku{font-size:12px;line-height:1.5;color:var(--hg-muted);font-variant-numeric:tabular-nums}
.hg-store .hg-variant-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;font-size:13px;line-height:1.5;font-weight:600;color:var(--hg-ink)}
.hg-store .hg-variant-total{font-size:15px;line-height:1.4;font-weight:700;color:var(--hg-ink)}
.hg-store .hg-variant-total .gtyres-pack-tax{margin-left:2px;font-size:11px;font-weight:500;color:var(--hg-muted)}
.hg-store .hg-variant-basis{font-size:11px;font-weight:500;color:var(--hg-muted)}
.hg-store .hg-variant-status,.hg-store .hg-variant-ambiguous{font-size:12px;line-height:1.55;font-weight:600;color:var(--hg-ink)}
/* R593: выбранное предложение заметно в обеих темах, независимо от закрытого checkout. */
.hg-store .hg-variant-card.is-current{padding:8px 11px 8px 8px;border:2px solid var(--hg-red);background:var(--hg-white);box-shadow:inset 0 3px 0 var(--hg-red);cursor:default}
.hg-store .hg-variant-current{display:inline-block;padding:1px 7px;border-radius:4px;background:var(--hg-action,#c92720);color:#fff;font-size:11px;line-height:1.7;font-weight:700}
.hg-store .hg-variant-current::before{content:'✓';margin-right:4px}
/* Своё предложение, которое сейчас нельзя купить: миниатюра бледнее, подпись variant_unavailable — цветом текста. */
.hg-store .hg-variant-card.is-unavailable:not(.is-current) .hg-variant-thumb img{opacity:.75}
.hg-sold-ribbon{position:absolute;top:0;left:0;z-index:2;width:104px;height:104px;overflow:hidden;pointer-events:none}
.hg-sold-ribbon>span{position:absolute;display:block;top:20px;left:-40px;width:168px;padding:6px 0;background:#dc0100;color:#fff;font-family:Arial,sans-serif;font-size:20px;font-weight:700;line-height:1.3;letter-spacing:.05em;text-align:center;transform:rotate(-45deg)}
.hg-store .jp-main-photo>.hg-sold-ribbon{top:0;left:0;right:auto;bottom:auto;width:104px;height:104px;padding:0;margin:0;border:0;border-radius:0;background:transparent}
.hg-store .jp-product-photo .hg-sold-ribbon~.jp-state{left:auto;right:12px}
/* Неактивная плитка — подтверждённый вид без опубликованного предложения или неоднозначная связь. Не ссылка и не кнопка: без поверхности,
   тени, миниатюры и указателя, рамка пунктиром; тип и статус — текстом --hg-muted (≥ 4.5:1 на фоне страницы в обеих темах). */
.hg-store .hg-variant-card.is-inactive{grid-template-columns:minmax(0,1fr);padding:9px 12px;border-style:dashed;background:transparent;cursor:default}
.hg-store .hg-variant-card.is-inactive :is(.hg-variant-type,.hg-variant-status){color:var(--hg-muted)}
.hg-store .hg-variant-card.is-inactive .hg-variant-status{font-weight:500}
/* Ссылка: вся плитка кликабельна; hover — красная рамка и тень, как у плиток витрины; фокус — кольцо темы со скруглением плитки. */
.hg-store a.hg-variant-card{cursor:pointer}
@media (hover:hover){.hg-store a.hg-variant-card:hover{border-color:var(--hg-red);box-shadow:var(--hg-shadow)}}
.hg-store a.hg-variant-card:focus-visible{outline:3px solid var(--hg-red);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.hg-store .hg-variant-card{transition:none}}
/* ENG-12 (P3): лот без фото — заглушка Woo тише и в тоне поверхности, как у карточек каталога UI-03c; фото лота не подменяет. */
.jp-gallery--empty .jp-main-photo img.woocommerce-placeholder{object-fit:contain;padding:24%;opacity:.5}
html[data-theme=dark] .jp-gallery--empty .jp-main-photo img.woocommerce-placeholder{filter:invert(1);opacity:.35}
/* UI-03e (G3, Root R236): раздел 本数・セット内容 под блоком покупки (parts/product-composition.php). Секция — как блок 組み合わせ (ENG-06) ниже:
   линия сверху, заголовок 23 / 21 / 24 px, реплика маскота под заголовком. Факты — карточкой как у 組み合わせ (рамка, белая поверхность),
   чтобы правило не выглядело второй репликой: у встроенной реплики серый фон с красной полосой.
   r2 (R247): единственный раздел о составе — у комплекта под строкой вида список компонентов «тип · артикул» из прежнего раздела セット内容. */
.hg-store .hg-composition{display:flex;flex-direction:column;gap:14px;margin:28px 0 0;padding:22px 0 0;border-top:1px solid var(--hg-line);color:var(--hg-ink)}
.hg-store .hg-composition>*{margin:0}
.hg-store .hg-composition .hg-composition-title{margin:0;font-size:23px;line-height:1.4;font-weight:700;color:var(--hg-ink);letter-spacing:0}
@media (max-width:900px){.hg-store .hg-composition .hg-composition-title{font-size:21px}}
@media (max-width:680px){.hg-store .hg-composition{margin-top:24px;padding-top:20px}.hg-store .hg-composition .hg-composition-title{font-size:24px}}
.hg-store .hg-composition-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--hg-line);border-radius:12px;background:var(--hg-white)}
.hg-store .hg-composition-facts{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 20px}
.hg-store .hg-composition .hg-composition-type{margin:0;font-size:18px;line-height:1.5;font-weight:700;color:var(--hg-ink)}
.hg-store .hg-composition-quantity{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;margin:0}
.hg-store .hg-composition-quantity dt{margin:0;font-size:13px;line-height:1.5;font-weight:500;color:var(--hg-muted)}
.hg-store .hg-composition-quantity dd{margin:0;font-size:18px;line-height:1.5;font-weight:700;color:var(--hg-ink)}
.hg-store .hg-composition-components{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;font-size:14px;line-height:1.7;color:var(--hg-ink);overflow-wrap:anywhere}
.hg-store .hg-composition-components li{margin:0;padding:0}
.hg-store .hg-composition .hg-composition-rule{margin:0;font-size:14px;line-height:1.7;color:var(--hg-ink)}
.hg-store .hg-composition-card>*+.hg-composition-rule{padding-top:10px;border-top:1px solid var(--hg-line)}
/* ENG-13 (JA-37): подпись под заглушкой лота без фото — приглушённый факт; ссылка обращения отдельной строкой, ≤ 680 px — зона нажатия 44 px. */
.jp-gallery--empty .jp-gallery-note{margin:12px 0 0;font-size:14px;line-height:1.6;color:var(--hg-muted)}
.jp-gallery--empty .jp-gallery-note-action{display:inline-flex;align-items:center;font-size:14px;line-height:1.5;color:var(--hg-red);text-decoration:underline;text-underline-offset:3px}
@media (max-width:680px){.jp-gallery--empty .jp-gallery-note-action{min-height:44px}}
