/* Точечная линия — резиновая распорка между подписью и значением: она отдаёт
   ширину тексту, а не наоборот. Раньше жёсткие 95% не оставляли места ни тому, ни
   другому, и колонки расходились поверх друг друга. */
.dtdtdt {
    border-bottom: 1px dotted #D3D6DB;
    margin-bottom: 5px;
    flex: 1 1 12px;
    min-width: 12px;
    align-self: flex-end;
    display: block;
}

.ch_val {
    /* 🔴 Было `white-space: nowrap` + `float: right`. Длинное значение («от -50 до +95
       (+50…+95 не более 8 ч/сутки)», перечень областей применения) не переносилось и
       наезжало на соседнюю колонку, а самые длинные вылезали за край блока. Значение —
       это текст произвольной длины, приехавший из 1С; вёрстка обязана его вместить,
       а не рассчитывать, что он короткий. */
    white-space: normal;
    text-align: right;
    flex: 0 1 auto;
    min-width: 0;
    padding-left: 5px;
    font-family: Inter;
    font-weight: 500;
    font-style: Medium;
    font-size: 14px;
    leading-trim: NONE;
    line-height: 22px;
    letter-spacing: 0%;
    vertical-align: middle;
    color: #0D1017;
}

.col_ch {
    padding: 6px 12px;
}

.datashet {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: baseline;
    gap: 6px;
}

.item_tab_info .row {
    margin-right: 0;
    margin-left: 0;
}

.chr_title {
    white-space: normal;
    flex: 0 1 auto;
    min-width: 0;
    box-decoration-break: clone;
    font-family: Inter;
    font-weight: 400;
    font-style: Regular;
    font-size: 14px;
    leading-trim: NONE;
    line-height: 22px;
    letter-spacing: 0%;
    vertical-align: middle;
    color: #61646B;
    width: max-content;
    padding-right: 5px;
}

.item_tab_info h4 {
    padding: 16px 12px;
}

.description_tab {
    font-family: Inter;
    font-weight: 400;
    font-style: Bold;
    font-size: 14px;
    leading-trim: NONE;
    line-height: 24px;
    letter-spacing: 0%;
    vertical-align: bottom;
    color: #45484F;
}

/* Вкладка занимает равную долю полосы, СКОЛЬКО БЫ ИХ НИ БЫЛО. Было `width:25%` —
   число вкладок, вписанное в стиль: после удаления «Описания» полоса на четверть
   опустела бы, а пятая вкладка уехала бы на вторую строку. */
.pnav-item {
    flex: 1 1 0;
    text-align: center;
    justify-content: center;
    display: flex;
}

/* ── Описание товара: 4 строки и «Показать полностью» ───────────────────────────
   Описания из 1С бывают и в одну строку, и в двадцать. Полный текст вверху карточки
   отодвигает цену и кнопку «В корзину» за экран, а обрезать молча нельзя — человек
   не узнает, что текст продолжается. Поэтому: 4 строки видно всегда, остальное — по
   явному действию. */
.prod-desc {
    margin-top: 15px;
}

.prod-desc__body {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}

.prod-desc.is-open .prod-desc__body {
    -webkit-line-clamp: unset;
    overflow: visible;
}

/* Кнопки нет, пока JS не убедился, что текст ПРАВДА не влез: обещание «есть ещё»
   над полностью видимым абзацем — ложь, которую замечают сразу. */
.prod-desc__more {
    display: none;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    padding: 0;
    border: 0;
    background: none;
    font-family: Inter, sans-serif;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
    color: #ed1c24;
    cursor: pointer;
}

.prod-desc.has-more .prod-desc__more {
    display: inline-flex;
}

.prod-desc__more:hover {
    text-decoration: underline;
}

.prod-desc__more i {
    font-size: 12px;
    color: #ed1c24;          /* цвет НА элементе: site.css красит вложенные напрямую */
    transition: transform .15s ease;
}

