/* V5.5.8.5 shared shell: final layer after previous page and responsive styles. */

/* An admin-bar body class can survive after the mobile toolbar has scrolled
   away. JS measures the actual visible toolbar rather than retaining 46px. */
body.admin-bar .sbi-global-header { top: var(--sbi-toolbar-offset, 0px); }
.sbi-global-header { top: var(--sbi-toolbar-offset, 0px); }
.sbi-global-header-inner { min-width: 0; }
.sbi-global-actions { flex-shrink: 0; }
.sbi-global-header .sbi-global-mark { display: grid; place-items: center; line-height: 1; }
.sbi-global-header .sbi-global-menu-toggle > span,
.sbi-global-header .sbi-global-sound > span { line-height: 0; }
.sbi-global-header .sbi-global-language { align-items: center; }
.sbi-global-header .sbi-global-language > :is(a, button) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    padding: 0 .625rem;
    font: var(--sbi-global-weight-ui) .7rem/1 var(--sbi-global-font-body);
}

/* The same footer metrics apply to the homepage, services and client pages. */
[data-sbi-global-footer].sbi-global-footer {
    padding: 1rem max(1rem, env(safe-area-inset-right)) max(.35rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
}
[data-sbi-global-footer] .sbi-global-footer-inner {
    gap: .35rem;
    padding: 0;
    align-items: center;
    text-align: center;
}
[data-sbi-global-footer] .sbi-footer-capabilities {
    gap: .1rem .85rem;
    margin: 0;
}
[data-sbi-global-footer] .sbi-footer-capabilities > a {
    justify-content: center;
    min-height: 44px;
    line-height: 1.4;
    transition: color .2s ease;
}
[data-sbi-global-footer] .sbi-footer-capabilities > a:is(.is-featured, :hover, :focus-visible) {
    color: var(--sbi-global-shell-purple);
}
[data-sbi-global-footer] .sbi-footer-cookie-settings {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin: 0;
    padding: .35rem .75rem;
    font: 600 .75rem/1.4 var(--sbi-global-font-body);
}

/* Only the brand glyph receives the violet state; its hit area stays clear. */
[data-sbi-global-footer] .sbi-global-socials a,
[data-sbi-global-footer] .sbi-global-socials a:is(:hover, :focus-visible) {
    background: transparent;
    background-image: none;
    border-color: transparent;
    box-shadow: none;
    filter: none;
    transform: none;
}
[data-sbi-global-footer] .sbi-global-socials svg.sbi-brand-neutral,
.sbi-case-root a.sbi-case-social-link .sbi-case-social-icon {
    color: #f4f1f7;
    transition: color .18s ease;
}
[data-sbi-global-footer] .sbi-global-socials a:is(:hover, :focus-visible) svg.sbi-brand-neutral,
.sbi-case-root a.sbi-case-social-link:is(:hover, :focus-visible) .sbi-case-social-icon {
    color: var(--sbi-global-shell-purple);
    background: transparent;
    box-shadow: none;
}

/* V5.6.18: an opaque server-rendered intro covers the already-rendered header.
   It is a separate layer, never an elevation or delayed reveal of the app root.
   Critical copies of these base rules in wp_head cover deferred script startup. */
.sbi-initial-loader {
    position: fixed;
    inset: 0;
    z-index: 2147483001;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #06020c;
    color: #fff;
    isolation: isolate;
    pointer-events: auto;
    animation: sbi-initial-exit 6s steps(1, end) forwards;
}
.sbi-initial-loader-content {
    display: grid;
    justify-items: center;
    gap: 1.2rem;
    text-align: center;
    padding: 1.5rem;
}
.sbi-initial-loader img {
    display: block;
    width: min(240px, 60vw);
    height: auto;
    aspect-ratio: 3419 / 1500;
    object-fit: contain;
}
.sbi-initial-loader-caption {
    color: #f4f1f7;
    font: 700 .8rem/1.4 var(--sbi-global-font-body, sans-serif);
    letter-spacing: .12em;
    animation: sbi-intro-caption-settle .6s ease-out .14s both;
}
.sbi-initial-loader-line {
    display: block;
    width: min(180px, 48vw);
    height: 3px;
    border-radius: 3px;
    background: linear-gradient(90deg, #b987f3, #fff);
    transform-origin: left;
    animation: sbi-intro-line 1.35s cubic-bezier(.22, 1, .36, 1) both;
}
html[data-sbi-intro-ready="true"] .sbi-initial-loader,
html[data-sbi-intro-expired="true"] .sbi-initial-loader,
html[data-sbi-initial-loader="true"] [data-sbi-v53-root] .sbi-intro-loader {
    display: none !important;
}
@keyframes sbi-initial-exit {
    from { visibility: visible; }
    to { visibility: hidden; pointer-events: none; }
}
/* The legacy React intro is only a fallback in standalone old previews. */
[data-sbi-v53-root] .sbi-intro-loader {
    z-index: 200;
    inset-block-start: calc(var(--sbi-toolbar-offset, 0px) + var(--sbi-header-height, var(--sbi-global-header-height, 4.75rem)));
    pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
    .sbi-initial-loader { display: none !important; }
    .sbi-initial-loader * { animation: none !important; }
}
[data-sbi-v53-root] .sbi-intro-loader-spark {
    transform-origin: 50% 50%;
    animation: sbi-intro-spark-settle .9s cubic-bezier(.16, 1, .3, 1) .1s both;
}
[data-sbi-v53-root] .sbi-intro-loader-caption {
    animation: sbi-intro-caption-settle .6s ease-out .14s both;
}
@keyframes sbi-intro-spark-settle {
    from { opacity: 0; transform: rotate(-70deg) scale(.7); }
    to { opacity: 1; transform: rotate(0) scale(1); }
}
@keyframes sbi-intro-caption-settle {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 767px) {
    [data-sbi-global-footer] .sbi-global-footer-inner { gap: .3rem; }
    [data-sbi-global-footer] .sbi-footer-capabilities {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: min(100%, 22rem);
        gap: .1rem .65rem;
        padding-top: .35rem;
    }
    [data-sbi-global-footer] .sbi-footer-capabilities > a {
        min-width: 0;
        font-size: .75rem;
        overflow-wrap: break-word;
    }
}

@media (prefers-reduced-motion: reduce) {
    [data-sbi-v53-root] .sbi-intro-loader { display: none; }
    [data-sbi-v53-root] .sbi-intro-loader *,
    [data-sbi-global-footer] .sbi-footer-capabilities > a,
    [data-sbi-global-footer] .sbi-global-socials svg.sbi-brand-neutral,
    .sbi-case-root a.sbi-case-social-link .sbi-case-social-icon {
        animation: none;
        transition: none;
    }
}
@media (forced-colors: active) {
    [data-sbi-global-footer] .sbi-global-socials svg.sbi-brand-neutral,
    [data-sbi-global-footer] .sbi-global-socials a:is(:hover, :focus-visible) svg.sbi-brand-neutral,
    .sbi-case-root a.sbi-case-social-link .sbi-case-social-icon,
    .sbi-case-root a.sbi-case-social-link:is(:hover, :focus-visible) .sbi-case-social-icon,
    [data-sbi-global-footer] .sbi-footer-capabilities > a { color: LinkText; }
}
