/* Каталог перевозчиков и публичный профиль компании.
   Палитра и скругления взяты из home.css: каталог должен читаться как часть
   нового оформления сайта, а не как отдельно приклеенный раздел. */

.sampa24-catalog { color: #102f51; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; border: 0; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

/* --- общие атомы ---------------------------------------------------------- */

.sampa24-rating { display: inline-flex; align-items: baseline; gap: 5px; white-space: nowrap; }
.sampa24-rating__stars { color: #e69a00; font-size: 12px; letter-spacing: .5px; }
.sampa24-rating__stars-empty { color: #dfe7f0; }
.sampa24-rating__value { color: #18395c; font-size: 12px; font-weight: 800; }
.sampa24-rating__dash { color: #a8bacd; font-size: 13px; font-weight: 700; }
.sampa24-rating--lg .sampa24-rating__stars { font-size: 15px; letter-spacing: 1px; }
.sampa24-rating--lg .sampa24-rating__value { font-size: 25px; }

.sampa24-avatar { display: grid; flex: 0 0 auto; place-items: center; overflow: hidden; border: 3px solid #fff; border-radius: 50%; background: #1d568d; box-shadow: 0 5px 12px rgba(23, 62, 104, .16); color: #fff; font-weight: 800; }
.sampa24-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sampa24-avatar--82 { width: 82px; height: 82px; font-size: 30px; }
.sampa24-avatar--62 { width: 62px; height: 62px; font-size: 24px; }
.sampa24-avatar--56 { width: 56px; height: 56px; font-size: 22px; }
.sampa24-avatar--38 { width: 38px; height: 38px; border-width: 2px; font-size: 15px; }

.sampa24-cat-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px; font-size: 10px; font-weight: 800; line-height: 1.3; }
.sampa24-cat-badge--ok { background: #e8f8ee; color: #168b45; }
.sampa24-cat-badge--info { background: #eef7ff; color: #315675; }
.sampa24-cat-badge--warn { background: #fff6e8; color: #a76600; }
.sampa24-cat-badge--ok:before { width: 6px; height: 6px; border-radius: 50%; background: currentColor; content: ''; }
.sampa24-cat-badge--rating { background: #fff4e2; color: #a76600; }
.sampa24-cat-badge--rating:before { color: #e69a00; content: '★'; }

.sampa24-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 16px; border: 1px solid transparent; border-radius: 9px; font-size: 12px; font-weight: 700; line-height: 1.2; text-align: center; text-decoration: none; transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease; }
.sampa24-btn--primary { background: #ff4d12; color: #fff !important; }
.sampa24-btn--primary:hover { background: #e04410; color: #fff !important; transform: translateY(-1px); }
.sampa24-btn--outline { border-color: #cfe4ff; color: #1d5a91; }
.sampa24-btn--outline:hover { border-color: #f85112; background: #f85112; color: #fff !important; }
.sampa24-btn--ghost { border-color: #cfe4ff; color: #1d5a91; }
.sampa24-btn--ghost:hover { border-color: #f85112; color: #f85112; }
.sampa24-btn--wide { min-height: 44px; padding: 0 22px; border-radius: 22px; font-size: 13px; }

/* --- шапка каталога ------------------------------------------------------- */

.sampa24-catalog__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 0 0 22px; }
.sampa24-catalog__eyebrow { margin: 0 0 8px; color: #ff4d12; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.sampa24-catalog__head h1 { margin: 0 0 8px; color: #173e68; font-size: clamp(26px, 3.2vw, 32px); line-height: 1.15; }
.sampa24-catalog__lead { max-width: 650px; margin: 0; color: #7189a3; font-size: 14px; line-height: 1.55; text-wrap: pretty; }
.sampa24-catalog__count { flex: 0 0 auto; padding: 13px 18px; border: 1px solid #d4e8ff; border-radius: 14px; background: #f1f8ff; text-align: center; }
.sampa24-catalog__count strong { display: block; color: #174978; font-size: 25px; line-height: 1; }
.sampa24-catalog__count span { display: block; margin-top: 3px; color: #728ba7; font-size: 11px; }

.sampa24-catalog__filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, auto) minmax(170px, auto) auto; gap: 10px; margin: 0 0 24px; padding: 13px; border: 1px solid #d4e8ff; border-radius: 14px; background: #f1f8ff; }
.sampa24-catalog__filters label { display: block; min-width: 0; margin: 0; }
.sampa24-catalog__filters input, .sampa24-catalog__filters select { box-sizing: border-box; width: 100%; height: 44px; padding: 0 13px; border: 1px solid #d4e8ff; border-radius: 9px; background: #fff; color: #244766; font: inherit; font-size: 13px; }
.sampa24-catalog__submit { min-height: 44px; padding: 0 20px; border: 0; border-radius: 9px; background: #ff4d12; color: #fff; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.sampa24-catalog__submit:hover { background: #e04410; }

/* --- блок «в вашем городе» ------------------------------------------------ */

.sampa24-catalog__local { margin: 0 0 30px; padding: 22px; border: 1px solid #bfe9ce; border-radius: 18px; background: linear-gradient(135deg, #f2fbf5 0%, #fff 60%); }
.sampa24-catalog__local-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin: 0 0 18px; }
.sampa24-catalog__local-title { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.sampa24-catalog__local-title h2 { margin: 0; color: #173e68; font-size: 21px; }
.sampa24-catalog__local-head p { margin: 7px 0 0; color: #56718c; font-size: 13px; line-height: 1.5; }
.sampa24-catalog__hint-toggle { display: grid; place-items: center; width: 22px; height: 22px; padding: 0; border: 1px solid #b8d8ee; border-radius: 50%; background: #fff; color: #315675; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.sampa24-catalog__hint-toggle:hover { border-color: #f85112; color: #f85112; }
.sampa24-catalog__city-pill { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; padding: 8px 12px; border: 1px solid #cfe4ff; border-radius: 999px; background: #fff; color: #315675; font-size: 11px; font-weight: 700; white-space: nowrap; }
.sampa24-catalog__city-pill svg { width: 14px; height: 14px; fill: none; stroke: #f85112; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }

.sampa24-catalog__hint { margin: 0 0 18px; padding: 17px 19px; border: 1px solid #cfe4ff; border-radius: 14px; background: #fff; box-shadow: 0 12px 28px rgba(23, 62, 104, .09); }
.sampa24-catalog__hint[hidden] { display: none; }
.sampa24-catalog__hint-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.sampa24-catalog__hint-head strong { color: #173e68; font-size: 14px; }
.sampa24-catalog__hint-close { padding: 0; border: 0; background: transparent; color: #7189a3; font: inherit; font-size: 16px; line-height: 1; cursor: pointer; }
.sampa24-catalog__hint > p { margin: 8px 0 14px; color: #7189a3; font-size: 12px; line-height: 1.5; }
.sampa24-catalog__hint ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.sampa24-catalog__hint li { position: relative; padding: 0 0 10px 26px; border-bottom: 1px solid #edf4fb; }
.sampa24-catalog__hint li:last-child { padding-bottom: 0; border-bottom: 0; }
.sampa24-catalog__hint li:before { position: absolute; top: 1px; left: 0; color: #168b45; font-weight: 700; content: '✓'; }
.sampa24-catalog__hint li b { display: block; color: #315675; font-size: 12px; }
.sampa24-catalog__hint li small { display: block; margin-top: 2px; color: #7189a3; font-size: 11px; line-height: 1.35; }
.sampa24-catalog__hint-note { margin: 14px 0 0 !important; padding-top: 13px; border-top: 1px solid #edf4fb; font-size: 11px !important; line-height: 1.45; }

.sampa24-catalog__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.sampa24-cat-card { display: flex; min-width: 0; flex-direction: column; padding: 20px; border: 1px solid #bfe9ce; border-radius: 16px; background: #fff; box-shadow: 0 10px 25px rgba(32, 87, 137, .06); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.sampa24-cat-card:hover { border-color: #8ed6a8; box-shadow: 0 14px 32px rgba(32, 87, 137, .11); transform: translateY(-2px); }
.sampa24-carrier-card__head { display: flex; align-items: center; gap: 12px; min-width: 0; }
.sampa24-carrier-card__head > div { min-width: 0; }
.sampa24-carrier-card__head h3 { margin: 0; font-size: 15px; line-height: 1.3; }
.sampa24-carrier-card__head h3 a { color: #174978; text-decoration: none; }
.sampa24-carrier-card__head h3 a:hover { color: #f85112; }
.sampa24-carrier-card__head p { margin: 5px 0 0; color: #7189a3; font-size: 11px; line-height: 1.3; }
.sampa24-carrier-card__badges { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0 0; }
.sampa24-carrier-card__trust { margin-top: 13px; padding: 12px 14px; border: 1px solid #dbeafa; border-radius: 12px; }
.sampa24-carrier-card__trust > div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.sampa24-carrier-card__trust span { color: #7189a3; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.sampa24-carrier-card__trust strong { color: #168b45; font-size: 20px; line-height: 1; }
.sampa24-carrier-card__trust i, .sampa24-carrier-row__trust i { display: block; height: 7px; margin-top: 9px; overflow: hidden; border-radius: 7px; background: #e1f0e6; }
.sampa24-carrier-card__trust i b, .sampa24-carrier-row__trust i b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1aa04c, #65c778); }
.sampa24-carrier-card__metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid #e6f0fb; }
.sampa24-carrier-card__metrics small, .sampa24-carrier-row__cell small { display: block; color: #728ba7; font-size: 9px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.sampa24-carrier-card__metrics strong { display: block; margin-top: 6px; color: #174978; font-size: 15px; }
.sampa24-carrier-card__metrics .sampa24-rating { margin-top: 6px; }
.sampa24-carrier-card__metrics > div > span { display: block; margin-top: 3px; overflow: hidden; color: #7189a3; font-size: 10px; text-overflow: ellipsis; }
.sampa24-carrier-card__actions { display: flex; align-items: center; gap: 10px; margin-top: 18px; padding-top: 14px; border-top: 1px solid #e6f0fb; }
.sampa24-carrier-card__actions .sampa24-btn { min-height: 34px; font-size: 11px; }

/* --- строки «Все компании» ------------------------------------------------ */

.sampa24-catalog__all-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0 0 16px; }
.sampa24-catalog__all-head h2 { margin: 0; color: #173e68; font-size: 21px; }
.sampa24-catalog__all-head p { margin: 6px 0 0; color: #7189a3; font-size: 13px; line-height: 1.5; }
.sampa24-catalog__shown { flex: 0 0 auto; color: #7189a3; font-size: 12px; }
.sampa24-catalog__rows { display: grid; gap: 12px; }

.sampa24-carrier-row { display: grid; grid-template-columns: 56px minmax(0, 1.5fr) minmax(0, .85fr) minmax(0, .7fr) minmax(0, .8fr) auto; gap: 16px; align-items: center; min-width: 0; padding: 16px 18px; border: 1px solid #d4e8ff; border-radius: 15px; background: #fff; box-shadow: 0 8px 20px rgba(32, 87, 137, .05); transition: border-color .2s ease, box-shadow .2s ease; }
.sampa24-carrier-row:hover { border-color: #ff9a79; box-shadow: 0 12px 28px rgba(32, 87, 137, .09); }
.sampa24-carrier-row__name { min-width: 0; }
.sampa24-carrier-row__name h3 { margin: 0; font-size: 15px; line-height: 1.3; }
.sampa24-carrier-row__name h3 a { color: #174978; text-decoration: none; }
.sampa24-carrier-row__name h3 a:hover { color: #f85112; }
.sampa24-carrier-row__tags { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.sampa24-carrier-row__kinds { color: #7189a3; font-size: 11px; }
.sampa24-carrier-row__cell { min-width: 0; }
.sampa24-carrier-row__cell strong { display: block; margin-top: 5px; overflow: hidden; color: #18395c; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.sampa24-carrier-row__cell > span { display: block; margin-top: 3px; color: #7189a3; font-size: 11px; }
.sampa24-carrier-row__cell .sampa24-rating { margin-top: 5px; }
.sampa24-carrier-row__trust > div { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.sampa24-carrier-row__trust strong { margin: 0; color: #168b45; font-size: 15px; }
.sampa24-carrier-row__trust i { margin-top: 8px; }
.sampa24-carrier-row .sampa24-btn { flex: 0 0 auto; white-space: nowrap; }

.sampa24-catalog__more { display: flex; align-items: center; justify-content: center; margin-top: 22px; }
.sampa24-catalog__more .sampa24-btn { border-color: #cfe4ff; color: #315675; }

.sampa24-catalog__empty { padding: 34px 24px; border: 1px solid #dcebfa; border-radius: 16px; background: #fff; box-shadow: 0 8px 22px rgba(37, 88, 130, .06); text-align: center; }
.sampa24-catalog__empty-icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 12px; background: #fff1eb; }
.sampa24-catalog__empty-icon svg { width: 21px; height: 21px; fill: none; stroke: #f85112; stroke-linecap: round; stroke-width: 2; }
.sampa24-catalog__empty h3 { margin: 14px 0 7px; color: #183b5c; font-size: 18px; }
.sampa24-catalog__empty p { max-width: 520px; margin: 0 auto 17px; color: #7890a8; font-size: 13px; line-height: 1.5; }

/* --- призыв перевозчикам -------------------------------------------------- */

.sampa24-catalog__cta { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, .8fr); gap: 26px; align-items: center; margin-top: 34px; padding: 28px; border: 1px solid #cfe4ff; border-radius: 18px; background: linear-gradient(135deg, #eaf5ff 0%, #f8fcff 55%, #fff 100%); box-shadow: 0 12px 28px rgba(23, 62, 104, .06); }
.sampa24-catalog__cta h2 { margin: 0 0 10px; color: #173e68; font-size: 24px; line-height: 1.2; }
.sampa24-catalog__cta p:not(.sampa24-catalog__eyebrow) { max-width: 560px; margin: 0 0 18px; color: #56718c; font-size: 14px; line-height: 1.55; text-wrap: pretty; }
.sampa24-catalog__cta-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 11px; }
.sampa24-catalog__cta-list { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 0; list-style: none; }
.sampa24-catalog__cta-list li { position: relative; padding: 13px 15px 13px 41px; border: 1px solid #dbeafa; border-radius: 12px; background: rgba(255, 255, 255, .85); }
.sampa24-catalog__cta-list li:before { position: absolute; top: 13px; left: 16px; color: #168b45; font-weight: 800; content: '✓'; }
.sampa24-catalog__cta-list b { display: block; color: #315675; font-size: 12px; }
.sampa24-catalog__cta-list small { display: block; margin-top: 2px; color: #7189a3; font-size: 11px; line-height: 1.35; }

/* --- адаптив -------------------------------------------------------------- */

@media (max-width: 1100px) {
	/* Шесть колонок в узком окне превращаются в нечитаемые полоски, поэтому
	   строка перестаёт быть таблицей: шапка сверху, метрики отдельным рядом. */
	.sampa24-carrier-row { grid-template-columns: 56px repeat(3, minmax(0, 1fr)); row-gap: 15px; }
	.sampa24-carrier-row > .sampa24-avatar { grid-column: 1; grid-row: 1; }
	.sampa24-carrier-row__name { grid-column: 2 / -1; grid-row: 1; }
	.sampa24-carrier-row__cell--city { grid-column: 2; grid-row: 2; }
	.sampa24-carrier-row__cell--rating { grid-column: 3; grid-row: 2; }
	.sampa24-carrier-row__trust { grid-column: 4; grid-row: 2; }
	.sampa24-carrier-row > .sampa24-btn { grid-column: 2 / -1; grid-row: 3; justify-self: start; }
}

@media (max-width: 900px) {
	.sampa24-catalog__head { flex-direction: column; align-items: flex-start; }
	.sampa24-catalog__filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sampa24-catalog__filters-search { grid-column: 1 / -1; }
	.sampa24-catalog__submit { grid-column: 1 / -1; }
	.sampa24-catalog__cta { grid-template-columns: 1fr; }
	.sampa24-catalog__local-head { flex-direction: column; }
}

@media (max-width: 650px) {
	.sampa24-carrier-row { grid-template-columns: 56px minmax(0, 1fr); padding: 15px; }
	.sampa24-carrier-row__cell--city { grid-column: 1 / -1; grid-row: 2; }
	.sampa24-carrier-row__cell--rating { grid-column: 1 / -1; grid-row: 3; }
	.sampa24-carrier-row__trust { grid-column: 1 / -1; grid-row: 4; }
	.sampa24-carrier-row > .sampa24-btn { grid-column: 1 / -1; grid-row: 5; justify-self: stretch; }
	.sampa24-catalog__local { padding: 16px; }
	.sampa24-catalog__cards { grid-template-columns: 1fr; }
	.sampa24-catalog__filters { grid-template-columns: 1fr; }
	.sampa24-carrier-card__metrics { grid-template-columns: 1fr 1fr; }
	.sampa24-catalog__all-head { flex-direction: column; align-items: flex-start; gap: 8px; }
	.sampa24-catalog__cta { padding: 18px; }
	.sampa24-catalog__cta-actions .sampa24-btn { flex: 1 1 100%; }
}

/* --- публичный профиль перевозчика ---------------------------------------- */

.sampa24-profile__top { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(270px, .75fr); gap: 16px; align-items: stretch; margin: 0 0 16px; }
.sampa24-profile__identity { display: flex; min-width: 0; flex-direction: column; padding: 26px; border: 1px solid #cfe4ff; border-radius: 18px; background: linear-gradient(135deg, #eaf5ff 0%, #f8fcff 100%); box-shadow: 0 12px 28px rgba(23, 62, 104, .06); }
.sampa24-profile__identity-head { display: flex; align-items: center; gap: 16px; min-width: 0; }
.sampa24-profile__identity-head > div { min-width: 0; }
.sampa24-profile__kicker { display: block; color: #7189a3; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.sampa24-profile__identity h1 { margin: 6px 0 5px; color: #173e68; font-size: clamp(21px, 2.6vw, 26px); line-height: 1.15; }
.sampa24-profile__identity-head p { margin: 0; color: #7189a3; font-size: 13px; }
.sampa24-profile__badges { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 17px; }
.sampa24-cat-badge--neutral { background: #f3f7fb; color: #7189a3; }

.sampa24-profile__contacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-top: 18px; }
.sampa24-profile__contacts > div { padding: 12px 14px; border: 1px solid #d8e9fb; border-radius: 12px; background: #fff; }
.sampa24-profile__contacts small { display: block; color: #7189a3; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sampa24-profile__contacts strong { display: block; margin-top: 5px; overflow: hidden; color: #18395c; font-size: 14px; text-overflow: ellipsis; }
.sampa24-profile__contacts strong a { color: #18395c; text-decoration: none; }
.sampa24-profile__contacts strong a:hover { color: #f85112; }
.sampa24-profile__contacts--locked { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 14px 16px; border: 1px dashed #cfe4ff; border-radius: 12px; background: #fff; }
.sampa24-profile__contacts--locked p { margin: 0; color: #7189a3; font-size: 13px; }

.sampa24-profile__requisites { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin-top: 12px; padding-top: 16px; border-top: 1px solid #d8e9fb; }
.sampa24-profile__requisites small { display: block; color: #7189a3; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sampa24-profile__requisites strong { display: block; margin-top: 4px; color: #18395c; font-size: 13px; font-weight: 700; line-height: 1.4; }
.sampa24-profile__requisites-wide { grid-column: 1 / -1; }

.sampa24-profile__metrics { display: grid; gap: 12px; align-content: start; }
.sampa24-profile__metric { padding: 18px 20px; border: 1px solid #cfe4ff; border-radius: 16px; background: #fff; box-shadow: 0 10px 25px rgba(32, 87, 137, .05); }
.sampa24-profile__metric > span { display: block; color: #7189a3; font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.sampa24-profile__metric > strong { display: block; margin-top: 7px; color: #173e68; font-size: 25px; line-height: 1; }
.sampa24-profile__metric small { display: block; margin-top: 7px; color: #7189a3; font-size: 12px; line-height: 1.4; }
.sampa24-profile__metric .sampa24-rating { margin-top: 7px; }
.sampa24-profile__metric--trust strong { color: #168b45; }
.sampa24-profile__metric--trust i { display: block; height: 7px; margin-top: 10px; overflow: hidden; border-radius: 7px; background: #e1f0e6; }
.sampa24-profile__metric--trust i b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1aa04c, #65c778); }
.sampa24-profile__trust-help { margin-top: 11px; padding: 0; border: 0; background: transparent; color: #315675; font: inherit; font-size: 11px; text-decoration: underline; cursor: pointer; }
.sampa24-profile__trust-help:hover { color: #f85112; }

.sampa24-profile__trust-details { margin: 0 0 16px; padding: 21px; border: 1px solid #d6e9fb; border-radius: 16px; background: #f8fbff; }
.sampa24-profile__trust-details[hidden] { display: none; }
.sampa24-profile__trust-details h2 { margin: 0 0 14px; color: #173e68; font-size: 18px; }
.sampa24-profile__trust-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 10px; align-items: stretch; }
/* Процент вынесен на свою строку: в одном ряду с заголовком он отжимал
   описание в узкую колонку, и карточки получались рваной высоты. */
.sampa24-profile__trust-grid > div { display: grid; grid-template-columns: 20px minmax(0, 1fr); grid-template-rows: auto 1fr auto; gap: 4px 10px; align-content: start; padding: 14px 16px; border: 1px solid #d8e9fb; border-radius: 12px; background: #fff; }
.sampa24-profile__trust-grid > div > span { grid-column: 1; grid-row: 1; }
.sampa24-profile__trust-grid > div > div { grid-column: 2; grid-row: 1 / 3; }
.sampa24-profile__trust-grid > div > em { grid-column: 2; grid-row: 3; margin-top: 8px; padding-top: 8px; border-top: 1px solid #eef4fb; }
.sampa24-profile__trust-grid > div.is-done { border-color: #bfe9ce; background: #f7fdf9; }
.sampa24-profile__trust-grid span { color: #a8bacd; font-weight: 800; }
.sampa24-profile__trust-grid .is-done span { color: #168b45; }
.sampa24-profile__trust-grid b { display: block; color: #315675; font-size: 12px; }
.sampa24-profile__trust-grid small { display: block; margin-top: 3px; color: #7189a3; font-size: 11px; line-height: 1.35; }
.sampa24-profile__trust-grid em { color: #7189a3; font-size: 11px; font-style: normal; font-weight: 700; white-space: nowrap; }
.sampa24-profile__rating-note { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; padding-top: 16px; border-top: 1px solid #d8e9fb; color: #56718c; font-size: 12px; line-height: 1.5; }
.sampa24-profile__rating-note a { color: #1d5a91; }
.sampa24-profile__rating-note a:hover { color: #f85112; }

.sampa24-profile__cta { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .8fr); gap: 26px; align-items: center; margin: 0 0 22px; padding: 28px; border: 1px solid #f7c6b8; border-radius: 18px; background: linear-gradient(135deg, #fff6f2 0%, #fffaf8 55%, #fff 100%); box-shadow: 0 12px 28px rgba(23, 62, 104, .06); }
.sampa24-profile__cta h2 { margin: 0 0 10px; color: #173e68; font-size: clamp(20px, 2.4vw, 24px); line-height: 1.2; }
.sampa24-profile__cta > div > p:not(.sampa24-catalog__eyebrow) { max-width: 560px; margin: 0 0 18px; color: #56718c; font-size: 14px; line-height: 1.55; text-wrap: pretty; }
.sampa24-profile__cta-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 11px; }
.sampa24-profile__steps { display: grid; gap: 10px; margin: 0; padding: 0; counter-reset: step; list-style: none; }
.sampa24-profile__steps li { position: relative; padding: 13px 15px 13px 42px; border: 1px solid #f2d9cf; border-radius: 12px; background: rgba(255, 255, 255, .9); counter-increment: step; }
.sampa24-profile__steps li:before { position: absolute; top: 13px; left: 15px; color: #f85112; font-size: 13px; font-weight: 800; content: counter(step); }
.sampa24-profile__steps b { display: block; color: #315675; font-size: 12px; }
.sampa24-profile__steps small { display: block; margin-top: 2px; color: #7189a3; font-size: 11px; line-height: 1.35; }

.sampa24-profile__body { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(290px, .8fr); gap: 16px; align-items: start; }
.sampa24-profile__body--wide { grid-template-columns: minmax(0, 1fr); }
.sampa24-profile__main, .sampa24-profile__side { display: grid; gap: 16px; min-width: 0; align-content: start; }
.sampa24-profile__block { padding: 22px; border: 1px solid #d8e9fb; border-radius: 16px; background: #fff; box-shadow: 0 8px 20px rgba(32, 87, 137, .04); }
.sampa24-profile__block h2 { margin: 0 0 4px; color: #173e68; font-size: 18px; }
.sampa24-profile__block > p { margin: 0 0 14px; color: #7189a3; font-size: 13px; line-height: 1.5; }
.sampa24-profile__block--docs h2 { color: #168b45; }
.sampa24-profile__block-head { margin-bottom: 14px; }
.sampa24-profile__block-head p { margin: 4px 0 0; color: #7189a3; font-size: 13px; }
.sampa24-profile__about { margin: 10px 0 0; color: #3d5f80; font-size: 14px; line-height: 1.6; text-wrap: pretty; }
.sampa24-profile__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; margin-top: 16px; }
.sampa24-profile__facts > div { padding: 12px 14px; border: 1px solid #e2eefb; border-radius: 12px; background: #f8fbff; }
.sampa24-profile__facts small { display: block; color: #7189a3; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.sampa24-profile__facts strong { display: block; margin-top: 5px; color: #18395c; font-size: 13px; line-height: 1.4; }

.sampa24-profile__fleet { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 11px; }
.sampa24-profile__fleet article { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; align-items: start; padding: 13px 15px; border: 1px solid #e2eefb; border-radius: 12px; background: #f8fbff; }
.sampa24-profile__fleet-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: #fff0ea; }
.sampa24-profile__fleet-icon svg { width: 20px; height: 20px; fill: none; stroke: #f85112; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.sampa24-profile__fleet strong { display: block; color: #18395c; font-size: 13px; line-height: 1.3; }
.sampa24-profile__fleet small { display: block; margin-top: 3px; color: #7189a3; font-size: 11px; }
.sampa24-profile__fleet span { display: block; margin-top: 7px; padding: 5px 8px; border-radius: 8px; background: #eaf3fd; color: #56718c; font-size: 11px; }

.sampa24-profile__reviews { display: grid; gap: 11px; }
.sampa24-profile__reviews article { padding: 15px 17px; border: 1px solid #e2eefb; border-radius: 12px; background: #f8fbff; }
.sampa24-profile__review-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.sampa24-profile__review-head b { display: block; color: #18395c; font-size: 13px; }
.sampa24-profile__review-head small { display: block; margin-top: 3px; color: #7189a3; font-size: 11px; }
.sampa24-profile__reviews p { margin: 10px 0 0; color: #3d5f80; font-size: 13px; line-height: 1.55; }

.sampa24-profile__routes, .sampa24-profile__docs, .sampa24-profile__similar { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.sampa24-profile__routes li, .sampa24-profile__docs li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 14px; border: 1px solid #e2eefb; border-radius: 11px; background: #f8fbff; }
.sampa24-profile__routes b { color: #18395c; font-size: 12px; font-weight: 700; }
.sampa24-profile__routes em { color: #7189a3; font-size: 11px; font-style: normal; white-space: nowrap; }
.sampa24-profile__docs li { border-color: #d6eede; background: #f7fdf9; }
.sampa24-profile__docs span { color: #18395c; font-size: 12px; }
.sampa24-profile__docs b { color: #168b45; font-size: 11px; font-weight: 700; white-space: nowrap; }
.sampa24-profile__similar a { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 10px 12px; border: 1px solid #e2eefb; border-radius: 11px; background: #f8fbff; text-decoration: none; transition: border-color .2s ease, background .2s ease; }
.sampa24-profile__similar a:hover { border-color: #ff9a79; background: #fff; }
.sampa24-profile__similar-name { min-width: 0; }
.sampa24-profile__similar-name b { display: block; overflow: hidden; color: #18395c; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.sampa24-profile__similar-name small { display: block; margin-top: 2px; color: #7189a3; font-size: 11px; }

@media (max-width: 1000px) {
	.sampa24-profile__top, .sampa24-profile__body, .sampa24-profile__cta { grid-template-columns: 1fr; }
	.sampa24-profile__metrics { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
}
@media (max-width: 650px) {
	.sampa24-profile__identity, .sampa24-profile__block, .sampa24-profile__cta, .sampa24-profile__trust-details { padding: 16px; }
	.sampa24-profile__identity-head { align-items: flex-start; flex-direction: column; }
	.sampa24-profile__cta-actions .sampa24-btn { flex: 1 1 100%; }
}

/* --- ступени заполненности ------------------------------------------------ */

.sampa24-catalog__tier { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; margin: 22px 0 2px; padding: 0 4px 10px; border-bottom: 1px solid #e2eefb; }
.sampa24-catalog__tier:first-child { margin-top: 4px; }
.sampa24-catalog__tier b { color: #173e68; font-size: 15px; font-weight: 800; }
.sampa24-catalog__tier span { flex: 1 1 auto; min-width: 0; color: #7189a3; font-size: 12px; line-height: 1.4; }
.sampa24-catalog__tier em { flex: 0 0 auto; padding: 3px 9px; border-radius: 999px; background: #eef5fd; color: #4a6b8c; font-size: 11px; font-style: normal; font-weight: 800; }
.sampa24-catalog__tier--verified b { color: #168b45; }
.sampa24-catalog__tier--verified em { background: #e8f8ee; color: #168b45; }
.sampa24-catalog__tier--filled b { color: #1d5a91; }
.sampa24-catalog__tier--empty b { color: #7189a3; }
.sampa24-catalog__tier--empty em { background: #f3f6fa; color: #8fa4ba; }

/* Шкала заполненности в строке: наглядно, чем отличаются соседние карточки. */
.sampa24-carrier-row__fill { display: inline-flex; align-items: center; gap: 7px; color: #7189a3; font-size: 11px; white-space: nowrap; }
.sampa24-carrier-row__fill i { display: block; width: 46px; height: 5px; overflow: hidden; border-radius: 5px; background: #e6eef7; }
.sampa24-carrier-row__fill i b { display: block; height: 100%; border-radius: inherit; background: #7fa8cd; }
.sampa24-carrier-row--verified .sampa24-carrier-row__fill i b,
.sampa24-carrier-row--filled .sampa24-carrier-row__fill i b { background: linear-gradient(90deg, #1aa04c, #65c778); }
.sampa24-carrier-row--partial .sampa24-carrier-row__fill i b { background: linear-gradient(90deg, #f0a020, #f8c46a); }
.sampa24-carrier-row--empty { border-color: #e6eef7; box-shadow: none; }
.sampa24-carrier-row--empty .sampa24-carrier-row__fill i b { background: #c6d4e2; }

/* --- рейтинг перевозчиков --------------------------------------------- */

/* Номер места накладывается на аватар, а не занимает свою колонку грида —
   так строка рейтинга остаётся той же карточкой .sampa24-carrier-row, что
   и в каталоге, без отдельной адаптивной раскладки под новую колонку. */
.sampa24-rating-rank-avatar { position: relative; }
.sampa24-rating-rank { position: absolute; top: -6px; left: -6px; z-index: 1; display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 4px; border: 2px solid #fff; border-radius: 999px; background: #ff4d12; color: #fff; font-size: 10px; font-weight: 800; line-height: 1; }
/* В блоках «ТОП» место — не мелкая метка на аватаре, а первое, что должно
   бросаться в глаза: бейдж крупнее, а у первых трёх — золото/серебро/бронза
   вместо фирменного оранжевого, как в привычных списках лидеров. */
.sampa24-rating-top .sampa24-rating-rank { min-width: 28px; height: 28px; top: -8px; left: -8px; font-size: 13px; box-shadow: 0 3px 8px rgba(32, 87, 137, .25); }
.sampa24-rating-top .sampa24-catalog__rows > .sampa24-carrier-row:nth-child(1) .sampa24-rating-rank { background: linear-gradient(135deg, #ffd257, #f5a418); }
.sampa24-rating-top .sampa24-catalog__rows > .sampa24-carrier-row:nth-child(2) .sampa24-rating-rank { background: linear-gradient(135deg, #e6ecf2, #adbccb); }
.sampa24-rating-top .sampa24-catalog__rows > .sampa24-carrier-row:nth-child(3) .sampa24-rating-rank { background: linear-gradient(135deg, #e8b189, #c47a45); }

.sampa24-rating-top { margin: 0 0 30px; padding: 22px; border: 1px solid #d4e8ff; border-radius: 18px; background: #fff; box-shadow: 0 8px 20px rgba(32, 87, 137, .05); }
.sampa24-rating-top--local { border-color: #bfe9ce; background: linear-gradient(135deg, #f2fbf5 0%, #fff 60%); }
.sampa24-rating-top__head { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 14px; margin: 0 0 16px; }
.sampa24-rating-top__head h2 { margin: 0; color: #173e68; font-size: 20px; }
.sampa24-rating-top__panel[hidden] { display: none; }

.sampa24-rating-tabs { display: inline-flex; gap: 4px; padding: 4px; border-radius: 12px; background: #f1f8ff; }
.sampa24-rating-tabs__btn { padding: 8px 16px; border: 0; border-radius: 9px; background: transparent; color: #56718c; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.sampa24-rating-tabs__btn.is-active { background: #fff; box-shadow: 0 4px 12px rgba(23, 62, 104, .12); color: #f85112; }

.sampa24-rating-back { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin: 0 0 30px; padding: 24px 28px; border: 1px solid #cfe4ff; border-radius: 18px; background: linear-gradient(135deg, #eaf5ff 0%, #f8fcff 55%, #fff 100%); }
.sampa24-rating-back h2 { margin: 0 0 6px; color: #173e68; font-size: 18px; }
.sampa24-rating-back p { margin: 0; max-width: 480px; color: #7189a3; font-size: 13px; line-height: 1.5; }

.sampa24-rating-cities { margin-top: 12px; padding: 22px; border: 1px solid #d4e8ff; border-radius: 18px; background: #f8fbff; }
.sampa24-rating-cities h2 { margin: 0 0 14px; color: #173e68; font-size: 18px; }
.sampa24-rating-cities__list { display: flex; flex-wrap: wrap; gap: 8px; }
.sampa24-rating-cities__list + .sampa24-rating-cities__toggle { margin-top: 12px; }
.sampa24-rating-cities__list a { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 1px solid #d4e8ff; border-radius: 999px; background: #fff; color: #1d5a91; font-size: 12px; font-weight: 700; text-decoration: none; }
.sampa24-rating-cities__list a:hover { border-color: #f85112; color: #f85112; }
.sampa24-rating-cities__list a span { padding: 1px 6px; border-radius: 999px; background: #eef5fd; color: #4a6b8c; font-size: 10px; font-weight: 800; }
.sampa24-rating-cities__toggle { margin-top: 12px; padding: 0; border: 0; background: transparent; color: #315675; font: inherit; font-size: 12px; font-weight: 700; text-decoration: underline; cursor: pointer; }
.sampa24-rating-cities__toggle:hover { color: #f85112; }
#rating-cities-rest[hidden] { display: none; }
#rating-cities-rest { margin-top: 12px; }

@media (max-width: 650px) {
	.sampa24-rating-top, .sampa24-rating-cities { padding: 16px; }
	.sampa24-rating-back { flex-direction: column; align-items: flex-start; padding: 18px; }
}

/* Блок статистики — тот же компонент .sampa24-category-statistics, что
   и в portal_statistics_block.php/category_statistics_block.php на
   странице поиска заявок и на страницах регионов, перенесён сюда
   (а не подключением home.css) — там завязаны owl-карусель и home.js,
   ненужные на странице рейтинга. */
.sampa24-category-statistics {
	position: relative;
	margin: 34px 0 0;
	padding: 28px 30px 20px;
	overflow: hidden;
	border: 1px solid #cfe5fb;
	border-radius: 16px;
	background: #f1f8ff;
}
.sampa24-category-statistics:before { position: absolute; top: 0; left: 0; width: 142px; height: 7px; border-radius: 0 0 4px 0; background: #f85112; content: ''; }
.sampa24-category-statistics__header { margin: 5px 0 22px; }
.sampa24-category-statistics__eyebrow { margin: 0 0 7px; color: #f85112; font-size: 10px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.sampa24-category-statistics h2 { margin: 0; color: #183b5c; font-size: 25px; line-height: 1.22; }
.sampa24-category-statistics__header > p:last-child { margin: 6px 0 0; color: #7890a8; font-size: 13px; }
.sampa24-category-statistics__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.sampa24-category-statistics__card { min-height: 155px; padding: 18px; border: 1px solid #dcebfa; border-radius: 13px; background: #fff; box-shadow: 0 8px 22px rgba(37, 88, 130, .05); }
.sampa24-category-statistics__icon { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 10px; background: #fff1eb; color: #f85112; font-size: 18px; font-weight: 700; }
.sampa24-category-statistics__card strong { display: block; margin-top: 12px; color: #184a78; font-size: 28px; line-height: 1; }
.sampa24-category-statistics__card h3 { margin: 8px 0 0; color: #183b5c; font-size: 12px; line-height: 1.32; }
.sampa24-category-statistics__card p { margin: 7px 0 0; color: #91a4b8; font-size: 10px; line-height: 1.35; }
.sampa24-category-statistics__footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 16px; margin-top: 18px; padding-top: 15px; border-top: 1px solid #d5e9fb; }
.sampa24-category-statistics__footer > p { margin: 0; color: #7890a8; font-size: 11px; line-height: 1.5; }
.sampa24-category-statistics__footer > p span { color: #91a4b8; }
/* Кнопка «Как считаются показатели» вместо <details>: то раскрытие
   выезжало position: absolute за пределы карточки и обрезалось
   overflow: hidden, которое здесь нужно для оранжевой полосы в углу
   (см. :before выше) — обрезало и текст объяснения. Панель — обычный
   .sampa24-catalog__hint в потоке, тот же переключатель, что и у
   методики рейтинга сверху страницы, без своей позиционируемой обёртки. */
.sampa24-category-statistics__details-toggle { width: auto; height: auto; padding: 0; border: 0; border-radius: 0; background: transparent; color: #24507a; font-size: 11px; font-weight: 700; text-decoration: underline; }
.sampa24-category-statistics__details-toggle:hover { border: 0; color: #f85112; }
.sampa24-category-statistics__hint { margin: 14px 0 0; }
.sampa24-category-statistics__footer .sampa24-btn { justify-self: end; }

@media (max-width: 820px) {
	.sampa24-category-statistics { padding: 25px 16px 18px; }
	.sampa24-category-statistics h2 { font-size: 22px; }
	.sampa24-category-statistics__grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.sampa24-category-statistics__card { min-height: 150px; padding: 15px; }
	.sampa24-category-statistics__footer { grid-template-columns: 1fr; }
	.sampa24-category-statistics__footer .sampa24-btn { justify-self: stretch; }
}