.prod-desc.is-open .prod-desc__more i {
    transform: rotate(180deg);
}

.prod_img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.carousel-item.active, .carousel-item-next, .carousel-item-prev {
    display: grid;
    align-content: stretch;
    justify-content: start;
    height: 100%;
}

#prodImage {
    margin: 0 auto;
    display: flex;
    justify-content: center;
    width: 480px;
    height: 480px;
    padding: 15px;
    border: 1px solid #F2F3F5;
    border-radius: 15px;
}

#prodDescription {
    min-height: 350px;
    margin-left: 15px;
}

#prodDescription h2 {
    font-family: Inter;
    font-weight: 700;
    font-size: 30px;
    leading-trim: NONE;
    line-height: 38px;
    letter-spacing: 0%;
    vertical-align: middle;

}

#prodDescription p {
max-height: 150px;
    min-height: 150px;
    overflow: hidden;
}

#prodDescription .sub_title {
    display: flex;
    font-family: Inter;
    font-weight: 400;
    font-size: 14px;
    leading-trim: NONE;
    line-height: 22px;
    letter-spacing: 0%;
    vertical-align: bottom;
}


.p_cat_name {
    font-family: Inter;
    font-weight: 400;
    font-style: Regular;
    font-size: 16px;
    leading-trim: NONE;
    line-height: 24px;
    letter-spacing: 0%;
    vertical-align: bottom;
    color: #0D1017;
}

.p_title_hide {
    display: none !important;
}
/* ============================================================================
   ВКЛАДКА «ХАРАКТЕРИСТИКИ» — паспорт разделами (Блок 11.6, 6.6–6.7).
   Стили ЗДЕСЬ, а не инлайном в info.php: рядом уже живут .chr_title/.ch_val,
   и вторая площадка стилей одного блока — это разъехавшиеся копии (см. историю
   переключателя список/плитка, где их набралось три с разными значениями).
   Цвета иконки и сноски заданы НА САМИХ элементах: `* { color: #0D1017 }`
   в site.css:5 попадает в них напрямую и наследование от родителя не доходит.
   ========================================================================= */
.chr_group {
    margin: 22px 0 6px;
    padding-bottom: 6px;
    border-bottom: 1px solid #E8EDF3;
    font-family: Inter;
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #2c5282;
}
.chr_group:first-of-type { margin-top: 8px; }
.chr_ico { margin-right: 6px; font-size: 13px; color: #9aa4b2; }
/* Условие («H=3м», «при 25 °C») — приписка к значению, а не отдельная величина:
   тем же кеглем оно спорило бы с самим значением за внимание. */
.ch_note {
    margin-left: 6px;
    font-size: 12px;
    font-weight: 400;
    color: #8a919e;
}
.chr_none { padding: 8px 12px; font-size: 14px; color: #8a919e; }

/* Строка во всю ширину: значение начинается от середины и течёт вправо, а не
   прижимается к правому краю страницы.

   ПОЧЕМУ. Правое выравнивание верно для половинной строки — там значения
   выстроены по правому краю своей колонки, и глаз читает их столбцом. В строке
   на всю ширину тот же приём отбрасывал значение к правому краю ЭКРАНА, то есть
   под колонку чужих значений: «Марка ОТВ / состава» стояла слева, а её ВЕКСОН-АВС
   висел в двадцати сантиметрах правее, ровно под «Классом пожара» соседней
   колонки. Пара «подпись — значение» распадалась, и строка читалась как две
   разные записи.

   Значение получает половину строки и левое выравнивание: начало всех длинных
   значений встаёт на одну вертикаль с правой колонкой, а сам текст читается
   слева направо, как обычный текст, а не как число в столбце. */
.col_ch.col-12 .chr_title {
    flex: 0 1 auto;
    max-width: 46%;
}
.col_ch.col-12 .ch_val {
    flex: 0 1 52%;
    text-align: left;
    padding-left: 12px;
}
