/* Button — primary */
        .is-style-bsl-btn .wp-block-button__link {
            background: #0a0a0a;
            color: #fff;
            border-radius: 0;
            padding: 18px 28px;
            font-size: 14px;
            font-weight: 400;
            letter-spacing: 0.02em;
            transition: opacity 0.4s cubic-bezier(0.16,1,0.3,1);
        }
        .is-style-bsl-btn .wp-block-button__link:hover {
            opacity: 0.85;
        }

        /* Button — outline light */
        .is-style-bsl-btn-outline-light .wp-block-button__link {
            background: transparent;
            color: #fff;
            border: 1px solid rgba(255,255,255,0.3);
            border-radius: 0;
            padding: 17px 27px;
            font-size: 14px;
            transition: background 0.4s, color 0.4s;
        }
        .is-style-bsl-btn-outline-light .wp-block-button__link:hover {
            background: #fff;
            color: #0a0a0a;
        }

        /* Image — grayscale */
        .is-style-bsl-grayscale img { filter: grayscale(100%); }
        .is-style-bsl-grayscale-soft img { filter: grayscale(60%); }

        /* Pullquote */
        .is-style-bsl-pullquote {
            border: none;
            padding: 40px 0;
            border-top: 1px solid #e5e5e2;
            border-bottom: 1px solid #e5e5e2;
        }
        .is-style-bsl-pullquote blockquote p {
            font-family: "Cormorant Garamond", Georgia, serif;
            font-size: clamp(28px, 3vw, 40px);
            font-weight: 400;
            line-height: 1.3;
            letter-spacing: -0.01em;
            color: #0a0a0a;
            margin-bottom: 24px;
        }
        .is-style-bsl-pullquote cite {
            font-family: "Inter", sans-serif;
            font-size: 12px;
            font-style: normal;
            letter-spacing: 0.18em;
            text-transform: uppercase;
            color: #6b6b6b;
        }

        /* Practice grid cell — used in pattern */
        .bsl-practice-cell {
            padding: 32px 24px !important;
            border: 1px solid #e5e5e2;
            margin-left: -1px !important;
            margin-top: -1px !important;
            background: #fff;
            transition: background 0.4s;
        }
        .bsl-practice-cell:hover { background: #fafaf8; }

        /* Details (FAQ accordion) */
        .wp-block-details {
            border-bottom: 1px solid #e5e5e2;
            padding: 24px 0;
        }
        .wp-block-details summary {
            font-family: "Cormorant Garamond", serif;
            font-size: 22px;
            font-weight: 400;
            cursor: pointer;
            list-style: none;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .wp-block-details summary::-webkit-details-marker { display: none; }
        .wp-block-details summary::after {
            content: "+";
            font-size: 28px;
            font-weight: 300;
            transition: transform 0.4s;
        }
        .wp-block-details[open] summary::after { transform: rotate(45deg); }
        .wp-block-details > p { margin-top: 16px; color: #6b6b6b; }
    
/* ============================================================
   Black Swan Consulting — калькулятор государственной пошлины
   ============================================================ */

.bsl-duty {
    --duty-line: var(--bsl-ink-10);
    --duty-line-strong: var(--bsl-ink-20);
    --duty-radius: 14px;
    font-family: var(--font-sans);
    color: var(--color-text);
    -webkit-font-smoothing: antialiased;
}

/* ---- шапка: величина БРВ ---- */
.bsl-duty__brv {
    display: inline-flex;
    align-items: flex-start;
    gap: var(--sp-2);
    margin: 0 0 var(--sp-6);
    padding: 8px 16px 8px 12px;
    border: 1px solid var(--duty-line);
    border-radius: 999px;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    background: var(--color-bg-soft);
}
.bsl-duty__dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--color-text);
    /* Плашка переносится на две строки — точка должна держаться первой,
       а не уезжать в оптический центр. */
    margin-top: 0.55em;
    flex: none;
}

/* ---- поиск ---- */
.bsl-duty__search { margin-bottom: var(--sp-6); }
.bsl-duty__field { position: relative; }
.bsl-duty__input {
    width: 100%;
    padding: 18px 20px;
    border: 1px solid var(--duty-line-strong);
    border-radius: var(--duty-radius);
    background: var(--color-bg);
    font-family: inherit;
    font-size: var(--fs-md);
    color: var(--color-text);
    transition: border-color var(--dur-fast) var(--ease-base);
    -webkit-appearance: none;
    appearance: none;
}
.bsl-duty__input::placeholder { color: var(--bsl-ink-40); }
.bsl-duty__input:focus { border-color: var(--color-text); }
.bsl-duty__input::-webkit-search-cancel-button { -webkit-appearance: none; }

.bsl-duty__crumbs {
    display: flex; align-items: center; flex-wrap: wrap;
    gap: 2px;
    margin-top: var(--sp-3);
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}
.bsl-duty__hint { color: var(--bsl-ink-40); }
.bsl-duty__crumb {
    border: 0; background: none; padding: 0;
    font: inherit; color: var(--color-text-muted); cursor: pointer;
    transition: color var(--dur-fast) var(--ease-base);
}
.bsl-duty__crumb:hover { color: var(--color-text); }
.bsl-duty__crumb--now { color: var(--color-text); cursor: default; }
.bsl-duty__crumb-sep { color: var(--bsl-ink-20); }

/* ---- плитки разделов ---- */
.bsl-duty__cats {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--sp-3);
}
.bsl-duty__cat {
    display: flex; flex-direction: column; align-items: flex-start;
    gap: 6px;
    min-height: 148px;
    padding: var(--sp-5);
    border: 1px solid var(--duty-line);
    border-radius: var(--duty-radius);
    background: var(--color-bg);
    text-align: left;
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease-base),
                transform var(--dur-fast) var(--ease-emphasis),
                background var(--dur-fast) var(--ease-base);
}
.bsl-duty__cat:hover {
    border-color: var(--color-text);
    transform: translateY(-2px);
}
.bsl-duty__cat-title {
    font-family: var(--font-serif);
    font-size: 22px;
    line-height: 1.2;
    color: var(--color-text);
}
.bsl-duty__cat-hint {
    font-size: var(--fs-sm);
    line-height: 1.5;
    color: var(--color-text-muted);
    flex: 1;
}
.bsl-duty__cat-count {
    font-size: var(--fs-xs);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bsl-ink-40);
}

/* ---- две колонки: список и панель расчёта ---- */
.bsl-duty__work {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 380px);
    gap: var(--sp-6);
    align-items: start;
}

.bsl-duty__group {
    display: flex; gap: var(--sp-2);
    margin: var(--sp-6) 0 var(--sp-2);
    font-family: var(--font-sans);
    font-size: var(--fs-xs);
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--bsl-ink-40);
}
.bsl-duty__group:first-child { margin-top: 0; }
.bsl-duty__group-no { flex: none; }

.bsl-duty__rows { list-style: none; margin: 0; padding: 0; }
.bsl-duty__row {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: var(--sp-4);
    width: 100%;
    padding: 14px 16px;
    border: 0;
    border-bottom: 1px solid var(--duty-line);
    border-radius: 8px;
    background: none;
    text-align: left;
    font: inherit;
    cursor: pointer;
    transition: background var(--dur-fast) var(--ease-base);
}
.bsl-duty__row:hover { background: var(--color-bg-soft); }
.bsl-duty__row.is-active { background: var(--color-bg-soft); box-shadow: inset 2px 0 0 var(--color-text); }
.bsl-duty__row-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.bsl-duty__row-path {
    font-size: var(--fs-xs);
    line-height: 1.4;
    color: var(--bsl-ink-40);
}
.bsl-duty__row-name { font-size: var(--fs-base); line-height: 1.45; }
.bsl-duty__row-rate {
    flex: none;
    max-width: 40%;
    text-align: right;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}

