/* 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 — 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); }
}
/* ---------------- hero ---------------- */
.ins__hero { display:grid; grid-template-columns: 46% 54%; align-items:stretch; min-height:520px; }
.ins__hero-text { padding:130px 60px 80px; display:flex; flex-direction:column; justify-content:center; }
.ins__hero-img img { width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(100%); }
.ins__back {
    display:inline-flex; align-items:center; gap:12px; font-size:13px; color:#111;
    text-decoration:none; margin-bottom:46px; transition:opacity .3s;
}
.ins__back svg { width:17px; height:17px; }
.ins__back:hover { opacity:.6; }
.ins__meta { display:flex; align-items:center; gap:10px; font-size:12px; color:#6F6F6F; margin-bottom:24px; }
.ins__title {
    font-family:"Cormorant Garamond", Georgia, serif; font-size:44px; font-weight:400;
    line-height:1.12; letter-spacing:-0.5px; color:#111; margin:0 0 28px;
}
.ins__lead { font-size:14px; line-height:1.65; color:#5A5A55; margin:0; max-width:520px; }

/* ---------------- body grid ---------------- */
.ins__body-grid {
    display:grid; grid-template-columns: 92px minmax(0,1fr) 340px;
    gap:0 56px; padding:76px 60px 88px; align-items:start;
}
.ins__share { display:flex; flex-direction:column; gap:22px; position:sticky; top:120px; }
.ins__share .eyebrow { font-size:10px; letter-spacing:1.8px; color:#9A9A94; margin-bottom:6px; }
.ins__share a { color:#111; display:block; opacity:.75; transition:opacity .3s; }
.ins__share a:hover { opacity:1; }
.ins__share svg { width:19px; height:19px; }

.ins__content .entry-content { font-size:14px; line-height:1.72; color:#3A3A36; max-width:660px; }
.ins__content .entry-content p { margin:0 0 22px; }
.ins__content .entry-content h2,
.ins__content .entry-content h3 {
    font-family:"Inter", system-ui, sans-serif; font-size:15px; font-weight:500;
    color:#111; margin:40px 0 14px; letter-spacing:0;
}
.ins__content .entry-content ul, .ins__content .entry-content ol { margin:0 0 22px 18px; }
.ins__content .entry-content li { margin-bottom:10px; }
.ins__content .entry-content img { max-width:100%; height:auto; margin:28px 0; filter:grayscale(100%); }
.ins__content .entry-content a { color:#111; text-decoration:underline; text-underline-offset:3px; }

.ins__advice {
    display:flex; align-items:center; gap:24px; background:#F6F6F3;
    padding:26px 28px; margin-top:56px; max-width:660px;
}
.ins__advice-icon { flex:none; }
.ins__advice-icon svg { width:34px; height:34px; color:#111; }
/*
 * The heading deliberately carries no size of its own: it inherits the global
 * `h2 { font-size: clamp(36px, 5vw, 64px) }` display size from style.css, which is
 * how this card has always looked in English.
 *
 * That size only ever broke in Russian, where «Нужна консультация по вашей
 * ситуации?» is nearly twice as long and its unbreakable words gave the text
 * column a min-content width the flex row could not shrink below — the button was
 * pushed 35px past the padding. The card is now English in both languages
 * (see 'advice_title' in inc/i18n-links.php), so the constraint is gone.
 *
 * If the card is ever translated again, this rule is where to put a smaller size —
 * the min-width/flex guards below keep the button in place, but at display size
 * the Russian heading will still crowd it.
 */
.ins__advice-text { min-width:0; }
.ins__advice p { font-size:12.5px; color:#6F6F6F; margin:0; max-width:280px; line-height:1.5; }
/* flex:none — the CTA keeps its width and the text column absorbs the wrapping,
   the same contract as .ins__guide-cta. */
.ins__advice .btn { margin-left:auto; flex:none; white-space:nowrap; }

/* ---------------- гайд в PDF ---------------- */
/* Карточка кликабельна целиком: на месте прежней ссылки в тексте, но с весом
   файла — читатель видит, что скачивает, до клика. */
.ins__guide {
    display:flex; align-items:center; gap:20px;
    max-width:660px; margin-top:48px; padding:22px 26px;
    border:1px solid #E3E3DE; background:#fff; color:#111;
    text-decoration:none;
    transition:border-color .4s cubic-bezier(.16,1,.3,1), background .4s cubic-bezier(.16,1,.3,1);
}
.ins__guide:hover { border-color:#111; background:#FAFAF8; }
.ins__guide-icon svg { display:block; width:30px; height:30px; color:#111; }
.ins__guide-text { display:flex; flex-direction:column; gap:5px; min-width:0; }
.ins__guide-title { font-size:14px; line-height:1.4; }
.ins__guide-meta { font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#8A8A85; }
.ins__guide-cta {
    margin-left:auto; flex:none; white-space:nowrap;
    padding:12px 22px; background:#111; color:#fff;
    font-size:13px; line-height:1;
    transition:opacity .3s;
}
.ins__guide:hover .ins__guide-cta { opacity:.86; }

/* ---------------- related ---------------- */
/*
 * Sticky: the sidebar is ~700px tall against articles that now run 6,000-14,000px
 * (the guide summaries in build2/content/guide-summaries.php). Left static, a
 * quarter of the page width stayed blank for the entire scroll — the page read as
 * padding rather than content. Offset matches .ins__share so both rails hold the
 * same line under the 89px fixed header. max-height keeps the tail reachable on
 * short viewports instead of clipping it off-screen.
 */
.ins__related {
    background:#F6F6F3; padding:36px 32px;
    position:sticky; top:120px;
    max-height:calc(100vh - 140px); overflow-y:auto;
}
.ins__related h2 {
    font-family:"Cormorant Garamond", Georgia, serif; font-size:24px; font-weight:400;
    margin:0 0 28px; color:#111;
}
/* Practice links in the article sidebar */
.ins__practices { list-style:none; margin:0 0 40px; padding:0; }
.ins__practices li { border-top:1px solid #E3E3DE; }
.ins__practices li:last-child { border-bottom:1px solid #E3E3DE; }
.ins__practices a {
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:14px 0; font-size:13px; color:#111; text-decoration:none; transition:opacity .3s;
}
.ins__practices a:hover { opacity:.6; }
.ins__practices svg { width:16px; height:16px; flex:none; }

.ins__rel-item {
    display:grid; grid-template-columns:1fr 26px; grid-template-rows:auto auto;
    gap:10px 12px; align-items:center; padding:22px 0; border-top:1px solid #E1E1DB; text-decoration:none;
}
.ins__rel-item:first-of-type { border-top:0; padding-top:0; }
.ins__rel-meta { grid-column:1; font-size:11px; color:#9A9A94; }
.ins__rel-title {
    grid-column:1; font-family:"Cormorant Garamond", Georgia, serif; font-size:17px;
    line-height:1.3; color:#111;
}
.ins__rel-item .bsl-arrow { grid-column:2; grid-row:1 / span 2; }
.ins__rel-all {
    display:inline-flex; align-items:center; gap:10px; margin-top:30px;
    font-size:13px; color:#111; text-decoration:none;
}
.ins__rel-all svg { width:18px; height:18px; }

@media (max-width: 1200px) {
    .ins__body-grid { grid-template-columns: 72px minmax(0,1fr) 300px; gap:0 36px; }
}
@media (max-width: 1023px) {
    .ins__hero { grid-template-columns:1fr; min-height:0; }
    .ins__hero-text { padding:110px 24px 40px; }
    .ins__hero-img img { max-height:340px; }
    .ins__title { font-size:34px; }
    .ins__body-grid { grid-template-columns:1fr; padding:48px 24px 64px; gap:48px; }
    .ins__share { flex-direction:row; align-items:center; gap:18px; position:static; }
    .ins__related { position:static; max-height:none; overflow:visible; }
    .ins__share .eyebrow { margin:0 8px 0 0; }
    .ins__advice { flex-direction:column; align-items:flex-start; gap:16px; }
    .ins__advice .btn { margin-left:0; }
    .ins__guide { flex-wrap:wrap; gap:16px; }
    .ins__guide-cta { margin-left:0; width:100%; text-align:center; }
}
.person__topbar { padding:126px 60px 0; }
.person__topbar .ins__back { margin:0; }
.person__grid { display:grid; grid-template-columns: 340px minmax(0,1fr); gap:0 60px; padding:40px 60px 88px; align-items:start; }
/* The portrait on a lawyer's own page stays in colour — the monochrome
   treatment belongs to the cards that list them, not to the profile itself. */
.person__media img { width:100%; aspect-ratio:3/4; object-fit:cover; display:block; }
@media (min-width: 1024px) { .person__media { position:sticky; top:112px; } }   /* фото идёт вместе с текстом */
.person__role { display:block; font-size:11px; letter-spacing:1.6px; text-transform:uppercase; color:#6F6F6F; margin:0 0 14px; }
.person__name { font-family:"Cormorant Garamond", Georgia, serif; font-size:42px; font-weight:400; line-height:1.08; margin:0 0 26px; color:#111; }
.person__bio { margin:0 !important; font-size:14px; line-height:1.72; color:#3A3A36; max-width:680px; }
.person__bio > *:first-child { margin-top:0; }
.person__bio p { margin:0 0 20px; }
.person__latest { padding:0 60px 96px; }
.person__latest-head { display:flex; align-items:center; justify-content:space-between; padding-bottom:28px; margin-bottom:44px; border-bottom:1px solid #E3E3DE; }
.person__latest-head .eyebrow { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:#6F6F6F; margin:0; font-weight:500; line-height:1.2; }
.person__latest-head .ins__rel-all { margin-top:0; }
@media (max-width: 1023px) {
    .person__topbar { padding:104px 24px 0; }
    .person__grid { grid-template-columns:1fr; gap:32px; padding:28px 24px 56px; }
    .person__media img { max-width:340px; }
    .person__name { font-size:32px; }
    .person__latest { padding:0 24px 64px; }
}
/* 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; }
}
.person__bio h2,
.person__bio h3 {
    font-family:"Inter", system-ui, sans-serif; font-size:14px; font-weight:500;
    color:#111; margin:34px 0 12px; letter-spacing:0;
}
.person__bio blockquote { margin:0 0 22px; padding:2px 0 2px 18px; border-left:2px solid #111; }
.person__bio blockquote p { font-style:italic; margin:0; }
.person__bio blockquote cite { display:block; margin-top:8px; font-style:normal; font-size:12.5px; color:#6F6F6F; }
.person__bio ul { list-style:none; margin:0 0 22px; padding:0; }
/* .entry-content ul li из style.css ставит disc самому li — перебиваем таким же
   по специфичности селектором (этот слой грузится позже), иначе буллет двоится */
.person__bio ul li { list-style:none; position:relative; padding-left:16px; margin-bottom:10px; }
.person__bio li::before { content:""; position:absolute; left:0; top:9px; width:4px; height:4px; border-radius:50%; background:#111; }
.person__fact { color:#6F6F6F; }
.person__fact strong { color:#111; font-weight:500; }

.person__practices { margin-top:44px; padding-top:28px; border-top:1px solid #E3E3DE; max-width:660px; }
.person__practices .eyebrow { display:block; font-size:10px; letter-spacing:1.8px; color:#9A9A94; margin-bottom:18px; }
.person__practices ul { list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px 28px; }
.person__practices a {
    display:inline-flex; align-items:center; gap:8px;
    font-size:13px; color:#111; text-decoration:none; transition:opacity .3s;
}
.person__practices a:hover { opacity:.6; }
.person__practices svg { width:16px; height:16px; }
/* ==========================================================================
   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; }
}