/* V4 review revision: original full-width photo banners and a discreet icon rail.
   Headings remain OVER the photograph; only the photo moves, never the text. */
.page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero) {
    --banner-focus: center;
    box-sizing: border-box;
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    width: 100%;
    /* Viewport height keeps photos compact on laptops, including wide screens. */
    min-height: clamp(15rem, 38svh, 21rem);
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #211a35;
    color: #fff;
    text-align: center;
}
.page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero)::before {
    content: '';
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: 0;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: var(--banner-focus);
    transform-origin: center;
    animation: banner-live-gentle 22s ease-in-out infinite alternate;
    will-change: transform;
    z-index: 0;
}
.page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero)::after {
    content: '';
    display: block;
    position: absolute;
    inset: 0;
    /* Darkest directly behind the text, lighter at the photograph's edges. */
    background: radial-gradient(ellipse at center, rgba(17,13,32,.67), rgba(17,13,32,.29) 78%), linear-gradient(0deg, rgba(17,13,32,.18), rgba(17,13,32,.08));
    pointer-events: none;
    z-index: 1;
}
.page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero) .banner-inner {
    position: relative;
    z-index: 2;
    box-sizing: border-box;
    display: flex;
    flex: 0 1 64rem;
    flex-direction: column;
    align-items: center;
    width: min(100%, 64rem);
    min-width: 0;
    margin: 0 auto;
    padding: clamp(1.5rem, 3vh, 2rem) 1.5rem;
    text-align: center;
}
.page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero) :is(h1,.banner-title) {
    max-width: 30ch;
    width: 100%;
    color: #fff;
    font-family: var(--font-display);
    font-size: clamp(2rem, 2.8vw, 3rem);
    font-weight: 600;
    line-height: 1.15;
    text-transform: none;
    text-wrap: balance;
    overflow-wrap: normal;
    text-shadow: 0 2px 14px rgba(0,0,0,.45);
}
.page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero) .eyebrow {
    color: #fff;
    background: rgba(25,16,45,.45);
    border-color: rgba(255,255,255,.45);
}
.page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero) .banner-sub {
    max-width: 48rem;
    color: #fff;
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    line-height: 1.55;
    text-shadow: 0 1px 8px rgba(0,0,0,.55);
}
.page-banner.banner-about::before { background-image: url("../images/banner-consultation.b131891dd3f4.jpg"); }
.page-banner.banner-contacts { --banner-focus: center 30%; }
.page-banner.banner-with-brand .banner-brand {
    max-width: 13rem; margin-top: .8rem; padding: .45rem .85rem;
}
.page-banner.banner-with-brand .banner-sub { margin-top: .8rem; }
/* Compact detail banners use the same photo treatment with less empty space. */
.page-banner.page-banner-compact:is(.banner-services,.banner-hero) { min-height: clamp(12rem, 30svh, 17rem); }
@keyframes banner-live-gentle {
    from { transform: scale(1.004) translate3d(-.1%, -.05%, 0); }
    to   { transform: scale(1.014) translate3d(.1%, .05%, 0); }
}
@media (max-width: 47.5rem) {
    .page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero) {
        min-height: clamp(13rem, 48vw, 18rem);
    }
    .page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero) .banner-inner {
        width: 100%; flex-basis: 100%; padding: 1.75rem 1.25rem;
    }
    .page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero) :is(h1,.banner-title) {
        font-size: clamp(1.7rem, 6vw, 2.5rem); max-width: 24ch;
    }
    .page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero) .banner-sub { font-size: 1rem; }
}
/* One guide line, seven bare icons, exactly one visible active label.
   Links still have a 44px hit area, but there are no visible button boxes. */