.bsl-duty__empty, .bsl-duty__prompt, .bsl-duty__loading {
    margin: 0; padding: var(--sp-6) 0;
    font-size: var(--fs-base);
    color: var(--color-text-muted);
}

/* ---- панель расчёта ---- */
.bsl-duty__detail {
    position: sticky; top: 96px;
    padding: var(--sp-5);
    border: 1px solid var(--duty-line);
    border-radius: var(--duty-radius);
    background: var(--color-bg-soft);
}
.bsl-duty__detail-crumb {
    margin: 0 0 var(--sp-2);
    font-size: var(--fs-xs);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--bsl-ink-40);
}
.bsl-duty__detail-title {
    margin: 0 0 6px;
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.22;
}
.bsl-duty__detail-path {
    margin: 0 0 var(--sp-3);
    font-size: var(--fs-sm);
    line-height: 1.5;
    color: var(--color-text-muted);
}
.bsl-duty__detail-rate {
    margin: 0 0 var(--sp-5);
    padding-bottom: var(--sp-4);
    border-bottom: 1px solid var(--duty-line);
    font-size: var(--fs-sm);
    color: var(--color-text);
}

.bsl-duty__input-row { margin-bottom: var(--sp-4); }
.bsl-duty__label {
    display: block;
    margin-bottom: 6px;
    font-size: var(--fs-xs);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bsl-ink-40);
}
.bsl-duty__number, .bsl-duty__select {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--duty-line-strong);
    border-radius: 10px;
    background: var(--color-bg);
    font-family: inherit;
    font-size: var(--fs-base);
    color: var(--color-text);
    -webkit-appearance: none;
    appearance: none;
}
.bsl-duty__select { padding-right: 34px; background-image: none; }
.bsl-duty__number:focus, .bsl-duty__select:focus { border-color: var(--color-text); }

.bsl-duty__mods { margin: var(--sp-5) 0; }
.bsl-duty__mods-title {
    margin: 0 0 var(--sp-3);
    font-size: var(--fs-xs);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bsl-ink-40);
}
.bsl-duty__mod {
    display: flex; gap: var(--sp-3);
    padding: 10px 0;
    border-top: 1px solid var(--duty-line);
    cursor: pointer;
}
.bsl-duty__mod input {
    flex: none;
    width: 17px; height: 17px;
    margin-top: 2px;
    accent-color: var(--color-text);
}
.bsl-duty__mod-text { display: flex; flex-direction: column; gap: 3px; }
.bsl-duty__mod-label { font-size: var(--fs-sm); line-height: 1.4; }
.bsl-duty__mod-hint { font-size: var(--fs-xs); line-height: 1.5; color: var(--color-text-muted); }

/* ---- результат ---- */
.bsl-duty__result {
    margin-top: var(--sp-5);
    padding-top: var(--sp-5);
    border-top: 1px solid var(--duty-line-strong);
}
.bsl-duty__result-label {
    margin: 0 0 var(--sp-2);
    font-size: var(--fs-xs);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--bsl-ink-40);
}
.bsl-duty__sum {
    margin: 0;
    font-family: var(--font-serif);
    font-size: clamp(30px, 4vw, 38px);
    line-height: 1.1;
    letter-spacing: -0.01em;
}
.bsl-duty__sum-brv {
    margin: 6px 0 0;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
}
.bsl-duty__result-hint {
    margin: var(--sp-2) 0 0;
    font-size: var(--fs-sm);
    line-height: 1.5;
    color: var(--color-text-muted);
}
.bsl-duty__formula {
    display: flex; flex-direction: column; gap: 3px;
    margin-top: var(--sp-4);
    padding: var(--sp-3) var(--sp-4);
    border-radius: 10px;
    background: var(--color-bg);
    font-size: var(--fs-xs);
    line-height: 1.5;
    color: var(--color-text-muted);
}
.bsl-duty__formula-title {
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bsl-ink-40);
}
.bsl-duty__add {
    width: 100%;
    margin-top: var(--sp-5);
    padding: 15px 20px;
    border: 0;
    border-radius: 10px;
    background: var(--color-text);
    color: var(--color-white);
    font: inherit;
    font-size: var(--fs-sm);
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: opacity var(--dur-fast) var(--ease-base);
}
.bsl-duty__add:hover { opacity: 0.86; }
.bsl-duty__add:disabled { background: var(--bsl-ink-20); cursor: default; opacity: 1; }

.bsl-duty__notes { margin-top: var(--sp-5); }
.bsl-duty__note {
    margin: 0 0 var(--sp-2);
    padding-left: var(--sp-3);
    border-left: 2px solid var(--duty-line-strong);
    font-size: var(--fs-xs);
    line-height: 1.6;
    color: var(--color-text-muted);
}

/* ---- корзина ---- */
.bsl-duty__basket {
    margin-top: var(--sp-8);
    padding: var(--sp-6);
    border: 1px solid var(--duty-line);
    border-radius: var(--duty-radius);
}
.bsl-duty__basket-title {
    margin: 0 0 var(--sp-4);
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 400;
}
.bsl-duty__basket-empty { margin: 0; font-size: var(--fs-sm); color: var(--color-text-muted); }
.bsl-duty__basket-list { list-style: none; margin: 0; padding: 0; }
.bsl-duty__basket-row {
    display: flex; align-items: baseline; gap: var(--sp-4);
    padding: 12px 0;
    border-bottom: 1px solid var(--duty-line);
}
.bsl-duty__basket-name { flex: 1; font-size: var(--fs-base); line-height: 1.45; }
.bsl-duty__basket-no {
    display: inline-block;
    margin-right: var(--sp-2);
    font-size: var(--fs-xs);
    color: var(--bsl-ink-40);
}
.bsl-duty__basket-sum { flex: none; font-size: var(--fs-base); white-space: nowrap; }
.bsl-duty__basket-rm {
    flex: none;
    width: 26px; height: 26px;
    border: 0; border-radius: 50%;
    background: none;
    color: var(--bsl-ink-40);
    font-size: 18px; line-height: 1;
    cursor: pointer;
    transition: background var(--dur-fast) var(--ease-base), color var(--dur-fast) var(--ease-base);
}
.bsl-duty__basket-rm:hover { background: var(--color-bg-soft); color: var(--color-text); }
.bsl-duty__basket-foot {
    display: flex; align-items: baseline; justify-content: space-between;
    gap: var(--sp-4);
    padding-top: var(--sp-4);
}
.bsl-duty__basket-total-label {
    font-size: var(--fs-xs);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--bsl-ink-40);
}
.bsl-duty__basket-total {
    font-family: var(--font-serif);
    font-size: 28px;
    line-height: 1.1;
}
.bsl-duty__basket-acts { display: flex; gap: var(--sp-4); margin-top: var(--sp-4); }
.bsl-duty__link-btn {
    border: 0; background: none; padding: 0;
    font: inherit;
    font-size: var(--fs-sm);
    color: var(--color-text-muted);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
    transition: color var(--dur-fast) var(--ease-base);
}
.bsl-duty__link-btn:hover { color: var(--color-text); }

