/* BIOCARD: калькулятор курьерской доставки (calc/calc.php, calc/calc.js). Цвета — фирменные токены сайта. */
.bcc { --bcc-b: #7C1623; --bcc-b2: #9C1F30; --bcc-line: #e8dede; --bcc-field: #d9cccd; --bcc-soft: #faf7f7; --bcc-text: #262626; --bcc-mute: #5f5557; }
.bcc, .bcc-dlg { font-variant-numeric: tabular-nums; }
.bcc-f { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; font-size: 13px; line-height: 1.3; color: var(--bcc-mute); font-weight: 400; }
.bcc-f > span { font-weight: 600; color: #3b3335; }
.bcc select, .bcc input[type="number"], .bcc-dlg input:not([type="checkbox"]), .bcc-dlg select, .bcc-dlg textarea {
	width: 100%; height: 46px; box-sizing: border-box; margin: 0; padding: 0 12px; border: 1px solid #d9cccd; border-radius: 6px;
	background: #fff; color: #262626; font: inherit; font-size: 16px; line-height: 1.2; box-shadow: none; }
.bcc select { padding-right: 34px; appearance: none; -webkit-appearance: none;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237C1623' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center; }
.bcc-dlg textarea { height: auto; min-height: 64px; padding: 10px 12px; resize: vertical; }
.bcc select:focus, .bcc input:focus, .bcc-dlg input:focus, .bcc-dlg select:focus, .bcc-dlg textarea:focus { outline: none; border-color: #7C1623; box-shadow: 0 0 0 3px rgba(124, 22, 35, .15); }
.bcc input::placeholder, .bcc-dlg input::placeholder, .bcc-dlg textarea::placeholder { color: #9a8f91; }
.bcc .btn-biocard, .bcc-dlg .btn-biocard { margin: 0; cursor: pointer; }
.bcc .btn-biocard[disabled] { opacity: .45; cursor: default; }
.bcc-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.bcc-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 16px; margin-top: 12px; }
.bcc-ck { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 10px; font-size: 15px; line-height: 1.4; color: #262626; font-weight: 400; cursor: pointer; }
.bcc-ck input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #7C1623; }
.bcc-ck span { flex: 1 1 auto; }
.bcc-ck b { flex: none; color: #7C1623; font-weight: 700; white-space: nowrap; }

/* Полная версия: форма слева, итог справа (закреплён при прокрутке). */
.bcc-full { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 28px; align-items: start; }
.bcc-form { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.bcc-set { margin: 0; padding: 16px 18px 6px; border: 1px solid #e8dede; border-radius: 8px; min-width: 0; }
.bcc-set legend { padding: 0 6px; margin-left: -6px; font-size: 15px; font-weight: 700; color: #262626; }
.bcc-set legend small { font-weight: 400; color: #5f5557; font-size: 13px; }
.bcc-dims { display: flex; align-items: center; gap: 8px; }
.bcc-dims span { color: #5f5557; }
.bcc-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 12px 0 0; font-size: 13px; color: #5f5557; }
.bcc-chips button { height: 32px; padding: 0 12px; border: 1px solid #d9cccd; border-radius: 16px; background: #fff; color: #7C1623; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.bcc-chips button:hover, .bcc-chips button.is-on { border-color: #7C1623; background: #7C1623; color: #fff; }
.bcc-hint { margin: 10px 0 10px; font-size: 13px; line-height: 1.45; color: #5f5557; }
.bcc-out { position: sticky; top: 16px; padding: 22px 22px 20px; background: #fff; border: 1px solid #e8dede; border-top: 3px solid #7C1623; border-radius: 0 0 8px 8px; box-shadow: 0 12px 32px rgba(60, 20, 26, .07); }
.bcc-route { font-size: 15px; line-height: 1.4; color: #262626; font-weight: 600; }
.bcc-sum { margin: 10px 0 2px; font-size: 40px; line-height: 1.1; font-weight: 800; color: #7C1623; }
.bcc-sum small { font-size: 15px; font-weight: 600; color: #5f5557; }
.bcc-vat { font-size: 15px; color: #3b3335; min-height: 1.4em; }
.bcc-lines { list-style: none; margin: 14px 0 0; padding: 12px 0 0; border-top: 1px dashed #e0d3d4; }
.bcc-lines li { display: flex; justify-content: space-between; gap: 12px; margin: 0 0 6px; padding: 0; font-size: 14px; line-height: 1.4; color: #3b3335; }
.bcc-lines li::before { content: none; }
.bcc-lines b { white-space: nowrap; color: #262626; }
.bcc-weight { margin: 10px 0 0; font-size: 13px; line-height: 1.45; color: #5f5557; }
.bcc-incl { margin: 12px 0 16px; padding: 10px 12px; background: #faf7f7; border-radius: 6px; font-size: 13.5px; line-height: 1.45; color: #3b3335; }
.bcc-out .bcc-order { width: 100%; }
.bcc-disc { margin: 12px 0 0; font-size: 12.5px; line-height: 1.45; color: #5f5557; }
.bcc-disc a { color: #7C1623; }

/* Компактная полоса на главной: заголовок · куда · вес · цена · «Оформить». */
.bcc-compact { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(170px, 1fr) 104px minmax(150px, auto) auto; grid-template-areas: "t to w res btn" "t links links links links"; align-items: end; gap: 6px 16px; }
.bcc-c-title { grid-area: t; display: flex; flex-direction: column; gap: 3px; align-self: center; min-width: 0; }
.bcc-c-title b { font-size: 18px; line-height: 1.25; color: #7C1623; }
.bcc-c-title span { font-size: 13.5px; line-height: 1.35; color: #444; }
.bcc-c-to { grid-area: to; }
.bcc-c-w { grid-area: w; }
.bcc-c-res { grid-area: res; display: flex; flex-direction: column; justify-content: center; min-height: 46px; padding: 0 4px; }
.bcc-c-sum { font-size: 24px; line-height: 1.1; font-weight: 800; color: #7C1623; white-space: nowrap; }
.bcc-c-res small { font-size: 12.5px; color: #5f5557; white-space: nowrap; }
.bcc-compact .bcc-order { grid-area: btn; height: 46px; min-width: 150px; padding: 0 22px; white-space: nowrap; }
.bcc-c-links { grid-area: links; display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 13px; line-height: 1.35; color: #5f5557; }
.bcc-c-more, .bcc-link { color: #7C1623; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.bcc-c-more:hover, .bcc-link:hover { color: #9C1F30; }

/* Окно заявки. */
.bcc-dlg { width: min(640px, calc(100vw - 24px)); max-height: calc(100vh - 24px); padding: 0; border: 0; border-radius: 10px; box-shadow: 0 24px 64px rgba(21, 23, 28, .35); color: #262626; overflow: auto; }
.bcc-dlg::backdrop { background: rgba(21, 16, 17, .55); }
.bcc-dlg.bcc-dlg-fallback { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 100000; }
.bcc-dlg-in { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 26px 26px 22px; }
.bcc-dlg h2 { margin: 0; padding-right: 36px; font-size: 22px; line-height: 1.25; color: #262626; text-transform: none; }
.bcc-dlg-x { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; color: #5f5557; font-size: 28px; line-height: 1; cursor: pointer; }
.bcc-dlg-x:hover { background: #faf7f7; color: #7C1623; }
.bcc-dlg-sum { padding: 10px 12px; background: #faf7f7; border-left: 3px solid #7C1623; border-radius: 4px; font-size: 14.5px; line-height: 1.45; font-weight: 600; color: #3b3335; }
.bcc-dlg-sum:empty { display: none; }
.bcc-dlg .bcc-f { color: #5f5557; }
.bcc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.bcc-err { margin: 0; padding: 10px 12px; background: #fdf0f1; border-radius: 6px; color: #8f1d2c; font-size: 14px; }
.bcc-send { width: 100%; }
.bcc-consent { margin: 0; font-size: 12.5px; line-height: 1.45; color: #5f5557; }
.bcc-consent a { color: #7C1623; }
.bcc-ok p { margin: 0; font-size: 15.5px; line-height: 1.5; }
.bcc-ok .btn-biocard { align-self: flex-start; min-width: 160px; }

/* Таблица тарифа на /services/tarify/. */
.bcc-tbl-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #e8dede; border-radius: 8px; background: #fff; }
.bcc-tbl { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 14px; line-height: 1.35; }
.bcc-tbl th, .bcc-tbl td { padding: 9px 12px; border-bottom: 1px solid #f0e7e8; text-align: right; white-space: nowrap; }
.bcc-tbl th:first-child, .bcc-tbl td:first-child { text-align: left; white-space: normal; }
.bcc-tbl thead th { position: sticky; top: 0; background: #faf7f7; font-size: 12.5px; font-weight: 700; color: #3b3335; vertical-align: bottom; white-space: normal; }
.bcc-tbl tbody tr:hover { background: #fdf8f8; }
.bcc-tbl td:nth-child(3) { font-weight: 700; color: #262626; }
.bcc-tbl button { padding: 0; border: 0; background: none; color: #7C1623; font: inherit; font-size: 13px; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.bcc-tbl-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0 0 12px; }
.bcc-tbl-tools input { width: min(320px, 100%); height: 44px; box-sizing: border-box; padding: 0 12px; border: 1px solid #d9cccd; border-radius: 6px; font: inherit; font-size: 16px; }
.bcc-tbl-tools input:focus { outline: none; border-color: #7C1623; box-shadow: 0 0 0 3px rgba(124, 22, 35, .15); }
.bcc-tbl-tools span { font-size: 13px; color: #5f5557; }
.bcc-details { margin-top: 18px; }
.bcc-details > summary { display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 22px; border: 1px solid #7C1623; color: #7C1623; font-size: 13px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; cursor: pointer; list-style: none; }
.bcc-details > summary::-webkit-details-marker { display: none; }
.bcc-details > summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .2s; }
.bcc-details[open] > summary::after { transform: rotate(-135deg) translateY(-1px); }
.bcc-details[open] > summary { margin-bottom: 16px; background: #7C1623; color: #fff; }
.bcc-details > summary:focus-visible { outline: 3px solid rgba(124, 22, 35, .35); outline-offset: 2px; }

@media (max-width: 1199px) {
	.bcc-compact { grid-template-columns: minmax(170px, 1fr) 104px minmax(140px, auto) auto; grid-template-areas: "t t t t" "to w res btn" "links links links links"; }
	.bcc-c-title { flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; }
}
@media (max-width: 991px) {
	.bcc-full { grid-template-columns: 1fr; }
	.bcc-out { position: static; }
}
@media (max-width: 767px) {
	.bcc-grid3 { grid-template-columns: 1fr 1fr; }
	.bcc-grid3 .bcc-f:last-child { grid-column: 1 / -1; }
	.bcc-sum { font-size: 34px; }
	.bcc-compact { grid-template-columns: minmax(0, 1fr) 96px; grid-template-areas: "t t" "to w" "res btn" "links links"; gap: 8px 12px; }
	.bcc-c-title { flex-direction: column; gap: 2px; }
	.bcc-c-title b { font-size: 16px; }
	.bcc-c-title span { display: none; }
	.bcc-compact .bcc-order { min-width: 0; width: 100%; }
	.bcc-c-links { flex-direction: column; gap: 4px; }
	.bcc-dlg-in { padding: 22px 16px 18px; }
	.bcc-dlg .bcc-grid2 { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
	.bcc-grid2 { grid-template-columns: 1fr; }
	.bcc-full .bcc-grid2:nth-child(2) { grid-template-columns: minmax(0, 1fr) 96px; }
	.bcc-dims input { padding: 0 8px; }
}
@media (prefers-reduced-motion: reduce) { .bcc-details > summary::after { transition: none; } }
.bcc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.bcc-h3 { margin: 28px 0 10px; font-size: 18px; font-weight: 700; color: #262626; }
.bcc-extras { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 28px; }
.bcc-extras li { position: relative; margin: 0; padding: 0 0 0 16px; font-size: 14.5px; line-height: 1.5; color: #3b3335; }
.bcc-extras li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: #7C1623; }
.bcc-extras b { color: #7C1623; white-space: nowrap; }
@media (max-width: 767px) { .bcc-extras { grid-template-columns: 1fr; } }

/* v2 (22.09.2026, проверка экран за экраном): на телефоне и планшете цена сразу после города и веса, а не под всей формой;
   выключку по ширине (решение CEO, brand-fixes.css) не трогаем;
   кнопка «Оформить» в полосе главной на телефоне — по ширине текста. */
@media (max-width: 991px) {
	.bcc-full { display: flex; flex-direction: column; gap: 18px; }
	.bcc-form { display: contents; }
	.bcc-form > .bcc-grid2 { order: 1; }
	.bcc-out { order: 2; }
	.bcc-form > .bcc-set { order: 3; }
}
@media (max-width: 767px) {
	.bcc-compact { grid-template-columns: minmax(0, 1fr) minmax(96px, auto); }
	.bcc-compact .bcc-order { padding: 0 18px; }
}
@media (max-width: 420px) {
	.bcc-dims { gap: 6px; }
	.bcc-dims input { font-size: 15px; }
}

/* v4: на телефоне колонка «Город» таблицы остаётся на месте, цены прокручиваются вбок. */
@media (max-width: 767px) {
	.bcc-tbl th:first-child, .bcc-tbl td:first-child { position: sticky; left: 0; z-index: 1; background: #fff; box-shadow: 1px 0 0 #f0e7e8; }
	.bcc-tbl thead th:first-child { z-index: 2; background: #faf7f7; }
}

/* v5 (22.09.2026, тариф сборных грузов): переключатель «Курьерская / Сборный груз» в полосе главной,
   полный расчёт сборного груза, таблица тарифа сборки. */
.bcc [hidden] { display: none !important; }
.bcc-seg { display: inline-flex; align-self: flex-start; gap: 2px; margin: 6px 0 2px; padding: 3px; border: 1px solid #d9cccd; border-radius: 20px; background: #fff; }
.bcc-seg button { height: 30px; margin: 0; padding: 0 14px; border: 0; border-radius: 16px; background: transparent; color: #7C1623; font: inherit; font-size: 13px; font-weight: 600; line-height: 30px; white-space: nowrap; cursor: pointer; }
.bcc-seg button:hover { background: #faf7f7; }
.bcc-seg button.is-on { background: #7C1623; color: #fff; }
.bcc-seg button:focus-visible { outline: 3px solid rgba(124, 22, 35, .35); outline-offset: 1px; }
.bcc-static { display: flex; align-items: center; height: 46px; box-sizing: border-box; padding: 0 12px; border: 1px dashed #d9cccd; border-radius: 6px; background: #faf7f7; color: #3b3335; font-size: 16px; line-height: 1.2; }
.bcc-grid3.bcc-grid3-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bcc-tbl-ltl td:nth-child(3) { font-weight: 400; }
.bcc-tbl-ltl td:nth-child(2), .bcc-tbl-ltl td:nth-child(4) { font-weight: 700; color: #262626; }
@media (max-width: 1199px) {
	.bcc-seg { margin: 0; align-self: center; }
}
@media (max-width: 767px) {
	.bcc-grid3-2 .bcc-f:last-child { grid-column: auto; }
	.bcc-c-res small { white-space: normal; }
	.bcc-seg { align-self: flex-start; margin: 4px 0 0; }
}
.bcc-tbl-sklad { min-width: 560px; }
.bcc-tbl-sklad td:nth-child(3) { font-weight: 400; }
.bcc-extras-sklad { margin-top: 18px; }
.bcc-ltl-cards { margin-top: 28px; }
@media (max-width: 767px) { .bcc-tbl-sklad th:first-child, .bcc-tbl-sklad td:first-child { min-width: 170px; } }
/* v6: на планшете и телефоне поля полного расчёта — во всю ширину (align-items от десктопной сетки их сжимал);
   диапазоны температур не рвутся после многоточия. */
@media (max-width: 991px) { .bcc-full { align-items: stretch; } }
.bcc-nw { white-space: nowrap; }
/* v7: ставки склада на телефоне — карточками: услуга, под ней три цены с подписью режима (таблица в 4 колонки не помещалась). */
@media (max-width: 767px) {
	.bcc-tbl-wrap:has(.bcc-tbl-sklad) { overflow: visible; }
	.bcc-tbl.bcc-tbl-sklad { min-width: 0; }
	.bcc-tbl-sklad thead { display: none; }
	.bcc-tbl-sklad, .bcc-tbl-sklad tbody { display: block; }
	.bcc-tbl-sklad tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 10px; padding: 12px 14px; border-bottom: 1px solid #f0e7e8; }
	.bcc-tbl-sklad tr:last-child { border-bottom: 0; }
	.bcc-tbl-sklad td, .bcc-tbl-sklad td:first-child { position: static; min-width: 0; padding: 0; border: 0; box-shadow: none; background: none; text-align: left; white-space: normal; }
	.bcc-tbl-sklad td:first-child { grid-column: 1 / -1; margin-bottom: 4px; font-weight: 600; color: #262626; }
	.bcc-tbl-sklad td[data-label] { font-size: 16px; font-weight: 700; color: #262626; }
	.bcc-tbl-sklad td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: 12px; font-weight: 400; color: #5f5557; white-space: nowrap; }
}

/* v8 (22.09.2026, замечания CEO и коллег): кнопка «Рассчитать» в полосе главной — в полный расчёт с городом и весом
   («провалиться в расчёт»), «Оформить» рядом контуром; крестик окна заявки — поверх заголовка (анимация появления
   заголовков brand-motion.js давала h2 will-change и слой поверх крестика: клик уходил в заголовок); внутри
   калькулятора и окна анимации появления нет; на сенсорных экранах снятая кнопка габаритов не остаётся красной. */
.bcc-dlg-x { z-index: 3; }
html.bm-motion .bcc-dlg .bm-reveal, html.bm-motion .bcc .bm-reveal { opacity: 1; transform: none; transition: none; will-change: auto; }
.bcc-c-btns { grid-area: btn; display: flex; gap: 8px; }
.bcc-compact .bcc-c-btns .btn-biocard { width: auto; min-width: 0; height: 46px; margin: 0; padding: 0 18px; font-size: 15px; white-space: nowrap; text-decoration: none; }
.bcc-compact .bcc-calc { min-width: 150px; }
.bcc-compact .bcc-calc:hover, .bcc-compact .bcc-calc:focus { text-decoration: none; }
.bcc-compact .bcc-order { background: #fff; color: #7C1623; }
.bcc-compact .bcc-order:hover { background: #7C1623; color: #fff; }
@media (max-width: 767px) {
	.bcc-compact { grid-template-areas: "t t" "to w" "res res" "btn btn" "links links"; }
	.bcc-compact .bcc-c-btns .btn-biocard { flex: 1 1 0; padding: 0 10px; }
	.bcc-compact .bcc-calc { min-width: 0; }
}
@media (hover: none) { .bcc-chips button:hover:not(.is-on) { border-color: #d9cccd; background: #fff; color: #7C1623; } }
/* v9: на планшете (768–991) кнопки «Рассчитать» и «Оформить» — отдельной строкой под городом, весом и ценой. */
@media (min-width: 768px) and (max-width: 991px) {
	.bcc-compact { grid-template-columns: minmax(0, 1fr) 104px minmax(140px, auto); grid-template-areas: "t t t" "to w res" "btn btn btn" "links links links"; }
	.bcc-compact .bcc-c-btns .btn-biocard { flex: 1 1 0; }
}

/* v10 (22.09.2026): «по оферте» под ценой и выбор пути в окне заявки — оферта / договор / сначала вопрос. */
.bcc-offer { margin: 14px 0 12px; padding: 10px 12px; background: #faf7f7; border-radius: 6px; font-size: 13.5px; line-height: 1.45; color: #3b3335; }
.bcc-offer b { color: #7C1623; font-weight: 700; }
.bcc-offer a, .bcc-pth-d a { color: #7C1623; }
.bcc-path { display: grid; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.bcc-path legend { margin: 0 0 2px; padding: 0; font-size: 13px; font-weight: 600; color: #3b3335; }
.bcc-pth { display: grid; grid-template-columns: 18px minmax(0, 1fr); column-gap: 10px; row-gap: 2px; align-items: start; margin: 0; padding: 10px 12px; border: 1px solid #d9cccd; border-radius: 8px; background: #fff; cursor: pointer; font-weight: 400; }
.bcc-pth input { grid-row: 1 / span 2; width: 18px; height: 18px; margin: 2px 0 0; accent-color: #7C1623; }
.bcc-pth-t { font-size: 15px; line-height: 1.3; font-weight: 700; color: #262626; }
.bcc-pth-t em { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: #7C1623; color: #fff; font-size: 11.5px; line-height: 1.5; font-style: normal; font-weight: 600; vertical-align: 1px; white-space: nowrap; }
.bcc-pth-d { font-size: 13px; line-height: 1.45; color: #5f5557; }
.bcc-pth.is-on { border-color: #7C1623; background: #faf7f7; box-shadow: inset 0 0 0 1px #7C1623; }
.bcc-pth:focus-within { outline: 2px solid rgba(124, 22, 35, .35); outline-offset: 2px; }
@media (max-width: 575px) {
	.bcc-pth { padding: 9px 10px; }
	.bcc-pth-t em { margin: 3px 0 0; }
}