.page-business-solutions .bs-rail {
    display: block;
    position: sticky;
    top: var(--bs-header-h, 5rem);
    z-index: 19;
    width: min(calc(100% - 1.25rem), 34rem);
    margin: 0 auto;
    padding: .2rem 0 1.5rem;
    background: rgba(249,247,255,.96);
    border: 0;
    border-radius: 0;
    box-shadow: none;
    translate: none;
    pointer-events: none;
}
.page-business-solutions .bs-rail-list {
    display: grid; grid-template-columns: repeat(7,minmax(0,1fr));
    list-style: none; margin: 0; padding: 0; gap: 0;
}
.page-business-solutions .bs-rail-track {
    display: block; position: absolute; left: calc(100% / 14); right: calc(100% / 14);
    top: 1.575rem; bottom: auto; height: 1px; width: auto;
    background: rgba(88,62,124,.22); border: 0; pointer-events: none;
}
.page-business-solutions .bs-rail-fill {
    display: block; position: absolute; inset: 0; width: 100%; height: 100%;
    background: var(--color-primary);
    transform: scaleX(var(--bs-rail-p,0)); transform-origin: left;
    transition: transform .28s ease;
}
.page-business-solutions .bs-rail-link {
    box-sizing: border-box; position: static;
    display: flex; align-items: center; justify-content: center;
    width: 100%; min-height: 2.75rem; padding: 0;
    border: 0; border-radius: 0; background: transparent;
    box-shadow: none; color: #7f7393;
    font-size: .8rem; font-weight: 650; letter-spacing: .02em;
    text-decoration: none; text-transform: none;
    pointer-events: auto;
}
.page-business-solutions .bs-rail-link::before { content: none; display: none; }
.page-business-solutions .bs-rail-icon {
    box-sizing: content-box; display: block; flex: 0 0 1.1rem;
    width: 1.1rem; height: 1.1rem; padding: .22rem;
    color: inherit; background: #f9f7ff; border: 0; border-radius: 50%;
    box-shadow: none; transition: color .2s ease, transform .2s ease;
}
.page-business-solutions .bs-rail-link span,
.page-business-solutions .bs-rail-link:hover span,
.page-business-solutions .bs-rail-link:focus-visible span {
    position: absolute; top: auto; bottom: .3rem; left: 0;
    width: 100%; margin: 0; padding: 0;
    opacity: 0; visibility: hidden; transform: none; translate: none;
    background: transparent; border: 0; border-radius: 0; box-shadow: none;
    color: inherit; text-align: center; white-space: nowrap;
    pointer-events: none; transition: none;
}
.page-business-solutions .bs-rail-link[aria-current='location'] {
    color: var(--color-primary-dark); border: 0; background: transparent; box-shadow: none;
}
.page-business-solutions .bs-rail-link[aria-current='location'] span {
    opacity: 1; visibility: visible; background: transparent; box-shadow: none;
    font-size: .875rem;
}
.page-business-solutions .bs-rail-link[aria-current='location'] .bs-rail-icon { transform: scale(1.3); }
.page-business-solutions .bs-rail-link:hover { color: var(--color-primary); background: transparent; box-shadow: none; }
.page-business-solutions .bs-rail-link:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -3px; }
html:has(body.page-business-gateway) { scroll-padding-top: calc(var(--bs-header-h, 5rem) + 5.1rem); }
@media (min-width: 80rem) {
    .page-business-solutions .bs-rail {
        position: fixed; left: max(.5rem, calc((100vw - 71.25rem) / 2 - 9.2rem));
        top: 50%; translate: 0 -50%; width: 8.9rem;
        margin: 0; padding: 0; background: transparent;
    }
    .page-business-solutions .bs-rail-list { display: flex; flex-direction: column; gap: .4rem; }
    .page-business-solutions .bs-rail-track {
        top: 1.375rem; bottom: 1.375rem; left: 1.375rem; right: auto;
        width: 1px; height: auto;
    }
    .page-business-solutions .bs-rail-fill { transform: scaleY(var(--bs-rail-p,0)); transform-origin: top; }
    .page-business-solutions .bs-rail-link { position: relative; justify-content: flex-start; min-height: 2.75rem; padding-left: .59rem; }
    .page-business-solutions .bs-rail-link span,
    .page-business-solutions .bs-rail-link:hover span,
    .page-business-solutions .bs-rail-link:focus-visible span {
        top: 50%; bottom: auto; left: 3.05rem; width: auto;
        max-width: 6rem; transform: translateY(-50%);
        text-align: left; font-size: .75rem;
    }
    .page-business-solutions .bs-rail-link[aria-current='location'] span { font-size: .8125rem; }
    html:has(body.page-business-gateway) { scroll-padding-top: calc(var(--bs-header-h, 6.5rem) + .75rem); }
}
/* Preserve a real gutter for the active name on narrow laptop viewports. */
@media (min-width: 80rem) and (max-width: 89.999rem) {
    .page-business-gateway .bs-hero > .container,
    .page-business-gateway .bs-scene > .container { max-width: calc(100% - 18rem); }
}
@media (prefers-reduced-motion: reduce) {
    .page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero)::before {
        animation: none; transform: none; will-change: auto;
    }
    .page-business-solutions .bs-rail-fill,
    .page-business-solutions .bs-rail-icon { transition: none; }
}