/* ---- освобождения ---- */
.bsl-duty__exempt { margin-top: var(--sp-8); }
.bsl-duty__exempt-title {
    margin: 0 0 var(--sp-2);
    font-family: var(--font-serif);
    font-size: 24px;
    font-weight: 400;
}
.bsl-duty__exempt-hint {
    margin: 0 0 var(--sp-5);
    max-width: 62ch;
    font-size: var(--fs-sm);
    line-height: 1.6;
    color: var(--color-text-muted);
}
.bsl-duty__exempt-art { border-top: 1px solid var(--duty-line); }
.bsl-duty__exempt-art:last-of-type { border-bottom: 1px solid var(--duty-line); }
.bsl-duty__exempt-sum {
    display: flex; align-items: baseline; gap: var(--sp-3);
    padding: 16px 0;
    font-size: var(--fs-base);
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
}
.bsl-duty__exempt-sum::-webkit-details-marker { display: none; }
.bsl-duty__exempt-no {
    flex: none;
    font-size: var(--fs-xs);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--bsl-ink-40);
}
.bsl-duty__exempt-lead {
    margin: 0 0 var(--sp-3);
    font-size: var(--fs-sm);
    line-height: 1.6;
    color: var(--color-text-muted);
}
.bsl-duty__exempt-list {
    margin: 0 0 var(--sp-5);
    padding-left: var(--sp-5);
    font-size: var(--fs-sm);
    line-height: 1.65;
    color: var(--color-text-muted);
}
.bsl-duty__exempt-list li { margin-bottom: 6px; }

/* ---- источник ---- */
/* ---------- ссылки на разделы на главной странице калькулятора ---------- */
.bsl-duty-cats {
    list-style: none; margin: 0; padding: 0;
    columns: 2; column-gap: 48px; max-width: 720px;
}
.bsl-duty-cats li { padding: 9px 0; border-bottom: 1px solid #EDEDEA; break-inside: avoid; }
.bsl-duty-cats a { font-size: 14.5px; color: #111; text-decoration: none; }
.bsl-duty-cats a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 700px) { .bsl-duty-cats { columns: 1; } }

/* ---------- статические таблицы ставок ([bsl_duty_rates]) ---------- */
.bsl-rates { max-width: 860px; }
.bsl-rates__brv { font-size: 13.5px; color: #6F6F6F; margin: 0 0 26px; }
.bsl-rates__sec {
    font-family: "Inter", system-ui, sans-serif; font-size: 15px; font-weight: 600;
    color: #111; margin: 38px 0 14px; letter-spacing: 0;
}
.bsl-rates__list { list-style: none; margin: 0; padding: 0; }
.bsl-rates__group {
    font-size: 12px; font-weight: 500; letter-spacing: 1.2px; text-transform: uppercase;
    color: #8C8C86; padding: 18px 0 8px; border-bottom: 1px solid #E3E3DE;
}
.bsl-rates__row {
    display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 8px 28px; padding: 11px 0; border-bottom: 1px solid #EDEDEA;
    font-size: 14px; line-height: 1.55;
}
.bsl-rates__row a { color: #111; text-decoration: none; }
.bsl-rates__row a:hover { text-decoration: underline; text-underline-offset: 3px; }
.bsl-rates__rate { color: #3A3A36; }
@media (max-width: 700px) {
    .bsl-rates__row { grid-template-columns: 1fr; gap: 2px; padding: 12px 0; }
    .bsl-rates__rate { color: #6F6F6F; font-size: 13px; }
}

.bsl-duty__share {
    display: inline-block; margin-top: 10px; padding: 0;
    background: none; border: 0; cursor: pointer;
    font-size: 12.5px; color: #6F6F6F; text-decoration: underline;
    text-underline-offset: 3px; letter-spacing: .2px;
}
.bsl-duty__share:hover { color: #111; }

.bsl-duty__source {
    margin: var(--sp-6) 0 0;
    font-size: var(--fs-xs);
    line-height: 1.6;
    color: var(--bsl-ink-40);
}
.bsl-duty__source a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

.bsl-duty__noscript { font-size: var(--fs-base); color: var(--color-text-muted); }

/* ---- адаптив ---- */
@media (max-width: 900px) {
    .bsl-duty__work { grid-template-columns: minmax(0, 1fr); }
    .bsl-duty__detail { position: static; order: -1; }
    .bsl-duty__row { padding: 14px 12px; }
    .bsl-duty__row-rate { max-width: 46%; }
}
@media (max-width: 560px) {
    .bsl-duty__cats { grid-template-columns: minmax(0, 1fr); }
    .bsl-duty__cat { min-height: 0; }
    .bsl-duty__row { flex-direction: column; gap: 4px; }
    .bsl-duty__row-rate { max-width: none; text-align: left; }
    .bsl-duty__basket { padding: var(--sp-5) var(--sp-4); }
}

@media print {
    .bsl-duty__search, .bsl-duty__cats, .bsl-duty__list,
    .bsl-duty__exempt, .bsl-duty__basket-acts, .bsl-duty__add { display: none; }
    .bsl-duty__detail { position: static; border: 0; background: none; padding: 0; }
}
/* ============================================================
   Black Swan Consulting — Homepage polish & responsive layout
   Scoped to top-level Elementor sections via .bsc-* classes.
   ============================================================ */

/* Reset header gap on Elementor-only pages */
.bsc-hero { margin-top: 0 !important; }

/* ============== HERO ============== */
.bsc-hero-image .elementor-widget-image,
.bsc-hero-image .elementor-widget-image .elementor-widget-container,
.bsc-hero-image .elementor-image,
.bsc-hero-image .elementor-image a,
.bsc-hero-image img {
    height: 100% !important;
}
.bsc-hero-image img {
    width: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
}

/* Монохром на герое задан в inner-pages-css.php для всех страниц сразу.
   Отдельные снимки цветные по замыслу — они помечены классом `bsc-hero-color`
   в сборщике страницы (флаг color_hover у h_hero), и наведение возвращает им
   цвет. Приём тот же, что у карточек отраслей и публикаций: filter + переход,
   без изменения геометрии.

   Правило под @media (hover: hover), чтобы на тач-экранах не залипало
   состояние наведения после касания — там герой остаётся монохромным,
   как и остальные фотографии сайта. */
.bsc-hero-color img {
    transition: filter 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
@media (hover: hover) {
    .bsc-hero-color:hover img {
        filter: grayscale(0) contrast(1.02);
    }
}

/* ============== WHO WE ARE ============== */
.bsc-who-image .elementor-widget-image,
.bsc-who-image .elementor-widget-image .elementor-widget-container,
.bsc-who-image .elementor-image,
.bsc-who-image .elementor-image a,
.bsc-who-image img {
    height: 100% !important;
}
.bsc-who-image img {
    width: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
}

.bsc-link-arrow .elementor-heading-title {
    border-bottom: 1px solid transparent;
    padding-bottom: 4px;
    transition: border-color 0.4s cubic-bezier(0.16,1,0.3,1);
}
.bsc-link-arrow:hover .elementor-heading-title { border-bottom-color: #fff; }

/* ============== TRUSTED BY — marquee ============== */
.bsc-trusted .bsc-logos-viewport,
.bsc-trusted .bsc-logos-viewport > .e-con-inner {
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    position: relative;
}
.bsc-trusted .bsc-logos-viewport::before,
.bsc-trusted .bsc-logos-viewport::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 80px;
    z-index: 2;
    pointer-events: none;
}
.bsc-trusted .bsc-logos-viewport::before {
    left: 0;
    background: linear-gradient(to right, #F6F6F3, transparent);
}
.bsc-trusted .bsc-logos-viewport::after {
    right: 0;
    background: linear-gradient(to left, #F6F6F3, transparent);
}

.bsc-trusted .bsc-logos-track,
.bsc-trusted .bsc-logos-track > .e-con-inner {
    flex-wrap: nowrap !important;
    width: max-content !important;
    align-items: center !important;
    animation: bsc-marquee 35s linear infinite;
}
.bsc-trusted .bsc-logos-track:hover,
.bsc-trusted .bsc-logos-track:hover > .e-con-inner {
    animation-play-state: paused;
}

.bsc-trusted .bsc-logos-track .elementor-widget-image { flex-shrink:0 !important; }
.bsc-trusted .bsc-logos-track .elementor-widget-image img { display:block; }


@keyframes bsc-marquee {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
    .bsc-trusted .bsc-logos-track,
    .bsc-trusted .bsc-logos-track > .e-con-inner {
        animation: none !important;
    }
}

/* ============== INSIGHTS + PARTNERS ============== */
.bsc-insights-people .elementor-widget-image img {
    transition: filter 0.6s cubic-bezier(0.16,1,0.3,1), transform 0.6s cubic-bezier(0.16,1,0.3,1);
    aspect-ratio: 4/3;
    object-fit: cover;
}
.bsc-insights-people a:hover .elementor-widget-image img,
.bsc-insights-people .elementor-widget-image:hover img {
    filter: saturate(1) !important;
}

/* Team photos — portrait crop (same proportions as the People page cards) */
.bsc-insights-people > .e-con-inner > .e-con:last-child .elementor-widget-image img,
.bsc-insights-people > .e-con-inner > .e-con:last-child .elementor-image img {
    width: 100%;
    aspect-ratio: 3/4;
    object-fit: cover;
    object-position: center top;
}

/* Buttons */
.bsc-btn .elementor-button {
    border-radius: 0 !important;
    transition: background 0.4s cubic-bezier(0.16,1,0.3,1) !important;
}

.bsc-insights-people h3 a { transition: opacity 0.3s; }
.bsc-insights-people h3 a:hover { opacity: 0.65; }


/* ============================================================
   TABLET — 768–1023px
   ============================================================ */
@media (max-width: 1023px) {
    /* HERO — stack: text → image, reduce paddings */
    .bsc-hero > .e-con-inner {
        flex-direction: column !important;
    }
    .bsc-hero > .e-con-inner > .e-con {
        width: 100% !important;
    }
    .bsc-hero-image img {
        min-height: 320px;
        max-height: 460px;
    }

    /* WHO WE ARE — stack: dark block → image */
    .bsc-who > .e-con-inner {
        flex-direction: column !important;
    }
    .bsc-who > .e-con-inner > .e-con {
        width: 100% !important;
    }
    .bsc-who-image img {
        min-height: 320px;
        max-height: 480px;
    }

    /* INSIGHTS + PARTNERS — stack the 60/40 columns */
    .bsc-insights-people > .e-con-inner {
        flex-direction: column !important;
    }
    .bsc-insights-people > .e-con-inner > .e-con {
        width: 100% !important;
    }

    /* CTA — stack */
    .bsc-cta > .e-con-inner {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 24px !important;
    }
    .bsc-cta > .e-con-inner > .e-con {
        width: 100% !important;
    }
}


/* ============================================================
   MOBILE — ≤767px
   ============================================================ */
@media (max-width: 767px) {

    /* HERO — tighten paddings, scale text */
    .bsc-hero {
        min-height: auto !important;
    }
    .bsc-hero > .e-con-inner > .e-con:first-child {
        padding: 80px 24px 48px !important;
    }
    .bsc-hero h1 {
        font-size: 38px !important;
        line-height: 1.08 !important;
    }
    .bsc-hero-image img {
        min-height: 240px !important;
        max-height: 320px !important;
    }

    /* WHO WE ARE — compact dark block */
    .bsc-who {
        min-height: auto !important;
    }
    .bsc-who > .e-con-inner > .e-con:first-child {
        padding: 56px 24px !important;
    }
    .bsc-who h2 {
        font-size: 32px !important;
    }
    .bsc-who-image img {
        min-height: 280px !important;
    }

    /* TRUSTED BY — smaller logos, less space */
    .bsc-trusted {
        padding: 40px 0 !important;
    }
    .bsc-trusted .bsc-logos-track .elementor-widget-image { flex-shrink:0 !important; }
    .bsc-trusted .bsc-logos-track .elementor-widget-image img { display:block; }
    .bsc-trusted .bsc-logos-viewport::before,
    .bsc-trusted .bsc-logos-viewport::after {
        width: 40px;
    }

    /* INSIGHTS — switch each card to horizontal: image left, text right */
    .bsc-insights-people > .e-con-inner > .e-con:first-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner {
        flex-direction: column !important;
        gap: 20px !important;
    }
    .bsc-insights-people > .e-con-inner > .e-con:first-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con {
        width: 100% !important;
        flex-direction: row !important;
        align-items: stretch !important;
        gap: 16px !important;
        padding: 0 !important;
    }
    .bsc-insights-people > .e-con-inner > .e-con:first-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con > .elementor-widget-image {
        flex: 0 0 120px !important;
        width: 120px !important;
        margin: 0 !important;
    }
    .bsc-insights-people > .e-con-inner > .e-con:first-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con > .elementor-widget-image img {
        aspect-ratio: 1/1 !important;
        height: 100% !important;
        width: 100% !important;
        object-fit: cover !important;
    }
    /* Make non-image children fill remaining width */
    .bsc-insights-people > .e-con-inner > .e-con:first-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con > *:not(.elementor-widget-image) {
        flex: 1 1 auto !important;
    }
    /* Wrap meta+arrow at bottom of right column */
    .bsc-insights-people > .e-con-inner > .e-con:first-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con {
        flex-wrap: wrap !important;
    }
    .bsc-insights-people > .e-con-inner > .e-con:first-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con > .elementor-widget-image {
        order: 1;
    }
    .bsc-insights-people > .e-con-inner > .e-con:first-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con > .elementor-widget-heading,
    .bsc-insights-people > .e-con-inner > .e-con:first-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con > .e-con {
        order: 2;
        margin-left: 0 !important;
    }
    /* Insight title smaller on mobile */
    .bsc-insights-people > .e-con-inner > .e-con:first-child h3 {
        font-size: 16px !important;
        line-height: 1.3 !important;
    }

    /* PARTNERS — same horizontal pattern */
    .bsc-insights-people > .e-con-inner > .e-con:last-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner {
        flex-direction: column !important;
        gap: 20px !important;
    }
    .bsc-insights-people > .e-con-inner > .e-con:last-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con {
        width: 100% !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 16px !important;
        padding: 0 !important;
    }
    .bsc-insights-people > .e-con-inner > .e-con:last-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con > .elementor-widget-image {
        flex: 0 0 110px !important;
        width: 110px !important;
        margin: 0 !important;
    }
    .bsc-insights-people > .e-con-inner > .e-con:last-child > .e-con-inner > .e-con:nth-child(2) > .e-con-inner > .e-con > .elementor-widget-image img {
        aspect-ratio: 1/1 !important;
        height: 100% !important;
        width: 100% !important;
        object-fit: cover !important;
    }

    /* CTA on mobile — stacked */
    .bsc-cta {
        text-align: left !important;
    }
    .bsc-cta h3 {
        font-size: 22px !important;
    }

    /* Hide soft fade gradients in trusted carousel on smallest screens */
    .bsc-trusted .bsc-logos-viewport::before,
    .bsc-trusted .bsc-logos-viewport::after {
        width: 24px;
    }
}


/* Body global fix when Elementor runs the page */

/* Hide leftover theme blocks */
body.elementor-page .locations { display: none; }
/* ---------- inline arrow links ---------- */
.bsl-arrow { display:inline-flex; width:26px; height:26px; align-items:center; justify-content:center; }
.bsl-arrow svg { width:22px; height:22px; transition: transform .45s cubic-bezier(.16,1,.3,1); }
.bsl-arrow:hover svg { transform: translateX(5px); }

/* Замыкающая строка «Все 12 практик / 14 отраслей» в полосах главной. */
.bsc-all-row .elementor-widget { margin: 0; }
.bsl-all-link { display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:18px 32px; font-size:12px; font-weight:500; letter-spacing:1.6px;
  text-transform:uppercase; color:#111111; }
.bsl-all-link svg { width:22px; height:22px; flex:none; transition: transform .45s cubic-bezier(.16,1,.3,1); }
.bsl-all-link:hover svg { transform: translateX(5px); }
/* Вторая строка длинных названий практик: на десктопе — перенос, на мобильном
   правило в responsive.php возвращает inline. */
.bsc-l2 { display:block; }
.bsl-svgicon svg { width:100%; height:100%; }

.bsl-download{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:#111;text-decoration:none;}
.bsl-download svg{width:15px;height:15px;flex:0 0 15px;}
.bsl-download:hover{opacity:.65}

/* ---------- practice strip (home) ---------- */
.bsc-practice-strip .e-con-inner > .e-con { transition: background-color .45s cubic-bezier(.16,1,.3,1); }
.bsc-practice-strip .e-con-inner > .e-con:hover { background-color:#FFFFFF; }
.bsc-practice-strip h3 a { color:#111; text-decoration:none; }
.bsc-practice-strip .elementor-widget-html { margin-top:auto; }

/* ---------- industry strip (home) ---------- */
.bsc-industry-strip .e-con-inner > .e-con:last-child > .e-con-inner > .e-con { transition: background-color .45s cubic-bezier(.16,1,.3,1); }
.bsc-industry-strip .e-con-inner > .e-con:last-child > .e-con-inner > .e-con:hover { background-color:#FAFAF8; }
.bsc-industry-strip .elementor-widget-heading a { color:#111; text-decoration:none; }

/* ---------- logo marquee ----------
   Equal spacing is carried by a per-item margin (not flex gap) so that the
   distance after the last logo equals the distance between logos — that is
   what makes the -50% loop wrap without a visible jump.                     */
.bsc-trusted .bsc-logos-track {
    gap:0 !important; --gap:0px !important; --column-gap:0px !important; --row-gap:0px !important;
    flex:0 0 auto !important;      /* не сжиматься под ширину вьюпорта */
    width:max-content !important;
}
.bsc-trusted .bsc-logos-track .elementor-widget-image {
    width:auto !important; flex:0 0 auto !important;
    /* padding, not margin: the trailing space is part of the element box, so the
       track width is an exact multiple of one set and -50% loops without a jump */
    margin:0 !important; padding:0 76px 0 0 !important;
}
.bsc-trusted .bsc-logos-track .elementor-widget-image img {
    height:44px !important; width:auto !important; max-height:none !important;
    margin:0 !important; object-fit:contain !important;
    mix-blend-mode:normal; filter:none; opacity:.62;
    transition:opacity .45s cubic-bezier(.16,1,.3,1);
}
.bsc-trusted .bsc-logos-track .elementor-widget-image:hover img { opacity:1; }

/* ---------- homepage team column ---------- */
.bsc-team-col .elementor-widget-image img {
    width:100% !important;
    aspect-ratio:3/4 !important;
    object-fit:cover !important;
    object-position:center top !important;
}

/* ---------- section link arrows ---------- */
.bsc-link-arrow-dark .elementor-heading-title,
.bsc-link-arrow-dark .elementor-heading-title a { color:#111 !important; transition: opacity .3s; }
.bsc-link-arrow-dark:hover .elementor-heading-title a { opacity:.6; }

/* ---------- responsive ---------- */
@media (max-width: 1023px) {
    .bsc-practice-strip > .e-con-inner,
    .bsc-industry-strip .e-con-inner > .e-con:last-child > .e-con-inner { flex-wrap: wrap !important; }
    .bsc-practice-strip > .e-con-inner > .e-con,
    .bsc-industry-strip .e-con-inner > .e-con:last-child > .e-con-inner > .e-con {
        border-bottom:1px solid #E3E3DE !important;
    }
}
@media (max-width: 767px) {
    .bsc-trusted .bsc-logos-track .elementor-widget-image { padding-right:44px !important; }
    .bsc-trusted .bsc-logos-track .elementor-widget-image img { height:32px !important; }
    .bsc-practice-strip > .e-con-inner > .e-con,
    .bsc-industry-strip .e-con-inner > .e-con:last-child > .e-con-inner > .e-con {
        border-right:0 !important;
    }
}
/* ---------- on-this-page anchor bar ---------- */
.bsc-anchorbar .elementor-widget-html { flex: 0 0 auto; }
.bsl-anchor {
    display:inline-flex; align-items:center; gap:8px;
    font-size:12px; color:#111; text-decoration:none; white-space:nowrap;
    transition: opacity .3s;
}
.bsl-anchor svg { width:12px; height:12px; opacity:.55; }
.bsl-anchor:hover { opacity:.6; }
.bsc-anchorbar > .e-con-inner { gap:16px 26px !important; --gap:16px 26px !important; --row-gap:16px !important; --column-gap:26px !important; }

/* ---------- rule heading (Our expertise) ---------- */
.bsl-rule { display:flex; align-items:center; gap:28px; width:100%; }
.bsl-rule h2 {
    font-family:"Cormorant Garamond", Georgia, serif;
    font-size:32px; font-weight:400; line-height:1.15; color:#111; margin:0; white-space:nowrap;
}
.bsl-rule span { flex:1 1 auto; height:1px; background:#E3E3DE; display:block; }

/* ---------- bullet lists ---------- */
.bsl-bullets { list-style:none; margin:0; padding:0; }
.bsl-bullets li {
    position:relative; padding-left:16px; margin-bottom:14px;
    font-size:13px; line-height:1.55; color:#3A3A36;
}
.bsl-bullets li::before {
    content:""; position:absolute; left:0; top:8px;
    width:4px; height:4px; border-radius:50%; background:#111;
}


/* ---------- expertise rule + card imagery ---------- */
.bsc-expertise .elementor-widget-html { width:100%; }
.bsc-expertise .elementor-widget-html .elementor-widget-container { width:100%; }
[id="insights"] .elementor-widget-image img,
.bsc-cardgrid .elementor-widget-image img { aspect-ratio:4/3; object-fit:cover; width:100%; }
/* Careers, блок «Life at Black Swan»: панорамные кадры — 16:9 у всех трёх */
.bsc-lifegrid .elementor-widget-image img { aspect-ratio:16/9; }


/* ---------- service cards grid ---------- */
.bsc-service-grid .bsc-service-card { margin:0 -1px -1px 0; transition:background-color .4s cubic-bezier(.16,1,.3,1); }
.bsc-service-grid .bsc-service-card:hover { background-color:#FAFAF8; }
.bsl-bullets--tight li { margin-bottom:9px; font-size:12.5px; color:#6F6F6F; }
.bsl-anchor--plain svg { display:none; }

/* ---------- industries grid ---------- */
.bsc-ind-row { transition:background-color .4s cubic-bezier(.16,1,.3,1); }
.bsc-ind-row:hover { background-color:#FAFAF8; }
.bsc-ind-thumb img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; filter:grayscale(100%); transition:filter .5s; }
.bsc-ind-row:hover .bsc-ind-thumb img { filter:grayscale(0); }


/* ---------- monochrome imagery (matches the design system) ---------- */
.bsc-hero-image img { filter:grayscale(100%) contrast(1.02); }
.bsc-cardgrid .elementor-widget-image img,
[id="insights"] .elementor-widget-image img,
.bsc-insights-people .elementor-widget-image img,
.bsc-about-team .elementor-widget-image img,
[id="team"] .elementor-widget-image img {
    filter:grayscale(100%);
    transition:filter .6s cubic-bezier(.16,1,.3,1);
}
.bsc-cardgrid .elementor-widget-image:hover img,
[id="insights"] .elementor-widget-image:hover img,
.bsc-insights-people .elementor-widget-image:hover img,
.bsc-about-team .elementor-widget-image:hover img,
[id="team"] .elementor-widget-image:hover img { filter:grayscale(0); }

/* ---------- inner page hero image ---------- */
.bsc-hero-image .elementor-widget-image,
.bsc-hero-image .elementor-widget-image .elementor-widget-container,
.bsc-hero-image .elementor-image,
.bsc-hero-image .elementor-image a,
.bsc-hero-image img { height:100% !important; }
.bsc-hero-image img { width:100% !important; object-fit:cover !important; }

/* ---------- generic card imagery ---------- */
.bsc-cardgrid .elementor-widget-image img,
.bsc-expertise .elementor-widget-image img { width:100%; object-fit:cover; }

@media (max-width: 1023px) {
    .bsc-anchorbar { display:none !important; }
    .bsc-hero > .e-con-inner { flex-direction: column !important; }
    .bsc-hero > .e-con-inner > .e-con { width:100% !important; }
    .bsc-hero-image img { min-height:280px; max-height:420px; }
}
/* ============ publications listing ============ */
.bsl-filterbar {
    display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
    border-top:1px solid #E3E3DE; border-bottom:1px solid #E3E3DE;
    background:#F6F6F3; margin:0 -60px 56px; padding:16px 60px;
}
.bsl-filterbar__tabs { display:flex; gap:30px; flex-wrap:wrap; }
.bsl-filterbar__tabs a {
    font-size:13px; color:#6F6F6F; text-decoration:none; padding-bottom:3px;
    border-bottom:1px solid transparent; transition:color .3s, border-color .3s;
}
.bsl-filterbar__tabs a:hover { color:#111; }
.bsl-filterbar__tabs a.is-active { color:#111; border-bottom-color:#111; }
.bsl-filterbar__search { display:flex; align-items:center; gap:8px; }
.bsl-filterbar__search input {
    border:0; background:transparent; font-size:13px; color:#111; width:130px; outline:none;
    border-bottom:1px solid #D9D9D4; padding:4px 0;
}
.bsl-filterbar__search button { border:0; background:none; cursor:pointer; color:#111; padding:0; }
.bsl-filterbar__search svg { width:16px; height:16px; }

.bsl-insights__grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:56px 34px; }
.bsl-icard__img { display:block; margin-bottom:20px; overflow:hidden; }
.bsl-icard__img img {
    width:100%; aspect-ratio:4/3; object-fit:cover; display:block;
    filter:grayscale(100%); transition:filter .6s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1);
}
.bsl-icard:hover .bsl-icard__img img { filter:grayscale(0); transform:scale(1.03); }
.bsl-icard__type {
    display:block; font-size:10px; letter-spacing:1.6px; text-transform:uppercase; color:#9A9A94; margin-bottom:12px;
}
.bsl-icard__title { font-family:"Cormorant Garamond", Georgia, serif; font-size:20px; font-weight:400; line-height:1.28; margin:0 0 20px; }
.bsl-icard__title a { color:#111; text-decoration:none; }
.bsl-icard__title a:hover { opacity:.65; }
.bsl-icard__foot { display:flex; align-items:center; justify-content:space-between; font-size:12px; color:#9A9A94; }

.bsl-pagination { display:flex; justify-content:center; gap:10px; margin-top:64px; padding-top:32px; border-top:1px solid #E3E3DE; }
.bsl-pagination .page-numbers {
    min-width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center;
    font-size:13px; color:#6F6F6F; text-decoration:none; border-bottom:1px solid transparent;
}
.bsl-pagination .page-numbers.current { color:#111; border-bottom-color:#111; }
.bsl-pagination .page-numbers:hover { color:#111; }

/* ============ people grid ============ */
/* flex вместо grid: неполный ряд карточек центрируется, а не липнет к левому краю */
.bsl-people { display:flex; flex-wrap:wrap; justify-content:center; gap:52px 30px; }
.bsl-pcard { flex:0 0 calc((100% - 90px) / 4); max-width:calc((100% - 90px) / 4); }
.bsl-pcard__img { display:block; margin-bottom:18px; overflow:hidden; }
.bsl-pcard__img img {
    width:100%; aspect-ratio:3/4; object-fit:cover; display:block;
    filter:grayscale(100%); transition:filter .6s cubic-bezier(.16,1,.3,1);
}
.bsl-pcard:hover .bsl-pcard__img img { filter:grayscale(0); }
.bsl-pcard__name { font-size:11px; letter-spacing:1.4px; text-transform:uppercase; font-weight:500; margin:0 0 10px; }
.bsl-pcard__name a { color:#111; text-decoration:none; }
.bsl-pcard__foot { display:flex; align-items:center; justify-content:space-between; font-size:12px; color:#6F6F6F; }

@media (max-width: 1023px) {
    .bsl-insights__grid { grid-template-columns:repeat(2, 1fr); }
    .bsl-pcard { flex:0 0 calc((100% - 60px) / 3); max-width:calc((100% - 60px) / 3); }
    .bsl-filterbar { margin:0 -24px 40px; padding:14px 24px; }
}
@media (max-width: 640px) {
    .bsl-insights__grid { grid-template-columns:1fr; gap:40px; }
    .bsl-people { gap:32px 20px; }
    .bsl-pcard { flex:0 0 calc((100% - 20px) / 2); max-width:calc((100% - 20px) / 2); }
}
/* card blocks embedded in Elementor sections */
.bsl-cards--2 { grid-template-columns:repeat(2, 1fr) !important; gap:0 28px !important; }
.bsl-cards--3 { grid-template-columns:repeat(3, 1fr) !important; gap:0 28px !important; }
.bsl-cards--4 { grid-template-columns:repeat(4, 1fr) !important; gap:0 28px !important; }
.bsl-cards--2 .bsl-icard__title, .bsl-cards--3 .bsl-icard__title, .bsl-cards--4 .bsl-icard__title { font-size:19px; }
@media (max-width: 1023px) {
    .bsl-cards--3, .bsl-cards--4 { grid-template-columns:repeat(2, 1fr) !important; gap:36px 24px !important; }
}
@media (max-width: 640px) {
    .bsl-cards--2, .bsl-cards--3, .bsl-cards--4 { grid-template-columns:1fr !important; gap:36px 0 !important; }
}
/* ---------- small print under the contact CTA ---------- */
.bsl-disclaimer {
    margin-top: 34px;
    max-width: 480px;
    font-size: 11.5px;
    line-height: 1.65;
    color: #9A9A94;
}
.bsl-disclaimer p { margin: 0 0 10px; }
.bsl-disclaimer p:last-child { margin-bottom: 0; }
.bsl-disclaimer ul { list-style: none; margin: 0 0 10px; padding: 0; }
.bsl-disclaimer li { position: relative; padding-left: 14px; margin-bottom: 6px; }
.bsl-disclaimer li::before {
    content: "—";
    position: absolute;
    left: 0;
    top: 0;
    color: #C4C4BE;
}
@media (max-width: 767px) {
    .bsl-disclaimer { margin-top: 26px; font-size: 11px; }
}
/* ==========================================================================
   Black Swan Consulting — responsive layer
   ========================================================================== */

:root {
    /* One gutter token for the whole site. The theme's own --container-pad is
       pointed at it so the header, the footer and the builder sections cannot
       drift apart again. 22px keeps a phone from feeling cramped; 60px is the
       value the desktop design was drawn at. */
    --bsl-gutter: clamp(22px, 4.2vw, 60px);
    --container-pad: var(--bsl-gutter);
    /* Distance from the window edge to the content. Equals the gutter until the
       viewport outgrows the content cap, after which it grows so the page stays
       centred on one grid instead of stretching. */
    --bsl-frame-pad: var(--bsl-gutter);
}

@media (min-width: 1560px) {
    :root {
        --bsl-frame-pad: calc((100vw - var(--container-max)) / 2 + var(--bsl-gutter));
    }
}

/* --------------------------------------------------------------------------
   1. Rows reflow instead of squeezing
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
    .e-con.e-flex,
    .e-con.e-flex > .e-con-inner {
        flex-wrap: wrap;
    }

    /* The logo ribbon is a single track by design — it must never wrap. */
    .bsc-logos-viewport,
    .bsc-logos-viewport > .e-con-inner,
    .bsc-logos-track,
    .bsc-logos-track > .e-con-inner {
        flex-wrap: nowrap !important;
    }

    /* No column narrower than a readable measure: anything that would end up
       below 240px takes a full row instead. */
    .e-con.e-flex > .e-con,
    .e-con.e-flex > .e-con-inner > .e-con {
        min-width: min(100%, 240px);
    }
}

@media (max-width: 767px) {
    /* One column per row on phones, whatever the builder set. */
    .e-con.e-flex > .e-con,
    .e-con.e-flex > .e-con-inner > .e-con {
        --width: 100%;
        min-width: 100%;
    }
    .bsc-logos-track > .e-con {
        --width: auto;
        min-width: 0;
    }
}

/* --------------------------------------------------------------------------
   2. One gutter everywhere
   -------------------------------------------------------------------------- */
/* Custom properties inherit, so a nested container without a padding of its own
   picks up its parent's --padding-left. Elementor only ever reads that value on
   the element it was set for, so the inheritance is invisible — until something
   else reads it, as the clamps below do, and every child suddenly claims the
   section's 60px gutter as its own.

   This reset is deliberately low on specificity: Elementor writes its own value
   with three classes, so a container that really was given a padding keeps it,
   and only the ones that merely inherited fall back to zero. */
.e-con .e-con {
    --padding-left: 0px;
    --padding-right: 0px;
}

@media (max-width: 1024px) {
    /* Rather than assigning a gutter — which would inset the bands that are
       meant to run edge to edge — the existing one is clamped. Elementor keeps
       the value in --padding-left, so min() reads it and caps it: a section
       drawn with 60px follows the fluid gutter, a section drawn with 0 stays at
       0. Applied to sections and to their direct columns, because the builder
       puts the design's gutter on whichever of the two suits the block. */
    .site-main .e-con.e-parent,
    .site-main .e-con.e-parent > .e-con {
        padding-left: min(var(--padding-left, 0px), var(--bsl-gutter));
        padding-right: min(var(--padding-right, 0px), var(--bsl-gutter));
    }
}

/* Past the content cap the gutter grows instead, so the header, the sections
   and the footer all start their content on the same vertical line. Multiplying
   by 999 turns the same min() into a switch that leaves a zero untouched: a
   full-bleed band stays full-bleed, everything else lands on the frame. */
@media (min-width: 1560px) {
    /* Sections only. A column keeps the padding it was drawn with: the practice
       strip is five cells of 32px, and pushing the frame onto each of them would
       give the row five 300px margins instead of one. */
    .site-main .e-con.e-parent {
        padding-left: min(calc(var(--padding-left, 0px) * 999), var(--bsl-frame-pad));
        padding-right: min(calc(var(--padding-right, 0px) * 999), var(--bsl-frame-pad));
    }
    /* Two full-bleed sections carry the gutter on their column instead of on
       themselves; their band stays edge to edge while the text joins the frame.
       The strips of cells are left alone on purpose — a band of five equal cells
       reads as a rule across the page, not as a column of text. */
    .site-main .bsc-hero.e-parent > .e-con:first-child,
    .site-main .bsc-who.e-parent > .e-con {
        padding-left: min(calc(var(--padding-left, 0px) * 999), var(--bsl-frame-pad));
        padding-right: min(calc(var(--padding-right, 0px) * 999), var(--bsl-frame-pad));
    }
    /* The frame belongs on the OUTER edge of a half-width column only. These
       text columns sit beside an image that fills the other half, so their
       inner edge keeps the plain gutter: with the frame on both sides a 4K
       viewport (frame ≈ 1260px each side) left the column zero content width
       and the copy wrapped one word per line. */
    .site-main .bsc-hero.e-parent > .e-con:first-child,
    .site-main .bsc-who.e-parent > .e-con:first-child {
        padding-right: var(--bsl-gutter);
    }
    /* The who-column is drawn at 39% — the narrowest of the split bands — and
       past ~2200px the growing frame eats even a gutter-fixed column. 446px is
       its design measure at the 1440 cap (562px cell − 60 − 56 padding); the
       min-width keeps that measure and lets the photo cell shrink instead,
       which flex does on its own. */
    .site-main .bsc-who.e-parent > .e-con:first-child {
        min-width: min(100%, calc(var(--bsl-frame-pad) + var(--bsl-gutter) + 446px));
    }
}

/* Templates the theme renders itself were drawn with hard 60px/24px gutters;
   point them at the same token so they cannot drift from the builder pages.

   Only full-width sections belong here. .ins__advice used to be in this list and
   must not be: it is a 660px card inside the content column, not a band spanning
   the page, so the page gutter became its inner padding. Past 1560px the token
   grows to hold the frame, and the card's inner width collapsed with it — the
   text column shrank to nothing and its paragraph wrapped one word per line while
   the heading spilled over the button. The neighbouring .ins__guide card was never
   listed here, which is why it kept rendering correctly at the same widths. */
.ins__hero-text,
.ins__body-grid,
.person__topbar,
.person__grid,
.person__latest {
    padding-left: var(--bsl-frame-pad) !important;
    padding-right: var(--bsl-frame-pad) !important;
}

/* .ins__hero-text is the 46% text cell of the article hero, not a full-width
   band: its right neighbour is the cover image. Past the cap the frame stays on
   the window edge only — both sides at 4K exceeded the cell and collapsed the
   title to one word per line. */
@media (min-width: 1560px) {
    .ins__hero-text {
        padding-right: var(--bsl-gutter) !important;
    }
}

/* --------------------------------------------------------------------------
   2b. Hero imagery once the two columns stack
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
    /* Side by side the image is stretched to the height of the text column; once
       the columns stack that same rule leaves it sized by its aspect ratio and
       floating in a column it no longer fills — a white gap down the right. */
    .bsc-hero-image,
    .bsc-hero-image .elementor-widget-image,
    .bsc-hero-image .elementor-widget-container,
    .bsc-hero-image .elementor-image {
        width: 100% !important;
        height: auto !important;
    }
    .bsc-hero-image img {
        width: 100% !important;
        height: auto !important;
        max-height: 46vh;
        object-fit: cover;
    }
}

/* --------------------------------------------------------------------------
   3. Reading measure
   -------------------------------------------------------------------------- */
@media (min-width: 600px) {
    /* Body copy stops growing with its column. The worst case was not the wide
       desktop but the tablet: once a two-column row collapses, a paragraph
       inherits the full width and ran to 139 characters a line. */
    .site-main .elementor-widget-text-editor p,
    .site-main .elementor-widget-heading + .elementor-widget-text-editor p,
    .entry-content > p,
    .ins__lead {
        max-width: 62ch;
    }
    /* The article column was drawn at 660px, which at 14px Inter is about 94
       characters — measured in ch it tracks the font instead of the pixel. */
    .ins__content .entry-content {
        max-width: min(660px, 62ch);
    }
}

/* --------------------------------------------------------------------------
   4. Touch targets
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
    .lang-switch a,
    .site-nav a,
    .bsl-filterbar__tabs a,
    .breadcrumbs a {
        min-height: 40px;
        display: inline-flex;
        align-items: center;
    }
    .lang-switch a {
        min-width: 40px;
        justify-content: center;
    }
    .bsl-arrow,
    .ins__share a {
        min-width: 40px;
        min-height: 40px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

/* --------------------------------------------------------------------------
   Footer: the about block copied from the live site
   --------------------------------------------------------------------------
   Measured on blackswan.law at 1440: the paragraph runs the full width of the
   container (1290px, no max-width), justified, 16px on a 1.65 line, in white.
   The "Read more" link and the credit line sit on the same left edge. No
   centring and no reading-measure cap here — the block is a wall of text by
   design, and narrowing it made it look like something else.
   -------------------------------------------------------------------------- */
.site-footer__about {
    margin-top: 44px;
    padding-top: 34px;
    border-top: 1px solid var(--on-dark-border);
    text-align: left;
}

.site-footer__about-details { display: block; }

/* The default disclosure triangle has no place in this design. */
.site-footer__about-summary {
    display: block;
    list-style: none;
    cursor: pointer;
}
.site-footer__about-summary::-webkit-details-marker { display: none; }

.site-footer__about-short p,
.site-footer__about-full p,
.site-footer__about-full li {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    font-family: var(--font-serif);
    font-size: 16px;
    line-height: 1.65;
    text-align: justify;
    color: var(--color-white);
}

.site-footer__about-short p { margin-top: 0; margin-bottom: 0; }
.site-footer__about-full { margin-top: 4px; }
.site-footer__about-full p { margin: 0 0 18px; }

.site-footer__about-full h2,
.site-footer__about-full h3 {
    max-width: none;
    margin: 30px 0 14px;
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 400;
    line-height: 1.25;
    text-align: left;
    color: var(--color-white);
}

.site-footer__about-full ul,
.site-footer__about-full ol {
    max-width: none;
    margin: 0 0 18px;
    padding-left: 1.2em;
}
.site-footer__about-full li { margin-bottom: 6px; text-align: left; }

/* The toggle swaps its own label, and hides the short copy once open. */
.site-footer__about-more,
.site-footer__about-less {
    display: inline-block;
    margin-top: 16px;
    font-size: 15px;
    color: var(--color-white);
    border-bottom: 1px solid var(--on-dark-border);
    padding-bottom: 2px;
    transition: border-color .3s;
}
.site-footer__about-summary:hover .site-footer__about-more,
.site-footer__about-summary:hover .site-footer__about-less {
    border-color: var(--color-white);
}
.site-footer__about-less { display: none; }
.site-footer__about-details[open] .site-footer__about-short { display: none; }
.site-footer__about-details[open] .site-footer__about-more { display: none; }
.site-footer__about-details[open] .site-footer__about-less { display: inline-block; }

.site-footer__credit {
    margin: 26px 0 0;
    font-size: 15px;
    line-height: 1.7;
    text-align: left;
    color: var(--color-white);
}

@media (max-width: 767px) {
    .site-footer__about { margin-top: 32px; padding-top: 26px; }
    .site-footer__about-short p,
    .site-footer__about-full p,
    .site-footer__about-full li { font-size: 15px; }
    .site-footer__about-full h2,
    .site-footer__about-full h3 { font-size: 19px; }
    .site-footer__credit { font-size: 14px; }
}

/* Justified text on a narrow screen opens rivers of white space between the
   words; below the tablet the paragraph sets ragged-right instead. */
@media (max-width: 560px) {
    .site-footer__about-short p,
    .site-footer__about-full p { text-align: left; }
}

/* Contact call to action inside the mobile menu. The menu turns every link into
   a full-width block, which flattens the button's flex layout and drops the
   arrow on top of the label — so the button states its own display. */
.mobile-menu a.mobile-menu__cta {
    display: inline-flex;
    align-items: center;
    width: auto;
    padding: 18px 28px;
    margin-top: 44px;
    font-size: 15px;
    color: var(--color-white);
}

/* --------------------------------------------------------------------------
   5. Nothing escapes its column
   -------------------------------------------------------------------------- */
.entry-content img,
.entry-content iframe,
.entry-content video {
    max-width: 100%;
    height: auto;
}
.entry-content table {
    display: block;
    width: 100%;
    overflow-x: auto;
    border-collapse: collapse;
}
.entry-content pre {
    overflow-x: auto;
    max-width: 100%;
}
/* Long unbroken strings — URLs, case numbers — wrap instead of pushing the
   page sideways. */
.entry-content a,
.bsl-icard__title,
.breadcrumbs__current {
    overflow-wrap: anywhere;
}

/* Шапка с восемью пунктами меню.

   Пункт «Duty calculator» / «Калькулятор госпошлин» длиннее остальных, и в узкой
   полосе (десктопное меню ещё показано, места уже мало) он разрывался на три
   строки, а лента пунктов прижималась к логотипу вплотную. Поэтому пункт не
   переносится никогда, а промежутки в узкой полосе сжимаются. С добавлением
   «Скрининга» (восьмой пункт) обе границы сдвинуты вверх: замер по русскому
   меню — при обычных промежутках зазор до логотипа обнуляется уже на 1320px. */
.site-nav__menu > li > a {
    white-space: nowrap;
}
@media (min-width: 993px) and (max-width: 1279px) {
    /* Даже с ужатыми промежутками восемь пунктов здесь встают вплотную к логотипу
       (в русской версии — тем более: «Калькулятор госпошлин» вдвое длиннее любого
       другого пункта), поэтому в этой полосе отдаём меню бургеру — он и так
       работает ниже 992px. */
    .site-nav__menu { display: none; }
    .menu-toggle { display: flex; }
}
@media (min-width: 1280px) and (max-width: 1499px) {
    .site-nav { gap: 24px; }
    .site-nav__menu { gap: 20px; }
    .site-header__inner .btn { padding-left: 20px; padding-right: 20px; }
}

/* A last resort against sideways scrolling on phones. */
@media (max-width: 767px) {
    html, body { overflow-x: hidden; }
}

/* Полосы практик и отраслей на главной: на телефоне десктопные «карточки»
 * складываются в компактные строки-указатели — номер/иконка + название слева,
 * стрелка справа, тонкая линия между пунктами. Без этого пять пунктов
 * растягивались на ~2000px почти пустой прокрутки. */
@media (max-width: 767px) {
    .bsc-strip-item.e-con {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 14px;
        padding: 16px 24px !important;
        border-width: 0 0 1px 0 !important;
    }
    .bsc-strip-item .elementor-widget { margin: 0 !important; width: auto; }
    /* стрелка — прямой потомок ячейки; иконка отрасли лежит глубже и не задевается */
    .bsc-strip-item > .elementor-widget-html { margin-left: auto !important; flex: none !important; }
    /* вложенный ряд «иконка + название» у отраслей: не выталкивать стрелку,
       промежуток вместо обнулённого margin-left заголовка */
    .bsc-strip-item .e-con.e-child { padding: 0 !important; border: 0 !important;
        width: auto !important; flex: 0 1 auto !important; min-width: 0; gap: 12px; }
    .bsc-strip-item h3 { margin: 0; }
    .bsc-l2 { display: inline; }
    .bsl-all-link { padding: 16px 24px; }
}