/* Keep the existing mini diagrams, but remove the empty number column. */
.page-business-solutions .bs-dir-top { justify-content: flex-start; margin-bottom: 1rem; }
.page-business-solutions .bs-dir-top > svg { max-width: 4.5rem; }
.page-business-solutions .bs-dir { min-width: 0; }
.page-business-solutions .bs-intro-label { gap: 0; }
.process-list { list-style: none; margin: 0; padding: 0; }
.process-list > li { display: grid; grid-template-columns: .5rem minmax(0,1fr); gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid var(--color-border); }
.process-list > li::before { content: ''; width: .4rem; height: 1.6rem; margin-top: .25rem; border-radius: 1rem; background: var(--color-primary, #6426d4); }
.process-list > li:last-child { border-bottom: 0; }
.process-list h3 { margin: 0 0 .4rem; }
.process-list p { margin: 0; }
#how-it-works li::before { content: ''; width: .4rem; height: 1.6rem; margin-top: .25rem; border-radius: 1rem; background: var(--color-primary, #6426d4); }
/* One visible state at a time, including reduced motion and no JavaScript. */
.page-business-solutions .bs-map .bs-core-word { display: none; }
.page-business-solutions .bs-map:not([data-core-state]) .bs-word-idle,
.page-business-solutions .bs-map[data-core-state='idle'] .bs-word-idle,
.page-business-solutions .bs-map[data-core-state='accounting'] .bs-word-accounting,
.page-business-solutions .bs-map[data-core-state='digital'] .bs-word-digital,
.page-business-solutions .bs-map[data-core-state='eu'] .bs-word-eu,
.page-business-solutions .bs-map[data-core-state='insurance'] .bs-word-insurance { display: flex; opacity: 1; }
.page-business-solutions .bs-core-state { min-height: 5.3rem; width: 100%; }
.page-business-solutions .bs-core-word b { font-size: clamp(1rem, 1.2vw, 1.3rem); overflow-wrap: normal; }
.page-business-solutions .bs-core-word i { font-size: .68rem; line-height: 1.4; }
/* Pricing is a section of Accounting. Existing catalogue/pricing logic is reused. */
.accounting-subnav { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; padding-block: 1.5rem; }
.accounting-subnav a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .6rem 1rem; border: 1px solid var(--color-border); border-radius: 999px; background: #fff; text-decoration: none; font-weight: 650; }
.accounting-subnav a:hover, .accounting-subnav a:focus-visible { background: #eee7fa; border-color: var(--color-primary); }
#accounting-prices, #pl-how-title { scroll-margin-top: 8rem; }
.accounting-price-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.accounting-price-option { display: flex; flex-direction: column; gap: 1rem; padding: clamp(1.5rem,3vw,2.5rem); background: #fff; border: 1px solid var(--color-border); border-radius: 1.25rem; }
.accounting-price-option h3, .accounting-price-option p { margin: 0; }
.accounting-price-option .btn { margin-top: auto; white-space: normal; text-align: center; }
.accounting-expert-link { text-align: center; font-size: .9rem; }
@media (max-width: 47.5rem) {
    .accounting-price-options { grid-template-columns: minmax(0,1fr); }
    .accounting-subnav { gap: .4rem; }
    .accounting-subnav a { font-size: .85rem; padding-inline: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
    .page-business-solutions .bs-rail-link, .page-business-solutions .bs-rail-link span { transition: none; }
}

/* Explicit alignment overrides the old centred banner flex container. */
.page-business-solutions .bs-map .bs-core { min-height: 9rem; padding: .7rem; gap: .4rem; }
.page-business-solutions .bs-map .bs-core-name { font-size: .6rem; letter-spacing: .12em; }
.page-business-solutions .bs-core-state { min-height: 4.8rem; }
@media (max-width: 47.5rem) {
    .page-banner:is(.banner-about,.banner-services,.banner-cases,.banner-contacts,.banner-consultation,.banner-hero) .banner-inner { flex: 0 0 auto; }
}

@media (max-width: 47.5rem) {
    #chat-widget[data-form-clearance='true']:not([open]) {
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
    }
}


/* All card content shares one centred axis; actions stay anchored at the foot. */
.page-business-solutions .bs-dir { align-items: center; text-align: center; }
.page-business-solutions :is(.bs-dir-body,.bs-dir-support) { width: 100%; text-align: center; }
.page-business-solutions .bs-dir-support { padding-inline: 0; border-left: 0; }
.page-business-solutions .bs-dir-actions { width: 100%; align-items: center; text-align: center; }
.page-business-solutions :is(.bs-dir-cta,.bs-dir-sub) { justify-content: center; text-align: center; }
.page-business-solutions .bs-dir-top {
    display: flex; justify-content: center; align-items: center;
    width: 100%; margin-bottom: 1.15rem;
}
.page-business-solutions .bs-dir-top > svg { max-width: 5.5rem; margin-inline: auto; }
.page-business-solutions :is(.bs-dir-title,.bs-dir-key) { width: 100%; text-align: center; }
.page-business-solutions .bs-dir-result { align-self: center; margin-inline: auto; justify-content: center; }
.page-business-solutions :is(.bs-dq-name,.bs-gate-title,.pl-area h3,.bs-insgroup h3) { text-align: center; }
.page-business-solutions .bs-insgroup { grid-template-columns: minmax(0,1fr); }
.page-pillar .pl-sit { grid-template-columns: minmax(0,1fr); }
.page-pillar .pl-ins-steps li { padding-left: 0; }
.page-pillar :is(.pl-arch-name,.pl-ins-steps li,.pl-steps5 li)::before { display: none; content: none; }
.page-business-solutions .bs-route li { padding-left: 1.35rem; }
.page-business-solutions .bs-route li::before {
    content: ''; width: .3rem; height: .3rem; left: .3rem;
    border-radius: 50%; background: var(--color-accent-soft);
}
/* Four directions are one deliberate row on laptops; two balanced rows on phones. */
.cases-filter ul {
    display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .6rem; width: 100%; max-width: none;
    align-items: stretch; margin: 0; padding: 0;
}
.cases-filter li { min-width: 0; }
.cases-filter a {
    box-sizing: border-box; display: flex; align-items: center;
    justify-content: center; width: 100%; height: 100%; min-height: 3.35rem;
    padding: .55rem .6rem; gap: .4rem;
    font-size: .82rem; line-height: 1.35; text-align: center;
}
.cases-filter-label { min-width: 0; }
.cases-filter a.is-current::before { content: none; }
.cases-filter-count { flex: 0 0 auto; min-width: 1.3rem; padding: .05rem .3rem; font-size: .7rem; }
@media (min-width: 64rem) {
    .cases-filter ul { grid-template-columns: repeat(4,minmax(0,1fr)); gap: .55rem; }
    .cases-filter a { min-height: 2.8rem; padding: .55rem .4rem; font-size: clamp(.76rem,.86vw,.9rem); white-space: nowrap; }
}
@media (max-width: 23rem) {
    .cases-filter a { font-size: .76rem; padding-inline: .4rem; gap: .3rem; }
}

/* Four existing routes fill the contact column and select the same form field. */
.page-business-gateway .bs-contact-paths { min-width: 0; margin: 0 0 1.5rem; padding: 0; border: 0; }
.page-business-gateway .bs-contact-paths[hidden] { display: none; }
.page-business-gateway .bs-contact-paths legend {
    padding: 0; margin-bottom: .85rem; font-size: .95rem; font-weight: 650; color: var(--color-navy);
}
.page-business-gateway .bs-contact-path-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.page-business-gateway .bs-contact-path {
    display: grid; grid-template-columns: 1.65rem minmax(0,1fr); align-content: center;
    align-items: center; gap: .3rem .6rem; min-width: 0; min-height: 6rem;
    padding: .85rem; border: 1px solid var(--bs-hairline); border-radius: .85rem;
    background: rgba(255,255,255,.85); color: var(--color-navy);
    font: inherit; text-align: left; cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease;
}
.page-business-gateway .bs-contact-path .bs-rail-icon {
    grid-column: 1; grid-row: 1 / 3; box-sizing: border-box;
    width: 1.65rem; height: 1.65rem; padding: 0; background: transparent;
    color: var(--color-primary); border-radius: 0;
}
.page-business-gateway .bs-contact-path-name { grid-column: 2; font-size: .86rem; font-weight: 650; line-height: 1.35; }
.page-business-gateway .bs-contact-path-result { grid-column: 2; font-size: .75rem; line-height: 1.4; color: var(--color-muted); }
.page-business-gateway .bs-contact-path:hover { border-color: var(--color-primary); background: #f8f4ff; }
.page-business-gateway .bs-contact-path[aria-pressed='true'] {
    border-color: var(--color-primary); background: #eee6ff;
    box-shadow: inset 0 0 0 1px var(--color-primary);
}
.page-business-gateway .bs-contact-path:focus-visible { outline: 3px solid var(--color-primary); outline-offset: 3px; }
.page-business-gateway .bs-contact-side .bs-contact-facts { column-gap: 1rem; }
.page-business-gateway .bs-contact-side .bs-contact-facts dd a { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 23rem) {
    .page-business-gateway .bs-contact-path { grid-template-columns: minmax(0,1fr); gap: .35rem; padding: .7rem; }
    .page-business-gateway .bs-contact-path :is(.bs-rail-icon,.bs-contact-path-name,.bs-contact-path-result) { grid-column: 1; grid-row: auto; }
}
@media (prefers-reduced-motion: reduce) { .page-business-gateway .bs-contact-path { transition: none; } }
